日前我在《相信我看不到的事物,除非我能證明它不存在》的回應中,針對 Karl Popper 的科學哲學理論做了一番維護。然而這個立場只在其用於自然科學領域時成立。
雖然 Karl Popper 在社會科學領域中也頗有名聲,並因著有《開放社會及其敵人》一書而常與海耶克 (Hayek) 一起被視為自由主義的代表性人物,但具體而言,其研究方法並不適用於社會科學。對於 Popper 的說法,米塞斯 (Mises) 表示 這只是語言上的詭論
(Mises, 1962/1991)。
JSON 是 JavaScript 語言的子集合,在 JavaScript 中透過 eval() 喚醒 JSON object 。但 eval() 是個泛用性功能,一句不當的 eval() 操作,足以讓惡意人士在 JSON 內容中植入可執行性敘述達成破壞目的。
此安全性狀況只發生在 JavaScript 中,而其他程式語言由於語法不同兼且多數透過專屬函數編碼與解碼 JSON ,反而無此顧慮。
我參加 2006年「微軟應用平台架構優化」研討會時,在《 建立新一代使用者操作經驗的 Windows 與 Web 應用程式》議程中,我寫下一句話 "Write only one Control/Model with two or more Views." 此為我對該議程內容的總結。
該議程主要介紹使用微軟的 WPF/XAML 技術開發「新一代使用者操作經驗」的應用軟體,然而我看到的只是微軟將一個舊技術按自己的策略量身打造的專有規格。我說的舊技術,是指使用標籤語言 (markup language) 設計應用軟體呈現層的方式。這句話聽來很玄,但其實早已非常普遍, HTML 就是這種技術的最佳代言人。
這是我在 1999 年時為社團活動所編寫的一份技術課程講義,課程主題是「Web programming」 (原始版本)。在當時, WWW 剛走進人們的生活中不久,資訊人員還在談著 CGI ,而 Web programming 還是一個模糊的概念。
現在回頭看這份講義,像是一份歷史文件,記錄著當時人們所使用的用詞和工具。然而,工具一時的,觀念是長久的。當時所談的觀念仍然支撐著現在的 Web 環境。有時候拋開那些被高度包裝的種種 Web 開發工具與名詞,回去看看那原初的名詞與意義,反而能夠讓後進者學到純淨的知識,從零思考 web programming 的內涵。
本人部落格之內容,明顯標示採用 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 之間,存在著是否應該限制以相同方式分享的歧異,但這僅是道德與哲學的問題。「非商業性」之用途限制,則明顯偏離自由或開放著作權的精神了。
若是 Web 應用, 大可不必採用 MVC, 招致執行效率差程式碼分散的結果
相反的, 也有工程師告訴我使用 MVC 對於長期維護程式增減功能有很大助益
據了解使用 MVC 程式的行數的確會增多; 但也會有助健全的程式開發與便利維護程式
由於許多 framework 都把 MVC 列為特點,因而導致初學者把 MVC 和 framework 這兩件事混淆在一起,然而這兩者是不同層次的事物,甚至彼此無關。
這是一篇寓言,起因是我近日看的一套漫畫,「綠川幸」著作的《夏目友人帳》(台灣由東立出版社代理翻譯中文版,中文版書名《妖怪聯絡簿》) 。看漫畫是件有趣的事,我在閱讀時常常會假想自己若是書中一份子,又該如何扮演我的角色,又會如何與書中角色互動。我看完《夏目友人帳》後,設想自己是書中的角色,碰到主角「夏目」時會跟他說些什麼。我所假想的內容,便成為這篇寓言了。
在進行任何程式的設計工作之前,我們必定已經知道程式的輸出入結果,亦即我們已經確知當使用者輸入什麼資料後,程式應該輸出什麼結果。更進一步說,我們已經知道使用者將如何使用這個程式,諸如使用者在操作過程中會做什麼事,而程式對操作內容應該如何回應等等。這段理所當然到近乎廢話的敘述,卻是所有軟體設計人員惡夢的開始,也是所有軟體工程實踐作法的起點。在 eXtreme Programming 中,我們稱這些內容為「故事 (story)」;在 RUP 中稱之為「使用案例 (use case)」;在 Microsoft Solution Framework 中稱之為「情節 (scenarios)」。我個人偏好使用「故事」一詞,因為它不像術語。既然故事是設計人員惡夢的開始、設計工作的起點,那麼就先說一個故事。
欲建立一個運動會報名表單,一位選手可報名參加一個以上的項目 (如100公尺、200公尺等) ,資料庫表格應如何設定?
我們通常不會在一個選手表格中建立多個比賽項目的關聯欄位,像 game1, game2, game3 這種欄位設置就不太適當。第一、如果多數選手只參與一個項目,則剩下的 game2, game3, etc. 欄位就閒置了,佔用磁碟空間。第二、限定了可參加比賽項目數的上限,如果我只定義到 game3 ,則一位選手最多只能參加 3 個比賽項目。第三、只能用複雜且僵化的查詢語句,例如 SELECT * FROM "Players"
INNER JOIN "Games" ON "Games".id = "Players".game1 OR "Games".id = "Players".game2 OR "Games".id = "Players".game3; ,欄位愈多則 OR 條件 串的愈長。當然,如果程式需求限定每位選手至少參加一個項目,最多參加 2 個,那麼用這種方法倒也無妨。
php_syntax
HTML 表單傳送給 PHP 的資料, PHP 會自動儲存在全域陣列中,例如以 POST method 送出的表單資料便儲存在 $_POST 全域陣列,以 GET method 送出的表單資料儲存在 $_GET 全域陣列。如果我們為表單元件命名 (指派了 name 屬性) ,則可以表單元件名稱為陣列鍵值。例如表單有一個名稱為 "userAddress" 的文字輸入欄位 <input name="userAddress" type="text"/> ,且此表單以 POST method 送出,則 PHP 中可以 $_POST['userAddress'] 取得使用者在此欄位中輸入的資料。上述是 PHP 處理表單資料的基本概念。
前幾天看到《等待新漢碼》的內容,個人心中感慨萬千。
聯合報日前報導權威學術期刊《Science》刊載我國中興大學生化所教授張邦彥投稿到《Cell》期刊的論文涉嫌造假。聯合報,民國九十五年12月21日A7版訊 讀者質疑論文中的數據圖片是經變造過的。張教授事後也承認圖片製作時有所疏失,學生直接編輯原始圖檔導致圖片有編修痕跡。
事件發展如何,尚有待觀察,但這事件只是冰山一角罷了。雖然這個事件是自然科學的研究論文,但國內的社會科學研究中,其實也少不了這類故事。
前幾天晚上我發了一篇文章在部落格上,當時我用 Firefox 觀看很正常。隔天我在公司用 IE6 觀看那篇文章時, IE6 意外出現「MSHTML.DLL 執行錯誤,瀏覽器即將關閉」的錯誤訊息。後來我試了許多電腦,無一倖免, IE6 都會當掉。
在《NV社: 萬物的尺度》一文中介紹了《萬物的尺度》這本書。從書中可以看出,仍然有些科學家未能區分客觀尺度與主觀感覺的差別。主觀性概念不可能界定出客觀尺度。所謂...共同貨幣歐元,就是公制的直接繼承人。近來似乎價格終於成為萬物的尺度了
。,認為價格具有客觀性更是經濟學中因為方法論錯誤而產生的錯誤見解。
所謂 "有餘與不足" ,是以 "所欲" 分,不以 "量" 分。欲不滿者,金盈堂室猶不足;欲寡者,食僅簞瓢或有餘。是以,我們絕不能以客觀上、物理上的尺度量值去區分 "有餘" 與 "不足"
「天之道損有餘而補不足」在經濟思想上的誤解
將不具客觀性的價格視為客觀尺度,反而形成了橫徵暴斂的人為惡行。部份科學家忽視了天地萬物每個個體的差異性,也忘了人只能透過感覺器官接收外部資訊,而感覺器官是不靈敏且不準確的先天限制。該書作者的總結反而更接近真實:...無關個人的度量也是人類幻想、人類熱情,以及在特殊地區挑選特殊人物等的產物。所以追根究底,古希臘哲學家羅塔哥拉斯的那句名言果真沒錯:『人是萬物的尺度。』
。