網頁

搜尋此網誌

2011年10月17日 星期一

Linux Filesystem Hierarchy 系統架構與目錄

用過微軟Windows系統之後,看到Linux的檔案系統(File System)還真是不習慣,兩者之間有些差異,我認為這是作業系統的設計觀點不同導致,真正的答案還需要蒐集求證才會知道。

有關Linux檔案系統的書籍,目前大概只有邱世華先生(Juergen S.H. Chiu)撰寫的這一本,很可惜的是已經絕版,強烈希望再版並建議添加新內容,這是難得一見的好書。作者提到一個重點:「基本上,Linux的精神就是要將所有作業系統中的資訊,全部都變成檔案,以方便管理。」由此可見檔案系統的重要性!了解檔案與目錄的架構有助於我們認識Linux作業系統。


邱世華,Linux系統架構與目錄之解析, 台北:悅知文化,2008。

由於Linux是自由開放原始碼的作業系統,各廠商推出不同的Linux版本有所差異,因此造成系統檔案架構而有所不同,所幸差異不大,加上目前已經有Filesystem Hierarchy Standard (FHS)的標準規範Linux檔案架構,學習起來不會太困難(因為有參考資料)。另外,你也可以使用man hier指令顯示目錄階層的說明,這個指令非常實用。

目錄中最為重要的就是根目錄(root directory),這是檔案系統的開始位置,在「Linux系統架構與目錄之解析」也有提到根目錄是怎麼產生的由來,除了告訴我們是什麼,還讓我們知道為什麼。

重要的目錄還有虛擬檔案系統(Virtual File System, VFS)的部分,所謂VFS是指不存在於實體的檔案與目錄(不佔磁碟空間),存在的目的是為了操作作業系統,記得前述「所有作業系統中的資訊全部都變成檔案」的觀念,VFS就是用來做這件事情。重要的目錄有:/dev、/proc與/sys三個目錄,分別代表:裝置(device)資訊、行程(process)資訊與系統(system)資訊。

作業系統執行檔的目錄則是:/bin、/sbin、/usr/bin與/usr/sbin四個目錄之中,usr目錄的檔案通常是非必要性,大多屬使用者安裝的共用指令檔案,注意到usr不是user的縮寫,而是Unix Software Resource (或 UNIX source repository) 的縮寫,其中sbin目錄則用於系統管理之用(system binary),這裡類似於Windows中的C:\WINDOWS\system32目錄的功能。此外,使用者安裝的應用程式,則是位於/usr/local/bin目錄中,類似Windows中的C:\Program Files目錄的功能。

有關軟體「設定」的目錄是:/etc目錄,包含各類程式服務執行的設定參數,檔案目錄的數量相當多,所以才稱為「etcetera directory」。

感謝邱世華先生,您序中提到:「重點就在要做的事情貢獻大不大,是不是自己要的,這是唯一重要的事,只要做的事是對的,就一定會有人欣賞。」我認為世界就是需要有這樣的人、做這樣的事!

Delight Press
請再版,好嗎!

其他參考資料:https://wiki.debian.org/FilesystemHierarchyStandard

###

2011年10月13日 星期四

Bourne Again SHell 命令列介面

最近重新開始學習Linux的Command-line Interface (CLI)使用操作,過去使用Linux的經驗是Mandriva或Fedora,這次選擇的則是Ubuntu 11.04桌面版的作業系統,因為安裝方便容易。

一般來說,Linux上的CLI都是bash的「殼(shell)」,bash全名是Bourne Again SHell,bash的前身是Bourne Shell(通稱為sh),除了bash與sh之外,還有其他shell提供使用者操作作業系統。

相關知識可以在GNU Bash網站取得:http://www.gnu.org/software/bash/,或是參閱「Linux Shell程式設計實務」一書,這本書偏向Linux管理的程式撰寫,不過從基礎到進階的操作都有提及到,我推薦這本書給大家。

臥龍小三,Linux Shell程式設計實務,台北:精誠資訊:2009。

查詢Linux用的Shell是哪一種的指令:echo $SHELL
Ubuntu 11.04桌面版是bash,執行檔是/bin/bash

查詢Bash Shell的版本(從Shell變數的值可以知道):echo $BASH_VERSION
或是使用指令:bash --version
Ubuntu 11.04桌面版與伺服器版的bash都是4.2.8(1)-release版本

