たごもりすメモ

コードとかその他の話とか。

node

shib v0.2 beta なのを書いてる

だいぶ前に最初のバージョンをつくった shib というHive Webフロントエンドツール、ずっと使ってるんだけど色々こまめに手を入れたりしてた。tagomoris/shib · GitHub Hive Client Webアプリケーション shib をつくった - tagomorisのメモ置き場 Hive WebCli…

express 3.0 で cookieSession を使うときは cookieParser も明示的に呼べ

express とか久し振りだわー 3.0.0 とか慣れないわーと思いながら書いてたらセッション管理しようとしてハマった。のでメモ。とりあえず今回はカジュアルなセッション管理なので cookie でいいや、と思って調べてたらこんなのがあった。 express cookieSessi…

node.jsでHTMLスクレイピングをjQuery記法でやるライブラリみっつの比較

某イベントのためのコードを書くのにHTMLのスクレイピングをやりたいなー、nodeで書くかなー、去年は jsdom で書いたけど今はどうなんだろね、とか調べてたら、どうもこういうあたりのがあるらしい。 jsdom たぶん一番有名で高機能、だけど重い。 node-jquer…

Hive Client Webアプリケーション shib をつくった

(2013/04/02追記 see: http://d.hatena.ne.jp/tagomoris/20130402/1364898063 )まだ完成度がいまいちだからなーと思ってエントリ書いてなかったんだけどLTでしゃべっちゃったので、ちゃんと書いておく。Hiveにクエリを発行して結果を確認するためのWebアプリ…

npmモジュールを手元で修正するための読み込み順序メモ

npmで配られてるライブラリとかどうせ発展途上でばぐばぐだからガンガン直すんですけど git clone とかしてきたやつを以下のようにしようとしても、思ったように require されてくれない。 cd HOGE NODE_PATH=lib node var hoge = require('hoge'); 以前 npm…

#isucon を支えた技術: ベンチマークmaster/agentの構造とnode.jsの話

支えた技術ってほど大層なものでもないんだけど、なんとなくカッコいいのでシリーズ名にしてみようと思った。で、表題の件。 #isucon のベンチマークツールは1台のmasterと複数台のagentという構造になっていて、agentはベンチマークツールの負荷を複数台の…

Node.jsなWebアプリでJobQueueなしにラクラク巨大処理を実行

Node.jsでWebアプリを書いてるんだけど別に大量のリクエストをさばくわけでもないしWebSocketも使ってないし、じゃあなんでそんなことしてんの、という話。まず結論だけ書くと、 並列度が低くてよいが長時間かかることが確定的な処理を非同期的に走らせる必…

node.jsで複数の処理を並列に実行して全部完了したらコールバックを呼び出したい

I/Oを含む処理はnode.jsにおいてコールバックを繋げる一連の非同期処理として実装するんだけど、これらの一連の処理を複数並列に実行し、それら複数の処理が全部完了したら特定のひとつのコールバックを呼び出す、というようにしたいなー。 と思ってうっかり…

HiveServerを使用してnode.jsからHiveQLを実行する

HiveServerはThriftプロトコルをしゃべるので、おなじくThriftで接続すると任意のクエリを発行できたりして大変便利。ということで node.js からもやった。以前からやってる内容の続き。 HiveServerを使用してPythonやPerlからHiveQLを実行する - tagomoris…

node.js用のKyoto Tycoonクライアントライブラリ2種類を比較

アプリのデータ格納にKyoto Tycoonでも使うべ、と思って調べてみるとnode.js用には2種類のクライアントライブラリがあるようだ。 kyoto-client - Kyoto Tycoon client for node.js node-kyoto-tycoon - SWDYH どちらも npm install kyoto-client および npm …

node.jsの非同期I/Oにおけるデータ受信のパターンのバリエーション

そもそもなんでnode.jsのThriftライブラリではBufferedTransportがサポートされず、FramedTransportのみが使える状態だったのか。Thriftの歴史的にはBufferedTransportの方が先行して存在しており、また仕様自体も単純のようだ。*1 実装を開始してみてわかっ…

node.js用のThriftライブラリにパッチを書いた

先日の node.jsからThrift経由でHiveServerに通信しようとして力尽きた - tagomorisのメモ置き場 の記事に書いた件、しばらくThriftの BufferedTransport の他言語実装を眺めていたらなんとなく作れそうな気がした*1ので、transport層を置き換え可能にするた…

node.jsからThrift経由でHiveServerに通信しようとして力尽きた

力尽きたのでメモだけ。 Thriftがバージョン 0.6.0 でnode.jsに対応したことになっているが、送信/受信ともに FramedTransport でしか動作しない 開発はここ https://github.com/wadey/node-thrift 今のところFramedTransport以外の実装を作る気配はなさそう…

MacOSXでnode.js/npm/nvmをインストール

メモ。(3/4 15時に修正) $ brew install node $ curl http://npmjs.org/install.sh | sh $ npm install nvm $ source ~/.bashrc # nvmのインストール時に指示される $ nvm install v0.4.2 # など 最初に brew install node するけど、ここで入るnode.jsのバ…