トップ 最新 追記

日々の破片

著作一覧

2006-04-01

_ アイコン

Apacheのエラーログを見たらほとんどすべてがfaviconの空振りというあまりおもしろくない結果になっている。

たかだかアイコンが無いくらいでエラーログが書かれるのもつまらないので作った。

こんなの。

ふにゃふにゃの構造

でも、16×16に変形したらなんだかさっぱりわからないものになってしまった。

追記:ルートに置くだけでは思ったとおりの動作にならなかったので「Landscape favicon.ico を作る」を参考にしてやり直した。

_ ぱるま

ぱるま

こんなにぱるくなっちゃって。ぱるまじろ。

来年ははるまかな?

_ 4月1日

子供のころはわからなくても大人になるとわかることがある。4月1日なんてのがまさにそうだ。

で、さっそく子供が「うそをついてもいいんだよね」とかぬかしていた先日のこと。しめしめ、おとなのうんちく(いんちきと字面と音韻(A行+ん+ち+K行)が似てる。アクセントは違うのが残念だ)をたれるときが来たぜ。

「ちょっと違う」

「どう違うの?」

「たぶん、うそをついて、だまされて困ってしまった人を見てへらへら笑おうと思ってるってわけだろ?」

「だってうそをついていい日だもん」

「そこがちがうんだ。うそをつかれた人のほうがへらへら笑って、うそをついた人のことをばかなことを言ってらぁって思わせる日なんだ」

「?」

「だって、みんなその日はうそをつける日だって知ってるわけジャン。だから当然、それがでたらめだってことは知っている。そもそもそのルールを知らない人をだますのは人間のクズだ」

「でも知らなければだませない」

「だから、だますんじゃない。ばかなことを言ったりやったりして、笑ってもらう日なんだ。だから別名4月バカという」

「うーん」

「ほら、昔から言うじゃん。ばかがみるーって。」

「?」

「それを知らなきゃばかをみるとか。っていうか、人をライする日じゃなくてフールする日なんだが、嘘って訳したやつが悪いんだな。法螺にしときゃよかったのかも。法螺男爵の法螺話は嘘なわけだが聞いた人は楽しめるってことだ」

「ライ?」

「麦と人間」

本日のツッコミ(全2件) [ツッコミを入れる]

_ オイカワ [これを書いてらっしゃる方はいったいどちらにお住まいで どんな方なのでしょう ぶしつけだとは思いましたが、日記を拝見さ..]

_ arton [東京在住のプログラマーです。1980年代に青少年期を過ごしました。 で、オイカワさんはどちらさまですか?]


2006-04-02

_ 子ぎつねヘレン

うーん、子供は楽しんだみたいだが。

ストーリーとしては大したドラマがないものを映画にするために、星になった少年みたくエキセントリックなお母さんを出してきて、母をなくした年ごろの娘と父親を出してきて、ちょっと愚鈍な子供を出してきて、せっかくのごちそうに蜂蜜をぶちまけてしまったようなほとんどテレビドラマ。ほとんどの部分が映画じゃない。

自然はきれいで、きつねはかわいいんだから、淡々とやりゃ良いように思える。どうして物語にこだわるんだろうか? 物語が欲しけりゃ本を読むほうがよっぽど効率が良いんだから、映画で余分なことをする必要がまったく理解できない。

でもまあ途中で子供が写真を撮る意味を見つけて撮りまくるところあたりはもしかしたら映画になったかも知れない。

子供が良くわからない論理でスケートボードの修行をするところもそれほど悪くはない。

