Showing posts with label quote. Show all posts
Showing posts with label quote. Show all posts

Tuesday, November 08, 2005

A Good Solution is Hard to Find

--

國中生就能理解的畢氏定理,古希臘學者竟將它當作祭品獻給上天;數百萬人都能哼唱第九交響曲,卻少有人渴望成為貝多芬那樣的音樂天才。這就是基本的非對稱性——辨識遠比發現來得容易。
-- 摘譯自《Out of Their Minds》〈A Good Solution is Hard to Find〉

--

我想,需要並非發明唯一的母親。一個人必須對問題的背景資訊有正確的瞭解。我並不是對所有遇到的問題都加以研究。而是對那些我所解決的問題,心中覺得真巧,剛好我有獨特的背景知識,可以用來解決此問題!就像命中註定,也是我責無旁貸的。
-- 高德納

--

人們心裡想要的東西,很少是他們真正需要的。他們想要的和需要的,往往是南轅北轍。而在科學技術的發明中,最重要的事便是能符合人們的慾念與需求。
-- Alan C. Kay

--

Thursday, August 14, 2003

《物理之美》佳句集

--

Richard P. Feynman,
    (1965) The Character of Physical Law

--

一個正確的定律可以用來發現另一個新的定律。
如果我們對某個定律有信心,那麼一些看起來像是錯誤的狀況,
可能就會引導我們發現另一種現象。

--

Nature uses only the longest threads to weave her patterns,
so each small piece of her fabric
reveals the organization of the entire tapestry.

大自然只用最長的線去編織她的圖樣,
所以每一小片織紋,都吐露出整塊織錦的組織規律。

--

人們可能會以哲學思辯,爭論他們比較喜歡哪一種方式。
但是我們從累積的許多經驗中,
知道哲學式的直覺並沒有辦法正確地猜到,大自然到底會怎麼做。

--

數學家只處理推理的架構,
他們並不真正關心所談的是什麼,甚至不需要知道自己在談的是什麼。

--

物理學家的每一詞句都是有意義的。
你必須對描述真實世界的詞句之間的關連有所瞭解;
你必須將所推導出的一切轉換回一般語言,轉換成真實世界的東西,
成為你作實驗用的銅塊和玻璃塊。

--

當你知道你想談的是什麼,例如什麼符號代表作用力、質量、慣性等,
然後再利用各種普通常識,就可以熱切感受這個世界了。

--

最重大的發現往往和模型相去甚遠,而且模型從來都沒有什麼大用處。

--

數學是一種可以用來表達大自然的深刻方法,
任何想用直率感覺和哲學原理去表達大自然的企圖,
都是不太有效率的方法。

--

「偉大的造物者好像是一位數學家」
對不瞭解數學的人而言,
想要真正理解大自然的美,尤其是最深刻的自然之美,
是很困難的。

--

假如你想知道任何有關大自然的事物,或者想鑑賞大自然,
就必須瞭解大自然所用的語言。
因為大自然只以一種形式提供訊息,我們還不至於狂妄到,
想要求大自然做一些改變來吸引我們的注意!

--

無論你是否喜歡,所有定律都是數學化的。

--

假如你對某件事物做了某件事情之後,它看起來和原先完全相同,
那麼你所做的這件事就是對稱的。

--

這是世界運行的規則之一:
我們的確都是從有序的事物開始,卻終結於無序狀態。

--

未來是無法預測的,無法作出預測並不是我們知道的不夠多--
連大自然本身都不知道電子要往哪裡跑。

--

如果它跟實驗結果不符,這定律便錯了。

--

證明任何理論是錯誤的可能性總是存在的。但請注意,
我們永遠不可能證明它是正確無誤的。

--

構想從何而來並不重要,
重要的是它要跟實驗吻合,而所提出的理論也要愈明確愈好。

--
Tags: [] [] []

Friday, December 27, 2002

《學習地圖》佳句整理

--

All life is an experiment.
  -- Ralph Waldo Emerson, American jurist

