Block Rockin’ Codes

back with another one of those block rockin' codes

IETF89 で #http2study の話をしてきました。

2014/3/2 ~ 3/7 にイギリスのロンドンで実施された IETF89 に参加し、 HTTP2 について議論している httpbis というワーキンググループで、 日本での HTTP2.0 に関する Local Activity (コミュニティ活動とその成果) について発表してきました。

Go の Generator を channel と closure で速度比較(または Go でのアトミック処理イディオム)

追記 この記事は元々 Go のイディオムとして、いわゆるジェネレータの実装がどうできるのかを軽い気持ちで書いただけで、速いから「Closure を使いましょう」などと一言も言ってなかったのですが、一方が channel であったため原子性についての言及がいくつ…

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

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

2013 年をふりかえる

intro 恒例の振り返りです。 去年の年末に「Go で SPDY サーバを書くと」 言った目標を立ててスタートした年なのでその辺が中心だったと思います。 年の初めにちょろっと SPDY のパッチを go.net に投げて、そっからは HTTP2.0 仕様を追いかけながらサーバ/…

これからの Web の話をしよう。 (次世代 Web セッション @ CROSS2014)

Update 2014-01-19 振り返り CROSS2014 が無事終了しました。以下ログです。ビデオは前のセッションとかぶっているので 35 分くらいからが本セッションです。 USTREAM: cross-a (35:00~) Togetter: 次世代 Web セッション #cross2014 Slideshare: next gener…

Go でベンチマーク

Intro Go にはベンチマークを取る仕組みが標準で備わっています。 テストを書く仕組みも標準で備わっており、 testing モジュールと go test コマンドで行いますが、 ベンチも同じような形で実行することができます。 今回は簡単なベンチ取り方を紹介します…

HPACK の Integer Representation の仕組み

