Goならわかるシステムプログラミングがこのたび2回目の増刷がされまして、そのタイミングでPDF販売も開始されました。ラムダノートのサイトで直販で購入し、ユーザー登録をしていただいている方はPDFが自動で追加されるとのことです。直販で購入したけど、まだユーザー登録がまだの方は、購入した時のメールアドレスでユーザー登録をすれば大丈夫なはずです。なお、1刷をお買い上げいただいた方も、1刷と3刷の両方のPDFが登録される予定とのことです。
増刷で修正するのは編集者として恥ずべきみたいな文芸の編集者の発言をみて彼我の差を感じるなど。
— keiichiro shikano λ♪ (@golden_lucky) January 14, 2019
増刷で何をどれくらい直すかについては、企画そのものに対する姿勢、制作物に対する責任、ISBNに関する規約の解釈、書籍の流通との調整、既存読者と潜在読者の調整、などなど押さえるべき要因がたくさんあるので、増刷で直すなんてあり得ない、みたいなことを言う業界人は、あまり深く考えてないと思う
— keiichiro shikano λ♪ (@golden_lucky) January 14, 2019
で、いろいろ考えた結果、弊社は増刷でがんがん最新情報にアップデートしていきますよ。たとえば来月リリース予定の第1版第3刷『Goならわかるシステムプログラミング』は、正誤を直すのはもちろん、Go 1.12Go 1.12 betaにも対応だし、DPDKとかも追記しちゃう。お楽しみに。
— keiichiro shikano λ♪ (@golden_lucky) January 14, 2019
という感じで、10ページ以上増えています。増えた内容はこんな感じです。絵文字は、変更点のダイジェストを紙面に載せるために適当に重要そうなものを抽出した()みたいな感じです。もしかして、雑誌以外ではHTTP/3って文字が入った最初の本になったりするんですかね?そんなことはないかな?Go 1.12について触れている本では世界最速な気がする。
- はじめに
- Goはgit以外にも対応している旨を紹介
- golang-jp.orgをgolang.orgに
- GogLandがGoLandになってベータでなくなったので記述を修正
- Delveのmacのインストール方法が変わったので説明を修正
- デバッガを実行してもconvT2E()の中に飛ばなくなったので記述を削除
- Go 1.8とPrintlnの中のコードが変わったので修正
- io.Writer
- Go 1.10で追加されたstrings.Builderを追加
- io.Writer/io.Reader向けインタフェースを提供した方が良い設計である説明を追加
- チャネル
- GoのプログラミングモデルがCommunicating Sequential Processesである説明を追加
- システムコール
- macの取り扱いが変わったことを追加
- DPDK/gVisorの紹介を追加
- ファイルシステム
- 論理ボリュームマネージャについての説明を追加
- ファイルモードについての説明を追加
- ホームディレクトリの追加でGo 1.12のos.UserHomeDir()について言及
- ファイルシステム2
- select属のサンプルとしてevioを紹介
- TCP
- Pythonのドキュメント日本語訳のURLが本家にマージされた変更を反映
- UDP
- UDP/TCPの説明を読みやすく修正
- QUICについての紹介を追加
- UDPのサンプルとして、NTP、peerdiscoveryについて紹介
- HTTP over QUICをHTTP/3に修正
- Unixドメインソケット
- Windows 2018 April UpdateのAF_UNIX対応について説明を追加
- プロセス
- Go 1.8で追加されたos.Executable()について追記
- BusyBoxについて紹介
- 作業フォルダは1つのプロセスあたり1つしか持てない旨を追加
- 環境変数の説明を少し増量
- 1.12で追加されるos.ProcessStateのExitCode()メソッドについて追加
- 1.9からはLinuxではfork()/exec()ではなくて、clone()を使って高速化した話を追加
- InstagramがコミットしたPython 3.7のコピー・オン・ライト時のメモリ効率改善について紹介
- メモリ
- Go 1.12のメモリ管理の変更について少し追記
- 動的メモリ圧縮の例にWindows 10 November UpdateやLinuxのzswapも追加
- GoのGCが1.8から1.11までの間に大幅に改善されたので停止時間の数値を更新
- 実行ファイルフォーマットと、アプリケーションのメモリ配置のついての項目を追加
- アドレス空間配置のランダム化についての説明を追加
- 実行ファイルにアセットをバンドルする手法について紹介
- 並列処理
- goroutineがなぜ早くて軽いのかの説明を追加
- goroutineがOSスレッドよりも劣る点の説明を追加
- sync/atomicパッケージの紹介に「コンペア・アンド・スワップ」というカテゴリ名の紹介を追加
- sync/atomicを使ってアウトオブオーダーでも読み書き順序を守るコーディング方法について紹介
- コンテナ
- IBMのRedhat買収にともない、rktの開発が非注力になったので説明を削除
- セキュリティ
- CPUセキュリティフィーチャーのリンクを紹介
- 参考書籍
- [試して理解]Linuxのしくみが良い本だったので追加
- 『Go言語による並行処理』が良い本だったので追加
- 終わりに
- 新たにレビューに参加してくださった山口さん、cocoatomoさん、progrhymeさんのお名前を追加