星期三, 5月 31, 2006

pchome 的新玩意? portal 2.0 ?

才剛剛寫完 570 的使用心得,進去pchome看看...竟然出現portal 2.0 倒數?
是甚麼東西?

pchome要整合他....垃圾過濾功能不太好的mail + 廣告大於版面內容的blog + 一直標錯價的購物 + 反應緩慢的相簿 + 一下子要終止,一下子要繼續的個人網頁.....

google 了一下,好像也就是這樣..

不管怎麼說,有改變總是好的。

PII 333 + 192M ...似乎還是不夠

最近買了個二手的 570, PII 333 + 192M RAM。

只是用來當上網的工具,所以只有run firefox + 一大堆plugin + 酷音。
這樣的機器,花了4000多塊。選IBM,就是因為他的keyboard適合打字。

本想,用來作blogging,收收Gmail,看看blogline。紀錄就用google Notebook。Outlook用Google Calendar。這樣的配備比起pda和一些小notebook來說,應該還OK吧。

用了半個月以來,感想是....keyboard真的是不錯,螢幕大小也OK。

但是run起firefox來,有點...鈍鈍的。尤其我習慣開很多tab,同時另開一個firefox然後在兩邊用alt-tab切換,輸入。 切換起來,就有點慢。尤其是用Wifi時,影響更大。

在看google analytics時,"慢"得最明顯。

所以,想完全以網路為工作平台,這樣的硬體配備: PII 333 + 192MB 大概是最低限度了。
如果要"舒服"點的話,大概要到PII 600 + 256M 吧。

也就是說...hardware高於這個的..,,就有點浪費了。



剛拿到時,8139的網卡竟然不能動,今天 突然好了。
我只是換了一條網路線而已。

今天,因為cable 不通,這台機器完全失去功用。所以又想趁這個機會安裝debian ,看看換一個light wieght的WM來run firefox 會不會比較快。但是這個快掛點的CDROM driver一直都不肯讓我裝。--- 稿到後來cable 都oK了。--放棄。



實際使用這半個月,覺得蠻方便的,
想想目前一切需要都可以由網路服務取得。只要能跑firefox,似乎一切就OK。所以 也不介意OS是windows, linux還是OSX。 這樣想想...firefox + google似乎一切就搞定。

真希望會有一種full size keyboard,low speed cpu (enough to run firefox),long battery time,12" display ,wifi + 3G 並且重量輕的裝置。 我想,以目前的技術,應該是絕對可以做出來的吧 :)

星期二, 5月 30, 2006

好笑的笑話..

今天在Goston's Blog看到的笑話,想不到,還可以這樣用..
話說, 今天下午上班時, 某聯 X 銀行的業務打電話給我的一名同事推銷保險。我同事自然是百般推辭, 但那名業務或許是月底到了, 業績壓力實在太大, 所以就硬是死繵濫打不肯放棄。就在扯了近十分鐘後, 出現了令人噴飯的對話...
業務:「請問您是做什麼工作的」
同事為了想讓業務趕快放棄便答:「我洗廁所的」
業務:「那您一定是大老闆, 才有閒情逸致洗廁所」
聽到這, 我和同事早就笑出來了, 想不到到後來還有更妙的。

又扯了幾分鐘後...
同事:「我說過我就是不要, 我已經有很多保險了, 我買那麼多做什麼? 我又不是李雙全」
至此我和其他同事已全部笑翻... XD
這和那個 外線交給三井的 有一點類似。:)
原blog 的Link 在這裡

The way to enable Splash Screen

工作紀錄,要讓開機的時候,先顯示Splash Screen,然後再unzip kernel...run application。

這大概是consumer產品必須的一項功能,power up後儘量快的顯示出畫面,免得讓user有等待的感覺。
尤其是使用linux的產品,開機後通常要先unzip kernel到ram中,load Non-GPLed module。然後才能進入AP。這一段有點耗時。

這個SDK的作法是用bootloader,bootloader支援romfs(因為這是最簡單的filesystem),啟動後,init DRAM,perial control,然後就到flash中找ROMFS mark,之後就找固定的幾個file,分別是:
  • parameter : 就是osd control 的參數
  • bitmap : 就是要顯示的圖
  • irqroutine : 負責顯示的program code。

parameter和bitmap這兩個file要用SDK的demo program產生,
demo code中有一個播放jpeg的program。加上dumpout參數,
會將osd output control 的register parameter list dump 出來,
同時將jpeg轉為bitmap,並且arrange為osd buffer中的raw格式後dump出來。

所以 bootloader要重新config,build,download。
rootfs也要重新build,加入上面的file到 / 中。

都燒到flash後....OK。啟動後 6 sec (!!!), splash screen 出現。
還是太久,TS的x86base 加上bios都不用這麼久,
猜測試 probe DRAM parameter造成的。

6 sec.. LCD 極化線條可以看到一點...

刪除掉 bootloader的DRAM probing 功能,看看能不能減少一半。


問題: 使用這種irq enable的bootloader,ethernet module 出問題,不能get up,會出現" no link"。
但是在bootloader中,這個ethernet 還是ok的,在linux起來後,modprobe 後出現no link error。

豬頭!! 這是 device 內建ethernet MAC的error message。

難怪覺得很熟習,從error message也可到呀。
因為重新config kernel了,所以內建ethernet MAC在預設config中是enable的。

內建的沒接網路線,當然enable起來後就是 "no link"啦~!

真是豬頭。

OS .. in Embedded system

Embedded.com 這一篇說明 embedded system 上,使用OS 的狀況:

字太多了,就看看圖就好...


先是 embedded system上,使用OS與否:


可以看到,使用OS的佔多數喔,而且自己開發OS的,越來月少了..


然後是針對OS的需求調查,OS的各項功能中,何者最重要..

竟然..realtime performance 是第一,
然後是processor support,嗯,這大概是為了方便產品以後更換processor吧。
Software tools 之後就是No royalties。證明 Tools 還是比$$還重要一點(這分調查對象大概大部分都是developer吧..)


最後一張圖就是各家OS的市占率..
0606esdSurvey06

第一名,是登陸火星的VxWorks。
然後是XP embedded, WinCE。
之後是DSP/BIOS -- 這個也是OS?
Redhat Linux (真的有人把Redhat 砍一砍後,就裝入embedded system ?)
接下來就是本來很有希望可以成為當初PC標準的QNX。
uC/OS..
以下就自己看了,這一張圖果然比較有趣 :)

星期六, 5月 27, 2006

invisible cloak ..

Dr Dobb's Portal

三名物理家 宣稱 利用"metamaterial",可以做到隱形披風的功能。
主要構成是一種能夠轉換電磁波的材料,因為光也屬於電池波,所以他也可以扭曲光波。
他們說,電磁波遇到這種物質時,會像水流過石頭一樣的"繞過"。所以光波會好像沒有被阻礙似的抵達物體的另一端。

這個研究是Duke 大學做的。到他們的網頁可以看到更詳細的說明,
好像是 利用他們的裝置,可以做出 電磁反射率負值的現象。

這一篇 還有解釋 負反射率 的含意。

從圖上看來,他們是利用一連串的電磁控制"片" "導引"電磁波,達到這樣的目的,但是目前這個裝置來太大,等到可以做到fiber的大小時,就可以作成斗篷了。

..... 真期待...

星期五, 5月 26, 2006

Picasa - for Linux , is ready (?)

Google Lab 有有新Link :http://labs.google.com/,對,就是第一行那個。- - Picasa for Linux。

Picasa 應該可以說是一般日常使用,最佳的照片管理軟體,而且還是Free的。
但是很可惜的是,這麼久以來,都只有Windows版本。

所以 說,這個Link ,就代表,Linux 版本的Picasa 已經release 了?

但是,我按下哪個Link ,出現的卻是 "404 not found !"。

到groupe去看看,果然,也有提到,並且知道,原來 還很Nice的提供redhat, Debian 對應的rpm,和deb。 --- 但是這些Link 也是 "404"。

接著的post好像 在討論 哪裡的proxy 有 cache 到....(暈倒...)。

