Programming with Subversion Quickstart - Direct repository access

我看到 thinkingmore 在《subversion 與 file:// protocol》提到,在 Windows 下,可以偷懶不用裝 Subversion server ,利用 file:// protocol 就可以存取專案貯藏庫 (Repository) 。在 Subversion 文件中,稱 file:// protocol 的方式為 Direct repository access (See also: Subversion Repository URLs) ,或 Local Access (See also: Local Access to the Repository)。關於這種做法,我補充一些內容。

運用訊息溝通網絡及軟體工程方法建立開放源碼專案之個人淺見

威豆兄問我「如果有一個公司希望你來參與,建立 Open Source 的軟體工程流程 你願意試試看嗎 ?」,我很誠實地回答,我不適合這工作。但威豆兄是位有心人,對 Open Source 的發展很有熱情,又說道:

我們不是要理論的人啊 ... 我們要組成能夠去實踐的團隊 !! 看到很多中小學已經有很多老師願意投入 OSS 程式開發, 但到現在還是非常沒有組織 ... 照這樣下去, OSS 永遠是 Just for Fun !! 如何成為具有關鍵性的角色呢 ? 我們期待更多有心人投入 ... by 威豆 at 2007年02月1日

於是,我也很認真的寫了這篇文章,談談我心目中的 FOSS (Free/Open Source Software) 實踐團隊,以及我是如何從經驗中擁抱軟體工程 (主要是 XP/Agile) 的。

活用 PHP5 的 magic methods - __set(), __get() and __call()

PHP5 在動態性及個體導向兩方面都做了大幅度的加強。其中 Magic methods 概念的引用,更為 PHP5 帶來許多靈活性。

本文說明如何活用 Magic methods 重整 (refactoring) 程式碼。讓 PHP 的程式碼更易於使用。主要重點在 __set(), __get() ,同時也示範了 __toString(), __isset(), __call() 的用途。

PHP 不需要另一個樣版引擎, part 2 - 補充與回應

繼《PHP 不需要另一個樣版引擎》,我再補充一些內容。

PHP 本身就是一個 SGML,XML,HTML 等 markup language document 用的解析器 (parser) ,所以就像一份 XML 文件必須標示 <?xml ?> 一樣, PHP 要求自己包含在 <?php ?> 標籤中。上文說了,這是 SGML 規範內容。儘管我們可以把 PHP 當一個純粹的程式語言,但還是要把 code 放在標籤中。這個怪僻在 Perl, Python, Ruby 中可看不到。

PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc)

前幾天我看到 phpPatterns 的《PHP and Templates》,作者舉了很多例子說明 PHP 不需要使用樣版引擎。我個人的經驗與該作者一樣, PHP 確實不需要使用樣版引擎。因為 PHP 本身就是一種樣版引擎,在樣版引擎上再加一個樣版引擎是多此一舉。

《蟲師 ~ 重い実》觀後感

動畫《蟲師 ~ 重い実 (沈重之實)》劇情中,有一顆稱為「未成之實」的稻實 (稻種) 。只要埋在土裡,周圍就會有僅限一年的豐收。代價是會奪走一名受惠者的生命。而從犧牷者的口中,會再長出另一顆「未成之實」。每當村裡歉收時,祭主就將「未成之實」植入田中,帶來一次的豐收以及帶走一名村民的生命。代代流傳,就成了「離別的收獲」傳說。

補充資料:企業應用軟體系統的開放原始碼潮流

單憑銷售軟體使用授權的方式,已不足以維持軟體公司的獲利與成長。再者,對企業而言,使用一間小公司的封閉源碼軟體也有後續維護與使用的風險。供給者與需求者雙方都在尋求對自己更有利的交易方式,交易「服務」而非交易「軟體」。

開放源碼的成功,不在其高道德理想,而在其更貼近使用者需求。

我也來看「媒體與學術間的杜正勝」

這幾天為了教育部新編《成語典》中該如何定位「三位小豬」等用語,又讓國文議題登上新聞版面。而教育部長杜正勝又一次糊里糊塗地提起油桶上火線,為著這些事辯護起來,火上加油,引來眾人一陣非議。

教育部長杜正勝昨天下午在部務會報中,對部內官員公開闡明他對成語的看法,「我是胡適的信徒,胡適文存中的八不主義,其中一個就是不用典、不用成語。」他說,「如果我是學務單位,就不會公布成語典。」 聯合報/記者薛荷玉/台北報導 2007.01.25

Regular Expression (RegExp) in JavaScript

Regular Expression (以下簡稱 REGEX) 是以一組特定字元符號描述字串樣式規則的記述語法。簡單地說, REGEX 用於表達字元符號在字串中出現的規則。舉個例子說明,在 REGEX 中,字元 '^' 放在第一個位置表示字串開頭位置,當我寫下 ^A 的記述時,便表示必須是一個開頭為 A 的字串,如 Adam,才符合此一規則。這個表達規則通常稱為 pattern 。 ECMAScript/JavaScript 以內建的 RegExp Object 提供 REGEX 功能。See also: ECMA-262 15.10 - RegExp Objects

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

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

原始動機起於我想要在每一個連結上加上「點擊即自動加入書籤」的功能。作法是為網頁上每一個連結都加上點擊事件 (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》。