博文

lyman 的 2012 游戏总结

照例还是先说通关的: 11-10 Mass Effect 3 尽管很多很多很多人非常非常非常不爽男主在这作里毅然决然的纵身一跃,但是个人认为,ME 系列三部曲,一部比一部精彩。Bioware 真是神一般的存在,业界再没有第二家能把故事讲成这样,而动作部分也已炉火纯青,俨然是第一流的水准。Bioware(或者说是 EA?)显然也对自己的作品非常非常非常有信心,DLC 策略运用的愈发明目张胆,却从不降价。ME 3 是我游戏生涯中花钱最多的一款游戏(Leviation、Omega 两个 DLC 跟游戏本体一样贵,而这两个 DLC 我都收了)。但是值。 09-17 古剑奇谭 某天妻在 amazon 买小孩图书凑单,于是就买了标价 79 大洋的实体版,初衷是想支持一下国内仍旧坚持在单机游戏领域的开发者们。 所幸游戏本身也没令人失望。画面虽然不是技术流,但是很用心的把很多场景做的颇有唯美感觉。全程配音水准之高更是令人眼前一亮。剧情饱满,支线充足,处处看得到诚意(居然有 7 个多 G 的补丁)。 虽然游戏的激活策略很坑爹,虽然过场颇拖沓冗长,但是妻很喜欢中文 RPG,一路看我通关,值。 07-08 bastion 随 HIB 入的,没有预计的那么好,可能是没有多周目的缘故。 06-08 刺客的信条:兄弟会 爬爬爬,跳跳跳,意大利的风光真美妙——我猜到了开头,但我没猜到结局——从初代一直陪着男主的女主就被男主给被手刃了(呃,有点绕嘴,不过没有错误),连个 KISS 也没有过。我风华绝代的 ezio 大叔可是满城开天上人间的大 winner 啊。 06-02 LIMBO 很棒的小品。风格,氛围,关卡设计都不错。最终的谜题非常意外,不看攻略完全想不到。 05-20 星际争霸 2 Starter Edition Starter Edition 免费,相当于试用装。策略是对的。但是我试用完了完全没有购买欲望是咋回事呢? 04-01 Cut The Rope 全三星 (Android) 年度完成的唯一非 pc 平台的游戏。没啥说的。nds 和 psp 已经不知所踪,应该在未知的角落吃灰。 03-03 The Witcher 咋说呢,游戏是个好游戏,就是玩起来有点累,现在回想起来可能是节奏有问题。通关了之后一点也没有想要再次通关的欲望。 01-18 Shank 爽快的美漫风...

archlinux, gnome 3.6, fcitx

图片
我受够了 gnome 3.6 + ibus 这对组合了。为了尝试新人会遇到的问题,我把 .config/dconf/user 这个文件改了个名字,然后在「干净」的 gnome 3.6 环境里无论如何折腾也呼叫不出输入法。 好在除了 gnome 官方「刻意」集成的 ibus,还有 fcitx 可以选择。我对 fcitx 的印象一直还停留在 3.x 的时代,这次尝试才发现,现在伊能提供的用户体验,比起 ibus 岂止是毫不逊色,简直可以令后者蒙羞。 而整个切换过程也异常的顺利,基本上就是按照 wiki 操作一遍(我这是吃狗食已经吃出斯德哥尔摩综合症了么,呵呵)。 安装 fcitx-rime fcitx-gtk3 fcitx-gtk2 fcitx-qt fcitx-libpinyin fcitx-anthy fcitx-configtool 修改 ~/.xprofile 的 export 为 fcitx,注释掉  ~/.Xdefaults-`hostname` 里 URxvt.inputMethod 和 URxvt.preeditType 两行 gnome-session-properties 里面去掉自动启动 ibus 的项 到  https://extensions.gnome.org/extension/261/kimpanel/  安装 kimpanel 扩展,重启 X 即可。 通常我对新东西是宽容的,比如 gnome 3(到现在为止我也还认为 gnome 3 整体上还不错)。因为创新终归是件很困难的事,总要有人愿意吃狗食,事情才会一点一点好起来。但是宽容是有底线的,正如狗食虽然难吃,但至少不能超越作为食物的底线。作为一个中文用户,无法输入中文,超越了我的底线。gnome 团队,你们再这样折腾下去,你们的狗食我是不会再吃了。

