022010

COS史上有几位不为人知的幕后英雄,而我从没认真记载过这些事情,时间一长,各种事情堆满了脑子,也不会再去回顾。如今,我必须记下颜林林。以下截图部分反映了他在迁移论坛过程中的贡献:

这事情起源于去年暑假,当时我提出了更换PHPWind系统到bbPress的想法,这位颜小侠很快就研究了PW和bb的数据库结构并写了一个初步的MySQL脚本发给我,而我处理邮件的速度各位客官可能也有所耳闻……过了半年,我测试了这个脚本,发现并不顺利,于是颜林林重新开始修改脚本。众IT民工都知道,即使是自己写的程序,过三个月不看,感觉也像是别人写的。不过颜林林的计算机水平在我看来已经有天外飞仙的感觉了,三下五除二,又发回了修改的版本,然后就是我无休止的改进建议以及Bug修正。截止到记者发稿为止,新的论坛已经克服了我所能想象到的主要障碍(用户名密码顺利迁移、用户权限顺利迁移、帖子id保持不变顺利同步、数据库编码从GB2312顺利转为UTF8、bbcode算是顺利转换……)。每个问题我看着都觉得头皮发麻,但他的每一种解决方案都聪明得“令人发指”。

如果没有这样一位天才存在,换系统这件事我也只能在脑子里冒泡想想而已。

既然已经剧透了这么多,现在可以给个网址开始小范围公测了:http://cos.name/cn/。注意,暂时不能注册,不能发帖。欢迎提供反馈意见。其实这系统也没什么好看的,确实没什么可看的,它只能用来看帖发帖,版主只能删帖修改移动或举报垃圾广告。换句话说,它真的是个论坛了。

COS能有发展的动力,靠的就是这样的奉献精神。而我也诚惶诚恐,怕浪费了大家的时间精力。前几天,科学松鼠会采访一位伯克利统计学博士海龟,他竟然提到了统计之都网站,此事反映出COS在民间的影响力已经有一定厚度了(尽管一直采取不主动宣传的策略)。如小邱所说,“有点意思了”。诸位老大加油吧!

242009
客搬家之后不可避免会产生一大堆404错误,绝大部分原链接都失效了,不过好在动态网站系统的网址都是有规律的,因此把原来的网址重新定向也很容易,这里简单记录从Bo-Blog搬家到Wordpress的一些301重定向工作。PHP代码写得非常拙劣,各位看官见笑了,写出来为了将来要用到PHP的时候能找找自己以前写的例子。

1、RSS Feed:feed.php

对现代网民来说,RSS阅读器已经是看网页的必备工具,因此RSS种子的地址几乎是众多网址中最重要的一个。

插播不重要的通知:
1、本站的RSS地址已经更改为:http://yihui.name/cn/feed/,评论RSS为:http://yihui.name/cn/comments/feed/,请Google Reader中的读者即时更换。英文博客也类似,把cn改成en就可以了。
2、如果你懒得换也行,反正我已经重定向了。 :grin:

Bo-Blog的feed.php文件在不带参数的时候是博客正文的RSS,带参数go的时候可能是评论,也可能是分类目录的RSS,因此需要在WP根目录下建一个feed.php文件,里面对参数作简单的判断,把原来的RSS重定向到WP的RSS中。以下代码只是本博客的转向,具体怎么写要根据具体搬家结果分析。

我的博客搬家过程中,分类数字2不知为何被搬家程序略过了,因此当分类数字为2的时候特殊处理,否则从原来的go参数中提取分类数字,传给WP的cat参数。
<?php
header("HTTP/1.1 301 Moved Permanently");

if(!isset($_REQUEST["go"])){
	header("Location: http://$_SERVER[HTTP_HOST]/cn/?feed=rss2");
} else {
	$tmp = $_REQUEST["go"];
	if ($tmp == 'comment') {
		header("Location: http://$_SERVER[HTTP_HOST]/cn/?feed=comments-rss2");
	} else if (stripos($tmp, '_')) {
		$tmp = end(explode('_', $tmp));
		if ($tmp == '2') {
			header("Location: http://$_SERVER[HTTP_HOST]/cn/?feed=rss2");
		} else {
			header("Location: http://$_SERVER[HTTP_HOST]/cn/?feed=rss2&cat=".$tmp);
		}
	}
}
?>
042008

经过一天的努力,终于把我的动画思路转化为了Dokuwiki的插件,名为”animation“。Wiki语法和相应的说明参见:

http://animation.yihui.name/wiki:animation_example

刚刚写完PHP代码,Wiki页面还比较粗糙,明天再详细写。

很久不写代码了,这个插件主要用PHP写,其中核心部分是一个正则表达式(Regular Expression),这个东西简直就是魔鬼。

P. S . Dokuwiki是一款著名的Wiki程序,基于PHP语言,不依赖数据库即可运行,比较方便。

十一 172007

服务器的操作系统选择来说,Windows Server根本就不在考虑之列。今天拿一台机器试装了Ubuntun 7.10的Server系统,那只能用两眼一摸黑来形容:对着Command Line Interface(没有GUI,服务器也没有必要用GUI),完全找不着北。装了LAMP,基本的静态网页服务应该是能跑了。而对于昏天黑地的MySQL命令、Apache设置和PHP设置,还在继续眩晕中。

刚刚才知道怎样看自己的IP地址:ifconfig命令。ft。

作为Linux世界中的幼儿园级小盆友,只能继续自学了……

122007

Bo-Blog博客系统中,Tags默认都是被转化为小写形式的,不知道官方为何采取这种限定形式。我感觉大部分程序语言都是区分大小写(Case Sensitive)的,所以这种限制真是很奇怪。特别是有些专有名词根本就不能小写,看着”odbc”、”latex”、”windows”等写法我就会觉得不舒服。

这个问题也不难解决,花几秒钟Google一下,查出来PHP的大小写转换函数为strtolower()strtoupper(),再花几秒钟看看提交文章的这个表单(Form)中元素的id(是$tags),然后到PHP源文件中搜索一下”$tags”,马上就找到了转换小写的地方:在admin\cp_edit.php的第344行有一句”$tags_array=@explode(‘ ‘, strtolower(trim($tags)));”,把这里的小写函数去掉即可。

WWW.YIHUI.NAME XIE@YIHUI.NAME © 2007 - 2010 by Yihui Xie