TaiwanHackathon
出自Taipedia
English •
中文 (繁體/) • Help translation
目錄 |
[編輯] Objectives
Why?
- We would like to write real code and contribute to the community.
- Community activities in Taiwan used to be mostly forums or conferences featuring speeches and presentations. Developers as participants are not really actively taking part. They need to do something. Social gatherings are fine as long as they keep people in touch, but this kind of gatherings are usually not very good at improving one's professional skills by putting them in a productive setting.
- Many sponsors of community gathering also feel the need of some tangible outcome.
- The coding jam activity that TH is proposing here is therefore founded on the notion of real-world implementation that requires active work, skills and passions on the participant's part, and we hope that it responds better to the expectations of our sponsors and general audience as well.
- This activity is also a practice of Wikimania 2007 Hacking Days, but is not closely related to Wikimedia/MediaWiki development.
- Wikimania 2007 is going to be held at Taipei, during 8/1 to 8/5. The first two days, 8/1 and 8/2, will be Hacking Days. Although the code jam here is not corresponding to it directly, experiences and conventions from the code jame are expected to be the bridge between local and international MediaWiki/Wikimedia communities.
[編輯] Practice
[編輯] The topic: Web API
For who?
Please be aware that the following bullets are only examples.
- Producers: designing API
- ObjectiveFlickr
- Yahoo! Taiwan Dictionary: once Yahoo! Taiwan agrees to let its developers joining in...
- Chinese text services: YASA, ELUTE, Chinese tokenizer web service API for Lucene or other full text indexing uses.
- Comsumers: using API
- Flickr
- Google Map, Yahoo Map, UrMap
- Google auth service, OpenID
- Wikipedia
- Brokers: wrapping services to provide API
- Asynapse
- Yahoo Taiwan Dictionary: unless Yahoo! Taiwan provide it officially...
- FindBook
- Pixnet
- HEMiDEMi
[編輯] Proposals
- Flickr web API emulation layer (both server-side and client side)
- 開發 web API-based app 的過程中,測試是一大困難:在沒有網路的地方,web API 無用武之地。因此嘗試開發一套 Flickr API emulation layer,可以是 client side(例如把 OjectiveFlickr 的連線部份換掉,改從 local DB 拿資料),或是 server side(照著 Flickr REST URL 格式刻一套一樣的 web app,在 local host 上執行)。
- 角色:生產者 + 消費者
- 難度:中低(整合現有資源)
- 技術:Ruby, ObjectiveFlickr, Rails
- 開發 web API-based app 的過程中,測試是一大困難:在沒有網路的地方,web API 無用武之地。因此嘗試開發一套 Flickr API emulation layer,可以是 client side(例如把 OjectiveFlickr 的連線部份換掉,改從 local DB 拿資料),或是 server side(照著 Flickr REST URL 格式刻一套一樣的 web app,在 local host 上執行)。
- ActiveFlickr
- 承上,把 Flickr 資料通通封裝為本地物件──也就是 web API library 的極大化。理想是做一套在 interface 上極接近 ActiveRecord 的程式庫,讓讀取 Flickr 照片、更新 Flickr 照片資訊跟讀一般 DB 一樣容易。可能的直接應用是拿來統計 Flickr 上的相機市佔率,或是 geo-tag 的統計。為了推廣 Mac OS X 開發,將以 Objective-C 開發,同時示範 Cocoa 的 KVO/KVC (Key-Value Observcation/Key-Value Coding) 以及 Cocoa binding 等進階的 Cocoa 主題。
- 角色:消費者
- 難度:中等
- 技術:Objective-C, ObjectiveFlickr
- 承上,把 Flickr 資料通通封裝為本地物件──也就是 web API library 的極大化。理想是做一套在 interface 上極接近 ActiveRecord 的程式庫,讓讀取 Flickr 照片、更新 Flickr 照片資訊跟讀一般 DB 一樣容易。可能的直接應用是拿來統計 Flickr 上的相機市佔率,或是 geo-tag 的統計。為了推廣 Mac OS X 開發,將以 Objective-C 開發,同時示範 Cocoa 的 KVO/KVC (Key-Value Observcation/Key-Value Coding) 以及 Cocoa binding 等進階的 Cocoa 主題。
- 文字相關服務
- OpenVanilla 相關 web API,從提供輸入法表格資料到斷詞、音轉字等自然語言處理服務皆有可能。
- 角色:生產者
- 難度:中高
- 技術:Ruby (frontend), Perl (data processing), C++ (ELUTE / YASA).
- OpenVanilla 相關 web API,從提供輸入法表格資料到斷詞、音轉字等自然語言處理服務皆有可能。
- 身份認證服務的研究
- 希望能做出一套與 google auth / Yahoo BB / OpenID / Flickr ID 相關的認證機制,同時把 UI 變得好用一點。
- 角色:仲介者
- 難度:中等
- 技術:Ruby
- 希望能做出一套與 google auth / Yahoo BB / OpenID / Flickr ID 相關的認證機制,同時把 UI 變得好用一點。
- Trac XML-RPC API
- 設計一 API 將多個 trac site 的 xmlrpc 介面,整合成單一的 data back-end,降低前端設計難度,在 trac v2 出爐前,達到利用 mash-up 與前端 CPU,實現multi-trac 的效果。提供跨站 timeline/report/search 等資料查詢的範例。
- 角色:生產者 + 仲介者
- 難度:中高
- 技術:XML
- 設計一 API 將多個 trac site 的 xmlrpc 介面,整合成單一的 data back-end,降低前端設計難度,在 trac v2 出爐前,達到利用 mash-up 與前端 CPU,實現multi-trac 的效果。提供跨站 timeline/report/search 等資料查詢的範例。
- 真・售票系統
- Web App 中,如果 Server 端能夠完整的封裝,呈現的 UI 層是否可以很省事的抽換?這個專案打算拿已經存在的系統加以封裝,以實驗的方式來跟大家分享過程中可能的問題以及可能的解決方法,還有 Web App 所使用的 Wicket Framework 中不完整的地方,以及如何自己動手做 UI Component 來解決問題。
- 角色:生產者 + 消費者
- 難度:中上
- 技術:J2SE, J2EE, Wicket
- Web App 中,如果 Server 端能夠完整的封裝,呈現的 UI 層是否可以很省事的抽換?這個專案打算拿已經存在的系統加以封裝,以實驗的方式來跟大家分享過程中可能的問題以及可能的解決方法,還有 Web App 所使用的 Wicket Framework 中不完整的地方,以及如何自己動手做 UI Component 來解決問題。
- Flash 網路影音錄製/播放服務(video email)
- 結合 Flash Media Server, Flex, Flash Player, Ruby on Rails 與 WebORB 製作可 embed 於網頁中的 audio/video recorder/player,方便使用者輕易建立 web 影音答錄機與 A/V email,前端 client 部份可 mashup 其它服務,例如 photo, weather,後台部份將來可提供 API 供直接存取已錄製之影像
- 角色:生產者 + 消費者
- 難度:中
- 技術:Flex, Flash Media Server, Flash Player, Ruby on Rails, WebORB (AMF3/RTMP flash remoting)
- 結合 Flash Media Server, Flex, Flash Player, Ruby on Rails 與 WebORB 製作可 embed 於網頁中的 audio/video recorder/player,方便使用者輕易建立 web 影音答錄機與 A/V email,前端 client 部份可 mashup 其它服務,例如 photo, weather,後台部份將來可提供 API 供直接存取已錄製之影像
- AJAX/Embedded
- 這是個另類的思考方式,為何不能讓 "Ajax" 精簡到 "Just Work" 呢?Ajax 對於 server-side 的設計影響也不同於傳統思維,所以,我們一路從 kernel-mode HTTP daemon (大幅加入 static data access & cached object handling)、user-mode (helper) web server、Ajax engine,做到 widget set for Web UI,現在已經有初步的雛型了。未來,要整合諸多現有 web service 應該不會太難,喔,對了,我們的參考硬體是 FON :-) 詳情請見:http://orzlab.blogspot.com/2007/03/ajaxembedded.html
- 角色:生產者
- 難度:中高
- 技術:C++, ARM, MIPS
- 這是個另類的思考方式,為何不能讓 "Ajax" 精簡到 "Just Work" 呢?Ajax 對於 server-side 的設計影響也不同於傳統思維,所以,我們一路從 kernel-mode HTTP daemon (大幅加入 static data access & cached object handling)、user-mode (helper) web server、Ajax engine,做到 widget set for Web UI,現在已經有初步的雛型了。未來,要整合諸多現有 web service 應該不會太難,喔,對了,我們的參考硬體是 FON :-) 詳情請見:http://orzlab.blogspot.com/2007/03/ajaxembedded.html
[編輯] The goal
For whom?
- Industry and Academic people: statistical analysis, data mining (e.g. Camera brands on Flickr), etc.
- Web service providers
- Web-enabled desktop application developers
- System Integration developers: Web API == lightweight SOA
[編輯] The place
- Nai-hai Gallery http://r6.ntue.edu.tw/naihaiprofile.htm
Map:![]()
[編輯] The schedule
When?
- 4/12 (Thu) 13:30-21:30, 4/13 (Fri), 09:30-17:30
- On work days, to
- Be professional and see it as serious works and personal achievements.
- Earn respects and supports from enterprises.
- 4/12: introductions to
- Ideas
- Develop and release environments: the team will provide central issue tracking, version control, and building servers.
- 4/12~4/13: developing and chating
- 4/13: packaging and releasing.
[編輯] Issues Relating to the Choice of Date: Conference Leave, etc.
How should I apply for a conference leave ?
- Taiwan Hackathon may send a formal invitation to where you work
- If TH has the endorsement of well-known organizations, its invitation should have the due creditability
- Rationale that you can give when you talk to your employer:
- I'll work on subjects that are as close to what I do in my job as possible. Although the subjects are more or less IT-related, but they are not necessarily limited to technologies per se.
- The conference itself is a source of fresh inputs, new ideas, and a good networking opportunity. It may even help you overcome the bottlenecks you have now.
- I can headhunt for my company!
- TH can also become the beginning of future cooperations between companies
I don't want to be "in production mode" when I take a leave. Why can't TH be held during the weekend?
- Well, it's your weekend. We think it's better for the employers to give participants leaves to let them come to TH as part of their professional life.
- Take a leave during the week may actually boost your long-term productivity.
- It also means TH is committed to provide the participants with a good venue and all the perks so that the development process will be a pleasant one.
[編輯] Principles
How to join in?
- Gets an invitation
- Connecting by committee, and active requests are also welcome.
- Attendees must agree to contribute on time.
- The quota is about 20 persons.
- Free for bears by exchanging with assigned open source license (probably MIT license).
- Submits to the central version control repository.
- Publishes with easy-to-use sample codes or unit test cases.
- Promotes yourself and your works.
- Targets on easy and simple goals
- Opens to relatively closed communities in Taiwan: Cocoa (Obj-C), Java, .NET, Flash ActionScript
- Double checkes via your own laptop and the provided computers by the team.
[編輯] The talks
What's useful?
- WHY web API
- WHAT BENEFIT can web API bring forth
- HOW we can adopt web API / web API-based services
- Web API / REST basics
- Identity/authentication services and issues
- Transport layer: Why REST rules
- Security issues
- API abuse
- Usage monitoring
- Scaling issues
[編輯] Slogans
What's important?
- Interoperability!
- Lightweight
- Service-oriented
- USE standard, MAKE standard, PROVIDE standard
- Take a REST!
- Microformat
- MASH-UP (in a more realistic way)
[編輯] The team
Who is behind this?
- The coordinator
- Associated coordinators
- Executives
- Committee: please refers http://taipedia.info/trac/hackathon/ticket/2
- Volunteers
[編輯] Recruitment
What can I help?
- Issue tracking
- IRC: #osdc.tw on FreeNode
- Contact:barabbas AT gmail DOT com