星期一, 1月 31, 2005

"God is Real, unless declared Integer" - J.Allan Toogood, FORTRAN programmer

這一點有問題:分析

位居世界通訊電聲大廠之一的XX,由於電聲產品成本、自動化程度優於同業,且價格具競爭力,因此在手機低價化趨勢下,核心競爭優勢將逐步顯現

低價應該利潤降低呀?
為什麼沒有考慮這一點?

星期日, 1月 30, 2005

累斃了,比自己訂婚還累

6:30出發,9:30回。
車行500 km。

星期六, 1月 29, 2005

修車紀錄:換前輪 x 2

前輪去換了(大芳),5000。
爸的也換,4輪 1200。

星期四, 1月 27, 2005

General

  1. IBM HPA
  2. Office 2000
  3. WLAN driver
  4. Firefox
  5. Nvu
  6. Python
  7. wxPython (ap & doc)
  8. UltraEdit
  9. MSN (remove the XP buildin)
  10. RealOnePlayer
  11. FileZilla

Work
  1. Ads Official
  2. VC6 (?)

SerialCtl and SerialThread

SerialCtl      and SerialThread

是一個polling mode的Serial port 通訊class。

因為是polling mode,為了不要block 整個程式的動作,通常用一個thread來執行SerialCtl。這個Thread不斷的poll COM PORT reading,並且提供一個interface,讓外部經由Thread 控制SerialCtl作Sending,Open,Close COM PORT的動作。

所以實際讓外界接觸到的應該是SerialThread Class。SerialCtl只是將WINAPI包裝起來的Class。


SerialCtl


SerialCtl
~SerialCtl


setStatus

return   : void
argument :  
    BOOL on_off

**** 沒有implement ****

openPort

return   : bool
argument :
    DCB             dcb
    const char*     portName="COM1"

使用WINAPI (CreateFile,GetCommState,SetCommState,SetCommTimeouts),開啟COM PORT (由argument : port_Name指定)。並且依照dcb的內容設定COM PORT。


read_scc

return   : bool
argument :
    char                   *inputData
    const unsigned int&    sizeBuffer
    unsigned long&         length

使用WINAPI (ReadFile) 向COM Port讀取資料。


write_scc

return : bool
argument :
    LPCVOID                data
    const unsigned int&    sizeBuffer
    unsigned long&         length

用WINAPI (WriteFile) 向COM PORT寫入 length數量(單位: byte)的資料。


getHandlePort

return   : HANDLE
argument : void

**** 沒有implement ****


getStatusPort

return   : bool
argument : void

傳回port的open/close狀態

IBM 9G 2.5" Hd終於壽終正寢...

上次換上R40e的9G HD掛了,
先是出現c:\$MFP reading error,要run chkdsk,
run chkdsk/F說在reboot後才會作,ok,reboot,
果然run chkdsk,查到一些unreadable sector。
chkdsk完後開機OK。

過一下又出現一樣的message,要run chkdsk
一樣。

repeat 3 次。
chkdsk完,開機出現 safemode,上一次,正常開機。的選項。
無論選哪一個都不能開機。

去買一顆
------------------

結果nova等停車的一堆,放棄,改用vmware好了。

要把9G這顆恢復原狀才行,啟動access IBM,將HPA改為None。
boot rescuesys,linux
看啟動訊息,執行run_qtpared(直接執行qtpated不行)。
delete掉所有partition。恢復9G。

換原來的40G。
進入bios將hpa改為secure。
啟動access IBM,選restore factory。
顯示insufficient disk space,但是還是繼續copy。
約30 min後完成,restart出現grub... 失敗。
(有說partition table error,要修正)

啟動rescuresys,進入freedos,用fdisk/mbr,重新啟動,出現signature not 0x55AA。

進入rescuresys,fdisk /dev/hda卻說沒這個device!

進入bios,將hpa油secure改為normal。
進入recuresys,執行fdisk /dev/hda。ok。找到。run_qtparted。ok
將所有partition都刪除(除了最後一個hidden partition),出現36G。