查詢Bash Shell內建的命令有哪些:help
或是參考http://www.gnu.org/software/bash/manual/html_node/Builtin-Index.html#Builtin-Index

注意,Bash Shell的命令是區分大小寫(case-sensitivity)!。換句話說,Linux的檔案系統是區分大小寫的(命令是對應到執行檔),不同於Windows檔案系統是不區分大小寫。

除了內建命令之外,還有位於/bin路徑與$PATH路徑之下的指令,這些路徑下的執行檔就相當多了,也包含自己安裝的應用程式指令。CLI的操作其實不難,熟悉後就得心應手了。
###

2011年9月1日 星期四

Stay hungry stay foolish 求知若渴,虛心若愚

神一樣的傳奇。「賈伯斯本身就是一個傳奇,比任何虛構的小說都更精彩。」李開復說。

感謝李開復先生,策劃這本書的誕生,讓我們可以閱讀這本賈伯斯傳記,故事精彩而且好讀,讀完之後我更堅信自己的想法,一定做自己想要做的事情、喜歡的事情、擅長的事情,追尋「求知若渴,虛心若愚」的精神。

本書共分9章,從賈伯斯回歸蘋果的那天開始說起,之後從蘋果創立的過程開始敘述,直到最近2011年6月發生的事情,整個故事其實都是圍繞著賈伯斯與蘋果的人事物,也提及一些重要人物:Jonathan Ive(產品設計), Jon Rubinstein(硬體工程), Avadis Tevanian(作業系統軟體),這些A+的人讓Apple更為傳奇。書中收錄一些賈伯斯語錄,相當具有「警世」作用。

這是一本值得推薦的書,推薦給想要改變世界的人。
王詠剛、周虹,世界跟著他的想像走:賈伯斯傳奇,台北:天下遠見,2011。

賈伯斯 (部分):
  • 我非常幸運,因為我在很早的時候就找到了我真愛的東西。
  • 有時,生活會拿起一塊磚頭在你腦袋上猛拍一下。不要失去信心。我們清楚,我之所以能夠一直堅持,唯一的理由是,我熱愛我所做的事情。
  • 我們沒有機會去做很多事情,而且,每一件事都要做到完美。因為,這就是生命。生命是短暫的,你會死去,不是嗎?既然我們選擇用我們的生命去做這件事,那最好做到完美,最好值回生命的價值。
  • 有時候人們會擔心自己將會失去某些東西。避開這個念頭的最好辦法是,記住自己將要死去。你已經了無牽掛,沒有理由不去追隨自己的心。
  • 你在憧憬未來時不可能串聯起以前累積的點點滴滴,你只能再回顧過去時這麼做。所以你必須相信,當前累積的點點滴滴,會在未來的某一天串聯起來。你必須相信某些東西─你的勇氣、目的、生命、因緣等等─相信它們會串聯起你的生命。這會讓你更有自信追隨自己的心,甚至指引你不走尋常路,使你的生命與眾不同。
  • 時間有限,不要將時間浪費在重複他人的生活上。
###

2011年8月5日 星期五

Are Your Lights On 你想通了嗎

介紹解決問題的經典著作,這本書是「真正的問題是什麼?你想通了嗎?」原著書名:Are Your Lights On? How to Figure Out What the Problem RELLY Is,於1990年首次出版,中文版由城邦出版集團於2005年第一次發行。

唐納德‧高斯(Donald C. Gause)、傑拉爾德‧溫伯格(Gerald M. Weinberg)合著;蘇耿弘譯,「真正的問題是什麼?你想通了嗎?:解決問題之前,你該思考的6件事」(第二版),台北:經濟新潮社,2010。

整本書如同書名所說:解決問題之前,你該思考的6件事。這6件事分別是書中的6章,總共分成20篇。作者用一些故事說明解決問題的觀念,淺顯易懂,一些觀念甚至有違背我們的常識,但卻是十分有道理,不愧是問題解決的經典著作。

