I am LAZY bones?
AN ancient AND boring SITE

2009年 09月 29日 的归档

神一样的Quine

有个很牛B的小日本搞出来的东西

这段ruby代码,相当牛,如作者所说,运行这段ruby,生成一段python代码,再运行python代码,生成一段perl代码,再运行perl代码,生成一段lua代码。。。这样一直下去,经过11种语言,最后。。。居然又能重新得到之前的ruby代码。。
这11种语言是:ruby 1.8.7-p72、Python 2.5.2、perl v5.10.0、Lua 5.0.3、OCaml 3.10.2、ghc-6.8.2、gcc 4.3.2、java “1.5.0_17″、beef 0.0.6-2、whitespace 0.3-2、unlambda 2.0.0-5。
est这里看到了介绍,实在忍不住,把所有解释器都装上验证了一把,果然是可以的。彻底无语了,特此把中间结果都打包放上来,供大家瞻仰。
ubuntu下也想自己试试的话,得确保有这些包: ruby lunar lua50 ocaml-interp ghc6 sun-java5-jdk beef whitespace unlambda

PS: 我以为 brainfuck 就已经很BT了,没想到还有更BT的 whitespace ,彻底无语了。

在linux下显示农历

看到标题,很多熟悉linux的朋友估计都会想到曾经的 lunar-applet ,我之前也用过这款软件。
不过lunar-applet其实是基于gnome-panel的clock这个applet的代码做的,只是替换了原来显示日历的控件而已,这样,如果成为单独一个软件的话,得同步上游的代码,维护起来比较累。
所以,最近软件的作者 yetist 再次发力,把lunar-applet拆成了2个包外加一个patch。
具体就是:

  • 只依赖 glib-2.0 的liblunar,这个只提供了计算农历信息的核心的算法;
  • 依赖 gtk库 和 liblunar 的 liblunar-gtk 这个提供一套基于 gtk 的 widget;
  • 然后是给 gnome-panel 的一个 patch,这个patch调用 liblunar-gtk 的 widget,替换掉 clock 的日历显示。

这样虽然描述起来比较费力,但是显然比较合理和易于维护,所以lunar-applet本身也就停止维护了。
现在貌似还没有deb/rpm的包,不过如果你用的也是gentoo的话,可以试试我传到gentoo-china-overlay的ebuild。如果你已经加了这个overlay的话,现在就可以给 gnome-panel 加上 lunar 这个USE,然后重新emerge一下 gnome-panel,就可以看到效果了。
我这里的截图,已经被传到项目主页里去了:
lunar-applet

另外,值得一提的是,liblunar 还自带 python 的绑定哦,你要在python里使用的话,也是相当方便的,给个例子:

更多信息,还可以在项目主页里挖到。