無所覺的表單動作, 在使用者未察覺的情形下自動送出表單

這是本人一時興起的試驗作品,寫完之後發現... 這是「惡意」的表單動作。因為我可以在使用者毫無所覺的情形下,記錄使用者瀏覽網站的每一個動作。

原始動機起於我想要在每一個連結上加上「點擊即自動加入書籤」的功能。作法是為網頁上每一個連結都加上點擊事件 (click event) 。當使用者點擊連結時,事件處理函數會自動產生一個表單 (form) ,將連結的網址及標題 (連結標籤中的文字) 填入,再自動將表單送往 黑米共享書籤 (Hemidemi) ,即完成加入書籤的動作。整個過程中,表單是不可見及不可察覺的。瀏覽器仍然會載入連結,而使用者不會察覺到表單送出動作。

徵程式工程師,月薪六萬,每天工作16小時。你做不做?

今天看了獨孤木《我想離職 但也想當好人》一文,剛好跟我的經驗有些雷同。

我離開上一家資訊軟體公司時,用的理由基本上是獨孤木說的「擔心你健康,很怕你常時間熬夜加班,會過勞而死的母親」。另外還加上一些別的理由,例如對公司文化不適應。嘿,所謂公司文化就是唯「微軟」是從,除了 Visual Studio XXX 以外不知其他工具,除 ASP, .Net 外不知其他技術。我在《為什麼程序員不用版本控制工具?》說的就是我碰到的情形。我在 Open source 界混太久了,還真無法退化去適應這種封閉文化。

個人經驗談現實中的 SOA, part 1 - 實況, 概念與基於動態語言的實踐途徑

我目前任職於一間百貨流通業的資訊部門,在這裡資訊系統往往不能滿足業務單位,即採購、倉儲、物流、批發與門市零售等單位之需求。我注意到,儘管業務單位總是嚷著軟體不符需求,但企業資訊系統的真正問題並不是不夠,事實上是太多了。不敷業務工作需求的原因,在於資訊無法在這些資訊系統之間平順地移轉流動。每當我們試圖引入一套資訊系統以為這樣能滿足業務單位需求時,往往事與願違。現實狀況是每多一套資訊系統,業務人員就多一份電腦文書工作,這才是業務單位抱怨的事。

在 PHP 中以「中文字」為符號名稱之事項

php_syntax

在 PHP 中能否以「中文字」作為變數、常數、函數的符號名稱呢?當然可以,但現階段有些注意事項與使用障礙。本文是個人經驗,供各位參考 (對了,我個人不將程式語言視為「英文」。而那些以 a-z0-9 等字母組成的符號,我僅將其視為視覺識別符號。嘿嘿,畢竟我英語發音很差,那些字大多數是以字形識別其意的)。

演化賽局疑問~ 社會化程度愈高的個體,愈會說謊

紐約時報 (The New York Times) 2006/12/26 科學版有篇關於演化賽局的報導,這篇報導是生物學家針對生物的欺騙行為所作的演化賽局研究。報導中最引我注意之處在其指出社會化程度愈高的個體,愈會說謊。

Solitary animals may evolve to be more honest than animals that spend long lives in big societies. If that is true, then humans may be exquisitely primed to deceive.

Devious Butterflies, Full-Throated Frogs and Other Liars © 2007 The New York Times

性喜獨行的動物可能演化成比在大團體裡度過一輩子的動物誠實。果真如此,人類極可能是隨時準備說謊的老手。

紐約時報科學版 - 聯合報 2007 年1 月 8 日精選中譯 © 2007 聯合報

所謂新知識份子 (Modern Intellectual)

無意中在自由時報看到一篇讀者留書,作者名為「白麟」,文中轉述著所謂「新知識份子 (Modern Intellectual)」是:

「全部為著人民,但不跟人民在一起」。此外,德國Tuebingen大學Kotchoubey教授也稱呼這些新知識份子「在沒有風險時展現勇氣,在沒有危機中冒險,並勇敢的朝向沒有敵人的地方戰鬥著。」 除此之外,他更嘲笑這些新知識份子,「相較於蘇格拉底他什麼都知道,相較於笛卡兒他卻永遠都不會懷疑」。

Kotchoubey 的形容非常好,我一看到就想把這些句子記起來,特別是「相較於蘇格拉底他什麼都知道,相較於笛卡兒他卻永遠都不會懷疑」這句,可以做為學術警語,提醒自己不要成為這種人。

此外,我也覺得自由時報會刊載這篇投書頗不可思議。因為 Kotchoubey 所形容者也可以套用在陳水扁俱樂部的會員身上。那一群人掌握著政府權力,有何風險有何危機,卻又在權力的傘下高喊著政治迫害、新聞迫害。雖然我一直懷疑自由時報的編輯是否只喜歡挑中意的內容報導,但從他們接受這篇投書來看,或許我該修正我對自由時報的觀感。

我搜尋不到 Kotchoubey 的原文,或許 Kotchoubey 用德文寫作,而我用英文查詢,故搜尋不到。

國立圖書館不認 GNU FDL !?

我前幾天心血來潮地跑到博碩士論文資訊網,本想看看我當年的碩士論文在哪裡,結果發現竟然沒有提供電子全文下載。這可怪了,我當時明明採用 GNU FDL 授權了,為何沒有提供電子全文。於是我寫信去問,國立圖書館也很快地答覆了。

Example of Configuration Driven Development with PHP

Tags: agile-method cdd json

