Personal tools
You are here: Home blog Categories 書籍紹介 Comments
Document Actions

書籍紹介

Up one level

Document Actions

ドラゴンランス一気読み

by Kahei Suzuki posted at 2007-09-06 23:39 last modified 2007-09-06 23:39

7月、8月と公私ともにとんでもなく忙しかった。

7月には子供が生まれてからはじめて沖縄旅行に行ったし、8月頭にはLL魂があり、お盆には息子が所属しているカブスカウトのキャンプにボランティアのサポートとして参加、そのあと帰省。

で、これらの活動の合間に(合間なんて言ったら怒られちゃうかな)必死こいて本作り。8月に2冊出して、9月にも2冊(1冊はOEM)出す。

こういう風に忙しくなるとどうなるかというと、無性に本が読みたくなる。

編集の仕事が忙しいときは、朝から晩まで文字との格闘が続く。コンピュータの画面で原稿を読み、レイアウトされて出力されたプリントアウトを読み、参考文献を読む。

1日中文字ばかり読んでいる。目が疲れて霞み、頭がぼ〜っとして、肩が凝る。なのに、なのに、活字が恋しい! 本が読みたい!

まったくもって不可解な感情だが、いつもこうなる。活字中毒が祟って編集者になったような人間だから、しょうがないか。

なにはともあれ読む本を調達しないといけない。さて、何を読むか。仕事でいやになるほど読んでいるので、コンピュータ関係の本は読みたくない。軽く読めて、現実逃避できるやつがいい。ハリー・ポッターみたいなの。

そこまで考えて、思い出した。そうだ、アスキーってドラゴンランス出してるじゃん!

ドラゴンランスと言えば、ロールプレイングゲームの元祖であるD&D(ダンジョンズ&ドラゴンズ)をもとに作られた小説で、世界中で5000万部を超える大ベストセラーだ。アスキーが出しているのは以前から知っていたのに、なんで今まで読んでいなかったんだろう。身内が出しているから安心しちゃってたのかなぁ。

とにかくドラゴンランスを読むことに決めたので、いそいそと担当編集者に会いにいく。そして、自分がいかにドラゴンランスを読みたいと思っているかを切々と訴える。まちがっても「仕事の合間に読む本がなくってさぁ」などとは言わない。担当編集者はとっても喜んでくれて、すぐに見本誌をくれた。ありがとう!

で、読み始めてすぐにはまった。おもしろい! ほんとうにおもしろい! さすが世界のベストセラー! どんなふうにおもしろいかは、また別の機会に書こう(ほんとか?)。

1冊読み終えては担当編集者に見本誌をもらいに行くのを繰り返し、7月から8月にかけての1ヶ月半くらいの間にアスキーが刊行しているドラゴンランス21巻すべて読んでしまった。

でもでも悲しいことに、ドラゴンランスって21巻で終わりじゃないんだよ。ドラゴンランス関係の小説は原著の版元から100タイトル以上出ているそうなんだけど、メインのストーリーがあと1巻(翻訳では)でれば完結するんだそうな。でも、その最後の1巻は現在翻訳中!

そりゃあないよ、最後の最後でおあずけかい! ショック!

翻訳が早く完成することをパラダインに祈りつつ、ダークエルフ物語に浮気する日々。ダークエルフ物語もおもしろいので、これはまた別の機会に。

最後に今アスキーから出ているドラゴンランスの一覧とそれらを積んだところを載せておこう。

  1. ドラゴンランス 1 廃都の黒竜
  2. ドラゴンランス 2 城砦の赤竜
  3. ドラゴンランス 3 氷壁の白竜
  4. ドラゴンランス 4 尖塔の青竜
  5. ドラゴンランス 5 聖域の銀竜
  6. ドラゴンランス 6 天空の金竜
  7. ドラゴンランス伝説 1 パラダインの聖女
  8. ドラゴンランス伝説 2 イスタルの神官王
  9. ドラゴンランス伝説 3 黒ローブの老魔術師
  10. ドラゴンランス伝説 4 レオルクスの英雄
  11. ドラゴンランス伝説 5 黒薔薇の騎士
  12. ドラゴンランス伝説 6 奈落の双子
  13. ドラゴンランス セカンドジェネレーション 上
  14. ドラゴンランス セカンドジェネレーション 下
  15. ドラゴンランス 夏の炎の竜 上
  16. ドラゴンランス 夏の炎の竜 中
  17. ドラゴンランス 夏の炎の竜 下
  18. ドラゴンランス 魂の戦争 第一部 墜ちた太陽の竜 上
  19. ドラゴンランス 魂の戦争 第一部 墜ちた太陽の竜 中
  20. ドラゴンランス 魂の戦争 第一部 墜ちた太陽の竜 下
  21. ドラゴンランス 魂の戦争 第二部 喪われた星の竜


