JeffHung.Blog

(My smile insists of having nose. :-)

IRC by IRSSI, with Big5/UTF-8 recode

懶人總是要碰到需求了,才會有所行動與長進。
剛剛在 #happydesigner 上被 whiteg 抱怨看不到我的中文,所以趕緊真的去把 irssi with big5/utf8 recode 設好。
此時 wiki.newzilla.org 掛點中,因此看不到其 HowToIRC 與 MiniHowtoUTF8,因此只好求教咕狗大神,找到這篇:《irssi UTF-8 Big5 中文轉換與設定》。這篇比 MiniHowToUTF8 寫的清楚簡單,應該是因為部份環境我已經具備的的緣故。以下整理重點:

首先,我們不必辛苦地編輯 ~/.irssi/config,irssi 會依據使用時所下的指令,自動更新 config 檔。所以,~/.irssi/config 的格式,我們不需要研究,記好下列指令的用法即可:
設定 IRC 網路與伺服器
在 IRC 裡,是由許多個 IRC 伺服器 (server) 分散地串在一起,形成 IRC 網路 (network)。一個 IRC 網路裡面,有著許多的頻道 (channel),只要是在同一個 IRC 網路裡的人,就可以在其中的頻道裡,互相聊天。
因此,我們需要設定我們有哪些 IRC 網路。目前常見的 IRC 頻道,多位於 ircnet 或 freenode 上。因此,我們主要把這兩個 IRC 網路加上去。

/NETWORK ADD -kicks 4 -msgs [...]

修復 trackback 功能

敝小站的 trackback 爛很久了,趁著今天放假有空[1],追了一下程式,發現原來是啟用「Did You Pass Math?」時安裝的 Did you pass math 這個 plug-in 的問題。
簡單講,這個問題出在於,Did you pass math 乃是註冊 comment_post 這個 action,以進行驗證數學的答案的工作。但 trackback/pingback 時,也都會進行 comment_post,因此就被 Did you pass math 擋了下來,讓 trackback/pingback 失敗。
事實上,每一種 spam checking 的 plug-in,應該都會碰到這個問題。解法很簡單,就是偵測是否此次 comment_post 是否為 trackback/pingback,如果是,就直接通過,否則就進行數學答案的驗證。
但是要怎麼偵測此次 comment_post 是否為 trackback/pingback 呢?我不是 wordpress 達人,所以只好偷看一下 Captcha! 的程式碼,原來關鍵在於,也註冊 pingback_post 與 trackback_post 這兩個 actions,於處理此兩個 actions 時記錄於 $this->is_trackback,然後在處理 comment_post 時,若是 [...]

Reimplement my blog theme using Sandbox

最近對 JeffHung.Blog 動了一些手術,裝了在《今日連結 (2006-09-20)》時看到的 Sandbox 的這套 theme,並予以改造,準備將外觀改回原來的樣子。Sandbox 是一個 semantic-rich 的 wordpress theme,其設計極端注重語意的保留,是一個很好的,設計自己的佈景主題的起點。
對於 blog 的佈景主題,之前換成 beeblebrox 布景時,我就已經有了基本的想法,最主要的就是要能夠讓我得以清晰的擺放程式碼在文章裡。這當然是因為,實在是文筆不好,只好多填些程式碼充數的關係。再又經過一段時間的觀察與沈澱之後,想法多了一些,以下簡單條列於下,算是再次整理:

在版面配置上,如果有邊欄 (side-bar, side-panel, ... what ever) 的話,必須要放在左邊。這是因為程式碼以及我會使用到的語言,方向都是由左至右的 (left-to-right),而程式碼有時候又有「不可換行」的特性,當有這樣子的狀況發生時,版面就會被撐大,若邊欄放在右邊,在「由左至右」以及「不可換行」兩個因素的限制之下,邊欄就會對本文的閱讀造成影響。
在版面配置上,本文區塊應當要是 fluid,也就是會隨著瀏覽器的大小而變動。理由正是由於上述程式碼有「不可換行」的特性之故。當版面被撐大時,fluid 的版面配置,就不會讓版面受到破壞。
本文字體大小必須是瀏覽器預設的大小,這是預設閱讀起來最舒適的字體大小。Gslin 在這篇《字形的問題》有聊到相關的考量。以前小時候,總喜歡在一個頁面裡,塞下越多的資訊越好。但現在老了,眼力不行了,所以字還是大一點,看起來比較舒適。
非本文的內容,在樣式上,應該盡可能地不喧賓奪主。這可以用較小的字體,或較淺的前景色來達成。尤其是在邊欄放在左邊的情形下,邊欄的內容更是容易讓使用者分心,因此適度的淡化處理,是必須的。
邊欄存在的目的,應該只是提醒使用者,「還有這些東西可以看」,而不是直接把內容呈現給使用者,內含真正內容的邊欄,只會使使用者分心。因此,放在邊欄的 recent-comments 與 recent-trackbacks 等,應該要只放連結與標題就好,毋需列出部份內容。
內頁的 HTML <title> 必須包含文章標題,考量到 tab browsing 時,tab width 通常不寬,因此文章標題應該置於 blog 名稱之前,如:「Sandbox, look.urs, and blogging frequency [JeffHung.Blog]」。
Search form 應該擺在越上面越好。我通常會擺在 header 的右方。Searching 已經超越 surfing 成為現今主流的瀏覽方式,所以應該放在最立即所得,但又不影響主體的地方,就好像 firefox 的 search [...]

