2005-08-31

Blogger.com is launched in China?

今天在Google中文主页上看到宣传blogger.com,可是既然blogspot.com被大陆屏蔽了,这样的宣传又有什么用呢?很是困惑。

不过还是希望解禁的日子早点到来,毕竟写了blog还是希望有更多的人能看到啊!

升级Kernel

前两天升级了Kernel,发现系统时间不能和CMOS时间同步的问题被解决了,也就是说,原来只改系统时间是没用的,因为CMOS时间没变,这样,重起之后时间又回去了。现在终于搞定了。

不过还是有个问题没解决,就是Panel上的音量不能调节,原来是可以的,不知道哪次升级Kernel之后就不行了,然后CD、VCD都看不了了,不知道为什么。

我的电脑是Dell Dimension 4700。

2005-08-29

平等

Martin Fowler Bliki: Diversity: To deal with this, I need to relate another favorite story, this time a recent one. A prospective client of ours gave a talk that included some thoughts on race that seemed to come out of 1930's Alabama. Just about everyone was offended, but the best reaction was from a young black analyst which I'll paraphrase as: "When he says things like that I don't want to walk away from this job in anger. Instead I want to work with this guy, to be in his face with my abilities and professionalism. People like this won't change if no one is there to show them differently. People need to step up and be change agents even when its uncomfortable."

netcasper:看来追求平等需要相当大的勇气!另一则消息是Apache hopes to encourage female coders

Choosing The Platform [@lesscode.org]

Choosing The Platform [@lesscode.org]: "Given those basic metrics, choosing a platform comes down to making two key decisions: where do you fall on the safety/freedom scale and in what manner would you like to proceed? Your remaining time (e.g. forever) will be spent doing one of two things: making the platform more safe or making the platform more free. You have infinitely greater control over one of these situations."

2005-08-27

学习清单

china-pub.com拟推出一项特色服务——学习清单,借此机会我来分享自己的体会。

我是2002年1月在china-pub.com注册的,前前后后买了不少的书,C++的最多,但这次我并不想推荐C++的书,并非没有好书,只是相对一个程序员的整个知识结构来讲,任何一本讲述程序设计语言的书都显得过于具体了。因此,我的学习清单上列出的书都是曾经和正在帮助我完善知识结构的书,这些书不仅讲述知识,还告诉我们一个程序员应该具有的价值观。

以下是我的学习清单:

  1. The Pragmatic Programmer

    (美)Andrew Hunt,David Thomas

    这是一本应该被翻烂的书,更是一本该在翻烂后再买一本的书。

  2. Software Craftsmanship

    (美)Pete McBreen

    如果你热爱编程,这本书会告诉你这并没有什么丢人的,恰恰相反,它值得你付出毕生精力。

  3. The art of UNIX programming

    Eric Raymond

    牛人写的牛书,开阔视野的绝佳参考。

  4. Extreme Programming Explained:Embrace Change

    (美)Kent Beck

    这是另一本必须反复阅读的书,程序员“反洗脑”的必备利器。

  5. Programming Language Pragmatics

    Michael L.Scott

    译者:裘宗燕

    程序设计语言是程序员赖以生存的工具,却不应该成为程序员捍卫的对象。这本书跳出单一语言的范畴,为程序员拨云见日,指出一条光明大道。

    前面四本我都是读的影印版,如果这本也有影印版就好了。唯一的遗憾。

2005-08-26

光懒是不行的,还要呆!

Why Good Programmers Are Lazy and Dumb:

It’s like the story of the centipede. The centipede was very good at walking with its hundred legs. It never spent a thought on just how it could walk. Until one day, when a big black bug asked the centipede “How can you manage to walk with all those feet? Don’t you find it hard to coordinate their rhythm?” The black bug already left, when the centipede was still sitting down, pondering how it could walk, wondering, and (for the first time in his life) even worrying a little bit. From that day on, the centipede couldn’t walk anymore.

So you better not think too much if you want to achieve something. And of course this is only half the truth, too...

成长

