發表文章

目前顯示的是 3月, 2008的文章

選舉過後

今天早上出去投票前,我特地把選舉公報拿出來看一下,想說就算不太在意政治,好歹看一下候選人的政見吧...結果...我居然找不到... 一份沒有選舉政見的選舉公報...某種程度上來說,就跟現在台灣的政治狀況一樣,沒有政見,只有口號;沒有思考,只有謾罵。很多人喜歡拿學術當作盾牌,來證明自己講的很有道理,殊不知,「學術」,不過就是一個各說各話的平台。本來在學術的殿堂中討論也不錯,但很容易加上情緒性的謾罵字眼,表明瞧不起對方...最明顯的大概非我老爸的那群同學吧,每個都是台大經濟出身,每個地位都非常顯赫(除了我老爸之外),有藍有綠,兩邊打死互不相往來...同樣都是經濟高手,同樣都能引經據典,但永遠不能對談的一群人(更可憐的是那些引用這些高手言論卻又毫無思想而進行批判對方的那些人),難怪...有人只要「一隻手」的經濟學家了... 遺憾的是,選舉的撕裂,竟然也燃燒到了教會。我永遠不會忘記那年華神的二二八事件...那些抗議的基督徒,那些所謂追求公義的基督徒,根本只是在追求賠償,把對方視作死敵,卻忘了聖經告訴我們說:「若是能行,總要盡力與眾人和睦」...可憐的華神老師,就因為一些研究疏失而被犧牲了... 行公義、好憐憫、存謙卑的心...每次選舉我都會在論壇報上看到,殊不知,最重要的是下一句話:「與上帝同行」。基督徒的精神,應當是「寧叫天下人負我,不叫我負天下人」才是,但...每到選舉,基督徒永遠都在審查別人、對方的候選人,而不會一視同仁的對待己方的候選人(沒有針對哪一邊,因為兩邊都一樣) 我很討厭選戰這兩個字,選舉,不是戰爭;對手,不是仇敵。 選舉,不過是人民對於一些議題呈現的選擇...以政治來說,這樣的說法很天真,但是,卻是民主真正的價值,雖然,我一直認為由神主到民主是一種退步... I have a dream that one day this nation will rise up and live out the true meaning of its creed: "We hold these truths to be self-evident: that all men are created equal." I have a dream that one day every valley shall be exalted, every hill a...

GNU Multiple Precision Arithmetic Library

在開發程式的過程中,程式設計師不一定每一個原件都會純手工打造,事實上,很多東西會直接使用現有的工具。一來可以節省開發的成本,二來自己實作可能也比不上現有工具的功用跟效能(或許還會產生不少BUG)。所以在這裡也會介紹一些好用的工具或是函式庫。當然,前提這些東西都是自由或是能免費取得的。 名稱:GMP~GNU Multiple Precision Arithmetic Library 網址:http://gmplib.org/ 功能:提供大數運算 大數運算是一個很重要的功能,特別是在處理數學問題、密碼學演算法上面。傳統C語言所能提供的數字運算,最多是到 double (以 32-bit 的機器來說,通常是 64-bit),但這對動不動就要 128 bit 的密碼學演算法來說,根本不敷使用。今天介紹的這一套 GMP,就是一套提供大數運算的函式庫。這套函式庫很有意思,他還把計算RSA的速率跟 Openssl 進行比較,結果呢,當然是樂勝囉~ 這套函式庫提供了整數、分數、小數的型態,下面「稍微」看一下人家是怎麼設計的。我們只看看整數的部分,並且看一下人家的加法是如何處理的。 typedef struct { int _mp_alloc; /* Number of *limbs* allocated and pointed to by the _mp_d field. */ int _mp_size; /* abs(_mp_size) is the number of limbs the last field points to. If _mp_size is negative this is a negative number. */ mp_limb_t *_mp_d; /* Pointer to the limbs. */ } __mpz_struct; mpz 就是GMP中的整數型態。簡單來說,他是拿一串 limb 串起來來當作大數, limb 就是一般程式中所使用的數學型態。(根據平台不同,可能是 unsigned int or unsigned long),然後他還會記錄 size。 我認為,mp_...

改程式的掙扎

