台灣政府自 2013 年四月 data.gov.tw 上線後,最大的新聞應該就是:從七月開始,紛紛擾擾的「實價登錄資訊」變成(幾乎)名符其實的 open data 了。雖然目前尚不提供歷史資料,每兩週公布的資料,根據「政府資料開放平臺資料使用規範」應該是可以自由運用了。在此要感謝所有努力過的人,包括政府內部的有識之士,全台實價地圖作為敲門磚的先行者們,還有寫過相關文章闡述 open data 概念及重要性的朋友們。

話說回來,如果你現在看到一份政府統計資料,只有圖表或者 pdf,要如何向政府要求開放的原始資料呢?目前並沒有一個公開集中的地方,類似 whatdotheyknow.com 那樣的公開資料要求及溝通平台(有沒有人要用 alaveteli 幫忙架一個?)因此,前陣子和研考會同仁的一個聚會上,有提到可以先使用 data.g0v.tw 的發問,作為資料要求的平台,並將信件寄到研考會專門信箱後,把進度貼處來,好讓大家能知道目前有哪些需求已經讓政府知道,哪些又已經被處理。他們提到,很樂意視需求的熱門度,優先幫忙協調資料的權責單位釋出。

今天剛好有人提到「癌症發生及死亡統計」是份有趣的資料,但沒有公開原始數據,只能用非常難用的介面查詢。在這邊就順便寫一下我進行的資料要求的步驟,供大家參考。

Continue Reading →

今天是國際 open data 日,也來響應一下,釋出零時政府立法院的 API

簡單說明:

http://api.ly.g0v.tw/collections 開始測試,目前提供以下的範例供參考

查詢主提案人:(tumblr rendering 會轉換雙引號,請自行 copy paste link)

http://api.ly.g0v.tw/collections/bills?q={"proposal.0":"吳育昇"}

查詢提案人包含某委員:

http://api.ly.g0v.tw/collections/bills?q={"proposal":{"$contains":["吳育昇"]}}

目前僅包含第八屆第二會期的資料,其他的接下來也會放上去。

最終版的 API 應該會長這樣:API Design doc: https://hackpad.com/BfddbG2JBOi

若想幫忙或拿來做應用,可以到 freenode irc #g0v.tw 以及新開的 mailing list: https://groups.google.com/forum/?fromgroups=#!forum/g0v-ly 來討論。

另外正在更新 http://ly.g0v.tw.jit.su/ , 現在議案列表(點選長條圖中的某一段)可以連結到法案,不過介面不是很優,程式碼在 https://github.com/g0v/ly.g0v.tw (nodejitsu 有點問題,暫時無法 update)

這次在 webconf.tw 的分享:「g0v 黑客松 - 寫程式改造社會」,因為很蠢的原因,簡報在開始前一小時,因為 keynote crash 而消失了。緊急重新寫過,真是很糗。

現在把完整版的簡報釋出,同時加上最後提問的回答: https://speakerdeck.com/clkao/g0v-hei-ke-song-xie-cheng-shi-gai-zao-she-hui

簡報的原始 keynote 檔: https://github.com/g0v/dev/tree/gh-pages/talks/

另外,2013/01/27 第壹次台灣零時政府公地放領黑客松北中南同步進行:

台北場

台中場

高雄場

台灣零時政府第零次動員戡亂黑客松在 2012/12/1 圓滿落幕,此次活動雖然是在兩週前才公告,報名人數六十人,雖然當天下著大雨,報到率高達九成(常到台灣訪問的日本友人「高達八成」表示:輸了),加上工作人員總共參與人數近七十人。報名參與的人士背景相當多元,以 IT 開發者為大宗,其中包括了各open source社群、行動裝置開發者、介面設計者、設計師、律師、承接政府open data標案廠商、文字工作者等。

這次活動基本精神是以「非研討會(unconference)」方式進行,是由下而上的活動,沒有特定議程,完全是以來參加者帶來的議題各自發揮。不過當然大方向是科技黑客打造零時政府,大夥兒帶來的專題計畫也相當犀利。後來才發現我們和 Random Hacks of Kindness 撞期,這樣應該也算是稍微共襄盛舉這個全球性的黑客大活動吧!

imagelogo by Even Wu

早上一開始報到,不少人依照提醒秀出了各自預先準備的舊名牌,充分發揮了舊物利用環保精神。簡短的自我介紹及說明自己想進行的專案後,就開始烙人分組進行一整天緊湊的黑客松。


以下是一些初步的成果:

  • 解放國會資料:https://github.com/g0v/dev/wiki/Project-TWLY先把立法院公報轉成純文字還有加上 annotation 的 markdown 方便後續語意分析和統計,質詢內容、議案動態、委員表決都開始有人進行。

  • ronnywang 的地圖數值呈現,把數字呈現在縣市、鄉鎮、村等不同等級的地圖上

  • 利用 ronnywang 的地圖工具,只要用 fusion table 提供數值,就可以畫出漂亮的地圖,例如:人口密度

  • 失蹤兒童協尋 childnotfound.tw - 雖然尚未上線,但卻是完成度最高的專案。熟悉技術的人可能會覺得這個實作上並不難;但是,要和相關的機構溝通,取得使用資料的授權,讓整件事情一氣呵成順利完成,實在是太厲害了!

  • dryman, kanru 等的零時動議:議題追蹤、加上「主人關心公僕熱線」計畫,令人非常期待

  • kirby 和 ypcat 的人物關係圖 generator: https://github.com/zbryikt/ppllink

  • tka, jeffhung 等進行的標案分析: wireframe https://hackpad.com/0M0HW9tSVNQ

  • 遠在荷蘭的 gugod  做的輻射監測 json

  • Kirsten 的文案配送中心