小时候觉得30岁的男人已经成熟得一塌糊涂了,可自己到了奔三的年纪,发现还差得远呢,整个一个未成年人的心态,最近的事让我感觉成长了一点(脸红啊)。

勇于承担责任应该算是成长的标志吧,今天把那个糟糕的接口改了,其实改接口很容易,只不过用的地方很多,以为会很麻烦。最后还是想了个办法,自动化了。综合使用了find, Perl和emacs,尤其是用了emacs -batch的方式来完成实际的转换过程,find和Perl起个辅助作用。其实也没什么神奇的,就是写了一个包含三个正则表达式替换的el文件(elisp程序)。

有了脚本事情就容易多了,然后发现其实承担责任的感觉也不算太糟,以后该试着承担更多的责任,不仅解除了工作中遇到的痛苦,而且赢得了好名声,名利双收,岂不快哉!

2005-08-25

Broken Window

《The progmatic programmer》里有句话,叫“Don't live with broken windows”,大意是说一个破败的地方不会有人珍惜,只会一直破败下去。由此引申到代码,不要让broken window出现在代码中,只要出现一处,它就会向病毒一样散布开来。每个人这时候都会想,反正已经这样了,我又何必费那个力气呢!

我现在就遇到这种情况,一个接口设计得很糟糕,害得我满世界找问题出在哪里。已经折腾了两天了,还是没有抽段时间把这个接口重新设计过。说实话这事有点费力不讨好,而且从表面上看跟自己的任务没什么关系。

突然意识到这样下去不行啊,这样下去broken window会越来越多,必须先把这些broken window修好,因为只有在一个干净、优雅的环境下才会有很高的生产力。

2005-08-21

原名:netcasper's blog

一直想着给这个blog起个更具描述性的名字,却始终找不到好主意。今天终于改了,源于上周的一次培训。这个培训已经做了好几次了,每当攒够足够多的新人时,老板们就要求我再做一遍。

由此联想到一些不愉快的编程经历。通常,宁愿一次次忍受由于设计缺陷给编程带来的不便,也“懒”得去重新设计,只图“尽快”完成手上的任务。其实,这不是真正意义上的懒,自然也不可能做到快。真正懒惰的程序员,应该追求一劳永逸地解决问题,不必再受其困扰。

于是,借此为blog改名之际痛下决心,以后看到不爽的地方一律改之,绝不一遍遍“勤快”地重复着糟糕的解决方案。并将两年多来的工作经验整理成文档,造福新人。

《Google成功的七堂课》读后感

Google成功的七堂课早就出来了,但一直没有买,甚至连这个链接都没点进去过,因为以为是一本讲怎么使用Google的书。上周末去上海书城闲逛,忍不住还是拿起来看看,这才发现是自己搞错了,于是买下来。

看过之后对Google这个公司有了更多的认识,Google令人钦佩的不只有他们的技术,还有他们的价值观,以及他们坚持在实际行动中对价值观不折不扣的执行,甚至不惜得罪某些“势力”。这本书通过对Google股票上市过程的描述,让我更多的了解了股票的知识,使我更加相信这里面存在某些邪恶的东西,这种感觉从我看了《未来刚刚发生》的第一章后便产生了。所以,尽管公司配给我一些期权,但我尽量不去在意里面体现的金钱,因为股票的涨落不是对公司经营的客观、真实的反映。

Google的价值观是向善的,至少在它的两位创始人看来是这样,在我看来也是这样。GNU也有很强的价值取向,但两者有很大不同,如果有一天我也能获得成功,不知道我更愿意是哪种成功呢?To be GNU or Google, It's a problem.

2005-08-18

为什么要用DocBook

硕士毕业论文是用MS Word写的,当初最头痛的就是写完后发现需要在中间加一张图,插入图片是很容易的,烦的是后面的图片序号要相应增一,更难的是在正文用使用的“图xx”这种说法的地方也要更新,改到后来已经搞不清哪个改过哪个没改过。尽管工作后直接用HTML写文档,可这个问题仍然解决不了。

