2009年11月9日 星期一

I/O Request Packet & I/O Stack on Windows

Here is a list of the sites introductiong to I/O Request Packet & I/O Stack on Windows.

Windows XP & the Windows Driver Model - Driver Structure & the I/O Request Packet
http://www.mbs3.org/wdmproject/irp.html

I/O Stack Locations
http://msdn.microsoft.com/en-us/library/ms795764.aspx

IO_STACK_LOCATION - Structure
http://msdn.microsoft.com/en-us/library/dd852068.aspx

Passing PnP IRPs Down the Device Stack
http://msdn.microsoft.com/en-us/library/ms798229.aspx

USB Driver Stack for Windows XP and Later
http://msdn.microsoft.com/en-us/library/ms793558.aspx

Linux下EAP-PEAP 上網的設定

很多公司上網的部份都是採用EAP認證的方式。
EAP有分成PEAP (Protected Extensible Authentication Protocol) ,TLS等。
如果是你的作業系統是Linux-Ubuntu+PEAP的話(Win下可能要多選個TKIP),則可以以下面為範例設定。
截圖裡多了個無線網路的WPA企業版選項,WPA企業版會跟EAP認證綁在一起,
若是你的網路環境是有線的,則可忽略。
PEAP預設是不用CA憑證只需要一組帳號密碼的。



2009年11月3日 星期二

Remaster Ubuntu by Tradtional Way

簡短的紀錄一下,大致上都是照以下這教學
https://help.ubuntu.com/community/LiveCDCustomization
不過因為預設的apt-get相關l設定有時會抓不到套件,所以在要進入chroot前,
Copy resolv.conf and sources.list from the host system
# cp /etc/resolv.conf jaunty/remaster/etc/

Preserve original sources.list
# cp jaunty/remaster/etc/apt/soures.list jaunty/remaster/etc/apt/soures.list.backup
# cp /etc/apt/sources.list /jaunty/remaster/etc/apt/

exit後,replace the sources.list with the original sources.list
# cp jaunty/remaster/etc/apt/sources.list.backup jaunty/remaster/etc/apt/sources.list

2009年9月24日 星期四

Google 街景車 on 國道一號

今天開車時看到google街景車出現在我的前面 !!! 這是第二次看到了,第一次時看到因為太興奮了而忘了拍照,事後也去google街景查看看我的車會不會入景,結果是沒有,希望這一次有阿~ 不過這一次離很遠,所以可能性很小吧。

1.


2.


3.

2009年9月14日 星期一

可當系統碟的SSD

一直以來我都有在關注SSD的資訊,因為我很想替我的舊筆電升級阿~最近我看了最新一期的PCDVD,裡面有SSD的專欄,很詳盡,有很多我原本都不知道的訊息,若有想瞭解的可以去買一本。以下是我認為的重點。
1. 要買有cache/buffer的SSD (通常是64MB左右),不然會有使用到一半停頓的現象發生,現在較知名廠商的新一代的產品都有,像OCZ, PATRIOT,INTEL等。
2.耗電量其實除了INTEL全部以及SAMSUNG最新的產品是低於傳統2.5吋硬碟外(約0.xA),其他都約等於傳統硬碟。
3. 比較快的是INTEL(一代是50nm, 二代是34nm)的以及SAMSUNG的,不過也較貴。

2009年9月2日 星期三

HTC MAGIC 3G->無線AP成功!!

等了快兩個月,終於有人成功的做出可wifu tethering的ROM了!!! 可讓別的裝置透過手機的無線訊號上網了。

台灣版的Magic(32A)比較難破解,國外如日本版(32B)的因手機的板子不同,所以早就有了,詳情請參考http://code.google.com/p/android-wifi-tether/wiki/SupportedHardware,此網站為在已rooted的android裝的wifi-tethering的app,若無rooted過的Android手機,請安裝網友釋出的ROM,以下是我安裝ROM的簡易流程。

1. http://www.mobile01.com/topicdetail.php?f=423&t=1161142
先安裝HTC的Magic driver(官網或上述網站有懶人包連結),然後照網站指示安裝懶人包裡的HSPL (SPL 就我的理解是類似bios的東西,HSPL是改良過的工程版SPL)。HSPL 只要裝一次就好,以後更新任何Rom都不用再安裝。

2. 先去這邊 http://forum.xda-developers.com/showthread.php?t=534415 下載rooted過且可執行wifi-tethering的改良版magic ROM。然後依照此網站的中文指示更新ROM: http://forum.5imobile.tw/showthread.php?t=8913