Blog 版面調整

昨天晚上又試了一堆布景主題,雖然有幾個還不錯的,但因為我的一些特殊需求需要另外加改一些東西,要弄在這些布景主題上,也挺麻煩的,所以也就只是玩玩而已。也許真要改的話,得先把我加改的那些技法整理一下,找個可以跟正常布景主題程式碼分離的機制,以便可以快樂更換布景主題。
剛剛則是把 blog 的版面調整了一下:
首先,我把本文大小調整至 1em。本來是 90%,但這個奇怪的數字,想必在新細明體這類有襯字[1]下,會顯示地有些破碎,尤其是以斜體字呈現的時候[2]。所以改成 1em,也就是瀏覽器的預設文字大小,通常這會是 12pt,看起來又大又清楚。
再來,也把段落引文 (即以 <blockquote> 包裹起來的段落) 的顏色,改回和正常文字一樣的顏色。既然引文已經以斜體呈現,且段落引文左方還有特殊的邊界標示,實在沒有必要再以特殊顏色呈現。且,原本的顏色太淡了,我老眼昏花,會看不清楚。
有在考慮 one-column 的版面形式,左方 sidebar 感覺上沒什麼存在的意義。事實上,在內頁裡我早已經把左方 sidebar 的內容,縮減到幾乎沒有內容。我認為重點應該是文章的內容,其他索引用的區塊,平常不會用到,應該隱藏起來。可行的方法有,弄成類似 menu bar 的形式[3]、或提供鍊結,另外開一頁展現,或者最近 lukhnos 的那種「隱藏式功能面版」的作法也不錯[4]。
Serif font,新細明體是 Windows 95 以降,預設的中文字型。在沒有辦法以 CSS 分別指定中文與英文字型的現在,中文字型只能交由瀏覽器使用取代規則,自動以系統預設字型,也就是新細明體呈現。 ↩在習慣上,除了前後加引號以外,當我在引用他人的話語、文字時,還會以斜體呈現,以區分個人的發言與引文。 ↩這是我原先的想法,但據說外國人不太喜歡這種表現方式,在搞 CSS 弄半天也還弄不好的情況下,我暫時打消這個念頭。 ↩但是 lukhnos 的面版太容易觸發了,感覺上反而會影響閱讀。如果觸發區域能夠做更小一點,應該會比較好。 ↩

Ideogram sensitive PostTeaser

睡到一半口渴睡不著,所以就來裝裝 wordpress plugins,找到一個 PostTeaser 看起來還不錯,所以就裝起來試試看。PostTeaser 是一個 excerpt 的加強版,其簡介是說:

Post Teaser generates a preview or "teaser" of a post for the main, archive and category pages, with a link underneath to go to the full post page. It includes features to generate a word count, image count, and an estimated reading time.

可惜,裝起來後發現,他的 word count 對中文字感冒,連帶地也算不準 excerpt 的長度。如果是中文字比較多的文章,很容易就帶出一大票文字,喪失了使用 [...]

新版 Firefox 還是有些小問題

新的 Firefox 1.03 在前幾天推出,我馬上抓了來,連同所有的 extensions 都一併更新,為避免發生什麼怪問題,我採用先移除舊版本,砍掉舊目錄,然後重灌新版本的方式乾淨更新。因為厭惡中文版的「衝」[1],所以我灌的是英文版。
不過,一直困擾我的 bug 依然未解,然後又加上了一個小 bug,這實在是讓我用起來,感覺很不愉快:

舊 bug:從網址列或 form 的 <input type="text">、<textarea> 裡,使用「複製」常常失敗,一定要先用「拖拉」的方式把文字拉到另外的 editor 後,才能正常 copy 文字、網址。這實在是很莫名其妙,用拖拉的就可以,用 CTRL-C 或選取 menu item 就不行。這問題從約 1.1 版就開始了,到現在 1.3 版還未解決。
新 bug:當已經設定某些網址不列入 block popup,但 popup blocker 依然把這些網址的 popup 阻擋下來,這樣子用起 bloglines 或我自己的網站,非常難用。

希望 1.1 版能好一些。唉。
用「上」還好一些。逃~ ↩

啟用「footnotes」

