2008年12月22日 星期一

google patent search

還記得我以前在學習專利的時候
要花很多時間和USPTO緩慢的搜索引擎掙扎
花了很多時間也不一定可以找到好的關鍵字
今天 我豁然之間發現google也有搜尋專利的功能了
真是太方便了...
www.google.com/patents
Google makes life easier every day...

2008年11月22日 星期六

GNU debug

I've been reading tutorials about gdb, and find it as very handy tool while debugging...
It comes out that you can set breaking points, watching points, access and change variables inside memory. That makes debugging so much easier than ever before.
here are some really useful websites that would really help out, if you would like to learn more about gdb, including two tutorials and a simple user manual.
GDB - GNU debugger
gdb Tutorial
Peter's gdb Tutorial: Table Of Contents

2008年8月1日 星期五

法國家鄉馬鈴薯

切丁未去皮的馬鈴薯
配上切碎的百里香
灑上黑胡椒 白胡椒 海鹽 西班牙紅醬
在預熱250度C的烤箱內烤熟

味道超好

2008年7月30日 星期三

涼拌鮮蝦葡萄柚

和姑姑到士林的TOROS吃東西
吃到一個好吃的沙拉
回來 找到他的食譜

材料:

1.蝦子數條 2.葡萄柚一顆 3.檸檬半顆 4.新鮮檸檬百里香少許
調味料:

1. 鹽 2.糖 3.橄欖油 4.白胡椒


作法:

1.蝦子放入滾水煮熟,蝦殼剝掉備用

2.將葡萄柚從中剖半,但果肉不要傷到,這裡需要小心一些,取出完整果肉

3.將葡萄柚剝成瓣狀備用

4.取一碗,將檸檬汁及所有調味料混合均勻

5.將蝦仁、葡萄柚果肉及調味料拌勻後,擺盤,最後用百里香裝飾一下即可。

2008年7月19日 星期六

美式鬆餅

以前想要自己做一份美式早餐鬆餅
都必須要先賣一包很貴很貴的鬆餅粉
有了這份食譜之後 就可以用麵粉還有泡打粉自己做出鬆餅粉了

食材

1.
低筋麵粉...........160g
2.
泡打粉.............6g
3.
奶油...............15g
4.
砂糖...............50g
5.
鹽.................1g
6.
牛奶(或水).........175g
7.
雞蛋...............2個
8.
楓糖...............適量

份量:10片


作法

1.
先將奶油放置室溫放軟,用加熱的方式也可以。
將低筋麵粉跟泡打粉過篩混和後備用。

2.
把糖、鹽
奶油加入麵粉中,牛奶分兩次加入攪拌均勻。
再把雞蛋打散攪拌後,加入麵糊裡一起攪拌均勻。
3.
先將鍋子預熱後,舀定量的麵糊到鍋子上煎。
我是用不沾的平底鍋,所以我開小火不放油乾煎。
等表面充滿氣泡後,就可以翻面了,翻面之後再煎20秒即可。
4.
將煎好的pancake疊成層狀,淋上楓糖
果醬鮮奶油即可。


2008年7月12日 星期六

炸豬排

材料:

豬排肉片四片(一片約60公克)
可選用梅花肉或豬里肌肉 比較軟嫩

A:醬油二茶匙

醬油膏一茶匙

米酒一茶匙

蒜末少許
B
蛋液 半顆

麵粉一湯匙
C
麵包粉適量
````````````````````````````````````````````````````
做法:

將豬肉肉片以刀拍幾下 可以使肉片組織鬆弛

並且增加面積 在使用叉子叉正反面 可以使肉更容易吸收醬料

並且更加柔軟

在將A料混合均勻 塗抹在肉片上 此處醃料很少

因為主要是做日式風味 所以口味不重

將B即半顆蛋的蛋液加上一湯匙的麵粉混勻

將醃好的肉片沾上B料

在沾上麵包粉

沾好之後放置一段時間讓麵包粉可以回潮

這樣在炸的時候比較不會皮肉分離

起油鍋
讓豬肉在油鍋裡快樂的油炸

油炸到淡淡金黃色時就拿起來 不要炸到太金黃

起鍋後放置約五分鐘 即可食用

2008年7月11日 星期五

c++ and c 有用的工具

c++/c reference:
http://www.cplusplus.com/reference/clibrary/cstdlib/atoi.html
當看別人的code 的時候
常常會遇到別人習慣的function和我所用的不同
這個網站提供很方便的查詢,說明,所在的h file

