一月 28, 2012
» 個人工具箱

先記錄下來手邊使用的工具,才有機會從繁雜中歸納出簡單的使用規則。

整理一下目前最常用的設備與應用

主要裝備
* Mac Book Pro 13"
* Android平板
* Android手機

Mac

軟體選擇方面,主要著眼點是開源、跨平台(Windows、Mac)

生活

* 個人網路硬碟:Dropbox
* 個人記帳:Buddi
* 主要瀏覽器:Chrome (Firefox備用)
* 高度檢視:Tiddlywiki + GTDTiddlyWiki模版

常用插件:

* 1-Up for Google+,把Google+中的+1按鈕換成加命菇,並播放加命音效
* Android SDK Reference Search,在網址列中輸入"ad 關鍵字"就可以搜尋Android官網的參考文件
* Awesome Screenshot: Capture & Annotate,抓網站圖片
* goo.gl URL Shortener,縮短網址
* Google +1 按鈕,看到感興趣的網頁,可直接記錄或分享到Google+
* Google Track Me,記錄上網狀態,可在Google Analytics查看個人上網狀態

網站工具

* 主要社交網站:Google+Facebook
* Google Tasks
* Google日曆
* GMail
* Anobii 看書記錄
* 豆瓣 看電影記錄
* 家庭記帳:家計本本
* 長文蒐集:Instapaper
* 個人網站:使用Google App Engine架設,改版容易
* 個人書籤網站:Google App Engine,常重複造訪的網站就那幾個,自己用JQuery Mobile寫一個分類書籤列表,在各種設備上都可以使用。在移動設備上的瀏覽器都不需用到書籤功能,當然也不需同步書籤了。
* 個人履歷:個人網站、Linkedin

記事

* Smultron (Windows用Notepad++)
* Evernote

設計

* 心智圖:XMind(FreeMind備用)
* 圖表:OmniGraffle
* Mockup:Balsmiq Mockups
* UML:Astah Community
* StoryLine:Twine

Office

* 簡報:KeyNote (PowerPoint、Google文件、LibreOffice)
* 文書:Page (Word、Google文件、LibreOffice)
* 試算表:Google文件

開發

* 開發環境:Eclipse+ADT
* 版本控制:hg、svn、git
* 持續集成:Jenkins

Android平板

主要取代電腦拿來看網站、Google Reader、GMail、Youtube、影片、電子書、漫畫等

* 主要瀏覽器:Firefox

Firefox在10"平板上表現很好,還內建將網頁儲存成PDF功能

* 個人書籤網站
* Google地圖
* GMail
* gFolder、Dropbox,用gFolder主要是可以從Dropbox下載任一檔案到Android的指定資料夾下
* gPaper,畫完後可以寄到自己信箱,選用這個主要是吃自己的狗食
* AttachEmail Pro,存附檔、加附檔到GMail
* Google Reader
* Youtube
* Google日曆
* Evernote
* Mindjet,心智圖軟體,修改完用gFolder傳上Dropbox,在電腦上可以用XMind或FreeMind來開
* MoboPlayer,不用轉檔就可以看RMVB等格式影片
* Repligo,PDF閱讀器
* 自製Epub閱讀器(吃自己的狗食)
* Anobiit
* SwiFTP,FTP Server
* 台北捷運地圖
* ComicBricks

Android手機

主要用來增加辦事效率,或用零散時間看電子書。
換了4.3"大螢幕後,拿來看Google+或Facebook的機率提高了

* GMail
* Google地圖
* Google Reader
* Blogger
* 內建相機
* 內建時鐘
* Anobiit,記錄看書狀況
* gFolder、Dropbox
* GTasks
* Mindjet
* OI Safe,記錄密碼,備份用gFolder存到Dropbox
* Repligo
* 自製Epub閱讀器
* Noom,整合健康管理工具
* SwiFTP
* 台北捷運地圖
* 內建瀏覽器
* Google+
* Facebook

