Archives

gravatar

[wine] 在 Mac OS X 下執行 KKBOX

WINE(WINE Is Not a Emulator)最近出了 1.0 版,加上 MacBook 也是 Intel CPU,有些 Windows 程式當然就可以靠這種方法在 Linux 或 Mac OS X(Intel) 下執行。當然 Microsoft Internet Explorer 已經不成問題,在網路上有 ies4linux 和 ies4osx 的安裝程式,很方便就可以創造出執行的環境。而 KKBOX 也有不少人安裝成功過,我在 Mac OS X 下使用 Darwine 1.0rc2 和 Xquartz,當然在 WINE 環境要安裝有 IE 和 WMP9,以及主要的程式 KKBOX,以及一些很瑣碎的設定,最後終於可以在 Mac OS X 下直接使用 KKBOX。不過過程有點複雜,最後大概需要哪些步驟,其實步驟寫下來還不太困難。但是因為嘗試過程花了不少 try & error 方法,所以步驟比較繁瑣。有空再來整理全部簡化的安裝流程,先來看執行畫面和效果。

全螢幕的擷圖,iTunes, IE, KKBOX

選項設定對話框

歌手總覽

選注音符號不是很好選,大概是 WINE 對字型大小和選取範圍處理有問題。

播放暫存區/全部歌曲/下載

選取的文字畫不出來

動態歌詞

gravatar

用 Safari 作快速的 Google 搜尋

通常在瀏覽器裡面像是 Firefox,把文字選取後按右鍵就可以作 Google search 的動作。如果是在其他的程式中,有段文字要到 google 上面找找東西,傳統作法就是:複製文字,開 Safari,在搜尋輸入框貼上,然後按下 enter 開始搜尋。
但是通常 Safari 會出現在 Dock 上,這時候在其他應用程式中,跟先前動作一樣要先選取,然後只要拖拉到 Safari 的圖示上,就會自動幫你開啟 Safari 然後在 Google 搜尋引擎上找你所選取的文字。

gravatar

Google Maps、GPS 軌跡、和小工具

Google 有兩套跟圖資有關的產品,一是 Google Maps,另外一個是 Google Earth。這兩個產品都有提供軌跡的功能,但是卻大大不相同。Google Earth 的功能比較完整,而 Google Maps 則是比較簡單且限制。
以我自己的 GPS track 而言,上次從北橫到宜蘭市區,每 20m 就標定一點,印象中共有八千多點。在 Google earth 上,這個軌跡很漂亮的就是一條 path。同樣的 Google Maps 也提供 My Maps 功能,可以 import .kmz/.kml 到網頁上,把軌跡畫出來。但是,問題就出現了,上傳之後發現軌跡變成好幾段,甚至被分成好幾個 page,要切換到下一頁才會把該頁列的 path 畫出來。
首先,第一懷疑的是不是從 GPS logger 下載的資料有問題,造成一段 path 被切成好多段。結果也不是,把已經上傳的 kmz 從 Google Maps 上用 View in Google Earth 再看一次,的確被切了好幾段。做了簡單的實驗後,發現只要 path 大於 401 點,就會被分成另外一段(大概是網頁版的 Maps 為了 performance 問題)。這是第一個實驗。第二個實驗是,在 Google Earth 看到有六條 Path,上傳到 Google Maps 後只看到五條,而且沒有下一頁。
 
第三個實驗是,共有七條 path,上傳到 Google Maps 後的確看得到七條。那前一種狀況是怎樣,bug 嗎 = =。
 
然後在第一頁下並沒有全部畫出所有的 path,要切換到下一頁才會畫出 path 6,7。