pthread API user guide and manual:
http://cs.pub.ro/~apc/2003/resources/pthreads/uguide/users-96.htm
while multi-thread programming 這個網站也提供很棒的reference...

2008年7月9日 星期三

味增淋醬

味增淋醬:
紅味增 1大匙
白味增 1/2大匙
味霖 1大匙
醬油 1匙
糖 1匙
水 1碗
洋蔥碎1/4顆
太白粉 適量

味增醬調好備用,取一鍋子,將奶油融化後,下洋蔥炒軟,再將調好的味增醬倒入鍋中用小火煮開,等香味出來後即可用太白粉水勾薄芡

reference:
http://blog.pixnet.net/janeliusy/post/6302769

auto-complete for vim




auto-complete 是一般IDE 上面常有的功能
但是vim+ctags+omnicppcomplete就可以擁有auto-complete的開發環境
感覺上比visual studio上面提供的還要好用


omnicppcomplete can be downloaded here



install details
1) Unzip the plugin to ~/.vim (unix) or %HOMEPATH%\vimfiles
(windows)
2) Run Vim and type the following command :


:helptags $HOME/.vim/doc or :helptags $HOME/vimfiles/doc
3) Type :h omnicppcomplete and please read the installation
paragraph



做完vim底下的設定之後可以製作自己的tags檔


ctags -R --c++-kinds=+p --language-force=c++ --fields=+iaS --extra=+q
/usr/include
註:tags file will be named as "tags" and located in your current position


在使用omnicppcomplete之前需要在command mode底下載入剛剛製作的tag file


set tags=/usr/include/tags,./tags
註:your tags file position might be different
最後,只要按^x^o就可以使用超強的auto-complete嚕!!


2008年7月4日 星期五

紅燒牛肉麵

材料:

美國牛腱條 2

番茄1

3

1

2

料理米酒 1

醬油 1

豆瓣醬 2大匙

滷包

or 高湯 500cc

作法:
1牛肉先汆燙過,切塊。番茄水煮後剝皮,切成四片; 蔥薑蒜切斷拍碎。
2取一燉鍋,加點油後爆炒蔥薑蒜,再把牛肉和豆瓣醬放入鍋中拌炒至6分熟,再加入蕃茄、酒、醬油、滷包和高湯(蓋過肉)用大火煮滾後,再轉小火燉煮。
3.30分鐘後,撈起滷包(如喜歡中藥味重一點的可以不需要拿出),之後再續煮至湯汁濃縮成一半或牛肉變軟即可。
4可以依自己喜好,搭配麵條或是飯都可以。

小叮嚀

-火候控制要小心,剛開始小火燜煮,用筷子攪動牛肉塊與番茄碎塊,否則易焦。

reference:
http://blog.pixnet.net/janeliusy/post/4727388

2008年6月14日 星期六

installing boost and gtkmm under windows using dev-c++ as IDE

dev-c++ and boost
http://wagjo.com/index.php?id=27

dev-c++ and gtkmm
http://pkme.bokee.com/4985325.html

hope these aricals will help me finish my cross-platform projects...

new gtkmm-devel package on windows can be found here

2008年6月12日 星期四

Boost regex tutorial

c++的字串處理 已經較c方便很多
但是相較於perl之類的
還是望塵莫及

但是boost提供了一個regex的工具
我在網路上面找到一個棒的教學

簡單來說他是一個reguler expresstion的工具
他可以方便的提供你
  1. 在很長的字串中搜尋特定的資料格式內容
  2. 比對字串格式
  3. 同樣的字串做兩種不同格式之間的轉換
  4. ....
你只要把格式的規則寫成一個Boost::Regex的物件
例如:

boost::regex re("<a\\s+href=\"([\\-:\\w\\d\\.\\/]+)\">");
就可以用 boost::regex_match()或是boost::regex_search()來搜尋或是校對string

2008年6月11日 星期三

boost 1.305 增加網路以及影像處理的函式庫

boost將asio包含再裡面嚕
以後寫c++再也不需要自己重到尾寫socket
這個網佔有很豐富的資訊還有教學

這次一併加入的還有一個gil的影像工具
聽說功能也很強大
有空的時候希望有機會可以玩玩看

以後跨平台programming真是越來越容易了

好牧人有聲網

我在網路上面無意間找到一個很棒的網站叫做『好牧人有聲網』
上面有很多很棒的有聲查經教材

鮮蝦蘆薈義大利燉飯

risotto是義大利傳統的燉飯
上次吃過台北-Mr. Rice 瑞司義大利燉飯之後
覺得還蠻好吃的

沒想到在youtube上面輕易的就找到一個教學影片

