〜2002年12月中旬〜
0.9.7 Beta5とどっちにしようかと一瞬迷ったが、0.9.6hにした。
OpenSSL 0.9.6hでmake testするとbcがないと言われた。 え?本当にないのか?インストールしとこう。
左利きというわけではないんだけど、ここ5年ほど左手でマウスを操っている。 カーソルもボタン配列もそのまま。 ダブルクリックも慣れれば中指でも問題ない。 というかカーソルが左に傾いていることすら気づかなかった。 ふだんはunclutterで消えてるし、ほとんどキー操作でやってしまうしなあ。
OpenOffice.org 643Cのrelease noteを見ると、Export as PDFとある。 これはよさげだ。早速Windows版をダウンロードしてインストールしてみた。 OpenOffice643というディレクトリにインストールされるので1.0.1との共存も可能。 メニュー等は英語になってしまうが、既存の日本語の文書も問題なく表示できる。 でも、フォント名が□に化けてしまうとなんだかわらかないので、 まずはこれだけでもなんとかしよう。
Tools - Options... - OpenOffice.org/Fonts
でApply repacement tableをチェックし、フォントを置換する。 このあたりは1.0.1の日本語版を扱ったことがあれば容易に推測可能。 あとはAndale sans UIという名前のフォントを適当に置き換える。 ただこの時点ではReplace with側のフォント名が□になってしまってわからない。 が、最後の4つは順に
MS ゴシック MS 明朝 MS Pゴシック MS P明朝
なので手探りでも設定できる。 たとえばMS ゴシックを選べば次回からの起動でフォント名は化けなくなる。
お約束の
Tools - Options... - OpenOffice.org/Lanuage Setteins/Languages
でLocale SettingをJapaneseにするだけで後はok。 フォントの置換をしなきゃいけない文書もあまりないようだ。 かなりいけてる。
お目当てのExport as PDFもなかなかいい出来栄えだ。 一部イタリック体が出ないとこがあったりするが、日本語も問題ないし、 *.pptなプレゼン資料もPDFにできる。
いつのまにかNDBM互換インタフェースは-lgdbm_compatへと分割されてるようだ。 ということはRubyもそのあたりを対応しないといけないか。
例の脊髄反射型教えて君に耐え切れなくなり、苦情を言う人も出てきたようだ。
話はちょっと違うが、irbの引数にスクリプトを指定する使い方はあまり知られてないようだ。
% cat foo.rb a = 1 b = 2 c = a + b d = c * 5 % irb foo.rb > foo.log % cat foo.log foo.rb(main):001:0> a = 1 => 1 foo.rb(main):002:0> b = 2 => 2 foo.rb(main):003:0> c = a + b => 3 foo.rb(main):004:0> d = c * 5 => 15 foo.rb(main):005:0>
irbという名前のスクリプトで実行すればプロンプトもirbになるので、 メールに貼り付けるときも気づかれない。
Developer Todoというソフトをmakeしていたら急に一時停止中のxmmsが消えた。 そのうちg++も
g++: Internal error: Killed (program cc1plus)
など言われてしまった。/var/log/syslogを見ると
Dec 14 20:56:23 ruby kernel: Out of Memory: Killed process 6964 (xmms). <...> Dec 14 21:05:39 ruby kernel: Out of Memory: Killed process 13590 (cc1plus).
とkernelに殺されてる。freeしてみると、なんとswapが0だ。
% free total used free shared buffers cached Mem: 127976 121672 6304 0 10028 28320 -/+ buffers/cache: 83324 44652 Swap: 0 0 0
/etc/fstabを確認してみると確かにswapの記述がない。 2週間もswapなしで使ってたのか、おいらは。 というかメモリが128MBでほとんど不自由しない生活を送ってるらしい。 /etc/fstabに
/dev/hdc3 none swap defaults 0 0
を追加して、sudo swapon -aした。
% free total used free shared buffers cached Mem: 127976 118760 9216 0 10204 25196 -/+ buffers/cache: 83360 44616 Swap: 168672 0 168672
これでちゃんとmakeできたが、メモリがなくなると勝手に殺すとは思わなかったよ。
ハイジャンプ魔球には笑った。
単にgdbm_compatをext/dbm/extconf.rbの$dbm_conf_headersに加えればいいかと思ったが、 -lgdbmもリンクする必要があることに気づく。 というわけで、db_checkのcase dbに
when "gdbm_compat" $dbm_conf_have_gdbm = true have_library("gdbm") or return false end
を追加した。のは実は昨日のことだが。
久し振りにRuby 1.7をdjgppでmakeしてみると、 dbm, gdbm, readlineのようなtry_fooする拡張ライブラリが軒並エラーで作られてないことに気づいた。 ext/dbm/mkmf.logを見ると-lruby-staticが見つからないと言ってる。 やばいなあ。まじめに考え直そう。
-L$(topdir)が必要なのはlink_commandの中だけなので、ここの頭で
libpath += ['$(topdir)'] if $extmk and $static
としよう。と思ったが、init_mkmfの
$LIBPATH = ["$(topdir)"]
はまずいな。mkmf.rb単独のときには、これは不要だ。 ということは、両方をまとめる必要がある。 それと$(archlib)も$LIBPATHに加える必要はないはず。
$LIBPATH = []
を
$LIBPATH = $extmk ? ["$(topdir)"] : []
とすればよさそうだ。
$LIBPATH = ["$(topdir)"]
と
$LIBPATH << "$(archdir)"
は削除。
いつの間にか出てたようだ。 Rubyの場合、mkconfig.rbがconfig.statusに依存しているので、 autconfが新しくなるたびにチェックしないとまずいのだ。
なんでこんな話になってるんだっけ? なんか最近典型的な人が多いな。
typoじゃないよなあ、時の時。いつものようにあとがきから読もうかと思ったら、 ねたばらしになるから読むなと書いてある。余白を作ってまで隠してる。 ああ、読みたいなあ。でもRHGも進めたいし。うーむ。 といいつつ少年ジャンプもスピリッツも読んでしまうのだった。だめじゃん。
tDiaryはやっぱRubyのキラーアプリだよね。
Cygwin MLでも話題になってます。
window OpenOffice /soffice\.exe:SALFRAME/ : EmacsEdit
をdefault.mayuに加えてみる。おぉ、ナイス。
本屋に行ってみるとOpenOffice.orgに関する本が4, 5冊もある。 ちょっとびっくりした。 電話帳のように分厚いのもあるが、あれは持って歩けそうもない。
気になってしかたないので、結局読んでしまった。 20数年読み続けているが、ついにここまで来たか。
考えてみたらmingw32でも同じはずで、ext/dbm/mkmf.logを見ると
have_header: checking for cdefs.h... gcc -mno-cygwin -E -IC:/cygwin/home/watanabe/ruby/mingw \ -IC:/cygwin/home/watanabe/ruby/ruby -D__NO_ISOCEXT -Os \ -DDBM_HDR=<ndbm.h> -o conftest.i conftest.c 指定されたファイルが見つかりません。 checked program was: /* begin */ #include <cdefs.h> /* end */
とやはり起きていた。クロスの環境だと気づかないんだよねえ。
今日から思い切りだらけた生活を送ることを決意した。
久し振りにLinux 2.5を試してみてたらyaccが文句言ってることに気づいた。
yacc -d aicasm_gram.y /usr/bin/yacc: !#/bin/sh: No such file or directory mv y.tab.c aicasm_gram.c
Plamo 3.0ではyaccはシェルスクリプトになっているのか。
% cat /usr/bin/yacc !#/bin/sh /usr/bin/bison -y $*
だめじゃん。 引数はちゃんとbisonに渡るので動作に支障はないからいいんだけど。
でも、キー入力を受け付けないのは相変わらずだ。 一度真っ新な状態からconfigしてみるか。
更新。
BZ2を取りに行ったらbdbの新しいのがあったので、ついでに更新。
-mno-cygwinだとCygwinの-lcryptを見つけてしまうので、
ac_cv_lib_crypt_crypt=no
としよう。 単純計算だからCygwinの-lcryptがリンクされても問題ないんだけど。
yaccはyaccじゃないと気分が出ないのでbyacc 1.9.1をインストール。 例によってCygwinでパッケージになってるソースを使った。