生命是一場實驗
  -- 奧利維 W. 霍姆斯 美國法學家

--

實際上,「不斷的變化」是我們唯一能預知的趨勢。
  -- 琳達A.珊提斯博士《創造未來》

--

地球上沒有萬無一失的事,只有機會而已。
  -- 麥克阿瑟將軍

--

今日,最大的財富來源就在你的兩耳之間。
今日,財富是蘊藏在腦力而非蠻力。
  -- 布萊恩‧崔西《最大的成就》

--

教育的最大目的就是學習如何學習。
  -- 路易斯 A. 馬恰多《創造未來》

--

一個發出新觀念的頭腦,永遠不能走回頭路。
  -- 奧利維 W. 霍姆斯 美國法學家

--

我的心一定非常巨大,
因為有時,我必須花一個禮拜的時間才能下定決定。
  -- 馬克‧吐溫

--

獲得一個好主意的最佳方法就是先得到許多的主意。
  -- 李能斯‧鮑琳 兩屆諾貝爾獎得主

--

如果你除了最好的東西之外,一概不接受,通常你就會得到最好的東西。
人生就是這麼奇妙。
  -- 毛姆 英國小說家

--

生命唯一的目的,就是成就我們能力所能及的事。
  -- 羅伯 L. 史帝文生《金銀島》作者

--

想像比知識更重要。
  -- 愛因斯坦 物理學家
--

我們將找到一條路,要不就走出一條路。
  -- 漢尼拔 迦太基統帥

--

遠見非常重要,因為沒有遠見,就不會為某事堅持到底,常會因故屈服。
  --《學習地圖》

--

想像力勝過意志力
  -- 拿破崙

--

誰也不能保證,在什麼時候可以達成目標,
可是我們可以保證,你絕對不能達成你未設定的目標。
  -- 大衛‧麥克內利《即使老鷹也需要鼓勵》

--

對那些「一身家當只有才智」的人而言,時間是他們唯一的本錢。
  -- 巴爾札克 寫實派小說家

--

如果你珍惜生命,那就不要浪費時間,因為生命是由時間組成的。
  -- 富蘭克林 政治家及物理學家

--

藉著行動,你教育了自己。
  -- 大衛 B. 艾利斯《成為卓越的學生》

--

當我想飛時,不要叫我用走的。
  -- 葛莉娜‧多莉亞 英國教育家

--

如果我能用言語來表達,就不需要用舞蹈來表現。
  -- 鄧肯 舞蹈家

--

啊!如果你能用舞蹈來表達你剛才所說的話,我就會明白了。
  -- 尼可斯‧卡贊塔基斯 希臘作家

--

一盎斯的經驗與一噸的理論等值。
  -- 富蘭克林

--

哦!dodo(古代巨鳥)說:「最佳的解釋方法就是去做(do)。」
  -- 路易士‧卡洛《愛麗絲夢遊仙境》

--

有許多想法在被移植到別人的心中之後,
會比在原來出生的地方,長得更好。
  -- 小奧利佛 W. 霍姆斯 美國法官,人稱「偉大的異議者」

--

真正的記憶藝術就是集中注意力的藝術。
  -- 山謬‧約翰生 英國文學家及辭典編篡家

--

沒犯錯的人,通常成不了什麼大事。
  -- 威廉 C. 麥基主教

--

自我控制和自動自發的學習者,
是能計畫、管理和評量自己技能和策略的人。
  -- 芭芭拉 L. 麥孔 丹佛大學

--

大多數的人寧願死,也不願思考;而事實上,他們的確如此。
  -- 羅素 英國哲學家和數學家

--

幾乎沒有人在一年內思考過二、三次的;
而我則因為在一週內思考一、二次而聞名國際。
  -- 蕭伯納 英國劇作家

--

我們所需要的資源盡在我們的心中
  -- 羅斯福

--

對那些不思考的人而言,最好偶爾重整一下他們的偏見。
  -- 路瑟‧伯班克 美國植物育種家

--

