Joe Versus the Volcano という、メグ・ライアンとトム・ハンクスが主演なのにいまいち自分の周りでは知名度の低い映画があって、それはきっと日本では劇場公開されなかった上にビデオで公開されたときの邦題が「ジョー 満月の島へ行く」というなんだか販売戦略を勘違いしたっぽい微妙なセンス(でも僕は好き)だったからだと思うんだけど、それはまあどうでもいいや。とにかくこの作品では、トム・ハンクス演じる Joe が、「頭に雲がかかった病」みたいな病名の不治の病だと診断される。間違いなく、自分もその病気のはずだ。で、いつか大金持ちに American Express のゴールドカードを手渡されて、ヴィトンの船ダンスを買って、南の島に行って火山の噴火口にとびこむに違いない。それもまあどうでもいい。問題は、どうして突然この作品を思い出したのかということだ。
2005/01/31
2005/01/30
2005/01/28
日暮里のダージリンというインド料理屋がずっと気になっていたのに、なぜか入る機会がなかったので、今日こそは今日こそはと鼻息もあらくおとずれてみた。 とてもよい雰囲気の店内。巨大なラッシー(すごく爽やかでうまい)。マサラワイン(赤ワインにスパイスとはちみつをいれたもの)。ゆるゆるした間隔で運ばれてくる料理。サモサ、ヨーグルトドレッシングがうれしいサラダ、チキンカレー、チーズとココナツミルクのカレー、そしてロティー。なんで今日まで入らなかったんだろうね。人間って愚かだね。ところでビールのレートを付けなくちゃ。キングフィッシャー:ラガーとかいてあるけどドイツラガーの味ではない。アメリカン? 後味が梨(くだものの)。B+
そして帰りがけにビールをかいこんだ。話題騒然の飛騨高山ビール。なんと500mlくらいの変形ボトルで1000円オーバー。
そして帰りがけにビールをかいこんだ。話題騒然の飛騨高山ビール。なんと500mlくらいの変形ボトルで1000円オーバー。
なんでも自分でやる派にとって、人次第で成否の決定する仕事は本当に辛い。しかし、そのことの真のつらさは、その他の派にとっては麻酔をかけられて骨髄注射を打つようなものだろうというのは勝手かね。
ときに、「本の中身を確認できるのが書店の利点」という主張は、実はまやかしだと信じている。これはCDショップからの類推だ。CDショップでは商品の中身を確認できない ことがほとんどだが、自分を含めて、AmazonではなくタワーレコードなどでCDやDVDを購入する人間 は多いように思う。で、その背景にあるのは、ショップのほうがWeb通販より、選ぶという行為の自由度が高いからだと理解している。そのへんは、たぶんAmazonもよく分かっていて、だからこそできるだけユーザーに選ぶ楽しさを提供できるようなサイト作りを心がけているんだろう(もちろんこれは、amazon.co.jpではなくamazon.comの偉さなわけだが。にしても、たとえば、Amazonで「ジャケ買い」をするやつがいるだろうか?)
書籍という商品の場合も、自分にとっての書店の利は、選ぶという行為の自由度においてある。だから自分は、欲しい本が決まっているときでも、わざわざ書店にいくことが多い。しかも、店員に「○○はどこにありますか」と尋ねることもあまりない(仕事とかなら別)。そして、書店にいったら、ある程度の時間は徘徊する。これはきっと「探す」という贅沢な時間の使い方が好きなんだろうなあ。
で、ここまでなら「オレ好み」を主張しているだけの話なのだが、この構造が例えばドンキホーテの成功の理由と非常に近いといった事実から、世間様の多くも「もしかしたら自分にとってナイスな商品の探索」という時間の潰し方に憧れを持っているという確信に至る。感情的にも 、自分に必要なものさえゲットできればいいという鼻息にはオレの求める女以外はノイズと主張するヤンキーっぽさが臭うので、国民の大部分(少なくとも書籍やマンガやCDに消費する人達)がそんなだとは思いたくない。
もっとも、書籍に話を限定すれば、大型書店のラインナップ均一化(売り手の問題)やノイズのような商品が多い(作り手の問題)といった目をつぶれない事実もあり、商品の供給側が総じて魅力的な探索空間を提供する努力を怠っているのはどうにかしてほしいね。他人事じゃないけど。っていうか、なんなのこの左翼系新聞の一面下部に毎日掲載されているコラムっぽい論利展開を無視した後付けは。いやんなる。
ときに、「本の中身を確認できるのが書店の利点」という主張は、実はまやかしだと信じている。これはCDショップからの類推だ。CDショップでは商品の中身を確認できない ことがほとんどだが、自分を含めて、AmazonではなくタワーレコードなどでCDやDVDを購入する人間 は多いように思う。で、その背景にあるのは、ショップのほうがWeb通販より、選ぶという行為の自由度が高いからだと理解している。そのへんは、たぶんAmazonもよく分かっていて、だからこそできるだけユーザーに選ぶ楽しさを提供できるようなサイト作りを心がけているんだろう(もちろんこれは、amazon.co.jpではなくamazon.comの偉さなわけだが。にしても、たとえば、Amazonで「ジャケ買い」をするやつがいるだろうか?)
書籍という商品の場合も、自分にとっての書店の利は、選ぶという行為の自由度においてある。だから自分は、欲しい本が決まっているときでも、わざわざ書店にいくことが多い。しかも、店員に「○○はどこにありますか」と尋ねることもあまりない(仕事とかなら別)。そして、書店にいったら、ある程度の時間は徘徊する。これはきっと「探す」という贅沢な時間の使い方が好きなんだろうなあ。
で、ここまでなら「オレ好み」を主張しているだけの話なのだが、この構造が例えばドンキホーテの成功の理由と非常に近いといった事実から、世間様の多くも「もしかしたら自分にとってナイスな商品の探索」という時間の潰し方に憧れを持っているという確信に至る。感情的にも 、自分に必要なものさえゲットできればいいという鼻息にはオレの求める女以外はノイズと主張するヤンキーっぽさが臭うので、国民の大部分(少なくとも書籍やマンガやCDに消費する人達)がそんなだとは思いたくない。
もっとも、書籍に話を限定すれば、大型書店のラインナップ均一化(売り手の問題)やノイズのような商品が多い(作り手の問題)といった目をつぶれない事実もあり、商品の供給側が総じて魅力的な探索空間を提供する努力を怠っているのはどうにかしてほしいね。他人事じゃないけど。っていうか、なんなのこの左翼系新聞の一面下部に毎日掲載されているコラムっぽい論利展開を無視した後付けは。いやんなる。
2005/01/27
発売日にゲームソフトを買ってみた。行列ができていたが、通算8作目にもなるようなソフトに比べれば普通の列だろう。「専用」の列は用意されていなかったし。にしても、普段はこんな行列じゃないだろうに、わざわざ今日、その他の商品を購入するつもりだったらあきらめるだろうなあ。と思いながら並んでいたら、直前に並んでいたおじさんが購入したのは知らないエロソフトだった。あれも同じ発売日なのか?
ところで行列に並んでいると、必ず自分の順番になろうかというときに割り込みしようとする奴があらわれる。きっと狙われているに違いない。っていうか、ほんとに自分の目的達成しか眼中にないのね。
ところで行列に並んでいると、必ず自分の順番になろうかというときに割り込みしようとする奴があらわれる。きっと狙われているに違いない。っていうか、ほんとに自分の目的達成しか眼中にないのね。
n番目までの素数を高速に求めるのはデータ構造にかかっているし飽きてきたので、単純な素数判定を。しかも、たまには数学っぽく整数論の結果なんて使っちゃったりして。
実行結果
なんのことはないWilsonの定理。Fermatの小定理から得られるLennmaのひとつで、階乗さえ高速に求まればいいというお手軽さが素人の心をつかんで離さない。実際わかりやすいし。しかし、単純に判定するのと構成的に求めていくのとではロマンが違う。
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
2005/01/25
体調がいいとタバコがうまいらしいけど(っていうか自分はタバコのにおいが耐えられないのでいかなる想像も拒絶するわけですが)、音楽もうまいよ。ところで、昨日の夜は6EM7(Sylvania)を一本物理的に失ったかと思った。Rchの調子がいまいちだったのでちょっぴり調整していたんだけど(たいていどっかのネジが緩んでいるのが原因なので締めなおす作業が中心)、R側パラの1本に腕が引っ掛かり、途端にものすごい勢いでコネクタからはずれて床にダイブしてしまったわけですよ。真空管なんて、意図的にコネクタから引き抜こうと思っても簡単にははずれないのに、力点と作用点がうまく適合するとあんなにコロっとはずれるものなのね。
2005/01/24
2005/01/23
結婚記念日の定番となりつつある、浅草のオマージュ。今日は、素材を前面に出したメニューが中心だったので、ワインはマコンにした。
・アラカルト
ピクルスとテリーヌとオリーブ。こういう細かいものがうまいのが、もう。
・パン
これはいつも同じ、黒オリーブのパンと、ライ麦のパン。いずれもこの店の石釜で焼いている。何より、バターが。バターが。バターが。
・ナスのピューレ+クルトン
ナスの癖のなさとクルトンの甘み、食感がたまらない。これからのコースを期待させる何か。
・鮪のカルパッッチョ+温泉卵+鶏のゼリー
イノシン酸の饗宴。アクセントの塩昆布が見事。
・フォアグラ+フランスレンズ豆のソース+りんごのピューレ+豚の血のソーセージ春巻
ああ、フォアグラってこういうもんだと思うんですよ。まっったくごてごてしていない。生の血の塊を、繊細な胡麻塩の風味で臭みを完全にシャットアウトし、いうなればイクラのような食感で楽しませてくれる。
豚の血のソーセージはフランスの伝統的な料理だけど、それだけだと台湾にいきたくなる。しかし、そこで、庶民がフランス料理を食べるときに必ずといっていいほど感じるフルーツの妙味が炸裂する。
・甘鯛のソテー+ラタトゥイユ+クリームじたてのソース
甘鯛は鱗が付いたままソテーしたもの。鱗の触感と、ラタトゥイユと甘鯛を焼いた際に使った油をベースにしたミルクじたてのソースが超絶。鱗の旨味をあれだけ引出しながら、本体をこれだけみずみずしく焼いてこられた日にゃあ、もう。
・牛ささみ肉のソテー+野菜
ささみ肉というのは、ロースの近くの希少な部位とのこと。その牛はもとより、野菜うますぎ。アスパラの暴れる野菜汁。2種類の蕪の味が区別できるソテー。牛も、誰でも大好きなとろけるような触感ではなく、きちんとした歯ごたえのある食感の「肉」なのがすばらしい。
・アーモンドのババロア+柚のシャーベット、ラベンダーのムース+ショコラのアイスクリーム
いうことないですビバ、ババロア。
これだけ満足できて、2人で2万円に満たない。とにかく下町の底力を疎かにするな、と。そして、口当りの良さがグルメだと思うな、と。
・アラカルト
ピクルスとテリーヌとオリーブ。こういう細かいものがうまいのが、もう。
・パン
これはいつも同じ、黒オリーブのパンと、ライ麦のパン。いずれもこの店の石釜で焼いている。何より、バターが。バターが。バターが。
・ナスのピューレ+クルトン
ナスの癖のなさとクルトンの甘み、食感がたまらない。これからのコースを期待させる何か。
・鮪のカルパッッチョ+温泉卵+鶏のゼリー
イノシン酸の饗宴。アクセントの塩昆布が見事。
・フォアグラ+フランスレンズ豆のソース+りんごのピューレ+豚の血のソーセージ春巻
ああ、フォアグラってこういうもんだと思うんですよ。まっったくごてごてしていない。生の血の塊を、繊細な胡麻塩の風味で臭みを完全にシャットアウトし、いうなればイクラのような食感で楽しませてくれる。
豚の血のソーセージはフランスの伝統的な料理だけど、それだけだと台湾にいきたくなる。しかし、そこで、庶民がフランス料理を食べるときに必ずといっていいほど感じるフルーツの妙味が炸裂する。
・甘鯛のソテー+ラタトゥイユ+クリームじたてのソース
甘鯛は鱗が付いたままソテーしたもの。鱗の触感と、ラタトゥイユと甘鯛を焼いた際に使った油をベースにしたミルクじたてのソースが超絶。鱗の旨味をあれだけ引出しながら、本体をこれだけみずみずしく焼いてこられた日にゃあ、もう。
・牛ささみ肉のソテー+野菜
ささみ肉というのは、ロースの近くの希少な部位とのこと。その牛はもとより、野菜うますぎ。アスパラの暴れる野菜汁。2種類の蕪の味が区別できるソテー。牛も、誰でも大好きなとろけるような触感ではなく、きちんとした歯ごたえのある食感の「肉」なのがすばらしい。
・アーモンドのババロア+柚のシャーベット、ラベンダーのムース+ショコラのアイスクリーム
いうことないですビバ、ババロア。
これだけ満足できて、2人で2万円に満たない。とにかく下町の底力を疎かにするな、と。そして、口当りの良さがグルメだと思うな、と。
2005/01/20
自分はどうしてがんばれないんだろうと嘆いていたら、 hisashim's Journal でおなじみの勝ち組Tさんに「がんばる自分を恥ずかしいと思ってるから」といわれた。hisashim さんの悔しさが痛感できた。
Rubyにおけるクロージャーの例だけど、M氏に指摘されて、より「環境を保持してる」っぽく書き換えた。当初のものでは Proc のインスタンスを生で print していたのを make_power_gen という関数で覆っただけだが、出力を見れば、この関数ジェネレータが「環境を保持している」という点がはっきりする。
実行結果
出力例では、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 をすべて個別に定義するしかない。
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年の今日から明日への遷移について考察したとき、同じ感慨をいだくかってことだ。だがそんなこたあどうでもいいぞ。なぜなら「これじゃあだめだ」と感じても結果は一緒だから。
それにしても、何に対して「これじゃあだめだ」と感じるかは、それほど自明ではない。いい歳をして神経質に自分の「あるべき姿」ばかりを模索すると、それは社会と折り合いを付けられないという意味で病気だった。だが、「だめ」を避けることこそポジティブシンキングシンドローム(PS)という名前で病気扱いしてやりたい。30代のPS患者にとって、きっと明日はいいイチニチだが、彼らがかなりの確率で生存している50年後に軌道エレベーターに乗りながら2005年の今日から明日への遷移について考察したとき、同じ感慨をいだくかってことだ。だがそんなこたあどうでもいいぞ。なぜなら「これじゃあだめだ」と感じても結果は一緒だから。
もうこの複合機ときたらあたまくる。
機械に関してはシンプルでソリッドなほうがトラブルが少ないけれど、単純かつ一本気な人間は相手にするとトラブルそう。センスがよければいいけどね。でもセンスって何さ。たんなる「共感できる」ということ? 古代なら、石斧つくりのセンスとか土器焼きのセンスとか亀の甲羅占いのセンスとかあったに違いないけど、そうしたスキルにセンスのあった人たちは自分と共感できるだろうか。スキルにセンス。石斧つくりにセンスのあるやつは、土器焼きにもセンスを発揮できただろう。でも亀の甲羅占いのセンスは別のような気がする。それは、センスの発揮対象で分類(何を?)するなら、対具象と対抽象に分かれそうだから。この場合、人間は抽象物だと考えてください。まれに両者に対してセンスを発揮できるやつがいて、そういうやつは器用とよばれ、軒並み貧乏になるらしい。
機械に関してはシンプルでソリッドなほうがトラブルが少ないけれど、単純かつ一本気な人間は相手にするとトラブルそう。センスがよければいいけどね。でもセンスって何さ。たんなる「共感できる」ということ? 古代なら、石斧つくりのセンスとか土器焼きのセンスとか亀の甲羅占いのセンスとかあったに違いないけど、そうしたスキルにセンスのあった人たちは自分と共感できるだろうか。スキルにセンス。石斧つくりにセンスのあるやつは、土器焼きにもセンスを発揮できただろう。でも亀の甲羅占いのセンスは別のような気がする。それは、センスの発揮対象で分類(何を?)するなら、対具象と対抽象に分かれそうだから。この場合、人間は抽象物だと考えてください。まれに両者に対してセンスを発揮できるやつがいて、そういうやつは器用とよばれ、軒並み貧乏になるらしい。
Firefox の Copy URL で新しいコマンドを設定するときのメモ。
- アドレスバーにabout:config
- copyurlplus.menus.#.copy (#は、まだ使われていない数字)という名前で設定を追加し、その値として、URLをコピーするときの動作(つまりコマンド)を設定する。設定に利用できる変数としては、以下のようなものがある(一例)。
- %URL%:コマンドを起動したページのURL
- %TITLE%:コマンドを起動したページのTITLE
- %SEL%:コマンドを起動したときの選択範囲
たとえば、以下のような値を設定して好きなコマンドを作る。- %TITLE%:%SEL%: %URL%:
適切にTitleが設定されてないページも多いので、そんな場合はタイトルっぽい文字列を選択してコマンドを実行する。 - <a href="%URL%">%SEL%</a>:
選択範囲を該当ページへのリンク先にするような HTML としてURLをコピーする。ブログロっ子ご用達。
- copyurlplus.menus.#.label という名前で設定を追加し、その値として、コマンドの名前(つまりページ上で右クリックしたときに[Copy URL+]の下のメニューに表示される名前)をつける。
2005/01/18
10代男の子の意識調査を読んだHMねえさんが、16歳~19歳の首都圏に住む男子を評して「夢がなくて努力も嫌い(な年齢層)ってことか」といいました。僕も夢がなくて努力が嫌いですが、まだまだ若い志があるという理解でよろしいでしょうか。
いや、夢はあるぞ。でも教えない。
そういえば今日は夢の話が続く。
いや、夢はあるぞ。でも教えない。
そういえば今日は夢の話が続く。
陽が早くなったね。
今朝の夢では奥様が死んだ。あまり現実の知人が登場する夢は覚えてないのだが、今朝のは何人も特定できる。最初は、チベットかどこかの山中(といっても観光化されている)を奥様と歩いているという設定。次に、フィジー島(こっちは明確にフィジーという設定だった)でKNと一緒に奥様を待っているという設定に転換する。すると、成田発の飛行機が消息を絶ったという連絡が入って、KNが懸命に日本と連絡を取ろうとしてくれるんだけど、いっこうに確かな情報は分からない。しかし、どうやら奥様の搭乗した機体のようだという推測が現実味を帯びてくる。で、そのうち夜があけて、なんと宇佐が車でホテルに乗り付けてきた。はて。「宇佐さん、空はこんなに青いのに、僕は何をしたらいいのかさっぱりわかりませんよ。」
おしまい。それでは会社にいってきます。
今朝の夢では奥様が死んだ。あまり現実の知人が登場する夢は覚えてないのだが、今朝のは何人も特定できる。最初は、チベットかどこかの山中(といっても観光化されている)を奥様と歩いているという設定。次に、フィジー島(こっちは明確にフィジーという設定だった)でKNと一緒に奥様を待っているという設定に転換する。すると、成田発の飛行機が消息を絶ったという連絡が入って、KNが懸命に日本と連絡を取ろうとしてくれるんだけど、いっこうに確かな情報は分からない。しかし、どうやら奥様の搭乗した機体のようだという推測が現実味を帯びてくる。で、そのうち夜があけて、なんと宇佐が車でホテルに乗り付けてきた。はて。「宇佐さん、空はこんなに青いのに、僕は何をしたらいいのかさっぱりわかりませんよ。」
おしまい。それでは会社にいってきます。
2005/01/17
2005/01/16
以前作成した get_combinations.py を見直した。以前のバージョンにはどうしても気持悪い箇所があって、それは「1つだけ要素を持ってくる組み合わせの全体」へどう対応するか、というものなのだが、最初にこいつを書いたときには最後に帳尻をあわせることで解決していた。結果が同じなんだからいいじゃん。正確にいうと、気持が悪かった箇所の問題が「1つだけ要素を持ってくる組み合わせ」に関連した問題だと気が付いたのはついさっきで、だから書き直したわけだけど。
こういうときに思うのは、つくづく自分はコンピュータサイエンスをきちんと学んでいないなあということだ。今回の場合は組み合わせを求めつくすのが目的で、結果を人間が参照するに分には以前作成したバージョンでも対して困らない。が、データ構造は3つの要素の組み合わせを求める時点から無理繰り変えるような方法をとっていて、それが最後の帳尻合わせが必要となる原因となっていた。で、後になってようやく気が付く。なんで気が付くかというと、それを応用しようというときに不都合にぶちあたるからだ。本来、こんな問題はアルゴリズムを思い付いた次の段階できちんと整理すべきことなのだ。そういうことを面倒がらずにやるのがプロってもんだろうが。プロじゃないけど。
こういうときに思うのは、つくづく自分はコンピュータサイエンスをきちんと学んでいないなあということだ。今回の場合は組み合わせを求めつくすのが目的で、結果を人間が参照するに分には以前作成したバージョンでも対して困らない。が、データ構造は3つの要素の組み合わせを求める時点から無理繰り変えるような方法をとっていて、それが最後の帳尻合わせが必要となる原因となっていた。で、後になってようやく気が付く。なんで気が付くかというと、それを応用しようというときに不都合にぶちあたるからだ。本来、こんな問題はアルゴリズムを思い付いた次の段階できちんと整理すべきことなのだ。そういうことを面倒がらずにやるのがプロってもんだろうが。プロじゃないけど。
2005/01/14
2005/01/12
2005/01/09
風呂に入ると人生がかわる気がする。
ところでディスポーザーですよ。新築マンションを訪れる機会があって、個人的には台所がディスポーザーかどうかが気になったんだけど、違うんだって。それにしても意外だったのは、どうやらみんなディスポーザーに否定的らしいということ。GKBRの来襲が日常の恐怖の過半数を占める自分にとって、生ゴミは死活問題のひとつだ。だから、我が家では生ゴミ処理機を導入している。当然ながらナショナル製。んなことはどうでもいいか。もし大型の冷凍庫が置けるなら、凍らせるという方法もある。そういえば、たしか群馬かどっかで生ゴミ冷凍を自治体が推奨して、家庭ゴミ総量の大幅削減に成功したとかいう話もあった。で、ディスポーザーも生ゴミ処理の有力な選択肢だと思うわけですよ。もちろん前提はあって、ディスポーザーに対応した下水道が用意されていること。そうなると新築のマンションとかしか導入できないわけで、逆にいうと新築マンションのウリのひとつだと思ってたわけですよ。ブロウドバンドとか以上に。'
そこで脳裏をよぎるのは、フロンのことだ。いや、ちがう。各人の批評空間の基底のことだ。フロンについてどう考えるかは、科学に対する態度を示す踏み絵みたいなものだ。たとえば、いま、フロンのような科学的な発見に対してどういう態度を示せると想像できるか。自分はきっと、フロンのような発明が再度なされたとき、それに対して肯定的な意見を持つだろう。ここで「フロンのような発明」といっているのは、いま現在の科学的な根拠からは何ら問題を見出せないような発明という意味だ。いまじゃあ「フロン=人類の罪」的な議論になりがちだけど、いうまでもなく、開発当時の科学的見地では問題性はまったく(といっていいと思う)なかった。だって、ミッジリーは飲んだんだぜ。だれが、その極度な安定性が成層圏で問題になると想像できたか。こうもいえる。だれが、地上で安定しているフロンが成層圏で壊れることを問題視し得たか。フロンは、科学技術が問題を解決せず、むしろ増やすだけにしかならないことの教訓にはなる。それでも、みんながルソー的牧歌生活をしてるほうが健全か?
まあ、なんでもいいや。情報が多ければミスは少ない。かもしれない。
ところでディスポーザーですよ。新築マンションを訪れる機会があって、個人的には台所がディスポーザーかどうかが気になったんだけど、違うんだって。それにしても意外だったのは、どうやらみんなディスポーザーに否定的らしいということ。GKBRの来襲が日常の恐怖の過半数を占める自分にとって、生ゴミは死活問題のひとつだ。だから、我が家では生ゴミ処理機を導入している。当然ながらナショナル製。んなことはどうでもいいか。もし大型の冷凍庫が置けるなら、凍らせるという方法もある。そういえば、たしか群馬かどっかで生ゴミ冷凍を自治体が推奨して、家庭ゴミ総量の大幅削減に成功したとかいう話もあった。で、ディスポーザーも生ゴミ処理の有力な選択肢だと思うわけですよ。もちろん前提はあって、ディスポーザーに対応した下水道が用意されていること。そうなると新築のマンションとかしか導入できないわけで、逆にいうと新築マンションのウリのひとつだと思ってたわけですよ。ブロウドバンドとか以上に。'
そこで脳裏をよぎるのは、フロンのことだ。いや、ちがう。各人の批評空間の基底のことだ。フロンについてどう考えるかは、科学に対する態度を示す踏み絵みたいなものだ。たとえば、いま、フロンのような科学的な発見に対してどういう態度を示せると想像できるか。自分はきっと、フロンのような発明が再度なされたとき、それに対して肯定的な意見を持つだろう。ここで「フロンのような発明」といっているのは、いま現在の科学的な根拠からは何ら問題を見出せないような発明という意味だ。いまじゃあ「フロン=人類の罪」的な議論になりがちだけど、いうまでもなく、開発当時の科学的見地では問題性はまったく(といっていいと思う)なかった。だって、ミッジリーは飲んだんだぜ。だれが、その極度な安定性が成層圏で問題になると想像できたか。こうもいえる。だれが、地上で安定しているフロンが成層圏で壊れることを問題視し得たか。フロンは、科学技術が問題を解決せず、むしろ増やすだけにしかならないことの教訓にはなる。それでも、みんながルソー的牧歌生活をしてるほうが健全か?
まあ、なんでもいいや。情報が多ければミスは少ない。かもしれない。
2005/01/08
2005/01/07
むかし設定した viewcvs について急速に思い出す必要があったので、あらためてメモしとこ。まず、viewcvs には debian のパッケージもあるんだけど、subversion に対応していない。 subversion に対応しているのは vewcvs-1.0-dev という開発中のやつで、CVS レポジトリからソースをチェックアウトしてきてビルドする必要がある。つまり面倒。あと、viewcvs.conf も subversion にあわせて変更してね。具体的には、cvs_roots をコメントアウトする。
それと、複数のプロジェクトを登録するために必要な設定として、svn_roots を svn_parent_path に変更し、default_root を適当な名前に変更する必要がある(デフォルトは "cvs" で、ここでは "test" にした)。
あとはてきとうに。
ちなみに viewcvs.conf は、つるしでビルドすると /usr/local/viewcvs-1.0-dev/viewcvs.conf にできる。
なんかとにかく面倒なので、M氏は Trac を試すらしい。この Edgewall Software ってとこの Python Sidebar がなんかすてき。
#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グラム:東南アジア産出」みたいに半ば投げやりに分類された数百の鉱物が転がっているだけのフロア。きっと、リノリウムの匂いあり。そのフロアが大好きだった。最近、リニューアルした科博が話題になってて、もちろん自分も行ってみたいんだけど、むかしの「教育を目的とした施設とは違う何か」という風情を残してもらいたいという本音もある。公共の施設というタテマエ上、サービスの向上と収益性のアップを目指すのは当然なんだけどね。ネズミワールドを指向した博物館なんて味気なくって。日常と違う世界が「ハレ」だけに偏ることの味気なさ。
そのむかし、科博の一番奥にある建物の4階(だったと思う)には、ひたすら鉱物やら岩石やらのサンプルが陳列されていた。薄白い蛍光灯の下に、全面ガラス張りの大きな陳列ケースが何本も整然と並べられいて、その中に「黄鉄鋼:220グラム:東南アジア産出」みたいに半ば投げやりに分類された数百の鉱物が転がっているだけのフロア。きっと、リノリウムの匂いあり。そのフロアが大好きだった。最近、リニューアルした科博が話題になってて、もちろん自分も行ってみたいんだけど、むかしの「教育を目的とした施設とは違う何か」という風情を残してもらいたいという本音もある。公共の施設というタテマエ上、サービスの向上と収益性のアップを目指すのは当然なんだけどね。ネズミワールドを指向した博物館なんて味気なくって。日常と違う世界が「ハレ」だけに偏ることの味気なさ。
2005/01/06
2005/01/05
2005/01/04
2005/01/03
ビールを飲む機会が多い時期になると、あらためて国産 A 社の攻勢にがっかりしてしまう。お願いだから、全国の飲食店では麒麟を用意しておいてください。あと、エビスってありがたがるほどおいしくありませんから。一番搾りを飲んでいるときに「エビスもあるよ」っていわれても、ちっともうれしくないです。エビスでも黒の生ならうまいんだけど。そこで勝手に格付け。もちろん、それほどたくさん飲んだことがあるわけではないので、暫定版。
A+ シメイ・ブルー、サミュエルアダムス、麒麟ブラウマイスター
A バスペールエール、バドバー、シメイ・レッド、多摩ビール
B+ 麒麟一番搾り、エビス黒、まろやか酵母、越後ビール
B 麒麟ラガー、ギネス、青島ビール
B- エビス、モルツ、台湾ビール、コロナ
C 黒ラベル
外 スーパードライ
(2004/1/3)
随時更新予定。
A+ シメイ・ブルー、サミュエルアダムス、麒麟ブラウマイスター
A バスペールエール、バドバー、シメイ・レッド、多摩ビール
B+ 麒麟一番搾り、エビス黒、まろやか酵母、越後ビール
B 麒麟ラガー、ギネス、青島ビール
B- エビス、モルツ、台湾ビール、コロナ
C 黒ラベル
外 スーパードライ
(2004/1/3)
随時更新予定。
2005/01/02
i 番目の素数を、整数のバイナリ表現で i 番目のビットを 1 として表現してみる。例えば 2 の倍数を篩にかけるときは、10101010…1000というバイナリ表現の整数とビットオア演算するという感じ。
これがちっとも早くない。しかも、ほとんどがビット演算なだけに、psycoを使ってもたいして変わらない。
整数を順番に素数のリストで篩にかけるのより遅い。もちろん、psycoなしで比較すると、圧倒的に今日の素数ジェネレータのほうが早い。
#! /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
登録:
投稿 (Atom)