草庐IT

ruby-on-rails - 在 OSX Yosemite 上安装 EventMachine gem 时出错

这是错误消息的完整输出:Fetching:eventmachine-1.0.3.gem(100%)Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingeventmachine:ERROR:Failedtobuildgemnativeextension./Users/Tyler/.rvm/rubies/ruby-2.2.0/bin/ruby-r./siteconf20141229-47086-wfdm3m.rbextconf.rbcheckingforrb_trap_immediateinruby.h,r

ruby - 如何从 Ruby 中的线程返回值?

如果我有以下代码:threads=[](1..5).eachdo|i|threads我必须做什么才能获得进程命令的输出?我如何创建自定义线程才能完成此任务? 最佳答案 脚本threads=[](1..5).eachdo|i|threads说明了如何完成您的需要。它的好处是将输出与生成它的线程保持在一起,因此您可以随时加入并获取每个线程的输出。运行时,脚本打印Hifromthread#1Hifromthread#2Hifromthread#3Hifromthread#4Hifromthread#5

ruby - 处理在 Ruby 线程中引发的异常

我正在寻找异常处理经典问题的解决方案。考虑以下代码:deffoo(n)puts"for#{n}"sleepnraise"after#{n}"endbeginthreads=[][5,15,20,3].eachdo|i|threadseputs"EXCEPTION:#{e.inspect}"puts"MESSAGE:#{e.message}"end此代码在5秒后捕获异常。但是如果我将数组更改为[15,5,20,3],上面的代码会在15秒后捕获异常。简而言之,它总是捕获第一个线程中引发的异常。任何想法,为什么会这样。为什么每次3秒后不捕获异常?我如何捕获任何线程引发的第一个异常?

ruby-on-rails - 带 ruby​​ 调试器的 Rails 抛出 'Symbol not found: _ruby_current_thread (LoadError)'

我有标准的ruby​​-head和Rails3.1rc4。我按照http://dirk.net/2010/04/17/ruby-debug-with-ruby-19x-and-rails-3-on-rvm/中的说明安装了ruby​​-debug。但是当我运行railss--debugger时它会抛出这个奇怪的错误/Users/schovi/.rvm/gems/ruby-head/gems/activesupport-3.1.0.rc4/lib/active_support/dependencies.rb:237:in`require':dlopen(/Users/schovi/.rvm

ruby - 纯 Ruby 并发哈希

实现可跨多个线程修改但使用最少锁数的哈希的最佳方法是什么。出于这个问题的目的,您可以假设哈希将是重读的。它在所有Ruby实现中都必须是线程安全的,包括那些以真正同步的方式运行的实现,例如JRuby,并且它必须用纯Ruby编写(不允许使用C或Java)。请随意提交一个总是锁定的简单解决方案,但这不太可能是最佳解决方案。优雅点,但锁定的可能性较小胜过较小的代码。 最佳答案 好的,现在您已经指定了“线程安全”的实际含义,下面是两个可能的实现。以下代码将在MRI和JRuby中永远运行。无锁实现遵循最终一致性模型,如果主线程不断变化,每个线程

ruby - 无法构建 gem native 扩展(安装 Compass)

当我尝试安装最新版本的compass(https://rubygems.org/gems/compass/versions/1.0.0.alpha.17)时,出现以下错误。ERROR:Errorinstallingcompass:ERROR:Failedtobuildgemnativeextension.ERROR:Errorinstallingcompass:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.r

javascript - d3 + 主干 : updating elements for which data has changed

我将d3与Backbone.js模型一起使用。当模型属性发生变化时,将触发一个事件,并用hasChanged()标志标记模型,并返回一个changedAttributes()散列。我了解如何使用d3的enter()和exit()来处理已创建或删除的模型。我无法弄清楚的是如何根据模型属性的变化修改相应的DOM元素。我可以使用Backbone助手来确定要修改的内容,但是d3的下一步是什么? 最佳答案 我在d3邮件列表上得到了一些有用的回复:http://groups.google.com/group/d3-js/browse_threa

javascript - "Isolate"在V8中的作用是什么?怎么可能单独制作 "Isolate"呢?

到目前为止我发现的“隔离”的解释。实验#1:http://izs.me/v8-docs/classv8_1_1Isolate.html“Isolate表示V8引擎的一个孤立实例。V8分离株具有完全独立的状态。来自一个隔离区的对象不得用于其他隔离区。当V8被初始化时,一个默认的isolate被隐式地创建和输入。嵌入器可以创建额外的隔离并在多个线程中并行使用它们。在任何给定时间,最多只能有一个线程进入隔离区。Locker/UnlockerAPI可用于同步。”实验#2:https://developers.google.com/v8/get_started“隔离是一个具有自己堆的VM实例。”

javascript - 如何使用 javascript 计时来控制鼠标停止和鼠标移动事件

所以我在aspx页面上有一个控件(map)。我想写一些javascript来加载以下设置:当鼠标停在控件上时=一些代码当鼠标移动时=一些代码(但前提是移动时间超过250百万秒)这可以在停止和移动时触发代码...functionsetupmousemovement(){varmap1=document.getElementById('Map_Panel');varmap=document.getElementById('Map1');map1.onmousemove=(function(){varonmousestop=function(){//codetodoonstop},threa

javascript - node.js 中的低优先级作业

基于Node使用单线程管理一切的事实,我很好奇我应该如何处理低优先级的工作此作业不断运行并分析数据(假设它是一个setTimeout),但它所做的事情需要花费大量时间,我希望它在调度程序中具有非常低的优先级.我不认为我可以在单独的进程中运行它,因为我需要经常修改它的工作指令(它使用我的主进程的变量工作,所以它需要能够不断地访问它们)。你可以把它想象成一大堆任务,它会不断地处理,但这些任务的工作集是由主进程控制的。一个单独的进程需要两者之间不断请求以交换数据,所以这似乎是个坏主意一个单独的线程,比如网络worker,可能会更快?我不知道Node是否支持它们最好是它是一个在计时器上运行的简