c/c++:忽略项目代码以外的 warning

很久以前就曾经想让团队在编译的时候都加上 -Werror,无奈一旦碰到项目以外的头文件里有 warning 就很头疼而不得不放弃。 直到今天遇上了一个比较罕见的情况。 同事 F 的代码用到了 protobuf。之前在某台机器上编译的一直没啥问题,今天换了台机器编译就挂了,而且是挂在 protobuf 的头文件里面。查来查去,发现除了 protobuf 之前是装在系统路径下面,现在是装在用户目录空间里之外,别无区别。 可是如果 protobuf 的头文件里真的有 warning,那无论如何都不应该被编译器放过啊。以 google 在业界神一般的存在,难道也会发布出有 warning 的 c++ sdk 么。 资料不多,不过所幸还真有。 google 的 protobuf 2.3 还真就是这个德性 。有的人自己 patch 了有瑕疵的头文件了事(这种事鄙厂也干过),还有人提到了本文的核心——gcc 的 -isystem 选项。 以前只知道一个 -I。而 -isystem 的作用和 -I 类似,但是会给附带的目录以系统路径待遇。系统路径有啥待遇?而这个待遇,主要就是扔掉各种 warning(标准答案在 这里 )。 目前看来,有了 -isystem,用 -Werror 培养团队良好的编程习惯应该是没障碍了。

archlinux, gnome 3.6, ibus

图片
archlinux 上 gnome 3.6 了。结果中文输入这块就给搞了个鸡飞狗跳。 gnome 3.6 里,在系统设置-区域和语言-输入源这块管理了很多之前 ibus-setup 的设置,取而代之的,就是 ibus-setup 基本不起作用了。 比如绝大多数中文用户认为是天经地义 ctrl-space 开启/关闭输入法,gnome 3.6 压根就没想到过这种功能。gnome 的出发点是用类似 alt-tab 这样轮询窗口的方式,来轮询输入法。所以只能定义「下一个输入源」、「上一个输入源」。当然,如果输入源只有两个,一个英文,一个中文,那么把「下一个输入源」定义成 ctrl-space 的话,效果也还是一样。 当然上面描述的是 gnome 想要实现的东西。实际送到用户手里,跟他们的想法还是有出入。 比如我用的 ibus-rime,在输入源里根本看不见。而不管我配几个输入源,ibus-rime 始终是生效的,只能用 shift 来切换中英文。而 ibus-setup 现在已经无法给「下一个输入法」设置快捷键了。 还有最近 gnome-setting-daemon 的升级带来了一点意外。之前我是不需要操心启动 ibus-daemon 的。升级了 gnome-setting-daemon 之后,需要自己来做这个事情。写在 .xprofile 里面并不妥当,因为启动的太早了,结果跟 gnome 3.6 集成的效果完全没出来,丑的很。目前我的办法是在 gnome-session-properites 里面自己加了一项 ibus daemon,运行命令是 ibus-daemon -d -x。 总之,目前 gnome 3.6 跟 ibus 之间并没有理的很清楚,功能实现的乱七八糟,不过好在输入中文还是可以的,对于我来说暂时也够用了。就看 gnome 的同学们啥时候能把这事情理清楚了。 最后附一张 gnome 3.6 下 ibus 输入的截图,外观体验的一致性还是不错的。

2 小时半途而废玩 android rom

