月份彙整: 2009 年 5 月

安装MediaWiki事件簿

最近,由于自己比较喜欢折腾的性格,所以想试一下用网上的开源wiki建立一个网站。前后差不多花了我一周的工余时间,终于基本建立起这个网站,下面简单说说我的经历吧。

第一步,比较各个开源wiki,选择最适合自己的。

我用google搜索了一下,大概找到一下5款开源wiki是比较出名的。当然,还有一些其他的wiki,但众所周知,开源软件是良莠不齐的。要用还是用一些出名的好。

  • MediaWiki
  • Twiki
  • PmWiki
  • DokuWiki
  • MoinMoinWiki

经过比较后,我选择了前两款亲自做测试。为什么只选前两款呢?第一,后面三款都是用文件来存储数据,而不是用数据库。个人觉得,无论数据量大小,使用数据库都是不可少的。文件存储毕竟不是很可靠。第二,后面三款界面界面比较粗糙,设置也很简单,不能满足我的需求。第三,现在大名鼎鼎的Wikipedia就是基于MediaWiki平台建立的。Twiki则有Yahoo等大公司在使用。刚才已经说过了,开源软件一定要用出名的。既然这两个有大公司捧场,应该不会差到哪去。基于以上三个原因,于是我就开始安装MediaWiki和Twiki了。

第二步,安装MediaWiki

安装MediaWiki总共有三个前提,就是安装IIS,安装PHP和安装MySql。MediaWiki本身的安装倒不麻烦。

我的服务器是windows server 2008 + IIS7。安装IIS7很简单,网上攻略很多,不在这里详述。安装PHP的教程在www.php.net就可以找到了,但暂时没有针对IIS7的版本。IIS6的版本会有些出入,我在这里再补充一下。

  1. 解压缩PHP到某个文件夹,这里例子是C:\php5。(路径名称不可以有空格)
  2. 修改php.ini(按照官方网站指引)
  3. 打开IIS管理器,选择主机,双击“处理程序映射”。
  4. 选“添加脚本映射”,如下填上。
  5. 之后会有一个对话框,点“是”。系统会自动帮你加上ISAPI限制中加上你的dll,不用手动设置。
  6. 在默认文档中添加“index.php”
  7. 修改registry,添加“HKEY_LOCAL_MACHINE/SOFTWARE/PHP”。新建字符串值,名字是IniFilePath,值是C:\php5。

按照官方网站文档,指定php.ini文件路径,可以有多种方法。我最初是选择增加PHPRC环境变量,但PHP并没有找到php.ini。之后我改用修改registry的方法就可以了,不知道这是不是windows server 2008的问题。

之后就安装MySql。MySql安装很简单,跟着指示一步步就可以了。注意一点,MySql有个“MySQL Server Instance Config Wizard”,如果安装时或之后有什么问题用这个将所有设置移除就可以,不用整个数据库移除。我之前不知道,重装数据库好多次,呜呜Cry

但要注意,无论是重装数据库或是重新设置。他里面可以让你选择数据存放位置,这个位置在第一次设好之后就不要更改,俺就是在第二次安装的时候自作聪明更改了位置,导致后面出现了“Cannot start service”错误,白白浪费了我无数时间。最后在分析error log时候才发现这问题,唉。

之后就是安装MediaWiki,安装MediaWiki可以很简单,跟着官网指示做吧。同样的,针对windows server 2008,我要补充下面一点:

  • 进入IIS管理器,选择自己的网站。选择“错误页”。
  • 在右面选择“编辑功能设置”。
  • 在错误响应中,选择“详细错误”。

我一开始没有做这个步骤,于是凡是浏览一些还未建立的网页时,都会返回404错误(正常应该是返回让你新增页面的提示)。我估计是因为MediaWiki在处理这些未建立页面时,自定义了一些处理404错误的机制(详细情况我也不知道,哈哈)。解决这个问题,又浪费了我一个小时。

事实证明,非必要不要使用太新的操作系统,有什么问题网上是找不到解决方案的。关于Twiki的安装,请参考下一篇文章。

Whatever will be will be

很喜欢这首歌,分享一下
When I was just a little girl 
I asked my mother what will I be
Will I be pretty, will I be rich
Here's what she said to me


Que sera, sera
Whatever will be, will be
The future's not ours to see
Que sera, sera
What will be, will be


When I grew up and fell in love
I asked my sweetheart what lies ahead
Will we have rainbows day after day
Here's what my sweetheart said

