2005/10/27

軟系統的硬工程

「軟系統的硬工程」written for 國科會科普獎,獎項的競爭者比較少,這篇文章進了複審但沒進決審,我還是寫得不夠「科普」,決審名單中,生物科技這個領域的文章比較多,評審顯然比較青睞這個領域的文章,或者評審多是這個領域的專家。

---------------
軟系統的硬工程

一般人看到軟體這個名詞,都會注意「軟」這個字,軟也可以說是有彈性的意思,使用者都希望能有一種超級軟體,幫助他們工作更有效率,而且能夠彈性地改變,符合不同時間狀況下的需求。但電腦是一種非常笨的機器,它由0與1組合而成的,說一步做一步,能在電腦上運作的軟體,都是程式設計師一步一步地撰寫程式,預先告訴電腦所有可能發生的正確與錯誤情況,與其對應的處理方法,否則電腦就會當機或是由系統告訴使用者「出錯了,我不知道下一步要怎麼辦!」因此開發軟體系統的時候,得配合工程管理的分析流程與設計方法,這樣才能保證軟體系統的品質優良可靠好用,軟體系統也有硬式工程開發管理的一面。


資訊科技工業革命

軟體系統是使用者使用機器的介面,透過不同的軟體系統,可以幫助使用者「自動化」處理許多事務,而自動化的用意跟十八世紀工業革命的初衷如出一轍,可靠有效的自動化機器取代了人力,有效地提高了生產力與產品的品質,所以當時出現了很多機械技師,除了開發新式機器外,還得維護並照顧這些機器,它們既不會「罷工」也不會「怠工」,是老闆眼中的最佳員工。

自從電腦出現後到現在,已經深入到每一個企業甚至家庭當中,程式設計的技術也不像第一次工業革命的時候一樣,只有機械工程技師才有機會可以接觸到這些機器,便宜的電腦就在每一個人家裡的桌上,每一個對程式設計有興趣的人都有機會成為程式設計師,我們正站在自二十世紀肇始的資訊科技工業革命浪潮當中,在「人人都能寫程式、大家都能做系統」的情況下,要製作一個品質優良、穩定可靠、功能完備的軟體系統,就是另一個需要達成的目標。

電腦是採取「垂直階層」分工設計架構的策略,從硬體的核心開始,上一層的作業系統負責處理所有硬體的溝通介面,並提供上層的系統程式呼叫的API(Application Programming Interface、應用程式介面),但由於這些API會隨作業系統甚至是程式語言的改變而不同,這個問題造成軟體系統開發前,要先評估並慎選作業系統與程式語言開發環境,如此才能夠讓這些軟體系統上線運作後,無痛地執行維運與升級的任務,所幸目前的IT(Information Technology、資訊科技)領域技術大廠都有共識,朝向解決這個問題的方向努力當中,例如昇陽的JVM(Java Virtual Machine、爪哇虛擬機器)與微軟的 CLR(Common Language Runtime、通用語言架構),這些技術都適當地將下層的作業系統封裝起來,對上層應用程式提供統一的API介面,因此有效解決了不同作業系統或程式語言的問題。

在垂直階層的電腦基礎上,一部電腦裡同時運作資料庫跟應用程式伺服器這兩個複雜的軟體系統,會發生系統負荷過重的缺點,因此產生了「水平階層」分散式處理的架構,也就是目前最熱門的Multi-Tier Architecture(多層架構),以3-Tier為例,使用者端的介面程式位於使用者的電腦上,透過網路連接應用程式伺服器,然後再連接另一台資料庫主機,而伺服器都可以用平行擴充的 Clustering 叢集方式,提供大量使用者同時連線使用時的高系統負載用量。在多層架構運作下的軟體系統架構,既有效又可靠,還附加了安全性與維護管理的功能,可說是既節省成本,又保有未來擴充性的一種解決方案,這也是目前公認最適當的軟體系統架構。


梓人建構師

多層架構與實作技術的規劃分析問題,都得要由Architect(系統建構師)來做判斷與決策,這也是一位程式設計師,進階到系統分析師後,最後夢寐以求的一項工作,目前最有名氣的就是微軟的首席建構師比爾蓋茲。唐代的柳宗元,撰寫了一篇文章「梓人傳」,非常貼切地描寫了一位房屋建築師的工作寫照,軟體業界的建構師這個名詞也是從建築業界借來的。

文章的第一段中,梓人就說「吾善度材。視棟宇之制,高深圓方短長之宜,吾指使而群工役焉。舍我,眾莫能就一宇。故食於官府,吾受祿三倍;作於私家,吾收其宜大半焉。」後來卻發現梓人房間裡的床缺了隻腳,他卻得找工人來修理。但在實地觀察梓人指揮規劃京兆尹官署修繕時,作者才發現梓人的工作價值在分析與設計整個建築物,木匠與工人都要透過梓人指揮調度,最後完成時,也只有他才有資格在棟梁上寫下:「某年某月某日某建」。

