2005/01/31

Joe Versus the Volcano という、メグ・ライアンとトム・ハンクスが主演なのにいまいち自分の周りでは知名度の低い映画があって、それはきっと日本では劇場公開されなかった上にビデオで公開されたときの邦題が「ジョー 満月の島へ行く」というなんだか販売戦略を勘違いしたっぽい微妙なセンス(でも僕は好き)だったからだと思うんだけど、それはまあどうでもいいや。とにかくこの作品では、トム・ハンクス演じる Joe が、「頭に雲がかかった病」みたいな病名の不治の病だと診断される。間違いなく、自分もその病気のはずだ。で、いつか大金持ちに American Express のゴールドカードを手渡されて、ヴィトンの船ダンスを買って、南の島に行って火山の噴火口にとびこむに違いない。それもまあどうでもいい。問題は、どうして突然この作品を思い出したのかということだ。

これからC級戦。

2005/01/29

キノコ由来のAHCCを摂取するのは抵抗があるけど、抗アレルギー作用があるときくと心がゆれるこの季節。

2005/01/28

日暮里のダージリンというインド料理屋がずっと気になっていたのに、なぜか入る機会がなかったので、今日こそは今日こそはと鼻息もあらくおとずれてみた。 とてもよい雰囲気の店内。巨大なラッシー(すごく爽やかでうまい)。マサラワイン(赤ワインにスパイスとはちみつをいれたもの)。ゆるゆるした間隔で運ばれてくる料理。サモサ、ヨーグルトドレッシングがうれしいサラダ、チキンカレー、チーズとココナツミルクのカレー、そしてロティー。なんで今日まで入らなかったんだろうね。人間って愚かだね。ところでビールのレートを付けなくちゃ。キングフィッシャー:ラガーとかいてあるけどドイツラガーの味ではない。アメリカン? 後味が梨(くだものの)。B+

そして帰りがけにビールをかいこんだ。話題騒然の飛騨高山ビール。なんと500mlくらいの変形ボトルで1000円オーバー。
なんでも自分でやる派にとって、人次第で成否の決定する仕事は本当に辛い。しかし、そのことの真のつらさは、その他の派にとっては麻酔をかけられて骨髄注射を打つようなものだろうというのは勝手かね。

ときに、「本の中身を確認できるのが書店の利点」という主張は、実はまやかしだと信じている。これはCDショップからの類推だ。CDショップでは商品の中身を確認できない ことがほとんどだが、自分を含めて、AmazonではなくタワーレコードなどでCDやDVDを購入する人間 は多いように思う。で、その背景にあるのは、ショップのほうがWeb通販より、選ぶという行為の自由度が高いからだと理解している。そのへんは、たぶんAmazonもよく分かっていて、だからこそできるだけユーザーに選ぶ楽しさを提供できるようなサイト作りを心がけているんだろう(もちろんこれは、amazon.co.jpではなくamazon.comの偉さなわけだが。にしても、たとえば、Amazonで「ジャケ買い」をするやつがいるだろうか?)
書籍という商品の場合も、自分にとっての書店の利は、選ぶという行為の自由度においてある。だから自分は、欲しい本が決まっているときでも、わざわざ書店にいくことが多い。しかも、店員に「○○はどこにありますか」と尋ねることもあまりない(仕事とかなら別)。そして、書店にいったら、ある程度の時間は徘徊する。これはきっと「探す」という贅沢な時間の使い方が好きなんだろうなあ。
で、ここまでなら「オレ好み」を主張しているだけの話なのだが、この構造が例えばドンキホーテの成功の理由と非常に近いといった事実から、世間様の多くも「もしかしたら自分にとってナイスな商品の探索」という時間の潰し方に憧れを持っているという確信に至る。感情的にも 、自分に必要なものさえゲットできればいいという鼻息にはオレの求める女以外はノイズと主張するヤンキーっぽさが臭うので、国民の大部分(少なくとも書籍やマンガやCDに消費する人達)がそんなだとは思いたくない。
もっとも、書籍に話を限定すれば、大型書店のラインナップ均一化(売り手の問題)やノイズのような商品が多い(作り手の問題)といった目をつぶれない事実もあり、商品の供給側が総じて魅力的な探索空間を提供する努力を怠っているのはどうにかしてほしいね。他人事じゃないけど。っていうか、なんなのこの左翼系新聞の一面下部に毎日掲載されているコラムっぽい論利展開を無視した後付けは。いやんなる。