然後,重點就來了,在 Google Maps 中 My Maps 的單一個路徑,就是要全部畫出來才好看且明暸,還有下一頁這樣就不太好看,因為如果不是獨立的軌跡的話,被分段分頁真的是不爽。所以重點就是要介紹一個 TOOLS FOR GOOGLE EARTH 工具網頁,他有很多功能,但是第一個的 Generalize 就有足夠的功能,把太多的點簡化掉。目的是因為一次要把完整的 path 畫在 google maps 上,所以 google maps 上面一頁可以有 5 段 path,而每段 401 個點,所以 kml/kmz 中獨立的 path 不能超過 2005 個點,才會同時被顯示出來成為完整的一段。假設我這次有 8000 點,所以我在 Generalize 的 Reduction Factor 填入 4,然後把 kml file 上傳後,他就會提供另外一個可以下載個 kml。再上傳到 google maps 上面去,所以 8000/2000 大概會產生 4 段 path。所以就能完全一次呈現一條完整的路徑,雖然被分成好幾段很怪。
連結到完整Google Maps路徑

gravatar

拿掉 FunP 轉過來的 iframe

淺入淺出 iframe (1), 淺入淺出 iframe (2), 和 別再說為什麼XX 就可以用iframe 而funP 不行 中提到很多原因,我也不喜歡在上面有個 FunP 的 control bar。所以之前不知道在哪邊看到的文章,教人家在 HTML 加入

if (top.location != location ) top.location.href = location.href;
就可以重新 redirect 到正常的網頁去。不過有個問題呀,最近在 blogger 裡面要改 layout,結果整個畫面被導到 layout 設定畫面,上方的 blogger 設定像是 Posting, Settings, Layout 和裡面的 Edit HTML 都不見了,這樣之後怎麼改東西。所以額外加了一些東西上去,才避免連 blogger 自己的 iframe 都被轉光光。
if (top.location != location && (top.location.href.substr(0,23) != 'http://www.blogger.com/') ) top.location.href = location.href;

gravatar

Google Developer Day Taiwan 2008 - AppEngine

今天的新聞應該就是 Google 在台北舉辦 Developer Day,休假了一整個禮拜,週末就只去參加這一場不是休假的活動。除了開場的主題演講外,整天都是 AppEngine 場次,所以也只能講這些了。除了 Code Lab 之外,其他都有錄影,應該上 http://code.google.com 都找得到。所以整天看到聽到的都是 Pete Koomen 和 Brett Slatkin。Pete 是 Product Manager,Brett 是 Software Engineer。

AppEngine 讓一般 user 也可以使用到 google 的內部儲存空間跟 computing power,在一定的 quota 內是免費的,超過就要依量計價。不過我在想,比如說 HTTP Requests per Day 最高 650,000。這時候當有這種人氣時候,擺個 AdSense,然後用 AdSense 賺的錢再買更多的 resources,這樣有沒有可能打平變成免費。

第一場 Pete 介紹 AppEngine 入門,由 Brett 簡單花幾分鐘從無到有寫個 live demo,有點類似留言板的功能。當 Deploy 到 appspot 之後,Pete 秀了幾手,終於大家看到網址,也上去留了幾句。等 Pete 重新載入或留言時,發現多了好多資料嚇了一跳,當然是哄堂大笑。暫存的內容如又圖。 另外學 Python 語言感覺是還好,如果 syntax 練一下,API 看熟一點,加上 AppEngine 不讓你用某些 system native API,盡量都要用他的 DataStore、memcache、URL fetch... 所以也不是要整個學到爛。但是 DataBase 的部份 - DataStore 這邊就比較麻煩,雖然用 GQL 很像 SQL 作 query,但是為了 scalability 而無法做出很多一般 SQL 的用法。為了提高平行度,表格設計和 get()/put() 方法也跟一般不一樣。加上現在還沒有 Database import/export 工具,連改個 application name 就會整個 DataStore 就消失一樣。很多東西都還在進行中,連未來將會支援哪些語言,連半點字都沒有透漏。

