之前使用delayed_job , 发现从来不并发。都是顺序执行。 今天才发现,必须要启动多个workers,才行。 之前是由于只启动了一个worker...所以。。。。 $ RAILS_ENV=production script/delayed_job -n 8 start 这样就可以启动8 个进程了。 ^_^
Tire的使用入门
(tire 调试的关键是: 1. 会一些基本的elasticsearch 操作, curl -XDELETE... 2. 看log 3. 看 test 目录。 这个是最好的文档。 ) tire 是 elasticsearch的 RUBY工具 (大部分是RUBY, 而不是RAILS),下面是几个基本用法的笔记: 比较全面的文档 见: (example 文件夹)http://...
参加了ruby Beijing7月的聚会(joinedrubybeijingpartyonjuly)
7月21号,下着大雨,我去晚了。 结果林生让我去说两句。。。只好跟大家聊聊工作,说说养生。呼呼。。。 傻乎乎的照片一张,自己最近实在太瘦了: 来个合影:
主流全文索引工具的比较(lucene,sphinx,solr,elasticsearch)
前几天的调研( Rails3下的 full text search (全文本搜索, 全文匹配?) ), 我发现了两个不错的候选: 1. lucene (solr, elasticsearch 都是基于它) 2. sphinx 两者都有很不错的口碑。所以今天更加进一步的调查。把看到的有价值的文章记录在这里: 1. http://stackoverflow.com/que...
演讲:meta Programmingruby
8月11日参加了 ruby-china.org 组织的 RUBY 聚会,地点在盛大创新院。 我做了 meta programming ruby 的演讲。大概的讲述了 ruby中的 model diagram, self, 等一些概念,以及一些meta programming 的基本方法。 PPT 在这里。   或者其他格式:   ODP,  PDF ...
Rails3下的fulltextsearch(全文本搜索,全文匹配?)
最近遇到了一个问题,大数据量下的全文搜索,比较费时。 例如: 100W的数据下,想要搜索,使用where的话,有的时候耗时 20+ 秒。 无法忍受。 同时,100W 的数据,占用了至少1G的空间。 光是全盘扫描的话,也无法在1秒内完成。 所以,还得求助于索引(index) 记得在JAVA项目中,lucene 是个非常好的工具,貌似现在也是。不知道RAILS的世界中如何? 理...
Barcamp演讲:ruby中的单元测试(somethingaboutunittestsinruby)
8月5号,我参加了 barcamp 活动, 进行了 ruby中的单元测试这个演讲。讲述一些单元测试的基本方法,rpsec 中的 mock , stub , 某些大型系统中的测试框架和技巧。最后的提问环节很有意思,很多朋友都提出了关于创业啊,或者寻找程序员好手的想法,ruby-china 的石川(shichuan)、文洋、林生以及好几位朋友也到了场。  PPT在这里 单元测试中的几...
Linux性能优化笔记。。。(1g内存服务器)
近期服务器性能极不稳定,打开首页速度时快时慢(目前只有一个用户,属于企业内部应用,重点是数据量非常大, 1K~ 100K 之间) 下面是从我的邮件摘录出一部分内容: 1. 访问速度不稳定。时快时慢。 引用 下面是 今天的 (2012-05-25) 的日志: 可以看到, 前两个操作,耗费的时间非常久。。。 00:50:33 INFO: Completed 200 ...
Capistranoforrails3的步骤
最新的文章看这里: http://siwei.me/blog/posts/capistrano-basics 参考这个文章: http://stackoverflow.com/questions/4294970/rails-3-capistrano-tutorial-to-deploy-to-server-using-git http://www.aaginskiy.com...
Ruby中的单元测试
单元测试中的几个术语: double: the generic term for any kind of pretend object used in place of areal object for testing purpose. 是一种通用的称呼,来指: 所有用于替换真实对象的组建。 Dummy: 空对象,啥都不做。仅仅用于某些parameter的占位( fill pa...
Rubymetaprogrammingexamples
看附件吧。。。 Extracted from: Metaprogramming Ruby This PDF file contains pages extracted from Metaprogramming Ruby, published by the Pragmatic Bookshelf. For more information or to purchase a pap...
Ruby中的多行字符串(multiplelinesofstring)%q,%w,%q
%Q 代表一个 双引号的字符串, 例如 a = "foo" a = %Q{ foo } %q 代表单引号字符串, 不能使用 #{var}的形式。 例如: b = 'bar bar' b = %q{bar bar} CONST = "apple" abc = %q[ abc abc cde def this is a CONST: #{CONST} ]...
Rails3使用mongoid的步骤
mongodb 官方的文档 (http://www.mongodb.org/display/DOCS/Rails+3+-+Getting+Started) 是专门为 "mongomapper" 准备的。不适用于 "mongoid",所以,大家不要看了。 参考mongoid的官方文档: http://mongoid.org/ 1. 在 Gemfile中增加: gem ...
使用哪个?mongomapper?mongoid?mongomastic?
在一个新项目中使用mongodb, 选择Object mapper的时候,看到官方的推荐,我凌乱了: Several mappers are available: MongoMapper from John Nunemaker Mongoid from Durran Jordan Mongomatic from Ben Myles ...
Ruby,rspec中测试module
见: http://stackoverflow.com/questions/1542945/testing-modules-in-rspec/1546493#1546493 What mike said. Here's a trivial example: module code... module Say def hello "hello" end end...
Rails性能优化心得
近期一个项目要上线(终于要交付了),交付前进行了一些大数据量下的性能优化,心得记录下来: 1. 在开发的初期就要使用大量的数据。10K 比较合适。 有生产数据最好(比如需要跟其他系统进行交互),没有的话,就自己生成(factory girl). 很多时候,打开一个性能糟糕的页面,100条数据下看不出来什么,但是10K数据下就看出速度来了。 2. 使用设计良好的MVC模式。该...
Ruby中重新定义常量(redefineconstantsinruby)
有个需求: 生产环境中的代码, 有一个常量。 但是需要在测试环境中修改它,把它从一个真正的对象变成mock object. (提示:核心方法: const_set, const_defined? , remove_const ) 所以搜索了一下,有这个文章: ( http://stackoverflow.com/a/3377188/445908 ) 先定义这个mo...
使用assetpipleline的步骤
最近在改进自己做过的一个项目,在开发测试过程中感觉页面的打开时间比较久,看了下FIREBUG, 发现每次打开页面的时间,加载 js/css 居然用了5秒多。 所以下定决定,把rails3的 asset pipeline用上。 步骤记录在这里,供自己或其他人参考: 1. 使用3.2.0 版本的Rails. (只要支持 asset pipeline就好。) $ vim G...
Rails3中transaction对速度的影响还是比较显著的。
1.2k的数据: 14s vs 68s 7k 的数据: 3'38s 03:02:55 INFO: ==now start creating members 03:06:33 INFO: == done 没有测试 未加上 transaction的。。。估计得过10分。。。
Mongoid3发布了。彻底不支持ruby1.8。同学们注意了啊。
mongoid2 站点:http://two.mongoid.org/ 关于mongoid 查询的返回即时结果: 用 to_a 就可以了。 相当于ActiveRecord3 中的 .all 方法。 Item.limit(3).to_a see: http://stackoverflow.com/a/6607689/445908