小编Wil*_*ill的帖子

商业消息中间件与开源的好处

我一直在评估几种开源消息队列技术,例如RabbitMQ,ActiveMQ,OpenAMQ等.我的问题是,使用诸如Tibco EMS,WebSphereMQ,Sonic等商业技术而不是像Active这样的东西会带来什么好处.还是兔子?尽管Java系统也将进行交互,但PHP将成为所涉及的主要语言.

tibco activemq-classic tibco-ems amqp rabbitmq

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

乳胶和multibib

我想将我的参考书目分成两部分,并发现multibib包似乎是完美的.但是:不知怎的,它不起作用,甚至简单的例子都不起作用:

\documentclass{article}
\usepackage{multibib}
\newcites{ltex}{\TeX\ and \LaTeX\ References}
\begin{document}
References to the \TeX book \citeltex{Knuth:1991} and to Lamport’s \LaTeX\ book, which appears only in the references\nociteltex{Lamport:1994}. Finally a cite to a Postscript tutorial \cite{Adobe:1985}.
\bibliographystyleltex{alpha}
\bibliographyltex{lit}
\renewcommand{\refname}{Postscript References}
\bibliographystyle{plain}
\bibliography{lit}
\end{document}
Run Code Online (Sandbox Code Playgroud)

随着bib文件看起来像那样