不過從osnews,倒是有詳細的介紹,大意是 linux 版是用 CodeWeave的Wine包裝的。
軟硬體需求蠻高的...HAL跟2.6.x 的kernel..

osnews還說,這會是iPhoto的對手。(可是沒有出OSX版的呀?)




哦? 跟著groupe的文章,真的找到有cache到proxy...
About Picasa for Linux..

Size : Picasa(9M) + Wine (12M) + Gecko engine (3M)。

說明用了wine,而且做了修改,所以和標準的不一樣。

requirement :
  • glibc > 2.3
  • kernel > 2.6.13
  • Gnome or KDE (XFCE for core function only)
  • HAL for camera auto-detection.
喔,FAQ中有寫,
原來 Linux 版目前只有在US內release (所以proxy 是US境內的proxy ?)。
對Wine的修改 都有feedback 給Wine developer,但是Picasa 主程式依然是close source的...

星期四, 5月 25, 2006

Linux Driver Developement Kit -- free

Linux Kernel monky log 的新聞..

作為一個Linux driver developer,你是否曾經被其他OS的developement 取笑,說Linux 沒有像樣的driver developement kit和豐富的開發文件?

當你看到其他OS的driver developer有36 片CD裝的開發文件,reference sourcecode時,你是否覺得 自己孤立無援呢?

藉由這次FeedomHEC conference,我(Linux monkey log 的作者)正式公佈,史上第一版的 Linux Device Driver Kit 要現身了。

Linux Device Driver Kit 內涵device driver developer 開發driver時所需要的資料,包括 O'Reilly "Linux Device Driver, 3rd ed" 的電子版。還有 預先安排好,讓你能輕鬆查閱的in-kernel docbook文件。CD中甚至還含有一份Linux Kernel Source Code,可以利用他來 build driver module。

It can be FREE download "here".

所有參加FreedomHEC的人都可以拿到這一片CD,可以放在桌上,讓其他人嫉妒。

將來有些東西,我想要加在這片CD上..
  • 將所有文章index,可以方便使用者搜尋。
    用 jsFind似乎不錯,因為時間的關係,沒能趕上這次CD release的時間。
  • 讓html 網頁漂亮些。
    如果有人願意邦我加上一些CSS語法,讓CD內的網頁版面更漂亮,我將非常感激。
  • 加入更多的文件。
    因為CD中還有很多空間,或許會將kernelnewbie Wiki網站的snapshot放進去。如果你認為有哪些文章也很適合放入,請告訴我,謝謝。
當然,這片CD 是以GPL v2 發行的,而且允許免費複製,CDROM中還含有一張CD的封皮 圖案,讓你印出來 貼在CD上。



以上是大略的翻譯,因為這樣,所以我就沒把download link直接寫進來了,可以到原網頁去看。
CD照片下有個藍色的"here" 就是了。


聽起來不錯,雖然O'Reilly 的LDD中文版,我買過兩次(方別是1版和2版,內容還真的不一樣)。
但是 這應該是不錯的東西吧。

去download 試試看吧。 :)

星期三, 5月 24, 2006

主角是Zaurus的小說喔...

作家兼網管人員 : Kevine Milne 在2004年寫一本可以free download的pdf 電子書,內容敘述一個hacker 開發了一個超強的network peneration tool,"Z4CK",一個在Zaurus上運作的程式。

今年,他又寫了另一本,這次的這一本"Digital Force"是"Z4CK"的續集。(both are available for $ or free download).

Milne 說,他是為了回應眾多讀者的回應才寫這本續集的。"Z4CK"這本小說在 Linux, PDA和security 社群中頗受好評。

續集的內容如下...
Duncan 必須要作個決定,是幫British政府組織工作,或是為了他的侵入行為而坐牢。

Digital Force 接續了Z4CK以後的事情,描述Duncan 在為Cyber-Secur 工作的故事,從遇見他最大對手:Fourth Reich的hacker組織,到開創Sec-Net 網路 來延續被毀滅的internet。

和Z4CK一樣,Digital Force 中運用的都是真實世界的工具和技術,像用 nmap,Nessus 和Hydra 作 port scanning,弱點查核和暴力攻擊。但是他的寫法將技術部份是當得包裝起來,讓技術或是非技術人員 都能享受 其中的故事。

這本小說 是用opensource 的軟體寫的,而且大部分都是在上班的途中,用Zaurus SL5500來寫...
.Digital Force共計255頁,可以購買印刷版或是 download pdf ...




以上是Linuxdevice的一篇報導,我只是翻譯而已,所以download 的link就沒寫出來了,請到Linuxdevice去download。

作者的網站是 http://www.z4ck.org/ 。

很奇怪的是,如果從作者網站去找,雖然他有說明是free download,但是卻沒有link ....(或是我太笨,找不到?)。
Digital-Force是已經download下來了,但是Z4CK還是找不到...


他上班通勤時間是要多少呀? 人家上班時間是 讀小說,他是寫小說,也真有趣。

這大概要是英語系國家才有辦法吧,要是用Zaurus在通勤時間來寫中文小說,大概要每天 坐到高雄,才有辦法寫出來吧...

星期二, 5月 23, 2006

風之影



因為太多人推薦,推薦文也不錯,題材好像也很吸引人,所以,在還沒正式出版前,我就到 各大書局去找了(我以為網路上 有消息,市面上 就會有賣了)。
結果當然是白跑好幾回(家)。---最後還是在行當天才買到,而且書局還把他放在最明顯的的地方。

書的確很好看,也像德國總理(?)說得一樣,一旦看了就放不下來,所以我不眠不休的看了24 hr,把書看完。雖然我在看書背的說明時,大概就猜到 燒書的人是誰(很簡單呀,還有甚麼原因會要將某個作者所有的書全部燒掉呢?除了宗教和統治的因素外)。

嗯,書好不好看呢?看的時候真的很好看,劇情會一直讓人想繼續看下去,但是看到那段敘述所有經過的書信時,感覺好像被騙了一樣。

我會這樣說,我想,要是有看過一些市面上大量氾濫的愛情小說的人(去租書店有一大堆),可能就會瞭解。
這樣的劇情,有點太 普通了..


我覺得,應該要再多描述一下那本"風之影"的內容,我本來想的是,會是一本書中書。讓書中的主角陷入和作品中"風之影"類似的遭遇。對比 讀者正在讀取 "風之影"這本書。看起來就像recursive一樣。-----我本來是這樣想的。

雖然沒有達到我想像那樣,有點失望。但是,也是一部很好看的小說了,比起"達文西密碼","哈利波特"這一些篇來說,"風之影"還好看得多了。

紀錄一下... 拉麵道的這種口味..



本來以為 很好吃,結果...
不合口味,味道有點太淡,嗯,就像 普通的拉麵道一樣,只是 麵 換了。
.....
紀錄一下,以後別再買了。

g++ and exit..

今天 碰到的奇怪現象...

因為vendor 提供的SDK 有些code 沒有release,只能link archive (.a)。
還是C++ object.
有些 C module使用到這些未release source code的 object。

因為這些C++ object 只有.h file,也就是說,只有declaration,所以我就沒用他。
用 那個將他包裝起來的 C module。

結果... 在link 的時候,出現一大堆undefined reference to XXXX 的error,

