29
CouchDB or Erlang ををををををを ををををををををををを 2009/06/23 webjourney.org Yohei Sasaki / yssk22

Couch Db勉強会0623 by yssk22

Embed Size (px)

DESCRIPTION

CouchDB 勉強会で発表した内容です。

Citation preview

Page 1: Couch Db勉強会0623 by yssk22

CouchDB or Erlang を使ってやってみたいアプリケーション

20090623webjourneyorg

Yohei Sasaki yssk22

自己紹介

Yohei Sasaki httpwwwyssk22info 仕事の時は ysasaki2

developerWorks に CouchDB の記事を書いてます 5 回連載 3 ヶ月で終わる予定が 1 年で 4 回

orz

趣味の時は yssk22 (larr 今日はこっち ) httpdhatenanejpyssk22

WebJourneyhttpjournalmycomcojpserieswebtool026indexhtml

WebJourney

iGoogle を Rails で作ってみたもの jQuery + Rails + CouchDB 090 で実

装 昔は MySQL( その話は後ほど )

さらに今なら OpenSocial

OpenSocial + CouchDB= Open Web Application OpenSocial

自由にアプリケーションを持ち運べる

データとアプリケーションに明確な境界など要らない

CouchDB 自由にデータを持ち運べる

CouchDB で始めるActiveRecord からの脱却

20090623webjourneyorg

Yohei Sasaki yssk22

これからの話

CouchDB に興味があって最近始めた ~ CouchDB のアプリを作ってみようかなって思い始めた 人くらいを主なターゲットにしています

Rails 使い が CouchDB のアプリを作ってみようかなーと思い始めたときの話

Relational DB から CouchDB へのreplace

長年の悩み Gadget を RDB に保存するのは難しい Gadget のデータスキー

マはユーザーが追加するまで決められない

Gadget は必要に応じて追加開発するから最初からスキーマを定義できない

そうはいっても ActiveRecord + MySQL

ActiveRecord による実装

pages

gadget_instances

gadgets

pages - 各ページのデータgadget_instances - ページに貼り付けられた  gadget のデータgadgets - サイトにインストールされた  gadget のマスターデータ

意外と簡単そう

ActiveRecord による実装

pages

gadget_instance

gadget

class GadgetInstance lt ActiveRecordBase validates_length_of title validates

serialize parametersend

結局 KeyValue にシリアライズ

GadgetInstanceparameters

Gadget 開発者がそれぞれの Gadget アプリケーションに応じて利用可能なフィールド RSS のフィード URL Blog Parts のような JavaScript スクリプト

giparameters[feed_url] = httpとかgiparameters[script][src] = httpとか

抱える問題 = クエリ

Gadget データを RDB に入れるのは簡単 ADONET の場合 XML 列に Mapping (SQL Server) Rails の場合 YAML で放り込む

Object rarr XMLYAML は比較的楽

しかしクエリで取り出せない罠 XQuery 勉強する暇あったら ORM なんか使いません

よ 玉石混交のユーザーデータをフィルタできないなん

て 例えば Feed Gadget なら設定された URL のランキング

をとりたいとか

そこで CouchDB

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 2: Couch Db勉強会0623 by yssk22

自己紹介

Yohei Sasaki httpwwwyssk22info 仕事の時は ysasaki2

developerWorks に CouchDB の記事を書いてます 5 回連載 3 ヶ月で終わる予定が 1 年で 4 回

orz

趣味の時は yssk22 (larr 今日はこっち ) httpdhatenanejpyssk22

WebJourneyhttpjournalmycomcojpserieswebtool026indexhtml

WebJourney

iGoogle を Rails で作ってみたもの jQuery + Rails + CouchDB 090 で実

装 昔は MySQL( その話は後ほど )

さらに今なら OpenSocial

OpenSocial + CouchDB= Open Web Application OpenSocial

自由にアプリケーションを持ち運べる

データとアプリケーションに明確な境界など要らない

CouchDB 自由にデータを持ち運べる

CouchDB で始めるActiveRecord からの脱却

20090623webjourneyorg

Yohei Sasaki yssk22

これからの話

CouchDB に興味があって最近始めた ~ CouchDB のアプリを作ってみようかなって思い始めた 人くらいを主なターゲットにしています