2005/01/27

発売日にゲームソフトを買ってみた。行列ができていたが、通算8作目にもなるようなソフトに比べれば普通の列だろう。「専用」の列は用意されていなかったし。にしても、普段はこんな行列じゃないだろうに、わざわざ今日、その他の商品を購入するつもりだったらあきらめるだろうなあ。と思いながら並んでいたら、直前に並んでいたおじさんが購入したのは知らないエロソフトだった。あれも同じ発売日なのか?
ところで行列に並んでいると、必ず自分の順番になろうかというときに割り込みしようとする奴があらわれる。きっと狙われているに違いない。っていうか、ほんとに自分の目的達成しか眼中にないのね。

n番目までの素数を高速に求めるのはデータ構造にかかっているし飽きてきたので、単純な素数判定を。しかも、たまには数学っぽく整数論の結果なんて使っちゃったりして。

def is_prime(n):
wilson = reduce(lambda x, y: x*y, range(1, n))
if wilson % n == n-1:
return 1
else:
return 0

print is_prime(1093)

実行結果

1

なんのことはないWilsonの定理。Fermatの小定理から得られるLennmaのひとつで、階乗さえ高速に求まればいいというお手軽さが素人の心をつかんで離さない。実際わかりやすいし。しかし、単純に判定するのと構成的に求めていくのとではロマンが違う。

2005/01/26

よっぱらってとくにうまいのは味噌汁またはハーゲンダッツのパリパリいうやつ。
と思ったら、また雪になったってよ。この間「思う」が5回(include self)。
雪だから自転車できたのに途中で雨になるのは卑怯だと思う。どうでもいいが、怒りという感情は、自分で解決できるかもしれないことに向けるべきものではないと思う。つまり対象になりえるのは、天候とか、災害とか、他人とかであるべきだと思う。

2005/01/25

これで終わったか……
安心した瞬間に事件が起こるのは俗に言うところの何だっけ?
体調がいいとタバコがうまいらしいけど(っていうか自分はタバコのにおいが耐えられないのでいかなる想像も拒絶するわけですが)、音楽もうまいよ。ところで、昨日の夜は6EM7(Sylvania)を一本物理的に失ったかと思った。Rchの調子がいまいちだったのでちょっぴり調整していたんだけど(たいていどっかのネジが緩んでいるのが原因なので締めなおす作業が中心)、R側パラの1本に腕が引っ掛かり、途端にものすごい勢いでコネクタからはずれて床にダイブしてしまったわけですよ。真空管なんて、意図的にコネクタから引き抜こうと思っても簡単にははずれないのに、力点と作用点がうまく適合するとあんなにコロっとはずれるものなのね。

2005/01/24

気が付いたら町屋の麦わ屋がなくなった。今日店の前を通った奥様の第一報を受けてWebを確認したら、これまでも数店しかなかった店舗紹介が湘南モール店だけになってる。撤退するつもりか。レインズ参加なのに東京人をなめてないもっちりしたまっとうなうどんが食べられる希少な店だっただけに、非常な衝撃と落胆は否めない。はやらなかったのかなあ。やっぱり東京では丸香みたいなゆですぎでコシのない自称讃岐うどんがはやるのかなあ。

2005/01/23

結婚記念日の定番となりつつある、浅草のオマージュ。今日は、素材を前面に出したメニューが中心だったので、ワインはマコンにした。

・アラカルト
ピクルスとテリーヌとオリーブ。こういう細かいものがうまいのが、もう。

・パン
これはいつも同じ、黒オリーブのパンと、ライ麦のパン。いずれもこの店の石釜で焼いている。何より、バターが。バターが。バターが。

・ナスのピューレ+クルトン
ナスの癖のなさとクルトンの甘み、食感がたまらない。これからのコースを期待させる何か。

