2006年12月21日 星期四

分享一些 LifeType 架站經驗-給小吳老師

小吳老師在「pLog 安裝系列(一)-安裝環境」一文裡問了一些問題:

老師您好: 最近也準備架設讓全校老師使用的BLOG平台,我們的規劃是架一台主機單獨執行 pLog, 我的安裝環境是:1g-ram,raid1(150g*2),suse10.1,lifetype1.1 可否請老師針對1.要有獨特的網址和2.將資料與程式分開這兩部分的作法詳加說明,若能以圖示說明流程更有助於理解。 再者也要請問您:「若此伺服器不放個人網頁,是否在磁碟分割時要將/var/lib/mysql的空間(放資料庫的位置)規劃大一點,而/home的位置就不用給太多空間?」 若還有應注意的事項,也請您不吝指導。謝謝您的熱心回覆。祝 教安。

真是慚愧啊,這一系列的文章只寫了第一篇就停掉了,時間一久,都忘了自己原來有計劃要寫這些東西,實在太懶散了。

但是,最近實在是空不出時間把這些東西詳細寫出來,本篇就小吳老師的問題,提供一些個人玩 LifeType 的經驗:

2006年11月21日 星期二

選錯台了?失連中的 V-webmail

最近發現 V-webmail.org 的網站全掛O_o

看情形好像是整個 domain 不見了(註冊到期?),官方找得到的,只剩下在 Sourceforge.net 上的 V-webmail 專案網站而已,連同作者出沒的 phpguru.org 上也沒看到什麼相關說明…

難道當初選錯 webmail 程式了嗎?

2006年11月3日 星期五

第一次程式集訓記事

第一次集訓沒做什麼事,先跟同學確立集訓方式跟原則。

2006年10月28日 星期六

程式設計集訓報名截止

95程式設計集訓報名截止了。今年高一新生共計有 24 人報名,名單如下:

2006年10月5日 星期四

每個軟體開發者都絕對一定要會的Unicode及字元集必備知識(沒有藉口!)

這是在網路上找看看有沒有能判斷字串是使用那一種字元集的程式碼時找到的。

原文網址:每個軟體開發者都絕對一定要會的Unicode及字元集必備知識(沒有藉口!)

這篇文章對字元集編碼的說明相當清楚易懂,建議對 Unicode 、 UTF-8 …等字元集編碼搞不清楚的人一定要看一看。

95年程式設計集訓

今天開始通知 95 學年度新生在期初問卷裡表明有意參加程式設計集訓的同學。預計通知期間為 2006/10/05 ~ 2006/10/13 ,等待回覆則到 2006/10/27 24:00 截止。

高中生要學程式設計有主客觀環境的困難,最大的問題是,一但進入狂熱階段,那對一般升學科目的影響是一定有的,這就會讓班導、家長擔心課業受到影響,進而勸阻學生放棄繼續學習。

因為有心學習的人少,少到想開一個選修班級都有困難 ( 敝校並非有許多一流學生的明星高中,像第一屆的張勝淵同學、蔡尚樺同學及第五屆的丁建文同學這種奇葩幾年才有一個 ) ,我們是採用課外集訓的方式進行。這其中,要有好的成果,最大的關鍵在於學生是否能自動自發的學習。

不是幾年才出一個的奇葩沒關係,希望今年報名的同學是願意自動自發學習的人,而不是什麼都等著老師教還不太願意複習的那種。如果全部是,那今年的程式設計集訓應該會提早結束了。

2006年10月4日 星期三

不能留言已修復

升級 LifeType 1.1 後,模版也重新修了一番,忘了加上 authimage 外掛的樣版代碼,導致無法留言。原來我也沒發現,謝謝 Matthew (您是 btfans 吧 ^_^ ) 提醒。

2006年10月2日 星期一

[修正] V-webmail 裡正確顯示附件的中文檔名

V-webmail 裡另一個沒注意到亞洲語系的地方:附件的檔名。

當收到信件時,若附件為中文檔名, V-webmail 會以編碼後的內容顯示。

2006年9月25日 星期一

我猜是 cache_lite 的 bug