@book{Knuth:1991, author = {Knuth, Donald E.}, title = {The TEC book}, publisher = {Addison-Wesley, Reading, Massachusetts}, year = {1991}}
@book{Lamport:1994, author = {Lamport, Leslie}, title = {LATEX: A Document Preparation System}, publisher = {Addison-Wesley, Reading, Massachusetts, 2 …
Run Code Online (Sandbox Code Playgroud)

latex

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

如何从给定列表有效地构造B +树?

我想从给定大小的无序元素列表中构建B +树N.

我知道这样做的最佳界限是?(N / B * logM / B(N / B))块传输,这也是排序的最佳选择; 所以我不能简单地选择一个项目并单独在树中插入,因为它会给我O(N logB(N))块传输.

所以我认为构建树的最佳方法是首先对元素进行排序,因为无论如何都要对树进行排序.从那以后,我很茫然.

我想过这样的事情:

  1. 从列表中取出B元素
  2. 把它们写在某个地方(这是三个叶子)
  3. 采取块的最后一个元素(最大的); 它将是叶子父级的路由键
  4. 对下一个元素重复步骤1,直到父级中有B-1个路由键
  5. B-1父母中有路由键时,表示它已满.所以新的路由密钥将改为"祖父"(因此树增长一级),所有新的叶子将有一个新的父级
  6. 继续这样,直到N/B读取块

基本上,问题在于我没有考虑内部节点可以拥有的最小子节点数.因此,例如,一个节点最终只有一个子节点,这显然是错误的.

我到处寻找,但我找不到实际解释如何构建树的算法?(N / B * logM / B(N / B)).我找到的只是在列表中为每个项目简单插入树的算法,而没有利用B因子.

你能帮助我吗,也许能指出我正确的方向?

algorithm tree b-tree data-structures

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

Android Studio是否使用Gradle Daemon?

我使用Gradle Daemon从命令行构建Android项目,发现它非常快.但是,与命令行相比,Android Studio看起来有点慢,所以让我感到疑惑:Android Studio是否使用Gradle Daemon来加速构建还是其他让它们变慢的东西?

android gradle android-studio gradle-daemon

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

printf 格式字符串中的变量插值与替换

如果在printf(1)格式字符串中放入变量,ShellCheck会发出警告。为什么?

是:

printf "$file does not exist\n"
Run Code Online (Sandbox Code Playgroud)

在某些方面不如:

printf "%s does not exist\n" "$file"
Run Code Online (Sandbox Code Playgroud)

shell printf shellcheck

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

为什么PHP允许在一种情况下将文字传递给pass-by-reference参数而不允许其他情况?

该函数array_shift()通过引用获取一个参数.传递数组文字会导致致命错误:

$ php -r'var_export(array_shift(array("Test#0"));'; echo

致命错误:在第1行的命令行代码中,只能通过引用传递变量

这按预期失败.但是,当使用call_user_func_array调用函数时,PHP表现得很奇怪:

<?php
var_export(call_user_func_array("array_shift", array(array("Test #1"))));
echo "\n";

$arg1 = array("Test #2");
var_export(call_user_func_array("array_shift", array($arg1)));
echo "\n";

$args = array(array("Test #3"));
var_export(call_user_func_array("array_shift", $args));
echo "\n";
Run Code Online (Sandbox Code Playgroud)

执行时:

$ php test.php

'测试#1'

警告:参数1到array_shift()应该是一个引用,在第6行的/Users/kcc/test.php中给出的值NULL

警告:参数1到array_shift()应该是一个引用,在第10行的/Users/kcc/test.php中给出的值NULL

可以理解的是call_user_func_array(),不会触发致命错误,但为什么第一种形式可以正常工作呢?

php pass-by-reference php-internals

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

Tensorflow:成本的张量列表

我正在尝试使用Tensor Flow中的LSTM.我在网上找到了一个教程,其中包含一组序列,目标函数由LSTM的最后一个输出和已知值组成.但是,我希望我的目标函数使用每个输出的信息.具体来说,我试图让LSTM学习一系列序列(即在一个句子中学习单词中的所有字母):

cell = rnn_cell.BasicLSTMCell(num_units)
inputs = [tf.placeholder(tf.float32,shape=[batch_size,input_size]) for _ in range(seq_len)]
result = [tf.placeholder(tf.float32, shape=[batch_size,input_size]) for _ in range(seq_len)]

W_o = tf.Variable(tf.random_normal([num_units,input_size], stddev=0.01))     
b_o = tf.Variable(tf.random_normal([input_size], stddev=0.01))

outputs, states = rnn.rnn(cell, inputs, dtype=tf.float32)   

losses = []

for i in xrange(len(outputs)):
    final_transformed_val = tf.matmul(outputs[i],W_o) + b_o
    losses.append(tf.nn.softmax(final_transformed_val))

cost = tf.reduce_mean(losses) 
Run Code Online (Sandbox Code Playgroud)

这样做会导致错误:

TypeError: List of Tensors when single Tensor expected
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?是否tf.reduce_mean()采用张量值列表,还是有一些特殊的张量对象需要它们?

python list machine-learning tensorflow

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

C仅打印整数符号

我想知道是否(以及如何)只能打印数组条目的符号.例如,我有类似的东西

{1, -1, -1, 1}
Run Code Online (Sandbox Code Playgroud)

我希望输出看起来像

+ - - +
Run Code Online (Sandbox Code Playgroud)

我对C很if (... < 0)陌生,我能想出的唯一解决方案是某种形式的结果,它会导致a +-char.但这似乎很不方便.

这仅仅意味着相当大了"模式"我有图纸+1-1.如果有人可以提供帮助,我真的很高兴.

c printing sign

5
推荐指数
0
解决办法
76
查看次数

使用 request.stream 上传 ReSTful Flask 文件

我正在尝试创建一个简单的 Flask 端点,用于通过POST或上传文件PUT。我想要filenameURL 中的 ,然后(在请求标头之后)只是在请求中流式传输原始文件数据。

我还需要能够上传略大于 2GB 的文件,并且我需要在不将整个文件存储在内存中的情况下执行此操作。起初,这似乎很简单:

@application.route("/upload/<filename>", methods=['POST', 'PUT'])
def upload(filename):
    # Authorization and sanity checks skipped.

    filename = secure_filename(filename)
    fileFullPath = os.path.join(application.config['UPLOAD_FOLDER'], filename)

    with open(fileFullPath, 'wb') as f:
        copyfileobj(request.stream, f)

    return jsonify({'filename': filename})
Run Code Online (Sandbox Code Playgroud)

通过multipart/formdata上传,我可以简单地调用.save()文件。

但是,我上传的任何文件似乎都有不同的校验和(好吧sha256sum,在服务器上然后在源上)。上传标准文本文件时,换行符似乎被剥离了。二进制文件似乎以其他奇怪的方式被破坏。

Content-Type: application/octet-stream在上传时发送试图让 Flask 将所有上传视为二进制文件。request.stream(到 的代理wsgi.input)是否以非二进制形式打开?我似乎无法从 Flask 代码中弄清楚这一点。如何以原始二进制格式将请求数据流式传输到磁盘上的文件?

我对黑客持开放态度;这是一个测试项目(所以我也没有兴趣听到如何将它作为表单数据发送会更好,或者这不是上传文件的好方法等)

我正在通过以下方式测试:

curl -H 'Content-Type: application/octet-stream' -H 'Authorization: ...' -X PUT --data @/path/to/test/file.name https://test.example.com/upload/file.name
Run Code Online (Sandbox Code Playgroud)

python rest wsgi file-upload flask

5
推荐指数
0
解决办法
1129
查看次数

加速处理500万行坐标数据

我有一个包含两列(纬度,经度)的csv文件,其中包含超过500万行的地理位置数据.我需要识别与列表中任何其他点不在5英里范围内的点,并将所有内容输出回另一个具有额外列的CSV(CloseToAnotherPoint),True如果有另一个点在5英里内,并且False如果有"T.

这是我当前使用的解决方案geopy(不进行任何Web调用,只使用函数来计算距离):

from geopy.point import Point
from geopy.distance import vincenty
import csv


class CustomGeoPoint(object):
    def __init__(self, latitude, longitude):
        self.location = Point(latitude, longitude)
        self.close_to_another_point = False


try:
    output = open('output.csv','w')
    writer = csv.writer(output, delimiter = ',', quoting=csv.QUOTE_ALL)
    writer.writerow(['Latitude', 'Longitude', 'CloseToAnotherPoint'])

    # 5 miles
    close_limit = 5
    geo_points = []

    with open('geo_input.csv', newline='') as geo_csv:
        reader = csv.reader(geo_csv)
        next(reader, None) # skip the headers
        for row in reader:
            geo_points.append(CustomGeoPoint(row[0], row[1]))

    # for every point, …
Run Code Online (Sandbox Code Playgroud)

python csv geopy

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