Archive for April, 2008

转到XHTML1.1

Tuesday, April 29th, 2008

XHTML 1.1更为严格。要求input外面都要有p包着才行。vim自带的正则不会。还是用perl的吧。

:perldo s/<input(.*)\/>/<p><input\/><\/p>/g

一下就转好了。

oswd

Monday, April 28th, 2008

http://www.oswd.org 是一个提供开源网页模板的站点。还是不错的。看到不少站点用这个。搜了一下,基于XHTML 1.1的模板不过区区16款。大部分都不太好,我轻而易举就可以写出比它们好的。当然有几个还是相当棒的。看样子,XHTML 1.1还是不受欢迎的说。

梦到睡不着

Monday, April 28th, 2008

躺在床上,怎么也睡不着,忧心忡忡的。翻了个身,终于。。。醒了。原来睡不着只是一个梦。

一些wiki的subpage

Monday, April 28th, 2008

Oddmuse不支持。其理念是所有的页面应该是一个平面的。MoinMoin支持页面名称包含/。但是存储的时候,并不是以父页面的子文件夹的形式来存储的。而是独立的文件夹,类似page(2f)subpage。ikiwiki是完全支持的,存储就是以目录/子目录的形式。而且ikiwiki是鼓励subpage的。比如在page/subpage页面写上一个链接[[foo]],ikiwiki将首先寻找/page/subpage下有没有foo页面,有则链接之,没有,再到/page下找,最后才到/下找。

Knuth的工具

Monday, April 28th, 2008

Knuth都用些什么工具呢?

窗口管理器,是FVWM。(王垠早已报料了。王垠的主页上还有Knuth的FVWM截屏。清华大学网络中心已经关掉王垠的主页了。不过你可以在这个镜像站点找到这张screenshot: http://docs.huihoo.com/homepage/shredderyin/knuth-fvwm.jpg )Knuth说喜欢FVWM的原因是键盘流。

操作系统?是Ubuntu。

数学工具是Mathematica。

终端,rxvt。

编程,自然是CWEB。调试用GDB debugger。

图像,大部分是MetaPost。(偶而到在一台苹果电脑上用Photoshop或Illustra×。苹果电脑除此之外的主要用途是上网冲浪。)

备份,则用backupfs。这个东西以增量的方式备份每天的镜像。

文字处理?还用说吗?当然是TeX。预览则用用dvips和gv。

编辑器是Emacs。Knuth搞了不少花样。他有自己的兼容TeX和CWEB的Emacs拼写检查工具。归整自己笔记的Emacs mode。特制的键绑定。甚至设计了自己的Emacs字体。

还有,Knuth的写作方式是先用铅笔在纸上写,写好了,再录入到电脑(用Emacs和TeX)。

Knuth谈文学编程

Monday, April 28th, 2008

Knuth坚持文学编程是比传统方式好的多的编程方式。不用文学编程,他不可能搞出很多软件,包括MMIX虚拟机。

至于文学编程不流行的原因,Knuth认为一个是用非文学编程的方法写出的程序的平均水平也有C(也许是C++),而不是F。既然及格了,所以程序员们也就不愿去尝试一种新的方式。还有一个是Jon Bentley指出的,精通编程的是少数人,精通文档撰写的也是少数人,文学编程需要的程序员得同时属于这两个少数群体。

当然Knuth强调他不同意强制推销观点。如果你觉得文学编程不是你的风格,那就忘了它,走自己的路,Knuth不会说你。

Knuth谈多核

Monday, April 28th, 2008

对于多核,Knuth也颇有微辞。他认为顺序执行并没有变得无关紧要。而并行技术的寿命却比较短,因为新机器的推出将需要更新的解决问题的角度。所以,很久以前,Knuth就决定将坚守他所熟知的领域。Knuth建议程序员听取其他并行编程的专家的意见。

对于多核架构,Knuth认为是做硬件的黔驴技穷的产物。他写过一千多个程序,都找不出5个能通过多核架构大大获益的程序。Knuth认为没有多少做软件的会对未来的多核许诺充满激情,相反,他听到的是声声叹息。

Knuth承认诸如图像渲染、物理生物计算等领域需要多核,但他认为这些领域需要的是专门的代码,专门的方法,并且这些都需要几年一大变。

Knuth只在浏览网页时才感受到多核的好处。但Knuth花在这上面的时间很少。

不过Knuth也承认,既然顺序计算之路已经撞墙,他自己也不知道除了多核以外还有什么选择。(尽管在MMIX设计中,包含了一些这方面的主意。)

knuth谈敏捷开发

Monday, April 28th, 2008

单元测试很少吸引Knuth。Knuth只会在一个完全陌生的环境中摸索的时候才会考虑单元测试。其他时间,Knuth认为单元测试是多此一举,浪费了很多时间在不需要进行甚至考虑的活动上。

Knuth认为敏捷开发就是歧途。但有一点除外,团队合作和阅读队友的代码,这是敏捷开发“一俊遮百丑”的那“一俊”。

关于代码的重用,Knuth认为re-editable的代码比一个碰不得的黑箱(reusable的代码)要好上千百倍。

knuth谈开源

Monday, April 28th, 2008

TeX是开源的。当时开源的概念还不流行。RMS还没开始运动。

Knuth看好开源,认为随着产品向服务的转型和越来越多的志愿者,开源将不断壮大。他举例说,开源软件可以编译出多样的二进制文件,更好地符合各个用户的需求。但他也承认有些专有软件更好,比如photoshop和Gimp,并表示自己愿意为好的专有软件开出一个好价钱。

knuth访谈

Monday, April 28th, 2008

Andrew Binstock对Donald E. Knuth做了个访谈。关于he success of open source, the problem with multicore architecture, the disappointing lack of interest in literate programming, the menace of reusable code。 http://www.informit.com/articles/article.aspx?p=1193856 一些内容将在后续的blog中介绍。