2.28.2007

Google的svn hosting 服務

Auron 需要一個public domain 的version control system,所以google 了一下 "free svn host",找到Google Code,其中有一個新服務 : host -- 下面還有一個 "create new project" 的Link。

用google account 就(才)可以login。
試著create 一個project 試試...
  • 發現project name 的限制很多,要小寫,不可以用特殊字元,而且還要經過google code 確認,所以取名字時要多試試。等到 確認後,就會create成功。
  • project name會成為 project link 的一部分,像我的project name叫m00,位置就是 : http://code.google.com/p/m00/
  • repository 自動create Branch, Tag, Trunk 三個目錄。
  • 在 project的source tab 有說明commit, checkout的方法,就跟一般的svn操作方式相同。
通過firewall 的方式 : 其實就是svn 通過firewall 的方式,follow this post.. Linux 的方法比較直覺,Windows 系統,svn 的config file位置是在 %APPDATA%\subversions,修改 "servers" 這個file ,將 proxy server, port 加到裡面:

http-proxy-host = 10.1.1.242
http-proxy-port = 3128
然後,就可以用command line svn checkout了。
實際上第一次checkout,會詢問是否接受key,回答接受,svn會return error,之後再執行一樣的command一次,就成功checkout了。

在local folder 下checkout後,可以看到該folder出現.svn folder,然後,就follow平常使用gui介面TortoiseSVN 的方法 (Add file,, commit...) 就可以了。

Add,,, commit後,在 google code host , project 上真的就看到commit的source 了..

linux 上通過proxy checkout 還是有 400 error,可以試試用https ,不要用 http。

Single Core Smartpone Runs Linux

最近的新聞,
Linux Phone已經可以run 在Single Core 的platofrm 上了。
以往的smart phone都需要兩個cpu (core),一個負責 gsm protocol stack , modem 另一個負責 UI operation,兩者用 rs232 (AT command)連接。
目前的這個solution 已經可以在一個core上run Linux 和 base 和 gsm protocol stack了。

以往一個專屬的cpu 負責 gsm 部份是因為這部份的操作對realtime 的要求很高,所以沒辦法整合在 linux kernel 中。
現在這個solution 的出現,代表 Linux 的realtime 能力已經足以提供這樣的需求 (?)

答案好像不是這樣... 詳細看 product description .. 發現 他是用 VirtualLogix 的技術,在ARM 9 上虛擬出兩個core,然後一個給 Linux Run,一個給gsm protocol stack 的RTOS run 。

所以 並不是 run 在Linux 中喔...

2.27.2007

一些無聊的筆記..

就算是N年前,選SS作自己的網站平台,應該不會追得上網路發展的腳步。
MS從來就不是技術的開拓者呀 (雖然他最後可贏得整個市場)。

即使到了現在,行動通訊也不是很普及吧,比起blogger的人數來說,差得遠了,
blogger的人數比起 手機的用戶數來說,更是天差地遠..

不過上網費用90%交給content提供者,這一點,好像沒有人作,大家還是緊抓著通訊費不放,認為這才是賺錢的地方。 再這樣下去,行動上網的使用者(率)應該還是不會增加吧 ?

嗯...抱著對一切保持著興趣的態度,對每一個新玩意都親自去嘗試..應該不會miss掉任何一個主流技術吧..

不過,個人的感想是,,,internet上,任何先想到"獲利"的新玩意,好像都不會成功。
會成功(甚至顛覆所有使用模式)的"東西",都是先取得大量user後,"獲利模式"才慢慢顯現..
(所以有好些..到現在還不知道money 在哪)

電信業? 是一個封閉的通訊業?

2.23.2007

沒有google的日子

今天Google有點問題(或是連上Google有點問題),發現... Google深入網路的程度,已經到了"沒有Google,哪裡都去不了"的地步。

平常常用的網站都放在自己的blog (blogger)
RSS feed用Google Reader
mail - 當然是Gmail
書籤 - Google bookmark, notes 和Toread (到gmail)
其他要去的網站,都借用 google搜尋

所以,一旦Google上不去,所有地方都去不了啦,想用個搜尋引擎...yahoo (是google),yam (也是google),..一些以前的搜尋引擎(altavista, openfind.. )都掛了。
最後,只有用msn -- 搜尋結果還真差。

沒有Google,自己要的網站在哪都找不到,平常只記得一些keyword而已,所以一個網址都打不出來。

下午google ok了,一切又恢復正常。

真可怕,想不到Google已經是網路世界中不可或缺的部份了 (對我來說),沒有Google的話,哪裡都去不了。

