JeffHung.Blog

(My smile insists of having nose. :-)

Text/page zoom in firefox 3 beta4

最近卯起來,直接就裝了 Firefox 3 beta 4 來用,可想而知的是,很多 extensions 會不能用。硬是用 nightly tester tools lite 裝了比較有需要用的 extensions 後,其中有些不能運作,包括了…

Incomplete AideRSS

最近幾天,喵到了幾篇文章,如天佑的《AideRSS - RSS 篩選服務》,介紹了 AideRSS 這套「有點聰明」的 online RSS reader[1]。簡單講,AideRSS 做了一套叫 PostRank 的方法,收集 feed collection 裡的所有文章,依據其 del.icio.us、digg、technorati、comment# 等數字,丟入某種公式,計算出 rank 值,推薦給使用者作為選擇的參考。就好像 look.urs.tw 是針對「站」做 ranking,AideRRS 則是針對「文章」做 ranking,然後再加上 online RSS reader 的介面,形成一套應該會有效的「個人用資訊篩選排序系統」。
不過,最近我好像比較犯衝,每試用一個新的服務,就會遇上一些「卡點」[2],在沒什麼空閒時間的情況下,通常都只能放棄。
AideRSS 似乎也不甘寂寞,也讓我碰上卡點了。在試用一、兩個 feeds 之後,因為資料量太少,看不出其威力,因此我就 export 出 google reader 的 feeds,餵進 AideRSS,這樣資料量應該就夠多了。但是我沒有想到,結果反而造成資料量太多,內容類型過於分散,一堆其實不需要每天閱覽的 feeds,反而「污染」了 AideRSS 的結果。
然後很不幸地,我找不到「全選」的選項,以便把總共六百多個 feeds 一次刪除。而逐條刪除的介面又很奇怪,刪除完後會跑到 dashboard,還要再切回 feed list 才能繼續刪除。
而且期望中覺得應該會有的,filtering rules、categorization 等功能,也找不到。本來還以為是還沒收 email 將帳號 activate 的關係,結果 activate 之後[3],畫面還是相同,沒有任何改變。
因此,以上種種,造就了「除非手動辛苦地將所有 [...]

升級到 wp-footnotes 1.4

自從啟用 footnotes plug-in 以後,我在編輯時,就方便了許多。不過,原本的 footnotes 0.91 版,還是有一些小問題,讓我有些困擾。所以,剛剛我找了一下官方的 wordpress plug-in directory,發現 footnotes 已經更名為 wp-footnotes。測了一下,並照著原本的改法,將 <span class="footnote"> 的標示法修正進去,再加上修了一些小 bug 後,順利升級到了 wp-footnotes 1.4 版。
在原本的 footnotes 0.91 版裡,是使用 while 迴圈搭配 strpos() 尋找註腳,也許是因為這樣,有時候在後台編輯時,會發生程式陷入無窮迴圈的錯誤。新版的 wp-footnotes 改用 preg_match_all() 搜尋註腳,希望效果會好一些。
不過,也許是因為改用了 preg_match_all(),原本只要修改 $footnote_open 與 $footnote_close 兩個常數變數的技法[1],反而失效了。因此我鑽了一下,發現這兩個常數,在丟給 preg_match_all() 之前,有先用 preg_quote() 先處理過。這本來是件好事,但壞就壞在,preg_quote() 預設會替很多 delimiters 前面加反斜線,包括 < 與 > 等。然而,在 preg_match_all() 這行的 regular expression 裡,FOOTNOTE_OPEN 與 FOOTNOTE_CLOSE 所在的部份,其實式不需要替 [...]

黑米商業模式大解密?