柳宗元其實是要以梓人之道來比喻為相之法,建築的道理同樣可以套用在軟體業界上,軟體系統就像是建築物,程式設計師等同於工匠,而建構師就可以說是軟體業界的建築師。設計建築物並不是只靠層層分工就可以完成的,建築師得掌握整體設計,配合結構技師分析建築物的安全性,還有水電技師配電,再往下分配給建築包商,然後才在現場工地實作。這需要一個作業流程的配合,設計與開發作業是由一個作業團隊共同執行處理的,適當的作業流程規範,可以讓工作團隊緊密結合在一起,透過良好的設計圖互相溝通,才有辦法成就一個安全可靠、有品質保證的建築物。

軟體系統從規劃、分析、設計到實作,開發團隊需要一個共同遵循的開發流程,從使用者的需求開始,到軟體建構、系統分析、程式設計、測試層層分工合作,如果沒有工程管理的規範,就無法確保成品的品質。因為人人都能寫程式,開發團隊的大小、專案的規模大相逕庭,系統開發程序並沒有放諸世界皆準的標準,對軟體開發團隊來說,先選擇一個適當的開發程序標準,再作適當的微幅調整,就是最適合的開發流程,而這個系統開發作業程序就是軟體品質保證的試金石。


軟體系統品質保證

軟體系統的品質可單純地以bug(臭蟲)數量這種直觀的方式來評估,系統的bug越多,很自然地就代表品質越差,但現在的軟體系統規模龐大,有很多系統的bug在測試驗收的階段還沒辦法被發現,如果產品推出後造成客戶的損失再來解決就為時以晚了,因此軟體系統的品質保證必須藉由適當的軟體系統開發程序,規範規劃設計到開發每一個階段的工作,如此才能保證可以及早發現並解決問題,換句話說,就是藉由嚴謹的開發「過程」,來確保成品的品質。

傳統的軟體系統開發程序是瀑布式生命週期模型,也就是指軟體從需求分析、設計、開發、測試、安裝、維護這些一個接著一個的步驟,進入設計階段後就不能再回到需求分析,這是因為傳統的系統開發者認為,需求的變動會影響後續設計的結果,如果大幅度或頻繁地修改需求,會造成系統開發時程無限期延後的後果。瀑布式的模型產生了許多爭議,開發的各個階段可能會重疊,階段中的活動也可能會重覆,如果在開發階段才發現分析錯誤,就一定得要重新分析。

漸進式開發方法改進瀑布式的缺點,是由規劃、分析、開發、使用者評估再回到規劃,這樣週而復始地螺旋式循環,漸進地讓系統越來越貼近使用者的需求。RUP(Rational Unified Process、統一流程)就是一種使用案例驅動、以架構為基礎、反覆、漸進式開發的標準流程方法,但因為RUP過於龐大複雜體系,需要撰寫非常多的規格文件,所以比較適合上百人的大型軟體開發團隊使用。

對於一般一到十幾個人的小型團隊來說,XP(Extreme Programming、終極編程)提供了跟RUP完全不同的設計理念,這是一種簡捷有效的開發程序,主要由一些設計準則組成,例如成對編程(以兩人一組做程式設計)、測試導向(持續地不斷地自動化測試,提高系統品質)、重構(持續改善不良的設計),這些準則的目的是希望開發團隊能彈性有效快速反應使用者的需求,不要製造太多文件,文件跟系統一樣,都需要大量的維護成本。

農產品加工工廠會針對自己的產品,使用不同的製造與管理流程,再透過CAS優良農產品及其加工品最高品質的認證,保障加工產品的品質,讓消費者安心享用這些產品。軟體工業也是如此,廠商可以使用不同的開發流程,但對客戶來說,如果廠商通過一個公正的認證標準,就等於已經有了基本的品質保證,目前軟體業已逐漸有大型化、國際化的趨勢,所以我們需要一個全球公認的認證標準,用以評定軟體開發團隊的軟體專案開發能力。

CMMI(Capability Maturity Model Integration、能力成熟度模型整合)的國際認證已經成為軟體工業的基本競爭指標。CMMI整合了多個標準,將軟體開發分為五個能力等級,Level 1 一般執行方法,代表沒有固定流程,無法複製成功經驗;Level 2 已管理流程,表示專案已導入流程管理,可控制時程,有充足的管理資源,類似的專案可複製過去的成功經驗,但不同專案可能有不同的管理流程;Level 3 已定義流程,代表會持續改善已成為公司的資產的組織標準流程;Level 4 已量化管理流程,會使用適當的統計量化技術控制品質,並建立品質及流程績效的量化目標;Level 5 最佳化流程,可改變與適應量化的管理流程,以符合目前與預期的經營目標,系統化地推展漸進與創新的技術改善,並根據改善的目標來評估流程改善成效。