3. 重開機之後即可。

P.S. 也可憑自己喜好安裝可wifi-thering的Hero ROM在magic手機上。
http://forum.xda-developers.com/showthread.php?t=549873

2009年8月14日 星期五

我的Firefox附加元件收藏集

我在Blog的側邊欄裡的網站加了個 Grimmer's Firefox Extension ,此網頁列了我常用套件(Extension)的列表,大家有興趣可以試試,會持續增加中。
發佈文章

2009年8月5日 星期三

HTC Magic v.s. iPhone

最近買了HTC Magic手機,想說我也同時有iPod Touch,之前也玩過幾天iPhone,所以就來做個評分表。

HTC MagiciPhone
UI流暢度 35
網路流暢度34
導航42
軟體豐富性35
娛樂性35
多工42
自訂/破解度(Hack)43
3g tethering網路分享
2 4
電力33
藍芽23

基本上選擇那一隻都是要看你的需求(沒在列的如外型,品牌也算),我會選擇Magic是因為四點。
1. 我已先有iPod Touch想嘗試其它的平台
2. 然後語音導航功能又是比較需要的
3. 又想破解手機使其3.5G分享成無線AP的訊號 (iPhone的破解似忽較複雜且是遊走在法律邊緣)
4.然後工作上又有可能需要撰寫Android平台的軟體。

如果是偏向買HTC Magic手機的人,我會建議不急的話再等看看,大概幾個月到半年之間,一是等之後一堆Android手機出了後再好好比較,那時價錢也會降了些,螢幕尺寸也會大點。二是現在的Android是1.5版,有一些小bug在,像是google contact的預設群組就不能同步(只能同步自建群組)之類的,如果你可以接受再買。Android 2.0版普遍都認為才是比較成熟的版本。

p.s. 買來後才發現,現在HTC Magic是無法破解成無線基地台的,因為HTC在有意無意間把這給封住了,只能期待之後看有沒有人成功了。

2009年8月2日 星期日

miroko: 個人網路資料中心

有在用BT抓東西的人可以考慮用www.miroko.tw這免費的網路服務。
它可以讓你放檔案備份及分享用 ( <-還是需登入帳號才能存取),也可以幫人代抓BT !!! 所以你可以不用當你的電腦開一整天只為了抓BT,可以省掉一點點地球的電力資源。 最大的好處是如果別人之前抓過這BT種子的檔,這檔案會保留在他們的伺服器上, 你可以省掉等待BT完檔的時間,直接從它的空間下載 !!!

所以我現在都是等最新的日劇出來後一兩天再去抓,只要不是太過冷門的,通常伺服器上就會有已完檔的BT檔案了,接著大概十分鐘以內就抓完一集了吧。
以下是使用畫面的截圖:
1.


2.

2009年7月31日 星期五

修改google blog版面區塊大小

這是我花了一點點時間研究出來的,記錄一下。
假設一開始在blogspot首頁,選自訂->版面配置->修改html。

1.修改blog標題寬度

#header-wrapper {
...
width:660->960px;
...
}

2.修改文章區塊+側邊欄總寬度

#outer-wrapper {
...
width: 660->960px;
...
}

3.修改文章區塊寬度

#main-wrapper {
...
width: 410->710px;
...
}

4.修改blog標題描述的文字寬度

#header .description {
...
max-width:700->1000px;
...
}

2009年7月30日 星期四

使用webProxy+Redirect上被封鎖的網站

有時候某些網站是被網管封鎖住的,或是有些網站是擋住台灣的ip,
這些時候就可以用 proxy的技巧來突破封鎖,不過網管又有可能鎖住proxy,
所以這時就可以選擇用webproxy,不過webproxy的問題在於你要把你瀏覽的網址貼在提供webproxy的網站的欄位裡,有點麻煩。
這時就可以用firefox的套件Redirect來自動做這件事。
先去 https://addons.mozilla.org/zh-TW/firefox/addon/5064 安裝此套件,
接著就去套件設定處新增一個profile,以下以無名為例。




Include Pattern: http://www.wretch.cc/*
Redirect to: http://anonymouse.org/cgi-bin/anon-www.cgi/http://www.wretch.cc/$1


這樣以後只要你要連到無名的網址 (按連結或手動key),都會自動經由此webproxy跳到無名的網頁,如果發現無效,那可能網管連此webproxy也檔住,這就要換一個webproxy的網站試了(上述以anonymouse網站為例,記得還要找出webproxy的轉址的規則)。

