読者です 読者をやめる 読者になる 読者になる

Block Rockin’ Codes

back with another one of those block rockin' codes

Blog を引っ越しました

https://blog.jxck.io に引っ越しました。

2015 年をふりかえる

個人的には HTTP2 と ORTC/WebRTC と Service Worker 周りさわって、 JS と Go を書いてる一年だった。

HTTP/2 Push を Service Worker + Cache Aware Server Push で効率化したい話

intro このエントリは、 http2 advent calendar の 1 日目です。 http2study の分かってる人にとっては、「casper の JS 版を作ってる」だけで伝わるかもしれませんが、そうでない場合非常に話すべきことがたくさん有る気がするので、順を追って説明します。…

Let's Encrypt を支える ACME プロトコル

Let's Encrypt を支える、証明書発行自動化のプロトコル ACME の紹介。

次世代 Web カンファレンスを開催しました #nextwebconf

次世代 Web カンファレンスを開催しました。 #nextwebconf

ORTC が切り開く SVC サイマルキャストと WebRTC NV

「ORTC って WebRTC がちょっと便利になるくらいなんでしょ?」くらいに思っている人が結構いるようだったので、現時点で予想される [ORTC のもつ可能性](https://twitter.com/Jxck_/status/639468037960134656) と、現状の WebRTC の問題点、そして WebRTC …

2015 夏 (#seccamp -> #summersonic -> #yapcasia)

セキュキャン、サマソニ、 YAPC と充実した夏になった。

「次世代 Web カンファレンス」を開催します

2015/10/18(日) に、「次世代 Web カンファレンス」を開催します。

HTTP2 の RFC7540 が公開されました

Intro 今朝、ついにずっと策定作業が行われていた HTTP/1.1 の後継仕様である HTTP2 と、 関連仕様である HPACK が、 RFC として公開されました。 ついに HTTP2 RFC 7540 出た!! #http2study / “rfc7540.txt” http://t.co/CuaVul98l3— Jxck (@Jxck_) 2015,…

HTTP2 時代のサーバサイドアーキテクチャ考察

update 色々と twitter で議論が起こったのでまとめて貼っておきます。 HTTP2 時代のサーバサイドアーキテクチャフィードバックtogetter.com みなさんありがとうございました。 intro HTTP2 の RFC 化も目前ということで、そろそろ実際に HTTP2 を導入してい…

HTTPS 化する Web をどう考えるか

Update 2015/5/8: 指摘頂いたタイポや誤訳などを更新しました。 2015/5/8: 構成を一部修正しました。 Intro 4/30 mozaiila のセキュリティブログに下記のようなエントリが投稿されました。 Deprecating Non-Secure HTTP | Mozilla Security Blog エントリは…

Service Worker で prefetch

Service Worker を使ってリソースの prefetch を実装してみたという話。

Ajax 誕生から 10 年とこれから

Intro 誕生と言うのが正しいか微妙だけど、多分誕生でいいと思います。 というのも、「Ajax」という名前の出典は以下の記事で、この記事が書かれたのが今日からちょうど 10 年前でした。 Ajax: A New Approach to Web Applications (当時から、 URL が一回変…

Extensible Web を支える低レベル API 群

Intro 最近 Extensible Web の話がたまに出るようになりましたが、なんというかレイヤの高い概念(ポエム)的な話が多い気がしてます。 もう少し具体的な API とか、「それコード書く上で何が変わるの?」って話があまりないので、今日はそこにフォーカスして…

ServiceWorker を使った XHR のモックテスト

Intro 似た話は既出なのでご提案にはならないけど、PoC として一応ライブラリっぽくしてみた。 タイトルの通り XHR のリクエストに対して、任意のレスポンスを返すことによって、 再現の面倒なエラー処理などのテストを、 Local Proxy 無しで実現する方法の…

2014 年をふりかえる

intro 恒例の振り返りです。 今年もこのブログを毎月更新するっていう目標は達成できました。 HTTP2 去年からはじめた HTTP2 まわりの活動はウェイトがかなり多かったですね。 HTTP2Study というコミュニティを小さく小さくやってきた感じです。 勉強会、ハ…

#HTTP2Study の軌跡

Intro この記事は HTTP2 アドベントカレンダー 24 日目 の記事です。 HTTP2Study HTTP2 Study は、2013年8月くらいから小さく小さく活動しているコミュニティです。 HTTP2 もまだ HTTP2.0 と呼ばれていた頃で、 Draft でいうと 04 くらいですね(今は 16)。 (…

Extensible Web の夜明けと開発者が得た可能性の話

Web based on Standards Web は誰のものでもありません。 だれかプロダクトオーナーがいてその人が意思決定するとか、そういうのとは真逆の成り立ちをしています。 標準的な仕様を決めて、その仕様に則って Web の世界は成り立っている。 政府が作るサイトも…

Golang Error Handling lesson by Rob Pike

Intro この記事は Go Advent Calendar 2014 の 15 日目の記事です。 例えばネットワークのフレーム処理的なものを書いている場合、以下のようなコードがよくでてきます。 There are many codes like this, while writing a Network Frame Parser program. va…

Fetch API 解説、または Web において "Fetch する" とは何か?

Update [14/11/11]: Chromium での実装が M40 からあるそうなので、末尾に引用追記させていただきました。 [14/11/12]: この記事を書くにあたって、色々なかたにレビューや助言を頂いたのですが、謝辞などが一切抜けてました、本当にすいません。追記しまし…

Stream API がブラウザにやってくる

Intro 今日は、フロントのプログラミングスタイルに、にまた一つ大きな変化をもたらすであろう Stream という API についてです。 この仕様は現時点でまだ策定中であるため、 API は変更される恐れがある点にご注意ください。 Stream API 以前 「Node.js の …

HTTP2 のカンファレンスを開催します。 #http2conf

11/3 に HTTP2 のカンファレンスを開催します。 #http2conf

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

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

Web+DB Press vol.82 で Go の特集を書かせて頂きました #wdpress

update 2015/4/20: 技術評論社さんのおかげで、 無料で公開されることになりました! intro タイトルのとおり、 Web+DB Press の vol.82 に 「はじめての Go」 というタイトルで特集記事を書かせていただきました。 Web+DB press vol.82 届いた。特集で「は…

Go のスライスでハマッたところ

Go を始めた頃、謎に思っていたスライスの挙動についての話。

Go 1.3 で入った sync.Pool

先週リリースされた Go 1.3 で追加された sync.Pool について調べました。

ハイパフォーマンス ブラウザネットワーキング書評

Intro 執筆段階から、 Web で無料閲覧できた High Performance Browser Networking が、紙の本として出版され、その翻訳本が完成したということで、献本を頂きました。 原著には本当にお世話になったし、 HTML5Experts.jp で書いた Make the Web Faster の連…

Go のスライスの内部実装

Go のスライスの内部実装と、それを踏まえた効率のよいメモリ確保や取り回しについて解説します。

なぜ html の form は PUT / DELETE をサポートしないのか?

注意 内容については一切保証しません。 ここでは、主に W3C ML での議論や各種仕様などに基づいて書いています。 ここに書かれていることが正しいかどうかは、自身で判断して下さい。 事実としておかしいところなどは、コメントでどんどん指摘して下さい。…

そうだ、と思い立って京都で Go のハンズオンしてきました。 #gokyoto

Intro 東京であったとある勉強会で、 @shokiri さんに「京都に来てください」と言われたので、「高倉二条連れてってくれるならいいです」 と二つ返事で引き受けたので、タイトルの通り京都にいって Go のハンズ・オンしてきました。 Go勉強会 そうだ京都、行…

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 などでも発…