內容架構如下所述:
  • 第一章,問題是什麼?
    • 誰有問題?你認為問題的本質是什麼?
    • 問題往往來自於期望和感受之間出現了落差。
  • 第二章,這是什麼問題?
    • 不要把別人解決問題的方法,當成是問題的定義,尤其是當解決方案是由你自己提出的時候。
    • 如果你很輕易就解決了別人的問題,那麼,他們將不會相信你解決了他們真正的問題。
    • 你永遠無法確定自己是否已經取得了正確的問題定義,即使問題已經被解決了。
    • 你永遠無法確定自己是否有了一個正確的定義,但絕不要放棄去試著追尋一個。
  • 第三章,真正的問題是什麼?
    • 每一個解決方案都是下一個問題的根源。
    • 某些問題最難處理的地方就是去意識到它們的存在。
    • 如果以你對問題的了解,你想不出至少三個可能出錯的地方,那麼,你就不是真的理解這個問題。
    • 每個新觀點都會引發一個新的不合身(misfit)。
    • 一旦你用文字來描述一個問題,請不斷調整你的遣詞用句,直到它進到每一個人的腦袋裡為止。
  • 第四章,這是誰的問題?
    • 不要急著幫別人解決問題,當他們自己就可以處理得很好的時候。
    • 如果這是他們的問題,就讓它成為是他們的問題。
    • 如果一個人是因為職位而被迫處理和他無關的問題時,你要做的就是─讓他的問題也產生關係。
  • 第五章,問題是從哪來的?
    • 問題的起源通常和你自己大有關係。
    • 在這世界上有兩種人,一種人會做事,另一種人則是找事情給別人做。
    • 問題是誰出的?他的企圖是什麼?
  • 第六章,我們真的想解決它嗎?
    • 不管看起來如何,人們其實很少真正知道他們需要的是什麼,直到你給了他們要求的那些東西。
    • 到了最後的分析階段,其實沒有多少人是真的希望他們的問題被解決。
    • 我們永遠沒有足夠時間可以把事情做對,不過,我們總有足夠時間可以把事情重做一遍。
    • 我們永遠沒有足夠時間思考自己是否需要它,不過,我們總有足夠的時間可以後悔。
    • 魚,總是最後一個看到水的。
我們每天生活都會遇到問題,而書中的觀念讓我們可以正確地解決問題,這是一本值得一讀再讀的經典,推薦。

###

2011年8月1日 星期一

Taiwan Software 台灣軟體

談談台灣軟體的未來,記錄自己在軟體開發上的心得感想。

台灣的大企業仍以代工製造為主,這些高階管理人員依舊留著代工製造的血,然而我認為軟體開發不是製造業,軟體開發是服務業, 因此若再以製造思維引領軟體開發,必定是行不通的!在工作上常聽到「軟體改一改很快嘛!」軟體開發人員一聽到就懂了。

The Mythical Man-Month(人月神話)」和「Peopleware(人件)」這兩本經典說明軟體開發必須要有的觀念,軟體的本質是複雜性(Complexity)、配合性(Conformity)、易變性(Changeability)、隱匿性(Invisibility),而軟體開發是腦力工作而不是製造業的勞力工作,太多觀念都與製造代工不一樣。

台灣的未來應該是以軟體產業文化產業為導向發展。台灣的環境資源有限,不像大陸型國家什麼資源都有,不過台灣的地理位置造就我們的文化相當多元豐富,台灣人接受新觀念很快,更具備靈活創新的特質,教育程度的質量也很高,這些都是我們的優勢啊!「人多半只看到自己所沒有的,卻忘了自己所擁有的。」我認為台灣發展軟體和文化是最適合不過了。

若從IT資訊科技產業來看台灣的軟體,台灣微軟王森先生在「Visual C# 2010程式設計經典」推薦序提到:(曹祖聖、蔡文龍,Visual C# 2010程式設計經典,台北:碁峰資訊,2010。)


『微軟把IT技術人員大致上區分IT-Pro(系統管理專家)Developer(軟體開發人員)這兩類型的專業人士,在國外因為人口眾多,所以這兩種專家通常各有專精,雖然會重疊,但是比例不高;

到了台灣,卻因為IT技術人員常常要身兼數職(從硬體採購→網路架設→伺服器安裝設定→軟體開發→系統管理,全部統包)因此微軟既有的分眾方式,到了台灣變成有了一個很大的模糊地帶......』

的確,台灣人是很「強」的!軟體開發人員通常需要做系統管理專家的工作,只要跟電腦有關的工作都要處理,可能也和台灣都是中小企業有關吧!


###

2011年7月7日 星期四

Component Object Model 元件物件模型

最近重新研究元件物件模型(Component Object Model, COM),再次閱讀MSDN上的文件,並且在MSDN上面加上解釋 ,不過貼了一陣子之後卻被取消張貼,我想可能是我在英文版MSDN貼上中文的關係吧!現在趕緊將內容編寫在自己的部落格中記錄下來,避免閱讀心得遺失。