上週五升級完 LifeType 1.1 之後,看似一切正常,然後,漸漸地,一些文章、迴響的中文開始變成問號 (???) ,在抓問題時,發現了一個奇怪的事情。

在確認了 config file 、 db connection 都是跑 utf8 字集,而且升級後的資料庫內容也是正確的 utf8 編碼內容、以及沒有任何 sql_error.log 之後,我開始懷疑 LifeType 1.1 是不是有還沒被發現的重大 bug ?但是沒理由只有我遇到啊?經過一番 trace ,我懷疑到用來實作 Object Cache 的 cache_lite 程式庫頭上。

更新到 LifeType 1.1

終於將本站的 LifeType 更新到 1.1 版了。

原本更新過程蠻順利的,但是愈用卻愈奇怪,文章及迴響的中文字漸漸變成一堆問號 (???) ,但又不是每個地方都有一樣的問題?

先做更新記事及待辦事項,免得忘記。再寫另一篇文章記錄中文問號的問題吧。

2006年9月15日 星期五

[修正]解決V-webmail寄出郵件的主旨亂碼

開始試用 V-webmail 時,第一件令人困擾的事,就是寄出去的信件,中文的郵件主旨都會變成亂碼。經過一番追查找到問題所在了,追根究底,都是一些老問題,老外寫的程式,對東方語系總有考慮不周的地方。

在寄出信件的部份, V-webmail 使用 HTML Mime Mail class 做為 SMTP client 。在 google 這個 class 時,發現這個 class 似乎還蠻有名的,很多 PHP Base web AP 都用它做為 SMTP client 的樣子。這個 class 本身不是造成亂碼的問題,而是 class 內部是以 ISO-8859-1 做為建立郵件時的預設字集。而 V-webmail 的寄信程式 email.compost.php 裡面,只替純文字的郵件本文設定了使用語系檔裡的字元集設定,所以 header 部份還是以預設的 ISO-8859-1 做編碼,於是乎,別的 email client 讀信時便以錯誤的方式解碼檔頭的中文訊息,標題和寄件者、收件者裡的中文名字等就遭殃了。

解決的方法如下:

[語系]試做UTF-8的 V-webmail 環境

我是很想把 webmail 改成完全 utf-8 的環境,這樣可以一舉解決 Big5 的亂碼問題,還可以像 GMail 一樣,繁簡中文、多國語言的郵件通吃。無奈,留在 mailbox 裡的 Big5 信件太多,別人寄來的信件又以 Big5 為大宗,所以還是算了。

不過,我試過了,在 V-webmail 裡面,要做成全 UTF-8 的操作環境非常簡單,只要幾個步驟就完成了。先記下來,以後也許會用到:

[語系]V-webmail的Big5繁體中文語系檔完成

花了點時間把剩下的外部郵件相關訊息給翻譯完了,目前打包成 tarball 放在這裡:lang.big5.tar.gz,歡迎使用,並請提供意見。

目前已經回報給 V-webmail 官方的 bug tracker 了 ( issue 118 ) 。

同樣是使用 Mantis , V-webmail 並沒有提供 reporter 上傳檔案的權限,目前是留個連結到我的 blog 資料夾。

接下來記一下中文化的做法:

2006年9月13日 星期三

V-webmail實驗室開張

最近伙伴 huihui 對我之前為學校安裝的 SquirrelMail 不太滿意,主要是對國家資通安全會報技術服務中心 ( ICST ) 寄來的資安訊息通告內容全部都成了亂碼,無法閱讀。

於是找時間重新再看了一些以前曾經試用過的 webmail ,包括 NOCCIlohaMailuebimiau (一直連不進去) ,看了看還是不太滿意。後來又再搜尋一下,找到了一個國人幾乎沒在使用,但卻十分令我驚豔的 V-webmail 。跟小松鼠比起來,不僅畫面漂亮多了,郵件的亂碼問題也沒了,操作上也更直覺。在 FireFox 裡,甚至還可以用右鍵選單直接做郵件的管理 ( 跟 IE 的相容性比較差一點,相信是針對 FireFox 在 UI 方面做了最佳化)。

2006年8月1日 星期二

文章列表裡的 CM 和 TB 是什麼?