昨天才發了篇《見微知著》,剛剛就從 XDite 那邊看到的:《未經書面允許,不得惡搞?》,獨孤木發信決定退出黑米,Qing 也發文說明,他的程式,幾乎不會對黑米造成預期之外的影響。
阿西事件時,黑米也曾經自己改過使用者條款,而且沒有公告周知[1]。印象中是阿西先被逼走,在熱烈的討論之下,於是黑米增設了「禁止玩殘黑米條款」。那什麼叫做「玩殘黑米」的行為呢?條款裡寫的很模糊,不過按照經驗,大概是指會讓站長看得不開心的行為吧?!
印象中,「其他『黑米』有正當理由認為不適當之行為」那時就加了[2]。可惜 Internet Archive 只有收集到 2006-04-30,且所收集到的所有時間點,黑米都未曾出現過「服務條款」。不過,既然早就決定退出黑米,所以也沒有螢幕截圖留證就是了。
Qing 說,「以後黑米就加一條:使用者如果使用黑米的服務,必須每月支付一百萬元新台幣,並且溯及以往」。一開始倒真是嚇到我了,尤其是黑米二年級生的感嘆也指出:

黑米條款第一條是這麼寫的:"「黑米」有權於任何時間修改或變更本約定書之內容,建議您隨時注意該等修改或變更。您於任何修改或變更後繼續使用「黑米」,視為您已閱讀、瞭解並同意接受該等修改或變更。若您不同意以下所述內容,請暫時不要參與黑米網站上的活動。"

難道,這就是黑米的 business model 嗎?
只有在某些討論串裡提及。 ↩記得我很早就提過(黑米新搜尋真的好難用,找了好久才找到),黑米應該好好去請個律師,把制度搞好。不過,到現在這個版本的使用者條款,某些部份還是看起來讓人覺得匪夷所思。 ↩

見微知著

該怎麼說呢,見微知著?
如果一個社群的管理者(站長),會說出這種話:「如果我辛苦架設一個網站,連我自己都看得不開心的話,那我甘願冒上被扣上獨裁或不民主的帽子,使出我最不想使用的方法請你離開。」把使用者逼走,那我們就可以想像,該社群的風格會如何。
果不其然,就在有人協助黑米做出黑米書籤搜尋後沒多久,該黑米書籤搜尋就被黑米 ban 掉了[1],然後隔天就出了新版的黑米站內搜尋。
嗯,測了一下黑米的新版站內搜尋書籤討論,找不到「如果我辛苦架設一個網站,連我自己都看得不開心的話,那我甘願冒上被扣上獨裁或不民主的帽子,使出我最不想使用的方法請你離開。」這句話耶。
一種可能是還沒 index 到比較舊的資料,所以找不到。不過還沒 index 完就急著推出,嗯……。
另一種可能是,因為「HEMiDEMi 書籤匯出工具」跟「HEMiDEMi 書籤搜尋工具」是用同一個 IP,所以其實是「HEMiDEMi 書籤匯出工具」被 ban。這樣的話,勉強可以說是,一個是不友善的行為,另一個不是。不過,也有可能都被認為是不友善的行為就是了。:-p
但是,在 web 2.0 時代,這種 mash-up/add-on 應該要被視作是友善的行為啊[2]。
最後一種可能,是我不會用。也許,所謂的「關鍵字」,是指兩個字以內的詞[3],但我用「網站 獨裁 民主」還是找不到任何東西就是了。
唉~沒關係啦,站長是王咩。
更新 (2007-06-07):用「獨裁」找到 17 頁,共 161 筆資料,目標在第 7 頁,關聯度 2.84%。所以結論是,只能用一個關鍵字,而且還不能太長。所以其實這個功能,沒什麼存在的價值。
更新 (2007-06-08):後續請參見《黑米商業模式大解密?》一文。
據說「一天的 page request 數可是 100 都不到」。 ↩內在?! ↩bi-gram?!(經指出:「bi-gram != 二字詞」。我說清楚一點好了,用二字詞來測,是為了避免踩到「東西」。假設這個搜尋是用 bi-gram 做的,因為這通常簡單一些。但如果沒做好的話,可能會有些 bug,如三字詞就找不到了。因為我一開始是用一整句丟下去找卻找不到,所以也許是長詞會找不到,所以就取極端一點,只用二字詞來當關鍵字。更新:用「甘願冒被扣上獨裁或不民主的帽子」找的話,就可以找的到了。所以可能跟標點符號有關,如標點符號被濾掉後,變成「如果我辛苦架設一個網站連我自己都看得不開心的話那我甘願冒上被扣上獨裁或不民主的帽子使出我最不想使用的方法請你離開」,然後找不到這個長詞,而使得搜尋失敗。) ↩