什麼是Component Object Model (簡稱COM)?中文微軟翻譯成「元件物件模型」,COM是一個標準(standard),定義元件要長什麼樣子,以及元件跟元件之間要如何互動。COM真的很重要!COM是OLE與ActiveX兩個的技術基礎。除了MSDN的資料之外,有關COM的資料相當稀有,參考書籍大概只有Dale Rogerson著的「Inside COM」,中文書名是「完全剖析COM」(黃昕暐編譯,徐銘志校閱),不過都已經絕版,以後大概沒有人會寫COM了!http://www.microsoft.com/mspress/taiwan/Pages/c0089_1061.htm

有關COM的中文資料相當少,書籍更少,只能參考MSDN的說明。COM是一個「標準(Standard)」,規範二進制機器碼的元件要如何實現,不要把COM想得很困難,唯一需要做的就是花時間研讀這些文件,建議先從「COM Fundamentals/Guide/The Component Object Model」開始閱讀。在Visual Studio中開發COM的話,則是使用「ATL專案」類型。

一般來說,軟體的物件(想像成一個資料結構,這裡不是特別指OOP的物件)會包含資料(data)與函式(function)兩個部分。COM規範存取資料只能透過函式,所以說COM元件都是一堆函式。COM標準將一組函式稱為「介面(Interface)」,介面裡的函式COM稱之為「方法(method)」,注意這裡的介面與方法和物件導向程式的定義不相同,觀念不要混淆了

這文件寫那麼多,重點只有一個觀念,介面(interface)與介面實作(interface implementation)是不相關的,兩者是獨立的兩件事情。COM標準只有定義介面,介面是一堆方法(method),也就是函式原型(function prototype),但COM標準沒有規定方法要如何實做,實作部分留給程式設計師去做。介面定義是一種協議(contract),因此各個物件與應用程式就知道如何去使用COM元件,這就是COM的精神。注意介面實作不一定要實現,但是介面一定要存在於元件中,換句話說,函式中的程式碼可以是空的,不做任何事情。

COM元件中的資料處理只能透過「介面(interface)」存取,COM所謂的介面指的是一組預先定義的函式原型,另一個角度來說,COM的標準就是只有定義介面(不只一個,參閱COM的Reference)。而所謂「實作(implement)」則是表示實做介面,撰寫介面所定義函式的程式碼。

我們已經知道COM是個標準,COM是定義一群介面。那要如何實現介面?介面的實作是用:指向函式表(function table)的指標,稱為介面指標(interface pointer),函式表是一個函式指標的陣列,陣列中的函式指標都是介面所定義的方法。注意,每個介面都有一個識別碼,COM稱為IID(unique interface identifier),是一種GUID(globally unique identifier )的資料類型,我們因此可以透過IID取得COM元件的介面。

IUnknown介面是COM標準中最重要的一個介面,所有介面都繼承這個IUnknown介面,換句話說,COM 元件一定具有IUnknown介面,我們一定可以呼叫這三個方法:QueryInterface、AddRef與Release。

使用COM標準實做出來的是什麼?答案是動態連結程式庫(DLL)或可執行檔(EXE),因為COM是「二進制的標準(binary standard)」,直接定義最底層執行碼的標準。注意,COM不是要與DLL競爭或取代,而是將DLL運用地更好的一種方式,使用DLL可以解決的,若是換成使用COM的方式會處理地更好。

Visual C++在COM介面的實作是:宣告一個類別當作COM的介面(interface)的實作,在這個「介面的類別」中宣告虛擬函式(virtual function)當作COM方法(method)的實作。

COM這個標準討論的都是介面(interface),都是介面啊!介面!介面!一定要了解什麼是介面。這些介面當中,又以IUnknown介面最為重要,而且IUnknown介面的QueryInterface方法幾乎定義了整個COM元件。

這裡的重點是「介面繼承(Interface Inheritance)」的觀念,COM的繼承觀念不同於物件導向程式設計的繼承。介面繼承是指重複使用「函式原型」(COM中稱為方法),不是程式碼的重複使用,在COM的標準下最重要的介面是IUnknown介面,每個COM標準下的介面都會繼承IUnknown介面。IUnknown介面定義3個重要的方法,分別是QueryInterface、AddRef與Release方法,其中QueryInterface是用來取得COM元件中其他的介面,而AddRef與Release則是用來管理COM元件的生命週期。