我只好縮減source code,看看是、哪裡出問題,結果.... 剩下 exit(0) 的位置:
{
......
{
.....
if(type==DETECT_AUDIO){
....
exit(0);
}
......
}
是ok的。
但是將exit 從if { } 拿出來...
{
.....
{
......
if(type==..){
......
}

exit(0);
}
...
這樣就有Error,,..

真是沒默默名奇妙呀....


紀錄一下,toolchain是 arm-elf-gcc (compile) arm-elf-g++(linker) , 2.95.3 版本

星期一, 5月 22, 2006

Vista screenshot..

Vista 的screenshot 又出來了,

新的IE 7+ ..
視窗的邊角 變圓了..
視窗的邊框 變透明了..
Media Player 的檔案管理介面 看起來很像iTune ..
喔,有Gadgt (或說是Wedgt) ..
Taskbar 像以前的enlightment一樣,有縮小的windows..
內建的Outlook Express改成Windows Mail,但是layout 好像沒變..

The most common password ..

Gea-Suan Lin's Blog 看到的..
原來,最常被用來當password 的字是 "password " ,
原來大家都是有志一同,

好吧,既然被公佈出來了,還是 改一改好了...
就改成 ...... mypassword

:)

星期六, 5月 20, 2006

Sony Ericsson K500i theme upload step

用紅外線 傳送
  1. 手機 -- 進階 -- 開啟紅外線
  2. 把手機 靠近 pc 的ir
  3. 等一下... pc 會出現 有k500i 在附近。 桌面上 也會出現一個 "無線連接" 的捷徑。
  4. 到網路上下載 主題,副檔名是 thm。
  5. 把 *.thm 拉到 "無限連接" 捷徑。
  6. 手機 出現 prompt,問 要不要 download。回答"是"。
  7. 開始download。
  8. download完成,手機問 要不要直接用這一個thm。回答yes後,就可以用囉。
希望 java ap 也是一樣的download法...,

有趣的解法 - rotating a weather map

Jserv 的blog看到的, 一篇說明 旋轉 圖片 的作法。
原文是 DDJ 的文章:http://www.ddj.com/article/printableArticle.jhtml?articleID=184410967

問題是 跟roud-off error 有關的。
當作 影像旋轉時,會遇到一個問題,一個pixel,一個pixel 的計算,轉動P 後的新位置。
但是因為計算轉動後的位置,不一定會是整數,所以就要作四捨五入。
這樣就會造成,有些pixel 旋轉,四捨五入後,mapping 到同一個新的pixel。
同樣的,新的 影像,有些pixel 就會沒有被mapping到,而沒有資料。
有些麻煩的方法:例如...一一尋找那些沒資料的pixel,取他附近的pixel 作平均。
但是這樣很麻煩。

文章提出一個解決的方法:

從 新圖的pixel 反算回來,也就是說,從新圖(也就是旋轉後的圖)的每一個pixel,
計算旋轉 -P 後的位置(四捨五入)。這樣就會mapping到元圖的一個pixel,
用這個pixel的值 作為新圖 pixel 的值。

這樣就OK啦。因為每個 pixel 都會找到-P 後的位置。

Oh, Yeh , install success!

安裝完後,安裝buffalo無限網卡,竟然driver不能用,只好 手動,到系統driver的地方安裝。
選 重新安裝,然後選 磁碟片,然後 指定到 baffulo 的driver。

然後就是 download
  1. 酷音。
  2. firefox,firefox extension
  3. java
  4. google toolbar

星期五, 5月 19, 2006

IBM 570 安裝筆記

  1. 先開機 : 嗯,F1 進入BIOS。設定開機順序。
  2. 換hd : 螺絲少一個..Q___Q.
  3. 放入底座,開機 : 嗶--------。
  4. 重新,好好放上底座 : OK。
  5. 用附的6.0 開機 : 按TAB進入文字選單。手動安裝 --- CD ROM 嘟,嘟....好像停掉....Q___Q.
  6. 換6.0 進入手動安裝...刪除 原partition,create partition 9590M,,,m format....... wait......
  7. 10:41 format 完畢,開始複製,安裝...11.09 複製完,叫我把CD拿出來,重新開機。
  8. -- 他說還要 39 min.... 10 min後,停下來,要我輸入時區。
  9. 11:46 -- 登錄元件,還有18 min.
  10. 12:09 完成

porting WINE to OSX ?

也是個消息:

MACNN 說 Apple計畫在OSX中實做Windows API,讓OSX 能夠執行windows 程式,不需要reboot to bootcamp,或是用virtulization 。

Robert Cringely 還說,Apple 要把OSX 的kenrel 由 microkernel 換到比較快的 kernel (所以前一陣子 OSX benchmark 大敗是因為microkernel的原因?)。

接下來講的是...

Apple 實做 Windows API,希望能讓所有Windows XP 的程式都能夠值接在OSX 下執行,為了不讓效能差異太大,所以要換一個叫快的kenrel。 而bootcamp 則是為了Windows Vista準備的,這樣 當Vista出現後,OSX 的用戶可以用Boot Camp安裝Vista,而用OSX 執行Windows XP的program....


如果真是這樣的話,Apple也真的太..太厲害了.....

如果OSX 真的能執行所有 Windows XP的程式,可能....很多人都不會upgrade 到Vista了....至少在Vista SP2 出現前不會..

Workrecord - fileplayer -

播放檔案的方法和function有很多個,以下是其中一種:
play_file(struct prog_info,  struct option)
這個function會由prog_info中取得file path/name,detect,then play --

但是最終還是呼叫 main_XXX 來播放,所以key-reation 也是一樣還是在 processkey( )中。



IR remote 的處理:

有幾個queue 作 interface : parameter_queue, cmd_queue。
cmd_queue 和 parameter_queue 成一組,但是不是所有cmd 都對應的param。
所以 coding 上 (不好的設計),會依照cmd 的內容來決定需不需要向parameter_queue 取資料。
這樣設計不好的原因是: 要是有code中有一段,因為不需要,而忘記向parameter_queue 取出資料,這樣 cmd-parameter pair 不就 不正確了?
.

星期四, 5月 18, 2006

Rotating Polygons

這個實驗以前老師也說過,不過那時著重的好像是筒子的側面,會出現很多層,而且隨著轉速不同,曾數也會改變。
這個網站 是上視圖,想不到,也很有趣:



唉,隔了這麼久,這個現象叫做甚麼也忘了,,,
不過流體力學還真是有趣呀。

News : a projector on the Air ?


DailyTech 今天的新聞


今天,一家叫IO2的公司發佈一項新產品,能將平面影像投影到空中,看起來物品就像是浮在空中一樣。

IO2發佈的機種,可以用來投影出30"的影像。

這個產品使用usb port和pc 相連,解析度只有800x600。contrast ratio 可以達到2000:1。

這個技術是利用被投影的方式,將光線投射到流動的熱空氣(屏)上,所以陽光照射和環境的燈光都會影響到成像的品質。

這個產品還提供觸控的功能,讓使用者能直接觸摸影像,經由usb 和host溝通。這個東西很大,重約35磅,但是可以裝在桌子或是牆上,產生 就像是"關鍵報告"電影中一樣的效果。

這個機種(M2)是IO2發佈的第二個機種,第一個是M1,M1比較小,但是比較吵(就是那個用離子化空氣作投射屏幕的東西?)。


感想: ...應該....會很熱吧....如果在地下室用的話....

喔,原廠的demo 影片倒是蠻炫的.... http://www.io2technology.com/ -- 左下角那兩個...

readdir - read directory - and ..IsDirectory ?

上一次使用的ftw也是read directory,但是uClibc 沒有build進去(應該說uClibc有,但是toolchain SDK沒有包含進去)。
所以要用另一個:

struct dirent *readdir(DIR *dir)

argument : dir 是 由 opendir( )取得的目錄結構。
和open( )一樣,opendir( )開啟目錄後,會mantain一個目錄結構,讓你每次readdir( )讀取一筆目錄紀錄。

所以以下function會印出 目錄中所有檔案:

#include <sys/type.h>
#include <dirent.h>
#include <unistd.h>

main()
{
DIR *dir;
struct dirent *ptr;


dir = opendir("/etc/init.d");
while( (ptr=readdir(dir))!=NULL)
printf("%s\n",ptr->d_name);

closedir(dir);
}
其中 struct dirent 的結構:

struct dirent
{
ino_t d_ino;
off_t d_off;
unsigned short int d_reclen;
unsigned cahr d_type;
chard d_name[256];
};

d_ino : entry inode
d_off : 目前讀取的offset
d_reclen : d_name[] 的長度,不含ending NULL
d_type : d_name 所指檔案的type
d_name : 檔名 (所以檔名最大是256?)
d_type的意義宣告在dirent.h
enum{
DT_UNKNOWN,
DT_FIFO,
DT_CHR,
DT_BLK,
DT_REG,
DT_LNK,
DT_SOCK,
DT_WHT
};
從define 中看到,好像不是bit field。使用時最好先測試一下 library 有沒有support。
如果沒有,就只有用 stat
 int stat(const char *file_name, struct stat *buf)
file_name 是檔名
buf 是傳回值,會將該檔案的各項資料放在struct stat的 buf 變數中 :(定義在 sys/stat.h)
struct stat
{
dev_t st_dev; //檔案的 設備編號
ino_t st_ino; // 檔案的inode
mode_t st_mode; // 檔案類型和權限
nlink_t st_nlink; // hard link 數
uid_t st_uid; // owner id
gid_t st_gid; // group id
dev_t st_rdev; // ? 也是設備編號?
.... 不寫了,,,,好多
};
其中 st_mode 可以用來判斷 是哪種檔案(也就是上面 d_type的 功用)。
為了方便,POSIX另外有定義幾個MACRO:
S_ISLNK(st_mode) : 是symbolic link ?
S_ISREG(st_mode) 一般檔案? (regulat file)
S_ISDIR(st_mode) 目錄?
S_ISCHR(st_mode) 字元檔 ?
S_ISBLK(st_mode) FIFO ?
S_ISSOCK(st_mode) socket ?

所以...要做到辨別directory 的功能,就要readdir和stat合在一起...
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <unistd.h>

main(int argc,char *argv[])
{
DIR *dir;
struct dirent *ptr;

dir=opendir(argv[1]);

while((ptr=readdir(dir))!=NULL){
struct stat buf;
char name[256];

printf("d_name: %s %x",ptr->d_name,ptr->l;d_type);
sprintf(name,"%s/%s",argv[1],ptr->d_name);
stat(name,&buf);
if(S_ISDIR(buf.st_mode))
printf("---directory\n");
else
printf("\n");
}



closedir(dir);
}

另一個,用opendir( )作目錄判斷,比較容易寫..(SDK的library 也是用這樣的方法..)
#include <sys/types.h>
#include <dirent.h>
#include <unistd.h>

main(int argc,char *argv[])
{
DIR *dir,*path;
struct dirent *ptr;

dir = opendir(argv[1]);

while((ptr=readdir(dir))!=NULL){
char pathname[100];

sprintf(pathname,"%s/%s",argv[1],ptr->d_name);
printf("%s",pathname);
if(opendir(pathname)==NULL)
printf("\n");
else
printf(" -- directory\n");
}

closedir(dir);
}
.

星期三, 5月 17, 2006

Sun Open Java to Linux

今天的幾個新聞.. Sun 宣佈 Java 將會有新的License ,讓一些Linux distribution 能夠將JDK, JVM 包含在 Install Package 中。

http://www.eetimes.com/news/semi/showArticle.jhtml?articleID=187203700

http://www.internetnews.com/dev-news/article.php/3606656

這是因為ruby 的關係嗎?從"Beyond java" 這本書的說法,java 在front-end 上似乎已經走到末路...。
Sun 也真奇怪,當初大家要求他開放java,他都不願意,現在 威脅越來月大,才開放(開放 boundle 在 distruction中,而不是standard)。


另外這一篇(http://www.itweek.co.uk/vnunet/news/2156209/sun-support-ubuntu-linux)說,Sun 去年出的T1 Server要支援 ubuntu server。
這是代表 OpenSolaris 的失敗?

星期二, 5月 16, 2006

GPLed USB sniffer

緣由:
使用via 的embedded x86 board,配上QCOM的usb-wifi dongle,結果有時候會有通訊中斷的情況...
原因有很多,有可能是MB,wifi-usb 或是 power的問題。

hardware上的測試,可以用eye-diagram 量測 host和usb 端的線路,
但是還是會發生,就下就需要由host-usb間的溝通狀態來判定。

但是QCOM使用winbond的chip,winbond的chip release 資訊最少。
所以,不要想會有source code了...也無法log error rate。

這樣的話,就無法量化 host-usb間的通訊品質。

所以說,盡量不要使用close source 的產品呀,
.TS就想,用sniffer由OS段來看usb pocket狀態。

Google了一下。是有很多device,有hardware ($960),也有software (4\$49~ $69)。

但是還是這個最好,gpl 的USB sniffer : http://benoit.papillault.free.fr/usbsnoop/index.php.en
網站上還有很多hardware debug用的software喔,都是gpl的。

要是這次問題解決得的話,以後不要再用這種 資訊都不release的device了....找自己的麻煩...

迪泰威科技 - DTV生產研發設備 解決方案

公司主要代理數位電視之研發、生產及品管所需相關測試設備,並可整合

系統設備,提供客戶下列解決方案

For Set-Top Box/LCD/DTV Development & Manufacturing

DTV Tset and Measurement Solution for DVB / ATSC and OpenCable
數位電視 之完全解決方案


Portable Test Head-end for DVB-MHP , MHEG5, ATSC-ACAP, OCAP
互動式數位電視 之專業型解決方案


DVB-MHP Test-Streamer & Analyzer for Data Broadcasting
歐規- MHP 互動式數位電視 之及時播放及分析解決方案


DTV Total solution for Digital TV Set-Top Box manufacture
數位電視 機上盒 生產製造之完全解決方案


Transport Stream Capture in One Box Solution ( DVB-S-C-T-H/ ATSC/ ANNEX B & C )
單機 擷取/紀錄/播放 數位電視 匯流 訊號之解決方案
DAB/DMB 行動廣播系統之完全解決方案 (T-DMB , S-DMB , DAB/DMB )

DVB-H 行動廣播系統之完全解決方案

日規 ISDB-T / C , ISDB-S : BS / CS 之完全解決方案

High-Definition Multimedia Interface - HDMI 高畫質多媒體介面測試解決方案
Solution for Video / Audio / RF Test and Measurement System
..紀錄一下..

星期一, 5月 15, 2006

最近流行的事 : bookmark"師"

有訂閱大量RSS的人大概都會知道,最近流行話題的主角,輪到"邦"字輩的二哥上場。

這個故事也挺有趣。

原來 邦二哥 模仿一些有名的bookmark網站,新 增加的一個服務。
但是 網路上 同質 性的服務 已經 很多,要怎麼 凸顯 自己的不同 呢?

邦二哥 就請了一些 原來 就很有名氣 的blogger ,幫忙作些bookmark。
並且 給一個 頭銜 "bookmark 師"。

其實 網路上 link來,link去 本來就是很平常的事,比起 "抄襲","轉貼不說明出處 " 這兩件事。
加個link 真的是 小小小...事一樁。

但是,還是有事發生...
先是有位blogger 說,他的blogger事給自己看的,希望別人把的link拿掉。(即是是google 的search link也不行)。
然後,就是有些人不喜歡自己的文章被人bookmark 了。開始發言。

"bookmark師" 們 當然是很疑惑,,怎麼世界變得這麼怪?

當初就是 大家連來連去,才造成他們有這麼大的名氣,才能到"邦二哥"這兒 當"bookmark師"的,怎麼 現在既然有 不喜歡被 bookmark的人?

於是他們就客客氣氣的說明一下,向那些不高興被bookmark的blogger道歉,並且說明 他們在著作權上,可是站得住腳的喔。
但是呢?他們還是很尊重原作者的,所以下次在bookmark的時候,會發個通知。

並且,有個貼紙,提供給blogger們,如果不喜歡被"邦二哥" bookmark的,就加上這個貼紙吧。

聽起來很不錯,故事就要有個happy ending。
眼看著blogger和bookmark師 就要從此過著快快樂樂的生活。

---------------結果--------

故事當然沒有完結(否則怎呢成為話題呢)。

大概是"邦二哥"的自動通知程式有問題吧。
他把千篇一律的"通知訊息" 貼到所有被bookmark的文章的comment中。
並且,這個千篇一律的通知訊息中,還有一個到"邦二哥" 網站的link。

這下可糟了。

因為這樣的comment..
  • 和原文沒有關係
  • 有推銷的link
乍看之下,跟spam沒兩樣...
有些不認識"邦二哥"的blogger,直接就看作是個spam comment。

這下可是掀起 千波巨浪...原來被bookmark也不介意的blogger,也開始對這個長得像spam的comment 不高興起來了...... 被bookmark 就 bookmark ,幹嘛還來留個spam,增加link rank !

所以,,,這個話題 又繼續下去啦。
而且,變得更混亂了...
  • bookmark師 沒考慮到通知訊息的內容才是造成反感的原因,一直想...不通知也不行,通知也不行,真是動輒得咎。(有個人還舉了個騎驢的例子喔)。
  • 反感的blogger有兩類,1是不喜歡被book的,一是不喜歡spam 通知的。
事情,就這樣繼續下去.... 喔,應該說是"如火如荼"的展開,....



還有一個疑問:"邦二哥"大家應該都認識,那...."邦一哥"是誰呢?

提示...前一陣子的話題...

ftw - walk through the directory recursively

ftw 這個function 很有趣,他的prototype是:
 int ftw(const char *dir, int (*fn)(const char *file, const struct stat *sb, int flag), int depth)
有趣的是 一個function就可以走訪整個目錄。那對於每一個目錄中的item 要怎麼處置呢?
用call back function :
 int (*fn)(const char *file, const struct stat *sb, int flag)
walk through每一個item,都會呼叫這個function一次。
同時會傳入一些argument:
  • const char *file : item name (目錄or file name)
  • const struct stat *sb : item (目錄 or file)的stat varieble
  • int flag : item 的種類
    FTW_F : 檔案
    FTW_D : 目錄
    FTW_DNR : 不可讀取的目錄,(將不會進入)
    FTW_SL : 符號連結
    FTW_NS : 沒辦法取得stat 結構
callback function 要return 0或1。
當callback return 1時,ftw會停止walk through,返回。
(都搜尋完了也會返回)。

呼叫ftw時,第三個參數 depth是"容許使用的file handle"。
因為walk through的recursive動作需要動態alloca handle,這個argument限制alloc的最大handle數。

#include <sys/stat.h>
#include <unistd.h>
#include <ftw.h>

int getfile(const char *file, const struct stat *sb, int flag)
{
static i=0;
printf("[%d] %s",i++,file);
if ( flag == FTW_D)
printf("-- directory\n");
else
printf("\n");

return 0;
}


main()
{
ftw("/home/checko", getfile,500):
}
.

星期日, 5月 14, 2006

吃Pizza

雖然昨天已經和姊姊去吃客家菜了,今天還是要吃外面...
還是吃Pizza好了..

這次就用新活動:


點的是...


還有...




然後看到這個,也點一下...



今天因為人很多,所以要40 min。

總計700多..
結果: 海鮮不好吃,沒什麼味道,蛋塔的皮竟然是pizza的皮,所以,也不好吃。

鐵板牛柳倒是不錯。

星期五, 5月 12, 2006

UL 2054 and UL 1642

UL2054 和UL1642 都是有關電池的UL規範。
UL2054是一次性的電池(不可充電)
UL1642是可重複充電的電池。

上完後的感想..

一顆石頭 應該 可以過這兩個規範......

Use gdbserver and gdb - remote debugging

  • target端要build gdbserver,host端要有cross version 的gdb,我用arm-elf-gdb 和uClinux附的gdb server。
  • build program時,compile option要加上 -g 選項,加入debug information。
  • build時,要build出兩個file : target execution和for debug。
    target debug的可以strip symbol,也可以不strip。
    for debug的不能strip。也不能用elf2flt轉為flat format。要維持elf format。
  • target 上run gdbserver,同時指定 host端的ip: port number,還有要load的程式:
    #gdbserver 10.3.5.123:2345 testprog
    process testprog created; pid = 130
    Listening on port 2345

    如果testprog 有argument ,直接寫在test prog後面,例如:

    #gdbserver 10.3.5.123:2345 testprog -o -v 123
  • host 端啟動arm-elf-gdb,並且load 測試程式的symbol (.gdb)
    arm-elf-gdb testprog.gdb
    (gdb)
  • 在host端,指定target作remote debugging..
    (gdb) target remote 10.3.5.123:2345
    Remote debugging using 10.3.5.123:2345
    0x93880050 in _start( )
  • OK,雙方連線完成,可以開始由arm-elf-gdb 控制target的動作了(作debug)。

因為gdb的source listing是以"行數"為參數,所以最好再用vi 開啟debug的source code,同時用
:set nu
將line numner on,這樣就可以看到source code的line number了。

這時候,用vi 瀏覽到要設定break-point的地方,看看行數是多少,再在gdb 下b linenumber 命令設定段點:
 (gdb) b 1302    --- 在1302 行 設斷點


接著用 c (continue) command 繼續執行
(gdb) c

到達break point時,他會自動停下來。
用step 執行一行指令,
用next 執行到下一行。
用clear 清除breakpoint。
用list 列出目前code的source code。
用q結束。

另外,如果有X的化,可以用gdb的圖形介面 - ddd。
用ddd作remote , cross-platform debug時,要指定debugger
#ddd --debugger arm-elf-gdb  testprogram.gdb &
會開啟ddd gui。畫面下方式debug command ,上面是source list。
一樣,在debug command下target command
(gdb)targe remote 10.3.123:2345

星期四, 5月 11, 2006

Manipulate Image with Command Line Tools

紀錄一下,一個GPL的command line的影像處理軟體 : ImageMagick
支援的平台有Linux, Windows 和OSX。

在Linux.com 這一篇,有示範介紹。



裝完後,會有convert 這個progam:

將圖片縮成80x60, icon的大小:
convert -sample 80x60 big.jpg thumb.jpg

也可以用percentage:
convert  -sample 30%x30% big.jpg thumb.jpb


Rotate
convert -rotate 90 image.tiff output.tiff

flip
convert -flip image.tiff output.tiff


變更格式
convert one.jpg newone.png


要是要大量處理的化,用mogrify。--- 略 --

其他功能例如:

加入 炭筆 效果
convert -charcoal 1 me.png coal.png


把很多image合併成一個pdf 檔(一頁一張圖)
convert *.jpg   allinone.pdf

反向 -- 將pdf檔中的image 一張一張拿出來
convert  allinone.pdf  image_%04.tiff


在影像加上文字
convert -font helvetica -fill yellow -pointsize 25 -draw 'text 100,250"ShimanDame" ' image.png  imagewithtext.png 


加邊框
convert -bordercolor blue -border 5x5 pic001.png border001.png





這個在寫script 時有用..

又是怎麼了? 路上都沒車..

最近幾天,火車站前都沒車,倒是有4, 5個警察,也沒在指揮交通。
也沒在check 車牌。

昨天看報才知道,原來偉大的縣長 繼上次 "路邊停車收費" 政策後。
食髓知味,又推行一個 不准路邊停車 的計畫(活動?)。
所以路邊多了很多"站崗"的警察,取締停車。

這樣是很好啦。 路邊都沒車,很清爽,大馬路上也都是警察,比較安心。

自由時報還寫 因為 縣長規定7:00就要開始站崗,但是實際 探查後,警察8:00才到,
所以已經有兩位警察被處分了。 真可憐。

聽說這個"活動"會持續3個月。

嗯,真不錯。

希望這個活動過後,這樣好的情況可以繼續維持,
以後即使警察沒在站崗,汽車駕駛們也已經習慣不隨便停車。
讓 這幾個月來,警察同仁 的辛苦有代價,
讓縣長的 突發奇想 有實際成效。

嗯.............. -___-|||

即使 沒有,至少也沒甚麼後遺症吧,

像上次的大肆規劃路邊停車格,交名間 業者管理,造成現在 停車區附近 管理業者 騎著 scotter 逆向 來回,造成危險,還有 一些亂開單,多收費的情況。

這次 這個活動過後,應該不會留下任何東西才對。

所以,至少沒有甚麼損失...

星期三, 5月 10, 2006

back to good(?) old odd/even days..

最近開始有一些報導說2.6 的Kenrel bug漸漸多了起來,而且沒有人去修正。
終於 Linus 也做出回應了,這一篇(http://news.zdnet.co.uk/software/linuxunix/0,39020390,39268058,00.htm)就是他接受Linux.com訪問時,認為 是冷靜一下的時候了。2.6.18 的核心將停止接受new features。讓大家專注於stablinze,, debug。



這不就像以前的even/odd version 開發模式嗎?
odd version 加入new feature。要stablinze時,進入odd version,交給另一個負責人。
然後再進入下一個odd version,繼續增加新功能。

但是從 2.6 開始,因為雙版本的開發模式,導致stable 版本release的時間過長,所以這樣的模式被 丟棄了。直接採用 單一版本的開發方式。

所以才會造成這樣的現象吧?

其實.. new feature...debug ... stablize ..這樣的動作是一個穩定版本的必經過程。
和版本管理應該沒有關係。

像現在的單一版本,舊的版本也是有mantain的人(例如 2.6.12 )。

只不過,使用者漸漸不知道 "穩定版本的最新版" 到底是要用那一版。

星期二, 5月 09, 2006

Bot - to test Search engine's behave

在 這裡(http://walkingice.twbbs.org/blog/?p=178) 看到的。(他說明的很好了)。

只是我覺得這個很有趣,作一堆link網頁,配合偵測的機制,測試各search-engine在這個"link堆"的爬行動作。並且log 下來。

文章裡就有各種search engine的爬行 軌跡喔。

很有趣。好像作個餌 來釣魚一樣。

Linux : Still the Fastest

真的有人對OSX, XP, Linux作benchmarking。
這一篇(http://www.p2pnet.net/story/8723) 同樣的(http://sekhon.berkeley.edu/macosx/intel.html)就是,hardware都是MacBookpro (廢話,還有哪一個x86平台可以run OSX ?)。他同時也拿P4和Opteron run Linux一起比。

benchmarking的軟體是他自己寫的,找基因pair 的軟體(? 我猜的)。code, script都可以download。

  • compiler都是 gcc -4。
  • 都是用command line執行,沒有graphic 輸出。
  • run benchmark時,process的CPU loading都是99%以上。沒有其他的process搶資源。

結果:


很悲慘的,OSX竟然差一大截,連XP都比不上...連linux on P4 都比他快。

Linux on Opteron 是最快的。


第二個benchmark 就還好了,OSX贏了Linux on P4,但是還是輸其他的....(圖就不貼了,請到原site去看)。


這下子.......

Cannot find SSID : Solved (?)

發生有時候Wifi usb dongle 會出現 找不到SSID 的情況。
廠商的test report :

用tektroincs的 TDS7104,裡面有"USB Signal Quality Test" 測試腳本。
分別

將test instrument 串連在host -- usb dongle之間。 量up-stream signal quality。
將test instrument 接上host (usb dongle不接)。量down-stream signal quality。

利用eye-diagram,檢查出upstream 合乎規格。downstream 的rising/falling speed 不夠快。

猜測這大概是ping test不通過的原因。

廠商修改driver : 隨時偵測usb dongle回報的error message。並且加入一些保護動作。

結果:

使用新driver 測試,ping 12 hr 都沒有問題。



後來TS call 去問,他們是直接忽略dongle傳回的error message。認定一直是正常連接的。
TS說,這樣真的error累積到一定數量,會導致kernel crush!!!

Seaching PAT, PMT

先Tune到正確Freq,read stream from SPI。
Demux 會自動把 PATInfo packet解出來。
PATInfo packet 每32bit (long)為一單位。
index 0 : 不知道是甚麼(大概是PATInfo id)
index 1 ~ last : 內含pmt 的資訊:hight/low word不同.
..big endian 系統:

unsigned int Pmt;

Pmt = *(((unsignd int*)&PATInfo)+i); // 從PATInfo packet中,拿一個long word出來。

if( (Pmt >> 16) == 0){
NetworkId = Pmt & 0xFFFF; // 這個資訊沒什麼用
}else{
ProgramNumber = Pmt >> 16;
ProgramMapPid = Pmt & 0xFFFF; // 用這個Pid 來解出這個節目的stream。
}
依照PATInfo packet的size,把其中包含的Program Map資訊全部解出來。
接著,依照需要(看哪一台)。把ProgamNumer 和ProgramMapPid 合併回一個unsigned long後,交給demux 解出要的節目的stream packet。


demux出你要的節目的stream後,一樣,拿stream的PMTInfo packet出來...

unsigned int StreamPid = *(((unsigned int*)&PMTInfo + i);

StreamPid &= 0x00FFFFFF;
StreamType = StreamPid >> 16;

這個byte: StreamType 就是media 內容 (ref 13818-1 MPEG-2 System Spec)
其中
1, 2, 0x10, 0x1b, 0x80 都是video 的id。
3,4,6,0x0F,0x11,0x81 屬於Audio 的id。

將PMTInfo packet中每一個long word都解析一下,就知道這個stream內涵多少media 。

星期一, 5月 08, 2006

DATA : IR remote Code

紀錄一下這一隻遙控器的key code

SETUP : 0xE51AE608 : 0x1A
POWER : 0xBC43E608 : 0x43
Volume UP : 0xE718E608 : 0x18
Volume Down : 0xEF10E608 : 0x10
Right : 0xEE11e608 : 0x11
Left : 0xE21DE608 : 0x1D
Up : 0xEB14E608 : 0x14
Down : 0xE916E608 : 0x16
ENTER : 0xEA51E608 : 0x51
1 : 0xBD42E608 : 0x42
2 : 0xBE41E608 : 0x41
3 : 0xBF40E608 : 0x40
4 : 0xB946E608 : 0x46
5 : 0xBA45E608 : 0x45
6 : 0xBB44E608 : 0x44
7 : 0xB54AE608 : 0x4A
8 : 0xB649E608 : 0x49
9 : 0xB748E608 : 0x48
0 : 0xB24DE608 : 0x4D
.啊,懶得寫了...在define 裡有...

Working log : on merging 2 sample codes.

要把播放和tuner的sample code合在一起,這兩個原來是在不同的sample project。
final target和Makefile是在play 的project。

所以 - 先reference tuner的sample project,把需要的 .c 列入Makefile中,並且把.o 改成.c ,也列入Makefile。
make結果:找不到 那些.o 的source file
回去看一下tuner的.o file ... 真是豬頭,都沒給source,真是拜託,就是i2c tuner register 設定,要保密成這樣?。

直接把 .o 列入? 不知道可不可以,因為play 的Makefile是多target 共用,所以沒辦法為特定target列.o dependency。

只好把這些豬頭.o 檔archive起來:
arm-elf-ar rcs libpigh.a hardware/*.o tmselect/*.o nt2005usrmode/*.o
完成用ar的t option看看是不是所有.o 都有加進去。

play 的Makefile有很麻煩的加頭/加尾判定,所以沒辦法把這個豬頭library 直接加到lib variable中。

所以?
手動把這個libpigh.a copy到play project的lib folder中,這樣。
在Makefile的link option中加入 libpigh.a 就可以(這個多事的Make scripe會自動把lib和a去掉)。

make ..結果
link時error :undefined reference to `pthread_mutex_trylock`
collect2: ld return 1 exit status
這個大概是pthread的問題,在Makefile的LDFLAG加入 -lptherad .OK。


開始修改source code:include file,將需要的(ref tuner main.c file) copy 到play sample folder中。

真是倒楣 - 扣繳憑單

就要報稅了,前公司扣繳憑單卻沒寄來,我打電話去..
我的扣繳單沒收掉耶。

?這樣呀,請問你的身份正號碼是...喔,謝謝。我們以統一在2月寄出了,或是第二
批,在三月寄出。地址是XXXX。

可是我們沒收到耶。

我們這次是交給民間郵局外包的,所以沒辦法補寄喔。很抱歉。

喔?... (這樣我可以跟國稅說這個理由? 還是他就乾脆像新聞說的?丟掉水溝里?還是 對於離職員工,你根本沒寄?)

你可以帶身份證,到國稅局去,他會列出你去年度的所有收入給你。

這樣呀,謝謝。
使用外包廠商,費用降低,導致 我沒收到。要自己親自去國稅局申請,浪費我的時間。

所以,最後 倒楣的人還是我呀。

.... 我應該要問 外包廠商是誰,去向他拿的.....
真是!

remote control device 的用法

device node是/dev/ir。
先open :
fno = open("/dev/ir",O_RONLY);
讀取ir的資料:
read(fno,&ldata,sizeof(unsigned long))
ir的key 一次會有4個byte.
  • byte 0 : 公司id
  • byte 1 : custom id
  • byte 2 : code
  • byte 3: ~code 就是byte 2: code反向。
一次讀入4個byte後,如果有需要,檢查一下公司id,確認是同一家的ir。如果有需要,再檢查一下custom code,確認是不是你這家龜毛公司特製的。

然後check一下byte2+byte 3是不是0xFF,
如果是,就可以拿byte 2來動作了。

寫這個code要注意big-endian, little-endia的問題。不然,就要用char 來操作。

因為dev/ir是char device,所以read的方法可以apply一般的file read option。
也可以用select來作timeout read:
fd_set rfds;
struct timeval tv;

FD_ZERO(&rfds); // 初始化flag
FD_SET(fno,&rfds); // 設定待會要動作的file id.

tv.tv_sec=5; // time out 5 sec
tv.tv_usec=0;

ret = select(fno+1, &rfds, NULL, NULL, &amp;amp;tv); // 進行select - wait 動作,max fno 要是wait 的file id +1
if(ret) {
// 收到資料
}else{
// timeout
}

Pepper Pad : alternative to MS' origami

前一陣子MS公佈了手持式PC的計畫: origami,Linux社群也推出了一個類似
計畫 : Pepper Pad (not Paper Pad?) 。並且很快的就做出原型機了(當然很快,因為到處是這樣linux pda的社群)。

這篇文章(Mad Peguim)是Pepper Pad的review,還附很多影片,

先看最後:conclusion好了:
Battery issue :只有 2 hrs.
不能開啟ogg 和png format的檔案
Keyboard太小(但是可以外接一般size的keyboard)。
Touch Panel 有點不靈敏
remote control : 只支援一些有名的廠牌(但是有"學習"功能,所以還好)。
Synching Calbel : 因為pad和pc都是usb host,所以要有一條兩端都是host的cable。
Compatiblity : 竟然不能和linux desktop 作同步!!!!!
Product reviewed: the Pepper Pad, by Pepper computing
Compatible operating systems: Windows only! Ick!
Target market: consumers of digital video, digital photographs, and mobile web applications, and people wanting a simple point-and-click Linux experience.
Feature set: nice touchscreen, good for viewing video and photographs
Performs as claimed: yes
Fun factor: Yup
Worth the asking price: yes, if you travel a lot or need a dirt simple open source video-player. Just don't expect full notebook performance
Open music standards friendly: yes
Total Score: 9 stars out of ten
Price: about $800.00 US
回到前面,一些硬體規格:
  • PXA 270 @624MHz. w intel 2700G 2D/3D/MPEG median processor.
  • 256M RAM, 32M flash
  • 8.4" 800x600 TFT LCD with 32M video RAM
  • 20G 1.8" HD
  • 3600mAh Lithium battery
  • 802.11b, Bluetooth 1.2, IR.
  • USB 1.1 host
  • SD/MMC card slot
  • stereo phone, speaker & microphone
  • composite video out (NTSC/PAL)
  • Touch screen
  • Full splite QWERTY keypad
  • Direction pad. scroll wheel
  • 209 x 175 x20 (mm). 1.043 kg
Software部份太多,僅列出一些基本的
  • Linux Kernel version : 2.6.13 (preemptive), UBOOT
  • GTK+, Xorg R7, FreeType, Cairo, ALSA
  • XScale-optimized Mozilla Firefox 1.5, java script 1.6, XML, XSL, CSS
  • Macromedia Flash 7
所以可以看出這是以web 2.0 為目標的產品(我一廂情願的想法)。
但是 2 hour 的battery life真的是太少了。


考慮blogger, Journalist的裝置,應該要有full-size QWERTY keyboard。8 hr battey life。
802.11g, Bt.
軟體只要run firefox, ajax ready。就可以。
不需要有video processor。
這樣就很適合所有文字工作者。

當然這樣也會負擔的起一些IM。

圖形化的server status monitor 程式 : munin

在 "Howto forge" 看到的。一個用圖形顯示 Server的資料:
Disk, Exim.Mysql,Postfix,Process,System 的daemon。
這個Daemon 產生html報表,但還是要用Apache 作html server。

安裝方式也很簡單,在Debian下,只要用apt-get:
#apt-get install munin munin-node
。Debian 很方便的會create group/user munin. 產生config和/etc/init.d/munin。
裝完會自動run minun node :
#/etc/init.d/munin restart
修改config : /etc/munin/munin.conf
其實不用修改也可以,

Debian已經修改munin 產生html報表的目錄在/var/www/munin。
所以如果Apache已經安裝,啟動好了(apache的default root path是/var/www)。

用瀏覽器看 http://(server's ip address or nam)/minun,就可以看到各類報表。
但是因為剛剛run,data還沒有很多,所以只看到一個空的圖表,等一陣子(couple minintes),就可以看到一點點的資料。

星期日, 5月 07, 2006

Google Caneldar 真厲害,果然有很多行事曆可以訂閱了

前一陣子一直搜尋不到public的有趣行事曆。
今天在 http://blog.alexw.net/archives/2006/05/03/469.php 看到,有戲院 可以訂閱。
所以再去找一下...keyword : 戲院。....果然沒有。

只好用taiwan n搜尋一下...喔。真的很多。所以就定了一堆。這樣,看起來會很有趣吧。

以下列出幾個:

* 中華職棒統一獅例行賽程表
* 電影
* 2006年政府行政機關辦公日曆表
* 維基百科
* BS 棒球、籃球
* 兄弟象職棒十七年例行賽
* 電影上映資訊
* 賽車重播-衛視體育台
* 賽車節目表-衛視體育台
* Ruby台灣社群
* BS Music
* TechNet
* Taipei Theatre
* TWRUG
* 音樂演出日曆(Music Performance Calendar of Taiwan)

看來,有趣的行事曆應該會越來越多..

如果有人不知道 Calendar 搜尋的方法:

在 左邊"Other Calendars"的"+"號按一下,就會出現"Add Other Calendar"。
Search Public Calendars的Search Criteria 中填入 "taiwan" 就可以。
找到有趣的按下"Add Calendar" 就可以啦。

比較重要的是作一個可以讓人搜尋,訂閱的Calendar:
..

星期五, 5月 05, 2006

婦產科資訊 : 李亦男婦產科

Iris在那裡坐月子,但是google 不到,所以寫一下..

據說是在2F,有關資訊如下 (很零碎...)
  • 你在民生東路跟中山北路的警察局就可以看到對面有招牌,
  • 在馬階醫院附近,雙連站下車
  • 再2F
    馬偕對面
    1F是婦產科
    2F是做月子中心
    晚上要從旁邊的門上去
    就是李亦男婦產科
  • 在中山北路上
    很好找
其他附帶的資訊有...就是資經當初作月子的那一家,和"在坐月子中心時,除了團圓飯,一律不准外食"......




感謝J和R資料提供。

About Stanby Mode :

消費產品,常常需要進入Standby Mode,這種Mode,幾乎所有東西都關掉了,只剩下IR 還正常動作,現在mcu都大量使用DRAM,refresh DRAM會耗記憶體,所以也要關掉。---- 那這樣要怎麼作呢? 像linux這樣,將kernel 解開到DRAM中執行的....一旦將DRAM關掉,自己也完蛋,起不來了(更不用說那個"polling IR button"的小程式)。

這顆chip提供的作法是:

寫一個像bootloader一樣的小code,內容是:
  • 關掉所有週邊(IO,DRAM,uart.. timer...)。
  • 降低工作時脈。
  • poll button and IR (就這兩個device沒關)。
  • 一旦有動作,作reset 的動作。
把這個code build好,
再寫一個module,當user ap 用IOCTL 控制,進入standby時,他就把剛剛那個小code 的image copy 到mcu 內部SRAM。(先關閉所有中斷)。然後將控制權交給那個小code。

這個module 就是"standby - module"。

要build這個module也蠻有趣的,他寫了一個tool 把bin內容轉成 .h 檔 (也就是矩陣宣告)。
讓module code直接就可以將矩陣資料"填入" SRAM中..

為甚麼要這樣作? 不是用 loader script 就可以了?
是不是因為build module 沒有用到loader ? (只有用到linker)。

星期三, 5月 03, 2006

vim plugin - for programmer

這一篇 有比較清楚的說明,將vim 加上 programmer 需要的功能: 像
自動跳到 function 宣告處,或是?

先記一下,上次裝失敗..

這一篇也有說


原來,taglist 需要 ctags 這個程式,ctags 又叫 exuberant ctags 是一個將source code中 c function, variable 擷取出來的程式。同時會產生一個 symbol - line location 對應表。

這一篇 寫ctag 寫的更清楚..
在 這一篇 是簡單的debian 安裝, vi ctag使用 :
  • apt-get install exuberant-ctags
  • 到source code的目錄下,對要查的source "們" 產生tags 檔案
     ctags *.c
    執行這個command後,在目錄下就會有tags 這個file,裡面紀錄著所有剛剛scan過的.c 檔的symbol 和location (file : linenumber)。
  • 進入vi,現在,要跳到 "main" function 所在位置,就輸入
    :tag main
在看程式的時候:
  • Ctrl ] : 跳到游標所指function的implement 位置 ,注意游標要在function的第一個字。
  • Ctrl t : 返回到剛剛的位置。
啊,光是ctags已經夠好用了.. taglist 下次再試好了...

linux application : multi-head kiosk

LinuxDevice的新聞,DiscoverStation 4.0,是一個一般pc 加上很多display card,的hardware,上面run linux,可以同時支援這些display monitor (或是LCD + touchpanel)。

這樣可以做什麼呢,就是省掉主機的錢,資料寫可以可以支援10組LCD/touch panel,
適用於大量kisok 配置的環境,像:投票機,教育中心...etc。

而且,用Linux,很便宜。

這個有點像以前的linux for 4 : 一台linux 4 人用。

Complain : 糟糕的coding..

真是糟糕的code。

function argument 中竟然有function 中不使用的,那宣告這個argument幹嘛?
 funA(char va, int vb, int vc)
{
......
... 從頭到尾都沒用到vb....
}
但是,call 的時候 還煞有介事 的作一些判斷 : (VAR==MAIN) ? route : Slave。 當作這個dummy argument 的傳入值。
怎麼? 這個argument 是當煙霧彈使用 ?
本來architecture 就設計得一團糟的code,更是讓人一塌糊塗..

還有像上次的 A module 裡有Surface,B module也有Surface 這個function name, enum, 但是兩個的意義是不一樣的喔。
如果是這樣,到不如module B 的surface 取名為cafrus ,反正沒有意義,至少不會和module 的意義混淆.
這裡還有: 其中一個argument 在function中作switch 的判斷operand。但是所有的case 都寫在一起:

int funa(enum braincond, char k)
{
switch(braindcond){
case braindead:
case brainstoped:
case brainvecaltion:
... blablabla...
break;
}
return OK;
我的天哪,如果case 中有default : 來判斷var的錯誤傳入還有話說,但是,竟然沒有!!。而且,還統一return OK。

這個switch-case 和這個argument是幹嘛用的? programmer 練打字?


所以,programmer真的是良心事業,如果自己寫,自己mantain也就算了,
浪費自己的時間,要練打字,都是自己的事。

但是若是有機會會讓別人使用到,那,真的要用點心哪,
畢竟,別人的生命可不是像你一樣一文不值的呀。



這要說來,好好的coding也算是做好事,會有福報喔?
那,,,隨便coding 不就.....

Gabbly - chat on any website - and yor blog

Gabbly 試一個很奇怪的網站,他提供一個服務,
喔,大概是 一個以URL 為名的聊天室吧。
只要在你要去的網站前加上 " http://gabbly.com/",例如,要到我這個網站聊天,就輸入:
http://gabbly.com/checko.blogspot.com

gabbly.com就會開啟checko.blogspot,並且在上面開啟一個chat box。讓所有以這個方式到這個網站的人 在一起聊天。

下面就是 gabbly 的blog 的..
glabbly

在他的FAQ中有說到,也可以直接將這個chat box 安裝在自己的網站中。這樣,進入網頁就直接會出現char box,不必再用 http://gabbly.com的方式.

很有趣,char box跟google talk 很像,剛好可以補足 google talk 無法多人教談的問題。



很有趣,但是還是要小心隱私和security 的問題。

星期二, 5月 02, 2006

OK : acceleration engine library

搞定(應該吧) 加速OSD library: acx_library

開始就是把整個library copy到sample program的目錄,
因為sample program的Makefile 變數名稱有一點奇怪,所以用手動的方式,將libacx.a copy到lib目錄中。

修改sample program的Makefile,在library中加入acx (Makefile會自動加上path和lib, .a)。

拿sample program : demux 來修改,#include "acx_drawlib.h"

initialize gfx, OSD : 在apply_display 的各種動作做完後,以下是初始OSD 的步驟
  • OpenOSDVSource(&osdformat,&OsdSource) : open 後,將OSD structure 的start address放到OSDSource。
  • ClearOSDVSource(OsdSource)
  • GetScalerID(TYPE_OSD, &id) : 取得Scaler id ,這是和module溝通的方法-- 通過ID。
  • SetSource(id,OsdSource) :將剛剛open的OSD source 指定給這個scaler。
  • GetSourceInfo(OsdSource, &startaddress) : 取得osd mapping在記憶體中的start address。
  • acxInit( ) : create 和acceleration engine 溝通用的Fifo。
  • acxSetOsdParameters(startaddress, OsdWidth, OsdHeight) : 設定acceleration engine:使用的memory start address和Width, Height.
  • acxSetTvRatio( ) : 設定好outut screen的比例,並且設定好mixer。
....以下就可以開始 "作圖"了

Zoran : another DTV decoder integrated chip

ZORAN以前似乎都是作一些PMP,DVD的chip。
現在也出DTV chip。
所謂的DTV chip,也就是要內建MPEG2 decoder ,scaler的chip。
目前出的這一顆(不知道名字),據說已經可以支援32" LCD的解析度。

和sigmadesign這一家不同的是,ZORAN這一顆沒有網路功能,所以不能作IPTV使用。
因為實際spec不明,所以以下純屬猜測:
從沒有網路支援,和價格比較低。來看。大概是沒有PCI controller。
platform 不明,是proprietry,linux還是CE,或根本就沒有OS (像ESS一樣,用forground/backqround)。也不知道。
.聯絡資訊:
FAE 經理
蔡志順
jason.tsai@zoran.com
886-202659-9797 ext 345

0987326198
.

星期一, 5月 01, 2006

Google's Another Free AP : Sketchup - a 3D model program

這個新聞在3月好像就release了,但是好像沒有很大(不像 Earth, Calendar 一樣大)。

Sketchup 是一個3D modeling 軟體。
Google買下來後,和Earth一樣,分成Free和Pro兩種版本。
Free是完全免費的喔(不曉得 代理商 http://www.jedin.com.tw/ 怎麼辦..)。

這大概是為了和GoogleEarth 整合在一起吧,因為Google一併出了GoogleEarth的Sketchup 的plug-in。 這樣,大家就可以自己 modeling 自己的房子,然然後放在 GoogleEarth上了 ( 房屋仲介 大概是最高興的吧)。

Google的download 網頁上還會有 教學 Video : http://sketchup.google.com/tutorials.html
(但是,看起來還是很難呀...)。
sketchup_video.

Google Calendar 的應用 出來了..

在 Tipsy House看到這一篇 : 台灣電影上映日 (http://shonyu.techarea.org/wordpress/?p=120 )

用起來真不錯。只要在Google Calendar 中"訂閱"這一個 Calendar,就會自動將 電影上映日 列在 你的Calendars中。
真方便 (其實 網路上已經有很多 賽程表 的Calendar了,但是台灣還沒有 )。

所以 "開放" 真方便。

當然,也希望大家多多製作一些 Calendar ,像:

大潤發 特價商品Calendar,燦坤 特賣商品 Calendar,... 這樣,大家就不會忘記 去買囉 :)

如果真的有人做了話,別忘記 設定為public 讓人搜尋的到喔。

網誌存檔