2008年11月6日

偶然遇见熟悉的句子

大概一年多前,在NGA某翻译美国玩家写游戏心得里有这么一段话,相当的喜欢:


我可以相信真实存在的事,也可以相信那些并不真实存在的事,还可以相信那些没有人知道它们真不真实的事。我相信圣诞老人的存在,相信玛丽莲·梦露、甲克虫乐队和猫王都还活着;我相信人类可以更加完美,知识是无穷的,整个世界在秘密的银行联盟操纵下运转,外星人定期访问地球,好的外星人长相像满脸皱纹的狐猴,而坏的外星人把牛弄残废、还想掠夺我们的水源和我们的女人;我相信未来宇宙会坍塌、彗星会撞地球;我相信总有一天传说中的白色水牛女人会回来,狠狠踢每个人的屁股;我相信所有男人内心深处都是个头大些的孩子,无法和别人沟通,美国人性生活的衰退趋势与各州汽车电影院的衰退趋势一致;我相信所有政客都是无耻的骗子;我还相信如果不止两个政党可能会更好;我相信加利福尼亚州会沉入大海,而佛罗里达州会因为疯狂、鳄鱼和有毒废物而溶解;我相信抗菌香皂正在破坏我们对细菌和疾病的抵抗力,早晚有一天,平平常常的感冒都能杀死我们,就像《世界大战》里面的火星人一样;我相信上个世纪最伟大的诗人是伊迪丝·西特韦尔 和唐·马奎斯 ,翡翠是龙的干精子,而在几千年前,我的前生是一个西伯利亚的独臂萨满教巫师;我相信人类未来的命运隐藏在其他星球上;我相信当我小的时候,糖果尝起来真的更甜,大黄蜂的飞行中蕴涵着空气动力学,光是由波和粒子组成的,在某处有一只关在盒子里的猫,它同时既是死的又是活的(不过我认为如果他们不打开盒子喂猫的话,猫肯定会死,而且会有两种不同的死法),宇宙中存在有几十亿年历史、甚至比宇宙本身还古老的星球;我相信有一位只关心我一个人的、属于我自己的神,他会看到我做的一切,而且关心我;我相信有一位负责维持宇宙运转的、不属于哪一个人的神,他离开自己的岗位泡马子,压根儿不知道我的存在;我相信存在一个没有神灵的空的宇宙,里面充满由某种原因引起的混沌,到处是噪音和白噪音,充满了好运气;我相信说性爱的价值被高估的人从来没有真正品味到性的欢愉;我相信那些宣称自个儿什么都知道的人总会在小事情上撒谎;我相信绝对诚实,也不排斥善意的谎言;我相信女人应该拥有选择的权利,婴儿拥有活下去的权利,如果你能毫无保留地绝对信任司法系统,死刑制度就是正确的,所有人也都会珍惜生命、恐惧死刑,但实际上只有傻瓜才会信任司法系统;我相信人生就是一场游戏,相信人生就是一个残酷的笑话,也相信躺下静享人生的生活态度。


然则,我却不知道这段话的出处,以为是那个玩家很有爱,能写出这样充满快乐,爱与希望句子.昨天临睡前,把最近断断续续在看的《美国众神》拿出来看,结果不经意看到这段话,会心一笑。

我很享受这种经历,在漫无目的的阅读中,发现自己喜欢的一些句子,典故的出处,如同到郊外散步,突然风景扑面而来,或者像在陌生的城市中旅行,遇到老朋友一样,充满了惊喜.

------------无趣的分割线------------

python 3.0 很好很强大,丢掉了很多莫名的历史包袱,整个语言体系更加的统一。
google Android SDK 里带的droid font family很不错,特别是英文字体,在shell和vi里用很好看,简单清晰,小巧,又有点sexy的感觉,满屏幕的字看起来不会密密麻麻的,很适合程序员使用,强力推荐!
另外看了下版权,好像5人以下使用不需要授权.

