使用thinkpad 键盘灯做邮件提醒

thinkpad屏幕顶部的键盘灯(ThinkLight)很可爱,虽然起不了什么照明效果,但黑暗环境下挂在视线正中的一束幽幽冷光貌似真能给思考增添灵感。这灯和小红点一道构成了THINK味的重要调料。

pidgin有一个有趣的插件blanklight,能在新IM消息到来时闪烁thinkpad键盘灯以做提醒。我很喜欢这个插件,虽然其只能用于IM消息提醒,且只能闪烁固定的3次。

对于大多数用户来说,新邮件提醒应该比IM消息提醒更为重要.受blanklight的启发,我决定用ThinkLight来进行邮件提醒。

我的桌面环境是xfce4, 她的面板自带一个非常出色邮件提醒插件xfce4 mailwatcher能同时监视多个邮件帐号,支持几乎所有邮件服务(IMAP,POP3,GMAIL,LocalMail etc...)并且能在监测到新邮件时执行指定程序.

我写了一个控制ThinkLight的小脚本lightup,以--start作为参数运行时能让键盘灯一直闪烁,如果以--stop参数运行则检查小灯是否已经在闪烁,如果是则让其闪烁停止。让xfce4 mailwatcher在收到新邮件和点击图标时执行这脚本的两种运行方式。一套完美的ThinkLight邮件提醒系统就完成了 ;-)

用linux的thinkpad用户可以玩玩这个脚本lightup,很简单的配置过程已经写在里面,请用文本编辑器查看.

UPDATE: 往LinuxToy上投递了本文后,获得了不少有趣的反馈。感谢Iven的创意和snyh分享的xset设置scrollLock灯方法 ...

ibus ubuntu9.04编译安装配置

第一次编译安装ibus. 连蒙带猜解决完一堆编译编译依赖后,配置也费了不少力气,备忘如下:

  • 参考/etc/X11/xinit/xinput.d/scim 创建 /etc/X11/xinit/xinput.d/ibusn
  • 可以通过 $export GTK_IM_MODULE=ibus;gedit 测试输入。如正常把GTK_IM_MODULE和QT_IM_MODULE的值设置为ibus.
  • 如果ibus是使用--xim方式启动, GTK_IM_MODULE和QT_IM_MODULE的值可以设置成xim. (如果设置成ibus不能呼出输入法的话)
  • ibus自动捕获的快捷键有问题,得自己编辑下.

好久没折腾系统了. 装个输入法都弄了好半天,这就是geek的乐趣?

ps: 请教了lidaobing同学, xim 和IM_MODULE从使用上区别如下:

  • xim: 老程序兼容性好一些 .
  • GTK or QT immodule : 接口丰富,支持在控件上直接选字,输入焦点跟踪支持.

twitter被墙后的思考

去年注册了twitter帐号,直到最近两个月才开始重度使用. 虽然时间不长,但twitter已经成为我网际沟通和获取信息的重要工具。昨天这个神奇的应用就这么无声无息的被伟大的GFW给墙了,除了抱怨一个生活习惯被中断后必然带来的不快.这也是个思考的好机会.

对比相对私人的blog, 信息在基于社交网络的服务中传播速度更快,通过好友,圈子,follower强化了的关系网又让信息的传播更有针对性和易于追踪. 当做减法的twitter把功能集中于信息传播,而又拥有无数插件产生的微传播成本时。六度空间理论的威力开始显现. 以我的体验在相熟人群间传播较琐碎信息时,twitter方式是最方便的.最近一期的南方人物周刊上对twitter和国内的克隆饭否的意义和影响有一篇很好的文章“twitter时代”,感兴趣的同学请移步。

但twitter的特性决定了她只适用于辅助传播途径.较长篇幅的写作,图片,视屏,代码片段...这些更具表现力和深度的内容仍然需要借助blog来进行记录。虽然twitter提供了blog页面嵌入的方式来融合twitter内容到个人blog中,使得twitter的内容和blog内容能显示在一个页面里,但两部分信息仍然还是独立的。

如果能做到以下几点:

  • 定期归档在twitter发布的信息到blog上
  • 结合有关联的blog post和tweet条目.
  • 和blog共用tag体系.
  • 发表blog post时,自动发布tweet, 融合tweet的回复和blog回复于blog post页;并追踪该blog post在twitter网络的传播.

我想,twitter上的琐碎言语将变得更有意义. 如果twitter能再次解封,我会研究她的api ...

给pylogs添加评论直接发布选项

给pylogs添加了评论直接发布选项,这次更新的变更集记录在这里

ps:
SKY同学改进了pylogs博客发布页的布局. 现在写blog更舒服了.

Lisp中的Symbol

Lisp中的Symbol(符号)这个概念在我熟悉的Python,Java,php中并不存在. 以下稍作总结以备忘:

一个Symbol在Lisp程序任意Scope中拥有唯一的字符名,用于在特定Scope中通过该Symbol来找到某个Variable(变量)或Function(函数). 这个概念类似其他语言中的Variable name(变量名)或Function name(函数名)。在python或Java中,变量名或函数名和名称所指的变量或函数同生同死,密不可分. 而Lisp的Symbol显得更为独立.

Symbol(符号) vs Viriable(变量)

  • Lisp程序中,Viriable(变量)的值存储在指向该变量的Symbol(符号)的value cell(值单元)中. 一个Symbol在利用value cell储存变量的同时也可以利用function cell(函数单元)存储Function(函数)或Macros(宏). (就是说一个Symbol可以同时被作为变量和函数的标示使用)

Symbol带来的优势

在其他语言中当你的程序执行完 x= 7 语句后 ...