标签归档:Ruby

神奇的DRb

前一阵研究用spread来承载数据分发,做的报价系统很失败。今天翻翻书,发现了DRb这个分布式ruby的实现。 一样地,直接上代码: #! /usr/bin/ruby require "drb" class My def get(arg1) oo=Hash.new oo['data']=’I am your baby’ oo['time']=Time.new.to_i oo['arg']=arg1 0.upto(1000) {|i| oo['dbf'+i.to_s]=rand } return oo end end m=My.new   DRb.start_service(‘druby://localhost:9999′,m) DRb.thread.join 这是服务器端的,我们用ruby server.ruby & 运行它。 接着写客户端的: #! /usr/bin/ruby require ‘drb’ require "profile" … 继续阅读

发表在 Ruby | 标签为 , | 留下评论

文本挖掘,构造垃圾站[一]

最近为ruby,ruby on rails的灵活和魔幻而着迷。爽。 上上周一个同事给我们介绍了自然语言处理的一些知识,觉得很不错。事实上虽然是雅虎公司的一名工程师,但是因为我不是搜索/邮箱/平台研发这些部门,基本上没有接触到比较深一点的东西,也许对于这些部门来说很简单的东西,对于我来说还是很难以理解的。 课后自己去找了些东西看了看,然后有这样一思路,可以用来构造一个垃圾站。 基本思路是: 1.首先我需要一个spider.这个spider由两个部分完成,第一部分是由一个feed管理程序来不停地从网上读rss回来,第二部分是常规spider,跟nutch什么的spider无异. 2.第二部分是预处理。这一部分包括:纯文本化、去垃圾。 3.第三部分是运算:分词,关键词提取,提取相关文章。 4.热点呈现,网站部分。 具体实现: rss 的spider要简单一些,但是根据抓回来的内容,也是很多质量不高的种子。比如新浪新闻的rss基本没有正文,而有些feedsky的种子后面跟着一个小尾巴(广告),需要处理。 对于没有正文的,很简单,将之平均长度算出来,如果某个种子的平均长度都很短,就将这个种子丢弃。 对于很多内容不咱的,但是广告链接一大堆的,也有办法:先纯文本化,一个文档就细化为一系列的段。html标签有的去掉了,有的换成空格了.这时将段按空格分组,如果没组长度都很短,即文章内容中若是大量充满着html标签,这样的多半是广告或是垃圾链接。 比如这一段: 2006-09-11   charon 写道  我现在对这类动态语言的非本质实现抱很大的怀疑态度。 最近除了这个新闻以外,IronPyton(python的.net版本)1.0也发布了。但看了一下,感觉虽然不是特别差,也是差得可以。也许这是给那些熟悉.net同时又想找一个动态语言的人一个选择? 两个语法相同但是标准库有差异(jruby可能语法上也略有差异),支持库有重大差异的语言,还能算是一个语言吗? 当年不论出于什么原因,Sun对于MS污染java的行为举起了大棒,现在这几个开源社区的动态语言,却纷纷搞出这么些方言来,不好说阿。   IronPython和JRuby可能还是不太一样的。dotnet平台实际上提供了自己统一的dotnet fraemwork类库,所谓不同的编程语言支持,更像是一种语法糖衣而已。但是JRuby其实实现了大部分ruby自己的库,用JRuby并非仅仅用一个ruby语法而已,关键是ruby本身的方便的库和rails框架,至于Java库的支持,只是辅助了。  Sun对JRuby的支持表明了一种态度,这种态度是承认ruby在企业快速开发方面的优势,而对ruby提供更好的支持。而Microsoft支持的IronPython更像是用python语法写C#程序那种感觉,换汤不换药。     charon                  robbin     浏览: 1653543 … 继续阅读

发表在 Ruby | 标签为 , , , , , | 一条评论

糟糕的ruby库

