小编Ale*_*x D的帖子

在Nginx错误日志中,"SSL_CTX_use_PrivateKey_file""获取密码错误的问题"是什么意思?

我正在尝试在Nginx上设置SSL.它不起作用,我在错误日志中收到以下错误,这是从编译nginx的OpenSSL库中传递出来的.我不知道那个库是什么,但它是nginx的0.8.54版本,我在Ubuntu Linux上使用apt-get安装它.

2012/02/21 07:06:33 [emerg] 4071#0: 
SSL_CTX_use_PrivateKey_file("/exequias/certs/exequias.com.key") failed (SSL: 
error:0906406D:PEM routines:PEM_def_callback:problems getting password error:
0906A068:PEM routines:PEM_do_header:bad password read error:140B0009:SSL routines:
SSL_CTX_use_PrivateKey_file:PEM lib)
Run Code Online (Sandbox Code Playgroud)

我确保私钥文件的文件权限不会阻止nginx读取它.它是一个生成的RSA私钥openssl rsa.

可能导致这种情况的任何想法?

ssl https openssl nginx private-key

35
推荐指数
3
解决办法
5万
查看次数

为什么Clojure区分符号和变量?

我已经看到了这个问题,但它没有解释我在想什么.

当我第一次从Common Lisp来到Clojure时,我很困惑为什么它将符号和关键字视为单独的类型,但后来我想出来了,现在我觉得这是个好主意.现在我想弄清楚为什么符号和变量是单独的对象.

据我所知,Common Lisp实现通常使用一个结构代表一个"符号",该结构具有1)名称的字符串,2)在函数调用位置计算时指向符号值的指针,3)指向其值时的指针评估外部呼叫位置,以及4)财产清单等.

忽略Lisp-1/Lisp-2的区别,事实仍然是在CL中,"符号"对象直接指向其值.换句话说,CL结合了Clojure在单个对象中称为"符号"和"var"的内容.

在Clojure中,要评估符号,首先必须查找相应的var,然后必须取消引用var.为什么Clojure以这种方式工作?这样的设计可能会带来什么好处?我理解vars有一些特殊属性(它们可以是private,或const,或动态......),但这些属性不能简单地应用于符号本身吗?

lisp symbols clojure

35
推荐指数
5
解决办法
2719
查看次数

非常简洁的Forth应用程序的例子?

这次演讲中,Chuck Moore(Forth的创始人)提出了一些非常大胆,全面的主张,例如:

  1. "我看到的每个我没有编码的应用程序的代码都是它需要的代码的十倍"
  2. "大约有一千条说明似乎对我做任何事都是对的"
  3. "如果您正在编写需要[局部变量]的代码,那么您正在编写非最佳代码.请勿使用局部变量."

我想弄清楚摩尔先生是否是一个绝对出色的天才或者b)一个疯子.但这是一个主观问题,我不是在寻找这个问题的答案.我正在寻找的是复杂的,现实世界的问题的例子,可以使用Forth在"1000指令或更少"中解决,以及演示如何执行此操作的源代码.一个例子只显示一个真实世界系统中的一个非平凡的部分,但是没有"玩具"代码样本可以在另一个高级语言的5或10行中复制.

如果您在Forth中编写了真实系统,只使用少量源代码,但不能自由地显示源代码(因为它是专有的),我仍然希望听到它.

forth

33
推荐指数
5
解决办法
7372
查看次数

在Clojure中积累结果的最佳方法是什么?(纯功能代码看起来很丑陋和冗长)

...也许用可变数据进行命令式编程只是在我脑中钻得太深,但我发现在Clojure中构建数据向量的代码是冗长,笨拙和复杂的.肯定有更好的办法!

在Ruby中,我可能会编写如下代码:

results = []
a_collection.each do |x|
  x.nested_collection.each do |y|
    next if some_condition_holds
    results << y
  end
end
Run Code Online (Sandbox Code Playgroud)

在Clojure中,我不知道有什么比使用递归函数更好的方法,可能就像下面的(可怕的)代码:

; NEWBIE ALERT! NEWBIE ALERT!
(loop [results   []
       remaining a_collection]
  (if (empty? remaining)
      results
      (recur
        (loop [results results
               nested  (nested_collection (first remaining))]
           (if (empty? nested)
               results
               (if (some_condition_holds)
                   (recur results (rest nested))
                   (recur (conj results (first nested)) (rest nested))))) 
        (rest remaining))))
Run Code Online (Sandbox Code Playgroud)

如果没有可变数据和迭代循环,则需要使用递归来构建集合.每个这样的递归函数都需要一个(empty?)保护条款等等.整个事情是如此重复,它让我想要尖叫.

在简单的情况下,map就足够了,但我想的是存在多层嵌套的情况,并且在每个级别,可能存在需要跳过迭代的条件.

在Common Lisp中我可能会使用loop宏,或者mapcan.Clojure不是有类似的mapcan吗?

lisp recursion functional-programming clojure

23
推荐指数
3
解决办法
6246
查看次数

如何找到英特尔x86 CPU解码指令的微操作?

英特尔优化参考,根据第3.5.1节,建议:

"赞成单微操作指令."

"避免使用复杂指令(例如,输入,离开或循环),这些指令超过4个微操作并需要多个周期才能解码.请使用简单指令序列."