許多人以為他們是在思考,事實上,他們只是在重整他們的偏見而已。
  -- 威廉‧詹姆斯 美國哲學和心理學家

--

天才見人所見,但思人所未思。
  -- 森特‧哲爾吉 維他命 C 的發現者

--

財富是人類思考能力的產品。
  -- 安‧蘭德

--

藝術和生命一樣,其超然主宰是「想像」,而不是「發明」。
  -- 康拉德 英國小說家

--

為了避開「思考」的勞苦,人們情願出外遠征,冒各種險。
  -- 愛迪生

--

每一項直覺都包含「非理性的因素」或「創造的本能」。
  -- 卡爾‧帕伯

--

就發展充實穩固的教育而言,
沒有一樣東西比純潔、不受污染的好奇心更重要的了。
  -- 波頓 L. 懷特《生命最初三年》

--

正如每位有見識的教師所瞭解,
教育的問題在於我們太重視「教」,而不夠重視「學」。
  -- 彼得‧伊文斯與喬夫‧迪漢《心智的沒落》

--

我從不讓學校干擾我的學習。
  -- 馬克‧吐溫

--

你不能教別人任何事,只能幫別人在心中發現它。
  -- 伽利略 義大利天文學家

--

心靈不是有待填充的器皿,而是有待引燃的火焰。
  -- 普盧塔克 古希臘傳記作家、散文家

--

如果他真的是聰明的老師,他不會邀請你進入他的智慧之屋,
而應該引導你走到進入你自己心靈的門檻。
  -- 紀伯倫《先知》

--
Tags: [] [] [] []

Friday, November 29, 2002

睡人

Awakenings

書名:睡人(Awakenings)
作者:Oliver Sacks
譯者:范昱峰
導讀:孫中興、傅中玲
出版:時報出版

--

疾病是最大的不幸,而病中最大的不幸是孤單。
……孤單的折磨比地獄還可怕。
他們大都不言不動地躺著,
有的人思想和感覺固定在長眠降臨時的定點上,
有的甚至既無思想也無意志。
他們的心智仍然清晰、明朗,
可是整個人卻像包在囊中或繭中。
  -- 旦恩

--

我的主要症狀是,我無法開始,也無法停止。
不是動彈不得,就是被迫加速……

--

往下降,只是下降
進入永遠孤獨的世界
不是世界,的確不是
心靈的黑暗,喪失荒蕪和匱乏
塵世的感受已經枯澀
塵世的精神已經無用……
  -- 旦丁和艾略特

--

命運慘忍又仁慈,注定你
被庰棄於歡樂和痛苦之外
你的生命將是漫長、死寂、僵化的安靜
衝動不起,熱血不流
靜若海洋風波不興
精靈只讓海洋輕輕流
  -- Abelard

--

就某些方面來說,實在的事情,本身就是理論……
追逐現象以外的事情,不具任何意義:現象就是理論。
  -- 哥德

--

整個世界就像在演戲……但是你還是你自己,
你只該扮演你自己……凡事都無法擺脫本性而隨心所欲的變化。
  -- 白朗寧

--

「只要你走在我的身邊,我就能夠感受你的走路能力。
我分享到你的走路能力、你的知覺、你的感受、你的存在。
你在不知不覺中,送了我一份厚禮」

「我分享別人,也分享音樂。不管是別人、別人的動作、音樂的節奏,
動作的感覺都能傳達到我的身上。還有存在的感覺也一樣傳達過來。」
  -- 一個精通音樂的患者

--

過去二、三十年來,我的心智有了某些改變
……從前圖畫和音樂帶給我極大的愉快。
可是……現在對於音樂和圖畫,我已經毫無興趣
……我的全副心意好像只在於從蒐集到的大堆事實中,歸納出規則而已
……喪失這些品味、喪失高尚的美感,就是喪失幸福快樂。
可能對智力──更可能對品德──造成傷害,
因為本性中的感情部分遭到削弱。
  -- Darwin

--

