網頁

搜尋此網誌

2013年3月6日 星期三

徹底研究Python:談內建(built-in)物件

徹底研究Python:談內建(built-in)物件。

啟動Python interpreter之後,就已經可以使用一些東西,這些東西稱為Python的內建(built-in)物件,是Python程式語言本身的一部分(即Python的核心)。我們可以使用「__builtin__」模組存取這些內建物件,使用len(dir(__builtin__))或len(__builtins__)指令可以發現總共有144個,這些內建物件可以分成下列4類:
  • 內建常數,共11個
    • Python程式語言本身內建,共6個
      1. False
      2. True
      3. None
      4. NotImplemented
      5. Ellipsis
      6. __debug__
    • 因Python自動匯入site模組,額外加入常數至內建名稱空間之中,共5個
      1. quit
      2. exit
      3. copyritht
      4. license
      5. credits
  • 內建型別,共28個
    1. basestring
    2. bool
    3. buffer
    4. bytearray
    5. bytes (bytes型別是Python 3.0才正式新增,2.x版的bytes等於str型別)
    6. classmethod
    7. complex
    8. dict
    9. enumerate
    10. file
    11. float
    12. frozenset
    13. int
    14. list
    15. long
    16. memoryview
    17. object
    18. property
    19. reversed
    20. set
    21. slice
    22. staticmethod
    23. str
    24. super
    25. tuple
    26. type
    27. unicode
    28. xrange
  • 內建函式,共53個
    1. __import__
    2. abs
    3. all
    4. any
    5. apply
    6. bin
    7. callable
    8. chr
    9. cmp
    10. coerce
    11. compile
    12. delattr
    13. dir
    14. divmod
    15. eval
    16. execfile
    17. filter
    18. format
    19. getattr
    20. globals
    21. hasattr
    22. hash
    23. help:因Python自動匯入site模組,額外加入至內建函式中
    24. hex
    25. id
    26. input
    27. intern
    28. isinstance
    29. issubclass
    30. iter
    31. len
    32. locals
    33. map
    34. max
    35. min
    36. next
    37. oct
    38. open
    39. ord
    40. pow
    41. print
    42. range
    43. raw_input
    44. reduce
    45. reload
    46. repr
    47. round
    48. setattr
    49. sorted
    50. sum
    51. unichr
    52. vars
    53. zip
  • 內建例外,共48個
    1. ArithmeticError
    2. AssertionError
    3. AttributeError
    4. BaseException
    5. BufferError
    6. BytesWarning
    7. DeprecationWarning
    8. EOFError
    9. EnvironmentError
    10. Exception
    11. FloatingPointError
    12. FutureWarning
    13. GeneratorExit
    14. IOError
    15. ImportError
    16. ImportWarning
    17. IndentationError
    18. IndexError
    19. KeyError
    20. KeyboardInterrupt
    21. LookupError
    22. MemoryError
    23. NameError
    24. NotImplementedError
    25. OSError
    26. OverflowError
    27. PendingDeprecationWarning
    28. ReferenceError
    29. RuntimeError
    30. RuntimeWarning
    31. StandardError
    32. StopIteration
    33. SyntaxError
    34. SyntaxWarning
    35. SystemError
    36. SystemExit
    37. TabError
    38. TypeError
    39. UnboundLocalError
    40. UnicodeDecodeError
    41. UnicodeEncodeError
    42. UnicodeError
    43. UnicodeTranslateError
    44. UnicodeWarning
    45. UserWarning
    46. ValueError
    47. Warning
    48. ZeroDivisionError
上述數量加起來共140個,剩下4個是模組屬性(attribute):
  • _:上一次最新輸出的結果(last printed expression)
  • __doc__:文件字串
  • __name__:名稱
  • __package__:套件

###

2013年2月23日 星期六

Graphviz 圖形視覺化

