帖子

目前显示的是 2008的博文

lyman 的 2008 年度游戏总结

在 LP 的呵斥声中艰难完成的通关列表:

3 月 9 日,生化危机 4。

老游戏。当年很不适应,又不缺其它游戏,就搁下了。这次在新水木看别人讨论得眼馋,又翻出来。很爽。就为那小马哥手持王八盒子勇救铁皮碍事梨的换皮设计,通关两次也值得。这是一个挺独特的亚游戏类型——只要你肯花点时间适应。补充:这游戏我是用手柄通关的,感谢贝尔金。

3 月 15 日,雷顿与不可思议的小镇(DS)。

我对这类游戏爱不多。能通关大概是因为觉得删档可惜,留着又比较占地方。LV5 做的还是挺认真的吧。不过从我们公司给其做外包的情况来看,暴发户做事情也不怎么靠谱。

4 月 5 日,命令与征服 3:凯恩之怒。

光头早就死过无数次了,但是 EA 不能让他死。这类游戏还不如都做成 General 系列那样偏写实的好。

4 月 24 日,工人物语 6。

战斗简化版的要塞。很轻松,很杀时间的游戏。画面相当好。

5 月 13 日,Turok 2008。

中规中矩的 FPS,流程不长,乏善可陈。

5 月 24 日,bioshock。

好评无数的名作。像看三十年代旧美国风格的电影。挺好,但是感受并不强烈。应该是背景信息不足,难以产生共鸣的缘故。

7 月 12 日,Mass Effect。

年度通关的最佳 RPG,没有之一。已列入收藏名单——如果没有 DNA 应该已经收了,恨。听说 STEAM 上有卖了。好事。但是目前非欧美地区仍然 not available,不知道为什么在线销售数字产品也要搞区域限制。

10 月 31 日,Space Siege。

SEGA 出品,小品级,类 Diablo 的无脑点鼠标游戏。估计有多结局,我只打了一个。大鱼大肉之间的调味菜。

11 月 8 日,恶魔城:被夺走的刻印(DS)。

应该算是大陆的国民游戏了吧。虽然买正版的人很少,也无从买到中文的正版。御姐剧情通关,修炼堂未果并枪男进行中时掉档了。如果中古店看见了就收一套日版正版。电车上掏出个明显能看见 TF 卡槽的 DSL 还是挺让人羞愧的。

11 月 23 日,Dead Space。

第一感觉很重口味。但这是不可多得的佳作——只要你肯花点时间适应。列入收藏名单。再恨 DNA。等 STEAM 解除地域限制。

12 月 7 日,Need For Speed : Undercover。

都说卡。好在我的配置是令很多人发指的 4850 拖 1024x768。但即便如此还是遇到过几次因…

平安夜

平安夜在北京逗留。约朋友吃饭。找饭店。只想起来个饭统网。

先打 114 查号好了。

“喂,你好,能帮我查一下饭统网的电话么?”

“我们没有收录饭统网的电话,114 现在也提供饭店订餐服务,请问您……”

哦。我又土了。

parcellite 也不错

parcellite 是个剪切板管理程序,作用跟 glipper 差不多。如果你常常头疼在 x selection 和 clipboard 之间(科普在这里)粘贴东西,类似的工具还是必不可少的。

这类工具 gnome 下最常见的就是 glipper。之前我也一直在用。只是这东西总有一定概率在启动 gnome 的时候给我一个启动失败的提示——显然我不是一个人在瞎逗,ubuntu launchpad 上讨论了一大圈也没有个所以然。我也就一直这么将就着用。

直到 parcellite 在 0.9 里终于加入了对 x selection 的支持,功能上已经可以和 glipper 平起平坐了。虽然 archlinux 的 community/parcellite 跟进并不及时,但是我已经迫不及待的从 abs 里拎出这个包,自己编译了 0.9 用上了。几天试用下来,没发现什么问题。最重要的是,不用再时不时地手动启 glipper 了。

如果你也被 glipper 困扰,那么推荐你尝试一下 parcellite (>= 0.9)。以后的版本里应该能看到简体中文支持。记得感谢我 ;P

纪念我的第一台 DC

图片
2008 年 4 月29 日,我把她从秋叶原的 Sofmap 赎了出来。前天,我又把它卖进了新宿 BicCamera 四层的 Sofmap。虽然是二手,但七个多月的时间里,过万次 shot,她的表现从没有令我失望。

她就是我生命中的第一台自己的 DC——Ricoh GX100。这里谨以一些拙作,纪念她的离去。

11 月 30 日。东京塔。






11 月 22 日。奥多摩湖。







11 月 8 日。高尾山。







11 月 1 日。多摩动物园。







10 月 11 日。小石川后乐园。







9 月 22 日。丹泽大山。






7 月 19 日。葛西临海公园。






6 月 13 日。家附近。






5 月 6 日。高尾山。






最后,她的身影。




ps. 欢迎点击以上图片访问/订阅我的个人相册。

[中英对照] evdev, xorg.conf, hal 和其他迷雾

(译注:原文载于 Peter Hutterer——X input 开发者——的博客,标题为“evdev, xorg.conf, hal and other FUD”。FUD 是 Fear, uncertainty and doubt 的缩写,即恐惧、不确定和怀疑,本文译为“迷雾”。)

Sparked by this thread, here's a list of X input facts in random order.
这条讨论线索的启发,这里列举一些 X input 的现状(不分先后顺序)。

The evdev driver is the preferred input driver. If you are not running Linux, then evdev is not available for you and you can keep using the mouse/kbd drivers. 推荐使用 evdev 驱动。如果你用的不是 Linux,那么你也用不上 evdev,你可以继续使用 mouse/kbd 驱动。
If you are running Linux, you can keep using the mouse/kbd driver if you wish, but configuration adjustments need to be made. See below for details. 如果你运行的是 Linux,如果愿意你也可以继续使用 mouse/kbd 驱动。但是配置需要调整一下,详见以下叙述。
By default, the X server will expect a device list at runtime from HAL. You can turn this behaviour off by using Option "AutoAddDevices" "off" in the ServerLayout, or by disabling HAL at configure time. HAL is not required to use X. 默认情况下,X server 会在运行时尝试从 HAL 获得设备列表。你可以在 Serv…

东京的圣诞节

图片
虽然距离圣诞还有一个多月,但是东京新国立剧院已然开始搭那个年年都有的巨大圣诞树了,还专门立了个牌子——11 月 20 日点灯式。

反正这新国立剧院就在公司旁边,是每天下班坐电车的必经之路,这点灯式自然是不会错过了。



可能是点灯式的缘故吧,新国立剧院比平时热闹些。下班路过的人纷纷掏出手机留影。这几个学生妹不知是不是专程赶过来的——日本妹(很多 OL 熟女也一样)真的是很抗冻啊。



这颗圣诞树前前后后搭了足有一个星期。之前我还感叹怎么日本人搭着东西效率如此之低。没想到这东西还真有点名堂。树底下围着一票人的那个地方是个算星座运势的机器,运势不同,这树上的彩灯亮起来也不一样。

和国内一样,圣诞不是什么正经节日。但商家都铆足了力气造势,无非是想提升一下大家消费的欲望(估计这也是为什么要提前一个月就开始“点灯”)。真洋人的圣诞树,大抵从 12 月 25 号开始要栽个把礼拜。但是新国立剧场里的这棵,根据去年的经验,26 号就已经在拆了——日本人正经要过的,其实是元旦。

上帝也发飚

