2006 年乙級電腦軟體設計技術士應考記

隔了一年後再次應考乙級電腦軟體設計技術士 C++ 職類,依然歃羽而歸,真是令我情何以堪。好在學科成績可以保留三年,明年再挑戰吧。雖然已經是第三年進行術科檢定了 (第一年我沒考) ,但考題內容似乎還不是很完善,監考老師在檢定中途陸續修訂了數次題目的內容,多少令應檢者有些困擾。

桜蘭高校ホスト部 最終回 灰姑娘の逆襲

TV 動畫桜蘭高校ホスト部 (櫻蘭高校男公關部) 的漫畫原著還在慢慢拖著劇碼, TV 版卻要結局了,於是來了個原創結局。有鑑於這是個女權高漲的時代而且原著還是少女漫畫類,於是來了個灰姑娘逆襲版結局。說實話,這個結局挺有趣的 XD TV 版製作榎戸洋司慣用隱喻手法搞 kuso ,讓我分鏡說明這結局是如何逆轉灰姑娘的故事吧。

學習《老子》,當從科哲觀與方法論著手

Dear Chiang

老子道德經乃影響法家深遠之重要典籍,本欲瞭解其內涵,但卻不知如何切入,您在文章中提及,應先從『道經』部分著手,在此需請教的是,我應如何學習到正確的道經內涵,學習道德經是否也有一套學習方法論可加以運用呢?

用現代研究方法的術語來說,道經是科學哲學觀及方法論,德經是研究方法與實踐。韓非解老,先解德經後解道經,蓋法家重實務,且法家的科哲觀與道經已有所偏差。我以為法家思想,就是在對人心的所欲以及對道的認識這兩方面,走叉了路。例如我在「『天之道損有餘而補不足』在經濟思想上的誤解」一文中,便認為若從統計實證和歷史主義的方法論,則《老子》將成為國家權力高度涉入的法家主張。一解之差,道法兩家。所以我主張必須先從科哲觀與方法論著手。

點銅成金,給五角找一元

新台幣發行史頭一遭 ~ 貴金屬大漲 1元銅板身價 1.26 元

記者 呂郁青/台北報導

新台幣發行史上第一遭,收集破銅爛鐵的業者及集郵社,最近就掀起一股收集五角跟一元硬幣熱潮,因為一元硬幣材質的價值已達 1.26 元。

...(中略)

鋼鐵運送與熔燽的成本不到百分之十,熔掉一元還是有兩位數比率的獲利,熔掉五角獲利最豐富,也就是說,現在的一元硬幣有 1.26 元的身價,五角則有 0.93 元的身價。

《聯合報 中華民國九十五年五月十八日 A6 版》訊

拿鈔票擦屁股。不是錢多,是通貨膨脹

辛巴威通膨破 900% 全球最慘 ~ 兩張衛生紙 辛幣逾四百,不如拿紙鈔擦擦划算

編譯 陳宜君/綜合外電報導

在非洲國家辛巴威首都哈拉雷的一家超市,衛生紙要價辛幣 417 元,這還不是一整捲的價格,而是以兩張為單位的衛生紙單價。買一整捲得花辛幣十四萬五千七百五十元,約相當於新台幣 22 元。...

辛巴威的物價每隔三或四個月就上漲一倍,雖比不上 1923 年德國威瑪政權時期每月增加三倍的歷史紀錄,但已是目前全球惡性通貨膨脹最嚴重的地區。

...(中略)

有人開玩笑,在辛巴威使用衛生紙,不如用五百元紙幣擦擦划算,五百元是辛巴威目前面額最小的紙鈔。...

辛巴威自 2001 年起就深為經濟大幅衰退和通膨率飆高所苦... 民眾不願把錢放在銀行,而是投資在玉米粉、蔗糖等能確保值的物資上。

《聯合報 中華民國九十五年五月三日 A14 版》訊

承上之引文,辛巴威政府所採取的兩種政策為:

  1. 總統抓緊權力,將振興經濟的責任交給由親信組成的國家安全會議,並安插軍方與情治官員出任文職閣員,確保糧源、徵稅等要務。
  2. 為保政府部門能夠運作,並讓人領得到薪水,政府大肆印製鈔票,以免腐惡化,但此舉反使通膨越演越烈。

從 XML 產生 JSON 資料及方法的封裝

在「JSON 速寫」中曾介紹過運用 JSON 可以輕巧地達到和 XML 同等的中介資料交換功能。然而 JSON 也和 XML 相同,它們儲存/封裝的只是資料和結構,並不包含操作方法 (method) 。雖然熟悉 JavaScript 的人知道可以直接將 method 定義在 JSON 資料中,且 JavaScript 可以接受。但 JSON 的規範並不允許這樣做,而且也只有 JavaScript 能夠理解定義在 JSON 資料中的 method ,其他程式語言並不能理解 (除非其他程式語言支持以 JavaScript 做為內嵌語言) 。