COM標準除了定義介面和互動之外,COM也有提供一個程式庫(library),程式庫提供操作COM元件的常用動作給開發者使用,這裡的function就是COM程式庫提供的功能,動態連結的程式庫位於C:\Windows\System32\Ole32.dll之下,靜態連結的程式庫則位於C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\Ole32.Lib,標頭檔是C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\ObjBase.h,路徑是對於Microsoft Windows SDK for Windows 7 and .NET Framework 4而言。

登錄資料庫(Registry)是Windows記錄有關軟硬體與使用者的資訊,應用程式可以從Registry加入或讀取資訊。在Registry中會包含所有已經安裝在系統的COM元件資訊,應用程式利用CLSID或ProgID的機碼取得DLL或EXE所在的路徑。

COM標準是規範元件的介面與互動方式。使用COM標準做出來的COM物件,在Windows中是利用CLSID機碼識別各物件,一個物件會有多個介面,而介面的識別則是利用IID機碼。

相當於Dll中DllMain函式的用途。當呼叫CoCreateInstance或CoGetClassObject建立物件時,透過COM程式庫會呼叫DllGetClassObject,概念像是COM元件的Entry Point。細部動作則是透過IClassFactory介面的CreateInstance方法建立物件。

呼叫CoCreateInstance函式的動作是:由COM程式庫去呼叫DLL中的DllGetClassObject函式。

呼叫CoFreeUnusedLibraries函式的動作是:由COM程式庫去呼叫DLL中的DllCanUnloadNow函式。

COM物件再利用的方法採用:包含(containment/delegation)與聚合(aggregation)兩種方式。

COM的安全性是基於Windows與底層RPC的安全機制,透過驗證(authentication)與授權(authorization)方式取得,驗證是判斷呼叫者的身分,而授權是指判斷呼叫者是否可以去執行某個函式。在COM標準中有兩種安全性形式:活動安全性(activation security)與呼叫安全性(call security),活動安全性是指客戶端是否可以進入伺服端,而呼叫安全性則指進入伺服端之後,判斷是否可以存取伺服端的物件。

「COM is still valuable」對,同意COM依舊有價值。COM元件是本身就是二進制的執行碼,所以執行效能很高,微軟目前以.NET Framework為主要開發平台,使用Assembly組件,.NET Framework不須管控記憶體,加上.NET Framework的元件多,進而提高生產力,代價就是效能差了一點!兩者的優劣在開發使用上必須取捨(tradeoff)。學習COM,同樣需要去了解ATL,COM與ATL就像「雞生蛋,蛋生雞」的關聯性,建議先從COM切入,再去了解ATL,反覆咀嚼才可破。

使用COM程式庫之前,必須呼叫CoInitialize函式進行初始化。使用完成,必須呼叫CoUninitialize函式關閉COM程式庫以釋放使用的DLL。使用記得#include "objbase.h"(如果是用Visual Studio可以不需要),接著呼叫「::CoInitialize(NULL);」就可以了。

使用元件的先決條件:(參考「完全剖析COM」一書)
  1. 元件必須是以動態連結的方式加入應用程式
  2. 元件必須隱藏(或封裝)實作的細節。
元件必須符合的限制:(參考「完全剖析COM」一書)
  1. 元件必須隱藏實作時所使用的程式語言
  2. 元件必須以二進位格式存在
  3. 元件的升級不能造成目前使用者的困擾
  4. 元件必須具有網路通透性。 

要把COM搞懂,概念與實作都不困難,但是需要花時間閱讀文件。
###

2011年6月17日 星期五

Infrastructure as a Service 基礎架構即服務

基礎架構即服務(Infrastructure as a Service, IaaS)是屬於雲端運算架構的最底層(稱為「基礎設施層」),幾乎是把底層的硬體資源提供給用戶,包含運算資源、儲存資源與網路資源,IaaS是針對軟體開發人員、軟體開發商的用戶提供服務。

想要實現IaaS的技術是虛擬化(Virtualization),將雲端上面的伺服器虛擬成一個個虛擬機器(Virtual Machine)提供給用戶,於是用戶就會有他自己的運算資源、儲存資源與網路資源。用戶將會在他自己的虛擬機器上安裝作業系統,這不就變成一個虛擬主機了!接著可以建構自己的平台與應用程式。

