Monthly Archives: April 2010

在暗黑圖資界看 NoSQL

最近因為 Web 2.0 站台資料儲存的 scaling 議題,以及雲端運算正夯的關係,很多地方開始用起了所謂非關聯式資料庫的資料倉儲軟體 (Non-relational Data Stores),俗稱 NoSQL。因為這些東西真是夠噱頭,所以連我也忍不住拿了一些像是 Tokyo Cabinet, MongoDB, Cassandra 的 NoSQL 產品來玩。

要先說明的是,這些 NoSQL 產品跟既有的關聯式資料庫產品(如 MySQL, PostgreSQL, MS SQL Server, Oracle 等)並不是打對台、有你就沒有我的關係,而是必須相輔相成、互補不足、各有擅場的,而這些 NoSQL 產品也各有差異。所以想玩的人就看自己需求挑幾款適合的來玩、來學,並不需要有什麼選邊站的考量。

那麼,我又是根據什麼需求來評估、導入 NoSQL 產品?那是因為我在實務中遭遇到了暗黑圖資界、數位典藏界的 schemaless data, semi-structured data, hierarchical data structure,比如像是 XML 和 MARC,拿關聯式資料庫來處理,做起來會讓人血尿控訴的問題。當我看到了某些 NoSQL 產品可以較容易處理這類資料時,我的眼鏡突然閃過一道光芒(請參考名偵探柯南)。

我看過、用過、經手過的數位典藏系統環境,讀多於寫、數位物件佔用空間的問題比其後設資料要大,看起來很像是 flickr 這類相簿網站的架構,卻又因為每個單位自己做自己各自的系統,所以個體規模又沒大到需要擔心 scaling 的問題;倒是為了常要遷就關聯式資料庫,而讓原本就不太能打平的資料結構硬要打平,反倒丟失了原有結構所能呈現的較嚴謹的語意。又或者用了超級恐怖的方式去把這些半結構化資料放進去關聯式資料庫、再用非常可怕的方式讀出來,反而失去了關連、正規化的意義,又耗掉可觀的效能。

所以我才想要找這類 document store, native XML database 的解決方案。

或許有人看到這裡會跟我介紹有「某字母系統」這種東西,我只能說,我不是沒用過,使用過的觀感,實在是很無言。而且呢,「某字母系統」並不是可以自由取得的,遑論使用、修改、散佈。

所以我才想要找這類 document store, native XML database 的 Free Software or Open Source Software 解決方案,好重新發明輪子。

目前我看到、想到幾組有趣的組合是:

我希望能夠提供一組 F/OSS 的「統整資源管理系統」,讓圖資機構原先設計還算不錯的後設資料結構,所產出的後設資料,就悉數存進去、讀出來啊(而且還要很好存、很好讀),何苦東減西扣的?

附註:標題為少年漫畫常見梗,純無厘頭,謝絕借題發揮。

Plurk 秘書機娘自作計畫.第 1 日

起因:看到某國立正常大學圖書館的館員 Plurk 機器人,也想實作一個練功兼娛樂。

首先要去申請一組 API key,有了這組入門之鑰才能夠繼續接下來的惡搞。

我使用的 Ruby implementation 是 kates’s plurk,檢視過其原始碼,覺得寫得還蠻漂亮的,就決定要用這個了。但是程式有一段 image_type() 的 case statement 與 Ruby 1.9.x 不相容,所以還要小改一下才能用。

#!/usr/bin/env ruby
# encoding: utf-8
require "plurk"
plurk = Plurk::Client.new "your_api_key"
plurk.login :username => "your_username", :password => "your_password"
plurk.plurk_add :content => "當這則訊息出現時,就代表我成功透過 API 來發表 plurk 了", 
:qualifier => "says", :lang => "tr_ch"

本日先以這個 Hello, world 級的驗證用 snippet 作結。

我想要做的功能有:

  1. 行程提醒
  2. 三不五時提示使用者起來動一動
  3. 大學生都喜歡的小天使小主人遊戲
  4. 電視頻道現正播映、即將播映(追電影台、公視、NHK 之類的頻道應該不錯用)
  5. 社運、公益訊息託播

也歡迎大家提供想法。

把 Google Tasks 啟動連結放在 Android 主畫面上

有件事我覺得很奇怪,很多從 Palm OS 用上來的使用者也覺得很奇怪,Google Android 竟然缺了四大天王(聯絡人、日期、記事、待辦事項)當中的「待辦事項」原生(native)應用程式;一直到 Android 實機上市好一陣子了,才改而提供 Google Tasks 這個方案。

雖然 Google Tasks 與 iGoogle, GMail 高度整合是不錯,但是卻一定要連線到 gmail.com/tasks 才能使用,讓我感覺很無言。為了讓這個無言的感覺減弱一些,我只好把 Google Tasks 的超連結加入 Android 瀏覽器的「我的最愛」裡,再透過「新增到主畫面」、「新增捷徑」,把這個最愛項目加到主畫面,以便快速啟動。

【宣傳】國北小泰陽、送書到泰北

前幾週在警廣的節目中聽到,國北小泰陽他們在協助泰北學校的教學軟硬體建設,剛剛想起來,藉本文在此為他們宣傳。

之前我讀到了〈送書到泰北〉的訊息,也曾送一箱已經不常回頭看的青少年讀物到泰北的復華中學,藺以芬校長收到包裹時還特地打電話過來致謝,讓我頓時又驚又喜。如果您家中也有這類適合中學生的讀物、字辭典、文法書,卻已鮮少在翻閱,或許也可以考慮送到泰北,讓書有其讀者、讀者有其書,繼續幫助他人學習與成長。