2004年08月の雑感

更新日:2004-08-31
[トップページへ] [7月] [9月] [過去の雑感へ]

8月31日(火)

 [Scheme] car と cdr

初心者が予想できなかったこと。

gosh> (define list1 '(1 2 3 4))
list1
gosh> list1
(1 2 3 4)
gosh> (define a (car list1))
a
gosh> a
1
gosh> (define rest (cdr list1))
rest
gosh> rest
(2 3 4)
gosh> (set-car! rest 9)
#<undef>
gosh> rest
(9 3 4)
gosh> list1
(1 9 3 4)    ;; list1も9に変わる(初心者には予想外のできごと)。
gosh> (set! a 5)
5
gosh> a
5
gosh> list1
(1 9 3 4)    ;; list1は変わらない(初心者には予想通りのできごと)。
gosh> 

8月30日(月)

 ソースコード

1日中、他人の書いたソースコードを眺めていたら、肩が凝ってきて、気持ち悪くなってきた。 途中で気分転換しないと辛い。

 [BOOK]『ぶたぶた日記』(矢崎存美)

今までだと、ぶたぶたさんは、のほほんとして完全に第三者の立場で登場して、癒し系のキャラという感じでした。 今回は、ぶたぶたさんの心に迫るというか、ぶたのぬいぐるみであるが故の悩みに迫るという微妙にシリアスな 一面を見せてくれてます。


8月29日()

 本日買った本

 [BOOK]『真説ルパン対ホームズ−名探偵博覧会』(芦部拓)

ルパンとホームズを共演させる表題作はじめ、古今東西の名探偵を共演させて推理合戦をやらせる短篇集。 単にルパンとホームズを共演させるだけでなく、 ワトスンがルパンとホームズが対決した事件を書かなかった理由を明らかにしてみせるなど、芸が細かい。 ルパン、ホームズ、ファイロ・ヴァンス、思考機械、ネロ・ウルフ、エラリー・クイーン、 サム・スペード、チャーリー・チャンなどオリジナルをどれだけ知ってるかで、どれだけ楽しめるかが決まる本。

 「独習 Scheme 三週間

後半は駆け足でさらっと一通り目を通した。 もうちょっと丁寧に解説してほしい部分もある。これだけで独習するのは厳しいかな。 call/ccがわかるようになるのは、いつの日か...。


8月24日(火)

 [Scheme] A-リストとテーブル 3

A-リストとテーブルtable-for-eachの書き替え。

(define table-for-each
  (lambda (tbl p)
    (for-each
      (lambda (c)
        (p (car c) (cdr c))) 
      (alist-of tbl))))

table-for-eachの使用例。

(table-for-each atbl 
  (lambda(c d) 
    (display (string-append c "=>"))
    (display d)
    (newline)))

さほど面白くもないか。

 [Vim] lisp.vim

Schemeのプログラムを書くときは、'%'を連打するのがつらいので、 scmファイルの編集のときだけ、()の対応がわかるようにした。 Vim付属のscheme.vimでは、単に

run ftplugin/lisp.vim

となっている。 結局、Lispのプログラムを書くときにも同じことになるので、

set showmatch

と書いた~/vim/ftplugin/lisp.vimファイルを用意した。


8月23日(月)

 [Scheme] A-リストとテーブル 2

A-リストとテーブルtable-put!の書き替え。

(define table-put!
  (lambda (tbl k v)
    (let ((c (lassoc k (alist-of tbl) (equ-of tbl))))
      (if c (set-cdr! c v)
        (set! (alist-of atbl) (cons (cons k v) (alist-of atbl)))))))

table-put!の使用例。

(define alist `(("key1" . 1) ("key2" . 2) ("key3" . 3)))
(define atbl (make <table>))
(set! (alist-of atbl) alist)
(set! (equ-of atbl) equal?)

(table-put! atbl "key1" 10)
(table-put! atbl "key4" 4)
(display (table-get atbl "key1")) ; => 10
(newline)
(display (table-get atbl "key4")) ; => 4
(newline)

8月22日()

 [BOOK]『殺意のシナリオ』(J・F・バーディン)

ある朝、フィリップの机上に置かれていた原稿。 そこには、これからの出来事がまるで過去の出来事であるかのように書かれてあった。 原稿に書かれてある通りの出来事が実際に起こり、フィリップは恐怖に囚われる。

一見、不可能であるかのような状況が、最後には、合理的に解決されるサイコサスペンス。 タイプライターやエレベーターの扉など時代を感じさせる部分はありますが、 ストーリーそのものは、古さを全く感じさせません。 『悪魔に喰われろ青尾蠅』で感じたようなもやもや感はありません。 すっきりしたい方には、こちらの方がオススメ。

 [Scheme] defstruct マクロ

独習 Scheme 三週間』に登場する defstruct マクロは、 Gaucheには、用意されていないみたい。 自分で、defstructマクロを定義すればいいんだろうけど、 Gaucheだと構造体を定義するんじゃなくてdefine-classを使ってクラスを定義しろということになるんだろうか? どうしても構造体が欲しけりゃ、マクロでdefsturctを自分で用意することになる? だけど、標準的な定義の方法がないとマイ構造体定義方法が氾濫して嬉しくない状態になりそう。 いっそのこと、Gaucheでは構造体は定義できないと割り切ってしまった方がすっきりするかな。

 [Scheme] A-リストとテーブル

という訳で、A-リストとテーブルの プログラムをGauche の define-classを使って書き替えてみる。

(define-class <table> ()
  ((equ :init-value eqv? :accessor equ-of)
   (alist :init-value '() :accessor alist-of)))

table-get は以下の通り。

(define table-get
  (lambda (tbl k . d)
    (let ((c (lassoc k (alist-of tbl) (equ-of tbl))))
      (cond (c (cdr c))
            ((pair? d) (car d))))))

(define lassoc 
  (lambda (k al equ?)
    (let loop ((al al))
      (if (null? al) #f
        (let ((c (car al)))
          (if (equ? (car c) k) c
            (loop (cdr al))))))))

table-getを使ってみる。

;リストを定義する
(define alist `(("key1" . 1) ("key2" . 2) ("key3" . 3)))

;tableクラスのインスタンス atbl を生成する 
(define atbl (make <table>))

;インスタンス atblのメンバー(スロット)の初期化
(set! (alist-of atbl) alist)
(set! (equ-of atbl) equal?)

(display (table-get atbl "key1")) ; => 1
(newline)

8月21日()

 [BOOK]『百鬼徒然袋−雨』(京極夏彦)

榎津、京極堂をはじめ、お馴染みの面々が活躍する短編集。 京極堂が謎解き(憑き物落し)をする訳ではなく、榎津が主役(?)を務める。 悪を凝らしめるために、罠を仕掛ける榎津たち。巻説百物語のノリに近い。


8月20日(金)

 [BOOK]『ZOO』(乙一)

短篇集。 淡々と自虐的な独白が続く「カザリとヨーコ」。 スプラッタな設定のアホバカミステリ「血液を探せ!」。 ありがちなストーリー展開だが、話を展開させるためのエピソードが巧みな「陽だまりの詩」。 飛行機のハイジャックという事件なのに緊迫感のない奇妙なコメディ「落ちる飛行機の中で」などいろいろな乙一を読めます。

 [BOOK]『アヒルと鴨のコインロッカー』(伊坂幸太郎)

100ページくらい読んだところで、真相は、こうかなあと想像したら、完全にその通りだった。 確かに伏線は丁寧だしミステリとしても出来はいい。 『オーデュボンの祈り』のようなミステリだか何だかわからないまま話が展開し、 最後に伏線のピースが納まるべきところに納まり、「あっ。この話はやっぱりミステリだったのかな。」と思わせるような 作品を期待しているこちらとしては、真っ当なミステリだと物足りなく思ってしまうのです。 あまりに予想がぴったり当ってしまったから余計にそう思うんだろうなあ。

 [Vim] 複数ファイル、バッファの扱い

:vi 現在開いているファイルを閉じて別のファイルを開く。

:previous 直前に編集していたファイルに戻る。

:rewind 最初に編集していたファイルに戻る。

:buffers 現在開いているバッファ(ファイル)のリストを表示する。

:buffer バッファを選択して表示する。

:hide 画面分割時に現在開いているバッファを隠す。


8月19日(木)

 [Java]標準化進む新スクリプト言語“Groovy”

LL Weekendの中で、マイナーさでは一、二を争う言語だと思っていたんだけど、 Javaの世界では、結構、メジャーな存在になりつつあるのか。 それとも、「Javaなんて...」と言わせないための戦略なのか。 「Ruby? ああ。あのGroovyに似た奴ね。」と世間に言わせ、巻き返しを図るための戦略なのか。 標準化されたGroovyがどのくらいRubyに近いものになるのか、それとも、かけ離れたものになるのか、要注目。


8月18日(水)

 [Vim] マークの一覧

:marks でマークの一覧が表示される。

 [Scheme] 繰り返し

Schemeには、ループや反復を扱う特別な構成はなく、 繰り返しの処理には、再帰の仕組を使う。 ということで、Rubyの

10.times do; puts "Hello World"; end

をSchemeで書くと

(let loop ((c 10)) (if (> c 0) (begin (display "Hello World\n") (loop (- c 1)))))

となる。

多分、Schemeにだってもっと簡潔な書き方があるはずだ。 だから、これだけ見て、Rubyの方が簡潔だと思ってはいけない。 大体、whileを使わないで、Integer#times メソッドを使っているRubyのコードと Scheme初心者(=私)の書いたSchemeのコードを比較するのは、公平とは言えない。


8月16日(月)

 [Scheme] Gauche と Emacs

Gauche (gosh) には、残念ながら、今のところ、 行編集やコマンドヒストリの機能がない 。 代わりに、Emacsと組み合わせて使う。 .emacs に

(setq scheme-program-name "gosh")

と追加し、M-x run-scheme を実行する。 これなら、Emacs上で動くので、行編集もできるし、 M-p M-n などコマンドヒストリの機能も使える。


8月15日()

 CLISP on Vine Linux

CLISPをインストール。

./configure
cd src
./makemake --with-dynamic-ffi > Makefile
make config.lisp
make
make check
make install

make checkが通ったのでよしとする。

 [Scheme] 独習 Scheme 三週間とGauche

『独習 Scheme 三週間』では、mzschemeというのを使っている。 goshの場合と微妙に違う。

ファイルのロード。 gosh の場合は、デフォルトでは、カレントディレクトリがload pathに設定されていない。 なので、ファイルをロードするときは、パスを指定して

(load "./file")

とするか、gosh起動時に、

gosh -I.

とする。

gosh -A.

でもよい。

scmファイルの実行。 gosh の場合は、-r オプションが無い。

gosh scmファイル

とすれば、scmファイルを実行できる。

 『陽気なギャングが地球を回す』(伊坂幸太郎)

嘘を見抜く名人、掏摸の天才、演説の達人で元ボクシングの選手、正確な体内時計の持ち主の4人が活躍するクライム・コメディ。 ストーリー展開は、ある程度予想が着きます。 どのキャラクターも格好良すぎるのが癪に障ります。 が、そんなことは抜きにして、理屈抜きに楽しんで読めばいい作品です。

 [Vim] Tips

'~'を使うと大文字から小文字へ、小文字から大文字へ変換できる。

マクロの記録の開始は'qx'(xは[a-z])で記録の終了は'q'。 マクロを実行するには'@x'とする。

 [Scheme]可変長引数

単一のシンボルまたは、ドット対を利用すれば、可変長引数を実現できる。

;; 単一のシンボル
(define disp1
  ;; 引数はリストの形で、argsに
  (lambda args
    (display args)))

;;ドット対
(define disp2
  ;; 第1引数は、arg0に、それ以降の引数はリストの形でargsに。
  (lambda (arg0 . args)
    (display (cons arg0 args))))

disp1 も disp2 もほぼ同じ動作をする。 違いは、disp1 は引数を省略できるが、disp2 は、最低1つの引数が必要であること。

固定長引数は、パラメータをリストにすればよい。

(define disp3
  ;; disp3 は 3つの引数を取る。
  (lambda (arg0 arg1 arg2)
    (...)))

8月14日()

 [Book]『重力ピエロ』(伊坂幸太郎)

放火事件の謎に挑む春と私。 重いテーマの話を魅力的な家族を描写することでさらりと書いてます。 ミステリ色は薄いですが、『オーデュボンの祈り』の話がちらと出てきたり、ニヤリとする場面もあります。 黒澤が主人公の話を読んでみたいです。

 [Book]『闇の中の赤い馬』(竹本健治)

少年少女向けミステリーランドのシリーズの中の1冊。 文字のフォントは大きく、漢字にはすべて振り仮名がついてます。 そういう意味では、少年、少女向けなのかも知れません。

舞台は、学校。(中学なのか高校なのかよくわかりません。) 密室の中で、丸焦げの死体となって発見されたベルイマン神父 凡虚学研究会の面々が事件の謎に挑む学園ミステリ。 大掛かりなアホバカミステリすれすれのトリック。 唖然としてしまいました。

しかし、少年少女向けとは言え、どの年代をターゲットにしているのだろう。

 [Book]『ジェシカが駆け抜けた七年間について』(歌野晶午)

大技一本のわかりやすいトリック。 それでいて、かなり巧妙です。 こういうの大好きです。 構造は『安達ヶ原の鬼密室』に似ていますが、出来は、こちらの方がいいです。

 図書館

2004年度の予算がなく新刊書籍の購入は難しいらしく、購入希望は受け付けられないらしい。 悲しい。 別に購入希望を出してまで読みたい本がある訳じゃないんだけど。

 Gauch (gosh)

gosh のコマンドラインインタプリタでは、Ctrl+a とか Ctrl+e とか使えないんですか。

 Common Lisp

処理系が1つもインストール(されてない|してない)ことに気づく。 Windows 2000 on Vmware には、xyzzyがあるんだけど。 (xyzzyは、Emacsライクなエディタですが、マクロは、Emacs Lisp ではなく、Common Lispです。)


8月13日(金)

 Hugs on Cygwin

Gauche インストールしたんだから、Hugsもということで、敢えてCygwinにインストール。 結局、素直にインストールできず、ちょこっと手作業をしています。

./configure --without-gui --without-x

泥臭いですが、この後、config.h を編集。

#define HAVE_WINDOWS_H 1
#define HAVE_WINSOCK_H 1

をコメントアウト。

#define FLOATS_SUPPORTED 1

を追加しておきます。

make

socket関連のライブラリ(?)を作るときに、エラーが出ますが、それは無視します。 installがこけるので、*.exe を * に変更します。

mv hugs.exe hugs
mv runhugs.exe runhugs

あとは、インストールです。

make install

エラーメッセージの内容が異なる部分は、ありますが、 Huskell入門のコードが動くことを確認しました。 Windows を使っている人は、こんなひねくれたことをしないで、 素直にWindows 用のバイナリをダウンロードしてお使いになることをお勧めします。

 Hugs on Vine Linux

素直にインストールできませぬ。 試行錯誤の末、以下の方法でインストール。

fptools/libraries/base/Data/List.hs の 212行目

infix 5 \\

-- infix 5 \\

に修正。(←問題があったら、とりあえずコメントアウトしてみるという方針は、CだろうとHaskellだろうと変わらない。)

cd src/unix
./confiugre
cd ..
make
make install

Huskell入門のコードが動くことを確認しました。


8月12日(木)

 Gauche 0.8.1 on Cygwin

Gaucheは、以前、Linux にインストールしたことがあります。 インタプリタの起動方法すら忘れていて ga と入力して[Tab]キーを押してみました。 私の琴線に触れるようなコマンドは表示されませんでした。 結局調べてみたら、gosh でございました。 やはり、"ゴーシュ" とお呼びすればよろしいのでしょうか。

以下、Cygwinでのインストール。 configure時のオプションをいろいろ試したが、CygTerm上から使う場合、日本語を扱うにはsjisにするのが良さそう。

./configure --enable-multibyte='sjis'
make
make install

このようにインストールだけして満足してしまう私なのでございます。

 『Code Reading』(Diomidis Spinellis)

問題 2.9

Vim では '%' キー。

問題 2.15

javac(Java) も、gcc(C) も break が無いことを警告してくれるオプションがわかりません。 gcc には、default が無いのを警告してくれるオプションはありますが、javacでは、それすらわかりません。 Javaには、いくつか文法チェッカがあるみたいなので、それだと警告してくれるかも知れません(未確認)。

ところで、Linuxには、lintが標準でインストールされないのですね (←かなりツッコミしがいのある表現ですが、適切な表現を思いつきませんでした)。 知りませんでした。 それにしても、lint で検索すると HTML-lint が多くひっかかってきますね。


8月11日(水)

 『Code Reading』(Diomidis Spinellis)

問題 2.3

本文に出てくるSTREQの定義だと、

char *str1 = "foo";
char *str2 = "ffoo";

if (STREQ(str1, ++str2)) {
     printf("str1 == ++str2\n");
}
printf("str1 = %s\n", str1);
printf("str2 = %s\n", str2);

char *str1 = "foo";
char *str2 = "ffoo";

if (strcmp(str1, ++str2) == 0) {
     printf("str1 == ++str2\n");
}
printf("str1 = %s\n", str1);
printf("str2 = %s\n", str2);

で動きが違ってきます。


8月10日(火)

 『Code Reading』(Diomidis Spinellis)

問題 2.2

getopt を使うと、-n 以外のオプションを指定すると

xxx: invalid option -- a

とエラーメッセージが表示されます。 ここで xxx は、実行したコマンド。aはオプションの文字列。

echo の場合は、-n 以外のオプションは、そのまま出力します。

$ echo -a
-a

ところで、Vine Linux (sh-utils 2.0.11) の echo には、-n の他に -e -E というオプションがあります。

 [Ruby] bsfilter

nabekenさんのbsfilterをインストール。

tar zxvf bsfilter-1.0.3.tgz
cp bsfilter-1.0.3/bsfilter /usr/local/bin

スパムメールは、<URL:http://www.flcl.org/~yoh/spam9xxxx.tar.gz>を利用させてもらった。 クリーンなメールは、過去のruby-talkのメールをcmailでmbox形式に変換したものを利用。

bsfilter --add-spam spam/*
bsfilter --add-clean --mbox mb-rubytalk
bsfilter --update

POP proxy として起動。

bsfilter --pop --pop-proxy-if 127.0.0.1 --pop-server YYY --pop-user XXX \
--auto-update --insert-flag --insert-probability

最初、insert-flag と insert-probability をつけてないまま起動して、 なぜ、X-Spam-Flag と X-Spam-Probability がつかないのか悩んでしまった。

 [Book] 『完璧な絵画』(レジナルド・ヒル)

ダルジール警視シリーズ。

銃を乱射し手当たり次第に人を撃つ狂戦士。 かなり過激なシーンで物語は幕を開ける。 話は、その二日前に遡り、駐在巡査失踪事件の調査に乗り出すダルジール、パスコー、ウィールド。 大量の血が見つかるものの、死体は見つからない。 駐在巡査の失踪以外に事件らしい事件も、起こらない。 一体何が起こっているのか。 狂戦士の正体は?

中盤まで、どうしてもストーリーが頭に入ってこず。 中盤以降、少しだけテンポが上がってはくるものの、結局、最後まで何だかわからないまま、読み終わってしまった。 よく考えられている作品だとは思うんだけど、小難しい表現が多くて、テンポよく読み進められなかった。

ラストで、ジェフリー・ディーヴァーのある作品を連想してしまった。


8月09日(月)

 日本 Rubyの会

ruby-list で正式アナウンス([ruby-list:39946])。

 Rabbit と Ruby/GTK2

LL Weekend に参加して刺激を受けたので、何かしてみようと思って、 須藤さんが プレゼンのときに使ってらっしゃったと思われるRabbitを インストールしてみる。 Ruby/GTK2が必要らしいので、それもインストール。

ruby extconf.rb
make
make install

でおしまい。

Rabbitのインストール。

ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install

とりあえず、動かしてみる。

rabbit --type file sample/rabbit-implementation.rd

日本語の文字が大きくなってないような。

texts.prop_set("size", xxx)

で、適当に指定すると、日本語の文字は、小さくはなるけど、一定以上大きくならない。 アルファベットはちゃんと大きさが変わっている。 フォントをちゃんと設定していないからかなあ。

--full-screen でフルスクリーンにならない。 指定しないときと同じ大きさにしかならない。 サイズ指定だと変わるみたい。

なんで、Rabbitかというと、LL Weekend で登場したRubyアプリで インストールしてないものは、RabbitとtDiaryぐらいだったから。

前に社内でRubyの紹介をするときに、Rabbitを使うことをちらっと考えたんだけど、 Windowsだと、Rabbit以前にGTK2周りの環境を整えるのに時間がかかりそうでやめたという経緯があって、 Rabbitをインストールしてみたのだった。 でも、Linuxにインストールしただけだから、リベンジになってない。 むしろ、返り討ちにされたという感じ。

 blogは素晴らしい...のか?

名前を忘れた方がkdmsnrさんだと判明した。 LL Weekendの公式レポート経由で、 生きてま経由で知る。 本当にすいませんでした。

これもみんな、LL Weekendの公式レポートが、レポート担当者を用意しないで、TrackBackの機能を使って、 みんながレポートするという形式になっていたおかげだよ。 blogのTrackBackが無ければ、私が名前を知ることはできなかったよ。 blogって素晴しいよ(←素晴しいと思うその理由がかなりずれている)。 と思ったんだけど、たださんの日記経由で、 Lightweight Language Weekend - 羊堂本舗ちょきを 知って、こっちからもわかるじゃん。 ということになってしまった。 ここまで書いて、タイトルに 「...のか?」をつけることにした。

 あのとき、あそこにいた、あの人は誰

こうして、いろんな人のレポート(ツッコミも含めて)を読んでいると、 あの人がXXXさんだったのかと後から判明したりする様子が伝わってきたりして、なんか面白い。 こういうのを一生懸命つなぎ合わせていくと、名前しか知らない人の顔がわかったりするんだろうか。


8月08日()

 LL Weekend

以下、2日目のメモ

 「その場でどう書く」課題発表

課題は、「Webアプリケーションで予定表を作成する」というもの。

というもの。

これを4時間で仕上げるのは、結構、厳しそうだと感じる。 私には、とてもできそうにないと思う。 中田さんには、失礼だけど、この手のプログラミングも得意なんだろうかと思ったり、 中田さんだと、コマンドラインインターフェースの予定表を作るのかなあと訳のわからんことを思ったり (OptionParserをはじめ、 コマンドラインインターフェースバリバリの中田さんという私の勝手なイメージからの連想です。)、 これは、tDiaryあたりにはカレンダーの機能もありそうだし、たださんの方が得意な分野じゃないのかと思ったりする。

 LL と blog

たださんのプレゼンは、たださん自身のポリシーというか考えが伝わってきて、わかりやすかった。 blogについて全く知識のなかった私には、 blogというものが何なのか、漠然とながらイメージが沸いてきただけでも収穫。

 昼休み

3階に行って、中田さんをひやかす。

「拡張ライブラリで実装してください。Rubyのコードは、1行ですむように。」

などと、無責任で無茶苦茶なことを言う私。

 Lightning Talk

 午後の休憩

前田さんに挨拶して、CVSのアカウントの件で、お手数をかけたことを謝っておく。 松江は遠いですよねえとか、3000円は安いですよねえとか、そんな話をちょこっとする。

 その場でどう書く

やはり、中田さんは、GUIは、あまり得意ではなかったみたい。 HTMLで苦労されたとのこと。 これまた、予想通りというか期待通りというか、たださんが飛び入りで参加。 tDiaryのPlugin(?)を5行ほど修正するという「反則技」を披露。

プレゼンテーションとして印象に残ったのは、Python。 Zopeを繰り返し強調したりとか、わずか2行でWebサーバーが実装できるとか、 デバッグ機能を実演して見せるなど、アピールの仕方が上手だった。

また、やって欲しいけど、やる方は、ものすごいプレッシャーがかかって、かなり、大変だろうなと思う。

 アンケート

一瞬、

LL Weekendに参加するために静岡から東京に引越しして住民票も変更した。

と書こうかと思ったが、「LL Weekendに参加するために」というのが嘘なのでやめた。

 その他

今回、資料はかなり薄いものだった。 これは、否定している訳ではなく、結果的には、その分、紙代とか印刷費用などの経費を抑えることができて、 参加費用が安くなると思うので、私は高く評価している。 (←単なる憶測。薄かった本当の理由は知りません。) あとは、資料を読みたい人が自分でダウンロードできるように、ネット上で公開されれば、それで十分。

T-シャツは抽選で貰えるのかと思っていたら、全員配布することになっていたみたい。

年に1回ぐらいは、こういうところで刺激を受けるのもいいかと改めて思う。

 日本Rubyの会

日本Rubyの会ホームページ

ホームページにあるメーリングリストの参加手続きに従ってMLに参加することにより、会員になれます。 (日本Rubyの会会則第4条より。) 情報源は [ruby-list:39945]。


8月07日()

 LL Weekend

以下、初日のメモ。

 朝

咳さんと遭遇。 XP2004には知り合いが少なかったとか、私も行きたかったとか、 今回、取り上げられている言語は、本当にLLなのかとか、そういう話をちょろっとする。

 Language Update

結構、目まぐるしくて、A Little Longer Lightning Talk みたいな感じがした。 印象に残るのは、話が面白いか、イメージとしてインパクトがあったもの。

 昼の休憩

3階の書籍売場へ。 256本が並んでいた。なぜか、邪道本がずらっと5冊くらい並べられている。 他の本は1冊ずつぐらいなのに。 Windowsが絡んだ本の方がやっぱり売れるということなのか。

 LL を仕事に

信頼性とか、知名度とか、他にその言語のお守りができる人がいるのかとかが、LLで仕事をする上での壁になるというような話。 ネガティブな話が多くて、ちょっと残念。 こんな風にうまくLLを仕事で生かしたという成功談を多く聞きたかった。

私は、これからも、自分が楽に楽しく仕事をするために、Rubyを使っていくと思う。 (というような主旨で会社でRubyを紹介したこともある。) ある意味、個人のための「秘密兵器」 (私は、昔「武器」という言葉を使っていたのだが、それは物騒だと友人に冗談半分に指摘されたので、 それ以来、「引き出し(を持つ)」という表現を使っている。)という感じか。

今、ふと気になったのが、それぞれの言語の知名度の差が、どのくらいあるのかということ。 Rubyの世界の中にいる私には、世間一般での知名度がどのくらいか正確に捉えることができるのかどうか疑問。 私の元いた職場という極小な世間では、私の影響で多少なりとも歪められているため、

Perl > Ruby > PHP > Python > その他

という順番か、ひょっとすると

Ruby > Perl > PHP > Python > その他

あたりになりそうだし。

 午後の休憩

懸田さんと、あまぴょんさんと遭遇。 私が、この日のために引越をしたことは知らなかったらしい。 Groovyのセッションを担当された角谷さんにも初めて挨拶。 (もう一人紹介されたんですけど、ごめんなさい。名前を忘れました。) 角谷さんと同じ会社の方と名刺交換していたことに、今、気づきました。

まつもとさんとも、すれ違い際に挨拶。 あおきさんにも挨拶。 あおきさんに絶句される。 名前を忘れられたかと思って名乗ったら、そういうことではなくて、なんでここにいるんだろうという意味で絶句されたみたい。 LL weekendの懇親会には参加しないのだけど 本編は参加するつもりだったのをLL Weekend も不参加だと勘違いされていたようです。 (まぎらわしい表現でした。すいません。)

 君ならどう書く

どのセッションにもRubyが絡んでいたので、LL Weekendの初日は、Rubyが征覇という感じ(←本当か?)。 ls-lRシェルにも、n-Queensゲームにも登場したのは、Rubyだけだし。

参加できなかった懇親会で、どんな話が出たのか気になる。


8月05日(木)

 『クレオパトラの夢』(恩田陸)

『MAZE』にも登場した神原恵弥が主人公。 小技を連発してこまめに話をひっくり返す謀略小説。 女言葉を使う恵弥に違和感を感じましたが、すぐに慣れてしまいました。

女言葉を使う男が主人公の謀略小説が他にもあったような気がするなあと考えているうちに 何となく頭に浮かんできたのが、ロバート・リテルの『スリーパーにシグナルを送れ』。 ほとんど記憶があやふやなので、本当に同じような設定だったかどうかは、わかりません。


8月03日(火)

 1回休み

ずっと通院していたが、昨日は痛みをほとんど感じなかったので、1回休んで様子を見ましょうということになった。 今日の午後あたりから、ちょっとした拍子に微妙に痛みを感じることがある。 一進一退。

 『Code Reading』(Diomidis Spinellis)

練習問題2-1

gcc 3.4.1 の場合は、訳注にもありますが、-Wuninitializedを使います。

-Wuninitialized -O

-O をつけないと駄目と叱られます。

不精して -Wall でまとめて代用してもいいですが、やっぱり

-Wall -O

と -O をつける必要があります。

g++ の場合も同様です。

javacの場合は、特にオプションをつけなくても、エラーになります(JDKのヴァージョンは、1.4.2です)。

 レジナルド・ヒル

どうして、いつもいつも、どの作品を読んでも、すんなりと頭にストーリーが入ってこないのでしょうか。 あと、P.D.ジェイムズとか、コリン・デクスターとかも、すんなりと入ってきてくれません。


8月01日()

 LL weekend 懇親会

腰の状態を考えて、ぎりぎりまで待ってから申し込もうと思っていたら、いつの間にか締切りを過ぎていた。 どっちにしろ、ときどき、少し痛みを感じることがあるので、参加するのは厳しいかと考えていた。

 Editor と shell

vi(vim)を使う人は、やっぱり set -o vi なんでしょうか。 私は、vi(vim)を使いますが、set -o emacs と設定してます。

 binutils 2.15.1

インストールした。

CFLAGS=-Os CXXFLAGS=-Os ./configure --disable-nls
make
make install

 GCC 3.4.1

インストールした。

CFLAGS=-Os CXXFLAGS=-Os CC=/usr/bin/gcc \
../configure --enable-languages=c++ --with-system-zlib \
--enable-sjlj-exceptions --enable-threads \
--disable-version-specific-runtime-libs --disable-nls \
--without-included-gettext --without-catgets

make CFLAGS=-Os LIBCFLAGS=-Os LIBCXXFLAGS=-Os \
STAGE1_CFLAGS=-Os BOOT_CFLAGS=-Os bootstrap

make install

/sbin/ldconfig # いつもこれを忘れる。

 『スモールボーン氏は不在』(マイケル・ギルバート)

ロンドンの法律事務所の書類金庫の中から顧客スモールボーン氏の遺体が見つかった。 新米弁護士のブーンが事件の謎に挑む。

法律事務所を舞台としていますが、いわゆる法廷ミステリではありません。 さりげない伏線の張り方がうまい本格ミステリ。 さらりと読めるユーモアミステリ。 最初、話の内容にすんなり入れなかったのは、訳がぎこちないように感じたせいかも。


[トップページへ] [7月] [9月] [過去の雑感へ]