Rails 使い が CouchDB のアプリを作ってみようかなーと思い始めたときの話

Relational DB から CouchDB へのreplace

長年の悩み Gadget を RDB に保存するのは難しい Gadget のデータスキー

マはユーザーが追加するまで決められない

Gadget は必要に応じて追加開発するから最初からスキーマを定義できない

そうはいっても ActiveRecord + MySQL

ActiveRecord による実装

pages

gadget_instances

gadgets

pages - 各ページのデータgadget_instances - ページに貼り付けられた  gadget のデータgadgets - サイトにインストールされた  gadget のマスターデータ

意外と簡単そう

ActiveRecord による実装

pages

gadget_instance

gadget

class GadgetInstance lt ActiveRecordBase validates_length_of title validates

serialize parametersend

結局 KeyValue にシリアライズ

GadgetInstanceparameters

Gadget 開発者がそれぞれの Gadget アプリケーションに応じて利用可能なフィールド RSS のフィード URL Blog Parts のような JavaScript スクリプト

giparameters[feed_url] = httpとかgiparameters[script][src] = httpとか

抱える問題 = クエリ

Gadget データを RDB に入れるのは簡単 ADONET の場合 XML 列に Mapping (SQL Server) Rails の場合 YAML で放り込む

Object rarr XMLYAML は比較的楽

しかしクエリで取り出せない罠 XQuery 勉強する暇あったら ORM なんか使いません

よ 玉石混交のユーザーデータをフィルタできないなん

て 例えば Feed Gadget なら設定された URL のランキング

をとりたいとか

そこで CouchDB

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 3: Couch Db勉強会0623 by yssk22

WebJourneyhttpjournalmycomcojpserieswebtool026indexhtml

WebJourney

iGoogle を Rails で作ってみたもの jQuery + Rails + CouchDB 090 で実

装 昔は MySQL( その話は後ほど )

さらに今なら OpenSocial

OpenSocial + CouchDB= Open Web Application OpenSocial

自由にアプリケーションを持ち運べる

データとアプリケーションに明確な境界など要らない

CouchDB 自由にデータを持ち運べる

CouchDB で始めるActiveRecord からの脱却

20090623webjourneyorg

Yohei Sasaki yssk22

これからの話

CouchDB に興味があって最近始めた ~ CouchDB のアプリを作ってみようかなって思い始めた 人くらいを主なターゲットにしています

Rails 使い が CouchDB のアプリを作ってみようかなーと思い始めたときの話

Relational DB から CouchDB へのreplace

長年の悩み Gadget を RDB に保存するのは難しい Gadget のデータスキー

マはユーザーが追加するまで決められない

Gadget は必要に応じて追加開発するから最初からスキーマを定義できない

そうはいっても ActiveRecord + MySQL

ActiveRecord による実装

pages

gadget_instances

gadgets

pages - 各ページのデータgadget_instances - ページに貼り付けられた  gadget のデータgadgets - サイトにインストールされた  gadget のマスターデータ

意外と簡単そう

ActiveRecord による実装

pages

gadget_instance

gadget

class GadgetInstance lt ActiveRecordBase validates_length_of title validates

serialize parametersend

結局 KeyValue にシリアライズ

GadgetInstanceparameters

Gadget 開発者がそれぞれの Gadget アプリケーションに応じて利用可能なフィールド RSS のフィード URL Blog Parts のような JavaScript スクリプト

giparameters[feed_url] = httpとかgiparameters[script][src] = httpとか

抱える問題 = クエリ

Gadget データを RDB に入れるのは簡単 ADONET の場合 XML 列に Mapping (SQL Server) Rails の場合 YAML で放り込む

Object rarr XMLYAML は比較的楽

しかしクエリで取り出せない罠 XQuery 勉強する暇あったら ORM なんか使いません

よ 玉石混交のユーザーデータをフィルタできないなん

て 例えば Feed Gadget なら設定された URL のランキング

をとりたいとか

そこで CouchDB

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 4: Couch Db勉強会0623 by yssk22

WebJourney

iGoogle を Rails で作ってみたもの jQuery + Rails + CouchDB 090 で実

装 昔は MySQL( その話は後ほど )

さらに今なら OpenSocial

OpenSocial + CouchDB= Open Web Application OpenSocial