五年前我的個人(用)網站

今天在 IRC 裡跟 Qing 聊到怎麼爬 HemiDemi,提到五年前我自己也有寫過(個人用)的書籤模組。剛剛興起,就跑去 Internet Archive 把我以前的個人(用)網站挖出來回味。
我以前用的網址是 www.jeffhung.idv.tw,因為最便宜。以前的網站,基本上只是一個大雜燴式的首頁。從 archive 可以看出,這個大雜燴式的首頁,我從 2002 年六月,一直用到了 2005 年四月,差不多用了 3 年,然後才換成現在用的 wordpress 系統。
基本的構想是,幾乎所有事情都可以在首頁裡解決。每樣功能,被作成一個一個的區塊,我稱之為 weblet。約略在同一時期,Java 也有套類似的 framework,稱之為 portlet。我不清楚 portlet 的定義其實為何,因為我沒有研究過。但我對 weblet 的定義,約略等同於一個 desktop application 的視窗。
那時候沒有 AJAX 這種東西[1],所以沒有所謂「直接在 client 端執行的程式實體」這種概念。因此,weblet 後端有個 WebOS 引擎,貫穿 HTTP 的 stateless 天性,負責 weblet 的 persistency across HTTP requests。也就是說,WebOS 會負責在每次頁面切換時,將各個 weblet 喚醒,給予對應的 event,最後呼叫如 OnPaint() 之類的函式,讓每個 weblet [...]

RoR vs. PHP?談 web 開發技術的未來?

本文拖太久了,斷斷續續寫,寫到後來都忘記本來想寫什麼了。不過我發現,好像 thegiive 自己分多次,把很多我要寫的都寫完了。:-p
剛剛看到這篇《Twitter , Rails , Scalibility...More》,我哈哈大笑三聲。所謂的 scalability,就是「有沒有能力在短時間內應付突然爆增的流量成長」嘛!結果 thegiive 最後的結論竟然是:

那麼一時之間無法解決也是非常正常的事情。所以,他們應該也不是太懶惰,只是成功的太突然,沒辦法吃下來。…至於 Ruby 是不是真的太慢,Rails 是不是真的不夠 Scalibilty 呢?這個問題我也不知道…

既然這樣子,那我也沒辦法了,寫再多,又有何用,情人眼中出西施咩。所以剩下的我也就懶得寫了,各位看官自行斟酌吧。

這篇是為了回應 thegiive 的這篇《簡單的回應 JeffHung 的文章》,thegiive 對於我在《COSCUP2006》裡對 RoR 的一些意見,不表認同。不過在談技術之前,我想先澄清一點的是,這種很明顯地就是會沒有結論,甚至容易陷入 flame war 的問題,其實並不適合在那種場合提出 challenge,因為不會解決任何事情。用 challenge 這個字眼,其實也不太對,COSCUP 是個可以讓大家 up up 的場合,真的沒有必要白刀子進紅刀子出。事後的交流,也是可以產生火花,而且更為持久,一切由心,端看我們怎麼想,個人覺得實在是沒有必要那麼亢奮。
再好的 template engine,也解決不了套版的問題
我們先來看看套版的問題好了。也許是雙方對「套版」兩字的定義不同吧?我的意思是,在一般網站的開發過程中,程式設計師將動態網頁的功能寫好時,通常網頁的畫面是「素」的,非常陽春不經任何裝飾。接下來要做的就是,將轉交給版面設計師,也就是俗稱的美工,所設計好的華麗版面,套在這個「素」的版面上。對於程式設計師來說,這個「套版」的過程,通常是非常痛苦無聊的,但又不可能交給版面設計師處理,因為通常版面設計師,並無法處理到「碼」的層級。面對美麗的美工姊姊,小小工程師只好乖乖地與複雜的 HTML 混碼奮鬥。
更恐怖的是,通常來說,這個過程不會只做一遍,通常會形成一個循環,程式改好後套版,版面或程式稍微改寫之後,又要重新套版,循環不休。這當然是因為,在專案進行的過程當中,通常不可能很幸運地可以一條鞭式地順著瀑布溜下來。
對於套版問題,目前已經成熟的技術,是各式各樣的 template engine,如 PHP 的 Smarty。除了解決了 security-concern、separate-from-login 與 caching 等需求之外,簡單的語法,也讓套版的困難度,降低了少許。但無論如何,template 仍然是以「碼」的形式存在,要處理套版,仍然是只能讓程式設計師會版面設計,或者是讓版面設計師會寫點程式。
幸好,這個世界有在慢慢地改善,隨著 CSS/W3CStd. 的普及,以及 Ajax 的流行,套版的問題,將可以得到相當大的改進。如果網頁是功能性的,像 Gmail 那樣,比較好的解法會是使用如 ZK、GWT 這類的 Ajax [...]

