〜2007年12月下旬〜
半年の一回ぐらいメンテに来いやと言われた。
考えてみるとあの小さいねじがよく手元に残ったなと思った。
落としてたら絶対見つからない。
extensions.checkCompatibilityをfalseにする。
ただしアドオンで「アドオンの互換性確認が無効になってます。
互換性のないアドオンをインストールしている可能性があります。」という警告が出る。
Firefoxが1日に何度も落ちる原因はいっぱい開いていっぱい閉じるという動作にあるようだ。
これをやめたら落ちなくなった。いっぱいってのは50ぐらい。
ってことはFirefox3なら安定するのかもしれないな。beta版を試してみるかな。
今頃1.0が来るとは思いもしなかった。
休みに入れば進むかと思えばすっかり忘れる始末。
いやー、めでたい。
% goruby -e h Hello, world!
1文字だと何が起動されるか、わからないところがスリル。
% goruby -e a
さて何が呼ばれているのか?
% goruby -e 'p a'
とやっても何も表示されない。
% goruby -e 'puts Kernel.methods.sort' | grep '^a' | head -n1 abort
正解はabort。ここで終了しちゃうから何も表示されない。
golfではgetsをよく使うが、
% goruby -e 'puts Kernel.methods.sort.grep(/^g/).first(3)' gem gets global_variables
とgemのほうが先に来るのでgetまでしか略せない。
ったく誰だよ、rubygemsなんて入れたやつは。
gemがなけりゃgでgetsが呼べたじゃん。
それはそれとしてgetでgetsを呼ぶとmethod_missing経由でsendされるわけで、
つまり$_は更新されないことを意味する。golferは気をつけるように。
最近のSDLの更新でzshを立ち上げるたびに
/etc/profile.d/SDL_pulseaudio_hack.sh:3: no matches found: \ /usr/lib*/alsa-lib/libasound_module_pcm_pulse.so
と表示されるようになった非常にうざい。
bashだとマッチしなくてもエラーにならないしなあ。
それにしても
[ -e /usr/lib*/alsa-lib/libasound_module_pcm_pulse.so ] && export SDL_AUDIODRIVER=esd
これって複数にマッチしたらbashでもエラーになるし、*は本当に要るのか?
非常に楽しい。 Smileys Triangle が驚くほど縮んだ。
つまりこういうこと。
% goruby -ve 'p 5.to_a' ruby 1.9.0 (2007-12-28 revision 0) [i386-linux] [0, 1, 2, 3, 4] % goruby -ve 'p 5.map(&:to_s)' ruby 1.9.0 (2007-12-28 revision 0) [i386-linux] ["0", "1", "2", "3", "4"]
say,quineが追加されたのと定数もmethod_missingで補完されるようになった。
% goruby -ve 'sa K.methods.so.gr(/^a/)[0]' ruby 1.9.0 (2007-12-28 revision 0) [i386-linux] abort
馬場のShakey'sでピザとパスタの毎年恒例の忘年会。
knuさん登場。公開内緒話は少なかったため?結構盛り上がった。
methodを検索するときにhashでcacheして高速化とString#/の追加。
% goruby -ve 'p "a,b,c" / ","' ruby 1.9.0 (2007-12-30 revision 0) [i386-linux] ["a", "b", "c"]
要するにsplit。
現在検討中なのはString#-でsub。"foo" - "o"が"fo"になる感じで。
1日フライングの問題。Bashだと簡単に思いつくのはcalだよね。
while read c;do a= cal 2 $c|grep \ 29>x||a=\ not echo $c is$a a leap year. done
しかしSampleの3番目の例が多すぎてタイムアウト。
まあそれ以前にcal 2 1500とcal 2 1700を実行すると29日が存在してしまうので、
解けてないのであるが。
しかたないので普通に4と100と400を使って解いた。
このあたり を参考にPerl6を作ってみる
% svn co https://svn.perl.org/parrot/trunk parrot % cd parrot % perl Configure.pl % make % make -C languages/perl6 % make pbc_to_exe % ./pbc_to_exe languages/perl6/perl6.pbc % ./languages/perl6/perl6 languages/perl6/t/01-sanity/01-tap.t
てな感じで。すでにpbc_to_cではないらしい。あと01-tap.tはsayしかない。
-eはまだ使えないみたい。
% echo 'say "Hello, world!"' |./languages/perl6/perl6 Hello, world!