深入淺出設計模式 (Head First Design Patterns)
一月 17th, 2010 by Brightshine

深入淺出設計模式

這本書是碩一時修軟工買的,當時只看了二章
最近因為開始工作,有很多簡單直觀的功能
卻很頭痛該怎麼設計……
噢…寫出來真的不難,難的是怎麼寫才能便於修改維護
於是又把它翻出來從頭開始K起

很意外的是,我從當中開始明白許多API的設計思維
常常寫程式時只是查查code sample,知道怎麼做function call就開始用了
可是對運作的模式卻完全不瞭解
也不能理解明明很簡單的事情,為什麼卻要設計得很複雜
像是Java的IO

BufferedReader buf = new BufferedReader( new InputStreamReader( System.in ) );
String text = buf.readLine();

一層包一層像是裹粽子似的
c++用久了,習慣用cin時,看到這種東西實在會吐血 -_-….
會覺得設計的人到底在想什麼…%&^$#@

但是明白這樣的設計是本在Decorator pattern之後
便能夠理解設計者的思維
甚至知道該怎麼活用,而不是一昧的照抄範例了!

其實很多API的設計,也都有Design pattern的存在
要先取得功夫背後的心法,才能一以貫之

去除UTF-8 BOM
九月 9th, 2008 by Brightshine

Want to strip UTF-8 BOM(Byte Order Mark) from given files?

用sed一行搞定,秒殺

sed -e ’1s/^\xef\xbb\xbf//’ < bomfile > newfile

winxp更新檔批次安裝
十二月 4th, 2007 by Brightshine

批次下載:
Windows Updates Downloader

http://wud.jcarle.com/

需要.Net Framework

批次安裝
更新檔檔名 /quiet /passive /norestart /overwriteoem /nobackup

大量更新的時候很有用,不用一個個點到累死 :p

[轉錄]使用perl一次取代多個檔案內容
八月 24th, 2007 by Brightshine

marx’s IT experience看到的
常常會用到所以留個備忘

perl -pi -w -e ‘s/search/replace/g;’ *.php

-pi (-p 遞迴執行 -i[ext]複製讀取內容,處理後再覆蓋;如加上[ext],則原文件會備份到filename.ext)
-e (執行某些指令碼)
-w (列出 warning )

案例 取代 *php, *htm 內的
content="text/html; charset=big5″ 改為 content="text/html; charset=utf8″

可以下

perl -pi -w -e ‘s/content="text\/html; charset=big5″/content="text\/html; charset=utf8″/g;’ *.php(*.htm ,relative )

參考

對付去空白的秘技
十月 10th, 2006 by Brightshine

很多blog系統,不知道在想什麼
凡是在行首的空白都會自動去除掉(包含space和tab)
這樣一來,要做縮排的文章,就會變成全部向左邊對齊
為了這個問題還一度想自己去改source code

昨晚在貼文章時,突然發現行首的空白竟然還在!
後來才發現那個是全形的空白… XD
原來只要避開’ ‘和’\t’
使用全形的’ ’就可以了

這麼簡單的解法,怎麼現在才想到呢!

百日未眠的小惡魔
九月 24th, 2006 by Brightshine

雖然說,百日未停機對很多server來說,是件輕而易舉的事
不過我這台用二手零件拼湊出來的小惡魔,倒是第一次撐了這麼久不休息
(看來新換上去的power及motherboard品質還不錯)

這個記錄會持續到第幾天呢?我很期待著

幹了蠢事
八月 2nd, 2006 by Brightshine

下午實驗室meeting,snake.cs這台機器要交給我管
結果進去一看 FreeBSD 5.1…呃…三年沒更新了
便從更新source開始做起…

晚上到家後,看到log中有attacker在攻擊samba
想說順手擋掉好了…便下了kldload ipfw.ko

悲劇就發生了
ipfw預設值是reject all connections

平常只記得不要亂改rules,但是卻忽略了initial state
這到底是第幾次,自己被防火牆擋在外面啊?  ̄_ ̄|||

math.h在gcc中的問題
六月 26th, 2006 by Brightshine

學弟妹的程式作業,有好幾份連compile都不會過
很神奇的是,錯誤的地方都是pow()及sqrt()函式未定義
不禁懷疑是不是gcc的bug,後來google後發現驚人的事實

#include<math.h>
int main()
{
pow(1.5,2);
}

這段g++會給過,gcc卻不給過 (⊙o⊙)

在曾聖超老師的網頁中有提到:
因為 unix C 中, pow 函數定義在 libm.so 函式庫中,
所以, C無法在編譯連結時, 找到相關的函數檔連結到執行檔.

必須在編譯時, 告訴C函數庫的位置(gcc -lm filename.c )

Checko的網誌提到, gcc和g++的行為不太一樣
因為我向來都是用g++,所以從來沒有發現這點

還好發現得早,不然我就成了亂打分數的罪人了 ╮(﹀_﹀")╭

vi / vim 圖解鍵盤指令
五月 27th, 2006 by Brightshine


很精美的指令圖

原文版在這裡
中文版由 jserv翻譯

foobar2000的右鍵選單
五月 22nd, 2006 by Brightshine

foobar2000在9.0之後,不知道在想什麼,竟然把右鍵選單拿掉了
結果就不能在檔案總管中,直接用右鍵將音樂加入playlist

Foobar2000_Context_Menu_Editor.zip是一支小程式,可以將右鍵選單hack出來
為了方便,我也咪了一份回來

Pages: 1 2 3 4 Next

»  Substance:WordPress   »  Style:Ahren Ahimsa