2015/09/24

『あなたの知らない超絶技巧プログラミングの世界』は誰が読むべきか

遠藤侑介さんといえば、Quineをはじめとする変態プログラムの世界的なタツジンとして有名ですが、そのむかし遠藤さんに向かって「Quineの本とか、売れないことが確実ですね」という趣旨の発言をしたことがあります。遠藤さんがブログやコンテストで発表していた変態プログラムには個人的にとても魅力を感じていて、翻訳書で一緒にお仕事をする前から楽しませてもらっていたのですが、さすがに書籍の企画ネタにするのは難しいなあ(売れるようにするのが難しいという意味で)と思っていたのです。それから数年後、まさか本当にQuineの書き方の解説が載っている本が出版されるなんて! それもQuineのみならず、遠藤さんのネタを徹底解説するような本がでるなんて! 企画を担当した編集者もずいぶんな変態に違いありません。というわけで、今月発売された遠藤侑介著『あなたの知らない超絶技巧プログラミングの世界』という本をさっそく読みました(下のリンクはアマゾンで、9/24現在ではまだ予約中だけど、なぜか都内の大型書店にはふつうに配本されている)。

読んだといっても、ざっと目を通したレベルであって、内容をきちんと咀嚼できるほどには読み込んでいません。というか、本書の内容をきちんと咀嚼できる日が自分の人生にやってくるのだろうか、というのが率直ないまの気持ちです。なにせ本書は、いうなればリストやパガニーニが懇切丁寧に自分の楽器演奏テクニックを言語化して解説してくれているようなものです(実際、本書のタイトルの「超絶技巧」はリストの同名の練習曲に由来するようです)。あるいは、シューマッハが自分のドライビングテクニックを教本としてまとめてくれているようなものです。そんなもの、本を読んだくらいで習得できるわけがないじゃないか! その意味では、この本、けっして「わかりやすい」とは言えないと思います。むしろ「わからない」ことをわざわざ楽しむための本なので、「わかりやすくない」のが必然なんでしょう。解説自体はとても丁寧に書かれているので、必要になったときに必要な箇所を真剣に読めば大丈夫そうだなと判断して順調に読み飛ばしました。にしても、この本の内容が「必要になるとき」なんて自分にあるんだろうか……。(という読者の葛藤を見越して「必要になるとき」を強制発動するための「練習問題」がついているところに著者の心意気を感じました。)

「この本が必要なのは誰だろう」という、おそらく書籍企画にとって根源的な問題は、著者の遠藤さんをだいぶ悩ませたんではないかと思います。本文を読んでいると「実益は期待しないで」といった趣旨の開き直りにちょくちょく出くわすし、「まえがき」に至っては「実用性という観点は雑念」とまで言い切られています。でも、「雑念」だと言った鼻の先が乾かないうちに「ある種の気づきを与えてくれる」とか言って実用性がほのめかされています。

じゃあ、この本、いったい誰が読むべきなんでしょうか? 独断ですが、本書の対象読者は大きく次の3つに設定できる気がします。

1. 超絶技巧なプログラムをでたい人
たぶんこの本のいちばんありがちな楽しみ方は「めでる」でしょう。実際、第1章は超絶技巧プログラムを眺めて楽しむという位置づけだし、後続の章も眺めているだけで楽しくなります。『Core Memory ― ヴィンテージコンピュータの美』なんかと同様に、計算機とその周辺にある種の美を感じる人はとりあえず購入して損はしないはずです。
2. 超絶ではないにせよプログラミングの技巧に興味がある人
この本は、Quineのようなプログラムを書きたい人だけでなく、ある種の技巧的なプログラムを書きたい人にとってはそこそこ実用的です。たとえば、CUIのアプリでアニメーションをする方法のような実用的で具体的な内容が丁寧に解説されている本は、ほかにあまりない気がします。また、zlibを使わずにPNGを作る例など、プログラミングに必要な潔さ(教科書には書いていない)を学べます。プログラミングコンテストとかで応用できたりできなかったりする気がします。出たことがないので憶測です。
3. 計算機科学とか数学基礎論が好物な人
数学基礎論や計算機科学の深めの話に踏み込んだコラムの数々が実に有益な読みどころです。Quineの存在証明をRubyで書き下してくれている本なんて、たぶん世界中でほかにはなかったし、これからもないと思います。デュードニーの『チューリングオムニバス』とか、まだ翻訳が出ていないけど『Good Math: A Geek's Guide to the Beauty of Numbers, Logic, and Computation (Pragmatic Programmers)』とかが大好きな人はコラムだけでも興奮できると思います。