把所有都放到Google也不是個好主意,應該要分散風險..
想想是不是要為自己作個google的cache,把自己每次的google內容都cache起來,至少下次google出問題的時候,我還有自己的search cache可以用。

2.21.2007

奇怪的感覺...

在過年時間看看 Google Reader,..... 看到公司新產品的消息...

感覺 :

?? 我們有要出這一款產品嗎 ??

有人在上班嗎? (已經開始上班了嗎 ?)

2.20.2007

shntool - wave operation

shntool opensource 的處理wave檔的程式。
還有win32 版本,linux版本的安裝當然就是 aptitude install shntool,win32是免安裝 (手動安裝? - 將EXE copy 到path中)。

這種command line程式的好處就是(也就是所有Unix系統的好處),利用pipe line的方式,可以支援幾乎無限制的audio encoding format (配合適當的encoding/decoding program)。

我只是要依照 cue的內容來切割ape...

這個還需要 cuetools 裡面的 cuebreakpoints 和 shntool 的 shnsplit

先將 ape 檔轉成 wav (這個因為 ape 就是個none-open 的codec,所以沒有open source 的方法),用Monkey's Audio (只有 windows 版本)。

然後,用
cuebreaks -i cue CDImage.cue | shnsplit -n track CDImage.wav
就會切成
track001.wav
track002.wav
...

linux上ape的support要download mac 的"mac-port",很可惜,沒有debian pkg,所以要自己build , install (follow INSTALL 的說明)。install 後,輸入"mac"可以看到mac的說明。

這個要output ape format的檔案(split後要存成ape),要follow mac-port 那一欄的option,download patch, 照 README的說明:
% download mac-3.99-u4-b5.tar.gz, mac-3.99-u4-b5-shntool.patch
% gunzip < mac-3.99-u4-b5.tar.gz | tar xf -
% cd mac-3.99-u4-b5
% patch -p1 < ../mac-3.99-u4-b5-shntool.patch
% CXXFLAGS="-DSHNTOOL" ./configure
% make
% make install
這樣,就可以output ape檔按。(從 shnsplit -h 可以看到,"-o ape",-o 就是output的格式)。
shntool沒有支援 mp3,mp3還是要用有名的lame (? ffmpeg)。


Windows 版本的用法是..
shntool split -o ape -f cuesheet.cue -n track cdimage.ape
這個直接用ape,所以需要有 shntool的ape支援:mac (說是在 shntool的 homepage可以download..)。
helper : mac的安裝方式跟shntool一樣,就是copy到system path access到的地方(這樣invoke時就不需要type path..)。然後shntool 就認得 ape 結尾的檔案。

2.13.2007

TiddlyWiki

在Hemi的熱門書籤中看到這個,一開始說的就引起我的注意:
如果你有時候常常會自己用notepad或是ultraedit用純文字的方式記錄一些日誌或是想法,甚至是用word來簡單的記錄一些事情或是流水帳之類的,做這些事情的時候壓根就不會想說要架個wiki或是blog或是bbs或是論壇來記錄這些瑣碎的東西(太小題大做也太麻煩了)。....
我因為記性不好,所以一點小事/心得 工作內容,都得記下來才行,最早最早的時候(PE2時代),還真的是用notepad來記,一堆txt檔,後來用Word記,最後寫了100多頁,檔案大,要找內容也很不方便,但是到現在也想不出有什麼比較好的方法 (這個blog就是紀錄一些不涉工作機密的部份,工作相關的部份,還是用Word,又大,又笨)。

Wiki 很不錯,最適合作工作紀錄,但是要裝個個人使用的Wiki也太麻煩,而且也不portable (家裏,公司,notebook都裝 ?)。

為甚麼沒有簡單的個人用Wiki呢 ? 這個就是Perfect Solution - TiddlyWiki。

他是用javascript寫的,所以只要是browser就可以run,又因為是javascript,所以他的source code 就放在 .html 裡。

還有,更cool的是,你寫的條目也在同一個 html 裡,所以一個檔案就搞定啦。

2.12.2007

test - 加入表情符號

這裡看到的,可以在blogger加上表情符號的支援。
測試一下..
: ) :)
: D :D
: $ :$
: p :p
: x :x
: o :o

2.11.2007

量子電腦下週即將推出

新聞說,下個禮拜 D-Wave Systems Inc將會推出史上第一個商業(是說可以買得到?)量子電腦。

這個名叫 "Orion"量子電腦是用超低溫+超導體的niobium (金屬製成),形成一個" 16 quits(qubit是量子電腦的運算基礎,鄉對於傳統電腦的bit)"的array。
和以往不一樣,這個電腦將會用來計算 "NP-Complete"問題,傳統架構的電腦需要幾千個cycle才能解出的問題,使用 Orion 只要 幾個 cycle 就可以完成。