CMMI並沒有限制開發流程的規格,只以開發團隊的表現來評定開發能力等級,這也是目前政府大力推動的方向,甚至明訂目標在2008年培養出七十家通過CMMI Level 3 認證的廠商,而具CMMI Level 5 能力等級的則有三家。


溝通模式語言

「這是啥米碗糕?」如果是個閩南人看到這句話,會覺得親切,如果是北方人,即使每一個字都認識,放在一起就會讓人覺得丈二金剛,摸不著頭緒,還可能會猜想是不是一種新的碗裝米糕小吃,如果是外國人就更慘了,對華語根本一竅不通,這表示溝通需要有一種共通語言。

在開發團隊遵循的開發流程中,從系統規劃開始,就必須製作適當的文件,文件的內容是要描述專案的各種面向,包括系統架構、需求分析、設計內容、測試、安裝、維護等資訊,為了讓整個開發團隊都能確實瞭解文件的內容,我們需要一種共通的語言。語言會形成軟體業界的文化。物件導向被譽為世紀末軟體革命的程式設計方法,在物件導向領域中UML(Unified Modeling Language、統一塑模語言)就背負著記錄物件導向領域文化的任務。

「不學詩,無以言」詩是語言文字的精華,短短的幾句話,適當地勾勒出說話者的心境,準確地傳達讓聽者感同身受。「勸君莫惜金縷衣,勸君惜取少年時。花開堪折直須折,莫待無花空折枝!」短短四句話,就能描繪把握當下的用意與情境,讓人心領神會。所以有了語言之後,還需要另一種精簡的溝通模式,能言簡意賅地傳達設計的精髓。

當我們一說「巴洛克式建築風格」,很自然地就能聯想到羅馬著名的聖彼得大教堂,17世紀初源自於羅馬的華麗奔放建築模式。建築設計理論家亞歷山大在「建築的永恆之道(The Timeless Way of Building)」這本書中說,建築設計的過程,就像一個受精卵逐步分化的發育過程一樣,是一種從整體往下到細部的設計過程,透過這種「由粗到細」的設計方法,讓建築物產生一種設計的風格與文化。而這些建築設計,是以 Pattern(模式)來描述,模式收集了所有代表性的問題與對應的設計方法,這也是「建築模式語言(A Pattern Language)」這本書提出的概念。

物件導向軟體模式化開發方法的經典著作是 E. Gamma、R. Helm、R. Johnson與 J. Vlissides 的 「設計模式(Design Patterns - Elements of Reusable Object-Oriented Software)」,他們把物件導向常見的設計模式分為生成、結構、行為三大類共23個模式,這些具有「代表性」的模式,已成為物件導向系統設計時的基本常識,舉例來說,當我們要說明系統內只有一個單一物件實體這樣的設計時,就會以Singleton來稱呼這種設計模式。


軟體工程

軟體系統就跟機器設備一樣並不是萬靈丹,必須要在符合公司或使用者的需求下,才能完整地發揮軟體系統的功效,貿然買進或開發某個系統,只會造成公司的維護成本負擔,品質低劣的系統也會造成使用者莫大的困擾。軟體系統的設計開發,配合適當的開發流程,就可保證專案品質,而CMMI就是開發流程的認證標章。在開發過程中,設計文件要以共通的塑模語言描述,再配合精簡的設計模式,這樣就能成就一套完整有效的軟體工程。

2005/10/24

再見了,我的智慧齒

今天早上花了半小時,跟自己的一顆智齒道別,現在牙科醫師大概是最會打麻醉藥的,為了拔牙,總共打了四五針麻藥,還要我吃一顆止痛藥,拔的時候醫生先照X光片,然後花了十分鐘磨牙,最後才是拔牙的重頭戲,看他很興奮地拿出鉗子,然後撬了兩下,就說「嗯,起來了」,沒多久我的智慧就跟我說再見了。

整顆牙齒的上面部分蛀掉1/3,不拔也不行,回家後沒吃中飯,大概是麻藥或是止痛藥的問題,有點暈,馬上上床睡了三小時,現在還是覺得有點痛,怪怪的。牙齒保健很重要的,回家的時候買了牙線,在加上前一陣子買的歐樂B牙間刷(清潔齒縫的小刷子),這種刷子很神奇,醫生說不要用牙籤,要用這種牙間刷,用了第一次,就覺得跟洗牙後的感覺很像,齒間輕鬆了起來,那種牙間刷能確實把齒縫中間的殘垢清除出來。