虽然英特尔自己告诉编译器编写者使用解码为少数微操作的指令,但我在他们的任何手册中都找不到任何东西,这解释了每个ASM指令解码的微操作数量!这些信息是否随处可用?(当然,我希望不同代CPU的答案会有所不同.)

x86 intel compiler-optimization

16
推荐指数
3
解决办法
3570
查看次数

宏中的do {} while(0)与({})的优点是什么?

Stack Overflow关于do { ... } while(0)宏的使用有很多问题,但这有点不同.我理解为什么do { ... } while(0)用于在宏扩展中包装多行代码.但是我经常看到另一种形式:({ ... }).

({ })表单的优点是它是一个表达式并且可以具有"返回值".它(主观地)读取也好于do { } while(0).那为什么不总是使用它?do { } while(0)相反,在宏中使用有什么优势?

c macros

13
推荐指数
1
解决办法
530
查看次数

基于浏览器的测试工具哪个没破?

对不起有争议的标题在这里!

我已经使用Selenium和基于Selenium的库(如Capybara)完成了一些基于浏览器的测试(JS重型网页).让测试套件始终如一地工作一直是一个巨大的痛苦.是的,我知道不是在sleep()这里和那里插入调用,而是应该等待DOM元素变得可见,或者满足其他条件,yadda yadda.这一切都很好,而且确实有所帮助.我认为我做得不对,如果不是......

如果不是时候,在我自己编写Selenium代码之前,当我咨询的公司聘请了一家专门编写Selenium测试套件的公司.他们派了一个据说是Selenium专家的人,他为我们的网络应用程序编写了一个完整的测试套件.我需要告诉你我们实际使用测试套件时发生了什么?

我已经得出结论,像Selenium这样的工具使用的整个方法受到了很大的竞争条件.您有一个测试过程,以及一个通过套接字进行通信的独立浏览器进程.测试过程向浏览器发送查询以找出DOM的状态,并在浏览器继续运行时计算要执行的操作.然后它向浏览器发送单独的消息以模拟点击或按键等.

如果您曾经编写过多线程程序,那么就知道它不起作用.这是一场"检查然后行动"的比赛.如果测试过程可以冻结浏览器中的JS执行,查询其状态,发出模拟的点击/击键,然后解冻浏览器,那么就可以了.(比如使用锁来保护多线程程序的关键部分.)

我能想到绕过竞争条件的唯一方法是用JS编写每个测试用例.当然,这排除了跨多个页面导航的测试用例.您还需要一种在每个测试用例开始时将页面重置为"干净"状态的方法.

有没有人知道用于测试浏览器内JS"应用程序"的工具/方法,它允许像我一样的凡人编写测试套件,这些测试套件一直运行100%而不会撕掉我的所有头发?

(PS.从Selenium的经验中获得的另一个结论:许多免费的jQuery插件都有错误,这些错误在人类使用页面时不会出现,只是因为它们无法像Selenium那样快速点击!)

javascript testing selenium unit-testing

12
推荐指数
2
解决办法
1874
查看次数

可以从ClojureScript中使用的JavaScript GUI库?

在我正在进行的一个Web开发项目中,我们需要创建一个页面(实际上是一个自己的迷你应用程序),它将具有交互式"Web 2.0"界面,更像是图形桌面应用程序,而不是典型的Web页面.

我希望使用更高级的语言,可以编译为JS用于客户端逻辑,而不是直接在JS中编程,而ClojureScript是我的首选.

我正在寻找一个可以在ClojureScript中使用的JS GUI库,它支持类似于"桌面"GUI库的编程风格,如Swing,QT,wxWidgets等.它应该允许我创建弹出<div>窗口"窗口",放置小部件,如按钮/标签/等.在其中,将事件处理程序附加到窗口小部件,等等.你知道哪一个会起作用吗?

javascript user-interface clojurescript

11
推荐指数
2
解决办法
2787
查看次数

如何测试Rails ERB模板的代码覆盖率?

我只是为传统的Rails应用程序构建测试套件.该simplecov宝石一直是伟大的发现它需要的测试覆盖率应用四角发暗(或者可能是完全没有使用的OK删除).我simplecov只是通过在顶部包含以下内容来调用test/test_helper.rb:

require 'simplecov'
SimpleCov.start('rails')
Run Code Online (Sandbox Code Playgroud)

问题是,这不会检查嵌入在模板中的所有代码.那里有各种各样的垃圾,我确信很多垃圾都可以删除,但如果代码覆盖工具可以指向未使用的位,那将是非常好的.

使用Ruby 1.9 Coverage库进行的一些实验让我相信,如果模板以某种方式预编译为Ruby代码,保存在Ruby源文件中,然后load编辑或require删除,而不是直接加载编译模板,那么它只能完成工作.与eval.或者,可能会破坏ERB在编译过程中向每个模板的每一行添加日志记录语句.

有没有人有任何其他想法如何衡量ERB模板的代码覆盖率?你知道一个可以做到这一点的已经制造的工具吗?(或者我必须成为构建和发布它的人吗?)

ruby testing code-coverage ruby-on-rails erb

11
推荐指数
1
解决办法
1892
查看次数

有没有办法让`git add --patch`响应单个`y`或'n`击键?

git add --patch是我的Git工作流程中不可或缺的一部分.唯一令我恼火的是经常不得不在每次y或之后按Enter键n.有没有办法让Git只用一个y或一个n按键接受一个问题的答案?

git

11
推荐指数
1
解决办法
779
查看次数