無理やりまとめると、本書は(ほぼ)世界一の人がそのテクニックを披露し、伝授してくれて、さらに深堀するという貴重な本です。遠藤さんが書いたこの本を読みたい人は世界中に少なからずいるでしょう。いまのところ本書は日本語でしか楽しめないので、日本語ネイティブで本当によかった。9月28日にはジュンク堂池袋店でサイン会もあるそうなので、Quineなサインをもらいにいこうと思います。

なお、全体を通してRubyがメインで使われているので「Ruby限定の内輪テクニック集」に見えるかもしれませんが、それに終始する本ではないのはさすが遠藤さんだと思いました。唯一残念なのは索引がないところです(上記の2と3が対象読者なら必須だと思う)。あと細かい話ですが、Paul Grahamのカタカナ表記は「ポール・グレアム」のほうがいいと思いました。

2015/09/10

Wikipediaのエントリを束ねてEPUBを作れるようにしてみた

Wikipediaには好きなページを集めて本を作れる機能があります。左側のメニューにある[印刷/書き出し]から[ブックの新規作成]というメニューをクリックすると、それ以降に閲覧する各ページで「ブッククリエーター」というツールバーが以下のような感じで有効になって、そのツールバーで自分が本に収めたいページを追加していけるという機能です。追加したページを並べて自分だけのオリジナルの本が作れます、というサービスです。

で、何年か前はこのブッククリエーターの出力形式としてPDFのほかにEPUBを選べたのですが(参考)、いつの間にかPDFとプレーンテキストのみになってしまっていてEPUBを作れません。これは日本語版だけでなく英語版でも同様です。

べつにWikipediaをEPUBで読めないからといって困ることはないのですが、自分が開発して自分で使っているEPUB作成ツールのテスト用にWikipediaのページを使えたらいいなと思って、Wikipediaのエントリをいくつか指定してEPUBを生成できる仕組みを作ってみました(参考)。動機が動機なのでローカルでのみ使うつもりだったのですが、AWSでデモが動くようにしてみました(ただしエントリの上限を3つにしているので3章までの本しか作れません。ダウンしてたらごめんなさい。あと英語版Wikipediaのみに対応)。

以下のような感じにEPUBが生成されてダウンロードできるようになるはずですが、Mediawikiのパーズで力尽きたので、WebアプリとしてもEPUBジェネレータとしてもまだぐだぐだです。低品質の勧めに従って公開してみます。

2015/09/01

職務経歴書

いろいろあって職務経歴書を作成してみることにしました。お便りお待ちしています!

要約すると

理工系出版社の開発部という部署で約13年間半、主にコンピュータネットワークとプログラミングの本を企画し、制作してきました(企画制作に携わった主なコンテンツ」および「企画者として公式に社内に名前が出ている、かつ、制作でも中心だった書籍の一覧」を参照)。 特にTCP/IP関連書籍と、翻訳技術書は、たくさんの技術者の方に手に取ってもらえた(願わくば役に立てた)と思います。

読者が読んだことを後悔しない本を作るのは当然として、著者や訳者が出版したことを後悔することがないように、編集制作プロセスの透明化にも努めました。 通常、著者や訳者は、出版物に対する責任があるにもかかわらず、その最終的なデータを手にすることがありません。 著者による校正の終了後に編集者が内容のデグレにつながるような修正を勝手に加えてしまった、という話もよく聞きます。 そのような悲劇を駆逐するため、すべての制作データをSubversionやGitのリポジトリを介して著者と最後まで共有し、ありとあらゆる編集内容が全員にとって透明な制作フローを採用しました(バージョン管理システムを利用した制作システムの開発・運用」を参照)。

