2008 年 10 月 17 日 • 1 Comment
Left Handle DBではCouchDBをデータベースエンジンとして利用することにしています。
現時点ではCouchDBにはユーザー認証がないため、apacheのmod_proxyを使ってユーザー認証を追加するテストをしてみました。
デフォルトのポート5984で動いているCouchDBに対して、proxy経由でアクセスする設定です。
<virtualhost>
ServerAdmin root@home.ryo.com
ServerName api.home.ryo.com
ErrorLog logs/api.home.ryo.com-error_log
CustomLog logs/api.home.ryo.com-access_log combined
<proxy>
AuthType Basic
AuthName “Authorization Realm (same as Trac)”
AuthUserFile /home/webuser/.htpasswd
Require valid-user
Order allow,deny
Allow from all
AddDefaultCharset off
</proxy>
ProxyPass / http://192.168.1.9:5984/
ProxyPassReverse / http://192.168.1.9:5984/
<VirtualHost>
たったこれだけで、
http://192.168.1.9:5984/
で動くCouchDBに対して
http://api.home.ryo.com/
というURLでアクセスが可能になるわけです。
LeftHandle DBとして公開するときには、認証モジュールをmod_auth_pgsqlにして、LeftHandle DBのユーザー管理テーブルを参照する形にすればなんとかなりそうです。
あ、テスト用ですが、自宅サーバーでapi.home.ryo.comというホスト名で実際に動いてますし、ウチのLANのアドレスも出てしまってますが、アタックしないでね 
2008 年 10 月 1 日 • No Comments

photo credit: bejolino
Ryosukeくんが、「開発&テスト用のCouchDBとProxyサーバの構築」 と、PHP用の「CouchDB管理API」を書いてくれました。
CouchDBは、「GET以外のメソッドでのRequestを、Proxyサーバを通すと認識しない(?)」という謎の現象があって悩んでいるみたい(まだ解決してない)。
あと、APIのデザインは、CouchDBが持っているRESTful APIが「自由度」高いわけで、それをどこまで内部用管理APIでサポートするかを判断するのに頭を悩ましていたよう。
特に、ViewやDesign Documentの操作は判断が難しいところです。
今のところは、かなり「緩く構成して様子をみる」という方針で、最初のバージョンができあがっています。
今後は、10月に・・・
- ユーザー管理部分の開発
- ユーザー受付およびLeft Handle DB & Public Dataの紹介をするWebサイトの構築
- Public Dataの「地域情報データベース」の構築
を実施して、11月の頭には公開して・・・
- ユーザー受付
- Public Data編集・作成メンバーの本格的募集
などをスタートしたいと思っています。
また進捗や、まとめておくべきと判断した技術情報があればこのブログに書いていきまっす。
2008 年 9 月 27 日 • No Comments

photo credit: yonmacklein
一応、Left Handle DBの開発チームも紹介しておこう。
「チームLeft Handle」ってのは、アメリカで知り合った二人のとぼけたエンジニアで構成されてて(冗談じゃなく本当にとぼけているってウワサ)、受託の仕事や自分たちで作ったWeb構築用パッケージを売るための・・・そう、仕事用のチームです。
そのチームの雑談の中から発想されたのが「Left Handle DB」なんだけど、それは「仕事」ってことでもないので(後に収益モデルが考案されれば「仕事」にもなりうるんだけど・・・)、現時点では「オープンソースソフトウェアおよびコンテンツの準備をチームLeft Handleの二人がやっている」と考えてもらうのが一番しっくりくるはず。
「仕事」用のチームの名前がついているので少し混乱させちゃうかもしれない・・・って危惧はボクらももっていて「Left Handle DBやLeft Handle Public Dataって名前は決定事項ぢゃない」と考えてるってわけです。
そんなことで、「開発チーム≠ チームLeft Handle」ではないので、「オレ、手伝うっす」という人がいれば、本当に大歓迎。
ソフトウェアエンジニアはもちろんのこと、デザイナーの人とか、公開資料データ(Left Handle Public Data)の作成・編集・校正を手伝える人とか、かなりWelcomeなんで、気軽にコメント くださいませ。
現時点では、Left Handle DBのコア部分と、最初のPublic Data作りをRyosuke氏が・・・Left Handle DBのWebアプリ部分や、Ryosuke氏の作業の雑用部分をKeisuke氏(オレですよ)がやるって分担で進行中です。
2008 年 9 月 27 日 • No Comments