ドラゴンランスシリーズ

The URL to Trackback this entry is:
http://kahei.org/blog/197/tbping

社員をサーフィンに行かせよう

by Kahei Suzuki posted at 2007-09-22 01:59 last modified 2009-05-13 21:22

『社員をサーフィンに行かせよう パタゴニア創業者の経営論』を読んだ。すばらしい本! 感動した。

私は小学校から高校までボーイスカウトに所属していて、キャンプやらハイクやらが大好きな少年だった。遊びに行くのはいつも山の中だった。
大学では生物部に入って、山やら川やら海で遊び、バックパッキングに憧れて、フリークライミングに夢中になった。その頃に憧れていた人の一人がイヴォン・シュイナードだ。
ヨセミテの先進的なクライマー。クリーンクライミングの提唱者の一人。単なるクライマーではなく、高品質なクライミング用品を作り、さらにパタゴニアというブランドでやはり高品質なアウトドア衣料品を作っている人。
シュイナードのクライミング用品やパタゴニアの服は高くてなかなか買えなかったけど、本当に憧れた。

社会に出て、アウトドアからもクライミングからも離れてしまったけど、イヴォン・シュイナードが作ったパタゴニアが金儲けではなく地球環境保護を第一の目的として企業活動を続けていることは知っていた。リサイクルしたペットボトルを使ったフリースを世界で最初に作ったりとかね。

そのイヴォン・シュイナードが本を出したと聞いて、すぐさま買ってきた。中身についてはとくに紹介しない。タイトル通りシュイナードの経営哲学が書かれている。一般の経営論とか起業本とはまったく違うので、ぜひとも読んでほしい。

世の中の偉い人たちは、やれ日本のビル・ゲイツを育てなければいけないとか、Googleのような企業が出てこないとだめだとか言うけれど、ビル・ゲイツもGoogleもいらない。育てなければいけないのはイヴォン・シュイナードのような経営者であり、パタゴニアのような企業だろう。

過剰生産/過剰消費の社会に未来はないよ。拝金主義はもうたくさんだ。


The URL to Trackback this entry is:
http://kahei.org/blog/185/tbping

Windowsデバッグの極意

by Kahei Suzuki posted at 2009-05-13 21:25 last modified 2009-05-13 21:31

なんかいつのまにやら1年近くも何も書かずにいるではないか。

ちょっといろいろ精神的にきついことが多いんだけど、なんとかまた書くようにがんばろう。

で、最近作った本の紹介をば。


これは翻訳書で、原著は"Advanced Windows Debugging"というAddison-Wesleyから出ている本だ。

なぜかAmazonに全然本の内容に関する情報が上がっていないので、少し書いておこう。

著者は二人ともMicrosoftのエンジニアだ。

Mario HewardtはMicrosoftCorporationのシニアデザインエンジニアで、過去9年間に渡ってWindowsのシステムレベル開発の分野で精力的に仕事をしてきた。Windowsの5回のリリース(Windows 98以降)を通じて、彼は主としてサーバーとデスクトップ管理の分野の仕事をしてきた。彼は、製品の信頼性、堅牢性、安全性を保証するための仕事に多くの時間を割いている。


Daniel PravatはMicrosoft Corporationのシニアデザインエンジニアで、複数のWindowsリリースで数種のWindowsコンポーネントのリリースに深く関わっている。Microsoftに入社する前は、電話サーバーとして機能するコンピュータのための電子通信ソフトウェアを開発していた。すべてのソフトウェアが信頼性、予測可能性、効率性を備えたものになることを目指している。

内容は、タイトル通りWindowsのデバッグのやり方をごりごりと解説したもの。ただし、Visual Studioを使ったデバッグ方法の解説はない。
Visual Studioではどうにもならないようなバグを追いかけるやり方について書かれた本とも言える。
さまざまなツール(ほとんどはMicrosoftのサイトから無料でダウンロードできる)を使って、バグを追いかけ、その原因を突き止める方法をステップバイステップに解説しているので、いざという時には役に立つ本だと思う。

artonさんがブログで紹介してくれている。

http://www.artonx.org/diary/20090503.html#p01

NyaRuRuさんも紹介してくれている。

http://d.hatena.ne.jp/NyaRuRu/20090427/p1


目次を下記にあげておくので、興味を持った人はぜひ本屋さんで手に取ってほしい。