在管理界面的文章列表裡面,有兩個欄位,標題是 CM 和 TB 。用慣 LifeType 1.0.x 的使用者應該都知道那是什麼。但是,剛接觸 LifeType 的人看到了,應該是一頭霧水吧。

正解:

  • CM = Commets = 迴響。
  • TB = Trackbacks = 引用。

也就是說,這兩個欄位是文章的迴響和引用的數目。如果文章有迴響或引用的話,該數字會是一個連結,可以進入該文章的迴響和引用列表。

好!問題來了!為什麼這兩個欄位不加入翻譯呢?

2006年7月31日 星期一

LifeTYpe 1.1 的繁體中文語系翻譯補全

雖然 LifeType 1.1 beta-1 已經有繁體中文的翻譯了,但是裡面的訊息其實還不全。花了一點時間把剩下的部份給翻好了。經過論壇裡的幾位版主先初步的試用過後,又做了一些修正。現在已經回報到臭蟲追蹤系統了 ( issue 995 )。

想先試的人,請到上面的連結裡下載吧。

更新: Mark 好快的動作,已經加到 trunk 1.1 裡面了 ( r3824 )。所以,只要從 svn check out 新的程式碼就有繁中語系可用了。

嗯~~~應該還會再加兩個翻譯訊息:CM 和 TB ,再等等吧 。 Mark ,你可別忘了這兩個,拜託了 。

升級 LifeType 1.1 beta1 的小撇步

千呼萬喚,等了一年, LifeType 1.1 終於出 beta1 了。

因為 1.1 版有修改資料庫結構,所以建議,在測試 1.1 beta1 時,千萬別拿正式服務的網站開刀啊。否則一不小心,資料毀了可是救不回來的。我自己也是在測試環境下反覆升級了四、五次,才把資料庫正確轉換,沒有再出現亂碼

在官方的釋出文章裡說,升級時,只要保留原來的 config/config.properities.php ,其餘的用新的程式覆蓋,再執行 wizard.php 就可以了。這原本沒錯,不過,還是有一些小地方要注意,主要還是資料庫編碼的問題:

2006年7月11日 星期二

更新 LifeType 至 1.0.6 版

不在家的這幾天, LifeType 因為又發現了一個 SQL Injection 安全性問題,於是火速的推出了 LifeType 1.0.6 的版本。本站自然也跟著升級到 1.0.6 的版本了。

升級很簡單,注意一些小地方就行了。

2006年7月10日 星期一

小樽市的蒸氣鐘

趁著剛放暑假,全家去了一趟北海道。其中小樽市的這座蒸氣鐘,據說是全世界只有兩座。 google 了一下,另一座原來是在加拿大的溫哥華市。( google 上的照片 )

既然是蒸氣鐘,當然要把噴煙、鳴鐘的叫聲給錄下來。這座鐘和溫哥華市的那座一樣,每十五分鐘會叫一次,下面是用我的 Sony-V1 錄下來的影片,已經轉成 flv 格式了。整個過程約 10 秒鐘,檔案大小約 902 KB 。

2006年6月23日 星期五

SecretBlog Plugin (6/25 更新)

昨天,伙伴 huihui 要求,希望他的 blog 不要公開,只做為私人的網路日記,想了一下,秘密部落格 ( SecretBlog Plugin ) 正好符合這個要求,於是就加上去了。

順便,把這個外掛的中文語系給完成了。因為,只有短短的 14 行,我也不提供下載了,請直接複製/貼上使用吧。

[學生作業]MV圾垃車-朋友版

這組的作業,除了片頭、片尾的影片之外,其餘也是使用靜態畫面為主。可是:

  1. 片頭、片尾的原始影片忘了消音。
  2. 後面小半段大概是時間因素,很給他草草結束的感覺。

不過,整體來說,照片的選用蠻配合情節,看得出來有用心啦。

歌曲:圾垃車-朋友版(應該是五月天吧?!)

檔案大小:約 13 MB

[學生作業]MV卒業

這組製作的 MV 則是完全由靜態畫面組成,可以說是搭配背景歌曲的投影片吧。

不過,使用的照片數量夠多,選用也還蠻得當的,可看性還是有的。

