Skip to main content

· 2 min read

白象禮物的交換派對,所謂的白象禮物,指的是家中不論新舊,只要是完好可用的東西,用禮物袋裝一裝或包裝精美後就可以帶去派對與人交換。當然一人限量一份禮物。

交換規則: 每個人抽一張號碼牌,依序選擇一份禮物。每樣禮物必須當場拆開,每樣禮物只能被轉手換人兩次。也就是說,輪到我時,我可以任選我前面的人已拆封的禮物 (假設這個禮物是第一次轉手換人); 但我後面的人也可以選擇我的禮物,而成為這份禮的最後擁有者,因為這次的轉手換人是限制的第二次。倘使你的禮物被選走了,你可以馬上再選一份未開封的禮物,或其他人已拆封的禮物. 聖誕節到了同事們要交換禮物。剛開始是想抽籤有點麻煩,於是用 Python 寫了個簡單的 Script 來滿足抽籤的需求:

import random order = ["alice", "betty", "cindy", "deby"] random.shuffle(order) order ['deby', 'cindy', 'alice', 'betty'] random.shuffle(order) order ['alice', 'cindy', 'deby', 'betty']這麼一來每次執行 random.shuffle (order) 都可以亂數得到一個順序囉。

不過一旦當活動牽扯到人的話,還是靠真的抽籤比較有趣阿!

· 2 min read

當某人發明一套神奇的新程式產生工具,聲稱可以大幅提昇效率。這時有人就會出來說:「應該要先學會如何手動進行,然後才用這個神奇的工具來節省時間。」

程式產生工具假裝將某些東西抽象化,這和其他所有抽象機制一樣都有漏洞,而唯一能適當處理漏洞的方法,就是弄懂該抽像原理以及所隱藏的東西。所以抽象機制雖然替我們節省了工作的時間,不過,學習的時間是無法省的。 -- 約耳趣談軟體 Google 提出的 Android 拖拉放程式設計工具 App Inventor 已經開放使用了。目前版本還有諸多限制,例如做出來的 Apk 無法上傳到 Android Market、無法直接用模擬器而非實機測試等,但已可以作為簡單的程式教學工具。

Android 2.3 版發佈之後,開發工具裡的使用者介面設計工具已經有所進展(但還是很陽春),參照 App Inventor 的開發經驗,明年再來看官方開發工具的時後,也許可以再提昇一些水準。

· 2 min read

Android 2.3 除了這些系統層面的改進外,Google 出的應用程式也多有修改,而且都已經放上 Android Market 供舊版本也能直接使用。這次各種應用程式的更新目標都是更貼近桌面端的使用經驗。幸好 Google 有「Release Early, Release Often」的哲學,我們才不必等到手機商出了新 Firmware 後才能享受到這些應用程式更新的好處。

1. Android Market 更新了,能查看版本更新、查看相關的應用程式、支援平板,並修改了一些使用條款,現在退款時限從 48 小時退化到只剩 15 分鐘。當然,還有台灣的 使用者可以買 App,開發者可以賣 App。

2. YouTube 更新了

3. Gmail 更新了,加入 Priority Box 支援

4. Google Maps 更新了,可以為地點打分數。還有斜角 3D 顯示。

5. Google Docs 更新了,支援手機線上編輯

· 3 min read

上週 Google 釋出了 Android 2.3 版 SDK 與開發工具,2.3 版新增了 SIP 協定以支援網路語音通訊;支援更多種感測器 (sensor),並支援了 "xlarge"(7 吋 +) 大小的螢幕,讓 Android 系統適用於更多種類的設備。

開發工具的部分也做了許多更新,在 AVD Manager 的畫面裡,各種函式庫又區分地更細了,而且第一次加入除了 Google 之外的 Third Party API (Samsung Galaxy)。對用的到的開發者來說這是一個進步,也顯示了 Android OS 確實不只是 Google 一家在玩而已,而是背後有OHA聯盟廠商的支援。從工程師的角度來看這個安裝工具也越來越正規化(與版本不直接相關的功能都可以拆成不同安裝包)了。但對新手來說卻是越來越不清楚第一次安裝時應該選些什麼來裝。 相信如果 ADT 的開發哲學沒有改變的話,這個安裝開發工具過程變得越來越複雜的趨勢會一直持續下去。

大部分開發工具的修改對使用 Eclipse+ADT 的開發者來講沒什麼明顯差別,影響比較大的卻是使用命令行來編譯程式的開發者。原本在 tools 資料夾下的命令都轉到 platform-tools 資料夾下,而且編譯 release 版本時預設會使用 proguard 來預做程式碼混淆的動作,省下開發者不少功夫。對原本就在使用命令行工具來編譯程式的開發者來說,需要一些修改才能順利編譯。