序文
序章
謝辞
著者紹介

1 概観
第1章 ツールの準備
 1.1 リーク診断ツール
 1.2 Debugging Tools for Windows
 1.3 UMDH
 1.4 Microsoft Application Verifier
 1.5 グローバルフラグ
 1.6 Process Explorer
 1.7 Windows Driver Kit
 1.8 Wireshark
 1.9 DebugDiag
 1.10 まとめ
第2章 デバッガ入門
 2.1 デバッガの基本
 2.2 KDすべきか、KDせざるべきか
 2.3 デバッガの基本的な操作方法
 2.4 リモートデバッグ
 2.5 デバッグのシナリオ
 2.6 まとめ
第3章 デバッガの秘密
 3.1 ユーザーモードデバッガの内部構造
 3.2 ターゲットのコントロール
 3.3 まとめ
第4章 シンボルとソースファイルの管理
 4.1 デバッグのためのシンボル管理
 4.2 デバッグのためのソースファイル管理
 4.3 まとめ

2 応用デバッグ
第5章 メモリ破壊パート1―スタック
 5.1 メモリ破壊の検出
 5.2 スタックの破壊
 5.3 まとめ
第6章 メモリ破壊パート2―ヒープ
 6.1 ヒープとは何か
 6.2 ヒープ破壊
 6.3 まとめ
第7章 セキュリティ
 7.1 Windowsのセキュリティの概要
 7.2 セキュリティ情報の入手方法
 7.3 セキュリティチェックはどのようにして行われるか
 7.4 クライアント/サーバーアプリケーションでのIDの伝播
 7.5 システム境界でのセキュリティチェック
 7.6 セキュリティエラーの調査
 7.7 まとめ
第8章 プロセス間通信
 8.1 通信メカニズム
 8.2 ローカル通信のトラブルシュート
 8.3 リモート通信のトラブルシュート
 8.4 その他の技術知識
 8.5 まとめ
第9章 リソースリーク
 9.1 リソースとは何か
 9.2 リソースリークのデバッグプロセスの概要
 9.3 リソースリークの再現性
 9.4 ハンドルリーク
 9.5 メモリリーク
 9.6 まとめ
第10章 同期
 10.1 同期の基礎
 10.2 同期問題のデバッグプロセスの概要
 10.3 同期問題のシナリオ
 10.4 まとめ

3 高度なトピック
第11章 カスタムデバッガエクステンションの開発
 11.1 デバッガエクステンション入門
 11.2 デバッガエクステンションのサンプル
 11.3 まとめ
第12章 64ビットのデバッグ
 12.1 Microsoftの64ビットシステム
 12.2 Windows x64による変更
 12.3 まとめ
第13章 事後デバッグ
 13.1 ダンプファイルの基礎
 13.2 ダンプファイルの使い方
 13.3 WER(Windowsエラー報告)
 13.4 CER(企業内エラー報告)
 13.5 まとめ
第14章 パワーツール
 14.1 デバッグ診断ツール
 14.2 !analyze拡張コマンド
 14.3 まとめ
第15章 Windows Vistaの基礎
 15.1 第1章─ツールの準備
 15.2 第2章─デバッガ入門
 15.3 第6章─メモリ破壊パート2─ヒープ
 15.4 第7章─セキュリティ
 15.5 第8章─プロセス間通信
 15.6 第9章─リソースリーク
 15.7 第10章─同期
 15.8 第11章─カスタムデバッガエクステンションの開発
 15.9 第13章─事後デバッグ
 15.10 まとめ
付録A Application Verifierのテスト設定
 A.1 [Exceptions](例外)
 A.2 [Handles](ハンドル)
 A.3 [Heaps](ヒープ)
 A.4 [Locks](ロック)
 A.5 [Memory](メモリ)
 A.6 [ThreadPool](スレッドプール)
 A.7 [TLS]
 A.8 [FilePaths](ファイルパス)
 A.9 [HighVersionLie](新バージョンのシミュレーション)
 A.10 [InteractiveServices](対話的サービス)
 A.11 [KernelModeDriverInstall](カーネルモードのドライバインストール)
 A.12 [Low Resource Simulation](リソース残量低下のシミュレーション)
 A.13 [LuaPriv](権限の低いアカウントのシミュレーション)
 A.14 [DangerousAPIs](危険なAPI)
 A.15 [DirtyStacks](ダーティ状態のスタック)
 A.16 [TimeRollOver](時間のロールオーバー)
 A.17 [PrintAPI]と[PrintDriver]
索引

The URL to Trackback this entry is:
http://kahei.org/blog/219/tbping