95年9月第4週週記

天氣: 晴時多雲。

  1. 泰國發生軍事政變。因為泰國總理貪污,所以貪污是不行的。
  2. 匈牙利總理為掩飾政績不佳而說謊,引起民眾上街抗議發生街頭暴動。所以說謊是不對的。
  3. 國內百萬倒扁圍城活動和平結束,警方估計約有32萬人以上參與。
  4. 台南倒扁靜坐活動發生暴力事件,一倒扁人士駕車離開場地時,遭多位挺扁民眾持安全帽等物品擊打車身,擋風玻璃嚴重破損。民視新聞報導,為避免再度發生這類事件 (註: 防止挺扁民眾攻擊倒扁民眾) ,地方警局調動大批警力於活動場地戒護,將導致警力不足以維持日常治安工作。
  5. 旅美投手王建民,23日登板主投,洋基以 4:1 勝魔鬼魚,王建民再添勝場數,18勝追平大聯盟亞洲投手勝投紀錄。

掌握 JavaScript 的「封裝」特性, part 2

續前文「掌握 JavaScript 的封裝特性, part 1」。 第一部份已經說明了 ECMAScript 封裝特性的大部份內容。大多數情形,我們都是按照第一部份的範例程式的格式撰寫。將 private member 寫在 function 定義之中,將存取 private member 的 public method 一同寫在 function 定義之中。至於其他 public member/method 則藉由 prototype property 寫在 function 定義之外 。 然而 ECMAScript 的語法提供我們更大的運用彈性。

掌握 JavaScript 的「封裝」特性, part 1

JavaScript/ECMAScript (配合 ECMAScript Language Specification - Standard ECMA-262 - 用語,以下稱 ECMAScript) 是一種個體導向程式語言 (object-oriented programming language, OOPL) ,但並不是一種基於類別的個體導向程式語言 (class-based OOPL) (ECMA-262 section 4.2 "Language Overview")。只接觸過 C++, Smalltalk, Java, C# 這些程式語言的 programmer ,一開始多少會因 ECMAScript 沒有 class, public, protoected, private 這些關鍵字而困惑。不過 ECMAScript 仍然支援繼承 (inheritance) 、封裝 (encapsulation) 、動態連結 (dynamic binding) 這三種特性。

經典動畫「攻殻機動隊 STAND ALONE COMPLEX」

攻殻機動隊 STAND ALONE COMPLEX 封面©Production I.G.

看了那麼多動畫,「攻殻機動隊 STAND ALONE COMPLEX」絕對在我的經典名單之中。攻殻機動隊 TV 版目前有三部,第一部是「攻殻機動隊 STAND ALONE COMPLEX」,以後都簡稱「攻殻機動隊 S.A.C.」,第二部是「攻殻機動隊 S.A.C. 2nd GIG」,第三部則是不久前開始放送的「攻殻機動隊 S.A.C. 3rd Solid State Society」。因為某種不可說的奇蹟,所以我有幸搶先看到第三部第一話。

攻殻機動隊 S.A.C. 堪稱先鋒級前衛作品,作畫、音樂、劇情皆具一流水準。劇情中深刻地描寫了 A.I. 和資訊網路發展對人類社會的影嚮,其中最有趣的觀點,就是所謂的「Stand Alone Complex」現象,所謂「沒有正本的複本」。這似乎是自創名詞,但就概念而言,在社會科學研究中,這「Stand Alone Complex」現象是人類文化發展中的神秘關鍵。生活中,到處都充斥著說不出「正本」為何的規範,例如私有財產權的起源,又如文字、語言的起源等等。但又不可否認這些事物對人的行為所產生的制約與影嚮力。甚至在歷史上,由於不了解這種現象,又想要掌握這些事物的 power ,而發生了許多極具破壞性的社會活動,例如共產主義、法西斯主義。一般人對動畫有種給「小孩子看的」刻版印象,但像 攻殻機動隊 S.A.C. 這類動畫,如果觀眾不具有足夠的學識背景,又如何能體會他們的內涵呢?小孩子是看不懂的。有著如此豐富的故事背景,再加上優秀的作畫與配樂, 攻殻機動隊 S.A.C. 絕對是動畫迷公認的經典作品。

Framework of PHP5

Tags: framework agile-method

接觸 PHP 多年,常常有人向我請教 PHP 和 ASP.Net 的不同。基本上, PHP 和 ASP.Net 是不一樣的東西,不能放在一起比較。因為PHP 是一個程式語言 (programming language) ,而 ASP.Net 是一個 framework 。有人說用 ASP.Net 開發 Web 程式很快,可是 PHP 很麻煩。這說法並不正確,如上所言,這兩者是不一樣的。 PHP 雖然和 Web 程式的開發工作緊緊聯繫,但它依然是一個程式語言, programmer 仍然需要處理一些 HTTP/CGI 的細節。在「程式語言」這個基準下,如果沒有 ASP.Net 這個 framework ,單單使用 VB, C# 這些程式語言來開發 web 程式,那可比 PHP 要難上好幾倍了。

