小编jkn*_*rkn的帖子

Ruby on Rails 3:通过Rails将数据流式传输到客户端

我正在开发一个与RackSpace cloudfiles通信的Ruby on Rails应用程序(类似于Amazon S3但缺少某些功能).

由于缺乏每对象访问权限和查询字符串身份验证的可用性,因此必须通过应用程序调解用户下载.

在Rails 2.3中,看起来您可以动态构建响应,如下所示:

# Streams about 180 MB of generated data to the browser.
render :text => proc { |response, output|
  10_000_000.times do |i|
    output.write("This is line #{i}\n")
  end
}
Run Code Online (Sandbox Code Playgroud)

(来自http://api.rubyonrails.org/classes/ActionController/Base.html#M000464)

而不是10_000_000.times...我可以在那里转储我的cloudfiles流生成代码.

麻烦的是,这是我在Rails 3中尝试使用这种技术时得到的输出.

#<Proc:0x000000010989a6e8@/Users/jderiksen/lt/lt-uber/site/app/controllers/prospect_uploads_controller.rb:75>
Run Code Online (Sandbox Code Playgroud)

看起来可能call没有调用proc对象的方法?还有其他想法吗?

streaming ruby-on-rails cloudfiles ruby-on-rails-3

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

如何在PHP/MySQL应用程序中充分利用多核CPU?

我维护一个自定义的类似CMS的应用程序.

每当提交文档时,都会执行几项任务,这些任务可以大致分为以下几类:

  1. MySQL查询.
  2. HTML内容解析.
  3. 搜索索引更新.

类别1包括与文档内容相关的各种MySQL表的更新.

类别2包括解析存储在MySQL LONGTEXT字段中的HTML内容以执行一些自动锚标记转换.我怀疑在这项任务中花费了大量的计算时间.

类别3包括仅使用与文档对应的少数字段对基于MySQL的简单搜索索引的更新.

所有这些任务都需要完成才能使文档提交完整.

承载此应用程序的计算机具有双四核Xeon处理器(总共8个核心).但是,每当文档提交时,执行的所有PHP代码都被限制为在其中一个核上运行的单个进程.

我的问题:

您有多少方案(如果有的话)将PHP/MySQL Web应用程序处理负载分散到多个CPU内核中?我理想的解决方案基本上会产生一些进程,让它们在几个内核上并行执行,然后阻塞直到所有进程完成.

相关问题:

您最喜欢的PHP性能分析工具是什么?

php mysql multicore

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

Clojure/Java:用于声音频谱分析的Java库?

我正在寻找一个可以接受一大块音频数据并在给定频段内返回平均幅度的库.

我已经在comp.dsp上问了这个问题,但我很清楚,使用基本的FFT库获取自己构建这个问题的技术诀窍将需要比现在更多的时间和精力.以下是我的原始问题以及更多详情:http://groups.google.com/group/comp.dsp/browse_thread/thread/e04f78d439e9e2bd

我发现了许多用于播放声音的漂亮库(过去我使用过JSyn),但似乎没有设置它们来返回有关声音样本的快速和脏的光谱信息.

任何指针都将非常感激.

java audio fft clojure spectrum

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

Clojure(Java)和Ruby应用程序通信的最快可靠方式

我们有云托管(RackSpace云)Ruby和Java应用程序,它们将按如下方式进行交互:

  1. Ruby应用程序向Java应用程序发送请求.请求由包含字符串,整数,其他映射和列表(类似于JSON)的映射结构组成.
  2. Java应用程序分析数据并将回复发送给Ruby App.

我们感兴趣的是评估消息传递格式(JSON,缓冲区协议,Thrift等)以及消息传输通道/技术(套接字,消息队列,RPC,REST,SOAP等).

我们的标准:

  1. 往返时间短.
  2. 往返时间标准偏差小.(我们了解垃圾收集暂停和网络使用高峰会影响此值).
  3. 高可用性.
  4. 可伸缩性(我们可能希望将来有多个Ruby和Java应用程序交换点对点消息).
  5. 易于调试和分析.
  6. 良好的文档和社区支持.
  7. Clojure支持的奖励积分.
  8. 良好的动态语言支持.

你会推荐什么样的消息格式和传输方法?为什么?

我在这里收集了一些我们已经收集过的材料供审查:

ruby java messaging clojure network-protocols

14
推荐指数
1
解决办法
2433
查看次数

Clojure:相当于Common Lisp READ函数?

当我想将存储在文件中的S表达式读入正在运行的Common Lisp程序时,我执行以下操作:

(defun load-file (filename)
  "Loads data corresponding to a s-expression in file with name FILENAME."
  (with-open-file (stream filename)
    (read stream)))
Run Code Online (Sandbox Code Playgroud)

例如,如果我有一个名为foo.txt包含S表达式的文件(1 2 3),则上述函数将返回该表达式,如果调用如下:(load-file "foo.txt").

我一直在搜索和搜索,并没有在Clojure中找到同样优雅的解决方案.有任何想法吗?

谢谢!

lisp file clojure

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

nginx:当使用nginx作为反向代理时,是否可以在访问日志中捕获响应头?

我们使用nginx作为反向代理来控制和记录对Clojure(Java)Web服务应用程序的访问.

我们能够access_log使用nginx 生成并捕获传入的头文件.我们的Clojure应用程序通过log4j记录活动.麻烦的是,我们无法匹配access_log应用程序生成的条目中的条目.

该应用程序通过发送响应标头和正文来响应访问.我们可以自由更改这些响应标头.我最初的想法是生成一个UUID,它对应于每个Web服务请求,并在回复标头内将其发送回用户X-Uuid.我的想法是我可以通过创建自定义来捕获此响应log_format:

log_format lt-custom '$remote_addr - $remote_user [$time_local]  '
                     '"$request" $status $body_bytes_sent '
                     '"$http_referer" "$http_user_agent" $request_time $http_x_uuid';
Run Code Online (Sandbox Code Playgroud)

它看起来像nginx可以捕获传入请求中的标头但不是传出回复(我通过替换$http_x_uuid来验证这一点$http_content_type).

所以!有没有办法access_log通过使用nginx捕获传出的回复标题来绑定我的enties和我的log4j条目?有没有更好的办法?我宁愿不必依赖用户生成自己的UUID.

非常感谢!

java logging web-services clojure nginx

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

具有异步加载的Angular bootstrap typeahead是后面的一个字符

我在一个指令中实现了以下类型的代码.

这是HTML:

<div>
    <input type="text"
           ng-model="company"
           uib-typeahead="company as company.name for company in companyByName($viewValue)"
           typeahead-loading="loadingCompanies"
           typeahead-no-results="noCompanyResults"
           class="form-control">
    <i ng-show="loadingCompanies" class="glyphicon glyphicon-refresh"></i>
    <div ng-show="noCompanyResults">
        <i class="glyphicon glyphicon-remove"></i> No Results Found
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是JavaScript:

  scope.companyByName = function() {
    var companyName = scope.company.name ? scope.company.name : scope.company;
    var searchTerms = {name: companyName, startRow: 0, endRow: 20};

    return $http.post("backend/get/companies.php", searchTerms).then((result) => {
      $log.info("Companies", result.data.results);
      return result.data.results;
    });
  };
Run Code Online (Sandbox Code Playgroud)

PHP代码backend/get/companies.php接受一个搜索字符串并返回与对象的数组idname与包含该搜索字符串名称属性.

以下是我遇到的行为:

当我在typeahead字段中键入单个字符"f"时,companyName传递给后端脚本的值为""(空字符串).backend/get/companies.php返回所有结果.

当我在typeahead字段中键入第二个字符"fo"时,companyName传递给后端脚本的值为"f". backend/get/companies.php …

javascript php angularjs angular-ui-typeahead angular-bootstrap

6
推荐指数
1
解决办法
2563
查看次数

Java:如何判断我的系统当前使用的是哪个 fontconfig 文件?

我正在尝试调试第三方 Java 应用程序中与字体相关的问题。具体来说,ChemAxon JChem。我一直在咨询本指南:http : //java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html

部分问题是我不确定我的 Java 设置当前引用的是哪个 fontconfig.properties.src 文件。

这是我的字体配置文件:

$ ls fontconfig*src 
fontconfig.Fedora.properties.src  fontconfig.properties.src   
fontconfig.SuSE.properties.src  fontconfig.Ubuntu.properties.src
Run Code Online (Sandbox Code Playgroud)

我的系统是 CentOS 系统,所以我想它可能是引用默认fontconfig.properties.src文件或fontconfig.Fedora.properties.src文件,因为 CentOS 和 Fedora 都是从 Red Hat 派生的。

那么,我能否确定fontconfig我的系统正在使用哪个文件?

谢谢,

——约翰·大卫

java centos fontconfig

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

PHP命令行脚本忽略了php.ini和ini_set('memory_limit',...)指令

我面临着常见的"致命错误:内存不足(分配30408704)(试图分配24个字节)......"PHP致命错误.通过Apache提供的页面没有表现出这种行为.

我尝试过以下方法:

  1. 将php.ini中的memory_limit增加到更大的值.
  2. 通过调用脚本本身内增加memory_limit的ini_set('memory_limit', -1), ini_set('memory_limit', '-1'), ini_set('memory_limit', 100000000),ini_set('memory_limit', '128M'),等.
  3. unset()不需要的数组和对象,以鼓励垃圾收集器释放内存.
  4. 联系网络主机.他们通常非常有能力和知识渊博,但也无法帮助我解决这个问题.
  5. 我已经尝试使用-c命令行标志显式包含一个php.ini文件来手动选择具有各种值的特定php.ini文件.
  6. 我已经尝试使用原始字节数和64M,128M等值设置php.ini中的memory_limit.
  7. 托管服务提供商能够以root身份运行脚本,没有任何问题,但遇到了我使用非root用户运行时遇到的相同问题.也许涉及某种权限问题?

无论我尝试什么,错误信息都是一样的.我的命令行脚本似乎忽略了对它的更改memory_limit.

我倾向于尝试确保我的脚本具有内存效率,但我现在需要通过简单的HTML DOM解析大量的HTML,并且它在解析器中遇到了内存不足的问题.为了减少脚本的内存占用,我尝试使用DOMDocument.这也无济于事.实际上,现在在脚本的其他地方触发了内存不足错误.

我的问题:有没有人遇到过这个或类似的问题?你有什么建议?

谢谢.

php domdocument simple-html-dom memory-limit

4
推荐指数
1
解决办法
6244
查看次数

Erlang:如何在远程节点上生成的进程中查看io:format/2调用的输出

我正在开发一个分散的Erlang应用程序.我目前正在使用单个PC并通过erl使用-sname标志初始化来创建多个节点.

当我spawn/4在其主节点上使用进程生成进程时,我可以看到io:format/2该进程中的调用在其主erl实例中生成的输出.

当我通过spawn/4组合使用远程生成进程时register_name,输出io:format/2有时会重定向回到进行erl远程spawn/4调用的实例,有时仍然完全不可见.

类似地,当我使用时rpc:call/4,io:format/2调用的输出被重定向回到进行erl`rpc:call/4'调用的实例.

如何获得将调试输出发送回其父erl实例的进程?

erlang rpc distributed spawn

4
推荐指数
1
解决办法
2406
查看次数

TypeScript:如何导入 ES6 JavaScript 类?

我有一个名为 DB 的 ES6 JavaScript 类,定义如下:

// db.js
"use strict";

export default class DB {
  ...
}
Run Code Online (Sandbox Code Playgroud)

以及一个如下所示的 TypeScript 文件:

// surgeons.ts
"use strict";

import DB from "./db";
Run Code Online (Sandbox Code Playgroud)

我希望这能正常工作,但出现以下错误:

Browserify Error { [TypeScript error: app/source/common/surgeons.ts(3,16): Error TS2307: Cannot find module './db'.]
  message: 'app/source/common/surgeons.ts(3,16): Error TS2307: Cannot find module \'./db\'.',
  fileName: 'app/source/common/surgeons.ts',
  line: 3,
  column: 16,
  name: 'TypeScript error' }
Run Code Online (Sandbox Code Playgroud)

我尝试按照此处所述定义 db.d.ts 文件,但这产生了错误:

Browserify Error { [TypeScript error: app/source/common/surgeons.ts(5,16): Error TS2306: File 'app/source/common/db.d.ts' is not a module.]
  message: 'app/source/common/surgeons.ts(5,16): …
Run Code Online (Sandbox Code Playgroud)

javascript import typescript ecmascript-6 typescript2.3

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

在 Clojure 项目中存储项目版本号的常见约定是什么?

我们的团队正在处理使用 deps.edn 的 Clojure 项目

我们习惯于 NPM 项目,将版本号存储在 package.json 文件中。看来 Leiningen 用户之前可能已将版本号存储在 project.clj 文件中。是否有针对 Clojure 项目版本控制的社区范围惯例​​?我看到人们和官方文档提到使用 Git 标签,但想知道使用 deps.edn 的开发人员是否有某种流行的方式将版本号存储在文件中。

谢谢你!

versioning version clojure leiningen deps-edn

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