〜2004年12月中旬〜
DQ8の裏でFedora Core 3をインストール。 GNOME Terminalを使っていて、C-\が効かなくて困った。 いろいろ試しまくったらなぜかC-4だった。 まあいいか。
Changes:
A new "-s" option was added to step the clock on startup rather than slewing. The stratum, precision, and refid are now set correctly in replies (the latter means ntptrace will now work). The program is more robust and less noisy in the case of some network error conditions. The IP ToS low-delay bit is now set on IPv4 packets. HP-UX and Solaris < 7 are now supported platforms. There were also other minor bugfixes and improvements.
Link: http://www.openntpd.org/
それにしても、なんでもfile systemにするもんだねえ。 Linuxの FUSEに対応したらしい。
About:
cvsfs is an attempt to let a user mount a CVS project like any file system. It allows you to navigate and browse through a project tree. No preparations are required on the CVS server side.
Link: http://cvsfs.sf.net/
何も考えずに旧ホームディレクトリをコピーしたら、VMwareのvirtual diskもコピーされたわけで、そういえばsuspendしたままなんだけど、そのままpower onしたら動くのか? とりあえずVMwareをvmware-config.plでインストール。これはあっさり成功。 vmwareの実行も問題なし。 ただしタブにゲストOSが出てこない。 FileのOpen Virtual Machineで*.vmxをopenするとscreenshotがちゃんと出てきた。 これは期待できる。 power onすると、なんか警告してくるがちゃんと立ち上がった。 すばらしい。
DOSishな環境ではどこにでもインストールできるように、DLLまたは実行ファイルからの相対位置でlibrary pathが決まるようになっている。 だから、make時のminirubyからの相対位置だとubygems.rbは見つからない。 一方その他のplatformではprefixからなので、 環境変数RUBYOPTにrubygemsを設定しても無事に見つかる。
1click installerはRUBYOPTを設定しちゃうからなあ。 makeのときはRUBYOPTをunsetしたいけど、移植性のある方法が思いつかない。 なにしろminirubyが使えないし。 RUBYOPTを見てtopdirにサイズ0のubygems.rbを作るればいいか。 というか面倒だから最初から用意しとくとか。
あ、minirubyを-Tで起動すればいいのか。って、そのほうがもっと面倒だよ。
Fedora Core 3でGNOME 2.8を使ってると ~/.gtkrc-2.0での設定が無視されて困った状態になった。 そういえばどこかで見た記憶があるなあと探したら、 ねぎさんのとこだったようで、 参考にして無事解決。 もうしょうがないから徹底的に カスタマイズ するかーと思っていたところだった。
探してみると mozillaZine にまとまった情報があった。 platformHTMLBindings.xmlでの解決方法もあるので、Windowsでもいけるか。 まあ、そっちは XKeymacsがあるからいいんだけど。
VMwareを立ち上げるとエラーになってしまうことに気づいた。
VMware Workstation is installed, but it has not been (correctly) configured for your running kernel. To (re-)configure it, your system administrator must find and run "vmware-config.pl". For more information, please read the VMware Workstation documentation.
なぜかもう一度configしなおせと言われてしまう。 /var/log/messagesを見てみると
VMware[init]: /dev/vmnet8: No such file or directory
ということらしい。 なるほどFedora Core 3はudevだからconfigしたときに作っても、 rebootしたらなくなっちゃうんだね。 というわけで、ぐぐったらまた ねぎさんとこにヒット。
% cat /etc/udev/links.conf M vmmon c 10 165 M vmnet0 c 119 0 M vmnet1 c 119 1 M vmnet2 c 119 2 M vmnet3 c 119 3 M vmnet4 c 119 4 M vmnet5 c 119 5 M vmnet6 c 119 6 M vmnet7 c 119 7 M vmnet8 c 119 8 M vmnet9 c 119 9
で無事解決。とはならず、なぜか無視されてる様子。 udev自体の仕様が変わったのか?
さらに検索してみるとRedHatのBugzillaで quick fixを発見。
A quick fix is to run the vmware-config.pl to create the appropriate /dev/vm* entries and then copy these to /etc/udev/devices with: # cp -rp /dev/vm* /etc/udev/devices/ vmware finds the devices correctly on subsequent reboots. Not a long term fix but eliminates the need to rerun vmware-config.pl every time the machine is rebooted.
なるほど。
% sudo vmware-config.pl % sudo cp -a /dev/vm* /etc/udev/devices
でreboot。無事解決。
UNIX USER誌を立ち読みしてたら、about:configのmiddlemouse.contentLoadURLについて書いてあった。 これがタブの中クリックの挙動を決めるパラメータらしい。 trueでpaste & go、falseでダブを閉じるという意味。 で、なぜかWindowsではfalse、Linuxではtrueが初期値になっている。 全然違うものを真偽値で設定するというのも無理があるが、まあ、それは置いといて、初期値ぐらいは揃えて欲しい。 両方使う人を混乱させるだけだ。
違いといえば、設定だかオプションだかPreferencesだか忘れたけど、 これの位置もEditの下だったりToolsの下だったりで迷う。 あ、これってWindowsはIEに合わせているのか。
cronでfetchmailのログを残そうと
*/10 * * * * PATH=/usr/local/bin:$PATH fetchmail -a >>$HOME/.fetchmail/$(date +"%Y-%m".log) 2>&1
としてみたら、エラーになってしまった。どうも%が嫌いみたいだ。 man 5 crontabしてみると
コマンド中にパーセント記号 (%) がバックスラッシュ (\) によってエスケープされずに置かれていると、 改行文字に置き換えられ、 最初に現れた % 以降の全てのデータは標準入力としてコマンドに送られる。
ということらしい。
薬草園の洞窟で最後の宝箱を開けると地図が出てきた。力が抜けた。 地図なしはつらかったよ。レベルがいつのまにか2段階アップしてるし。 てゆか入口の近くにあるんだから、すぐに取れよ。
Changes:
This release detects legitimate SMTP AUTH submission, to avoid false positives on Dynablock-style rules. The URIDNSBL plugin has been fixed to honor the uridnsbl_max_domains config option. Various documentation and rule fixes. The ability to deal with 'rewrite_header Subject' markup when no Subject header exists. 'make test' failure on Solaris has been fixed.
最近保存時のカーソルへ飛ぶ設定が機能してないことに気づいた。 FC3にしてからか?情報がちゃんと保存されているかどうか調べてみると、 なぜか~/.viminfのownerがrootになっている。しかも0600だから読めない。 よって飛べない。suかなにかの使い方を間違えたか?
Link: vimrcの設定
やっとカジノでグリンガムのムチを手に入れた。 ハッスルダンスも覚えたし、あとは先に進めるだけだ(だめじゃん)。
Recursive Make Considered Harmfulという話はこの際置いとくとして、Makefileの中でさらにmakeをfor文で呼ぶのはよくある。 だいたい下のような感じが多い。
SUBDIRS = foo bar all: ; for dir in $(SUBDIRS); do \ (cd $$dir; $(MAKE) all); \ done
installやcleanを別に用意するのが面倒なときは
SUBDIRS = foo bar all install clean: ; for dir in $(SUBDIRS); do \ (cd $$dir; $(MAKE) $@); \ done
のようにターゲットに並べてしまい$@を使うのもよく見かける。 まあ、こうしてしまうとmake all installと打っても、 make installと同じ意味になるので注意が必要なんだけど。
さて本題である。この方法で困るのはfooでエラーが起こっても、 続いてbarへcdしてmake実行し続けてしまうことだ。 2つぐらいなら気づくかもしれないが、 SUBDIRS数が増えた場合は途中でエラーが起こっても気づきにくい。 解決するにはfor文自体を抜けられればいいわけで、
(cd $$dir; $(MAKE) all) || exit 1; \
とすればok。でもそれよりは
set -e; for dir in ...
とすればいいことに今日気づいた。 これならどこでエラーが起こってもそこで終了する。
と思ったら、()の中でエラーが起こった場合はだめみたい。 なかなか難しい。かと言って、
cd $$dir; $(MAKE) all; cd ..; \
というのもなあ。最近のmakeなら
$(MAKE) -C $$dir all; \
でいいか。
メタルキングにまじん斬りが決まった。30000ポイント。 トロデ王の姿だと暇になると耳掻きを始めたり手鏡を見たりする。 だいまじんは片足で立ってるのが疲れるのか、たまに足を下ろす。 なんだかんだで100コインスロット2時間で777が4回出てる。かなりの確率だ。 メダル王女の城に銀行があることに気づいた。
About:
Email Security through Procmail (the Procmail Sanitizer) provides methods to sanitize email, removing obvious exploit attempts and disabling the channels through which exploits are delivered. Facilities for detecting and blocking Trojan Horse exploits and worms are also provided.
About:
p7zip is a port of 7za.exe for Unix. 7za.exe is the command line version of 7-zip, is a file archiver with a high compression ratio.
というわけで、p7zip, bzip2(-9), gzip(-9), zip(-9)で比較。 preview4で試そうと思ったが、まだ出てない。
% LANG=C du ruby-1.8.2-preview3.tar* 16396 ruby-1.8.2-preview3.tar 2652 ruby-1.8.2-preview3.tar.7z 2964 ruby-1.8.2-preview3.tar.bz2 3476 ruby-1.8.2-preview3.tar.gz 3476 ruby-1.8.2-preview3.tar.zip
さすがにすごい圧縮率だ。