タグ

ブックマーク / yssk22.hatenadiary.org (14)

  • Shibuya.pm Perl Mongers - Web屋かもしれない人の日記 || WebJourney 開発ログ

    http://shibuya.pm.org/blosxom/techtalks/200911.html NoSQLと聞いていってきました。ざっと雰囲気というかイメージをつかみたかったんですが、その目的は達成できました。 まず、Non-blocking HTTPの話(by 宮川さん)が Node.js とかの話をWebでみて最近興味を持っていたので、タイムリーで面白かった!WSGIは知っていたけど、PSGIなんてのもあるんですね。 次。KVS大集合。RDBMSもいるよ!の会。とりあえず、総論としてO*a*l* たけーんだよ!というところでしょうか。まぁそうだと思います。ああ、高いかどうかはケースバイケースだと思ってはいるんですが、あの会場だと高いってことで。 やっぱり、私みたいに、「ExcelとかAccessのようにデータのあるところに必要に応じてアプリをadhocに作りたい」という動機から

    Shibuya.pm Perl Mongers - Web屋かもしれない人の日記 || WebJourney 開発ログ
    shinichitomita
    shinichitomita 2009/12/06
    > やっぱり、私みたいに、「ExcelとかAccessのようにデータのあるところに必要に応じてアプリをadhocに作りたい」という動機からNoSQLを指向するんじゃなくて、皆さんパフォーマンスですかね。ExcelのVLOOKUPなんてキー検索その
  • 非リレーショナルデータベースが結合演算を扱えない、、、という誤解を解く。 - Web屋の人の日記 || WebJourney 開発ログ

    明日の勉強会の準備をしていたら、今回のの範囲外ですが、ちゃんとまとめておかないと、というところを思い出したので書いておきます。だいぶ前に書いた気がしないでもないけど。 CouchDBではMapReduceを工夫することで関係モデルの結合演算を扱えます。なぜかKVSと一緒くたにされて、JOINができないから、だのなんだのいわれますが、SQLの関係演算の質(? ... いや知らないけど)を見極めていれば、CouchDBMapReduceであらかたの演算ができます。 という話。だったら非リレーショナルデータベースっていうなよ、という話は抜きです。だってリレーショナルデータベースっていうとめんどくさいことになるんだもの。 まずは普通に外部結合 ブログエントリとブログのコメントのリレーション、だとエンタープライズ脳の人が納得しないようなので、取引伝票と取引明細でいきます。 まずは、取引伝票 {

    非リレーショナルデータベースが結合演算を扱えない、、、という誤解を解く。 - Web屋の人の日記 || WebJourney 開発ログ
  • [CouchDB] OAuth 超簡潔まとめ (2) - Web屋の人の日記 || WebJourney 開発ログ

    http://d.hatena.ne.jp/yssk22/20090922#1253600686 の続き。 local.ini にかける oauth 関連の設定。 [httpd] セクション WWW-Authenticate = Basic realm="administrator",OAuth OAuth をつける。 [couch_httpd_auth] secret = xxxxxxx authentication_db = xxxxxx [oauth_consumer_secrets] application_key = xxxxxxx [oauth_token_users] user_key = xxxxxxx [oauth_token_secrets] user_key = xxxxxxx [couch_httpd_oauth] authorization_url = /_oau

    [CouchDB] OAuth 超簡潔まとめ (2) - Web屋の人の日記 || WebJourney 開発ログ
  • 最終回。 - Web屋の人の日記 || WebJourney 開発ログ

    http://www.ibm.com/developerworks/jp/web/library/j_wa-couchdb05/ 仕事でやっているので中の話は書きませんが*1、なんとか 0.10.0 が出る前に書き上がりました。以下、私見。 妙にWebにsyncしてきた感があるのですが、 次に大切だと思うのは、(図ではちゃんと表現できていないが)ModelとControllerの役割を少し見直すべき、という点である。PhotoShareは主にRailsで作られているので、ModelはActiveRecordが担当しているわけだが、Modelのレイヤーが非常に薄いために(O/Rマッピングをしているだけ)、データベースの整合性の責任がController側にある。そのため、ちょっとした機能変更のたびにAPIレベルでのテストを大量に走らせなければならないし、それでもどうしてもミスが生じてしまう。

    最終回。 - Web屋の人の日記 || WebJourney 開発ログ
  • OAuth の超簡潔まとめ - Web屋の人の日記 || WebJourney 開発ログ

    /_user/ にPOSTすることでユーザーの登録が可能 /_oauth/request_token に1.で作成したユーザーとConsumerキーの組でsignされたパラメータを送ることでトークンの発行が可能。 /_session に 2. で取得したトークンを送りつけるとユーザー名とロール情報を取得できる。 ここまでは、test_suite を通じてわかった。 この雰囲気だと JavaScript = Consumer, CouchDB HTTPD = Service Provider なのだけれど、「Consumer を Service Provider に登録し、Service ProviderがConsumer Secretを発行する」という最初の手順が省略されている。また、Consumerを信頼するかどうかをService Providerがユーザーに確認するステップもない。

    OAuth の超簡潔まとめ - Web屋の人の日記 || WebJourney 開発ログ
  • 2009-09-16

    _bulk_docs は 0.8 から追加された機能で、そこに0.9.0 からall_or_nothingオプションが追加されました。all_or_nothing を使うと、ドキュメントのrevチェックを回避して強制的に競合状態を作り出すことができるように見えます。が、最新のtrunkでall_or_nothingがドキュメントを削除するときに意図したとおりに動作していないように見えてはまっております。 再現はできそうなので、 明日svn logを眺めて再現テストを書いてMLに投げる! とは思わなかったのだけれど。これで認証、認可が一通りできるようになりそうです。 CouchDBの0.10? あたりから追加される機能で、trunkのバージョンはすでに0.11のストリームになっているのでtrunkで機能を確認できます。 詳細は明日あたり書こうかと。 _bulk_docsがでてきたのでついでに

    2009-09-16
  • partuza のコードを追いかけて。 - Web屋の人の日記 || WebJourney 開発ログ

    24inchのiMacでも画面が狭いと思うようになった日。Macユーザーの方って、ソースを読むときどうしているんでしょう?とりあえず、KEdit のウィンドウ大量に開いて読んでいるのですが、読む専用のいいツールってないんですかね*1 それはともかく、Shindig を使ったOpenSocial Containerとして partuza があるので、実装どないなっとんのーということで、追いかける。まずは、/people/{guid}/{selector}/{pid} の実装の感覚(HTTP リクエストからDBのデータを取り出して、HTTP レスポンスにするまで)がつかめれば、あとはどうにでもなる。 というわけで、一気に読みます。 partuza では Shindig と連携するためのクラス群が /Shindig ディレクトリに含まれています。shindig側の shindig/php/co

    partuza のコードを追いかけて。 - Web屋の人の日記 || WebJourney 開発ログ
  • 2009-06-23

    お時間いただいて話した内容の資料あげときました。後半すっかり話すの忘れてましたが、CouchDB OpenSocial って楽しいと思うんですよ、はい。mixi とか goo Home とか iGoogle ってサイトまるごとレプリケーションできないから、面倒なんじゃー、とか。 http://www.slideshare.net/yssk22/couch-db0623-by-yssk22 目下の使い道は、オンラインゲームのコミュを立てたときに、続編が出たらレプリケーションを唱える、とコミュニティが複製されて、でもちゃんとゲームは分かれていて、とか。。そんなことを考えていたら、FF XIVが、FF XI のコミュニティは引き継ぎたいとか、そんな記事がでていて、これは売れる!と思ってたり。いや、FF のオンラインはやったことないんですけどね。 とりあえずあとこの辺もリンク。 http://gr

    2009-06-23
  • [CouchDB][CouchApp] CouchApp におけるログイン処理の詳細 - Web屋の人の日記 || WebJourney 開発ログ

    認証の話は別の媒体で書くとして、実際どうやってログイン処理をやるの?という話。CouchApp を入れれば、とりあえずOKです。 CouchDBの認証はbasic認証で提供されておりますが、認証ダイアログを出す attemptLogin(win, fail) と 現在認証がすんでいるかどうかを判定する loggedInNow(loggedIn, loggedOut) という2つのメソッドが用意されています。 http://github.com/jchris/couchapp/blob/1d6b96a0535364c61b356d68e08161581339603f/vendor/couchapp/_attachments/jquery.couchapp.js attemptLogin : function(win, fail) { // depends on nasty hack in b

    [CouchDB][CouchApp] CouchApp におけるログイン処理の詳細 - Web屋の人の日記 || WebJourney 開発ログ
  • 2009-05-11

    Planet CouchDBでCouchDB 0.9.0を使った実践的な例が紹介されています。すばらしい! 詳細はリンク先を見ていただくとして、感想。 Django + PostgreSQL + Ngixn => CouchApp(CouchDB アプリケーションを作るためのJSライブラリ) + Ngixn って、Ngixn って聞いたことあるけどこんな風にプログラマチックにproxyをかけるのね。そりゃ、Djangoいらねぇよ。 っていうか、 Ngixn Configuration がアプリケーションサーバーのコードに見える。Proxy Pass / Rewrite なんて、ActiveRecord#find()に見えちゃうんだけれど。 Email は、external process で MapReduce結果を監視する。ちょうどGW中に似たようなモニタープロセスをRubyスクリプトで

    2009-05-11
    shinichitomita
    shinichitomita 2009/05/14
    > ソースコードも過去の履歴も、本番環境も、全部データベースにあるから!え、テスト環境?それは、適当にデータベースをレプリカしてどっかでやってくれ!。。うまくいったらこっちに再レプリカして更新してくれよ
  • 2009-05-12

    昨日の段階で、CouchDBに登録されているJSONのFeedを表示することはできるようになったので、今度は、CouchDB上でFormを作って巡回するフィードのURIを登録できるようにする。 CouchAppにおいて、アプリケーションサーバーのごとく、ドキュメントから動的にページを生成するには、デザインドキュメントのlists, showsなどを用いるが、それ以外に、_attachments に添付ファイルとしてHTMLをおいておけば、静的なページに対応するのは容易だ。しかも、昨今のjQueryパワーを使えば、十分に動的なページになる。 デフォルトで作成される _attachements/index.html は次のようになっている。 <!DOCTYPE html> <html> <head> <title>Generated CouchApp</title> <link rel="st

    2009-05-12
    shinichitomita
    shinichitomita 2009/05/14
    かっこいい!
  • Apache CouchDB 0.9.0 now available - Web屋の人の日記 || WebJourney 開発ログ

    http://couchdb.apache.org/downloads.html 気がついたらリリースしていた。個人的な目玉は以下。 Document validation functions in design documents. Show and list functions for rendering documents and views as developer controlled content-types. いや、これ、Application Server いらねーぜよ、という宣言をしたようなもので。HTMLを返せるようになったのは、すばらしいfeatureです。Rails 3 が出る前に、off Rails しそうな勢いで。 まだ試していないけれど、http://github.com/jchris/couchapp/tree/master あたりを使うと、幸せにjQue

    Apache CouchDB 0.9.0 now available - Web屋の人の日記 || WebJourney 開発ログ
  • CouchDB 徒然 - Web屋の人の日記 || WebJourney 開発ログ

    http://d.hatena.ne.jp/starpos/20090214/1234629921 ブクマコメントにしようと思ったが整理をかねて1日記エントリで。いやー、データベースとしての Lotus Notes/Domino はニッチだなぁwww また,せっかく replica があるのに,読み込みの負荷分散もデータベースシステムとしては現状では意識していないのではないかと思われます. そうですね。replication で 負荷分散 を実現するためにはpartitioningに対する何らかのポリシーが必要で、その辺はMLを眺めていてそろそろ検討/実験しようか、といった感じです。とりあえず現状はmod_proxy_balancer で、という感じでしょうか(L4でバランスさせるのは結構つらい。 最近のMLの話題を拾うと、Clustering/Partitioningについては以下が参考

    CouchDB 徒然 - Web屋の人の日記 || WebJourney 開発ログ
  • 2008-12-30

    jTemplate を使うにあたって最低限JavaScript側で使いたくなる三つのメソッド。。最初の二つは実装した。 最後のstrftimeは、正直実装面倒くさいので、探したらあった。が、Array に対して for(var i in array) をしている部分があって、Array.prototype が汚染されていると使えないライブラリなのでパッチを作成した。作者に送、、、る方法がないんだけど*1。 以下コードメモ *1:作者のページ、XHTMLがパースエラー、、ソース見てもそれらしきリンクないなぁ... 続きを読む RESTのクライアントが効率的な1次元の順序付き(前,次が定義された)集合を走査するためには(例えばPagination)、、、、 a) GET したリソースのサブセットが何件あって、b) スーパーセットは何件あって、c) サブセットはどこにいるのか(1次元の集合であれ

    2008-12-30
    shinichitomita
    shinichitomita 2009/01/07
    > RESTのクライアントが効率的な1次元の順序付き(前,次が定義された)集合を走査するためには(例えばPagination)
  • 1