history

青木日記 RSS

<前の日 | この月 | 次の日>

2004-12-17

Linux プログラミング本レビュー

もの凄い勢いでレビュアの申し込みが来てます。 現在 24 名。どうもありがとうございます。

いまのところ、思っていたよりレベルの高いかたが多いですね。 Linux プログラミングという題名のせいか、 Linux 特有のかなりつっこんだ話を期待されているのかな。 実際にはかなり初歩の初歩って感じなので、 特に最初のほうはかなり退屈させてしまうかもしれません。 なにしろ第一章は「gcc をインストールしましょう〜」 「とりあえず Hello, World コンパイルしますよ〜」 「argv の構造」てなところから始まりますから。

あと複数のかたから原稿のフォーマットについて質問があったので ここでも答えておくと、原稿は RHG で使った独自フォーマットです。 基本的にはプレーンテキスト + α なので、 読むのに特にソフトが必要とかいうことはありません。 RHG の場合だとこんな感じです。

= オブジェクト
 
== Rubyオブジェクトの構造
 
=== 指針
 
この章からはいよいよ実際にrubyのソースコードを探索していく。
まずは当初の宣言通りオブジェクトの構造から始めるとしよう。
 
さて、オブジェクトがオブジェクトとして成立するにはどういう条件が必要だ
ろうか。オブジェクトというものの説明は何通りもありうるが、本当に欠かせ
ない条件は三つだ。即ち、
 
  * 自分とその外を区別できる(アイデンティティを持つ)
  * 働きかけに反応することができる(メソッド)
  * 内部状態を持つ(インスタンス変数)
 
である。本章ではこの三つの特徴をこの順番で確認していく。
 
対象となるファイルは主にruby.hであるが、
それに加えobject.c・class.c・variable.cなども
眺めながら進むことになる。
 
 
(略)
 
 
=== struct RHash
 
struct RHashはRubyのハッシュテーブル、
Hashオブジェクトのための構造体である。
 
//list[struct_RHash][ruby.h / struct RHash]{
struct RHash {
    struct RBasic basic;
    struct st_table *tbl;
    int iter_lev;
    VALUE ifnone;
};
//}
 
struct st_tableのラッパーである。
st_tableについては@<chap>{name}で詳しく解説する。
 
ifnoneは対応付けられていなかったキーを検索したときの値で、
デフォルトはnil。iter_levはハッシュテーブル自体を
リエントラント(マルチスレッドセーフ)にするための仕掛けである。
 
 
(略)
 
 
//image[rdata][struct RDataのイメージ図]{
+VALUE+       +-struct RData-+          + struct XXXX +
|  ---------> |   basic      |          |             |
+-----+       |   data ---------------->|             |
              |              |          |             |
              +--------------+          +--------------
//}

(07:02)

Linux プログラミング本レビュー (2)

事務手続きが滞っておりますが、 メールはちゃんと届いているので、 返事がこないかたはいましばらくお待ちください。 今日中には反応します。 いきなり今日レビューを始めたりすることはありませんので。

(07:39)

Linux プログラミング本レビュー (3)

あせって返信しまくっているところですが、 半分くらいしか書かないうちに次の日になりそうです。 すみません……。どうも時間の見積もりが甘いんだよなあ。

(23:57)

Linux プログラミング本レビュー (4)

徐々に直してはいるんですが、 あせったせいか最初のほうのメールが かなりぶっきらぼうになってしまいました。 不快に感じた方がいたらすみません。

さて、レビューへの参加はまだまだ受け付けているので、 我こそはと思うかたはご応募ください。 基本的には、レビューが終わるまでは (= 校了するまでは) 受け付けます。 要項は以下の URL にあります。

ちなみになぜメーリングリストを使うようにしたかと言うと、 一つは自分が慣れているから。 二つめは原稿配布の手間を減らすため。 三つめは、結城さんのレビュー後のアンケートを見ていると、 「他の人の意見も読んでみたい」という意見がけっこうあったからです。

メーリングリストを使うと議論が盛り上がりすぎる場合があるので P2P のほうがいいかとも思ったんですが、 こればかりはやってみないとわかりませんから。 ただ一つ心配なのは、特に初心者の場合、 メーリングリストで意見を述べるのが恐いと感じるかもしれないという点です。 この点を考慮して、レビューを出すのは青木個人宛でも ML でもいいということにしました。 ですが他人の意見を読むのは著者でなくとも面白いですから、 ぜひ怖がらずに ML に出してくれるといいなあと思います。

……というようなことこそ、レビュー用 ML で書くべきだよなあ。 あとで流そう。

ん、いや待てよ、ML に流すと自分のメールアドレスが知れるという問題があるな。 From は消したほうがいいだろうか。

(00:54)

本日のツッコミ(全3件) [ツッコミを入れる]
ささだ (2004-12-17 10:30)

gcc インストール方法大期待.毎回クロス環境作るときに悩みます.

babie (2004-12-17 18:05)

↑クロス環境...どう見てもターゲットじゃないw。GCCプログラミング工房をドゾー(まだ出てないけど)

babie (2004-12-18 07:46)

メールの返信、一律同報メールでも良かったのに(笑
なにはともあれ、よろしくお願いします。

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.