Google Androidプログラミング入門

by Kahei Suzuki posted at 2009-07-08 20:40 last modified 2009-07-10 15:59

先日のエントリでもちょっと紹介した7月2日に出たばかりのGoogle Androidプログラミング入門 の宣伝をば。


この本は、昨年の3月に出した「Google Android完全解説」というムックを今年の4月末に公開された最新のSDK 1.5に合わせて全面改訂したもの。

昨年出したムックは、実は世界最初のGoogle Android解説本だったんだけど、出した当初はさほど売れなかった。それが今年になって急に売れ始めて、年初に一度増刷をかけている。

このムックの原稿を基に昨年暮れから改訂を進め、4月末に公開されたSDK 1.5に合わせて一気に加筆/修正を加えて完成させたのが本書だ。

ムックのときと同様、株式会社豆蔵のメンバー8人が執筆に参加してくれた。なにせSDK 1.5が公開されたのが4月末だったため、著者陣は全員ゴールデンウィークをつぶして執筆を行っている。私も、今年のゴールデンウィークでは妻と息子を実家に帰して、東京で犬の珀美と留守番をしながら仕事をしていた。

ムックのときには正月をつぶして執筆してくれたし、本当に著者陣には頭が下がる。多謝多謝!

さて、ムックからの変更点だけれども、最新の情報を盛り込むのはもちろん、単なる入門書ではなく実際のアプリケーション開発に役立つ本にしたいという著者陣の熱意から、とても充実した内容になっている。ムックではA4変型で208ページだったものが、今回の書籍ではB5変型で648ページまでボリュームアップした!

内容の充実度、ボリューム、ページ単価では他社の本に決して負けないと思う。648ページで本体価格3800円というのは、絶対お買い得だよ。

ぜひ書店で他社のAndroid本と内容を比べてほしい。

以下、目次を載せておく。

第1部 基礎知識
 第1章 Android SDKの概要
 第2章 Android開発環境
 第3章 開発ツール

第2部 開発の基本
 第1章 Androidアプリケーションの4大要素
 第2章 アクティビティ
 第3章 インテント
 第4章 サービス
 第5章 データ入出力と永続化

第3部 画面要素
 第1章 ユーザーインターフェイス
 第2章 グラフィックス

第4部 実践開発
 第1章 アプリケーションモデル
 第2章 セキュリティ
 第3章 リソースと国際化
 第4章 センサーAPI
 第5章 地図表示とロケーション
 第6章 テスティングフレームワーク

第5部 応用開発
 第1章 Input Method Framework
 第2章 Connectivity Manager
 第3章 カメラ
 第4章 メディア
 第5章 JNI(Java Native Interface)
 第6章 アプリケーションの実行結果を解析する
 第7章 ソースコードの探訪
 第8章 Androidの開発用端末「Android Dev Phone 1」
 第9章 アプリケーションの配布

付録A ウィジェットカタログ


The URL to Trackback this entry is:
http://kahei.org/blog/228/tbping

王様はロックンローラー

by Kahei Suzuki posted at 2009-07-13 11:41 last modified 2009-07-17 09:52

先日のエントリにも書いたように毎日ローリング・ストーンズのShine A Light を聴いている(見ている)わけだけど、ローリング・ストーンズを聴くと必ず思い出す本がある。

それが「王様はロックンローラー」という童話だ。今から20年くらい前、月刊パソコンワールドの編集長をしていた頃にイラストレーターの友人から教えられて手に入れた。

童話といっても大人向け、それもロック好きの大人向けに書かれたもので、ビートルズやローリング・ストーンズを青春時代に聞いていた世代に刺さる本だ。

王様は世界中のなによりロックンロールが大好き。寝ても覚めても考えるのは音楽のことばかり。自慢のギターを弾いて、ビートルズナンバーのFool on the hillを歌えば、感動のあまり髭の上に涙をこぼしてしまうくらいだ。

でも、ロック大好きな王様にもちょっと苦手なのがリズムの早いロックンロール。ローリング・ストーンズのSatisfactionを歌おうとすると、どうしても"I can't get no"と"satisfaction"のあいだでリズムを崩してしまうのだ。

お城主催のコンサートにバンドを率いて登場した王様、オープニングのFeeling alrightで観客をうまくのせ、2曲目には得意のFool on the hillで感動を引き起こした。しかし、3曲目のSatisfactionでとちってしまい大ブーイングを浴びてしまう。傷心のあまりステージから逃げ去った王様は、そのまま王様の位を捨て、一介のミュージシャンとして放浪の旅に出てしまう。