一月 7, 2012
» 2011年個人總結


Java夜未眠一書裡,蔡學鏞說過:把工作、學習,和娛樂結合在一起,時間就會是別人的三倍。

2011年完成的事不算少,除了把個人終身大事解決了之外,因為一些原因,我接過了Ericsk主持的Taipei GTUG的棒子,負責規劃並舉辦了整年的GTUG活動(25場聚會+3~4場合辦活動+1場Hackthon),在過程中認識了不少人,受到許多人的幫助,同時也增強或新學到了關於辦活動、新技術等諸多的經驗與樂趣。

從高中玩社團起就陸續協辦過一些活動,雖然說「近廟的懂拜神」,多多少少已有些相關經驗,過去也沒少看管理、組織、行銷等書籍,但總的來說社交或團隊能力是我原本不實分在行的一環。幸好受到小Q、Jehuen、Ted、Shaka等朋友的幫助,2011年陸續與TOSSUG、Cloud TW、Google行動推廣部等單位合作,策劃或協辦了數場百人聚會,和諸多講者聯繫、討論聚會分享內容,或是更新Taipei GTUG網站、社群網站等,豐富了我下班後的生活。


在工作中,今年也帶領數人的團隊完成了數個專案,過程中訓練新同事、與同事溝通合作、與長官溝通和彙報、與公司各部門或公司外窗口的溝通,都多虧了過去透過書本學習、社群實踐中累積的經驗,讓我即使在公司眼中是新手上路卻能順利上手。


2011年也是個人數據化更徹底的一年,我記了整年的帳、整年的成功日記透過Anobii統計共看了203本書,總計42193頁;透過豆瓣統計共看了31部電影申請了個人的網域(gasolin.idv.tw),開通了Google+,上傳了第一個Youtube影片,貼了67+18篇博文;改版了一本書,發佈5款App,寫了6期雜誌專欄+為電子報推薦了一本書(數位記憶革命),做了11場公開演講,09年累積至今透過Yahoo公益捐助了共25個公益專案

前美國教育部長Richard Riley說:我們必須教導現在的學生,畢業後投入目前還不存在的工作,使用根本還沒發明的科技,解決我們從未想像過的問題。

這段話對學生們還是未來式,但是在產業劇變的今天,對在業界的我們已是現在進行式。

我也準備好繼續和對技術有熱忱的朋友們一起,透過活動,結合工作、學習,和娛樂,用網路/資訊技術改善生活、擴大影響力,讓身邊的人與環境一起變得更好。

十一月 16, 2011
» gFolder: 把dropbox當手機外接硬碟



官方的 Dropbox app可以讓使用者將Dropbox中的檔案存到手機sd卡的dropbox資料夾中,但如果想要將書放到sd卡的books資料夾、音樂放到music資料夾...對於這樣的需求,
使用官方Dropbox app就沒辦法辦到了。

gFolder可以將SD卡中任一目錄下的任一檔案放到Dropbox上的任一目錄下,
也可以將Dropbox任一目錄下的任一檔案放到SD卡的任一目錄下。

主要介面類似FTP程式,只要點選檔案,即可將檔案傳送到Dropbox或sd卡中。
當有網路的時候,使用gFolder起來,就像是在手機上直接插上了一個外接硬碟一樣。

當使用者跳出程式,下一次再啟動時,gFolder也會記錄上一次sd卡和Dropbox的所在目錄,
可以隨時回到上次的操作狀態。

gFolder同時支援平板和手機,並先使用Android 4.0的統一使用者介面,在手機上也有和平板一樣的使用者介面。

下載網址: https://market.android.com/details?id=tw.idv.gasolin.android.gfolder
QRCode:

十月 30, 2011
» 升級build.xml

用ant來編譯Android專案的開發者,
在2011/10月中升到r14之後版本的開發工具之後,ant檔案的格式又被修改了。


