2010-01-01から1年間の記事一覧

MongoDB&CouchDB勉強会

id:doryokujin さんが、MongoDB JPを立ち上げる、ということをお聞きしたので、「まずは勉強会、話はそれからだ。そして俺らも混ぜてくれ」ってことで一緒にやってきました。ほとんどmongoに興味のある人ばっかりでしたけどね。まぁ、CouchDB の本当におもし…

Wikileaks

一般ニュースでも流れているWikileaks. サイトが追いやられるからミラーしようぜ!? 的な話があちこちであって、これを見たときに「とりあえずCouchDBに乗っけとけばレプリケーションで自由自在じゃね?」って思ったわけですよ。とつぶやいたら、コミッターの…

BpStudy の資料

Bp study39 nodejsView more presentations from yssk22.redis の練習に作った node.js 版の実装が意外と高負荷でもちゃんと動いてくれてびっくりしました。パフォーマンス云々よりも、なにより、JavaScript + Event IO のコンボの良さの本質を体感できたと…

本を書いているらしい

他人事ではないんですが(笑とりあえず、入門的なところはハンズオンの資料で一通り書いちゃったので(自爆、高度な内容にならざるを得なくなりました。逆にボツっちゃった内容はハンズオンにだだ漏れしていくのもありかなぁと思ったり。https://groups.google…

Python Hackathon 2010.11 終了

ひとまず、ライブラリ探訪以外の部分はまぁ入門レベルにはなりました。http://dl.dropbox.com/u/219436/node.js/handson/build/html/index.htmlPython Hackathon なので、参加者がいるかどうかはどちらでもよかったんですが、3人で黙々と作業していました。…

BPStudy #39

あと、BPStudy でも発表の機会をいただけることになりました。3-4ヶ月ぐらい node.js と戯れてみたので その辺のまとめという意味で入門編の話 やアプリのデモをしようかと。 今年はアウトプット全然出してないので、ちょっと頑張らないと。

socket.io がすばらしすぎた件

Python Hackathon の準備完了しました。node.js の入門的なハンズオンコースで、最後に WebSocket を使ったサンプルまでいければ上出来です。 jQuery をサーバーサイドで使うとかはちょっと敷居が高いかも。。ということでハンズオンやっている最中に書くこ…

JSON String のマルチバイトの仕様

ES5 の仕様書http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdfJSON.stringify(”ほげほげ") は "ほげほげ" となるのが正しい模様。一方で、RFC http://www.ietf.org/rfc/rfc4627.txtによると、"ほげほげ" は "\\u307b\\u3052\\u30…

全然関係ないけど npm のサイトはCouchDBで動いています.

npm publish が失敗するのでいろいろデバッグしていたら、npm の登録サイト registry.npmjs.org が CouchDB で動いていることを見つけました。ということでどれぐらい開発者いるんだろう?と思って /_users/ をたたくわけです。http://registry.npmjs.org/_us…

vows でテスト.

テストの方も、3割ぐらいしかかけてませんが、 vows という BDDのテストフレームワークで書いてみました。https://github.com/yssk22/node-twbot/blob/master/spec/spec_twitter.js書きやすいっちゃ書きやすいけど、a -> b -> c というイベントの流れでどこ…

サンプル - 英語のリスニング

ちょうどやっている最中に Twitter / cakephper: 英語のTweetを定期的に取得して、Sayに突っ込め ... というのを聴いて、実装してみた。何人か海外の人のtweetみているんだけれど、聴けばいいんじゃね?ってことで。https://github.com/yssk22/node-twbot/blo…

node-twbot 0.0.1 / Hackathon 用の資料

WebSocket やらない、という選択肢はなさそうなので、家で使っているtwitterボットをパッケージ化しました。EventEmitter のサブクラスとして再定義しなおして、いろいろできるように。 $ npm install twbotで入ります。WebSocket のサンプル作るときに使お…

Hackathon 用の資料

Python Hackathon で空気を読まずにnode.jsをやるのですが、例によってHackathonの資料はSphinxで書きつつDropboxでいつでも読めるようにして、bitbucket でバージョン管理、というコンボをしています。http://dl.dropbox.com/u/219436/node.js/handson/buil…

実行コンテキストのスイッチ単位

http://gist.github.com/622432のコードが常に正常に動くのが node.js クオリティ。 c = c + 1; が常に保証されている (ref: http://www.gnegg.ch/2010/09/why-node-js-excites-me/) さらに ev.emit('end') の発火とイベントリスナーの実行完了までが常に保…

URL を CouchDB にコピーする

わけあって、URLを丸ごとCouchDBの添付ファイルにコピーする需要があって、せっかくなので node.js で書いてみました。 ちょっと長いのでGistにおいてます。http://gist.github.com/622432

node.js で jQuery

http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs実は使える模様。まだやってない。HTMLなどをとってきてごにょごにょしたり、WebアプリでHTMLを返すのにサーバーサイドのjQueryでごにょごにょするのには良さそうですね。

__defineGetter__ , __defineSetter__

普通に使えますね。JavaScript でGetter/Setterプロパティを実現するための関数。 Foo.prototypoe.__defineGetter__('prop1', function(){ return '...'; });

sys.inherits で継承を実現

> var sys = require('sys'); > sys.inspect(sys) '{ print: [Function]\n, puts: [Function]\n, debug: [Function]\n, error: [Function]\n, inspect: [Function]\n, p: [Function]\n, log: [Function]\n, exec: [Function]\n, pump: [Function]\n, inherit…

GData にだってアクセスできるんだぜ

Google Calendar API に node.js でアクセスするサンプルです。 Google は JSのクライアント実装を提供してくれていますが、node.js だと使い物にならないので、必要な部分だけ書いてみました。雰囲気だけつかんでいただければ。HTTP Call 自体も非同期なの…

Twitter だって使えるんだぜ。

もう一つ。こちらも必要だったので。 /** * Twitter Client for node.js */ var sys = require('sys'), url = require('url'), querystring = require('querystring'), http = require('http'), crypto = require('crypto'), EventEmitter = require('events…

奥に向かってプログラムを書く、という行為

昔々、関数型言語をはじめにやったとき、こういう印象を持ちました。奥に向かって突き進んで戻ってくるような感じ。その感覚がnode.jsでも味わえます。node.js の場合、すべてのメソッドが非同期で実行されるので。 var foo = hoge(); var bar = piyo(foo); …

Python Hackathon 2010.11 でハンズオンやります。

http://atnd.org/events/6359すでに満杯なのですが、そして、今年からばりばりPythonで仕事をするようになったのですが、それでもPython Hackathonでnode.js のハンズオンをすることになりました。Hello World から簡単なWebアプリを書くところまで、データ…

node.jsでTwitter stream を CouchDB に放り込みつつ、ブラウザに垂れ流すアプリを書いてみた

以前 node.jsでTwitter ChiarpUserStreamを閲覧するWebアプリを作った - 酒日記 はてな支店 を見て、おもしろいなぁ、と思っていたので、やってみました。変更点は 単にtwitter streamを垂れ流すのではなく、一度CouchDBに放り込んで、CouchDB から MapReduc…

npm モジュールを公開してみる

もう一つ。node.js には npm という Ruby の gem、Python の setuptools/pypi、Perl のCPAN、PHPの... 的なモジュールがあります。昨今、使うばっかりじゃダメだ、と思っているので、とりあえず自分がすぐに必要だったHTMLの本文抽出ライブラリを node.js 用…

node.js/express で CouchDB をパワーアップ大作戦

CouchDB をメインのアプリケーションサーバーとして使っているものの、サーバーサイドで他のサービスと連携したいときにはちょっと不便さを感じてしまいます。そういうときは、イマドキ?のWeb Frameworkの上で、CouchDBをデータベースとして扱えば良いんです…

Varnish を CouchDB 用のReverse Proxyに活用する。

ご無沙汰しております、生きています。さて、CouchDB 1.0 がでて、incremental replication もだいぶ安定した感があるので、自宅の CouchDB でロードバランスしたくなりました。Apache mod_proxy_balancer という手もあるのですが、Incremental (MapReduce +…

Futon が動きました。

といってもトップページ+そこからDBを作成するところだけですが。ディスクサイズとかは正直どうやって計算すればいいのかわからないので、後で考えます。update_seq とかdoc countとかはジョブを動かして Eventually Consistency な感じであわせる方向で。ht…

CouchDB Compatible API Service on GAE

元々の目的は、データモデルがいい加減だとスケールする環境でもスケールしなくなるよ!という話のつもりだったんですが。ソースコードを公開しつつチャレンジしていこうと思います。http://github.com/yssk22/gaecouch今できることは README.md に書いてあ…

これはなんだ?

imac:gaecouch yssk22$ curl -X GET http://gaecouch.appspot.com/ {"not_found": "Welcome", "version": "0.11.0"} imac:gaecouch yssk22$ curl -X GET http://gaecouch.appspot.com/a {"reason": "not_found", "error": "no_db_file"} imac:gaecouch yssk2…

たまにはCouchDBの話。TV CM

twitter ではつぶやいていたのを目にしていたのですが、Damien氏にエントリがまとめられています。「Google Ads に CouchIO のCMをサブミットしたら却下された件」→ http://damienkatz.net/2010/05/google_denies_our_commercial.html海の向こうはリアルのTV…