Total Pageviews

2019/07/06

[閱讀筆記] Thinking in Systems: A Primer (4/9)


  1. 你要時時思考,如果 A 引起 B,有沒有可能 B 也會影響 A。當有人告訴你,因為人口成長導致貧窮,你應該問問自己,貧窮如何造成人口成長。你不該根據靜態世界來思考,而是該用動態的世界。你應該停止尋找誰該為這件事情負責,而是該開始問 “what is the system?”。透過 feedback 的概念,可以讓你了解系統組成元素間的互動行為。
  2. 在 complex systems,balancing 與 reinforcing feedback loop 是會同時發生的,stock level 拉扯的方向會是衝突的;系統也不會只有一個 stock,填滿一個 stock 的決策,可能是讓另外一個 stock level 排乾所導致。因此,complex systems 不僅僅是保持穩定、呈現指數型成長或平穩地朝向目標邁進。
  3. 以暖氣裝置為例,假設你將室內溫度設定為 20 度,當室內溫度低於 20 度時,就會啟動左邊的 feedback loop,將室內溫度提升到所設定的 20 度;但是與熱咖啡 / 冰咖啡的溫度一樣,咖啡溫度會慢慢趨近於室溫,房子會有縫隙,逐漸將熱氣散掉,故會啟動右邊的 feedback loop,將室內溫度逐漸下降到接近室外溫度 (房屋的隔絕效果越好,溫度下降速度越慢)。當溫度低於設定溫度時,室內溫度可以透過暖氣快速提升 (下方上圖);溫暖的室內溫度,則會緩慢地下降,接近室外溫度 (下方下圖)。
  4. 在真實世界裡,上述的例子,兩個 feedback 並非獨立運作,而是同時運作。當暖氣機開始幫房間加熱的同時,熱氣也會因房屋的空隙而導致室溫下降。但是暖氣會持續供應,使其保持提供的熱氣大於外洩的熱氣,使得室溫能夠接近我們所設定的期望溫度。
  5. 上述暖氣的例子,與嘗試要將有破洞的水桶裝滿水一樣。破洞將掌管整個 feedback loop,當注入水管的水越多,對於破洞施壓的壓力越大,反而會讓流掉的水越多。相同的,如果我們希望盡速讓室內溫度提升,就必須讓暖房速度大於暖氣外洩的速度。暖氣將室內溫度提升到設定溫度是需要時間的,當暖氣外洩的越少,暖房速度就會越快、屋內就會越舒適。
  6. 根據 feedback loop 回饋的資訊所做的決策,僅能影響未來的行為,不能改變系統現在的行為,輸入 (行動) 與輸出(結果) 間一定會有延遲時間 (delay)。以訂貨為例,當我們發現庫存不足時 (information),你下訂單 (decisoin),並不會馬上到貨 (level up stock)。
  7. 由於根據 feedback loop 提供的資訊所做的決策,只能影響系統 future behaviors,你無法馬上看出決策所產生的效果 (即無法影響系統的 current behaviors)。所以,如果你要盡快讓室溫提高到 18 度,你就必須稍微調高設定的溫度;如果你想要盡快清償債務,你就要提高你每次償還的本金加利息的還款金額;如果你想要盡速提升整個團隊的人數,招募進來的人數必須大於離職人數。換言之,你必須要了解系統中所有重要的流向 (important flows),否則你會對系統的行為感到訝異
  8. 庫存管理的的 balancing feedback loop 一定要設定好目標,列出影響 stock level 的重要的流入或流出流程 (inflowing or draining processes),並做出補償 (compensate)。否則,feedback prcess 產生的結果,會高於或低於預期的 stock level。
  9. 我們從暖氣機的例子,可以看出有兩個 balance feedback loop,一個是暖氣機偵測到室內溫度 < 設定溫度時,暖氣機就會啟動,使室溫提升到設定溫度 (heating loop);另外一個則是當室內溫度 > 室外溫度時,會隨著房屋個隔絕設計好壞來決定溫度下降的速度 (leaking out loop)。然而,每個 feedback loop 都會它的 breakdown point,例如當室外溫度下降到零下五度,超過暖氣機的負荷,即 cooling loop > heating loop (heat leak 增加)