自由にアプリケーションを持ち運べる

データとアプリケーションに明確な境界など要らない

CouchDB 自由にデータを持ち運べる

CouchDB で始めるActiveRecord からの脱却

20090623webjourneyorg

Yohei Sasaki yssk22

これからの話

CouchDB に興味があって最近始めた ~ CouchDB のアプリを作ってみようかなって思い始めた 人くらいを主なターゲットにしています

Rails 使い が CouchDB のアプリを作ってみようかなーと思い始めたときの話

Relational DB から CouchDB へのreplace

長年の悩み Gadget を RDB に保存するのは難しい Gadget のデータスキー

マはユーザーが追加するまで決められない

Gadget は必要に応じて追加開発するから最初からスキーマを定義できない

そうはいっても ActiveRecord + MySQL

ActiveRecord による実装

pages

gadget_instances

gadgets

pages - 各ページのデータgadget_instances - ページに貼り付けられた  gadget のデータgadgets - サイトにインストールされた  gadget のマスターデータ

意外と簡単そう

ActiveRecord による実装

pages

gadget_instance

gadget

class GadgetInstance lt ActiveRecordBase validates_length_of title validates

serialize parametersend

結局 KeyValue にシリアライズ

GadgetInstanceparameters

Gadget 開発者がそれぞれの Gadget アプリケーションに応じて利用可能なフィールド RSS のフィード URL Blog Parts のような JavaScript スクリプト

giparameters[feed_url] = httpとかgiparameters[script][src] = httpとか

抱える問題 = クエリ

Gadget データを RDB に入れるのは簡単 ADONET の場合 XML 列に Mapping (SQL Server) Rails の場合 YAML で放り込む

Object rarr XMLYAML は比較的楽

しかしクエリで取り出せない罠 XQuery 勉強する暇あったら ORM なんか使いません

よ 玉石混交のユーザーデータをフィルタできないなん

て 例えば Feed Gadget なら設定された URL のランキング

をとりたいとか

そこで CouchDB

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 5: Couch Db勉強会0623 by yssk22

さらに今なら OpenSocial

OpenSocial + CouchDB= Open Web Application OpenSocial

自由にアプリケーションを持ち運べる

データとアプリケーションに明確な境界など要らない

CouchDB 自由にデータを持ち運べる

CouchDB で始めるActiveRecord からの脱却

20090623webjourneyorg

Yohei Sasaki yssk22

これからの話

CouchDB に興味があって最近始めた ~ CouchDB のアプリを作ってみようかなって思い始めた 人くらいを主なターゲットにしています

Rails 使い が CouchDB のアプリを作ってみようかなーと思い始めたときの話

Relational DB から CouchDB へのreplace

長年の悩み Gadget を RDB に保存するのは難しい Gadget のデータスキー

マはユーザーが追加するまで決められない

Gadget は必要に応じて追加開発するから最初からスキーマを定義できない

そうはいっても ActiveRecord + MySQL

ActiveRecord による実装

pages

gadget_instances

gadgets

pages - 各ページのデータgadget_instances - ページに貼り付けられた  gadget のデータgadgets - サイトにインストールされた  gadget のマスターデータ

意外と簡単そう

ActiveRecord による実装

pages

gadget_instance

gadget

class GadgetInstance lt ActiveRecordBase validates_length_of title validates

serialize parametersend

結局 KeyValue にシリアライズ

GadgetInstanceparameters

Gadget 開発者がそれぞれの Gadget アプリケーションに応じて利用可能なフィールド RSS のフィード URL Blog Parts のような JavaScript スクリプト

giparameters[feed_url] = httpとかgiparameters[script][src] = httpとか

抱える問題 = クエリ

Gadget データを RDB に入れるのは簡単 ADONET の場合 XML 列に Mapping (SQL Server) Rails の場合 YAML で放り込む

Object rarr XMLYAML は比較的楽

しかしクエリで取り出せない罠 XQuery 勉強する暇あったら ORM なんか使いません

よ 玉石混交のユーザーデータをフィルタできないなん

て 例えば Feed Gadget なら設定された URL のランキング

をとりたいとか

そこで CouchDB

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 6: Couch Db勉強会0623 by yssk22

OpenSocial + CouchDB= Open Web Application OpenSocial

