程序员的blog该是什么样子呢?和一般的blog有什么区别呢?就我看来,程序员是blogger里面非常特殊的一个群体,他们对软件有着更深入的理解,有版本管理的概念和使用经验,对程序设计语言和标记语言有相当程度地了解。所以,提供给程序员的工具应该更强大、更高效,也就更复杂。
下面的经历,描述了程序员使用blog的过程。
- 散落在系统里的一些文本文件,只有自己才能看到。
- 创建一个目录树和一堆符号链接,按照时间和类别将这些文件组织起来。
- 将文本文件转换成HTML文件,加入链接,方便浏览。
- 申请免费blog空间并发布,供人浏览。
- 学习HTML和CSS以改善页面布局。
- 申请多个blog,尝试不同功能特性。
- 选择功能最强人气最旺的一个拼命发帖提高知名度。
BSP由于各种原因忽视服务质量使人无法忍受于是决定搬家。几经周折之后终于厌倦了寄人篱下于是申请宽带、安装Web Server、申请动态域名开始自给自足的小农经济。但是把散布在各个角落里面的文章转移到自己的地盘足以让以懒惰为美德的程序员烦躁至极。
于是他(或她)想:blog应该像RSS一样采用XML格式,而不是不方便数据交换的HTML格式。XML文件不仅方便数据迁移,而且使得文章结构与文件格式以及显示效果分离,这样就可以采用不同的转换程序将其转换为多种格式,如HTML、PDF、ps等格式,用于不同的目的。此时程序员写的blog就不是最终产品,而是一个源blog,应该像源程序一样置于版本控制的管理之下,并通过一定的方法给予浏览者查看历史版本的能力,而不是像某些人现在做的一样用特殊的标签或效果直接在网页上体现修改。版本控制工具非常适合于程序员写的blog,因为他们写的文章中很大一部分是知识归纳总结型的,不像新闻工作者写的文章时效性那么强。随着知识的积累,程序员要不断修改他们已经写好的文章,而记录每次修改的内容正是版本控制工具存在的目的。而RSS也应该具有相应的发布文章修改信息的能力,通知订阅者他们曾经看过、甚至收藏过的文章被原作者修改了,提醒他们有必要重新阅读。
当然,这还是一些粗糙的想法,目的是不想浪费那些已经融入程序员血液的程序开发能力,blog未必要用同一种方式写出来,程序员有权利选择他们最擅长的方式。也许某一天程序员可以以这样的方式写blog:check out或者update源blog,然后打开心爱的emacs修改以前的blog或写新的,写好后提交。想要发布的时候登录到Web Server所在的机器,check out源blog后执行以下命令:
$ ./configure --prefix=/var/www/html/blog/username |
每个月(或者季度或者年)的最后一天运行:
$ make pdf |
汇总这一段所有的blog生成一个PDF文件,供人下载。十年之后运行:
$ make book |
生成一本名为《我的十年》的书,然后出版……等等。