Posts filed under '評論'

即時共同 Coding – Cola

自從 Web 2.0 時代以來,share editing 是一個常見的應用,像 Zoho Writer 就可以即時共同修改同一個文件檔。但在程式開發方面,雖然一直都有 Collaboration 的觀念,但工具方面一直都沒有看到可以 share editing 的 (可能是有,不過我還沒有看過)。

Eclipse 的新版 Ganymede 最近 release,主打的除了更強化 Mylyn 的功能以外,ECF (Eclipse Communication Framework) 也出了一個新版。在這個版本裡,名為 Cola 的的 share editing 環境是主打的功能,有一段清楚的 demo 在這裡,也可以看 DocShare Plugin 的介紹。其實一堆名稱我也覺得很困擾,到底哪個代表什麼,不過既然作者在 demo 裡都說是 Cola,那就跟他一樣叫 Cola 吧。

使用時必需案裝 ECF plugin,可以在這裡找到。其實目前 Cola 的功能並不算強大,在 ECF 使用 XMPP (Google Talk) 或 Skype 的 provider 時,才能使用 Cola 的功能。在 communication perspective 中連上 XMPP 或 Skype,之後加入好友名單,就可以選要要 share editing 的好友,檔案內容一開始只要有一方擁有就好,coding 時雙方的修改都會即時被看到。

實際操作時覺得還蠻順暢的,不過如果沒有配上同時使用 Skype 語言溝通的話,那感覺上就像有個不知名的人在偷偷亂改你的檔案。憑心而論,這個功能目前趣味性大於實用性,我能夠想像的是搭配語音溝通的情況之下,讓身處兩地的一位老手帶著一位菜鳥去寫 code,這樣子對菜鳥的進步是有很大的幫助。若是實際上開發 project,大多不必如此大費周章去搞 share editing。但是我還是很樂見這樣的功能終於能夠看到比較成形的產品,畢竟先有了技術平台,運用就有機會出現。

1 comment June 28, 2008 (Saturday)

Google App Engine – 新時代來臨的震撼

Google App Engine (GAE) 月初在公開發表,announce 的那幾天每天都佔據了各大技術網站的版面。一個全世界都在看,全世界都在玩的產品,一定有它獨到之處,當然一定要來研究研究。Download 了 SDK,試著開發了一個簡單的程式,其實我對 python 並不熟,加上對 Django 一無所知,但卻不會覺得開發很困難,反而覺得比開發 Java 還要快還要順。雖然使用 GAE 的經驗很淺,不過 GAE 給人一種新時代來臨的感受。

在 Business model 方面,其實有太多太多的討論跟介紹了,一定很容易找到。會覺得是一個新時來的來臨,不是因為這是一個可以跟 Amazon S3 / EC2 對抗的 service,而是在開發技術上面 GAE 也做了一些突破。

跟 Java web development 比較起來,GAE 在開發上讓人覺得最驚艷的地方就是修改 code 的 feedback 速度。一般的 Java web development 在修改 code 之後,需要 compile -> deploy -> restart web container 才能看到修改,但使用 GAE,基本上你的修改馬上可以 apply,沒有 compile、沒有 restart server。這個說法也許有點落伍,很多人馬上就會想到 Ruby on Rails (RoR);也有人會想到這不是本來 Python + Django 就有的能力?就算是 Java 界,Groovy / GrailsJRuby 等也可以做到同樣的事情,何必大驚小怪呢?

GAE 當然不是只是拿 Python 跟 Django 出來騙騙小孩的玩意,真正強大的就在 Big Table 的部份。不要問我 Big Table 是什麼,我答不出個所以來,但站在 GAE developer 的角度而言,沒有 DB 這個東西。使用 GAE 在開發時,你的 code 中的 domain model 就是唯一的 model,沒有 DB,也沒有 DB schema、版本等問題。修改 domain model 的 code 馬上反應在下一次執行裡。GAE 的 domain model code 建立在 Django data model 之上,用起來很方便,類似 RoR 的 Active Record,但是少了 DB 的麻煩。