D-Wave 先以出租的方式讓客戶由遠端login 使用,再考慮是不是要出售這個產品。

公司的首級技術顧問說,目前該電腦並不用來計算任何加/解密問題,而是用來計算多變數的問題。

量子力學的特性,允許同一時間作多個變數的交互運算/檢查。所以可以簡單的解決 N-P Complete問題。


AP快壞了.

用了3年的AP WBR-B11終於(快)掛掉了。
症狀是 連線一陣子後,斷線,WAN那一端。
LAN 和 Wireless 這一端還是OK的。

我還以為是 Cable Modem的關係,LAN 燈一直沒反應,後來拿NB來試,是OK的。
才知道是AP的問題。

同時也發現 要是用NB取得DHCP 後,再用AP,就取不到ip了。

WAN的問題..猜測回不會是MDI autodetection的問題,modem 和 ap都是auto detection 導致混亂?
所以暫時把 AP 設為固定 : MDIx。

希望能撐下去,現在 b 的AP應該已經買不到了吧。

2.09.2007

OLPC and use no standard

Interview: Ronald G Minnich 的一段..
因為整個系統都是 open的, 所以OLPC 能夠不必使用像 ACPI 這種...讓廠商能Close Hardware Implement而定的介面"標準"。因此,一般被BIOD和ACPI鎖住(interface)的功能, OLPC 都能夠將他們整合到firmware 和 kernel 中,...
原來"標準化"還有這樣的好處,只要介面符合標準,內部的實作方式就不用Open出來。

Nokia's Navigator - smart2go

去年Nokia 買下Gate5,發佈Mobile Phone的Navigation 軟體 : smart2go.
smart2go 是Gate5原來就有的產品,原本是要配合Sockets 的GPS receiver.

smart2go

使用方式是download一個軟體,在phone上run。然後依照需要再下載map 資料,
下載的方式可以透過電信網路,也可以透過Wifi,也可以先用PC download,在upload到phone上。

取得位置的方式應該是AGPS (因為Faq說不需要有GPS receiver),但是若是要做到語音導航,就需要有GPS receiver,可以透過內建或是BT連接的方式得到GPS資料。

這個軟體(應該說是服務),當然屬於LBS (location base service),server端會提拱你附近相關資訊 (商店,景點,服務...)。也可以作路徑規劃。

配合 phone的sms,可以將有趣的的地點資訊mail 給其他人 (或update poi ?)。

smart2go 是免費的,但是頻寬要收錢,所以建議在有Wifi的地點,盡量以Wifi連線。

目前提供的地圖 .. 包含台灣 !



這個看起來就像是一陣子Apple的iPhone示範,其中 iPhone連上google earth,取得附近Pizza電位置,電話的應用。


這一篇有更詳細的內容說明喔。

2.08.2007

ADS 的optimize local var in loop


....
for(i=0;i <10;i++) {
unsigned short sdata;
if ( i & 0x01 ) {
sdata = *(volatile unsigned short*)0x10000012; // get one buffer
ch = sdata >> 4;
}else{
ch = sdata & 0x0FF;
}

... parse ch and move ch to working queue..
}
....
這樣的code,啟動 ADS optimize (小小的optimze就可以)。動作變得不正確。

列出assembly code,發現 loop 中的local variabl sdata,在code的原意是要保留數值到下一個loop count時使用,但是開啟optimize後,sdata會以register r10代替,並且在之後 "parase ch and move ch to working queue" 的code,會把r10拿來用,
也就是說,compiler 認為loop 中的sdata的"有效範圍"只有loop 開頭到 ch = sdata XXXX 那一段。

修改的方法,就是把sdata的宣告提到for loop之外
 unsigned short sdata;