其實risotto的煮法一點都不麻煩
不論是在宿舍還是在學校實驗室裡面
只要有平底鍋和電磁爐就可以輕易的完成了

教學影片:

2008年6月10日 星期二

Gtkmm Drawing Area simple tutorial



在Gtkmm中繪圖是一個再簡單不過的事情了

需要的物件有Drawing Area還有Cairo::Context

其實它的設計理念真是異常的簡單


  • Cairo::Context 就像是一隻畫筆


  • Drawing Area 則像是一個畫架

先介紹Cario::Context的使用方法


想像我們在畫畫的時候,先用鉛筆畫出圖案的輪廓

接著再拿色筆描繪輪,或是把圖案填滿

Cairo::Context的用法也是如此,先用"move_to"以及"line_to"等指令畫出一個path之後

再用"set_line_width","set_source_rgb"等函式挑選顏色以及筆觸的粗細等...

最後再選擇要描邊,還是把圖案填滿



先介紹Cairo::Context幾個簡單但是重要的函式



  1. move_to(x,y) 顧名思義就是把畫筆騰空(離開紙面)移到(x,y)


  2. line_to(x,y) 不難想像就是從畫筆原來的位置,畫一條path到(x,y)


  3. clip() 開始一個新的clip;打斷並且清除原來的Path


  4. set_line_width(w) 設定筆觸的粗細


  5. set_source_rgb(r,g,b) 設定筆觸的顏色


  6. stroke() 根據之前設定的顏色以及筆觸描繪出你所記錄的path
Drawing Area的使用
之前說過Drawing Area很像是繪圖用的畫架;在一般的繪圖時我們會用到兩個很重要的成員
  1. Glib::RefPtr <Gdk::Window>你可以想像這個就是我們所要畫畫用的白紙本身
  2. Gtk::Allocation 想像這個是畫布的一些初始資料; 例如:長寬高之類的
我們可以分別使用Drawing Area的兩個成員函式get_window()以及get_allocation()來取得它們



有了以上的概念以後,我們現在就可以看一個簡單的例子:
file: myarea.cc
#include "myarea.h"
#include <cairomm/context.h>

myArea::myArea()
{

}

myArea::~myArea()
{

}

bool myArea::on_expose_event(GdkEventExpose* event)
{
Glib::RefPtr<Gdk::Window> window = get_window();
if(window)
{
Gtk::Allocation allocation = get_allocation();
const int width = allocation.get_width();
const int height = allocation.get_height();

//coorderates the center of the window  int cx, cy;
cx = width/2;
cy = height/2;

Cairo::RefPtr<Cairo::Context> cr = window->create_cairo_context();
cr->set_line_width(10.0);

cr->rectangle(event->area.x, event->area.y, event->area.width, event->area.height);
cr->clip();
cr->set_source_rgb(0.8, 0.0, 0.0);
cr->move_to(0.0, 0.0);
cr->line_to(cx, cy);
cr->line_to(0, height);
cr->move_to(cx, cy);
cr->line_to(width, cy);
cr->stroke();

}
return true;
}
file: myarea.h


#ifndef GTKMM_EXAMPLE_MYAREA_H
#define GTKMM_EXAMPLE_MYAREA_H

#include <gtkmm/drawingarea.h>

class myArea:public Gtk::DrawingArea
{
public:
myArea ( );
virtual ~myArea();

private:
virtual bool on_expose_event(GdkEventExpose* event);
};
#endif //GTKMM_EXAMPLE_MYAREA_H
 
file: main.cc


#include "myarea.h"
#include <gtkmm/main.h>
#include <gtkmm/window.h>

int main (int argc, char * argv[])
{
Gtk::Main kit(argc, argv);
Gtk::Window win;
win.set_title("drawing area");
myArea area;
win.add(area);
area.show();
Gtk::Main::run(win);

return 0;
}
 
file: Makefile

CC=g++
CFLAGS=-Wall `pkg-config gtkmm-2.4 --cflags --libs`
OBJS=main.o myarea.o

all:drawingarea

drawingarea:$(OBJS)
$(CC) $(OBJS) -o $@ $(CFLAGS)

main.o: main.cc myarea.h
$(CC) $(CFLAGS) -c -o $@ $<

myarea.o: myarea.cc myarea.h
$(CC) $(CFLAGS) -c -o $@ $<

reference
http://www.cairographics.org/documentation/cairomm/reference/
http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/chapter-drawingarea.html

這個程式碼在ubuntu 8.04中可以正常的執行, gtkmm、cairomm用synaptic就可以輕易的安裝