この制作フローにとって欠かせないのが、誰かが作業をリポジトリに反映するたびに最終的な本と同じ組版結果が自動的に生成される仕組みです。 書籍の構成や組版は毎回異なるので、そのような仕組みを実際の現場で運用していくために、自分でカスタマイズしやすい自動組版システムを開発しました(社外での活動」を参照)。 必然的に、プロジェクト単位ではありますが、夢のワンソース・マルチアウトプットも実現しました。 直近の書籍の多くでは、印刷用PDFとデータ販売用PDFに加え、EPUBも単一のソースからmake一発で生成しています。

さらに、TracのチケットやGitHubのissueおよびPull Requestを活用することで、編集に必要な意見のすり合わせにかかるコストを大幅に低減しました。

これらの取り組みにより、原稿の頻繁な見直しが可能になったことで、書籍の品質が大きく向上しました。 著者と編集者(組版者)との意思疎通に起因する書籍の不具合もほぼゼロにできました。 多人数が同時に並行して書籍制作に関与できることから、外部レビュアーによる協力も得やすくなり、書籍内容のさらなる改善にもつながりました。 書籍制作にかかる時間的および金銭的コストも大幅に削減できました。

制作に携わった書籍のプロモーションも積極的に行いました。 いまどき、どんなに自分が良い本を作ったつもりでも、潜在的な読者にその本の存在が伝わらなければ読んでもらえません。 書籍の内容を、必要な人に、できるだけ魅力的に伝えるべく、会社のブログや個人のツイッター/ブログ(これな)を使ってアピールしました。

もう一つ、自分の企画や制作とはまったく別の話として、他者の企画書籍に対するサポートにも貢献しました。 具体的には、著者あるいは原稿にとって適切な目次構成案を提案したり、より販売力のある書名を考案したり、カバーの選定に協力したりしました。 特にマンガを用いた技術書シリーズでは、コンセプトに対する提言やコンテンツの技術査読を担いました。

企画制作に携わった主なコンテンツ

以降、書籍などのリンク先は、無職につきすべてAmazonアソシエイトです。

バージョン管理システムを利用した制作システムの開発・運用

  • 原稿執筆段階から印刷所入稿に至るまで、すべての制作データをGit/Subversionを利用してバージョン管理
  • それを実現するため、原稿の多様なマークアップに対応可能なXML→LaTeX変換プログラム(後述するxml2tex)を利用した自動組版システムの構築
  • LaTeXを含む多彩なマークアップ原稿からのEPUB生成
  • LaTeX組版用の標準的なクラスファイル作成

geekなページのあきみちさん(『インターネットのカタチ―もろさが織り成す粘り強い世界―』の主著者)が、この制作フローについてのわかりやすい説明記事を書いてくださいました(「svn+TeXでcommitするとPDF - オーム社開発部の出版システムでの書籍執筆」)。ただし原稿の形式は(La)TeXとは限りません。また、ちょっと前の記事なのでSubversionベースとなっていますが、最終的にはGitHubベースのシステムを使っていました)。

