2017年05月17日

「Real World HTTP」が出版されます!

昨年から書いていたReal World HTTPがAmazonのページに表示されるようになりました。最初にコミットしたのは昨年の8/1ですが、たぶん、その数ヶ月前から書き始めていたと思うので、ほぼ丸一年です。途中でASCII.jpのシステムプログラミングの連載が始まったり、Software DesignにSphinxについて寄稿したり、もう1つ別の翻訳の企画があったり、三女が7/4に生まれたり、なかなかハードな一年間でした。

なお、表紙は皆さんが知っているものとはちょっと違うのですが、系統的に一番近いのがハシビロコウさんらしく、和名もそれしかないそうです。狙っていたわけではなく、そもそも出版時期にはアニメも終わってしまっているし、話題の動物は辞めたほうが良さそう、という話をしていたのですが、偶然これが選ばれました。

本の内容の紹介

裏表紙の紹介はこんな感じです。


本書はHTTPに関する技術的な内容を一冊にまとめることを目的とした書籍です。HTTP/1.0、HTTP/1.1、HTTP/2と、HTTPが進化する道筋をたどりながら、ブラウザが内部で行っていること、サーバーとのやりとりの内容などについて、プロトコルの実例や実際の使用例などを交えながら紹介しています。 GoやJavaScriptによるコード例によって、単純なHTTPアクセス、フォームの送信、キャッシュやクッキーのコントロール、Keep-Alive、SSL/TLS、プロトコルアップグレード、サーバープッシュ、Server-Sent Events、WebSocketなどの動作を理解します。 これからウェブに関係する開発をする人や、これまで場当たり的に学んできた人にとって、幅広く複雑なHTTPとウェブ技術に関する知識を整理するのに役立ちます。HTTPでは日々新しいトピックが登場していますが、本書によって基礎をしっかりと押さえることは、さまざまな新しい技術をキャッチアップする一助にもなるでしょう。

目次はこんな感じです。

  1. HTTP/1.0 のシンタックス:基本となる 4 つの要素
  2. HTTP/1.0 のセマンティクス:ブラウザの基本機能の裏側
  3. Go 言語による HTTP/1.0 クライアントの実装
  4. HTTP/1.1 のシンタックス:高速化と安全性を求めた拡張
  5. HTTP/1.1 のセマンティクス:広がる HTTP の用途
  6. Go 言語による HTTP1.1 クライアントの実装
  7. HTTP/2 のシンタックス:プロトコルの再定義
  8. HTTP/2 のセマンティクス:新しいユースケース
  9. Go 言語による HTTP/2、HTML 5 のプロトコルの実装
  10. セキュリティ:ブラウザを守るHTTPの機能
  11. クライアント視点で見るRESTful API

内容としては、HTTP/1.0、HTTP/1.1、HTTP/2というおおざっぱな期間ごとに次の3つの章を繰り返してその時期に登場した技術のトピックをいくつか紹介し、最後にセキュリティとRESTfulの章が追加されている感じです。

  • HTTPのシンタックス
  • HTTPのセマンティクス
  • 実際にコードを書いて試してみる

実際にはHTTPのバージョンは時期的な目安なので、そこまで厳密ではありません。消化不良にならないように読みやすく分割するための分け方です。人間の記憶はエピソードとともに知識を固定する方がやりやすいので、そういったことを心がけています。普通のHTTPのプロトコルの技術的紹介だとなかなか詳しく紹介されないであろうトピック(TLS、認証/認可、セマンティックウェブのその後、セキュリティを守るためのブラウザ技術)についても、多くの方々の強力なバックアップのもとに概要をきちんとつかめるように書きました。

アプリケーション開発だと、ウェブに関係しないシステム自体がだいぶレアになってきているので、かなり多くの人に末永く参考にしていただけるのでは、と思っています。CGI時代やJ2EE初期時代に学んだ人も、その後の知識のアップデートに役立てていただけると思います。最新のブラウザの機能(セキュリティのヘッダーとか)も、過去の経緯や機能を踏まえて追加されることがほとんどです。一通りきちっと学ぶことで、今後出てくるトピックを追いかけるのがとても楽になるはずです。「読める!読めるぞ!」とムスカになったような感動が味わえるはずです。

後は、書いていてワクワクしていたポイントは、HTTPまわりの仕様にはさまざまなエンジニアリングの創意工夫があることです。後方互換性を維持するしくみとか、サーバー・クライアントでベストな選択肢を選ぶ方法、効率の改善。こういうところに着目して読んでもらえると(上級者には)楽しいと思います。

なぜ書こうと思ったのか

続きを読む
posted by @shibukawa at 02:40 | TrackBack(0) | 日記 はてなブックマーク - 「Real World HTTP」が出版されます!

2017年05月01日

高校生からはじめるプログラミングを献本でいただきました