四無陳水扁,拿什麼教育他的外孫?

施明德倒扁活動,稱陳水扁是「禮義廉,無恥」。我說啊,這還真是手下留情,抬舉陳水扁了。陳水扁是無禮、無義、無廉、無恥,四無啊。

「學校教要誠實」,可是陳水扁教「做官要為長官說謊」。

記得聯合報有篇社會新聞,標題寫著「學校教要誠實,子證母撞人」聯合報民國95年8月25日A8版訊,記述一名婦人開車載兒子,路上擦撞機車後逃逸。事後兒子向警方作證時表示,當時就告訴母親撞到人了,婦人責怪兒子多嘴,可是兒子說「學校教我們做人要誠實,我實話實說。」

反觀陳水扁,在他展開迷航之旅回來後,還大言不慚地教導人們作官的人有為長官說謊的權力。當時被他害慘的駐美代表程建人,日前退休時意有所指地說,作官是不能說謊的。陳水扁日前也承認以不實發票申報國務機要費。學校教要誠實,陳水扁教可以說謊。我很想請教一下陳水扁,他是拿哪一套標準教育他的兒子、女兒、女婿和外孫?我父親當年沒有用陳水扁的超低道德標準來教養我,我將來也絕對不可能以那種超低標準來教我兒子啦。用那種超低道德標準來教養後代,還有未來可言嗎?如果陳水扁聲稱自己是「本土政權」的代表,按照他可以為長官說謊的邏輯,那些「本土政權」人士講的話,又有幾分是可信的?若要請以前100分的陳水扁立委來評論現在這個18分的陳水扁,大概也要說「這個人沒救了」。

Explain Inline Function in C (GCC compiler)

在 C++ 剛出現的時候,大多數 C++ compiler 引入了一個新關鍵字 'inline' ,用於解決個體行為 (methods of object) 的部份效率瓶頸。直到 ISO C99 時,才正式將 inline 定於規範之中。不過多數的 C/C++ compiler 只將 inline 用於 C++ program 中,並未延伸到 C program (*1)。'inline' is a keyword of ANSI/ISO C99. Some C/C++ compilers do not allow to use this in C program. '__inline__' is a keyword of GNU GCC. Some compilers use '__inline'. )。 GCC 最晚在 2.9 版 ,為 C program 加入了一個擴充關鍵字 '__inline__' (*2),使得 programmer 可以在 C program 中使用 inline function 。請參考 GNU GCC Info document setcion 'An Inline Function is As Fast As a Macro'. 說明文件意簡言骸,我將配合程式碼說明 inline function 在 C program 中運作的相關細節。

台灣資訊軟體業缺乏資深programmer

七月底參加2006IBM開發者大會時,有個議題是「軟體前景大師談」,對一個我已知的事實,提出了一份數據。資訊軟體先進國家,如美、歐、印度、乃至日、韓,資訊軟體與資訊硬體的產值比平均是 2: 1 ;臺灣的情形卻是 1: 15 ,不但相反,而且是數倍大的落差。從這個數據來看,則臺灣的資訊軟體業在全球的地位,只能排在第三流以後。

How to use MinGW GNU GCC and with PSPad

"MinGW" 是取 Minimalist GNU for Windows 計劃之意,其目標為提供一個可在 Win32 平台上開發 Win32 native code 的 GNU GCC tools ,而非提供 Unix 程式移植到 Win32 平台之用,此即為其 Minimalist 之意。 2000年時,我曾在「安裝 GCC 2.95/Mingw32」說明過 MinGW 。不過那篇文章中的資訊已經過時了,現在 MinGW 的正式網址為 http://www.mingw.org/

Bug 數量與軟體品質控制

我日前看了「那些 Bug 是怎麼找來的?」這篇文章,裡面提到用 Bug 數量作為軟體品質的管理指標。管理學有云「可量化者方能管理」,可量化者就是指標項目,諸如一小時的產品生產數量、一天完成的工作項目等等。然而,錯定指標的例子也比比皆是。在軟體工程上,最經典的採用不適當管理指標的案例,就是用「程式行數」來管理工作進度了。就我所知,在理論或實務上,都不是用 Bug 數量作軟體品質管理的指標。此處所說的軟體品質管理,指的是開發過程中的品質管理,交貨時,理論上是無 Bug 的。既然選擇了不適當的指標項目,自然就產生「Bug 多,品質好;Bug 少,還是品質好!」這種無助於管理的結論。