另外在 Code Lab 到處問答時候,旁聽到 AppEngine 其實是 Google Engineers 花他們 20% 的時間做的創意。當然 BigTable、GFS... 這些都是 Google 本來就有的 fundamental,在 Google 允許工程師花他們的 20% 時間,作自己想要做的事情(當然不是打混摸魚看股票兼拍賣等等)。所以 AppEngine 就這樣生出來了,提供了一個環境讓 internal 工程師很容易開發的環境,現在還可以提供給外界使用。另外,AppEngine SDK 環境當然也是這些工程師花 20% 其中的時間在 Mac 上開發出來的環境,所以有些地方 Windows 平台會不順會有問題,只能等以後修正囉。

今天 Google Lab 部份,投影片跟程式碼在 http://code.google.com/p/google-app-engine-codelab/,雖然 Brett 講解的投影片是用 Google Docs 來簡報,但是下載的卻是 PowerPoint。大概是從 Google Docs 轉成 ppt,因為 AppEngine 的 icon 在簡報時候是在左下角,而 PowerPoint 卻是變成置中大圖,看來 ppt 版本是不太對的,相信原版是 Google Presentation 做的。

今天的圖片集:
會場入口的大"看板"

另外一邊的 Google Logo

報到處


連飲料零食都搬來了


當然 Wii 和 Xbox 也不例外

第一場簡介演講,沒辦法,原場地客滿了(簡立峰老師要大家下次努力報名達 3000 人,就可以租樓上的大場地。)

Pete 講 AppEngine 入門

手足球台後來也出現了(打的人不少,不過用轉的是犯規的,反正大家好玩就好。我也有下去玩幾球,二打一還沒被進球)

排隊領 T-shirt(其實大家都有,還說數量有限)

今天最大收穫,就是衣服兩件 當然是學到 AppEngine 很多知識。然而 AppEngine Code Lab 免費送一件 AppEngine Logo 的 T-Shirt,再加上 Google Developer Day 2008 的,就兩件了。

gravatar

AppEngine程式開發實作報名成功 Google程式開發日

Just got the mail notification from Google Developer Day

參加AppEngine開發者您好,

歡迎您參加AppEngine程式開發實作。提醒您本課程僅限50人參加,全長160分鐘,不得中途進場。您已在報名成功的50人名單上,若您在課程開始前5分鐘未出現,我們會開放您的席位給候補。
在參加 AppEngine程式開發實作之前,建議您先依照 開始使用 Google App Engine 上的指示完成練習,並在您的筆記型電腦上,預先設定好開發環境

由於 Google App Engine 是用 Python 開發的,如果您還不熟悉 Python , 建議您可以從 Python 教學 開始,以獲得足夠的資訊。

Google研發小組敬上

gravatar

Safari: 更快的 JavaScript 速度

根據 Surfin' Safari 最新的文章和測試,新的 JavaScript 引擎,代號為「SquirrelFish」的 interpreter,讓 Safari 的速度加速為 WebKit 3.1 的 1.6 倍(SunSpider benchmark suite)。可望讓 Firefox 3.0 引以為傲的速度不再專美於前。 最主要的改變是採用了 virtual machine。什麼是 SquirrelFish?這是一種以暫存器為基礎,direct-threaded,高階的 bytecode 引擎。使用一個簡單的 one-pass 編譯器為 syntax tree 產生 bytecode。SquirrelFish 擁有很多目前高效率虛擬機器的很多設計最新的研究,包含 Lua 程序語言(玩 World of Warcraft 的應該都知道)開發者 Professor M. Anton Ertl, et al, Professor David Gregg, et al, 所作的研究。
繼續閱讀

gravatar

[FON] Fonera 安裝 DD-WRT 韌體與超頻

本文是關於 FON 無線網路的修改,這篇文章主要是教學和紀錄用,一方面記下步驟供自己參考不用重找。 FON 蠻小巧又方便的,但是官方韌體過於簡陋,功能又不多。加上最近天氣溫度高,連線量可能大,常在遠端連線到公司電腦時候,AP 訊號斷斷續續。或是從休眠階段醒來,雖然有 AP 訊號但是卻連不出去,常常要關掉 AirPort 再開啟才正常,因為下定決心一次解決所有問題。
**刷新 DD-WRT 韌體
首先先下載必需要使用到的檔案。

  1. root.fs
  2. vmlinux.bin.l7