Que sera, sera
Whatever will be, will be
The future's not ours to see
Que sera, sera
What will be, will be


Now I have children of my own
They asked their mother what will I be
Will I be handsome, will I be rich
I tell them tenderly

Que sera, sera
Whatever will be, will be
The future's not ours to see
Que sera, sera
What will be, will be

北京千人示威

【明報專訊】臨近六四,北京爆發近年最大規模的抗議活動。來自全國各地約千名上訪者昨日上午突然聚集在最高法院信訪接待室外抗議示威,部分人更躺在馬路上,造成附近交通堵塞近2小時,大批公安到場拉起警戒線,但大多數上訪者在中午時分和平離去,其間並無發生嚴重衝突。暫時未知這次大規模抗議活動是否有人在幕後組織。 

據悉,訪民最早在昨日上午9時許開始在此聚集。由於長期關注中國人權的美國眾議院議長佩洛西從上海轉抵北京繼續訪華行程,因此,有抗議者拉起「歡迎佩洛西訪華、關注中國人權SOS」的橫額,從行人路衝到馬路上,並高喊「打倒腐敗、還我人權」口號及拋灑傳單。公安趕到現場欲上前搶走橫額,隨即遇到大批訪民起哄。

呼籲訪華美議長關注人權

附近居民向本報表示,不少上訪者在馬路上靜坐或躺臥,「多數都是六、七十歲的老太太,警察也沒法抓,後來又來了兩三百個警察,還拉了警戒線,就開始趕人。」該居民透露,前兩天也有訪民示威鬧事,昨日的規模最大,最多時約有近千人,但並無爆發嚴重衝突。由於事發地點位於最高法院信訪接待室附近,這裏也是北京南站(火車站)對開、南二環路旁的交通要道,因此造成嚴重交通阻塞。

這些上訪者來自全國各地,訴求並不相同,但不願說出是否有人通知他們到場聚集。人群中有人手持傳單、有人身穿寫有「冤」字的白色T恤,「我丈夫為了保護人民的土地,被人殺害了,3個人殺的。現在他們派人死管我,不幫我解決。」一名年約50多歲的婦女稱,自己上訪多年,一直不獲處理。來自河北滄州的張樹榮說,堵路也是無可奈何,「本來到這裏(信訪室)來就是抱一線希望,但還是推來推去。」他由於一次醫療事故而造成腎出血,認為醫院處理不公,政府又包庇醫院。

外國記者採訪被帶走

有外國傳媒在10時許收到消息後趕到,有互聯網消息指,有1名外國記者被帶走問話,但很快獲釋。近中午12時,警方將訪民趕離馬路,並帶走數人問話,交通恢復正常,但仍有逾百人分散在附近路邊、綠化帶躺坐,並未離去。

今天很惨

最后一个学期原来不能选课,现在可麻烦了,要在答辩之前结束。今天去体育部申请,那个老师真是脾气差啊,白眼要白死我了。没办法,求人办事啊。

上午去照毕业生的照片,下坡的时候,电话忽然想起来,于是准备接电话,忽然来了一阵风,帽子要被吹飞(主要是昨天把鸭舌帽忘在岩壁,今天带了那个圆的帽子,有点松的)。于是瞬间变得不受控制,于是就摔了,不知道是哪里先着地。现在右脚的外脚弓很疼,不能发力,不知道伤的多严重。要休息多久,还能不能跑步

Slide Show widget for BlogEngine.NET

今天用jquery写了一个给BlogEngine.NET用的slide show小工具。最重要的功能是你可以通过edit来自己上传照片,并且照片在上传后会在服务器背后自动压缩,以减低容量要求。啥也不说了,看首页右面的例子就是了,呵呵。

马上下载来玩玩吧。

This widget is written in jquery, an open source javascript library. It allows you to upload your own photos and display it as a slide show. You can see the effect on the Homepage. Please download it right below, a readme file is included.

SlideShow

我来了

以后要好好写这个网站。

最近在忙着集训和毕业,做了不少试验,结果还没有好好整理,很不好

6月24日变形金刚2首映,有机会去看

08年集训

09年集训

一个IQ题

九个点上、中、下三行对应排列,问如何用四条直线连接起来?

。  。  。
。  。  。
。  。  。

而且这四条直线必须是“一笔过”画出来,所以什么“米”,“E”等等都是不可以的。