即使使用 RoR,在 domain model 上還是有得頭痛,因為 DB 的 schema 如何跟 code 裡的 domain model 保持同步就是一個大問題,一般 DB Migration 可以應付這個問題,在 domain model 改變的同時,準備一段 migration 的 code / description 就可以讓開發架構幫你把 DB 改到同一個版本。在 Java 也有 liquibase 可以做到這件事。但免不了要下去改東西,更嚴重的是,這個修改很可能沒有辦法即時反應 (至少在 Java 應該還是免不了要 compile -> db migration -> restart),所以又掉回了比較慢的 development lifecycle。

那麼用 Big Table 有什麼 trade off 嗎?有的,就是大家熟悉的 SQL / relational model 等等武功全廢。雖然 GAE 提供了一個叫 GQL 的東西,語法類似 SQL,但沒有 join 等等在 SQL 裡威力最強大的功能,思考也不宜使用 relational model 去想你的 data,因為這樣會完全想不通要怎麼辦。會不會有什麼事變成做不到了?我想有可能,但絕對不會太嚴重,因為絕大部份講究 OO 的 code 本來就很少直接運用 relational model 在操作,所以才有 OR mapping 的出現。如今 GAE 一不做二不休使用了 Big Table,除了宣示它在 scalability 上舉世無雙以外,也帶領 GAE 的 developer 進入一個新的時代,一個不去用 relation model 思考的年代。

我不是花了很多的時間在 GAE 上,寫進階的系統會不會出問題我沒有辦法知道,但以基本 web 常見的功能而言,很容易開發。Big Table 完全不會影響到我的思考,反而在 development lifecycle 上給了很大的進步,幾乎所有修改都能馬上看到 feedback。Agile development 中,fast feedback 佔了很重要的一個地位,愈快有 feedback 代表了開發的速度愈快。拿 Java 作比較,在 code 的修改上 Python + Django 的 feedback speed 就已經快了一大段,再加上 Big Table 又勝過了所有使用 DB 的 solution (包括 RoR、Django、Grails and JRuby 等等)。這個開發速度上的震撼讓我一直在想,用 Java 開發 web 是不是已經過時了呢?在 GAE 的範圍以外又如何去趕上這個突破,跨入這個新的時代呢?我想世界上有其他更多的人已經在想這個問題,新的工具、機制我想很快就會出現,open source big table 的技術也慢慢的浮上來了,新時代也許會靜靜的到來。至於這個新的突破跟誰會有關?是不是只有如 Google 般大的公司才適合用 Big Table?這個就留待日後驗證好了。

3 comments April 28, 2008 (Monday)

Spring framework 市場持續擴大

SpringSource (以前為 Interface21) 接二連三在市場上有大動作。

首先是推出認證機制,通常能夠推出認證的都應該是市場上比較主流的技術,而且能夠被多數人所學習的。而且認證對於教育的市場有非常大的相關,也代表了將會有更多更多的人學會 Spring framework。

第二是在 SpringSource Team Blog 上公佈了 Spring framework 與 EJB 工作職缺的比較,內容發現了:

  1. EJB 職缺需求持平
  2. Spring framework 需求大幅提升
  3. EJB 與 Spring framework 總需求有一定幅度的成長

這點正好呼應了為什麼 SpringSource 敢推出認證機制。

最後就是今天的新聞,SpringSource 買下 Covalent,Covalent 是一家做 Apache HTTP server 或 Tomcat 等等的技術顧問公司,也有在推 Terracotta。技術顧問公司本身沒有產品,SpringSource 買下來主要一定是看重它在市場上推廣技術的資源,而且有顧問公司,也可以更有力的深入企業客戶。

