タグ Kazuho's Weblog
人気順 5 users 50 users 100 users 500 users 1000 usersKazuho's Weblog: QUICむけにAES-GCM実装を最適化した話 (1/2)
4月末に、会社のほうで「Can QUIC match TCP’s computational efficiency?」というブログエントリを書きました。我々が開発中のQUIC実装であるquiclyのチューニングを通して、QUICのCPU負荷はTLS over TCP並に低減可能であろうと推論した記事です。この記事を書く際には、Stay Homeという状況の中で、手元にあった安いハ... 続きを読む
Kazuho'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: Git で全ブランチから検索
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: QUICハンドシェイクの再設計、もしくはTLSレイヤの終焉
先週スウェーデンのKistaで開催された 第5回QUIC Interim で、 ハンドシェイクプロトコルの再設計方針 が採用されました。 提案者として、その背景にある考え方を整理したいと思います。 ▪️提案内容 詳しくは Design Doc を見てもらえばいいとして、ざっくりいうと、 TLSスタックをふたつに分割し パケットはQUICがレイアウトしたバイト列をTLSスタックが提供するAPIを使っ... 続きを読む
Kazuho's Weblog: H2O version 2.3.0-beta1 released, improvements presented at Rubykaigi 2018
Today, I am happy to announce the release of H2O version 2.3.0-beta1. Version 2.3 is going to be the largest release in the history of H2O. Beta-1 already includes more than 50 changes contributed by ... 続きを読む
Kazuho's Weblog: IETF報告会で「TLS 1.3とその周辺の標準化動向」について発表してきた
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: 海賊版サイトのブロッキングについてアンケートをとってみたら興味深い結果が出た
政府が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: Optimizing performance of multi-tier web applications using HTTP/2 push
Optimizing performance of multi-tier web applications using HTTP/2 push Push is a feature of HTTP/2, that allows a server to speculatively send response to a client, anticipating that the client will ... 続きを読む
Kazuho's Weblog: Using H2O with Let's Encrypt
Let's Encrypt is a new certificate authority that is going to issue certificates for free using automated validation process. They have announced that they will enter public beta on Dec. 3rd 2015. Thi... 続きを読む
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」があって、何がキャッシュされ... 続きを読む