激烈、漫長、緩慢的痛苦、不慌不忙
……把人打進十八層地獄
……它不能使人變好,卻能使人更深沉
……終於在脫了一層皮之後,從重病的深淵中再生凱歸
……更懂得歡樂、更加天真,然而世故百倍。
  -- 尼采

--
Tags: [] [] []

Monday, January 29, 2001

程式設計的箴言──擷取自《Writing Solid Code》

這一陣子以來,公司瀰漫在一片除錯的淵藪當中,很多人都顯得心力交瘁,我自己也被攪得焦頭濫額。這不禁讓人想起一句品管上的名言:品質是內建的,不是外加的(Quality is build-in, not add-on.)──這時讀來,倍感切心。

於是這次就延續上次的“程式設計的箴言”,不過換了一本關於“除錯”的書:

  1. 啟動所有編譯器中的預警功能。
  2. 利用lint找出那些編譯器所找不到的錯誤。
  3. 如果您有單元測試工具,請好好利用。
  4. 請同時保有“偵錯版”及“上市版”。
  5. 請利用assert維護巨集來確認函式引數的正確性。
  6. 避免讓程式產生未定義的行為,不然就在這些地方加上維護敘述,以免有人誤用了這些未定義的結果。
  7. 適時地加上註解,以免浪費別人的時間來看懂您的維護敘述。
  8. 不要直接利用假設的狀況,否則請加上維護敘述來檢查這些條件。
  9. 利用維護敘述找出不該在正常情況下發生的現象。
  10. 不要為求包容意外的狀況而忽略了潛在的錯誤。
  11. 利用不同的演算法來協助您確認程式的結果。
  12. 避免產生隨機行為,並且讓錯誤無所遁形。
  13. 清除不能使用的記憶體空間,以免誤用了它的資料而不自知。
  14. 程式中如果有些行為太少發生了,就強迫它多發生幾次。
  15. 多保留一些系統資訊,有助於進行更嚴謹的除錯。
  16. 徹底建立子系統的檢查程序,並且盡可能地去使用它。
  17. 小心地設計測試條件,從各種可行的方法中慎選最好的。
  18. 致力寫出無形的,而且完整的測試。
  19. 不要以發行時的標準來苛求偵錯版本,偵錯能力是必須犧牲速度及程式大小換來的。
  20. 不要等到錯誤發生,才被迫去逐步追蹤程式。
  21. 逐步追蹤您的程式。
  22. 逐步追蹤程式的時候,請多注意資料的流向及內容。
  23. 以原始程式指令為單位無法知道所有執行的細節,面對重要的程式碼最好以組合語言指令為單位來逐步測試。
  24. 讓程式的介面為程式師把關,使他們不至於忽略錯誤的情況,更不要因為傳回值的設計不良而造成錯誤。
  25. 不時地檢查、並且去除函式介面裡的缺失。
  26. 不要以一個函式來包含多項功能;盡可能讓每一個函式只完成一項獨立的功能,這樣有助於我們做更完整的引數檢查。
  27. 清楚地定義函式的引數,不要弄得模稜兩可。
  28. 確定函式的輸入值都是正確的,以避免函式傳回“輸入錯誤”的訊息。
  29. 讓一般的程式師都能由函式的定義看出函式的呼叫方法,並且避免使用布林值來當引數。
  30. 用註解來強調函式中潛在的危機。
  31. 利用定義明確的資料型別。
  32. 隨時注意變數會不會產生溢位或不足位的現象。
  33. 寫程式的時候要盡量依照原始的設計,任何無心的偏差都可能造成始料未及的錯誤。
  34. 盡量使每一個步驟都只用一段程式來完成。
  35. 盡量不用if敘述來處理例外的狀況。
  36. 避免層層疊疊的使用?:運算子。
  37. 盡量使同一類的特殊狀況只用一段程式處理──將相同的條件敘述合成一條。
  38. 避免採用程式語言的危險慣例。
  39. 若非必要,不要任意將不同類的運算混在一個式子裡。萬一必須將不同的運算放在一起使用,就用括號來標明運算的順序。
  40. 避免呼叫會傳回錯誤碼的函式。
  41. 不屬於自己的記憶體,就不要使用。
  42. 不要去使用已經被我們釋放的記憶體空間。
  43. 不要把用來傳輸出結果的記憶體拿來當成作業時的暫存空間。
  44. 不要以 static(或整體性)的空間來傳資料。
  45. 不要讓我們的函式變成“寄生蟲”。
  46. 不要濫用程式語言的特性。
  47. 將 C 的原始程式寫短,編譯出來的執行碼不見得就會有效率。
  48. 寫程式要盡量讓一般人看懂。
  49. 錯誤不會自己“跑掉”。
  50. 發現錯誤立即修正,莫待將來付出更慘痛的代價。
  51. 不能只是解除錯誤的表象,要除掉病因才能真正解決問題。
  52. 除非為了讓軟體更成功,非修改不可。否則不要隨便“整理”程式。
  53. 不要增添沒有必要的功能。
  54. 任何一項功能都要付出代價。
  55. 不要容許沒有必要的彈性。
  56. 不要盲目地從一堆“嘗試”中去找答案;將時間用來找尋“最正確”的方法。
  57. 每完成一小部份,就先回頭測試一遍。不管進度是不是落後,一定要徹底地將程式測試過。
  58. 不能只靠測試小組來除錯。
  59. 不要錯怪測試人員存心找麻煩。
  60. 建立自己適用的優先順序,並確實地依照這個標準來做取捨。
  61. 不要讓同一個錯誤有再次出現的機會。