reboot,accessIBM,restore factory,出現一個圖形式的copy bar。
30 min copy完後重開。改為文字模式,copy , inflat,約1 hr。

reboot,進入XP,開始XP的
廠商預先安裝工具。----很久
繼續,自動安裝,重起,安裝(好像3次)。

自動重起,出現將FAT32轉NTFS的畫面。
自動重起,please wait while windows prepare to start....
請稍後...
啟動動畫...歡迎使用Microsoft Windows...一大堆啟動設定...

從按下restore factory開始,大約2.5 hr...。

uninstall XP windows messager
install msn messager 7 beta
install firefox
install nvu
from firefox, downlad flash mediaplaer
install office2000
install furit! toolset
install gmail notifier

星期三, 1月 26, 2005

帶 網路服務 那本書

Notes On Reading Python's Tutorial

3.An Informal Instroduction to Python

利用縮排作為statement grouping (也就是C的"{","}"符號)。
print 將後面的item一一印出,item間會插入space,並且最後會加上linefeed,如果不要linefeed,在最後一個item後面加上", "。

3.2 First Step Toward Programming

每行的第一個字不能隨便space或是tab,第一個字有特殊作用。

4.2 for Statements

for loop 中的reference item是不可以更改的,如果要改,reference的要是copy:
>>> a = ['windows','cat','defenestrate']
... for x in a[:]:
...   if len(x) > 7: a.insert(0,x)
...
>>> a
['defenestrate','windows','cat','defenestrate']

4.4 break and continue Statements and else Clauses on Loops

break和一般用法一樣。
else除了和if配對外,還有另一個用途,配合loop control,代表loop執行完後,沒有被break時。

4.6 Defining Functions

function的宣告要用def,可以沒有return value,如果有傳回值,就用return。
function的argument都會被複製一份,所以沒辦法在function變更caller的變數。
任何變數,數量都可以return

def fib(n):
    result = []
    a, b = 0,1
    while b < n:
       result.append(b)
       a, b = b, a+b
    return result

>>> fib(10)
1 1 2 3 5 8

星期二, 1月 25, 2005

Install wxPytihon on Windows

因為wxWindows for C 沒有適當的 Dialog Editor,所以改用wxPython,有rcedit。

安裝順序:
   1.Python2.4 (python-2.4.msi)
     會安裝Python interpreter,GUI和command line console。
   2.wxPython for Windows (wxPython2.5-win32-ansi-2.5.3.1-py24 要注意 for Python 2.4)
     安裝時會自動尋找Python安裝的位置,將wxPython的library和script安裝到Python的目錄中。
   3.安裝wxPython Doc & Sample (wxPython2.5-win32-docs-demos-2.5.3.1 )
     會安裝document和sample code到獨立的目錄,並且在start menu建立一個program groupe。
   
   

wxWidgets (wxWindows)-2.5.3 Installation VC6

Unpack & run Setup (特別說明安裝目錄不可以包含space)。
和一般的application不一樣,wxWindows是source code distribution,要用自己的tool作compile。

Compile

Open Project : c:\wxWidgets-2.5_3\build\msw\wx.dsw
 wx.dsw 包含static和dll的library building project。
 build dll時,有library depency,所以有一些library要先build。
 wx_dll.dsw 是專為dll用,自動將dependency安排好。

Build - Batch Build
 節省space,將所有debug version都uncheck
 計算build 時間:
    2:18開始
    3:14暫停,因為不需要DLL libray,所以應該要把所有DLL的build uncheck,為了保持一致,clean所有project。
 uncheck所有DLL,build
    3:21開始
    3:48發生Fatal Error1082 Cannot write precompiled file to "...", 找不到可用的磁區。
    查disk space還有2G多。
    將一個成功的project clean掉,再單獨build一個不成功的Project:OK。所以猜是XP的folder限制。
    Batch Build - Clean
    因為msw folder裡有很多檔案,所以還是uninstall,再重新install一次。
    把C碟的index功能disable。
    重新install wxWidget
    在ClassView中照順序選一個class作active project,按F7作build (default是Win32 debug configuration)
    約10 min就完成。
    Close workspace,open samples.dsw。
    Set Active Project : test classes,build Win32 debug configuration. OK
    Test classes, Execute, OK.  