2008年10月16日

学艺不精及其他恼人的小麻烦

刚到杭州后帮同事用python写了一个小服务,其中一段程序是用一个文件实现一个定长的队列 。
结果今天同事说,文件在不断变大.
拿出来检查了一下,发现seek没起作用,但是写法确实没有什么错的。
于是跑去查python的文档,最后发现这样一段话:
Note that if the file is opened for appending (mode 'a' or 'a+'), any seek() operations will be undone at the next write.
我的文件确实是用a+打开的,因为大部分情况是直接从后面接上,过一段时间整个文件就会删除,于是就囧了.改成'r+'就一切ok了

学艺不精呀,其实C的fseek也是这样,在fopen的man里有写:
Opening a file with append mode (a as the first character in the mode argument) shall cause all subsequent writes to the file to be forced to the then current end-of-file, regardless of intervening calls to fseek().
从前怎么也没注意到 >_<

-----鄙视彩信的分割线-----

自从知道杭州移动的gprs包月服务中,cmwap和cmnet的收费是一致之后,我把手机的上网方式改成了cmnet,能用的服务多了不少. 结果昨天朋友给我发来彩信,却发现收不了了。
查了不少原因都查不出来,最后想到彩信貌似属于wap服务,莫非...

给手机添加一个cmwap连接,然后让彩信用cmwap通信,ok了。。。
然则不知道这样的限制,到底是wap协议本身的限制,还是中移动的限制。

草草看了下彩信和wap协议,貌似是可以直接通过http连接搞定的,并不需要wap连接.


最后,药物过敏很讨厌...
生病了才知道健康的宝贵.
书店的明信片好贵。

2008年9月29日

回家路上的流水帐

十.一自然还是要回家的。订的是早上八点的机票。没有这么早坐飞机过,麻烦事不少.。由于上次到太晚到机场的惨痛经历,今天四点多就爬起来,拖着发低烧的身体收拾东西。结果出门的时候才五点多点.
早上这个时候是没有机场大巴的,打的,被的士司机抱怨影响他六点交接班.人家还心疼七十六块的车费呢.
一路上到是相当畅顺(五点有不畅顺的么-_-)和司机闲扯.不知怎么说到大学上。没想从鲁迅到现在这么多年过去了,女大学生还是全国人民喜闻乐见的yy对象。司机同学还在那里忿忿女大学生被包养,好象了然一切。可惜我太认真了,没让这个话题继续下去。
到了机场不到六点,只有m记可吃,咖啡可真难喝。
去电子机票打登机卡,发现可以自己选座位,选了个靠窗的^_^
看航班信息,发现这个

From Thinking In Shell


机场里只有逸臣书店一个牌子,分成很多店面,布满了整个机场。里面大都是经管励志类的书,好书甚少。或者说,我不欣赏这样的书,特别是中国人写的。充满了厚黑学,马基雅维利主义,投机,功利,却少有理想。我不知道有没有人看这类书成功的,但这种成功,我是不喜欢的,店面前还有一个电视,放着一个人的管理讲座的录像,是在一个大会堂里,下面坐据说是很多公司的老总经理。有个镜头很好玩,讲师在讲一段话,下面的人大声跟读,像李阳,又像传销。不知这些公司的职员看到他们老总这样,会有什么感想,大概会对公司的前途感到渺茫吧。 电视很吵,店面又多,害得我到处座位躲起来。不爱看这种东西,大概就是我不能做老板,只能打工的缘故吧(笑)。

后来登机时,看到这个
From Thinking In Shell

国内好像少有这种漂亮装涂的的飞机呢。

一路无话飞到深圳,快着陆的时候看到了以前住的地方,梅林水库四个大字 清晰可见,可惜手慢了,没照下来。

在深圳和大黄夫妇一起吃午饭,选择的是毛家饭店,庆祝下十一,可惜本朝太祖喜欢的红烧肉,实在太腻,没吃几块就吃不下了.