Mac OS X 的作業系統已經有內建 TFTP server,以及終端機程式,就不需要再有任何的軟體安裝,只要開啟這些 server。TFTP server 則自行打開 Terminal 程式,輸入
sudo /sbin/service tftp start
就可以啟動 tftpd,傳輸的檔案路徑放在 /private/tftpboot/。 FON 當然要已經破解過,可以使用 ssh 進入到系統內的 command line 模式。原本的 FON 設計無法讓使用者自行透過 RedBoot 刷新韌體內容,要先用破解過的 kernel。透過 ssh 連到 FON 內部後,輸入
cd /tmp
wget http://fonera.info/camicia/openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma
mtd -e vmlinux.bin.l7 write openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma vmlinux.bin.l7
reboot
之後會重新啟動,當啟動完畢後,一樣連到 FON 內部,輸入
cd /tmp
wget http://fonera.info/camicia/out.hex
mtd -e "RedBoot config" write out.hex "RedBoot config"
reboot
在這步驟後,重新開機,FON 就會停在開機的 RedBoot 階段,不會再啟動 FON firmware。這時候把 FON 網路線連接到電腦,把電腦的 IP 設定為 192.168.1.166,然後把 FON 接上電源,等一會兒,在 System Preferences 的 Ethernet 狀態變成 Connected 時候,就 telnet 192.168.1.254 9000,接著敲下 Enter 鍵就可以看到 RedBoot> 的符號。 把 root.fs 和 vmlinux.bin.l7 放到 /private/tftpboot/ 下,然後在 RedBoot 裡面輸入
ip_address -l 192.168.1.254/24 -h 192.168.1.166
fis init
load -r -v -b 0x80041000 root.fs
fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 rootfs
load -r -v -b 0x80041000 vmlinux.bin.l7
fis create -r 0x80041000 -e 0x80041000 -l 0x000E0000 vmlinux.bin.l7
fis create -f 0xA83D0000 -l 0x00010000 -n nvram
接著打 reset 後,重新啟動。之後在無線網路的 SSID 中可以找到 dd-wrt 的 AP,預設帳號密碼為 root/admin。
**更新到最新韌體 V24 第 7 版 5/20/2008
下載 http://www.dd-wrt.com/dd-wrtv2/downloads/v24/Atheros%20WiSoc/Fonera/linux.bin 韌體,一樣放到 /private/tftpboot/。這時候需要非 Mac OS X 的終端機和 telnet 程式,例如用 Parallels 跑 Windows 下的 Putty 或是 linux console,因為 Mac OS X 下的 telnet 不會馬上送 ^C 到 AP,無法中斷開機過程讓我們進入 RedBoot> 裡面刷新韌體。 一樣,在開機過程中,會有 10 秒鐘的時間,可以讓使用者 telnet 然後按下 Ctrl-C 送出中斷而進入 RedBoot,如果時間超過,就得重來一次。當進入 RedBoot 後,一樣照著這個步驟
ip_address -l 192.168.1.254/24 -h 192.168.1.166
fis init -f
load -r -v -b 0x80041000 linux.bin
fis create linux
完成後,繼續打
fconfig
接著就按 enter 到 enter the bootscript: 出現為止,然後輸入
fis load -l linux
exec
(空白為結束)
接著也是一直按 enter 直到提示要不要把設定存入 nvram,這時就確定後,一樣輸入 reset 重新啟動。之後就有 V24 第 7 版的 DD-WRT AP。 *** 注意,fis create 的時間會很久,AP 也不會有任何反應,時間長達甚至十幾分鐘。這時候連終端機或 Putty 視窗上都不要碰任何按鍵,免得軟體送出按鍵的封包後,然後因為 timeout 而造成終端機或 Putty 斷線而中斷刷新過程。
** 超頻到 200MHz
FON 2100/2200 的 CPU 速度大概是 183MHz,在討論區有人透過軟體修改把 CPU 超頻到 200MHz。 透過 ssh 連接到刷新完畢的 FON,輸入
cat /dev/mtdblock/0 > /tmp/RedBoot.bin
後,再自己 Mac OS X 電腦上開終端機,輸入 scp root@192.168.1.1:/tmp/RedBoot.bin RedBoot.bin 把檔案傳輸到自己電腦來修改。我建議是用 0xED 這套 hex editor 來作修改,修改的部份為
偏移位址 0x1e3 把 0x03 改為 0x01
偏移位址 0x1ef 把 0x5c 改為 0x28
然後存檔,一樣輸入
scp RedBoot.bin root@192.168.1.1:/tmp/RedBoot.bin
接著回到 FON AP 的命令列,輸入
mtd -f write /tmp/RedBoot.bin RedBoot
reboot
重新啟動,之後就可以從 DD-WRT 控制網頁的系統狀態看到 CPU 速度為 200MHz。