在工作上,如果遇到前人所留下的難看程式,到底該怎麼辦? 所謂的難看程式,指的是會動,能正常運作,但是架構混亂、難以閱讀,甚至還很容易隱藏潛在的危機。本來嘛,這種程式不動它也就是了,可是偏偏又要在上面提供新的功能,這時候,身為接手人員,到底應該怎麼做呢?是大破大立,還是在危樓上持續建造呢? 目前在資策會工作這兩年,總共遇過兩次(其實也才遇過兩年,也就是一年一次囉)。這兩次,我的作法都是~砍掉重練。第一年,因為是科專計畫,只要呈現給長官和經濟部的官員看,再加上整個計畫的人力不過三個,在達成一致決議後,花了幾個月的時間將東西完工。雖然做的沒有很出色,但穩定性已經大幅提昇(當然是跟之前的東西比),而且也在過程中學到了不少東西(感謝當初的另外兩位同仁)。去年的計畫,我也做了同樣的決定,但這次不一樣了...這次不但是科專的呈現,還有廠商的產品要交付,互通性測試要通過,無止盡的「死線」...而且整天還要面對測試人員的壓力。對測試人員來說,他們不會看到程式碼,他們只在乎外在的功能,他們在意功能是否完善,特殊的CASE是否能安然度過,新的功能運作如何,但卻不會在意程式的維護性如何、還有程式內有多少的隱藏危機... 打掉重建,我自認將程式改的更容易閱讀,也更容易維護或是加上新功能,但是這段改程式的陣痛期,卻是測試人員所無法瞭解的(當然了,他們也有自己的時程壓力)。反而,原先會動的功能,可能因為程式重建過程中一些粗心大意的疏漏(還不少),反而會無法運作。他們只會無法理解的問說:「為什麼?為什麼要這樣改,這樣怎麼測試?」。還好,因為另外一個團對正好再進行大規模的更動,我獲得喘息的機會...今天,大部分的問題已經解決了...甚下就是開始進行新功能的加添、原有 BUG 的修正,還有客制化的動作。但我一直在問我自己,如果時間往前推幾個月,我會做出這樣的決定嗎? 幾個禮拜以前,我到簽約廠商那裡,進行程式碼的講解。講解的程式碼,是舊的那一份。坦白說,我講得很膽戰心驚。我一向不害怕報告,但是我害怕報告自己都無法理解的東西。原有的程式碼,其實架構設計的很...我很擔心廠商問我架構的問題,以及這樣設計的緣由,所以我隨便找了一個理由就帶過去了,好險他們似乎只要東西會動就好(感覺他們根本沒在研究那一塊程式,看來他們的產品出貨後,有可能會被一堆客戶罵吧)交那樣的程式過去,我很羞愧,而且因為接手了,還要掛我的名字...

為什麼程式不會動

這是一篇轉貼文章,來源...忘了 老實說,要怎麼分類這文章我很頭痛,要是幾個月前,我一定會把他丟到 Joke 裡面去,但後來我發現,在這段程式趕工的時間,這些話也快要變成我的口頭禪了。來吧,程式設計師們,自己摸著良心說,有誰沒有說過下面這些話的? 第 20 名:這很奇怪喔。 第 19 名:以前從來不會這樣啊! 第 18 名:昨天明明會動的啊! 第 17 名:怎麼可能~ 第 16 名:這一定是機器的問題。 第 15 名:你到底是打了什麼才讓程式當掉的? 第 14 名:一定是你的資料有問題。 第 13 名:我已經好幾個禮拜沒碰那一段程式了。 第 12 名:你一定是用到舊版了。 第 11 名:一定是巧合!為什麼這種壞運氣只讓你碰上。 第 10 名:我不可能什麼功能都測試到吧,有 bug 是正常的! 第 9 名:這個不可能是那個的原始碼! 第 8 名:這程式應該是會動的,只是我寫好後還沒做測試。 第 7 名:可惡!一定有人改了我的程式。 第 6 名:你有檢查過你的電腦有沒有病毒嗎? 第 5 名:儘管這功能還不能動啦,你覺得他如何? 第 4 名:在你的系統不能用那一個版本的程式啦! 第 3 名:你幹嘛要那樣操作,都是你的問題。 第 2 名:程式發生問題時你在哪裡? 第 1 名:在我的機器明明就可以動啊!

有趣的「對」

在中國文學裡面,「對」一直是一個很有趣的東西。當然囉,嚴謹的對仗除了要詞性工整之外,還又考慮讀音的問題。不過,因為個人對讀音實在沒有研究(我怎麼會知道古時候的讀音嘛),而且詞性也不是非常熟,所以任何記錄在這裡的「對」,都是我覺得有趣但不保證嚴謹的。 BTW,所有的對都是看來的,絕對不是我寫的~ 太極兩儀生四象 春宵一刻值千金 相當有趣的對聯,更好玩的是,這兩句都不是原創句。第一句是道家的恢弘的宇宙觀念,第二句卻變成新婚之樂。渾然天成,卻又帶有詼諧的語氣。 寸土為寺,寺旁言詩,詩云:明日揚帆離古寺 兩木成林,林下示禁,禁曰:斧斤以時入山林 這個對相當難對,頭兩句計有各自的意思,又都可以形成一個字。而第三句的開頭跟結尾,還必須用上第二句跟第一句的字。「明日揚帆離古寺」出自哪首詩我不知道,但是「斧斤以時入山林」可是出自於孟子唷~ (我還在網路上看到下面的對法: 十言成計,計中人許,許諾:後世鼎足三分計 ) 二舟並行,櫓速不如帆快 八音齊奏,笛清難比簫和 乍看之下還好,但其實裡面暗藏四個古時候的人名唷,分別是...自己看。更好玩的是,如果把所有的官職分成文官、武官兩類,呵呵,這兩句可是互有諷刺意味呢! 琴瑟琵琶,八大王一般頭面 魑魅魍魎,四小鬼各自肚腸 很常見的趣對,但還是記錄一下。(網路上還看到另一個對: 妹妲姒姬,四美女非凡容貌 )