公開にあたって
8月も下旬に差し掛かった空の雲。その下の青い水面。東海道新幹線の車窓から、浜名湖を眺めています。
もう8年も前に書いた本の内容を、Webで公開して欲しいというリクエストを頂いたのは、とても嬉しいことでした。あの当時、メーリングリストで議論や情報交換を行い、知見を交わした人達の一部と、今、仕事で繋がりを持つ機会に恵まれていることに、素敵な縁を感じます。
今回、Jorge G. Mare (a.k.a "Koki") さんからリクエストを頂くことになったのも、何かしらの縁があるのかも知れません。一度も顔を合わせたことがなく、メールでのやり取りのみですが、誠実な人柄は、メールの文章から伺えます。
この原稿内容のWeb公開にあたり、出版元のソフトバンクパブリッシングに公開可能か問い合わせを行ったところ、問題ない旨の御快諾を頂きました。有難うございます。
この本の執筆当時、Be社に在籍し、BeOSを作り上げていたエンジニア達は、その後も、それぞれに活躍を続けていることでしょう。BeFSの開発を行ったドミニクは、現在はApple社で"Spotlight"の開発チームにいるそうですし、BeBoxのハードウェア・エンジニアだったジョゼフ・パルマーは、"HipTop"という携帯端末の開発に関わったと聞いています。また、BeOSというOSの風味は、"HAIKU"と名づけられたオープンソース実装のOSに受け継がれているようです。
そして、BeOSの「消費者」だった僕や、メーリングリストの話題を賑わせながら、国内有志が主体となって開催した、日本国内の開発者向けカンファレンスで素敵なデモを披露した、単なる消費者ではない、先駆的な開発者だった人達も、自らを成長させ続けています。願わくば、この原稿内容が、自分で「ものを作る」楽しみを知る人達にとって、ほんの少しでも役に立てることがあれば、それに勝る喜びは、ありません。Let's enjoy it:-)
2006/08/16
品川から京都へ向かう新幹線の車中にて
古賀信哉 (株)サムシングプレシャス
ライセンス/サポート
修正版 BSDライセンス (The Modified BSD License) で
- 改変可能
- 再利用の際は著作権表示を遵守
- "as is" ベースで無保証、免責とさせていただきます
>> ライセンス表示
サポート、サンプルコードについては書籍化時のサポートページを参照下さい。
>> "Art of BeOS Programming"のサポートページ
目次
第0章 はじめに第1章 BeOSとは何か
1.1 これまでの経緯
1.2 大まかな特徴
1.3 サポート機種
1.4 BeOSの入手方法
1.5 インストール手順
1.6 日本語フォントについて
第2章 BeOSのアーキテクチャとAPI
2.1 内部構造の概観
2.2 BeOSのシステム構成
2.3 サーバモジュール
2.4 デバイスドライバ
2.5 三種類の実行形式
2.6 APIの概観
第3章 アプリケーション内部の仕組み
3.1 BeOSのアプリケーション
3.1.1 一般的な外観
3.1.2 ファイルのオープンとセーブ
3.1.3 初期設定ファイル
3.2 アプリケーションの内部動作
3.2.1 アプリケーションの実行
3.2.2 入力イベントの通知
3.2.3 他のOSとの比較
3.2.4 BLooperとメッセージループ
3.2.5 BHandlerによるメッセージ応答
3.3 マルチスレッドによる並行処理
3.3.1 並行処理と共有データ
3.3.2 スレッド間通信とメッセージ
3.3.3 並行処理と非同期メッセージ
3.4 データの保存
3.5 BMessageと構造化データ
第4章 プログラミングを始める前に
4.1 BeOSの開発環境
4.1.1 開発環境とは
4.1.2 CodeWarrior IDE
4.1.3 シェル端末とmake
4.1.4 その他のツール
4.2 アプリケーション作成に必要なファイル
4.3 BeIDEによる開発
4.3.1 サンプルアプリケーション
4.3.2 リソースファイルの作成
4.3.3 プロジェクトファイルの作成とファイルの登録
4.3.4 プロジェクトのパラメータ設定
4.3.5 makeコマンドの実行
4.4 Terminalとmakeを使った開発
4.4.1 サンプルアプリケーション
4.4.2 リソースファイルの作成
4.4.3 Makefileの作成とファイルの登録
4.4.4 コンパイラとリンカに対するオプション設定
4.4.5 makeコマンドの実行
4.5 ソースレベルデバッガの利用
4.6 C++でのプログラミング
4.6.1 C++に関する参考書
4.6.2 本書でのプログラミング作法
第5章 アプリケーション最初の一歩
5.1 空っぽのアプリケーション
5.1.1 アプリケーションオブジェクト
5.1.2 ウィンドウを出さなきゃね
5.1.3 アプリケーションフレームワーク
5.2 ウィンドウに絵を描きたい
5.2.1 他人と同時にゃ描けないぜ
5.2.2 消えても消えても描き直せ
5.3 まとめと練習問題
第6章 ボタンがなくちゃ始まらない
6.1 マウスクリックに応答せよ
6.1.1 どこを押したらいいんだい
6.1.2 イベントとメッセージ
6.1.3 メッセージプロトコル
6.2 標準部品を便利に使おう
6.2.1 ボタンの数を増やしたら
6.2.2 部品があるなら作って貼るだけ
6.2.3 その他の標準ビュー部品
6.3 もっとアプリケーションらしく
6.4 まとめと練習問題
第7章 もっと動きを
7.1 時計じかけのアニメーション
7.1.1 サンプルの機能と構造
7.1.2 サンプルのソースコード
7.1.3 Pulse()のどこがいけないの
7.2 ちらつきを無くすには
7.2.1 改善目標
7.2.2 オフスクリーン描画とBBitmap
7.2.3 改良版ClockworkWave
7.3 マルチスレッドとメッセージ
7.3.1 いつになったら起こせばいいの
7.3.2 モーニングコールの取消し
7.3.3 取り込み中につきお待ち下さい
7.4 まとめと練習問題
第8章 伝えたいメッセージ
8.1 メッセージが届くまで
8.1.1 Messengerアプリケーションの機能と構造
8.1.2 Messengerアプリケーションのソースコード
8.1.3 他のチームに届けるときは
8.2 伝える相手を探すには
8.2.1 誰に何を伝えるの
8.2.2 スクリプティングの基本要素
8.2.3 スクリプティング・フレームワーク
8.2.4 汎用スイートと遠隔オブジェクト
8.3 メッセージばかりじゃ物足りない
8.3.1 Scriptorアプリケーションの機能と構造
8.3.2 Scriptorアプリケーションのソースコード
8.3.3 スクリプトを書いて動かすには
8.4 まとめと練習問題
第9章 ファイルを操ろう
9.1 ファイルを探す
9.1.1 BeFSのファイル検索機能
9.1.2 FileSearchが利用するAPI
9.1.3 FileSearchの外部仕様
9.1.4 FileSearchのモジュール構成
9.1.5 FileSearchのソースコード
9.2 名前と体と付属物
9.2.1 ファイルに関する三通りの情報
9.2.2 ファイルシステムとデータベース
9.3 分類できたらもっと便利
9.3.1 InfoChestが利用するAPI
9.3.2 InfoChestの外部仕様
9.3.3 InfoChestのモジュール構成
9.3.4 InfoChestのソースコード
9.4 まとめと練習問題
第10章 メモを書いたら貼りつけろ
10.1 エディタを作ろう
10.2 データを保存するには
10.3 レプリカント誕生秘話
10.4 まとめと練習問題
第11章 メールを送ろう
11.1 ソケットだったら知ってるよ
11.2.1 Mail Kitの使い方
11.3 まとめと練習問題
Art of BeOS Programming
koga@stprec.co.jp