タグ

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

  • もうめんどくさいからtwitter.comをログストレージに使うことにした - 2010-04-29 - Web屋の人の日記 || WebJourney 開発ログ

    ログの設定とかアラートの設定とか、、いろいろあるとは思うんだけれど、自宅のサーバー運用でわざわざファイルに出すとかsyslogに出すとかgrowlで通知とかmailで通知とか、、、もう面倒なので、twitter 全部飛ばすことにしました。 ソース: http://github.com/yssk22/tweethandler パッケージ情報 http://pypi.python.org/pypi/tweethandler/0.1 今年に入ってPythonをやらなければならなくなった、ということで、はじめてのPythonパッケージ作りをやってみました。 OAuthで認証しておいて、emit するときにupdate_statusするだけです。 尚、同じログが大量にでる場合はtwitterが自動的にブロックしてくれますw ログレベルに応じてDMにするとかmentionにするとかいろいろありそうです

    もうめんどくさいからtwitter.comをログストレージに使うことにした - 2010-04-29 - Web屋の人の日記 || WebJourney 開発ログ
  • 0.11 でモジュール化とユニットテスト - Web屋の人の日記 || WebJourney 開発ログ

    jspec が優秀なスペックテストをできるので、ヘルパーを用意。 require と log 関数だけはよく使うので用意してあげます。require は配布時とテスト時の違いを吸収できるような変な書き方をしているけれど。Rhino だと load でJSを読み込めますが、require と互換性を保つために、readFile をして eval します。 // spec/couch-server-main.js sandbox = this; function require(name, parent){ // Application Context: // root should be vendor/crayon/ // name is a key without an extension. // // Test Context: // root should be . // name i

    0.11 でモジュール化とユニットテスト - Web屋の人の日記 || WebJourney 開発ログ
  • なぜCouchDBなのか - 2010-02-25 - Web屋修行中の人の日記 || WebJourney 開発ログ

    http://blog.madoro.org/mn/54 私もRailsいらねーや、ってくちなので、殆ど同じです。というか、自分で作ったRailsアプリは、仕事のものも含めて、CouchDB への移行したし。 そういうのが嫌で、RDBMSとして正しく使おうと、find()で:includeとか:joinsとか使いだすと、今度はどんどんRoR(Ruby)のコードのSQL成分が増していく。全然楽しくない。 それに加えて、私の周りだとXMLDBサポート、なんてものが入って混沌としていました。XMLいいたいだけだろ的な。XQueryとか、全然人に優しくない。 あとは、RESTの議論というかアプリケーションをみていて、多くのアプリが sql://example.com/ をブラウザでやりたかっただけじゃね?ってところで*1、CouchDBGood Enough Technologyだと思ったわけで

    なぜCouchDBなのか - 2010-02-25 - Web屋修行中の人の日記 || WebJourney 開発ログ
  • 2010-02-11

    cloudant.com は CouchDB のホスティングサービスです。 数ヶ月前にprivate betaの応募はしていたのですが、特に向こうから反応があるわけでもなく、全然使えていませんでした。どうやったらアカウントがゲットできるのか、謎のまま。 で、ふとしたことから、twitter で @cloudant に mention する形で、cloudant.com が未だに使えないんだけど、と英語でつぶやいたら、、、、普通にinvitationがきて、しかもCEOからメールまでもらってしまいました(twitterからたどれる君のホームページはCouchDBのwelcomeメッセージだよね!とww)。 これは予想外の展開。来は info@cloudant.com にメールを送るのが正当なパスです。 というわけで、使えるようになりました。 http://yssk22.cloudant.c

    2010-02-11
  • 働き方変えます。 - Web屋の人の日記 || WebJourney 開発ログ

    私事ですが、日が今の職場の最終出社日でした。今年いっぱいで大変お世話になった今の職場を離れることにして、来年から別のところにやっかいになることにしてみました。まだ辞令がでているわけではないのでこのエントリのせいでw なかったことになるかもしれませんが。 ひとまず有休を消化中です*1。今年の頭に30日あったので、20日以上あるかと思いきや11日しかなかったのは、笑えます。 と、ところで、帰ってtwitterのTLみて気がついたのですが、Damien Katz氏もIBMを離れたようです。 http://www.techcrunch.com/2009/12/10/stealth-startup-relaxed-raises-2-million-from-redpoint-ventures-for-couchdb-support/ 日語が早い。 http://jp.techcrunch.com

    働き方変えます。 - Web屋の人の日記 || WebJourney 開発ログ
  • 前置きが非常に長い。 - Web屋の人の日記 || WebJourney 開発ログ

    週末遊びすぎて、頭の中の奥底に技術系の話がとんでいってしまったので、頭の体操がてらエントリを起こす。以下のエントリを注意深く読んだ。 http://satoshi.blogs.com/life/2009/10/restful-mvcなアーキテクチャの話.html 結論はないです。のでタイトルも適当。 個人的にはどういうアーキテクチャーがよいか、というのは関わる人によって変わると思っているので、 もちろん、これもデザイン・パターンの一つでしかないので、どんな場合にも適用できる話ではないが、少なくとも私が関わっているプロジェクトのほとんどすべてにこのアーキテクチャが適用できそうだな、と思っている今日この頃である。 は、おそらくそうなんだろうと思いつつ、ちょっと気になったのはJSがJSで一言片付けられている点。JSの部分をきちんと顧みないと、 { "data" : { "html" : "<p>

    前置きが非常に長い。 - Web屋の人の日記 || WebJourney 開発ログ
    IwamotoTakashi
    IwamotoTakashi 2009/10/19
    「取引伝票と取引明細は、同じ顧客がINPUTして得られる結果なので、そのドキュメントを表現する画面は一つで済みます。だから、ドキュメントは1つ」
  • 非リレーショナルデータベースが結合演算を扱えない、、、という誤解を解く。 - Web屋の人の日記 || WebJourney 開発ログ

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

    非リレーショナルデータベースが結合演算を扱えない、、、という誤解を解く。 - Web屋の人の日記 || WebJourney 開発ログ
  • CouchDB による30行でのURL短縮サービス。 - Web屋の人の日記 || WebJourney 開発ログ

    http://github.com/janl/io データベースがHTTPを話してフィルタ機能を搭載するとこうなります、という良い例。短縮の仕方がおおざっぱすぎる気がしないでもないけどw それはともかく、trunkでupdates という入力フィルターが追加されたようなのです。これでほとんどの用途には事足りそうです。 /{db}/{doc_id} にPUTするのではなく、/{db}/_design/{app_name}/update/{doc_id} でドキュメント操作するのが良さそうですね。 個人的には view も公開すると意図せずにデータが流れてしまうことがあるので、JSONであっても、listを使ってきちんと認証・認可をやったほうがよいとおもうのです、はい。

    CouchDB による30行でのURL短縮サービス。 - Web屋の人の日記 || WebJourney 開発ログ
    IwamotoTakashi
    IwamotoTakashi 2009/10/12
    「CouchDB による30行でのURL短縮サービス」
  • 2009-10-06

    CouchDB 0.9.0 から show/list など、サーバーサイドでレンダリングを行う機能が追加されました。これは普通に使うとすごく使いにくいので、通常はCouchAppを使って次のように書きます。例えば_show/sample を実装するとき。 function(doc, req){ // !code vendor/couchapp/template.js // !json templates/sample return template(templates.sample, {doc : doc}); } couchapp push コマンドでスクリプトをCouchDBにデプロイできますが、// ! が重要なマクロ展開の機能を持っています。 !code により template.js の内容が couchapp push 時に展開され、デザインドキュメントの中に埋め込まれます。こ

    2009-10-06
  • 2009-09-19

    世間的にはシルバーウィークのようですが、木曜日も金曜日も、挙げ句の果てにその次の月曜日も有給を取得したので、プラチナに格上げ。全国行脚中のため、まとまった時間がとれないので開発はしていないんだけれど、移動中/ホテルなどで暇なときを見つけてMacBookのCouchDBで遊ぶ。 それはともかく、先日OAuthの話を書く、といっておいてまだできていない。なんか、ちょっと解せない挙動をするのがあって。 銀行トランザクションの話を書きました。せっかくがんばって書いたのに、Definitive Guide をみたらRecipeに書いてありましたorz。なので追加を書こうと思います。 あのドキュメントを使うと、 // map function(doc){ if(doc.doc_type == "振り込み"){ emit(doc.from, (-1) * doc.amount); // 振り込み元にとっ

    2009-09-19
  • 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
  • [CouchDB-JP][CouchDB] RelaxCafe@CouchDB break.1 - Web屋の人の日記 || WebJourney 開発ログ

    やってきました。参加された皆様お疲れ様でした。前日 ust の設定をがんばってみたのですが、私のMacbookだとちゃんとしたマイクを買わないと、Macbook自体のCPUファンの音がノイズの固まりになって使い物になりませんでしたorz。それと、実はルノアールではHotspotがないという。。。 資料のリンクは以下に集まると思います。 http://groups.google.co.jp/group/couchdb-jp/web/couchdb-definitive-guide?hl=ja 先に反省と次回方針 もっと広いところでやる / これぐらいの人数でやるのであれば Position Paper 的なものもあってもいいかも。 ちょっと詰め込みすぎた感があるので、Chapterの間をRelax Time(という名の何でもショートセッション)にする。 懇親会は事前に出欠取ろう(移動の間はも

    [CouchDB-JP][CouchDB] RelaxCafe@CouchDB break.1 - Web屋の人の日記 || WebJourney 開発ログ
  • jewelerとgithubで始める初めてのRubyGem作成 - Web屋かもしれない人の日記 || WebJourney 開発ログ

    WebJourney用に新しく開発したCouchDB用のデータマッパー"CouchResource"ですが、ちゃんと公開しないとガラパゴスになりそうなので、RubyGem として利用できるようにしよう、と決心をして作業を始めました。 github のアカウントは作成済みである github でリポジトリを作る方法は知っている RubyGem の作り方は知らない 上記スペックの人間が、jewelerというgemの存在を知り、試用してみたら、[これはべんり]だったので記録しておきます。 続きを読む http://gems.github.com/ より。 gemspec のバージョンがあがったらgemをリビルドするよ! とあるので、gemspec の push とリリースはほぼ同じ作業と思った方がよいようだ。ということで release タスクというのがあるわけですね。

    jewelerとgithubで始める初めてのRubyGem作成 - Web屋かもしれない人の日記 || WebJourney 開発ログ
  • ユーザー登録の順番。 - Web屋の人の日記 || WebJourney 開発ログ

    Email/Password だと先にログイン名などを登録させてから、最後に認証、という手順。一方で、OpenID だと、先にOpenID認証を済ませてから、最後にユーザー登録(OpenIDとそのサイト独自のアカウントを紐づける作業)をさせる。 OpenIDがアカウントの増殖を解決しない、ということは既知の事実のハズだが。どうも後者のやり方が気に入らないない。

    ユーザー登録の順番。 - Web屋の人の日記 || WebJourney 開発ログ
    IwamotoTakashi
    IwamotoTakashi 2009/02/23
    そうなんだよなあ>「OpenIDがアカウントの増殖を解決しない、ということは既知の事実のハズだが」
  • 1