初心者が予想できなかったこと。
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>
1日中、他人の書いたソースコードを眺めていたら、肩が凝ってきて、気持ち悪くなってきた。 途中で気分転換しないと辛い。
今までだと、ぶたぶたさんは、のほほんとして完全に第三者の立場で登場して、癒し系のキャラという感じでした。 今回は、ぶたぶたさんの心に迫るというか、ぶたのぬいぐるみであるが故の悩みに迫るという微妙にシリアスな 一面を見せてくれてます。
WEB + DB PRESS Vol.22
「特集1. サルでもわかる逆引きデザインパターン」と「特別企画1. はじめてのSeasar2」が気になって。
ぶたぶた日記(矢崎存美)
なかなか見つけられなくて本屋をはしごしてしまった。マイナーなのか。
ルパンとホームズを共演させる表題作はじめ、古今東西の名探偵を共演させて推理合戦をやらせる短篇集。 単にルパンとホームズを共演させるだけでなく、 ワトスンがルパンとホームズが対決した事件を書かなかった理由を明らかにしてみせるなど、芸が細かい。 ルパン、ホームズ、ファイロ・ヴァンス、思考機械、ネロ・ウルフ、エラリー・クイーン、 サム・スペード、チャーリー・チャンなどオリジナルをどれだけ知ってるかで、どれだけ楽しめるかが決まる本。
後半は駆け足でさらっと一通り目を通した。
もうちょっと丁寧に解説してほしい部分もある。これだけで独習するのは厳しいかな。
call/cc
がわかるようになるのは、いつの日か...。
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)))
さほど面白くもないか。
Schemeのプログラムを書くときは、'%'を連打するのがつらいので、 scmファイルの編集のときだけ、()の対応がわかるようにした。 Vim付属のscheme.vimでは、単に
run ftplugin/lisp.vim
となっている。 結局、Lispのプログラムを書くときにも同じことになるので、
set showmatch
と書いた~/vim/ftplugin/lisp.vim
ファイルを用意した。
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)
ある朝、フィリップの机上に置かれていた原稿。 そこには、これからの出来事がまるで過去の出来事であるかのように書かれてあった。 原稿に書かれてある通りの出来事が実際に起こり、フィリップは恐怖に囚われる。
一見、不可能であるかのような状況が、最後には、合理的に解決されるサイコサスペンス。 タイプライターやエレベーターの扉など時代を感じさせる部分はありますが、 ストーリーそのものは、古さを全く感じさせません。 『悪魔に喰われろ青尾蠅』で感じたようなもやもや感はありません。 すっきりしたい方には、こちらの方がオススメ。
『独習 Scheme 三週間』に登場する
defstruct マクロは、
Gaucheには、用意されていないみたい。
自分で、defstructマクロを定義すればいいんだろうけど、
Gaucheだと構造体を定義するんじゃなくてdefine-class
を使ってクラスを定義しろということになるんだろうか?
どうしても構造体が欲しけりゃ、マクロでdefsturct
を自分で用意することになる?
だけど、標準的な定義の方法がないとマイ構造体定義方法が氾濫して嬉しくない状態になりそう。
いっそのこと、Gaucheでは構造体は定義できないと割り切ってしまった方がすっきりするかな。
という訳で、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)
榎津、京極堂をはじめ、お馴染みの面々が活躍する短編集。 京極堂が謎解き(憑き物落し)をする訳ではなく、榎津が主役(?)を務める。 悪を凝らしめるために、罠を仕掛ける榎津たち。巻説百物語のノリに近い。
短篇集。 淡々と自虐的な独白が続く「カザリとヨーコ」。 スプラッタな設定のアホバカミステリ「血液を探せ!」。 ありがちなストーリー展開だが、話を展開させるためのエピソードが巧みな「陽だまりの詩」。 飛行機のハイジャックという事件なのに緊迫感のない奇妙なコメディ「落ちる飛行機の中で」などいろいろな乙一を読めます。
100ページくらい読んだところで、真相は、こうかなあと想像したら、完全にその通りだった。 確かに伏線は丁寧だしミステリとしても出来はいい。 『オーデュボンの祈り』のようなミステリだか何だかわからないまま話が展開し、 最後に伏線のピースが納まるべきところに納まり、「あっ。この話はやっぱりミステリだったのかな。」と思わせるような 作品を期待しているこちらとしては、真っ当なミステリだと物足りなく思ってしまうのです。 あまりに予想がぴったり当ってしまったから余計にそう思うんだろうなあ。
:vi
現在開いているファイルを閉じて別のファイルを開く。
:previous
直前に編集していたファイルに戻る。
:rewind
最初に編集していたファイルに戻る。
:buffers
現在開いているバッファ(ファイル)のリストを表示する。
:buffer
バッファを選択して表示する。
:hide
画面分割時に現在開いているバッファを隠す。
LL Weekendの中で、マイナーさでは一、二を争う言語だと思っていたんだけど、 Javaの世界では、結構、メジャーな存在になりつつあるのか。 それとも、「Javaなんて...」と言わせないための戦略なのか。 「Ruby? ああ。あのGroovyに似た奴ね。」と世間に言わせ、巻き返しを図るための戦略なのか。 標準化されたGroovyがどのくらいRubyに近いものになるのか、それとも、かけ離れたものになるのか、要注目。
:marks
でマークの一覧が表示される。
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のコードを比較するのは、公平とは言えない。
Gauche (gosh) には、残念ながら、今のところ、 行編集やコマンドヒストリの機能がない 。 代わりに、Emacsと組み合わせて使う。 .emacs に
(setq scheme-program-name "gosh")
と追加し、M-x run-scheme を実行する。 これなら、Emacs上で動くので、行編集もできるし、 M-p M-n などコマンドヒストリの機能も使える。
CLISPをインストール。
./configure cd src ./makemake --with-dynamic-ffi > Makefile make config.lisp make make check make install
make check
が通ったのでよしとする。
『独習 Scheme 三週間』では、mzschemeというのを使っている。 goshの場合と微妙に違う。
ファイルのロード。 gosh の場合は、デフォルトでは、カレントディレクトリがload pathに設定されていない。 なので、ファイルをロードするときは、パスを指定して
(load "./file")
とするか、gosh起動時に、
gosh -I.
とする。
gosh -A.
でもよい。
scmファイルの実行。 gosh の場合は、-r オプションが無い。
gosh scmファイル
とすれば、scmファイルを実行できる。
嘘を見抜く名人、掏摸の天才、演説の達人で元ボクシングの選手、正確な体内時計の持ち主の4人が活躍するクライム・コメディ。 ストーリー展開は、ある程度予想が着きます。 どのキャラクターも格好良すぎるのが癪に障ります。 が、そんなことは抜きにして、理屈抜きに楽しんで読めばいい作品です。
'~
'を使うと大文字から小文字へ、小文字から大文字へ変換できる。
マクロの記録の開始は'qx
'(xは[a-z])で記録の終了は'q
'。
マクロを実行するには'@x
'とする。
単一のシンボルまたは、ドット対を利用すれば、可変長引数を実現できる。
;; 単一のシンボル (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) (...)))
放火事件の謎に挑む春と私。 重いテーマの話を魅力的な家族を描写することでさらりと書いてます。 ミステリ色は薄いですが、『オーデュボンの祈り』の話がちらと出てきたり、ニヤリとする場面もあります。 黒澤が主人公の話を読んでみたいです。
少年少女向けミステリーランドのシリーズの中の1冊。 文字のフォントは大きく、漢字にはすべて振り仮名がついてます。 そういう意味では、少年、少女向けなのかも知れません。
舞台は、学校。(中学なのか高校なのかよくわかりません。) 密室の中で、丸焦げの死体となって発見されたベルイマン神父 凡虚学研究会の面々が事件の謎に挑む学園ミステリ。 大掛かりなアホバカミステリすれすれのトリック。 唖然としてしまいました。
しかし、少年少女向けとは言え、どの年代をターゲットにしているのだろう。
大技一本のわかりやすいトリック。 それでいて、かなり巧妙です。 こういうの大好きです。 構造は『安達ヶ原の鬼密室』に似ていますが、出来は、こちらの方がいいです。
2004年度の予算がなく新刊書籍の購入は難しいらしく、購入希望は受け付けられないらしい。 悲しい。 別に購入希望を出してまで読みたい本がある訳じゃないんだけど。
gosh のコマンドラインインタプリタでは、Ctrl+a とか Ctrl+e とか使えないんですか。
処理系が1つもインストール(されてない|してない)ことに気づく。 Windows 2000 on Vmware には、xyzzyがあるんだけど。 (xyzzyは、Emacsライクなエディタですが、マクロは、Emacs Lisp ではなく、Common Lispです。)
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 用のバイナリをダウンロードしてお使いになることをお勧めします。
素直にインストールできませぬ。 試行錯誤の末、以下の方法でインストール。
fptools/libraries/base/Data/List.hs の 212行目
infix 5 \\
を
-- infix 5 \\
に修正。(←問題があったら、とりあえずコメントアウトしてみるという方針は、CだろうとHaskellだろうと変わらない。)
cd src/unix ./confiugre cd .. make make install
Huskell入門のコードが動くことを確認しました。
Gaucheは、以前、Linux にインストールしたことがあります。 インタプリタの起動方法すら忘れていて ga と入力して[Tab]キーを押してみました。 私の琴線に触れるようなコマンドは表示されませんでした。 結局調べてみたら、gosh でございました。 やはり、"ゴーシュ" とお呼びすればよろしいのでしょうか。
以下、Cygwinでのインストール。 configure時のオプションをいろいろ試したが、CygTerm上から使う場合、日本語を扱うにはsjisにするのが良さそう。
./configure --enable-multibyte='sjis' make make install
このようにインストールだけして満足してしまう私なのでございます。
問題 2.9
Vim では '%' キー。
問題 2.15
javac(Java) も、gcc(C) も break が無いことを警告してくれるオプションがわかりません。 gcc には、default が無いのを警告してくれるオプションはありますが、javacでは、それすらわかりません。 Javaには、いくつか文法チェッカがあるみたいなので、それだと警告してくれるかも知れません(未確認)。
ところで、Linuxには、lintが標準でインストールされないのですね (←かなりツッコミしがいのある表現ですが、適切な表現を思いつきませんでした)。 知りませんでした。 それにしても、lint で検索すると HTML-lint が多くひっかかってきますね。
問題 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);
で動きが違ってきます。
問題 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 というオプションがあります。
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 がつかないのか悩んでしまった。
ダルジール警視シリーズ。
銃を乱射し手当たり次第に人を撃つ狂戦士。 かなり過激なシーンで物語は幕を開ける。 話は、その二日前に遡り、駐在巡査失踪事件の調査に乗り出すダルジール、パスコー、ウィールド。 大量の血が見つかるものの、死体は見つからない。 駐在巡査の失踪以外に事件らしい事件も、起こらない。 一体何が起こっているのか。 狂戦士の正体は?
中盤まで、どうしてもストーリーが頭に入ってこず。 中盤以降、少しだけテンポが上がってはくるものの、結局、最後まで何だかわからないまま、読み終わってしまった。 よく考えられている作品だとは思うんだけど、小難しい表現が多くて、テンポよく読み進められなかった。
ラストで、ジェフリー・ディーヴァーのある作品を連想してしまった。
ruby-list で正式アナウンス([ruby-list:39946])。
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にインストールしただけだから、リベンジになってない。 むしろ、返り討ちにされたという感じ。
名前を忘れた方がkdmsnrさんだと判明した。 LL Weekendの公式レポート経由で、 生きてま経由で知る。 本当にすいませんでした。
これもみんな、LL Weekendの公式レポートが、レポート担当者を用意しないで、TrackBackの機能を使って、 みんながレポートするという形式になっていたおかげだよ。 blogのTrackBackが無ければ、私が名前を知ることはできなかったよ。 blogって素晴しいよ(←素晴しいと思うその理由がかなりずれている)。 と思ったんだけど、たださんの日記経由で、 Lightweight Language Weekend - 羊堂本舗ちょきを 知って、こっちからもわかるじゃん。 ということになってしまった。 ここまで書いて、タイトルに 「...のか?」をつけることにした。
こうして、いろんな人のレポート(ツッコミも含めて)を読んでいると、 あの人がXXXさんだったのかと後から判明したりする様子が伝わってきたりして、なんか面白い。 こういうのを一生懸命つなぎ合わせていくと、名前しか知らない人の顔がわかったりするんだろうか。
以下、2日目のメモ
課題は、「Webアプリケーションで予定表を作成する」というもの。
カレンダーを表示する。
前後の月に移動する。
カレンダーの日を指定して予定を入力する。
というもの。
これを4時間で仕上げるのは、結構、厳しそうだと感じる。 私には、とてもできそうにないと思う。 中田さんには、失礼だけど、この手のプログラミングも得意なんだろうかと思ったり、 中田さんだと、コマンドラインインターフェースの予定表を作るのかなあと訳のわからんことを思ったり (OptionParserをはじめ、 コマンドラインインターフェースバリバリの中田さんという私の勝手なイメージからの連想です。)、 これは、tDiaryあたりにはカレンダーの機能もありそうだし、たださんの方が得意な分野じゃないのかと思ったりする。
たださんのプレゼンは、たださん自身のポリシーというか考えが伝わってきて、わかりやすかった。 blogについて全く知識のなかった私には、 blogというものが何なのか、漠然とながらイメージが沸いてきただけでも収穫。
3階に行って、中田さんをひやかす。
「拡張ライブラリで実装してください。Rubyのコードは、1行ですむように。」
などと、無責任で無茶苦茶なことを言う私。
LL on Lightweight Hardware。 Zaurus に適した LL は /bin/sh で、sed や awk の助けを借りるという他力本願な解に爆笑。
「日本 Ruby の会」設立について 本日、めでたく「日本 Ruby の会」が発足しました。 非常にテンポのよい高橋さんお家芸(?)の連続スペースキー押下スクロール超でか字HTMLプレゼンテーションで爆笑。
しまった。 プレゼンのときは、爆笑していて完全に見逃してた(聞き逃した)ので、後で確認しようと思っていたMLへの参加方法を 高橋さんに確認するのを忘れた。
LL侍がLLを斬る!
わずか5分間のために、ギターと衣裳を用意したという点を評価します。 内容も面白かった。
前田さんに挨拶して、CVSのアカウントの件で、お手数をかけたことを謝っておく。 松江は遠いですよねえとか、3000円は安いですよねえとか、そんな話をちょこっとする。
やはり、中田さんは、GUIは、あまり得意ではなかったみたい。 HTMLで苦労されたとのこと。 これまた、予想通りというか期待通りというか、たださんが飛び入りで参加。 tDiaryのPlugin(?)を5行ほど修正するという「反則技」を披露。
プレゼンテーションとして印象に残ったのは、Python。 Zopeを繰り返し強調したりとか、わずか2行でWebサーバーが実装できるとか、 デバッグ機能を実演して見せるなど、アピールの仕方が上手だった。
また、やって欲しいけど、やる方は、ものすごいプレッシャーがかかって、かなり、大変だろうなと思う。
一瞬、
LL Weekendに参加するために静岡から東京に引越しして住民票も変更した。
と書こうかと思ったが、「LL Weekendに参加するために」というのが嘘なのでやめた。
今回、資料はかなり薄いものだった。 これは、否定している訳ではなく、結果的には、その分、紙代とか印刷費用などの経費を抑えることができて、 参加費用が安くなると思うので、私は高く評価している。 (←単なる憶測。薄かった本当の理由は知りません。) あとは、資料を読みたい人が自分でダウンロードできるように、ネット上で公開されれば、それで十分。
T-シャツは抽選で貰えるのかと思っていたら、全員配布することになっていたみたい。
年に1回ぐらいは、こういうところで刺激を受けるのもいいかと改めて思う。
ホームページにあるメーリングリストの参加手続きに従ってMLに参加することにより、会員になれます。 (日本Rubyの会会則第4条より。) 情報源は [ruby-list:39945]。
以下、初日のメモ。
咳さんと遭遇。 XP2004には知り合いが少なかったとか、私も行きたかったとか、 今回、取り上げられている言語は、本当にLLなのかとか、そういう話をちょろっとする。
結構、目まぐるしくて、A Little Longer Lightning Talk みたいな感じがした。 印象に残るのは、話が面白いか、イメージとしてインパクトがあったもの。
Common Lisp。RoombaはLispで動いている。とにもかくにも、ごみ集めが得意。
Groovy。Rubyを意識しているJavaと関係ある言語ということだけは知っていたので、今回、非常に注目していた。 話が非常に面白く、爆笑。
Ruby。Win32OLEとの絡みで、新言語仕様のキーワード引数の実装というのが、やはり気になるところ。
Squeak。車がワープしたり、ボールがワープしたり、動きのあるプレゼンテーションが印象に残る。
3階の書籍売場へ。 256本が並んでいた。なぜか、邪道本がずらっと5冊くらい並べられている。 他の本は1冊ずつぐらいなのに。 Windowsが絡んだ本の方がやっぱり売れるということなのか。
信頼性とか、知名度とか、他にその言語のお守りができる人がいるのかとかが、LLで仕事をする上での壁になるというような話。 ネガティブな話が多くて、ちょっと残念。 こんな風にうまくLLを仕事で生かしたという成功談を多く聞きたかった。
私は、これからも、自分が楽に楽しく仕事をするために、Rubyを使っていくと思う。 (というような主旨で会社でRubyを紹介したこともある。) ある意味、個人のための「秘密兵器」 (私は、昔「武器」という言葉を使っていたのだが、それは物騒だと友人に冗談半分に指摘されたので、 それ以来、「引き出し(を持つ)」という表現を使っている。)という感じか。
今、ふと気になったのが、それぞれの言語の知名度の差が、どのくらいあるのかということ。 Rubyの世界の中にいる私には、世間一般での知名度がどのくらいか正確に捉えることができるのかどうか疑問。 私の元いた職場という極小な世間では、私の影響で多少なりとも歪められているため、
Perl > Ruby > PHP > Python > その他
という順番か、ひょっとすると
Ruby > Perl > PHP > Python > その他
あたりになりそうだし。
懸田さんと、あまぴょんさんと遭遇。 私が、この日のために引越をしたことは知らなかったらしい。 Groovyのセッションを担当された角谷さんにも初めて挨拶。 (もう一人紹介されたんですけど、ごめんなさい。名前を忘れました。) 角谷さんと同じ会社の方と名刺交換していたことに、今、気づきました。
まつもとさんとも、すれ違い際に挨拶。 あおきさんにも挨拶。 あおきさんに絶句される。 名前を忘れられたかと思って名乗ったら、そういうことではなくて、なんでここにいるんだろうという意味で絶句されたみたい。 LL weekendの懇親会には参加しないのだけど 本編は参加するつもりだったのをLL Weekend も不参加だと勘違いされていたようです。 (まぎらわしい表現でした。すいません。)
ls -lR シェル
Haskellは全くわかりません。 デザインパターンを使うという条件に対して無理矢理つじつま合わせをしたようなPerlのプレゼンが面白かった。 わざわざ、そうする必要がないRubyでも、デザインパターンであることをわかり易くするために 敢えて抽象クラスを定義しておくという前田さんの説明が印象に残った。
n-Queensゲーム
Gauche。 時間が短いことを逆手に取って、説明と途中のスライドをすっ飛ばして「時間が(ないみたいなので割愛)」 とだけ書かれたスライドを何枚か挟むというプレゼンテーション手法に爆笑。
Ruby。このとき初めて、午後の最初のセッションで、隣に座っていたのが、かずひこさんだと知り、びっくりする。
Rubyは、決勝まで残る。
どのセッションにもRubyが絡んでいたので、LL Weekendの初日は、Rubyが征覇という感じ(←本当か?)。 ls-lRシェルにも、n-Queensゲームにも登場したのは、Rubyだけだし。
参加できなかった懇親会で、どんな話が出たのか気になる。
『MAZE』にも登場した神原恵弥が主人公。 小技を連発してこまめに話をひっくり返す謀略小説。 女言葉を使う恵弥に違和感を感じましたが、すぐに慣れてしまいました。
女言葉を使う男が主人公の謀略小説が他にもあったような気がするなあと考えているうちに 何となく頭に浮かんできたのが、ロバート・リテルの『スリーパーにシグナルを送れ』。 ほとんど記憶があやふやなので、本当に同じような設定だったかどうかは、わかりません。
ずっと通院していたが、昨日は痛みをほとんど感じなかったので、1回休んで様子を見ましょうということになった。 今日の午後あたりから、ちょっとした拍子に微妙に痛みを感じることがある。 一進一退。
練習問題2-1
gcc 3.4.1 の場合は、訳注にもありますが、-Wuninitializedを使います。
-Wuninitialized -O
-O をつけないと駄目と叱られます。
不精して -Wall でまとめて代用してもいいですが、やっぱり
-Wall -O
と -O をつける必要があります。
g++ の場合も同様です。
javacの場合は、特にオプションをつけなくても、エラーになります(JDKのヴァージョンは、1.4.2です)。
どうして、いつもいつも、どの作品を読んでも、すんなりと頭にストーリーが入ってこないのでしょうか。 あと、P.D.ジェイムズとか、コリン・デクスターとかも、すんなりと入ってきてくれません。
腰の状態を考えて、ぎりぎりまで待ってから申し込もうと思っていたら、いつの間にか締切りを過ぎていた。 どっちにしろ、ときどき、少し痛みを感じることがあるので、参加するのは厳しいかと考えていた。
vi(vim)を使う人は、やっぱり set -o vi なんでしょうか。 私は、vi(vim)を使いますが、set -o emacs と設定してます。
インストールした。
CFLAGS=-Os CXXFLAGS=-Os ./configure --disable-nls make make install
インストールした。
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 # いつもこれを忘れる。
ロンドンの法律事務所の書類金庫の中から顧客スモールボーン氏の遺体が見つかった。 新米弁護士のブーンが事件の謎に挑む。
法律事務所を舞台としていますが、いわゆる法廷ミステリではありません。 さりげない伏線の張り方がうまい本格ミステリ。 さらりと読めるユーモアミステリ。 最初、話の内容にすんなり入れなかったのは、訳がぎこちないように感じたせいかも。