王様を失ったお城では臣下の一人が実権を握り、ハードロック以外の音楽は聴くことも演奏することも許さないという悪法をしく。

傷心の王様は再びお城に戻り、その美しい歌声を城下に響かせることができるのか? ハードロックに閉ざされた国は、音楽の自由を取り戻すことができるのだろうか?

というわけで、あとは読んでのお楽しみ。

純な王様のやさしさが心にしみるステキな童話だ。でも、残念なことにすでに絶版になっているらしい。

一応Amazonのリンクを貼っておくけど、古本しかないみたいだ。

作者が描いたイラストもいい味をだしているんだけど、Amazonには表紙画像がないな。時間があったらスキャンしてアップしよう。

今日はビートルズでも聴こうかな。

「王様はロックンローラー」の表紙をスキャンしたので、画像を追加した。

王様はロックンローラーの表紙画像

The URL to Trackback this entry is:
http://kahei.org/blog/231/tbping

Zope 3入門篇 Zope 3を使ったWebコンポーネント開発

by Kahei Suzuki posted at 2009-07-17 10:39 last modified 2009-07-17 10:39

先日のPlone研究会でも話題になったZope3入門篇—Zope3を使ったWebコンポーネント開発 の紹介をば。

Springerから出ている"Web Component Development with Zope 3"の翻訳。個人的には残念なんだけど、日本語版は2分冊になっていて今回出版されたのは前半部分だけ。後半は秋以降に刊行されるということだ。

翻訳に携わった山本さんによるとかなり印刷部数が少ないらしく、購入しようと思っている人は急いで手に入れたほうがいいかもしれない。私は紀伊国屋新宿南店で手に入れたのだけど、発売日に行ったにもかかわらず平台には本がなく、1冊だけ棚差しになっているのを見つけた。これだけの大型書店に1冊しか入荷していないというのはかなりのもんだよ。私が買ったあと、新規に入荷しているのかなぁ。もしかすると、もう入荷しないかも。

まだ読んでいないので中身について詳しくは書けないが、先進的なWebアプリケーションフレームワークであるZope 3について学ぶなら、これ以上の本はないだろう。というか、これしか日本語で読めるZope 3の本はない。本文には適宜「Zope 2では」という囲み記事が挿入されていて、Zope 2を使ったことのある人間なら比較しながら学べるようになっているのも良い感じだ。

ただ、表紙や章の冒頭に象のイラストと一緒に、「Zope 3のインタフェースは斬新だゾウ」などという言葉が挿入されているのはどうなんだろう??? 本の内容とちぐはぐな印象を持つのは私だけ???

最後に目次を載せておく。読みたくなるでしょう!

第I部 初級篇

第1章 はじめに

 1.1 この本について

 1.2 Zopeとは何か?

 1.3 Zopeの機能

 1.4 Zopeの歴史

 1.5 Pythonプログラミング言語

 1.6 Zope X3 3.0からの変更

第2章 Zopeとコンポーネントアーキテクチャ

 2.1 Zopeの動作原理ーー概要

 2.2 コンポーネントを導入する

 2.3 インタフェース

 2.4 コンテンツコンポーネント

 2.5 アダプタ

 2.6 ユーティリティ

 2.7 コンポーネントをコンフィグする

 2.8 セキュリティ

第3章 Zopeをインストールする

 3.1 環境要件

 3.2 ダウンロード、コンパイル、インストール

 3.3 Zopeインスタンスをセットアップする

 3.4 例題アプリケーション

第4章 インタフェース

 4.1 インタフェースセマンティクス

 4.2 インタフェースを定義する

 4.3 オブジェクトがインタフェースを提供することを宣言する

 4.4 実装を検証する

 4.5 スキーマ

第5章 コンテンツコンポーネント

 5.1 スキーマベースのコンテンツ

 5.2 ZCMLを通じてのコンフィグレーション

 5.3 コンテンツタイプ

 5.4 ファクトリ

第6章 永続性

 6.1 オブジェクトストレージの問題

 6.2 永続オブジェクトを作る

 6.3 永続オブジェクトを扱う

 6.4 BTree

第7章 簡単なビューとブラウザページ

 7.1 ビュー入門

 7.2 ページテンプレート

  7.2.1 TAL

  7.2.2 TALES

  7.2.3 スコープ

 7.3 簡単なビューページテンプレート

 7.4 強化されたブラウザページ

第8章 ブラウザフォーム

 8.1 スキーマベースのフォーム

 8.2 オブジェクトの追加と追加フォーム

 8.3 カスタムウィジェット

第II部 中級篇