要升級到新版的 build.xml,記得先把原來的build.xml檔案備份,


$ mv build.xml oldbuild.xml


再跑一下命令行 


$ android update project --path . 


以更新相關檔案。


開啟新的build.xml並加入自用的相關設定後,最後再執行 


$ ant clean release


看看有沒有問題。


如果沒有問題的話,就恭喜你順利升級囉。

十月 19, 2011
» Android 4.0發佈


Android 4.0 (IceCream Sandwich)如期推出了這次的改進比較多是在軟體層面,套用Apple的OSX Lion廣告詞:
ICS擁有超過250種全新功能,
包括臉部解鎖、連續語音辨識、全景照片與影像特效、5倍瀏覽器速度、流量監測...
ICS把Android推向下一個紀元
Android 4.0比較重要的新功能已列在http://developer.android.com/sdk/android-4.0-highlights.html



對一般App開發者來說,OS部分的改進如Holo Theme系統佈景主題、Fragment API等都是3.x已經有的,現在套用到手機上。新的連續語音辨識、影像處理API等軟體功能,和Android Beam、Wi-Fi Direct等通訊技術可以玩出一些新花樣。

開發工具部分則是開始支援WebCam(Windows/Linux only)、新的初次使用設定精靈(Welcome Wizard)、比較好用的Layout編輯器、還有整合了Android Asset Studio製作圖示(Icon)的功能。

整體來看這次推出的功能雖然很多,但在系統整體架構上並沒有多做改變,開發工具也做了些改進,讓開發者更容易使用。比較糟糕的一點是模擬器延續了Android 3.x版的不良傳統,為了完全模擬ARM的指令,而使得模擬器執行相當龜速。要測試Android 3.x版以上的系統時,還是得買實機來跑才比較準。


順便公告一下: 因為基本的東西都沒有改變,大家可以放心使用「Google! Android 手機應用程式設計入門」來學習開發相容各種Android版本的應用程式,本書不會因Android 4.0再改版。

» 程式屍

程式屍常常待在他天然的巢穴裡,駝背坐在顯示器淡淡的光線中,在文字編輯器中輸入著複雜的標點字元組合。有時候,這個膽小的傢伙會離開他的窩,四處尋找咖啡或比薩。很快的,他就會回到安全的地方,繼續在鍵盤上做他一直在做的事
-- 編程創藝

八月 27, 2011
» 技術


大部份的技術可以被分為兩大類,一個是使用者真正想要的並且會主動尋求的,而另一種只是為了解決某些問題而推出的基本解決方案。 
後者經常流於行銷噱頭而最終引不起消費者實際購買的興趣。

» 使用Jenkins持續集成與發佈Android應用程式

這是上週在Coscup 2011活動中演講的主題與投影片。 

介紹:

Jenkins (http://jenkins-ci.org/) 是個廣為使用的持續集成(Continue Integration)框架,可以協助軟體工程師統合處理各種圍繞著「寫程式」之外的程式開發工作(如版本控制、環境設定、編譯、測試、發佈)。 

在這個議程中將和大家分享實際使用Jenkins持續集成與發佈Android App,讓管理多應用程式變得更容易的經驗。

八月 21, 2011
» AppInventor+愛無赦?(台客舞App開發心得)

AppInventor 是GoogleLab中一個有趣的工具,可以讓一般人簡單地透過像堆積木的方式寫出一個Android App。(剛好Make雜誌也出了AppInventor報導)這週三Taipei GTUG舉辦了AppInventor Bootcamp,由我先簡單介紹如何安裝與使用AppInventor後,再將時間交給大家,創作具備台灣特色,或能展現台灣特色與風格的App。首先當然是拿大家熟悉的BMI,重現在AppInventor上

接著則是介紹程式積木部分,程式積木部分做到了原BMI程式大部分的功能。可以看到用拖拉積木的方式寫一個轉換數值程式,是蠻厚工的一件事。(剛剛要截圖才發現這部份原始碼被覆蓋掉了Orz,等影片轉出來再把錄到的畫面嵌在這)接著活動就進入Hacking模式。今天不少人都在問:用AppInventor寫好的App要怎麼轉換成程式碼?答案是目前沒有這樣的功能,也許年底AppInventor Open Source了之後,會有好心人寫出來吧...昨晚Hack的成果,是「台客舞App」。台客舞App簡介:看過jolin的愛無赦MV嗎?
裡面的電音舞曲和掌心燈是不是很搶眼而讓人一見難忘呢?這個AppInventor作品結合了電音舞曲播放和掌心燈的功能,只要你擁有Android手機,就可以隨時跳一首台客舞曲~夠台味吧XD這個程式很簡單,主體是兩個按鈕和一個聲音檔案。
聲音檔案的部份,AppInventor目前只接受小於2MB的檔案,因此先用Audacity工具裁減了一小段轉成MP3檔,然後加入這個專案中。另外兩個按鈕,一個「播放」(Play)按鈕放在最上頭,按了之後即開始播放音樂。再按一次後就停止。另一個按鈕則是佔用大部分的螢幕,並將底色改為和背景同樣的黑色,在按下後會變換成白色,以模擬掌心燈的開、關狀態。
有興趣看現場DEMO的人,可以參加(Coscup BoF) Appinventor Hack & Show 活動(希望有人願意拿著現場秀一段台客舞XD)。程式可以到http://showinventor.appspot.com/main/gallery下載,供大家娛樂一下。(Android Market就算了吧)

八月 12, 2011
» Android 3.x與手機?


因為有一些人對Android 3與手機的關聯無法搭上線,在這邊記錄一些FAQ:

1. 手機應該和android 3無關吧!小弟還特別到官網讀了正式文件,確認android 3是給平板電腦用的,android 2才是給手機用的,後續或許會整合,但那是以後的事了不是嗎?

Android 3是Android最新版號,而且向下相容多數API。用Android 3.2 SDK來開發2.x版本(手機)的應用程式完全沒有問題。

第四版主要使用3.x的SDK,只有要使用手機的虛擬機器時,才使用2.x SDK提供的虛擬機器(因為3.x SDK中只附了平板虛擬機器,沒有附手機版的虛擬機器)。採用本書寫法的話,程式在平板和手機上都能正常運行。您可以拿您手邊現有的任一開發中App來測、或等拿到書的時候照著試試,看看是不是確實能在3.x SDK上開發手機應用程式。

2. 本書既然叫Android 3,卻沒有講平板用的fragment API?
首先,這是一本入門書。這本書內容和其他同類書籍不同,關注的是跨版本的基礎知識(所以書名叫「入門」)。封面說明的部份有寫,想傳達的是用這本入門,就算是更新的版本拿來一樣適用。在寫現在版本時想的是善用開發工具、與市面上主流版本相容,而非關注新功能。

而現在平板在Android系統中的市佔率 1.2%,要撐起書市還不到時機(個人意見)。一般入門的開發者(本書的預設讀者群)會專為了1.2%的使用者而開發?我認為不會。

有些開發基礎,而又看過我的書的人,應該知道我一貫建議去官方網站查這些進階的API,而不是苦苦等中文書。


平板的fragment API(將畫面分隔的API)有兩種版本,一種是向後相容版,可以跑在Android 2.x 機種上。另一種是原生版,只能跑在3.x Tablet上。根據我個人的評估,這兩種API還會有某種程度的改動,除非是專為了平板而開發,不然學習fragment API還不是時候(也許等到Ice Cream Sandwich?)

3. 看第四版的目錄好像沒有講到Android 3的特性?
其實各種新東西講了不少,但都已經整合在各個章節中,融入了整個學習過程裡。

在主要開發手機應用程式的情況下, 2.x 和 3.x 還有什麼差別哩?3.x版為了平板做很多事情,若是還繼續用 2.x SDK開發,程式放到Tablet上會有些"不太Native"的感覺,如選單會出現在平板的下方,而不是如其他內建應用程式顯示Action Bar在上方。

比起專為平板設計一份程式碼,在Android上要解決這些問題較容易。本入門書第四版的目標是「寫一次,就能在手機、平板、Google TV等設備上執行」。

因此我是以這樣的想法,以手機為主,在維持本書架構的開發過程中,加入更多實際經驗與技巧,來協助Android應用程式開發的入門者或剛接觸平板等機種的開發者。第四版除了圖片重新擷取之外,內容大概有30~40%的改動。新版加入了一些新章節,介紹了選單、關連選單、App Widget(桌面小工具)與平板相容設定。還加上了AsyncTask、Admob等章節,在主要使用者為手機的情形下,也能讓平板的使用者得到不錯的使用經驗。

「雖然平板等機種的數量少,但如果不麻煩的話,還是盡可能支援吧?」如果您贊同這樣的想法,那看這本書可以得到您想要的。


不必懷疑,這是我的誠意之作


PS: 本書歷版以來都追求和市面其他書籍不同,不求全,只追求初學者透過本書能確實理解Android應用程式開發,並能投入實用。我一直以支持入門者的想法來改版或寫作。除非是spam,不然大可不必揣測我會隨意砍誰的回覆。

七月 31, 2011
» 樂手與程序員


想要找一份穩定安逸工作的音樂人成不了音樂家。音樂這行很殘酷,壓根也不可能安逸。能成為專業樂手的人都想成名。一名樂手要不就努力想成名,要不就根本別踏進這一行。 
經常有人問我為什麼很多優秀的樂手同時又是很棒的軟體開發工程師。
這絕對不是因為這兩種職業使用一樣的腦部功能,也不是因為他們都是追求細節和創造力的工作,而是因為一個渴望成功的人肯定要比那些只是單純完成工作的人更有可能成功。 
即使我們不能成為Linus Torvalds那樣的人,但確定高目標至少可以讓我們不再平凡。 
-- Chad Fowler , The passionate Programmer

七月 25, 2011
» 使用Play! Framework在GAE上架網站


今年自己在網站開發方面做了很多改變。

第一件是Domain name續約並全面採用 gasolin.idv.tw 系列網址。

本如部落格網址可由 blog.gasolin.idv.tw 連結,
Android書籍/應用相關訊息可由 android.gasolin.idv.tw 連結。

第二件是使用的網頁框架改變。

個人的首頁 www.gasolin.idv.tw 仍然架在Google App Engine上頭,
但背後使用的技術,也從Python based的 GAEO ,改為使用Java based的 Play! Framework

使用 Play! Framework 的好處是它並不像GAEO一樣完全捆綁在Google App Engine上,而是隨時可以搬離GAE獨立運作。

再者Play!的專案架構和使用方法很接近TurboGearsDjango等現代的網頁框架,因此熟悉現代網頁框架的開發者應該能很快地上手。開發的時候可以在本地端開發,而且修改後的結果也能即時自動編譯並顯示,用起來非常接近使用動態語言開發的使用經驗。(Play!的命令行工具是用Python寫的:))