然后又跑去车站坐大巴回汕头。一路上穿过连绵不绝的丘陵,想起上次从宿迁坐车回南京,路上一望无际的大平原,还是中原好呀,地理位置太优越了.

最后,感谢下中国移动,google和我可爱的E680i,能让我在各种交通工具上完成这篇流水帐,十一快乐。

2008年9月27日

对开源和自由软件的态度

看到Richard Stallman 的这篇文章,"避免毁灭性的妥协" ,心有戚戚焉。
虽然自己也有这样的想法,但是能敷衍成文的,并且言之有物的,也只有祖师爷了。

以后讨论类似的问题,只要丢出篇文章就ok,大善。

2008年9月13日

月光光

昨晚睡得比较晚,早上睡到11点多才醒来。躺在床上,懒得起来,拿着手机看看订阅的文章。

最近几个月,越发觉得,爱早报 不错,枣报选取的新闻有趣,比较符合我的口味,吐糟也很带劲。现在我的一天,大概就是从公车上看爱枣报开始的。枣读栏目则是个异数,说明爱枣报的诸位同学还是文化人呀。 终究会介绍些我平时八杆子打不着的书来看,不像豆瓣,给我推荐的书中,计算机书籍4成,漫画3成,科幻3成。 - -#

今天的枣读,大概可以算是中秋诗词鉴赏把。古诗词部分,大部分是见过的.只有熟悉的感觉,感触却少了。倒是平时基本不看,反正看也看不懂的现代诗里,看到余光中同学的《月光光》,很符合自己的心境。

余光中《月光光》

月光光,月是冰过的砒霜
月如砒,月如霜
落在谁的伤口上?
恐月症和恋月狂
迸发的季节,月光光

幽灵的太阳,太阳的幽灵
死星脸上回光的反映
恋月狂和恐月症
祟着猫,祟着海
祟着苍白的美妇人

太阴下,夜是死亡的边境
偷渡梦,偷渡云
现代远,古代近
恐月症和恋月狂
太阳的膺币,铸两面侧像

海在远方怀孕,今夜
黑猫在瓦上诵经
恋月狂和恐月症
苍白的美妇人
大眼睛的脸,贴在窗上

我也忙了一整夜,把月光
掬在掌,注在瓶
分析化学的成份
分析回忆,分析悲伤
恐月症和恋月狂,月光光


诗很有趣,像是调侃那些睹物思情的人,月本无心,又怎会叫人牵肠挂肚呢,可是,人的七情六欲,却总是在明月下迸发出来。
像极了自己,总认为自己是理性的,不滞于物,总喜欢吐糟那些咏月颂花的人。然而,每到月光如水的静寂夜晚,小时读的诗词歌赋,风俗传说,那林林总总关于月的一切,都会冒出来,庸人自扰...

月光光.

------------欢乐的风格线--------------

有自己的域名还是好,最近没事在了解dbus编程的一些事情,
深觉得有自己域名还是好,命名服务名的时候,可以装作很专业的样子写
net.netsnail.code.OOXX
比起以前学java时,不知道namespace写什么好不少 ^_^

---------doubanclaimdb97abe10cf1c765-----

末了,还是要应景一下

但愿人长久,千里共婵娟。

2008年9月10日

科学家的可能

LHC要启动了,好多地方都争论得沸沸扬扬的,说搞科学的疯子要毁灭世界了。
原因,自然是科学家说,可能会产生微型黑洞,又可能会毁灭地球 @.@

科学家说可能的时候,我是相当放心的。因为搞科学的人,总是在面对无限可能...

比如平行世界,比如反物质,比如人造黑洞,比如虫洞,是否存在神,我们是不是存在一个martix里,甚至只是星际高速公路上的一个违章建筑,都是可能。

