如果没有自由软件?

昨天改好一段Perl脚本,正好到了下班时间,回想起前面调试的过程,不禁暗自庆幸,多亏了这些自由(和开源)软件。

下班的路上,通常是我胡思乱想的时候,反正到家要花近一个小时,也没什么别的事情可干。我就接着想,要是没有自由(和开源)软件,我该怎么写程序呢?我还能写程序吗?想着想着,不禁一身冷汗,这才有些理解了Richard Stallman的用意。没有自由(和开源)软件,没有同样自由的文档和HOWTO,我怎么可能达到今天的水平,没有了emacs、cvs、Perl、Graphviz等等工具,我还怎么写出象样的程序呢?还怎么能做到Test-Driven Development?还怎么Enjoy debugging?

描述一下我的调试过程吧,一段XML数据,按照我的理解,某些数据所在的entity必然是另外某种entity的子节点,然而测试程序显示我的假设不对,但我又不知道为什么?这段XML数据是自动生成了,数据量很大,层次很多,根本不知道问题出在哪里?是我的测试程序写错了还是我的假设错了?以前学过GraphViz的语法和应用,很适合可视化这种层次结构的数据。又想起来以前看到过有一个GraphViz的Perl Module,可以生成dot文件,就决定试一试,结果一目了然(一个同事用java写了一个强大的viewer,非常方便),是我的假设错了。

耐着性子看帮助

不习惯(或者没耐心)看帮助就只能用一些显而易见的功能。

原来是一点都不愿意看帮助,宁可对着界面发呆、或者瞎猜一阵子,碰巧弄懂了算是赚的,不懂也就算了。现在要好多了,应该是从上班后开始吧,逐渐习惯了看帮助。最让我看得下去的是emacs的帮助,因为它的帮助系统是内嵌的,可以边看边试,互动性很强。

如今用blogger也有些时日了,还没正经看过它的帮助,因为都说它简单,不支持分类、tag等等。今天抽空看了一段,发现还是有些小功能可以用一用的,比如我刚刚加了“Email Post”的功能,还在SideBar上加了Previous Posts列表。而且帮助里还介绍了一个改变页面布局的方法,可以在每月存档里只显示标题,这样方便查找,有空的时候把自己的模板也改成这个样子。

看完之后不禁感慨,看帮助实在是要耐得住性子、坐得住板凳,不然是不会有收获的。