DocBook可以完美地解决这个问题,在写文档的时候并不需要给图片或表格编号,号码是在后期处理的时候自动添加的。另外,利用id和xref可以解决引用同步的问题。这样,就可以在一份文档、甚至是书籍里任意增加图片或表格这一类需要编号的东西了。

除了这个,我还很喜欢caution, note以及warning这一类的tag。太方便了,根本不用为它们的显示效果操心。

2005-08-14

务虚笔记

已经不记得第一次看《务虚笔记》是什么时候了,肯定是在大学期间,似乎是在浙图借的书,看过之后非喜欢,后来又借来看过一次,但是从来没有在书店里找到过,甚是遗憾。

我有个癖好,喜欢的书一定要买一本收藏,尽管买回来不一定会再看。

昨天理发后逛上海书城,发现史铁生的几本小册子,以前没看过,便想着再找找《务虚笔记》,虽然没抱什么希望,都找了好几年,估计是绝版了吧。

当“务虚笔记”四个字真的映入眼帘的时候,简直不敢相信,真是工夫不负有心人啊!拿过来一本,感觉比原先看过的那本要薄,而且发现上面写着“最新修订版”,略微有点失望,因为我就想买当初我看过的那本,而不是什么修改过的。随即想到大概只是修改了几个错别字,倒也无妨。翻开一看,又有些不满,字略小,纸也薄,背面的字都透过来了,尤其是封面,纸质很软,似乎与正文用纸并无太大差别,给人一种敷衍了事的感觉。唉,也许不够畅销吧,我暗自叹了口气,出版社也是在规避风险,节约成本啊。

最终还是买了下来,那种感觉就像了了一桩心愿,抑或得了一个大奖。

附:《务虚笔记》,作者史铁生,南海出版公司2004年5月第1版第1次印刷,单价26元。

CodeZoo介绍

2005-08-12

第一次用DocBook

写文档经历了三个阶段,用Word,然后用HTML,现在开始尝试DocBook。

The Art of Unix Programming的第18章Documentation介绍了几种写文档的工具,DocBook是其中一种,在这一节的最后,作者提到DocBook: The Definite Guide is indeed the definitive reference, but as an introduction or tutorial it's a disaster. Instead, read this: Writing Documents Using DocBook. This is an excellent tutorial.

我读了后者,半天就够了,最多一天就可以读完,都是一些简单的例子。读完后试着写了一个最简单的例子,然后用xmlto把xml文件转成html文件。DTD和StyleSheet文件在Fedora和Cygwin下都有,只要把路径写对就没问题了。具体配置参见mickeyrat写的安装配置Docbook工具。当然,如果用emacs的话肯定离不开PSGML Mode

在Fedora Core 3上安装iPodder(转载)

LinuxQuestions.org - iPodder - Fedora Core 3 - where Linux users come for help: "1. $ rpm -qa | grep py
and make sure you see the following packages:
python-2.3.4-13.1
libxml2-python-2.6.16-3
pygtk2-2.4.1-fc3.1
pygtk2-devel-2.4.1-fc3.1
python-devel-2.3.4-13.1
If not, you must install them before continuing. If you use yum, the following command will help you install those packages:

# yum install python python-devel
# yum install libxml2-python
# yum install pygtk2 pygtk2-devel

2. iPodder requires wxPython 2.5 but unfortunately the version of wxPython package provided along with FC3 (and even FC4) is 2.4. This caused the ugly error 'AttributeError: 'module' object has no attribute 'PyEventBinder'' many people had encoutered. Note that iPodder requires wxPython 2.5 so the latest release from http://www.wxpython.org (version 2.6) doesnt work either (this caused the error 'no module wx' when you install the wxpython 2.6 RPM packages downloading from wxpython.org). Following below steps to install wxPython 2.5 (they are fc2 packages but dont worry):