歌曲:WaT卒業Time

檔案大小:約 15 MB

[學生作業]MV天灰

這是另一個作業,歌曲是 SHE 的「天灰」。拍得很有味道,值得一看。

影片大小:約 12 MB


[學生作業]MV小護士

試播學生的作業,自製 MV ,歌曲是五月天的小護士,拍得不錯哦!

影片大小:約 10 MB

2006年5月27日 星期六

Windows XP 批次遠端關機(3)

玩批次檔玩到有點興頭了,再做一次修改,試著讓他更好用一點。

不多廢話,純紀錄,直接看程式 doshutdown.bat 如下:

@echo 輸入要關機的電腦編號,每個電腦名稱一列,結束按 Ctrl-Z for /f %%a in ('type con') do shutdown -s -f -t 0 -m pc403-%%a pause

這樣,可以把批次檔做個捷徑放在桌面上,執行後輸入要關機的電腦編號,然後按 Ctrl-Z 完成 stdin 的輸入。接下來, for 命令會從 stdout 逐行取出電腦編號交給 do 後面的 shutdown 執行。

這算是第一版的改良版,把編輯檔案與執行結合在一起了。至於第二版,每次要寫命令列參數還是有點麻煩,不如執行後再直接填寫參數方便。

就這樣。

2006年5月26日 星期五

修改 amavisd-new 的設定

目前學校的郵件主機是使用 amavisd-new 搭配 spamassassin 做 spamfilter 。除了 spamassassin 原本的過濾規則之外, amavisd-new 的設定檔裡面也有一些自訂的過濾規則。其中,過濾附件檔名的規則裡,預設把常見的壓縮檔格式全擋掉了。於是寄一個 .rar 的檔案,就收到系統如下的回信:

BANNED CONTENTS ALERT

Our content checker found
banned name: multipart/mixed | application/x-msdownload,.rar,104.rar
in email presumably from you (<寄件者>),
to the following recipient:
-> (收件者)

要開放附件可以寄壓縮檔,要修改 /etc/amavisd/amavisd.conf 裡面的兩項設定:

2006年5月16日 星期二

停用電子郵件帳戶

一位同仁因為不堪垃圾郵件困擾,要求關閉他的電子郵件帳號。這裡紀錄一下做法。

最簡單的方法,讓帳戶過期:

usermod -e 2006-01-01 user

這裡是用 usermod 命令,設定帳戶在 2006-01-01 (過去的某一個日期) 過期,這樣,過期就立刻生效,帳戶立刻無法使用。

順便記一下,另一個無效的方法:

passwd -l user

這是在 /etc/passwd 裡面加註帳號鎖定。這只會讓帳號無法經由 telnet / ssh 服務時無法登入。而我們的電子郵件帳號原本就設定成無法登入系統,所以此法無效。

No more new request url mode

之前曾寫過一系列 More Raw Request Mode hacks 文章。是希望如果使用虛擬主機架站而沒有支援 .htaccess 時,能有比較好的網址模式可用。當時,也很高興的是, Oscar 也表達高度興趣,可以用來取代目前的一般網址模式。

但是,隨著 LifeType 的開發腳步,在 1.1 版又提供了 Domain 網址模式後,所有網址模式已經增加到五種之多,漸漸地,這些新的網址模式就排到 1.1 的計劃之外了,未來可能也不會有了。

不過,並不是就這樣把問題留著就算了,對不支援 .htaccess 架設 LifeType 的人還是得照顧的。 Oscar 教了一招解決之道,讓沒有 .htaccess 支援的人也能使用自訂網址模式。

其實方法真的超簡單的,早知道這個方法,我也不需要浪費時間寫一堆 hack

2006年5月10日 星期三

使用 ntpdate 做主機的網路校時

一直以來都忘了做這件事,這回做了之後,順手記一下。

參考連結: 時間與頻率國家標準實驗室 、 鳥哥的 Linux 私房菜之 如何在 Linux 系統自動網路校時?

因為不做 ntp 伺服器,只要安裝 ntp-client 套件即可:

urpmi ntp-client

使用 time.stdtime.gov.tw 的時間校時:

