小编Mar*_*ier的帖子

使用PyMongo进行自签名SSL连接

我正在尝试使用PyMongo创建一个到MongoDB的安全SSL连接.目标是将此配置用于在EC2上运行的Mongo实例,我可以将其与Python客户端连接.为了测试,我只是想让配置首先在本地工作.我的失败尝试可以在这里找到.

我认为是问题的简短版本:我的客户端证书颁发机构文件ca.pem不正确.我拥有它的方式,这个文件实际上与我使用服务器端的文件相同.两者都是使用x509with 创建的openssl,我怀疑我的客户端文件需要某种不同的内容,但我不确定如何生成该内容或者这种怀疑是否正确.

以下是我为创建必要的证书和密钥所做的详细信息(在Mac El Capitan上):

首先,生成证书颁发机构:

$ mkdir ~/ssl
$ cd ~/ssl
$ openssl req -out ca.pem -new -x509 -days 3650    
# enter info
Run Code Online (Sandbox Code Playgroud)

生成服务器.pem文件:

$ openssl genrsa -out server.key 2048
$ openssl req -key server.key -new -out server.req
# enter info
$ openssl x509 -req -in server.req -CA ca.pem -CAkey privkey.pem -CAserial file.srl -out server.crt -days 3650
$ cat server.key server.crt > server.pem
Run Code Online (Sandbox Code Playgroud)

现在为客户做同样的事情:

$ openssl genrsa -out …
Run Code Online (Sandbox Code Playgroud)

python ssl mongodb x509 pymongo

10
推荐指数
1
解决办法
6600
查看次数

Java for循环最佳实践

当您需要索引时,循环数组的最佳方法是什么?

选项1:

int len = array.length;
for (int i = 0; i < len; ++i) {
    array[i] = foo(i);
}
Run Code Online (Sandbox Code Playgroud)

选项2:

for (int i = 0; i < array.length; i++) {
    array[i] = foo(i);
}
Run Code Online (Sandbox Code Playgroud)

或者,这没关系?或者有更好的方法吗?只是指出差异:在一种情况下,数组的长度作为循环中测试的一部分进行评估,尽管编译器通常应优化它.


其次,++i这里有什么不同i++吗?我绝对更喜欢++i它是C++,但我不确定Java.

java arrays for-loop coding-style

8
推荐指数
2
解决办法
2069
查看次数

具有正则化的Numpy线性回归

我没有看到我的正则线性回归代码出了什么问题.不合规我只是这个,我有理由肯定是正确的:

import numpy as np

def get_model(features, labels):
    return np.linalg.pinv(features).dot(labels)
Run Code Online (Sandbox Code Playgroud)

这是我的规范化解决方案的代码,我没有看到它有什么问题:

def get_model(features, labels, lamb=0.0):
    n_cols = features.shape[1]
    return linalg.inv(features.transpose().dot(features) + lamb * np.identity(n_cols))\
            .dot(features.transpose()).dot(labels)
Run Code Online (Sandbox Code Playgroud)

对于lamb的默认值为0.0,我的意图是它应该给出与(正确的)非正规化版本相同的结果,但差异实际上非常大.

有谁看到问题是什么?

python numpy machine-learning linear-regression

7
推荐指数
1
解决办法
7366
查看次数

为什么count_if()在没有算法标题的情况下工作?

试图刷新我的C++,我从网络搜索中选择了一个帮助函数,并在查看C++参考之前尝试了它:

int count_vowels(const std::string &input) {
    return std::count_if(input.begin(), input.end(), is_vowel);
}
Run Code Online (Sandbox Code Playgroud)

当我查看count_if()的更多细节时,我发现它是<algorithm>库代码(http://www.cplusplus.com/reference/algorithm/count_if/)的一部分,我在编译时没有包含它并运行它.为什么没有<algorithm>标题时函数会工作?我已经包含了<iostream>,<string>(显然)和<sstream <>.-std=c++11如果重要的话,我正在使用编译标志.

此外,如果它在没有<algorithm>标题的情况下工作,为了清楚起见,我是否应该将该标题放入其中(或者因为其他编译器不一定会选择必要的函数定义)?

c++ algorithm c++11

0
推荐指数
1
解决办法
129
查看次数