著作一覧 |
高校の頃、タンザニアの音楽のLP(小泉文夫監修だと思う)を聴いて、親指ピアノにえらく魅かれた。サバンナを旅するときに、ピンピン鳴らしながら歩いていく。旅に必要なものは音楽を奏でる自分自身だ、というわけだ。
で、そういう楽器はクレヨンハウスみたいなところに置いてあったりするのだが、どうもぴんと来ない。
が、たまたまアマゾンでピアノを見ていたら、親指ピアノの本が目についたので買ったのだった。
ピアノ道場ということで弾き方も確かに出ている(ジンバブエのムビラ)のだが、それ以上に、筆者がタンザニアのリンバ奏者に弟子入りして(先生は元音大の教授なのだが、ちょっと先進国の教授というのとは違う)自分で弾き方と楽器の仕組み(鳴らせ方)を解明していくところのおもしろさとか抜群。親指ピアノという楽器を通してのアフリカ発見といった具体性を伴う地に足がついたというか鍵盤に指を触れている生々しさが文章にあるからだ。教本といっても全体の1/3が筆者のアフリカ親指ピアノ探究の滞在記、1/3が親指ピアノにまつわるアフリカの思い出話、残り1/3がムビラの弾き方の説明で、特に最初の1/3が良くて、教本の部分はいらないからもっと読ませろという気分になった。
それだけではなく、筆者に共感できるのが、筆者自身が現代に生きる日本人の音楽家(でもアフリカの楽器を利用する)という立場で親指ピアノに付き合っているところだ。
そういう立場なので、アフリカの大地が運ぶ風がどうしたみたいなキャッチがついたコンサートに出演してしまった後の観客の反応に対するとまどいと悩みであるとか、現地のフェスティバルに登壇した時の観光客の反応(アフリカ人の尺八奏者が日本の尺八フェスティバルに登壇していて、そういうフェスティバルだから現地の日本人より海外観光客(というのは通常、白人を意味する)の観客のほうが多くて、その観光客がなんだ本場の音楽家じゃないのかと思わず感じてする反応というような表現をしている)に向き合うしかないよねぇという一種の諦観とかが誠実で読んでいて気分が良かった。で、終わった後、現地の音楽家の友人から、お前の楽器(筆者の自作の親指ピアノ)はいいねぇ、おれに譲ってくれないかと言われたのが嬉しかったとか書いてあるので、読者のこっちも思わず、おおすげぇじゃんと思えるわけなのだった。
code jam japanからGoogle Code Jam Japan 2011 T-shirtに行って、そこでQuineの作り方を読んでちょっと考えた。
というのは、それまでえんどうさんがなんかすごいのやってるなぁとかRuby会議とかで見てはいたが全然興味が持てなかったのだが、「ここではそういった一般的な書き方の説明は省略させていただいて」とあるので突然、そういった一般的な書き方とはなんぞや? とひっかかったからだ。
で、なんとなくQuineで検索したらen.wikipediaのQuineの項が引っ掛かったので、そこにあるサンプル(Java)を眺める。(今、検索をすると日本語のWikipediaが先に引っ掛かるが、元の環境ではenが先に引っ掛かるのであった)
すると、1. パート3で利用する小物を定義、2. 出力用に全体を記述、3. 出力を記述。出力の制御にパート1で用意した小物を利用、という構成だなとわかった。
で、Rubyにはいろんな書き方があるとか書いてったので、ヒアドキュメントなら"が不要な分、楽だろうと書き始めてみる。
x=<<D
xに代入して、あとでそれを出力すれば良いだろうと考えた。このxがパート3で利用する小物だ。
当然、それを出力するのだから、
x=<<D x=<<D D puts x
まではすぐに書ける。
ということは、puts xも文字列に入れる必要があるから、
x=<<D x=<<D puts x D puts x
となる。で、実行してみると、当然だが
x=<<D puts x
が得られる。この最初の行を2回、間にDを挟んで2行目を2回出力するのだから、
x=<<D x=<<D 1.upto(2){puts x} D 1.upto(2){puts x}
とすると当たり前だが1行ずつではなく2行ずつの繰り返しになるわけで、ということは行あたりに2回ずつputsするのだから
y=10.chr;x=<<D y=10.chr;x=<<D 1.upto(2){puts x.split(y)[0]};1.upto(2){puts x.split(y)[1]} D 1.upto(2){puts x.split(y)[0]};1.upto(2){puts x.split(y)[1]}
(で、10.chrを思いつくまで"\n"(と書くと途中でヒアドキュメントが切れるのでうまくいかない)をどうやって出力行の中に入れるのかでちょっと悩んだ)として、パート1にパート3で文字列を区切るのに利用する新たな変数yを追加してやれば
y=10.chr;x=<<D y=10.chr;x=<<D 1.upto(2){puts x.split(y)[0]};1.upto(2){puts x.split(y)[1]} 1.upto(2){puts x.split(y)[0]};1.upto(2){puts x.split(y)[1]}
が出力されるから、後はヒアドキュメントのエンドセンチネルに使っているDをどうにかすれば良い。最後の行に単独で置くことになるから評価してエラーにならず出力もされず、かつその値がDと出力されれば良いのだから、:Dか'D'のどちらかだろうということはわかる。で、putsに,で区切った引数を与えればそれぞれが改行されて出力されるのだから、2つのputsの後ろにつけてやれば良いはずなので、同じくパート1でDを宣言というか定義、パート3で利用して
D=:D;y=10.chr;x=<<D D=:D;y=10.chr;x=<<D 1.upto(2){puts x.split(y)[0]};1.upto(2){puts x.split(y)[1],D} D 1.upto(2){puts x.split(y)[0]};1.upto(2){puts x.split(y)[1],D} D
とすれば良いはず。で、試してみると
D=:D;y=10.chr;x=<<D D=:D;y=10.chr;x=<<D 1.upto(2){puts x.split(y)[0]};1.upto(2){puts x.split(y)[1],D} D 1.upto(2){puts x.split(y)[0]};1.upto(2){puts x.split(y)[1],D} D
同じものが出力された。なるほど一般的な書き方というのはこういう感じなのかなと思うのだが、どんなものだろうか。
追記:ちょっとリファクタリング
a=[];D=:D;y=10.chr;x=<<D a=[];D=:D;y=10.chr;x=<<D 0.upto(1){|n|1.upto(2){a<<x.split(y)[n]}};puts a.insert(3,D) D 0.upto(1){|n|1.upto(2){a<<x.split(y)[n]}};puts a.insert(3,D)
追記:さらにリファクタリング
D=:D;y=10.chr;x=<<D D=:D;y=10.chr;x=<<D puts x.split(y).zip(x.split(y)).flatten.insert(3,D) D puts x.split(y).zip(x.split(y)).flatten.insert(3,D)
新国立でインルトロヴァトーレ。レオノーラはオテロでデズデモーナを演じた人。あのときは、きれいだが声量が弱いと思ったが、今回はそんなことなく、特に休憩はさんだ3幕目以降は全開という感じ。延び延びとした感じで僕は好きだ。マンリーコはトゥランドットでカラフを演じてた人らしいが、あまり印象がない。英雄的な歌声っぽいのだが、言葉が悪いが2流のデルモナコという感じ。ルーナ伯爵(ときどき、妙な溜めが入るのだが、それはそういう歌だからかな)と母親も良かった。特に母親の歌手はやたらと説得力がある歌という印象。なぜかはわからないが。で、オーケストラも良いものだった。
で、音楽は良いのだが、やはり話の無茶振りと音楽のとってつけた感がどうにもたまらない。
演出ノートを読むと、この演出家は激情の噴出みたいな言い方をしているが、確かにそんな印象を受ける。
とにかく、突然、強烈なメロディーが脈絡なく流れ出して滔々と歌になる。
それは序曲からそうで、ティンパニだと思うけど、不気味に鳴り続けていると思うと唐突に朗々と金管が明るく鳴り響く。チャンバラしながら歌いまくる、お母さんを助けなきゃとそれまでのことは忘れたかのうように唄いまくる、ジプシーが大合唱をする。なんだこれ。
お話のでたらめっぷりと、それがでたらめだとわかって書いている脚本の無法っぷりもすさまじい。最後の「この裏切者め」「頭に血がのぼっているから何を言っても無駄だわ」の繰り返しによる二重唱とか勘弁してくれという感じだ(結局、ここで頭に血がのぼって同じことを繰り返しているもので逃げそびれて首を落とす羽目になるわけだし、首が落ちたら落ちたで、それまでの愛情をころりと忘れたかのように復讐は成し遂げられたと冷静に叫ぶ母親とか)。考えてみると1幕でもマンリーコは間違えてルーナ伯爵に抱きついたところで裏切者めと歌いまくるわけだが、(むしろ密やかに嫉妬するルーナ伯爵の落ち着きっぷりと好対照)、しかも団体戦では常に負け続けで良いとこ一つもないし。
にも関わらず、これぞオペラっぽい楽しさに溢れているので好きなわけだが。
いきなり冒頭、兵士が集まっているところで隊長が昔話を始める。ジプシーの老婆が状況証拠から先代ルーナ伯爵の息子に呪いをかけたので火あぶりにしたら、その娘が子供を連れ去り焼き殺した。おっかねぇな。で真夜中の鐘が鳴りどきっとさせて次の場へ転換(この演出だと、ここで死神が高笑いするのだが、僕は死神ではなくて、老婆と焼き殺された子供の亡霊が常に復讐がなされるかを見張っているのかと思った)。
すると薄物で作った部屋の中でレオノーラが吟遊詩人に恋をしたと歌う。これは良い歌。窓の下では吟遊詩人を捕まえようと(この時点では単に恋敵だからだが)見張るルーナ伯爵。そこへ朗々と歌いながらマンリーコ登場。薄物のカーテンがばさっと落ちてレオノーラが外へ出て、ルーナ伯爵を間違えて(真っ暗だからで、そりゃ13世紀だか14世紀だかだから、夜は暗いだろう)抱きつく。と、マンリーコ登場。裏切者め、単なる人間違いよ、なんて失礼な暴言だ、というわけで、チャンバラが始まる。ルーナ伯爵はチャーンチャチャーチャチャーチャチャララ、チャラン、チャラン、というやたらとかっこいい歌いながらだからつい剣がすっぽ抜ける、とどめをさせないマンリーコ(この演出では死神が止めるわけだが)。幕が落ちる。
マンリーコは戦いに敗れて瀕死の重傷を負うが母親の必死の看病で一命を取り留めると字幕。
ジプシーの大合唱。金床ととんかちを使うわけではなく単にオーケストラがキンコンカンコンやっているだけなので違和感があるが、かがり火はきれいな舞台だ。母親が陰気な歌を歌う。母さん一体どういうことなんだろう? それはね、私の母親が先代のルーナ伯爵に火あぶりにされたのよ。復讐せよ、と私に叫んだのさ。それで子供を誘拐して殺そうとしたのさ。でも目を見るとかわいくてね、でも母親の声が復讐せよと言うから、頭がくらくらしてきたのさ。気付くと子供が炎の中で燃えている。でも、伯爵の息子はここにいるということは、なんと自分の子供を燃やしてしまったのさ。それで伯爵の息子を育てることにしたわけさね。母さんすると僕は母さんの子供じゃない? おやおや何を言うのかい、私はあのときのことを思い出すと妙なことを口走ってしまうのさ。そうなのか。(納得するなよ)
一方、レオノーラは修道女になろうとしているのであった。それを阻止するために誘拐しようと兵士たちと修道院に忍び込みぎらぎらしているルーナ伯爵。
というような調子で物語は進む。それは無理があり過ぎる、と観客が感づくと途端に舞台の人物は感情が爆発して素晴らしい歌を歌いだす。この演出だとルーナ伯爵は邪魔した尼僧を刺殺していたような。
でも、物語的にはマンリーコは明らかにシスで、ルーナ伯爵がジェダイなのだ。強さもそうだし。
Il Trovatore [DVD] [Import](-)
これを良く聴く/観ているわけだが、格はちょっと落ちても生の舞台で観られるというのはやはり良いことだなぁとつくづくと思う。
Windows固有の話かも知れないけれど、と前置きして、以下の処理の流れがあるとする。
1) プロセスAが実行を開始する。
2) プロセスAは既存のファイルaを置き換えるファイルbを作成する。
3) プロセスAはファイルbをファイルaへコピーする。
4) プロセスAはプロセスBを起動する。
5) プロセスBはファイルaを読む。
この流れで、Bが3でコピーしたaを読めないことがある。
これが、
5) プロセスAはファイルaを読む
であれば、それが失敗することはない。
が、異なるプロセスとなった途端に失敗することがある(成功することもある)。
それが遅延書き込みが原因なのか、ウィルス対策ソフトが原因なのか、両方なのか、より何か上等なキャッシュが原因かはわからないのだが、(なので回避方法が良くわからない。これがCreateFileのようなAPIを使っていれば、遅延書き込み無しみたいなオプションを利用すれば良いのかも知れないが、汎用のライブラリを利用したりしていると、プログラムからの介入方法が見えない('system sync'とかはWindowsでは呼べないし。というか、20年前にはsync; sync; sync; shutdown -h 0 とかやってたものだな)
最初、そんなバカなと思ったけど、よくよく考えてみれば、Rubyのmakeが時々失敗するのも、こういう状況だった。ということは、それなりの頻度で(特に4の後すぐに5のステップが実行される場合)起きるわけで、でも、あまりそれで困ったという話を聞かないので、単なる勘違いのような気もするし、なんだろうかなぁ。
ある朝、母親がハンスにおばあさんの家に行って、卵をもらってきな、と言いました。ハンスはおばあさんの家に行き、卵をもらうと袋に突っ込んで引きずりながら帰ってきました。
母親は袋の中で粉々のべとべとになった卵を見て、ハンスに言いました。ハンスや、卵はカゴに入れて頭の上に載せて持ってくるんだよ。
次の朝、ハンスはおばあさんの家に行って、めんどりを3羽もらいました。カゴに入れて頭の上に乗せると、めんどりはそのまま飛び降りてどこかへ逃げて行ってしまいました。
母親が、もらうものを想定して運び方を指示すりゃいいとは思うが、こういうやつはいる。何かひとつのルールをもらうと、汎用的なものだとなぜか考えてしまうのだ。
というわけで、オーケーウェーブの人は、きっとMAPIとかTAPIをエムアーピーアイとかティーエーピーアイとか呼ぶんだろうな(というか、回答しているやつが、母親並だ)
追記:寝ぼけながら書いていたせいか、結論は『「アピ」、「エーピーアイ」どっちとも呼ぶって書いてました。』としていた。教える側は母親でも、教わる側はそれ以上を学んでいる良い結末。(きむらさんのとこからというか、きむらさんもそこを引用していた)
スティーブ・ジョブズ 「4年間分の新製品を準備してある」に向井さんが、「何そのセルダンプラン……」とコメントしていたのがえらくおもしろかったのだが、おれには錦袋のほうがしっくりくるのだった。
銀河帝国の興亡 1 (創元推理文庫 604-1)(アイザック・アシモフ)
(こっちを読んだ世代)
で、3.がまさにそう書いているので2度笑うことになった。
static char *rip[] = { " ----------", " / \\", " / REST \\", " / IN \\", " / PEACE \\", " / \\", " | |", " | |", " | |", " | |", " | |", " | 1001 |", " *| * * * | *", " _________)/\\\\_//(\\/(/\\)/\\//\\/|_)_______\n", 0 }; center(line, text) int line; char *text; { register char *ip,*op; ip = text; op = &rip[line][28 - ((strlen(text)+1)/2)]; while(*ip) *op++ = *ip++; } outrip(){ register char **dp = rip; register char *dpx; char buf[BUFSZ]; register x,y; (void) strcpy(buf, "dmr"); buf[16] = 0; center(6, buf); (void) sprintf(buf, "%4d", 2011); center(11, buf);rip.c
モラージュ菖蒲でライオンキングを観た。3D吹き替えのやつ。事前にチケットシステムで予約をしたのだが、まったく席がふさがっていないというか、ここまでがらがらなこともあるのかと驚くほどで、実際に開場しても土曜の昼というのにがらがらだった。ディズニーとは言え、旧作についてはこんなものなのか。
映画そのものは、以前、DVDを借りて観たことはあるのだが、シネコンの小さなスクリーン(iMAX-3Dではない)であっても、やはり映画館で観るのはちょっとどころかずいぶんと違う。音の違いが特に大きい。
冒頭、シンバの誕生を祝って動物が駆けつけるところで聴こえるネズミの足音。音も良いが、ちょっと驚くほど3D化がうまく行っていて、不自然ではなく奥行が表現されていて不思議なものだ。時期的に元のフィルムはフルアニメーション+CGなのだと思うのだが、フルアニメーションの箇所はどう加工するのだろうか。というようなところを気にするのは最初のあたりで、映画が始まれればそういうことはわりとどうでも良くなる。
とはいっても内容自体はなんともアラが多い(ツッコミどころが多過ぎる)のだが、そのツッコミどころを逆用してヴァリエーション(ミーアキャットとイボイノシシを主役にしたハクマナタタのこと)を作ったりできるのだから、それは計算の範囲内なのかも知れない。
ライオン・キング ブルーレイ・トリロジーセット (期間限定) [Blu-ray](ディズニー)
(全部入りはブルーレイのみ。おそらく、自ら追放された正統派の回帰劇、社会的に追放された傍流の正統性獲得劇、非社会人の社会参画劇という、社会に対する3つの立場から同じ世界を子供が楽しめる娯楽作品として書き分けるというのは、特に2番目の存在から、他に例をみない試みのような気がする)
ライオンキングはもちろんお子様向けなのだが、ディズニーのアニメの中でも異様なほどエロティックなラブシーンが展開されて(たとえば、同時期のアラジンもホールニューワールドの見事な音楽の中でマジックカーペットのワールドツアーデートとかあるわけだが、それを観てもまったくエロティックな雰囲気を感じないわけだ。ムードはあるにしても。ところが、ライオンキングの今夜はちょっとぞくぞくしない? (意訳)はちょっと異質で、それはひとえに猫族特有の首筋の美しさが理由なのだと思うのだが異様だ。当然、バランスはあまり良くない。その直後に老師による「否」攻撃による自己発見だのがあったり、そのラブシーンの合間にミーアキャットとイボイノシシの冷徹な批評が入ったりするわけで。
イボイノシシが実は非常な賢者で(星についての的確な推測とか)ミーアキャットが本当に何も考えていないという設定の妙とか(ハクナマタタではこの設定が極限まで追求されていて、あの愉快な雌ライオンの訴えを2人がそれぞれ別個に解釈するシーンになる)、スカーのナチス風演説が、スラムに住む工場労働者とブルジョアの融合政策(国家社会主義というのは政治的にはそういうものだ)であるとか、細かく練られた脚本も悪くない。
WEB+DBの1~60総集編をいただきました。というか、僕もかって寄稿したから、勝ち取りましたと言ってもいいのかも知れません! というくらいに、価値ある1冊というかDVD1枚というか。
WEB+DB PRESS 総集編 [Vol.1~60](森田 創)
DVDにはpdx(知らなかったけど、PDFのインデックスなのかな。ダブルクリックしたらAdobe Readerの検索ツールが起動した)が入っていて、それなりの速度で検索できる。
試しにartonと入れてみたら、13冊ヒットした。けど、そんなに寄稿した覚えないし?と思ったら、RubyのインストーラとしてASRが紹介されていたりするからだった。(で、今は亡きinfoseekのURIが出ていたりするけど、今はRuby MSI Packagesです)
メディアがDVDだから検索そのものは早いけど、結果のPDFの表示までは多少待たされたりもする。けど、これはよいものだな。
で、技術トレンド追っかけ系雑誌10年分の実用性については、ぱっと考えると3種類ある。
1) 必要となったときの早わかり性
システムは意外と長寿ということは、いきなり仕事でEJB2が災厄のように降りかかってくることもある。で、良くわからないのだが……というようなときにその技術が旬だったころのWEB+DBの特集を読めば、必要なことは大体わかるはずだ。なぜなら、その技術が旬だったときにそのシステムは作られたはずだし、であれば、それを作った連中はWEB+DBを読んでいたはずだからだ。素晴らしい。
で、EJBで検索すると(並べ替えが「適合性のランキング」の場合)、Vol.13 (2003年だから小学校に入学したと思ったらもう来年高校受験ですなという時の流れがある。大卒2年目の人だとすると高校2年というところか。いずれにしても遠い過去の話だ)がヒットして、開いてみるとセッション/トランザクション特集にEJBが出てきて、もう一つの特集がそのものずばりの「はじめようEJB」だったりする。
なんとなく想像だけど、相当多数の(エンタープライズ系の)システムは、2004年で時が止まっているんじゃないかと思うわけで、StrutsとかJakarata-Commonsを使った遺跡のようなシステムを発掘するときにはすごい強い味方になるのは間違いないだろうな。
2) 基礎的なことの早わかり
まっとうな雑誌なら、ときどき新人用特集があって(顕著なのはインターフェイスだったけど)WEB+DBも4月号を追っかければ……と思ったけど必ずしもそうとは言えないかも。でも大ざっぱには、4月号がはじめて、新人、基礎、入門で、それが2月号になると設計入門(どっちにしても入門だけど、2月号の入門は使い方から使わせ方に軸足が移るので随分と違う)なので、10年分の4月号の特集を読んどけばよろしいのではなかろうか。
3) トレンド観察
10年たつと埋もれた技術が熟成して食べごろになっている可能性がある。EJB2にはあり得ないだろうけどな。というか、2001年8月(Vol.4)には宮川達彦「CVSによるWebシステム開発徹底入門」という記事があってCVS? と思って読むと、「せっかく徹夜で機能追加したのに、……のやつローカルの古いファイルで上書きしやがった!」とかで始まり、本当にCVSなんだと10年という時の長さに唖然とするのであった。(いや、今でも確かにCVSレポジトリも動いているけど、そう考えるとSVNの天下って短かったんだな)
あるいは、驚くべきことに、WEB+DBという名前であるけれど、目次を眺めているとJavaScriptが出てくるのが2005/06(Vol.27)のAjax―JavaScriptによるユーザビリティ革命と2006/02(Vol.31)のAjax&JavaScriptフレームワーク活用術の2つで(Vol.53はちょっと微妙なところ。あとActionScriptが出てくるけどこれも違うような)、その少なさにびっくりした。(もちろん検索すれば、62文書、3222件というわけで、どの号にも必ず出てくるわけだから、あまりにもそこにあるのが当たり前でわざわざ特集にならないということだと言えばそれまでではあるけれど、でもちょっと驚いたのは事実。でも実はVol.60がjQuery特集なのだがJavaScriptという文字を探したので最初気付かなかったのだった)
ではVol.1ではどうJavaScriptがでてくるかというと、JSPとの対比でASP(ActiveServer Page)を説明するところ、HTMLのソース、クライアントサイドの処理はJavaScriptというような言及オンリー、犀の第3版のプレゼント……一番長生きしている技術の1つなのだが、そういうものだ。それだけにAjaxで注目を浴びるわけだが、それが2005年、上で書いたようにサーバサイドJavaが確固たる位置を確立しきって(そのままレガシー化した)のが、2004年あたり、というところの時期的な妙味を楽しむのもなかなかに乙。
とまあ、おもしろいものですな。
CVSの天下が(ぼろぼろだったとは言え)長かったのは、RCSの発展解消版だからだなぁというか、いつの間にかGitが普通になっている、というところから、次のような歴史物語を思いつく。
SCCSが京都の天皇なのは良いがもちろん実権は鎌倉の北条RCS幕府にあって、それがBSDとSYSVの融合のどさくさのうちに足利CVS幕府が天下を治めることになり、長い時代が続くのであった。幕府(武家政治)は一見安定支配をしているように見えるもののエクセル管理派後南朝だの名前の後ろにyymmdd.bakという戒名付けるぞ高野山だの山名宗全VSSだのとの戦いに疲弊しているところに、ついに過去の遺物をきっぱり捨てた鉄砲伝来バイナリDBの織田信長が天下SVN(Arch今川とかClearCase武田とかをすべて撃破)。が、あっという間にBitKeeper光秀が取ってかわったのは良いものの君主弑逆ライセンス問題からMercurial日吉丸の時代到来と思いきや天下分け目のGit徳川。
もちろん、おれはWindowsではVC++を使うし、ましてEclipseは使うはずはないのだが、でも、EclipseにMingwを統合したやつが出現してVisual C++の市場を蚕食して欲しいなぁとは強く思う。
IE7, 8, 9, 10を眺めたり、WP7を眺めたりして、実に強く思うのだが、マイクロソフトは尻を力いっぱい蹴飛ばす強力な敵がいないとダメな会社なんだな。
で、VC++がC89のままってのは、やはりいろいろ厄介だ。が、おれはポリシーとしてVC++を使うわけなので、とすればEclipse+MingwがマイクロソフトがびびるくらいにVC++の市場を奪えば、やつらは死にもの狂いで最高のC99環境をVC++に載せるだろう(それ以外の組み合わせはちょっと考えにくい)。(コマンドラインのMingwってのは趣味の世界なので敵にはならないのは、インテルのやつが高度に専門家の世界なので敵にはならないのと同じことだ)
が、そもそもCって既に死んでいるんじゃないか? という疑念が湧く。MRIのソースを眺めることが多いので、たまたまCを普通に目にするだけで、それが特殊事情って可能性は捨てきれない。そりゃ死んだプロダクトにコストを振り向けるまともな企業はないからなぁ。
とすれば、Cがホットな存在になれば良いわけで。
とすれば、かえすがえすもAndroidが組み込みっぽいのにCじゃなくてJava(もどき)なのが残念なところだ。みんなJavaとかC#とかじゃなくてCを使えば良いのになぁ。
横浜へキャッツを観に行った。生涯はじめての劇団四季だ。
もちろん、浅利慶太というのは何よりも自民党マーケティングのブレインだし、有名なところだと中曽根-レーガン檜原村会談のちゃんちゃんこ演出家なわけで、30年前ならそんなやつの劇団に金を落とすことなんてありえないわけだが、もう自民党というのはかすのようなデマゴーグ野党になりきっているからどうでもいいやんというわけで、自己規制を解除して観に行った。
で、劇場の雰囲気づくりも良ければ、役者も良く練り込まれていて観ていておもしろく約2時間半の楽しいひと時を過ごせたのであった。日本語化についてはいろいろ思うところもあるが、映画ですら吹き替え版がロードショーにかかるご時勢だからそういうものだろうと思うし、舞台には不満はない。ただ、ミスターミストフェリーズがそれは出ずっぱりで歌いまくりの踊りまくり(しかもバレエ並にくるくる回った後に跳びながら回る)で疲れているとは思うがカーテンコールでいちいち顔をしかめて出てくるのはあまり良い気分ではなかった。それともそういうマジックという演出なのかも知れないけど。
それよりも興味深かったのはプログラムで、冒頭に8000回公演(30年)というのを題材に浅利慶太が、おれさまがミュージカルを日本でビジネスとして成立させたのだ! という自慢話を書いている。
普通は自慢話なんかに興味はないのだが、現実にミュージカルをビジネスに乗せて、常設劇場を持って運営している(唐十郎の太鼓橋ですらパルコ文化が消えたら良くわからないことになったわけだし)、つまり自慢も何も本当にビジネスとして成立させたのだから、その話は傾聴に値する。
ぱっと思い出してみても、寺山修司は家出小僧を集めて仕事を世話してその一方で劇団員をさせていたわけだし(自前の小屋は持っていたがおそらく自分の印税などを投資していたはず)、唐十郎の場合はテントを使うことで入れ物の問題は解決してはいたけれど役者には給料を出していたはずだが恒久的なものとはならず結局根津甚八も小林薫も外に出て役者としてやっていっているわけだし、そもそも季節興業で常設興業ができていたわけではない。(浅利慶太の自慢話を読むと最初の時点ではテントを使えば……というのがあるので、そのあたりは唐十郎という先駆者がいたからだろうけど)
で、とっかかりで重要だったのは次のあたりのようだ。
1) 海外で成功した(かつ日本でも受け入れやすそうな)やつを安価に興行権を入手
キャッツの大当たりを観て、日本でも当たると踏んで(これは正しいと思う。というのはこの作品はTSエリオットの詩が元ネタで、1) 元が詩なので個々のエピソードは細切れでかつ比較的抽象度が高いため文化的背景などが共通でなくとも成立可能 2)実際に荒地とか読んでいなくてもTSエリオット原作と言えば「ほーそれは良いもので」とまでは言える程度に知名度と文化的な雰囲気があることが理解できる程度に知名度があるからだ)、しかもロイドウェーバや演出家と知り合いなのでおれにやらせて、ああいいよという調子で興行権を確保できた。これがジーザスクライストスーパースターやロッキーホラーショーとは違うところだ。
2) カルチャーという不思議なものに金を出す雰囲気が社会に蔓延していた時宜をうまくとらえた
パルコの唐十郎もそうだが、バブルに入っていたのはありそうだ。が、浅利慶太が見事なのは、テレビ局とタイアップし、かつ、CMをがんがん流させたところにある。しかも運営委員をこしらえてテレビ局を委員の1 of themに抑え込んだところ。まあ、自民党マーケティング担当だけのことはあるが、それはやはり頭を使う人というのはきっちりと使いどころと使い方を知っているのだなぁと感心する。
3) 地方の扱い方
……(面倒なので省略)
と、さすがに老境なのか自慢話だし、しかし老獪な男のことだから手の内をすべて見せているわけはありえないのだが、にもかかわらず(ただし、上で挙げた2は今は異なるので、マネはできないだろうと踏んで手の内を見せたのかも知れないけど)読んでいてえらくおもしろい。
いや、すげぇやつだ。(もちろん、最も重要な点は、現実にショーとして見事にできている点を外してはいけない。元ネタがどれだけ良くてもダメな演出、ダメな舞台というのはあり得るのだが、少なくとも今日見た限りは良い演出、良い舞台、確かにこれは体験する価値があるまともなミュージカルで、心から楽しめる)
ところで、1)のロイドウェーバが友達というのは結構おもしろくて、ショービズの世界でもイギリスあたりではそういうコネクションで興行権を確保するとかできるのか、とちょっぴり疑問ではあるけれどとりあえず額面通りに読む(まだエビータ、ファントムとさらにヒットを飛ばしまくる前というのもあるだろうけど)。と同時に、やはり持っておくべきものは同じ専門家の仲間であり、付き合いであるなぁと思う。ああいう世界でも演劇祭とかは一種のカンファレンス兼勉強会みたいなものなのだろう。で、そういうところには手弁当でも出かける意味も意義もあるってことなのだろうな、いずこも同じであるなと感じたのだった。
(もっともこんな本がすでに存在した後だから書きやすいというのはあるのかも)
が、本人が書いた自慢話のほうが賛美本よりおもしろいよね。
ミストフェリーズは本物のほうが好きだ。ウェーバ版だと役に立つ重要なネコだけど、エリオットのやつでは単なる気まぐれな手品師(なのでへそ曲がりのランタムタガーと仲が良いのだろう)で、上から下まで黒くてかわいい。
実際のところ、紙の本は肉体的にいまや相当辛い状態なのだが、その一方で置き場にはそれほどは困っていない(と書いたところで、寺田に段ボール箱を何箱も預けていることに気付き愕然としたりするのだが)し、割と気楽に紙で本を買っているので、たださんみたいに電子書籍を取り巻く状況をしっかりと観て回っているわけではない。
ので、TLとか経由で目につく範囲の印象論になるのだが、どうにもまともな論議がされているようには思えない。
メディアが変わるっていうのはすさまじいチャンスが360方向に転がっているはずなのに、なんか「紙の本と値段が同じ」とかのような、はっきり言って乞食かお前はとしか言いようがない低レベルな感想とかが目についてうんざりだ。黙れ貧乏人としか言いようがないね。
電子化のメリットといえば、何をさておいても、表示の自由(拡大、縮小、反転、なんでもだ)、抽出の自由、検索の自由、追加の自由、符号化の自由じゃん(自由というのは、この場合、無料でもGNUの自由でもなく、好き勝手に多様な方法でどうにでも出来るという意味の自由(GNUの自由と同じだった)。プログラム作って検索しても良いし、grepでもいいし、RDBMSに突っ込んで検索しても良いし、キーワードをマークアップしたものをこしらえてそれを使っても良いしとか、そういうこと)。というか、それ以外にあるのか?
が、目につくものは、DRMがどうしたと、紙より安くなる期待アゲのような、売り手側と買い手側双方が乞食根性丸出しの話ばかりだ。
たとえばだ、戦後(この場合は1946以降という意味)のある特定の語彙の興亡とかを調べたいとする。そういうときに各年のたとえばわかりやすい例として直木賞(わりと普通の語彙)と芥川賞(わりと気取った語彙)を現代まで一気通貫で出現頻度を出す、というようなことをやりたいとして、ここまで書いて頭を冷やすと、ちょっと発散したけど(元は自分が所有する話であった。でも文芸春秋社が、そういうやつを電子化して出せばそれで可能になるわけだが、そういうレベルではないのが問題)、面倒になったからおしまい。
コンテナとしてはテキストのみの抽出と、レイアウト込みで表示する仕組みの両方をサポートできるものならなんでも良いけど。
なんか妙に画がすっきりしてすかすかした感じになっている。腹刺されて死にかけているからってことはないだろうけど。
で、突然、思い出したが、悪魔と天使が対決して、天使の最後の一発で悪魔が死の危機から脱するというマンガがあったなぁ。
まさか、そういう筋にはならないと思うけど。
一つ目は抽象化したクラシックバレエという趣でおもしろくなくはないのだが、冒頭の間違えたのかそういう曲なのか区別できない不協和音にイラついて楽しめなかった。
で、ギエム登場。もう出てくるだけで、ギエムだーと色眼鏡をかけてしまうわけだから否応なく引き込まれる。まだ、楽しくってしょうがない二人暮らしの情景がいきいきと踊られる。
三曲目は面白かった印象だけしか無い(すぐ書かないと忘れてしまうものだな)。
で、休憩はさんで田舎暮らしのやつ。
で、思うに、既存出版社は旧刊を文庫の5倍くらいの価格でDRM無しで売ればいいんだよ。旧刊は元々テキストが無いんだからテキスト化するのに金がかかるのは乞食にも理解できるだろう。それに、一般論では、高額商品を入手した人はシェアをしない傾向にあるらしい(カジュアルにコピーすることに価格が抵抗感を生むらしい)。
で、それがどれだけ売れて、どれだけシェアされるかから、消費者の民度がわかるわけだから、そこから降りるか続けるか決めれば良い。取り敢えず、安部公房全集をよろしく。
あるHTML群を変換してデータセットを取り出すプログラムが必要になった。
が、HTMLはそれなりにあるし、しかし数は有限個で、しかも大体同じような形式で作られている。
のこぎりというほどのことはないし、そもそもC#で実装したいわけだ。
で、正規表現を使って開始、中間(ループする)、終了の3つの正規表現の組み合わせを複数用意して、最初に開始に引っ掛かったところで、終了にひっかかるまで中間を繰り返し適用して値を抽出してレコードセットを作るという実装とした。
で、あるHTMLについては<!-- ここから始まる -->をそのまま開始の正規表現、<!-- ここまで -->を終了の正規表現として、そこまでは話は楽だった。
が、中間の部分が、12個くらいあるTDから8個程度のTEXT要素を取り出すのは良いのだが、良くわからない基準でコメントアウトがされるTDがある。で、結構それまでは頭を使わずに、>\s+<TD[^>]+>([^<]+)[^>]+>\s+みたいな感じで、~が出てくるまでは読み飛ばすだのグループに含めるだのやっていたのだが(実際にはIDを拾ったりJavaScriptの引数を拾ったりするので、もっと複雑だが、たいていは([^']+)'だの([^"]+)")で済んでいたことに変わりはない)、そのてが効かなくなった。で、何気なく.+<TD(この後ろに特徴的な属性とかIDとかを指定している)とか書いてみたら、あっというまに最後のやつを拾ってきて(つまり1セット分しか取れない)、ああ、そうか最長一致かと気付き、.+?<TDとか書いたら何かおかしい。
Visual Studioでデバッグ開始するとIEがずーっと止まっている。なんか連携がうまくいかなくてIEがはまっているのだろうとか最初は考えていたが、良くみるとCPUが50%(デュアルコアだし)で張り付いていたりして、最初何が何だかわからなかった。
で、結局.をほとんど使わないように(?:<--\s*)?とかを入れて書き換えたわけだが、なるほど、へまな正規表現はへまなSQL並に危ないなと実感したのだった。
knuさんの日記を読んでいて思い出した。子は育つ、親も育つ
随分以前の話だが、大学時代の友人が久しぶりに家に遊びに来て、まあつもる話とかも一通り終われば、他に話すこともなくなって、そこで自分の子供のことを話し出した。こんな話だ。
近所に動物園(多分、想像すると千葉公園とか井の頭公園のやつみたいな小規模なやつだと思う)があるんで、子供を連れて行った。そうしたら、妙に猿山が気に入ったらしい。それで、しょっちゅう、猿を観に行こう、猿を観に行こうとねだるんだ。
仕事から早めに帰って、さあ一休み、と思うと、猿を観に行こう。
今日は休みだからちょっと二度寝、と思うと、猿を観に行こう。
ある日、うんざりして、お父さんは本当は猿が嫌いなんだ、だから本当は行きたくないんだ。
と言ってしまった。
子供はびっくりして訊きかえした。なんで?
実はお父さんは子供のころ、やっぱり猿が好きでしょっちゅう観に行っていたんだよ。そこの動物園は柵の向こうに猿がいるんだ。で、お父さんは柵に掴まって観ていたんだ。
すると一匹の猿が近づいてきた。と思うと猿は柵の間から手を伸ばして、さっとお父さんの帽子をひったくって向こうへ行ってしまったんだよ。びっくりしたし、取られちゃって悔しくてお父さんは泣いちゃったんだ。それから、お父さんは猿が嫌いになったんだ。
すげー出まかせだ。と俺がつっこむ。
いや、実は本当の話なんだけどね。
そうなの、お父さん、ごめんね。と子供がすまなそうな顔をしたもんで、しまったくだらないことを言ってしまった、と反省して、結局、その後も猿山へ行ったんだけどね。
ところが、それからも猿を観に行こうとねだるんだけど、それまでと1つ違ったことがある。猿を見たあとに、こっちの顔を観て、「お猿さん、悪いんだよね」とおれに憤慨してみせるんだ。ついでに猿に、「お猿さん、お父さんの帽子を取っちゃだめなんだよ!」と怒ったりするんだぜ。いや、その猿はおれの帽子は取れないと思うけど、どうも、おれが猿を嫌いといったのをやつなりに解釈して帽子の心配をしてくれているのかも知れない。いずれにしても、おれに気を遣っているのは間違いなさそうだ。
やー、本当、子供にくだらないことを言っちゃだめだなぁと痛感したよ。でも、本当に子供っておもしろいよなー。
と、そんな話だ。
その友人が帰ったあと、妻(まだそのころは違ったが)と、猿の話はおもしろかったねと話し合ったのだった。で、妻が言うに、この年になると子供の話を聞かされることは多いけど、お前の子供のことなんか知ったことかっていうようなつまらない話ばかりだ。でも、あの人の話はずいぶんと面白かった。どうしてだろうと考えると、どうも客観性があるからみたいだ。ああ、確かに、とおれも応える。
それを思い出したのだった。
同じく、siroさんのてんぐしゃーんを読んだときは面白すぎて死ぬかと思ったものだ。というか、今読み返してもやはり死にそうだ。
--- misc/plugin/ping.rb.bak 2011-10-30 09:58:56.000000000 +0900 +++ misc/plugin/ping.rb 2011-10-30 10:00:02.000000000 +0900 @@ -34,7 +34,7 @@ def ping( list ) require 'net/http' require 'timeout' - Net::HTTP.version_1_1 + Net::HTTP.version_1_1 if Net::HTTP.respond_to?(:version_1_1) threads = [] list.each do |url| threads << Thread.start( url, xml ) do |url, xml|
~/public_html/hiki/hiki/db$ diff -u -b ptstore.rb~ ptstore.rb --- ptstore.rb~ 2009-09-01 23:27:30.000000000 +0900 +++ ptstore.rb 2011-10-30 11:20:28.000000000 +0900 @@ -25,6 +25,8 @@ class PTStore < PStore def transaction(read_only = false) raise PStore::Error, "nested transaction" if @transaction + value = nil + @lock.synchronize do begin @rdonly = read_only @abort = false @@ -98,6 +100,7 @@ @transaction = false file.close if file end + end value end
今日1.9.3-rc1にしたと思ったら、すぐに1.9.3-p0になった。
-Rails 3.1.1
-Ruby 1.9.3-p0 (x64 mswin64) …… ついに1.9.3正式リリース版になりました。開発に携わったみなさん、お疲れ様でした!
-tiny_tds 0.5.0
-activerecord-sqlserver-adapter 3.1.3
-was-storage
production環境で実行する場合、アセット周りの設定がいくつか必要です。日本語マニュアルを参照してください。
マイクロソフトのサイトで、『Ruby on Rails を Windows Azure で使用する』が公開されました。
演能と能楽堂、荒井さんが開発した能楽堂コンパニオンについて解説しています(チュートリアルの内容が能楽堂1.1.7 - Rails 3.1.0ベースになっているため、多少1.1.9 - Rails 3.1.1と異なる点があります)。
ジェズイットを見習え |
_ shinh [はい、だいたいそういう形のものを一般的な感じだと考えています。 ksk さんの書かれた文章が僕の中ではわかりやすいで..]
_ arton [おお、そのkskさんのはわかりやすいですね。どうもありがとうございます。 Ken Tompsonのは、なんでforで..]
_ arton [自己フォロー:%dについては「これそのものは違うけど生成したやつがQnineになっているから勘弁な」と書いてあった。]