前幾天我在裝「Did You Pass Math?」的時候,其實也一併裝了「footnotes」,不過這個套件可以討論的東西比較多,所以遲至現在才發表。
我一直認為,寫文章用 HTML 實在是用錯了格式。如果可以的話,我希望 blog 裡的文章,是使用 DocBook 格式為其原始格式,然後再經過某種機制,好比說 XSLT,轉換成 HTML 在 blog 裡呈現。理想狀況是,blog 的後台,內建 Web-based WYSIWYG DocBook editor。但這是理想,在現實上,連 stand-alone 的版本都沒有了[1],遑論 blog 後台的整合。因此,遷就於工具的問題,也只好將就[2]。
是故,退而求其次,我希望至少能夠在 (X)HTML 裡,呈現出我常用的文章樣式。對偏向技術性文章的我來說,最重要的就是 program listing 與 inline code 的呈現了。這個我已經藉由 FCKEditor 可自訂 CSS 的功能達到[3],若需要更進一步的 syntax coloring 或 line numbering 的花俏功能,我認為直接在 client 端藉由 javascript 達成[4]即可。
而第二常用的文章樣式,則是 footnote,我個人喜歡使用論文 reference 的寫法,於指涉處與註解處,皆使用方刮號 ( [ 和 ] ) 包裹註解編號,並加上超連結在兩者之間跳躍。這篇《升級到 [...]

啟用「Did You Pass Math?」

今天 comment spam 狂襲,砍到手軟。我不喜歡用 Spam Karma 這類東西,誤判機率蠻大的,重點是其介面又不方便把被誤判的 comment 救回來。另外,為了 web accessibility 考量,AuthImage(trac) 這類機制也不考慮。因此,先裝一個 Did You Pass Math? 試試看效果如何。
Did You Pass Math? 是在發表回應時,要求未登入的使用者,必須回答一個簡單的加法數學題。不像使用圖片的 AuthImage 之流,由於題目是以文字方式呈現,故在 text mode browser 上也可以達到 CAPTHA[1] 的效果。使用 lynx[2] 看的效果如右圖。
目前看來,只有一個問題,就是若不小心答錯了,按上一頁回去時,原本填寫的回應內容,都會遺失。這個還要研究一下 Did You Pass Math? 是怎麼做的,看看可不可以補強。在有結果之前,只好先加點文字說明警告[3]。
CAPTHA: an acronym for "completely automated public Turing test to tell computers and humans apart", trademarked by Carnegie [...]

網址改用 www.jeffhung.net

雖然好不容易有了 4 的 pagerank,可是還是比較喜歡 jeffhung.net 這個網址。因此即日起,本站主網址改到 http://www.jeffhung.net/blog/。如無意外,以後就真的不會變了。
原來的 http://www.jeffhung.idv.tw/blog/ 還是可以用,但 /blog/ 底下的東西,全部強制轉址到新址。意思是說,舊有的書籤、鍊結以及 RSS 網址等等,都還可以用,只要您的 browser 或 rss reader/aggregator 支援 redirect 即可。不過,當然還是希望各位對敝小站有興趣的朋友們,改一下網址囉。
我的規劃是,jeffhung.net 以後就是我正式在網路上的家,取「JeffHung 的網路」的意思,就好像本 blog 名為「JeffHung.Blog」,乃「JeffHung 的 blog」之意一樣。至於工作上的東西,則是留在 jeffhung.idv.tw 裡,因為這是不方便與網路上的朋友分享的東西。另外,窈窕淑女 BBS 站 仍然會繼續下去,雖然我好久沒整頓她了,但基本上還是會活著就是了。

Enhance Wordpress posting bookmarklet

由於內建了 WYSIWYG 的 HTML editor,Wordpress 2.0.* 的 posting bookmarklet 也可以直接以 WYSIWYG 的形式編輯文章了 (之前的 WYSIWYG 靠的是 plug-in,posting bookmarklet 沒有 plug 到)。
但是,官方的 posting bookmarklet 會取代掉目前的網頁,這樣在編輯文章時很麻煩,沒辦法回來參照原文編寫。所以只好下手改改這個 posting bookmarklet。基本上關鍵在這裡 (其中,Q 是目前被選取的文字,如果有的話):

location.href
= 'http://www.jeffhung.idv.tw/blog/wp-admin/post.php?text='
+ encodeURIComponent(Q)
+ '&popupurl='
+ encodeURIComponent(location.href)
+ '&popuptitle='
+ encodeURIComponent(document.title);

因為是更改 location.href 來啟動 blog 編輯,所以目前頁面會被替換掉,換成 window.open() 開新視窗,應該就可以了。所以我把這段改成這樣:

window.open(
'http://www.jeffhung.idv.tw/blog/wp-admin/post.php?text='
+ encodeURIComponent(Q)
+ '&popupurl='
+ encodeURIComponent(location.href)
+ '&popuptitle='
+ encodeURIComponent(document.title)
);

卻沒想到,雖然新的 blog 編輯視窗有正確出現了,但原來的頁面卻被切換成這樣:

[object Window]
研究了網路上其他的 bookmarklet 的寫法,才恍然大悟,如果 bookmarklet 的最後一個 statement 有「值」的話,browser (firefox) 就會把這個值顯示在頁面上。所以在最後加一個 [...]

 Prev 1 2 3 4 5 6 7 8 9 Next