,此時室溫就會達不到設定溫度;當室外溫度逐漸上升,heat leak 減少,室內溫度就會逐漸接近暖氣的設定溫度。
  1. 由上述暖氣的例子可以看到,在真實的世界,feedback loop 會同時發生,並非獨立發生
    1. 當 heating loop > cooling loop 時,室內溫度會上升 
    2. 當 heating loop < cooling loop 時,室內溫度會下降 
  2. 全球的人口數也是如此,,會有兩個 feedback loop 同時發生,決定人口的增長
    1. 當出生率 > 死亡率時,人口總數會增加
    2. 當出生率 < 死亡率時,人口總數會減少 
  3. Dynamic equilibrium (動態平衡):以人口總數為例,當出生率 > 死亡率時, reinforcing loop dominate 系統的行為,導致人口總數呈現指數型成長 (exponential growth);但是當出生率開始下滑,最後出生率 = 死亡率時,此時 reinforcing loop 就不再具有重大影響力,進入動態平衡的狀態 (dynamic equilibrium)。
  4. Dominance shifting:當某個 feedback loop 對系統有重大影響,此 loop 就對系統行為具有 dominant。以暖氣為例,當室外溫度不斷下滑,在隔絕不良的房屋中,熱氣會不斷地流逝,暖氣機無法有效供暖時,此時就是 heating loop < cooling loop;但是當室外溫度回暖,暖氣機能夠有效供暖時,此時就變成 heating loop > cooling,dominance loop 就從 cooling loop 變成 heating loop,這就是所謂的 dominance shifting。
  5. 在複雜系統裡,除了同時會有一個以上的 feedback loop 會同時運作外 (ex. reinforcing loop 與 balancing loop 同時運作),dominance loop 也會不斷地改變 (ex. 有時候 reinforcing loop 比較強、有時候 balancing loop 比較強)。
  6. 我們每天在報章雜誌看到的經濟預測、國家預算編列、天氣預報、未來地球暖化等議題,如果你想探究每個系統的情境,你需要問以下幾個問題
    1. 有哪些驅動因素 (driving factors) 有可能會影響系統? (例如出生率與死亡率會影響人口 system)
      1. 我們會建立各種測試情境 (scenario),檢視有哪些驅動因素會影響系統。最終,你需挑選一個最有可能發生的測試情境。
      2. 這個問題不好回答,因為這是在猜測未來,然而未來的本質就是不確定。儘管你有強烈的想法,覺得應該是這樣,還是要等未來真的發生了,才能證明你的想法是對的。
      3. 動態系統研究 (dynamic systems studies) 並不是設計來預測未來會發生什麼事情 (predict what will happen),而是用來探索會發生什麼事情 (explore what will happen)
    2. 當確認驅動因素後,會如何影響系統的行為? (例如出生率與死亡率是否如我們想像的,真的對 population level 產生影響)
      1. 第二個問題比較科學,用來驗證我們所建立的系統模型。用來確認我們是否有抓住系統的動態性,是否能了解系統的行為,例如出生率與死亡率的交互影響,會對人口 stock 產生的影響。例如出生率 > 死亡率,會導致人口成長;出生率 < 死亡率,會導致人口減少;出生率 = 死亡率,會導致人口停滯。
      2. 系統動態模型 (system dynamics models) 用來探索可能的未來,以及詢問如果會怎麼樣的問題 (what if questions)
    3. 有哪些因素影響驅動因素? (例如有什麼因素會影響出生率? 有什麼因素會影響死亡率?)
      1. 出生率與死亡率可能會影響經濟、環境與社會,反過來說,經濟、環境與社會等因素,也可能會影響出生率與死亡率
      2. 例如經濟表現較好的國家,會影響人口,較富裕的國家通常擁有更好的醫療照顧,新生兒擁有較低的死亡率 (outflow rate);但是,通常也是擁有較低的出生率 (inflow rate)。如之前提到的,增加stock level 有兩種,除了提高 inflow rate (i.e. 出生率) 以外,減少 outflow rate (i.e. 死亡率) 也是個辦法。
  7. 雖然不同的系統,一定擁有不同的驅動因素,但是系統間一定會有一個共同點:擁有類似的 feedback loop 結構,系統的 stock 一定會被 reinforcing growth loop 與 balancing death loop 所掌管。無論是人口、鋼鐵廠、車床、渦輪引擎等等,一定會變老、老化。
  8. 即使系統間擁有完全不同的外在表徵,但卻會擁有類似回饋結構 (feedback structure) 的系統,會產生類似的動態行為 (dynamic behaviors)
  9. 人口與經濟發展兩者或許乍看之下不太相仿,但是兩者都有 reinforcing loop 讓人口與經濟產生指數型成長;但是。兩者也都會有老化的問題,例如熱咖啡逐漸冷卻,與室溫降低、輻射物質衰退、人口老化、經濟下滑類似,每一種下滑,都是 balancing feedback loop 的結果。
  10. 庫存的控制並不是一件容易的事,但是你必須了解他是如何形成的。並不是車商是笨蛋,而是因為他們無法掌握即時的資訊,由於系統延遲導致他們的決策無法立即反映到庫存的變化。車商一來不知道客戶未來的購買意向,當他們下更多訂單時,也不知道是否要繼續。即便是他們下了訂單,也無法看到立即的反應,這樣的資訊欠缺性與系統延遲是非常常見的狀況。試想你要沖澡時,熱水器透過長長的熱水管,混合著熱水與冷水衝出你的蓮蓬頭,有時候就會有忽冷忽熱的情形。
  11. 書中以汽車經銷商的庫存管理為例,有庫存量 (stock)、流入量(inflow, 工廠生產交付)、流出量(outflow, 銷售賣給客戶)。在銷量逐漸成長的狀況下想維持庫存並滿足未來可能的訂單,加入三種時間延遲的變化
    1. 感知延遲 (perception delay):經銷商的主觀認識,通常在銷量變化初期不會立即作反應,而是分析過去一段時間內的資料來判斷是否為真實趨勢或只是短期波動
    2. 反應延遲 (response delay):當趨勢明確需要調整訂單時,也不會一次一口氣將訂單調整到位,而是分次部分調整,以此來謹慎確認趨勢
    3. 交貨延遲 (delivery delay):從工廠收到訂單到實際生產交付給經銷商的時間。這也是整個系統中,最重要的 delay,因為這種 delay 是你無法直接控制。