以往 JBoss 也是走顧問導向的方式,SpringSource 也走向這一步,是否能夠比 JBoss 的顧問方式做得更成功呢? 如果 SpringSource 真的能夠再把市場擴大的話,就很有可能成為 Java enterprise development 的必要條件了。也許真的有那麼一天,所有的 Java developer 幾乎都會使用 Spring。當然到時會 Spring 也就不是什麼了不起的事情了。不管是不是真的有那麼一天,Spring 在市場上繼續擴大是沒有問題的,就技術而言,Spring 有很多替代品跟競爭者,但就市場面去看,Spring 目前是沒有什麼對手呀!

1 comment January 29, 2008 (Tuesday)

Xuite.net Personal Portal 的新風貌

最近連上 Xuite.net 會發現首頁又有了新改變,這個 personal portal 的首頁進入 Beta II。如果有使用過 Netvibes, iGoogle 等服務的人當然不會陌生。國內對於 personal portal 的做法一向很愛用鎖國政策,portal 上的元件再怎麼設定都只讓客戶連到自己的服務,對於外面的服務大都不願提供連結方式。Xuite.net 在這方面就好多了,有 RSS component 可以連結外部,至少有達到一個 personal portal 的最基本要求。版面可以自由拖拉設定,新增 tab 等等。每個 tab 能有自己的 layout 以及背景的設定,這點是很多國外的 personal portal 也沒有的。

另一個比較特別的地方是它有一個 public 的個人首頁。 一般的 personal portal 只能由 portal 的 owner 連入去,而 Xuite 提供了一個個人首頁的機制,可以讓別人連進來看到你所設定的首面。這個算是一大特色,算是結合了國內很多個人網站以及國外 personal portal 兩方好處的一個想法。至於日後有什麼發展,就要看能夠提供多少吸引人的元件了。

Add comment January 2, 2008 (Wednesday)

Unitils — 一次滿足所有 unit test 的需求

談到 unit test,大家馬上想到的應該會是 JUnit;又或許是比較新一點的 TestNG。有些比較有經驗的人可能就會提出,那 servlet 如何測試?Spring bean 又如何測試?DAO 又如何測試,怎麼去建立 DB 的資料?如何去 mock 一個物件?

這些問題早就出現了,也早就有解法了,只是每一個問題可能都會對應到一個  library 或小型的 framework。 一直都沒有一個一次把問題解決的方案,直到 Unitils 的出現。Unitils 發源於 Ordina J-Technologies 的一個 unit test discussion group,會中他們討論出一份 Unit testing 的 Guidelines,而 Unitils 正是這份 guideline 的實作。

在 unit testing framework 的部份,Unitils 是 JUnit3, JUnit4, TestNG 三種都支援,所以不管你最熟悉的是哪一個都可以順利的使用 Unitils。在功能方面,Unitils 主要 support 以下幾項功能:

這些功能的文件都寫得很簡單易懂,其實觀念也很簡單,歸納一下只有幾個:

  • 使用 Java 的 equals 去 compare 通常不會是我們真的要的狀況,所以提供了比較寬鬆的比較
  • Unit Testing Database 必需要能夠自動的維護 (建立與更新版本)
  • DB 的資料必需要能夠在測試中自動加入
  • Test fixture 像是 Spring bean, mock object 等等盡量使用 annotation 標註,由 framework 自動產生

另外,Unitils 本身是由一堆 module 所組成的,如果它所提供的 module 還是無法滿足你的需求的話,要擴充其實很簡單。有興趣的人看一下 Unitils 的 source code 以及 unitils-default.properties 這個設定檔應該就知道怎麼做了。其實很難得一個小小的 unit testing framework 居然在模組化上做得這麼精美。

以前在這裡討論過 full stack application framework 的興起,同樣的 Unitils 這個可以滿足所有 unit test 需求的 framework 也很有可能慢慢會變成主流。只要一種技術成熟到一個程度之後,將會有整合的環境出現。在 JUnit、TestNG 都沒有太多的突破之後,Unitils 補足了這個空缺的需求。 如果你還在煩惱要怎麼開始做 unit test,那就用看看 Unitils 吧!

Add comment December 2, 2007 (Sunday)

雜記