社外での活動

  • XML風のデータ構造を、直感的なルールにより任意のマークアップへとシリアライズするためのプログラム xml2tex の開発
  • 野良XMLを束ねてEPUB化するためのプログラム qnda の開発
  • 2013年TeX User Group年次総会でのチュートリアル講演("Index makes your book perfect"

企画者として公式に社内に名前が出ている、かつ、制作でも中心だった書籍の一覧

2006年以降は、ほとんどの制作も自分でやっています(自動組版でな)。 このほか、企画に名前が出ているけど制作はほかの人がやった本、どこにも名前が出ていないけど全部制作した本、タイトルや目次構成を提供した本、技術査読をした本などが無数にあります。

  1. エクストリームプログラミングKent Beck, Cynthia Andres, 角 征典, 2015/6/25
  2. 基礎からわかるTCP/IP ネットワークコンピューティング入門 第3版 村山 公保, 2015/2/25
  3. 関数プログラミング 珠玉のアルゴリズムデザイン, 山下 伸夫, 2014/11/11
  4. 新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES) Martin Fowler, 児玉 公信, 友野 晶夫, 平澤 章, 梅澤 真史, 2014/7/25
  5. すごいErlangゆかいに学ぼう! Fred Hebert, 山口 能迪, 2014/7/3
  6. たのしいプログラミング Pythonではじめよう! Jason R.Briggs, 磯 蘭水, 藤永 奈保子, 鈴木 悠,2014/2/25
  7. マスタリングTCP/IP 情報セキュリティ編 齋藤 孝道 2013/8/30
  8. マスタリングTCP/IP OpenFlow編 あきみち, 宮永 直樹, 岩田 淳 2013/7/25
  9. マスタリングTCP/IP IPv6編 第2版 井上 博之, 黒木 秀和, 小林 直行, 志田 智, 鈴木 暢, 矢野 ミチル 2013/7/23
  10. 型システム入門 −プログラミング言語と型の理論− Benjamin C. Pierce, 住井 英二郎, 遠藤 侑介, 酒井 政裕, 今井 敬吾, 黒木 裕介, 今井 宜洋, 才川 隆文, 今井 健男, 2013/3/25
  11. ディジタル作法 −カーニハン先生の「情報」教室− Brian W. Kernighan, 久野 靖, 2013/2/25
  12. レジデント初期研修用資料 内科診療ヒントブック 改訂2版 medtoolz 2012/11/22
  13. 関数プログラミング入門 ―Haskellで学ぶ原理と技法― Richard Bird, 山下伸夫, 2012/10/25
  14. すごいHaskellたのしく学ぼう! Miran Lipovača, 田中 英行, 村主 崇行, 2012/5/22
  15. マスタリングTCP/IP 入門編 第5版 竹下 隆史, 村山 公保, 荒井 透, 苅田 幸雄 2012/2/24
  16. RailsによるアジャイルWebアプリケーション開発 第4版 Sam Ruby, Dave Thomas, David Heinemeier Hansson,前田 修吾, 2011/11/30
  17. 抽象によるソフトウェア設計−Alloyではじめる形式手法− Daniel Jackson中島 震, 今井 健男, 酒井 政裕, 遠藤 侑介, 片岡 欣夫,2011/7/14,
  18. インターネットのカタチ―もろさが織り成す粘り強い世界― あきみち, 空閑 洋平 2011/6/24
  19. Scheme修行 Daniel P. Friedman and Matthias Felleisen, 元吉 文男, 横山 晶一, 2011/6/14
  20. Coders at Work プログラミングの技をめぐる探求 Peter Seibel, 青木 靖, 2011/5/24
  21. レジデント初期研修用資料 医療とコミュニケーションについて medtoolz 2011/1/24
  22. Scheme手習い Daniel P. Friedman, Matthias Felleisen, 元吉 文男, 横山 晶一, 2010/10/22
  23. 関数プログラミングの楽しみ Jeremy Gibbons and Oege de Moor, 山下 伸夫, 2010/6/22
  24. レジデント初期研修用資料 内科診療ヒントブック medtoolz 2010/3/19
  25. 情熱プログラマー ソフトウェア開発者の幸せな生き方 Chad Fowler, でびあんぐる, 2010/2/25
  26. RailsによるアジャイルWebアプリケーション開発 第3版 Sam Ruby, David Heinemeier Hansson, Dave Thomas,前田 修吾,2009/11/30
  27. プログラミングHaskell Graham Hutton, 山本 和彦, 2009/11/10
  28. プログラミングのための確率統計 平岡 和幸, 堀 玄 2009/10/22
  29. 入門git Travis Swicegood , でびあんぐる, 2009/8/11
  30. Release It! 本番用ソフトウェア製品の設計とデプロイのために Michael T. Nygard, でびあんぐる, 2009/2/20
  31. Manage It! 現場開発者のための達人式プロジェクトマネジメント Johanna Rothman, でびあんぐる, 2008/10/17
  32. 実践Common Lisp Peter Seibel, 佐野匡俊, 水丸淳, 園城雅之, 金子祐介, 2008/7/25
  33. アートのための数学 牟田 淳 2008/5/20
  34. プログラミングErlang Joe Armstrong, 榊原一矢, 2008/2/22
  35. アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣 Venkat Subramaniam, Andy Hunt, 木下 史彦, 角谷 信太郎, 2007/12/21,
  36. RailsによるアジャイルWebアプリケーション開発 第2版 Dave Thomas, David Heinemeier Hansson ,前田 修吾, 2007/10/25
  37. アジャイルレトロスペクティブズ 強いチームを育てる「ふりかえり」の手引き Esther Derby, Diana Larsen, 角 征典, 2007/9/25
  38. 基礎からわかるTCP/IP―ネットワークコンピューティング入門 第2版(村山 公保) 2007/8/23
  39. Subversion実践入門:達人プログラマに学ぶバージョン管理(第2版) Mike Mason, でびあんぐる, 2007/4/20
  40. マスタリングTCP/IP 入門編 第4版 竹下 隆史, 村山 公保, 荒井 透, 苅田 幸雄 2007/2/23
  41. マスタリングTCP/IP ルーティング編 山川 秀人, 水谷 昭博, 亀野 英孝, 森 明治 2007/2/23
  42. My Job Went To India オフショア時代のソフトウェア開発者サバイバルガイド Chad Fowler, でびあんぐる, 2006/9/25
  43. Ship It! ソフトウェアプロジェクト 成功のための達人式ガイドブック Jared Richardson, William Gwaltney Jr., でびあんぐる, 2006/8/24
  44. Building Secure Software―ソフトウェアセキュリティについて開発者が知っているべきこと John Viega, Gary McGraw, 齋藤 孝道, 2006/7/21
  45. マスタリングTCP/IP IPsec編 谷口 功, 水澤 紀子 2006/5/23
  46. RailsによるアジャイルWebアプリケーション開発前田 修吾, 2006/2/24
  47. Joel on Software Joel Spolsky, 青木 靖, 2005/12/20
  48. Excelで学ぶ株式投資―Excelで実践する、銘柄の選び方からテクニカル分析の基本、シミュレーション(バックテスト)まで 2005/10/18
  49. マスタリングTCP/IP SNMP編 緒方 亮, 矢野 ミチル, 鈴木 暢 2005/9/21
  50. ネットワークの考え方―ルータとスイッチは何が違う?戸根 勤2005/6/14
  51. ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発 濱原 和明 2005/4/22
  52. マスタリングTCP/IP IPv6編 IRIユビキタス研究所 2005/2/10
  53. プログラミングのための線形代数 平岡 和幸, 堀 玄 2004/10/25
  54. OpenSSL―暗号・PKI・SSL/TLSライブラリの詳細― John Viega, Matt Messier, Pravir Chandra, 齋藤 孝道,) 2004/8/20
  55. BGP―TCP/IPルーティングとオペレーションの実際 Iljitsch van Beijnum, 近藤 邦昭, 2004/7/23
  56. マスタリングTCP/IP RTP編 Colin Perkins, 小川 晃通, 2004/4/20
  57. スティーリング・ザ・ネットワーク―いかにしてネットワークは侵入されるか Ryan Russell, Dan "Effugas" Kaminsky, Joe Grand, Mark Burnett, Paul Craig, 増田 智一 2004/3/25
  58. 基礎からわかるTCP/IP SIPによるVoIPプログラミング―Linux対応 マッキーソフト 2004/3/19
  59. マスタリングTCP/IP SSL/TLS編 Eric Rescorla,齋藤 孝道, 古森 貞, 鬼頭 利之 2003/11/27
  60. 基礎から学ぶ Webデータベースプログラミング 2003/9/22
  61. マスタリングTCP/IP ネットワークデザイン編 Tony Kenyon, 苅田 幸雄 2003/9/19
  62. TCP/IPソケットプログラミング Java編 Kenneth L. Calvert, Michael J. Donahoo, 小高 知宏, 2003/5/23
  63. TCP/IPソケットプログラミング C言語編 Michael J. Donahoo, Kenneth L. Calvert, 小高 知宏, 2003/5/23
  64. 基礎から学ぶ PerlによるWebサイト管理 John Callender, 湊 規生, 森 弘之2003/5/22
  65. 基礎から学ぶ PerlによるWebプログラミング John Callender, 湊 規生, ソシオメディア 2003/4/24
  66. 基礎から学ぶ CGIプログラミング渡辺 恭成2003/2/24
  67. マスタリングTCP/IP SIP編 Henry Sinnreich, Alan B. Johnston , 株式会社ソフトフロント, 2002/10/23
  68. Excelで学ぶテキストマイニング入門林 俊克 2002/10/22
  69. Ruby Magic ― Rubyで極める正規表現竹内 仁2002/9/24