自由にアプリケーションを持ち運べる

データとアプリケーションに明確な境界など要らない

CouchDB 自由にデータを持ち運べる

CouchDB で始めるActiveRecord からの脱却

20090623webjourneyorg

Yohei Sasaki yssk22

これからの話

CouchDB に興味があって最近始めた ~ CouchDB のアプリを作ってみようかなって思い始めた 人くらいを主なターゲットにしています

Rails 使い が CouchDB のアプリを作ってみようかなーと思い始めたときの話

Relational DB から CouchDB へのreplace

長年の悩み Gadget を RDB に保存するのは難しい Gadget のデータスキー

マはユーザーが追加するまで決められない

Gadget は必要に応じて追加開発するから最初からスキーマを定義できない

そうはいっても ActiveRecord + MySQL

ActiveRecord による実装

pages

gadget_instances

gadgets

pages - 各ページのデータgadget_instances - ページに貼り付けられた  gadget のデータgadgets - サイトにインストールされた  gadget のマスターデータ

意外と簡単そう

ActiveRecord による実装

pages

gadget_instance

gadget

class GadgetInstance lt ActiveRecordBase validates_length_of title validates

serialize parametersend

結局 KeyValue にシリアライズ

GadgetInstanceparameters

Gadget 開発者がそれぞれの Gadget アプリケーションに応じて利用可能なフィールド RSS のフィード URL Blog Parts のような JavaScript スクリプト

giparameters[feed_url] = httpとかgiparameters[script][src] = httpとか

抱える問題 = クエリ

Gadget データを RDB に入れるのは簡単 ADONET の場合 XML 列に Mapping (SQL Server) Rails の場合 YAML で放り込む

Object rarr XMLYAML は比較的楽

しかしクエリで取り出せない罠 XQuery 勉強する暇あったら ORM なんか使いません

よ 玉石混交のユーザーデータをフィルタできないなん

て 例えば Feed Gadget なら設定された URL のランキング

をとりたいとか

そこで CouchDB

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 7: Couch Db勉強会0623 by yssk22

CouchDB で始めるActiveRecord からの脱却

20090623webjourneyorg

Yohei Sasaki yssk22

これからの話

CouchDB に興味があって最近始めた ~ CouchDB のアプリを作ってみようかなって思い始めた 人くらいを主なターゲットにしています

Rails 使い が CouchDB のアプリを作ってみようかなーと思い始めたときの話

Relational DB から CouchDB へのreplace

長年の悩み Gadget を RDB に保存するのは難しい Gadget のデータスキー

マはユーザーが追加するまで決められない

Gadget は必要に応じて追加開発するから最初からスキーマを定義できない

そうはいっても ActiveRecord + MySQL

ActiveRecord による実装

pages

gadget_instances

gadgets

pages - 各ページのデータgadget_instances - ページに貼り付けられた  gadget のデータgadgets - サイトにインストールされた  gadget のマスターデータ

意外と簡単そう

ActiveRecord による実装

pages

gadget_instance

gadget

class GadgetInstance lt ActiveRecordBase validates_length_of title validates

serialize parametersend

結局 KeyValue にシリアライズ

GadgetInstanceparameters

Gadget 開発者がそれぞれの Gadget アプリケーションに応じて利用可能なフィールド RSS のフィード URL Blog Parts のような JavaScript スクリプト

giparameters[feed_url] = httpとかgiparameters[script][src] = httpとか

抱える問題 = クエリ

Gadget データを RDB に入れるのは簡単 ADONET の場合 XML 列に Mapping (SQL Server) Rails の場合 YAML で放り込む

Object rarr XMLYAML は比較的楽

しかしクエリで取り出せない罠 XQuery 勉強する暇あったら ORM なんか使いません

よ 玉石混交のユーザーデータをフィルタできないなん

て 例えば Feed Gadget なら設定された URL のランキング

をとりたいとか

そこで CouchDB

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 8: Couch Db勉強会0623 by yssk22

これからの話

CouchDB に興味があって最近始めた ~ CouchDB のアプリを作ってみようかなって思い始めた 人くらいを主なターゲットにしています

Rails 使い が CouchDB のアプリを作ってみようかなーと思い始めたときの話

Relational DB から CouchDB へのreplace

