2008-06-30

先去探路

项目GA了以后不再忙碌,周四周五休了年假。加上周末,一共四天,在家里吃了睡、睡了吃,比较腐朽。至于本周,周三上午培训,下午机考(组内C++考试,成绩直接影响MBO的5%),周五周六两组一起outing,而且居然是浙西大峡谷。

从2006年就开始和兄弟们计划,后来遇上雨季,然后我回校,找工作,回到上海,其间耽搁了两年。而更巧的是周六鲍总、谢总又和我谈起这件事。当时满口答应。真是``无巧不成书'',就当先去探路了。

标签:

2008-06-28

Emacs Tip -- 1

;; F11 to toggle fullscreen
(defun fullscreen ()
 (interactive)
 (set-frame-parameter nil 'fullscreen
  (if (frame-parameter nil 'fullscreen)
    nil
    'fullboth)))

(global-set-key [f11] 'fullscreen)

标签:

2008-06-20

dwm

从dwm-tools顺藤摸瓜,顺便关注了一下dwm,发现xmonad的快捷键设置和dwm完全一样。这是一个相当小巧的窗口管理器,4.7版本的源代码才2100多行,很值得仔细阅读之。

dwm一个比较另类的设计是,没有配置文件,所有配置需要修改源代码config.h,例如把默认的mod1Mask(alt键)改成mod4Mask(win键)。apt-get source抓下源代码,修改一下配置后dpkg-buildpackage便会创建新的deb包。

dwm原来所在站点是dwm.suckless.org,今天似乎不能访问。看了一下邮件列表,原来正在迁移到新的server。`suckless'这个域名很有意思,让我想起Mutt主页上的一句话:
"All mail clients suck. This one just sucks less." - me, circa 1995

没有最好,只有更好。做到suckless其实真的很不容易。

标签:

Xmonad

开始对自己的12.1寸小本有所抱怨,因为将屏幕垂直分割成两屏看代码时便显得有点拥簇。想来自己只需要三个窗口:Firefox, Emacs和Terminal。Firefox3的全屏功能非常棒,至于Emacs我也早已关掉menu-bar和tool-bar。作为一个习惯于全键盘操作的用户,Gnome的panel对我来说实在没有什么吸引力,于是去找键盘友好的窗口管理器。

早就在reddit上看见xmonad,于是apt-cache search了一把,居然命中。于是安装之。启动后Gnome桌面背景会消失,可以用xsetbg命令自己设置一个,要想每次登录后自动生效可以将该命令写在~/.xprofile文件中。

xmonad的默认功能键mod是alt键,这样用Emacs或者bash的时候都不怎么爽。可以把它改成win键,只要在~/.xmonad/xmonad.hs添加如下Haskell代码:

import XMonad

main = xmonad $ defaultConfig
{ modMask = mod4Mask }

注意的是,光有该配置文件还不够,它需要libghc6-xmonad-dev等等。要安装它实际上会一起安装ghc,比较主流的Haskell解释/编译器。重启,登录后配置便会生效。这时~/.xmonad/目录下会多出三个文件:xmonad.hi xmonad-i386-linux xmonad.o

如果确信自己不会再修改配置,可以把ghc等删除,只留下xmonad。这样会节省144MB硬盘空间。另外,一个不可不装的程序是dwm-tools, 有了它后,mod-p会启动dmenu。最后,因为没有了gnome-panel,看系统时间不方便,可以在Emacs的启动文件中添加一行:
(display-time-mode t)

更多键绑定,可以参考man xmonad。

标签:

2008-06-17

Scheme笔记 -- 3

趁着最近比较闲,写完了关于符号处理,这里是编译出来的pdf文档:
http://live4thee.googlepages.com/scheme-intro.pdf.gz

另外,在sharesource的Hg仓库里保存着最新的LaTeX源文件:
http://hg.sharesource.org/sysnotes/

下一章介绍约束传播系统。以电路系统为例,因为方程V = IR始终成立,于是一条线路上,当电压、电阻和电流中有两者确定时,第三个元素的值便也随之确定。

虽然在数学中,只要一个方程便能描述。但在编程语言中往往不得不写三个过程,知道两个元素后求解第三个元素。因为传统上计算机程序总是被组织成一种单向的计算,对于给定参数给出所需要的结果。

约束传播系统通过组合各种基本约束,构造出约束网络,动态生成各种元素的状态。

标签:

2008-06-14

ERC + Bitlbee = All-in-one Emacs

一直想找出GNU/Linux下简单的IM解决方案,它需要小巧、快速而可靠。以前gtalk用emacs-jabber,而MSN用emesene,后者常常宕机,而且没有Emacs下的键绑定。今天终于找到了大一统的方法:ERC + bitlbee.

ERC 是个Emacs/XEmacs下的IRC客户端,而bitlbee则是一个IM和IRC间的gateway。我们可以通过网络上的公共bitlbee服务 器去连接各种IM,包括XMPP/Jabber, MSN, Yahoo, AIM和ICQ。于是我终于可以在Emacs里面连上我注册的那些IM,其中oscar便是ICQ的协议名了。

<live4thee> account list
<root> 0. msn, royalfer@msn.com (connected)
<root> 1. jabber, live4thee@gmail.com (connected)
<root> 2. yahoo, liqun_yz
<root> 3. oscar, 195110836
<root> End of account list

打开Emacs,M-erc进入ERC,它会提示输入IRC服务器名和端口号,默认是freenode:6667,我们需要登录im.bitlbee.org:6667,网上有现成的教程,不再赘述。下面是添加IM帐号的命令:
account add <protocol> <username> <password> [<server>]

MSN:account add msn royalfer@msn.com PASSWORD
Gtalk:account add jabber live4thee@gmail.com PASSWORD talk.google.com:5223:ssl
Yahoo:account add yahoo liqun_yz PASSWORD
ICQ:account add oscar 195110836 PASSWORD login.icq.com

第 一个帐号添加以后会自动连接上,其它可以通过命令account来打开或者关闭,比如,可以用``account on 1''来打开gtalk等等。``help account''可以查看详细语法,另外一个比较有用的命令是``blist'',就是查看所有在线的buddy。要选择一个buddy聊天,设其 nickname是Nick,则:/msg Nick message而且这是个private conversation.

最后,``set private on''是个很有用的命令,它为每个private conversion单独开一个Emacs buffer.

标签: ,

雨天

被窗外的雨声唤醒,看看时间,六点刚过。人们在欧洲杯接受了一场狂热的橙色风暴的洗脸,或许刚刚睡下。大雨也丝毫没有停止的意思,一样倾泄如注,为世间注入清凉,``夜阑卧听风吹雨''。

网络速度比较快,登录公司的webmail,没有什么新邮件。这个周末对我们Team而言比较关键。北京的QE/QA加班做完最后的测试,而上海的开发人员则都随时待命,architect上周便从米国过来,督阵是也!

我个人对测试结果还是有点信心的。一来已经进行过大量测试,二来最近也没什么代码的改变。最近一个礼拜更多的只是文档而已。一句话,``the beginning of the end.''我相信,下周更多的会是黎明而不是黑暗。

大雨渐止,声声雀啼。远处传来马达的声音。

标签:

2008-06-13

About Borland

程序员中,应该鲜有不知道Borland公司的。从Turbo Pascal, Turbo C,传奇的Dephi以及后来的C++ Builder、JBuilder等等,它们见证了一代又一代程序员的成长。大学时常买《程序员》杂志,后来拜读了李维先生的《Borland传奇》,赞不绝口。``胸中有风云,笔下自深情。''虽然我上学时便没有对IDE的依赖,对各种RAD工具也是很少接触,但却始终怀有对Borland公司的崇敬。

IT界发展迅速,传奇似乎已经不再,而Borland似乎渐渐也失去了昔日的辉煌,甚至让人感觉销声匿迹。在Google和百度上分别以borland加上linux作为关键字搜索,最近的新闻已经是2001或者2002年,接着才知道CodeGear已经成为独立公司,而不再是当初Borland的一个部门。

在Win平台的C/C++ IDE市场上,Borland最终并未占到便宜,很大程度上因为M$占据着操作系统的控制优势。当年IE对Netscape的不当竞争便是鲜活的例子。个人觉得在GNU/Linux系统发展出一套RAD工具将会迎合许多初级程序员的爱好,并逐渐赢得更多程序员的青睐。因为大家知道GNU/Linux的开发环境对于初级程序员来说不太友好。可惜的是,2001年3月Kylix刚出来的时候只支持Delphi,直到2002年9月才推出对C/C++的支持,然后似乎便陷入了中断。Kylix的普及率和知名度也一直不理想。

现在呢?有经验的程序员都会喜欢用vim或Emacs,初级开发者可以选择Eclipse CDE,Kdevelop,Anjuta等等,至于协作开发工具gforge等等。它们能满足程序员的绝大部分需求。如果CodeGear能在可视化开发方面给GNU/Linux系统注入新鲜血液,那将是很多程序员的福音。

或许,有朝一日,CodeGear能在GUN/Linux平台上重现辉煌,我梦想着。

标签:

2008-06-12

PLT Scheme 4.0 Released!

PLT-Scheme的4.0版本终于发布了!首页也焕然一新,官方主页下载之:
http://plt-scheme.org/

PLT Scheme是个极具现代化的Scheme编程环境。主页上有一个介绍视频的链接还有一篇有趣的简介,实在不能错过。其实这俩份资料之前在reddit上已经释出,但是需要新版的plt-scheme才能演示。

另外,plt-sheme也被用在livecoding中,比如fluxus,有兴趣的伙子们不妨一试。

标签: ,

autotoolset

Autotoolset: http://autotoolset.sourceforge.net/

(setq user-mail-address "email@your.domain")
(setq user-full-name "fullname")
(require 'gpl)

很久以前便知道它的存在,只是一直没有好好看看上面的文档。20号我们的产品就要GA,这两天比较忙的是各位老大们和QE/QA。不知道今天怎么写自己的daily report -- 自从RC以来,我们就保持着。

我很庆幸当初选择以``程序员''作为自己的职业。我可以在工作的时候堂而皇之地上网,搜索感兴趣的技术或者言论。这给了我相当大的乐趣,并且免于通过CCAV打发时间。我想,大概任何一个有理智的人都不能忍受自己的耳朵遭受三十分钟的折磨。

这个``人民当家做主的国家''很奇怪:在这里public opinion is zero,其子民只能感恩戴德却很难实施有效的问责。想起小学的第一首歌,歌词的第一句似乎是这样的:``我们的祖国是花园,花园的花朵真鲜艳。''

标签: ,

2008-06-11

突发奇想

偶尔搜了一下,发现柏拉图的老师和弟子分别是苏格拉底和亚里斯多德。上下五千年,中华文明中似乎找不到有相同巨大影响的三代 -- 当然也不能妄自菲薄,我们有过三代英明伟大的领导核心。

标签:

三言两语

周末去了一趟龙阳路的decathlon,似乎将近一年没有去过。因为时间有限,稍微转了转便离开。我对美眉说我对这个品牌的忠诚度相当高 -- 一路公交转三号线、四号线再转二号线,我容易嘛!

周一在江湾体育场游泳,天空飘着小雨。人不多,设施也比较好,只是游了几把后顿觉全身发冷。想起前晚纪实频道的女子游泳马拉松,暗自感叹全身脂肪太少,一点都禁受不住热力学第二定律的折腾。回家路上看见看见雨中的麻雀在蹦达,于是扯到一系列话题:
  1. 麻雀只会蹦,不会直立行走;
  2. 但是家禽如鸡鸭鹅都会直立行走;
  3. 野鸡、野鸭也会直立走;
  4. 哺乳动物虽然在进化的角度比卵生动物高级,但大部分都不会直立行走。
渐渐的,突然发现我们似乎在重蹈柏拉图的覆辙。:-)

升级了一下系统,发现firefox后的3.0没有了RC字样,难道这就是正式版了?

标签:

firefox技巧 -- 1

近日突觉右眼干涩,伴有轻微酸、痒之感。痛苦难当。于是药店寻得滴眼液一盒,很快治好了右眼,但左眼却又开始不舒服。疑为用眼过度,于是亡羊补牢,为了保护眼睛,琢磨着怎么把firefox中浏览的网页背景色改为灰色,而不是明亮的白色。

在地址栏中输入``about:config'',以``color''为关键字过滤之,得到一个``browser.display.backgroud_color'',把默认值``#FFFFFF''改成``#CCCCCC'',这样Ctrl-T新建一个标签的时候背景设为灰色,但绝大多数情况下,因为网页有自己的背景色设置,所以这招罩不住。

想起几周前看见一篇帖子,通过在firefox中新建一个bookmark,然后location中填入javascript,将正在浏览的网页变成一个纯文本。我只是想改一下背景色而已,应该没什么问题。于是如法炮制:新建一个书签,Name随便填一下,比如``GrayThePage'',然后在location中填入以下代码:
javascript:(function() {document.bgColor=%22#CCCCCC%22;})()

保存好以后,对打开的网页点击一下该bookmark,则背景色便会改成灰色。没写过js代码,不过看起来这段代码似乎利用了匿名函数功能,如Lisp中的lambda -- 只是猜测而已。

标签:

2008-06-05

流水帐

2008-05-30 致谢
上周我们的HR又发来邮件说外服索要相关资料办理某些保险。其实我已经被外服 催了两次,但自第一次后我便已经把材料交了上去。第二次自寻了HR,回复说已 经交到外服,可能外服没找到便没了下文。

既 然这次又来索要,便电话HR再次咨询 -- 回答说有证据证明资料已经交到外服, 一定是外服弄丢了。靠!老子要的是结果,不是理由。外服弄丢了怎么没有及时 通知我?一件简单的事情从过年前一直拖到现在。我回答身边已经没有户籍证明, HR回复帮我找找有没有存根。我知道,这只是缓兵之计而已。果然后来也没 了声音。无语。

周五老大有课,于是请求dpig的帮助,半天便帮我搞定,周一收到EMS。在此特 意感谢小鄢,下次再见,当备薄酒,以表不尽感激。

2008-05-30 不虞之誉
下午头儿喊我,进了几步之遥的隔壁一间办公室。本来以为是one on one,没想到给了我一张奖状,类似老东家的SRA。毫无征兆,意料之外,算是不虞之誉吧。

标签:

2008-06-04

sharesource

终于在sharesource上host了一个hg仓库,并且假模假式的有了自己的project,感觉比较happy。一鼓作气,把我的scheme, elisp笔记,以及当初和老鄢一起写的glibc笔记都载入了仓库。

下午没事,鼓捣出了一个bash脚本,用于导出linux-gate.so,顺便也放在了里面。

标签: ,