Play! 的另一個好處是有很好的模組(Module)架構。要將網站發佈在Google App Engine上時,透過GAE模組和搭配Siena(提供ORM層)、crudsiena(提供自動Admin管理頁面)模組,可以不被Google App Engine的一堆限制所制約,從而得到完整的開發經驗。

Play! 的官方網站上有很齊全的文件可供參考。所謂的「齊全」到了什麼地步呢?
除了簡介、教學、模組介紹之外,甚至還有cheatsheet !


要從頭開始建立一個Play網頁程式到發佈在GAE,要做以下6幾點

1. 建立專案

$ play new  [project name]

2. 安裝相關模組

執行

$ play install gae-版本
$ play install siena-版本
$ play install crudsiena-版本

3. 修改模組依存關係

進入專案目錄, 修改 conf/dependencies.yml 檔案


# Application dependencies

require:    - play -> play [1.2.1,)
    - play -> secure
    - play -> siena [2.0.0,)
    - play -> crudsiena [2.0.0,)
    - play -> gae 1.4
4. 自動檢查模組依存關係

執行

$ play deps

5. 修改GAE相關設定

根據GAE模組提供的文件做相應的GAE發佈設定(指定要deploy的GAE代號)

6. 發佈

執行

$ play gae:deploy --gae=[app engine java sdk path]