ntpdate time.stdtime.gov.tw

將校準後的時間寫入 BIOS clock :

hwclock -w

這樣就完成校時了。將上述兩個步驟加入 crontab ,於每日早上 6:00 自動校時:

crontab -e
0 6 * * * /usr/sbin/ntpdate time.stdtime.gov.tw;/usr/sbin/hwclock -w

完成!

2006年4月28日 星期五

Windows XP 批次遠端關機(2)

上次分享了一個 Windwos XP 批次遠端關機,似乎有不少透過 google 搜尋而來的連結。看來,有不少電腦老師很需要啊。

上次的做法是透過一個外部檔案來列出要關機的電腦,再用 for /F 讀給 shutdown 指令使用。不過,對電腦教室裡每天遇到的情況並不是很適用,沒關機的數目通常不多,要開啟檔案編輯電腦清單,再執行命令的話反而蠻麻煩的。

這裡改用批次檔的參數指定要關機的電腦名稱,對忘記關機數目不多的情況還蠻實用的,批次檔如下:

2006年4月24日 星期一

升級至 LifeType 1.0.4

昨天在 LifeType 中文官方網站和中文開發論壇貼完 LifeType 1.0.4 發佈的消息之後,直到現在才有空替自己的網站升級。

因為這回只是個小改版而已,所以升級方式照上次方法,使用 lifetype-1.0.3-upgrade-1.0.4.tar.gz 的升級包來升級。

在升級包裡並沒有看到這回的 changelog,官網發佈的消息也說,「要看 changelog 請自行看臭蟲追蹤系統裡的 fixed in 1.0.4 分類」。這裡大概列一下這版的更新:

2006年3月22日 星期三

關於我的IM帳號

碰到過幾次 LifeType 中文開發論壇 的網友想用 MSN Messager 或 Google talk 跟我 talk talk 。都被我拒絕了,在此一併抱歉。

先說 MSN 吧,多年前為了試試新玩意兒,才申請了一個 MSN 帳號玩玩,很久沒用了。目前只有需用到超過兩人以上線上討論的需要才會開啟,知道的人應該不會超過 10 人吧。

而 Google Talk 安裝後,主要是拿來做 GMail notify 用的,也是只有少數親朋好友才有在我會接受的通訊錄名單裡。

如果有朋友想一起研究 LifeType 、 聊程式或其他…,歡迎多用論壇、blog 或是 email 。我也是需要準備教材、陪陪家人的。

再次抱歉了。

2006年3月12日 星期日

[update] HiNet 的 DNS 主機出問題?

今天在家裡忽然連不上學校的主機,原以為電力系統又故障,沒想到,竟然是 HiNet 的 DNS 主機出問題。

2006年3月3日 星期五

自由軟體作者的誠意 vs 自由軟體使用者的誠意

最近在自由軟體技術交流網看到一個討論串,兩個網友對釋出自由軟體和使用自由軟體的誠意做了論述,兩者相比之後,堪稱一絕,值得一看。

原討論串在:kubuntu 5.10 中文版Live-cd釋出囉 574MB (2006/2/17)

原討論串裡面全是以訪客身份回應,我依自己的理解,以訪客A、訪客B…方式標示,並加上顏色標示,這是原文沒有的。如有不慎張冠李戴或曲解原意的話,特此表達歉意,並懇請告知,以便更正

首先,是一位 訪客A 指責釋出 LiveCD 的作者 沒有誠意

不能用!只有開機畫面而已就停住了,輸入什麼指令都沒用! 做事情有點誠意 可以嗎?像FC系列就沒人要理了。

同樣是遇到問題,另一位訪客則是這樣回應:

我也是發現不能用!只有開機畫面而已就停住了,輸入什麼指令都沒用!這是自由軟體,全靠大家的幫忙。所以也不能要求太多,只有 感謝前輩的貢獻 !

(中間無關誠意的部份省略…)

2006年2月10日 星期五

兩層式的文章月份彙整

