strace

中午在 書籤上看到介紹 的文章 (Fun with strace and the GDB Debugger),就到 裝起來 (在 ),發現比起 的 ktrace & dump 好用不少。

裝好 後可以簡單玩看看:

$ strace id

應該會出現像這樣開頭一長串的資訊:

execve(0xbfbfe240, [0xbfbfe710], [/* 0 vars */]) = 0
mmap(0, 3616, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x28070000
munmap(0x28070000, 3616)                = 0
__sysctl([...], 0x2806cb58, 0xbfbfe4c4, NULL, 0) = 0

有時候不會出現是因為 id 已經先結束了, 才去 trace,這時候就會出現錯誤訊息:

execve(0xbfbfe240, [0xbfbfe710], [/* 0 vars */]PIOCWSTOP: Input/output error

除了對於還沒執行的指令另外,你還可以追正在執行的 process,譬如拿我的 ssh-agent 來當白老鼠,他的 pid 是 1156:

$ strace -p 1156
Process 1156 attached - interrupt to quit
accept(3, {...}, 0xbfbfe4dc)            = 4
getsockopt(4, IPPROTO_IP, IP_OPTIONS, 0xbfbfe3f0, 0xbfbfe3ec) = 0
getuid()                                = 1000 (euid 1000)
fcntl(4, F_GETFL)                       = 0x6 (flags O_RDWR|O_NONBLOCK)
select(5, [3 4], [], NULL, NULL)        = 1 (in [4])

按 Ctrl-C 就可以跳出來停止追蹤。

有時候你想要知道這些 syscall 花了多少時間:

$ strace -p 1156 -T
Process 1156 attached - interrupt to quit
accept(3, {...}, 0xbfbfe4dc)            = 4 <0.000123>
getsockopt(4, IPPROTO_IP, IP_OPTIONS, 0xbfbfe3f0, 0xbfbfe3ec) = 0 <0.000042>
getuid()                                = 1000 (euid 1000) <0.000036>
fcntl(4, F_GETFL)                       = 0x6 (flags O_RDWR|O_NONBLOCK) <0.000049>
select(5, [3 4], [], NULL, NULL)        = 1 (in [4]) <0.000033>

或者想要知道每個 syscall 是什麼時候被叫用的:

$ strace -p 1156 -tt
Process 1156 attached - interrupt to quit
03:48:35.412544 accept(3, {...}, 0xbfbfe4dc) = 4
03:48:35.413028 getsockopt(4, IPPROTO_IP, IP_OPTIONS, 0xbfbfe3f0, 0xbfbfe3ec) = 0
03:48:35.413160 getuid()                = 1000 (euid 1000)
03:48:35.413258 fcntl(4, F_GETFL)       = 0x6 (flags O_RDWR|O_NONBLOCK)
03:48:35.413365 select(5, [3 4], [], NULL, NULL) = 1 (in [4])

這些都是蠻基本的功能,但對於 debug 或 benchmark 很有用,像是 就用 找出是哪邊浪費掉了時間:reducing Requests-Setup-Costs。(當然,裡面也有一些 的範例可以看)

其他的功能可以直接打 strace 看到說明,或是直接看 manual (man strace),裡面也寫的蠻詳細的。

字形的問題

很多字只要夠大都很好看,不論是新細明體,Simsun,或者是其他字形。

內建的 Theme 以及其他人所寫的 Theme 是以英文字為主,由於英文字母本來就比較簡單,字小小的其實還蠻容易看清楚,但如果同樣的大小拿到中文字用,就會糊成一團,看起來就很吃力。

舉個例子來說,The ALA Primer Part Two: Resources For Beginners (內文是 11.4667px) 與學弟的 XMLHttpRequest (內文是 12.4667px) 這兩篇比起來,雖然學弟那篇字比較大,但還是不夠大,中文字看起來就不太舒服。

再舉個例子,同樣是 K2 Theme,你可以看我的 Blog (16.2667px) 與 的 (15.2667px,也是 Simsun) 與 的 (12px)。你可以感覺看看字體大小所產生的差別。

曾經在聊天的時候聊到,有次他問他未婚妻覺得網站 (,16px) 如何,他未婚妻只說「字很大,看起來很好」。

PS:我看 ALA 與學弟的網站都會用 Ctrl-+ (in ) 加大一級看,因為還是覺得太小了...

在 Bloglines 上看無名的圖

l5n 之前提到 RefControl 這個 Addons (在 無名小站的圖片 (外連、擋 Referer、…) 這篇),不過一直都沒有測試 (其實也沒什麼在訂無名的 Blog...),剛剛突然想到,於是裝起來玩,然後就能在 上看到無名的圖了。

首先先到 RefControl :: Mozilla Add-ons :: Add Features to Mozilla Software 這頁安裝 RefControl,裝完以後需要重開 ,重開後設定對 pic.wretch.cc 送出 http://www.wretch.cc/ 即可:

接下來你可以到 去看看是不是正常了 :p

我的 Blog 用 Simsun 的情況

IRC 上剛好有人問我的 Blog 怎麼會用 Simsun,加上 從電腦裡移除 Simsun 字型 這篇也被點名,所以就把 irc log 貼一下:

09:35 < y> DK 神...
09:35 < y> 你的 blog 中文字看起來怪怪的, 好像簡體字?
09:36 < y> css 裡面這個 font: 85% Verdana, Arial, Simsun, Sans-Serif .... 嗯?
09:36 < y> Simsun 是簡體字嗎?
09:47 <@gslin> 對啊
09:51 <@y> ..... 為什麼要用簡體字啊?
09:53 <@gslin> 為什麼要用新細明體啊?Simsun
09:53 <@gslin> 明明就比較美觀
09:53 < R> 美觀++
09:55 <@i> simsun ... 到底是什麼字型啊 ?_?
09:56 <@W> http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/simsun.html
09:56 <@W> 檢體的
09:58 <@i> 我的意思是, 到底是長什麼樣子 ?
09:58 <@y> gslin: 呃... 嗯.... 我覺得中文字的話 Simsun 比較不好看, 英文字體的話, 新細明體比較不好看...
09:58 <@i> 之前不是才很多人幹譙 google 用 simsun 很難看 ? o_O
10:00 <@gslin> ylchang: sorry,我覺得比較好看
10:00 <@W> xd
10:02 <@y> XD

換成 Simsun 的原因就只是這樣而已,我覺得他的字型比新細明體好看。

Google 買下 Youtube

不斷有傳言說 要買 ,這個傳言現在確定是真的了。

1.65 16.5 億美金買下 ,成為全球最大 (而且以現在的數字來看,可以稱做壟斷) 的網路影音平台:Google to Buy YouTube for $1.65 Billion in Stock (紐約時報 Blog)。

接下來就是其他類似服務的大頭要頭痛了 :p

Update 的兩位創辦人利用 平台講幾句話:A Message From Chad and Steve。(看起來他們真的是爽翻了 XD)

twbbs.org.tw 暫時失效

好幾個人寫信到 信箱說可以刪除站台但無法新增,檢查以後發現是 twbbs.org.tw 暫時失效造成。所以暫時先改成檢查 twbbs.org,等到 twbbs.org.tw 恢復後再改回去:新增站台的功能暫時恢復

參考:Log of /www/manage-addhost.php

不安全的 Internet

上看到 (The BBC's Honeypot PC) 利用一台 (儘可能使他安全,我猜應該是開 Firewall + 防毒軟體之類的步驟...) 裝 ,然後在裡面安裝 (預設安裝,如同一般家庭所使用的) 然後上 Internet 測試。使用 的原因是可以在短時間內恢復整個系統,而且可以確保恢復的系統是乾淨的。

上 Internet 後測試的結果當然是超慘啦,Port Scan、Virus Attack 樣樣都來,然後宣稱 Internet 是不安全的 (雖然是事實...):Tracking down hi-tech crime。不過現在的洞大多都不是從這種地方攻擊,大多都是 E-mail 病毒、IE 漏洞造成的... 其實跟 Firewall 已經沒什麼太大的關係了。

就當作促進產業發展的置入性行銷吧 :p

Blog 換 Web Server

換 IP address,順便從 2.0 換 ,舊的 VirtualHost 還有跑,不過打算下午就整個拿掉。

在換的時候本來是採用舊的方法,也就是用 mod_rewrite 指定某幾個目錄丟給 index.php:lighttpd + WordPress 2.0 對於 Permlink 的處理,不過剛剛在 上發現有人給出透過 404 handler 處理的方法,這樣就跟原本 .htaccess 裡的設定等價 (非目錄、非檔案就丟給 index.php),看起來棒多了:WordPress with clean urls on Lighttpd

Update:提早拿掉提早測試 :p 好像有變快... (錯覺嗎?XD)