gravatar

[Mac] QuickTime 網路廣播重複問題

最近直接用 QuickTime Player 聽網路廣播,常常發現會重複播放。好幾次是因為當作背景,根本不知道是回到前面重新播放,直到聽到好像比較熟悉的地方,才發現是重複了。
經過幾次 try & error,大概知道原因,如圖片上所看到的,現在正播放的 mark 離 buffer 時間只剩下一丁點,這時候就很容易出事。網路廣播的 wma 都是透過 Flip4Mac 這個 QuickTime plugin 來播放。當網路有問題、停頓、或是 buffer 不夠,player 就會自己重新跳回到開頭直接播放,屢試不爽。但是在 Player 設定裡面,Loop 的選項並沒有勾選。而 Player 就是會莫名其妙的跳回前面自己就播放先前的 buffer 起來(可見從一開始的東西都還在記憶體)。
比較惱人的是,這個東西沒有選項可以設定,理論上 buffer 不夠,應該是停住等一段時間的 buffer 夠了繼續播放,至少看 QuickTime 串流影片都是這樣。此外,有可能 buffer 機制因此就死掉了,也就是就算把時間移到最後頭去 play,但是其實他已經不再 buffer 現在正在播放的串流資料,只能關掉視窗重新開啟。

gravatar

Mac 版的雅虎奇摩中文輸入法


雅虎奇摩竟然也推出自己的中文輸入法程式,注音輸入法叫做好打注音,而且有 Mac 版本。基本上是以 OpenVanilla project 為基礎,搭配雅虎提供的一些查詢服務。對於使用者介面上,已經有一些簡化和固定式配置。輸入法候選字的視窗改為直列,很不習慣。有些輸入法像是倉頡或簡易,基本上根本沒機會去使用到,如果可以移除也不錯。 在 Leopard 安裝後,包含重新開機,都看不到 Yahoo KeyKey 輸入法。似乎安裝程式有點問題,因為安裝到 /Library/Input Methods/ 裡面,權限不是 root,所以 Leopard 系統基於安全性理由,不會啟動這個輸入法。只好自行打開 Terminal,然後

sudo chown -R root:admin /Library/Input\ Methods/Yahoo\!\ KeyKey.app/
再次登出登入後,就 okay 啦。快樂嘗試中。

gravatar

[Firefox] 消失的記憶體