長年の悩み Gadget を RDB に保存するのは難しい Gadget のデータスキー

マはユーザーが追加するまで決められない

Gadget は必要に応じて追加開発するから最初からスキーマを定義できない

そうはいっても ActiveRecord + MySQL

ActiveRecord による実装

pages

gadget_instances

gadgets

pages - 各ページのデータgadget_instances - ページに貼り付けられた  gadget のデータgadgets - サイトにインストールされた  gadget のマスターデータ

意外と簡単そう

ActiveRecord による実装

pages

gadget_instance

gadget

class GadgetInstance lt ActiveRecordBase validates_length_of title validates

serialize parametersend

結局 KeyValue にシリアライズ

GadgetInstanceparameters

Gadget 開発者がそれぞれの Gadget アプリケーションに応じて利用可能なフィールド RSS のフィード URL Blog Parts のような JavaScript スクリプト

giparameters[feed_url] = httpとかgiparameters[script][src] = httpとか

抱える問題 = クエリ

Gadget データを RDB に入れるのは簡単 ADONET の場合 XML 列に Mapping (SQL Server) Rails の場合 YAML で放り込む

Object rarr XMLYAML は比較的楽

しかしクエリで取り出せない罠 XQuery 勉強する暇あったら ORM なんか使いません

よ 玉石混交のユーザーデータをフィルタできないなん

て 例えば Feed Gadget なら設定された URL のランキング

をとりたいとか

そこで CouchDB

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 9: Couch Db勉強会0623 by yssk22

長年の悩み Gadget を RDB に保存するのは難しい Gadget のデータスキー

マはユーザーが追加するまで決められない

Gadget は必要に応じて追加開発するから最初からスキーマを定義できない

そうはいっても ActiveRecord + MySQL

ActiveRecord による実装

pages

gadget_instances

gadgets

pages - 各ページのデータgadget_instances - ページに貼り付けられた  gadget のデータgadgets - サイトにインストールされた  gadget のマスターデータ

意外と簡単そう

ActiveRecord による実装

pages

gadget_instance

gadget

class GadgetInstance lt ActiveRecordBase validates_length_of title validates

serialize parametersend

結局 KeyValue にシリアライズ

GadgetInstanceparameters

Gadget 開発者がそれぞれの Gadget アプリケーションに応じて利用可能なフィールド RSS のフィード URL Blog Parts のような JavaScript スクリプト

giparameters[feed_url] = httpとかgiparameters[script][src] = httpとか

抱える問題 = クエリ

Gadget データを RDB に入れるのは簡単 ADONET の場合 XML 列に Mapping (SQL Server) Rails の場合 YAML で放り込む

Object rarr XMLYAML は比較的楽

しかしクエリで取り出せない罠 XQuery 勉強する暇あったら ORM なんか使いません

よ 玉石混交のユーザーデータをフィルタできないなん

て 例えば Feed Gadget なら設定された URL のランキング

をとりたいとか

そこで CouchDB

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 10: Couch Db勉強会0623 by yssk22

そうはいっても ActiveRecord + MySQL

ActiveRecord による実装

pages

gadget_instances

gadgets

pages - 各ページのデータgadget_instances - ページに貼り付けられた  gadget のデータgadgets - サイトにインストールされた  gadget のマスターデータ

意外と簡単そう

ActiveRecord による実装

pages

gadget_instance

gadget

class GadgetInstance lt ActiveRecordBase validates_length_of title validates

serialize parametersend

結局 KeyValue にシリアライズ

GadgetInstanceparameters

Gadget 開発者がそれぞれの Gadget アプリケーションに応じて利用可能なフィールド RSS のフィード URL Blog Parts のような JavaScript スクリプト

giparameters[feed_url] = httpとかgiparameters[script][src] = httpとか

抱える問題 = クエリ

Gadget データを RDB に入れるのは簡単 ADONET の場合 XML 列に Mapping (SQL Server) Rails の場合 YAML で放り込む

Object rarr XMLYAML は比較的楽

しかしクエリで取り出せない罠 XQuery 勉強する暇あったら ORM なんか使いません

よ 玉石混交のユーザーデータをフィルタできないなん

て 例えば Feed Gadget なら設定された URL のランキング

をとりたいとか