しかし花をむしるんじゃなくて花のあるところに連れて行けばよいのに(おそらく映画としては花をふりかけたり集中させて色味をつけたいとかの構図的な理由からなんだろうけど、せっかく季節を無視して(海風にあたって暖かいというような理由があるんだろうか)咲き乱れている花を取り散らかしたりすると見ていて気分が悪くなる。総じて子供が愚鈍過ぎる(成長物語だからスケートボードの修行と写真の意味がわかるところあたりからずいぶんとましな表現に変わるのだが、それにしても、写真の意味がわかったとわざわざ科白を言わせるところがますますもってテレビドラマ。それを映画で映すのが映画じゃないか)のと、子供の感じる孤独とかの表現が70年代のくさった映画みたいなのとが、鼻につく。

いずれにしろ、最終的なメッセージは普遍的にその通りなんだから、淡々ときつねと過ごした日々を描けば良かったんだ。

しかし、本当に物語しか記憶に残らないテレビだったな(とは言え、すぐにドラマに戻すために切られてしまうとは言えロングを使ってそここかしこでちゃんと自然の中で生きているというありようを映そうという意思は感じられるから、画そのものがテレビのトーキングヘッズというわけじゃない。その意味では監督が悪いのではなくてプロデュースが悪いのかも知れない)。

_ マルチプラットフォームWin32OLE(日付は無視)

EntireXがあるんだけどな……

(どのくらい使われているのかは謎)

いつのまにかXがActiveXのXからXMLのXに変わっているけど、ちゃんと

EntireX DCOM

主要なUNIXとOS/390プラットフォームのためのマイクロソフトのDCOM機能を提供します。

というのは残ってる。

_ 通報しますた

多分

っていうかどこからkeisukenさんは仕入れたんだろう?


2006-04-03

_ バカの獲物

濃い。


2006-04-04

_ お釈迦様までもう一歩

しがつよっかった。

_ 動的言語

やりたければ、こんなことだって出来るしな。

class Ordinal
  def monologue
    'hello citizens !'
  end
end
 
class Sleepy
  def method_missing(m, *a)
    return "don't disturb neko"
  end
end
 
class Metamon
  def initialize(org)
    @org = org
  end
  def method_missing(m, *a)
    @org.send(m, *a)
  end
end
 
class Yesman
  def method_missing(m, *a)
    print "what opinion do you have about #{m} ? "
    gets
  end
end
 
def show_yourself(o)
  puts o.monologue
end
 
show_yourself(Ordinal.new()) # hello citizens
show_yourself(Sleepy.new()) # don't disturb neko
show_yourself(Metamon.new(Ordinal.new())) # hello citizens
show_yourself(Metamon.new(Sleepy.new())) # don't disturb neko
show_yourself(Yesman.new()) # ?

Yesmanのインタラクティブ性に興味がある。

調べたいのなら調べられる言語を使えばいいだけではなかろうか? 調べられない前途洋々たる用途にそっちは使えないんだからバランスじゃん。

つまり全然問題とは思えないんだけど。っていうかそういうことができない言語しかないとそのほうが問題。

_ むむむむ

ネタじゃなかったのかなぁ。

たとえば

public void sort(Comparator c, Object o1, Object o2); 

というメソッドシグネチャから、cがComparatorだということはわかる。

だけど、それだけじゃない。多分、o1とo2を比較するのかな? とは想像がつくように思わなくもないけど、実は、((String)o1).length()と((String)o2).length()を比較するのかも知れない。ドキュメント(ソースでも良いけど)読んだら、なんとまずo1とo2の大小関係を別口で比較したのちに、小さいほうを:の左に配置した上でlengthじゃないけどo1/o2が持つメソッドの呼び出し結果を引数にしてcの比較メソッドを呼び出すのかも知れない。

とどのつまり、cの比較メソッドを呼ぶということがわかっても、それだけのことだ。このメソッドはどういうコンテキストで呼び出すのか、その引数はどういう機能を求められるのか、つまりは不変条件、事前条件、事後条件がわからなければ、そんなメソッドは呼んではいけない。

型があってればOKなんて、そんなことはどうでも良いのだ。

#これは、インターフェイス重要なパラメータの話であって(でもそういう例だったよ)、スカラーはまた話が異なるので、もっと複雑な話の一部に過ぎない。

つまるところ、不快感を覚えたのは、そういうIDEがどうした(良くできたIDEは作業効率をあげるから僕はVS.NETは好きだけど。いらいらするくらい遅い時があるからEclipseとかは嫌いだけど)とか言い出すのは、実際にプログラムを作ったことがない、能書きだけの口先野郎の得意技だと相場が決まっているからだ。好き嫌い論議は別として、xx(型あり、なし、コンパイル/インタープリタ、ネイティブ/VM)言語だからOK、とか言い出すやつほど、プログラムを書いた量やシステムを触った経験はゼロの単なるビジネスマンが多い。良き反例はあるかな? ポールがいたか。でもちょっとレイヤーが違うように思うけど。まあ、好き嫌いで話すのはとても楽しいし。でも、それを、好き嫌いのレイヤーでもなければポールのようなレイヤーでもなく、単に「何が呼ばれるかわからないから問題だ」程度の話をIDEのエバンジェリストが言い出すならともかく(それが彼のビジネスだ)、でもbabieさんが問題だとか言ってみるのは、なんのことだかとってもはてなくん。

型チェックの効用としてくだらないミスを防げるから、まあ無いより合っても良いとは思わないでもない。否定の連続。

でも、そんなことはこれっぽっちも本質ではない。むしろ、ほとんどのバグは、「正しく使っていない」=「なんにもコンテキストをわかってない」=「無知」=「無能」に起因してるじゃん。まあ、勘違いは良くあるけどな、はっはっは(と我が身を振り返る)。

#もしも、これが本当に重要で、本当に問題だとしたら、Eclipse使ってJavaで開発したシステムは、それはそれは無問題だろう。でも現実をちょっとでも見れば、それは大して役に立ってないことが良くわかる。むしろ、丁寧な仕事を妨げているとさえ言えるのではないか。おま、API呼ぶ前にまず、ドキュメント見ろ、と言いたくなることもあるね。インテリセンスとかでさっと候補が出て来ちゃうので調べもせずに突っ込んだだけなんじゃないかと小一時間、とか。

はーぷいぷい。

_ 結論

銀の弾丸は未だにない。

でもそれではくだらない。

とりあえず、ドキュメンテーションとテスト。

夢がない?

だったらそれがビジネスチャンスだ。少なくてもIDEじゃないだろう(さくさく動くのなら歓迎だけど)。

_ 動と静

で、普遍的な話はともかく、動的言語対静的言語とやった場合に、それが本当に問題かどうか、というところに戻ると、これはそれがどうでも良い問題だということがすべてで、まったくどうでも良い。

そんなものは動的言語が静的言語に負けてる点でもなんでもない。そりゃ、どうしようもない人が、

def add(a, b)
  a + b
end

に対して

add(nil, false)
と呼べば期待通りに実行時にエラーになるけど、それをもってほら見ろ、これだから動的言語は静的言語と違って問題だ、せめてIDEがあれば救えるのにと言うのってばかげてるな。

というのは、こんなのは思考実験でしかありえないエラーだからだ。だから、実際にプログラムを書かない人のエバンジェリズムと思えるのだ。「自動車は徒歩にくらべて問題がある」「たとえば?」「ガス欠したら困るでしょ」「うむ、それは1番の問題だ」そりゃ、ゼロとは言わないけど、それは問題じゃないだろ。でもわかりやすいし、実際に車を運転したことがない人間同士には「なるほど、確かに問題ですなぁ。やっぱり徒歩にしておきますか」とウケるかも。そういう話題に過ぎないよ。

逆を考えてみると、VS.NETの支援機能のおかげでうろ覚えの綴りミスがすくわれるとか、死ぬほど長いメソッド名を全部打たなくても済んで楽(でも↓を同じ量だけ叩いていたり)というのはあるかも知れないけど、型エラーが見つかってよかったね、なんてのは無い。経験ありますか?

エディット−実行のターンアラウンドタイムの速さというのもあるよ。テストをちゃんとすれば。ビルド過程をすっとばせるから、コンパイル時の型エラー発見でなくて実行時の型エラー発見でも、別に効率が落ちるとも言えない。(追記:エラーメッセージが当を得てなくて途方に暮れることは時々あるけど、それはメッセージの質とかどうエラーを検出するかの問題であって、やはり型チェックが事前云々とは違う。型に関してそういうメッセージがあったかどうかはちょっと微妙。"忘れとかかな)

本当の問題は、それが遅かったからでもない。もしそうなら、VB2〜4が席巻した過去はありえない。でもVC++よりも一般的に利用されていた。それはIDEのおかげだろうか? うむ、少しはあるかも。では、なぜDelphiよりもVBだったのか? いや、わたしはDelphiでしたという人もいるだろうけどシェアが違うよ。ここで問題って言ってるのはそういう話に過ぎないんじゃないか?

本当の答えってのは、つまり問題ってのは、そこにあるんだと思う。遅いからでも、型チェックが事前にされないからでも、ない。それに静的言語との比較ってのが、必ずのようにJavaやC++になるってのが、そういった問題に過ぎないってのを如実に語っているように見える。

_ 変な名前つけるな

そりゃそうだ。そこで、IDEに求められる機能は、入力したトークンがその言語の予約語じゃない場合には、辞書に存在するかどうかをチェックする機能だとういことになる。ではどうか?

もちろん、予約語チェックの必要もあるから、どの言語かの選択は最初に行われる。で、C#で書いているときに、public void fooとか書くと、ドガーンと音がして画面がぴかぴかぴかぴかフラッシュして、赤いでっかな波線がついて、Fooと直すまで先に進まないというか、かってに直しても良いような。

同じくJavaで、public void Fooと書くと、ドガーンピカピカピカピカゴロゴロチューン! でpublic void fooに直る。でも、fooは辞書にないからやっぱり先に進めない。

enum Color { を見た瞬間、BRUEでドガーンピカゴロピカゴロ。GLEENでドガーン。

そういうIDEを与えたいものだ。

ちなみに辞書は、デフォルトで3種類あって、単語が100個しか収録されていない大手SI屋が下請けに渡すやつ(※)と、100000個登録されている自社開発用と、0個(でなんでも入れ放題)の2.0屋さん用に分かれていて、なぜか別売りで買うと0個のやつが1番高価で、その理由はむにゃむにゃ(※※)。その他、専門用語アドオン辞書とかもあるでよ。

※いまいちつまらないから、こうしよう。最初は1000語登録されている。で、下請けが受領する。下請けが孫受けに渡すときには単語は100語に減っている。そして、孫受けがひ孫受けに渡すときには単語は10語に減っている。これでは、どうがんばってもまともなプログラムができるわけがない。しかし、それが(後は想像の世界に任せる)。

※※やっと理由が氷解した。動作がすごく速いから価格が高いってことだ。思考の流れをさまたげない鬼速辞書。思ったとおりにプログラミングできるぜだんな。


2006-04-05

_ svn:ignore

Subversionを遅ればせながらも導入してみた。でも属性がどこに保存されてんだとかいろいろ疑問が。

おいおいわかってくるだろう。

_ キーボード

Lenovo ThinkPlus USBトラベルキーボード ウルトラナビ付 [31P9514](-)

そうか、こういう選択肢もあったのか。

_ svn:ignore続き

むらまささんに言われてあらためて見たら、.svn/dir-propsに入っているのを確認できました。どうもありがとうございます。(.svn/propsディレクトリの中を見て無いなと判断していたらしい)

Win32のcmd.exeで設定するときに

svn propset svn:ignore *.* ディレクトリ名

とやったらカレントディレクトリ以下がすべて設定されてびっくりとか。

正しく(かどうかはわからないけどうまくやるには)は

svn propset svn:ignore "*.*" ディレクトリ名

でした。というか、クォートが必要なのは当たり前か。

本日のツッコミ(全6件) [ツッコミを入れる]

Before...

_ arton [へぼいの? (X31なんかと同じ作りなのかと思った) というのはともかく、もうREALFORCEを買っちゃったから後..]

_ y-Aki [Win32で使うなら、TortoiseSVNがよいかも。 http://tortoisesvn.tigris.org..]

_ arton [ご教示ありがとうございます。試してみます。]


2006-04-06

_ 狭い世界

どんなに深くても了見が狭いってつまらないね。

と、いろいろリンクをたどってつくづく思った。

了見が狭いから文句が多くもなるのかな。

狭いとこから見上げてみれば、目もくらむというものだ。

くらんでみれば、見上げたはずが見下げたつもりになっている。

そんな感じかな。

追記:あらぬ誤解を受けるのが嫌なので追記。この日記のReferから1ホップの範囲には無いはず(スラドでもない)……と思ったら元圏外があった。あ、でもRuby Hotlinkから1ホップでアンカテだからやっぱり圏外だ(とシャレにしてみたり)。と書いてから良く考えたらさらに2ホップあったので違った。

_ アフィリエイト

ふと思いついて、まじめにやってみはじめたが、途中であきちゃった。


2006-04-07

_ 月日は流れる

近所の本屋で見かけないのでアマゾンさんでゴー。

ふたつのスピカ 10 (MFコミックス フラッパーシリーズ)(柳沼 行)

_ 預言者再び

軍鶏(23) (イブニングKC)(たなか 亜希夫)

さて、難しいぞ。

何しろ黒道着衆のことは誰も知らんわけだし。人生の舞台裏をかいまみることもなければ単なる殺戮マシーンとして扱うことも可能だ。

だから、何も考えずに支持を取れる舞踏家集団の圧勝ってのだってありのはずだ。

でも、それじゃ盛り上がりに欠けるだろう。

1)無難な方法

外人部隊全滅。これがガチ。

先鋒のサンシロウがいきなり血祭り。辛うじて神技が勝つ。しかしサンボ壊滅。吉岡辛勝。さあ天使と悪魔どっちが勝つか。

2)より悲劇を

サンシロウ勝つ。幸先いいね。が、神技立ったまま絶命。続くサンボ辛勝。しかしなんたること、天も慟哭せよ、吉岡首の骨折って死す。さあ、天使と悪魔どっちが勝つか。

3)暗黒舞踏

サンシロウ、はじまってすぐに絶命。神技絶命。サンボ絶命。吉岡絶命。さあ天使と悪魔どっちが勝つか。

4)大技

移動中のバスが黒道着衆に襲われて大破。辛うじて動けるのはトーマただ一人。黒道着衆はそのまま闇に消え去る。さあ天使と悪魔勝つのはどっちだ。

5)いやなやつが生き残る

サンシロウ甘くみた黒道着衆突破。神技で圧倒。後がない黒道着衆ありえない技でサンボ破壊。続けて吉岡吹き矢を延髄に受けて廃人化。さあ天使と悪魔勝つのはどっちだ。(上杉は好きなのでいやなやつってことはないが)

まあ、どう考えてもサンシロウとサンボは負け候補だな。あと上杉神技は立ち位置が悲劇側なので命が危ない。吉岡は扱いが難しいので試合時点での雰囲気で生死を決めるとか。とすると意外と2か。でもまあ常識的なドラマツルギーで1となるんだろうけど。

_ なんか義務感を覚えるな

artonの51%は信念で出来ています

artonの32%は玉露で出来ています

artonの9%はマイナスイオンで出来ています

artonの4%は濃硫酸で出来ています

artonの4%は言葉で出来ています

ふむ。言葉の含有率が思ったよりも少ない。

rjbの96%は毒電波で出来ています

rjbの2%は祝福で出来ています

rjbの2%はマイナスイオンで出来ています

そうだったのか。でも祝福されているらしい。

ActiveScriptRubyの70%は覚悟で出来ています

ActiveScriptRubyの19%は時間で出来ています

ActiveScriptRubyの5%はミスリルで出来ています

ActiveScriptRubyの4%は成功の鍵で出来ています

ActiveScriptRubyの2%は言葉で出来ています

覚悟と時間か。ミスリルってなんだ?

ミスリルの51%はハッタリで出来ています

ミスリルの40%はミスリルで出来ています

ミスリルの4%は言葉で出来ています

ミスリルの4%は心の壁で出来ています

ミスリルの1%は理論で出来ています

40%のトートロジー。

Bill Gatesの91%は不思議で出来ています

Bill Gatesの7%は媚びで出来ています

Bill Gatesの2%はミスリルで出来ています

不思議っていいな。

闇仙人の61%は小麦粉で出来ています

闇仙人の27%は果物で出来ています

闇仙人の9%は成功の鍵で出来ています

闇仙人の3%は理論で出来ています

さすがパンだけのことはある。多分果物からとった酵母を使ってるのかも知れない。

_ ITProのコメント欄

すげーまとも

記事によるのか。


2006-04-08

_ exerb

Jewel-mmo(memoだと思ってた)とかに始まって%zt!経由でsadakomaさんのところまでたどりついたり。というか、ZnZさんの日記は読んでるはずだけどスルーしてたようだ。で、その後、exerbの作り方をいろいろ調べているうちにmputさんのところにも突き当たったり。

というわけでcvsヘッドでやってみた(ASR 1.8.4.2)。

お試し版なので、どなたか試してみてください(OK/NGをツッコンで欲しい)。

    やったこと
  • exerb.batにexerbを組み込み
  • mkexy.batにmkexyを組み込み
  • src/exerb-win32/exerb-win32.rbにパッチ適用(182=>1.8.2をすべて184=>1.8.4に変更し、190を削除)
  • lib/exerb/config.rbの182を184に変更。190を削除
  • src/libexerbをビルド
  • src/ruby18c,src/ruby18crt,src/ruby18g,src/ruby18grtの出力ファイル名の182を184に変更してビルド
  • ASRと同じくVC++6でビルド(つまりMSVCRT.DLLとリンク)してあるので、One-Click Installerコンパチ
  • exerbとは関係ないけどvrswin060205,vruby060223へ更新