第9章 国際化

 9.1 概要

 9.2 メッセージと翻訳ドメイン

 9.3 アプリケーションを国際化する

  9.3.1 Pythonコード

  9.3.2 ページテンプレート

  9.3.3 ZCML

 9.4 メッセージカタログ

 9.5 地域化

第10章 サイトのレイアウトをカスタマイズする

 10.1 レイヤとスキン

 10.2 ページテンプレートマクロ

 10.3 カスタムスキン

 10.4 コンテンツプロバイダとビューレット

第11章 アダプタ

 11.1 サイズ

 11.2 ファイル表現

 11.3 既存アダプタをカスタマイズする

第12章 自動化されたテスト作業

 12.1 はじめに

 12.2 ユニットテスト

 12.3 ドックテスト

 12.4 テストを走らせる

 12.5 インテグレーション

第13章 高度なビュー

 13.1 非HTMLコンテンツを扱うブラウザページ

 13.2 ブラウザメニュー

 13.3 他のHTTPプロトコル

  13.3.1 WebDAV

  13.3.2 XML-RPC

第14章 メタデータ

 14.1 アノテーション

 14.2 ダブリンコア

 14.3 カスタムメタデータ

第15章 コンテナ

 15.1 オブジェクト階層とトラバーサル

 15.2 コンテインメントとロケーション

 15.3 コンテインメント制約

 15.4 コンテインドオブジェクトの名前

 15.5 ファイル表現

第16章 イベント

 16.1 はじめに

 16.2 オブジェクトイベント

 16.3 イベント通知のためにメールを送る

参考文献

索引

The URL to Trackback this entry is:
http://kahei.org/blog/232/tbping

フリーソフトウェアと自由な社会

by Kahei Suzuki posted at 2009-07-22 20:36 last modified 2009-07-22 20:36

かずひこさんがとても懐かしい本を紹介してくれているので、ちょっと思い出話を。

昔のアスキーは、さまざまな形でFree Software Foundationに協力をしていた。まだWebが無い頃にFSFが毎年発行していた小雑誌には、FSFに寄付をした企業の名前が一覧になって掲載されていたものだけれど、アスキーはこの欄の常連だった。

私が書籍編集部の編集長になってやった仕事の1つに、アスキーをFSFの日本における公認の版元にしたというのがある。最初は単にFSFが刊行しているGNUのマニュアル類を翻訳して出版するという話だったのを、ストールマンと話し合った際に交渉して公認の版元にしてもらった。こうして、当時FSFが発行していたマニュアル類のかなりの数を翻訳して出版したんだけど、今ではもうほとんどが絶版になってしまっている。今ではアスキーもなくなってしまったから、公認も糞もないし。

当時は、ストールマンとの約束もあって、翻訳したテキストファイルをTexinfo形式にしてWebサイトからダウンロードできるようにしていた。このサイトもアスキーがなくなった際に消えてしまったなぁ。

かずひこさんが紹介してくれた「フリーソフトウェアと自由な社会」も、アスキーが公認の版元だった時に翻訳/出版したものだ。出版直後にストールマンが来日して講演をした時には、規模は小さかったが一応サイン会をやった。

内容はストールマンがフリーソフトウェアを推進する過程で発表してきた文章をまとめたもので、フリーソフトウェアに古くから関わっている人間ならばどれも一度は読んだことのあるものばかりだと思う。私も懐かしいなぁと思いながら読んだのを覚えている(特に前半)。フリーソフトウェアあるいはオープンソースに関わっているなら読んでおかなければいけない文章ばかりだと思うので、ぜひ読んでもらいたい本だ(特に若い人に)。

ちなみに本書の序文は、コモンズで有名なローレンス・レッシグが書いている。

例によって、目次をあげておこう。

編集にあたって

ソフトウェアについてのコメント

本書について

序文

第1部 GNUプロジェクトとフリーソフトウェア

 第1章 GNUプロジェクト

 第2章 GNU宣言

 第3章 フリーソフトウェアの定義

 第4章 ソフトウェアが所有権者を持ってはならない理由

 第5章 名前にどういう意味があるのか

 第6章 「オープンソース」ではなく「フリーソフトウェア」と呼ぶべき理由

 第7章 大学勤務のプログラマがフリーソフトウェアをリリースする方法

 第8章 フリーソフトウェアの販売

 第9章 フリーソフトウェアはフリードキュメントを必要とする

 第10章 フリーソフトウェアの歌

