Block Rockin’ Codes

back with another one of those block rockin' codes

node.js

「for やめろ」またはイベントループと nextTick()

ものすごく遅レスですが、LLDiver で @esehara さんの LT であった話。 forやめろ、あるいは「繰り返し」という呪縛から逃れるために 簡単に言うと、 1~10 までを出力する方法を複数考えるというもの。 for, while, 再帰, goto etc.. と出て、途中で終わっち…

ジェネレータの解説と非同期への適用

update 2014-01-16 ご指摘頂いたので修正しました。ありがとうございます! @Jxck_ 動画すごくわかりやすかった!一個、重箱の隅っこなんだけど、convert関数のapplyしてるところ、fn.apply(fn, args) になってるけど fn.apply(this, args) が正しい気がしま…

JSON - を node の Stream で整形する

intro ちょっと反応が遅れてしまいましたが。 404 Blog Not Found:JSON - をnodeで整形する こちらの記事は Stream 厨として見逃す訳にはいきませんでした。 motivation JSONは本来JavaScriptから生じたものだからどうせならJavaScriptでやりたいし まあ、 J…

LTSV の Stream Parser を Stream2 で書いてみた

Update 2013/02/12 JSON => JSON Object に(JSON string でないものは)修正 LTSV LTSV が流行っていたんですが、完全に乗り遅れて Node も Go も実装は出てしまいました。 Node の方は sasaplus1 さんのものが こちら にあるんですが、パーサ関数のみで Stre…

東京 Node 学園祭 2012

intro 去年に引き続き 東京Node学園祭2012を開催しました。 今年も、スタッフとして参加させて頂きました。 今年は去年より規模を大きくし、海外のゲストも 4 人呼ぶことができました。 個人的には孤高のハッカー substack と行動したのが思い出深いですw 一…

サーバサイドJavaScript Node.js入門 を執筆させて頂きました。

intro 本当にお待たせいたしました。 出す出すといってなかなか出せなかった Node.js 本が、ついに出版されました。 共著の一人として、自分も書かせていただいています。 サーバサイドJavaScript Node.js入門作者: 清水俊博,大津繁樹,Jxck,小林秀和,佐々木…

非同期と next()

intro この記事は、 東京Node学園祭2012 アドベントカレンダー : ATND の 3 日目の記事です。 (日付変更線は、はてな時間を採用しております。。 ごめんなさい m(__)m) 非同期と next() next() とは、 Express や Connect 、 Mocha 、 そして一部のフロー制…

東京Node学園7限目で Stream について発表してきました。

intro もうなんかだいぶ経ってしまったし、まだ直さないといけないところあるんだけど、 忘れるので上げるだけ上げておきます。 Node Academy 7 | "Stream Stream Stream !!!"

WebSocket サーバの実装とプロトコル解説

intro なんだかんだ WebSocket を使ってるのに、 WebSocket サーバを自分で書いたことが無かったので、RFC も落ち着いてきたここらで、仕様を読みながら実装してみようと思いました。 "WebSocket サーバ 実装" とかでググると、 Socket.IO とか pywebsocket …

Trigger と Stream ベースの Reactive スタイルについて考える

intro 先日 Meteor について調べて発表するにあたり色々調べたり、そのあと何人かの方々とお話させて頂いた中で、 思うところが出てきたので、アウトプットしたいと思います。 Meteor について発表してきました。 - Block Rockin’ Codes Meteor 以前からも思…

Meteor について発表してきました。

追記 12/5/9 meteorについての感想をすこしだけ追記 introduction もう結構経ってしまいましたが、 東京Node学園 5時限目 - connpass で Meteor について発表してきました。 slide スライドは以下です。今回はどうせ寿命の短いスライドだし、面倒なので PDF …

Node.js の起動オプション、環境変数、npm start の話

Node は起動時に色々オプションをつけることができます。 面白いもの、有益なものあるんですが、あまり言及されてないので、 ちょっと紹介してみようかと思ってます。 最後の npm start の話は、それ単体で書いても良いかと思っていたんですが、 関連するし…

Socket.IO or WebSocket を AmazonELB でバランスする検証

追記 12/2/29 検証コードと環境は後にしてとりあえず結果だけ書く 12/3/5 Socket.IO の RedisStore を使えばスケール可能なことがわかったので追加 12/3/11 検証コード追加 caution この検証は 東京Node学園 4時限目 - connpass でやった結果です。しかしそ…

node.js の環境管理ツール nodebrew

intro nodebrew は バージョンアップの速い node.js を、複数バージョン管理するためのツールです。 ruby の rvm や、 python の virtualenv、 perl の perlbrew などの node.js 版と思ってもらえれば良いです。 自分はこれまで nvm を使っていたんですが、…

"リアルタイム Web" に関するプラクティスのアウトプット

追記 11/12/26 MLのスレッドへのリンクが間違っていたので修正。 introduction WebSocket なんかをつかって、従来のステートレスな処理以外に、コネクションを継続するステートフルな処理が可能になりました。 これを利用すると、これまで実装が難しかったリ…

Stream.IO というものを作ってます。