偶然在自由軟體鑄造場讀到這篇「Graphviz - 用指令來畫關係圖吧!」,玩了一下之後,發現Graphviz是個不錯的軟體,Graphviz是開放源碼的圖形視覺化軟體,圖形視覺化(graph visualization)是將結構化資訊以圖表(diagram)的方式呈現圖形(graph)或網路(network),所以Graphviz就是graph visualization。

Graphviz讀取DOT語言所建立的圖形描述檔案,依據我們設定輸出有用的檔案格式,像是JPG, PNG, SVG, PDF...等。此外,Graphviz對於具體圖表也提供許多有用的特色,例如顏色、字型
、樣式、超連結...等,讓使用者可以調整外觀樣式。

想要在Ubuntu上安裝Graphviz相當容易,執行「sudo apt-get install graphviz」就可以了,安裝完成後,就能利用下列指令建立不同圖表。(這些指令說明透過man graphviz指令)
  • dot
    階層式配置(hierarchical layout)圖形,繪製的圖形有方向性。
  • neato
    彈簧模型配置(spring model'' layout)圖形,通常不超過100個節點,繪製的圖形無方向性。
  • twopi
    放射狀的配置(radial layout)圖形。
  • circo
    環狀配置(circular layout)圖形。
  • fdp
    和neato的配置相似,差別在於neato是最小化energy function,而fdp是減少force,繪製的圖形無方向性。
  • sfdp
    多尺度(multiscale)的fdp版本,繪製的圖形無方向性。
對於這些指令有基本認識之後,最簡單使用Graphviz的方式是利用DOT語言建立一個檔案(通常是.gv的副檔名),利用Graphviz的指令處理輸出圖片,這部分可以參考「Graphviz - 用指令來畫關係圖吧!」裡面的「Graphviz 的使用」。

還有,若想使用Python控制Graphviz,可以使用libgv-python,安裝指令是sudo apt-get install libgv-python,使用方式請參考Graphviz的API文件。

###

2013年1月9日 星期三

Android User Interface 使用者介面

這篇將概略介紹開發Android應用程式所需的User Interface資訊,詳細內容請參閱官方網站:http://developer.android.com/guide/topics/ui/index.html
  • Android應用程式的UI是用View物件與ViewGroup物件所建置出來的。
    • ViewGroup類別是View的子類別,比較特殊的是ViewGroup可以包含其他View,或者說ViewGroup是裝載View的容器。
    • 常用的ViewGroup元件有三個
      • LinearLayout
      • RelativeLayout,最強大的配置方式,專家建議使用。
      • AbsoluteLayout,絕對定位的配置方式,幾乎不太會用到。
    • 常用的View元件有
      • Button
      • EditText
      • CheckBox
      • RadioButton
      • ToggleButton
      • Spinner
      • DatePicker
      • TimePicker
      • TextView
  • 建立UI的方式有兩種
    • 使用XML文件宣告UI元素,XML Layout檔案會在專案的res/layout資料夾中。專家建議使用這種方式建立UI!可以讓Code和Design分離。
    • 撰寫程式碼在執行時間實體化UI元素,讓程式可以動態控制UI。
  • UI設計,參閱http://developer.android.com/design/get-started/ui-overview.html
    • Action Bar很重要, Android 3.0 (API level 11)之後加入,官方建議使用。
###

2012年12月29日 星期六

Creating Android applications: develop and design 開發設計極速上手

最近剛接觸Android應用程式開發,原本想說只看官方的Training資訊就好,雖然Google官方文件已經寫的很好(完整詳細又有系統),但就是資訊太多沒有頭緒,看了一陣子發現還是找本入門書來讀,於是找了這本「Android應用程式開發設計極速上手」。


Chris Haseman著,曾建富譯,Android應用程式開發設計極速上手,台北:上奇資訊,2012。譯自:Creating Android applications: develop and design