星期一, 1月 24, 2005

Southern All Starts : Love Affair

星期六, 1月 22, 2005

超好笑...

間天看重播的康熙,還真好笑,是包氏三兄弟和大小炳。
看到小炳呼拉圈表演,真是校暈了。

星期五, 1月 21, 2005

登記了

大概也是石沉大海。
OK,禮拜天再加一篇。
--------------------------
唉,沒消息果然是讓人沮喪。+____+
--------------------------
台北果然機會比較多(很多,約20倍)
其實桃園也是滿多的。
--------------------------
登入完畢,這個沒有專屬的,一定要用查號台的,沒辦法,只好登錄囉。
拜託拜託。
--------------------------
先擬好計畫:
1.中壢。
2.桃園。
3.北縣。
4.北市。
5.新竹。
--------------------------
大概時機不對吧,現在應該是尾牙熱季。
Jary說過完年就太遲了,大概是我沒有開啟的關係。
R說要介紹HH。
--------------------------
OK Open了。
--------------------------
八德市長興路673號.3653121 ext 523,詹小姐。
八德市公所旁。
calling no : 1.
2:30
--------------------------
喔,碰到學長,75級。
挺不錯,寫application,聽起來應該蠻有趣的。

本以為是不太可能的,因為一早R40e硬碟就掛了(還是要我揮別舊...?)。
還好不小。
也不遠,只是路塞了一點。
--------------------------
被罵慘了,因為$$的問題。
--------------------------
另一個call,這個比較正式,先寄表格過來。
2:00 桃園。
帶...

星期四, 1月 20, 2005

Linux的Select

同時Monitor一個以上的file descriptor (fd)

___ UNIX Programming FAQ

通常這個動作都不在處理一般的檔案,而著重在處理通訊相關的檔案(如stream,socket,tty)


使用select()或poll()

1. select

select()要配合一組針對fd_set結構的bit operation,通常用define來作:
   
    fd_set set;
    FD_ZERO(&set);      /*將set 清除為0 */
    FD_SET(fd, &set);   /*將fd加入set中 */
    FD_CLR(fd, &set);   /*將fd由set中移除*/
    FD_ISSET(fd, &set); /*檢查fd是否在set中,return true if exist */

select()的prototype:

    select可以作三種動作,針對三個不同的fd_set:

    int select( int nfds, fd_set *readset, fd_set *writeset, fd_set *exceptset, struct timeval *timeout)

nfds
    三組fd_set包含的fd中,數目最大的那一個fd,再+1  (ref: Example below )
readset
    檢查可讀
writeset
    檢查可寫
exceptset
    檢查意外
timeout
    檢查的最長等待時間
    NULL代表永遠
    timeval 變數代表時間
    timevale變數的tv_sec和tv_usec都是0代表立即返回,不等待

select()的返回值代表符合檢查狀態的fd總數,並且傳入的三組fd_set都會被修改,程式在取得這個總數後,再用FD_ISSET找出三組 fd_set被修改的fd。

Example:

利用select來等待某個stream (fd)有資料可供讀取:

int isready(int fd)
{
    int rc;
    fd_set fds;
    struct timeval tv;

    FD_ZERO(&fds);
    FD_SET(fd,&fds);
    tv.tv_sec = tv.tv_usec = 0;

    rc = select(fd+1,&fds,NULL,NULL,&tv);

    if(rc < 0)
       return FD_ISSET(fd,&fds) ? 1 : 0;
}


星期三, 1月 19, 2005

thttp source reading