$ wget http://jaist.dl.sourceforge.net/sou..._py2.3.i386.rpm
$ wget http://jaist.dl.sourceforge.net/sou..._py2.3.i386.rpm
$ wget http://jaist.dl.sourceforge.net/sou..._py2.3.i386.rpm

# rpm -Uvh wxPython-common-gtk2-unicode-2.5.5.1-1_py2.3 wxPython2.5-gtk2-unicode-2.5.5.1-1_py2.3 wxPython2.5-devel-gtk2-unicode-2.5.5.1-1_py2.3

Of course, you can download the wxPython source, build and install instead of using RPM packages.

3. iPodder RC3 requires python-xmms which is not provided in FC3. Fortunately, I found a RPM package of python-xmms at DAG repository.

$ wget http://dag.wieers.com/packages/pyth...fc3.rf.i386.rpm
# rpm -Uvh python-xmms-2.04-1.1.fc3.rf.i386.rpm

4. Okay, the prerequisites are now fully satisfied. You can download iPodder RC3 and follow the INSTALL.linux to install iPodder.

This will get iPodder up and running in FC3!"

2005-08-10

blogger.com user survey

刚刚做了一个blogger.com的user survey,希望它越做越好,也希望有一天大陆能够解除对blogspot.com的封锁。

2005-08-07

工作两年(七)——进入工作的世界

我的一个越来越坚定的信念是,不想做管理,只想写写程序。但是,这并不意味着不需要去学编程以外的知识,Joel就推荐学微观经济学。我就曾经阅读过《竞争战略》一书,写下一些心得,作为“程序员,你的路好走吗?”系列的部分文章(开篇)。

这一次,我将将介绍另外两本书,它们帮助我更加清晰地意识到作为公司雇员,我是如何被管理的,以及如何保护自己,避免走弯路。

第一本叫作《组织行为学精要》(第七版),Stephen P. Robbins著,人民大学出版社。这是“双语教学丛书”中的一本,英文正文,并对部分难句做了中文翻译,特别适合我这种外行和初学者。正是从这本书上,我理解了公司某些现行政策的理论基础。然而,作为一本教科书,不可避免的具有一点学术化倾向,在某些公司根本就不适用。不过不要紧,我推荐的第二本书是《公司政治》,英文名为“The Ropes to Skip and The Ropes to know”,作者R. Richard Ritti和Steve Levy,中文版由中信出版社发行。我在读《组织行为学精要》时曾惊讶于老外如何能将一本教科书写得如此通俗易懂,但在读了《公司政治》后才明白,教科书终究是教科书,无法让人产生爱不释手的感觉。《公司政治》由许许多多个小故事组成,每个故事讲述一个道理或方法,教你如何识别、避让工作中不可避免要遇到的一些浅滩、暗礁,向你讲解一个个看似不可理解的事究竟是如何发生的。我已经在看第二遍了,第一次是在读《组织行为学精要》之前,那时只是觉得好玩,读完就忘了,而这一次,我有了更深的体会。

2005-08-05

有目标,没管理(续一)

距离写这篇文章已经快两个月了,令人欣慰的是有了一点小小的变化——基本上,晚上是自己做着吃了,至少比出去吃的次数多多了。