最近得了个新手机,国货。 跟手里再用的经典摩托 milestone 不同,国产手机本来就少有 cyanogenmod 直接支持,倘若又无强人仗义撑腰(在这里真的要特别感谢 nadlabak ,milestone 这样的老机器能有 cm7 可用,当初真是没有选错机器!),就只能忍受国内论坛各种夹带私货的 rom。 现在再用的来自 移动叔叔 的 rom 算干净的,但也会每次开机都重新搞个叔叔工具箱进来。于是花了点时间看了看能不能把这个东西干掉。 linux 用户么,第一个要怀疑的就是 /etc/init*。各种 find/grep 下来,发现塞了私货的脚本其实写在 /init.rc 里。看到了脚本就好办,三下五除二搞定。 一个顺带的发现是替换启动动画其实很简单,替换 /system/media/bootanimation.zip 即可,里面就是一堆图片+一个描述文件,自己做起来也不麻烦。关键字『best android bootanimation』能给出不少好结果。 重启,结果移动叔叔又回来了,检查 /init.rc,居然恢复成之前的样子了,失败。 看了看刷机 zip 包,里面的目录结构从 /system 起。那么,根目录的这些东西是从哪儿来的呢?看来看去,包里面的 boot.img 最可疑。 file 了一下 boot.img,类型是 data,失败。尝试直接 mount boot.img,失败。放狗搜 boot.img,居然是个 大杂烩 ,跟 bootanimation.zip 的风格一点都不一样,很嵌入式。 顿时有点不想搞了。不过路线看起来还是比较清楚的,gzip+cpio。但是改完了的新 boot.img 是不是就这么塞回刷机包里看起来还是有风险,因为刷机包貌似有个什么签名机制。没来得及细看。 等有时间了再慢慢琢磨吧,奶爸不易。 总结: 做刷机包不是很高精尖的技术。只要能找到准确的文档,照办即可。 通常 android 手机拿来第一步都是要刷 recovery 进去。基本上,线刷就是用特定工具配合特定驱动,将手机内置存储分段刷入目的不同的数据块。recovery 就是其中之一。如果要对内置存储重新分区,看起来只有在线刷的阶段做比较安全。 所谓卡刷,就是用固化在 recovery 段的代码负责格式化某些...

责任

前阵子终于将妻连同少爷们接到身边,一家人团聚了。这次和妻的分离,不严格计算下来长达 618 天,创下了我们相识以来的记录。 结果现在就睡眠严重不足了。 段子说『谁发明了婴儿这种外星生物,完全无法沟通,裸机一部,没配任何文档。待机极短,2小时一充,且耗电量惊人,且无法退货更换走三包,随机需要大量周边配件,且铃声很烦,且需要自己慢慢摸索着安装语音系统、操作系统,且还限购哦』,真是所言不虚。 相比之下,工作上的烦心事都是毛毛雨。 曾经年会上有『某某为了项目牺牲小我经常加班结果出世不久的孩子都不认识他了云云』的宣传,把台下一干不经世的码农青年感动得一塌糊涂。此时此地,如果我再做评价,大概会是:『这厮显然避重就轻,不负责任,价值观大大的有问题』。

debug 故事之燃气灶

这次租的房子似乎是很久没人住过了,所以自打去年搬进来,东西就不停的坏——热水器、电冰箱、水龙头、甚至入户的主电缆——所以当最近燃气灶开始不太好用的时候,我很恼火。 症状:打火不灵。电子打火声音清晰,火花可见,但是大概率打不着火。点燃之后使用没问题。 折腾过程如下: 拆电池,用在东京买的 battery checker 测量,两节电池都是 1.5v 满的。 发现经常是早晨可以点火顺利,中午、晚上点火困难。致电燃气公司询问是否停气,答案否定。 怀疑管道。询问楼上楼下,同管道上下两户都没问题。怀疑是燃气表问题。 致电燃气公司要求上门维修。被告知先换电池试试。我则认为电池已经测过没问题,坚持要求上门维修。 一家人饿着肚子等燃气公司的师傅上门。师傅来了之后搞了搞灶具的风门,居然就点火成功了。被告知灶具太旧,可能要彻底坏掉。 致电房东告知情况。房东沉默良久,说要不换电池试试。我沉默良久,要了灶具厂商的电话。 师傅走后果然又点火不能了。模仿师傅调节风门仍然无效。 无奈致电灶具厂商客服,询问电池使用时间,答一年。客服说厂家要求都是三个月就更换一次电池的。我坚持认为电池测过应该没问题,客服坚持要求先换电池再说。 于是终于去买了两节新电池换上。症状消除。 诊断结论: 电池电量不足,虽然可以产生电火花,但大概率无法推动电磁锁,导致气道不通。 早晨容易点火成功是因为电池休息的时间最长。 维修师傅搞风门的时候倾斜了灶具,导致地球引力参与了推动电磁锁。而之后我模仿时倾斜角度显然不足。 东京买的 battery checker 不靠谱。 无论如何,应该先用代价最小的方法尝试解决问题,比如换电池。 这次房东真没侮辱我的智商。