本科时,江爷爷的“too young, too simple, sometimes naive”颇为轰动,传为一时美谈。只有 L 同学看过之后,第一句话是“老江说的并没什么不对”,让我印象颇深——当时大家的注意力,显然都集中在江 core 比比划划的表演上面了。

这事用时髦点的话讲,叫“话糙理不糙”。

可惜媒体很少这样明白事理——尤其又是在自己被批评的时候——于是经常揪住“话糙”这一点大作文章。

比如最近麻生同学该在什么地方交际应酬的事情,就可以通过断句、拼凑、引申放大等一系列手段转进成这样一个“让人忧心”的段子——拍也不拍在点子上,批评厨子不说菜的事却揪住他会不会脑筋急转弯,找这些个边角料下手未免下作。

可是,辨一事易,辨三事难。虽然老祖宗留了很多成语来警醒咱们这些后辈——“曾参杀人”、“三人成虎”、“众口铄金,积毁销骨”——媒体要是一天到晚在你耳朵边吹的都是这种风,你也难免忘记了成语,蒙蔽了双眼,这背后的道理或许只有传说中的心理学能说得清。

唉,媒体怎么这么坏啊!可是等等,这天下熙熙攘攘,利来利往,媒体要总是热衷于某类事情,也必然是无利不起早的啊。

于是,从字里行间,我读到了血淋淋的四个字——眼球经济。媒体当然自诩客观公正,只是他们在遇到你潜意识里可能想要的东西的时候,从不吝惜篇幅笔墨而已。而这个循环里,又能责备谁呢?我仿佛听见老罗声嘶力竭的质问“人民有没有庸俗的权力!”——这就是本恶的人性啊。

等等,不是也有说人性本善的么?呃,我其实更认同告子、王阳明同学主张的人性无善恶。在今天这个话题里,善恶只存于您一念之差,而这一念之差,可能只是出于猎奇。

冷淡如康夫同学也终究没能按捺得住“我能客观认识自己。我不像你。”的时候,我觉得,即使是上帝,也早晚会发飚吧。

题外话:为了这个标题特意查了下字典,挺有意思,居然是“飚同飙”,但是看字给人的感觉可相差万里啊,一个风风火火,另一个么……

第二起跑线(三)——评论:Yes We Can

这次“富士康”事件的主角,看似是主板,实际上,是 BIOS。更准确一点说,应该是 BIOS 所保存的 ACPI 代码中的 DSDT 表部分。或许看了这个专题前两部分热闹,你仍然不清楚什么是 ACPI 标准,什么是 DSDT,以及它们为什么重要,那么这里我将尽我所能做点解释。

ACPI,全称 Advanced Configuration and Power Interface,是从 APM(Advanced Power Management)进化而来的一整套涉及电源管理的 BIOS 代码。现代绝大多数电脑硬件的常见功能如 CPU 频率自动调节、挂起/休眠、CPU 风扇的智能调速等等,无不仰仗 ACPI。

但是,并非所有的硬件都支持 ACPI(ACPI 1.0b 颁布与 1999 年),也并非所有的操作系统支持 ACPI,况且从 1999 年的 1.0b 到目前的 3.0b 到正在开发当中的 4.0,ACPI 自身也在不断发展完善之中。为了取得更好的兼容性以及用户体验(其实是对用户透明,你感觉不到它的存在才证明它的成功,这点 GFW 仍需努力),ACPI 想了这样一个办法(OS 指操作系统,后略):
硬件\OS传统 OS支持 ACPI 的 OS传统硬件传统硬件配传统 OS,没什么问题如果 OS 缺乏对传统硬件接口的支持,ACPI 以硬件方式接管全部旧有功能支持 ACPI 同时保留传统接口的硬件在传统 OS 下,就跟使用传统硬件一样启动时 OS 告知硬件从传统接口切换到 ACPI,之后即为完整的 ACPI 支持仅支持 ACPI 的硬件电源管理功能失效完整的 ACPI 支持
注意表格当中字体加粗的部分,问题就出在这里。这也是 ACPI 中为什么要有 DSDT 的原因。

DSDT,全称 Differentiated System Description Table,启动时 OS 通知 ACPI 自己支持 ACPI,然后可以从这里获得系统相应的 ACPI 实现和配置的信息(ACPI 有很多版本,不是吗)。

我相信如果 OS 通知给 ACPI 的是自己支持的 ACPI 标准版本,那么事情将简单许多——事实是,OS 传递给 ACPI 的是一个标识自己的字符串。比如

Windows 2006
Windows 2001.1
Windows 2001 SP1
Windows 2001
Microsoft W…

第二起跑线(二)——中英对照:富士康的醒悟

上集回顾:
名为 Ryan 的 ubuntu 用户发现自己购买的富士康主板在 Linux 下工作不正常。投诉受阻之后通过一系列技术手段发现造成问题的根源竟然不是“不支持”而是“故意不支持”。又经过几番和富士康客服的交锋之后,他愤怒了。他和富士康不得不说的故事,传遍了互联网(英文世界),直至公平交易委员会的数据库里。

本文是 2008 年 8 月 2 日,富士康员工在 ubuntu 英文论坛上发帖的翻译。很高兴事情能有这样的大团圆结局,同时也赞一下富士康的反应速度——距离 Ryan 发表檄文的 7 月 24 日,仅仅 9 天。

原帖地址
---

Updates of resolution od Foxconn bug --- from Foxconn FAE Heart Zhang
关于富士康 bug 解决方案的进展——来自富士康的 FAE Heart Zhang
(译注:不清楚这个 FAE 是指 Field Application Engineer“现场应用工程师”还是 Failure Analysis Engineer“错误分析工程师”,笔者更倾向于后者,但保留原文)

Hello every enthusiasts on Linux,
各位 Linux 发烧友你们好,

My name is Heart Zhang from Foxconn China, these days I and another Foxconn guy in UK names Carl Brunning contacted Ryan Farmer with each other at all times by email and phone on the big issue happened on our Foxconn MB G33M-S.
我是富士康中国的 Heart Zhang。这些天来我和另一位富士康香港的同事 Carl Brunning 一直在通过电子邮件和电话就我们富士康 G33M-s 主板发生的问题和 Ryan Farmer 密切沟通。

Yesterday evening I sent one debug version BIOS about this issue to Ryan, ask him to help us verify again. This morning Ryan replied …

第二起跑线(一)——中英对照:一个 ubuntu 用户的愤怒

本文讲述的是一块主板在富士康和 Linux 用户之间引发的恩怨。这段故事在简体中文世界流传并不广泛,故作此“第二起跑线”专题,跟大家讲述一些在鲜为人知的角落发生的鲜为人知的事实。

谨以此专题向那些站在第二起跑线上和微软竞争的选手们致敬!

英文水平有限,翻译不周之处万望赐教。

---
原帖地址
---

A possible bug in Foxconn boards BIOS affects Linux ACPI
富士康主板的疑似问题 BIOS 影响了 Linux ACPI 功能

Update: I just got off the phone with Foxconn, they called me from China (1 AM in Indiana, heh) and were asking if I would test an improved version of their BIOS based partially on the modifications I've made to mine, hopefully this all blows over, and regardless of who's fault it is or isn't, we can just go back to using our computers with full functionality.
进展:我刚刚接了富士康从中国打来的电话(印第安纳州当地时间凌晨 1 点,呵呵)。他们问我是否愿意测试一下改进版的 BIOS(部分根据我的修改而来)。希望这次事件就此平息,不管是与不是谁的责任,我们终于能够全功能地享受自己的电脑了。

Thanks to the community for helping me get the message to Foxconn.
感谢社区(译注:应该指的是英文 ubuntu 社区),帮我将信息传递给富士康。