這本書的特色在於內容著重於Android應用程式的原理與觀念,不像一些書籍是介紹Android有什麼元件可以用、怎麼用(範例程式),像這些「用法」其實Google的Android官方網站已經非常詳盡,不太需要去買書來看。

倒是像原理與觀念方面的知識,這些內容分佈在Android官方網站各處,對於初學者來說要掌握比較困難(還要花大量時間),所以才需要看這本「極速上手」!作者是擁有8年行動軟體開發經驗,開發Android則擁有3年,內容上以循序漸進的方式引導讀者進入Android應用程式的開發,總共11章的內容建議依序閱讀。

比較重要的觀念有:
  • AndroidManifest.xml是Android應用程式的入口,這個檔案有關應用程式的所有設定。
  • Android應用程式的「根」是Application類別,一個Application可以有多個Activity類別。
  • Activity類別像是網頁領域的Web Page,Android應用程式的畫面就像是網頁。一般來說,一個Activity會對應到一個特定的Layout。
  • Intent類別像是視窗領域的Message,Intent是用在各個Activity類別之間的通訊,以及和Android系統溝通之用。
  • Android應用程式的組成除了最常用的Activity外,還有其他三個類別:Service、Content Provider、Broadcast Receiver,總共4種元件。

###

2012年12月26日 星期三

Contributing to Eclipse 投入「蝕」

搞笑談軟工的「還少一本書:Contributing to eclipse: Principles, Patterns, and Plug-ins」這篇文章提到一本經典著作,聽了Teddy的話於是買一本回家供奉珍藏,以免之後發生絕版的情形而遺憾。

只要有心,人人都可以成為「蝕」神!

Erich Gamma and Kent Beck, Contributing to Eclipse: Principles, Patterns, and Plug-Ins, Massachusetts: Person Education, 2004.

這本書的作者是大名鼎鼎的Erich Gamma,他就是「物件導向設計模式」的作者之一,而他和 Kent Beck是JUnit的開發者和維護者。這本書主要是介紹eclipse貢獻開發的重要觀念和資訊,並且說明Eclipse的生態系,其中Eclipse有個重要觀念:就是每個使用eclipse的用戶都是潛在的程式開發人員。作者說這和Smalltalk的目標很像,授予用戶能夠使用Eclipse的經驗,而且提供用戶有更多權力的學習環境,進而不斷提升整個Eclipse的功能。

在Eclipse生態系中有6個角色:
  • Users:使用者,使用Eclipse的程式開發人員。
  • Configurers:配置者,根據自身的使用經驗設定Eclipse功能。
  • Extenders:擴展者,改變原本Eclipse的既有功能,讓Eclipse擴充做更多的事情。
  • Publishiers:發佈者,開發好用的擴充套件,提供給Eclipse的使用者。
  • Enablers:啟用者,提供擴充套件的擴充點讓更多開發人員擴充既有功能。
  • Committer:提交人,Eclipse是Open Source Project,由提交人組成的委員會管理。
這六個角色當中的5個層級構成貢獻循環(Contribution Circle),循環是Users→ Configurers→ Extenders→ Publishiers→ Enablers→ Users,注意到Enablers最後回到Users。整本書分成4個循環介紹如何貢獻Eclipse,從「Circle 0」到「Circle 3」,每個循環更進一步介紹貢獻開發的細節。

貢獻Eclipse之前,必須先了解eclipse的軟體架構,基本上Eclipse是採用外掛架構(plug-in architecture, 或稱插件架構),外掛架構由兩個部分組成:
  • 擴充點(extention points):提供外掛放置的地方(places-to-plug-things-in)
  • 擴充(extentions ):外掛的元件(things-plugged-in)
 Eclipse的架構由上至下分為三層:
  • Plug-in Development Environment (PDE):外掛開發環境,擴充JDT使Eclipse支援外掛的開發。
  • Java Development Tools (JDT):Java開發工具,讓Eclipse成為完整的Java整合開發環境。
  • Platform:定義通用性程式語言(common programming-language-neutral)的基礎架構