・鮪のカルパッッチョ+温泉卵+鶏のゼリー
イノシン酸の饗宴。アクセントの塩昆布が見事。

・フォアグラ+フランスレンズ豆のソース+りんごのピューレ+豚の血のソーセージ春巻
ああ、フォアグラってこういうもんだと思うんですよ。まっったくごてごてしていない。生の血の塊を、繊細な胡麻塩の風味で臭みを完全にシャットアウトし、いうなればイクラのような食感で楽しませてくれる。
豚の血のソーセージはフランスの伝統的な料理だけど、それだけだと台湾にいきたくなる。しかし、そこで、庶民がフランス料理を食べるときに必ずといっていいほど感じるフルーツの妙味が炸裂する。

・甘鯛のソテー+ラタトゥイユ+クリームじたてのソース
甘鯛は鱗が付いたままソテーしたもの。鱗の触感と、ラタトゥイユと甘鯛を焼いた際に使った油をベースにしたミルクじたてのソースが超絶。鱗の旨味をあれだけ引出しながら、本体をこれだけみずみずしく焼いてこられた日にゃあ、もう。

・牛ささみ肉のソテー+野菜
ささみ肉というのは、ロースの近くの希少な部位とのこと。その牛はもとより、野菜うますぎ。アスパラの暴れる野菜汁。2種類の蕪の味が区別できるソテー。牛も、誰でも大好きなとろけるような触感ではなく、きちんとした歯ごたえのある食感の「肉」なのがすばらしい。

・アーモンドのババロア+柚のシャーベット、ラベンダーのムース+ショコラのアイスクリーム
いうことないですビバ、ババロア。


これだけ満足できて、2人で2万円に満たない。とにかく下町の底力を疎かにするな、と。そして、口当りの良さがグルメだと思うな、と。

2005/01/22

今日は何もしなかった。にもかかわらずこの充足感。

2005/01/21

警察がなくなって犯罪に走るやつは多いだろうけど、警察がいるから犯罪に走るやつも少なからずいて、現に何人か知っている。ようは程度の問題なわけで。

2005/01/20

自分はどうしてがんばれないんだろうと嘆いていたら、 hisashim's Journal でおなじみの勝ち組Tさんに「がんばる自分を恥ずかしいと思ってるから」といわれた。hisashim さんの悔しさが痛感できた。
Rubyにおけるクロージャーの例だけど、M氏に指摘されて、より「環境を保持してる」っぽく書き換えた。当初のものでは Proc のインスタンスを生で print していたのを make_power_gen という関数で覆っただけだが、出力を見れば、この関数ジェネレータが「環境を保持している」という点がはっきりする。

def make_power_gen
prev = 1
Proc.new{
prev = prev * 2
}
end

power_gen_1 = make_power_gen
print "power_gen_1: ", power_gen_1.call, ", ", power_gen_1.call, "\n"

power_gen_2 = make_power_gen
print "power_gen_2: ", power_gen_2.call, ", ", power_gen_2.call, ", ", power_gen_2.call, "\n"

print "power_gen_1: ", power_gen_1.call, ", ", power_gen_1.call, "\n"

実行結果

power_gen_1: 2, 4
power_gen_2: 2, 4, 8
power_gen_1: 8, 16


出力例では、make_power_gen を2回呼び出して関数を2つ(power_gen_1とpower_gen_2)作り出し、それぞれ何回か実行している。ポイントは、power_gen_1 における変数 prev の値が、power_gen_2 の実行によって影響を受けていないこと。つまり、関数ジェネレータ make_power_gen がきちんと機能している。クロージャーでなく、変数 prev が関数内でローカルなスコープを持っていたら、こんなとき power_gen_1, … ,power_gen_n をすべて個別に定義するしかない。
Rubyにおけるクロージャー(closure)についての自分なりの理解。

def power
prev = 1
prev = prev * 2
return prev
end

prev = 1
power_gen = Proc.new{
prev = prev * 2
}

print "power: ", power, ", ", power, "\n"
print "power_gen: ", power_gen.call, ", ", power_gen.call, "\n"

実行結果