在論壇裡,有網友 hsuzy 問到如何修改樣版讓文章的月份彙整加上一層年份的分類?(請看討論串)我研究了一下,在現行的 LT 架構下,沒辦法像"我的連結部份"直接由樣版變數實作,必需要修改程式或另做 pluign 處理。當然,也可以用 smarty 的樣版語言"蠻幹"做出來。請原諒我用這兩個字,如果你不同意的話,其實 hsuzy 兄確實用 smarty 的樣版語言實作出來了。但是在我認為,用樣版語言做程式該處理的事情,終非正途。

修改程式來完成這個要求,我實作出來了,但是,除非未來 LT 官方改用相同的方式來實作,否則,這只能用來玩玩而已,因為後續的維護成本不值得這樣做(後面再說明)。

還是先看看做出來的樣子吧(以我使用的 almost-spring 模版為例):

使用年份做第二層的文章分月彙整

若有興趣玩玩看,請往下看…

2006年2月8日 星期三

關於 MagpieRSS

什麼是 MagpieRSS ?

MagpieRSS 是一個用 PHP 寫成的 RSS 分析器,他可以分析的 RSS 規格包括 RSS 0.9 、 RSS 1.0 、 RSS 2.0 、 Atom(有少許限制) 。而 LifeType 的 RSS 分析器便是進一步將 MagpieRSS 封裝成 RSSParser 類別來加以使用。

LifeType 在什麼地方用到 MagpieRSS ?

講到這就有點尷尬了,為什麼?因為一般的使用者是完全用不到的,至少我就是。若不是阿欣來問新聞閱讀器( FeedReader plugin)的亂碼問題,我還沒研究到他。等等, LifeType 不是有提供網站的各種格式的 RSSFeed 嗎?是沒錯啦!不過 LifeType 的 RSSFeed 是直接用與前台頁面相同的模版技術產生的,跟 MagpieRSS 一點關係也沒有,因為, MagpieRSS 的用途,是用來分析由 RSSFeed 取得的資料用的,也就是說,訂閱別人的 RSSFeed 用的。

2006年2月2日 星期四

避開中山高台中段的替代道路

每年初二陪老婆回娘家時,在中山高的台中至員林段總免不了要塞車。每回塞車時,看著旁邊的高架道路上順暢的車流,總想著,那如果是我的替代道路多好。今年花了點工夫研究了一下,果然是一個不錯的替代方案,跟大家分享一下。

這段替代道路適用南部路段可以使用南二高的人,也就是使用下面路段:

中山高->台中大雅交流道->中彰快速道路->快官交流道->南二高

我也準備了地圖跟大家分享。

2006年1月24日 星期二

升級至 LifeType 1.0.3

翻譯完官方的 LifeType 1.0.3 released ,並發佈在中文網站上發佈中文的 LifeType 1.0.3 發佈 之後,早上學校網路無預警的連不上,估計是無預警停電造成的。下午去忙了,直到現在才有空做 LifeType 1.0.3 的升級和寫這篇文章。

既然官方有提供 lifetype-1.0.2-upgrade-1.0.3.zip 升級包,加上上回在論壇有人對升級包存有意見,這回就讓我試試升級包吧!

升級之前,先回憶一下,自己的 LT 曾做過那些官方還沒列入的 hack ,免得升級後要重做時痛苦萬分。還有,既然使用升級包,當然要先看看升級包裡面的東西與我加在網站上的 hack 有沒有重複?若沒有重複,直接使用便完成升級了,豈不美哉?!

2006年1月20日 星期五

More Raw Request Mode Hack v0.5

謝謝 3gboke 兄,他又抓到 bug 了

這回是一般簡潔網址模式下,資料夾的檔案無法下載,我另外再查一下一般自訂網址模式果然也有相同的問題,而且更慘的是,連小型/中型縮圖也看不到。

這回問題出在 Oscar 把 ResourceServer 的 op 寫死在 resserver.php 裡面。為了不循環做 include 動作,網址的分析我全交給 index.php 處理,不再 include resserver.php 和 blog.php ,結果就少了 ResourceServer 的 op 而自動使用 default op ,回到 blog 的首頁了。

為了解決這個問題,多修改了 prettyrequestparser.class.php 和 customurlhandler.class.php ,在分析下載檔案的網址時,直接加上 ResourceServer op 便可以解決這個問題了。

