〜2006年11月上旬〜
532通。Gmail側約3500スレッド。
激減。ruby-lang.org側での学習が効いたようだ。
解答編を見ると、初期値がnilだから奇数という問題ができあがったように思える。
では偶数だとどうなるのか?
「標準入力から文字列を読み込んで、偶数行目の文字列だけを出力するコードを書け」
$<.map{|_|$_=!$_&&$><<_}
をちょっと変形すると3H26Bでできるが、もっと小さくなるのか?
-pを使った場合は
$;=!$;&&$_=""
かな?
kと名付けた。
#! /usr/local/bin/ruby puts"#{(g=ARGV.pop).count('A-Za-z0-9')}H#{g.size}B" exec *['ruby']+ARGV+['-e', g]
最初に3H24Bとか表示して実行。
% ruby -e 'puts *1..10' | k -p '$;=!$;&&$_=""' 0H13B 2 4 6 8 10
記号ゴルフならone-linerになるし、この程度で。
ぐぐってみるとすでに挑戦してる人がぞろぞろいるのでその通りに進めてみる。
% sudo yum -y update % sudo package-cleanup --oldkernels --count=1 Setting up yum I will remove the following 2 kernel related packages: kernel-2.6.17-1.2187_FC5 kernel-devel-2.6.17-1.2187_FC5 Is this ok [y/N]: y zsh: segmentation fault sudo package-cleanup --oldkernels --count=1
おいおい。しかたないから
% sudo yum remove \*2.6.17-1.2187_FC5
で消す。しかし1時間半経っても終わらない。寝る。
1時間半待って終わらないものは12時間ぐっすり寝て起きてもやはり終わらないのであった。
Running Transaction Testと表示したまま止まっているので、
カーネル消さずにyum upgradeしても同じところで止まりそうだよなあ。
実をいうと念のためrpm --rebuilddbしてから作業を始めているのでちょっとショック。
でもとりあえず進めてみる。ダウンロードまで行ければキャッシュされるから、
無駄にはならないだろう。
% sudo rpm -Uvh fedora-release-notes-6-3.noarch.rpm fedora-release-6-4.noarch.rpm % sduo yum clean all % sudo yum upgrade <途中略> http://ftp.kddilabs.jp/Linux/packages/fedora/extras/6/i386/libcddb-1.2.2-1.fc6.i386.rpm: [Errno 12] Timeout: <urlopen error timed out> Trying other mirror. Error: failure: libcddb-1.2.2-1.fc6.i386.rpm from extras: [Errno 256] No more mirrors to try.
で終了。なんだ、No more mirrorsて。初めて見る。
やっぱ連休にアップグレード派が多いんだろうか。
前途多難である。
再度チャレンジ。updatedなパッケージが続く。
今度はquiltでエラーか。寝る前にやってけばと思ったが、
こう頻繁にエラーになるとつきっきりじゃないとだめだな。
その後無事にTransaction Checkまで進み、
Error: Missing Dependency: perl(:MODULE_COMPAT_5.8.3) is needed by package jcode.pl Error: Missing Dependency: libttf.so.2 is needed by package VFlib2
と言われて終了。さて消せるだろうか?あっけなく消えた。
今ならカーネルも消えるのか?ちょっとやってみる。\*がいけなかった気もするし。
kernel-2.6.17-1.2187_FC5は消えた。しかしkernel-devel-2.6.17-1.2187_FC5がだめだ。
これが原因か。
またrpm --rebuilddbからやりなおしなので、headerのダウンロードもやりなおしか。 タイムアウトだらけで面倒になったので
% while ! sudo yum upgrade; do echo retry ;done
して放っておく。そのうちプロンプト待ちになるだろう。
Install 47 Package(s) Update 973 Package(s) Remove 1 Package(s) Total download size: 891 M Is this ok [y/N]:
やっと来た。891MBか。結構でかいな。何時間かかるか。
結局7回リトライしたよ。
% grep '^retry' typescript |wc -l 7
今回はもしものためにsudo -sしたターミナルを用意した。 ppracer, bc, xscreensaver-extrasの3つがエラー。 retryへ。
そうか。kernel-develも削除対象になるから結局止まってしまう。
これを解決しないと先へ進めないわけだ。やっかいだな。
rpm -eで削除してみるとあっさり消えた。これでいけるのか?
Install 47 Package(s) Update 973 Package(s) Remove 0 Package(s)
Removeが0になった。いけそうだ。
いやー。長かった。やっとアップグレード完了。
なぜかFC6ではyumの自動更新のサービスがなくなってしまってるようで。
/etc/cron.daily/yum.cron.rpmsaveが残ってるから復活させてもいいんだけど、
なんか意図があるのかな。ちょっと調べよう。
knuさんに教えてもらったtailorを入れてみた。
VersionOne
を見ると最新を得るには
% darcs get --partial http://darcs.arstecnica.it/tailor
ということなので、yumでまずdarcsをインストール。
tailorをdarcsで取ってきたら、setup.pyがあったので、
% sudo python setup.py install
してインストール。
明日ミラーしてみよう。
適当にCVSリポジトリを用意して
% tailor -v -R :ext:host:/some/where/cvs --subdir module -m module module >module.tailor
して設定ファイルを作り、
% tailor -D -v --configfile=module.tailor
でミラーしてみたら
<途中略> assert self.__currentdir is not None, \ AssertionError: Missed 'cvs rlog: Logging XX' line
とエラーになってしまった。
たしかcvs rlogしてもLoggingなるメッセージはないが、どうしろと?
届いた。とりあえず朝晩の電車の中で読む。
いよいよRubyがSubversionへの移行作業に入った。
ディレクトリ毎にtaginfoで指定したコマンドが呼ばれてしまって 困っていたが、 今日$CVS_PIDをファイルへ保存しておくことで1回だけメールを送るようにした。 ついでに自分だけ通知する設定だったが、ruby-cvsへ送るように設定を戻した。
と、ここまで書いてもっと簡単な方法を思いついた。
単にtaginfoの中の正規表現でDEFAULTではなくて^ruby$とすればいいだけだった。
こうすればコマンドの中で判断する必要もなく、そもそもディレクトリ毎に呼ばれなくなる。
こんな単純なことに今まで気づかないなんて。
Gmail Macrosが更新して新しいGmailの仕様に対応。
選択の機能も取り込まれたようだけど、shift-xなのが不満。
mで慣れてしまったしなあ。
今日のyum updateでFirefoxが更新されたので、2になったかと思ったら1.5.0.8だった。 残念。
本家より操作性がいい。
LDR上での1発クリップは始まった当初から使っていたが、
こうなるとLDRじゃないとこでの1発クリップしたくなる。
調べよう。
yumの自動更新はyum-updatesdに置き換わったと思えばいいようだ。
% sudo yum -y install yum-updatesd % sudo chkconfig yum-updatesd on
/etc/yum/yum-updatesd.confを見ると
# automatically install updates do_update = no # automatically download updates do_download = no # automatically download deps of updates do_download_deps = no
とあるので、好きなように変更。とりあえずはこのままで。
% sudo service yum-updatesd start
で動かす。これで更新の通知がパネルに出てくるらしい。
これならcronで1日1回でもいいという気がしないでもない。