其中Platform的部分由兩大部分組成,各自包含不同元件:
  • 使用者介面部分(User Interface, UI)
    • Workbench(工作臺)
    • JFace
    • Standward Widget Toolkit, SWT
  • 核心部分(Core, UI-independent)
    • Workspace(工作區)
    • Runtime
有關使用者介面的資訊可以參考官方準則「Eclipse User Interface GuidelinesVersion 2.1」,裡面有更詳細的說明。在貢獻Eclipse時,務必先有上述的概念,並且認識相關術語,這樣閱讀開發文件能可以清楚了解。

###

2012年12月11日 星期二

J.J.Pan 人生基本功:建築師潘冀的砌磚哲學

建築以載道.

這是講述建築師潘冀(Joshua Jin Pan)先生故事的一本書。如果沒有出版這本書,大概除了建築界之外沒有人知道他吧!潘冀先生是台灣最大的建築事務所主持人,而且新竹科學園區三分之一的廠房出自他手,他行事低調做人謙虛,因此「知名度」不高。做事則是務實、實事求是、不攀關係、不附榮華、不苟同流俗,非常值得我們學習。

這本書不僅讓我們有機會認識潘冀先生,更重要的是他的堅持與人生態度,他的價值觀正確且正面,我認為非常值得青年學子學習,書中包含他求學畢業、工作與創業的過程,特別推薦給剛進入職場的新鮮人閱讀參考。


潘冀口述、藍麗娟撰文,人生基本功:建築師潘冀的砌磚哲學,台北:圓神,2010。
圓神書活網:http://www.booklife.com.tw/jjpan.htm

以下是潘冀先生所說的幾段話,讀了可以更堅定自己的信念!
  • 很難改變別人的偏見,但自身處境可以改變,往自己堅持的理想前進。 p. 40
  • 每一件事我都要能講得出道理,講得出來,就不會被說是用權力在壓迫別人。 p. 53
  • 每一個工作,都可以有計畫的幫自己尋找磨練的機會。 p.53
  • 所有的成就都來自於基本功;而基本功來自於既深且廣的歷練。過程中,心態尤其重要。 p. 58
  • 每天把生活的優先順序排對了,就可以讓你的腦袋很清楚,日子過得比較順暢有效率。 p. 63
  • 「一次就做對」與「一次就做到完美」是不同的概念。
    我們應該先把事情做到一個(正確的)階段,然後再往更高的目標跳。也就是說,一定要先求有,再求好。 p. 69
  • 精神好時做較艱澀的事,精神差時做比較輕鬆的事。 p. 71
  • 好的建築是里程碑,壞的建築是墓碑。 p. 92
  • 最有價值的事物都是不退流行的。人類有某些基本原則是不變的。 p. 100
  • 建築設計的才能可以培養,但是,正確的價值觀與做事方法卻要經過薰陶。 p. 138
  • 管理學上講究「留才」;對我而言,留在我們事務所是一種「留」,留在世界上是一種「留」,好人才不一定都要我們擁有,只要可以看到,可以欣賞,對社會有貢獻就好了。 p. 141
  • 每個人都是一個人,不是一個生產工具。 p. 142
  • 站在對方立場想,說道理給他聽,讓他了解,你與他都站在同一條陣線上,既然目標相同,可以互相幫忙,把事情做好,你不是只顧自己的私利。這樣,即使是看似一觸即發的衝突,也能化解為雙贏的局面。 p. 160
  • 專業人員就是專業人員,沒有級別之分。身為專業服務工作者,做專業的工作是不能管階級的。 p. 167
  • 一件不對的事,儘管大家都做,仍然是不對的事。 p. 174
  • 只要大家都當一回事去努力,不正當的事情就會減少,這樣社會才有希望;假如大家都隨波逐流,越陷越深,就沒有希望了。 p. 176
  • 我們的教育制度迫使孩子們不斷在跑,每一次都是為了考試,考完一關再考一關,每一次都只是衝刺百米而已;但是,人生是一輩子的事,我們應該培養孩子的不是考試的能力,而是面對人生的人格、素質、涵養與能力。 p. 179
  • 人總是可以在夾縫裡找到一些想做或喜歡的事,把它穿插在不想或不喜歡的事之間,就不至於一整天都繃緊神經,也是平衡工作與生活的重要關鍵。 p. 201
  • 一般人認為將工作與生活的時間與空間分開,就是「工作與生活平衡」。我認為關鍵不在於各自完整分開,而在於「專心」。不論工作與生活,做每件事只要專心即可。 p. 203
  • 求取工作與生活的平衡有其方法,關注的焦點不見得是時間多寡,而在於互動品質。 p. 210
  • 嚴格來說,人並不絕對擁有什麼。如果你覺得你「擁有」某些東西,那是因為上天交付給每個人的職責與角色不同,並賦予人人不同的機會與條件。人的職責是努力將上天交付的條件善加發揮,盡力把事情做好。 p. 213
  • 放下「擁有者」的觀念,把自己視為自己生命、工作崗位、或孩子的「代管經營者」,在人生的短暫光陰裡,如何克盡己責,對世界有貢獻,才是不時需要自我提醒的終極關切。 p. 219
  • 我堅信,社會要進步,每個人都要發揮力量。 p. 229