1.8.4なのに182という名前なのは釈然としないので変えました。また190も削除しています。

C:\Home\arton\test>set PATH="c:\program files\ruby-1.8\bin";%PATH%
 (ruby console使うのでももちろん可)
C:\Home\arton\test>type test.rb
puts "#{RUBY_VERSION}"
 
C:\Home\arton\test>type test.exy
general:
  startup: test.rb
  core: cui
 
file:
  test.rb:
 
C:\Home\arton\test>exerb test.exy
 
C:\Home\arton\test>test
1.8.4
 
C:\Home\arton\test>dir test.exe
 ……
2006/04/08  04:20              516,096 test.exe
               1 個のファイル             516,096 バイト

なおプログラムグループはVisual Installerのバグじゃないかと思うけど、スタート−プログラムに入らずにProgram Filesに入ってしまうため、相変わらずスタートの直下にあります。

_ ASR1.8.4.2

ActiveScriptRuby 1.8.4.2をリリースしました。

1.8.4.1からの変更点は上記を参照。また同じ1.8.4.2でも本日15:05以降の版では雪見酒さんが見つけてくださったmkexy.rbの抜けを修正しています(配布用GUIDは変更してあります)。

本日のツッコミ(全13件) [ツッコミを入れる]

Before...

_ Craf [今更なのですがプログラムグループの件、こんなのありました。 http://support.microsoft.com..]

_ arton [どうもありがとうございます。KBに出てたんですね。 早速、新しいパッケージを作って確認しました。 http://ar..]

_ Craf [こんなの気にしてたの私くらいだと思いますが ありがとうございます。早速いただきました。]


2006-04-09

_ Javaとオープンソース

OSM (オープンソースマガジン) 2006年 05月号 [雑誌](-)

Java開発者向け環境を構築するために、何をインストールするかという記事を寄稿しました。JDK、エディターからアプリケーションサーバーまで、基本的に今の開発に必要となりそうなものは全部詰め込みました。

詰め込んでいるため、個々のソフトをどうするかについては書いていなかったりするわけですが、そのへんはその先のことだろう、という思想です。

一見客観的なカタログですが読めばわかるように主観で「こうだろう」というのをがんがん書いています(が、メインストリームは外していないとは思う)。使ったことがなくても外せないと考えれば入れているし。でも特集全体を眺めていると、もしかしたら、それでも微妙に特集の意図をはずしたものを書いてしまったのかも知れません。というのは、同じ特集のはてなおやさんの記事とはずいぶん毛色が違うからです。とは言っても、あそこに並べたものはとりあえず全部使えなきゃ(利用局面とか設定方法を知っているとかのレベルで。使いこなせるかどうかは別としても)だめなんじゃないかな、とは思います。

というわけで、僕自身の環境と言うと、細かいのは除けば

・仕事環境

Solaris9+J2SE 1.4.2の最新+Tomcat5の最新+xemacs+JDE+Oracleクライアント+JUnit3.8の最新+Ant最新+EasyMock+CVS

・執筆用実験環境で一番良く利用するやつ

Windows XP+J2SE 1.5最新+Meadow+JDE+Tomcat5.5最新+Ant最新+JUnit3.8の最新+たまにNetBeans5+HSQLDB+Seasar2+FindBugs+Subversion(こないだ入れた)+Sun AppServer とcoLinux(Debian GNU/Linux)+J2SE 1.5最新野良インストール+Emacs21+JDE+Ant野良インストール+Tomcat5.5野良インストール+MySQL野良インストール+Subversion野良インストール といった感じです(野良ばかりだ)。Kaffeも試したけど用途には辛過ぎた。でもなんとなく好感が持てるな。

Eclipseは入れてあるけど、プロジェクトをNetBeansに移動するために参照するのに利用するとかかな。デフォルトのタブ設定の腐れっぷりとか(仕事用にしょうがないので調べて設定方法を周知したけど非常にばかくさい作業だったけど、そういうのがあるので削除もできない)、名前とか、どこをどうとっても好きにはなれない。

そういうのもあるし、そもそもIDEは遅いから嫌い(さすがにソースレベルデバッグにJDEは面倒だとは思うけど、環境がいろいろなのでprj.el書けば済むので結局JDEを使ってるし)。ヘルプはローカルにインストールしたJavadoc。

ちなみに↑で「遅いから嫌い」というのは、合理的な話ではなくて感覚的な話。

渋滞していても我慢すれば20分でA地点からB地点へ行けるとする。ここで、迂回路に入るととりあえずは待ち状態にはならない。でも結果的に遠回りもいいところだから30分かかる。でも、そっちを選んでしまうというようなことですね。

_ 自分でまともなアプリケーションを試すexerb

当なサンプルとしてbinに入っていたsoleb.rbを使ってみた

あああ、そりゃそうだ(拡張ライブラリを使いまくる例)。全然考えが及ばなかった。

疑問点:mkexyって一度スクリプトそのものを実行するけど、それはそういうものなのか? (と思ったけどrequireしているものを全部調べるには確かに手っ取り早いからそれで良いのか)

あと、PATH通す代わりに、PATHを通したコマンドプロンプトをruby consoleという名前でプログラムグループに登録しているのでよろしければそっちを使ってみてください。

_ Javaで愚かな記述エラーで1時間以上を食いつぶす。

if (buffer.get(i = 3) == '\n') { ... } 

=と-。

案1)シフトキーが甘くないキーボードを使う(あんまり関係ないか)

案2)定数を使う(とは言っても、コードが読みにくくなるな、というかそっちの定義を間違えても同じだろう)

案3)フォントをでかくする。(意外とこれが一番効果的かも)

本日のツッコミ(全1件) [ツッコミを入れる]

_ hyuki [javac -Xlint:all でも見つからないんですね、これ。 案4) JavaのLintを探す]


2006-04-10

_ 愚かなバグの続き

lintを探す……。なるほど。FindBugsだとこの場合(試してないけど)無理かもしれないけど、CheckStyleあたりだと見つけそうな気もしますね。でも、((len = f.read()) <= 0) みたいなイディオム(手が覚えてるわけですな)も引っ掛けてくれそうだから使う気はないけど。1分の不愉快60回なら1時間の愚かなエラー探しのほうがましかも。(追記:一番内側の()内に出現した=はエラーとするというのならOKか。)

でも、やはり定数がガチかなというのは、全部+にするという大技が取れるから。

多分、−と=は打ち間違えても+と=は(JISキーボードでは)打ち間違えないと思う。

static final int MINUS_SAN = -3;

if (buff.get(i + MINUS_SAN) == '\n') { ... }

でも、気持ち悪いからやはり無し。なにしろ、-3の意味が、「現在のインデックス位置から3文字手前」というそのものずばりな意味(REDが0xff0000というのとは全然違う)なので定数にしようがないマイナスさん。

_ メモ

回収しました。

_ わからん

例外になるのは、クライアントがRSTを投げてるからでシュアロジカリー。

問題はなぜRSTをやつが投げてくるかだ。

可能性1.Content-Lengthよりたくさん送りつけた。

普通、そう思うよな。でも違うんだな(多分……480k分のパケットからデータ拾って長さ確認するしかないのか)

可能性2.途中に妙に長いインターバルがあくことがある(でもそn後数10パケット正しく処理してるし)

可能性3.Ackシーケンスずれ

……これ調べるのか? (というときこそスクリプトだが)

追記:っていうか、ACKが2個ずつ出てるしPUSHの立ち方が変だ。

あ、わかった。受信動作に入らないからだ。

一生懸命に話そうとしているのにそれを無視して一方的にこっちの話を垂れ流すとRSTが飛んでくるということか(まあ、そうだろう)。他山の石だな。


2006-04-11

_ ボスが赤い帽子を被るとき

OSSパワーバランスに変化?

へー。というか、Javaのままで行くのか、何かひねりが入るのか、競合としてIBMが出ているけどIBMがJavaをベースにするってのと、レッドハットがそうするってのじゃずいぶん意味が違うように見える。(と思ったけどJBoss WebはJavaに限定されていないから関係ないか)

こちらが想像している以上にOpen Solarisがレッドハットにとっては脅威になっているとかがあるのかなぁ。

_ PofEAA

開発の現場 Vol.004 効率UP&スキルUP エンジニアのための実践ソフトウェア技術誌(SE編集部)

PofEAAの解説と一部パターンの紹介をるいもさんと寄稿しました。

PofEAAについては古びた点が無いとはいえないまでも(ORマッピングあたりとか、相当にテクノロジー依存なものがあるし。とは言え、そのあたりの具体性が良い点でもある)、基本ですね。

エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented SELECTION)(マーチン・ファウラー)

同じ翔泳社ということもあるかな。

Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))(Fowler, Martin)

翻訳がいやという人には原書があります。

#上流脳って……。でもまあ、脳は上流、手は下流ってのがバランス良いかも。脳は上流、手も上流だとちょっとなぁ。

本日のツッコミ(全1件) [ツッコミを入れる]

_ KK [「上流脳の恐怖」とか]


2006-04-12

_ Rjb

バグ報告が来たよ。

Methodのimportもできないし、ResultSetのimportもできない。

でもそれはMiscProblemsで通ってるはずじゃんという指摘(日本語読めないと思うのに、良くあのページ見られたな。ソースは強い)。

で、あらためてやってみると確かにエラーになる。

J2SE 1.4.2には存在しなかった、配列の配列がJ2SE 1.5には含まれたからだ。たとえばMethod#getParameterAnnotationsとか。

というわけで修正するか。

追記:ついしてしまった。rjb-0.2.6.zip。でも、引数についてはまだやってない。戻り値だけ。

_ コンピュータ思想界のデビッドボウイ

という感じ。浅い感じを受けるからかな。

言葉はあるが、中身はない - 特別な言葉"ハイパーテキスト"を生んだテッド・ネルソン氏

この本から着想を得たというが、それはそれとしてもおもしろそうな気もする。

Paddle-to-the-Sea(Holling, Holling C.)

参考:大島さんのメモ

_ printfデバッグ

使うよ。がんがんでもないけど、使う。

ソースコードレベルデバッガーを使えない過去の人ですか?

いや、違う。ソースコードレベルデバッガー「が」使えない処理があるということだ。