有什么想法吗?

jquery初步介绍

最近在网上看到jquery这个名词,于是在网上搜了一下,发觉貌似还挺多人在使用的。下面是一段关于jquery的描述:

“jQuery 是一套物件導向式簡潔輕量級的 JavaScript Library。透過 jQuery 你可以用最精簡少量的程式碼來輕鬆達到跨瀏覽器 DOM 操作、事件處理、設計頁面元素動態效果、AJAX 互動等。”

好,那就开始吧。第一步是先要下载jquery:

http://docs.jquery.com/Downloading_jQuery
接著將此 JS 檔放進您網頁 HTML 的 <head> 及 </head> 之間…

<script type="text/javascript" src="jQuery 檔案路徑"></script>

jQuery 所有的屬性及函式都是定義在「jQuery」這個物件之下,這使你不會因為使用 jQuery Library 而與原本有的全域變數等其它命名空間產生衝突。此外,要取得 jQuery 物件也可以透過它提供的的另外一個縮寫符號 (別名)-錢字號「$」,這時大家可能會問那我有使用其它的 JavaScript Library 也是用「$」怎麼辦?有辦法,用下面這一行就解決了:

jQuery.noConflict();

接著你就可以繼續用 $ 來操作你原本有的函式。但是如果你還是比較想用 $ 來操作 jQuery 怎麼辦?也有取巧的辦法:

(function($) {
    // 在此區塊內我們使 $ 參照 jQuery 物件
    // 在此區塊內使用 $ 不會與其它函式衝突
})(jQuery);

你也可以自己取個 jQuery Object 的別名:

var $alias = jQuery.noConflict();

接下來你就可以使用 $alias 取代 $。

jQuery 的基本操作概念 (Coding basics)

jQuery 程式碼由 $ (或jQuery) 開始 → 後面會接著圓刮號「()」→ 而圓刮號裡面的參數是你想叫 jQuery 幫你找什麼 (取得哪個(些)元素) → 接著是你想叫 jQuery 執行什麼動作 (或處理事件)。例如:

/*
$("#demo"):選取id為demo的元素,並綁定onclick事件
.css("background-color","gray"):
叫jQuery將其CSS的背景顏色屬性改成灰色
你可以用滑鼠點這個範例看效果
*/
$("#demo").click(function(){ $("#demo").css("background-color","gray"); });

Chaining - 串接

在 jQuery 中,幾乎所有成員都會返回自己執行後的結果-也是一個 jQuery 物件,因此你可以連續地使用函數 (Chaining)。以下我們用一個範例來說明 Chaining 是怎麼一回事:

$("#container").css("color", "blue").css("background-color", "red");

上面這段程式碼由兩段函式組成:

$("#container").css("color", "blue") → 將文字改成藍色
$("#container").css("background-color", "red") → 再將背景顏色改為紅色

利用 Chaining 只剩一行,是不是簡潔多了?

今天去借了台发球机打乒乓球

在一次偶然机会下知道原来楼下的乒乓球场可以免费借发球机,于是昨天去买了60个球,今天早上去玩了2个小时。用来练基本功确实不错,可以发各种的旋球,也可以指定落点。对基本动作和步法都有所提升,比起和别人对打爽多了(最起码不会受到对方的技术因素影响)。当然,要拿到比赛经验的话,还是要和人打的。自觉两个小时下来,技术提升不少,哈哈。

拍的比较模糊,将就看吧

BlogEngine.NET的乱码问题

昨天看到四百和superllj的评论居然变成乱码,于是马上看看到底发生了什么事。最后发现原来是档案encoding的问题。一开始我安装BlogEngine.NET时,不知道那个天杀的说要在web.config里将encoding变为gb2313才能显示中文。事实证明,只要保持预设的utf-8不变,就完全没问题,还可以同时显示繁体和简体中文。这再次证明了实践才是证明真理的唯一方法的正确性。下面就是出事的代码:

<globalization fileEncoding=”utf-8″ requestEncoding=”utf-8″ responseEncoding=”utf-8″ culture=”auto” uiCulture=”auto”/>

保持上面的utf-8不变就行了

另外,要注意登录之后进入Settings页面,在Advanced Settings中除掉Compress WebResource.axd选项(预设是勾上的)。经过试验发现,勾上这个选项后在某些情况下会导致网页乱码。估计是作者的压缩算法有问题,有时间可以研究一下,恩。