一直以來在 Mac 中使用 Adium 來以 msn 聊天用,最近發現早就把 Twitter 和 Facebook Chat 整合進來了,真是方便哩。
一開始在設定 Facebook Chat 時會在認證授權後一直卡在什麼提高聊天室等級之類的。就拜讀了一下 google 大大發現有別的方法來實現。如下說明:
在 Adium 的偏好設定 --> 新增帳號 --> 選擇 Jabber
Jabber ID : 請填入 Facebook 個人檔案中網址後面部份的名稱,我的是:http://www.facebook.com/wei0826,那我要填入wei0826@chat.facebook.com
Password:請填入 Facebook 帳號的密碼
另外在「選項」這個分頁中,伺服器名稱請填入 chat.facebook.com 並確認埠是 5222 後按下確定就 ok 啦!
2011年12月3日 星期六
2011年11月11日 星期五
Apache 設定關閉 Indexes 小記
Ubuntu 中若要設定的話,檔案位在 /etc/apache2/sites-available/default
在 Options 裡可設定 Indexes,此為當使用者找不到 index.html 等首頁時,就列出該目錄底下 # 所有檔案。這樣是有一點危險性,通常都是設定為關閉 (即把 Indexes 拿掉即可)。
設定完之後記得重開 apache 就收工啦!
sudo /etc/init.d/apache2 restart
在 Options 裡可設定 Indexes,此為當使用者找不到 index.html 等首頁時,就列出該目錄底下 # 所有檔案。這樣是有一點危險性,通常都是設定為關閉 (即把 Indexes 拿掉即可)。
設定完之後記得重開 apache 就收工啦!
sudo /etc/init.d/apache2 restart
2011年11月7日 星期一
Ubuntu 安裝 mail 套件
最近在寫將使用者註冊後, 用 mail 通知驗證連結, 發現 php 裡有個 mail 函式, 非常方便好用.
但在灌好 Ubuntu 時並不會把此套件預設安裝, 問了同事才知道該套件名叫 postfix.
就直接用 apt-get install 安裝即可, 在過程會尋問 type 可使用預設的 Internet site 即可.
但在灌好 Ubuntu 時並不會把此套件預設安裝, 問了同事才知道該套件名叫 postfix.
就直接用 apt-get install 安裝即可, 在過程會尋問 type 可使用預設的 Internet site 即可.
MiLi Photo Printer (專用於 iOS 及 Android 裝置)
最近看到一台可以直接用 iOS 或 Android 拍照後直接印出來的相片印表機.
解析度 300 dpi, 支援 jpg 格式, 1 分鐘列印完成 1 張 4 x 6 的相片.
要價 159.95 美金! 以下連結是詳細評測, 有興趣的可以看看.
詳細評測
讓我回想起之前買電腦送的熱熔相片印表機丫~~
解析度 300 dpi, 支援 jpg 格式, 1 分鐘列印完成 1 張 4 x 6 的相片.
要價 159.95 美金! 以下連結是詳細評測, 有興趣的可以看看.
詳細評測
讓我回想起之前買電腦送的熱熔相片印表機丫~~
2011年10月31日 星期一
2011年10月13日 星期四
PHP 寄發 eMail
有好一陣子沒有更新了,因為都在忙著把使用者介面做好,就是要把目前現有的系統有個完整的操作介面,包含使用者註冊,更新資料,連絡我們以及直接使用 facebook app 的方式登入系統。
而在讓使用者註冊完成時,要發送 email 給使用者,就開始找相關資料啦,以下做個範本記錄一下:
// 收件人
$to = $email1 . ', ' . $email2;
// 主旨
$subject = $title;
$subject = "=?UTF-8?B?" . base64_encode($subject) . "?=";
// 內容
$message = "<div>" . $msg . "</div>";
// 設定內容語系,使用 utf-8
$headers = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\n";
// 寄件者
$headers .= 'From: wei0826@gmail.com' . "\n";
// 傳送
if(!mail($to, $subject, $message, $headers))
{
echo "Send email error !";
exit;
}
以上有2個地方要特別注意一下:
1. 在設定主旨時要使用 base64_encode 來解決亂碼問題。
2. 在內容部份可以用 <div> xxx </div> 來換行。
而在讓使用者註冊完成時,要發送 email 給使用者,就開始找相關資料啦,以下做個範本記錄一下:
// 收件人
$to = $email1 . ', ' . $email2;
// 主旨
$subject = $title;
$subject = "=?UTF-8?B?" . base64_encode($subject) . "?=";
// 內容
$message = "<div>" . $msg . "</div>";
// 設定內容語系,使用 utf-8
$headers = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\n";
// 寄件者
$headers .= 'From: wei0826@gmail.com' . "\n";
// 傳送
if(!mail($to, $subject, $message, $headers))
{
echo "Send email error !";
exit;
}
以上有2個地方要特別注意一下:
1. 在設定主旨時要使用 base64_encode 來解決亂碼問題。
2. 在內容部份可以用 <div> xxx </div> 來換行。
2011年9月19日 星期一
研替進度
原訂提早的第17梯次新訓,因為來個颱風由 8/29 延至 9/1 才入伍報到,換來的結果是前幾天趕趕趕進度,不知在忙什麼東東,好處是比一般梯次少待在成功嶺2天!但缺點第一階段的28天也跟著延後,從 9/1 - 9/28 才結束,準備邁向第二階段啦!
2011年8月11日 星期四
Ubuntu 進入 root 帳號的方法
大致上有 2 種做法,在終端機下:
1. 設定 root 密碼後,再輸入 'su' 來輸入 root 密碼進入。
PS: 設定 root 密碼為輸入 'sudo passwd root' 即可。
2. 直接輸入 'sudo su -'來輸入自已的密碼進入。
1. 設定 root 密碼後,再輸入 'su' 來輸入 root 密碼進入。
PS: 設定 root 密碼為輸入 'sudo passwd root' 即可。
2. 直接輸入 'sudo su -'來輸入自已的密碼進入。
2011年8月3日 星期三
2011 台灣使用者經驗高峰會
官網:http://www.uxtaiwan.org/ch/program/
主辦:UiGathering 台灣使用者經驗設計專業交流協會
日期:2011年9月16日(五) 08:00 - 18:00
主辦:UiGathering 台灣使用者經驗設計專業交流協會
日期:2011年9月16日(五) 08:00 - 18:00
2011年7月30日 星期六
php 上傳及處理解壓縮檔案
最近瘋狂的跟 php 成為好朋友,繼之前把 os 由 win7 改成 ubuntu 之後,開始記錄些使用心得,這篇在說明怎麼處理使用者上傳的檔案和若為壓縮檔如何解壓縮。
一.上傳檔案
upload.php
<form method="post" action="test.php" enctype="multipart/form-data">
<table>
二.處理壓縮檔
網路上有好心大大提供 class 可使用,連結為 PclZip,有幾個常用的參數以下列出。
-PCLZIP_OPT_PATH : 要解壓縮到哪的路徑。可用於extract()、extractByIndex()。
-PCLZIP_OPT_SET_CHMOD : 設定解壓縮出來的檔案的CHMOD值。可用於extract()、extractByIndex()。
test.php
include("pclzip.lib.php");
一.上傳檔案
upload.php
<form method="post" action="test.php" enctype="multipart/form-data">
<table>
<tr>
<td>
<input id="Button1" name="file1" type="file" value="Select File" />
</td>
</tr>
<tr>
<td colspan="4" style="text-align: center">
<input id="Button2" type="submit" value="OK" />
</td>
</tr>
</table>
</form>
PS:
1. 要用 form 及 post 來傳送,且一定要有 enctype="multipart/form-data"
2. input type 要用 file
3. 記得指定 input name
test.php
//搬移上傳之壓縮檔至解壓縮目錄
$upload = $folder . basename($_FILES['file1']['name']);
if(!move_uploaded_file($_FILES['file1']['tmp_name'], $upload))
{
echo "move_uploaded_file error!";
exit;
}
//設定上傳之壓縮檔案權限
if(!chmod($upload, 0777))
{
echo "chmod error!";
exit;
}
PS:
1. move_uploaded_file 會覆蓋舊檔
二.處理壓縮檔
網路上有好心大大提供 class 可使用,連結為 PclZip,有幾個常用的參數以下列出。
-PCLZIP_OPT_PATH : 要解壓縮到哪的路徑。可用於extract()、extractByIndex()。
-PCLZIP_OPT_SET_CHMOD : 設定解壓縮出來的檔案的CHMOD值。可用於extract()、extractByIndex()。
test.php
include("pclzip.lib.php");
//解壓縮檔案並設定權限
$archive = new PclZip($upload);
if($archive->extract(PCLZIP_OPT_PATH, $folder, PCLZIP_OPT_SET_CHMOD, 0777) == 0)
{
echo "PclZip extract error!";
exit;
}
//設定解壓縮後資料夾權限
$path = pathinfo($upload);
$filename = $path['filename'];
$filename = $folder . $filename . "/";
if(!chmod($filename, 0777))
{
echo "chmod error!";
exit;
}
PS:
1. 目前尚不支援 rar 壓縮檔
參考連結
1. http://itisjoe.pixnet.net/blog/post/14758894
2. http://bjack617.blogspot.com/2009/10/php-zip.html
參考連結
1. http://itisjoe.pixnet.net/blog/post/14758894
2. http://bjack617.blogspot.com/2009/10/php-zip.html
2011年7月19日 星期二
Ubuntu 設定 資料夾分享(Samba) for Windows & Mac
因為要給 windows 的使用者共享資料夾以開發方便用.
研究了一下資料夾分享, 最後使用了簡易的 samba 來用.
1.在要分享的資料夾按滑鼠右鍵, 選擇"共享屬性".
2.將"共享此資料夾"打勾(若未安裝 samba 會提示安裝, 照著操作即可).
3.增加 samba 使用者, 輸入 sudo smbpasswd -a username, 然後輸入密碼設定即可.
PS: 這裡以需要輸入帳密才可進入資料夾來設定, 因此新增之使用者亦要是系統已建立之使用者.
4.設定 /etc/samba/smb.conf 的 workgroup 為自己想要的群組.
5.以上完成後, 若按下"建立共享"後出現 'net usershare' returned error 255..., 即修改 /etc/samba/smb.conf, 在 [global] 下增加一行, usershare owner only = False 就解決啦!
6.重開 samba, 輸入指令 sudo /etc/init.d/samba restart 即可.
若要在系統建立新的使用者, 輸入以下指令.
1.sudo adduser username
2.輸入密碼及個人資訊
若要讓使用者擁有管理權限, 輸入以下指令.
adduser username admin
研究了一下資料夾分享, 最後使用了簡易的 samba 來用.
1.在要分享的資料夾按滑鼠右鍵, 選擇"共享屬性".
2.將"共享此資料夾"打勾(若未安裝 samba 會提示安裝, 照著操作即可).
3.增加 samba 使用者, 輸入 sudo smbpasswd -a username, 然後輸入密碼設定即可.
PS: 這裡以需要輸入帳密才可進入資料夾來設定, 因此新增之使用者亦要是系統已建立之使用者.
4.設定 /etc/samba/smb.conf 的 workgroup 為自己想要的群組.
5.以上完成後, 若按下"建立共享"後出現 'net usershare' returned error 255..., 即修改 /etc/samba/smb.conf, 在 [global] 下增加一行, usershare owner only = False 就解決啦!
6.重開 samba, 輸入指令 sudo /etc/init.d/samba restart 即可.
若要在系統建立新的使用者, 輸入以下指令.
1.sudo adduser username
2.輸入密碼及個人資訊
若要讓使用者擁有管理權限, 輸入以下指令.
adduser username admin
若要查詢使用者擁有管理權限, 輸入以下指令.
grep admin /etc/group
若要刪除使用者, 輸入以下指令.
sudo deluser username
Mac 要連結時請先在 Finder -> 連結伺服器(cmd+k)
輸入 smb://host 就完成啦!
Mac 要連結時請先在 Finder -> 連結伺服器(cmd+k)
輸入 smb://host 就完成啦!
Ubuntu 設定 phpMyAdmin 路徑
最近在開始 comics 專案後, 把原本測試機的系統由 win7 改成了 ubuntu.
經過從頭安裝 apache + php + mysql + phpmyadmin 後, 發現安裝過程都順利.
打開 http://localhost 也都能看到 it's work!
但卻發現 phpmyadmin 沒有在 /var/www/ 裡, 打開 http://localhost/phpmyadmin ==> 404 error !
解決 : 原來安裝目錄在 /usr/share/ 裡, 輸入以下指令建立捷徑即可.
sudo ln -s /usr/share/phpmyadmin /var/www
經過從頭安裝 apache + php + mysql + phpmyadmin 後, 發現安裝過程都順利.
打開 http://localhost 也都能看到 it's work!
但卻發現 phpmyadmin 沒有在 /var/www/ 裡, 打開 http://localhost/phpmyadmin ==> 404 error !
解決 : 原來安裝目錄在 /usr/share/ 裡, 輸入以下指令建立捷徑即可.
sudo ln -s /usr/share/phpmyadmin /var/www
2011年6月24日 星期五
Facebook 開發過程(一)
話說辨識顏色玩遊戲做到一個段落, 正準備做個簡報去跟治療師 Demo.
新工作來啦, 用 PHP 做個 Facebook 的 App 吧!
雖然之前有寫過簡單的 PHP 連 MySQL 的經驗, 但還是對 PHP 很不熟.
就開始找相關資料, 網路上不少教學, 但一開始沒去注意授權這件事, 讓自己吃了大虧.
這裡轉貼個大大的教學文, 說明授權這東東, 連結在此.
開發大致流程如下:
1.申請個 Facebook 開發人員應用程式(要注意連外網址), 連結在此.
2.下載 Facebook for PHP API, 連結在此.
3.修改申請好的 AppID 及 Secret Key.
4.最重要的來了, 授權選項, $facebook->getLoginUrl() 裡 'req_perms' 部份.
這個放個連結說明授權選項的內容, 要依照 App 所需的部份來使用.
當然沒用到的最好別亂加, 個人隱私重要的很!
5.把寫好的 PHP 檔上傳到指定的網路空間去就可以啦.
新工作來啦, 用 PHP 做個 Facebook 的 App 吧!
雖然之前有寫過簡單的 PHP 連 MySQL 的經驗, 但還是對 PHP 很不熟.
就開始找相關資料, 網路上不少教學, 但一開始沒去注意授權這件事, 讓自己吃了大虧.
這裡轉貼個大大的教學文, 說明授權這東東, 連結在此.
開發大致流程如下:
1.申請個 Facebook 開發人員應用程式(要注意連外網址), 連結在此.
2.下載 Facebook for PHP API, 連結在此.
3.修改申請好的 AppID 及 Secret Key.
4.最重要的來了, 授權選項, $facebook->getLoginUrl() 裡 'req_perms' 部份.
這個放個連結說明授權選項的內容, 要依照 App 所需的部份來使用.
當然沒用到的最好別亂加, 個人隱私重要的很!
5.把寫好的 PHP 檔上傳到指定的網路空間去就可以啦.
2011年6月23日 星期四
Augmented Reality Cinema
今天看到一個不錯的"應用概念", 是使用AR(Augmented Reality)的技術.
只要將手機鏡頭對準某著名電影場景, 螢幕就會顯示出該電影中的畫面.
只要將手機鏡頭對準某著名電影場景, 螢幕就會顯示出該電影中的畫面.
2011年5月25日 星期三
簡報技巧
在商周專刊中看到,列出了五個項目,開始用這個表格來檢查每一場簡報吧。
1.人們是否準時來出席你的簡報,還是他們會找藉口遲到早退?
2.當你在報告時,觀眾有沒有認真在聽,還是他們在做別的事情,比如說跟別人聊天或是在手機或筆電上查看email?
3.當別人在你簡報中發問,你會覺得高興,還是覺得很煩希望他們讓你先說完?
4.在你簡報完,聽眾會不會謝謝你的努力,然後說你真厲害可以把你的想法用簡明易懂的方式解釋清楚,還是他們在簡報就一走了之?
5.在你簡報完,你的想法和建議是否照你的想要的實施?還是你對於很少聽眾在意你的想法和建議感到失望?
每個問題都有兩個部分,前者表示成功,後者表示失敗。
在每場簡報後,如果你選前者的平均次數低於三次,那就砍掉重練吧!!!
1.人們是否準時來出席你的簡報,還是他們會找藉口遲到早退?
2.當你在報告時,觀眾有沒有認真在聽,還是他們在做別的事情,比如說跟別人聊天或是在手機或筆電上查看email?
3.當別人在你簡報中發問,你會覺得高興,還是覺得很煩希望他們讓你先說完?
4.在你簡報完,聽眾會不會謝謝你的努力,然後說你真厲害可以把你的想法用簡明易懂的方式解釋清楚,還是他們在簡報就一走了之?
5.在你簡報完,你的想法和建議是否照你的想要的實施?還是你對於很少聽眾在意你的想法和建議感到失望?
每個問題都有兩個部分,前者表示成功,後者表示失敗。
在每場簡報後,如果你選前者的平均次數低於三次,那就砍掉重練吧!!!
Flash Builder 4.5 / AIR 2.6 開發 iOS 手機整理
http://bharatria.wordpress.com/category/flash-builder-4/
http://www.adobe.com/devnet/devices/ios.html
http://www.gennizou.com/devnet/air/article-index.html
http://blogs.adobe.com/cantrell/
http://flash.mattters.com/timeline/2011/3/21/developing-for-ios-with-air-for-mobile-26
by 提供華人專業RIA/Web2.0平台
http://bharatria.wordpress.com/category/flash-builder-4/
http://www.adobe.com/devnet/devices/ios.html
http://www.gennizou.com/devnet/air/article-index.html
http://blogs.adobe.com/cantrell/
http://flash.mattters.com/timeline/2011/3/21/developing-for-ios-with-air-for-mobile-26
by 提供華人專業RIA/Web2.0平台
2011年5月19日 星期四
OpenCV 設定視窗置頂
因為 OpenCV 在建立時會產生2個視窗, 分別是主視窗及子視窗(在 cvNamedWindow 函式裡可以看到).
HWND hWnd = (HWND)cvGetWindowHandle("CamShiftDemo");
HWND hRawWnd = ::GetParent(hWnd);
if(hRawWnd != NULL)
{
BOOL bRet = ::SetWindowPos(hRawWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
assert(bRet);
}
HWND hWnd = (HWND)cvGetWindowHandle("CamShiftDemo");
HWND hRawWnd = ::GetParent(hWnd);
if(hRawWnd != NULL)
{
BOOL bRet = ::SetWindowPos(hRawWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
assert(bRet);
}
字串處理函式
最近在處理字串大小寫問題, 上網找了找相關資料, 連結如下
http://masm1215.myweb.hinet.net/turbo_c/c_func.htm
截取幾個可能會用到的標記一下:
strcmpi string.h 不考慮字母之大小,比較兩字串。
stricmp string.h 不計大小寫之字串比較。
strlwr string.h 大寫字母轉小寫。
strupr string.h 小寫字母轉大寫。
strstr string.h 子字串搜尋函數。
http://masm1215.myweb.hinet.net/turbo_c/c_func.htm
截取幾個可能會用到的標記一下:
strcmpi string.h 不考慮字母之大小,比較兩字串。
stricmp string.h 不計大小寫之字串比較。
strlwr string.h 大寫字母轉小寫。
strupr string.h 小寫字母轉大寫。
strstr string.h 子字串搜尋函數。
2011年5月17日 星期二
讓好友直接上傳至個人 Dropbox 的工具
1.打開 AirDropper
2.登入自己的 Dropbox 帳號, 並授權它.
3.輸入自己及好友的信箱跟標題.
PS:授權連結僅一次使用, 單檔最高75Mb, 支援批次上傳.
若不想用, 到 這裡 移除.
2.登入自己的 Dropbox 帳號, 並授權它.
3.輸入自己及好友的信箱跟標題.
PS:授權連結僅一次使用, 單檔最高75Mb, 支援批次上傳.
若不想用, 到 這裡 移除.
2011年5月10日 星期二
記帳軟體 - GnuCash
話說一直都有在記帳的動作, 不過一直都沒有持續下去, 原因當然包含自己沒有馬上記就忘了幾筆或因為軟體本身功能不夠便利或該軟體有沒有支援誇平台的部份.
尤其是誇平台這件事, 因為會用到 PC 及 iPhone 來記帳的我是很需要的, 不用備份來備份去.
最近朋友介紹使用一套記帳軟體-GnuCash, 它是複式簿記系統的記帳軟體.
邊使用邊學習一些簡單的會計關念, 簡單介紹一下, 有五大類分別是“資產(Assets)”丶“負債(Liabilities)”丶“收入(Income)”丶“支出(Expenses)”和“淨值(Equity)”.
每一大類有細項, 也可以在建立時勾選自己需要的類別來新增預設的細項.
本身支援誇平台, 即 PC 端的 OS 都沒問題, 但行動裝置尚未支援...
我只好把日常支出記在 iPhone 上, 較詳細的就用 GnuCash 來記啦.
以下是其他教學連結:
入門教學一
入門教學二-支出
入門教學三-信用卡消費
入門教學四-收入
股票篇
尤其是誇平台這件事, 因為會用到 PC 及 iPhone 來記帳的我是很需要的, 不用備份來備份去.
最近朋友介紹使用一套記帳軟體-GnuCash, 它是複式簿記系統的記帳軟體.
邊使用邊學習一些簡單的會計關念, 簡單介紹一下, 有五大類分別是“資產(Assets)”丶“負債(Liabilities)”丶“收入(Income)”丶“支出(Expenses)”和“淨值(Equity)”.
每一大類有細項, 也可以在建立時勾選自己需要的類別來新增預設的細項.
本身支援誇平台, 即 PC 端的 OS 都沒問題, 但行動裝置尚未支援...
我只好把日常支出記在 iPhone 上, 較詳細的就用 GnuCash 來記啦.
以下是其他教學連結:
入門教學一
入門教學二-支出
入門教學三-信用卡消費
入門教學四-收入
股票篇
2011年4月21日 星期四
MySQL in Qt
1.下載 MySQL, 建議下載 noinstall 版本, 解壓縮後將 include 及 lib 取出.
2.下載 mingw-utils, 建議下載此連結版本, 較新的版本似乎會有問題. 解壓縮後將其中的 reimp.exe 複製到 C:\Qt\2010.05\mingw\bin 資料夾內.
3.執行 Qt Command Prompt, 輸入以下指令:
cd C:\Lib\MySQL-5.1.56\lib\opt
reimp -d libmysql.lib
dlltool -k -d libmysql.def -l libmysql.a (PS:-l 是小寫的 L)
4.將執行後產生的 libmysql.a 複製到 C:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql 資料夾內.
5.回到 Qt Command Prompt, 輸入以下指令:
cd C:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql
qmake -o Makefile "INCLUDEPATH+=C:\Lib\MySQL-5.1.56\include" "LIBS+=C:\Lib\MySQL-5.1.56\lib\opt\libmysql.a" mysql.pro
mingw32-make
6.複製 C:\Lib\MySQL-5.1.56\lib\opt\libmysql.dll 到 C:\Qt\2010.05\mingw\bin 資料夾內.
範例如下:
#include <QtSql>
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("demo");
db.setUserName("root");
db.setPassword("123456");
if(db.open())
QMessageBox::information(this, "information", "Connected to database", QMessageBox::Ok, QMessageBox::Ok);
else
QMessageBox::information(this, "error", "Connection fail", QMessageBox::Ok, QMessageBox::Ok);
PS:在 pro 檔要加入 QT += sql.
參考來源:
1.Qt4 Gossip: Qt 的 MySQL 驅動程式
2.How to build the QMYSQL plugin under Windows using MinGW
2.下載 mingw-utils, 建議下載此連結版本, 較新的版本似乎會有問題. 解壓縮後將其中的 reimp.exe 複製到 C:\Qt\2010.05\mingw\bin 資料夾內.
3.執行 Qt Command Prompt, 輸入以下指令:
cd C:\Lib\MySQL-5.1.56\lib\opt
reimp -d libmysql.lib
dlltool -k -d libmysql.def -l libmysql.a (PS:-l 是小寫的 L)
4.將執行後產生的 libmysql.a 複製到 C:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql 資料夾內.
5.回到 Qt Command Prompt, 輸入以下指令:
cd C:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql
qmake -o Makefile "INCLUDEPATH+=C:\Lib\MySQL-5.1.56\include" "LIBS+=C:\Lib\MySQL-5.1.56\lib\opt\libmysql.a" mysql.pro
mingw32-make
6.複製 C:\Lib\MySQL-5.1.56\lib\opt\libmysql.dll 到 C:\Qt\2010.05\mingw\bin 資料夾內.
範例如下:
#include <QtSql>
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("demo");
db.setUserName("root");
db.setPassword("123456");
if(db.open())
QMessageBox::information(this, "information", "Connected to database", QMessageBox::Ok, QMessageBox::Ok);
else
QMessageBox::information(this, "error", "Connection fail", QMessageBox::Ok, QMessageBox::Ok);
PS:在 pro 檔要加入 QT += sql.
參考來源:
1.Qt4 Gossip: Qt 的 MySQL 驅動程式
2.How to build the QMYSQL plugin under Windows using MinGW
2011年4月12日 星期二
ShellExecute in MSDN
函式:
HINSTANCE ShellExecute( HWND hwnd,LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpParameters,LPCTSTR lpDirectory,INT nShowCmd );
參數:
hwnd 視窗的名稱
lpOperation 進行的操作,如"open","print","explore"分別對應 "開啟","列印","瀏覽", 也可以為空(""),此時表示進行預設的操作。
lpFile 要操作的文件。
lpParameters 如果lpFile指定的是一個可執行檔則表示參數
lpDirectory 操作進行的目錄
nShowCmd 新的應用程式的運行方式。其可用的值如下:
SW_HIDE 隱藏
SW_MAXIMIZE 最大化
SW_MINIMIZE 最小化,並把Z order順序在此視窗之後(即視窗下一層)的視窗啟動
SW_RESTORE 啟動視窗並還原為初始化大小
SW_SHOW 以當前大小和狀態啟動視窗
SW_SHOWDEFAULT 以預設方式運行
SW_SHOWMAXIMIZED 啟動視窗並最大化
SW_SHOWMINIMIZED 啟動視窗並最小化
SW_SHOWMINNOACTIVE 最小化但不改變當前啟動的視窗
SW_SHOWNA 以當前狀態顯示視窗但不改變當前啟動的視窗
SW_SHOWNOACTIVATE 以初始化大小顯示視窗但不改變當前啟動的視窗
SW_SHOWNORMAL 啟動並顯示視窗,如果是最大(小)化,視窗將會還原。第一次運行程式 時應該使用這個值
DWORD error = GetLastError();
若 error 非 0 則檢查錯誤
PS:前後要加 CoInitialize(NULL) 和 CoUninitialize().
HINSTANCE ShellExecute( HWND hwnd,LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpParameters,LPCTSTR lpDirectory,INT nShowCmd );
參數:
hwnd 視窗的名稱
lpOperation 進行的操作,如"open","print","explore"分別對應 "開啟","列印","瀏覽", 也可以為空(""),此時表示進行預設的操作。
lpFile 要操作的文件。
lpParameters 如果lpFile指定的是一個可執行檔則表示參數
lpDirectory 操作進行的目錄
nShowCmd 新的應用程式的運行方式。其可用的值如下:
SW_HIDE 隱藏
SW_MAXIMIZE 最大化
SW_MINIMIZE 最小化,並把Z order順序在此視窗之後(即視窗下一層)的視窗啟動
SW_RESTORE 啟動視窗並還原為初始化大小
SW_SHOW 以當前大小和狀態啟動視窗
SW_SHOWDEFAULT 以預設方式運行
SW_SHOWMAXIMIZED 啟動視窗並最大化
SW_SHOWMINIMIZED 啟動視窗並最小化
SW_SHOWMINNOACTIVE 最小化但不改變當前啟動的視窗
SW_SHOWNA 以當前狀態顯示視窗但不改變當前啟動的視窗
SW_SHOWNOACTIVATE 以初始化大小顯示視窗但不改變當前啟動的視窗
SW_SHOWNORMAL 啟動並顯示視窗,如果是最大(小)化,視窗將會還原。第一次運行程式 時應該使用這個值
DWORD error = GetLastError();
若 error 非 0 則檢查錯誤
PS:前後要加 CoInitialize(NULL) 和 CoUninitialize().
2011年4月9日 星期六
AutoHotKey + VS2010
最近在找把 AutoHotKey 放入 VS2010 來開發, 方便結合當辨識某手勢來觸發對應事件.
建置步驟如下:
1.下載 AutoHotKey.dll, 按此連結.
2.加入以下程式碼
typedef int (*ahkdll)(wchar_t *, wchar_t *, wchar_t *);
typedef int (*ahktextdll)(wchar_t *, wchar_t *, wchar_t *);
typedef int (*ahkReady)();
typedef int (*ahkExec)(wchar_t *);
HINSTANCE hinstLib = LoadLibrary(L"AutoHotkey.dll");
if(hinstLib == NULL)
return -2;
ahkdll ahkdll_ = (ahkdll)GetProcAddress(hinstLib, "ahkdll");
if(ahkdll_ == 0)
return -3;
ahktextdll ahktextdll_ = (ahktextdll)GetProcAddress(hinstLib, "ahktextdll");
if(ahktextdll_ == 0)
return -4;
ahkReady ahkReady_ = (ahkReady)GetProcAddress(hinstLib, "ahkReady");
if(ahkReady_ == 0)
return -5;
ahkExec ahkExec_ = (ahkExec)GetProcAddress(hinstLib, "ahkExec");
if(ahkExec_ == NULL)
return -6;
//移動滑鼠
ahktextdll_(L"MouseMove, 20, 30, 50", L"", L"");
//顯示訊息視窗
ahktextdll_(L"MsgBox % A_ScriptDir", L"", L"");
//定義函式
ahktextdll_(L"#persistent \necho(x){\ny := x . \" hello\"\nMsgBox % y\nreturn x\n}", L"", L"");
//呼叫函式(可傳參數)
ahkExec_(L"echo(\"ervis\")");
建置步驟如下:
1.下載 AutoHotKey.dll, 按此連結.
2.加入以下程式碼
typedef int (*ahkdll)(wchar_t *, wchar_t *, wchar_t *);
typedef int (*ahktextdll)(wchar_t *, wchar_t *, wchar_t *);
typedef int (*ahkReady)();
typedef int (*ahkExec)(wchar_t *);
HINSTANCE hinstLib = LoadLibrary(L"AutoHotkey.dll");
if(hinstLib == NULL)
return -2;
ahkdll ahkdll_ = (ahkdll)GetProcAddress(hinstLib, "ahkdll");
if(ahkdll_ == 0)
return -3;
ahktextdll ahktextdll_ = (ahktextdll)GetProcAddress(hinstLib, "ahktextdll");
if(ahktextdll_ == 0)
return -4;
ahkReady ahkReady_ = (ahkReady)GetProcAddress(hinstLib, "ahkReady");
if(ahkReady_ == 0)
return -5;
ahkExec ahkExec_ = (ahkExec)GetProcAddress(hinstLib, "ahkExec");
if(ahkExec_ == NULL)
return -6;
//移動滑鼠
ahktextdll_(L"MouseMove, 20, 30, 50", L"", L"");
//顯示訊息視窗
ahktextdll_(L"MsgBox % A_ScriptDir", L"", L"");
//定義函式
ahktextdll_(L"#persistent \necho(x){\ny := x . \" hello\"\nMsgBox % y\nreturn x\n}", L"", L"");
//呼叫函式(可傳參數)
ahkExec_(L"echo(\"ervis\")");
2011年4月8日 星期五
AutoHotKey setting mouse event
最近玩了一個懶人用工具 : AutoHotKey
官網 : http://www.autohotkey.com/
功能非常強大, 可以自己撰寫腳本來設定當按下某按鍵時執行某個指令及動作.
EX:懶人輸入
:*:'g::http://www.google.com.tw
即按下鍵盤 ' 再按下鍵盤 g, 即輸入 http://www.google.com.tw
EX:控制滑鼠點選
^+b::
Run %A_WinDir%\system32\mspaint.exe
WinWaitActive, ahk_class MSPaintApp,, 2
if ErrorLevel
return
Click 350, 450, down
Click 350, 350, up
return
即按下鍵盤 Ctrl 再按下鍵盤 Shift 再按下鍵盤 b, 即打開小畫家, 並在坐標(350, 450)將滑鼠左鍵按下不放, 再坐標(350, 350)放開
EX:控制滑鼠拖拉
^+a::
Run %A_WinDir%\system32\mspaint.exe
WinWaitActive, ahk_class MSPaintApp,, 2
if ErrorLevel
return
SetMouseDelay, 80
MouseClickDrag, L, 350, 450, 350, 350
即按下鍵盤 Ctrl 再按下鍵盤 Shift 再按下鍵盤 a, 即打開小畫家, 並在坐標(350, 450)將滑鼠左鍵按下不放, 再坐標(350, 350)放開
EX:控制滑鼠移動
^+d::
MouseMove, 20, 30
return
即按下鍵盤 Ctrl 再按下鍵盤 Shift 再按下鍵盤 d, 即將滑鼠移到坐標(350, 450)
PS: R代表全域畫面計算坐標
PS:SetMouseDelay設定滑鼠延遲時間(0-最快, 100最慢)
官網 : http://www.autohotkey.com/
功能非常強大, 可以自己撰寫腳本來設定當按下某按鍵時執行某個指令及動作.
EX:懶人輸入
:*:'g::http://www.google.com.tw
即按下鍵盤 ' 再按下鍵盤 g, 即輸入 http://www.google.com.tw
EX:控制滑鼠點選
^+b::
Run %A_WinDir%\system32\mspaint.exe
WinWaitActive, ahk_class MSPaintApp,, 2
if ErrorLevel
return
Click 350, 450, down
Click 350, 350, up
return
即按下鍵盤 Ctrl 再按下鍵盤 Shift 再按下鍵盤 b, 即打開小畫家, 並在坐標(350, 450)將滑鼠左鍵按下不放, 再坐標(350, 350)放開
EX:控制滑鼠拖拉
^+a::
Run %A_WinDir%\system32\mspaint.exe
WinWaitActive, ahk_class MSPaintApp,, 2
if ErrorLevel
return
SetMouseDelay, 80
MouseClickDrag, L, 350, 450, 350, 350
即按下鍵盤 Ctrl 再按下鍵盤 Shift 再按下鍵盤 a, 即打開小畫家, 並在坐標(350, 450)將滑鼠左鍵按下不放, 再坐標(350, 350)放開
EX:控制滑鼠移動
^+d::
MouseMove, 20, 30
return
即按下鍵盤 Ctrl 再按下鍵盤 Shift 再按下鍵盤 d, 即將滑鼠移到坐標(350, 450)
PS: R代表全域畫面計算坐標
PS:SetMouseDelay設定滑鼠延遲時間(0-最快, 100最慢)
2011年3月31日 星期四
Open File Dialog on Windows API
最近在寫檔案操作的功能, 就是選擇一個檔案然後做複製或刪除的動作.
以下是選擇檔案的部份程式碼:
wchar_t fileName[256];
OPENFILENAME opf;
ZeroMemory(&opf, sizeof(opf));
opf.hwndOwner = 0;
opf.lpstrFilter = L"All Files(*.*)\0\*.*\0\0";
//opf.lpstrFilter = L"JPG Files\0*.jpg\0BMP Files\0*.bmp\0PNG Files\0*.png\0\0";
opf.nFilterIndex = 1;
opf.lpstrFile = fileName;
opf.lpstrFile[0] = L'\0';
opf.nMaxFile = sizeof(fileName);
opf.lpstrFileTitle = 0;
opf.nMaxFileTitle = 0;
opf.lpstrInitialDir = L"C:\\";
opf.lpstrTitle = L"select file";
opf.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
opf.lStructSize = sizeof(opf);
if(GetOpenFileName(&opf)
{
do something...
}
而複製檔案就使用 CopyFile(srcFile, dstFile, true), 刪除則是 DeleteFile(file).
MSDN有範例, 該頁面還有其他功能, 如選擇顏色等, 連結如下:
http://msdn.microsoft.com/en-us/library/ms646829
以下是選擇檔案的部份程式碼:
wchar_t fileName[256];
OPENFILENAME opf;
ZeroMemory(&opf, sizeof(opf));
opf.hwndOwner = 0;
opf.lpstrFilter = L"All Files(*.*)\0\*.*\0\0";
//opf.lpstrFilter = L"JPG Files\0*.jpg\0BMP Files\0*.bmp\0PNG Files\0*.png\0\0";
opf.nFilterIndex = 1;
opf.lpstrFile = fileName;
opf.lpstrFile[0] = L'\0';
opf.nMaxFile = sizeof(fileName);
opf.lpstrFileTitle = 0;
opf.nMaxFileTitle = 0;
opf.lpstrInitialDir = L"C:\\";
opf.lpstrTitle = L"select file";
opf.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
opf.lStructSize = sizeof(opf);
if(GetOpenFileName(&opf)
{
do something...
}
而複製檔案就使用 CopyFile(srcFile, dstFile, true), 刪除則是 DeleteFile(file).
MSDN有範例, 該頁面還有其他功能, 如選擇顏色等, 連結如下:
http://msdn.microsoft.com/en-us/library/ms646829
2011年3月30日 星期三
OpenCV 2.2.0 on Qt (Win7)
最近開始學習 Qt 這個誇平台的東東, OpenCV 也是支援誇平台的.
當然順理成章把 OpenCV 放到 Qt 上玩玩, 以下說明:
在 .pro 檔內加入 include 及 lib 即可.
INCLUDEPATH += C:\OpenCV-2.2.0\include
LIBS += C:\OpenCV-2.2.0\VS2010\lib\Release\opencv_core220.lib
LIBS += C:\OpenCV-2.2.0\VS2010\lib\Release\opencv_highgui220.lib
LIBS += C:\OpenCV-2.2.0\VS2010\lib\Release\opencv_imgproc220.lib
LIBS += C:\OpenCV-2.2.0\VS2010\lib\Release\opencv_video220.lib
若是用 mingw
則可將 Qt 內附的 mingw 加入系統環境變數.
再使用 CMake 建置 mingw 的資料夾.
打開 cmd 畫面, 再移到 OpenCV-2.2.0\mingw 資料夾下
輸入指令: mingw32-make 即可產生 dll 及 lib檔.
INCLUDEPATH += C:\OpenCV-2.2.0\include
LIBS += C:\OpenCV-2.2.0\mingw\lib\libopencv_core220.dll.a
LIBS += C:\OpenCV-2.2.0\mingw\lib\libopencv_highgui220.dll.a
LIBS += C:\OpenCV-2.2.0\mingw\lib\libopencv_imgproc220.dll.a
LIBS += C:\OpenCV-2.2.0\mingw\lib\libopencv_video220.dll.a
最後記得將相關 dll 檔放入執行資料夾.
當然順理成章把 OpenCV 放到 Qt 上玩玩, 以下說明:
在 .pro 檔內加入 include 及 lib 即可.
INCLUDEPATH += C:\OpenCV-2.2.0\include
LIBS += C:\OpenCV-2.2.0\VS2010\lib\Release\opencv_core220.lib
LIBS += C:\OpenCV-2.2.0\VS2010\lib\Release\opencv_highgui220.lib
LIBS += C:\OpenCV-2.2.0\VS2010\lib\Release\opencv_imgproc220.lib
LIBS += C:\OpenCV-2.2.0\VS2010\lib\Release\opencv_video220.lib
若是用 mingw
則可將 Qt 內附的 mingw 加入系統環境變數.
再使用 CMake 建置 mingw 的資料夾.
打開 cmd 畫面, 再移到 OpenCV-2.2.0\mingw 資料夾下
輸入指令: mingw32-make 即可產生 dll 及 lib檔.
INCLUDEPATH += C:\OpenCV-2.2.0\include
LIBS += C:\OpenCV-2.2.0\mingw\lib\libopencv_core220.dll.a
LIBS += C:\OpenCV-2.2.0\mingw\lib\libopencv_highgui220.dll.a
LIBS += C:\OpenCV-2.2.0\mingw\lib\libopencv_imgproc220.dll.a
LIBS += C:\OpenCV-2.2.0\mingw\lib\libopencv_video220.dll.a
最後記得將相關 dll 檔放入執行資料夾.
2011年3月23日 星期三
實物投影 on 空間設計
實物投影(也有人稱建築投影或光雕投影)的一種應用.
之前國外也有在室外使用建築投影的方式做些動畫的呈現.
國內其實也是有展示過幾次, 以下影片是荷蘭一間公司將它應用在室內空間設計上.
感覺 IKEA 可以學學, 一方面可以省掉不少定期更換傢俱的成果, 另一方面亦可
在網頁上呈現, 造福一下中部的鄉親丫!
之前國外也有在室外使用建築投影的方式做些動畫的呈現.
國內其實也是有展示過幾次, 以下影片是荷蘭一間公司將它應用在室內空間設計上.
感覺 IKEA 可以學學, 一方面可以省掉不少定期更換傢俱的成果, 另一方面亦可
在網頁上呈現, 造福一下中部的鄉親丫!
前置處理器 for C\C++
之前都有在使用前置處理器, 但僅限於 #ifdef, #else, #endif.
今天突然想用到 else if define 時卻發現並沒有這關鍵字, 就上網找了一下, 做個記錄.
else if --> #elif
#ifdef ABC = #if defined ABC
#ifndef ABC = #if !defined ABC
#undef ABC --> 消除 ABC 之定義
今天突然想用到 else if define 時卻發現並沒有這關鍵字, 就上網找了一下, 做個記錄.
else if --> #elif
#ifdef ABC = #if defined ABC
#ifndef ABC = #if !defined ABC
#undef ABC --> 消除 ABC 之定義
2011年3月21日 星期一
2011年3月18日 星期五
Register OCX in Win 7
發現在 XP 轉到 Win7 還是有許多不適應, 尤其是多了個"系統管理員執行".
今天發生了個錯誤如下:
呼叫 DllRegisterServer 失敗, 錯誤碼為 0x80040200
解決方式:
系統管理員執行
今天發生了個錯誤如下:
呼叫 DllRegisterServer 失敗, 錯誤碼為 0x80040200
解決方式:
系統管理員執行
2011年3月16日 星期三
OpenCV 2.2.0 in Windows & Mac
最近在用 OpenCV 發現一個很怪的現象, 就是目前最新版本 v2.2.0, 當我在使用 Mac 的 bootcamp之下的 Win 7 系統, 編譯後執行會無法顯示出 webcam 畫面, 但反觀在其他 Windows 的筆電確可以很正常的顯示...在尚未解決的情況下...只好如下使用:
Windows : OpenCV 2.2.0
Mac : OpenCV 2.1.0
Windows : OpenCV 2.2.0
Mac : OpenCV 2.1.0
顏色辨識(手指)
來了第一週就有確認了題目, 遊戲與復健的結合!
與一位陽明醫工博班的學生一起研究, 開始了手指辨識這件事.
一開始先找找國內外相關的研究或實作成果, 發現多數是手勢和臉居多.
但我們想要的是針對不同手指來做指令上的操作, 就只好從基本的 OpenCV 開始.
發現範例有個顏色辨識的範例, 修修改改後有些成果, 放個圖來記錄一下.
與一位陽明醫工博班的學生一起研究, 開始了手指辨識這件事.
一開始先找找國內外相關的研究或實作成果, 發現多數是手勢和臉居多.
但我們想要的是針對不同手指來做指令上的操作, 就只好從基本的 OpenCV 開始.
發現範例有個顏色辨識的範例, 修修改改後有些成果, 放個圖來記錄一下.
2011年3月14日 星期一
GetLastError in MSDN
以下網址即可找到錯誤訊息.
http://msdn.microsoft.com/en-us/library/ms681381
以下是 MSDN
void ErrorExit(LPTSTR lpszFunction)
{
// Retrieve the system error message for the last-error code
LPVOID lpMsgBuf;
LPVOID lpDisplayBuf;
DWORD dw = GetLastError();
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );
// Display the error message and exit the process
lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT,
(lstrlen((LPCTSTR)lpMsgBuf) + lstrlen((LPCTSTR)lpszFunction) + 40) * sizeof(TCHAR));
StringCchPrintf((LPTSTR)lpDisplayBuf,
LocalSize(lpDisplayBuf) / sizeof(TCHAR),
TEXT("%s failed with error %d: %s"),
lpszFunction, dw, lpMsgBuf);
MessageBox(NULL, (LPCTSTR)lpDisplayBuf, TEXT("Error"), MB_OK);
LocalFree(lpMsgBuf);
LocalFree(lpDisplayBuf);
ExitProcess(dw);
}
void main()
{
// Generate an error
if(!GetProcessId(NULL))
ErrorExit(TEXT("GetProcessId"));
}
http://msdn.microsoft.com/en-us/library/ms681381
以下是 MSDN
void ErrorExit(LPTSTR lpszFunction)
{
// Retrieve the system error message for the last-error code
LPVOID lpMsgBuf;
LPVOID lpDisplayBuf;
DWORD dw = GetLastError();
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );
// Display the error message and exit the process
lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT,
(lstrlen((LPCTSTR)lpMsgBuf) + lstrlen((LPCTSTR)lpszFunction) + 40) * sizeof(TCHAR));
StringCchPrintf((LPTSTR)lpDisplayBuf,
LocalSize(lpDisplayBuf) / sizeof(TCHAR),
TEXT("%s failed with error %d: %s"),
lpszFunction, dw, lpMsgBuf);
MessageBox(NULL, (LPCTSTR)lpDisplayBuf, TEXT("Error"), MB_OK);
LocalFree(lpMsgBuf);
LocalFree(lpDisplayBuf);
ExitProcess(dw);
}
void main()
{
// Generate an error
if(!GetProcessId(NULL))
ErrorExit(TEXT("GetProcessId"));
}
2011年3月10日 星期四
2011年3月8日 星期二
OpenCV 2.0 on VS2010 編譯錯誤解決方式
錯誤訊息
error C3861: 'back_inserter': identifier not found
解決方法
1.在 OpenCV2.0\src\cvaux\cvhog.cpp 開頭加入 #include <iterator>
2.在 OpenCV2.0\src\cv\cvmodelset.cpp 開頭加入 #include <iterator>
error C3861: 'back_inserter': identifier not found
解決方法
1.在 OpenCV2.0\src\cvaux\cvhog.cpp 開頭加入 #include <iterator>
2.在 OpenCV2.0\src\cv\cvmodelset.cpp 開頭加入 #include <iterator>
Havok on Android 2.3
Havok 一個知名的物理引擎,目前釋出支援 Android 2.3 版本。
從癮科技看到相關報導,並有在 Sony Ericsson Xperia Play 上的影片。
從癮科技看到相關報導,並有在 Sony Ericsson Xperia Play 上的影片。
研究主題
老師給了個主題,是跟一位陽明醫工博班的學生合作。
提出將遊戲與醫療復健結合的平台,開始了看 paper 的工作,自己英文真是爛的可以,
幾乎都靠 google 翻譯來閱讀,好好惡補一下吧我!
第一次 meeting 結果,先從老人中風開始,使用手勢辨識來操作,一來使用者不需穿戴 sensor ,
二來建置成本低(扣掉電腦只需要一台 camera),看來要開始找找相關資料哩。
發現老師講話很直!
提出將遊戲與醫療復健結合的平台,開始了看 paper 的工作,自己英文真是爛的可以,
幾乎都靠 google 翻譯來閱讀,好好惡補一下吧我!
第一次 meeting 結果,先從老人中風開始,使用手勢辨識來操作,一來使用者不需穿戴 sensor ,
二來建置成本低(扣掉電腦只需要一台 camera),看來要開始找找相關資料哩。
發現老師講話很直!
3/1報到
過了個228連假,一大早坐電車到南港火車站,然後走路去坐公車。
帶著資料跟 Rita 跑來跑去辦報到手續,結果因為我還是學生身份無法用專任助理聘任,
瞬間薪水少了1萬...只能先用博士研究生聘任,還不能保勞健保!(PS:工讀生可)
第一天心得:等等等
-院內的郵局很多人,寄信、領錢、匯款都要排隊。
-院內的萊爾富很多人,結帳付錢要排隊。(PS:院內卡在手,一律89折)
訂閱:
文章 (Atom)