2011年6月6日 星期一
守護程序 I 網路殺神
上次趁著返台的時候買了這本書 守護程序 I 網路殺神,主要是用來打發當兵苦悶的時間。由於平常沒有看小說的習慣,會挑上這本小說完全純屬意外,無意間被書籍介紹所吸引的,到底是什麼樣的書會讓每個電腦使用者無法停手?我的好奇心就驅使了我買下這本書。
2010年10月21日 星期四
Razer Abyssus 地獄狂蛇 不專業評測
Razer 這家公司是專門製作電競相關的配備,包括滑鼠、鍵盤和耳機等等。它有名的程度我想大家應該都知道,甚至找電競選手來代言產品,在此我就不再特別贅述。
開始進入這次要介紹的主角!就是受到許多玩家愛戴的 Razer Abyssus 地獄狂蛇,這隻滑鼠訴求的重點在於回歸基本,按鍵的設計非常的簡單,只有左、右鍵和滾輪。

但是,在這樣簡單的按鍵設計下,它本身所擁有的特色卻一點也不遜色,擁有 3.5G 的紅外線感應、125及1000Hz的更新頻率和高達3500的DPI。另外,更新頻率和DPI的調校在滑鼠底部就可以直接完成,不需藉由安裝驅動程式來進行調整。
這支地獄狂蛇在前陣子有一次優惠活動,就是配上巨甲蟲滑鼠墊的套餐,只要 NT.990,可惜那波優惠我沒有跟到。慶幸的是這組套餐優惠的活動又開始了,前一批特價活動沒跟到,這次就趕緊下訂單來好好的搞賞一下自己,順便看看自己的星海會不會變強一點。
下面就看看我這不專業的開箱文了:
開始進入這次要介紹的主角!就是受到許多玩家愛戴的 Razer Abyssus 地獄狂蛇,這隻滑鼠訴求的重點在於回歸基本,按鍵的設計非常的簡單,只有左、右鍵和滾輪。
但是,在這樣簡單的按鍵設計下,它本身所擁有的特色卻一點也不遜色,擁有 3.5G 的紅外線感應、125及1000Hz的更新頻率和高達3500的DPI。另外,更新頻率和DPI的調校在滑鼠底部就可以直接完成,不需藉由安裝驅動程式來進行調整。
這支地獄狂蛇在前陣子有一次優惠活動,就是配上巨甲蟲滑鼠墊的套餐,只要 NT.990,可惜那波優惠我沒有跟到。慶幸的是這組套餐優惠的活動又開始了,前一批特價活動沒跟到,這次就趕緊下訂單來好好的搞賞一下自己,順便看看自己的星海會不會變強一點。
使用心得:
由於第一次使用電競滑鼠,說真的,舒適度和準度是以前的滑鼠完全無法比擬的。剛剛也稍微打了場星海,除了有種新舊鼠型不同的不適感外,整個就是順暢而已,沒話說。不過也聽說Razer鼠有連點的通病,希望我的地獄狂蛇不要太早出現這問題才好!
下面就看看我這不專業的開箱文了:
![]() |
| 包裹收到囉~只能說包的真是簡潔有力啊! |
![]() |
| 今天的主角登場了!地獄狂蛇+巨甲蟲鼠墊套餐, 我個人覺得CP值很高! |
![]() |
| 終於露臉囉!這精美的包裝,有種說不出的爽感~ |
![]() |
| 包裝背後附上的產品保證卡 |
![]() |
| 打開包裝後竟然有個小紙袋,會有甚麼驚喜呢? |
![]() |
| 原來是產品型錄和說明書 |
![]() |
| 卸下塑膠殼了~露出她那頗有質感的表面~ |
![]() |
| 一起合照 |
2009年2月27日 星期五
Setup Lex and Yacc From Unix to Linux
首先,先替王立天老師的編譯器課程終於開課了高興一下,也讓老師搬出了多年前回台灣就封起來的紙箱從見天日啦。給我們以前在外國的學生所交的作業,並要我們先把讓這些程式可以執行。大致跟老師討論一下程式的內容,花了點時間研究一下,也成功的執行。大概的整理了一下,以 Eishi 同學所繳交的 asgn1 為例,筆記如下:
Step 1. Makefile
Step 1-1. Introduction
因為程式是經由 make 來編譯的,所以先了解一下 Makefile 是做什麼的。可以到 跟我一起寫 Makefile 這裡來了解一下。只需閱讀 概述 和 MakeFile 介紹 即可。
Step1-2. Error : No targets specified and no makefile found. Stop.
打開 asgn1 可以發現裡有 LEX.l , GRAM.y 和 MAKEFILE。直接給他執行 make,會得到
make: *** No targets specified and no makefile found. Stop.
這樣的錯誤,根據 Appendix B Errors Generated by Make 的說明是找不到 makefile。我記得 Linux 中的 make 的檔名應該只有 Makefile 和 makefile,所以重新命名就解決了。
Step 1-3. Error : *** missing separator. Stop.
重新命名後,執行 make ,卻發生錯誤
makefile:1:*** missing separator. Stop.
那個 1 應該是代表行數,第一行就發生錯誤...。打開 Makefile,第一行和第二行是 /* ... */ 的註解,但是可以看到下面是以有亮顯 # 的符號來當做註解。第一直覺就是 /* ... */ 不是 Makefile 的註解,刪掉。
Step 1-4. Error : makefile:2: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.
再度 make ,出現的錯誤是
makefile:2: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.
Orz...看了一下錯誤說明,了解 Makefile 裡面的分隔字元都必須很清楚的定義而且都有固定的格式。打開 Makefile ,箭頭直接瞄準 command 區塊,把左邊的空白字元清掉,以 Tab 代替,亮顯就出現了!以此類推,下面的也改一改。 clean 左邊有一個空白字元也刪掉。
Step 1-5. Error : make: *** No rule to make target `y_tab.obj', needed by `asgn1.exe'. Stop.
看來是因為要產生 asgn1.exe 而找不到 y_tab.obj,打開 makefile,把最下面的 rule
改成
Step 1-6. Error : make: *** No rule to make target `gram.y', needed by `y_tab.c'. Stop.
這訊息是說找不到指定的 gram.y,老師有跟我說 UNIX 是不分大小寫的,但是 Linux 有分。所以把 GRAM.y 和 LEX.l 分別改成 gram.y 和 lex.l 就解決了兩個問題了。
Step 1-7. Error : lex.l:36: unrecognized rule
發生這錯誤,明顯的就是 lex 的程式有問題,打開 lex.l ,找到 36 行。區塊唯一沒亮顯就是他...看了一下,給他一個空格來區隔 match 和 function 就可以了。
Step 2. Start Make
Step 2-1. Error : make: tcc: Command not found
再 make lex.l 時,可能產生了一些 warning ,但我想應該不影響,所以先不理他。看看這個錯誤訊息,找不到 tcc 這個指令。查了一下,tcc 是 Tiny C Compiler 。Linux 下都用 gcc ,所以把 tcc 的部份修改成 gcc ,並對照一下 option 修改所需要的參數。如下:
Step 2-2. Error : gcc: y_tab.c: No such file or directory
很明顯的是因為 gcc 找不到要 compile 的檔案,看了一下,資料夾卻有 y.tab.c。這邊可以知道 Yacc 所產生的檔案應為 y.tab.c ,而不是 y_tab.c,修改
為
*注意:這邊 make 裡面用的是 bycc ,實為 Berkeley Yacc 若無安裝,改成 yacc 即可。
Step 2-3. Error : gram.y:89:20: error: lexyy.c: No such file or directory
嗯...找不到 lexyy.c,快瘋了喔!看了資料夾,裡面有 lex.yy.c,所以 Lex 所產生的檔案應為 lex.yy.c 而不是 lexyy.c。打開 gram.y ,尋找 lexyy.c 並修改即可。
Step 2-4. Error : gcc: y_tab.obj: No such file or directory
一樣,找不到該檔,打開 makefile :
修改成
即可,gcc 的參數設定可自行執行 gcc --help 來了解
Step 2-5. Error : y.tab.c:(.text+0xb31): undefined reference to `yywrap'
Google 一下,這個錯誤可以透過加上
來解決。打開 gram.y 發現原本就有加了,只是備註解掉而已。
Step 3. Make Successed
Step 3-1. asgn1.exe
終於,make 沒有錯誤訊息了,並且產生了一個 asgn1.exe 的檔案。接下來可以自己玩一玩了,透過
執行,然後輸入 +,/ 和 if,else,while,或是亂輸入也可以喔!
Step 1. Makefile
Step 1-1. Introduction
因為程式是經由 make 來編譯的,所以先了解一下 Makefile 是做什麼的。可以到 跟我一起寫 Makefile 這裡來了解一下。只需閱讀 概述 和 MakeFile 介紹 即可。
Step1-2. Error : No targets specified and no makefile found. Stop.
打開 asgn1 可以發現裡有 LEX.l , GRAM.y 和 MAKEFILE。直接給他執行 make,會得到
make: *** No targets specified and no makefile found. Stop.
這樣的錯誤,根據 Appendix B Errors Generated by Make 的說明是找不到 makefile。我記得 Linux 中的 make 的檔名應該只有 Makefile 和 makefile,所以重新命名就解決了。
mv MAKEFILE makefile
Step 1-3. Error : *** missing separator. Stop.
重新命名後,執行 make ,卻發生錯誤
makefile:1:*** missing separator. Stop.
那個 1 應該是代表行數,第一行就發生錯誤...。打開 Makefile,第一行和第二行是 /* ... */ 的註解,但是可以看到下面是以有亮顯 # 的符號來當做註解。第一直覺就是 /* ... */ 不是 Makefile 的註解,刪掉。
Step 1-4. Error : makefile:2: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.
再度 make ,出現的錯誤是
makefile:2: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.
Orz...看了一下錯誤說明,了解 Makefile 裡面的分隔字元都必須很清楚的定義而且都有固定的格式。打開 Makefile ,箭頭直接瞄準 command 區塊,把左邊的空白字元清掉,以 Tab 代替,亮顯就出現了!以此類推,下面的也改一改。 clean 左邊有一個空白字元也刪掉。
Step 1-5. Error : make: *** No rule to make target `y_tab.obj', needed by `asgn1.exe'. Stop.
看來是因為要產生 asgn1.exe 而找不到 y_tab.obj,打開 makefile,把最下面的 rule
y_tab_obj : y_tab.c lexyy.c
tcc -c -w- y_tab.c
改成
y_tab.obj : y_tab.c lexyy.c
tcc -c -w- y_tab.c
Step 1-6. Error : make: *** No rule to make target `gram.y', needed by `y_tab.c'. Stop.
這訊息是說找不到指定的 gram.y,老師有跟我說 UNIX 是不分大小寫的,但是 Linux 有分。所以把 GRAM.y 和 LEX.l 分別改成 gram.y 和 lex.l 就解決了兩個問題了。
Step 1-7. Error : lex.l:36: unrecognized rule
發生這錯誤,明顯的就是 lex 的程式有問題,打開 lex.l ,找到 36 行。區塊唯一沒亮顯就是他...看了一下,給他一個空格來區隔 match 和 function 就可以了。
Step 2. Start Make
Step 2-1. Error : make: tcc: Command not found
再 make lex.l 時,可能產生了一些 warning ,但我想應該不影響,所以先不理他。看看這個錯誤訊息,找不到 tcc 這個指令。查了一下,tcc 是 Tiny C Compiler 。Linux 下都用 gcc ,所以把 tcc 的部份修改成 gcc ,並對照一下 option 修改所需要的參數。如下:
gcc -c file_name
Step 2-2. Error : gcc: y_tab.c: No such file or directory
很明顯的是因為 gcc 找不到要 compile 的檔案,看了一下,資料夾卻有 y.tab.c。這邊可以知道 Yacc 所產生的檔案應為 y.tab.c ,而不是 y_tab.c,修改
y_tab.obj : y_tab.c lexyy.c
gcc -c y_tab.c
為
y_tab.obj : y_tab.c lexyy.c
gcc -c y.tab.c
*注意:這邊 make 裡面用的是 bycc ,實為 Berkeley Yacc 若無安裝,改成 yacc 即可。
Step 2-3. Error : gram.y:89:20: error: lexyy.c: No such file or directory
嗯...找不到 lexyy.c,快瘋了喔!看了資料夾,裡面有 lex.yy.c,所以 Lex 所產生的檔案應為 lex.yy.c 而不是 lexyy.c。打開 gram.y ,尋找 lexyy.c 並修改即可。
Step 2-4. Error : gcc: y_tab.obj: No such file or directory
一樣,找不到該檔,打開 makefile :
asgn1.exe : y_tab.obj
gcc -c y.tab.o
修改成
asgn1.exe : y_tab.obj
gcc -o asgn1.exe y.tab.o
即可,gcc 的參數設定可自行執行 gcc --help 來了解
Step 2-5. Error : y.tab.c:(.text+0xb31): undefined reference to `yywrap'
Google 一下,這個錯誤可以透過加上
int yywrap()
{
return(1);
}
來解決。打開 gram.y 發現原本就有加了,只是備註解掉而已。
Step 3. Make Successed
Step 3-1. asgn1.exe
終於,make 沒有錯誤訊息了,並且產生了一個 asgn1.exe 的檔案。接下來可以自己玩一玩了,透過
./asgn1.exe
執行,然後輸入 +,/ 和 if,else,while,或是亂輸入也可以喔!
2009年2月25日 星期三
jQuery Plugins 介紹
jQuery 好用又強大,但也因為如此,基於 jQuery 開發的 Plugin 也就多到一個恐怖的地步。同樣的一種效果,可能有幾十種的選擇,真的會讓人家很困擾。我想大家應該都有一樣的困擾,所以就找了些人家整理的資料:
http://ka-yue.com/blog/useful-jquery-plugin
介紹了十七種常用的 Plugins
http://www.open-open.com/ajax/jQuery.htm
專門在收集 jQuery 的 Plugins 和截圖
http://ka-yue.com/blog/useful-jquery-plugin
介紹了十七種常用的 Plugins
http://www.open-open.com/ajax/jQuery.htm
專門在收集 jQuery 的 Plugins 和截圖
2009年2月24日 星期二
Windows Server 2003 - Windows Media Service and FTP
今天花了一些時間幫教資中心架設一台多媒體串流的伺服器,系統是 Windows Server 2003,並且要以 Windows Media Service 來提供影音串流的服務。
在 Windows Media Service 設定的部分非常的簡單,只需要以下步驟 :
並且新增個使用者,開啟寫入權限等等。原本以為這樣就結束了,結果使用 FTP Client 軟體連線時,會卡在 Entering Passive Mode,然後出現 list error 等錯誤訊息。Google 了一下,原來是因為啟動了 Windows Firewall 導致 Passive Ports 無法存取而發生的錯誤。下面的網址有提供解決的方法 :
大致設定如下:
On Windows 2003 Server with IIS6
因為要開啟的 Ports 非常的多,所以它寫了一個小小的 Script 來開啟所有 Port :
To add a range of ports to Windows Firewall from the Command Line
你就看到一堆 Port 開啟的訊息出現了。最後再用 FTP Client 連線,順利完成 !
如果是使用 Windows Server 2000 的話 :
On Windows 2000 Server with IIS5 Configure PassivePortRange via Registry Editor
在 Windows Media Service 設定的部分非常的簡單,只需要以下步驟 :
- 新增/移除程式
- 管理 Windows 元件
- 勾選 Windows Media Service 並安裝
- 在程式集裡面啟動 Windows Media Service ,再設定幾下就好了。
並且新增個使用者,開啟寫入權限等等。原本以為這樣就結束了,結果使用 FTP Client 軟體連線時,會卡在 Entering Passive Mode,然後出現 list error 等錯誤訊息。Google 了一下,原來是因為啟動了 Windows Firewall 導致 Passive Ports 無法存取而發生的錯誤。下面的網址有提供解決的方法 :
大致設定如下:
On Windows 2003 Server with IIS6
- To Enable Direct Metabase Edit
- Open the IIS Microsoft Management Console (MMC).
- Right-click on the Local Computer node.
- Select Properties.
- Make sure the Enable Direct Metabase Edit checkbox is checked.
- Configure PassivePortRange via ADSUTIL script
- Click Start, click Run, type cmd, and then click OK.
- Type cd Inetpub\AdminScripts and then press ENTER.
- Type the following command where the range is specified in "..". cscript.exe adsutil.vbs set /MSFTPSVC/PassivePortRange "5001-5201"
- Restart the FTP Publishing Service.
- Add each port to the Windows Firewall
- Click Start, click Control Panel, open Windows Firewall, and select the Exceptions tab.
- Click the Add Port button.
- Enter a Name for the Exception and the first number in the port range.
- Click TCP if not already selected and click OK.
- Repeat for each port in the range - for large ranges see the end of the document.
- Enable the Windows Firewall on the General Tab.
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
PassivePortRange : (STRING) "5001-5201"
因為要開啟的 Ports 非常的多,所以它寫了一個小小的 Script 來開啟所有 Port :
To add a range of ports to Windows Firewall from the Command Line
- Click Start, click Run, type cmd, and then click OK.
- Type in the following where the range is specified in ( ) and the name of the firewall entry is in " ".
FOR /L %I IN (5001,1,5201) DO netsh firewall add portopening TCP %I "Passive FTP"%I - Each port in the range will be added with an "OK" confirmation.
你就看到一堆 Port 開啟的訊息出現了。最後再用 FTP Client 連線,順利完成 !
如果是使用 Windows Server 2000 的話 :
On Windows 2000 Server with IIS5 Configure PassivePortRange via Registry Editor
- Start Registry Editor (Regedt32.exe).
- Locate the following registry key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msftpsvc\Parameters\
- Add a value named "PassivePortRange" (without the quotation marks) of type REG_SZ.
- Close Registry Editor.
- Restart the FTP Publishing Service.
Note: The range that FTP will validate is from 5001 to 65535.
訂閱:
文章 (Atom)












