期待家附近的郵局趕快開張。這樣就會方便很多了。
【Wikidot】Code Blocks
假設你要在 wikidot 顯示 code blocks,記得使用
[[code]]…[[/code]] 這個 tags。
下面就是顯示 syntax highline之後的結果。當然離專業的程度(美觀)有一段距離,不過總比沒有好。
目前提供下面的程式語言
php, html, cpp, css, diff, dtd, java, javascript, perl, python, ruby, xml。
上面的都是截圖,Demo用的完整程式附貼在下面。
[[code type="cpp"]]
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("Hello, world\n");
return 0;
}
[[/code]]
【參考】
- Codeblocks
http://www.wikidot.com/doc:wiki-syntax#toc27
【C】Coding Convention(tbd)
Linux kernel coding style(http://lxr.linux.no/linux/Documentation/CodingStyle)也算是coding convention的聖經吧。老實說我覺得規定coding style是對團體的考量多於個人的考量。按照這份文件,就我知道的寫一下。
Chapter 1: Indentation
- tab/indent要八個,這也是programmer的麻吉vi預設的設定。
- 一行有80個欄(columns),方便打印與觀看。
Chapter 2: Breaking long lines and strings
- function的寫法,開始的大括號在function宣告下面。
- if/witch/do-while的寫法,開始的大括號在function宣告後面。
- 判斷是如果只有一個conditional statement可以不用加括號(不過這點本人不太建議)
- if-else 就算單一個conditional statement也要加括號。
3.1: Spaces
- 在下面的keywords後空一格
if, switch, case, for, do, while but not with sizeof, typeof, alignof, or __attribute__. E.g., - 運算元前後個各空一格。
Chapter 4: Naming
- local的話,善用tmp這類的變數,不要把暫存的資料變數名稱取名的落落長,越短越好。
- global的話,就要特別注意,如果取作foo就是自討苦吃。
- 在這邊的function名稱不流行大大小小(大寫混合小寫的)命名宣告,以小寫配合底線去宣告,例如count_active_users()。
Chapter 5: Typedefs
- 如果是struct宣告的話,使用
struct virtual_container *a;
不要使用
vps_t a; - 後面哩哩叩叩講了一堆,有空再看。
Chapter 6: Functions
Chapter 7: Centralized exiting of functions
Chapter 8: Commenting
- 這邊講解註解要寫些甚麼。
- 這邊用的是 C89 "/* ... */" 這種格式。
- 不要用C99-style "// ..." 的格式。
Chapter 9: You've made a mess of it
Chapter 10: Kconfig configuration files
Chapter 11: Data structures
Chapter 12: Macros, Enums and RTL
Chapter 13: Printing kernel messages
- 確保不含糊的輸出你的debug訊息。
- "dont" 應該改成 "do not” 或 "don’t”。
- 不要只單純輸出數字,像“(%d)”。
- 研究一下linux/device.h善用下面現成的debug宣告。
- dev_err(), dev_warn(), dev_info()
- pr_debug() and pr_info().
- 用Kconfig options/-DDEBUG來掌控你的debug marco。
- 研究一下VERBOSE_DEBUG/add dev_vdbg(),這是和Kconfig有關的。
Chapter 14: Allocating memory
- 善用kernel提供的memory alloc。
- kmalloc(), kzalloc(), kcalloc(), and vmalloc()
- (tbd)
Chapter 15: The inline disease
- 講了一些在那些狀況下不要用inline。可以好好看一下本文。
- kmalloc()提供一個不錯的範例。
- 其實個人覺得inline是由compiler決定要編成macro或function,這和compiler的版本比較有關係(看compiler寫得好不好)。
Chapter 16: Function return values and names
- 分成 static和 publc function來說,public的要沿用下面規則
- 如果是命令的話(ex. add_work),返回0代表成功;而-EBUSY代表失敗。
- 如果是述語(predicate)的話(ex.pci_dev_present()),1代表成功;0的話是失敗。
- point的話以NULL或ERR_PTR代表成功或失敗。
Chapter 17: Don't re-invent the kernel macros
- 像以下這些現成的Macros就別再自行宣告了。
- ARRAY_SIZE
- FIELD_SIZEOF
- max/min
Chapter 18: Editor modelines and other cruft
- vim/emacs會把編輯器的配置利用註解方式(/* */)嵌入在source code中,記得把它拿掉。以免造成別人的不便。
Appendix I: References
- 最後再丟幾本聖經給你。
- The C Programming Language, Second Edition
- The Practice of Programming
- GNU manuals
- WG14
- Kernel CodingStyle
【Ubuntu】Lazybuntu
一個Ubuntu的擴充,包含一些輸入法語常用套件。目前先嘗試裝在Ubuntu 9.10看看。看過看起來看起來有些東西會裝好,有的會跳掉。會裝不完全。之後有機會再來試看看。
【安裝】
- 到官網下載tarball
- 解開tarball,直接跑Lazybuntu這個script。
【俄文】俄文鍵盤位置
俄文鍵盤的Key mapping。
公司買的是這樣子的,照片有裁減掉一些不需要的部分。 型號 KB-9910/CEM 00-06 A01 37L2528
我的記法
【第一排】
左邊是五個一組 右邊是六個配一個硬音符號,共12個。
- Й(иней) Ц(Церковь) У(Утро) К(Книги) Е(Еда)
結霜 教堂 早晨 的書 上的食物 - Н(Ночь) Г(Гости) Ш(Школа) Щ(Щенок) З(Завтрак) Х(Хлеб)
是 晚上 訪客 學校 小狗 的早餐 的麵包 - Ъ 第一排右邊最後一個是 硬音符號
【第二排】
- (tbd)
【第三排】
- (tbd)
【參考】
【Poderosa】Poderosa Log功能
就像Putty一樣,Poderosa也是可以把Log保存下來的。
(上圖) 在New connection選擇要存檔的類型和檔名。
(上圖) 如果登入後才要存檔,選Console/Change Log,叫出Log configureation視窗,也是選你要的存檔類型與檔名。
輸出的速度會有點慢,稍微等一下再去開Log就會看到Dump的log了。
【生活】每晚回來睡覺的小傢伙
從泰國回來的那一晚就發現這個小傢伙每天下午約5點多就會來我家的遮雨篷睡覺,直到早上才出去覓食。從泰國回來觀察快10天了,天天如此真是稀奇。可能是這小傢伙覺得我們家夠安全才每晚都會來我們家休息吧。遠遠偷偷的幫他照了張像留念一下,太近拍怕牠飛走。
【Ubuntu】Poderosa亂碼問題
使用Poderosa登入Ubuntu9.10要顯示utf8的地方,如果沒有更改Encoding有時候會出現亂碼。可以按照下面步驟解決亂碼問題。
▲ 在New Connection的地方把 Encoding 設成 「utf-8」。
▲ 以minicom為例,左邊是沒有解決之前的情況。而右邊是改成utf-8之後的情況。
▲在登入後要更改也沒有問題,選上面的Encoding就可以了。
【旅遊】公司旅遊
來補一下公司員工旅遊的照片好了。由於本人對於攝影有不小的障礙,以下的照片都是由老婆操刀。
(上圖) Pattaya綠山動物園的河馬,遊客可以餵食小黃瓜。順便可以考驗你的三分射線投籃。要投進去才算。
(上圖) Pattaya綠山動物園的長頸鹿,遊客可以餵食小黃瓜與香蕉。這張拍的不錯,剛好抓到一起吃東西的線條。
(上圖) 一樣也是Pattaya綠山動物園的長頸鹿。有點像大頭狗。
(上圖) Pattaya綠山動物園的鹿,,遊客可以餵食四季豆。很黏人喔,會一直會往你身邊要東西吃。
(上圖) Pattaya綠山動物園的白老虎。這是不能給遊客餵食的。
(上圖) 水上市場的老樞,正專注的再處理水果,應該是蛇皮果吧。
好了先這樣,圖太多網頁會開很慢。XD…
【Linux】LVM
- 邏輯捲軸管理員 (Logical Volume Manager)
http://linux.vbird.org/linux_basic/0420quota.php#lvm
【生活】新家分享
從五月買房子,七月搬進來,到現在十二月,由於買完房子之後手頭幾乎沒錢了,只好一邊存錢一邊裝潢,總算把家裡弄得比較像樣了。分享一下。
- 客廳L型椅子是岳父幫忙找師父全部用紅木訂作的。
- 墊子是去永樂市場訂作的。
- 五個抱枕是去買隆美窗簾一起送的。
- 圓桌是IKEA買的,附滾輪方便移動,以後有小孩也不容易撞到。
- 吃飯是桌子沿用以前ikea的松木桌,那時買約1千出頭,不過現在IKEA已經漲價了。
▲椅子沒放坐墊的時候,可以看出紅木非常溫潤漂亮。
之前沒錢車坐墊,這樣也坐了好一陣子。本來想買皮沙發的,不過考慮到我家會有點小西曬,所以選木頭的比較耐用,也不用去煩惱皮革裂開的問題。墊子內包泡棉,坐起來很舒適。原木的椅子非常重。費了好大工夫才搬上樓。夏天可以不用椅墊直接坐上面,堅固又耐用。因為是專門訂作的,靠牆那面光是坐位的整體長度有240公分。
- 考慮到整體性的功能面,右邊用的是ikea的電視櫃。除了方便收納電線與CD,錄放影機/Router/電話主機都放在是下面櫃子,避免灰塵與讓整體更美觀。
- 電視是妹妹送的。
- 冷氣室內機是前屋主留的。
- 窗簾分兩層,朝客廳裡面的事前屋主留的,外面是隆美的。
- 單車一台是買hp印表機送的,一台是油控。
- 燈具也是前屋主留的。
除了主臥室的床和化妝桌也是用紅木訂做的外,其他房間的裝潢大致都是前屋主留下的。
【花費明細】
不含Ikea的家具、冷氣。岳父買材料請人作的金額,合計 130183元。
- 定尺寸原木材 41683元
- 表面磨光 2500元
- 合板建材料 14500元
- 玻璃 10500元
- 噴漆工程 30000元
- 木工工資31000元