###

2012年11月9日 星期五

Android Training 建置開發環境

如何開發Android應用程式(Android App)?Google在網站上已經提供一堆說明讓大家參閱(目前只有英文),跟隨Training課程學習,相信開發Android應用程式不是一件麻煩又困難的工作,工欲善其事,必先利其器,開發Android App之前先準備好開發環境吧!

這裡記錄建置Android開發環境的步驟(在Windows系統上開發為例),環境基本上分成兩個部分,一個是整合開發環境(Integrated Development Environment, IDE),另一個是軟體開發套件(Software Development Kit, SDK)。

Part 1, IDE
  1. 下載並且安裝Java SE Development Kit (JDK),程式位於http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. 下載並且安裝Eclipse Classic,必須是3.6.2 (Helios)版本以上,程式位於http://www.eclipse.org/downloads/
  3. 安裝Eclipse外掛Android Development Tools (ADT)套件,安裝方式參閱http://developer.android.com/sdk/installing/installing-adt.html
Part 2, SDK
  1. 下載Android SDK,http://developer.android.com/sdk/index.html,選擇「Download the SDK for Windows」
  2. 下載之後執行SDK安裝程式,安裝完畢後還沒有結束喔!因為Android SDK只包含核心工具(SDK Tools)的部分,必須啟動SDK管理員( Android SDK Manager)下載額外的套件( SDK packages)。基本上下載預設選擇的套件,一定要記得下載喔!
完成上述兩個部分的安裝步驟後就有了Android的開發環境。注意如果你不想使用IDE,想只用命令列(command line)的話,才需要額外安裝Apache Ant軟體喔!若以IDE方式開發的話,Eclipse就是完成Ant的工作,所以不需要安裝Ant。

那要如何開始開發Android App呢?相當簡單,只要開啟Eclipse建立一個新的Android Project就可以了,詳細參閱Building Your First App這堂課程。

趕快開始行動吧!

對了,如果手上有Android-powered裝置(即Android的手機或平板),可以將自己開發的App在裝置上除錯,記得安裝對應的USB驅動程式。如果手上是Google官方的Nexus裝置,請安裝Google USB Driver,若是其他製造商的裝置,那麼請安裝OEM USB Drivers。
###

2012年11月4日 星期日

Where Good Ideas Come From 創意從何而來