changelog:

  1. 同時包含一般簡潔網址模式(pretty raw request mode)和一般自訂網址模式(custom raw request mode)的修正檔,分別放在兩個資料夾裡。
  2. 修正一般簡潔網址模式不能下載資料夾裡檔案的錯誤。
  3. 修正一般自訂網址模式不能顯示小型/中型預覽圖和下載資料夾裡檔案的錯誤。
  4. 在 hack 包裡加上中英文的 readme 和 changelog 。

2006年1月15日 星期日

More_Raw_Request_Mode_v0.4a

這個 hack v0.4a 並不是因為 hack v0.4 有 bug ,不同於 hack v0.4 使用一般簡潔網址模式,而是用一般自訂網址模式來取代一般網址模式。

會再出這個版本,主要是覺得自訂網址模式好像比一般網址模式受歡迎,而 Oscar 只說 LT v1.1 會考慮使用兩者之一取代一般網址模式,並沒有說要用那一種。 hack v0.4 使用一般簡潔網址模式純粹是我個人的喜好,不能代表大家的喜好吧!所以覺得還是把他做出來,讓開發小組去做選擇吧!

我偏好簡潔網址模式的原因,最主要是自訂網址模式不支援中文。其實網址上使用中文本來就有很大的問題,但是自訂網址其實可以處理,像文章就有「短標題」部份可以輸入文章的英文標題當網址用;而作者可以使用 id。為德不卒的是,只有文章和作者可以用,其它的像網誌名稱、文章分類名稱、資料夾名稱…都還沒有。所幸 LT v1.1 據說將全面支援這些「短名稱」,那自訂網址的實用性便大增了。但是,那也得作者不嫌麻煩地加另一個標題

另一個問題是效能。簡潔網址和自訂網址都需要一個 RequestParser 的類別做網址的分析。簡潔網址因為有一定的格式,所以他的 parer 就比較單純;自訂網址因為「自訂」的彈性,他的 parser 就寫的複雜多了。流量不大的小站或許沒什麼問題,若是用戶萬人,一天幾萬到幾十萬擊點數的大站,理論上效能是有差的。有興趣的人可以比較 class/net 目錄下的 prettyrequestparser.class.php 和 customurlhandler.class.php 兩個檔案就知道了。

不廢話了,有興趣測試的人,請由此下載: more_raw_request_mode_hack_v0.4a.zip (更新!搬家到 blogger ,這又是舊版用檔案,不再提供了。)

測試方法跟 hack v0.4 相同,就不廢話了,請自行參考之前的文章吧!

路過的人,願意留下意見,說說看你喜歡那個網址模式嗎?

2006年1月12日 星期四

More Raw Request Mode hack v0.4

新功能還是得要大家幫忙測試的, hack v0.3 果然有一個 bug ,如下的 blog 網址無法正常被解析:

http://your.server/lifetype/index.php?action=/blog/{blogId}

造成所有的 blog 首頁網址會一律跳到預設的 blog 。

謝謝 3gboke 發現這個 bug,要解決這個問題,必需要多修改一個檔案。

另外, Oscar 在英文官方論壇有這樣的回應

I need to take a look at these changes. We might integrate them in 1.1

所以,在 1.1 版時,這個可能會取代一般網址模式囉,請大家期待 LifeType 1.1 吧!

回歸正題,hack v0.4 出爐了。

2006年1月8日 星期日

More Raw Request Mode hack v0.3

這個 hack 發表後,有興趣的人似乎不多?!倒是 Oscar 有這樣的回應

Isn't 6 request generators a bit too many? We could replace the current "raw" one with one of these two. After all, current "raw" urls will always work no matter what method is currently being used...

也就是這,這兩種模式的其中之一未來可能會取代目前的一般網址模式,還有,目前的一般網址模式也要能夠正常運作。當然,這是向下相容的必要做法。

所以,依據 Oscar 的要求, hack v0.3 版出爐了。

2006年1月4日 星期三

如何預設啟用外掛程式?

2006/04/18 更新:

maomaode 在論壇裡提到了本文所列出的程式碼不夠完善,並提出了他修改後的程式碼跟大家分享。我想,這就是自由軟體的好處吧!大家都有使用軟體的自由,也因此,讓軟體進步的更快快去看看吧!

