タグ Kazuho's Weblog
人気順 5 users 10 users 100 users 500 users 1000 usersKazuho's Weblog: HTTP のプライオリティが大きく変わろうとしている話(その他 IETF 105 雑感)
先週、モントリオールで開催された IETF 105 に参加してきました。 いろんなことがあったのですが、個人的に一番大きかったのは、HTTP/3 からプライオリティ(優先度制御)まわりの仕様を落とすことが決定したこと。 HTTP/3 は、トランスポートプロトコルである QUIC の上で動作する、次世代の HTTP プロトコルです。そ... 続きを読む
Kazuho's Weblog: 次世代プロトコル(QUIC etc.)のセキュリティとプライバシー @ #builderscon
9月6日より開催中の builderscon 2018 において、登壇の機会をいただき、インターネットのトランスポート層プロトコルについてセキュリティやプライバシーに関わる設計がどのように進めてられているか、TLS と QUIC を中心に発表しました。 QUIC のハンドシェイクプロトコルとパケット番号暗号化、TLS の Encrypted SN... 続きを読む
Kazuho's Weblog: TLS の SNI 暗号化に関する Internet Draft を共同提出しました
Eric Rescorla (RTFM), Nick Sullivan (Cloudflare), Christopher Wood (Apple) の各氏とともに、SNI を暗号化する TLS 拡張を提案する Internet Draft を提出しました。 Encrypted Server Name Indication for TLS 1.3 アナウンスのメールにあるとおり、すでに NSS / Firefox と picotls / H2O で実装作業が開始されて... 続きを読む
Kazuho's Weblog: QUICハンドシェイクの再設計、もしくはTLSレイヤの終焉
先週スウェーデンのKistaで開催された 第5回QUIC Interim で、 ハンドシェイクプロトコルの再設計方針 が採用されました。 提案者として、その背景にある考え方を整理したいと思います。 ▪️提案内容 詳しくは Design Doc を見てもらえばいいとして、ざっくりいうと、 TLSスタックをふたつに分割し パケットはQUICがレイアウトしたバイト列をTLSスタックが提供するAPIを使っ... 続きを読む
Kazuho's Weblog: 海賊版サイトのブロッキングについてアンケートをとってみたら興味深い結果が出た
政府がISPに対し対し海賊版サイトのブロッキングを要請し、議論になっています。あなたは以下のどの対策が正しいと思いますか? — Kazuho Oku (@kazuho) April 25, 2018 832票もの回答をいただきました。ありがとうございます。結果をみて、いくつか感想を述べさせていただきたいと思います。 ▪️海賊版サイトに対し、なんらかの新たな対策が必要かどうかについて 83%の方々が... 続きを読む
Kazuho's Weblog: Fastlyのプログラマから見たCDN
Palmscape / Xiino world's first web browser for PalmPilot / Palm OS bundled by IBM, Sony, etc. awarded as M.I.T. TR100/2002 Development of Integrated Web-application Development Environment accredited... 続きを読む
Kazuho's Weblog: HTTP/2で 速くなるとき ならないとき
Palmscape / Xiino world's first web browser for PalmPilot / Palm OS bundled by IBM, Sony, etc. awarded as M.I.T. TR100/2002 Development of Integrated Web-application Development Environment accredited... 続きを読む
Kazuho's Weblog: CI 用 Docker イメージ作成におけるベストプラクティス
H2O の CI では長らく、秘伝のタレ的な .travis.yml を使い続けてきたのですが、なにぶん依存関係が多いもので、だいぶメンテナンスが辛い感じになってきていました。また、CI テストで発生したエラーの調査の度に、時間のかかる CI を回さなければならないことが、開発者のストレスとなっていました。 そこで一念発起して、 Docker イメージを使った CI に切り替えることにしました(実... 続きを読む
Kazuho's Weblog: git blameでプルリクエストの番号を表示する
GitHub でプルリクエスト前提の開発をしていると、 git blame で「なぜ、このコードがこうなっているのか」調べる際に、commit idではなくプルリクエストの番号を表示してほしくなります。 というわけで書いたのが git-blame-pr.pl 。 以下のような感じで表示されるので、調査がはかどります。 $ git-blame-pr.pl lib/core/request.c (中略... 続きを読む
Kazuho's Weblog: 最高速のfizzbuzzを実装する話
この前、Twitterで誰かが「コンパイラ言語でFizzbuzz書くなら、I/O命令1個になるように最適化しないと」という話をしていた。いいこと言うな、と思ってスルーしていたのだが、体調不良で頭だけ動いている状態だったのでC++11でトライしてみることに。 案ずるより産むが易しというもので、割と簡単に綺麗に書けた。こんな感じ。 char配列を可変長のテンプレート引数として結合していって、文字列定数... 続きを読む
Kazuho's Weblog: コマンド一発でソースコード検索&表示できる「peco」改が凄い!
lestrrat さんがやってくれました。 ずいぶん前から、ソースコードを検索して読みやすいコマンドはないかなーと思っていました。個人的にはackで検索して見つかったファイルをlessで開いて再びキーワードを入れて当該行までジャンプしていたのですが、毎回毎回めんどくさい感じでした。コマンド一発でインクリメンタル検索してキーワード周辺のソースコードを読めるツールが欲しいなぁって思ってたんです。 とあ... 続きを読む
Kazuho's Weblog: コマンド一発でソースコード検索&表示できる「peco」改が凄い!
lestrrat さんがやってくれました。 ずいぶん前から、ソースコードを検索して読みやすいコマンドはないかなーと思っていました。個人的にはackで検索して見つかったファイルをlessで開いて再びキーワードを入れて当該行までジャンプしていたのですが、毎回毎回めんどくさい感じでした。コマンド一発でインクリメンタル検索してキーワード周辺のソースコードを読めるツールが欲しいなぁって思ってたんです。 とあ... 続きを読む
Kazuho's Weblog: Fastly に入社しました
2017年1月1日付で、 Fastly 社へ転職したので報告いたします。 過去5年間、 DeNA では R&D 的な立場から、様々な基盤的ソフトウェア(オープンソースになったものもありますし、クローズドなものもあります)の開発に携わってきました。 最近2年間は、同社のゲーム用サーバに端を発するオープンソースの HTTP/2 サーバ「 H2O 」の開発に従事してきましたが、その実装品質が高く評価され... 続きを読む
Kazuho's Weblog: Fastly に入社しました
2017年1月1日付で、 Fastly 社へ転職したので報告いたします。 過去5年間、 DeNA では R&D 的な立場から、様々な基盤的ソフトウェア(オープンソースになったものもありますし、クローズドなものもあります)の開発に携わってきました。 最近2年間は、同社のゲーム用サーバに端を発するオープンソースの HTTP/2 サーバ「 H2O 」の開発に従事してきましたが、その実装品質が高く評価され... 続きを読む
Kazuho's Weblog: HTTP/2の課題と将来について、YAPC Hokkaidoで話してきた
Palmscape / Xiino world's first web browser for PalmPilot / Palm OS bundled by IBM, Sony, etc. awarded as M.I.T. TR100/2002 Development of Integrated Web-application Development Environment accredited... 続きを読む
Kazuho's Weblog: Name Constraints を使った独自CAの運用手順
ウェブブラウザが新機能をHTTPSでしか有効にしないことが多くなってきたので、開発環境でもHTTPSを使いたい。でも、開発環境用にサーバ証明書を買うのは手間。Let's Encryptも運用がめんどくさいとか、社内からしかアクセスできないサーバへの証明書発行が難しいとかいろいろあるし…ってそこでName Constraintsを使った独自CAですよ奥さん。 Name Constraints が何で... 続きを読む
Kazuho's Weblog: mruby で同期呼出を非同期化する話(もしくは H2O の mruby ハンドラでネットワークアクセスする話)
mruby で同期呼出を非同期化する話(もしくは H2O の mruby ハンドラでネットワークアクセスする話) ■背景 H2Oではバージョン1.5より、mrubyを用い、Rackのインターフェイスに則った形でハンドラを書けるようになっています。 この機能を提供している目的は、正規表現による書き換え等を用いる複雑な設定ファイルではなくプログラミング言語を用いることで、ウェブサーバの設定をより簡潔に... 続きを読む
Kazuho's Weblog: mruby で同期呼出を非同期化する話(もしくは H2O の mruby ハンドラでネットワークアクセスする話)
■背景 H2Oではバージョン1.5より、mrubyを用い、Rackのインターフェイスに則った形でハンドラを書けるようになっています。 この機能を提供している目的は、正規表現による書き換え等を用いる複雑な設定ファイルではなくプログラミング言語を用いることで、ウェブサーバの設定をより簡潔に拡張しやすくするためです(Apacheのmod_rubyやmod_perlのようにウェブアプリケーションをウェブサ... 続きを読む
Kazuho's Weblog: ソート済の整数列を圧縮する件
圧縮されたソート済の整数列ってのは汎用的なデータ構造で、たとえば検索エンジンの転置インデックスとか、いろんなところで使うわけです。で、検索エンジンの場合は速度重要なので、PForDeltaとか様々なデータ構造が研究されてる。 一方、H2O には、ブラウザキャッシュに載ってない js や css をサーバプッシュする仕組み「cache-aware server push」があって、何がキャッシュされ... 続きを読む
Kazuho's Weblog: 雑なツイートをしてしまったばかりにrubyを高速化するはめになった俺たちは!
雑なツイートをしてしまったばかりにrubyを高速化するはめになった俺たちは! 逆に言うと、Rubyの文字列型の内部実装がropeになれば、freezeしてもしなくても変わらない速度が出るようになって、結局freezeする必要なんてなかったんやーで丸く収まるんじゃないの?と思いました #雑な感想— Kazuho Oku (@kazuho) October 6, 2015とツイートしたところ、処理系の... 続きを読む
Kazuho's Weblog: 雑なツイートをしてしまったばかりにrubyを高速化するはめになった俺たちは!
Thursday, October 8, 2015 雑なツイートをしてしまったばかりにrubyを高速化するはめになった俺たちは! 逆に言うと、Rubyの文字列型の内部実装がropeになれば、freezeしてもしなくても変わらない速度が出るようになって、結局freezeする必要なんてなかったんやーで丸く収まるんじゃないの?と思いました #雑な感想— Kazuho Oku (@kazuho) Octo... 続きを読む
Kazuho's Weblog: ウェブページの描画 (first-paint) までの時間を測定するツールを作った件
ウェブサイトチューニングにおいては、 ユーザができるだけ早くウェブページを閲覧し始めることができるよう、first-paintの値を小さくすることを第一の目標注1 全データができるだけ早く揃うよう、loadの値を小さくすることを第二の目標 とすることが一般的かと思います。 ですが、残念なことに、first-paintまでの時間をAPIを用いて取得できるウェブブラウザは一部に限られています(参照:「... 続きを読む
Kazuho's Weblog: ウェブページの描画 (first-paint) までの時間を測定するツールを作った件、もしくはHTTP2時代のパフォーマンスチューニングの話
Thursday, October 1, 2015 ウェブページの描画 (first-paint) までの時間を測定するツールを作った件 ウェブページの表示までにかかる時間をいかに短くするかってのは、儲かるウェブサイトを構築する上で避けて通れない、とても重要な要素です。 少し古いデータとしては、たとえば、ウェブページの表示が500ミリ秒遅くなると広告売上が1.2%低下するというBingの例なんかも... 続きを読む
Kazuho's Weblog: Neverbleed - RSAの秘密鍵演算を別プロセスに分離する話
Thursday, September 24, 2015 Neverbleed - RSAの秘密鍵演算を別プロセスに分離する話 機能毎にプロセスを分割し、それらを別個の権限のもとで実行することで、脆弱性があった場合の影響を抑え込むというのは、一定以上の規模をもつプログラムでは、しばしば見られるデザインパターンです。 qmailは、そのような設計がなされたメール配送デーモンとして名高いですし、Ope... 続きを読む
Kazuho's Weblog: 前方秘匿性 (forward secrecy) をもつウェブサイトの正しい設定方法
Thursday, July 23, 2015 前方秘匿性 (forward secrecy) をもつウェブサイトの正しい設定方法 前方秘匿性(forward secrecy)とは、以下のような性質を指します。 公開鍵暗号の秘密鍵のように、比較的長期に渡って使われる鍵が漏えいしたときでも、それまで通信していた暗号文が解読されないという性質 鍵が漏れることも想定せよ――クラウド時代における「楕円曲線... 続きを読む