好了,總共六十一條,終於整理出來了,希望對各位有所幫助。想要知道更詳盡內容的話,強力建議諸位直接去翻閱本書。

Tags: [] [] [] []

Sunday, January 28, 2001

程式設計的箴言──擷取自《資料結構與程式設計》

前一陣子轉貼了《教堂與市集》的格言後,大家的反應還滿正面的,於是就趁年假,再為大家剪貼一下《資料結構與程式設計》中的箴言:

  1. 將資料專門化和抽象化的過程,是先於資料結構的選擇和程式的撰寫。
  2. 一個具體的問題描述是與一千個尚未運用的抽象概念等值的。
  3. 永遠小心謹慎地給予變數及函式合宜的名稱,並提供充分的說明。
  4. 盡量使你的文件(document)簡潔但具描述性。
  5. 花在閱讀程式的時間永遠比撰寫程式來得多。
  6. 切勿見樹不見林。
  7. 每一個函式只做一個工作,且須將其做好。
  8. 每一個函式必須隱藏部分東西。
  9. 盡量使得關連性簡單,盡可能避免使用全域(global)變數。
  10. 不要引起副作用(side-effects)。
  11. 盡可能地,提前做好除錯與測試。
  12. 測試資料之品質遠較數量重要。
  13. 程式測試可用以顯示錯誤之存在,而非其不存在。
  14. 對於每一小型模組採用玻璃箱(glass-box )測試;對於程式中較大段落,則採用黑箱測試(black-box)。
  15. 大部分的程式以百分之九十的時間處理百分之十的指令。
  16. 找出關鍵的百分之十,並全力使其更具效率。
  17. 絕不在規格說明確定及完整前開始編寫程式。
  18. 瞭解你的問題,對每一個函式定義精確的前置條件及後置條件。
  19. 盡可能地使演算法簡單。
  20. 如有疑問時,選擇簡單的方法。
  21. 選擇演算法時,將時間與空間的邊際效應列入考慮範圍。
  22. 絕不怕重新開始:下一次可能會是既精簡又容易。
  23. 確定你完全瞭解問題。
  24. 如需改變問題的項目,明確解釋所做的變動。
  25. 匆忙行事,事後後悔;倉促地撰寫程式就會永遠地除錯。
  26. 重新開始多半比對舊程式打補釘容易得多。
  27. 要經常計劃建造原型(prototype )及丟棄它;不論事前規劃如何,你都得如此做的。
Tags: [] [] [] []

Thursday, July 13, 2000

《教堂與市集》的格言