2005/10/21

科普的精神

用了一些時間利用KSEG作圖,畫了不少東西,也更瞭解了歐氏幾何、非歐幾何、尺規作圖的概念,有好多有趣的圖形,都可以運用尺規作圖達成,而「尺規」的過程,通常就代表著圖形裡面的「關係」。我把所有的圖形原始檔,加上一個網頁記錄作圖過程,還不知道怎麼遵循OSS的精神開放出去,要運用這個作圖素材製作教學活動,可能還需要一點時間仔細思考。

教學活動設計,並不能過於強調科技本身,要注意的是要如何引發學生「使用」科技的興趣,傳統的科技人通常會以技術為導向,介紹軟體的功能,並作使用教學,但沒有真正「說出」,這些功能的應用時機,資訊結合教學並不是為了結合而結合,相反地,資訊科技是用來「輔助」教學而已,以作圖來說,「軌跡」功能通常學生無法憑空將軌跡結果想像出來,在教學上,就可以運用,先作理論與想像的教學,再透過作圖軟體印證,這樣的方式來作,重點是,要改變學生思考的方式,並讓他們瞭解到什麼時候可以使用軟體來幫助自己思考。

目前中學生的數學課程,有個大問題在於,不懂得這些數學理論的歷史來源,通常歷史的軌跡會造就不同的理論架構,但這個錯誤非常難以彌補,就老師來說,課程內容的傳達再加上歷史的沿革,會讓課程所需時間再拉長,況且數學課上成歷史課,對中學生及家長來說,有點匪夷所思,老師方面,必須要有更深的數學概念素養,這個方面在我接觸過的數學「正式」課程(包含國小、國中、高中、大學數學系)中,「完全沒有」一個老師可以用「科普」的精神,把學生帶入某個理論的領域中,問題在於老師本身也是從章節內容來瞭解數學,例如指數、對數、圓椎曲線等等,我自己的問題與弱點也在此,但如果能再花時間多接觸一些科普書籍,可能會有更恰當的想法。

資訊科技的教學更常有這個問題,我們在設計軟體的時候,通常會需要使用一些開放的軟體套件,但常常是沒有適當的使用經驗跟教材,官方的文件,也只會有逐項功能的簡介,些許的demo,要學習一個新的技術或套件,通常得花時間搜尋其他網友製作的教學文件,但由於自製的教學文件良莠不齊,又得花時間吸收與過濾,也許資訊科技得更人性化一點,要區分初學者、使用者、進階功能使用者,開發人員也得分測試人員、外掛套件、核心功能,在針對不同的使用者給予不同面向的文件,講起來好聽,做起來難,區分地越細,越不容易面面俱到。到最後,使用者還是得自立自強,靠著強烈的企圖心與意志力,自己尋求答案克服一切困難。

2005/10/14

尺規作圖OSS軟體 KSEG 繁體中文翻譯

這幾天除了正常的工作,程式修改外,另外還給自己包了一個小工程,將OSS尺規作圖軟體 KSEG繁體中文化。花了幾天的時間,今天把翻譯結果寄給作者了,不知道會不會有回應。

KSEG 翻譯記錄

1. 到 http://www.mit.edu/~ibaran/kseg.html 下載 KSEG 0.401 for Windows
2. 下載 簡體中文翻譯 (May 15, 2005 -- KSEG in Chinese) kseg_zh.qm & kseg_help_zh.html
3. 根據 README.translators, 我必須要安裝 QT linguist 才能作翻譯 menu 的工作
4. 參考網頁 http://kde-cygwin.sourceforge.net/qt3/installation.php 安裝了cygwin,將cygwin的setup.exe指向 http://kde-cygwin.sourceforge.net/install,安裝 qt3(Qt Linguist 路徑 /lib/qt3/bin/linguist.exe)
5. cygwin xwin 必須安裝中文字型,這是最麻煩的地方,我現在也只能看醜醜的中文,無法直接輸入,所以是用copy/paste的方式做翻譯的
6. 然後就用 linguist.exe 開始翻譯 kseg_tc.ts,最後產生 kseg_tc.qm
7. 再以Xu Xianghua的簡體中文Help檔為基礎,對照原始的英文版,翻譯成繁體中文版

ps. 最近有兩個重要的遊戲,Age of Empire III和World of Warcraft,聽同事描述他們打 WOW 的經驗,覺得似乎不大適合我,又分聯盟、又有等級差別,正式上線後還得繳月費,我還是專攻免費的 FreeStyle 吧(電視上有看到FS的廣告),看到AOE3的硬體要求這麼高,還要求只能在XP上玩(但網路上有win2000安裝法),我擔心我那兩歲的NB能不能撐得住。

