Tuesday, July 03, 2007

何謂MOQ???

今天找ARM7有兩個LAN的板子,那找到一家公司叫大鼎電腦公司,是W90N740的板子,很自然就去問問報價,小姐就跟丟了一句"我的MOQ是50台",當場傻眼,不是嫌太貴,而是不知道MOQ是啥?!,所以好學的我,之後馬上去谷歌天神查,OK!原來MOQ是指最小訂單數量,真是瞎!其他相關名詞如下:

MPQ Minimum packing Quantity
MOQ Minimum Order Quantity
MOS Metal Oxide Semiconductor

Wednesday, June 06, 2007

深入研究軟工的好網站

Joel on Software 周思博趣談軟體

內容有極為實用的軟體工程文章,重點是生活化及易執行,值得深究。

Powered by ScribeFire.

C++單元測試工具大亂鬥

今早,看昨天CodeGear研討會的簡報,

看到了"Introduction To C++ TDD Frameworks"這章,

有我未看過的TDD Framework,所以上網查看,本想說李維果然厲害!

不僅可以找到這些且還可以分析利弊,這真的太精實的!

不過看到以下的網頁,我想他也是應該由這網頁看來的(不過,無法確定!)

Exploring the C++ Unit Testing Framework Jungle

另為以下是相關網頁

Boost Test Library

Unit Test's Reporter

Nano Cpp Unit

The unit++ Testing Framework

CxxTest

Powered by ScribeFire.

Wednesday, May 23, 2007

補足WinCE對SCL的不足:Windows CE C Library Extensions

Windows CE C Library Extensions
WinCE是純Unicode(統一碼、萬國碼、單一碼)的系統,所以如果要把在WIN32應用程式搬到WinCE,遇到的第一個問題就是SCL(Standard C Library)無完整支援,這時"Windows CE C Library Extensions"就提供您解決這個問題的方案。

Monday, May 14, 2007

試用log4cxx及log4cpp

在網路上找logging library,那發現支援C++主要有三個
  1. log4cpp
  2. log4cxx
  3. log4cplus
那log4cplus已經年久失修了,2002年後就沒維護,那log4cpp最新版是2005年的,我下載用的結果,發現使用了static data member initialization,所以在vc6下編譯不會過,那也就作罷!做後試log4cxx,這是Apache的其中一個子項,那編譯發生問題,不過上網查,有人跟我遇到相同的問題
編譯log4cxx-0.9.7發生cannot open input file "and.obj"錯誤
不過我很好奇的是,一般都不會發生這類問題!不過問題解決就好,接下來看如何用!!

Saturday, May 12, 2007

增加"標籤雲"及"繼續閱讀懶人加強版"

參考下列網頁:

介面出現以下效果:



為支援dp.SyntaxHighlighter所修改範本而增加的代碼

Friday, May 11, 2007

取代CE6.0教材的文章

這是上課老師建議可以取代CE6.0教材中Memory Marshalling的網頁:Memory marshalling in Windows CE

使用MFC建構具Automation功能的DLL(第一彈)

工作上需要在VB6呼叫VC6建構的library,那方法有下列幾種:
  1. 使用C介面輸出,在VB6中透過Declare...Lib方式引入。
  2. 使用ATL。
  3. 使用MFC,MFC+Automation或MFC ActiveX Control。