第2部 コピーライト、コピーレフト、特許

 第11章 読む権利

 第12章 著作権の誤解ーー一連の誤り

 第13章 科学は著作権を離れなければならない

 第14章 コピーレフトとは何か

 第15章 コピーレフト:プラグマティックな理想主義

 第16章 ソフトウェア特許の危険

第3部 自由、社会、ソフトウェア

 第17章 自分のコンピュータを信用できるか

 第18章 ソフトウェアがフリーであるべき理由

 第19章 コンピュータネットワーク時代の著作権とグローバリゼーション

 第20章 フリーソフトウェア:自由と協力

 第21章 避けたほうがよい用語

第4部 ライセンス

 GNU一般公有使用許諾書

 GNU劣等一般公衆利用許諾契約書

 GNU自由公開文書使用許諾書

訳者あとがき

索引

The URL to Trackback this entry is:
http://kahei.org/blog/235/tbping

Programming in Lua

by Kahei Suzuki posted at 2009-09-03 19:41 last modified 2009-09-03 19:41

プログラミング言語Luaの公式解説書である"Programming in Lua"の翻訳書を出したので、ご紹介。

すでに弾さんが紹介してくれている。

月神降臨 - 書評 - Programming in Lua

「当初から、LuaをCをはじめとする従来からよく使われてきた言語で記述されているソフトウェアと組み合わせて使用することを目的として設計しました。」と「はじめに」にあるように、Luaは他の言語と組み合わせて使うことを前提に開発されている。特にCと組み合わせることを強く意識していて、Cが得意にしている部分にはLuaは手を出さずCにすべてを任せるようになっている。この割り切りのせいか、Luaはほんとうに簡潔な言語だ。PerlやC++などの巨大な仕様を持つ言語に慣れていると、ちょっととまどうくらい小さな言語なので、カルチャーショックを受けるかも(大げさ?)。

日本語版の公式書を出すにあたって、Lua言語の解説書である"Programming in Lua"と言語リファレンスである"Lua 5.1 Reference Manual"を翻訳して一冊にまとめてある。表紙のキャッチに「これ1冊でLuaのすべてが学べます」と入れたけど、実際480ページのこの本一冊でLuaのことは一通りすべて学べる。他の本は必要ない。あとは先達の書いたコードを見て応用を学んでいけばいいはず。

原著の"Programming in Lua"は自費出版だったので、版権取得やらなにやらのために著者のIerusalimschy教授とメールのやり取りをしたんだけど、これがなかなか興味深い体験だった。Ierusalimschy教授はブラジルのリオデジャネイロにあるカトリカ大学の先生なので、母語は当然ポルトガル語。私はまったくポルトガル語がわからないので、英語でメールを送るわけだけど、教授が送ってくる英語のメールはシンプルそのもの。だいたい、いつも1行くらいしかない。いや、まぁ、間違いがなくていいんだけどさ。もしかして、英語にがて? でも、英語で本書いてるしなぁ。

必要最小限のことしか書かないっていうのが教授の性格だとすると、Luaの言語設計にも影響しているかも(ほんとか?)。

では、いつも通り目次を紹介しておこう。

はじめに
第1部 言語
第1章 最初の一歩
  1.1 チャンク
  1.2 構文規約についてちょっと
  1.3 グローバル変数
  1.4 スタンドアローンインタプリタ
第2章 型と値
  2.1 nil
  2.2 ブール値
  2.3 数値
  2.4 字列
  2.5 テーブル
  2.6 関数
  2.7 ユーザーデータとスレッド
第3章 式
  3.1 算術演算子
  3.2 関係演算子
  3.3 論理演算子
  3.4 連結
  3.5 優先順位
  3.6 テーブルコンストラクタ
第4章 ステートメント
  4.1 代入
  4.2 ローカル変数とブロック
  4.3 制御構造
  4.4 breakとreturn
第5章 関数
  5.1 複数の戻り値
  5.2 可変長引数
  5.3 名前つき引数
第6章 さらに関数について
  6.1 クロージャ
  6.2 グローバルではない関数
  6.3 末尾呼び出しの最適化
第7章 イテレータとジェネリックfor
  7.1 イテレータとクロージャ
  7.2 ジェネリックforのセマンティクス
  7.3 ステートレスイテレータ
  7.4 複雑な状態を持つイテレータ
  7.5 真のイテレータ
第8章 コンパイル、実行、エラー
  8.1 コンパイル
  8.2 Cのコード
  8.3 エラー
  8.4 エラー処理と例外
  8.5 エラーメッセージとトレースバック
第9章 コルーチン
  9.1 コルーチンの基礎
  9.2 パイプとフィルタ
  9.3 イテレータとしてのコルーチン
  9.4 ノンプリエンプティブなマルチスレッド処理
