这是我堆积无聊的场所,如果你对它有更无聊的意见,请发电子邮件到 huxwcn@263.net出,我们可以交流 心得。 ;)
我最喜欢FreeBSD的一点,就是它所有“系统”的代码,都堆积在 /usr/src目录底下,找起来非常方便,不像linux要满世界去找src rpm。 所以FreeBSD要是觉得什么地方有问题,改起来特别方便。 没觉得 FreeBSD特别稳定,当然比Linux还是要好一点。一年多来就没有再摸过 FreeBSD的服务器,这里是我在自己 的笔记本上拿FreeBSD当桌面的体会,总结起来就一句话,应用软件太少啊。
我们大部分时间是在和软件打交道,而不是和软件底下的操作系统打交 道,所以决定我们最终选择的,不是操作系统,而是软件。从这个角度来 说,倒向Linux的人应该更多一些。Linux的发展是如此迅速,以至于让 人觉得,性能不会是制约Linux发展的瓶颈,现在要关心的,倒是系统的稳 定性。前几天用gentoo-sources的时候,把一块flash硬盘从pcmcia槽上 拔下来也会造成sched.c敲掉,真是ft死了(看了一下-r7的ChangeLog,好象提到 了这个bug)。
前些天搞了一台Dell 500M来,装了一个Gentoo Linux玩。这是安装心得。在Gentoo和 Debian之前我最终倒向Gentoo的原因,是不想让别人的政治取向来影响我 自己的选择。 Gentoo的编译虽然是漫漫长路,但是拜奔腾M所赐,曙光毕 竟不是在电力能够支持的范围之外。
真是一个好东东,yd最喜欢win98,而我最喜欢winxp。
好像有很多人喜欢把java当作一个系统平台,好像还有很多人喜欢把 jboss当作一个系统平台,这里这个人喜欢把Emacs当作一个系统平台。 Emacs的分支,一度和unix一样让人眼花缭乱,比如第一个unix下的emacs, 就是Cosling开发的。延续到现在,主流的Emacs分支,一个是GNU Emacs, 由FSF自己掌握;另一个是XEmacs,从sun一个没做完的IDE项目继承下来。 后者的强项在于图形支持,和一个不错的包管理系统,除此以外,就都是 弱项了。
我写了一点关于Emacs的简单介绍 。没有写完,而且最近也没有写完的动机,有批评指正的指正的请发 给我,我还是先做一些bugfix吧。
另外,截至Emacs 21.3,Emacs都不支持GBK汉字,我们可以通过一个不 太好的补丁解决这一问题。补丁可以从这 里下载。用法看chinese-gbk.el前面的注释。庆幸的是,gnu emacs的 unicode branch已经开始和main branch 进行merge了,只是因为两者分开 的比较早,main branch早经过几次大的重整,这个过程可能要耗费比较长 的一段时间。捱过这一段时间,这个补丁就可以去死了。 ;)
我尝试着用C++改写MF那本著名的代码重构,个人以为最大的问题在于 C++的游戏规则使得小规模的迭代编译也要耗费很长的时间,让人难以接受。 这里是用C++改写的Refactory中的第一个 例子。
Emacs能够帮助进行代码重构,一个很好的工具就是xref。xref并不是open的软 件,但是他的可移植性非常强,因为它的源代码是公开可得的。//grin
关于C++封装的网络库,ACE是做的最好的,缺点则是太过复杂,而且没有好的 参考手册可看。虽然是手边都有源代码,而且也有的是paper可以看,但是真正使用的 时候,我们还是宁可有cookbook一类的东西。其实应该自己写一个。
Boost几乎是讨论C++的首选话题了。;-) 先大概介绍boost中各个库的作用
开始学Fucntional Programming了。因为人家MIT的课程6-001就是用的scheme,不学学 看不懂阿。不过渐渐觉得scheme确实是很值得学习的东西,这很值得学习的,还 包括O'Caml,Haskell。先搞定scheme的笔记吧。
看电影也是打发时间和发泄自己的一种方式。打发时间很容易,坐在屏幕前面一动不动就是 打发时间;发泄自己,则需要一台额外的电脑,来记录看电影时各种不爽或者爽的感觉,这个相对 困难一些,所以我现在才开始认认真真的做它。首先要养成习惯,看了片子以后写点什么,而不是 唠叨点什么。
几乎所有的多线程编程问题,都来自于对线程本身的缺乏了解。关于多 线程编程的书,如果只推荐一本的话,那当然是Butehof的Programming with Posix Thread了。虽然这本书很老,虽然你拿到手上的印刷版有不少 错误没有修订(至少我的这本是这样的,不过自己做bugfix也是很有意思 的),但是对于多线程编程这方面,却是不作它想的No.1。
其他各种零零碎碎的关于多线程编程的书,总没有达到这样一个高度的。 前段时间有一本关于C++和多线程程序设计的书,专程去翻看了一下,感觉 该深入的地方都泛泛而过,罗列了一堆api,买了也是浪费银子。至于 jjhou翻译,而且做足了宣传的Win32多线程程序设计,也不过尔尔,大概 适合给那种打死也不看非windows平台api的人看。
对于C++里面怎么有效的使用多线程,特别是C++中能不能做一套完整的 Posix Thread接口,现在还没有定论;甚至于,C++中的一些很正常的行为, 比如超出范围的object会被自动析构,在特定的多线程环境下,可能都是 没有定义的。 所以想在C++里面玩好线程,还是先练好基本功,用C玩好 线程为妙。我这里的整理 也是有一搭没一搭的。 ;(
另:cuj上有一片文 章,关于用C++的type system来检测可能存在的竞态条件,比较有意 思,类似的工作还有人在java上做尝试,小规模的用在自己的工程中也未 尝不可。同时,usenet上还有一个大大的thread讨论volatile和线程间可见性的 关系,结论很简单,volatile对于posix环境下的多线程系统,既不是充分的, 也不是必须的。所以注意,不要让volatile出现在最后release的代码中就 是了。