Saturday, September 26, 2009

批量获取Twitter好友feed的小程序

2010.1.19更新:
现在不推荐使用这种方法来获取Twitter好友的feed, 因为经过试验当好友数达到一定数目时, 获取的feed列表是不完全的.

曾经介绍过怎样通过Google Reader备份和搜索好友的Tweets, 其中关键的一步就是获取所有Twitter好友的feed, 这样就能通过Google Reader订阅了. 今天抽了点时间把以前那个code2string.py稍微改进了下, 现在只需要告诉程序你的Twitter用户名, 它就会自动完成获取feed和转换中文的工作了. 请猛击这里下载fetch_twitter_feed.py, 使用方法如下:
$ python fetch_twitter_feed.py username1 [username2 ...]
支持多用户名, 运行成功后会生成后缀为.opml的文件, 像以前一样, 导入Google Reader就行了.

Friday, September 25, 2009

Songbird无法启动的解决方法

今天在一台电脑上下载了最新的Songbird, 结果一运行就出现了严重的错误, 错误提示如下:
*** glibc detected *** ././songbird-bin: free(): invalid pointer: 0xb138bc20 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7d98604]
/lib/tls/i686/cmov/libc.so.6(cfree+0x96)[0xb7d9a5b6]
/usr/lib/libvisual-0.4.so.0(visual_mem_free+0x21)[0xb0dd3141]
/usr/lib/libvisual-0.4.so.0[0xb0dca407]
/usr/lib/libvisual-0.4.so.0(visual_plugin_get_list+0x73)[0xb0dca5e3]
/usr/lib/libvisual-0.4.so.0(visual_init+0x291)[0xb0dd9ec1]
/usr/lib/gstreamer-0.10/libgstlibvisual.so[0xb0e36273]
...
郁闷, 以前在我的电脑上明明一点错误都没有. 然后在这里找到了引发错误的原因, 只要删除一个软件就行了:
$ sudo apt-get remove libvisual-0.4-plugins
不清楚这里面的具体因素, 也许是那个库文件和Songbird调用的库文件有冲突吧.

Wednesday, September 23, 2009

程序员专用博客推荐: is-Programmer.com

那天在看OSD Lyrics作者之一的TigerSoldier博客时发现了这个网站: http://www.is-programmer.com/, 首先是被这个域名吸引的, 很有个性, 呵呵~ 接着注册了一个账户详细了解了一下, 发现这个博客还是挺强大的, 主要特色是代码高亮和LaTeX数学公式支持, 这些对于程序员来说都是挺重要的, 另外博客的定制性还不错. 具体效果可以看看我刚注册的博客: http://xiaogaozi.is-programmer.com/

P.S. 在看到OSD Lyrics后, 心又开始痒了, 想大学期间怎么也得做点东西出来. Ray, 我们好久一起开发哇?

Thursday, September 17, 2009

经典游戏推荐: NetHack

原文发表于「桃源」: http://linux.cuit.edu.cn/?p=571

NetHack是一款经典的D&D (Dungeons & Dragons, 龙与地下城) 类型的角色扮演游戏, 有着20多年的历史. NetHack的前身是Hack, 而Hack的前身是Rogue. NetHack名字中的Net并不代表这是一个联网的游戏, 而是表示这20多年的开发主要是通过网络的合作. NetHack影响了以后很多游戏的设计, 其中包括暴雪的经典游戏Diablo (暗黑破坏神). 有人说如果妳一生祇打算做一件事的話,玩 NetHack 。

NetHack本身是一个纯字符界面的游戏, 全部由键盘操作. 你一定觉得这会很困难, 其实NetHack上手是很容易的, 基本的按键操作和Vim类似. 正是因为这种大量使用键盘操作进行交互的模式, 使得以后采用类似键盘操作的软件都被叫做roguelike. NetHack具有丰富的内涵, 游戏中的对话、背景介绍、典故很多出自各种经典的奇幻与科幻小说, 如Tolkien的《The Lord of the Rings》 (魔戒), Douglas Adams的《The Hitchhiker's Guide to the Galaxy》 (银河系漫游指南) 等. 《The Cathedral and the Bazaar》 (大教堂和市集) 与《How To Become A Hacker》 (如何成为一名黑客) 的作者, 著名黑客Eric S. Raymond曾经在《The Art of UNIX Programming》中介绍了Rogue, 并且为NetHack写了一篇官方指南: A Guide to the Mazes of Menace (Guidebook for NetHack). 还有一篇有趣的指南, 叫做I Keep Dying And Dying And Dying, What Should I Do? (我死了又死继续死, 我到底做错了什么?).

NetHack一共有13种职业: Archeologist (考古学家), Barbarian (野蛮人), Caveman/Cavewoman (穴居人), Healer (治疗者), Knight (骑士), Monk (僧侣), Priest/Priestess (牧师), Rogue (盗贼), Ranger (游侠), Samural (武士), Tourist (旅行者), Valkyrie (女武神), Wizard (法师). 第一次玩需要简单地了解下基本的按键操作, 在游戏中按"?"可以显示帮助菜单. 对于新手来说, 建议玩NetHack的discovery mode, 这样可以"死后满状态原地复活", 只需要在命令行下加上"-X"参数就行了. 下面是一张NetHack的截图:

NetHack CLI