如此即完成整套使用Play!  + Google App Engine 的配置流程。


Update 2011/7/20: 在Taipei GTUG活動中和大家分享了Play! on GAE的相關經驗,並公開投影片

七月 3, 2011
» 對Google關掉台灣Android Market付費App下載的觀察


今天Google Android Market關掉台灣付費App下載的新聞動靜不小,也有一些相關的討論出來。但不管法規合不合理,明顯政府短期內都不太可能修法。

影響的App類型

在談這個事件的影響之前,我們可以先界定「退費」(refund)機制的影響範圍。在允許48小時,24小時,15分鐘,或是7天無條件退費的爭議上,有最大影響的是那些「用過即丟」的App(如早期iPhone上的iFart模擬放屁聲程式)和遊戲、內容App。

對於高品質的應用程式等原本就用不太到退費機制的App來說,影響不大。但這次Google關掉了台灣使用者付費機制,對這些原本用不到退費機制的App也造成了影響。

「用過即丟」的App價格很便宜,一杯珍奶的價格($0.99,接近30元台幣)可以讓下載的使用者開心幾分鐘。有數天無條件鑑賞期存在的話,大多數的使用者肯定會在這期間退掉。這確實可以減少使用者覺得「被詐騙」的感覺。因此在這樣的法律下,這類App將沒有生存空間。

遊戲App方面,大多數移動遊戲的遊玩時間都不長,模式也較簡單。在不耐玩的情況下,允許的退貨時間長短,對這類App的盈利結果也會有很大的影響。

這幾年內容App(如App電子書)的消費方式都跟著數位音樂走,但數位內容和數位音樂的消費方式還是有些不同。我們會重複地聽音樂,但很少會重複地看同樣的內容。對這類App來說,退貨規則是48小時,24小時,15分鐘,或是7天,就成為很關鍵的問題了。

影響

我們了解了受影響App的範圍,那麼在現行狀況下,我們可以觀察看看政府和Google兩方的舉措,會對台灣Android應用程式市場造成的影響。

消費者

1. Google把Android Market台灣的付費關掉了,除了無法再看到付費App之外,消費者之前買過的App都無法下載,傷害了消費者對Android Market的信心。有一就有可能有二。之後就算再開啟Market付費功能,消費者在消費前也要再多想想,是不是哪天這種鳥事又再來一次。

update: 已購買過的程式還是可以透過Web版的Android Market再下載。

其他市集業者

2. 在Apple、Google都得照辦的新聞出來,面對大無畏的政府,中華、遠傳等電信商自有的市集是否也得儘快跟進,否則政府也會將鐵腕轉向這些大電信商,用同樣的標準來要求,用100萬連續開罰?



開發者

3. 市場是否還存在?開發者是否還願意開發付費版的台灣專用App?

4. 若Android Market再開放,但要在台灣販售得遵守台灣7天鑑賞期的法規,國外開發者是否願意勾選在台灣開賣他的付費應用程式?

政府

5. 台灣政府的反應,為什麼是台北市出面要求和罰金?

update: 消保官是行政院指派, 隸屬地方政府管轄。因為Google公司登記在台北市,所以由台北市管轄。


相關連結

六月 3, 2011
» Taipei GTUG活動簡介

