Wednesday 24 November 2010

西安事变

1999年,杨虎城之孙杨瀚在夏威夷见到张学良的时候,发现老人没有激动,甚至有些许冷淡。

每个人孤独地穿行在时间的迷雾里。

有人看到了原因,不得不死;有人看到了结局,不得不走。有人眼睛为胸中愤怒所烧,变的通红,不得不在漫漫岁月中慢慢熄灭,像生命之灯的熄灭一样,一缕青烟之后归于沉寂。有人在那一刻全看到了;天亮的时候他独自收拾院子,打扫房间,歇歇脚抽根烟;于是天又黑了。

时间只有一个方向。

Tuesday 16 November 2010

Markov Chain

  发现dot语言特别适合描述Markov链的状态迁移图。考虑到dot作者的研究背景,也许dot是为Markov Chain量身定做也未可知。

  Markov链描述状态之间最简单的相关性。当然啦,两个状态根本无关是最简单的。简单的东西比较容易研究些。

  一个事物所有的状态构成一个集合,如果事物在任意一个时刻,只处在其中某一个状态之中,而且状态迁移的机率,只决定于前一个周期。那这些状态就构成Markov链。

  比如,粗略说人有两个状态,活和死。人在任意给定时刻只处在状态之一:活着或死了。活着可以再活,也可以死;死了只能死。这还算简单,把轮回加上会更热闹些。这里给出一个迁移图:
alive_or_death.png

Monday 15 November 2010

繁简转换

繁简转换并没有尽善尽美的解决方案,按单字转换有98%的准确率,剩下那2%,需要分词了。分词本身就没有100%正确的算法了。

基于iconv可以这么做:iconv -f BIG5 -t GB2312。注意这是按单字转的。如果要从UTF-8过来,还更麻烦些:iconv -f UTF-8 -t BIG5 | iconv -f BIG5 -t GB2312 | iconv -f GB2312 -t UTF-8。这也不支持GBK的。

更好些的是cconv:cconv -f BIG5 -t GBK。处理UTF也方便些:cconv -f UTF8-CN -t UTF8-TW。支持更大些字符集。据说也支持分词但我没试出来。还提供php的库支持。那用JNI集成到Java里也不难,至少在Linux下是这样。

Wednesday 10 November 2010

爱情变格

这里要讲的只是一种可能性,但并非微乎其微。

在还没有变胖,还在系篮球队做替补,跟着帅气十足的篮球队长当跟班的时候,有一个不算漂亮的女生,在学生会。她高中谈恋爱,追男朋友到大学,入学没几天就分手了。

这一天那个女生也来到了篮球场,在场边做啦啦队,为本队助威。篮球队长可能觉得有这么个女生助威,够跌份,就决定羞辱她。刚巧地上有一团脏脏的餐巾纸,队长就指着这块纸对她说,掉了哈。

我们开始都不明白是啥意思。她倒是羞得满脸通红;还好她也是个外场的女子,立马高声叫骂队长臭流氓。队长既然开出这么恶心的玩笑,也没打算在她那留好感,臭流氓也认了。

半个月后他俩恋爱了。

这说明人有很多侧面吧。

Friday 5 November 2010

eyeD3

是一个ID3编辑器,基于命令行,修改mp3的tag信息。类似的工具有mp3info, id3v2等。但这个是我遇到唯一能够工作的。

这里头的原因还是由于ID3 Tag的标准太乱,著名的有1.x和2.x,其中1.x不支持Unicode,2.x中,2.3不支持UTF-8。这乱局好似泥潭,以至于mp3info的作者Cedric Tefft说自己太懒,不愿趟这个混水。因此mp3info只是停留在支持1.x的阶段。但如果你想在Android播放器上正常显示中文,是需要Unicode编码的。

id3v2原则上支持,但也卡在编码转换上了。于是eyeD3就是唯一可用的了。其文档比较详细。看一下就知道如何用了。

eye的发音和I一致,因此eyeD3 ~= ID3, id3已经被别的应用程序占了名字。