我有几个关于龙卷风和其他Web框架的问题.
1)龙卷风声称是一个网络服务器(非阻塞的,因此效果很好),所以有些人说它不起作用django --ie,他们说龙卷风不是一个网络框架.
但是,它确实提供了一个我认为的Web框架(http://www.tornadoweb.org/documentation#main-modules) - 这样,它似乎取代了django作为Web开发框架.
我的上述理解是否正确?
2)通常,在Nginx之后设置了几个龙卷风.Tomcat通常也设置在Apache Web服务器之后.我可以说Tornado扮演的是Tomcat与Java Web服务器完全相同的角色吗?如果答案是肯定的,那么Tornado就是一个Web框架.
3)我读了一些文章说使用Tornado和Django,例如http://www.jeremybowers.com/blog/post/3/on-deploying-tornado-web-server-framework/,但我在线阅读了一些文章声称"如果你使用Django,那么你就失去了Tornado的异步",这是真的还是假的?一个相关的问题,如果Tornado本身就是我在1)中所说的网络框架,为什么人们会费心使用Django?(结果插件?)
有人可以给我101介绍吗?
我想在安装期间更改文件/var/www/kibana/config.js中的一行代码
elasticsearch: "http://"+window.location.hostname+":9200"
Run Code Online (Sandbox Code Playgroud)
至
elasticsearch: "http://192.168.1.200:9200"
Run Code Online (Sandbox Code Playgroud)
在这里,我尝试使用lineinfile来执行此操作,如下所示
- name: Comment out elasticsearch the config.js to ElasticSearch server
lineinfile:
dest=/var/www/kibana/config.js
backrefs=true
regexp="(elasticsearch.* \"http.*)$"
line="elasticsearch\: \" {{ elasticsearch_URL }}:{{ elasticsearch_port }} \" "
state=present
Run Code Online (Sandbox Code Playgroud)
我已经设置的变量{{elasticsearch_URL}},并{{elasticsearch_port}}以http://192.168.1.200和9200分别.
这是我遇到的错误消息:
ERROR: Syntax Error while loading YAML script, /Users/shuoy/devops_workspace/ansible_work/logging-for-openstack/roles/kibana/tasks/Debian.yml
Note: The error may actually appear before this position: line 29, column 25
regexp="(elasticsearch.* \"http.*)$"
line="elasticsearch\: \" {{ elasticsearch_URL }}:{{ elasticsearch_port }} \" "
^
Run Code Online (Sandbox Code Playgroud) 我想要一个矢量图,(但我不想使用指针作为内部矢量),是否可能?
// define my map of vector
map<int, vector<MyClass> > map;
// insert an empty vector for key 10. # Compile Error
map.insert(pair<int, vector<MyClass> >(10, vector<MyClass>));
Run Code Online (Sandbox Code Playgroud)
我知道如果我已经使用指针进行向量,如下,那就没问题,但我想知道我是否可以避免使用指针并使用上面的数据结构(我不想手动删除)
// define my map of vector
map<int, vector<MyClass>* > map;
// insert an empty vector for key 10.
map.insert(pair<int, vector<MyClass>* >(10, new vector<MyClass>));
Run Code Online (Sandbox Code Playgroud) 随着闭包被添加到Java,Scala比Java作为语言选择的优势是什么?
有人可以详细说明任何优势吗?
通过阅读Cognito Identity Provider文档,我了解到它似乎提供了与Facebook/Google/Twitter作为身份提供商的开箱即用集成.
我的应用程序是一个以开发人员为中心的应用程序,因此我希望除了上述身份提供商的帐户之外,还允许用户使用他们的Github帐户进行注册/登录.那可能吗?
如果可能的话,我需要做多少额外的工作(比较开箱即用的Facebook/Google社交注册功能)?
single-sign-on oauth-2.0 openid-connect amazon-cognito aws-cognito
我想我仍然没有完全理解函数定义中的type()表示.所以我不能提出每个案例的具体例子:()=> Int; 单位=>国际.
有人能给我一个简单的函数文字示例,其中type()=> Int并分别键入Unit => Int?在那之后,我想我可以了解究竟是什么().
谢谢
*编辑:*目的地说他们是一样的.但是下面的测试似乎表明不然:()不能用到期望单位.
scala> def inCase[A] ( b :Boolean, ifTrue : Unit => A, ifFalse : Unit => A ) : A =
| b match {
| case True => ifTrue()
| case _ => ifFalse()
| }
inCase: [A](b: Boolean, ifTrue: Unit => A, ifFalse: Unit => A)A
scala> inCase( True, () => 1, () => -1 )
<console>:11: error: type mismatch;
found : () => Int
required: Unit => …Run Code Online (Sandbox Code Playgroud) 作为函数式语言的新手(几周前我开始接触Erlang - 第一个可以让我开始使用的函数式语言).
我开始写一些小的算法(如left_rotate_list,bubble_sort, merge_sort等).我发现自己常常迷失在诸如"我应该使用帮助列表进行中间结果存储吗?"等决策中.并且"我应该创建一个辅助函数来执行此操作吗?"
过了一会儿,我发现函数式编程(如果我说的话没有意义的话,请跟我一点)鼓励"自上而下"的设计:即,当我做merge_sort时,你首先记下所有的合并排序步骤,并将它们命名为单独的辅助函数; 然后逐个实现这些辅助函数(如果需要进一步划分这些辅助函数,请以相同的方法执行).
这似乎与OO设计略有矛盾,您可以从底层开始构建基本数据结构,然后将数据结构和算法组合成您想要的.
感谢您的评论.是的,我想得到关于如何"用函数式语言思考"的建议(就像"用Java思考","用C++思考").
我有几个与咖喱功能有关的问题.我在这里逐一问他们
1)http://twitter.github.com/scala_school/basics.html给出了一个curried函数的例子 - 我认为它是一个函数定义,但实际上并非如此.REPL根本不承认这是一个有效的声明.
multiplyThenFilter { m: Int => m * 2 } { n: Int => n < 5}
Run Code Online (Sandbox Code Playgroud)
2)为什么我们不能从部分参数化方法定义函数?即,以下定义有什么问题?
scala> def multiply(m: Int, n: Int): Int = m * n
multiply: (m: Int, n: Int)Int
scala> val timesTwo = multiply(2,_)
<console>:11: error: missing parameter type for expanded function ((x$1) => multiply(2, x$1))
val timesTwo = multiply(2,_)
^
Run Code Online (Sandbox Code Playgroud)
3)为什么我们不能使部分参数化函数curry?即,以下定义有什么问题?
scala> (multiply(_,_)).curried
res13: Int => (Int => Int) = <function1> // THIS IS OK
scala> (multiply(20,_)).curried
<console>:12: error: …Run Code Online (Sandbox Code Playgroud) 我听说foldLeft在大多数操作中效率更高,但Scala School(来自Twitter)给出了以下示例.有人可以分析它的效率吗?我们应该使用foldLeft实现相同的操作吗?
val numbers = List(1,2,3,4,5,...10)
def ourMap(numbers: List[Int], fn: Int => Int): List[Int] = {
numbers.foldRight(List[Int]()) { (x: Int, xs: List[Int]) =>
fn(x) :: xs
}
}
scala> ourMap(numbers, timesTwo(_))
res0: List[Int] = List(2, 4, 6, 8, 10, 12, 14, 16, 18, 20)
Run Code Online (Sandbox Code Playgroud)