第10章 完全なサンプル
  10.1 データ記述
  10.2 マルコフ連鎖アルゴリズム

第2部 テーブルとオブジェクト
第11章 データ構造
  11.1 配列
  11.2 行列と多次元配列
  11.3 リンクリスト
  11.4 キューと両端キュー
  11.5 セットとバッグ
  11.6 文字列バッファ
  11.7 グラフ
第12章 データファイルと永続化
  12.1 データファイル
  12.2 シリアライズ
第13章 メタテーブルとメタメソッド
  13.1 算術メタメソッド
  13.2 関係メタ演算子
  13.3 ライブラリ定義のメタメソッド
  13.4 テーブルアクセスメタメソッド
第14章 環境
  14.1 動的な名前を持つグローバル変数
  14.2 グローバル変数の宣言
  14.3 非グローバル環境
第15章 モジュールとパッケージ
  15.1 require関数
  15.2 モジュールの基本的な作り方
  15.3 環境の使用
  15.4 module関数
  15.5 サブモジュールとパッケージ
第16章 オブジェクト指向プログラミング
  16.1 クラス
  16.2 継承
  16.3 多重継承
  16.4 プライベート性
  16.5 単一メソッドアプローチ
第17章 弱いテーブル
  17.1 メモ化関数
  17.2 オブジェクトのアトリビュート
  17.3 デフォルト値を持つテーブル再考

第3部 標準ライブラリ
第18章 数学ライブラリ
第19章 テーブルライブラリ
  19.1 追加と削除
  19.2 ソート
  19.3 連結
第20章 文字列ライブラリ
  20.1 基本的な文字列操作関数
  20.2 パターンマッチ関数
  20.3 パターン
  20.4 キャプチャ
  20.5 置換
  20.6 成功の秘訣
第21章 I/Oライブラリ
  21.1 シンプルなI/Oモデル
  21.2 フルセットのI/Oモデル
  21.3 その他のファイル操作
第22章 OSライブラリ
  22.1 日付と時刻
  22.2 その他のシステムコール
第23章 デバッグライブラリ
  23.1 内部的な関数
  23.2 フック
  23.3 プロファイル

第4部 C API
第24章 C APIの概要
  24.1 最初の例
  24.2 スタック
  24.3 C APIを使用したエラー処理
第25章 アプリケーションの拡張
  25.1 基本
  25.2 テーブル操作
  25.3 Lua関数の呼び出し
  25.4 汎用の関数呼び出し
第26章 LuaからCを呼び出す
  26.1 C関数
  26.2 Cモジュール
第27章 C関数を記述するときに使えるテクニック
  27.1 配列操作
  27.2 文字列操作
  27.3 C関数へのステートの格納
第28章 Cのユーザー定義型
  28.1 ユーザーデータ
  28.2 メタテーブル
  28.3 オブジェクト指向的なアクセス
  28.4 配列アクセス
  28.5 ライトユーザーデータ
第29章 リソース管理
  29.1 ディレクトリイテレータ
  29.2 XMLパーサー
第30章 スレッドとステート
  30.1 マルチスレッド
  30.2 Luaのステート
第31章 メモリ管理
  31.1 メモリ確保関数
  31.2 ガベージコレクタ

第5部 付録:Luaリファレンスマニュアル
付録A はじめに
付録B 言語
  B.1 字句規約
  B.2 値と型
  B.3 変数
  B.4 ステートメント
  B.5 式
  B.6 可視性規則
  B.7 エラー処理
  B.8 メタテーブル
  B.9 環境
  B.10 ガベージコレクション
  B.11 コルーチン
付録C アプリケーションプログラムインターフェイス
  C.1 スタック
  C.2 スタックのサイズ
  C.3 擬似インデックス
  C.4 Cのクロージャ
  C.5 レジストリ
  C.6 Cでのエラー処理
  C.7 関数と型
  C.8 デバッグインターフェイス
付録D 補助ライブラリ
  D.1 関数と型
付録E 標準ライブラリ
  E.1 基本関数
  E.2 コルーチン操作
  E.3 モジュール
  E.4 文字列操作
  E.5 テーブル操作
  E.6 数学関数
  E.7 入出力機能
  E.8 OS機能
  E.9 デバッグライブラリ
付録F スタンドアローンのLua
付録G 以前のバージョンとの非互換性情報
  G.1 言語仕様の変更
  G.2 ライブラリの変更
  G.3 APIの変更
付録H Luaの構文
索引


The URL to Trackback this entry is:
http://kahei.org/blog/246/tbping