2019/07/05

[Maven] How to generate WSDL client code via Apache CXF in Maven?

Scenario


How-To
I have three WSDL files in my spring boot project:


Apache CXF includes a Maven plugin which can generate java artifacts from WSDL. Here is a simple example:
            <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-codegen-plugin</artifactId>
                <version>3.2.6</version>
                <executions>
                    <execution>
                        <id>generate-sources</id>
                        <phase>generate-sources</phase>
                        <configuration>
                            <!-- define location which CXF will generate artifacts -->
                            <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
                            <encoding>UTF-8</encoding>
                            <wsdlOptions>
                                <!-- generate io_ws wsdl client code to 
                                    test.ws.bind.oi2 package -->
                                <wsdlOption>
                                    <wsdl>${basedir}/src/main/resources/wsdl/oi_ws.xml</wsdl>
                                    <extraargs>
                                        <extraarg>-p</extraarg>
                                        <extraarg>test.ws.bind.oi</extraarg>
                                        <extraarg>-verbose</extraarg>
                                    </extraargs>
                                </wsdlOption>

                                <!-- generate oe_ws wsdl client code to 
                                    test.ws.bind.oe package -->
                                <wsdlOption>
                                    <wsdl>${basedir}/src/main/resources/wsdl/oe_ws.xml</wsdl>
                                    <extraargs>
                                        <extraarg>-p</extraarg>
                                        <extraarg>test.ws.bind.oe</extraarg>
                                        <extraarg>-verbose</extraarg>
                                    </extraargs>
                                </wsdlOption>

                                <!-- generate oj_ws wsdl client code to 
                                    test.ws.bind.oj package -->
                                <wsdlOption>
                                    <wsdl>${basedir}/src/main/resources/wsdl/oj_ws.xml</wsdl>
                                    <extraargs>
                                        <extraarg>-p</extraarg>
                                        <extraarg>test.ws.bind.oj</extraarg>
                                        <extraarg>-verbose</extraarg>
                                    </extraargs>
                                </wsdlOption>
                            </wsdlOptions>
                        </configuration>
                        <goals>
                            <goal>wsdl2java</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

After executing mvn clean install, you can find out artifacts in ${project.build.directory}/generated/cxf :


Reference
[1] http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html

2019/07/04