power: 2, 2
power_gen: 2, 4

リファレンスマニュアル にこういう例があれば手っ取り早くわかったのに。
階層的な連番を振るだけのrubyスクリプト。つまらないものだけど、なんかこういうループって必要なときにすぐに再現できなかったりする。

#!/usr/local/bin/ruby
# seq.rb
# Keiichirou Shikano

# ruby top2title.rb --chap 1 test.txt > result.txt

require "getopts"
getopts(nil,"chap:1")

$i = $OPT_chap.to_i - 1
$j = $k = 0

def headline(line)
head1_pattern = /^■H1■(.*?)$/e
head2_pattern = /^■H2■(.*?)$/e
head3_pattern = /^■H3■(.*?)$/e
head4_pattern = /^■H4■(.*?)$/e
head5_pattern = /^■H5■(.*?)$/e

if line =~ head1_pattern
$i = $i+1
$j = 0
h1_title = "第#{$i}章 #{$1}"
line.sub! head1_pattern, "#{h1_title}"
elsif line =~ head2_pattern
$j = $j+1
$k = 0
h2_title = "#{$i}.#{$j} #{$1}"
line.sub! head2_pattern, "#{h2_title}"
elsif line =~ head3_pattern
$k = $k+1
h3_title = "#{$i}.#{$j}.#{$k} #{$1}"
line.sub! head3_pattern, "#{h3_title}"
elsif line =~ head4_pattern
line.sub! head4_pattern, "■ #{$1}"
elsif line =~ head5_pattern
line.sub! head5_pattern, "▼ #{$1}"
end
end

# main

ARGF.each {|line|
headline(line)

print line + "\n"
}

2005/01/19

おうちにかえるとねむたくなくなる。
それにしても、何に対して「これじゃあだめだ」と感じるかは、それほど自明ではない。いい歳をして神経質に自分の「あるべき姿」ばかりを模索すると、それは社会と折り合いを付けられないという意味で病気だった。だが、「だめ」を避けることこそポジティブシンキングシンドローム(PS)という名前で病気扱いしてやりたい。30代のPS患者にとって、きっと明日はいいイチニチだが、彼らがかなりの確率で生存している50年後に軌道エレベーターに乗りながら2005年の今日から明日への遷移について考察したとき、同じ感慨をいだくかってことだ。だがそんなこたあどうでもいいぞ。なぜなら「これじゃあだめだ」と感じても結果は一緒だから。
もうこの複合機ときたらあたまくる。
機械に関してはシンプルでソリッドなほうがトラブルが少ないけれど、単純かつ一本気な人間は相手にするとトラブルそう。センスがよければいいけどね。でもセンスって何さ。たんなる「共感できる」ということ? 古代なら、石斧つくりのセンスとか土器焼きのセンスとか亀の甲羅占いのセンスとかあったに違いないけど、そうしたスキルにセンスのあった人たちは自分と共感できるだろうか。スキルにセンス。石斧つくりにセンスのあるやつは、土器焼きにもセンスを発揮できただろう。でも亀の甲羅占いのセンスは別のような気がする。それは、センスの発揮対象で分類(何を?)するなら、対具象と対抽象に分かれそうだから。この場合、人間は抽象物だと考えてください。まれに両者に対してセンスを発揮できるやつがいて、そういうやつは器用とよばれ、軒並み貧乏になるらしい。
Firefox の Copy URL で新しいコマンドを設定するときのメモ。

  1. アドレスバーにabout:config

  2. copyurlplus.menus.#.copy (#は、まだ使われていない数字)という名前で設定を追加し、その値として、URLをコピーするときの動作(つまりコマンド)を設定する。設定に利用できる変数としては、以下のようなものがある(一例)。

    • %URL%:コマンドを起動したページのURL

    • %TITLE%:コマンドを起動したページのTITLE

    • %SEL%:コマンドを起動したときの選択範囲

    たとえば、以下のような値を設定して好きなコマンドを作る。

    • %TITLE%:%SEL%: %URL%:
      適切にTitleが設定されてないページも多いので、そんな場合はタイトルっぽい文字列を選択してコマンドを実行する。

    • <a href="%URL%">%SEL%</a>:
      選択範囲を該当ページへのリンク先にするような HTML としてURLをコピーする。ブログロっ子ご用達。

  3. copyurlplus.menus.#.label という名前で設定を追加し、その値として、コマンドの名前(つまりページ上で右クリックしたときに[Copy URL+]の下のメニューに表示される名前)をつける。

