小松鼠嚇了一跳,有了魔法眼鏡後,這世界看起來完全不一樣了

2012年2月22日 星期三

PyCon Taiwan 2012

Python people, it's party time. 
繼去年 2011 PycTW 後,比較正式 的 PyCon Taiwan 2012 今年 6/9-10 日將在中研院舉行。
官方 Logo 和網站

 
除了 一般的 Presentation 外,也有閃電秀,BoF,和勞作時間(合作動手玩一些技術)

Twitter: https://twitter.com/#!/PyConTW
Facebook: http://www.facebook.com/pycontwhttp://www.facebook.com/pycontw

2011年12月14日 星期三

我的小電腦們: Palm IIIc

我的第二台小電腦是 2000年買的 Palm IIIc,當時價格大約一萬多一點台幣。同時間買了我的第一台數位相機,價錢也是一萬多。那台相機讓我瞭解了兩件事情

2011年12月6日 星期二

台北捷運路線圖

台北捷運路線 (非官方,但很清楚,似乎 IE 不適用)

最近很多關於捷運的淡水線、新店線、南勢角線將要分家的新聞。
從某種角度來說,還真要給台灣的媒體一點鼓勵。不久前,我走在路上,聽到消防車一台一台的呼嘯而過,看來情況緊急。到底發生了什麼事了呢?我心理想。看來是嚴重的大火吧。身為數位科技時代的一份子,連忙拿起手機打開蘋果新聞 APP 查看即時新聞,想說能感受一下身處資訊時代的便利性。
結果頭條即時新聞是舒淇沒穿內衣
我相信這對舒淇本人來說,應該是很重要的事情。我有過幾次衣服穿反走在路上的情況,也有幾次外出時,忘記帶足內衣褲的經驗,感覺都是慌亂中帶點尷尬和不舒服。更何況是忘了穿內衣。從新聞所描述的險露股溝來看,狀況更是十分危及。新聞媒體善盡社會責任,急忙提醒舒淇小姐,這我們是可以理解的。
但問題是,雖說對舒淇本人來說很重要,對廣大的其他讀者而言,並不是那麼重要。除非他設定的讀者群是幼稚園的小朋友,那麼記得穿內褲的確是個很重要的課題,很有教育意義。
但大多數會認字的人,都會記得穿內褲,所以不成立。
二來,根據新聞所述,這是前一晚發生的事情,對舒淇本人來說,這個消息也大概也緩不濟急了。因為我想昨晚舒淇小姐洗澡的時候,應該已經發現了這個事實。
總之,我找不到任何關於失火的消息,這令我對台灣的新聞媒體相當失望。
沒想到沒過多久,台灣的新聞媒體居然會關心起攸關民眾生活上便利的問題,而且不僅沒有發生那種超過保存期限問題,而且是明年才會發生的事情。
關於這兩點,我們給予鼓勵。
但還是有幾點必須給予譴責。
我們對辦報的人,總有崇高的敬意。新聞從業人員,不但富有把關資訊的責任,更有引導輿論、啟迪民智的任務。像是梁啟超的辦新民叢報、戒嚴時的黨外雜誌、現在也有像是立報、破報的。和群眾相比,他們站在非常前面。雖然不見得是最前面,方向是否正確也見仁見智,但總有一股帶頭領隊的氣勢。雖然不見得能帶領大家到達應許之地,但至少能讓大家看到外頭的風景。
反觀現在有些主流媒體,以這次捷運分家來說,他們是跟著隊伍中後段的屁股走。我相信有一大堆的人,都可以理解所謂捷運分家的原因,知道平行轉乘和 L 形網路。這個一大堆可能是 10%、20%,甚至更多。
當然也有很多人不那麼理智。搭火車時,三不五時會碰到搭錯車、搞不清楚狀況的人,這無可厚非。很多人自知不太擅長這些,所以會跟團、跟領隊走就好了。但如果領隊自己也搞不清楚狀況,跟著亂闖一通的團員走,還高聲要團體其他人也一起走,那問題就很嚴重了。
現在也是這樣。聯合報不知道發了什麼瘋,偏頗的披露捷運分家的消息,製造莫須有的民意,創造虛幻的輿論來反對淡水線和新店線分開,搞得多愁善感的市長也跟著起舞,說捷運分家要踩煞車。
拜託,記者朋友們,如果你不是很有把握,不要危言聳聽,亂製造輿論。
網友製作的平行轉乘示意圖 :

2011年12月5日 星期一

Acer Stream Kernel on Github

https://github.com/tjwei/acer-stream-minimal-kernel

時間回到我寫 Porting custom rom to Acer Stream 的時候,由 Acer 的官方 Stream 的 kernel source 來看, Acer 的 kernel 像是從 msm-eclair_chocolate 改來的,但不確定是哪個 commit 改來的。我大致上比較了一下,看起和 msm-57e7a9f 差不多,外加一些 patch。
所以如果你只是要自行編譯 stream 的 kernel,只需抓回並解開  msm-57e7a9f,然後把 acer 的 source 覆蓋上去,然後執行
make acer-q8k-a3-dvt_defconfig && make -j12 即可。
當時 msm-eclair_chocolate 最新的 master 版本是 eea0918,我試著把 57e7a9f 和 acer 官方 kernel 的差異補回 eea0918,功能似乎完全也正常。現在放在 github 上的 fullpatch 這個 branch 上。
由於這次的成功,所以我如法泡製,修改某 msm-froyo 版本。但由於版本差異過大,無法成功開機。

2011年11月30日 星期三