ipa 剪接的活動影片:

kirby 的照片及紀錄

活動能這麼順利,真的是要大大的感謝:中研院的朋友們幫忙張羅場地、opop 幫忙聯絡及調派食物,還有大家的熱情參與,以及會後在 irc 上持續的熱烈討論與開發。

回到這次活動的起點,我想很多人都和我一樣,希望利用科技來造成一些改變。不過,有時只是懶,有時是覺得工程浩大,慢慢推動不知道要到什麼時候才會有一點成果,而且說不定也只是微不足道。但在黑客松,有一種「我如果完成了這個,別人馬上可能拿來做那個」的強烈氛圍,這大概就是傳說中的「加速進行中」吧!能看到這麼多人在這麼多 project 合作,做出有趣的成果,真的比我自己寫出了什麼程式還要更開心!總之,再一次的感謝大家參與,也感謝大家讓彼此希望達到的成果,變得並不是那麼的遙不可及。

One more thing - 由於我們的 yahoo hackday 獎金最後還是沒有花完,因此,決定擇期再辦一次。請期待:

g0v hackath1n - 台灣零時政府第壹次公地放領黑客松

感謝 avatars.io 提供的方便服務,立法委員的頭像現在有 API 可以取用了。這是為了週末的 g0v hackath0n 做的基礎建設。

簡單說,只要用立委的名字算出 md5 hash, append 到下面的 avatars.io URI (http://avatars.io/50a65bb26e293122b0000073, 再加上要多大的頭像(small, medium, large),就可以拿到圖片了。例如 

原本是想寫篇文章介紹這個活動:台灣零時政府第零次動員戡亂黑客松, 沒想到公布沒多久就報名滿了… 那就還是順便隨寫一下最近做的事情吧。

上個月報名了 Yahoo Taiwan 舉辦的 open hack day. 活動的前一兩天,知名詐騙集團推出了一則 youtube 廣告,於是我們臨時改變預定好的題目,來做點和政府相關的事情:全民審預算,最後得了佳作,因此我們想:不如把獎金拿一些出來另外辦場 hackathon 吧!

另一個原因是身邊的氣氛實在太低迷了,對台灣未來無力感已經是常態,很長一段時間,似乎只能用戲謔的方式來排解無奈,自我消遣。但是,在抱怨的同時,我們真的已經做了所有能做的事情了嗎?我們說出我們希望的改變,並且試圖讓他發生了嗎?我們把努力過的成果分享出來,讓其他人可以幫忙推動了嗎?

舉例來說:

我想要做 ly.g0v.tw:讓立法院公報容易閱讀、容易連結、容易被討論、提供 API(目前進度)。這樣可以:

  • 連結立法委員做了什麼,說了什麼,才有 Accountability
  • 讓人們能夠表態,我是哪個選區的選民,你若不支持某個議題,就不會再得到我的票。
  • 第一手得知現在討論的議案,而不是如 bumbler 般,看了報紙才知道。(承認吧,你我關於立法院發生的事情,有多少不是從主流媒體報導或其轉貼看到的?而被報導時通常是愚蠢的事情已成定局;沒有在法案提出時「早期治療」大家都有責任。)但現有的資訊格式(巨大的公報 pdf 檔、視訊),實在需要花很多力氣才能去關心事情。
奶娘國家的KPI把政府的心態描述的很好;但不有所行動,我們要如何擺脫奶娘呢?僅僅樂觀其成是不夠的,但只要每個人把事情稍微往前推動一點,查點資料建立 SOP,畫點 prototype,寫點文宣,好像就沒有那麼遙不可及。

Bill Clinton 上任時似乎是這麼說的:「美國所有不好的地方,都可以因為他好的地方而被修好」

我相信我們也行,只要我們開始動手修。

你想看到什麼事情發生呢?來 hack 吧!俗話說:很多事都在加速進行中。

I was trying out nodejitsu for a project that is hosted on heroku.  Some quick notes:

  • jitsu log shows latest entry first, unlike what people might expect, so check the timestamp before entering infinite self-doubts about “I’ve fixed this… wtf!"
  • if you bind to different port by default, the env to look for is NODE_ENV == ‘production’.  there’s no PORT or PORT_NODEJS.
  • My start command is generated from LiveScript, and is in .gitignore.  jitsu deploy (actually fstream-npm) will simply ignore it while packing (no jitsu does not do push-deploy yet), regardless of it being git add -f’ed before deployment.  the workaround is to have .npmignore (soon there will be .jitsuignore) as a different set of ignore rules for jitsu packaging.

想說試試看把 g0v.tw 放到 nodejitsu 這個新的 PaaS 上看看,結果一直撞牆。

首先 nodejitsu deploy 還不支援 git or rsync, 所以每次 upload 就是很苦的整包重傳

由於我的 server/app.js 是從 LiveScript compile 來的, 我的 .gitignore 裡頭是忽略 server/*.js 的,在 deploy 前時 git add -f 他。聰明的 jitsu deploy (其實是 fstream-npm) 打包時,就忽略他了。解法是暫時另外用 .npmignore 去 override .gitignore, jitsu 之後也會另外支援 .jitsuignore.. 不過,為啥不 git push deploy 就好了呢…

jitsu 的 environment 沒有 PORTS 或 PORT_NODEJS, 所以要自己看 NODE_ENV == ‘production’ 時 bind port 80.

另一個問題就是 jitsu logs 時,顯示是最新的 entry 顯示在最前面,所以沒仔細看前面的 timestamp 的話就會一直看到舊的訊息,就會鬼打牆… 不是改掉了為什麼還出現… 不是改掉了為什麼還出現…