2005/10/7

數位感官體驗

這一篇可能是情節太簡單,技術不夠先進吧。

數位感官體驗 for 科技狂想曲
------------------------------
早上一睜開眼睛,電子郵件信箱就把收到的郵件念給我聽,一封來自IMSONY公司的邀請函,「數位感官體驗,滿足新奇享受」引起我的注意,內容是邀請媒體記者參加數位感官體驗營。

「又來了,難道這家知名公司又研發出創新技術嗎!」我心裡嘟噥著,為了保住工作飯碗,也只好回信說會依約前往。

展覽當天一早,我剛踏進體驗營的會場,門口的接待機器人遞給我一個類似口香糖的東西,她告訴我這叫做無線口味條,又親切地問了一句「請問您吃早餐了嗎?」,「還沒耶」我回答。接待員展開胸口的螢幕,上頭列了各種中西式早餐,我心裡還在懷疑「有提供早餐?」

接待員提醒:「您可以當場試吃喔!」
「原來IMSONY的感官體驗開始了!」

我用手指點了一下炭燒咖啡豆漿後嚇了一跳,怎麼有豆漿的香味四溢,這時接待員要我把口味條含在嘴裡,才剛放進去,就從舌尖傳來一股融合了咖啡苦味與豆香的味道。

「菜單數位化後,已經變成這樣阿!」

接待員不等我思索,就補上一句「我們IMSONY還在持續研發最新的數位口感技術,到時候將可以讓客戶在嘴裡感受到嚼著食物的口感,請您往下一個展示會場移動。」

「我的豆漿呢?」接待機器人不理我,又往門口走去服務另一個記者了。機器就是機器,只會照著程式運作。

我無可奈何順著飄浮在半身高的導引指標前進,才穿過甬道,眼前就閃入一個標語「數位感官體驗電視頻道」,我選了個座位坐下,每個座位的正前方都有個顯像電視,正播放名叫「食在天下」的飲食節目,畫面上的主持人在介紹菲力牛排,我才看到牛排端上桌,香氣就一陣陣地從電視傳來。

主持人一邊嚼著牛排,我嘴裡含著的口味條,就傳來一股濃郁的肉汁香味,我覺得更餓且更氣憤了!畫面最後出現牛排的特寫鏡頭,旁邊有「舔我」兩個大字,我納悶地用手指頭摸了一下螢幕,卻嚇了一大跳,怎麼真有牛排的軟嫩觸感,我鼓起記者的職業勇氣,舔了一下牛排,肉汁的味道散溢整個嘴巴,胃也不爭氣地咕嚕了一聲,我真想馬上帶一台回家看A片。

我走到會場左側的咖啡廳休息,剛才手指頭上的震撼還沒退去,又發現這兒每個人都罩著了個大安全帽躺在那兒?原來這也是廠商的噱頭,整合感官輸出入介面的電腦,講話就可以操作,除了看到聽到外,也可以聞到嚐到畫面上的資料。

我當場就寫了篇「數位感官體驗」報導傳回公司,也在最後寫下感想:這個創新技術充分讓五官感受食物,但邊看電視邊舔螢幕就顯得有些愚蠢,數位感官讓我們記錄並傳遞五種感官的資訊,如果能更人性化使用介面會更好。

斯坦計畫

倪匡文學獎初選名單出爐了,我寫的小說果然落選了,很明顯的是故事內容「層次」不夠,還得多加油。

斯坦計畫 for 科幻小說獎
-----------------------------
在蓋亞公司中央委員會議上,大腦委員長布蘭用右手拳頭沈重地往桌上猛擊了一下,參與的另外兩個委員心頭隨之震動了一下,耳朵聽到的是布蘭委員長提案「為了突破上帝對每一個靈魂的禁錮,達成永生不死的夢想,我提議啟動斯坦計畫。」

「各位知道嗎?目前公司擁有的技術,可以製作出所有人體的組織,最需要突破的就是大腦意識移植技術。伙伴們,是時候了,我們要繼承哈維醫生的遺志,根據愛因斯坦留下來的大腦組織遺產,複製一個愛因斯坦。」

脊椎委員長史賓脫口大罵,「去你的,布蘭,你如果要開始萃取意識,那麼我負責人體晶片身份證還搞個屁,靈魂都被你抽走了!難道你已經發明了意識追蹤器嗎?複製一個愛因斯坦的大腦有屁用,愛因斯坦的意識早就在兩百年前他死掉的時候升天了。」

臟器委員長哈德舉起酒杯,透過杯子裡的冰塊看著布蘭,然後冷冷地道:「老布,你該不會是要跟我們搶業績吧?一但意識能被抽取出來,那還需要這個臭皮囊嗎?公司現在最賺錢的器官汰換生意也不用做了!」