最近消失的十億很熱門,但跟主題無關係,雖然電腦上用掉十億很簡單(1GB=1,073,741,824 bytes)。在 Firefox 的網址列打 about:cache,可以看到 memory 和 disk 的 cache 容量和消耗。 一定會有人好奇,怎麼 memory cache 的 Maximum storage size 是 5000 KiB(這是我設的,因個人設定或電腦記憶體容量而定),結果 Storage in use 反而比 Maximum 還大。如果是 disk 部份就正常,不會超過 Maximum storage size。這個原因是,記憶體的 cache 有部份會存放的是「解壓縮」後的圖片,例如 jpeg、png 這類解開通常容量都不小。所以實際上 memory cache 的檔案可能沒有超過 5000 KiB,但是 cached 未壓縮圖片檔容量卻已經超過這個容量。點選如圖片上面的 List Cache Entries 就會列出每個詳細資料,我的範例如下,一定會有人好奇例如 http://css.funp.com/base/css/v3/nt.png 這個不是照片的圖檔有 3,840,000 bytes,約 3.66MB。第二個 http://css.funp.com/base/css/_4939/B0.png 也不遑多讓,有近 3MB 的空間。實際上,第一個 nt.png 檔案只有 44.33 KB (45392 bytes) 這麼大,但是解析度是 400px × 2400px,也就是 400×2400×4 (32bits color) = 3,840,000 bytes,沒錯,就是上面的大小。只要有 10 個類似的東西,加上 firefox 本身程式內部用量,消耗的記憶體馬上破百不是問題。
當然這是拜 CSS 之賜,可以用 clip 的方式來選擇顯示範圍的圖片,這樣好處當然是瀏覽器只要 cache 一個小圖檔(壓縮後不大),也減少 http server request 和檢查 expire 次數。所以網頁中看到很多用到小圖的地方,可能是圖檔中不同的部位去選擇要呈現的範圍。但是,事實上,圖片上蠻多空白(不會用到)的地方,當然這些空白的地方,電腦還是要花記憶體的空間去儲存地。
後記:為啥拿 funp.com 上面的 background png 來舉例?因為,剛好大小榮登上面排行榜前幾位,純屬巧合 :P。

gravatar

Intel廣邀部落客一起愛地球