NetHack是一个跨平台的游戏, 支持Linux、Mac、Window$等, 还可以在Emacs里玩. 如果你不习惯纯字符的界面, NetHack还提供了2D和仿3D的图形界面. 如下图:

NetHack for Window$ Vulture's Eye

你可以在这里下载NetHack, Ubuntu用户可以使用以下命令安装纯字符版本:

$ sudo apt-get install nethack-console

SNS All in One在Jetpack 0.5中失效

今天升级到了最新的Jetpack 0.5, 结果发现SNS All in One失效了, 侧边栏也不见了. 经过一番调查, 发现是Jetpack 0.5自身的问题, 并且也有人和我一样遇到了类似的问题, 只能等待Mozilla来解决了. 如果已经升级到0.5了, 卸载之后重新安装Jetpack 0.4即可正常使用.

Saturday, September 12, 2009

doubanclaimff76e601cce066d3

豆瓣还真是麻烦, 认领个Blog还需要写篇日志, 并且必须包含'doubanclaimff76e601cce066d3'这样一串字符. 应该学习下Google, 验证的时候只需要在HTML里加一行代码就行了.

Wednesday, September 9, 2009

美国是怎样监管网络的?

今天在读Andrew S. Tanenbaum的著作《Computer Networks》时, 某页讲到美帝国主义使用一种叫做Carnivore的东西来监管网络, 顿时千头万绪涌上心来, 感动得热泪盈眶, 原来我们并不孤独... 我于是去详细了解了一下Carnivore到底是什么.

Carnivore由FBI (Federal Bureau of Investigation, 联邦调查局) 设计, 是美国的第三代网络监视软件, 前两代分别是Etherpeek和Omnivore (后来改名为DragonWare Suite). Carnivore的主要功能是监视互联网和电子邮件, 运行在Window$操作系统上, 由FBI放在每一个ISP (Internet Service Provider, 互联网服务提供商) 那里. 这样一个极容易侵犯个人隐私的东西在美国这个极讲究人权的国家是肯定会遭到反对和抗议的, FBI做出解释说Carnivore只是具备监视的功能, 但它并不会时刻监视所有的互联网信息, 而只会监视特定的对象, 监视的对象也必须由法院命令决定, 比如某些恐怖分子. 后来迫于舆论的压力, FBI将Carnivore改名为DCS1000 (Digital Collection System) 这样一个比较温和的名字. 2005年FBI宣布停止使用Carnivore, 但社会依然相信FBI只是把Carnivore替换成了其它类似的商业监控软件. 有关Carnivore更详细的介绍, 可以阅读博闻网的一篇文章: Carnivore网络监视软件的工作原理.

现在看来, 美帝国主义也不过如此, 还是比不上天朝的宇宙超级无敌河蟹墙: 金盾工程.

Wednesday, September 2, 2009

关于搭建ARM工具链 (ARM Toolchain)

以前写过一篇[怎样搭建ARM交叉编译环境?]的文章, 那时的我还以为arm-linux-gcc编译器是一个独立的软件, 可以直接获得. 但在Google搜索的结果里怎么也找不到一个独立的正式的页面, 只有些零散的下载点. 于是我有点怀疑自己的理解是否正确, 隐约记得有人通过编译的方式得到arm-linux-gcc, 这是不是和GCC有着某种联系呢? 接着又换了几个关键词进行查找, 发现原来平时使用的arm-linux-gcc就是由特定的编译参数编译GCC而得到的. 原来这一切没有现成的, 而是需要自己手动去编译呢. 不过这个编译过程实在是有点繁琐, 有兴趣的可以参考这两篇文章: Building a GNU/Linux ARM Toolchain, The GNU Toolchain for ARM targets HOWTO.

2010.5.26更新:
uClinux的网站上也发现了搭建ARM工具链的详细步骤 ("build-arm-linux-*"文件), 并且提供了搭建过程中所需的各种源码包, 算是比较齐全的吧, 推荐一下.

对于一般使用者来说, 实在是没有必要去自己编译, 我把3.4.14.3.2两个版本的ARM工具链放到了网上, 方便以后的使用.

Tuesday, September 1, 2009

ARM板烧写文件系统失败的总结

这几天一直被一个很恼火的问题纠结着, 需要给块板子烧写文件系统, 但使用我前段时间介绍过的Linux下的DNW试了很多次都失败了, 又试了一个老外写的s3c2410_boot_usb (这个传输速度比DNW慢很多) 还是不行, 在SHE电脑上的XP下用Win版的DNW依旧不行, 可用某师兄的电脑烧的时候又每次都可以, 囧. 另一个师兄笑说这是人品问题, 呵呵~ 不过我就是不相信有那么离奇, 没道理只能在别人的电脑上才能成功, 一定会有解决办法的. 终于让我发现了一个传输上的小细节: 地址, 这时我才想到每次烧的时候我都没有指定地址, 而是使用的程序内部的默认地址. 于是试着修改了一下dnw2的源码, 把地址替换了, 结果, 嘿嘿, 肯定是成功了三, 哇哈哈~~~ 不过困扰了几天的问题居然是这么一个小细节...

为了以后的使用方便, 我又进一步完善了dnw2的源码, 使得可以通过命令行参数来指定地址, 最新打包好的程序: dnw2_linux_fixed_20090901.tar.gz. 同时我的修改版也得到了原作者Fox的认可, 并放到了他的SVN仓库里. 最后需要特别感谢Fox的贡献.