tokimeki 在回應《動態語言關於參數宣告的寫作風格》時提到: 所以我只要在函數內設定一個預設陣列,然後把參數陣列以及預設陣列丟進去處理就行了,傳回來就得到過濾好的參數陣列,而且保證每個參數都有值。接下來就可以對每個參數作驗證、運算等動作。 這個作法還可以按所謂「Configuration Driven Development」的概念進一步改良。 Configuration Driven Development 是以中介資料描述軟體運作時的組態,我們藉由組態內容便得以調整與協調程式運作的內容。可以參考 Steve McDuff 的這篇:《Configuration-driven development》。

Ludwig Mises 對 Karl Popper 觀感之我見

日前我在《相信我看不到的事物,除非我能證明它不存在》的回應中,針對 Karl Popper 的科學哲學理論做了一番維護。然而這個立場只在其用於自然科學領域時成立。

雖然 Karl Popper 在社會科學領域中也頗有名聲,並因著有《開放社會及其敵人》一書而常與海耶克 (Hayek) 一起被視為自由主義的代表性人物,但具體而言,其研究方法並不適用於社會科學。對於 Popper 的說法,米塞斯 (Mises) 表示 這只是語言上的詭論(Mises, 1962/1991)

JSON 的安全性

JSON 是 JavaScript 語言的子集合,在 JavaScript 中透過 eval() 喚醒 JSON object 。但 eval() 是個泛用性功能,一句不當的 eval() 操作,足以讓惡意人士在 JSON 內容中植入可執行性敘述達成破壞目的。

此安全性狀況只發生在 JavaScript 中,而其他程式語言由於語法不同兼且多數透過專屬函數編碼與解碼 JSON ,反而無此顧慮。

Markup language 對應用軟體設計工作的影嚮,以及微軟的 WPF/XAML 策略

我參加 2006年「微軟應用平台架構優化」研討會時,在《 建立新一代使用者操作經驗的 Windows 與 Web 應用程式》議程中,我寫下一句話 "Write only one Control/Model with two or more Views." 此為我對該議程內容的總結。

該議程主要介紹使用微軟的 WPF/XAML 技術開發「新一代使用者操作經驗」的應用軟體,然而我看到的只是微軟將一個舊技術按自己的策略量身打造的專有規格。我說的舊技術,是指使用標籤語言 (markup language) 設計應用軟體呈現層的方式。這句話聽來很玄,但其實早已非常普遍, HTML 就是這種技術的最佳代言人。

Web programming (in 1999)

這是我在 1999 年時為社團活動所編寫的一份技術課程講義,課程主題是「Web programming」 (原始版本)。在當時, WWW 剛走進人們的生活中不久,資訊人員還在談著 CGI ,而 Web programming 還是一個模糊的概念。

現在回頭看這份講義,像是一份歷史文件,記錄著當時人們所使用的用詞和工具。然而,工具一時的,觀念是長久的。當時所談的觀念仍然支撐著現在的 Web 環境。有時候拋開那些被高度包裝的種種 Web 開發工具與名詞,回去看看那原初的名詞與意義,反而能夠讓後進者學到純淨的知識,從零思考 web programming 的內涵。

我採用 GNU FDL ,不是「創用 CC」

本人部落格之內容,明顯標示採用 GNU Free Document License (GNU FDL) 授權條款分享,而其他部落格大多數採用 Creative Commons Attribution-NonCommercial-ShareAlike (創用CC 姓名標示─非商業性─相同方式分享) 授權條款分享。由於這兩者之內容不相容,為了避免使用者無意中觸犯著作權,我在此說明 GNU FDL 與 CC 不相容。若在採用 CC 授權條款之部落格或論壇等處轉載本人著作,須註明著作是採用 GNU FDL 授權,否則將侵害本人之著作權。

我曾在《Copyleft 與 GNU Free Document License 在部落格寫作上的適用性,兼論 Creative Commons 與 Copyleft 的相容性》討論過這兩者的不同。在 CC 中也僅有 Creative Commons Attribution-ShareAlike (創用CC 姓名標示─相同方式分享) 之授權形式符合 Copyleft 精神;我最不樂見者,則是加上「非商業性」用途限制的 Creative Commons Attribution-NonCommercial-ShareAlike (創用CC 姓名標示─非商業性─相同方式分享) 。雖然在 GPL-ism 與 BSD-ism 之間,存在著是否應該限制以相同方式分享的歧異,但這僅是道德與哲學的問題。「非商業性」之用途限制,則明顯偏離自由或開放著作權的精神了。

釐清 MVC 與 Framework 的觀念

若是 Web 應用, 大可不必採用 MVC, 招致執行效率差程式碼分散的結果 相反的, 也有工程師告訴我使用 MVC 對於長期維護程式增減功能有很大助益

據了解使用 MVC 程式的行數的確會增多; 但也會有助健全的程式開發與便利維護程式

由於許多 framework 都把 MVC 列為特點,因而導致初學者把 MVC 和 framework 這兩件事混淆在一起,然而這兩者是不同層次的事物,甚至彼此無關。

夏目寓言, 夏目看到一隻貓長著兩條尾巴

這是一篇寓言,起因是我近日看的一套漫畫,「綠川幸」著作的《夏目友人帳》(台灣由東立出版社代理翻譯中文版,中文版書名《妖怪聯絡簿》) 。看漫畫是件有趣的事,我在閱讀時常常會假想自己若是書中一份子,又該如何扮演我的角色,又會如何與書中角色互動。我看完《夏目友人帳》後,設想自己是書中的角色,碰到主角「夏目」時會跟他說些什麼。我所假想的內容,便成為這篇寓言了。