現在的處理器都強調耗電量低,但是無可避免的notebook上除了CPU外,最基本還有硬碟、LCD螢幕、主機板等等也會耗電的裝置或晶片。雖然notebook在耗電量上已經比Desktop或Server省很多,但是節能一直是notebook上不可必免的問題,移動性高就必須要電池能使用時間長。此外notebook也要充電或是插著電源使用,即使不是充電,省電當然也就直接節省能源。
所以這邊要介紹一些技巧,嘗試盡可能在Mac OS X下降低MacBook/Pro的能源消耗,也可以讓電池使用時間增加。

  1. 停用螢幕保護程式,縮短螢幕關閉的時間間隔。
    LCD螢幕原理,持續的畫面轉換並沒有達到保護,反而要持續地切換每個像素上的電晶體。且加上Mac OS X內建的螢幕保護程式,有些是使用OpenGL來達到渲染和3D特效,所以使用保護程式時反而消耗CPU和GPU。不如關閉螢幕保護程式,把螢幕關閉的啟動間隔縮短,讓背光板關閉節省電源消耗。

  2. 手動關閉螢幕
    現在Leopard和新的MacBook都可以透過Shift-Ctrl-Eject來直接把螢幕關閉,而不用透過等待螢幕關閉的間隔。如果電腦還在處理某些東西不能關閉,卻要離開一段時間,立即啟動此功能把螢幕關閉,達到省電效果。
  3. 避免在強光之下使用
    由於液晶螢幕是透過背光將顏色呈現到眼睛,如果在強大環境光源下,會使畫面表現不自然,也需要將背光亮度調整到最大才能看得清楚。如果可以適當將使用地點或是背對光源方向作個調整,顯示的背光可以調整到適當舒服亮度,節省電源的消耗(非LED背光螢幕)。
  4. 關閉用不到的裝置
    像是藍牙,平常沒用可以關閉。當使用網路線時候,可以將無線網卡關閉。開關這些裝置非常容易且輕鬆,在Mac OS X 上整合介面做得很好,如果你有把這些裝置顯示在Menu Bar上,簡單幾個滑鼠鍵就可以開關。

  5. 將動態畫面但目前不使用的應用程式縮小或隱藏
    有些程式會持續地更新畫面,或是有動態圖片/Flash,這些更新動作都會消耗CPU資源,如果不正在使用或背景的程式,就把他隱藏。在Mac OS X上很輕鬆地按Cmd-H就可以把程式隱藏,Alt-Tab配合滑鼠很容易叫出程式。Mac OS X Aqua 的使用者介面上,有個程式叫做 WindowServer 是用來管理視窗和處理螢幕內容合成。因為程式動態的畫面更新,也會使得 WindowServer 的使用率增加。使用 Terminal 執行 top 後用 CPU usage 排序,就可以看得到其實 WindowServer 使用率一直在 5%~10%,如果有動態的畫面更新,則會更高。所以能將目前不使用的視窗隱藏,減少 WindowServer 在處理畫面上的 loading。
  6. 使用 Adblock plus for Firefox 或 SafariBlock for Safari
    一方面可以減少額外的下載資料量和增加版面清晰,另外一方面降低內嵌Flash廣告、WMV/MP3等消耗資源的影片廣告。
  7. 使用CoolBook調整CPU速限和降低廢熱
    雖然切換到Intel平台,Performance Per Watt高很多,但是相對速度的增加,廢熱也大量產生,有些能源就不可避免轉成熱量散逸到空氣中。在PowerPC時代,Energy Saving還有可以調整CPU速度的選項。到了Intel x86-based機器上,就沒有這個選擇,一切都是Mac OS X自動調整。但是手動限制不僅可以避免CPU在無謂的時候直奔最高速度,用低速對付非重量級的工作都還很輕鬆。也可以在電池模式下,限制CPU速度也可增加電池使用時間。
  8. 使用Deep Sleep來選擇休眠模式
    短時間間隔內會使用電腦,則直接用Sleep後回復速度也快。但是會消耗一點電力,長時間下不可用,或是外出攜帶不想關機重新開機,則Deep Sleep將記憶體寫入到硬碟後完全關機,就不會消耗電池的電力。
  9. 把一些快取、暫存檔移到RAM Disk
    現在電腦有2GB以上記憶體是稀鬆平常,使用多餘的記憶體當RAM Disk來存放快取、暫存檔案,會使其讀寫效能要比硬碟來得快,也能減少硬碟磁臂seek次數和距離,或是使長時間不用的硬碟進入停止狀態,畢竟機械動作要比電子動作有更多的功耗。
  10. 兩個月將電池校正一次
    根據這篇Apple文章,大約一兩個月就把電池校正一次,以達到電池的最大效能,延長電池的壽命,減少因容量不足而常常充電的能源轉換消耗。當然不是刻意要去浪費能源跑些程式來消耗電力,在校正時候還是可以正常做事情,只是特別注意當電力警示時候,要把工作中的檔案存檔關閉。

gravatar

Installer source for UDNReader

剛建了一個給 Installer 用的 source repository,把這個 source 加入到 Installer 中,就可以讓他自己下載和安裝/移除 UDNReader。

http://safaripowertoy.googlecode.com/files/repo.xml
網址有點長,加入後就到 eBooks 裡面安裝 UDNReader。

gravatar

UDN Reader for 1.1.4

終於把
UDN Reader
移植到 1.1.4 的機器。需求環境:Jailbreak 過的才能裝軟體呀。所以現在可以在 iPhone/iPod touch 實機上跑,直接選新聞讀內容。目前無 repository source link,所以看你要 ftp/sftp/AFP 或從 ipod 上面用 wget 抓,反正擺得進去 /Applications 就好。icon 方面,沒有能力和時間作個漂亮的 button,直接抓 UDN 的 logo swf 來剪裁。(iPhone SDK 上是會自動把平坦的 icon 加上立體光亮的觸感,可惜 1.1.4 沒有)。另外,不知道怎麼去擺到 source repository 上,讓 Installer 可以自動下載安裝,如果有人在管理 repository 的話,可以考慮加入上面的 link。