今年初接了Taipei GTUG活動的Organizer,開始更頻繁地和開發者們相處,並學習如何組織各式對開發者有幫助的活動

台北GTUG(Taipei GTUG)組織的全名是「Taipei Google Technique User Group」,為非Google官方的組織。GTUG主要參與者是開發者(developer),討論Google相關技術議題(Web, Mobile),在全世界都有類似的組織。隔週三晚間7:30聚會,每個月盡量安排一場Android(Mobile)相關主題,和一場Web(Chrome, App Engine...)相關主題。所有活動會公告在網站和各種社群網站(Twitter, Plurk, Facebook)上。

在五月Google IO Extended同樂會活動開始時,我有製作一個Taipei GTUG活動的簡介(英文)來和與會者(和全世界)介紹Taipei GTUG活動。在昨天Android 應用盈利模式及成功案例活動中,我再將這份活動簡介更新一番,以中文來介紹我們的台北GTUG,並鼓勵大家來參與Google IO 2011影片分享讀書會活動。

在北部的開發者們,對Google相關技術有興趣的話,都歡迎查看時間,前來Taipei GTUG和其他開發者聊聊喔:)

五月 30, 2011
» [投影片]Google IO 2011回顧 (Android部分)

今年的 Google IO議程中有太多好東西,但是每個議程都是一個鐘頭,對大多數人來說也是個負擔。

上週六在癮科技主辦的非手機 Android 聚會上分享了「Google IO 2011回顧」(Android)投影片。從Google IO 2011活動中找出一些我已經看過的有趣內容,在30分鐘之內分享給大家。

同時也在會場公開了接下來會在Taipei-GTUG舉辦的「Google IO 2011演講分享讀書會(系列)」活動。

讀書會的目的是希望發起由參加者認領一至數個Google IO中的演講,再用5~1­0分鐘和大家分享精華,讓參與的人可以用更短的時間綜合了解Goo­gle IO的內容。

歡迎有興趣一起學習的人報名參與喔 :)

五月 15, 2011
» HoneyComb Highlights

在Google I/O 2011大會上,Romain Guy作了「HoneyComb Highlight」演講,把大多數HoneyComb版的新功能都講到了。

投影片


錄影

五月 11, 2011
» 正面迎擊,看 Google I/O 2011 Day1 Keynote 感想

看完這次的Android I/O Keynote(咦,好像名字不是這個),
Android Market平台除了已推出的應用程式(App)、書籍(Book)之外,現在將提供使用者影片租賃(Movie Rental)、音樂(Music)這兩種線上服務。

同時Google TV也將接入Android Market。這些努力將對手尚未在iOS平台上開通的服務一次補足,同時Android開發者也首次有了可以向iOS開發者說嘴的優勢(可以開發App for TV)。

更重要的宣告是Android 3.1Android 2.3.4的推出,全力支援iOS碰都不碰的USB相關技術

首先是支援USB Host,讓數位相機可以直接接到平板上,把照片傳進平板。

再來是支援USB Accesories API,讓周邊設備可以直接透過USB與Android設備連線,與Android設備中的應用程式互動。當Android設備透過USB接上周邊時,會自動列出支援的App或是App的下載連結。

接著Android@Home Framework則是在USB、網路等周邊的基礎上切入智慧家電領域。

Google的三螢一雲已經成形,而Google的三螢一雲不僅只侷限在手機、PC、電視、Web上而已,Google的三螢一雲具備著更通用的涵義:移動、定點、家庭、雲端

對開發者而言,可以用同個系統開發App for Mobile(手機、行動裝置)、App for Tablet(平板)、App for TV(電視)、App for Accesory(周邊)、App for Home(家庭),學習Android系統的吸引力無疑大大地增加。

看到這次Android 3.1的發佈,我第一次有Android OS開始追上了iOS的感覺。面對這樣的正面迎擊,其他廠商該要擁抱它呢?還是也不落人後地端出什麼好料呢?Google I/O才剛開始,後續值得期待。