そこで CouchDB

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 11: Couch Db勉強会0623 by yssk22

ActiveRecord による実装

pages

gadget_instances

gadgets

pages - 各ページのデータgadget_instances - ページに貼り付けられた  gadget のデータgadgets - サイトにインストールされた  gadget のマスターデータ

意外と簡単そう

ActiveRecord による実装

pages

gadget_instance

gadget

class GadgetInstance lt ActiveRecordBase validates_length_of title validates

serialize parametersend

結局 KeyValue にシリアライズ

GadgetInstanceparameters

Gadget 開発者がそれぞれの Gadget アプリケーションに応じて利用可能なフィールド RSS のフィード URL Blog Parts のような JavaScript スクリプト

giparameters[feed_url] = httpとかgiparameters[script][src] = httpとか

抱える問題 = クエリ

Gadget データを RDB に入れるのは簡単 ADONET の場合 XML 列に Mapping (SQL Server) Rails の場合 YAML で放り込む

Object rarr XMLYAML は比較的楽

しかしクエリで取り出せない罠 XQuery 勉強する暇あったら ORM なんか使いません

よ 玉石混交のユーザーデータをフィルタできないなん

て 例えば Feed Gadget なら設定された URL のランキング

をとりたいとか

そこで CouchDB

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 12: Couch Db勉強会0623 by yssk22

ActiveRecord による実装

pages

gadget_instance

gadget

class GadgetInstance lt ActiveRecordBase validates_length_of title validates

serialize parametersend

結局 KeyValue にシリアライズ

GadgetInstanceparameters

Gadget 開発者がそれぞれの Gadget アプリケーションに応じて利用可能なフィールド RSS のフィード URL Blog Parts のような JavaScript スクリプト

giparameters[feed_url] = httpとかgiparameters[script][src] = httpとか

抱える問題 = クエリ

Gadget データを RDB に入れるのは簡単 ADONET の場合 XML 列に Mapping (SQL Server) Rails の場合 YAML で放り込む

Object rarr XMLYAML は比較的楽

しかしクエリで取り出せない罠 XQuery 勉強する暇あったら ORM なんか使いません

よ 玉石混交のユーザーデータをフィルタできないなん

て 例えば Feed Gadget なら設定された URL のランキング

をとりたいとか

そこで CouchDB

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 13: Couch Db勉強会0623 by yssk22

GadgetInstanceparameters

Gadget 開発者がそれぞれの Gadget アプリケーションに応じて利用可能なフィールド RSS のフィード URL Blog Parts のような JavaScript スクリプト

giparameters[feed_url] = httpとかgiparameters[script][src] = httpとか

抱える問題 = クエリ

Gadget データを RDB に入れるのは簡単 ADONET の場合 XML 列に Mapping (SQL Server) Rails の場合 YAML で放り込む

Object rarr XMLYAML は比較的楽

しかしクエリで取り出せない罠 XQuery 勉強する暇あったら ORM なんか使いません

よ 玉石混交のユーザーデータをフィルタできないなん

て 例えば Feed Gadget なら設定された URL のランキング

をとりたいとか

そこで CouchDB

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 14: Couch Db勉強会0623 by yssk22

抱える問題 = クエリ

Gadget データを RDB に入れるのは簡単 ADONET の場合 XML 列に Mapping (SQL Server) Rails の場合 YAML で放り込む

Object rarr XMLYAML は比較的楽

しかしクエリで取り出せない罠 XQuery 勉強する暇あったら ORM なんか使いません

よ 玉石混交のユーザーデータをフィルタできないなん

て 例えば Feed Gadget なら設定された URL のランキング

をとりたいとか

そこで CouchDB

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 15: Couch Db勉強会0623 by yssk22

そこで CouchDB

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 16: Couch Db勉強会0623 by yssk22

きっかけ

ロゴが気に入った 勉強する時間が欲しかった

特に Erlang HTTP JSON

MapReduce これなら JavaScript でクエリでき

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 17: Couch Db勉強会0623 by yssk22

Active Record =gt CouchDB移植開始 中のロジックを変えるのが面倒だったの

で ActiveRecord とインターフェースをそろえた CouchDB Mapper 作る

3 ヶ月ぐらいでいい加減実装完了 CouchResource