题目其实错了。 ruby的确是个不错的语言,正如名字一般,像宝石一样。另一个语言也是,lua,名为月亮,也很棒。 但是我用ruby来构建一个微型的抓取/索引/检索系统,分词,存储,检索都没什么问题,但是在抓取HTML页面解析时出了问题:因为我用了一个库,这个库又依赖于另一个库…. 最后输出时输出一大篇大篇的出错信息,我只好加上ruby spider.rb 2> /dev/null 才能看到我自己的调试信息。 试了一下,原来用begin rescue end 语句不太好用,仍然无法阻止错误信息的输出。 刚刚又发现,用gem build rlucene.gemspec来打包时,又莫名奇妙地出错了. 郁闷。ruby库的可靠性真不怎么样。 本文由蝌蚪安尼友情赞助.

发表在 Ruby, 未分类 | 标签为 | 一条评论

为什么是这样?

优化ruby版的分词,从44s每一千文本文件到了20多秒每一千文本文件后,再也优化不下去了。烦闷之极,发现这个现象: [st@localhost segment]$ ruby segment.rb time:24.292177 [st@localhost segment]$ ruby segment.rb time:18.223328 [st@localhost segment]$ ruby segment.rb time:17.331675 [st@localhost segment]$ ruby segment.rb time:17.316683 [st@localhost segment]$ ruby segment.rb time:17.275409 太神了,我连打几次命令,它自已运行就越来越快了? 本文由蝌蚪安尼友情赞助.

发表在 Ruby, 未分类 | 标签为 | 一条评论

Bug,又见Bug…

最近老遇到稀希事儿:我是不是可以买彩票去了呢? 1.这一阵遇到的第一个Bug: svn的bug 2.第二个:mysql客户端中,不能按上下箭头来得到历史命令,相反,一有向上箭头mysql client就crash掉 。 3.也是mysql:某一空表插入数据时 mysql 报错:lost connection.后来运维查了一下,是GLIBC的一个 Bug造成的。 4.Ruby的:open-uri库无法解析形如”http://www.sohu.com”这样的域名,报错为:路径为空,改 为”http://www.sohu.com/”,再运行就Ok.但是http://www.sohu.com应该算是一个合法的URL吧? 5.andot的:PHP-RPC的3.0 beta5给在注释中给了一个例子,是这样的: $obj->invoke("add",array(2,3)); 但是invoke方法的声明是: function invoke($method,& $args); 第二个参数是传址的。 这个更标准的做法是: $arg=array(2,3); $obj->invoke("add",$arg); 原因是,传地址的参数在很多情况下需要在函数体内被修改,array(2,3)这个是一个常数, $arg=array(2,3)才是一个变量。在php4.2.0以后,传不可修改的常数类给带&的函数,是会直接报Fatal ERROR的。 不过人家只是在注释里这么写,我有点吹毛求疵了。但是很多phper都容易犯将常数传址的这个 错误。包括大师级的,我也见过犯这个错误的。 6.PHPMyadmin也给我带来了一个彩蛋,呵呵。不过重现性较差,难以遇到:在某次操作之后,突然页面全变成了黑方框或问号,再刷也是这样。不过过了10分钟之后再看,就正常了。我只能理解为,数据在网络传输的过程被修改了,应该不算PHPMyadmin的Bug. 本文由蝌蚪安尼友情赞助.

发表在 未分类 | 标签为 , , | 留下评论

偶的像册写完了

昨天下午,myspace.cn罗川一行过来演讲。用手机抓拍了几张,打算放到空间上来。 没想到的是,这个gd又不含jpg的支持。 于是一郁闷,用ruby写了一个简单的像册。 在http://photo.162cm.com/ 不过目前服务器上仍缺Rmagick或是ImageMagick,所有的照片我只能是忽乱地放一些上去,等缩图用的imagemagick装上之后,就可以给大家秀秀我的照片了。我的电脑上都存了几个G的照片了。 覃总真是个有洁癖的人,服务器上一点也不肯多装。而我就不含忽,一来就给他用上10%以上的CPU占用。 Ruby On rails真是个好东西。 这样一个能上传/生成缩略图/管理/检索的像册(带顺手加了一个thickbox特效),两个小时就搞定了。另外,为了简单,它还不是Mysql做的存储。为了方便迁移,我把图处信息都放在文本文件里面。 听说RoR已经在JavaEye等一些较大的商业性网站上运行起来了,每天确认能支撑50W的Pageview 估计慢慢会火起来的。 本文由蝌蚪安尼友情赞助.

发表在 Ruby | 标签为 , , , | 2 条评论