intro この内容は、 HPACK draft-03 を元に書かれています。 http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-03将来のドラフトでは変わる可能性があるためバージョンにはご注意下さい。(以下の内容は、自分がアルゴリズムから読み解いた…

#BPStudy72 で SPDY / HTTP2.0 / QUIC のお話をさせて頂きました。

intro ちょっと遅くなってしまいましたが、 BPStudy#72 にて、 SPDY / HTTP2.0 / QUIC についてのお話をさせて頂きました。BPStudy#72 - connpass 資料 発表資料です。 SPDY & HTTP2.0 & QUIC - #bpstudy 2013-08-28 from Jxck :) 資料は以下です。今回は、…

HTTP2.0 勉強会を開催しました

Intro HTTP2.0 は Draft-04 が出て、その実装を持ち寄っての相互接続試験を実施し、フィードバックを踏まえて Draft-05 が出るなど、割とチェックポイントな感じがあったので、一旦色々まとめたいなと思い勉強会を実施しました。http2.0 勉強会 - connpass …

なぜ QUIC や SPDY が生まれたのか ?

Intro Google が SPDY の開発を始めたのは 2009 年で、 2012 年に HTTP2.0 のドラフトとして採用されたあたりからちょっと話題になりました。 翌 2 月には新たなプロトコル QUIC の存在が Chromium のソースからリークしたのですが、しばらくは音沙汰なく。 …

Advanced Go Concurrency 3 つのパターン

intro ちょっと時間が経ってしまいましたが、 Go研 vol.03 では、 Google I/O 2013 で行われてた Go のセッションの 1 つである下記をテーマに研究しました。 Advanced Go Concurrency Patterns 資料は以下です。 https://github.com/goken/goken/blob/maste…

Web+DB Press vol.75 で SPDY/HTTP2.0 特集を書かせて頂きました

intro タイトルのとおり、 Web+DB Press の vol.75 にWeb をより速くする次世代プロトコル!![速習]SPDY & HTTP/2.0というタイトルで特集記事を書かせていただきました。WEB+DB PRESS Vol.75作者: 栗林健太郎,柴田博志,はまちや2,常松伸哉,黒田良,川添貴生,…

Go1.1 の Race Detector

intro 先々週、Go 1.1 がリリースされました。いくつか新しい機能が入ったのですが、その中の Race Detector というのが面白そうだったので、 軽く調べてみました。 Race Detector この機能は、簡単に言うと「レースコンディションが発生していないか」を調…

Go の並行処理

intro 先日の Go のカンファレンス GoCon で、 Go の並行処理周りについて発表させて頂きました。 Go Conference 2013 spring - connpass 具体的には Goroutine や Channel の話ですが、これらの機能は結構面白くて、いじって遊んでるだけでもわくわくします…

JSON - を node の Stream で整形する

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

Go の interface 設計

history 13/3/31 Tag について追加 intro Go を触ってて interface を用いた設計がまだまだよくわかってなかったので、一旦まとめることにしました。Go には明示的な継承の機能は無く、 interface も例えば Java のそれとはかなり毛色が違うので、(Class で…

Apache mod_spdy の X-Associated-Content で Server Push

intro SPDY の Server Push については以前にも書きましたのでそちらをご参照下さい。SPDY と WebSocket の基礎と SPDY の Push - Block Rockin’ Codes 上記記事ではサンプルの実装に node-spdy を用いましたが、更なる検証のために他の実装を調べました。 …

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

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

GO の SPDY パッケージのアップグレード

追記 2013/02/13 パッチが本家に取り込まれました https://code.google.com/p/go/source/detail?r=71409a1c89f0&repo=netレビューでもの凄くお世話になった mikio 先生には頭が上がりません。 本当にありがとうございました。 intro あけましておめでとうご…

2012 年をふりかえる

intro 恒例の振り返りです。 Output それなりにアウトプットを意識してきたので、今年は多かった気がします。 共著ながら書籍もやっと出せたし、 Web+DB Press へのデビューもしました。 あと、学園祭にも携わったし Node 学園だけでなく、 Pyfes などでも発…

これからの Web の話をしよう。 (次世代 Web セッション @ CROSS2013)

update 2013/1/13 終了したので録画やログを追加 intro 2013/1/18(Fri) に開催される CROSS2013 にて、「次世代 Web セッション」というセッションを担当させていただくことになりました。 次世代 Web セッション 今日はこのセッションの内容と、このセッシ…

アナログシンセのモジュールアーキテクチャ

intro この記事は、 Web Music Developers JP Advent Calendar 2012 の 22 日目の記事です。 今日は、モジュラーシンセサイザーの仕組みと、それがアーキテクチャ的にはモジュールの集まりで、 しかもそれらモジュールは Stream であると解釈できる点につい…

次世代規格 HTTP2.0 のファーストドラフト公開

intro 少し経って、去る11月28日に、HTTP プロトコルの次期規格となる HTTP2.0 のドラフト、 draft-ietf-httpbis-http2-00が、IETF の httpbis ワーキンググループで公開されました。 このドラフトは Google から提案された仕様である SPDY が採用されていま…

東京 Node 学園祭 2012

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

Engine.IO からみる Socket.IO の今後

intro この記事は 東京Node学園祭2012 アドベントカレンダー : ATND の 24 日目の記事です。 Socket.IO の 1.0 が、出る出るといって全然出ないので、 やきもきしている方も多いと思います。 しかし、その裏では Engin.IO という、割りと良い感じの ファミリ…

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

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

Web+DBPress Vol.71 で WebSocket 特集を書かせて頂きました。

intro タイトルの通り、 WEB+DB PRESS Vol.71 で WebSocket の特集を書かせて頂きました。 WEB+DB PRESS Vol.71作者: 竹迫良範,Jxck,じょさん,後藤秀宣,藤原俊一郎,奥野幹也,堤智代,森田創,中島聡,A-Listers,はまちや2,相澤歩,柴田博志,池田尚史,梅澤雄一郎,…

非同期と next()

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

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

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

Chrome Socket API で WebSocket

intro Chrome Canary で Socket API が listen() をサポートしたってことで、 ブラウザ上にサーバを立てるという矛盾した行為が、 にわかに流行っているようです。 HTTP Server on Chrome Socket API で、以下のようにするとサーバが立てられて。 クライアン…