for (i=0;i <10;i++)
{
...
所以ADS人認為for loop 中的local variable ,scope只有signle loop 而已。
這是陷阱 ? 還是 C 的標準 ?
感謝Titan的說明,原來C的標準本來就是這樣。

2.07.2007

TFAT - Transation safe FAT

TFAT 是 MS為CE 所設計的file system,因為FAT的特性真的太差了,用在有power interrupt 的embedded device實在不適合,但是MS的AP 又highly relay on FAT,所以就開發這個 api 和 FAT相容,但是lower level 模仿新款filesystem的TFAT 檔案系統。

在 platfombuilder的help 中可以找到 (Thanks Loyal) 有關TFAT的說明:
Transation-Safe FAT
TFAT只能保證 disk 的File Allocation Table和實際目錄一致,不能保證每次File API : WriteFile, CloseHandle時會寫入完整的file (或完全不寫入)。
以往的FAT 系統如果File Allocation Table和實際目錄內容不一致,整個file system 就不能用了,TFAT就是為了避免這樣的情形發生所發展的。

TFAT 系統將原來的整批寫入改為許多小筆資料的寫入(device 的atomic block write),所以寫入速度會比原來的FAT系統慢,但是讀取速度幾乎是一樣的。

TFAT的效能可以調整 - 利用registry。
增加速度的方法大約是使用Cache (加大cache),Enalble WriteBack ... 可以參考Platformbuilder TFAT Registry Setting 該項說明。

? 這個是patent喔,在這裡可以看到,他是一項專利。
也大略描述了一下TFAT的內部機制:"將修改的block寫到新的,未使用的block中,而不直接修改原block" 以防止修改中途被中斷,影響整體資料的完整性。

這不就是journal file system ? 幾百年前的技術,都已經到第N代了,TFAT還可以申請專利 ?
自己連一下,這是後來寫的 : TFAT Overview

Shell Command in Sequence/Parallel

今天看到的,短短的,把他翻譯一下 - 雖然大家都知道,但是這樣說也蠻有趣的。

一個完了換一個,依序執行 - 在每個command後加上 ";"
General Syntax:
command1;command2;command3

範例
$ clear;date

如果不想等,希望shell在command執行中還是能接受你的命令(執行下一個命令),就在command後面加上 "&".
# /root/ftpbackup.sh &

以上兩者合併使用的範例 -
找出各個directory中的 bak 檔,列出在 /tmp/list中:

#for d in "/home/sales /home/dbs /data1"; do find $d -iname “*.bak” >>; /tmp/list; done &

2.05.2007

GoogleMap for Windows Mobile

Google推出GoogleMap 的Windows Mobile 版本。 這次這個版本和上一個版本不一樣,已經可以直接安裝執行,不需要JVM了。
但是還是一樣,需要連線到Google的Map Server去,作所有的運算,所以需要連線到internet的能力,同時也需要一些bandwidth。

目前提供的功能有:
  1. Road/Satellite Map
  2. 地址
  3. POI
  4. SF Bay Area的 Traffic
  5. 導航(不含語音導航)
  6. GPS Tracking


原文 : http://www.gpspassion.com/forumsen/topic.asp?TOPIC_ID=78766

2.02.2007

ISP1582 DATA IN. Stage and Interrupt

除了EP0 以外,其他的endpoint 。
TX ( IN ) 中斷發生的時機,是在 endpoint buffer由 1 -> 0 時發生,也就是edge trigger。

USB裝置的通訊是由PC主導的,所以device端所謂的TX 動作,其實是 "將data放到 buffer中,等待 PC 來拿"。

PC 來拿取的時機,依照driver的寫法,和ap 的寫法而有不同。
所以不是 "device一把資料放到buffer中,馬上就送出去了" 。

如果pc 端的AP (driver?)沒有動作(Read),device 端 TX buffer的資料永遠不會送出。

再來,AP (driver) Read 時。buffer裡不一定會有資料,如果沒有資料的時候。寫得不好的driver,就會讓AP hang住...

ISP1582這種 "Edge Trigger" 的TX Interrupt,driver的部份需要特別照顧。
通常這種通訊介面都用FIFO (Ring) 作為 driver 的interface (我是指device端)。
一端由 main loop code 在需要時,將資料丟到FIFO中,driver則負責在 TX interrupt時,將FIFO的資料拿出來,送到 Endpoint buffer中。

當 FIFO一旦空了之後,driver在最後一次中斷後就沒有送資料出去了,所以沒有下一個 TX 中斷,這個model 的自動機制就消失了。

所以一般這類設計,main loop 端的code 把data放入 FIFO後都會檢查 中斷是否運作中,如果沒有,就要手動initial 傳送。

在 usb 有一種好處,就是可以送一個 length 0的資料,還有TX動作實際上要等待PC端的IN Command Stage。

所以.. device的driver只要確實的將FIFO length 內容反應到 buffer中就可以了。
也就是說,FIFO沒資料時,就送一個 length = 0 的資料過去。

猜想是"送 length = 0 的資料"中,會把 endpoint的dsen set,讓他能進入data stage,回應 host的in command。整個usb command的 process才能正確的執行。

Orkut Open

我是後知後覺還是 ?
一向要由user invite的orkut 現在竟然可以註冊,不用invite。

就到 Orkut的login page,下方有一個"註冊"。

介面還是全中文的。

現在是0位朋友...