也许地球实际上就是星际高速公路上的违章建筑,沃贡人明天就要来拆除掉地球,恩,带上你的毛巾,并记住一个数字42,顺便记得赞美他们的诗,记住,这些都是可能,你去问那些科学家,这种事情有没有可能发生,他们一定会说,是的,可能。这就是所谓科学精神,因为没有证明它不可能.

所以,现在大家还是安心有爱的生活在地球上吧,记得善待老鼠,是他们定制了地球.

最后娱乐一下,科学家也要有娱乐精神。

2008年8月29日

谁送我的飞去来器

写程序到闷了,到豆瓣上闲逛,看到一个帖子,在说 飞去来器 的。突然想起,家里好像也有一个飞去来器,和这个是极像。

应该是中学时友人所赠送的,却突然忘记是谁送的。只记得自己相当珍惜,虽然当时看到如此神奇的东西,心里跃跃欲试,想拿出去玩耍一番,可此物是硬木所制,外面又涂着精细的图案,住的周围没有草地,在水泥地上扔,大概一会儿就坏了吧。当年虽然玩心很重,居然也能忍下来,可见送这东西的人,应该还是很重视的。(好吧,我自己仿制了几个,但是飞行时都很难回来,还是很想拿原版去飞一次试试)

现在老子居然忘记是谁了,默...

想来我素来难和其他人亲近,自小收到的礼物也是那寥寥的几件,然则,人家居然还忘记了送礼物的是谁,真是没心没肺 >_<

回想小时的玩伴,现在确实也疏远不少,只有在新年的时候,会去个电话,淡淡的聊几句,却也索然无味,大概,最后也会忘却吧...

2008年7月14日

马文的忧郁

周六去杭州图书馆办理了借书证,借了《银河系漫游指南》,《沙丘》和《丧钟为谁而鸣》。
杭州图书馆确实和深圳的没法比呀。
老旧这个到不在意,关键是书籍的残破和稀少。借阅部的存书,大概也就一个中学图书馆的量吧。
不过还是看到不少想看的书,大概是自己看的书太少,有太多东西要看吧 XD

好吧,其实我只是想吐糟一下,银河系漫游指南的马文同学,丫为了催眠,在一秒钟内数绵羊 五千九百七十亿次. 基本上,可以认为数绵羊也就是在做加法运算。鉴于做累加是不能并行运算的,丫至少有主频597G的CPU,然后算了一秒后因为CPU发热陷入了IDLE状态。还是相当的强大嘛。

难怪现在还没有会忧郁的机器人,同志仍需努力口牙.

2008年2月15日

enumerate() 我们相识得太晚了 >_<

一直以来,我都被一个问题困扰着,怎么优雅的完成这样的代码.
for i in range(len(L)):
item = L[i]
# ... compute some result based on item ...
L[i] = result
昨天在帮猪君战这个程序的还被着实的郁闷了一把

def balance(size_list):
size_list.sort()
size_list.extend([0]* len(size_list))
a = size_list[0::2]
b = size_list[1::2]
while(True):
a_value = sum(a)
b_value = sum(b)
diff = a_value - b_value
min_set = (abs(diff),0,0)
for i in xrange(len(a)):
for j in xrange(len(b)):
tmp_diff = abs(diff - (a[i] - b[j])*2)
if tmp_diff < min_set[0]:
min_set = (tmp_diff, i, j)
if abs(diff) <= min_set[0]:
break
else:
tmp = a[min_set[1]]
a[min_set[1]] = b[min_set[2]]
b[min_set[2]] = tmp
def is_not_zero(x):
return x != 0
return (filter(is_not_zero, a),filter(is_not_zero,b), min_set[0])

结果,今天在reddit上乱晃的时候看到Intermediate Python: Pythonic file searches,
看到用了enumerate这个内置函数,果然够 Pythonic.

虽然性能还是有点损失,不过,代码清晰不少,告别for i in range(list) , 这样写吧.
for i, item in enumerate(L):
# ... compute some result based on item ...
L[i] = result

娘的,居然是python 2.3就加入的特性,人家居然现在才知道,
立马订阅了pep的rss - -#