Telnet BBS 被取代?

XDite 寫了一篇《淺談 BBS 與 Blog (1, 2)》的文章,認為 Telnet BBS 不會被 Web 取代。然而事實上的情形是,在最近五年以來,Telnet BBS 早就被打的潰不成軍,只剩下一點優勢而已。
傳統 Telnet BBS[1] 有五大功能:

文章、信件討論
直接傳訊(飛鴿/水球)
雙人對談
聊天室
即時使用者名單

這是我的分類方法,主要是從技術角度切分的,這五大功能使用的技術都不太相同。但從功能面來看,其實可以直接切成兩大類:

非即時溝通:文章、信件討論
即時溝通:直接傳訊、雙人對談、聊天室與即時使用者名單

在即時溝通的領域裡,直接傳訊被舊介面的 ICQ 取代,雙人對談被 MSN 取代[2],聊天室被增強功能後的即時傳訊軟體裡的多人對談取代,而即時使用者名單,則被可以自訂暱稱的 MSN 聯絡人清單取代。
總歸一句,在即時溝通的領域裡,Telnet BBS 早已被即時傳訊軟體打的潰不成軍。這年頭聯誼[3]時,若要交換聯絡方式,已經不會交換 BBS 帳號,而是改交換 MSN 帳號了。
而在非即時溝通領域,也很慘。這兩、三年竄起的 blog,已經成為主要的內容發佈工具。這其中,multimedia 內容的崛起,與 SEO 所造成的影響,顯然是很重要的原因。Telnet BBS 目前還能保有優勢的,只剩下文章討論的即時性與互動性了。
但,就好像我在《MSN vs. Old ICQ style messenging》一文裡所提及的現象,內容產出越是便利,內容的品質與密度,越是低下。Telnet BBS 在文章討論的即時性與互動性,反有可能會將Telnet BBS 擺在不上不下的位置,比即時互動性,比不過即時傳訊軟體,比文章內容,也比不過blog。
人們並不會為了「手感」,而去某個站台,真正驅使人加入社群的,只會是「人」與「內容」。沒有了「人」與「內容」,就算手感再好,也沒有意義。這就好像,我覺得舊式 ICQ 的介面比較好用,但因為大家都不玩 ICQ 了,所以我也不可能去玩 ICQ。
唯一能夠打破「人」與「內容」的「量大為王」門檻的機制,就是「分散化」。好比說 blog 系統藉由 syndicate 機制,島島相連,每個島都是小小的,但相互連結起來,就是大大的。但可惜的是,Telnet BBS 先天的限制,導致其必須與分散化背道而馳。也因此,為了跨越「量大為王」的門檻,那時的 [...]

私眾平台

私眾平台:私人給公眾玩的平台,跟公眾平台不一樣喔。
這是我在 HEMiDEMi 回豪豪的一篇文章,自己留一份備份。說老實話,我越來越不信任黑米這個環境了。