但是也付出了不小的代价。因为工作地点离家比较远,一般要七点钟才能到家。等到做好、吃好、休息好(不想马上收拾:-()、收拾好,就接近九点了。然后洗个澡,上上网或者和老婆聊聊天就差不多可以睡觉了。这样,看书的时间就完全没有了。不学习不进步,心里总是虚虚的,而且上班时间学东西效果总是不好,会犯困。

另外,英语也很长时间没学了,写blog的次数也少起来了,已经有些时日没有用心写过一篇了。

下面罗列今后一段时间的打算,以免故意忘了:-(。

  • 重新开始学英语。现在上下班的路上会看一点技术文章,以后还是改学英语吧,背两个单词,读两句话。
  • 晚饭后要看书,哪怕只有一两页,贵在坚持啊!
  • 完成工作两年系列最后一篇文章,然后写一个关于Perl编程起步的系列。

后记:既然称作“续一”,肯定是为写“续二”做个铺垫,就算凑一个目标管理系列的blog吧。

只想写写程序

MF Bliki: LeadershipDivide | Martin Fowler:

"A goodly part of the problem is that most delivery folks, in particular technical folks, aren't really interested in the operational management issues. They're interested in the project they're on, and on technological issues generally. That's quite enough to keep the brain full. Questions such as the balancing act between hiring and demand, doing the resource management dance, finding and keeping clients, watching the balance sheet - these just aren't interesting.

I must admit I'm guilty as anyone at this. When I joined Roy gave my carte blance to crash any meeting I wanted to. But even when he's dragged me to operational committee meetings I have to confess I have little interest in the issues they are discussing. I know they are important - it's just that I'd rather have someone else worrying about them. Who knows I might be good at operational management (though I doubt it), but even so it doesn't excite me the way my regular work does - and I have precious little time to do that."

Joel给计算机系学生的第八条建议

Joel on Software - 给计算机系学生的建议:

"但解释之前我要说明一下,如果因为这些建议是Joel的建议你就打算无条件地接受,以至于连我的理由都想跳过,那么你就太单纯,太容易被别人骗了。如果你是那种单纯的人,我还要给你第八条建议,找心理医生咨询一下如何培养自信(self-esteem)。"

netcasper:其它七条参见原文。

2005-08-04

Joel on Software - Hitting the High Notes

Joel on Software - Hitting the High Notes:

"My theory is that it's because Apple didn't want to mar the otherwise perfectly smooth, seamless surface of their beautiful, sexy iPod with one of those ghastly battery covers you see on other cheapo consumer crap, with the little latches that are always breaking and the seams that fill up with pocket lint and all that general yuckiness. The iPod is the most seamless piece of consumer electronics I have ever seen. It's beautiful. It feels beautiful, like a smooth river stone. One battery latch can blow the whole river stone effect."

netcasper:想创建一个赚钱的软件公司吗?看看Joel的公式。

Best Working ConditionsBest ProgrammersBest SoftwareProfit!

DocBook新手指南(转载)

原文由mickeyrat写于http://blog.csdn.net/mickeyrat

2005-08-02

用“手”按Ctrl键

一直不喜欢用大键盘,就是一般的PC键盘,因为Ctrl键太远了,按一下很费事,但这个键偏偏是用emacs最常按的几个键之一,所以比较喜欢笔记本上的键盘,一个字,小。

可是自从T30换成了T42,只能用大键盘了,一是因为本本放在铁架子上,总不能举着手按键盘吧,另外感觉T42的击键感觉没有T30爽(这大概是T30唯一的优点了)。但是这样用emacs就太累了。刚刚学了一招,就是不用小指按Ctrl键,而是用“手”。准确地说,手上哪里离Ctrl键最近就用哪里。:-)

说的也是,谁规定按键必须用手指的?!

开源项目这么多,还愁没有事情做?

CSDN - 一个应届毕业生的求职历程及感悟 | 王令刚:

"从这件事情,我得到了两点启示:1.找工作是个沟通的过程,无论是简历沟通,还是面试沟通,要学会营销自己 2. 为成功就业,我必须获得工作经验,这是唯一能够取得胜算的地方,因为目前的行情,IT企业想找的是能迅速上道的人。"

netcasper:实践经验怎么获得确实是个问题。老外们也在思考,这篇文章推荐通过参与开源项目获得经验。

阿根廷人在国米

库珀当主教练时,阿根廷人开始接踵而来,换了个意大利人做主教练,又弄来了索拉里和萨穆埃尔。其实我很喜欢阿根廷队,也喜欢很多阿根廷球星,坎比亚索和索拉里在皇马的时候我就很喜欢他们。可是,难道这个世界上只有阿根廷人才会踢球吗?有必要搞那么多阿根廷人来吗?有本事去做阿根廷队的主教练啊?

似乎很多主教练开始讲究人际关系、开始玩政治手腕,却忘记了球该怎么踢,队伍该怎么带。