photo credit: Erica_Marshall
今回はLeft Handle DBの開発フェーズ・・・最初のフェーズ・・・について書いておきたいと思います。
今後、「Left Handle DB」はオンラインデータベースサービスを指し、「Left Handle Public Data」は「Left Handle DB」を利用した公開資料データ集を指すことと定義しておきます。
名前は今後変わる可能性があるけれど、その時は都度ここで報告しまっす。
以下、このフェーズで行うことのリスト。
赤字は現時点で終了している項目。
最小限の内容で最初のフェーズを乗りきろうと思っているけど・・・まだまだやることが一杯ありますぜ。
Left Handle DB
- オンラインデータベースサービスとしてどのデータベースエンジンを利用するか決める
- 結論としてCouchDBを採用
- CouchDBはErlangで書かれたドキュメント指向データベースエンジン(スキーマレス)
- 標準搭載されたRESTful API
- MapReduceフレームワークに基づいたView(問い合わせ)
- 分散データベース環境をつくりやすい
- CSVで記述したデータ構造を読み込んでデータベース作成&デフォルトView作成する機能を用意(スキーマレスといえども、これはやっておく必要がある)
- 内部利用のView管理APIの開発(View作成・編集・削除)
- CouchDBのRESTful APIに「認証」の仕組みを加えるために、CouchDBをProxyサーバの背後で動作するようにセットアップ(データベースアクセスの「認可」についてはこのフェーズでは考えない)
- 一般のユーザーは認証機構(ProxyサーバのBasic認証)を通して、既存データベース内のデータに対してGETリクエストを発行し、データを取得できるようにする(このフェーズでは、POST/PUT/DELETEなどのリクエストは一般ユーザーは発行できない)
- 管理ユーザーは認証機構を通してGET/POST/PUT/DELETEリクエストを発行し、データベースを操作できる
- エンドユーザー用Webアプリケーションの開発
- アカウントの作成(ProxyサーバのBasic認証と連動)
- 「Left Handle Public Data」のデータのWebサイト上での参照
- 管理者用Webアプリケーションの開発
- データベース管理(データ構造定義CSVファイルからの作成と削除が可能)
- View管理(簡単なViewの作成・編集・削除が可能)
- データ管理(データの作成・編集・削除を単独およびバルクで実行可能)
Left Handle Public Data
- 最初につくる資料データとして 「都道府県・市区町村データ」を作成
- データ構造定義CSVファイルの作成
- データのソースを見つける(オンラインデータ・オフラインデータ含む)
2008 年 9 月 22 日 • No Comments

photo credit: Festival del Fundraising
チームLeft Handleは現在、
- 誰もが使えるオンラインデータベース。
- 誰もが様々な目的で使える公開データ。
を実現するために「Left Handle DB」の最初のバージョンを開発中です。
昨今、GoogleやAmazonがWebアプリケーションやWebサイトを作るためのWebサービスやライブラリやパーツをバンバン公開してます。
大きい会社は大きいビジョンでそれをやっているわけですが、ボク達がボクらなりの地に足の着いたビジョンでそれをはじめてみたらどうなるかっていうのは興味深いことです。
(実は・・・S3はもう世の中にあったけど、Google App Engineがリリースされる前にこれをやろうとボクらは話し始めてはいたのですが)
さらに、Wikipediaのようにみんなの力で作り上げ、みんなが自由に使える資料データを作るのもボクらの目的に含まれています。
資料データというのは、百科事典なんかにある「ファクトデータ」みたいなものです。
サイトや、サイトに載せるコンテンツを作る時に、いろんな資料を参照したりするわけですが、いざ資料をみようと思っても、なかなか見つからなかったりしますね。
そういう資料データを、みんなで作って貯めておき、自由に引き出して使えるようにしておこうというモノです(データポータビリティをボクら規模ではじめてみようという実験です)。
そんなわけで、「Left Handle DB」の設計と開発をスタートしましたのですが、「すべてを公開する」という志向をもって、開発の内容をこのブログに書いていこうと思います。
実は「Left Handle Webプラットフォーム」という「Left Handle DB」を含んだオープンソースプラットフォームを開発しようというネタからこの話はスタートしています(tracがあったりする)。
でも、最初に大風呂敷を広げるとやっているボクらもキュークツになってきますし、西川きよし師匠よろしく「できることからコツコツと」ということで、一回大風呂敷はリセットして、「Left Handle DB」の基本機能を用意するところから始めました。
では、不定期になると思いますが、Left Handle DB開発ブログをスタートします。