Friday, December 24, 2010

白象禮物交換

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

交換規則:
每個人抽一張號碼牌, 依序選擇一份禮物. 每樣禮物必須當場拆開, 每樣禮物只能被轉手換人兩次. 也就是說, 輪到我時, 我可以任選我前面的人已拆封的禮物(假設這個禮物是第一次轉手換人); 但我後面的人也可以選擇我的禮物, 而成為這份禮的最後擁有者, 因為這次的轉手換人是限制的第二次. 倘使你的禮物被選走了, 你可以馬上再選一份未開封的禮物, 或其他人已拆封的禮物.

聖誕節到了同事們要交換禮物。剛開始是想抽籤有點麻煩,於是用 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) 都可以亂數得到一個順序囉。

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

Sunday, December 19, 2010

App Inventor 開放

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

程式產生工具假裝將某些東西抽象化,這和其他所有抽象機制一樣都有漏洞,而唯一能適當處理漏洞的方法,就是弄懂該抽像原理以及所隱藏的東西。所以抽象機制雖然替我們節省了工作的時間,不過,學習的時間是無法省的。
-- 約耳趣談軟體

Google 提出的 Android 拖拉放程式設計工具 App Inventor 已經開放使用了。目前版本還有諸多限制,例如做出來的Apk無法上傳到Android Market、無法直接用模擬器而非實機測試等,但已可以作為簡單的程式教學工具。

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

Monday, December 13, 2010

Android 2.3 Google 應用程式的改進

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 更新了,支援手機線上編輯

Android 2.3 釋出



上週 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 來預做程式碼混淆的動作,省下開發者不少功夫。對原本就在使用命令行工具來編譯程式的開發者來說,需要一些修改才能順利編譯。

Saturday, December 04, 2010

Mercurial 介紹簡報



今天在 TWJUG 做的 Mercurial 簡報