BBS:

Include Pattern: http://zterm.applet.googlepages.com/ZTerm.htm
Redirect to: http://anonymouse.org/cgi-bin/anon-www.cgi/http://zterm.applet.googlepages.com/ZTerm.htm


注意
:
使用此webproxy技巧有安全上的疑慮, 若需登入的網頁請自行考量是否用此法瀏覽。

2009年7月29日 星期三

Android 1.5 上使用google map API的設定

在進入Android 1.5後,很多地方都變得不一樣了,google API的使用就特別獨立成一個模擬器設定,見下圖。



所以如果在程式中要使用到google map API,則run模擬器就要選上圖中的d,另外就是程式本身的bulid target也要選擇google APIs,而不是Android 1.5,見下圖。



若這些沒設定好,在import google api的函式庫時則會出現找不到的error。

開發Android時需要準備的金鑰keystore

在開發Android程式時會有兩種情況會需要用到金鑰
A. 要把程式放到實體Android手機上執行時
B. 使用google API時
以下就這兩種情形來說明準備流程

A. 需要準備一組屬於開發者的專有keystore,
1. 先在eclipse裡在project上按右鍵選android tools -> export unsigned app。
2. 使用java提供的keytools (win上是在java安裝目錄下的bin),

keytool -genkey -v keystore developer.keystore -alias developer.keystore -keyalg RSA -validity 20000

上述的developer.keystore可自訂名稱。
3. 使用java提供的Jarsigner工具來替程式(x.apk)簽署金鑰。

jarsigner -verbose -keystore developer.keystore -signedjar x_signd.apk x.apk developer.keystore

4. 測試程式已上金鑰

jarsigner -verify -verbose -certs x_signed.apk

最後再把程式用usb線傳到手機裡安裝即可。

B.當要使用google API時, 要準備一組金鑰來向google申請API的使用,然後把從google那得來的apiKey填到程式裡。若是準備要放在手機上的程式,則要使用開發者個人的金鑰,若是要在模擬機上使用google map等API,則是要使用模擬機的金鑰keystore來申請google apiKey。以下是使用google map API的流程。

1. 找出模擬機對應的debug.keystore,以用來申請google map apiKey,若是要使用在手機上,則跳過1。 win xp上debug.keystore是放在

documents and setting\local settings\application data\android\debug.keystore


2. 利用java的keytool來取得金鑰keystore的MD5 fingerprint,若是開發者金鑰則通常會需要填產生金鑰時的密碼。

keytool -list -keystore x.keystore

3. 把得到的MD5碼填在申請網頁android maps API Key Signup 中的欄位來獲得apiKey。
4. 把apiKey填在res/layout/main.xml裡,

android:apKey="xxxxxxxxxxxxxxxxxx"

5. 開始開發程式。

參考:
http://code.google.com/intl/zh-TW/android/add-ons/google-apis/mapkey.html#getfingerprint

wxwidget中的wxBufferedDC使用方法

wxBufferedDC的目的是為了減少閃碩等畫面更新可能帶來的問題,它有幾個預設的constructer,若是要在wxBufferedDC中自己維持一個bitmap以增進速度,則方法是先new出一個bitmap object

wxDC* dc2 = new wxClientDC(this);
wxBufferedDC dc(dc2, *buffer);

然後在繪圖的function中,把此bitmap的pointer丟進wxBufferedDC的constructer,後再進行繪圖動作

{
wxDC* dc2 = new wxClientDC(this);
wxBufferedDC dc(dc2, *buffer);
.
.
.
dc.UnMask();
delete dc2;
}

此function執行到最後面時會去執行wxBufferedDC的deconstructor,就會自動把bitmap的東西倒進wxClientDC中 (畫到螢幕上),但之前new出來的dc2並不會自動delte掉,這樣程式執行時會有memory leak造成的不穩定情形,所以要在function最後面加dc.UnMask()來手動把bitmap倒進wxClientDC中,再delete掉dc2。

c++ STL中的Deque使用

基本上,deque是個雙向佇列,所以可自由的從最前面或最後面加入元素。當要清空deque時,若使用

deque.clear();

則bulid debug mode下的project會過不了,在release mode下會過但執行時有時會跳出例外。最後我找到的soultion則是使用

deque.erase(deque.begin(), deque.end());

這樣就OK了。