追記 12/5/5 Stream, EventEmitter などを移植して chat サンプル動きました。Jxck's OutPut - Stream.io の example として Stream だけの Chat #nodejs_jp 本文 この記事は、JavaScript Advent Calendar 2011 (Node.js/WebSocketsコース) とは関係ありませ…

Node.js の Stream API で「データの流れ」を扱う方法

追記 11/12/6 少し誤字脱字を修正、加筆 11/12/7 koichik さんにコメントで頂いたリンクと、その内容について追記 11/12/7 edvakf さんに頂いた指摘を修正 本文 この記事は、JavaScript Advent Calendar 2011 (Node.js/WebSocketsコース) の 4 日目の記事で…

クライアントとサーバの両方で使える JS コードの書き方

追記 11/12/25 Bi ってそんなに一般的ではない、 Both-Sides JavaScript の方が、ということでまた変更しました。(side でなく side's') 11/12/04 Both Side JavaScript は変ということで、 BSJS=Bi-Side JavaScript に変更しました。 本文 CSJS と SSJS で…

東京Node学園祭2011

遅くなってしまいましたが、 10/29(土) に「東京Node学園祭2011」のスタッフとして運営と発表をさせいていただきました。東京Node学園祭自分の発表は、初心者向けセッションとして、Express と Socket.IO を用いた簡単なアプリの作成をライブコーディングで…

Socket.IOv0.8.4 のソースを読んでわかった次期新機能先取り

本文 Socket.IO のソースを眺めていると色々面白いことがわかります。 master がガンガン新機能を実装していて、現時点でもアンドキュメントな API もいくつかあるし、結構ソースは読みやすい方なので勉強になります。で、最近また最新のを読んでたら色々面…

node.js の modules wiki を見るときの便利ブックマークレット

表題の通り、Modules · joyent/node Wiki · GitHub を見るときに、便利(主に自分が) になるブックマークレットを書いてみました。 本文 Node.js のモジュールを探す方法としては大きく二つあって、 Modules · joyent/node Wiki · GitHub から探す npm から探…

Socket.IO のマニュアル翻訳を開始しました。

タイトルの通り、翻訳を開始しました。 といっても Wiki とかの翻訳は少し前から先攻してやっていて、 ページは事情が合ってペンディングしていた状態でした。 翻訳ページ http://jxck.github.com/socket.io リポジトリ https://github.com/Jxck/socket.io …

Socket.IO と Express でセッションの共有

Socket.IO のサーバは v0.7 からスタンドアローンでも立てられるようになりましたが、 Express のサーバ上に Socket.IO のサーバを同居させる構成は多いと思います。 しかし Socket.IO は Express が HTTP で確立したセッションとは別のコネクションを確立す…

Socket.IO API 解説

追記 11/7/31 Socket.IO v0.7 解説を最初に途中までで出す。 11/8/1 だいたい全部新機能なので '(新機能)' って書くのやめた。 11/8/4 オプションの設定周りを追記 11/8/6 認証周りを追記 11/8/12 スタンドアローンのサンプルを追記 11/9/27 Socket.IO v0.8 …

JUS総会併設勉強会「『Node.js』とは何か。そして、その先へ。」でお話しさせていただきました。

JUS総会併設勉強会「『Node.js』とは何か。そして、その先へ。」 でお話しさせていただきました。 タイトルからして、なんというか 「そして、その先へって、どこなんだよ meso さん。。」 と、何を話すかかなり悩みましたがw前半が bad_at_math さんによる…

Node で使える ECMA Script 5 の新機能

追記 11/9/24 Gistのリンクを本家Wikiに貼ってみました。 11/9/24 log 関数を修正しました。 11/7/10 JSON.stringify の第二引数 replacer について、補足しました。 11/7/14 os0x さんの指摘を反映しました。 String.trimRight、trimLeft は ECMA Script 5 …

require('events').EventEmitter.call(this) の意味

[修正] コメントで指摘されたように、回答4の訳が間違っていたので訂正しました。 Node の ML に以下のような質問が投稿されました。What is the meaning of require('events').EventEmitter.call(this)内容としては。 「以下のようなコードがあったんだけど…

Node におけるスケールアーキテクチャ考察(Scale 編)

[追記]途中までは Node での複数プロセス起動、プロセス間通信等について書かれていますが、後半は自分が前回の記事 を書くにあたって自分が考えてたことを少し強引に広げて書いた個人的な妄想が多く含まれ、Node におけると言っときながら、後半は Node 関…

Node におけるスケールアーキテクチャ考察(SSP 編)

*息抜きがてら書いていたら長くなってしまった。。 *当たり前ですが、あくまで個人的な考えです。 *ころころ変わるかもしれません。 Node の基本的な知識についての話は色々なところで出始めて、 じゃあこーいう場合はどうするの? みたいな話が出始めた…

Socket.IO v0.7 のロードマップと新機能

Node と言えば、Socket.IO といっても過言ではないほど、Socket.IO は Node にとって大きい存在です。 先の NodeConf で、この Socket.IO の作者 [twitter@rauchg] より、 Socket.IO v0.7 にむけたロードマップについての発表がありました。 新機能や API の…