[閱讀筆記] 人類大命運 (5/8)


  1. 傳統認為,是偉大宇宙計畫為人類帶來意義,但人文主義讓角色逆轉,認為是人類機驗為宇宙賦予意義.根據人文主義的想法,人類必須從自己的內在經驗找出意義,而且不只是自己的意義,更是整個宇宙的意義。這是人文主義的主要誡命:為無意義的世界創造意義。因此,現代帶來的主要宗教革命,並不是對神失去信心,而是對人類有了信心.要走到這一步,足足花了數個世紀。思想家寫著宣傳小冊、詩人寫著詩、音樂家譜著交響曲、政治家推動了各種契約,他門共同使人相信,人文可以讓宇宙充滿意義。(p.249)
  2. 在過去,任何根據人類意見而得的意義,都必然是脆弱且短暫的。這麼說來,如果要講絕對真理、講生命的意義和宇宙億的意義,其根據就必須是某種高於人類的來源所產生的永恆法則。從這個觀點,神不但成了意義的本源,也成了權威的本源。意義和權威始終是攜手共進,那些判斷著我們的行動究竟屬於好壞、對錯、美醜等等意義的人,同時也就取得權威,能告訴我們該如何思考、如何行動(p.250)
  3. 在人文主義的倫理中,最有趣的討論就是像婚外情這種彼此感覺有衝突的情境.如果某個行為讓一方感覺良好、另一方卻感覺痛苦,情況會如何?這些感受該如何彼此衡量?兩個情人之間感覺幸福,是否會比配偶和孩子感覺不幸更重要?不論你想站在哪一邊都沒關係,這裡最重要的,是要看出雙方其實用的都是同一套論點。現代人對婚外情的看法各有不同,但無論立場如何,理由都比較偏向於人的感受,而不會是因為聖經或神的誡命。人文主義告訴我們,除非這件事讓人感覺不好,才有可能是件壞事(p.253)
  4. 謀殺之所以是錯的,並不是因為有什麼神曾說「不可殺人」,而單純是因為這會讓被害人與被害人家屬和親友十分痛苦;偷竊之所以是錯的,並不是因為有什麼古籍說過「不可偷盜」,而單純就是因為如果有人失去財產,會感覺不開心。如果某種行為不會讓人感覺不好,就等於沒什麼對錯。如果在同一份古代的文本裡,說上帝曾告誡我們:不可以製作任何人類或動物的形象 (《出埃及記》第 20 章第 4 ),但我就是喜歡雕刻這些人形與動物,過程中又不會傷害到任何人,這究竟有什麼錯?同樣的邏輯也能應用在同性戀的論爭上,如果兩個成年男性彼此喜歡,過程又不會傷害到任何人,這又有什麼錯?為什麼該用法律禁止呢?(p.253~254)
  5. 在倫理上,人文主義的座右銘是「感覺對了,就去做吧」;在政治上,人文主義告訴我們「選民能做出最好的選擇」;在美學上,人文主義說「看的人覺得美,就是美」(p.259)
  6. 人文主義的思維,也深深影響了經濟層面。在中世紀,整個生產流程是由工會操縱,個別的工匠或客戶很少有機會表達自己的意見或品位。怎樣叫好椅子,由工匠工會決定;怎樣是好麵包,由麵包公會定義。在自由市場上,顧客永遠是對的。如果顧客不想要、不想買,就代表這款車不好。就算所有大學教授和神職人員都高聲疾呼這是一輛很棒的車,也不會有任何影響。顧客不要,就是爛車,沒有人有權說顧客錯了(p.260)
  7. 人文主義思想的興起,也改變了教育制度。在中世紀,所有意義和權威都來自外部,因此教育的重點就在於順從、背誦經文、研讀古老傳統。但是到了現代,教育的重點變成教學生如何思考。   
  8. 隨著意義和權威的源頭,從天上轉移到人類的內心感受,整個宇宙的本質也隨之改變。對於天使和魔鬼的概念,也已經從漫遊在森林和沙漠間的實體,轉換為人類心靈中的內部力量。天堂和地獄也不再是雲層之上和火山之下的實際地點,而認為是人類內在的精神狀態。只要你心中燃起憤怒和仇恨的火焰,便是正在經歷地獄的苦痛;只要你原諒敵人、懺悔錯誤、與窮人分享財富,就是想有天堂的幸福(p.267)
  9. 如果我相信上帝,那是因為我選擇相信。如果內心叫我要信上帝,我就信。我相信神,是因為自己感覺到神的存在,我的心告訴我,祂就在那裡.但如果我不再感覺到神的存在,如果我的心突然告訴我世上沒有神,我也就不再相信神了。不管哪一種,權威的本源都在於自己的感覺。所以,就算有人說自己信上帝,其實他更信的,是自己內心的聲音(p.267)
  10. 計算知識的三條公式 (p.269 ~ 270)
    1. 中世紀歐洲時代
      1. 知識 經文 × 邏輯
      2. 如果想要知道某個重要問題的答案,會閱讀相關經文,並用邏輯來理解經文的確切含義
      3. 這裡的公式是乘法,是因為兩項元素需要彼此,才能運作。至少在中世紀學者看來,沒有邏輯,就不可能理解《聖經》。如果你的邏輯值為 0,就算你把《聖經》每一頁都讀得滾瓜爛熟,知識總值仍為 0。反過來說,如果你的經文值為 0,邏輯再好也沒用。如果公式裡用的是加法,代表的就是如果邏輯很好,就算不讀經文,也能擁有很多知識。這在你我看來可能覺得合理,但中世紀學術圈並不同意。   
    2. 科學革命時代
      1. 知識 實驗數據 × 數學
      2. 如果想要知道某個重要問題答案,我們要做的就是搜集相關的實驗數據,再用數學工具加以分析。在實務上,這代表著追求知識的科學家花費多年時間,泡在觀測站、實驗室和研究考察裡,搜集越來越多的實驗數據,不斷鍛鍊自己的數學工具,讓自己能夠正確解讀數據的意義。
      3. 此法有個重大缺點:無法處理的價值和意義的問題。要克服困難,方法之一就是在新的數學公式之外,繼續運用舊的中世紀公式。如果是碰上的是很實際的問題,像是確定地球的形狀、搭橋、治病等,就搜集實驗數據,做數學分析;但如果碰上倫理問題,像是能不能允許離婚、墮胎或同性戀,就轉向經文求助。   
    3. 人文主義時代
      1. 知識 經驗 × 感性
      2. 如果我們想知道任何道德問題的答案,我們需要連接到我們內心的經驗,並以最大的感性來觀察他們。在實務上,這代表著追求知識的方法亦靠多年的經驗累積,並鍛鍊感性,好讓我們正確理解這些經驗。
      3. 經驗是一種主觀現象,有三個主要成分:知覺、情緒及想法。在任何時刻,我的經驗都包括了我的一切感知(熱、愉悅、緊張等);我所感受到的情緒(愛、恐懼、憤怒等);以及一切出現在我腦海中的想法。
      4. 感性包含兩件事:第一,是注意到自己的知覺、情緒和想法;第二,是允許這些知覺、情緒和想法影響自己。即要對新的經驗抱持開放態度,允許新的經驗改變自己的觀點、改變自己的行為、甚至改變自己的個性
      5. 經驗和感性會形成彼此加強的無限迴圈。沒有感性,就無法經驗體會任何事物;沒有經驗體會各種事物,又無法培養感性。感性並不是什麼能夠靠著讀書或聽演講的抽象能力,而是一種實作技巧,必須在實踐中慢慢成熟。   
  11. 欠缺必要的感性,就無法體驗到某些事物;缺乏長期的經驗,就無法培養感性。我們不是一出生就帶著良知,在人生旅程上,害人者人恆害之、敬人者人恆敬之。如果我們注意到這件事,道德的感性就會越來越敏銳,這些經驗就能提供有價值的道德知識,告訴我們什麼是善的、什麼是惡的,以及自己是怎樣的人。因此,人文主義認為,生命就是一種內在的漸進變化過程,靠著經驗,讓人從無知走向啟蒙(p.271)  
  12. 人文主義生活的最高目標,就是透過各式智力、情緒及身體的經驗,充分發展你的知識。十九世紀初建構現代教育體系的重要人物威廉.洪堡德 (Wilhelm von Humboldt) 曾說,存在的目的就是「用生命能體驗到最廣泛的經驗,蒸餾成智慧。」他也寫到:「生命只有一做要征服的高峰,設法感受一切身為人的感覺。」這正可做為人文主義的座右銘。(p.272)
  13. 根據中國哲學,世界是由陰陽兩種相對、但又相依的力量所維繫。每股科學的陽,都包含著一般人文主義的陰,反之亦然。陽給我們力量,而陰則提供倫理判斷。現代性的陽和陰,分別就是理性與感性、實驗室與博物館、生產線和超市。人們常常只看到陽的一面,認為現代世界就是枯燥、科學、邏輯和實用。然而,現代世界其實同時也是個奢華的超市。人文主義將生命看作是一連串的經驗,例如旅行社和餐廳真正賣的不是機票、也不是什麼高檔晚餐,而是新奇的體驗(p.272)
  14. 人文主義的分裂 (p.282)
    1. 自由人文主義:屬於正統教派,認為每個人都是獨特的個人,擁有獨一無二的內在聲音、永不重複的一鑾串經驗。
    2. 社會人文主義:包含各種社會主義與共產主義運動
    3. 進化人文主義:以納粹為最重名代表
  15. 民主投票要有約束力,前提是投票的人覺得大家還算是某種自己人。如果其他投票人的經驗對我來說十分陌生 (ex. 德國與難民),而且我相信這些人並不了解我的感受、也不在意我最在意的事,就算最後投票結果是 100 : 1,我也不會接受這個結果。民主投票通常只能適用於一群有共同關係的人,像是有共同的宗教信仰、或是有共同的民族神話。這些人早已有基本的共識,只是人有某些異議上待解決(p.284)
  16. 自由人文主義與社會人文主義的簡單比較 (p.287)  
  17. 進化人文主義第一步,可能就是指出:自由主義和社會注意都會畫條線,把自己和其他動物隔開,直接認定人就是比狼優越,所以人類的音樂比狼嚎有價值。然而,人類也會受到演化力量的影響。正如人類比狼優越,某些人類文化也會比其他文化先進。人類的經驗也有明確的階級層次之分,而我們對此無需抱歉。(p.296) 
  18. 2011 年曾有一波社會抗爭運動席捲西方世界,像是佔領華爾街 (Occupy Wall Street)、或是西班牙的 15-M 運動,但這些運動並非反對民主、反對個人主義或人權,甚至也不是反對自由市場經濟的基本原則。相反地,他們是責怪政府未能達成自由人文主義的理想。這些運動要求市場必須真正自由,而不是被那些「大到不能倒」的企業或銀行控制和操控。他們要求真正具有代表性民主制度,能夠照顧一般大眾,而不致照顧有錢的遊說客和有利的利益團體 (p.304)
  19. 新科技殺死舊神、催生了新神,所以農業時代的神和狩獵時代的神不一樣,工廠工人想像的天堂也與農民不同;有了 21 世紀的革命性新科技之後,出現前所未有的新宗教的可能性,絕對遠遠超過讓中世紀的信條起死回生。伊斯蘭基本教義派可以繼續像念咒般,複誦著「伊斯蘭就是答案」,但宗教只要與當今的科技現實脫節,恐怕就連民眾所問的問題都無法理解(p.305~306)
  20. 塑造歷史的,往往是一群往前看的創新者,而不是向後看的大眾。一萬年前,多數人都是狩獵採集者,整個中東只有寥寥可數的少數先驅者是農名,但未來是屬於農民的;1850 年,全球有超過 90% 的人是農民,然而不管是在恆河、尼羅河或長江沿岸,都沒有人知道蒸汽機、鐵路或電報線,然而在曼徹斯特和伯明罕,一小群領導工業革命的工程師、政治家和金融家,就已經決定了這 90% 農民的命運。蒸汽機、鐵路和電報改變了食品、織品、車輛和武器的生產方式,讓工業強國有遠勝於傳統農業社會的決定性優勢。(p.306)