布蘭站了起來,說道:「不要以為你負責的器官生意還做得下去,費利組成的自由人體公司,已經成功地開發出自有品牌的人體器官組織,這個組裝市場已經進入低價競爭的階段,營業額急速下滑就是鐵證。」

「其實我說要複製愛因斯坦的大腦只是個幌子,早在陶莉羊問世的時候,大家就知道不可能有個完全一樣的複製人。你們兩個想想,為每個孩子都換上愛因斯坦的大腦,這樣的行銷手法一定可以讓公司重登股王寶座。」

哈德把杯子放回桌上,心裡正盤算著,自從公司在五十年前克服活體組織排斥效應的技術問題,推出器官汰舊換新的服務後,中低收入階層沒有多餘的錢可以換到像奧運金牌、諾貝爾獎得主等等頂尖人類的基因複製出來的人體組織,就算能買到比較便宜的機器人體,也只延長了壽命,機械的缺陷讓他們走在路上都抬不起頭來。整個國家的管理階層都被有錢的中產階級把持住了,而這些人現在唯一的遺憾,就是腦細胞150年的壽命限制,要讓大家再掏出錢的方法,除了布蘭提出的計畫外,好像就沒有別辦法了。

哈德心裡的思緒還很紊亂沒有定論,史賓馬上就衝動地問說:「你別騙人了,如果可以抽取意識,何必還需要大腦?就讓意識以沒有形體的狀態存在就可以了阿。」

布蘭呵呵地輕笑了一聲,「硬體的效能得靠夠份量的軟體才能發揮到極限,軟體如果沒有硬體,就沒有發揮的空間了。你這個問題不是白問了嗎?資訊科技的人工智慧技術,是完全失敗的,根本沒辦法模擬智慧,只有人腦才真正是運算能力最強大的一部機器。史賓阿史賓,你們部門研究神經網絡的成果,就是人腦溝通聯絡的管道阿。超級人腦的網格運算,不是你夢寐以求的夢想嗎?」

哈德仍然沈默不語,心裡總覺得布蘭一定有什麼秘密沒說,老布為什麼要跟我們兩個討論?為什麼他沒有先嘗試研發技術?難道......?

哈德緩緩地吐出這幾個字:「老布,你的實驗成功了嗎?」

「還沒有。」

哈德聽到這句話,長吁了一口氣。

「不過...,我已經有了成功脫離大腦五分鐘的經驗。」布蘭答道。「那是個很奇怪的感覺,就好像靈魂出竅的一樣,然後我又回到自己的身體裡面了。」

哈德聽著聽著,突然發覺布蘭的眼神不一樣了,他的眼睛眨呀眨的,沒有了單純專注的神采。哈德向史賓使了個眼色,然後在站起來的時候,手裡多了一把雷射槍。

「你是誰?你不是布蘭,你到底是誰?」哈德把槍口指向布蘭。

史賓說:「哈德你在做什麼?他是布蘭阿。」

布蘭笑了笑,然後說:「好朋友就是不一樣,你是怎麼發現的?」

哈德說:「少說廢話,布蘭呢?」

「我就是布蘭,只是在布蘭的意識要回到身體的時候,有另一個我,順著萃取意識的通道,同時潛入了我的大腦,現在的布蘭已經不是原本的布蘭了。」

「怎麼會有這種事,怎麼可能會有另一個意識憑空出現,又鑽進你的腦袋?」

「嗯,就是在一瞬間,我認識了理查,另一個我。」

「我是理查,在軟體公司專門設計與開發系統,那天晚上我跟平常一樣睡不著,一直在網路上搜尋與閱讀資料,在我喝下最後一口咖啡的時候,突然一陣暈眩後,就趴臥在電腦前了。然後我輕飄飄地,竟然看到了自己的背影,就跟很久以前朋友在我太累,趴在桌上睡著時拍的照片一樣,我想我已經死了,過勞猝死的程式設計師已經平常到不能再稱為新聞了。」

「在我還沒有像輕煙一樣消散時,一股磁場把我的靈魂能量吸引到這個實驗室,前方似乎有一個奇異的通道,我才想跟身邊其他被吸引的靈魂打招呼時,下一秒鐘,我又察覺到自己的心跳。」

布蘭興奮地說:「你們知道嗎?現在最新神經網絡軟體系統設計方法,我在一瞬間全學會了!」

哈德搖了搖頭問到:「為什麼有那麼多靈魂,可是只有你理查的靈魂進入了布蘭的身體?老布的靈魂怎麼沒有被其他靈魂取代?」