四月 25, 2011
» 程式設計工藝

我傾向於將程式設計看做是一種工藝--它需要技巧、手藝、訓練和經驗。
它的產品具有一定的功能,並且很漂亮。
程式設計還含有藝術元素,它是一個創造性的過程。
與這種藝術性結合在一起的,還有對工具和技術的掌握-- 這些是工匠所具備的特徵。
--編程創藝

三月 26, 2011
» Virtualenv 簡單入門

功用

使用 Virtualenv 可以讓你預先建立一個虛擬環境,在虛擬環境中開發 Python 程式,可以保持 Python path 乾淨,並減少因為機器上需要同時支援不同版本函式庫,造成各函式庫彼此之間相依性的困擾。

而且使用虛擬環境後,到時要將環境轉移到別台機器上,也減少很多設定上的問題。

安裝

$ easy_install virtualenv

設定環境

$ virtualenv --no-site-packages [dev_place]

即建立一個名為 [dev_place] 的資料夾(中括號裡的名稱自行填寫取代)。

切換到虛擬環境

進入 [dev_place] 目錄,輸入命令:

$ source bin/activate

若看到路徑提示前多了個([dev_place])符號,即表示已經進入了虛擬環境。

這時我們可以使用預設提供的 easy_install 工具安裝要使用的函式庫、或是安裝各種 Python 程式。

安裝的函式庫會被放到 [dev_place]/lib/Python[版本]/site-packages/ 目錄中,跟一般的 Python 函式庫配置方式相似。

離開虛擬環境

要離開虛擬環境,只需輸入命令:

$ deactivate

即可回到預設的命令行狀態。

其他操作

如果你的電腦上有裝多個 Python 版本,在下 virtualenv 命令時加上「--python=python[版本] 」當作參數,例如建立2.6版的虛擬環境命令為

$ virtualenv --no-site-packages [dev_place] --python=python2.6

也可以建立出不同版本的 Python 虛擬環境,讓你可以更容易地在多個 Python 版本間做測試。

其他使用方法可以輸入「virtualenv --help」參考印出的說明。

Python3

目前 virtualenv 官方還不支援 Python 3.x, 但是有開發中版本可用,可使用Mercural下載來安裝

# hg clone https://bitbucket.org/brandon/virtualenv3
# cd virtualenv3
# python3 setup.py install

三月 8, 2011
» 理解Open ID

Open ID簡而言之,就是在瀏覽到某個網站時,不用在這個網站先註冊帳號,
只要透過OpenID機制用自己現成的Yahoo、Google等大網站的帳號登入,
就可以開始使用這個網站所提供的個人化服務。而且自己Yahoo、Google等帳號的密碼也不會透露給這個網站知道。讓使用者可以更放心嘗試各種新的網站應用服務。

在使用者登入這個網站後,這個網站還是可以在自己的資料庫中記錄關於這個使用者的各種訊息。

對應到現實世界的例子,就好比我們只要持有台灣護照,到日本、加拿大遊玩時免填簽證,就可以進入該國家。只要在該國海關前出示護照,表明我們是來自台灣的遊客,海關確認護照後即准予通行,於是我們就可以進入他們的國家。

回到網路的世界,舉Google為例,我們也可以查看Google提供的各種外部網站(外國)接取Google帳號(Google護照)來登入的方式

Third-party web sites and applications can now let visitors sign in using their Google user accounts.

http://code.google.com/apis/accounts/docs/OpenID.html

Facebook Connect 也是使用類似的機制,提供外部網站可以使用Facebook帳號登入,有五億潛在使用者(Facebook國民)可以更容易地使用這個網站(外國)提供的應用服務.
http://www.facebook.com/help/?page=730

http://developers.facebook.com/docs/guides/web/

A Feedjack powered Planet
A Django site.