【生活】Post office


期待家附近的郵局趕快開張。這樣就會方便很多了。

image

【Wikidot】Code Blocks


假設你要在 wikidot 顯示 code blocks,記得使用
[[code]]…[[/code]] 這個 tags。

以C為例
image

下面就是顯示 syntax highline之後的結果。當然離專業的程度(美觀)有一段距離,不過總比沒有好。
image

目前提供下面的程式語言
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]]

【參考】

【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

astyle http://astyle.sourceforge.net/

【Ubuntu】Lazybuntu


一個Ubuntu的擴充,包含一些輸入法語常用套件。目前先嘗試裝在Ubuntu 9.10看看。看過看起來看起來有些東西會裝好,有的會跳掉。會裝不完全。之後有機會再來試看看。

【安裝】

  1. 到官網下載tarball
  2. 解開tarball,直接跑Lazybuntu這個script。

http://lazybuntu.openfoundry.org/

【俄文】俄文鍵盤位置


俄文鍵盤的Key mapping。

公司買的是這樣子的,照片有裁減掉一些不需要的部分。image 型號 KB-9910/CEM 00-06 A01 37L2528

我的記法

【第一排】
左邊是五個一組 右邊是六個配一個硬音符號,共12個。

  • Й(иней) Ц(Церковь) У(Утро) К(Книги) Е(Еда)
    結霜 教堂 早晨 的書 上的食物
  • Н(Ночь) Г(Гости) Ш(Школа) Щ(Щенок) З(Завтрак) Х(Хлеб)
    是 晚上 訪客 學校 小狗 的早餐 的麵包
  • Ъ 第一排右邊最後一個是 硬音符號

【第二排】

  • (tbd)

【第三排】

  • (tbd)


【參考】

【Poderosa】Poderosa Log功能


就像Putty一樣,Poderosa也是可以把Log保存下來的。

image 
(上圖) 在New connection選擇要存檔的類型和檔名。

image (上圖) 如果登入後才要存檔,選Console/Change Log,叫出Log configureation視窗,也是選你要的存檔類型與檔名。

輸出的速度會有點慢,稍微等一下再去開Log就會看到Dump的log了。

【生活】每晚回來睡覺的小傢伙


從泰國回來的那一晚就發現這個小傢伙每天下午約5點多就會來我家的遮雨篷睡覺,直到早上才出去覓食。從泰國回來觀察快10天了,天天如此真是稀奇。可能是這小傢伙覺得我們家夠安全才每晚都會來我們家休息吧。遠遠偷偷的幫他照了張像留念一下,太近拍怕牠飛走。

image

【Ubuntu】Poderosa亂碼問題


使用Poderosa登入Ubuntu9.10要顯示utf8的地方,如果沒有更改Encoding有時候會出現亂碼。可以按照下面步驟解決亂碼問題。

  image
▲ 在New Connection的地方把 Encoding 設成 「utf-8」。

image
▲ 以minicom為例,左邊是沒有解決之前的情況。而右邊是改成utf-8之後的情況。

image
▲在登入後要更改也沒有問題,選上面的Encoding就可以了。

【旅遊】公司旅遊


來補一下公司員工旅遊的照片好了。由於本人對於攝影有不小的障礙,以下的照片都是由老婆操刀。

image 
(上圖) Pattaya綠山動物園的河馬,遊客可以餵食小黃瓜。順便可以考驗你的三分射線投籃。要投進去才算。

image 
(上圖) Pattaya綠山動物園的長頸鹿,遊客可以餵食小黃瓜與香蕉。這張拍的不錯,剛好抓到一起吃東西的線條。

image
(上圖) 一樣也是Pattaya綠山動物園的長頸鹿。有點像大頭狗。

image
(上圖) Pattaya綠山動物園的鹿,,遊客可以餵食四季豆。很黏人喔,會一直會往你身邊要東西吃。

image
(上圖) Pattaya綠山動物園的白老虎。這是不能給遊客餵食的。

image 
(上圖) 水上市場的老樞,正專注的再處理水果,應該是蛇皮果吧。

image
(上圖) 令公司藝術總監讚不絕口的Boylady。

image 
(上圖) 一間外型用船作的房子的燈飾,這張拍的不錯。

image
(上圖) 房子的雕花。

image 
(上圖) 房子的大門,由裡面往外看,就是船底的樣子。

好了先這樣,圖太多網頁會開很慢。XD…

【Linux】Ideacom


一家touch panel的vendor. 不過目前提供的driver還都是.o檔。
Ideacom http://www.ideacom.com.tw/

【Linux】LVM


昨天同事拿了一台有機器要我幫他mount,不過某個partition一直都mount不起來。用fdisk一看才知道是 lvm的。先把文章收錄一下,以後有機會再試看看。

【生活】新家分享


從五月買房子,七月搬進來,到現在十二月,由於買完房子之後手頭幾乎沒錢了,只好一邊存錢一邊裝潢,總算把家裡弄得比較像樣了。分享一下。

image 
▲客廳 + 餐廳。

  • 客廳L型椅子是岳父幫忙找師父全部用紅木訂作的。
  • 墊子是去永樂市場訂作的。
  • 五個抱枕是去買隆美窗簾一起送的。
  • 圓桌是IKEA買的,附滾輪方便移動,以後有小孩也不容易撞到。
  • 吃飯是桌子沿用以前ikea的松木桌,那時買約1千出頭,不過現在IKEA已經漲價了。

image
▲椅子沒放坐墊的時候,可以看出紅木非常溫潤漂亮。

之前沒錢車坐墊,這樣也坐了好一陣子。本來想買皮沙發的,不過考慮到我家會有點小西曬,所以選木頭的比較耐用,也不用去煩惱皮革裂開的問題。墊子內包泡棉,坐起來很舒適。原木的椅子非常重。費了好大工夫才搬上樓。夏天可以不用椅墊直接坐上面,堅固又耐用。因為是專門訂作的,靠牆那面光是坐位的整體長度有240公分。

image 
▲午後陽光灑進來客廳的樣子。

  • 考慮到整體性的功能面,右邊用的是ikea的電視櫃。除了方便收納電線與CD,錄放影機/Router/電話主機都放在是下面櫃子,避免灰塵與讓整體更美觀。
  • 電視是妹妹送的。
  • 冷氣室內機是前屋主留的。
  • 窗簾分兩層,朝客廳裡面的事前屋主留的,外面是隆美的。
  • 單車一台是買hp印表機送的,一台是油控。
  • 燈具也是前屋主留的。

除了主臥室的床和化妝桌也是用紅木訂做的外,其他房間的裝潢大致都是前屋主留下的。

【花費明細】

不含Ikea的家具、冷氣。岳父買材料請人作的金額,合計 130183元。

  1. 定尺寸原木材  41683元
  2. 表面磨光  2500元
  3. 合板建材料    14500元
  4. 玻璃     10500元
  5. 噴漆工程     30000元
  6. 木工工資31000元
 

Ed32. Copyright 2008 All Rights Reserved Revolution Two Church theme by Brian Gardner Converted into Blogger Template by Bloganol dot com