[格言 1] 好軟體都是起源於程式發展者要解決切身之痛。

1. Every good work of software starts by scratching a developer's personal itch.

[格言 2] 優秀的程式師知道要寫程式,偉大的程式師知道要改寫(和重覆利用)程式。

2. Good programmers know what to write. Great ones know what to rewrite (and reuse).

[格言 3] “計畫好如何捨棄一條路吧,你遲早會想盡辦法這麼做的。”
-- 引自 Fred Brooks 《人月迷思》 一書的第十一章

3. "Plan to throw one away; you will, anyhow."
-- Fred Brooks, "The Mythical Man-Month", Chapter 11

[格言 4] 抱持正確的態度,就會發現有趣的問題。

4. If you have the right attitude, interesting problems will find you.

[格言 5] 當你對一個問題不再感興趣時,你最後的責任就是找位能勝任的接棒人。

5. When you lose interest in a program, your last duty to it is to hand it off to a competent successor.

[格言 6] 把你的使用者視為協同發展人,可以讓你傷最少的腦筋,但做到原始碼的 快速改善,程式的除錯有績效。

6. Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.

[格言 7] 儘早,經常發表新版本,並且傾聽使用者的意見。

7. Release early. Release often. And listen to your customers.

[格言 8] 以足夠多的“beta 版”測試者和協同發展者做基礎,幾乎程式中的每一個問題都可以很快地找出來,並且對某些人而言,針對發現的問題的解決方法是顯而易見的。

8. Given a large enough beta-tester and co-developer base, almost everyproblem will be characterized quickly and the fix obvious to someone.

[格言 9] 聰明的資料結構配上笨拙的程式碼要比相反的組合好。

9. Smart data structures and dumb code works a lot better than the other way around.

[格言 10] 如果你視 beta 版測試者如同你最珍貴的資源,那麼他們會以此做為回報。

10. If you treat your beta-testers as if they're your most valuable resource, they will respond by becoming your most valuable resource.

[格言 11] 體認你使用者提供的巧思,以獲取好點子,有時候越後到的越好。

11. The next best thing to having good ideas is recognizing good ideasfrom your users. Sometimes the latter is better.

[格言 12] 通常,最適切和最有創意的解題法來自發覺自己對問題原先的觀念是錯誤的。

12. Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong.

[格言 13] 設計上完美,不是“沒有東西能再被加入”,而是 “沒有東西能再被移出”。

13. "Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away."

[格言 14] 任何的工具以我們所知道的方法來使用都會有用,但一個真正了不起的工具會以你從未想過的使用方法來發揮它的功能。

14. Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected.

[格言 15] 寫作任何的通信閘軟體時,要盡可能地不去擾動到通訊的資料流,-- 並且絕對不要丟掉其中任何的資訊,除非接收方強迫你這麼做。

15. When writing gateway software of any kind, take pains to disturb the data stream as little as possible -- and *never* throw away information unless the recipient forces you to!

[格言 16] 當你設計的語言不是嚴謹到“完全 Turing”,你可以採用比較平易的語法。

16. When your language is nowhere near Turing-complete, syntactic sugar can be your friend.

[格言 17] 一個保密系統是否安全依存於它隱藏的秘密,注意不要有“虛擬秘密”。

17. A security system is only as secure as its secret. Beware of pseudo-secrets.

[譯注] 以 fetchmail 為例,隱藏的秘密是指“通行密碼”,“虛擬秘密”是指把通行密碼編碼後存於設定檔中。

[格言 18] 為了要解有趣的問題,開始找你感興趣的問題吧!

18. To solve an interesting problem, start by finding a problem that is interesting to you.

[格言 19] 假如專案發展協調者擁有至少跟網際網路一樣好的媒體,而他也不靠強制力來領導,那麼一群人必定勝過一個人。

19. Provided the development coordinator has a medium at least as good as the Internet, and knows how to lead without coercion, many heads are inevitably better than one.

詳細的內容,請參考《教堂與市集》(The Cathedral and the Bazaar

Tags: [] [] []