企画制作についてのふりかえり

前に勤めていた会社がなくなって、「マスタリングTCP/IPみたいな本を作ってる人がいる会社なら大丈夫だろう」くらいの感覚で応募書類を送ったのが2001年。 ちなみに当時のマスタリングTCP/IPシリーズは、「入門編 第2版」と「応用編」、それになぜか「マルチキャスト編」というラインナップでした。

入社試験で「本の企画を書け」と言われた気がした(のちに誤解だったと判明)ので、『マスタリングMPLS』という本の企画書をでっちあげて提出したところ、たまたま当時の開発部で『マスタリングTCP/IP MPLS編』の新刊制作が進行中というタイミングだったらしく、そんな縁もあって「マスタリングTCP/IP」の企画制作をやっていた「開発部」に配属されました。その後は、ずっと開発部で本を作ってきました。

入社後すぐに企画したのはSIPの解説書でした。 ちょうどVoIPとかIP QoS制御とかをキャリア網でも本気でやろうっていう機運があったころで、SIP解説書の企画とかぜったいあるだろうと思ってたのですが、社内の誰もSIPすら知らないという真空状態だったので、自分でやることになったのです。 いま思い返すと、この本(『マスタリングTCP/IP SIP編』)の企画制作をとおして、「需要がありそうな技術の解説書を計画し、適切な著者や監修者を探して、制作して売る」という商売の基本的な流れを学んだ気がします。 幸いにして、とてもたくさんの方に読んでもらいました。

