小编Dav*_*d Z的帖子

MessageDigest SHA-512与openssl不同

我无法弄清楚我在这里做错了什么.我有以下代码:

byte[] digest = new byte[0];
MessageDigest md = null;
try{
    md = MessageDigest.getInstance( "SHA-512" );
}
catch( NoSuchAlgorithmException e ) {
    return digest;
}
digest = md.digest( myString.getBytes() );
Run Code Online (Sandbox Code Playgroud)

查看NetBeans调试器中摘要byte []的十六进制值,它显示的内容与输出的不同:

echo "myString" | openssl dgst -sha512
Run Code Online (Sandbox Code Playgroud)

我猜这是一个字符编码问题,但是JVM和openssl是否使用了该机器的默认字符集?

任何帮助表示赞赏.

java message openssl sha digest

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

为什么不subprocess.Popen(...)总是返回?

我希望这是一个简单的python问题.

当我在python解释器中尝试以下内容时:

>>> import process
>>> def test(cmd):
...   p = subprocess.Popen(cmd)
...
>>> test(['ls', '-l'])
Run Code Online (Sandbox Code Playgroud)

它将运行ls -l,但我需要点击"返回"以获得新的>>>提示.

但是,当我尝试以下内容时:

>>> import process
>>> def test(cmd):
...   p = subprocess.Popen(cmd)
...   p.wait()
...
>>> test(['ls', '-l'])
Run Code Online (Sandbox Code Playgroud)

然后ls -l将立即运行>>>提示符运行.

另一个变种:

>>> import process
>>> def test(cmd):
...   p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
...
>>> test(['ls', '-l'])
Run Code Online (Sandbox Code Playgroud)

这将立即给我一个新的提示.

最后一个例子最接近我想要的.我的目标是启动一个子进程,等待它完成,然后通过引用在我的父进程中使用它的stdout,p.stdout同时让stderr只是打印到任何地方.

现在在我的实际应用程序中,最后一个版本只挂起: p = subprocess.Popen(cmd, stdout=subprocess.PIPE)有或没有p.wait().

谢谢,

查理

python subprocess

6
推荐指数
2
解决办法
9826
查看次数

git编译:Documentation/git-add.xml不验证

编译git时我有以下错误:

make[2]: Leaving directory `/home/xxx/git-master'
    XMLTO git-add.1
xmlto: /home/xxx/git-master/Documentation/git-add.xml does not validate (status 3)
xmlto: Fix document syntax or use --skip-validation option
I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd
/home/xxx/git-master/Documentation/git-add.xml:2: warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
D DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd
warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
validity error : Could not load the external subset "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
Document /home/xxx/git-master/Documentation/git-add.xml does not validate
make[1]: *** [git-add.1] Error 13 …
Run Code Online (Sandbox Code Playgroud)

git compiler-construction gnu

6
推荐指数
3
解决办法
2079
查看次数

linux g ++编译重定向stderr和stdout创建空文件

我将g ++编译器输出(stderr和stdout)重定向到linux上的文件.但它正在创建一个空文件.

我在其他帖子中读到stdout在每一行之后都没有刷新.好的,但是stderr呢.在我的情况下,有几个屏幕运行编译错误.所以,我对stderr输出感兴趣.没有创建stdout输出.

 g++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/ -I 
~/cplusplus/niVxWorksDeliver/TEES/ Algorithms.cpp 2> output
Run Code Online (Sandbox Code Playgroud)

上面的命令创建一个名为"output"的空文件.以下命令报告无效的null命令.

 g++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/ -I    
~/cplusplus/niVxWorksDeliver/TEES/ Algorithms.cpp &> output
Invalid null command.
Run Code Online (Sandbox Code Playgroud)

linux shell g++

5
推荐指数
1
解决办法
7970
查看次数

检测LaTeX中的输出设备

在LaTeX样式/类文件中,有没有办法检测正在使用哪个输出设备(或至少具有哪些功能)?原因是,我正在编写一个类文件,其中我想使用一些Postscript特定的包(例如pstricks),如果Postscript可用,但如果我只是写

\RequirePackage{pstricks}
Run Code Online (Sandbox Code Playgroud)

当然,如果我正在编译文档,那么会发生不好的事情pdflatex.理想情况下,我正在寻找可以使用的东西

\if@postscriptokay\RequirePackage{pstricks}\fi
Run Code Online (Sandbox Code Playgroud)

看起来这一定是可能的,因为我知道类似的包pgf可以改变他们的行为以使用基于输出设备的适当图形命令,但我已经完成了一些Google搜索并检查了我的LaTeX书并且没有找到方法.

latex postscript

5
推荐指数
2
解决办法
430
查看次数

使用 flalign (LaTeX) 的麻烦

我试图将 3 个带有“=”符号的方程对齐但也左对齐。我尝试了以下方法:

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\begin{flalign*}
RPC &= A+B\tilde{f} +C x  &\\
A   &= a+\eta             &\\
E   &= cte                &
\end{flalign*}

\end{document}
Run Code Online (Sandbox Code Playgroud)

有了这个,我得到了左边的东西,并且“=”符号对齐。但是,我还需要 A(在第二个等式中)和 E(在第三个等式中)与 R(在第一个等式中)对齐

有谁知道如何获得它?

谢谢

latex

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

Web应用程序的适当页面处理时间是多少?

我正在开发一个Web应用程序,它已经到了我已经拥有大部分必要功能的地步,我开始担心执行速度.所以我做了一些寻找信息,我发现了很多关于通过缩小CSS/JS,设置缓存控制头,使用单独的域用于静态文件,压缩输出等(以及基本服务器)来减少页面加载时间的问题.像memcached这样的技术).但是,假设我已经优化了所有这些,我关心的是我的Web应用程序生成一个页面实际需要多长时间,即没有缓存命中的纯服务器端处理时间.显然,将时间缩短的技巧将取决于我使用的语言和基础库,但目标是什么是合理的数字?为了比较,我'

我坚持使用一些代码来测量处理时间(或至少在我编写的代码中发生的部分),我通常会看到50-150ms范围内的值,这看起来非常高.我很想知道我应该把重点放在哪个方面,或者我对这个应用程序的整个方法是否太慢而且我应该放弃并尝试更简单的方法.(根据Firebug的Net选项卡,我不测量的处理部分通常会增加不到5毫秒,因为我正在同一台计算机上同时测试客户端和服务器.)

仅供参考我使用的是Werkzeug和SQLAlchemy/Elixir.我知道那些不是最有效的技术,但我真的只关心足够快,而不是尽可能快.

编辑:只是为了澄清,我上面引用的50-150ms是纯服务器端处理时间,适用于HTML页面本身.用户看到的页面加载所需的实际时间至少高出 200ms (因此,总共250-350ms)因为CSS/JS /图像的访问时间(尽管我知道可以通过正确使用缓存和Expires标题,精灵等,这是我将在不久的将来做的事情).网络延迟会在此基础上增加更多时间,因此我们可能会谈论总客户端加载时间为500毫秒.

更好的是,这里是一个典型示例的Firebug网络选项卡的屏幕截图: 来自Firebug的加载时间http://www.ellipsix.net/ext-tmp/loadtimes.png 这是我问的关于顶部的74毫秒.

performance timing

5
推荐指数
1
解决办法
969
查看次数

没有 time.sleep() 的 Python 循环延迟

在 MMO 游戏客户端中,我需要创建一个循环,该循环将在 30 秒内循环 30 次(每秒 1 次)。最让我失望的是,我发现我不能time.sleep()在循环内使用,因为这会导致游戏在循环期间冻结。

循环本身非常简单,唯一的困难是如何延迟它。

limit = 31
while limit > 0 :
  print "%s seconds remaining" % (limit)
  limit = limit -1
Run Code Online (Sandbox Code Playgroud)

python 库在客户端中作为 .pyc 文件存在于一个单独的文件夹中,我希望我可以避免弄乱它们。您认为有什么方法可以完成这种延迟还是死路一条?

python loops delay

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

在 DataFrame 中按行计算非零值的非重叠运行

假设我有以下 Pandas DataFrame

id | a1 | a2 | a3 | a4 
1  | 3  | 0  | 10 | 25   
2  | 0  | 0  | 31 | 15  
3  | 20 | 11 | 6  | 5  
4  | 0  | 3  | 1  | 7  
Run Code Online (Sandbox Code Playgroud)

我想要的是计算n每行中连续非零值的非重叠运行次数,对于n. 所需的输出是:

id | a1 | a2 | a3 | a4 | 2s | 3s | 4s
1  | 3  | 0  | 10 | 25 | …
Run Code Online (Sandbox Code Playgroud)

python numpy dataframe pandas

5
推荐指数
1
解决办法
585
查看次数

将包含 latin-1 字符的字节解码为十进制表示的字符串

我正在开展一个迁移项目,将 Web 服务器层从 python 2.7.8 升级到 python 3.6.3,并且在某些特殊情况下遇到了障碍。\n当从客户端收到请求时,有效负载将使用本地传输pyzmq 现在在bytespython3 中交互,而不是str(像在 python2 中一样)。

\n

现在,我收到的有效负载使用iso-8859-1 (latin-1)方案进行编码,我可以轻松地将其转换为字符串作为payload.decode('latin-1')并将其传递给下一个服务(svc- save-entity)需要字符串参数。

\n

但是,后续服务“ svc-save-entity ”期望非 latin-1 字符(如果存在)以 ASCII 字符引用(例如éfor \xc3\xa9)而不是十六进制(例如\\xe9for \xc3\xa9)表示。

\n

我正在努力寻找一种有效的方法来实现这种转换。任何Python专家都可以指导我吗?本质上我需要一个函数的定义decode_tostring()

\n
payload = b'Banco Santander (M\\xe9xico)'         #payload is in bytes\npayload_str = decode_tostring(payload)           #function to convert into string\npayload_str == 'Banco Santander (México)'  #payload_str is a string in ASCII Character Reference\n
Run Code Online (Sandbox Code Playgroud)\n

请的定义decode_tostring():) …

python iso-8859-1 python-3.x python-3.6

5
推荐指数
1
解决办法
1858
查看次数