2013-11-13

C++参考書に、著作権が発生するほどのpull requestを受け入れた

Auto anchor by tzik · Pull Request #139 · EzoeRyou/cpp-book

私は今まで、GitHubで公開しているC++参考書には、誤字脱字のpull requestならばすぐに受け入れてきた。なぜならば、単純な誤字脱字、句読点の修正、ふりがなの追加などには、著作権は発生しないからだ。

著作権が発生するほどに複雑な修正は、受け入れずに自分で修正してきた。

今回、少し悩んだが、始めて、著作権が発生するほどのpull requestを受け入れることにした。41行ほどのJavaScriptコードだ。

内容は、JavaScriptを使って、スクロールイベントが発生するたびに、スクロールしている場所のidを指すように、ブラウザーのアドレスバーの文字列を書き換えるものだ。

これにより、今見ている場所のリンクが、常にブラウザーのアドレスバーに表示されることになる。

アイディアさえ与えられていれば実装は簡単だし、自分でも書けるが、私はC++ほどJavaScriptとDOMには詳しくないので、多分自分で書くと何時間もかかるだろう。それに既にコードを読んでしまったわけだし、元のコードの影響がなかったかどうかを証明するのが難しい。何よりもせっかく書かれて動くものがあるのだから、受け入れることにした。

まあ、JavaScriptのコードなので、私が想定していることには、問題にはならないだろう。

想定というのは、本書の紙媒体での出版だ。いま、本書を紙媒体で出版する方法を探している。結果はいまだにはかばかしくないが、もし実現できそうな場合に、本書の全著作権を自分で有していない場合、困ったことになる。

というのは、紙媒体の出版社は、依然として自由の価値に目覚めていないところが多く、あるいはGFDLを拒むかもしれない。GFDLで出版するということは、本の印刷に使った組版のデジタルデータ(tex, AdobeのInDesignなどのフォーマットのファイル)が、GFDLでいう通過ドキュメントとなるので、当然、そのような通過ドキュメントを、その時点で主要なコンピューターネットワーク(インターネットなど)で公開しなければならない。思うに、多くの既存の不自由を好む紙書籍出版社は、組版のデジタルデータを公開したがらないのではないか。そういう不自由人は、たとえ金を払ってでも、求めて不自由を得たがるものだ。

私に自力で組版、印刷、流通を行うだけの技術も資本もない以上、紙書籍を出すとなれば、そのような作業は、既存の紙書籍出版社にやらせなければならない。そして、おそらく自由の価値を理解しない旧態依然の出版社は、たとえ無料で出版させてやると言ったとしても、組版のデジタルデータを公開することを拒むだろう。

私は、もはやプログラミングの参考書として紙媒体は死んだ媒体だと考えているのだが、いまだに紙媒体を好む旧時代の人間がいる以上、紙媒体でも提供されていることが望ましい。たとえそれが不自由なものにせよ、存在しないよりはマシであろう。

そのため、私は現状のGFDLで公開している電子媒体のC++参考書と衝突しない限り、紙媒体に限り、どうしても必要であれば、極めて苦渋の判断にはなるが、明示的な契約をもって、多少の不自由を認めるかもしれない。不自由なプログラミングの参考書は悪であるが、もたらす善の方が大きいだろうと思うからだ。紙書籍の存在を店頭で確認することにより、GFDLでライセンスされた自由なプログラミングの参考書があることを知る人もいるだろう。この2013年においても、まだインターネットは万能ではないのだ。

その時に、著作権が発生するほどのGFDLのパッチを受け入れた場合、私一人の著作権では不自由にできなくなる。

幸い、これはJavaScriptなので、取り除くのは簡単だ。そもそも、紙媒体に対して実行できるJavaScriptは、未だ発明されていないので、とりあえずこの件に関しては問題はない。

私は以前にも言ったように、このC++参考書に関しては、これ以上大幅な内容の変更はしないことにしている。というのも、来年には文面の不具合を多く修正したC++14がでてくるし、またその3年後には、またもやメジャーアップデートであるC++17が控えている。もし書くとすれば、今の文章を手直しして対応するよりも、新しく書き直したほうがいい。

また、今のC++参考書に、実質コンパイラー作成者しか気にしないような些細なC++14の修正を反映させるよりは、もっと簡単なC++の短い記事とか、入門書でも書いたほうが、おそらく日本のC++プログラマーのためになると思う。

それに、今のC++の参考書のマークアップは、甚だ稚拙なので、一から設計したいというのもある。たとえば、highlight.jsを導入できるようにしたいし、またC++の標準ライブラリには、数式が必要なものもあるので、MathJaxのようなライブラリも取り入れたい。

とにかく、何とかして紙書籍の出版社を探さなければならない。できれば自由の意義を理解し、GFDLでの出版に同意する出版社がいい。

4 comments:

Anonymous said...

Markdownみたいなもので書くのはどうでしょうか?

Anonymous said...

ASCIIはそのへん寛容な気がするけどな。
Winnyの技術という本を金子氏が書いた時は、同時にPDF版を無料でP2Pに流したり、
Ubuntu MagazinだってCCでバックナンバーを公開してる。
http://ubuntu.asciimw.jp/cate/5010/

Anonymous said...

bccksという電子でも自費で紙としても出版できるサービスもありますねhttp://bccks.jp/

Anonymous said...

オライリー・ジャパンはGPLのテキストを出版して、オンライン版も自社サイトで一般に公開してる事例がありますね。
http://www.oreilly.co.jp/BOOK/osp/announce.htm

再現可能な事例かどうかは聞いてみないと分かりませんが、興味がおありでしたら中の人はご紹介できます。