2008年2月11日

setjmp/longjmp

春节在家没什么事情,于是拿出久未用过的C,自己折腾点小东西(以后做出来了再详细的写),顺便翻翻节前买的《C专家编程》
在讲堆栈的那章里,看见C标准库里的一对函数 setjmp/longjmp。突然发现自己对C,确实不够了解。

setjmp/longjmp 还有 sigsetjmp/siglongjmp 原理其实很简单,setjmp 保存一个栈顶指针,返回0,在longjmp调用时,回到setjmp的返回点,并且返回longjmp的第2个参数。

用法大概如下:

#include <stdio.h>
#include <setjmp.h>

jmp_buf buff;

void do_jump()
{
printf("do_jump\n");
longjmp(buff, 1);
}

int main()
{
switch(setjmp(buff))
{
case 0:
printf("start\n");
do_jump();
break;
case 1:
printf("end\n");
break;
}
}
输出
start
do_jump
end

在复杂的状态机中跳出,或者进行错误恢复,简单的代替C++的catch/throw 应该是不错的吧。

不过,这玩意儿,估计调试起来,比goto还麻烦,应该也是不常见人用的原因。

2008年2月2日

再见,深图!

离开深圳的日子近了,陆陆续续的在把一些在深圳办理的服务停掉。
恰好今天临时有事,请了半天年假出来晃悠,抽空去了次图书馆,把想把借书证退掉,拿回押金300大洋。

到了深图,把原先借的3本书还了,径直的走到服务台。把借书证和身份证给了图书管理员mm,
“退卡。”突然有些忐忑,因为,交押金的时候,给了我3张票据,说是退卡时要。
只见管理员mm麻利填号单子,然后又说,卡里有5.8 rmb的预付款,要不要取出来。这不是废话么,我都不要卡了,还和我说这个。 - -# 应和了一声,305.8 rmb交到我手里,长嘘了口气,原来不用那几张票据,转而又怒了,不需要当时还扯那些蛋,让我早上翻箱倒柜了n久 >_<。 恩?还有那张卡也还给我了...

“这卡还给我?”
“这是阅读卡,帐号保留。”
“我都要离开深圳了,没用。”
“以后有机会还可以来呀!”
“哦,那留个纪念吧。”

突然有些伤感,在深圳生活这2年多,要说有感情的地方,大概也就是深图了。大概自己是爱书之人,而深图藏书虽不算多,也基本堪用,服务,硬件甚至建筑在国内也算一流。对于没见过什么世面的我来说,对这里还是有些眷恋的。 。 缓步走出深图,在大厅的一个垃圾桶,看到了这个:
一张丢在垃圾桶里的借书证。不禁有些惋惜,深圳终究是个移民城市,人们来了又走。年关到了,也正是很多人和深圳说再见的时候,大概,这张卡是永远没有机会用了。
不过,同是一个爱读书之人,难道,就不能把这张小小的卡片作为深图的一个礼物带走么,丢弃了,于心何忍。
深图的设计也有些问题,借书证是RFID的射频卡,有那么点成本。不需要工本费发放,就应该做成可重复利用的系统。这样的浪费,大概也只有深图才能承受吧 (._.!)

sigh,再见,深图。

2008年1月19日

Blog 复活

因为众所周知的原因,在国内,这个blog是很难访问的。所以,在这个blog上写文章也一直是兴趣缺缺。

今天申请了一个自己的域名netsnail.net, 不过还没想好是申请虚拟主机还是找朋友去弄个主机空间,所以没有绑到任何ip上。后来想到,也许可以把域名先绑到这里,沒想到,XD,在国内可以直接访问了.

估计gfw是把blogspots.com的所有三级域名都给封了,不過没封IP。所以如果有想用blogger的服务的同学,也可以试试哦。申请一个自己的域名,然后cname到blogger上。

具体的操作,可以看这个http://www.williamlong.info/archives/749.html