Pages

2009年9月22日 星期二

Mgestyk Gesture Based Control

  Mgestyk 是加拿大的公司,利用 3D Camera 來做到三維影像的辨識,我只能說做得非常好...冏>。另外,Toshiba 出了「Cell-based SpursEngine」在 NB 和 LCD TV 上面利用手勢操作以吸引買家。從 Eij的碎碎唸 這篇看來,似乎 Toshiba 和 Mgestyk 有合作關係,還是說,根本是關係企業...。以下是 demo 影片:



Reference
  1. Mgestyk Gesture Based Control
  2. Toshiba 發佈手勢控制的 Cell-based 電視

2009年9月17日 星期四

diff && patch

  這兩個指令一起使用等同於大陸人所說的「補丁」,目的就是當程式有新版的時候,用來替換舊版的做法之一,如果一個專案有需要多人一起修改,使用 patch 配合有意義的檔名,如:camera_preview.patch 會變得比較好管裡,因為可以掌握到底改過哪些地方。

首先,假設有兩個資料夾:
-baijuyi- [/home/Bachelor_91/linly/old] -13:48- ls
a.cc git
-baijuyi- [/home/Bachelor_91/linly/old] -13:48- cat a.cc
#include <iostream>

using namespace std;

int main()
{
a = 3;
}
-baijuyi- [/home/Bachelor_91/linly/new] -13:49- ls
a.cc git
-baijuyi- [/home/Bachelor_91/linly/new] -13:49- cat a.cc
#include <iostream>

using namespace std;

int main()
{
b = 3;
}
  在兩個資料夾都有 a.cc 和 git,而 new 資料夾的 a.cc 檔案中,把 a = 3; 改成 b = 3;,現在要做 patch:
-baijuyi- [/home/Bachelor_91/linly] -13:52- diff -ruN old/ new/ -x git > my.patch
-baijuyi- [/home/Bachelor_91/linly] -13:53- cat my.patch
diff -ruN -x git old/a.cc new/a.cc
--- old/a.cc 2009-09-17 13:48:36.000000000 +0800
+++ new/a.cc 2009-09-17 13:48:04.000000000 +0800
@@ -4,5 +4,5 @@

int main()
{
- a = 3;
+ b = 3;
}
  其中有一個參數:-x git,是省略這個檔案不比,有時候會有一些說明檔在裡頭,沒有必要去 patch 它。接著就是打 patch:
-baijuyi- [/home/Bachelor_91/linly] -13:59- patch -p0 < my.patch
-baijuyi- [/home/Bachelor_91/linly] -14:16- cat old/a.cc
using namespace std;

int main()
{
b = 3; // =>改變了
}
  這樣就完成程式碼的更新了,如果說我到 old/ 這個資料夾打 patch 的話,由於是往下一層,所以要把 -p0 改成 -p1。最後,因為我的用 patch,它會幫我把原先的舊檔案,以原檔名加上 .orig,所以想把這些檔案都刪除的話,可以利用 find 去做:
-baijuyi- [/home/Bachelor_91/linly] -14:03- ls old/
a.cc a.cc.orig git
-baijuyi- [/home/Bachelor_91/linly] -14:03- find . -name '*.orig' -exec rm -f {} ';'
-baijuyi- [/home/Bachelor_91/linly] -14:03- ls old/
a.cc git
 
Blogger Templates