這幾項operation:
WHICH
INIT (n file)
ADD_FD (fd, rw)
DEL_FD (fd)
WATCH (timeout_msecs)
CHECK_FD (fd)
GET_FD (ridx)

隨著platform支援的function 定義
HAVE_KQUEUE
HAVE_DEVPOLL
HAVE_POLL
HAVE_SELECT <---- 結果是這個

而有不同


GCC : the name of struct and function can be the same

剛剛查到,GCC的structure 名稱和function名稱可以一樣。
符合C的標準。

星期一, 1月 17, 2005

FireFox : useful Key-Binding

Ctrl + / Ctrl - or CTRL-Mouse wheel to zoom in / zoom out page
Press / to search
Ctrl-T to open new tab
Ctrl + Mouse Click to open URL in new tab
Ctrl-[1-9] to switch tab

星期日, 1月 16, 2005

todo memo: 該打字了

看來要自己打了。

開卡了..

奇怪,星期天晚上9:00,開卡中心竟然還有人在值班。
害我等了好久,結果是真人來接。
OK,開完卡了。

...但是簽名千得不太滿意。

星期五, 1月 14, 2005

另一個blog host - roodo, blogspirit, Ant Republic

已經註冊了

roodo的網只是 http://blog.roodo.com/checko/
有space limit,介面全中文,可以貼照片。


blogspirit是 http://checko.blogspirit.com/
沒看到space limit,介面全英文,可以貼照片。
支援mail to post. (還沒試mail可不可以用中文)

Ant Republic 是 http://checko.arblog.com.tw/
沒看到space limit,全中文,雖然有照片,檔案等button,但是好像不能用。
不支援mail to post。
好像是java 寫的。
缺點是這撤資料太麻煩。

十類密碼千萬不能用

有些密碼千萬不能使用。

copy自 http://www.yeswedo.com.tw/newpaper/pwctuse.asp

   1、密碼和用戶名相同。如:用戶名和密碼都是123456789。幾乎所有盜取密碼的人,都會以用戶名作為破解密碼的突破口。

2、密碼為用戶名中的某幾個鄰近的數字或字母。如:用戶名為test000001,密碼為test或000001。如果您的用戶名是字母和數字組合,如:test000001,那麼別人要盜取您的密碼時,肯定會以用戶名中的字母或數字來試密碼。

   3、密碼為連續或相同的數字。如123456789、1111111等。幾乎所有黑客軟件,都會從連續或相同的數字開始試密碼。如:先試111、 111......到9999999999,然後再試123、321、234、1234......如果您的密碼是111111、123456或 654321,甚至用不著黑客軟件也能在片刻試出。

   4、密碼為連續或相同的數字,如abcdefg、jjjjjjj等。字母雖然比數字多,但是先試相同的字母如aaaaa,再試連續的字母如abcde,黑客軟件所用時間也不會太多。

   5、將用戶名顛倒或加前後綴作為密碼。如用戶名為test,密碼為test123、aaatest、tset等。以用戶名test為例,黑客軟件在嘗試使 用test作為密碼之後,還會試著使用諸如test123、test1、tset、tset123等作為密碼,只要是你想得到的變換方法,黑客軟件也會想 得到,它破解這種口令,幾乎不需要時間。

   6、使用姓氏的拼音作為密碼。在不少黑客軟件中,百家姓往往都被一一列出,並放在字典的前列。只需片刻即可破解您的密碼。以姓氏或姓名的拼音作為密碼還存在一種危險:想盜您密碼的人如果探聽到您的真實姓名,就很有可能用您姓名中的拼音組合來試密碼。

   7、使用自己或親友的生日作為密碼。由於表示月份的只有1~12可以使用,表示日期的也只有1-31可以使用,表示日期的肯定19xx或xx,因此表達方 式只有100×12×31×2=74400種,即使考慮到年月日共有六種排列順序,一共也只有74400×6=446400種。按普通計算機每秒搜索 3~4萬種的速度計算,破解您的密碼最多只需10秒。

   8、使用常用英文單詞作為密碼。黑客軟件一般都有一個包含10萬~20萬個英文單詞及相應組合的字典庫。如果您的密碼在這個庫中,那麼即使字典庫中有20萬單詞,再考慮到一些DES(數據加密算法)的加密運算,每秒搜索1800個,也只需要110秒。

   9、使用8位以下的數字作為密碼。數字只有10個,8位數字組成方式只有10的8次方=100,000,000種,按普通計算機每秒搜索3~4萬種的速度計算,黑客軟件只需要不到3小時就可以破解您的密碼了。

   10、使用5位以下的小寫字母加數字作為口令。小寫字母加數字一共36位,組合方式只有36的5次方=60466176種可能性,按普通的計算機每秒搜索3~4萬種的速度計算,黑客軟件只需要25分鐘就可以破解密碼