基礎架構必須具備的功能有:
  1. 資源抽象
    將實際硬體抽象化成為一個虛擬裝置,對上層架構提供硬體資源。
  2. 資源監控
    抽象化的硬體資源有了,必須可以監控量測,這是為了管理。
  3. 負載管理
    利用資源監控所獲得的資訊,對各個硬體資源進行負載管理,在校與成本之間取得平衡。
  4. 資料管理
    雲端的資料不是存放於單一實體裝置,資料的所有特性必須可被管理。
  5. 資源部署
    用戶所需的資源必須由系統提供,必須可以自動化部署給用戶。
  6. 安全管理
    這是系統的基本要求,沒有人會去使用一個不安全的雲端。
  7. 計費管理
    雲端的商業模式採用按量計費,利用資源監控可以得到計費所需的使用量資訊。
上述每項功能,如果真的要動手實作完成,要做的事情可是非常非常多的,不過這已經是雲端運算架構當中最基礎的功課。如果要完成基礎架構上面的平台層,事情可是多更多,因為平台的工作=平台層+基礎架構層。

###

延伸閱讀
Cloud Computing Strategy 雲端運算策略

2011年6月10日 星期五

Love Catch 22 愛情的22個關鍵詞

愛情的22個關鍵詞在一開始的序用了「善財與悅意」的愛情故事開場,而善財就是釋迦牟尼佛,透過動人的愛情故事,祂告訴我們在人世間,透過愛情的修練,人的生命層次可以提高的。序的最後面寫著:

愛情,在生命中的確佔有一個極特殊也極重要的位置。
對於每個人來說,都有一個需要面對的愛情功課。而我們在這門功課上用功如何,拿到了什麼樣的成績,往往攸關著我們整個生命品質的層次。
因此,我們有必要了解有關愛情的關鍵詞。
這些關鍵詞影響的不只是愛情,也影響著我們的生命。

這已經說明洪啟嵩先生寫這本書的意義,這本書是獻給「對不圓滿的現實想要超越;及對圓滿的愛情心生嚮往的人。」透過22章(關鍵詞)的內容,對於愛情這們功課我們獲得更深的瞭解,洪啟嵩先生透過文字與繪畫的方式傳達,真是以心傳心的體悟感動。

洪啟嵩,愛情的22個關鍵詞,台北:網路與書,2005。

書中的22個關鍵詞如下:
  1. 「自愛」:愛情的第一個學分
  2. 「健康」:健康,可以使愛的能力順暢自然。
  3. 「專注」:每天把心思自然地專注在心愛的人身上。
  4. 「佔有」:「佔有」是「分裂」的開始。
  5. 「嫉妒」:嫉妒是一種不知道如何處理愛的愛。
  6. 「理由」:如果愛情沒有理由的發生,也就會沒理由的消失。
  7. 「單戀」:這讓我們真實地面對愛情的修鍊。
  8. 「永恆之一」:「永恆」,可能是令人喘不過氣的壓力。
  9. 「永恆之二」:愛情不應永恆不變,而應越變越好
  10. 「忍耐」:心生忍耐,是在傷害自己的生命。
  11. 「寬容」:寬容,不是忍耐,也不是縱容。
  12. 「負擔」:一個總是披著「責任」外衣出現的傷害。
  13. 「恐懼」:想要緊緊擁住的同時,我們正在失去。
  14. 「犧牲」:這是一種與愛情無關的苦行。
  15. 「精進」:愛情的勇氣與行動力。
  16. 「業障」:愛情中有「業」,但不必然是「業障」。
  17. 「前世」:一場美麗的夢,不能作為愛情的必然保證。
  18. 「網路」:不必以為網路是虛幻的,人生才是真實的。
  19. 「劈腿」:劈腿,需要具備三個條件。
  20. 「一夜情」:愛情的逃亡。
  21. 「同性戀」:愛情的關鍵詞是沒有性向之分的。
  22. 「分手」:這是愛情最重要的一個學分
推薦給想修習愛情學分的人。
###

2011年6月8日 星期三

Education 教育應該不一樣

教育必須是為學生照亮未來的探照燈,而非重複過去的後照鏡。教育不應是倒滿一壺水,而是點亮一根蠟燭。」

