ぼちぼち日記

おそらくプロトコルネタを書いていることが多いんじゃないかと思います。

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

次世代JavaScriptでデータバインディング: Object.observe() を試す

1. はじめに、 本記事は、HTML5 Advent Calendar 2012の参加(6日目)エントリーです。 当初は昨年のアドベントカレンダーでテーマにしたマイナーAPIをネタにして書こうかと考えていたのですが、探してもあまりピンとくるものがなく、いつものごとく新技術ネ…

Node API のクラス図を公開しました。

東京Node学園祭2012 アドベントカレンダー 13日目の記事です。 はじめに、 自分が Node.js を一番最初に使い始めた頃、Hello World のサンプルコードを動かしたのはいいけど、その後にNodeマニュアルを読んで勉強し始めたら内容が全然理解できず、挫折しちゃ…

libuvで消費者ー生産者問題を解く(Condition Variableを使う)

1. 最近 libuv の開発が熱い V8と並ぶNode.jsの屋台骨のlibuvですが、最近 libuv 周りの開発が熱いです。まず libeio が削除され、ファイルI/O は libuv独自のスレッドプールを用いた管理方式に変わりました(unix: remove libeio)。 これまでファイルI/Oは…

Node.js-v1.0 リリースに向けてどうなる?

9/24にサンフランシスコで Dataweek2012のカンファレンスにてNodeSummit が開催されました。ちょうど今朝 Node の Gatekeeper である isaacs のプレゼンがあり、資料を見てみると今後の Node に関する話題(node-v1.0のリリースに向けて)が記載されていたの…

Ninjaを使ってNode.jsをビルドする

今朝 Node.js でマージされたPull Request「 add configure option to build with ninja 」によって、Node.js が Ninja ビルドシステムに対応になりました。 Nodeの PaaSでは Nodejitsu や Node Ninjaなど忍者シリーズで命名されたものが思い当りますが、実…

GREEが悩むNode.jsの問題を考えるヒント

先日 GREEを支える大規模インフラテクノロジー」-GREE Platform Summer Conference 2012 という記事が公開され、GREEのCTOの藤本さんが、 javascriptをサーバーサイドでも使うケースが多くなってきていて、必然的にnode.jsを使うことになるが、大きく3つの…

ネストされたドメインの奇妙な振る舞い

はじめに ちょっと前の nodejs のメーリングリストで 「Odd behavior of nested Domaons」 https://groups.google.com/d/topic/nodejs/i8NjWjVvk2I/discussion という質問が投げかけられていました。 私も内容が気になり、動作結果が非常に奇妙に思えたので…

Googleが示すJavaScriptを350倍高速化する秘訣

1. はじめに、 今年も Google I/O が開催されました。一度も現地に行って参加したことはないのですが、毎年セッションの内容は技術的に高度なものばかりでいつも注目しています。今年の一つ興味深いセッションで、「Google I/O 2012 - Breaking the JavaScri…

Google の SPDY ベンチマークに関する一考察

Google さんからのブログ記事 モバイルネットワークにおける SPDY のパフォーマンス は4月末に元記事が出ていたのに、すっかり見逃していて日本語訳が出るまで気づきませんでした。元記事を読むと、ベンチを取る環境の構築が徹底していてさすが Google と感…

Node.js で Hello SPDY を作る

SPDY が流行っている SPDY が流行っています。当初 Chrome だけ使えていたのが FireFox のサポートするようになり、Google からの apache モジュールの提供や nginx のサポート予定などここ最近で SPDY に関する話題が急に増えています。Node.js では昨年既…

node-v0.6.18からエラー表示がわかりやすくなります。

今まである程度 Node.js を使ったことがある方は、以下のエラーメッセージを1度や2度目にしたことがあるのではないでしょうか。 node.js:201 throw e; // process.nextTick error, or 'error' event on first tick これは以前の記事 Node.js のエラーメッ…

node.js Domain 時代のエラー処理のコーディングパターン

id:kazuhooku さんの記事 node.js におけるエラー処理のコーディングパターン (もしくは非同期 JavaScript における例外処理。 ナイスです! なんと素晴らしいタイミングでのブログでしょうか!「東京Node学園 5時限目」で id:koichik さんのプレゼンで node…

nodetime がローカル環境で使えるようになった

先日の記事で 「 nodetime は、nodetime.com のサーバにデータを送ってしまうのでローカル環境で使えない。パッチを送ったけど断られてしまった。 」と書きましたが、今朝 nodetime をバージョンアップして nodetime.com のサーバに送らずにデータを取得でき…

nodetime が動いている仕組み

ちょうど昨日ですが、nodetime というなかなか面白いモジュールが公開されました。https://nodetime.com/npm で nodetime モジュールをインストールした後に自分のプログラムの先頭に、 require('nodetime').profile(); を付け加えて実行すると、標準出力に …

gyp による Addon 向けネイティブモジュールの作成

ちょうど今朝 node-v0.7.6 がリリースされました。このリリースではアドオン周りを TooTallNate さんがいくつか修正を行い、なんとか今後の Node.js のネイティブモジュール形が見えてきましたので、その辺の紹介をします。現状わかっている範囲でネイティブ…

node-0.7.x の新機能: GYPによる Node.js のビルド (追記)

先程ちょうど node-0.7.1 がリリースされました。 実は前回書いた GYP 周りのビルドで少し修正が加えられています。nodeをGYPでビルドする際に Release/Debug を選ぶのですが(default は Release)、node-0.7.0 では Debug をビルドするには make BUILDTYPE=D…

node-0.7.x の新機能: GYPによる Node.js のビルド

ちょうど先ほど Node.js の新しい unstable ブランチである 0.7.0 がリリースされました。(パチパチ) 年末からの hash collision 問題や、 core dump など安定性を脅かす問題も 0.6.x である程度片付いたので、これからは新機能開発・改良に重点を移してい…

Node.js でマルチスレッド: isolate を使ってみた。

(注意: Isolates 機能の開発は中止になりました。 参考 https://groups.google.com/d/topic/nodejs/zLzuo292hX0/discussion )Nodeの次期バージョンの新機能として予定しているマルチスレッド対応については、先日の「東京Node学園3時限目」で @koichik さん…