布蘭回答道:「磁場越相近的人,越容易互相吸引,也因為我自己的皮囊跟靈魂的磁場最接近,所以才沒有被其他靈魂佔領。吸引的力量越大,行進的速度越快,實驗結束時通道一關,後面靈魂自然就沒有機會再前進。」

史賓瞪大了雙眼,一副完全無法相信的神情,好不容易才想出一句話說:「布蘭,你現在是名副其實的雙子座了。」

哈德用兩隻手用力地按住自己的太陽穴,提醒自己要冷靜地思考現在的情況。

「老布,你為什麼選在這個時候跟我們講?有察覺任何問題,沒有我們的幫忙沒辦法解決嗎?」

布蘭的眼睛快瞇成一條線了,微笑地說:「自從我布蘭理查碰在一起之後,我發現自己思考的速度還可以更快,也可以做更多事情,布蘭的軀殼已經跟不上我的意念。希望你們這兩個好朋友能夠運用你們的技術,幫忙塑造一個適合兩個我使用的新身體。現在的情況,就像是兩部電腦的運算能量,但是只有一台電腦的硬體支援。也許硬體的能力夠強大的時候,我們可以住在一起阿。能在一瞬間獲得許多人一生的智慧,那是多麼令人興奮的事情!」

史賓回過神來,一貫放砲式地發表意見:「你還真當自己是百臂巨人阿!結合在一起,這個想法有點噁心。」

哈德緩緩地說:「說真的,我不想成為24個比利中的其中一個,我就是我。」

布蘭突然激動地說:「不要把我當成多重人格分裂,我不是,我知道自己是布蘭也是理查。」

「我是理查,我不是布蘭,這不是我的身體!」
「你在胡說什麼!你已經死了,你知道你已經死了,現在能在我的身體裡面一起重生,有什麼不好?」
「我是理查,布蘭的朋友們請幫幫我,我不想待在這裡,我不是布蘭。」
「少說廢話,我們已經融合在一起,分不開了,接受跟我在一起的事實。」
「我是理查,你他媽的布蘭竊取了我的智慧跟經驗。」
「史賓快幫幫我,我的頭越來越痛了,快阻止理查連接判斷神經迴路。」
「我是理查,既然布蘭你還這樣執迷不悟,我只好...」
「你想幹嘛?你不是我布蘭,只有我才能控制我自己的身體。」

理查搶先一步舉起桌上雷射槍,朝自己的腦袋結實地開了一槍。哈德跟史賓都被這突然的衝突嚇了一跳,直到一聲槍響,想要阻止時卻已經來不及了。

哈德突然想起跟老布在一起唸書的模樣,一旦他想通了什麼新的想法或理論,就欣喜若狂覺得自己更有智慧。這一次,他真的太單純天真了,「天下萬物生於有,有生於無。」從無到有,從有而生萬物,妄想一步登天,卻反噬其身。

2005/10/6

數學軟體Survey

數學相關軟體的整理資料,我並不是每個軟體都使用過,表格填寫只憑搜尋往資料的印象,不保證一定正確,統計相關軟體並沒有列進來,主要是要servey幾何作圖功能與 symbolic computing功能的軟體。一般印象是,Matlab強項為matrix運算,還能夠連接並控制外部設備,Maple與Mathemetica強在symbolic運算,唯Maple的指令集比Mathemetica多,尺規作圖方面有OSS軟體可以使用,Flash是製作網頁動畫,但目前也應用在教學demo上,Excel雖然是Office的試算表,但其表格列加上計算功能,也能夠做資料處理。目前學習的設定的目標為,Maple、GSP或其他尺規作圖軟體。



昨天試過洪朝貴先生介紹的 freeduc 光碟,內含Dr.Geo軟體,這片目標瞄準中學生使用的教育軟體光碟,真的蠻有企圖心的。關於freeduc光碟的使用記錄:

1. 光碟開機後,輸入 knoppix lang=en atapicd nodma ,才正常開機(由於法式鍵盤的緣故,輸入a要打q,輸入m要打;),如果lang=tw,中文字看起來怪怪的,還有一些字顯示不出來

2. 使用knoppix不能寫入NTFS格式的磁碟機,無法儲存knoppix設定

3. 網路與ADSL撥接設定,直接在桌面上點右鍵,就可以找到knoppix->network相關的工具




數學相關網址連結記錄 2005/10/06



奧林匹亞

    國際數學奧林匹亞歷屆試題


chaos

    Chaos and Complexity Websites

    Entry to the Chaos ThinkSite

    Mind-Boggling Fractals, A Fractals Generator Program

    數學資訊網-休閒:趣味圖形

    Paul Bourke - 數學圖形



