晚霞照亮了天
彩虹挂在我身边
下过雨的心情只想黑夜快快来临
血色的天际
没有月亮独自寻觅
混沌从天地开合之初流浪到这里
我的心里翻了天
远远近近都是白色闪电
惊天霹雳像远山那边男孩的呐喊
明天总该有雨吧
不然只有我一个人在哭
请不要再安排彩虹
生命中没有那样的演出
明天你不再来了吧
这样好不只我一个人孤单
鹊桥相合在七月初七
我的生命中没有那一天
Sat 30 Dec 2006
晚霞照亮了天
彩虹挂在我身边
下过雨的心情只想黑夜快快来临
血色的天际
没有月亮独自寻觅
混沌从天地开合之初流浪到这里
我的心里翻了天
远远近近都是白色闪电
惊天霹雳像远山那边男孩的呐喊
明天总该有雨吧
不然只有我一个人在哭
请不要再安排彩虹
生命中没有那样的演出
明天你不再来了吧
这样好不只我一个人孤单
鹊桥相合在七月初七
我的生命中没有那一天
Thu 28 Dec 2006
我终于决定不再继续看极限编程大师 Kent Beck 所写的那本 Test Driven Development: By Example 了。因为我实在无法忍受我与作者在软件开发流程模型上的分歧。但这并不妨碍我认同并实践作者所谓“测试先行”的理念。我是一个趋近完美主义者,因此我更喜欢像设计模式那样偏重设计的方法论,我不能认可一个靠不断修改而成长起来的软件。
按照 Kent Beck 极端的测试驱动开发模型,一个软件应该是这样写出来的:
就是这样,一个软件被一点一点修改而成。他强调了在这个过程中有两个主意事项:第一,在添加任何功能之前都要先写测试,除非代码是用于调试的,这也就是所谓测试先行的概念;第二,当编译无法通过时尽量不要再写新的测试。
我之所以不认同这个模型,就是因为其中间产生了大量的迭代过程,而这些过程很可能只在头脑中出现,或者根本就不曾出现。这些过程一方面增加了开发的消耗,也在某种程度上引入了更多的不确定性。但是其中测试先行的做法,能最大程度保证单元测试的完整性与正确性。
因此,我理想中的开发流程模型应该是这样的:
这其中可以按照极限编程的思想以一个可独立发布可运行的模块作为单位,这样可以有效地控制模块的大小,还可以避免出现过度设计的问题。
Mon 25 Dec 2006
《在 Sourceforge 项目空间上部署 MediaWiki》的第一部分在这里。
造成 MediaWiki 不能向 config 目录写文件的原因,估计是 Sourceforge 服务器没有开放这样的权限。幸亏,MediaWiki 提供了一个变通的办法。找到下面的这些代码,把他们注释掉:
if( !is_writable( "." ) ) {
dieout( "<h2>;Can't write config file, aborting</h2>
<p>In order to configure the wiki you have to make the
<tt>config</tt> subdirectory writable by the web server. Once configuration is done you'll move the created
<tt>LocalSettings.php</tt> to the parent directory, and for added safety you can then remove the
<tt>config</tt> subdirectory entirely.</p>
<p>To make the directory writable on a Unix/Linux system:</p>
<pre>
cd <i>/path/to/wiki</i>
chmod a+w config
</pre> );
}
这样一来,当目录没有写权限的时候,操作不会被取消,而是生成的配置文件会以文本的形式被打印在页面上。把这些代码拷贝、粘贴到一个名为 LocalSettings.php 的文件,然后上传到 MediaWiki 的根目录,在我们这个例子中也就是 /home/groups/s/sa/sample/htdocs/wiki/ 就可以了。
最后还需要解决一下 session 的问题:
由于 Sourceforge 使用了服务器集群,所以把 session 保存在内存中是有问题的,所以需要用文件来存储 session:
如果你这样做之后,在编辑或查看页面的时候退出,碰到空白页面,请把 ini_set( “include_path”, “.:$IP:$IP/includes:$IP/languages” ); 添加在上一步的 session_save_path 之前。
这样,你的 Wiki 就基本上可以在 Sourceforge 的项目空间上运行了,不过还有很多问题这里没有涉及到,比如:如何配置邮件系统、如何修改网站的 logo、或者是一些碰到的其他的问题。更多内容请详见 Running MediaWiki on Sourceforge.net。(中国大陆地区访问可能会有障碍。)