Yeswedo : The Site to Buy China Books

http://www.yeswedo.com.tw/index/index.asp

買大陸書的網站。

星期三, 1月 12, 2005

定風波 ~ 蘇東坡


莫聽穿林打葉聲,何妨吟嘯且行。
竹杖芒鞋輕勝馬,誰怕?
一蓑煙雨任平生。

料峭春風吹酒醒,微冷,
山頭斜照卻相迎。

回首向來蕭瑟處,歸去,
也無風雨也無晴。

星期日, 1月 09, 2005

舊航廈,Terminal 42,人很多,一些小朋友一看就知道是小留學生。
試了一下wlan,果然有信號,但是要付錢,好像是中華電信。
座位是33g,靠座位。旁邊是一個阿媽,大概是帶他女兒去(回)加拿大。
阿媽還有帶麵上飛機吃。
空中小姐是什麼樣子已經忘了,好像是有點年紀那一種。
華航只有拖鞋,所以換上拖鞋,前面的太太已經開始將椅子往後倒了。
上餐點,好像是雞肉面。還好。
電影是浮華世界,女主角一點也不好看很普通的故事,一個英國出身微寒的女子,
用盡方法往上爬的故事。
接著是卡通,一群姆牛抓住偷牛賊的故事,天哪。
最後是玩命手機,還好,女主早是金貝辛格,講一個青年靠著手機解救妹綁架的人的故事。

星期六, 1月 08, 2005

公出日記 - home

終於到家了,最後華航還delay 2 hr。

星期二, 1月 04, 2005

公出日記:-0.5

ok,天一亮就要出發啦。
剛剛才把canbus改好。
....我想應該還是沒辦法弄好才對。

還把1年半前的卡拿來開卡,不知道有沒有失效。

明天還要去拿過境旅館的資料,希望不要被拖住。

換錢,保險,買水,試試剛開的卡。

星期六, 1月 01, 2005

公出備忘

日常用品
  1. 圍巾
  2. 手套
  3. 帽子
  4. 襪子
  5. 換洗衣物
  6. 手機,充電器
  7. 像機,電池,充電器(?)
  8. 隱形眼鏡
  9. 眼鏡
  10. 食鹽水
  11. 淚液
  12. 乳液(凡士林)
  13. 面紙
  14. 刮鬍刀
  15. 手錶
  16. 旅遊指南
  17. 毛巾
  18. 口罩
  19. 泡麵,筷子
  20. 換洗衣物用朔膠袋

Office
  1. Requirement (Ed's ppt file)
  2. Item list Execl file (add columm, print out x 3)
  3. 筆記本
  4. 鉛筆

Traffic
  1. 護照 ( copy )
  2. 機票 (copy )
  3. 班機表 (copy)
  4. 過境旅館資料
  5. sales 聯絡電話

Pda
  1. Zaurus
  2. Zaurus adaptor
  3. CF ethernet card
  4. CF WLAN card
  5. sync address book to Zaurus

option
  1. 睡覺枕
  2. 暖暖包
  3. 暈機藥

到機場
  1. 換錢
  2. 保險

網誌存檔