豪豪:
多數暴力與否,沒有對錯,只有厚不厚道的問題。正如您所說的,「得由語境脈絡中去釐清」,多數暴力,更是觀感問題,不同的人面對著相同的語境,肯定會釐清出不同的脈絡出來。舉個例子來說,舉著多數旗幟的一方,多半不會認為自己有任何暴力行為 (言語的暴力也算是一種)。
也因此,「說是『黑米站方確實是曾經運用其權威的身份,逼走使用者』,相信不只是我,很多人應該都難以同意才是」這句話其實是廢話,當多數暴力發生時,當然多數人不會承認有這樣的暴力現象。這裡所謂不會承認的「多數人」,指的是「會出聲」的多數人,而通常這些會出聲的多數人,也就是施行多數暴力的那些人,要不然怎麼會發生多數暴力呢?又,這裡所謂的「會」出聲是個雙關:既指願意出聲,也指有能力舌戰群雄,讓聲音透出來。
不過,身為這個平台的擁有者 (非必然是社群/言論的管理者),在法律規範下,葛力有權利作任何他想要做的事,包括逼走他不喜歡的人。我也從未曾見過葛力宣稱黑米是「公平的公正平台」,所以我在前文也特地地沒有扣帽子,「多數暴力對公眾平台是種諷刺」一說,我並沒有與黑米連結,純粹就事論事。也就是說,在我的認知裡,黑米當然不是個公眾平台,黑米是葛力(所開的公司)的,是私人開放給公眾玩耍的平台,本來就沒有必要一定要公平、公正。
只是如果能做到公平、公正,通常來說,可以獲得更多人的認同,與「妥協」。
不幸的是,所謂的公平、公正,也是經過解讀後的結果。當發生多數暴力的吊詭時,對於獲得利益、勢力的一方,結果當然是公平、公正的;而對於被擠壓、限縮空間的另一方,則不這麼想了。
葛力是沒有「正式」要阿西放棄自己的論述立場,或是因此要求阿西離開,但「威脅」過了,我認為這種威脅,就算是種「逼迫」。前面說過,黑米是個私人平台,威脅、逼迫等手段,只要不違反國家法令,那都是葛力的權力,在黑米裡,任何人都不應置喙,唯一能做的就是走開,這也是阿西的選擇。但有這種選擇,並無法證明「威脅」並未存在過。拿果推因,這在邏輯上說不通。
若要將確實曾經發生過的「威脅」視若無睹,美化為受害方的自主選擇,抱歉我無法接受。葛力絕對有權利威脅或逼迫身在黑米的使用者,因為這是屬於他的私人平台。我也從未見過阿西或其他同情阿西的人,反對葛力的行為。但不反對,不代表這就不是種「威脅」,只是代表著,葛力有權力威脅而已。若葛力時常使用這種權力,或許黑米這類平台,可以稱之為「私眾平台」,私人給公眾玩的平台,跟公眾平台不一樣喔。
倒是看到許多旁人,為這種「威脅」美化、淡化,更舉著「公眾平台」的棋子,宣揚黑米的公正、公平。這種行為,就好像媒體一面倒地替馬英九粉飾形象,這樣的行為,令我作嘔。

補充:
大師說,「不管是在技術上、社交層次上或法律上,不能讓使用者惡搞的網路服務,就算不上好的 Web 2.0 服務。」所以我多加了一個 kuso 分類。

Upgrading to wordpress 2.1 trunk

從 clsung 那邊看到,WordPress 2.1 “Ella” 出了,想想也蠻久沒升級了,再加上是應該要處理一下 WordPress 2.0.7 解掉的 security hole,所以就來升級我的 blog 版本。
照往例一樣是採 svn update 的方法升級[1]:

先備份資料庫。
然後到主目錄下 svn update,升級到最新 trunk 版。這次我是從 r4497 升級到 r4784,差距蠻大的,
用 svn diff 檢查了一下 local modification 沒有爛掉。
用瀏覽器進管理介面,畫面顯示訊息說要 upgrade database,執行後就一切正常了。

這次的升級,應該是成功的,至少到目前為止,看起來沒什麼異狀發生。整個過程不到 5 min,簡單快速,爽。
見《Wordpress 升級到 1.5.1.3》與《升級到 wordpress 2.0.1》兩篇。 ↩

 1 2 3 4 5 6 Next