2019/07/03

[閱讀筆記] How to read a book (5/8)

  1. 生意人通常要經過開會、磋商後,才會讓兩造雙方達成一致的見解,然後簽約;但是身為讀者,應在一開始就需與作者對於概念、關鍵字、詞意等,彼此達成一致的見解,知道作者所提出的主張、作者所宣稱的判斷等。這個過程就是規則五 (找出重要詞彙,並在理解上與作者達成一致性) 的重點
  2. Active reader 在解讀書本時,專注的地方不只有 words,還需包含句子 (sentences) 與段落 (paragraphs),若不如此,就無法發現作者要表達的詞義 (terms)、主旨 (propsitions) 與支持主旨的論點 (arguments)。
  3. Sentences 與 paragraphs 是文法單位 (grammatical units),兩者都是語言單位。propositions 與 arguments 都是邏輯單位 (logical units),兩者都是想法與知識的單位。
  4. 當在句子看到 because 時,在 because 之前的是 proposition,之後的就是 argument。要注意的是,即便是一個文法簡單的句子,有時候可能會表達兩個或更多的 propositions
  5. 在一個又長又複雜的句子裡,區分出不同的主旨 (propositions) 是很重要的。不論你是否同意作者的說法,你都要先了解作者說的是什麼意思。律師非常清楚這個道理,律師會仔細看原告陳述的句子,被告否認的說法又是什麼。一個簡單的句子:「約翰在  3/24 簽了租約。」看起來很簡單,但卻說了不止一件事,有些可能是真的,有些卻可能是假的。約翰可能簽了租約,但卻不是在 3/24,然而這個事實可能很重要。簡單來說,就算一個文法上的單一句子,有時候說的可能是兩個以上的主旨(propositions)。
  6. 讀者如何發現書中的重要句子 (important sentences)
    1. 若你可以很快且容易地發現哪些段落是你看得懂的,哪些段落是看不懂的,你就該把時間與精力放在看不懂的地方
    2. 找出書中的主旨 (principal propositions),主旨一定屬於書中的主要論點 (argument),主旨一定是書中的前提假設 (premises) 或結論 (conclusions)。
    3. 讀者會使用不同的閱讀速度在不同的段落,但是你應該在令你困惑 (puzzle) 的地方放慢閱讀速度,而非在令你感到興趣 (interest) 的地方放慢閱讀速度
  7. 當你已經完成規則五 ~ 規則八之後,你應可以回答第二個閱讀基本問題,你也可以準備回答最後兩個問題。
  8. 身為一個 active reader,只了解一本書在講什麼是不夠的,你必須還要能針對這本書提出批評、自己的看法,才算是完成你的閱讀。
  9. 分析閱讀的第三階段:評論階段
    1. [規則九] 在提出批論之前,例如「我同意」、「我不同意」或是「我暫緩評論」,一定要能肯定地說出:「我了解了」(You must be able to say no, with reasonable certainty, “I understand”, before you can say any one of thr following things: “I agree”, or “I disagree”, or “I suspend judgment”)
      1. 若完全不了解就同意作者在書中的概念,這是無知;若完全不了解就批判,這是無理
      2. 因為作者可能無法將他所知道的任何事情與想法,撰寫在同一本書中,你可能要閱讀多本書籍才能說我了解了,才可以進行評論。例如當你閱讀 Adam Smith 的國富論 (Wealth of Nations),還要再閱讀道德情操論 (Theory of the Moral Sentiments) 才能完全了解作者要表達的概念;又如當你在閱讀 Marx 的共產主義宣言 (The Communist Manifestor),還要去閱讀他的資本論 (Capital) 一樣
    2. [規則十] 當不同意作者的論點時,要理性地表達意見,不要無理地爭論 (When you disagree, do so reasonably, and not disputaiously or contentiously)
    3. [規則十一] 為尊重個人之知識及觀點不同,在提出個人評斷之前,要先找出理論基礎 (Respect the difference between knowledge and mere personal opinion by giving reasons for any critical judgement you make)
      1. 當讀者找出書中不同意處 (disagreement) 的時候,必須確定讀者對於作者所提及的事物沒有誤解,如此才能做出正確的判斷
      2. 若你真的知道某件事物,你就能根據我們所知道的理論基礎來說服他人,這是 knowlege;opinion 則是不具備任何理論基礎的個人意見,這是你的個人感受與偏見
      3. 讀者要區分書中寫的是作者的個人意見 (personal opinions) 還是知識,如果作者沒有針對他的 propositions 提出任何理由的話,那就是個人意見。相同的,若你針對作者所提出的 proposition 提出反對時,你也要提出反對的理論基礎,若否,這也只是你的個人意見
  10. 當分析閱讀走到第三個階段 (評論階段) 時,讀者已經走到與作者對話的階段。