已經好久沒時間長篇大論了,不寫下一點東西又覺得很可惜:

  • 在 Google Code 上開一個 project 比在 SourceForge.net 要簡單,不用慢慢審查。Subversion repository 的空間是 100MB,不過這種無政府狀態的環境會變成怎樣呢?雖然 SourceForge.net 也是一堆死掉的 project 沒人跟進。
  • http://devshots.com/ 是一個 for developer 的 search engine,底下還是使用 Google,不過查出來的東西有差嗎?畢竟 developer 是世界上搜尋能力最強的一群人吧,或許對別的領域做點專用的搜尋引擎會比較有用。
  • http://softwarecreation.org/ 這個 blog 的作者 Andriy Solovey 雖然我不知道是誰,不過他的文章都是引經據典,只要在做跟 software 相關的我想多少都有點幫助。
  • ZK 己經推出 version 2.4 雖然我沒有很仔細看有什麼功能改進,不過我倒覺得功能已經不是最重要的一環了,ZK 如果要做得更好,需要有使用的 best practice。Framework 部份是很強大,不管是寫到像只有 JSP 沒有 Servlet 的 zscript 還是弄到像 Echo2 的做法,ZK 都可以 support,回到根本,Spring 跟 Hibernate 有很多人做出 best practice,後來官方也會提供指引,這是成功的 open source project 必需要走的路。再來就是整合性的 component,一堆強大的 UI 終究還是需要跟後端取得資料,這個地方會是關鍵。

Add comment June 21, 2007 (Thursday)

傳教士講 Web 2.0 與 Web 3.0

事實上,這不是原定的題目,他自行把一個平凡無奇的題目,換成這個聳動卻不太可能有人講得好的題目,實在是很有勇氣。自許為傳教士的他,跟基督/天主教的傳教士們必需交代上帝創造世界以及耶穌受難的故事一樣,他把電腦網路的發展從頭細說了一遍。當然這是有他鋪陳的必要,但對於台下幾乎全都是 master degree of computer sience related field 的聽眾,一定引發了學生時代的美好回憶。這歷史課上下來一個多小時,重點就是電腦的進步降低了運算成本,網路的進步降低了連結成本。最後引出借用的設備不如專用的設備。雖然這個是對於 Web 1.x 公司生死判定很好的一個指標,不過早就蓋棺定論的事情,多談無益,Wal-Mart 的書看了你也當不了下一家 Wal-Mart。
有這麼長的一段鋪陳,重點當然是 Web 2.0。要講 Web 2.0,這位傳教士是夠資格的,好歹他家開了一個網站,什麼服務都加了 2.0 在後面,要說台灣哪個 Portal 有最多 2.0 的服務,想來是非它莫屬了。不過出人意表的是,傳教士投影片的 Content-Type 是 text/plain,沒有任何一張圖。對 Web 2.0 熟悉的朋友可能已經想到問題所在了,那幾張已經跟十字架一樣偉大的 Web 2.0 示意圖自然是沒有出現了。這樣也沒什麼不好,反正圖早就看到煩了。在 Web 2.0 裡我沒有記得太多重點,事實上是傳教士的成功經驗談,由 eCommerce 講到拍賣,由雜誌談到 Skype。演講中樹立了某 Y 開頭的網站是大魔頭,當然也不忘對有名大站放幾枝暗箭。如果以週五晚上的輕鬆娛樂來看待是不錯的,只是台下的人也許都認真了。傳教士講的都是他成功的經驗,另外也有談了一下 Y 公司在南韓被打敗的事情。這些都是 Web 2.0 世界的小小事情,也許對大局沒有太大的關係。可貴的是傳教士都有講他在沈中的包袱中如何跨出一步,這個經驗絕對是企業主需要的,因為愈成功的企業有愈沈重的包袱。在 Web 2.0 這段當中,我最認同的話是「不要與流量為敵」、「做使用者真正想要的」,至少那已經是底限了,目前成功的 Web 2.0 網站絕對不只如此。
Web 3.0 的部份,本來以為 NuWeb 要粉墨登場,不過看來我估計錯了。完全沒有跟 NuWeb 沾上邊的東西。傳教士自己講了一些觀點跟看法,使用他詳細的歷史課為主軸,描繪出一個 Web 2.0 過後的的世界。那個世界,是大家用專用的設備做專屬的事情。所以,嚴格來說,也不是什麼 Web 了。話說回來,傳教士在運用價格、媒體、實體產品、金流、物流等等網路購物以及雜誌所學到的技巧,確實比起純粹的軟體服務要好多了。一直以來傳教士有打贏的也多半是在這些需要實體配合的環境,他心中的 Web 3.0 是個需要專用設備的世界自然也不奇怪了。當然,能賺錢才是重點,什麼是 Web 2.0、Web 3.0 一點都不重要。
要說傳教士講的不好嘛,其實他在演講中帶出的想法、理念已經是比之前清晰很多了。也許如小白大大所說,最近傳教士旗下的記者們也蠻上道的,是否因為這樣而讓傳教士得以理清大局?不過說歸說,做又是一回事了,Portal 2.0、皮克公園等幾乎都是笑話、開記者會阻止 Y 公司買無名、外傳收購 Pixnet 的事等等,當然傳教士是對那些主題一字不提了。我一直以來的評價都是,有本事就做個像樣的服務,使用者自然會選擇,這點也是他自己有說,Web 2.0 世界使用者會自己選擇的,那又何必開什麼記者會呢?個人新聞台早就講到爛掉了,全世界第一個 Blog / Web 2.0?你嘛幫幫忙,自己都說是不是第一個不重要了,何必還在話當年呢?露天拍賣的確是不錯的經驗,但我不認為是有巨大殺傷力的服務。畢竟跟 Y拍還是同一個世代的東西,只是市場由賣方漸漸的走向買方,所以如果服務是提供買方更多的力量的話,將會有更多的機會。而讓我最失望的是,整個演講的觀點都只放在台灣。如果網路已經把連結的成本變得很低,就不要把眼光只放在台灣,不是嗎?