大学のサークルの後輩の吉村総一朗(当時呼び捨てで呼んでたと思うので、あえてこのまま敬称略で書きました)から、高校生からはじめるプログラミングを献本でいただきました。ありがとうございます。

IPを使った表紙、フルカラーの本文、高校生どころか老眼鏡を使うような人でも読みやすそうな大きな文字、「(」の記号の入力の仕方から教えるような今まで無かったというか、小学校入学前の子供をターゲットにしたたのしいプログラミング Pythonではじめよう!(ただし原著。日本語は漢字や英語の習熟の問題もあって中学生以上がターゲット)の方がストイックなぐらい。こんなにコストがかかったプログラミングの本は見たことがないです。その徹底ぶりが評価されてか、Amazonのランキングでも上位に常駐しているようです。羨ましい限りです。

内容としてはHTML/JavaScript/CSSを入力してブラウザで動かしてみよう、というノリです。かつて僕が衝撃を受けた、ラベルをウインドウに貼り付けることでコードを一行も書かずにHello WorldができてしまったVisual Basicに近いアプローチです。関数とかメソッドとかクラスとかそういうのはどうでもよく、まずは動くものを表現して、徐々に新しいオモチャを提供していくスタイルです。今日ではコードスニペットを利用することも多く、Twitterのボタンを作ってみる下りはそういった操作の紹介もされています。

どこまで初心者に配慮すべきか問題と体育の授業

「チュートリアルの記事を公開したり、インターネットで困っている人を助けるといった活動はどこまでやるべきか」というのを議論したことがあります。個人的には初心者に対するサポートという意味ではオールインワンのインストーラでWindowsユーザーでも安心だし、ドキュメントにはコピペ素材が満載のPHPというのが1つのベンチマークだと思っていました。ツールやライブラリもPHP並に初心者をファシリテートしてあげるのが大切だと思っていました。僕がドキュメントツールのSphinxのコミュニティを作ったり、Pull Requestを投げたりするのも、こういった考えからです。

しかし、そこまでモチベーションが高くなく、質問ばかりしてチューターのやる気を削っていくような人もいます。そういう人は放置すべき。千尋の谷から突き落として這い上がるやつができるやつ、みたいな考えを持っている人もいます。コミュニティ運営やドキュメント整備などを行う人のリソースの少なさを考えると、残念ながらこうせざるを得ない言語やフレームワークのコミュニティも多いかもしれません。僕もPHPを基準に考えていますが、そこまで来られなかった人は残念ながらそれ以上のサポートはちょっとムリと思っています。

しかし、子供の頃に体育の授業が苦手で体を動かすことが苦手だったけど、オトナになってボルダリングをやってみたら楽しかった、インラインスケートをやってみたら楽しかったといった体験をする人が増えています。サッカー、野球のようなスポーツではなくて、マイナースポーツ系のコミュニティに行くと「元運動嫌い」のオトナはたくさんいます。千尋の谷方式というのはこの体育の授業のようなものです。「人と比べられるのが嫌なだけで体を動かすのは嫌いじゃない」人にもまんべんなく「楽しんで継続してもらう」ことはリソースが少ないとできません。これは授業が悪いというよりも少ない教師数で30人、40人の生徒を教えるというリソースの少なさが問題です。実は才能があったかもしれない子供が早期にあきらめてしまうといったこともあったかもしれません。

この本は自習できる書籍という形で提供されており、さらに豪華な装丁で「コンピューター怖い」という人にも優しくアプローチしてくれると思います。小学校からプログラミングを、みたいな話もあります。Scratchとかになるとは思いますが、当然中学、高校と学年が進めばより実用言語の方向に進んでいくでしょう。現状のリソースでは体育の授業の「運動嫌いのオトナ」が量産されていく可能性の方が強く、個人的には子供のころからのプログラミングの授業導入はどちらかというと(僕も運動嫌いだったので)反対でしたが、こういった本が増えて、自習できたり、授業外で親が教えたりといったことで落ちこぼれない仕組みができるならもしかしたら悪くないのかもしれない、と少し思いました。

個人的にはアスキーでやっている連載のように少し自分の実力よりも背伸びした内容で、自分の好奇心も満足させながらじゃないと一冊分の集中力は続かないので、この本のような本は僕には書けないなということもあり、著者の努力はすばらしいと思います。

「献本は誤用でご恵贈が正しい」みたいなのも見かけますが、誤用とか勘違いが広まって文化になる、みたいなのが好きなのであえて献本にしました。「けんぽん」。声に出すとかわいい日本語。

posted by @shibukawa at 18:16 | TrackBack(0) | 日記 はてなブックマーク - 高校生からはじめるプログラミングを献本でいただきました
検索ボックス

Twitter

www.flickr.com
This is a Flickr badge showing public photos and videos from shibukawa.yoshiki. Make your own badge here.
<< 2017年05月 >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
最近の記事
カテゴリ
過去ログ
Powered by さくらのブログ