タイミング勝負のデバッグでは、ブレークさせると動作が変わるからだ。実行時の変数値の変化を見るにはprintfデバッグしかない。お金と資材があればprintfの先がデバイスってことはあるかも知れないけど、いずれにしろブレークさせないで変化を見る必要はあるのだ。

このようなプログラム、つまるところは生な処理、あるいは生に非常に近い処理、についてはprintfデバッグを前提としたコードを書いたほうが良い。そうじゃないと、デバッグのためにコードの構成をがらりと変えざるを得なくなる。つまりは、いちいちローカル変数(printf可能なもの)に突っ込むとかだ。2回アクセサ(ゲッタ)を呼ぶと、ゲッタの中で同期処理が走るために状態が変わるということもありえる。

int stat = obj.getState();
System.out.println("current stat=" + stat); #デバッグすっぺ。
if (stat == STATE.FOO) {
   ...
と書くためには、元のコードは
int stat = obj.getState();
if (stat == STATE.FOO) {
   ...
の必要がある。
if (obj.getState() == STATE.FOO) {
 ...

と書くと、デバッグのためにソースをえらく(と言ってもint statの導入だけだけど)いじる必要があるということ。ただ、ここではprintfを入れなきゃ2行の修正だけど、こういう状態を見るためにprintfを入れるわけなので、30箇所くらいに入ることになる。すると、30行のprintfを突っ込むだけなのか、それとも30箇所のソースから影響を受けないように変数への切り出しをするのか、というような差になってくる。

このあたりは、JavaだろうがC#だろうが、やばそうなプログラムを書くときは、Cのように書くということなのだ、とちょっと思い出したので書いてみたり。


2006-04-13

_ CodeZine

HTTPサーバー4回目 NIOで非同期接続です。

最後にえらく殊勝なことを書いてますが(無謬じゃないかもとか)、結局やたらとテストをして思いも寄らぬほど時間を食ってしまいました。無謬ですな、多分(と付けざるを得ないのがあのてのプログラム)。

説明はさわりだけなので、コードそのものを味わってください。何度もセレクション呼び出しが走る様子が見えるでしょう。というか、Bufferのlimit、position、capacityを考えたやつは相当練れているとあらためて実感しました。

#ビジネスプログラムとか、それまでのストリームを使うようなのとは違って、デザパタ的なコードがほとんど無くなるのが興味深い点。でも、それが必要なんですな、書いていてわかったけど。っていうか、やっぱり低レベルなネットワークプログラミングは最高におもしろい。ACKやFINの息遣いが聴こえるってやつだ。(最近、聴いてなかったので相当勘が鈍ってたのでやたらと時間が取られたってのはあるかも。素振り重要というやつか)

_ Windows Update

今回は数も多いし、再起動も必要だ。

本日のツッコミ(全4件) [ツッコミを入れる]

Before...

_ arton [おもしろいですよね。 >構造化データ この場合は、次に読み込むデータの型にあわせてBufferを切り替えるという意味..]

_ Kazz [>次に読み込むデータの型にあわせてBufferを切り替えるという意味ですか? そうですね。どさどさっとバイト列を書..]

_ arton [ああ、なるほど。 確かに、IO以外にもバイト配列を構造化して扱うのに利用できますね。それは考え付いていませんでした。]


2006-04-14

_ USBメモリーの活用法かな

なんでもiShuffleなので、手元に2つほどUSBメモリーが放置されている。

そのうち1個はブータブルだったような気がする。

ってことはもしかすると「Damn Small Linuxをペンドライブにインストールしてパラダイス気分」が使えるかな? とメモ。

でもペンドライブって何だ? おれの持ってるPendiumはFDブートしかできないようだからだめっぽい気がするんだが。

PenDriveKnight2.0 256M PDK-20-256M(-)

これか?

PenDriveTio2.0 128MB(-)

これなのか?


2006-04-15

_ coLinux

Xeon + SATA っていう環境で動くかどうかを調べるにはどうすればよいのかな?

(実際に動かすと青くもならずに単に黒くなるので、何がまずいか調べたいのだが、検索かけると死ぬほど出てくるわりには欲しい情報が見つからなかったり)

#っていうか、coLinuxの問題じゃなくて利用したLinuxカーネルの範囲を外れているのかも、と気づいた。

_ 超マシン誕生ゲット

古本屋の前を取ったら300円の投売りコーナーで発見。

とりあえず、32ビットエクリプス開発チームを作り始めるところまで読んだ。

ここまでで気づいた点:

・あまりにビジネス読者向けの視点:技術者よりも秘書に語らせるてる箇所のほうが多い。主役のプロマネの人柄を印象付けるために妙なエピソードが冒頭にあって、最初、間違ったものを買ったのではと思わせたり。

・っていうか、創業からのマーケティング担当者の手法が面白すぎというか、技術の話よりは、そっち系統と人間関係管理がらみの描写が多い。

・70年代かぁ、という描写。でも内実は今とそんなには違わなかったり。

・というか採用面接が痛いところを突いていて面白すぎ。ずるいな。

・モードビットって何だ? 286のプロテクトモード切替みたいなやつのことか?

・創業者が設計者と辣腕ビジネスマンのコンビってとこがSunみたいというか、そういう組み合わせでミニコン(ワークステーション)ビジネスってのは始めるものなんだな、と納得したり。

・っていうか、82年の本だがコンピュータビジネスは犬の年齢なみという表現が出てくるのにちょっと驚いた。だったらインターネットビジネスは蜻蛉の年齢くらいと言わないとバランスしないんじゃないか。

確かに、おもしろい。

で、データジェネラルってどうなったんだろう? 僕が最後に見たときは、モトローラの88000を採用したマシンを作ってたんだが……一緒に沈没したのかな。調べたら最後はEMCに買収されたらしい。DECと同じく(もっとひっそりと)パソコンにやられたってことなのか。

_ ベルグンド

シベリウスが聴きたい聴きたい聴きたいぞ。

でも、ピアノ曲集はあるけど、今聴きたいのは交響曲だ。なぜかベルグンドの5と7のCDのタスキなのか帯なのかはあるのに、CDそのものが見当たらない。

しょうがないので、ボウイでも聴くか(全然、関係ないけど)。

_ バルトークのバイオリン

ボウイは気分じゃないな。で、探してたらメニューインが弾いた(振ってるのはドラティ)の20世紀スタンダード演奏のバルトークのバイオリン協奏曲が出てきたから聴くことにする。

なまぬるいなぁ。

なまなま。

一度だけラジオで聴いて、ずっと気になっているんだけど、どこにも見当たらない、メンゲルベルクが振ってゾルターンセーケイ本人が弾いた初演だか、限りなく初演に近いだかの演奏が耳にこびりついて離れがたい。

セロ弾きゴーシュが弾いたインドの虎狩りってきっと、このくらい迫力があって猛スピードで、とんでもない演奏だったんだろうというくらい、耳に残って離れない。途中で追いかけっこ。逃げる逃げる。

でもドラティとメニューインは上品だ。でもきれいだ。うむ、メニューインって悪い人じゃない。good fellowなのだろう。嫌いじゃない。でもなぁ。

緑とメータという、プロデューサの意図について下衆の勘繰り(企画モノなんだろうなという意味)したくなるような妙なトリオ(マジャール―アーリア―ヤマト)のCDや、指揮は自信がないけどチョンキョンファとショルティという、やはり妙なトリオ(ショルティってどっか東欧の人だったはず)とか、も悪くない、むしろ良いが、

でも、メニューインとドラティのも上品でいいなぁ。

でも聴きたいのは、インドの虎狩りみたいな、セーケイとメンゲルベルクのやつだ。

ううううううらやますい。持ってる人もいるのか。

アマゾンには別の日本人のやつしか見当たらないんだが。

追記:バイオリンで検索してたからだ。ヴァイオリンで検索したらちゃんと出てきた。

バルトーク:ヴァイオリン協奏曲第1番&第2番(五嶋みどり)

ヴァイオリンはすばらしい。でもメータは嫌い。でも子供。

バルトーク : ヴァイオリン協奏曲第1番(チョン・キョンファ)

名演なんだけど、好みじゃない。(ラトルと録り直したやつもあるのか。でもまあいいや)

バルトーク:ヴァイオリン協奏曲 第1番、第2番(メニューイン(ユーディ))

ふむ、リストにはあるようだ。売ってないけど。

バルトーク:VN協奏曲第2番(フルトヴェングラー)

むむ、ちょっち聴いてみたい。

ああ、ズーカーマンとかパールマンとか、そういえばマンがいたな。

うむ、190枚調べたが、やはりセーケイのは無い(海外盤か。でもアマゾンはクラシックの検索があまりにもあまりだからなぁ)

クラシックなんて、システマチックなんだから、

バルトーク−協奏曲−バイオリン というようにカテゴリ別にドロップダウンか何かにしておきゃいいんだよ。CD屋とかだってそうしてるじゃん。なぜ、バルトーク+バイオリン、バルトーク+ヴァイオリン、バルトーク+Vn (なんじゃい)のようにこっちで検索語を変えていろいろ見てやらなきゃならんのだ?

_ 2楽章

新ウィーン派のもっとも美しい瞬間(たとえば清められた夜のすべてを許した瞬間とか)を切り取って繋げたような透明で高いところで弦に歌わせている(ちょっとだけ調性が揺らぐ)すごくきれいな曲。

そうだ、メニューインのは、これがすばらしいんだった。

(多分、パールマンあたりのも)

_ マニア

Recordings From Private Collections 2(Bartok)

うほー、ほしくないけどほしい。

(ついに、検索語Hungarotonで全部見始めたんだったり……追記:やっぱりなかった。がっかり)


2006-04-16

_ HAT

デベロッパーラウンジでうかがったHATの続き。

やっと場所だけとりあえず確認した。

i86spitfire

spitfireってなんじゃらほい、"sun spitfire"で検索したら太陽に向けて飛び立つ戦闘機ばかりがヒットしてちょっとうんざりしたり。Ultra SPARCのコード名なのか。

The hat layer manages the address translation hardware as a cache driven by calls from the higher levels in the VM system.

_ シャイニング フォー スネオ

シャイニング・フォースネオ(-)

彼にも光を当ててやりたいということなのか。


2006-04-17

_ Apache1.3から2.0へ

上げた。しかし最低限の設定しかまだできていないのでちょっと不安。

_ Mishima

いろいろ思うことはあれど、ちょっと考えがまとまらない。

ある意味では、強く影響を受けているわけだし。

その時代を作った人間の一人なのだからどうしようもない。

石岡瑛子。

ニューヨークの二世の書道家に何枚も書かせた。うまくいかない。アルファベットがこれほどまで書と合わないとは。切り貼りしたが、やっぱりだめ。すごくいや。

奔馬(だと思った)の斜めに埋まった鳥居。

壁がぱっと割れて捕り物が始まる。

石像。

子供を妻が送りに出たことを電話で聞く。

家を出ると右の家から外を眺める子供がそのまま過去の自分になる。

聖セバスチャンの殉教。

東大全共闘との楽しそう吊るし上げた大会。

石で追われる本館前広場。別の映画で見た記憶――KTだ。

恵子の部屋のぷよぷよした沢田研二。李礼仙の顔。

困ったような笑みを浮かべ続ける緒方拳。

ロイシャイダーが独白。

楽屋からのぞく女形。言葉の世界と現実の世界。

太宰治の評(違ったかも)

制服を着るときに浮かぶ陸海空。空はジェット機で頭上の死の世界の酸素ボンベ。

美、芸術、行動

49階の広い会場が満員。でもとんとんのはず。

勤め始めたときは、女だからと言わせないのがミッション。

ニューヨークへ渡った後は、日本人だからと言わせないのがミッション。

今は、老人だからと言わせないのがミッション。

私 デザイン(石岡 瑛子)

_ mishima

(注:apacheが落ちたので上のやつがロストしたと思って書き直した簡略版。内容は同じ)

石像のある庭

門から車へ向かって歩いていくのを右手の家の窓から見る子供。

その子供がそのまま子供時代の窓から外を見る自分に変わる。

砂に斜めに埋もれた鳥居。三角形。

障子が外に倒れ捕り物。四角形。

聖セバスチャンの殉教。

罵り声と石。

言葉の世界と現実の世界。

沢田研二のぷにょぷにょした体。李礼仙の硬い顔。

美、芸術、武士道(じゃない)、行動

太宰治の評。

奔馬。

私 デザイン(石岡 瑛子)

仕事をはじめたときは、女性だからとは言わせないのがミッション。

日本を出たときは、日本人だからとは言わせないのがミッション。

今は、老人だからとは言わせないのがミッション。

スイスの豊かさ。

_ Debian

ネットワークインストール生まれて初めてやってみた。

呆気にとられた。

すげえ時代になったもんだな。(何を今更)

_ デザイン

ガッツポーズが決まるように作った。

不確実な将来のユースケースドリブン。

かつそれがマーケティング素材になる。

本日のツッコミ(全4件) [ツッコミを入れる]

Before...

_ arton [この日以降っていう意味ですよね? 移行にしくじってそうなので見てみます。どうも教えてくれてありがとうございます。]

_ arton [uconv入れ忘れてたので入れた。これで解決かな? とテスト書き込み。]

_ dan5 [ここ数日化けていたのが読めるようになりました。]


2006-04-18

_ 遠交近攻

范雎が秦昭襄王に献策したのが遠交近攻だ。その論理的な説得力などから昭襄王によって范雎は宰相に任じられた。

それまでの秦は近隣国と同盟を組み、遠征しては衛星国家を作るといった外交政策を取っていた。しかしこの方法では、遠征からの帰還によって直接的な支配力の行使が不可能になれば元の国家の復興を招き、一時的には支配下に置くことはできても恒久的な支配は不可能であった。

范雎は、そうではなく、遠い国と同盟を組み、近隣諸国を攻め滅ぼして順に支配下におけば良いのだと説いた。

この外交政策は正しく、最終的に秦は全土を統一した。

というような歴史を思い出させるインドだよ。

_ 抽象化レイヤ

ジョエルが語る抽象化レイヤ

なるほど、鋭い。

もっと敷衍させて考えてみたい。ジョエルが例のためにドリーパートンを出しているけど、もっとあらゆるモジュール間に対してだ。

その抽象化レイヤの先には、同様に実装そのもの、ビジネスそのもの、つまり人間がいる。これがモジュールだ。

各モジュールは、他のモジュールに対して抽象化レイヤとして機能する。

店員は問屋と消費者の抽象化レイヤ(として現在は機能していない)。

企画は研究と開発の抽象化レイヤ(として現在は機能していないかもしれない)。

すべてをモジュールとして考えた場合、抽象化レイヤそのものを同質なもの、つまりモジュールつまり人間として実装するのはあまり良いこととは考えられない。それは特権的過ぎるし、おそらく人間的なビジネスとしては成立しないと想像される。つまり、抽象化できないのではなかろうか。

それが現状のコンフリクションと考えてみる。

とすれば、人間にとってかわって人間と人間、つまりモジュールとモジュールを繋げる抽象化レイヤが必要なのだ。

#突然、星新一の肩の上のオウムのショートショートを思い出した。が、それは組織的に機能できないので、多分、違う。あれはシンタックスシュガーだし、しょせんIDE的な上っ面だ。

#次に、原人のインプラントを思い出す。が、あれはしょせんデバイスであり、記憶のエビデンスを外部記憶装置として取り出したものだ(翻訳処理は除く)。

いかなる実装がありえるか? 必要となる機能は? 要件は上記で十分か?

_ 題があほくさいから見逃すとこだった

フリーソフトウェア界の白馬の騎士

PGP訴訟とかFSFとかで「ただばたらき(by essa)」している弁護士&&法律/法歴史学教授のインタビュー。

いろいろうまい言い方をする。

われわれは、ライセンス条項を弁護士に一儲けさせるための罠にするつもりはありません。ライセンスが機能するのは、それが人々を傷つけるための仕組みではなく、人々に協力を求めるための仕組みだからです。

概念の実証、規範の実行、協力の要請

なるほどなぁ。まず自分、次に自分、最後に相手か。

_ BEAといえば

こないだMatz日記でとりあげられていたオタクセドリックってBEAだったような。もしかして意味深。

追記:Googleさんだ。

本日のツッコミ(全3件) [ツッコミを入れる]

_ babie [インドがユーラシアを統一かぁw。国際情勢に疎くてすいませんが、最近アフガニスタンと連携するようになったとか?]

_ arton [いや、麻生太郎戦略というか、日本が中国を切って印度に近づいてる動きのこと。]

_ Kazz [そういう中国は印度に「日本を切れ」と言ってますね。]


2006-04-19

_ こりゃ読むしか

一澤帆布の本家はダメだろう

というか、読まずに語るのはあれだが、Moleskinさんの紹介文を読んで浮かび上がってくるのは、なぜこいつは語れるのか? 語れるということはそういう常識(コモンなセンスというか合意)があってそのコンテキストで語れるから語るんだろうけど、でもそれでその内容を語るのか? という疑問。

カタルカタルカタリスト

追記:

買った、読んだ。読むとますます疑問が湧いてくる。

間違いなく言えるのは、三男が職人や生地屋さんに支持されているということだ。(Webサイトを見るとコンシューマにも支持されていると思う)

長男が銀行マン視点しかないのも間違いなさそうだ。ただ、三男の言葉のほうを見ると記者の誘導に乗せられて、言い方としてそうさせられたということはありそうでもあるから(記者がとくとくと三男に長男の発言として聞かせている様子が伺えなくもない)、それは割り引いてもいい。

先代がなにを考えていたかはちょっと留保すべきかも知れない。長男の言っていることは、老舗とか60歳の人間のさらに父親(1920年に生まれたなら大正野郎だし、明治男の可能性すらある)とかを勘案すれば実は正しいのかも知れない。そういう家に生まれたわけじゃないからそのあたりの感覚はわからないが、我が身に引き寄せてみれば初孫が女の子だと知ったときの爺さんの様子とかから想像するとそういうものの見方が無いわけでもないだろうな。

ただ、思うに、老舗(と限定する必要は無いようにも思う)というのは血よりも技とか浪花節なんじゃなかろうか。結局は職人の支持を得てるという点だけで勝負はついたわけだから(長男の言っていることは、近代経営をおれはしたい、ということに見えるが、それじゃ成り立たないのではないか、ということ)。追記:結局、長男はそこが理解できていないわけで、仮に父親の願いに忠実にやろうとしたのだとしても、それが結果的に父親の願い(ってのは、万世一系の老舗を守るってことだろ、つまり)をかなえるのに対してややこしいことをしただけで徒労に終わったという点だ。でも、三男側の結束は固まっただろうし、守勢の老舗でありながら創生の意気込みまで持つにいたったわけで、結果オーライってことなんだろう、という状況を見た上でなぜこの親父はまだ語るのか? という疑問。さすがに白旗はあげているように見えるけど。

_ とんでもない変換ミスをみた

すばらしい無いよう。

_ やっぱりおもしろい

雰囲気クラッシャー

書き方とか文体のせいなんだと思うが、圧倒的にこの人の日記はおもしろい。作ってるんじゃないか? とも思う。波乱万丈を鼻歌混じりにこなして足取り軽く。

そのあたりの虚構なんだか現実なんだかわからせず、重い話をあっさりと冗談めかして軽くいなす。生クリームの白じゃなくて、ホワイトチョコのコーティングなんだろうな。

_ Bloglinesの未読を少しずつ消化

昼はほとんどRuby Hotlink経由しか読めないし、夜はいろいろつまっているのでBloglineの()が3桁あたりまえに。一種の麻薬なんだから断ち切るって手段もないわけじゃないが、それでは人生がつまらなくなる。そうやって老化を進めてるだけなんだが。

で、それはそれとしても、たんにたんたんと読むつもりだったがあまりに笑いのツボにはまったのでクォート。

フレームワークという物は抽象化大好きのアーキテクトとやらが作るのだからしょうがない。

個人的にはこういうコードを読む都度PoEAAとGoFを焼き捨てたくなる。

PoEAAを焼いたら英語版で買い直そう。そうしよう。

――依存の切り方

これも鶏肋、あれも鶏肋、おしなべて鶏肋、鶏肋にはまる人ほど鶏肋。それでもしゃぶってしまうから鶏肋。

_ 石岡暎子語録

思い出した(帆布のを書いていて、普段使わない言葉の出所をさぐってて)。

こんな内容。

WBCで日本が勝って世界中がイチローを見てたじゃない。だから、これからの世界は浪花節。

おれはいやだけどね。


2006-04-20

_ Livedoorへ引っ越し

Bloglinesは結構重いからLivedoor Readerへ引っ越してみた。

阿羅漢 [DVD](ジェット・リー)

なんとなく摩羅漢。

#追記:未分類のやつが、直前のフォルダーに入れられてしまって、最初どこにあるのかわからなくて閉口した。

_ Seasar Conference 2006 Spring

Seasar Conference 2006 Spring - 5/14(SUN), Tokyo

定員400名ってすげぇな。

_ なぜカンディンスキーなの?

とGoogleロゴ見て思う。ああ、例の点字の件もあるし、つまりググレと言いたいわけだな。

……違う(1866年12月4日 - 1944年12月13日)。

ってことはカンディンスキーじゃないってことか。

待てよ、ロゴそのものがリンクになってるぞ。ホアンミロ(4/20誕生)か。ザマアミロみたいだな。

カスティーリャ語読みで「ホアン・ミロ」と表記されることもある。現在はカタルーニャ語読みを尊重し、「ジョアン・ミロ」と表記されるのが通例である」おおそうなのか。

_ お、きしださんだ

JavaCCでスクリプト言語を作成する 第1回

むむ、おもしろそうなネタだ。

で、内容は後でにしてちょっと眺めたら、確かにみずしまさんの指摘どおり、BSDライセンスだからオープンソースに見える。というのが気になったり。


2006-04-21

_ VB最高

今頃になって見た。

Visual Basic最高!

それはそれとして、xulってすごいな。と思ったらIEじゃ見られないのか。いまいちだな。

_ TortoiseSVNを使って考えたこと

うまくできてるし、Explorerからちょいちょい突けるのは大いに結構。

でも、コンソールでちゃかちゃかやってるときは、そのまま、svn ……と打ちたくなると思うんだが。たとえば

ruby script\generate model radeon

svn add app\model\radeon.rb

とか。

で、c:\program files\TortoiseSVN\bin にパスを通してみるわけだ。でも、やっぱりコマンドとして認識してくれない。

のぞいてみれば、svn.exeって入ってないわけだ。

WinCVSはそんなことはなかった。cvsの上にGUIラッパとして作ってあったんだったと思う(単に重複させてただけかも知れないけど)。

たぶん、3択問題なのだ。

1. オリジナル+GUIラッパ

2. GUI+オリジナルスタイルラッパ

3. GUIだけ

で、TortoiseSVNは3を選んでいる。でも、しこたまDLLは入ってるんだけど。つまり1にしても2にしても実際には、本体=共用オブジェクトとして、その共用オブジェクトの上にCUIラッパとGUIラッパを作るという手法が取れるはずなのに、なぜそうしていないんだろうという疑問。もちろん、Subversion for Win32を入れれば両方使えてハッピーかも知れない。でもc:\program filesの下に2つも同じ機能を提供するディレクトリを作るのはいやだな。

でも、やっぱりそんな作りにするはずはないだろう、と思う。そこでやっとドキュメントを眺め始める。でついにヘルプにはCLI引数説明とか出てるのを見つける。でもsvn.exeはどこにも無い。ということはソースから作ればあるけれど、MSI使う限りは(MSIを使うくらいだから)CLI不要という判断なのかな? と考える。でソースをダウンロードしてみると、svn.cとかあるな。ということで結局ソースからビルドすることにした。……と思ったけどPythonもPerlもインストールする気にはなれないのでとりあえずやめることにしたり。

_ Maps

もし僕がFooBar Mapsを作ったらイースターエッグは地図に埋めてみるだろうな。たとえば太平洋のある地点に本当は存在しない島を作るとか。あるいは、道路がちょっと歪んでいてグリフになってるとか(よほど人が行かないような場所で)。あるいは、やはり誰も行かないような場所にもかかわらず拡大できるようになっていて、椰子の木が滑走路のように並んでいてプールがある家が建っているとか(って、これも島か)。とか思った。

_ 待たせるとき

待たせたり失敗したり閑だったりしたときの土人形(藁じゃないな)が上手く出来てるlivedoorReader。

本日のツッコミ(全8件) [ツッコミを入れる]

Before...

_ arton [うーん、さすがにいちいち/command:と入れるのはかったるいですね。そういうときこそWSHの出番か……。]

_ manhole [Subversion(サーバの方)に付いているsvnコマンドを使われるのはどうでしょう?]

_ arton [まあ、それが一番みたいですね(同じ機能のプログラム―インストールが必要な―を重複して持ちたくないというのはあるんだけ..]


2006-04-22

_ OS Xでトレース

trussもptracestraceもないので途方に暮れたけどOpenACSというとこで語られていた。

結論: ktraceしてからkdumpする。

ktrace -d -i command...

kdump -f ktrace.out >textfile

-iで子プロセスを追う。-dはアタッチした場合に有効だからここでは無意味(だと思う)。

デフォルトで(外し方は調べてない)読み込んだバッファまで出力されるのですさまじい量になるけど、これはこれで非常に便利だな(off_tがincludeの中のどこで定義されているのかを調べたのであった)。

_ 果てしなきBlog

最初から、Refererがはてぶだったら、「500 …… ばかがみる」とだけ書いたページを出すように仕込んでありますというのは、Blogのウリにならんかな?

Googleボットだと、きれーいきれーいなHTML。でも人間が見るとアフィリエイトバナー満艦飾。

現実問題として携帯からだとchtml(だっけ?)。

もちろん、そういうのは設定ページからへらへらできるお手軽インターフェイス。参照元を選択とかいって有名どころはすべてドロップダウンに入れてあるとか、過去リンクもとになったところは覚えておいてそれも動的に選択できるようにしておく。


2006-04-23

_ Automating TortoiseSVN

なんか、思いつきで決めたような感じだな。

パラメータの変換を書いていて嫌になったのでやめ。

というか、glob相当の機能がFileSystemObjectにないってのが致命的。

というか、最初からASRで書けばよかったのに、久々にVBScriptを使ってみるかとか思ったのが運の尽きというか。

_ スクイーク

あ、「スクイークは "メディアオーサリングツール"です。」なのか。

なんか、同じようなものを作れないかな?

たとえば、ジャバスクリプトはウェッブコントロールツールです、とか。うまくないな。

たとえば、ルビーは? なんだろうか。

ジャバはエンタープライズアプリケーション構築ツールです、かな。

_ アクティブエッセイ

スクイークランドのアクティブエッセイを読んでいたわけだが、

・プラグインって何のことか最初わからなかったが、ちょっと驚いた。eToysがそのままブラウザー(少なくてもFirefoxでは)で動くのか。

・ちょっと写真がぴんぼけているのでクリックしたら変わるのかと思ったら、eToysの中だからなのか、ドラッグして動く。ドロップするとそれに合わせて文字の回り込みが変わる。おもしろい。磁石みたいだ。

・進化の話はもう少し動きが早くない例じゃないと辛いかな。mouseに進化させるくらい。というのは、クリックをしているくらいでは、「しばらくすると、文の一部一部があらわれてきます」って、こないよ。最初、実行環境のバグかと思ったけど、さすがにそもそも無理だろう。自動のほうで試したけど体をなすのに30分以上かかった(いや、40億年に比べれば)。

・というのを書こうとして最初選択してみたけどクリップボードへコピーできないのか。ブラウザーの中だからかな?

・と、だんだんと本題からずれて瑣末なところが気になってきたので、とりあえず一休み。

さてあらためて、という間に読み終わってしまった。

・というか、数分とか出ているが、やはり実行環境が何かおかしいのかも。でも、処理そのものは正しそうに見えるし。やはり選んだ文字列が長過ぎるような。

・切り貼りだ。あまりドラッグとかさせないほうが良いのかな? いや、そのような手法が見えるところが良いのかも。

・目標とする文の意味は重要か? 重要な文であれば、進化を待つ気になりやすい。そうでなければ、放置だ。しかし放置したおかげでシベリアが自分のものになったイワン雷帝のような例もある。すると重要ではないかも。つまり、重要ではない。したがって、同じ出発点からどこまで遠くへ行けるのか、それはその先でなきゃ判断できない。予測した道筋をたどらせるだけならば、進化には何の意味もない。最初からそうすりゃよいだけだ。

_ ああ

なぜ進化のエッセイを読み始めたのか。

言語ゲームの「なぜ僕たちはわざわざ新しいメディアを再発明しようとしているのか?」を読んでしまえば、わざわざスクイークプラグインをダウンロードしてさえも読みたくなるのだ。

再発明をする場合、重要なのは発明した人間の視点ではない。その視点からは「車輪の再発明」という嘲りしか生まれない。だが嘲りとは裏腹に恐怖心のことでもあるのだ。

再発明するのは、発明を自分の手には持たないものだ。

たとえば、僕が再発明するとしたら、それは発明の意味の確認のためであり、技術を獲得するための習いごとであり、楽しみであり、遊びである。

でも、言語ゲームで書かれている再発明は、もっと重要なものだ。発明そのものを獲得するための発明ということ。良い文章だと思った。

_ Win32OLE Dualインターフェイス

助田さんがWin32OLEからVTBL呼び出しというのを考えているみたいだ。

oVftを参照して呼ぶしかないはずだから、DualかTypeLib付きカスタムに限定されるとは思うけど、確かMFCが自分側(MFCはデュアルをサポートしていないので、MFC側の内部クラスとして実装したコンポーネントに対して。つまりIDispatch::Invokeの内部処理)の呼び出しにオフセットを利用しているところがあったから、あのあたりが参考になるんじゃないかな。

それなりに速度向上に役立つはずなので楽しみ。


2006-04-24

_ VC6SP3だと思う

以前、こういうバグを書いたことがある。
/**
 * list 文字列のリスト
 * index 印字したい行のインデックスを指定する。listのサイズ
 *    以上を指定した場合は、最後の行を指定したものとして扱う。
 */
void print(std::list& list, int index)
{
    std::list::iterator it = list.begin();
    int max = (index > list.size()) ? list.size() : index;
    for (int i = 0; i < max; i++, it++) ;
    printf("%s?n", (*it).c_str());
}

見ての通りのバギーなプログラムだけど、記憶に間違いがなければVC6のSP3以前のどれかのバージョンではこれで正しく(仕様通りに)動いたのであった。そのために、少しも気づかなかった。

追記:相当にうそ臭い。もともとちゃんと動いていなかった可能性のほうが高い。文字列を出力するような目に見える処理じゃなかったからだ。

でも、別口からこのソースがVC5でコンパイルされて出荷されて、時々ハングしたり、時々クラッシュしたり、それは大惨事。

思い込みというのは恐ろしいもので、ここにバグがあるなんて考えてもいなかったから、えらく解決は長引いた。

問題は、僕の環境ではコンパイラが妙な最適化をしていたことにある。(もちろん、一番の問題はこのプログラムの明白なバグなわけだけど)

今のVC6ではどうオプションを変えても次のようなコードになる。

  mov	 eax, DWORD PTR [eax]
  dec	 ecx
  jne	 SHORT $L9827

しかし、記憶によれば

  dec	 ecx
  jne	 SHORT $L9827
  mov	 eax, DWORD PTR [eax]

とコンパイルされていたのだ。これは条件がヒットすれば1回eaxに対するmovがスキップできるから効率は良いかも知れない。でも、for文のコンパイルとしては間違いだ。

もしかしたら、それ自身が記憶違いで、そんなばかなコンパイルはされていなくて、たまたまstlの実装のend()の見方の問題だったのかも知れないし、すべてが僕の白昼夢だったのかも知れない。

VC6がどうコンパイルしたかはおいておくとして、この最初のリストのようなバグに対してはどういう方法で回避策がありえるだろうか?

list::end()に対するc_strの呼び出しで例外というのはきれいだが、あいにくそういう仕様ではない。したがって、コードで解決しなければならない。

たとえばコーディング規約ではどういう対応の仕方があるのだろうか?

あるいは、もっとうまい記述方法があるだろうか? ――もちろん、ある。list::size()の1/2によって++と--に分ける方法だ。この方法であれば、それぞれ上限および下限から真ん中へ向かって進むので境界を越えることはありえない。でも、コードは多少複雑になる。しかしバグも入りにくくかつ効率も良い。したがってそういう方法を記述させるようにすることが解決策のひとつだ。

他にはどんな方法があるかな?

追記:

for文の主題はiteratorであるべきで、 intにすべきではない

そのとおりですね。多分(その時に考えたこと)ブロックを2つ書きたくなかったとか、returnは1個所(最近、この呪縛からは解放されつつあるけど、結構縛られている面もある)とか、大して効果もないのに、list::end()と比較するよりintの大小比較のほうが早いとか、いろいろな(今にして思えばろくでもない)背景から↑を書いたようです。

#最後にbreakが欲しいかも


2006-04-25

_

さっき雷が光ったと思ったのに、何時の間にかやんでいるな。

_ 15"タブレット

15型液晶コンピュータディスプレイが5万円か。ついふらふらと買いそうになったが思いとどまった。というか何に使うのかと小一時間。とは言え、垂直に普通のモニター、水平にタブレットのデュアルモニター構成というのは、惹かれるなぁ。


2006-04-26

_ patterns & practices

PAGという呼び方もあったように思うけど、SunのJ2EEパターンに比べてそれほど語られていないようにも思えるけど、MSにもpatterns and practicesというのがあって日本語化もされている。実際にはBluePrints相当と考えれば良いのだと思う。

特にMicrosoft .NET を使用したエンタープライズ ソリューション パターンってのは、PofEAAのMS特化版みたいなもので無料で読めるんだから読んどけって感じではある。だって、固有名詞に頼るけど、助言者として

Ward Cunningham, Cunningham & Cunningham, Inc.

Martin Fowler, ThoughtWorks, Inc.

(ラルフジョンソンって誰?)

Robert C. Martin, Object Mentor

とか出てるんだよ。

というのを、mumrikさんのとこで「じゃあASP.NETで開発するには何を勉強すれば良いのでしょうか?」と書いてあるのを見て思い出した。

#ただし、P&Pページに対して、いやその方向は違うだろう、という見方もあることは付け加えておくべきかも。

_ 抽象度の逆転

個人的にはこのシリーズはJ2EEの後追いっぽいと思っています。

ああ、やっぱり(既に見ている && それを感じる)。

それが、「その方向は違うだろう」なわけで、やっぱりそう思いますか。

ここで宇宙飛行士に登場してもらおう。意味はジョエルのあれと同じだけど、
Joel on Software(Joel Spolsky)
MSの場合、VBのイメージとかASPのイメージとか、そしてイメージだけじゃなくておそらく実際にも、すごく泥臭く悪い方向の現実主義的な香りが漂う。

それに対して、P&Pは、宇宙飛行士的な方向に見える。それは非常に訓練が施されたつまりライトスタッフ達の世界である。でも黄金を掘ったり石炭を運んだりするのは力仕事で、ライトスタッフだけでは現在は成り立たない。労働集約的ということだ。

つまり、こう見える。抽象度は上へ行くほど上がる。

大気圏外   宇宙飛行士 ……  ご託宣を聴きなさい
          ↓
 
雲の上        小僧神 …… 天国良いとこ一度はおいで
            ↓
 
地上            プラグマティックプログラマ …… 来るもの拒まず
 
地下    ベムベラベロ …… 早く人間になりたい

わりと、MSの立ち位置というのは、小僧神だと思うのだ。しょせん雲の上なのでジャックが豆をまけば次の朝には登っていける程度の距離だ。で、この豆が言わずと知れたVisual Studio。

(実は、指輪を使って下からニーベルング族、人間、ウェルズング族、ワルハラとしようかと思ったが意味がわからなくなるのでやめたのだったり。でも貼る。でも考えてみたら最後に滅亡しないのは地に囲まれたニーベルング族なわけで他はみんな炎や水に呑まれちゃうんだよね。だから本当はそっちにするほうが、誰が主役なのかが正しくわかるわけで、上の図はふざけ過ぎではある)

ニーベルングの指輪*楽劇 [DVD](バイエルン国立歌劇場管弦楽団) (品切れなのか。買える時に買っておいて良かった)

宇宙飛行士は小僧神のことをバカにする。抽象だけで勝負をかける自分たちと比べると、豆の木だの免罪符だのを駆使する小僧神は、神なしのただの小僧に見えるからだ。

しかし、空気があるってのは良いことだ。小僧神の豆の木はただの木じゃなく魔法の豆の木だからだ。花が咲いたあとには新たな豆が手に入る。気づけばマスに3杯ほどの豆が手元にある。

実はそんなことは最初から気づいていたのだが、つい習慣で毎年2月のあたまには、外に向かって撒いていた。でもそれって結局、捨ててるってことだよね。

小僧神は考える。この豆を捨てずに食う方法はないか? そこで今度は圧力鍋というものを発明する。結局ツールかよ。だが、それがまさに空気ということだ。

でまあ、P&Pというのは、上のほうから石とか唾とかが飛んできてうるさいから、ちょっと傘をさしてみたというような感じを受ける。とは言え、その内容自体は良いと思う。つまり、P&Pのアーキテクチャっていうのは、上の世界の構造においては正しく傘以上の位置にある。しかし、どうあがいても宇宙飛行士を超えることはできないだろう。

そこで上の世界構造とは別の枠組みが必要となる。上の世界構造がトネリコを中心としたかっちりとした樹木の世界だとしたら、もっとふにゃふにゃで手当たり次第そこらじゅうに巻きついては狭い隙間にまで入り込んでいく豆の木の世界だ。

(この項、続くはずだけど、ここまでだな。もうちょっと追わないと。)

本日のツッコミ(全2件) [ツッコミを入れる]

_ babie [GoF みたいですよ>ラルフ (私はエリックガンマしか覚えてません)]

_ arton [おお、なるほど。というか確認してみたり。確かにガンマと覚えてそれっきりですね。]


2006-04-27

_ ウェビナー

今日始めてwebinarという言葉を見た。

調べてみればなんか胡散臭い感じの言葉だが普通の文脈で普通に使われていた。。

_ WebControlの世界

WebControlが全て

誤解しているかも知れないし、というか今、COM Front(というよりは.NET Frontというほうが正しい)から離脱している――でなぜかSSIを見ていたり――ので部分的にわからないところ(または部分的にしかわからないのかも)があるけれど、なんとなく言われていることが見えてきたように思う。

というか、目の前に見えるのは、クライアント側のページ上の各コントロールが(たとえばXMLHttpRequestで)サーバー上のPageフォーム上の各コントロールとばらばらに通信している世界のように思えるのだが。

もしそうなら、すごくおもしろい。というかむちゃくちゃおもしろい。

#もしそうなら、それはMSの現在のメインストリーム(これは非同期ではあるけれどメッセージングだ)とはまったく異なる、でもおもしろい世界だ。

と思ったけど、まったく異なるは間違いだな。メッセージングの理由は結果を待たないためだ。で結果の反映は個々のコントロールごとになっても構わない。であれば、個々のコントロールごとに独自のセッションを持てば良いのではないか。

_ コンテナ

だんだん感覚(文字通りの感覚。理屈じゃなくて感覚)を思い出してきた。

入れ物は本当に、単に環境を与えるだけの入れ物に過ぎない。だからコンテナと呼ばれる。

重要なのは、その中に埋め込まれている個々のコンポーネントだ。

コンテナは自立したコンポーネントを扱うためのインターフェイスを持ち、それをコンポーネントに与える。制御の逆転だが、実は逆転ではない。なぜなら主導権を持つのがコンポーネントだからだ。

我々が本気で注力すべきなのはコンポーネントであってコンテナではない。

そういう世界はなんとなく、消えたように見えるけど、実はそうではない。でも現状はそういう世界が無視されているようだ。でも、それは不自然だ、ということ。

では、その世界をうまく制御するにはどうすれば良いのか、ベストプラクティスは何か、その世界を自在に扱うにはこちら側からのエージェントとしてコンポーネントをその世界に送り込む必要がある。どのように作るべきか?

コンピュータの世界はフェッセンディンの世界で、プログラマーはフェッセンディン(違ったかな。もう覚えてないけど)だ。

ということだよね?

_ DIとの関連

そっかぁ。すっかりコンテナ側に目が行ってたよ。

今のDIコンテナには、MSのような基礎(言い方が難しい)が無い。そこは任されている。Strutsがモデルにノータッチなのと同じだ。宇宙飛行士の活躍の場が用意されているということになるのかな。

#制約は別の次元の話。

本日のツッコミ(全2件) [ツッコミを入れる]

_ arton [テスト]

_ mumurik [>コンテナは自立したコンポーネントを(以下略) のパラグラフの内容が言いたかったのですが、長い上に本質的な所にはた..]


2006-04-28

_ Coldplay

Amazonからのお勧めさん。ジャケットワークからニューオーダーかと思った。

X & Y(コールドプレイ)

でも違った。

まったく知らないんだけど評を見るとジャケットどおりのニューオーダーらしくもあり、興味もあり/なし。

_ テキストファイルの末尾を判定

LFかCRLFかを判定する。

cat 判定対象|ruby -p -e 'exit 1 unless /^.*?\r$/.match($_).nil?'

もっとうまい方法ない?

追記:うまい方法

1. なかださんの最初の行の末尾チェック

ruby -n -e 'exit /\r$/ !~ $_'

2. 成瀬さんのWindowsでも使える方法()

ruby -e 'exit $stdin.binmode.eof ? true : $stdin.readline[-2] != 13'

本日のツッコミ(全11件) [ツッコミを入れる]

Before...

_ 桑島 [まあYMOとRadioheadとSlipknotがプレイリストに入ってる俺の評価はあてになりませんが Coldpla..]

_ 桑島 [X&Z->X&Y]

_ arton [すげぇ、全然知らない固有名詞ばかりだ(まあ、そりゃそうだ)。 X&Yはヤナーチェクと一緒につい注文してしまいました(..]


2006-04-29

_ ITemplate

自分でしてもいいんだけれど

それはぜひとも、読みたいです。

しかし、なぜこういう話のときに訳のわからないトラックバックが打たれているのか、それもおもしろかったり。

それにしても、MSDNの「このインターフェイスは、カスタム サーバー コントロールによって使用されますが、実装されることはありません。ASP.NET は、常にこのインターフェイスを実装します。」という説明は言語明瞭意味不明瞭の最たるものだ。

で、サンプルコードを見るとその型のフィールドが定義されているだけ。で、どうやらフィールドインジェクションされるのだろうな、ということがコードを見てるとわかってくるし、トピックを読むとだんだんに見えてくる。

でも現在はこのあたりの開発してないので実感としてそれがどう役立つのかがわからない。カスタムコントロールを作る場合の難易度を軽減させるために委譲するための受け口を用意しているってことなのか? とか言いながらMSDNを読んでいるうちにだんだんとわかってきたが、COMで言うと自分でTypeLibを拡張していくオートメーションサーバーみたいな感じなのかな? ――やっぱりわかったわけではない。IDispatchExみたいな感じなのかも。あれは読み込んだHTMLによってJavaScript自体の動作が変わる(外部から関数が定義されるからだ)。

本来は内部構造なのだがインターフェイスを切っているために、外部へこういったものが露呈してしまう。そのためMSDNに書くことになる。というやつなのかな。

_ IO#eofの副作用

成瀬さんのスクリプトがうまく動かない

ばらして見たら意外な事実を発見。Ruby 1.8.4 ノーパッチ。

C:\>type test.txt|ruby -e 'p $stdin.binmode.readline[-2]'
13
 
C:\>type test.txt|ruby -e '$stdin.eof; p $stdin.binmode.readline[-2]'
116

1文字分戻っている勘定だ。ということは最後の1文字をIO#eofが消費してしまったように見える。でもio.cを見てもそんな様子はないし、そもそもeofの呼び出しは先頭でやっているのだから末尾に影響するとは思えない。

というか、binmodeの位置かな?

C:\>type test.txt|ruby -e '$stdin.binmode.eof; p stdin.readline[-2]'
13

当たり。

#当たりって、これはどういうことなんだ? 一度binmode抜きでIOをかけると、その時点でモードが固定されてしまって後からは変えられないってことなのかな。

setmode 関数をストリームのファイル記述子に対して使用する場合は、ストリームに対して入出力操作を実行する前に、_setmode 関数を呼び出します。
MSDN _setmode

当たり。

_ はー

>> Inflector.pluralize('leaf')
=> "leafs"
>> Inflector.singularize('leaves')
=> "leafe"
>>

アルバムリーフっていうのを使いたかったがちょっとがっかり。チケット切るほどでも無いし。

#追記:チケット切ったのは良いが、Subjectの綴りミスった(本文しか確認しなかった)。Infectorって、それじゃ病気だよ……orz。
本日のツッコミ(全3件) [ツッコミを入れる]

_ babie [environment.rb に、 Inflector.inflections do |i| i.irregul..]

_ babie [eaf -> eaves みたいなが規則性・汎用性があるなら、チケット切ってくれた方が嬉しいでっす。 active..]

_ arton [うむ、最初のbabieさんの指摘通り、environment.rbに書きゃいいじゃんというコメントが付いた。あまり使..]


2006-04-30

_ 買ったDVD

連休中に届くかな?

パリ・シャトレ座 ヤナーチェク:歌劇《利口な女狐の物語》全曲 [DVD](ジェニス(エヴァ))

やましたさんが日記で利口な女狐の物語の散財自慢をされていたのを見て、僕もつられて買ってしまった(とコメントに書こうとしたら今日はforbiddenになるので、TBしてみるが、ファイルそのもののパーミッションが変わっているのかも)。

映像作品としての利口な女狐は、チェコスロヴァキアテレビジョンが子供用に編集した(指揮者はバカラというあまり耳にしない人だが、それもそのはずでヤナーチェックの弟子という古い人で、音源も1950年代にブルノで録ったものらしい)番組のレーザーディスク(これも古いね)を持っていて、それは逆に編集してあるせいで長さが適当なのでちょいちょい見る。1/3ほどカットしているらしいがカットされているのは主に会話の部分なので、正直なところ気にならない。むしろこの作品で気になるのは森番が本気で鼻を赤くした爺さんで(典型的なサンタクロースの服装だけをロビンフッドみたくしてライフルを持たせた感じ)そこがちょいと鼻につく(文字通り)。が歌は良い(というか歌は1950年代で、演技は1980年代の別の人なわけだが)。

映像作品としては別枠でクェイ兄弟のヤナーチェック紹介もののトンボの人形アニメもあるけどちょっと別に過ぎる。

ただ演奏は可も無くというか、むしろ蛙やトンボやキツネの人形劇(下から2本の棒で操るやつとかヌイグルミの人形アニメとの合成とか。そこはやはりチェコの放送局が自国の優れた作品を子供のために映像化しているだけあって手を抜いてない。目がくりっとした子供が喜びそうな楽しい人形を使っている)やバレエ(森の動物の群舞)に気を取られるから正直良くわからない。マッケラスの優れたCDを持っているけど(今、アマゾンで検索したら無くなってるなぁ。ウィーンフィルなのでそれだけで名演と知れ)、それに比べるとなんか靄がかかったような気もする(音源が古い点も関係しているかも知れない)不思議な音だ。でも、オペラは総合芸術だから優れた音楽演奏だけの作品より視覚が付いている作品のほうが多分それだけで上位に持ってきてしまうのか、これは良く聴いた(というか、このためのレーザーディスクプレイヤーになってるような)。なんで1950年代の音源を持ってきたか、経緯は書いてないが、おそらく自国ですべてまかなうという方針があって、かつテレビ局が利用可能な音源がそれしかなかったのかも知れない。

そのマッケラスの舞台版ということで、アマゾンで検索したら見つかったので購入決定。ノイマン(一時は、チェコと言えばノイマンというくらい良くみかけたが、堅い演奏をする人というイメージが強い。モルダウみたいな定番は良く聴いたがそれほどツヤはないような記憶がある)版はあいにく置いてないようだ。

ウィキペディア(つまり日本版)を見ると、なんかうら寂しいエピソードも書かれているけど、そういう作曲者(というか脚本も本人だから、文字通り単に作家と呼ぶべきか)の事情と無関係に、できあがった作品はとても素敵だ。出だしの虫がぶんぶん飛び回る森の中、ちょっとドビュッシーのペレアスとメリザンド(記憶の中ではne touche pasという言葉=音楽が最初の歌だったように思うが数10年聴いてないので自信がない)と同時代の音楽なのだな、と感じさせる虫や蛙や森番や子狐のシュピ????シュテンメ(忘れた専門用語)というか、ロマン派の歌とはまったく異なる声の抑揚を利用した歌で始まる。おそらくこのタイプの歌は、その国のその言語を知っているほうが抑揚とメロディー(と言って良いものか)の関連が見えてより音楽を楽しめるのだろうが、あいにくチェコスロヴァキアの言葉はまったく知らないのでわからない。あと気づくのは弦の多用。細かく刻めるので調性が良く見えなくなる。このあたりにペレアスとかとの同時代性を感じるわけなのだが。

#その一方でいきなり唄、唄、唄という感じで始まるベリズモ(道化師とか道化師とか道化師とか)も好きなわけで、音楽ってのはおもしろい。

道化師*歌劇 [DVD](デル・モナコ(マリオ))

くう、こんなものが出てるじゃないか(ビニールのLPを持ってるわけだが)。欲しいなぁ。

_ きたー

ASP.NETの基礎: データ連結式編

ようは、こっちの手元のVS.NET 2005で追試してけばいいんだな。

しかし、この連休には最優先課題があるので、それの解決後にやります。

どうもありがとうございます。

_ アメリカンジョーク

アゼルバジャンから大統領が来たよ。選挙で勝ったって言ってるけど親父も大統領だったし、アゼルバジャンって世襲制だよね。

ブッシュ「世襲制イクナイ。我が国のような民主主義国家になることを期待する」

被害者が隣の国の極悪非道な行いをブッシュに教えたよ。

ブッシュ「国家による拉致イクナイ」

フセイン「何か?」

オリテガ「何か?」

ゲバラ「何か?」

その他の名も無き人々も。

_ 良くわからん

わざわざスペースキーを4回押すようなエディターを使ってるのか?

そんなもんオートインデントにやらせるだろ、ふつう。

逆に、メモ帳みたいな使えないエディターしか入ってない環境や、とても古いがお守りが必要で純正viしか入ってないUnixマシンとかだと、ハードタブの幅がそもそも変えられないのだが(このタイプのマシンを使う場合は、ソースを「参照」する場合がほとんどで「編集」しまくることはほとんどない。追記:ちょっと嘘半分。:set tsとかやれたの思い出した)。

                  |  編集  |  参照  |
ハードタブいじり  | 設定要 | 設定要 |
スペース打ちまくり|  面倒  | 無問題 |

まず、この2×2で、ハードタブいじり派は設定が常に必要ということになった。一方、全部スペースの場合、参照は何も考える必要がない。すばらしい。

で、この「面倒」だの「設定要」だのを実際のツールに当てはめてみる。

                  |まともなエディター|だめなエディター|
ハードタブいじり  |    幅設定       |使い物にならない|
スペース打ちまくり|  オートインデント|  無問題(面倒)|

この2×2では、ハードタブいじりでは、使い物にならない象限が生じている。一方、スペースを使えばどこにも問題が生じない。すばらしい。

それだけのことだ。

というか、多分、右側の象限の存在を知らないんだろうな。開発環境だけですべてが完結するような世界であればバッドもグッドもノウハウはいらんだろうなぁ。

本日のツッコミ(全18件) [ツッコミを入れる]

Before...

_ arton [>Eclipseならタブの替わりにスペース使うことも うん、知ってる。というか、僕が調べた設定方法が、この日記のどっ..]

_ mumurik [ITemplateは第二段を書く予定なのでそれから読むのがお薦めです(たぶん)]

_ arton [おお、そうですか。どうもお知らせありがとうございます。 楽しみです。]


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|

ジェズイットを見習え