Blogged with Flock

4 comments March 24, 2007 (Saturday)

不要放棄學習之心

學習是進步的來源和動力,而人其實都是好奇又有學習心的。但在環境的影響之下,都漸漸變得現實。現實的確是眼前最需要解決的問題,但如果太過於現實,就會變得很急功近利。

如果在看到一件事物時,不要單單的問我們能不能用或是可以用來做什麼,而是去欣賞它的優點,去了解它背後的原因,再來看是不是適合拿來用,那應該會有更好的效果。有些事是急不來的,而且絕對不可以放棄學習之心。很多人都會投資,也知道長期投資的成長力道是非常可怕的。如果把學習視為一種長期投資,常常維持了解視物背後原理的心態,那長期下來,會是指數成長的。

一旦急功近利,大概都只會看到事情的表面。是美侖美奐的外表在吸引人嗎?也許是貼近人心才真正的吸引人。堅持自己的信念,相信只要不放棄學習之心,一定可以做得更好的!

Blogged with Flock

2 comments March 9, 2007 (Friday)

Openkapow – 夢幻 mashup 工具

自從 Web 2.0 興起,國外網站的 mashup 大行其道。不過要自己去做 mashup 一直以來都不是件簡單的事,除非 service provider 本身就有提供夠強的 api 才會比較簡單一點。這也是我一直認為 Web 2.0 的網站應該要主動的提供 api,讓別人有機會去 mashup 你的 service。但國內各種 service provider 自然是不會想得這麼開了,幾乎全都是以鎖國政策以保護自己的廣告收入。歷史的教訓尤在眼前,鎖國政策可以長久嗎?自由與創意無限的網路世界,又怎麼會止於鎖國政策之前?只有提供使用者真正需要的內容與資訊才是長遠之計。接下來介紹一個可以把網站做成 mashup api 的工具。