2005/01/18

メガネ券が必要になって、どこで買えるか調べてみたんだけど、一部でひそかに流通しているだけっぽい(推測)。手に入れたところで、全眼連に加盟していないっぽい(推測)ZOFFなどで使えないんじゃ意味ないし。どうするピーやん(という台詞がゴールデンラッキーにあったという記憶を10年間捏造していたらしいことに最近になって気が付いた)。
10代男の子の意識調査を読んだHMねえさんが、16歳~19歳の首都圏に住む男子を評して「夢がなくて努力も嫌い(な年齢層)ってことか」といいました。僕も夢がなくて努力が嫌いですが、まだまだ若い志があるという理解でよろしいでしょうか。
いや、夢はあるぞ。でも教えない。

そういえば今日は夢の話が続く。
陽が早くなったね。
今朝の夢では奥様が死んだ。あまり現実の知人が登場する夢は覚えてないのだが、今朝のは何人も特定できる。最初は、チベットかどこかの山中(といっても観光化されている)を奥様と歩いているという設定。次に、フィジー島(こっちは明確にフィジーという設定だった)でKNと一緒に奥様を待っているという設定に転換する。すると、成田発の飛行機が消息を絶ったという連絡が入って、KNが懸命に日本と連絡を取ろうとしてくれるんだけど、いっこうに確かな情報は分からない。しかし、どうやら奥様の搭乗した機体のようだという推測が現実味を帯びてくる。で、そのうち夜があけて、なんと宇佐が車でホテルに乗り付けてきた。はて。「宇佐さん、空はこんなに青いのに、僕は何をしたらいいのかさっぱりわかりませんよ。」
おしまい。それでは会社にいってきます。

2005/01/17

10年ぶりの中学校時代の友人と素数について議論できるのは人間関係形成に成功したと言えるのだろうかと思ったり思わなかったり。べつに素数について議論したいわけじゃないんだけどね。でも、たとえばゲーデルの話ができたり、V.24の話題ができたり、素数についていえば「nまでの〜」に対して「nの平方根……」が出るのはうれしいと思うんだよ。どうよ。太ってたのは意外だった。焼肉大会しますから。
あたらしい朝がきた。って歌詞のつもりでかくとJASRACに怒られるのか?

2005/01/16

以前作成した get_combinations.py を見直した。以前のバージョンにはどうしても気持悪い箇所があって、それは「1つだけ要素を持ってくる組み合わせの全体」へどう対応するか、というものなのだが、最初にこいつを書いたときには最後に帳尻をあわせることで解決していた。結果が同じなんだからいいじゃん。正確にいうと、気持が悪かった箇所の問題が「1つだけ要素を持ってくる組み合わせ」に関連した問題だと気が付いたのはついさっきで、だから書き直したわけだけど。
こういうときに思うのは、つくづく自分はコンピュータサイエンスをきちんと学んでいないなあということだ。今回の場合は組み合わせを求めつくすのが目的で、結果を人間が参照するに分には以前作成したバージョンでも対して困らない。が、データ構造は3つの要素の組み合わせを求める時点から無理繰り変えるような方法をとっていて、それが最後の帳尻合わせが必要となる原因となっていた。で、後になってようやく気が付く。なんで気が付くかというと、それを応用しようというときに不都合にぶちあたるからだ。本来、こんな問題はアルゴリズムを思い付いた次の段階できちんと整理すべきことなのだ。そういうことを面倒がらずにやるのがプロってもんだろうが。プロじゃないけど。

雨ばっかりの今週末は久しぶりにカレーや飛行機を作ったんだが、物作り特有の充実感に対抗して感じる焦りや虚しさは何なんだろう。答えはわかってるんだけどね。つまり、年齢だ。つまり、こうして日曜の午前中が過ぎていくことだ。で、それを書き留めておくことで償罪になるような錯覚に陥っていることだ。一回休みはあるのにふりだしに戻るがないすごろくはするいと思います。いや、時間を考慮しなければふりだしに戻ることもままある。か。

