〜2007年6月下旬〜
RestartFirefoxがなくなってしまったので、 QuickRestart を入れた。
This simple extension adds a "Restart Firefox" item to the Tools menu. You can also use the Ctrl+Alt+R (1.0.1) keyboard shortcut, or the new toolbar button (1.1.0).
大宮駅に行ったらすごいことになっていたので、家で待機することにした。
そのままなかなか復旧しないので今日は休むことに。
運転士のミスっぽいね、これは。
20数年前の秋葉原でのケーブル切断事件の時を思い出した。
4巻まで借りてきて読む。アニメは比較的忠実に再現されているようだ。
windows.elがEmacs 22で使えないので、
elscreen
を試す。
だいたいわかった。しかしC-zが押しづらい。どのキーがいいか迷う。
ああ、元々はwindow-configuration-to-register(C-x r w)と
jump-to-register(C-x r j)なんてのがあるんだね。知らなかった。
実行すると自分自身を表示するというスクリプト。
自分自身を読み込んでそれをそのまま表示するというのは今回は反則ということで。
Ruby Quineをいろいろ考えたのでその軌跡をさらす。
$a=%q($><<"$a=%q(#$a);eval$a");eval$a
37B。たぶんどこかで見たPerl Quineからの移植。だから$aのまま。
a=%q($><<"a=%q(#{a});eval a");eval a
のほうが1B短いんだけど、すぐに変形してしまったので。
eval$a=%q($><<"eval$a=%q(#$a)")
31B。ここで$aをaにすると
eval a=%q($><<"eval a=%q(#{a})")
のようになぜか1B増えるという不思議。
このテクニックは覚えておくとたまに役に立つ。
ちなみにPerlだと
% perl -e 'eval$a=""' Can't modify eval "string" in scalar assignment at -e line 1, at EOF Execution of -e aborted due to compilation errors.
とエラーになるので$a=...;eval$aという形式にならざるを得ない。
eval$s="$><<'eval$s=';p$s"
26B。とつぜんpを使う方法を思いつく。なぜか変数名が$sに変わる。
ここはsにしてもサイズは同じ。
s="s=%p;$><<s%%s";$><<s%s
25B。そういえば%pなんてあったよねと思いつく。
今回は$sだと増えるのでsへ。
で、ふたを開けてみるとふらたんとまったく同じだった。
実を言うと
$><<s="$><<s=%p%%s"%s
で21Bじゃんと思ったのだが、優先順位の関係で()が必要となり25Bになる。
それも
kskさんの作品
に出てきていて驚いた。
なんとなくpを使う方法をつきつめるともっと縮むんじゃないかという気がしてる。
つづいてBash Quineの変遷。
まずはどこかにあったのをそのままぱくり75B。
read a<<'EOF';eval $a echo 'read a<<'"'EOF'"';eval $a';echo $a;echo EOF EOF
もういっちょぱくって56B。
q="'" r='echo q=\"$q\" r=${q}$r$q;echo eval \$r' eval $r
それを変形して51B。
q=\' r='echo q=\\$q r=$q$r$q;echo eval \$r' eval $r
さらに変形して48B。
q=\' r='echo q=\\$q r=$q$r$q\;eval \$r';eval $r
マニュアルとにらめっこしてたら素敵な変数を発見して19B。
echo $BASH_COMMAND
Perlの
print<<''x2,"\n" print<<''x2,"\n"
というのを見て、Bashへ移植したらhere docのデリミタがなくてもいいことを発見して18Bに。
sed p<<_ sed p<<_
しかし psってのはすごいな。
/etc/hostsに
127.0.0.1 hostname localhost
というような記述があると、postfixのmain.cfで
inet_interfaces = $myhostname, localhost
があってもどっちも127.0.0.1になってメールを受け取れないという罠にはまった。
アップグレード後に受け取れないことに気づいたので、
やっぱyum upgradeでそんなことやってるってことだよなあ。
なんか最近addしてくるのってspamまがいなものばかり。
あきらかに人じゃないんだよねえ。
なんかたまにエラーになる。
NoMethodError: undefined method `diffs2' for Svn::Core::Property:Module
どうもaddされたときにむりやりdiffを取ろうとしてるような。
家に帰ってから室温が30℃のまま下がらない。さすがにクーラーオン。
最近yum updateすると
Could not retrieve mirrorlist http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-7&arch=i386 error was [Errno 12] Timeout: <urlopen error timed out> Error: Cannot find a valid baseurl for repo: fedora
というのばかりで全然更新ができない。面倒なので
% while ! sudo yum -y update;do sleep 60;done
として放っておくことにした。
ひょっとしてfastestmirror pluginがだめなんかな。
昨日入れたが、今朝になってもインデックス作成が終わらない。
cron.hourlyでの
Update should only be occurred every 24 to 30 (randomly) hours.
という小細工はdailyだとアクセスが集中するか?
最近PDFファイルだけ添付されてくるspamが増えてるけど、
これはどうやってGmailでブロックしたもんかな。
学習させても無駄のような気がするし。