笹田さんとメールで連絡した結果、 少なくともRuby会議の実行委員会でるりま枠をなくせとか、 そういう意見はなかった、ということがわかりました。 また冷静に考えてみるとわたしが聞いたのは 「〜〜という話を聞いた」程度のあやふやな情報にすぎず、 それだけを根拠に他人を非難したことは軽率に過ぎました。 深く反省しています。
時間枠についても、追記で書いたとおり、 最終的にはちゃんと 20 分もらえているわけですから、 感謝こそすれ非難する筋合いではありませんでした。 時間帯もだいぶいい枠を回してもらえたということで、 むしろ優遇してもらったと考えるべきかもしれません。
よいカンファレンスを作るために様々な場面で尽力してくださった Ruby会議運営スタッフの方々にいわれのない非難を浴びせてしまったことに対し、 深くお詫びいたします。本当に申し訳ありませんでした。
(01:42)
Ruby会議2008のリファレンスマニュアル枠について、 去年と同じ話題じゃん (だからいらない) という意見をもらった。 具体的に誰が言ってんだか知らないが、 企画側と観客側の両方から出ていることはわかっている。
そういう意見に対する俺の答えは以下のとおり。
一昨年からずっと同じプロジェクトやってんだからあたりまえだろ。 あれはプロジェクトステータスの報告なんだから、 タイトルも同じにしてんだよ。
まあ、観客の立場ならそういう意見が出てくるのはある意味しょうがない。 ちょっと Ruby に興味があるだけで、 日本 Ruby の会で積極的に活動しようなんて全然思ってない人もたくさんいるだろうし。 リファレンスマニュアルはブツだけあればいいという人もいるだろう…… っていうか、ほとんどそうかもしれないな。
でも、なんでそれと同じ意見が企画側から出てくんだよ。 そもそもリファレンスマニュアル刷新計画は 日本 Ruby の会としてとりくんでるプロジェクトだろうが。 俺はそうだと思ってたから http://doc.loveruby.net/wiki/HowToJoin.html にも 「なお、リファレンスマニュアル刷新計画は 日本Rubyの会の活動の一貫として実施されています」 と書いてあるわけんだけど (あ、typoが……)。
な、の、に、自組織の活動の一環である プロジェクトのためにたかだか20分を割けないって何なのさ。 あのセッションは青木峰郎のセッションではなく リファレンスマニュアル刷新計画のセッションだってわかってないの?
観客から文句を言われるならともかく、 Ruby の会にまで嫌がられるとは思ってなかったよ。 本気で萎えた。デスマ明けに徹夜してまでプレゼンした俺がバカだった。 そんなに嫌がられてまでプレゼンやる気もないし、 リファレンスマニュアルの発表はもう二度とやらない。
(20:31)
いやいややはりこういう感情的な書きかたはよくなかった。 論理的に要点だけまとめることにしたい。
ようするに、まがりなりにも「日本 Ruby の会として」 プロジェクトをやってるんなら 20 分くらい喋らせてくれと。 そのていどもできないなら最初から放置してくれということだ。
まあ、そういうことは開催前に言うべきだし、 最終的には 20 分出してくれてるわけだから、 全然配慮してくれてないとは思ってない。 ただ、このまま黙ってんのもなんか腹が立つんで一言言っておきたかった。
(02:46)
週末はRuby会議2008。 スタッフの人が「まさかLTの途中に来るやつなんていねえよな〜」 と油断している隙を狙って到着してやりました。KY。
んで、わたしの発表は凝りずに 「日本Rubyのリファレンスマニュアル2008・初夏」です。 リファレンスマニュアルも 1 年でずいぶん進みました。 資料とか↓
http://i.loveruby.net/rubykaigi2008/
今年もよいRuby会議でした。 みなさま本当にお疲れさまでした。
あーRubyのコードが書きてぇ〜
(02:02)
Ruby会議のゴルフで「ふつう賞」なる賞があったらしい。 その賞品が「ふつう」3点セット。 内訳は、 『ふつうのLinuxプログラミング』 『ふつうのHaskellプログラミング』 『ふつうのコンパイラ』(出版されしだい送付)
ちょ……待っ
(02:45)
ReVIEW の反応が意外とあったので tar.gz にかためてみた。
自分が使うことしか考えてなかったのでドキュメントはない。 ReVIEW フォーマットの説明だけは以前必要にかられたので書いてある。 doc/format.txt を参照。
使いかたをチョー簡単に書く。
◆インストール
Ruby 1.8 があればオケ。 ちょっと古い 1.9 (M17N 導入のしばらくあと) でも動いてた。今は知らん。 setup.rb でインストールしてもよいけど、 tar.gz を展開してそのまま bin にパスを通せば使えるのでそっちがおすすめ。
◆使いかた / 最初にすること
まずディレクトリを作って章ごとにテキストファイルを作る。 拡張子は「.re」。 でもって CHAPS というファイルを作り、その中には章の順にファイル名を書く。 例えば 1 章が intro.re で 2 章が lexer.re、3 章が parser.re なら、 CHAPS ファイルは次のようにする。
intro.re lexer.re parser.re
また、章を「部」に分けるときは空行を入れる。 例えば以下は「ふつりな」の CHAPS。
intro.re abstract1.re abstract2.re abstract3.re stream_sys.re stream_stdio.re practice1.re practice2.re hier.re fs.re memory.re process.re signal.re etc.re network.re httpd.re httpd2.re advanced.re
また preface.re, postscript.re, appendix.re というファイルを作ると、 それぞれ前書き・後書き・付録と自動認識されて、なんとなくそれっぽく処理される (CHAPS に入れてはいけない)。
あと、原稿は EUC-JP でしか書いたことがない。 Shift JIS だったりすると何か起こるかも。
◆使いかた / 目次出力
review-vol コマンドは章目次と章ごとの分量を表示する。 引数なしで review-vol と打てばよい。その他の使いかたは --help 参照。 「review-vol」は名前が長いので、ローカルでは「list」に alias している。
review-index コマンドは詳細な目次と、章・節・項ごとの推測行数を表示する。 デフォルトの組版メトリックは A5 (ふつうシリーズの大きさ)。 ちなみに A5 だと 1 ページ ≒ 1KB で近似できる。 B5 変形なら 1 ページ ≒ 2KB。 当然ながら、節の分量はあんまりバラつかないほうがよい。 本の分量と内容にもよるが、 ふつうシリーズでは 1 節を 200 行前後にまとめることを目標にしている。 コマンドの詳細は --help オプションを参照のこと。 あと、「review-index」も名前が長いので 「ind」を alias にしている。
◆使いかた / フォーマット変換
review-compile コマンドはフォーマットを変換する。 review-compile --html で HTML を生成、 review-compile --latex で LaTeX を生成、 という感じ。 ln -s review-compile review2html してもよい。 あとは review-compile --help を見よ
◆使いかた / プリプロセッサ
review-preproc コマンドはプリプロセスをかける。 プリプロセスの主な目的はソースコード引用を更新すること。
他人に話すときはフォーマット変換のほうが目立つので そっちを話すが、ReVIEW を最初に作った動機はソースコード引用を自動化することであった。 プログラミング関連書籍における執筆支援システムの役割は、 ソースコード引用に始まりソースコード引用に終わると言うとやや過言である。
◆使いかた / その他
あと、「記述・参照関係のチェック」 (もうこの専門用語は説明したかどうか、みたいなことをチェックする機能) とか「NG ワードのチェック」とかあるんだけど、 説明が面倒なのと、もしかすると今動かないかもしれないので説明しない。 まあ NG ワードなんて grep すりゃ済むから、専用コマンドなんていらんか。
◆ライセンスとか
LGPL。例によって無保証。 あと、いまバグレポートとか機能追加要望とかもらっても絶対に反応できません。 ふつぱいらが書き終わったら反応するかも。
(03:04)
■
arikui [http://i.loveruby.net/archive/review-20080624.tar.gz
-> http://i.loveruby.net/archive/review/review-20080624.tar.gz
のようです。]
■
yhara [面白そうなのでReVIEWをダウンロードしてみたのですが、tarballのURLが違うようです。
x http://i.loveruby.net/archive/review-20080624.tar.gz
o http://i.loveruby.net/archive/review/review-20080624.tar.gz
あとreview-listが(tarballにもリポジトリにも)入ってなくないですか…?]
■
青木 [うあ、すみません。直しました。
review-list は review-vol の間違いです。]
■ yhara [おお、なるほど>vol。ありがとうございます。]
買ったのってこれのことね。 中段の Fire V210 はフェイントだ(まあ、Fire も買ったんだけどさ)。
すぺっく
念願の Opteron 2way サーバ現行機。 あまりにもファンがうるさすぎて心臓に悪い。
どうも原稿がのってくると「ちなみに」が増える傾向がある。
ちなみに、grep すると今これくらい。
~/c/stdcompiler % grep 'ちなみに' *.reaamine@macbookpro
arch.re:ちなみに、クロックの周波数は@<kw>{ヘルツ,Hz}という単位で表します。
arch.re:ちなみに、このようにシステム内でクロックに差が出ていることから、
arch.re:ちなみに、MMXは登場当初multimedia extensionの略ということになっていましたが、
arch.re:ちなみに、Intelとhpが開発した@<kw>{IA-64}という
arch.re:ちなみに、IA-32以外のアーキテクチャ、
arch.re:ちなみに、他のアーキテクチャではベースポインタと同様の役割を
arch.re:ちなみに、アーキテクチャによってはインストラクションポインタのことを
asm.re:ちなみに-Osはオブジェクトファイルのサイズを最小にする最適化フラグです。
asm.re:ちなみに、「b」はbyte、「w」はwordの略です。
asm.re:ちなみに、GNUアセンブラではレジスタの大文字小文字には意味がないので、
asm.re:ちなみに2.のFPU命令はx87浮動小数点数演算を行うための命令で、
asm.re:ちなみに、この並びは使用頻度順です。
asm.re:ちなみに、2の補数があるからには「1の補数」もあります。
ast.re:ちなみに、左結合と右結合のどちらでもない二項演算子もあります。
ast.re:ちなみに、LabelPoolオブジェクトはgotoラベルを処理するために使います。
intro.re:ちなみに、リンクした結果がいつも実行可能ファイルであるとは限りません。
intro.re:ちなみに、プログラムを実行しながらそのつど型をチェックする場合は
javaccaction.re:ちなみに、「終端記号をパースする」ことを、JavaCCでは
javaccgram.re:ちなみに、なぜ終端や非終端と言うかというと、
javaccgram.re:ちなみに、Cのif文の規則が曖昧だという話は有名で、
parse.re:ちなみに、C言語(C♭)では必ず1つ以上変数がないと可変長引数にできません。
semantic.re:ちなみに、こういうときにNode#locationメソッドが使われます。
semantic.re:ちなみに、C言語と同じように、参照よりも前に書いてある定義だけを有効にするには、
ちなみすぎだろ……常識的に考えて。ちょっと減らそう
(03:13)
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.
■ 通りすがり [疲れてる時って、やたら攻撃的になっちゃう瞬間ありますよねw]