最初の年は、平行して半持ち込み企画もいくつか担当しました。 なかでも『Excelで学ぶ テキストマイニング入門』と『Ruby Magic Rubyで極める正規表現』は、かなり手を入れた思い出があります。 特に後者は、自分がRubyを学ぶきっかけになりました(それまではPerlを使っていた)。

こうして振り返ると、「マスタリングTCP/IP」シリーズの担当者みたいな立ち位置が固まってきたのは入社2年目の2003年だったようです。 当時のシリーズは、自分の入社時にちょうど第3版が出版された「入門編」こそメンテが続いていたものの、おなじタイミングで出版された「MPLS編」のほうはあまり芳しくありませんでした。 そんな中で、「SIP編」の成功をきっかけに、なんとなく自分がテコ入れをはじめることになったのだと思います。

手始めに着手したのは、なぜか日本語の解説書がなかったプロトコルの「SSL/TLS編」と「RTP編」でした (『マスタリングTCP/IP RTP編』は、書籍そのもの以上に、あきみちさんとはじめて仕事できたという意味で自分にとっては大きな出来事でした)。 さらに、もうちょっと低レイヤの解説も欲しいよねということで「ネットワークデザイン編」を企画。 マスタリングTCP/IPという枠ではフォローできてなかったソケットプログラミングの入門書も企画しました。

余談ですが、このころは外部のプロダクションに依頼して普通にDTPで本を作ってもらっていました。 でも、著者校でどうしても入る修正による手戻りの絶望的な困難さを回避したくて、「SSL/TLS編」と「RTP編」では自分で原稿をHTML化してCSSでゼロ校を作り、それを最初の著者校にするという進行を導入していました。 このへんの経験は、後年、XML版管理+LaTeXによる自動組版で生きてきます。