自分が死ぬ夢はよく見るけど、一昨日はついに生き返った! 目が醒めたときの気持悪さといったら。もう。

2005/01/14

やっぱり一人で仕事しないほうがいい。ありがとうTさん。
粛々と仕事するモード。
エントリの前に付く■をクリックすればコメントできるのに、末尾に「comment」と表示するのがブログロの常識っぽい。つまり、恐れ多くもコメントしてくださる方々の労力を最小化するような設計にするのが常識っぽい。取っ払った。

2005/01/13

人に会ったり、会議に出たり、物を動かしたりすると、仕事をした気になる。
で、何がしたいのか。

2005/01/12

何度でもいうが、風呂に入ると人生がかわる。とくに銭湯。ときに近所の銭湯は背中に立派な絵を描いている人を見かけるけど、彼らをお断りしていない銭湯が好き。
目が覚めて、何か脅迫観念に駆られて出社したら、打ち合わせ10分前だった。

2005/01/11

体調管理のできないやつが進捗管理などできないわけで。

2005/01/10

とにかく面倒がるな。もしくは、面倒がって終わらせるな。
明け方意味もなく目覚めるのは間違いなく何か不安な要素があるからだ。
朝焼けきれい。

2005/01/09

風呂に入ると人生がかわる気がする。

ところでディスポーザーですよ。新築マンションを訪れる機会があって、個人的には台所がディスポーザーかどうかが気になったんだけど、違うんだって。それにしても意外だったのは、どうやらみんなディスポーザーに否定的らしいということ。GKBRの来襲が日常の恐怖の過半数を占める自分にとって、生ゴミは死活問題のひとつだ。だから、我が家では生ゴミ処理機を導入している。当然ながらナショナル製。んなことはどうでもいいか。もし大型の冷凍庫が置けるなら、凍らせるという方法もある。そういえば、たしか群馬かどっかで生ゴミ冷凍を自治体が推奨して、家庭ゴミ総量の大幅削減に成功したとかいう話もあった。で、ディスポーザーも生ゴミ処理の有力な選択肢だと思うわけですよ。もちろん前提はあって、ディスポーザーに対応した下水道が用意されていること。そうなると新築のマンションとかしか導入できないわけで、逆にいうと新築マンションのウリのひとつだと思ってたわけですよ。ブロウドバンドとか以上に。'
そこで脳裏をよぎるのは、フロンのことだ。いや、ちがう。各人の批評空間の基底のことだ。フロンについてどう考えるかは、科学に対する態度を示す踏み絵みたいなものだ。たとえば、いま、フロンのような科学的な発見に対してどういう態度を示せると想像できるか。自分はきっと、フロンのような発明が再度なされたとき、それに対して肯定的な意見を持つだろう。ここで「フロンのような発明」といっているのは、いま現在の科学的な根拠からは何ら問題を見出せないような発明という意味だ。いまじゃあ「フロン=人類の罪」的な議論になりがちだけど、いうまでもなく、開発当時の科学的見地では問題性はまったく(といっていいと思う)なかった。だって、ミッジリーは飲んだんだぜ。だれが、その極度な安定性が成層圏で問題になると想像できたか。こうもいえる。だれが、地上で安定しているフロンが成層圏で壊れることを問題視し得たか。フロンは、科学技術が問題を解決せず、むしろ増やすだけにしかならないことの教訓にはなる。それでも、みんながルソー的牧歌生活をしてるほうが健全か?

まあ、なんでもいいや。情報が多ければミスは少ない。かもしれない。
うわっつらしか意識していないと、まっすぐに撞いたつもりでも、十中八九、ぶれる。加速度も手前側表面付近で最大になる。たとえ中心でも、撞点は先玉のつもりで、撞き込むこと。
金曜の夜からアルコールづけだった。それでも気のあう人達と飲むのはいつだって楽しいものだ。功利的な何かがいっさいなくてもね。とりあえずメモ。