我的小電腦們: Casio FX-7000GA

這一陣子很忙,空閒時間,也會被小孩哭聲切斷,所以完全沒有辦法繼續弄之前的 kindle 和修改 Acer Stream 的 kernel。當然,Blog更新的頻率銳減也是同樣的原因。
由於時間破碎,所以只能刷刷 xoom 的 3.2.2 rom,再灌上 debian 和 tightvnc,或者把 ipod mini 刷 rockbox 放黑白電影這類不太需要專注力的事情。
不過因為幫老 ipod mini 換上新生命,外加手握 kindle、xoom、ipad 2,讓我回想起之前把玩的一些小電腦們。
我的第一台小電腦應該算是這台:Casio FX 7000GA。其實因為已經不在手上,FX-7000G 的兄弟姊妹又多,長得又像,所以也不確定正確的型號。印象中應該是這台。
說來 FX-7000G 來頭可大的呢,1985 問世時,可是世界上第一台繪圖計算機。我的 7000GA 是 在 1992 以生日禮物的身份入手。不過雖說是生日禮物,由於太貴,我也出了一半費用。
回憶起來,我當時還沒有想要有手持小電腦的欲望,甚至說,根本連這種 My lovely little computer 的概念都沒有。那時有台個人電腦就很先進了。
但 FX-7000GA 是台不折不扣的小電腦,因為他可以寫程式。他的程式碼看起來像是這樣:
Ans->X
1->Y
Lbl 1
X>5=>Goto 2
XY->Y
X+1->X
Goto 1
Lbl 2
Xln X-X+ln (2pi÷X)÷2+((((1÷1188X²-1÷1680)÷X²+
           1÷1260)÷X²-1÷360)÷X²+1÷12)÷X-ln Y
當時寫了一些小程式,只記得其中有個是猜數字遊戲。忘了他的程式上的繪圖功能可以到什麼程度,但是當時應該是沒有寫什麼圖形方面的程式。
除了當時的想像力不夠之外,畢竟機器的硬體限制太大。首先是所有的輸入功能都一定都要等待使用者回應,所以動作遊戲是不可能的。
再來就是可程式化記憶體實在太小,只有 422。422M 拿到現在的 android 系統都還可以用, 422K 在當時是個人電腦等級的記憶體。FX 7000G 系列有的是 422 bytes。現在看來當然覺得小得不可思議,但當時來說,沒有只給你 422 bits 就要謝主隆恩了。
總之,當時除了寫些小程式外,計算機的功能還真的沒什麼用。雖然程式也沒寫出什麼可以用的東西。最後,只記得某次電池用完後,一直沒有換,後來年代久遠,搬遷幾次後就不知所終了。

從現在的角度來看,優點是續航力非常好,跟一般掌上型計算機一樣,用個一年兩年換次電池並不是太稀奇的事。可攜性極佳,螢幕大小不差。可玩性(可以寫程式的能力)尚可。
缺點是機乎沒有連線擴充的能力。

2011年10月19日 星期三

松鼠URL 2011-10-19

80848600
Adora Svitak: What adults can learn from kids Alison Gopnik: What do babies think? Richard Seymour: How beauty feels Pamela Meyer: How to spot a liar

2011年9月21日 星期三

Porting custom rom to Acer Stream

No download available yet.
以前剛接觸 Linux 時,興沖沖的重新編譯完 kernel,往往會發生開機只出現 Li 兩個字的慘劇 (原來應該是顯示 Lilo 後跑出一堆開機訊息,但是連 Lilo 四個字母都跑不完,機器就停在那裡了。)
由於 Acer Stream 都沒人弄 rom,只好自己弄。

一開始傻傻的編譯了一份 AOSP 的 system.img,想說至少可以開機吧,沒想到頗類似當年的 Li。所有程式無法執行,gdbserver 是跑起來了,只是跑起來才發現我是用 adb shell 進去而不是 ssh,網路根本沒跑起來。
還好現在網路發達,大部分的問題網路上都找得到答案。
當然找答案也是要有點方向。

一開始經由官方版本和AOSP的 linker/bin/lib 等等的組合,外加readelf 之後發現官方版本和自己編出的 linker 的 entry point 不同。 大致上猜出是 shared library 放置的記憶體位置問題。

搜尋了一下,發現這是 android prelink 以及 VMSPLIT_2G 的問題。所以這方面把 prelink map 平移一下即可。另外我也 complie 了一份 VMSPLIT_2G=n 的 kernel。
再 來就是 RGBA8888 的問題。 Stream 的 kernel 回報不正確的解析度,而且固定為 32bit 色彩 RGBA8888。32bit 用 #define 寫死了,無法 ioctl 設定。因此把這些 #define 改了,重編成 RGB565 的格式。
最後就是 Acer 的 kernel 大概因為用 zip 壓檔的緣故,很多檔案不見了。Linux 的 kernel 中有些檔案,檔名僅僅只有大小寫不同,但卻是兩個不同的檔。碰到這種除了大小寫外完全相同的檔名,Acer 用的 zip 就會只挑其中一個放入 zip 檔中。所以只好從其他地方的 source 補回來。

這樣之後,只要選對 kernel,很多 2.2 的 custom rom 都能開機到 GUI。我試過了
AOSP (full_passion, 改 prelink map),
liquid metal 官方 2.2
liquid miui 
malez recovery (正常顯示)

基本上都沒怎麼改就能跑 GUI,不過當然硬體也都不太靈。

也試了 liquid metal 的 2.3.3 leak,不過不成功。
大概 kernel 至少要弄到 2.6.34 才行。