httpgithubcomyssk22couch_resourcetreemaster

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 18: Couch Db勉強会0623 by yssk22

結果

class GadgetInstance lt CouchResourceBase string title validates =gt [length_of =gt ]

object parametersend

GadgetInstancefind() で CouchDB のビューが呼ばれるのでクエリもサポート

Gadget 開発者が自由にデータを使える ( クエリも含めて ActiveRecord のノリで開発できる

ほとんど記法は同じ migration 部分はクラスに直接かく

他の CouchDB Mapper でも property title as =gt string とか

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 19: Couch Db勉強会0623 by yssk22

CouchResource

バリデーション validates_xxx サポート コールバック before|after_xxx サポート JSON データ型 string title などのように

マッピング時の型変換ルールをかける クエリ find メソッド使える

関連 habtm has_many belongs_to な

どはいらないので作らなかった CouchRest のようにストリーミングしない

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 20: Couch Db勉強会0623 by yssk22

Good byRelational Database

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 21: Couch Db勉強会0623 by yssk22

とりあえず結論

serialize とか STI (Single Table Inheritance 同じテーブルを複数クラスで使い回す )とか使いたくなってくるところにはCouchDB みたいなもの 入れる (INSERTUPDATE) だけならそこまで無理なくていい

(item_name value) なんていうテーブルがあったらCouchDB を検討してみるといい Form の項目をDBに保存しているときとか

がんばれば ActiveRecord っぽく CouchDB を使える MerbDataMapper のCouchDB Adapter ももあるらしい

CouchDB は (alpha stage っていってるけど )わりと素直に動きます compaction さえ忘れなければ

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 22: Couch Db勉強会0623 by yssk22

Do you realyneed

app server

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 23: Couch Db勉強会0623 by yssk22

わき上がる疑問 Rails 要るの

JavaScript でバリデーションとか

Rails が Hash を CouchResource に

Ruby でバリデーションとか

CouchResource をHash 経由で JSON に

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 24: Couch Db勉強会0623 by yssk22

結果

jQuery から 直接 CouchDB たたけばいい CouchDB にビジネスロジック書いておけば

OK 奥の手 External Process

CouchDB と任意のコマンドラインプロセスを Pipeでつなぐことができる scriptrunner でも OK

さようなら Rails こんにちは CouchDB CouchApp もヨロシク

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 25: Couch Db勉強会0623 by yssk22

Good byRails

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 26: Couch Db勉強会0623 by yssk22

Ruby off Rails

Rails で RDB 使わないのは敷居が高すぎる 問い合わせ

MySQL で動かないようなんだけど SQLiteじゃないとだめどの DB 使えばいいの

回答 いや RDB じゃだめ w CouchDB インストー

ルして 結果

連絡が途絶えた

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 27: Couch Db勉強会0623 by yssk22

CouchResource

times 終了のお知らせ ActiveRecord 思想にこだわった時点で終了

のお知らせだったか trac にかいといたドキュメントが lost CouchRest がいい

がんばって作ってみたけどだめでした

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 28: Couch Db勉強会0623 by yssk22

CouchDB で Web App を作る

まさに CouchApp の世界 セキュリティは [ あとで ]

とりあえずリラックスすれば世の中みんないい人しかいないと思えてくる

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから
Page 29: Couch Db勉強会0623 by yssk22

これから

  • CouchDB or Erlangを使ってやってみたいアプリケーション
  • 自己紹介
  • WebJourney
  • WebJourney (2)
  • さらに今なら OpenSocial
  • OpenSocial + CouchDB = Open Web Application
  • CouchDB で始める ActiveRecord からの脱却
  • これからの話
  • 長年の悩み GadgetをRDBに保存するのは難しい
  • そうはいっても ActiveRecord + MySQL
  • ActiveRecord による実装
  • ActiveRecord による実装 (2)
  • GadgetInstanceparameters
  • 抱える問題 = クエリ
  • そこでCouchDB
  • きっかけ
  • Active Record =gt CouchDB 移植開始
  • 結果
  • CouchResource
  • Slide 20
  • とりあえず結論
  • Slide 22
  • わき上がる疑問 Rails要るの
  • 結果 (2)
  • Slide 25
  • Ruby off Rails
  • CouchResource (2)
  • CouchDBで Web Appを作る
  • これから