這段話是嚴長壽先生在「教育應該不一樣」一書中所提的,說的正確,教育本來就應該是這樣。這本書點出目前台灣教育各個方面的錯誤,這些錯誤是「台灣教育最不願面對的真相」,嚴長壽先生透過這本書試著改變台灣教育的現況,我聽到了!而我現在唯一能做的就是盡我所能將這些觀念告訴更多人,請大家一起告訴更多人,如此才有機會改變。

曾經,我們都是深受其害的學生,特別是我這群7年級世代,我記得學生時代的「教改」(就是這一代開始當白老鼠,他X的...),沒有發言權的學生在「前無古人,後無來者」的情形之下,面對所謂「教改」不知所措、不知所云!7年級這個世代體會最深、經歷的改變最大,我相信「改變會從7年級世代開始進行」

嚴長壽,教育應該不一樣,台北:天下遠見,2011。

這本書總共7章,前3章分別從家長、老師與(青年)學生3個「共錯結構」探討,而第4、5章則從教育制度上討論,第6章是提高到每個人可以做的方法,最後第7章總結教育應該不一樣。以下是整本書的大綱:
  1. 醒醒吧!家長
    不是每個人都要當國家棟梁,社會更需要腳踏實地、堅守岡位、熱愛工作的螺絲釘。
  2. 老師可以更勇敢
    教育不應是倒滿一壺水,而是點亮一根蠟燭。
  3. 年輕朋友請走一條追尋自我天賦之路
    只有專注和熱情,生命火光終會帶領你穿越人生迷霧。
  4. 只有創意和實力才能面對高學歷通膨時代
    教育應該是讓學生關懷自己以外的人事物,激發對社會、對世界的熱忱。
  5. 技職教育的黑洞
    教育必須是為學生照亮未來的探照燈,而非重複過去的後照鏡。
  6. 我們都是選民,更是公民
    監督教育政策事責任,也是權利。
  7. 教育應該不一樣
    台灣過去的文化優勢,必須轉變成未來的台灣核心教育元素。
推薦這本書給台灣的每一個人,台灣教育的未來必須靠我們一起改變,如同嚴長壽先生他明知道未必有所改變,但他帶著天生的社會使命感,他仍選擇再做一次「豬頭」。不論我們是否能夠改變什麼,但只要現在開始行動(不能只說不做),就一定有變好的那一天。

###

2011年6月7日 星期二

Certainty 確信

紀錄並分享生活心得,我與Jasper的對話錄。

Jasper:
不確定(uncertainty)就像沙漠中"找水",當你水壺剩一半時,就有點小緊張了,眼見水壺裡的水越來越少時,就會開始懷疑,"方向"是否正確,"工具"是否齊全,....等, 此時,如何以"聖嚴法師之詞"化解心中的不安?

倘若是遇到問題,或許"聖嚴法師之詞"可化解心中的"煩躁",但"不確定(找水)"不是個問題,是連問題(方向)在哪都找不到!!

Me:
「找水」
沙漠中只有你一個人,你只有手中的行囊,儘管內心的煎熬無比難受,腳下炙熱的沙礫與頭上的太陽,緊張懷疑並不能幫助你什麼,大概只會讓你猶豫不決的前進。你得持續找水,沒有退路,別無他法。

「方向」
已經很確定!就是找到水,持續前進。

Jasper:
你如何確定"水在前方",不是左前,不是右前,不是偏左,不是偏右,不是你腳下,不是你後面??

說不定"止渴"不是只有"找水",還有其他方法!!

不確定 -- 是指 都不知道,所以 不適用"聖嚴解法"!!

Me:
確定你確定的,相信你相信的。
剩下的:不確定、不相信的,就放下吧!

Jasper:(這段經典...一定會在歷史上留下)
"剩下的:不確定、不相信的,就放下吧!" 等死就對了!!
往前走,有水(活),沒水(死),有沒有水不知道,走就對了!!

有此阿Q精神我只認識一位叫"阿甘"的!況且"阿甘"並不是找水,而是一直往前走居然遇到水,才發現"水"是不錯的東西!
先要"無目的"的往前走,才可能一直往前走
若"有目的"的往前走,應須確認"目的地"在前方再往前走!!

Me:
不然要怎樣...

有沒有水不是自己可以控制的,考試考不考得上也多半不是自己可以控制的,
只能「做自己能做的,改變自己能改變的」,剩下的就放下讓它去吧!
專心在當下的「目的」。

體悟

不順心、不如意的事情,可以放下它。
不確定的事情,還是不確定!別讓它擾亂自己的心。
###

熱門文章