Category: Ruby/Rails

LISP Classic Reload

Functional Programming(函数编程)最近越来越热,已经有点泛黄的LISP经典也被懂的抑或不懂的geek众翻出来玩。最近两个行家不约而同的开始做一个有趣的尝试:将LISP经典教材中的例子移植到最前沿的语言上——我猜一方面是温故知新,另一方面也是对新兴函数编程语言的一种深入的考察,顺带证明大师就是大师,经典就是经典,编程的思想和本质与语言无关,永远也不会过时。这两个有趣的project分别是: PCL -> Clojure by Stuart Halloway home | github | book PAIP in Ruby by Ola Bini home | github | book

Chinese Full-text Searching

现代化的全文检索引擎都对双字节有很好的支持,但是对于索引来说关键性的分词算法,则由于和语言特征直接相关,一般来说都需要单独开发。Ruby的世界里有两个出名的搜索引擎,一个是老资格的Ferret(这个站点貌似最近访问不到),另一个日渐热门的新贵Sphinx,当然这俩都不直接支持中文分词,而它们可以使用的中文分词算法目前看到的似乎是两个,都基于台湾蔡志浩的mmseg算法(基本上完全开放自由的中文分词算法很少,这个是不是唯一的我不清楚)。一个是CoreSeek的李沫南用C++实现的libmmseg,这个据说不错,但在我的Mac OS X下编译不能(BSD的一些头文件位置和Linux不一样);另一个是pluskid用Ruby编写的rmmseg,以及后面用C++改写的版本rmmseg-cpp,JavaEye的robbin有篇介绍提到它们的对比,可以参考。 因为我这里只能安装rmmseg,rmmseg-cpp版本也有问题rmmseg-cpp的问题经过和pluskid的交互已通过最新的patch解决,所以先研究这个,希望能够给MRP的全文检索功能找到解决方案。

MRP Progress II

MRP启动之后,上次介绍了Phase I的完成情况,之后很久都没什么时间去折腾,最多是零零散散的更新几行代码——事实上对于大部分页面来说,也就几行代码就行了——直到开始实现查询部分的功能,这个有点麻烦,这次趁着假期才算是完成了这个部分,于是就有了这个最初的发布版本。这一篇就针对这个过程中的一些体会稍作回顾,主要涵盖的是Controller和View的部分。

MRP 0.1 Released

All features listed on the launch have been completed. Thus we meet the first release milestone, so now you can visit the resurrected history and sniff around (personally I like to laugh at all my moronic posts there XD). Lately I will release MRP Progress 2 (here is the Part 1) to summarize the Rails

Continuation in Ruby

今天翻到另外一篇老文章(最近对旧闻着迷,觉得新闻都是那么的烂),是 AI 和 Lisp 大牛,现任 Google 研究院的头子 Peter Norvig 2001年写的 Teach Yourself Programming in Ten Years(郭晓刚君有一个非常好的中文译文),名字一看就是调侃满大街那种《21天精通 C++》之类的东西的,但是这个其实不光出书人的问题,这是一种世界共通的浮躁,浮躁是失败之源,所以看看这种文字真是舒服。

Thin + Nginx

最近在看关于Rails部署的一些问题,先记录点关键的信息。 Thin + Nginx with Rails Thin是一个非常新,发展非常快的,号称是最快最小的Ruby Web Server,使用了以下三个技术来确保这一点: the Mongrel parser, the root of Mongrel speed and security Event Machine, a network I/O library with extremely high scalability, performance and stability Rack, a minimal interface between webservers and Ruby frameworks

Tao of Ruby, Part O

题目很大,不见得文章也要大,可以一点点写,持续改进才是王道。 我一直觉得对比“计算机科学”和“IT行业”的热点是很有趣的事情,在过去的若干年里,“IT行业”忙着鼓噪多层架构、分布式计算、SOA、Web 2.0等等概念的时候,“计算机科学”既守旧又激进的前行着:说它守旧,因为它这么多年也没跳出John von Neumann、Alan Turing还有Donald Knuth这些大师们创造的体系,还在研究被Frederick P. Brooks断言的“本质困难”问题;说它创新,只要举出一个例子,MSR的Simon Peyton Jones的一份报告中说,编程语言的平均寿命是2年,大部分语言被创造出来供研究,在使用者不超过50个人的情况下1-2年之内死亡——当然这个死大部分时候还是有意义的,一大堆全新的概念就此被创造出来,作为一个突出的例子,有兴趣的朋友可以研究下Lisp语系(大概没有哪个其他编程语言有Lisp这么多的方言变种了吧),那简直就是计算机科学的一部发展史。