この入社2年目には企画の失敗も経験しました。 Web周りの入門書も必要だよね、という素朴な発想で、CGIとかサイト管理の入門書も何冊か企画したのですが、どれもあまり成功しませんでした。 あまりほめられた話ではないかもだけど、これらを通して「技術書の企画に失敗する方法」を学べたと自覚しています(この年以降で赤字に終わった企画は1冊だけです。えへん)。

翌2004年は、いまになって思うと、このあと数年間の技術書企画制作者としての道を決定づける仕事ばかりだった一年でした。 なんといっても大きいのは『プログラミングのための線形代数』で、この本の企画制作では著者の二人から本当にたくさんのことを学びました。 「コンピュータ書のように読める数学の教科書が作りたい」という恥ずかしいほど素朴な思い付きだけで平岡さんに話を持ちこんだら鳥肌が立つような原稿が書きあがってきたのは、今思い返しても興奮する体験です。 LaTeXで本を作ったのも、轟木さんにカバーをお願いしたのも、原稿の版管理(CVSだけど)を始めたのも、この本が最初でした。

メイン企画者ではないのだけど、『マンガでわかる統計学』の企画立ち上げや技術レビューにかかわったのも2004年でした。

2005年は、引き続きマスタリングTCP/IPシリーズの拡充や、『Joel on Software』とか『ITRONプログラミング入門』といった自分にとって名刺代わりになるラインナップを少しずつ増やしていった年だったようです。

2006年は、XML原稿からのLaTeXによる自動組版で売り物になる本を作った最初の年でした。それが『RailsによるアジャイルWebアプリケーション開発』です。 この本の原著出版社であるPragProg社では、独自のXMLを原稿の形式にしていて、これを翻訳版でもそのまま最大限に使ってやろうと思って正月にGaucheでLaTeXへのコンバータを書いたのでした。 同じ年の『Ship It!』と『My Job Went To India』も、やはりPragProg社の本の翻訳だったので、このときの仕組みをそっくり流用して制作しました。

でも、この年でいちばん学ぶところが大きかった本は『Building Secure Software』でしょう。 自分の企画でもっとも大きな赤字を出した本です。 この本からは、内容の良さと利益はまったく相関しないんだという事実を思い知りました。

翌2007年あたりから、だんだん、作りたい本を作りたい形に作れるようになってきた気がします。 2008年の『実践Common Lisp』と『プログラミングErlang』のように、爆発的には売れないけど意義があったりブランドにつながったりする本(しかも着実に利益が出る本)を企画できるようになってきました。 2007年末のオブジェクト倶楽部のイベントで自分たちの本の作り方をプレゼンする機会があったり(登壇したのは同じチームの高尾さん。スライドは自分が作った)、 Gauche Night 2008で発表したり、アジャイル界隈の方々やLisp界隈の方々に少しずつ自分たちチームの存在を認知してもらい始めたころです。

2009年には、企画構想から長いことかかった『プログラミングのための確率統計』がついに形になったり、趣味で読んでた"Programming Haskell"が翻訳企画になったり、自分たちの制作環境でSubversionからの移行を始めていたGitの解説書を出せたり、いろいろタイミングが良かった年でした。 発行はこの翌年になる『内科診療ヒントブック』の話を、ブログの一読者として一方的に知っていたmedtoolzさんからいただいたのも、この年のことです。 『Scheme手習い』とか『関数プログラミングの楽しみ』とかを通して、価値があると信じる本だけで商売ができるし、そうすべきなんだなという実感を強めました。

2010年以降も、マスタリングTCP/IPシリーズのメンテと拡充を続けながら、"The Little Schemer"の翻訳とか、『インターネットのカタチ』、『すごいHaskell』、TAPLの翻訳、Bird先生の関数プログラミング本の翻訳、あのカーニハン先生の著書などなど、ものすごい経歴の著者訳者の方々と一緒に、内容も責任も重い、でも楽しい仕事をたくさんしてきました。 それまで手探り状態でがんばっていた自動組版化も、良い意味でルーチン化でき、効率よくチームで仕事を回せていたと思います。 最後の数年は、自分たちのチーム以外の企画も技術面でサポートできる余裕もでき、開発部全体でよい仕事ができていたと思います。