・リバティーエール:A+
サミュエルアダムスといい、自分的なビールの本場はもしかして米国なのかもしれないといっしゅんみまごう今日この頃ですが、本当はかの国は選択肢が多いというだけなんだろう。

・ドレハー:C
イタリアの黒ラベル。

・セバスチャングランク:B+
日本の上質なビールに似た、さっぱりとした嫌味のない味。最近よく町の酒屋店頭でも見かける、陶器のボトルに入ったもの。エールタイプもうまい。
久保会はどこに向かってるんだろう。拡大は常に崩壊へ。

2005/01/08

2005/01/07

Python Sidebar を日本語化してみた。といっても、python.jp のドキュメントの目次をソースにコピーして、個人用のサーバに置いただけ。なので公開はできない。
むかし設定した viewcvs について急速に思い出す必要があったので、あらためてメモしとこ。まず、viewcvs には debian のパッケージもあるんだけど、subversion に対応していない。 subversion に対応しているのは vewcvs-1.0-dev という開発中のやつで、CVS レポジトリからソースをチェックアウトしてきてビルドする必要がある。つまり面倒。あと、viewcvs.conf も subversion にあわせて変更してね。具体的には、cvs_roots をコメントアウトする。

#cvs_roots = cvs: /home/cvsroot

それと、複数のプロジェクトを登録するために必要な設定として、svn_roots を svn_parent_path に変更し、default_root を適当な名前に変更する必要がある(デフォルトは "cvs" で、ここでは "test" にした)。

#svn_roots = svn: /var/svn
svn_parent_path = /var/svn
...

default_root = test

あとはてきとうに。
ちなみに viewcvs.conf は、つるしでビルドすると /usr/local/viewcvs-1.0-dev/viewcvs.conf にできる。

なんかとにかく面倒なので、M氏は Trac を試すらしい。この Edgewall Software ってとこの Python Sidebar がなんかすてき。
今朝、上野の科学博物館の正門前で、なにやら巨大な岩の塊をクレーンで搬入していた。直径が 2m 近くある球形で、一部に正方か六方の結晶格子が見えたから、何らかの鉱物を含む岩石だろう。結晶格子でなく、ただの節理かもしれないけど、博物館にクレーンで運び込んでるのがただの岩石じゃあ妄想も何もできないわけで。庭に展示してたロケットか何かを撤去した跡の大穴を埋めるための岩石、とかだったらつまらなすぎる。
そのむかし、科博の一番奥にある建物の4階(だったと思う)には、ひたすら鉱物やら岩石やらのサンプルが陳列されていた。薄白い蛍光灯の下に、全面ガラス張りの大きな陳列ケースが何本も整然と並べられいて、その中に「黄鉄鋼:220グラム:東南アジア産出」みたいに半ば投げやりに分類された数百の鉱物が転がっているだけのフロア。きっと、リノリウムの匂いあり。そのフロアが大好きだった。最近、リニューアルした科博が話題になってて、もちろん自分も行ってみたいんだけど、むかしの「教育を目的とした施設とは違う何か」という風情を残してもらいたいという本音もある。公共の施設というタテマエ上、サービスの向上と収益性のアップを目指すのは当然なんだけどね。ネズミワールドを指向した博物館なんて味気なくって。日常と違う世界が「ハレ」だけに偏ることの味気なさ。

2005/01/06

商用ではないIMEの辞書で、本則と本則外の仮名遣いが両方とも登録されているのは、意味がわからない。わざわざ「表れる」に加えて「表われる」を登録したのはどこのどいつなんだまったくあたまにくる。と憤慨していたら、先輩M氏に諭された。

2005/01/05

といいつつ、仕事初めにはスーパードライを飲まざるを得ないという罠。とにかく薄い。あの赤い発泡酒はそこそこうまいのになあ。同じ会社の似たような製品なのに、スーパードライのほうは何か別の飲物だ。もしかして、だったら別の飲物だと思っとけという話か。

2005/01/04

