ruby

  • 31st August 2025

Benchmarking compression programs

Read more →
  • 16th July 2013

Ouroborus Program - quine-relay 分析

Quine Relay

今天上网时看到有人分享了这个项目:quine-relay,点进去看是这样一个程序:一开始是一段Ruby代码,运行后生成Scala代码,后者运行后生成Scheme代码,如此执行,依次生成了Bash、Smalltalk、Tcl等代码,最后又回到最初的Ruby代码。这类程序有个名字,叫ouroborus programs。Ouroborus即衔尾蛇,是一条正在吞食自己尾巴的蛇,在这里刚好表示循环的概念。

…

Read more →
  • 10th February 2013

使用Burkhard-Keller tree优化近似串匹配

Approximate string matching

近似字符串匹配问题。

Levenshtein edit distance

在metric space中衡量两个字符串差异程度的一个指标,即通过一系列单字符的编辑操作把字符串A变成字符串B所需的最小编辑次数,其中的编辑操作可以是插入字符、删除字符以及修改字符。

计算编辑距离有个经典的Wagner-Fischer算法,使用了动态规划,用d(i,j)表示把字符串A的前i个字符变成字符串B的前j个字符所需的最小编辑次数(即子串的编辑距离)。

…

Read more →
  • 24th December 2011

网络学堂feeds2mail

用网页来看网络学堂的公告很费时间,就打算像 rss2email 那样,把消息制作成邮件。 用 Ruby 的 mechanize 来和网站交互,读取“课程公告”和“课程文件”中的消息, 把链接 sha1 后判断是否生成过提示邮件,没有则跟踪链接,用 w3m 输出成纯文本, 生成的邮件用 sendmail 投递。

…

Read more →