TechCrunch 最近有一篇文章:5 Ways to Mix , Rip, and Mash Your Data,比較了幾個做 mashup 的工具,包括了剛剛推出很有名的 Yahoo! Pipes。而其中最強大的,就是 Openkapow,它的 mashup service 由一個 robot 的製作工具以及一個 hosting service site 所組成。使用者下載以及安裝它的工具之後,可以在本機開發出 mashup robot,再把 robot publish 到 service site 上分享給大家使用。雖然 robot 只有 publish 出來才能使用,但是對於 Web 2.0 的精神來說已經很足夠,不一定需要能在自己的控管範圍之內。Mashup robot 的型態分為:RSS/Atom、REST service 以及 Web clip,RSS/Atom 的 mashup 應不該不用多說了,把沒有 RSS 的網站做出 RSS。REST service 就是常見的 web services 模式,簡單的開發工具可以吃進一個網頁、輸入資料、頡取輸取。完全破解了沒有 mashup api 的網站,鎖國政策至此被強逼開關。而 web clip 的功能應該是 kapow 的老本行,把網站的一部份取出並存下來留作後用。雖然要下載工具,但工具簡單易用,加上 REST service 這個觀念正常的做法,讓 openkapow 發展出很多的可能性。

在mashup 工具日漸成熟之後,鎖國政策愈來愈不切實際,畢竟在資訊爆炸的時代,每個人都只想關心自己想關心的事情。使用 Openkapow 時快速上手的感覺讓我覺得 mashup 界的夢幻工具已經出現,破解鎖國政策的工具也已經出現,不管 service provider 是否願意,接下來 mashup 會愈來愈多,使用者為了單一事件到單一網站的情況會降低,個人化、而且可以由使用者群的意志去加強功能的系統,應該會愈來愈常見。或許不久之後,國內的 service provider 會對 Web 2.0 有新的定義。

technorati tags:, , , ,

Blogged with Flock

5 comments March 8, 2007 (Thursday)

Shelfari 書架 — 個人書籍管理

念碩士班時,有個半路出家的同學問過我,有沒有程式可以管理個人的書籍。我當時是說,好像是沒有,但要寫也不難。她就一直很想要自己去寫一個,因為她的書實在多到不像話,超出能控制的範圍,書借給誰、有什麼書可能都要程式的幫助才行。

Web 2.0 的興起總是帶來很多驚喜,也許我已經太後知後覺了。Shelfari 是一個個人的書籍管理系統,user 在上面建立自己的書籍王國,只要在書架上一本一本加入你的書籍就可以了。而書的資料其實不會輸入到手酸,因為資料是由 amazon 取得,只要用書名等等去找就好了。加入之後,在個人的書架上,就會一本本的陳列在上面,連封面的圖都有!書籍的各種資料應該都蠻齊全的,而且也可以加入個人對書籍的資訊,比如說書什麼時候買的,什麼時候讀的,借給誰等等。每個人的書架,還可以細分 reading list、wish list。在書架上的書籍可以加 tag 、加書評、提出問題、直接連結 amazon 購買。書架上的書也可以做 import/export。

Web 2.0 網站不能免俗的總是要有 community 的概念,Friends、Groups 自然不會缺少了,Groups 的型式可以想像為讀書會,這點蠻不錯的。如果你是在看別人的書架,當然也可以留言給對方。跟你有同一本書的人在 Shlefari 上很容易找到。有最多書的人、寫最多問答、書評的人也會列出來。

總體而言,Shelfari 的功能並不強大,但簡單精準,操作容易。跟 amazon 結合的好也許是它的一項優勢,我沒有詳細研究其他像 LibraryThing 做得如何。但概念簡單好操作,貼近使用者的需求,而且不用輸入一堆東西才能建立書籍是一大優點。目前最大的缺點就是中文書好像沒有辦法找到。如果你也有很多書,交給書架去幫你管理吧!

technorati tags:, ,

Blogged with Flock

1 comment February 27, 2007 (Tuesday)

Previous Posts


訂閱 Peace Palace

Blog Stats

部落格觀測

Top Posts

Blog

Vlog

Categories

Meta