OK!講到這,我想大家都知道我選哪樣,為何ㄋㄟ?!因為就就建構COM的應用(Automation是COM一種應用!),MFC相較ATL簡單(可是 對很多人,兩樣都很難!),其原因是MFC的Wizard寫的比較好(這讓很多要入ATL之門的人為之氣結!)且比較好懂。(因為ATL使用大量的 template語法!);但就微軟已經揚棄的ActiveX技術來看,MFC所提供的,太肥了!不適合在網路上傳輸,那後來的COM+及.NET出來後 的ISAPI都是建議用或只能用ATL,所以ATL目前在COM相關應用是佔最重要的份量。 為求工作圖方便(其實是我ATL不熟!!),如題,那就是接下來所要展示的:
  1. 當然是透過最親愛的Project Wizard,建構個專案,這時要選擇MFC AppWizard(dll)
  2. 輸入專案名稱後就下一步,進入唯一的Wizard Page,那將Automation勾 選!就可一路OK,到進入IDE。
  3. 那接下來就在Class View選擇專案,右鍵彈出選單,選擇New Class...,出現一個Dialog如下:
  4. Bse classCombo Box選擇CCmdTarget, 那下面的Automation Radio boxes就 會被Enable,那選擇Creatable by type ID,如果選擇Automation的 話,VB6就不支援CreateObject的語法,建議type ID的格式為[Project Name].[Class Name]。
  5. OK!到這就在Class View可以產生一個類別且新增了一個Interface, 且Wizard會自動增加一個ODL檔。
  6. 接下來是新增屬性及方法,就是在Class View點選那個長得像尾巴打結的精蟲符號(我想很久,才想出這麼貼切的形容詞!),一樣,右鍵叫出Pop-up menu,選擇Add Method
  7. 到這步出現的Dialog是要建構Method用的,有幾個重要選項如下:
    1. External Name:輸入在VB6要看的名稱。
    2. Internal Name:輸入在對應類別的成員函式名稱。
    3. Return Value:我想大家都知道這是回傳值。
    4. Parameter list:輸入要傳入的引數。
  8. 這一步當然是要增加屬性,如同第六步,但是是選擇Add Property,會出現跟上一個Dialog超像的畫面,有幾個重要的項目如下:
    1. External name:輸入在VB6要看的名稱。
    2. Type:輸入在屬性的型別。
    3. Implementaion:要對應到類別的實做方法,有兩種可選,分別是Member variable及Get/Set methods。
夜已深!老婆催促我睡覺,那下次在把更多細節發佈!!

Thursday, May 03, 2007

測試 dp.SyntaxHighlighter

終於弄出來了!

首先先將shBrushCpp.js及SyntaxHighlighter.css上傳至Google Page Creator(找任何空間都可,但我用Google的!),在Google Page Creator右邊有個"Uploaded stuff"區塊,透過那個將檔案上傳!然後在blogger範本中依照參考網頁修改,那最後還有很重要一步是要在blogger中將"設定/格式"中的"轉換分行符號"取消,就可以成功了!!

新增程式碼區塊功能

為了能在網誌上顯示程式碼區塊,我參考以下網頁:

在文章裡顯示優質的程式碼區

文章中引用程式碼的作法

Blogger 顯示程式碼

本想用 dp.SyntaxHighlighter可是不知道要如將*.css檔上傳至blogger,只好作罷改天在弄。另外利用html標籤pre將程式碼縮排,讓code看起來比較好。

有找到dp.SyntaxHighlighter相關網頁如下:

dp.SyntaxHighlighter代碼高亮

dp.SyntaxHighlighter

為Lua新增函式呼叫

我想說要新增一個Table叫"CSH300CLibrary",那在下有個成員函式(這樣稱呼好像不洽當),叫"MessageBox",那查到有網頁提到如何做:

Lua 語言和C集成調研小結

那也可看官網的資料:

Programming in Lua : Table Manipulation

所以結果會是醬"CSH300CLibrary.MessageBox"去呼叫,希望能今天搞定!!那努力的結果,好像還是不行,只有去看"io.read"是如何做,源碼如下:

LUALIB_API int luaopen_io (lua_State *L) {
    luaL_openlib(L, LUA_OSLIBNAME, syslib, 0);
    createmeta(L);
    lua_pushvalue(L, -1);
    luaL_openlib(L, LUA_IOLIBNAME, iolib, 1);
    /* put predefined file handles into `io' table */
    registerfile(L, stdin, "stdin", IO_INPUT);
    registerfile(L, stdout, "stdout", IO_OUTPUT);
    registerfile(L, stderr, "stderr", NULL);
    return 1;
}
那其中 "iolib" 如下:

static const luaL_reg iolib[] = {
    {"input", io_input},
    {"output", io_output},
    {"lines", io_lines},
    {"close", io_close},
    {"flush", io_flush},
    {"open", io_open},
    {"popen", io_popen},
    {"read", io_read},
    {"tmpfile", io_tmpfile},
    {"type", io_type},
    {"write", io_write},
    {NULL, NULL}
};
仿造上面的寫法就可以搞定,另外為了能跟隨lua的習慣,原本"CSH300CLibrary.MessageBox"改成"sh300.msgbox"。

Monday, April 30, 2007

為LuaIDE增加MDI Tab View功能

上Code Project找範例,為LuaIDE增加MDI Tab View功能,找到以下這個:

Automatic Tab Bar for MDI Frameworks

另外找到一個也很需要的東西,這可以用TK MFC版的shell,雖然已經完成,不過可以參考看看,以供日後需要,這個有支援SDI,那也許可以移植到CE上:

A Visual Framework (Views, Tabs and Splitters)

Friday, April 27, 2007

CE6.0新支援的功能

CE6.0新增cellular、exFat支援,cellular的解釋可看http://cdict.giga.net.tw/q/cellular,應該是指手機相關的;exFat是新的檔案格式,目前僅CE6.0支援。

CE6.0第一個練習

Developer Tools
預發展CE,可有上面網址取的相關開發工具,那在IDE部分必須使用VS2005 Pro版本,升級至SP1。
以下是做Lab1的畫面:
中間有多瑣碎的步驟,那只好省略,有再練習時,再弄完整點,下面是最後完成後,用模擬器測試的畫面:

系出同源的Windows Mobile

Windows Mobile與Windows CE在商業角度差異在於,Mobile產品出貨需要微軟官方的認證過程,也就是需要經微軟認可的驗證中心進行認證,那CE僅有提出建議,建議需經過CETK測試,所以要掛"Windows Mobile",這要大公司才能玩的動,而Windows Mobile是使用CE 5.0的核心。

CE不得不開放

微軟相較過去在CE更加開放,這是因應現在linux的強襲,那原本6.0前需要微軟授權的才能上市的部分,目前也開放,那針對源碼修改,微軟也允許廠商可以申請專利。

常有WinCE新消息的網頁

http://www.windowsfordevices.com/ 這有許多WinCE新的消息,傳識講師推薦!! 老師有提到上面有篇文章提到 WinCE各版的比較。

難搞的InstallShild11

為了要在新電腦安裝InstallShild11.5,必須先由舊電腦移除,這樣才能將於新安裝時的網路認證同過,可是卻發生以下異常:



那email洽威技資訊,給了以下的處理方式:



真是屋露偏逢連夜雨!

Wednesday, April 25, 2007

Player/Stage安裝成功

今天在安裝Player/Stage到Debian 4.0時,測試安裝結果時,有發生下列的異常:



這我在上次Player/Stage安裝至Ubuntu也發生過,可是我忘了!所以我就上google天神"拜請"答案!那有找到上次看到的網頁:

HOWTO Install Gazebo/Player/Stage - Gentoo Linux Wiki

該網頁的最下面 "Troubleshooting"就有說明排除方法!

那另外也發現有其他人提供在Player/Stage在ubuntu上的安裝心得: PlayerStageUbuntu - Saymoo Wiki

Installing and Running Linux/Player Project on the 914 PC-BOT 1 ...

搞不定的Orca

今天為了安裝orca,一直努力嘗試在ubuntu安裝,不過ubuntu套件管理無法順利安裝ice及cmake,所以最後只好再到vmware technology network抓debian的image,重來一次;我使用的image是來自某網站,驚訝的發現debian的運行效能比ubuntu好,這應該是設計取向不同,畢竟是父子關係,但是debian的套件管理是比ubuntu完整,這就令人不解了! 終於順利完成ice及cmake安裝,orca也順利編譯及安裝,下一步就是測試啦!希望也能順利。