-
使用 sysexits.h 定義的 EX_ 變數
以前我們常常在程式裡面直接呼叫 exit, 並搭配一個自己「想要」的變數作為程式的 return code,像是 這樣的壞處是,我們不知道 0 代表什麼,-1 又代表什麼,這樣一來可讀性也會顯得比較差了一點。今天在無意之間看到 FreeBSD 的 lockf,他使用了 sysexits(3),在這邊節錄一下 man page 的敘述。 According to style(9), it is not a good practice to call exit(3) with arbitrary values to indicate a failure condition when ending a program. Instead, the pre-defined exit codes from sysexits should be used, so the caller of the…
-
用 mkdir 確保 shell script 執行的互斥性
有些時候,你不希望一個 script 同時有兩個以上的 instance,這個時候你可能有很多想法,例如利用檢查 pid file 的方法,或者是找一個 lockf(1) 之類的程式幫你處理這些事情。(老實說 FreeBSD 的 lockf(1) 的確蠻方便的,尤其是對於懶惰寫 code 的我來說。) 但是這會有另外一個問題,不是每個 OS 都有提供 lockf(1),有些就只給你 lockf(2)。所以我就得換個方法作,首先,我想到這樣的寫法 利用一個 lockfile 來確保互斥性,只不過 -f 與 touch 之間還是有機會產生 race condition。結果在讀了一些文章之後,我發現有人說 mkdir(2) 是 atomic 的(我目前還沒有找到什麼佐證的資料,NFS 就先放一旁吧……),也有人就用 mkdir(1) 來確保同時只會有一個 shell script 的 instance,再搭配 trap 來處理一些 signal,這樣似乎就可以暫時取代 lockf 了……。 最後的版本就像這樣,應該還有很多問題,但先這樣吧。 最後附上幾篇參考資料 请教怎么保证一个shell脚本同一时间只能有一个在运行! Preventing multiple invocations of script from accessing…
-
Skylark: 芳鄰與加州風洋食館
昨天在 Qさま!! 才知道 skylark 是英語中的雲雀,而昨天節目中使用 skylark 的 logo 就是下面這張。 我想和我差不多年紀的人可能會記得,這個 logo 曾經代表一家叫做「芳鄰」的平價美式餐廳,不過近幾年已經消失在台灣市場。(小時候每次吃飽飯,都會拿到這個 logo 的貼紙,最後,我的床舖邊上也貼了幾張芳鄰的貼紙)而我不免懷疑,最近幾年出現的 Skylark 加州風洋食館,是不是與「芳鄰」有什麼關係呢? 答案揭曉,加州風洋食館和芳鄰都是源自於日本的「Skylark株式會社」(你也可以參考一下這個連結。) 只不過,換了名字的餐廳,對我就好像失去意義一般,我想那個年代的芳鄰就好像一個溫暖家庭的記憶,好像比較有耐性,比較溫暖,也沒有那麼多計較了。
-
何耀珊 – 不凋零的花
在南京出差的時候,曾經一個晚上聽到兩次這首歌。只是重複聽的現在,我還是起了雞皮疙瘩。不管你是不是基督徒,我都要推薦你這首歌。 你也可以在「希望」專輯官方部落格找到這首歌的資訊,有機會你也可以去新生命小組教會看看歐 🙂
-
你今天 static code analysis 了嗎?
最近才稍微看了一下手邊專案的程式碼,不能說有什麼太多的問題,只是就制度面而言,其實還有更多可以改善的地方。 公司以往的作法是這樣,你先 check-in code,然後等到一個禮拜的 static code analysis 再進行全面性的更正。但我想 check-in 之後的 static code analysis 只能說是最後一道防線,在這之前,就只能端看開發者的自由心證。 所以,如果要等公司的工具告訴你問題之前,為什麼不先想辦法先作一次呢?自己先作一次有幾點好處。 確保 check-in 的 code 跑出來的 unit test 結果正確,降低事後修正造成的副作用 減少 submit log 上太多與 feature 無關的 log(例如 strcpy fixing) 而現有的 static code analysis 的工具你可以參考 List of tools for static code analysis 然後選擇用的順手的一個,以 C/C++ 而言,我剛剛稍微玩了一下 RATS 和 flawfinder,他們的確能夠提供一些有用的資訊,像是不該使用 gets,或是使用 strcpy 會造成的危險他都能一一列出。 然而 static…
-
WordPress 2.6
http://wordpress.org/development/2008/07/wordpress-26-tyner/ 我是白老鼠,吱吱。
-
陳綺貞 Track 5 失敗者的飛翔 7/13 發行
距離上一張單曲 pussy 也已經一年半了(時光荏苒),我們最愛的綺貞老師終於要發行新作品了,等不及的同學們可以去 youtube 上找找,應該不會讓你失望的 🙂 請洽 cheerego.com。
-
一知半解
一知半解是何等危險的事情。 但事實上,又有多少東西建立於此呢?
-
iSCSI target: tgtadm 換到 ietadm
之前用 CentOS yum 裡面的版本,tgtadm 可以直接用 –op show 來看目前的 session,但是那個版本有個缺點,就是他並沒有辦法將設定儲存在 /etc 底下,這樣等於每次開機都要重打一堆設定。 現在換到 http://iscsitarget.sourceforge.net/ 的版本,就發現過去習慣的方法不能用了。現在查看 session 的方法在 /proc/net/iet/session tid:1 name:iqn.2001-04.com.example:storage.disk2.amiens.sys1.xyz sid:562950091637248 initiator:iqn.1994-05.com.redhat:4a5fe389185 cid:0 ip:127.0.0.1 state:active hd:none dd:none 這樣就可以無痛轉換過去了吧。