這是一本探討創新空間的書,作者利用長變焦(long zoom)的觀察法審視自然與人文兩個領域,從歷史中探究而提出7個創新模式,這些模式是讓環境之所以能夠孕育出好點子(good idea)的原因,注意作者在這本書中用「好點子」表示創新、創造與發明上的創意,這是為了說明他跨領域的觀點。


史蒂文‧強森(Steven Johnson)著,劉燕芬譯,創意從何而來,台北:大塊文化,2011。譯自:Where Good Ideas Come From: The National History of Innovation

作者一開始從珊瑚礁生態系說明創新空間,並介紹達爾文悖論(Darwin's Paradox),所謂達爾文悖論是指:這麼多不同的生態型態,佔據這麼多的生態席位(ecological niche),卻居住在原本養分極少的水域裡,實在不可思議。除了珊瑚礁的自然領域外,作者也以城市與全球資訊網2的人文領域為例子,探究這兩者的創新空間。這些故事引發讀者的好奇心,因此閱讀起來不會枯燥無趣,每一章也充滿著很多小故事,很容易進入作者的思想中理解他的創新模式。

以下是作者提出的7大創新模式:
  1. 比鄰的可能性─人們需要更多工具,以探索更多邊界
  2. 液態網絡─點子喜歡能流動、碰撞、彼此連結的環境
  3. 緩慢的預感─點子需要養分和時間,才能完整成形
  4. 機緣巧合─結合幸運與智慧,發現原本沒有特別探究的事物
  5. 生成性錯誤─從錯誤中汲取養分,雜訊讓人變得更有創意
  6. 功能變異─借助其他領域的點子,產生意料之外的新用途
  7. 堆疊平台─其他使用者能在前人建立的結構性基礎上,創造新作品
最後第8章,作者將歷史上的好點子以市場與非市場、個體與網絡的特徵分為四類,即四個象限,19世紀以後的發明與創意大多集中在「非市場/網絡」的第四象限,非市場指的是好點子不是以獲利為主要目的(以自由分享為目標),而網絡指的是好點子由多人團體所想出。

為何第四象限成為當代主要的創意引擎,原因是資源共享、共同協作的環境有利於好點子的產生。作者在書中也提到湯瑪斯‧傑佛遜的一段話 :「從我這接收到一個點子的人在接受指令時,並不會使我的縮減;就像他拿一根蠟燭趨近我的燭芯點火時,他取得火光,部不會使我變暗。p. 188」

作者給此書論點濃縮的一句箴言:連結點子會比保護他們更有收穫。
###

2012年10月26日 星期五

Getting Organized in the Google Era | Google時代一定要會的整理術

這是一本介紹統整資訊的書,連結人腦、人性、科技的整理術,因此這本書分成3部分,第1部分是「先認識自己」,第2部分是「全新整理術」,最後第3部分是「克服挑戰」。作者介紹人腦運作的方式,提出一些幫助我們處理資訊的方法和策略,讓我們有效率地統整資訊。

梅瑞爾(Douglas Merrill)、馬丁(James A. Martin)著,胡琦君譯,Google時代一定要會的整理術,台北:天下遠見,2010。譯自「Getting Organized in the Google Era: How to Get Stuff out of Your Head, Find It When You Need It, and Get It Done Right」

由於作者是認知科學的博士,瞭解人腦構造與限制,有些觀念十分重要,例如:人腦非常不適合記憶瑣碎的資訊、人腦不善於做出好決定...等等。作者在這本書提出的21個整理原則讓我們參考,注意這些是原則,而不是規定!
  1. 妥善管理你的生活,以減輕腦部負擔。p. 17 <注意力,雞尾酒效應(cocktail party effect)>
  2. 趕緊把資訊資訊從腦袋中移出,越快越好!p. 19 <短期記憶>
  3. 同時處理多項任務,通常只會讓你更沒有效率。p. 21 <注意力只能專注在一件事情上>
  4. 用故事來記事情。p. 27 <編碼與回想可以有效排序>
  5. 就算某件事有一貫做法,也不表示那是最適當的。p. 45 <朝九晚五制起於工業時代,寒暑假始於農業社會>
  6. 知識不是力量,分享知識才是力量。p. 57 <擁有知識已經垂手可得>
  7. 你要克服的是真實的限制,而不是假想的限制。p. 65 <改變假想的個人限制>
  8. 對自己全然誠實,但別預設立場。p. 69 <檢視真實的個人限制>
  9. 知道何時該忽視你的限制。p. 74 <不要因為個人限制而放棄嘗試>
  10. 在發動引擎前,清楚知道你要去哪裡,又要怎麼去。p. 83 <明確的目標才有脈絡可循,也才有意義,知道為何而做>
  11. 達成目標的方式不只一種,要懂得變通。p. 86 <變通計畫或是調整目標>
  12. 檔案不用歸檔,靠搜尋就好。p. 106 <整理歸檔是為了找得到,現在用搜尋技術就找得到了。>
  13. 唯有真正需要的東西才記進腦子裡。p. 133 <過濾重要而且非記不可的資訊>
  14. 將大體積的東西拆解成數個小單位。p. 136 <人腦善於記憶少量資訊,是CPU而不是HDD>
  15. 每週空出時間再次審視重要資訊。p. 141 <重複的好處可讓資訊再次編碼>
  16. 世上沒有一套整理系統是十全十美的。p. 152 <善用工具的長處、選擇適合的使用方式>
  17. 盡可能使用你已熟知的工具。p. 164 <重點不是工具,而是整理的方法>
  18. 在你的電子資料添加關鍵字詞,讓你日後更容易找到。 p. 194 <資訊必須能被搜尋到才有用>
  19. 事前做註記,有助之後的情境轉換。p. 239 <減少長期記憶、短期記憶與情境之間轉換的腦力>
  20. 將情境相似的工作安排在一起。p. 240 <降低不同記憶之間存取的次數>
  21. 整合工作與生活,別再妄想達到兩者平衡。p. 252 <有效利用時間>
###

2012年10月3日 星期三

50 Erfolgsmodelle 如何下決定

「如何下決定」這本書主要是探討「決策模型」,書中舉出50個最棒的決策模型提供我們做決定時參考。作者將這50個模型分為4類,分別是「如何改善自己」、「如何更加了解自己」、「如何更加了解別人」與「如何改善他人」,其中不乏是常聽到的


麥克‧克羅格魯斯(Mikael Krogerus)、羅曼‧塞普勒(Roman Tschappeler)著,胡瑋珊譯,如何下決定,台北:大塊文化,2012。
譯自:The Decision Book: Fifty Models for Strategic Thinking

如何改善自己(How to Improve Yourself)
  • 艾森豪矩陣(Eisenhower matrix):怎樣加強工作的效率
  • SWOT分析法(SWOT analysis):怎樣找到正確的解決方案
  • 波士頓矩陣(Boston Box):怎樣評估成本和效益
  • 專案投資組合矩陣(project portfolio matrix):怎樣維繫和監督?
  • 惠特默模型(John Whitmore model):我追求的目標正確嗎?
  • 橡皮筋模型(rubber band model):兩難的情況該怎麼處理?
  • 回饋模型(feedback model):處理他人的抱怨和批評
  • 家庭樹模型(family tree model):你們應該維繫的人脈
  • 型態分析盒與奔馳創意法(morphological box and SCAMPER):為什麼需有結構才能發揮創意
  • 君子送禮模型(Esquire gift model):花多少錢送禮?
  • 後果模型(consequences model):當機立斷為什麼很重要?
  • 化解衝突模型(conflict resolution model):怎樣才能漂亮地化解衝突?
  • 十字路口模型(crossroads model):接下來呢?
如何更加了解自己(How to Understand Yourself Better)
  • 沉浸模型(flow model):什麼會讓你快樂?
  • 喬哈里窗(Johari window):別人對你的風評如何?
  • 認知失調理論模型(cognitive dissonance model):人們為什麼明知吸菸不利健康、還是照抽不誤?
  • 音樂矩陣(music matrix):你的音樂品味將可用來詮釋你
  • 匪夷所思的模型(unimaginable model):什麼是你們深信不疑、但又無力證明的事物?
  • 烏夫‧艾爾拜克模型(Uffe Elbæk model):怎樣了解自我
  • 時尚模型(fashion model):我們怎樣打扮
  • 能量模型(energy model):你活在當下嗎?
  • 超級備忘錄模型(SuperMemo model):怎樣牢記所有曾經學過的事物
  • 政治羅盤(political compass):政黨支持什麼理念?
  • 個人表現模型(personal performance model):怎麼知道自己是否應該轉換工作?
  • 鑑往知來模型(making-of model):要想掌握未來,就先得了解自己的過去。
  • 個人潛力陷阱(personal potential trap):為什麼心中不存任何期望會比較好?
  • 技術循環周期(hype cycle):怎樣發掘下一個重大發明?
  • 細膩訊息模型(subtle signals model):細微之處為什麼重要?
  • 人脈網路目標模型(network target model):你的朋友對你的風評如何? 
  • 淺薄知識的模型(superficial knowledge model):你不用做萬事通
如何更加了解別人(How to Understand Others Better)
  • 瑞士乳酪理論(Swiss cheese model): 錯誤是怎麼發生的
  • 馬斯洛金字塔(Maslow pyramids):哪些事物其實是你們需要的,哪些又是你們想要的
  • 跳脫框架思維(Thinking outside the box):怎樣激發出絕佳的點子
  • 社會氛圍和布爾迪厄模型(Sinus Milieu and Bourdieu models):你所屬之處
  • 雙重迴路學習模型(double-loop learning model):怎樣從錯誤之中汲取教訓
  • AI模型(Al model):你屬於哪一種討論的類型?
  • 小世界模型(small-world model):這個世界到底有多小?
  • 帕雷托法則(Pareto principle):為什麼投入百分之二十卻能締造百分之八十的產出?
  • 長尾模型(long-tail model):長尾模型:網路怎樣扭轉了經濟?
  • 蒙地卡羅模擬法(Monte Carlo simulation):我們對確切的結果為什麼只能取得近似值
  • 黑天鵝模型(black swan model):為什麼你的經驗沒讓你變得更加睿智?
  • 斷層-擴散模型(chasm-diffusion model):為什麼人手一台iPod?
  • 黑盒子模型(black box model):信仰為甚麼取代了知識?
  • 地位模型(status model):如何辨識贏家
  • 囚犯的困境(prisoner's dilemma):什麼時候值得信賴別人?
如何改善他人(How to Improve Others)
  • 德萊克斯勒-西貝特團隊績效模型(Drexler-Sibbet team performance model):怎樣將小組打造成團隊
  • 團隊模型(team model):你的團隊有完成任務的能耐嗎?
  • 市場缺口模型(gap-in-the-market model):怎樣發現有收穫的點子
  • 賀賽–布蘭恰德模型(Hersey-Blanchard model):怎樣成功管理你的員工
  • 角色扮演模型(role-playing model): 如何改變本身的觀點?
  • 結果最適化模型(result optimisation model):為什麼印表機總在截止日期之前壞掉?
  • 下一個頂尖的模型(world's next top model):我們可從這本書學到什麼?
這本書總計列出52個決策模型(decision-making models),除了文字說明以外,此書在每個模型中都有繪圖解說,一張圖勝過千言萬語,任何時候都可以選擇任一個模型開始閱讀。注意到,書中最後提到重點:這些決策模型雖然是複雜世界的簡化,但不表示錯誤或是沒有價值,而是提供我們觀察世界的一個方法。

###

熱門文章