キプロスにKEOというワイナリーがあって、そこでKEOというビールを作っている。ラベル裏の文句によると、1987年世界ビールコンテスト金賞らしい。越後ビールの銀色のほうに似た風味。ということで、B+。
tube amp

2005/01/03

ビールを飲む機会が多い時期になると、あらためて国産 A 社の攻勢にがっかりしてしまう。お願いだから、全国の飲食店では麒麟を用意しておいてください。あと、エビスってありがたがるほどおいしくありませんから。一番搾りを飲んでいるときに「エビスもあるよ」っていわれても、ちっともうれしくないです。エビスでも黒の生ならうまいんだけど。そこで勝手に格付け。もちろん、それほどたくさん飲んだことがあるわけではないので、暫定版。

A+ シメイ・ブルー、サミュエルアダムス、麒麟ブラウマイスター
A バスペールエール、バドバー、シメイ・レッド、多摩ビール
B+ 麒麟一番搾り、エビス黒、まろやか酵母、越後ビール
B 麒麟ラガー、ギネス、青島ビール
B- エビス、モルツ、台湾ビール、コロナ
C 黒ラベル
外 スーパードライ

(2004/1/3)
随時更新予定。
北千住のルミネには丸善が入っていて、丸井には紀伊之國屋が入っている。丸善には理工書がまったく(文字どおり、まったく)ない。ところが、数社から出版されているコンピュータ書は置いてあって、正月ということもあり、立ち読みをしている人もそれなりに多い。彼らのうちの何人かは、間違いなく潜在的な消費者で、「置いてある本」を買って行く。そうして何となく購入される本が、出版業界の市場を支えている。これは、コンビニや百円均一と同じ消費者構造だ。あえて目的語を省略して書かせてもらうと、踏ん反り返って再販制度や著作隣接権を盾にするだけでなく、こういう単純な市場原理を理解してもらいたいんですが。

2005/01/02

i 番目の素数を、整数のバイナリ表現で i 番目のビットを 1 として表現してみる。例えば 2 の倍数を篩にかけるときは、10101010…1000というバイナリ表現の整数とビットオア演算するという感じ。

#! /usr/local/bin/python

import psyco
psyco.full()

def zebraBit(span, length):
bitkun = 2L ** (span - 1)
for initan in range(1, length/span):
bitkun = (2L ** (span - 1) << (initan * span)) | bitkun
return bitkun

def binArray2intList(intasbin):
integers = []
count = 0
num = intasbin
while num > 0:
if intasbin & (1L << count):
pass
else:
integers.append(count + 1)
num = num >> 1
count = count + 1
return integers[1:]

bit = 0L
for i in range(2, 100):
bit = zebraBit(i, 10000) - (1L << (i-1)) | bit

m = binArray2intList(bit)
print len(m)
print m[len(m)-1]


これがちっとも早くない。しかも、ほとんどがビット演算なだけに、psycoを使ってもたいして変わらない。

$ time python prime2.py
1229
9973
3.980u 0.020s 0:03.99 100.2% 0+0k 0+0io 374pf+0w

整数を順番に素数のリストで篩にかけるのより遅い。もちろん、psycoなしで比較すると、圧倒的に今日の素数ジェネレータのほうが早い。

$ time python prime.py 1229
1229 th prime is 9973
2.690u 0.010s 0:02.71 99.6% 0+0k 0+0io 344pf+0w

目の前の稲荷からスサノオ神社まで初詣をはしご。さすがにスサノオ神社は人がいっぱい。

2005/01/01

前日の多摩地方の大雪にめげず、今年も光町へと強行した。ようやく、平和な正月の午後にかえってきたところ。今年の概要。時系列順に、執行人数 3 人、雪、みぞれ、Aさんと新宿、椅子忘れ、虫、ドンキ(ピカソ)、覆面パトカーに付いていったら正しい道に復帰、福岡のきぬ氏と長電話、夜中晴れまくり、風なし、灯油、サツマイモ、完璧なたき火、ヨモギ餅、きよ氏へべれけ、光町の女子高校生 × 2(うち一人は裸足) + 1、太陽出ず、雷、にわか雨、にわかあられ、雲、夏、富士山、国道 6 号込みすぎ。