很多人都在想安裝了一些防圾垃干擾外掛後讓每個 blog 都預設啟用它們。但是大部份的 plugin 都沒有把這個寫進去。今天 maomaode 又在論壇問起,基於因一時記錯,給錯資訊的罪惡感,於是拿 authimage 來試試。

其實做法非常簡單,每個 plugin 都會有一個 Plugin{pluginname} 的類別,裡面有一個 register() 方法。在 api 文件裡面這樣說

This function is called only once when the plugin is registered. Please use this method in case your plugin needs to perform some initializations before it is used, specially if the initialization process requires access to the plugin/blog settings......

More Raw Request Mode hack V0.2

安裝 LifeType 時,經常看到的問題是,想使用簡潔網址ModRewrite 網址模式、或自訂網址模式時,因為 WWW 主機沒有開放修改 .htaccess 的權限,或是使用了 IIS 主機而缺乏必要的支援,結果只能使用一般網址模式。

一般網址模式也沒什麼不好啦,就是網址經常又臭又長,不易記,不易用,不利搜尋引擎搜尋。這裡提供兩種新的網址模式,讓你的一般網址也能像簡潔網址般簡單,或是擁有自訂網址模式般的靈活運用。這兩種新的網址模式為:

  • 一般簡潔網址模式 ( Pretty Raw Request Mode ) 網址範例: http://your.server/lilfetype/index.php?action=/get/1/1
  • 一般自訂網址模式 ( Custom Raw Request Mode ) 網址範例: http://your.server/llifetype/index.php?action=/yourblog/1/2006/01/01/73

從上面的範例網址,你應該看出來了。沒錯,它跟一般網址不同的地方在於,都只用了一個 request 變數,而變數的內容為 blog 的相關網址,他們完全相容於簡潔網址模式和自訂網址模式,甚至,一般自訂網址模式使用與自訂網址模式完全相同的網址設定

有興趣嗎?請繼續往下看。

2006年1月2日 星期一

Pretty Raw Request Mode 試作

2006/01/04 補充說明:

因為我已經改過網址的格式,所以文章裡的下載連結取消,新版 hack 請參閱另一篇文章「More Raw Request Mode hack V0.2」。

LifeType 目前有四種網址模式如下:

  • 一般網址模式 ( NORMAL_REQUEST_MODE ) 所有的網址以 request 變數的方式放在網址中,主要是以各種 Id 組成。
  • 簡潔網址模式 ( SEARCH_ENGINE_FRIENDLY_MODE ) 將 request 變數裡的各種 Id 組合成 Path Info ,讓網址成為搜尋引擎易於搜尋的模樣。這必需要 WWW 主機有支援並開啟 Path InfoErrorDocument 重導向的功能。
  • 網址重寫模式 ( MODREWRITE_MODE ) 其實這個模式很少看到有中譯名。這種模式利用 apache 的 rewrite url module 將易讀的網址重寫回一般網址的型式後,再以一般網址模式處理。這必需要使用 apache server ,並且支援及啟用 rewrite url module 才行
  • 自訂網址模式 ( CUSTOM_REQUEST_MODE ) 網站管理者可以依特訂的方式自訂各種網址,必需要 WWW 主機支援 ErrorDocument 重導向才能使用。

以上四種網址模式,除了一般網址模式之外,都需要 WWW 主機額外的一些支援。這些支援對租用虛擬主機架設 LT 的人來說,經常會受到限制,尤其是對不支援自訂 .htaccess 設定的虛擬主機而言,一般網址模式成為唯一的選擇。

一般網址模式並不是不好,但是過多的 request 變數,讓網址不易記,不易看,也不易用( 例如論壇裡 3gboke 關於 flash mp3 player 的討論 ),也較不利搜尋引擎搜尋。於是我想提出第五種網址模式,他只需要一般網址模式的環境,而且網址裡面只有一個 request 變數,希望能夠讓一般網址更易記易用

目前已有初步的成果,只要修改兩個檔案,新增一個檔案,並修改一個資料庫設定值就可以啟用了。若有興趣,請往下看。