Puzzle

    Mathematics and Chess Page

    Rubik's Online Home Page

    Interactive Tangram 互動七巧板

    七巧板

    Interactive Mathematics Miscellany and Puzzles

    Mathcad Puzzles

    Mathpuzzle.com

    My Puzzle Note

    The Null Set Puzzles and Games

    George W. Hart

    Mathematical Games, Toys, and Puzzles

    Jo Edkins's Maze Page - Making a a Maze



教學

    Maple

    Maple簡介

    Maple線上教材

    Maple HW

    有趣的Maple

    Maple Tutorial

    index-Maple

    Maple Tutorial

    Maple---小站



Matlab

    MATLAB

    Matlab



GSP

    Geometer's Sketchpad 範例

    2003sdmGSP

    動態幾何暨遠距教學

    GSP講義

    gsp數學站

    GSP動態幾何教學




    EpisteMath|數學知識

    數學科教材教法

    高中教師在職進修網站--數學題庫

    離散數學-電腦輔助教學CAI

    數學資訊網-教育:數學軟體

    數學資訊網-休閒:數學遊戲

    Lecture Notes on Calculus (Chinese) 單變數微積分講義

    建中數學科

    Commerce World

    中數網—數學課件、教案

    Algebra Net

    數學魔法屋

    Su Horng數學王子的家

    建中 游森棚 教官 的數學網頁

    數學傳播

    建中學報--數學傳播

    Cabrijava

    Cabri Geometry



Portal

    The Math Forum - Ask Dr. Math

    數學網

    Resources on Maths

    機率統計網路學習館

    資訊科技教育

    數學科網站資源概述

    InfoMath 數學資訊網

    教育資訊站 數學網

    數學學習館


軟體Servey表格




































































































































軟體名稱 OSS Platform 尺規繪圖 幾何作圖 代數計算 微積分 線性代數(矩陣) 圖論 統計 備註
Maple Windows/MacOS

/Linux...
Y Y Y Y Y Y
Matlab Windows/MacOS

/Linux...
Y Y Y Y Y Y 工程輔助模擬功能
Mathematica Windows/MacOS

/Linux...
Y Y Y Y Y Y
Dr. Geo Y Linux Y
KSEG Y Linux/Windows Y
GSP Windows/MacOS Y
Cabri Geometry Java(Windows/MacOS) Y
Flash Web Y Y 網頁多媒體展示
Excel Windows Y Y 數論、數字分析



2005/10/3

百貨公司禮券食物鏈

公司每年都會發放三節獎金,但不曉得為什麼,總是領到百貨公司的禮券,現金禮券的面額不多,但還是得花時間特地跑一趟百貨公司,已經放了一年沒有使用的一千多元禮券,終於在昨天晚上,沒有什麼感覺的龍王颱風過境後,把禮券處理掉了。

新光三越自從修改了地下室停車的規定後,只願意提供給高消費/高貢獻度客戶,免費停車的優惠,一改大排長龍的景象,我們只花了十分鐘,就停好車上到百貨公司一樓,不過消費滿五百元只可換半小時免費停車,我們估算1~2個小時就得出去,大概還得給他五十元的停車費。

餐廳是我們的目標,韓式銅板烤肉還不難吃,花了600元,然後是豆花跟果汁,花了一百多,這時候就剩下一張一千元的現金禮券,轉戰地下室的麵包坊,用了近一百元買兩塊麵包跟五十元可頌,剛出爐的可頌真好吃,順利地拿到現金的零錢,這時候已經近一個半小時了,收拾一下就馬上回家了,手上積存的禮券終於處理完畢。

「為什麼公司老是要發禮券呢?」我想原因就是要省錢,百貨公司以折扣的優惠方式,販售禮券,對公司來說可以節省一點開支,也順便造就了百貨公司的業績,因為現金禮券(可找零)的關係,現在的禮券已經都是以一百元為單位了,也是要避免客戶用找零的方式取得現金,這也會造成百貨公司實際業績的虧損,禮券販售金額與收入的差距,換句話說,假設百貨公司以九折的方式販賣1000元禮券,現金收入為900元,但業務付出為1000元,理想狀態是,麵包店收到1000元禮券,可向百貨公司請領1000元現金,客戶消費1000元,就是麵包店有1000元業績,必須跟百貨公司拆帳,如果拆帳比例為10%,百貨公司就可以將一開始損失的10%(100元)補回來。但我只買了100元,拿走了900元現金,麵包店只有100元業績,百貨公司拆帳取得5元收益,損失了95元。

我的會計概念不大行,大概只能想到這裡,上面看起來很亂,但只單看麵包店的業績,就知道百貨公司拆帳結果有100跟5元的懸殊差距,如果從消費者的角度來看,1000元的禮券裡面,實際上包含了公司出的900元,還有百貨公司負擔的100元。