Edit: Please tell Foxconn what you think of their behavior:
更新:请向富士康表达你对他们行为的感受:

http://www.foxconnchannel.com/support/online.aspx

You need to put in an email, and then it wi…

戴绿帽子要从娃娃抓起

图片
上班路上偷拍,东京初台。

以下八卦来自互联网,切勿当真。

《元典章》规定:娼妓之家长和亲属男子裹着青头巾。由此,“青头巾”就与娼妓之男性亲属有了联系。由于青、绿二色比较接近,又同属贱色,人们习惯于说“绿头巾”。由于绿色与娼妓有关,后来,“绿头巾”专用来指妻子有不贞行为的男人,并演变成了“绿帽子”。

物美价廉

自由市场经济理论里,只有生产者和消费者两个角色。消费者的购买行为实际上等于是在用钞票对生产者进行投票,在一轮又一轮的票选中,生产者们重复着“优胜劣汰”的古老传说。

可是,“优胜劣汰”是消费者用钞票投选出来的。如果大量钞票都投的不那么优,结果就很难说是优胜劣汰,而很可能恰恰相反了。

消费者投票的依据,我觉得大概可以总结为“物美价廉”四字。现在的问题就在于,随着科学技术的日益发展,作为消费者越来越难以判断“物”是否“美”。比如,喝了这么多年牛奶,你可能根本不清楚什么是三聚氰胺。(多嘴一句,再比如,用了这么久电脑,你可能根本就不知道,你购买的主板可能早已被某公司收买而只能在 windows 下工作正常

而相比之下,判断“价”是否“廉”就简单很多了。于是怎么样?一个可能的结果就是既然东西看起来都差不多,那就比谁更便宜了。

如果某个行业存在一种方法能够既瞒住消费者的眼睛又偷工减料一本万利,那么这个行业就很有可能整个烂掉。比如乳制品。

当然,实际的市场情况远比自由市场经济理论复杂。实际控制商品质量的可能并不是初始生产者(比如奶农),而是聚集了大量资本的加工/销售商(比如三鹿);消费者难以鉴别物美,从而将鉴别任务委托给公众部门(比如质检机构);在生产消费这个圈子之外,可能还有一个监督机构(比如司法系统)。但是,无论是生产者、销售商、消费者、公众部门还是司法系统,都有各自不尽相同的利益。利字当头,凡事皆有可能。

那作为群体最为庞大的消费者,我们该怎么办?我认为,最根本的办法是不要让别人有机会蒙住我们的眼睛——即我们需要继续进化。进化当然不是说要我们的身体去适应有毒的奶粉,人类进化从来也不是靠身体的百毒不侵;而是要我们继续开发我们的大脑,提高识别“物”是否“美”的能力。

设计再精良的制度也不如自己的头脑更可靠。

或许有人觉得继续往人类小小的脑袋里塞这些越来越多的东西有些残忍。但是生命本当如此。即使人类已经贵为进化链顶端,不需要再如非洲草原上的野牛一样靠狂奔不息来赢得生存,但我们依旧无法摆脱继续进化的命运——与人斗其乐无穷。

从来不曾想起,永远不会忘记

记得在初中写作文时曾因为写了这样的句子
…仿佛那样遥远,又那样切近…
而被语文老师批评。时至今日,我依然没能看出这样的句子有何不妥,只是以为这样的句子可能有点矫情。

后来再次看到类似的句子,就是标题这句。是在艺术人生采访童子荣的那期节目里,童老师的粉丝们在演播室现场拉起的巨大横幅上。

直到前两天,突然想起两句歌词
竹子开花咯喂
咪咪躺在妈妈的怀里
竟然夜不成寐。于是上网,感谢 youtube,居然能够找到如此珍贵的视频




程琳这个名字好熟悉啊!于是一发不可收拾,一路追索下来,竟翻出了侯先生的名字。这才发现,包括这首“熊猫咪咪”在内许多我耳熟能详的歌曲,竟然都出自侯先生之手。

比如曾经红极一时却突然销声匿迹的“龙的传人”。




还有这首被无数人翻唱过的“酒干倘卖无”。标题这句话,应该最早就是出于此处。




人如其歌,侯先生是性情中人。我至今仍认为侯先生是当年广场上几个头头里面说话靠谱的一个。

“很多人说,广场上有两千人被打死,或者几百人被打死;在广场上有坦克碾轧学生撤退的人群,等等。”

“我必须强调,这些事情,我没有看见。那么我不知道别人是在哪里看见的,我是六点半还在广场上,我一点都没看见。”

“我一直在想,我们是不是需要用谎言去打击那些说谎的敌人,难倒事实还不够有力吗?那么如果我们真正使用了谎言去打击说谎的敌人,那只不过是满足了我们一时的泄恨,发泄的需要而已。这个事情是个很危险的事情,因为也许你的谎言会先被揭穿,那么之后的话,你再也没有力量去打击你的敌人了。”


程琳说,侯先生应该被授予华语音乐的终身成就奖。对于我来说,即使没有人颁这个奖,他也是无冕之王,无情可矫——“从来不曾想起,永远不会忘记”。

自食其果

近日读 Gerald M. Weinberg 的《咨询的奥秘》,看到这段“福特基本反馈公式(Ford's fundamental feedback formula)”比较有趣,摘抄至此。


据传说,有一次亨利·福特就怎样阻止河流被工业化工厂污染的问题而被国会召见。福特对所有国会所考虑的复杂的立法不屑一顾,他提出了一条简单的法律,可以“一劳永逸地结束河流污染”,国会没有通过这项法律,但是它的两个部分却值得记住:

1,人们可以为任意目的从任意水域取任意多的水。
2,人们必须将相同数量的水返还到他们取水地点的上游。

换句话来说,人们可以对水资源做任意想做的事,但前提是他们自己必须伴随着随之产生的后果生活。


换成地道的中文表达,就是必须保证自食其果。

这其实还是个公平原则的不同表达。正如权利义务必须公平,风险收益必须公平,行为与后果也必须公平。如果用这样的基本思想来建立质量监督体系,大概就会避免很多问题——质检总局的领导们,大抵是不喝三鹿奶粉的。

东京都议会的广告

图片
这是一张偶然在电车上看见的广告。

大意是通知一下本年度的东京都议会(大概相当于省级人大吧)第三次例会的日程,以及各种获得本次会议更多内容的渠道(直播的电视频道、网址及问讯电话)。

回忆我在国内亲身经历的民主生活,虽然从小就被告知是国家的主人,但是快三十年了,只在本科就读的时候行使过一次当家做主的权利——在三个不认识的人当中选两个。依稀记得那年某外系同学希望当选区人大代表而四处活动,结果是 bbs 上发的帖被删,据传本人也被学校警告。至于后来我们选上去人主张什么,又干了什么,鬼知道。

何患无辞

你说你的,我说我的,很热闹。

当事人方面

三鹿:不法奶农向鲜牛奶中掺入三聚氰胺

网友妙评(出处不详):

三鹿:奶农干的
奶农:奶牛干的
奶牛:草干的
草:艹……


政府方面

卫生部:三鹿集团应该承担很大的责任

质检总局

质检总局副局长 蒲长城

  刚才这位朋友说到,在质检总局的网站上看到了有关消费者的投诉。我们了解到的情况是,今年6月份确实有一个食用了三鹿奶粉的消费者投诉,说食用三鹿奶粉造成了对身体健康的影响。我们负责在网站上答复消费者提问的,及时给了回复,希望他详细提供相关的信息,以便我们进一步详查。遗憾的是,后来我们再没有得到较为详细的信息,也没有再得到回复。


这个 6 月份的投诉就是在说这个吧(注:提问正文文末的“留言已隐藏”字样为快照保留之原文,以白色隐蔽……本引述予以保留):

问:
6月初,在湖南省儿童医院,6个月婴儿得肾结石!8个月得肾结石!10个月又是肾结石?天哪!!!共有5名婴儿同样的病,更巧是同样一直食用一种奶粉。
实属罕见病例,医生表示可能是奶粉问题导致结石,可能是钙和磷的成分。
问题1,医院有首例病例就应该调查原因,对症下药?
2,6月8日投诉该奶粉公司,6月12日才有有关负责人去医院看望,这就是大公司的效率?
3,有投诉工商部门,是不是应该引起高度重视,彻查此事?肾结石—可能导致肾衰竭,根本就没有救的。
4,6月25日该奶粉公司还没有给出结论,一直拖下去,受害的就只有消费者,可怜的就是婴儿。
6月大小孩父亲 瞿先生 13786359388
婴儿每天哭,医疗费用昂贵家庭负担重
三鹿奶粉 有婴儿结石作为证据
急急急:
1,调查奶粉问题,作为消费者,作为妈妈,希望奶粉赶紧下柜,并对造成伤害的亲属公开道歉赔偿。
2,通过媒体告知,一直服用三鹿奶粉的婴儿去医院检查。
3,国家有关部门应该制定标准,在钙和磷的含量上
请尽快查清奶粉是否有问题,为避免更多婴儿得此病留言已隐藏

答:
请你提供问题奶粉的详细信息,以便我们调查处理。


猜测:高大全们都很忙,手机号还不够详细。

总评:有钱大家赚,黑锅我不背。

两个链接

图片
原帖已 404,立此存照(google 的快照,请自行爬墙)。

20080724-6021-28494+aqsiq.gov.cn


20080630-1622-25262+spscjgs.aqsiq.gov.cn


总理说:是人民在养你们,你们自己看着办。

giplet 更新到 0.1.3

giplet 作用很简单,在 gnome-panel 上显示当前 ip。对我来说,其主要意义在于,当桌面因某种原因死锁(比如说,连键盘都失去响应)了之后,想尝试通过其他机器 ssh 过来杀掉捣乱进程时,不至于因为不知道动态分配的 ip 而束手无策。

然而一直到 0.1.2 之前,giplet 都只能设定一个 interface,要么有线,要么无线,像我这种有线无线经常混用情况,就有点麻烦——频繁更改 interface 吧,不是办法,而且时常会忘记;放两个 giplet 吧,panel 又太挤。

昨天突然心血来潮,翻来了 giplet 的源码看了看。要实现从多个 interface 获得 ip 很简单,几分钟就搞定了(赞 python,上手难度几乎为零),做了个 patch 给 Erik(作者)。

今天收到 Erik 回信,他现在没时间管这摊(也难怪,0.1.2 发布都已经是 2006 年的事了),于是我被加入到了 giplet 的项目中,打上我的和 yanik 同学早在 4 月份就提交的 patch,0.1.3 就这样诞生了。

这个版本的 giplet 主要更新有三:

1, 修正 about 窗口 close 按钮无效。
2, 增加拷贝 ip 到剪切板。
3, 支持设置多个 interface(空格分隔),giplet 将显示第一个可用的 ip。

看起来用 python 写 UI 很爽,有空应该多关注一下。

弱民无民主

零、引

niobe 的好文“民主是什么”,应该是 2006 年之前的老文了,我今日才偶得拜读,实在相见恨晚。

1933 年的德国和 1936 年的美国,为何会作出截然不同的选择?难道仅仅是因为德国人“轻易相信了希特勒的承诺”,而“美国人可不是这么考虑问题的”么?

一、博弈

我们都知道弱国无外交。大家能坐下来谈,靠的是实力(请回忆联合国五大常任原子弹)。民主也一样。大家坐下来投票、选举,靠的也是实力(这个实力是什么,稍后再说)。所以,所谓民主其实是在势均力敌的情况下产生的一种博弈模式。如果这种势均力敌的形势被打破,那么博弈的规则也很可能会被改变,民主制度就会被削弱、甚至可能彻底失去其制约能力。

二、实力

既然大家都是文明人,那么对于参与民主博弈的人来说,实力基本上等于智慧。

那智慧又是什么呢?假设大家的智商都没有问题,那么智慧程度的高低则大抵取决于信息的对称程度——即如果你不笨,却做了蠢事,则多半是着了信息不对称的道(大部分情况下,就是被人骗了)。

这里举一个不太恰当的例子:你在民主活动中的判断,好比是在做算术题——例如 3 * 7 = 21——你的判断正确与否就在于能否得出正确的结果 21。那么,想要得到 21,就要求你至少知晓两类信息,一是乘运算法则,二是参与计算的数字。这就是判断信息是否对称两个要素,即规则信息和数据信息,二者缺一不可。

三、分布

回到民主的讨论上来。前面说过,民主博弈的前提是参与者实力的势均力敌,而实力又约等于智慧,那么,用统计学的方法来描述“势均力敌”,就可以概括为(不懂方差为何物的同学请自行补课)

民主制度能否正常运行,要看参与者智慧的分布情况。这个分布的期望值或许鲜有意义,但是方差绝不能太大。


1933 年的德国,出了希特勒这么个人精,智慧分布的方差陡然增大,民主制度轰然崩溃。

1936 年的美国,罗斯福、大法官、提起诉讼的公民、推波助澜的律师,个个都是人精,虽然智慧分布的期望值很高,大家也斗得其乐无穷,但方差却不大,民主制度故无大碍。

四、对策

对于一般民众来说,管他是民主博弈还是其他什么博弈,实力不济的总是吃亏更大的一方。所以当务之急还是提高实力。

如何提高实力(智慧)呢?智商或许是很难改变的,那么根据第二节的分析,剩下的就要看信息对称与否了。这里简称玩信息不对称的参与者为骗子,防止信息不对称给自己造成的劣势,换句话就是要增强识别骗术的能力。

高级一点的骗子玩规则信…

湿度 80% 的日子

自打从东北回来,屋里的湿度计已经连续几天指示在 80% 这个位置了。虽然东京的气温和东北老家相仿,都是 25 度上下,但感觉却截然不同。在这样的湿度里工作生活,基本上不用担心静电对电子设备造成的潜在威胁,这对喜欢硬件的朋友来说是件好事,但我还是更喜欢神清气爽的东北秋天。

顺便延伸一下,看了点关于气温、湿度、风速和体感温度的资料,目前好像还缺乏统一的计算标准,就不贴链接了。

sun-pinyin && novel-pinyin @ aur

花了点时间,给 sun-pinyin 和 novel-pinyin 做了 PKGBUILD,放到了 aur 里。前者是在 linuxsir 上狱卒兄的成果基础上改出来的(linuxsir 网线被拔中——谁干的大家都知道),后者在 alex epico 极为迅速的补丁之后在我的环境里也已经没什么问题了。包的名字分别是 scim-sunpinyinscim-novelpinyin,用 yaourt 安装起来很方便。

需要提醒的是:

一、sun-pinyin 所需要的两个比较大的数据文件(一个 23M+,一个 6M+),opensolaris 官方下载点似乎不支持断点续传,国内的用户下起来可能会比较吃力。

二、novel-pinyin 目前使用的图标和 scim-pinyin(智能拼音)一样,不过输入法名称改成了“新智能拼音”,切换输入法的时候留意一下就好。

sun-pinyin 简单试用

只论输入法的话,linux 确实没法和 windows 比。后者优秀的拼音输入法实在是太多了。相比之下,linux 的选择就少很多,而且也不够“现代化”

只是 suzhe 在 google 的工作似乎和输入法并没有太多关系,历史就这样凝固了好长一段时间。后来出了个 scim-python,然后同作者又开始打 scim 的主意,自行开发了个 ibus,让 linux 输入法这个小圈子又热闹了起来。

然而今天要说的不是 scim-python,也不是 ibus,而是 sun-pinyin。根据官方说法,这可是一个很“现代化”的拼音输入法哦。

SunPinyin (developed by Sun Asian G11N Center, shipped since Solaris 10, and opensource'd on OS.o), which is a SLM (Statistical Language Model) based IME.


简单试用下来,效果还可以。选项不很多,但是比古老的 scim-pinyin 还是有进步的。比如我一直用来评价拼音输入法的两个用例(很片面,嘿嘿)——en 能否打出“嗯”字,zhen 能否打出“帧”字,sun-pinyin 就一对一错,比 scim-pinyin 颗粒无收要好一些。但后者估计为整句输入设计的缘故,候选字数很少,像我这样习惯了短语输入的不太适应。而且不够稳定,时常会出现拼音字母和汉字都被输入的情况。

另外还有一个不那么引人注目的“现代化”拼音输入法:novel-pinyin。尝试编译了一下,搞得 scim 崩溃了。可能离实用还有点距离吧。不过如果真的和 sun-pinyin 合为一体,还是很令人期待的

archlinux 用户如果想尝试 sun-pinyin 的话,可以参考这里。我正在联系那帖的楼主,商量下是不是把他的成果直接放到 aur 上去。

修订(2008-08-25):已经扔到 aur 里面了,包名叫 scim-sunpinyin。

给 pcmanx 找个合适的英文字体

图片
pcmanx 可以分别指定中文字体和英文字体,很贴心。但是实际用起来总有些小问题。比如,如果中文字体使用文泉驿正黑的话,英文字体选起来就有些麻烦。常见的 Bitstream Vera Sans Mono / Dejavu Sans Mono 的 W 显示不全,其他常见的等宽英文字体跟正黑配在一起基线位置有点怪怪的等等。

这里推荐一套能够在 pcmanx 下,跟文泉驿正黑珠联璧合的一套字体——“sazanami gothic”。从名字上看出点蹊跷了吧,没错,这其实是一套日文字体。其英文部分是等宽的,基线安排的和文泉驿正黑也差不多,在 pcmanx 里面效果很好。archlinux 下的包名是 ttf-sazanami。ubuntu 的话是 ttf-sazanami-gothic。

其他都是废话,直接上图。

两个链接

两首老歌

流行音乐方面,我向来都很迟钝,所以就总是在老歌里徘徊。最近又回味了两首老歌,一首苏芮的《一样的月光》,一首郑智化的《中产阶级》。

蘇芮-一樣的月光

作詞:吳念真/羅大佑 作曲:李壽全 編曲:陳志遠

什麼時候兒時玩伴都離我遠去
什麼時候身旁的人已不再熟悉
人潮的擁擠 拉開了我們的距離
沈寂的大地 在靜靜的夜晚默默的哭泣

什麼時候哇鳴蟬聲都成了記憶
什麼時候家鄉變得如此的擁擠
高樓大廈 到處聳立
七彩霓虹 把夜空染得如此的俗氣

誰能告訴我 誰能告訴我
是我們改變了世界
還是世界改變了我和你

誰能告訴我 誰能告訴我
是我們改變了世界
還是世界改變了我和你

一樣的月光 一樣的照著新店溪
一樣的冬天 一樣的下著冰冷的雨
一樣的塵埃 一樣的在風中堆積
一樣的笑容 一樣的淚水
一樣的日子 一樣的我和你
一樣的笑容 一樣的淚水
一樣的日子 一樣的我和你


中产阶级

词/曲:郑智化

我的包袱很重
我的肩膀很痛
我扛着面子流浪在人群之中

我的眼光很高
我的力量很小
我在没有人看见的时候偷偷跌倒

我的床铺很大
我却从没睡好
我害怕过了一夜就被世界遗忘

我的欲望很多
我的薪水很少
我在台北的马路上迷失了我的脚

没有人在乎我这些烦恼
每个人只在乎他的荷包
我常常喝着可乐我吃着汉堡
只是心中的空虚饥渴无法填饱

是不是就这样平凡到老
我的日子一直是不坏不好
是不是学会了放弃思考
这样的我才能够活得很好
头壳坏掉才能够活得很好

这两首歌,小的时候喜欢旋律,长大了喜欢歌词。

或许韩国人并不那么笨

前阵子韩国人抵制美国牛肉,夸张到了近乎疯狂的地步。很难理解,一面是本国牛肉价格狂高,已经上架的美国牛肉供不应求;一面是大批民众围攻政府要求停止进口牛肉——感觉既分裂又自虐。

直到最近读到郎咸平的“产业链阴谋——一场没有硝烟的战争”,才有所醒悟。

韩国总统李明博要进口美国牛肉,读者知道不知道韩国民众为什么这么激动要冲击韩国政府呢?!读者以为韩国人只是好斗吗?我告诉各位读者,韩国人比我们聪明的多得多,他们从亚洲金融危机学来太多经验那就是韩国一旦成功了进口美国牛肉以后,美国牛肉特别的便宜,他将席卷全韩国牛肉户,把全韩国养牛户淘汰,到最后,韩国牛肉价格将被国际金融炒家掌控!所以我个人认为,韩国老百姓反对政府进口牛肉是有原因,因为只有自己生产,才不会被别人所控制,就这么简单!


文中“金融超限战”的概念,感觉和《货币战争》所要表达的中心思想类似(没正经读过《货币战争》,不敢肯定),大概就是说国际金融巨头所操纵的世界范围内的金融垄断,可以操纵几乎任意商品的价格。

而“二元经济”说,和陶显芳先生的观点(为什么大学毕业生工作难找一)本质上是一致的,说的是国内营商环境的恶化,导致资源大量变成热钱(股市、楼市),进而变成泡沫,进而引发通货膨胀。

以上两个观点,我没有把握说是正确的,因为手里没有可信数据(国家统计局的数据你信么?媒体专家们提出的数据你又信么?),所以只能以亲身经历相验,以自己有限的智力判断,感觉是对的。如果这些理论是对的,那么韩国一般民众所表现出来的,就远不是分裂和自虐,而是一种智慧了。

突然间想起老马的那句“资本来到人间,从头到脚,每个毛孔都流着鲜血和肮脏的东西”。突然间也有点明白了为何无论日本本土的产品——从农产品到电子设备——如何质次价高(或者说是质平价高吧,或许日本的农民真的已经尽力了),日本人都会近乎偏执地优先选择国产。我们所处的这个时代,或许离文明而和谐的供求关系决定价格的自由市场经济还很远。

eclipse 的 svn 支持怎么这么差

毕业之前一直用的是 windows 平台,那时候除了写 delphi,拿 eclipse 写 java 也是很爽的事情。工作以来一直是 c++,主要平台是 linux,离开 eclipse 一晃就是两年多。两年的时间可以改变很多东西,delphi 已经物是人非,令人唏嘘不已了。

最近有机会重拾 java,才发现 linux 平台上 eclipse 对 svn 支持的是如此之差。有人或许会说,subclipse 不是很好用吗,装个插件就可以了啊——一开始我也是这么想的。

subclipse 的主页上,最新的版本是 1.4.x。这个版本的 subclipse 取消了 SVNKit 接口,只剩下了 JavaHL。而后者在 linux 平台上通常都是一个默认无效的选项,要使其生效需要手动安装 JavaHL 库(参见 subclipse 的官方 FAQ)。

然而,获得这个库并非很简单的事情。debian 系的可以直接加第三方源,RPM 系的可以拿搜到的 RPM 包碰碰运气,其他发行版的估计就得自行编译了。还好 FAQ 那页接下来就是一系列的编译、安装步骤,看起来真是够麻烦。

无意间搜到了 subversive,号称是 eclipse 官方的 svn 支持插件。尝试了一下,堪称痛苦。网站提供的 update url 装倒是能装上,装上了却不能用。仔细扫一眼,原来还以来其他插件:

Important: In order to start work with the Subversive you should install SVN Connectors distributed from external location. Such scheme of distribution caused by licensing requirements.


这个“其他插件”的页面或许就是 subversive 进入 eclipse 前的老东家吧,其 svn connector 被可耻的标成了“optional”,晕。尝试装这个 optional 的 svn connector,提示又缺依赖插件若干……

这里给出一个能够快速解决问题的变通办法:安装 subclipse 1.2.x。即,将 subclipse 官网提供的 update url 改成 http://subclipse.tigris.org/u…

笔记本硬盘到底能 unload 多少次?

之前写的文章(警惕 laptop-mode-tools 的 HD_IDLE_TIMEOUT 参数archlinux 下的 load/unload 问题还是那个硬盘 load/unload 的 bug ),都是基于“硬盘的设计 unload 次数有限,对此不加控制会影响硬盘寿命”这样一个前提。但对于这个前提自身是否靠得住没作过多关注。这次就拿着硬盘的 spec 来说一说这个事情。

我的本用的硬盘是 FUJITSU MHY2120BH,这里是其详细的规格说明书(PDF)。

1.10 节关于 Load/Unload Function 原文如下

The product supports a minimum of 600,000 Load/Unload cycles.
Unload is a normal head unloading operation and the commands listed below are
executed.

也就是说,这块硬盘的设计 Unload 次数不小于 60 万次。这是一个相当大的数字了。

1.11 节关于 Advanced Powermanagement (APM) 提及

SC = C0h - FEh : Mode-0 Active Idle → Low Power Idle
SC = 80h - BFh : Mode-1 Active Idle → Low Power Idle (Default)
SC = 01h - 7Fh : Mode-2 Active Idle → Low Power Idle → Standby

这个应该就是和 hdparm -B 所设置的值了。与 hdparm 的 manpage 略为不同的是,这块硬盘的 apm 有三个值段,默认是 128(这个和旧文的测试结果是相同的),也就是 Mode 1。

注意这段,只要进入了 Low Power Idle 状态,硬盘就会进行 unload 动作。

Active Idle: The head is in a position of extreme inner in disk medium. (VCM Lock)
Low Power Idle: The head is unloaded from disk. The spindle motor rotates.
Standby: The sp…

东京印象——电车

图片
先上一张东京的电车全路线图。



有心的同学可以仔细找找,我日常通勤就是京王线,从つつじヶ丘(直译应该是杜鹃花之丘,因为确实有很多杜鹃花,但是中文名却被定成了踯躅丘,不知何意)到初台。

对比一下北京 2008 地铁线路图,北京的轨道交通还是很有潜力可挖的 :)



再来一张京王线的电车路线图。



和北京地铁不同的是,东京电车有快慢车之分,而且分门别类决不亚于国内长途铁路运输(请回忆普快、特快、贼快直至动车组),例如上面给出的京王线电车,便有各停(每站都停,这就是北京地铁了)、快速/通勤快速(通勤快速在上下班高峰时段若干站不停,其他和快速相同)、急行、准特急、特急之分。想要有效率地在东京城里移动,必须能够看懂上面的指示图乃至牢记时刻表若干。看出来了么?从つつじヶ丘到初台,能够搭乘到通勤快速或者急行是最省时间的。

对于不熟悉的路线,出行之前做做功课很有必要。好在东京在这方面做的还不错,yahoo 还有其他很多网站都能满足要求。东京的电车执行严格的列车时刻表,除非有人卧轨或严重恶劣天气,一般都不会延误。

和北京地铁不同,东京电车并不是轨道供电,而是架在空中的(估计是日本雨水多,铺在地上容易短路吧)。曾经跟同学聊天开玩笑,想要摧毁东京的交通,用美军那种碳纤维炸弹扔几个过来就立竿见影。而北京,或许一次强对流天气就够了。

订阅 spaces.live.com 的 rss

登录 live.com,所有的 spaces (包括我自己的)都无法自动发现 rss 订阅(firefox 3)。退出登录,如果幸运(比如允许匿名查看的 spaces)的话,可以自动发现 rss 订阅。否则会温馨提示“您需要具有权限才能查看此共享空间”。

机灵点的通过 Google 或其他途径可以知道在 spaces 地址后面直接加“/feed.rss”即可。驽钝点的(比如我)则有可能挨个提示朋友“你的 blog 为啥不开 rss 订阅”。

勤快点的(比如我)就在首页明显位置加个 rss 订阅链接,不管浏览器能否自动发现,这个链接总是不难找到(起码比新浪博客的位置好得多)。

东京印象——出租车

最近有同学问我,晚上参加居酒会错过了末班电车为啥要睡在公司而不打车回家。看来虽然我一直在强调东京的主要交通方式是城市铁路(电车),但是一直以来都没有从反面说明为什么日本人不怎么打车。

这里描述一下东京出租车的计费方式,各位和自己本地的出租车资费对比一下,大概就心知肚明了。

1、起步价 710 日元(合人民币 45 元左右),里程 2 公里。折合成购买力的话大概和国内一顿吉野家的价钱相同。
2、超过 2 公里,每 288 米加价 90 日元。折合每公里 312.5 日元(人民币约 20 元)。
3、时速低于 10 公里/时的情况下,每 1 分 45 秒(105秒)加价 90 日元(人民币 20 元)。
4、深夜时段(22:00 ~ 5:00),费用上调 20%。
5、计费超过 9000 日元(人民币 573 元左右)的话,可以打 9 折。

以上资费信息来自日本交通株式会社,其他各出租车公司的资费或许有略微不同,但不会有明显差异。

从我在东京的住处到公司,地图直线距离 12 公里左右,这样算的话车费在 4600 日元左右(人民币 293 元)。当然还要考虑到,出租车不可能在地图上走直线,而且还要加上一路上等红绿灯的时间 / 105 * 90 日元——东京的红绿灯比北京之多不少——估计最终的花费会在 6000 日元(人民币 382 元)左右。这要是在北京打车的话大概不会超过 38 块人民币。想想自己在东京的收入远没有在北京的 10 倍那么多,而且在北京的时候打车也挺奢侈,所以该忍的时候也就忍了。

还找到一篇两年前中国青年报上的旧文,大家也可以参考。

双喜临门

firefox 3 正式发布。
wine 1.0 正式发布。

对我来说,后者更令人瞩目一些,毕竟 0.9.xx 了那么多年。虽然 wine 的世界里,中文的声音似乎永远都没人听得到。

Firefox 3.0 是个好东西,但是我并不很认同什么冲击吉尼斯下载记录的营销手段。据称 Mozilla 的官网还一度不堪重负。我还是老老实实等 archlinux 源里更新好了。

复杂到令人发指的东京车站

图片
之前的文章提到过,东京的主要公共交通都是靠四通八达的城市铁路(在日本多数被称为电车,也有少数全程地下运行的被称为地铁)。而多条城市铁路交汇的大型车站,结构必然十分复杂。前两天找到了这幅图,可以给大家一个更直观的认识(点击可以看大图)。



相比之下,西直门实在是小巫见大巫(哦,或者说西直门并不复杂,只是设计的比较脑残)。

只是不知道这样的结构抗震性怎么样,以及如何在这样复杂的结构里迅速逃生。

thunderbird + google reader,放弃其它 rss 客户端

linux 上常用的 rss 客户端,一个是 liferea,一个是 akregator,分别对应 gnome 和 kde。两个我都用了挺长时间。转到 archlinux 之后就一直是 liferea,因为受不了 kde 粗放的打包方式,为了一个 akregator 要装那么多不相干的东西进来。

结果最近 liferea 就出了点不大不小的问题:正在密集 update feed 的时候崩溃了。结果我的 unread 搜索文件夹里面就出现了 10 篇幽灵文章,他们并不存在,但是时时显示在那里,如果尝试将这些幽灵文章标记为已读,则 liferea 必然崩溃。(这个问题非常规办法能够解决,最后多亏了 liferea-devel 列表上某开发人员给的我一堆 sql 命令)。

终于下定决心“再也不能这样活”。archlinux 能够从源里方便安装的 GUI rss 客户端除了 liferea、akregator 就只有 rssowl。装上试了试,居然一 update feed 就死锁在那里。还剩下一个选择就是 Thunderbird。只是 Thunderbird 对 rss 的支持并不是那么令人满意(参见此旧文)。

稍微动了动脑子(生活在这个时代,最难有机会做的事情恐怕就是动脑子了),决定试一下 google reader。如果 Thunderbird 搞不定某些 rss,那么可以让 google reader 来完成这个任务,如果运气足够好,Thunderbird 和 google reader 之间没有什么问题的话,那么问题就迎刃而解了,而且有 google reader 做网络中间层,对于跨平台共享数据也是很有意义的。

事实证明我运气很好。
1、从 liferea 导出所有订阅的 atom 文件。
2、从 google reader 导入上述 atom 文件。
3、在 google reader 上将必要标签设置为“公共”。
4、在 Thunderbird 里面订阅上述标签,完毕。

想了想这样的解决办法的优缺点:
优点:
1、摆脱特定的 rss 客户端。
2、利用网络存储,跨平台,利于多点访问数据。

缺点:
1、无法提供原来 liferea 的监视评论的功能(如果有新评论 liferea 会将文章题目置为灰色粗体)。
2、从 google reader 订阅的标签必须设置为“公共”。

archlinux 下复原 firefox 和 thunderbird 的图标

mozilla 对于 firefox/thunderbird 等等一系列旗下产品的商标策略导致了绝大多数发行版里面都去掉了官方的 logo/brand。只是去掉之后又不能没有,而勉强凑合上来的基本都很难看。比如 archlinux 使用的 big echo(替换 firefox)、mail/news client(替换 thunderbird),实在是难看的可以。

好在有很多办法能把原来的 logo 换回来。其实也不难,怎么换出去的怎么换回来就是。ubuntu 论坛上就贴过类似的脚本。可惜 ubuntu 下面命名都是 mozilla-firefox,mozilla-thunderbird 等等,脚本没有通用性。

archlinux 上已经有了一段脚本,但是只恢复 firefox。于是照猫画虎写了一段用于恢复 thunderbird 的,喜欢的朋友尽管拿去用好了。

寻回街机厅里的感动——推荐 GGPO

图片
GGPO 何方神圣?简单的说,这就是一个街机模拟器。但是,在前有 NeoRageX、WinKawaks、Nebulas 等逐鹿中原,后有 MAME 一统江湖的模拟器界中能够脱颖而出,GGPO 绝非浪得虚名。

如果说老牌模拟器让你终于能够无限投币而圆了儿时梦想的话,那么 GGPO 则通过网络,将你重新带回了那个充满喧嚣、热闹非凡的街机厅(如果你恰巧是个好学生,没怎么参与过早期开发智力运动,那么可以回忆一下曾经几个大男生在不足 10 平米的宿舍里汗流浃背地挤在一个键盘上切磋 KOF 的日子)。没错!有了 GGPO,你将不再是一个人在战斗!

GGPO 的网络对站功能做得相当精彩。KOF 98 虽然还是 experimental 性质的支持,但是对战起来感觉和本地几乎没有区别。更妙的是,即使不参加对战,也可以以观察者的身份随意加入正在进行的对战之中。当年我囊中羞涩,虽然也是街机厅的常客,但看得多玩得少。没想到网络时代仍旧能够不出力看大戏,GGPO 设计的还真够体贴。

GGPO 使用起来也很简单。先从官网下载最新版本,安装。如果你的机器上没有 .Net Framework 的话到这里找大门叔叔要。

既然是网络对战,那就意味着运行 GGPO 是要登录的。运行 GGPO 之后只要点 Create Account 按部就班即可。


和其他所有模拟器一样,GGPO 是不提供任何 Rom。下一步就是拷贝 Rom 文件到 GGPO 的指定目录了。没有意外的话,应该是这里
C:\Program Files\GGPO Client\roms

以目前 GGPO 上最为火爆的 KOF 98 为例,需要 kof98.zipneogeo.zip 两个文件。

登录进入 GGPO 之后,在 Game Room 选择游戏,右键点击右侧的在线玩家可以选择观战或者挑战。如果有人挑战你的话,会有这样的提示。这里是真正的街机厅,这里有大把不停大叫 98 的饥渴各地玩家,也偶有义正辞严声明台湾永远是中国领土不可分割的一部分的爱国小将。不要以为不会有人挑战你,只想观战的同学记得在左下角把状态设置为 AFK(贴心提示:AFK = Away From Keyboard )。


开战之后会有真正的模拟器窗口(FB Alpha)弹出。Game -> Map game inputs 改键盘设置。游戏中按 T 键聊天(注意左下角)。


目前…

linux 下搞定蓝牙耳机

其实今天在 linux 下面搞定蓝牙耳机并不是很难的事情。只不过因为这个问题在历史上曾经比较棘手,网上充斥了大量相对陈旧的、复杂的安装指南,导致人们一直感觉这样时尚的东西,可能 linux 支持起来很复杂。而实际上可能并不是这样。

linux 上的蓝牙部分,是 bluez 的项目来实现的。因此,只要紧盯 bluez 的官方网站,就可以获得最新、最权威的指导。比如搞定蓝牙耳机,基本上就只要参考官方 wiki 的这篇文章就可以搞定。如果更偷懒一些,这篇 blog 里的脚本也是 “拆箱即用”,方便的很。

相比之下,archlinux wiki 上的文章就相对陈旧。这里不得不佩服 gentoo,文档方面真是一流,从过去到现在,虽然写在一起有点杂乱,但是信息量很足。

最后奉上一点拙作,这是和之前那篇 blog 功能一样的一段脚本,不过不依赖 python,只要有 bash 就行(blogspot 的引用段落会打乱排版,如果自己加了 <pre> 标签,又有可能造成某些长行看不见,所以暂时就贴成这样了,还请见谅)。

#!/bin/bash

if [ $1 ]; then
ACTION=$1
else
ACTION="off"
fi

MAC="00:11:22:33:44:55" # your bluetooth device's mac

if [ "$ACTION" == "music" ]; then

echo Connect bluetooth headset in stereo mode

# active service
TMP=`dbus-send --system --print-reply --dest=org.bluez /org/bluez org.bluez.Manager.ActivateService string:audio`
DEST=`expr match "$TMP" '.*\(\".*\"\)'`
DEST=${DEST#\"}
DEST=${DEST%\"}

# create device
TMP=`dbus-send --sys…

沟通问题

关于人与人之间的沟通问题,最近想的比较多。于是总是想起这一些老话。

“子非鱼,安知鱼之乐?”出自《庄子》。当然,这话不是庄子说的,而是惠子问庄子的话。庄子的回答是“子非我,安知我不知鱼之乐?”沟通之难,不要说人与鱼,即使是人与人,说同种语言的人与人,说同种语言且年龄相仿的人与人之间,很多时候都是难以逾越的鸿沟。庄子是个聪明人,知道跨越鸿沟之难,于是又划了一道鸿沟作为回答,讨巧却不那么厚道。俗语“家家有本难念的经”,“等你 xxx(可替换长大了、成家了、当爹了等等)才会知道”等等,莫不是同意的表达。

相比之下,孔老先生就厚道一些,儒家是入世的学问,自然提出了具体的做法。“子曰:‘不在其位,不谋其政’。”出自《论语·泰伯》。表达的就是沟通之难,不如噤声。不在其位,难以形成对称的信息。信息不对称,讨论就难有基础。鸡同鸭讲,对牛弹琴,倒算安全,倘若大家都年轻气盛,一言不合,拍案而起,立时就成了不和谐因素。老子讲“不尚贤,使民不争”,就是针砭此弊。所谓“贤”,俨然就是论坛里的某些“牛人”,深于资历(姑且),精于逻辑(一定),巧言如簧(通常),煽风点火(有意),挖了一个又一个大大的水坑。

说到了老子,他的办法也是让大家不尚不争。仔细想想,这其实很难。祸从口出,水民没有相当的素质,绝难看严自己的嘴。老子其实是以提升水民素质作为出发点的。但很奇怪的是,老子的话通常都被理解成相反的意思。比如“是以圣人之治,虚其心,实其腹,弱其志,强其骨。常使民无知无欲。使夫智者不敢为也。”这句常被人用来指摘老子提倡愚民,而“虚其心,实其腹,弱其志,强其骨”这四点,稍历风雨的人都知道还真不是一般战士所能企及。老子写了“大直若屈,大巧若拙,大辨若讷”,又写了“大音希声,大象无形”,就差很直白的写一句“大智若愚”,于是就被愚民指摘愚民了千年。一部千字《道德经》,白纸黑字且长流于误读,何况其它。所以上世纪 80 年代末,“理解万岁”风行一时(此语出处未作详考,可以参考这里)。确实,如果有办法促进理解而减少不和谐因素,实在是值得喊万岁的事。

孔、老提倡的做法,古今中外,一直适用。比如“搁置争议,共同开发”,比如“shut up and move on xxx (可以替换 f**king、coding、working 等等)”,都是换了个说法而已。只是今天的人们似乎都比古人要笨。古人之间,只要提醒不争就行了。今天的人…

警惕 laptop-mode-tools 的 HD_IDLE_TIMEOUT 参数

之前讨论影响硬盘寿命的 load/unload 的问题(见旧文一旧文二),都是集中于对 haprm -B 参数的调整。而这次要提醒大家注意的,是 hdparm -S 参数。

这里是 man hdparm 的 -S 部分的说明。

Set the standby (spindown) timeout for the drive. This value is used by the drive to deter‐mine how long to wait (with no disk activity) before turning off the spindle motor to save power. Under such circumstances, the drive may take as long as 30 seconds to respond to a subsequent disk access, though most drives are much quicker. The encoding of the timeout value is somewhat peculiar. A value of zero means "timeouts are disabled": the device will not automatically enter standby mode. Values from 1 to 240 specify multiples of 5 seconds, yielding timeouts from 5 seconds to 20 minutes. Values from 241 to 251 specify from 1 to 11 units of 30 minutes, yielding timeouts from 30 minutes to 5.5 hours. A value of 252 signifies a timeout of 21 minutes. A value of 253 sets a vendor-defined timeout period between 8 and 12 hours, and the valu…

又犯了低级错误——这次是 vector

下午大部分时间都在调一段 c++ 代码。某线程共享 vector,用于存放对象的指针。创建对象之前先要检查一下是否已经存在符合某条件的对象,有则取消创建。对象创建时指针进入 vector,对象销毁时指针从 vector 中删除。

逻辑虽然简单,但是因为需要线程安全,所以加锁解锁也是步步小心。

但是跑起来之后还是出了问题。有时候明明 vector 应该已经空了,检查函数竟然返回存在的结果,导致某该被创建的对象创建失败。

根据日志输出,进行这个对象的创建前检查正巧位于某线程将某对象刚刚从 vector 中删除的时候,而检查出已存在的结果恰好是那个刚刚被删掉的指针,于是本能的怀疑是线程同步出了问题。

集中精神,走查代码(注意力都在加解锁上,这个过程耗时比较长)。一无所获。无奈,在日志输出中将每次 vector 操作时 vector 的状态进行了详细输出 。

令人瞠目的一幕出现了,vector 的 size 居然就从没有减少过!

赶紧检查 destructor,是这样写的:

...
LockMutex(...)
remove(foo_vector.begin(), foo_vector.end(), this);
UnlockMutex(...)
...


如果你也看不出不对,那么恭喜,你的 c++ 水平和我一样不济。不用多解释,看文档,好好补习一下 remove 到底是怎么用的。这个地方用 remove 其实并不合适。

将上述代码改成如下形式,问题解决。

...
LockMutex(...)
vector::iterator it=find(foo_vector.begin(), foo_vector.end(), this);
if (it != foo_vector.end())
foo_vector.erase(it);
UnlockMutex(...)
...


感受:
1、此例跟多线程一点关系也没有。“程序员的第一直觉几乎总是错的”说的就是这个。
2、“用非母语交谈,思维易受干扰”,用不熟悉的语言编程,也是一样。
3、不折不扣的 printf debug 流。
4、c++ 还是半吊子。

intel 集成显卡笔记本的背光控制

我这个新笔记本(Fujitsu MG75X/V)从打买回来装 linux,就没发现过怎么调节背光,无论是 Ubuntu 还是 ArchLinux。

不过一直以来我倒也不以为意。像我这种每天要盯着屏幕超过 8 个小时的人,通常屏幕亮度都比较低,而且不需要频繁的调节。屏幕亮度在某次设置 bios 时候调好了之后,就一直没有动过。

说来惭愧,要不是看到这篇帖子,估计我就会这么一直放任下去。

调节背光亮度,说来简单,就是一行命令的事。

xrandr --output LVDS --set BACKLIGHT [value]


至于这个 [value] 取多少合适,可以用以下命令来查一下。

xrandr --prop


关于背光的控制方式,可以 man intel 来仔细查看(之前也看到过关于背光调节的部分,但是因为当时没有找到可操作的办法——以为是折腾 xorg.conf 呢,没想到是 xrandr——所以一直没有引起注意)。在我的本上只有 legacy 模式起作用。在 legacy 模式下,value 的范围是 0~255。我常用的亮度值是 49。

既然有了调节背光的手段,一时兴起想把 Fn+F6/F7 两个背光调节键的问题也一并解决。照 ArchLinux Wiki 上的这篇文章简单试了一下,Fn+F6/F7 连 scancode 都打印不出来,“the key is not seen in any way by our os, we whould give up”。想来也是个很麻烦的事情,暂且搁置吧。2.6.25 内核眼看着也该发布了(已经 rc9 了,不远矣不远矣),或许新内核能直接带来些许惊喜也说不定。

异乡的云

图片
4 月 11 日夜,云来势汹汹,遮天蔽月,席卷半穹。大图见我相册