最困難的地方大概就是 1.1.4 以下 API 並沒有 fully documentation,全都是靠網路上 objc class dump 出來的 header file 來看有哪些 method 可以使用。而且不像 iPhone SDK 有 IDE 介面可以 debug,丟到 iPod 上去跑,大概就只能用 printf 大法。然後 1.1.4 的很多 view 並不成熟,例如 iPhone SDK 可以輕鬆做到的 WebView 滑動縮放,在 1.1.4 要自己作。

gravatar

降低MacBook電源接頭的高頻聲

MacBook 的電源接頭那邊,只要接上 AC Power,就會有高頻的滋滋聲。其他使用者也有類似問題,看板上的網友回答是,這是 MacBook 的"三高"之一。以前用過其他 IBM 的筆記型電腦也有類似的聲音。Anyway,聲音不是很大,但是在安靜的房間仔細聽起來也是蠻惱人的。不過後來發現,接上 iPod Touch 之後,聲音就沒有了。但是接上耗電量比較少的裝置,像是 USB Solid-state disk,Optical Mouse,還是一樣會有這個問題。所以就是要讓 USB 消耗大一點的電源,才能降低高頻聲。但是不可能一直開著 iPod touch 放在那邊。看來可以找些小玩意來裝,例如 USB 臭氧、負離子產生器,USB 風扇(夏天快到了),NoteBook散熱底座,...

gravatar

My First iPhone App

This is my first iPhone application written in iPhone OS 2.0 SDK. Unfortunately, it only runs on iPhone simulator not the real iPhone or iPod touch device. Even I use iPhone toolchain from third party to rebuild the source code, some UIKit classes are miss in current iPhone/iPod touch 1.1.4 firmware.
The purpose of this application is to help users to browse the UDN news items and read news page more easily. Rich content web pages with javascript are not user-friendly on mobile device and touch device. However, this might not have chance to run on iPhone platform due to Apple's App Store restrictions and 2.0 firmware.
iPhone SDK provides an integrated environment and simulator to develop applications easily. But under the restriction, the 3rd party iPhone toolchain and jailbreaked environment should be more useful for ordinary developers.

gravatar

iPhone雙重開機

iPhone Dual Boot / Jailbreak。應該也可以適用 ipod touch。

gravatar

MacBook vs iBook G4

MacBook 13.3" 2.16Ghz vs iBook G4 12" 1.2Ghz
花了 34,900 元帶他回家, 但是 3/6 馬上又降價了, 改成 31,900 元。打去退差價 3000. ^+++^

gravatar

iPhone SDK 開放下載

Apple 首頁已經刊出 iPhone SDK 開放下載(但是似乎連不上 ADC server)。也可以試用 Enterprise Beta Program。

gravatar

iPhone SDK 新聞

節錄自MacRumors部份內容及翻譯。給企業使用者的功能, iPhone下個更新將會包含有 Push Email、Push Calendar、Push Contacts、Global Address List、Cisco VPN、WPA2/802.1x、安全原則、裝置設定、Remote Wipe、ActiveSync(用來同步 Exchange 到現有的 mail, calendar, contacts)
SDK 部份, Apple 釋出他們用來開發 iPhone 應用程式的相同 API。給 OS X 用的 iPhone 模擬器可以幫助開發者。支援動畫、3D、攝影機、網路、檔案存取和錄音的強大 API。
原生(Native)的iPhone應用程式需要透過iTunes的應用程式商店, 用無線網路下載。開發者決定價格、並且可以得到 70% 的收益。沒有其他的額外費用。每個月付給開發者。
SDK 今天起可以免費下載。然而要發佈應用程式, 則需要 $99 美金 (約三千台幣)的開發者費用。