草庐IT

架构篇-怎么构建健壮的分布式系统?

全部标签

ruby - 我天真的最大团发现算法比 Bron-Kerbosch 的运行得更快。怎么了?

简而言之,我的原始代码(用Ruby编写)如下所示:#$seenisahashtomemoizepreviouslyseensets#$sparseisahashofusernamestoalistofneighboringusernames#$setisthelistofoutputclusters$seen={}defsubgraph(set,adj)hash=(set+adj).sortreturnif$seen[hash]$sets.pushset.sort.join(",")ifadj.empty?andset.size>2adj.each{|node|subgraph(set

ruby - 我怎么知道 BigDecimal 是否解析失败?

我正在从csv导入数据,我需要将一些值转换为BigDecimal,如果无法解析则引发错误。根据测试,BigDecimal("invalidnumber")返回0的BigDecimal。这没问题,但有点乱,除了有效值为0...Float("invalidnumber")的行为不同并抛出异常...我目前的解决方案是:classStringdefto_bdbeginFloat(self)rescueraise"Unabletoparse:#{self}"endBigDecimal(self)endend我是否完全遗漏了什么? 最佳答案 在

ruby-on-rails - Ruby 通用文件系统库

我正在寻找用于ruby​​的“虚拟文件系统”类型库。我希望能够拥有一个完全通用的文件系统,我可以轻松地在使用本地文件和使用S3或使用FTP或类似的东西之间切换。(等同于Java的VFS)有没有人为ruby​​使用过任何类型的通用文件系统(我只需要它来支持本地文件和AmazonS3)如有任何指点,我们将不胜感激。 最佳答案 看看Vfs(虚拟文件系统)——它通过本地文件系统、AWSS3、SFTP提供简单而统一的接口(interface)。概览:http://alexeypetrushin.github.com/vfsS3样本:http:

ruby - 如何在 Ruby 中构建可移植的绝对路径?

让我们假设一个脚本需要访问一个目录,比如在“任意”操作系统上的/some/where/abc。在Ruby中构建路径有几个选项:File.join('','some','where','abc')File.absolute_path("some#{File::SEPARATOR}where#{File::SEPARATOR}abc",File::SEPARATOR)标准API中的路径名我相信第一个解决方案足够清晰,但符合惯用语。根据我的经验,一些代码审查会要求评论来解释它的作用......问题有没有更好的方法来构建绝对路径是Ruby,其中更好的意思是“完成工作并为自己说话”?

ruby - gem 安装 dm-postgres-adapter 构建错误

我正在尝试构建dm-postgres-adapter但出现此错误。sudogeminstalldm-postgres-adapterBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingdm-postgres-adapter:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingformain()in-lpq...y

ruby - 在 Xcode 运行脚本构建阶段使用 rvm 强制指定 Ruby

在Xcode之外,我使用特定版本的Ruby,使用RVM管理多个Ruby安装。Apple的命令行开发工具将Ruby安装在/usr/bin/ruby并且版本为1.8.7。我通过RVM使用1.9.3。有没有办法强制Xcode在运行其运行脚本构建阶段时使用我的1.9.3安装?我已经尝试将Shell路径设置为我的特定Ruby的完整路径,但这似乎没有什么不同,我的意思是我在1.9.3中安装的特定Gems不可用/在Xcode中运行时对脚本可见。如果我在命令行上通过xcodebuild运行我的项目,运行脚本阶段会使用我的特定Ruby,因为它是从我的shell环境中运行的(即使项目文件中的Shell路径

ruby - Ruby 对 curl 进行系统调用的正确语法是什么?

要刷新Redmine,我需要SVN从我们的提交后Hookping我们的Redmine安装。我们的提交后Hook是一个生成电子邮件的Ruby脚本。我想插入一个调用:curl--insecurehttps://redmineserver+webappkey此调用在命令行中有效,但当我尝试这样做时:#!/usr/bin/ruby-wREFRESH_DRADIS_URL="https://redmineserver+webappkey"system("/usr/bin/curl","--insecure","#{REFRESH_DRADIS_URL}")这是行不通的。我如何在ruby中做到这一

ruby - 写密集型特征的架构

我在当前项目中使用由Oracle数据库和memcached支持的RubyonRails。有一个非常常用的功能,它依赖于单个数据库View作为数据源,并且该数据源内部有其他数据库View和表。这是一个虚拟数据库View,能够从一个地方访问所有内容,而不是物化数据库View。大多数情况下,如果用户正在使用他们希望更新的功能,那么让数据保持最新很重要。从这个View获取数据时,我将安全表内部连接到View(安全表不是View本身的一部分),其中包含一些我们用来在更细粒度级别上控制数据访问的字段。例如,安全表有user_id,prop_1,prop_2列,其中prop_1,prop_2是数据库

ruby-on-rails - 如何编写一个健壮的永无止境的流程?

我问了一个关于目录监视的不同问题,有人回答了这个问题,但问题的另一半是如何最好地在ruby​​中创建一个永无止境的进程来做到这一点。以下是要求:永远奔跑可监控(即知道它是在运行还是在运行)有某种方法可以重新启动它并确保它正常运行(上帝?)开始/停止使用Capistrano(会很好!)我们看过BackgroundRb,但它似乎有点过时而且老实说不可靠!我们查看了DelayedJob,但这似乎适合一次性工作(因为永无止境的工作似乎会阻止任何其他工作完成,因为工作是按顺序完成的)。我们正在运行构成我们环境的一堆Ubuntu服务器。有什么想法吗? 最佳答案

ruby - 如何通过 Sublime Text 2 构建系统运行 Ruby Gem?

我尝试了不同的设置,例如:{"cmd":"rubocop'$file_name'"}我也试过设置路径等:{"cmd":"rubocop'$file_name'","path":"~/.rvm/bin","selector":"source.rb","working_dir":"$project_path"}对于这两者,我都收到一条错误消息:[Errno2]Nosuchfileordirectory[cmd:rubocop'configurer.rb'][dir:/home/rafal/Documents/Projects/configurer][path:/usr/lib/lightd