2012年7月26日 星期四

Basic CSS Concept

Three ways to insert CSS:

1. External style sheet
2. Internal style sheet
3. Inline style


Multiple style sheets:

If some properties have been set for the same selector in different style sheets,
the values will be inherited from the more specific style sheet.

Cascading order:

1. Browser default
2. External style sheet
3. Internal style sheet (in the head section)
4. Inline style (inside an HTML element)

Reference: http://www.w3schools.com/css/css_howto.asp

2012年7月19日 星期四

URI / URN / URL

http://en.wikipedia.org/wiki/Uniform_resource_identifier

URI (Uniform Resource Identifier):
如圖所示 URI 包含了 URN (Uniform Resource Name) 和 URL (Uniform Resource Locator)


2012年7月17日 星期二

五項針對跑者核心肌群的訓練動作(train your core like a runner)


http://www.unclesam.cc/blog/train-your-core-like-a-runner/

好文 - 閱讀他人的程式碼

閱讀他人的程式碼(1)─讀懂程式碼,使心法皆為我所用

1. 讀懂別人寫的程式碼,讓你收穫滿滿。
2. 先了解系統架構與行為模式,再細讀。
3. 接觸他人的程式碼,大致上可以分為三種程度:
a. 了解
b. 修改、擴充
c. 抽取、提煉

4. 閱讀程式碼的重點,不在於讀完每一行程式碼,而是在於有效率地透過探索及閱讀,從而了解系統的架構及行為模式。以便在你需要了解任何片段的細節實作時,能夠很快在腦上對映到具體的程式碼位置,直到那一刻,才是細讀的時機。

5.  熟悉溝通語言與慣例用語。
6. 掌握程式碼撰寫者的心態與習慣。


閱讀他人的程式碼(2) 摸清架構,便可輕鬆掌握全貌

1. 閱讀程式碼的目的,在於了解全貌而非細節

2. 從個別的類別行為著手,是由下至上(Bottom-Up)的方法;在閱讀程式碼時,卻應該先採由上至下(Top-Down)的方式。對程式碼的閱讀來說,由上至下意謂著,你得先了解整個系統架構。

3. 探索架構的第一件事:找出系統如何初始化

4. 在試著探索一個系統的長相時,我們應該找出來幾個答案,了解在它所用的架構下,下列這件事是如何被完成的:
a. 系統如何初始化
b. 與這個系統相接的其他系統(或使用者)有那些,而相接的介面又是什麼
c. 系統如何反應各種事件
d. 系統如何處理各種異常及錯誤


 閱讀他人的程式碼 (3) 優質工具在手,讀懂程式非難事

1. 因為在閱讀程式碼時,最常做的事,就是隨著程式中的某個控制流,將閱讀的重心,從某個函式移至它所呼叫的另一個函式。

2. grep
3. gtags
4. htags


閱讀他人的程式碼 (4)望文生義,進而推敲組件的作用

1. 好的說明文件難求,拼湊故事的能力很重要
2. 探索架構的第一步──找到程式的入口
3. 系統多會採用相同的架構處理
4. 隨著實務經驗,歸納常見的架構模式


閱讀他人的程式碼(5)找到程式入口,再由上而下抽絲剝繭

1. 適度忽略不需要了解的細節─這是一個很重要的態度。因為你不會一次就需要所有的細節。
2. 找到入口點後,多半採取由上而下(Top-Down)的方式,由最外層的結構,一層一層逐漸探索越來越多的細節。
3. 展開的同時,隨手記錄樹狀結構
4. 根據需要了解的粒度(Granularity),決定展開的層數


閱讀他人的程式碼(6)閱讀的樂趣:透過程式碼認識作者

1. 好的名稱能夠摘要性地點出實體的作用
2. 轉換立場,理解作者的思考方式
3. 從程式碼著手認識作者獨有的風格,進而見賢思齊

2012年7月10日 星期二

函示呼叫使用結構參數或指標參數的比較



結構參數
指標參數
效率
速度較慢:需要複製完整的資料來產生複本
速度較快:只需複製指標
空間
佔用空間較多:每次呼叫都需要產生複本,每個複本都需要使用完整的結構所需的空間,且結構中的成員未必都被使用到
佔用空間較少:只需產生指標的複本
相容性
較低:因為舊版的編譯器不一定支援結構參數的呼叫
較高:舊版編譯器即支援指標參數的呼叫
資料保護
較高:因為會產生資料複本,所以不會直接存取到原始資料
較低:會直接存取到原始資料,但可以用 const 的方式避免非必要的修改

2012年7月6日 星期五

GCC option -E and -S

  -E                       Preprocess only; do not compile, assemble or link 
  -S                       Compile only; do not assemble or link



"-S" 可以讓我們看到 code 編譯成組語的結果,我們也可以透過這種檢視方式來判斷執行的效率

2012年7月3日 星期二

FreeRADIUS 官方對各種 EAP Method 的說明

http://wiki.freeradius.org/EAP

MD5: 對 EAP 中傳送的帳號密碼加密
TLS: Server/Client 雙方靠憑證來認證
TTLS: 將 EAP 封裝加密
PEAP: 將 EAP 封裝加密