To Ruby From PHP, 中譯
PHP 普遍應用於 web 應用軟體環境中,但若你想用 Ruby on Rails 或只是想找一個更適於處理廣泛用途的語言, Ruby 值得看看。
PHP 普遍應用於 web 應用軟體環境中,但若你想用 Ruby on Rails 或只是想找一個更適於處理廣泛用途的語言, Ruby 值得看看。
匿名遞迴函數在 JavaScript 中之實踐途徑。所謂遞迴函數即函數在其內部調用自己的函數,為了能夠自我調用,我們通常會為函數命名以便以名稱調用之。然而在某些語言中,其語言特性足以實踐匿名函數之遞迴。
在 JavaScript 中欲實踐此技法,須具備三個 ECMAScript/JavaScript 知識基礎:一、理解什麼是 Function object 及匿名函數;二、理解 operator()
的用法;三、理解如何以 Function.call()/Function.apply()
改變 this 的指涉對象。
我在前文《The practice of anonymous recursion function in JavaScript,》寫完之後,又到 Google 找尋是否有其它解法,結果讓我找到用 callee 的作法。這作法更簡單。
中華郵政的官股蕫事及主管機關交通部,為了配合政府的「正名」政策而開董事會議修改組織名稱,中華郵政員工為了維護公司的「主體性」並避免此一措施所帶來的無謂費用及名譽損失,怒踹會議室大門。奈何那些喪失了經營倫理、忘卻了對員工及股東之經營責任的經理階層,偷偷摸摸地更換會議地點,最後還是通過了改名決議。
從此一事件我看到了當前政府之「正名」政策,端得是「浪費無罪,正名有理」。
這是一個使用在本部落格的技巧,用於因應樂多部落格系統之限制。
傳統上,我們執行 JavaScript 程式的方式是靜態的,在 HTML 文件中以 <script type="text/javascript" src="example.js"></script>
的敘述載入並執行外部 JavaScript 程式。若我們無法使用上述方式時,就需要動態載入與執行。另一種需要動態載入與執行 JavaScript 程式的時機為,存在幾個相當龐大的 JavaScript 程式但不全部都用得到的情形,為了降低瀏覽器載入的時間,此時我們需要依某些條件決定那些 JavaScript 程式需要載入。
今天在 IBM developerWorks 的 Open Source 專區中看到《PHP development within Eclipse》這一篇文章。看了一下,原來在介紹 Eclipse 中的 PHP IDE project 。文章中使用的版本和我現在用的版本一樣 (去年12月釋出) 。我使用 PHP IDE project 後,覺得跟 Java/CDT 比起來功能還是很陽春,編輯功能也不算順手。所以目前我仍然使用 PSPad 作為程式編輯器。
先前我在《Bug 數量與軟體品質控制》的回應中提到:從 PM 的角度來看,以使用者和開發者都認可的 use case 為準,必須在此 use case 的範疇下無 bug 才能交貨。不過我觀察國內的 case 好像有個現象,使用者不參與 use case 內容的,彷彿使用者跟這軟體沒關係。依據開發者單方面規劃的 use case 來撰寫 test case 。這種現象好像很正常,但我個人總覺得哪裡不對。
就讓我們這些 programmer 承認吧,我們在進行軟體專案時,口中有 user ,但心中無 user 。使用者總在有意無意之中被排除在外。其實使用者也很關心如何能評量委託他人開發的軟體是否符合需求。例如我現在服務的百貨零售業,前一陣子就為了公司的零售與進銷存系統到底有沒有達到預期目標 (事關付款問題) ,而跟廠商「飛x 高」打了場官司。
到底在軟體工程方法中,有沒有關於甲方 (使用者) 的部份呢?褐雨燕學習筆記 中提到了 CMMI 的部份,規範於「CMMI-ACQ(CMMI for Acquisition Organizations」之中,雖然目前還僅僅在草案階段。
前幾天我在寫用 JavaScript 自動轉換 Tag 註記的工具時,發現 Opera 瀏覽器在操作 Unknown HTML 元素 (即自定元素) 的 DOM 方法中有 bug ,不能正確取代或插入其他節點在 Unknown HTML 元素之節點後。如果用取代方法 (replaceChild
) 甚至會切斷 DOM 結構。
我設置了一個最簡單的測試環境,使用三種瀏覽器: MSIE 6, Firefox 1.5, Opera 9.1 (build 8679) 測試操作取代及插入動作。 MSIE 和 Firefox 都如預期般正確操作,唯 Opera 有錯誤。
日前聯合報報導台大李嗣涔要求鎖住其指導學生之碩士論文十年,不准他人閱覽 (鎖學生論文10年 惹爭議)。李嗣涔表示願意對論文內容有興趣的人發表演講,一起討論,但不包括有競爭威脅的人。說來說去,不過兩字:「名」、「利」罷了。
在我看來,從事研究工作者不外兩種人:求名利者,求知識者。而應不應該鎖住論文內容,也要從這兩種立場去談。
求名利者,為了名利歸於己,就必須排除競爭者,不能讓別人比自己早一步找到答案。他們發表論文與演講之目的,除藉此收取費用外,更要提高自己的名聲,才能奠定將來獲利的基礎。此外之任何可能對他人有利之途徑皆須排除。對他們而言,鎖住論文是利己的理性行為。
求知識者,但以追求答案為目的,為此可以不拘手段。為了儘早得知答案,甚至讓別人幫他們找到答案,他們反倒希望有更多人一起來競爭。儘可能地利用別人,以便早一天知道答案。對他們而言,鎖住論文是不利己的不理性行為。
我以為從一般認知中,求知識者可稱「學者」,求名利者僅能稱「發明者」、「研究者」。同樣在一般認知中,學校是學者的活動領域,營利性研究機構是發明者的活動領域。倘若李嗣涔對其研究內容如此念念在茲,不妨到營利性研究機構去做,名正言順。
我看到 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 概念的引用,更為 PHP5 帶來許多靈活性。
本文說明如何活用 Magic methods 重整 (refactoring) 程式碼。讓 PHP 的程式碼更易於使用。主要重點在 __set(), __get()
,同時也示範了 __toString(), __isset(), __call()
的用途。
繼《PHP 不需要另一個樣版引擎》,我再補充一些內容。
PHP 本身就是一個 SGML,XML,HTML 等 markup language document 用的解析器 (parser) ,所以就像一份 XML 文件必須標示 <?xml ?> 一樣, PHP 要求自己包含在 <?php ?> 標籤中。上文說了,這是 SGML 規範內容。儘管我們可以把 PHP 當一個純粹的程式語言,但還是要把 code 放在標籤中。這個怪僻在 Perl, Python, Ruby 中可看不到。
前幾天我看到 phpPatterns 的《PHP and Templates》,作者舉了很多例子說明 PHP 不需要使用樣版引擎。我個人的經驗與該作者一樣, PHP 確實不需要使用樣版引擎。因為 PHP 本身就是一種樣版引擎,在樣版引擎上再加一個樣版引擎是多此一舉。
單憑銷售軟體使用授權的方式,已不足以維持軟體公司的獲利與成長。再者,對企業而言,使用一間小公司的封閉源碼軟體也有後續維護與使用的風險。供給者與需求者雙方都在尋求對自己更有利的交易方式,交易「服務」而非交易「軟體」。
開放源碼的成功,不在其高道德理想,而在其更貼近使用者需求。
這幾天為了教育部新編《成語典》中該如何定位「三位小豬」等用語,又讓國文議題登上新聞版面。而教育部長杜正勝又一次糊里糊塗地提起油桶上火線,為著這些事辯護起來,火上加油,引來眾人一陣非議。
教育部長杜正勝昨天下午在部務會報中,對部內官員公開闡明他對成語的看法,「我是胡適的信徒,胡適文存中的八不主義,其中一個就是不用典、不用成語。」他說,「如果我是學務單位,就不會公布成語典。」 聯合報/記者薛荷玉/台北報導 2007.01.25
Regular Expression (以下簡稱 REGEX) 是以一組特定字元符號描述字串樣式規則的記述語法。簡單地說, REGEX 用於表達字元符號在字串中出現的規則。舉個例子說明,在 REGEX 中,字元 '^' 放在第一個位置表示字串開頭位置,當我寫下 ^A
的記述時,便表示必須是一個開頭為 A
的字串,如 Adam,才符合此一規則。這個表達規則通常稱為 pattern 。 ECMAScript/JavaScript 以內建的 RegExp Object 提供 REGEX 功能。See also: ECMA-262 15.10 - RegExp Objects