著作一覧 |
いずれにしても、スコープルールがよろしくないのは議論の余地がないと思うので、とはいってもJavaを利用する限りは現時点ではそういうルールなのでとりあえずはしょうがない。
ではどうするのが良いのだろうか? という点に絞って考えてみる。
BufferedReaderについては明かなことがある。
それは、このクラスが利便性追求クラスだということだ。
というのは、すでにしてFileReaderがあるのだから、実際問題としてBufferedReaderのメリットは(バッファリングなんてOSが勝手にやってくれるのだから、別にJavaのクラスでやらなくても良い)、readLineメソッドの存在にある。
つまり、行指向のテキストファイル(CSVもそうだし、プロパティ形式もそうだし、まあ、世の中たくさんある)の読み取りを簡単にするための存在である。
java.io.*には、IOExceptionを飲み込むクラスがいくつかある。それらはIOExceptionをスローするクラスに対するデコレータで、特徴は利便性を追求したメソッド群の提供にある。
具体的には、PrintWriter。こいつはIOExceptionをスローする代わりにcheckErrorというエラー発生問い合わせメソッドを持つ。
なんという不統一。
BufferedReaderもしょせん利便性クラスなのだから、同じことをすれば良いのだ。あるいはどうしてもバッファリングを提供するということを目的にしていると言うのであれば、同じようなFileReaderのデコレータとしてLineReaderというようなクラスにしても良かったのだ(このほうが、readLineメソッドを提供するという特徴からはむしろ良いかも知れないが、かといって似たようなクラスがこれ以上増えるのも問題ではある)。
かくして、PrintWriterと同様な割り切りをすれば、readLineを提供するという目的に合致するのは、以下の実装である。
boolean error; public Iterator<String> iterator() { return new Iterator<String>() { String line; public boolean hasNext() { try { line = readLine(); } catch (IOException e) { error = true; } return line != null; } public String next() { return line; } public void remove() { throw new UpsupportedOperationException("read only"); } }; } public boolean checkError() { return error; }
これならば、元に戻って、forをうまく利用できる。
for (String buffer : bufferedReader) { foobar(buffer); if (buffer.checkError()) { ... // 必要なら } }
実際には未定義なので、もしforを使いたければ、次のようなぶかっこうで反DRYな方法となる。
for (String buffer = bufferReader.readLine(); buffer != null; buffer = bufferReader.readLine()) { foobar(buffer); }
でも、別の考え方もある。
もし、foobarを以下のように実装したらどうだろうか?
boolean foobar(String buffer) { if (buffer == null) return false; .... return true; }
もし、そうであれば
while (foobar(bufferReader.readLine());
どえらくシンプルで美しい。
でも、この美しさは、やっぱり偽りのもので、foobarがなぜ、BufferedReaderの代わりにEOF判定しなきゃならんのだ? ということになる。
実はもっと良い方法、つまり、IOExceptionの飲み込みもせず、役割をおかしな位置へ移動することもせずに済む方法、がある。
そもそもIOExceptionの飲み込み問題が起きているのは、Iteratorが外部にあるからだ。
次の標準イテレータの存在を仮定する。
public interface InternalIterator{ /** @return 列挙を中止するのであればfalse */ boolean next(T data); } ... public void readLine(InternalIterator i) throws IOException { ... }
この場合、元のアプリケーションは以下となる。
br = BufferedReader(...); try { br.readLine(new InternalIterator<String>() { public boolean next(String data) { foobar(data); return true; } }); } catch (IOException e) { ... }
美しい。
今までと同じ方法でMSI化しても、なぜかインストールに失敗する。 よーく動作を眺めていると、最後にバッチファイルへパス名を埋め込む処理(一瞬rubyを実行するためのコンソールが表示される)の直後だということがわかる。
が、%TMP%へ作成しているはずのログが存在しない。
ってことは、post-install.rbを起動していないってことか?
はて。
でさらに何度か実行しながら%TMP%の内容を確認していると、MSIで始まるファイルが増えていることを発見。名前から行くとMSIのログだろう、というわけで中を見ると、うーん、わからん。
エラー 1722。 この Windows インストーラー パッケージには問題があります。セット アップの一部として実行されるプログラムは正しく完了しませんでした。サポート担当者 またはパッケージのベンダーに問い合わせてください。 操作 _3939ABBB_71C9_4592_B43D _6ED4B52BC86D, 場所: C:\Program Files (x86)\Ruby-1.9.1\bin\ruby.exe, コマンド: " C:\Program Files (x86)\Ruby-1.9.1\bin\post-install-1.9.rb" "C:\Program Files (x8 6)\Ruby-1.9.1\bin" === ログ終了: 2010/07/04 21:26:27 ===
しばらく考えてみるに、引数に与えているパス名がくさいということに気づく。
実は、MSIがエラーダイアログを表示した時点ではロールバックは行われていない。OKしてからだ。ということは、この時点でのインストールイメージは展開されていることになる。
ならば、post-installを手で実行してみるチャンスがある。
c:\PROGRA~2\Ruby-1.9.1\bin>ruby "C:\Program Files (x86)\Ruby-1.9.1\bin\post-install-1.9.rb" "C:\Program Files (x86)\Ruby-1.9.1\bin" Error loading gem paths on load path in gem_prelude unknown encoding name - filesystem <internal:gem_prelude>:69:in `find' <internal:gem_prelude>:69:in `set_home' <internal:gem_prelude>:38:in `dir' <internal:gem_prelude>:76:in `set_paths' <internal:gem_prelude>:47:in `path' <internal:gem_prelude>:286:in `push_all_highest_version_gems_on_load_path' <internal:gem_prelude>:355:in `<compiled>' ruby: unknown encoding name - Windows-31J (RuntimeError)
なんか、とてつもなく厄介そうだということはわかった。
あと、どうでも良い気もするけど、Web時代のエラーメッセージには、<は使わないほうが、開発者フレンドリーだよな。
途中で寝てしまったので、続き。
で、何が悪いか考えてみる。元々MSI化する前は遅延IOに関する以外は目立ったエラーもなくnmake testできているのだから、さすがにこれはおかしい。
c:\PROGRA~2\Ruby-1.9.1\bin>ruby -v ruby 1.9.1p429 (2010-07-02 revision 28523) [i386-mswin32]
普通に実行はできるから、gemに関する、つまりrequireがまずそうだ。
c:\PROGRA~2\Ruby-1.9.1\bin>ruby -rwinpath -e 'p 1' Error loading gem paths on load path in gem_prelude unknown encoding name - filesystem ...
確かにその通り。winpathはvendor_libだからかな?
c:\PROGRA~2\Ruby-1.9.1\bin>ruby -rfileutil -e 'p 1' Error loading gem paths on load path in gem_prelude unknown encoding name - filesystem ...
関係ないや。
1元ネタのほうはどうだ?
C:\usr\bin>ruby -rwinpath -e 'p 1' 1 C:\usr\bin>ruby -rwinpathx -e 'p 1' ruby:0:in `require': no such file to load -- winpathx (LoadError)
普通だ。ってことは、何かインストールしていないもの(エンコード関係)があるってことかな。
と、アタリをつけて更に調べることにする。
追記:と、昨日は寝ぼけながらパッケージング化していたため、libの下をほとんどパッケージに入れていなかったことがわかってびっくり。そりゃ動くはずがない。
マイクロソフトで、Windows版Rubyと、いかにしてASRがWindowsの流儀に合わせているかについてのセッションを行いました。ご来場くださった皆様、招待くださった荒井さん、スタッフの方に、楽しい時間を過ごすことができたことを感謝します。ありがとうございました。
内容は、以前札幌RubyKaigi2008で行ったASRの紹介を2010年用に変えたものです。といっても、ASRは結構安定しているため、新たに追加したDXRubyのデモの追加とか、VisualuRubyのサンプルのデモ実行とかが加わった程度です、と思います。
最新版のRScriptからはIE内での実行を行えない(MSHTAなどのIEコンポーネントをローカルに実行するプログラムからは実行できます)ように制限を付けましたが、最初に行われた荒井さんのセッションではIronRuby(というよりもSilverlight)でHTMLのDOMを操作したりする方法が紹介されていましたので、今後はIE組み込みにはそちらを利用したほうが良いでしょう。DLRのデバッグコンソールはそれだけで十分に良さげでした。
発表資料は、PDFまたは、Slideshare(20分近く経過してもupload処理が完了していないようなんだけど、見えるなぁ?)からどうぞ。
終わった後の懇親会みたいな場で、CreateProcessを利用してforkを実装できるのではという話があって、そこではIOの共有をどうするのか、といった話をしましたが、さらに(う)さんに伺ったところ、それ以上に、起動したプロセスをforkした次の命令から実行させることが重要と指摘されました。もっとも、サスペンドさせることはできるので、次にEIPを設定させてどーんと動かすとかやればできそうではあります(結局有効化されていませんが、僕自身もRScript内部にはIActiveScriptのメソッド経由で実行スレッドをサスペンドさせてEIPを塗り替えて強制終了させる機能を実装したので、おそらくプロセスをまたがっても(最悪、ワーカスレッドを利用するとかして)可能だろうと踏んでいます)。が、それ以上に問題は、別にforkが実装されても嬉しいユースケースが見当たらないため、そういった実装をわざわざしてくれる人がいない、という点でしょう。というわけで、実装パッチは歓迎とのことです。
そういえば特殊なフォルダはScripting Runtimeの何かを使えば取れたなぁとMSDN見ながら試してみると、Program Filesが無いことに気付く。
#!/usr/local/bin/ruby -Ks require 'win32ole' ws = WIN32OLE.new('WScript.Shell') %w|AllUsersDesktop AllUsersStartMenu AllUsersPrograms AllUsersStartup Desktop Favorites Fonts MyDocuments NetHood PrintHood Programs Recent SendTo StartMenu Startup Templates|.each do |nm| puts "#{nm}=#{ws.specialFolders(nm)}" end fs = WIN32OLE.new('Scripting.FileSystemObject') %w|WindowsFolder SystemFolder TemporaryFoler|.each_with_index do |nm, i| pn = fs.getSpecialFolder(i) puts "#{nm}=#{pn.path}" end
testユーザが実行するとこんな感じ。
AllUsersDesktop=C:\Users\Public\Desktop AllUsersStartMenu=C:\ProgramData\Microsoft\Windows\Start Menu AllUsersPrograms=C:\ProgramData\Microsoft\Windows\Start Menu\Programs AllUsersStartup=C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup Desktop=C:\Users\test\Desktop Favorites=C:\Users\test\Favorites Fonts=C:\Windows\Fonts MyDocuments=C:\Users\test\Documents NetHood=C:\Users\test\AppData\Roaming\Microsoft\Windows\Network Shortcuts PrintHood=C:\Users\test\AppData\Roaming\Microsoft\Windows\Printer Shortcuts Programs=C:\Users\test\AppData\Roaming\Microsoft\Windows\Start Menu\Programs Recent=C:\Users\test\AppData\Roaming\Microsoft\Windows\Recent SendTo=C:\Users\test\AppData\Roaming\Microsoft\Windows\SendTo StartMenu=C:\Users\test\AppData\Roaming\Microsoft\Windows\Start Menu Startup=C:\Users\test\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup Templates=C:\Users\test\AppData\Roaming\Microsoft\Windows\Templates WindowsFolder=C:\Windows SystemFolder=C:\Windows\System32 TemporaryFoler=C:\Users\test\AppData\Local\TempProgram FilesはSHGetKnownFolderPathを使うしかないみたいだな。
以前買ったまま寝かしていた郭沫若の掌編集を読む。
最後の賈誼の挫折の描きかたに強い衝撃を受ける。
一方、孟子のほとんど艶笑談(夫人が艶かし過ぎて聖人になれない苦悶と、それに対する夫人の解決)や荘子の貧乏譚(人間を求めて、人間を思い出す)は、なんとも奇妙な読後感で幸福感のような、寂寞感のような、複雑な味わい。
厭世的でありながらも人間精神を楽しみながら受容する、という態度かな。
zlib-1.2.5をVC++でmakeしようとしたら、失敗する。
iconvみたく依怙地じゃないから、ちゃんとwin32用のMakefileもあるのだが。
slnさえ用意されているけど、なんかREADMEを読むとファイル名が違いそうで、かつ利用時にfalstcallがらみの何かで妙なdefineが必要なようなことも書いてある。なので、ふつうにwin32/Makefile.mscを使いたい。
で、調べたら大した話ではなかった。
一応、FAQにも出ていないのでパッチを総合受付のようなアドレスへ投げてはみたけど、そんなに利用者がいないのかなぁ(というか、テストすればすぐわかるレベル)。
--- Makefile.msc.old Fri Jul 09 03:09:20 2010 +++ Makefile.msc Fri Jul 09 02:05:06 2010 @@ -30,7 +30,7 @@ RCFLAGS = /dWIN32 /r OBJS = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj \ - gzwrite.obj infback.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj + gzwrite.obj infback.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj inffast.obj OBJA =単にinffast.objが、OBJSから落ちている(というか追加を忘れている)。
ロジクールのマウスのチャタリングが激しくなったので買い替え。
前回が、2007年12月だったから、ちょうど2年と半年。まあ、頃合かも知れない。
それにしても、電池のもちがよくなったのには驚く。記憶だと2〜3回しか交換が必要なかった。その前は3ヶ月もつかもたないかってところだった(裏側でLEDをチカチカさせる必要がなくなったというのが大きいのかな?)。
というわけで、実はトラックボールにしようとしていたのに、ころっと忘れて、また、ロジクールのマウスを買ってしまった。
LOGICOOL ワイヤレスレーザーマウス MicroGearスクロールホイール搭載 MX-1100(-)
僕は、でっかなマウスをすっぽりと持って使うのが好きなので、大きめなやつにした。2日で届いたのでさっきからずっと使っているが、実に快適で、やはりロジクールのでかさは格別である。こいつも、2年半くらいは使いたいものだ。
それとは別に、予備に使っているのが妙に小さくて使いにくいので、一緒に予備用の小さめのやつも買った。
LOGICOOL ワイヤレスレーザーマウス Unifying対応レシーバー採用 M505 ブラック M505BK(-)
これは小さいが腰高があるので、ずいぶんと使いやすい。余分なボタンがないシンプルさだからか価格も手ごろだしデザインもきれいだ。とりあえずこちらが必要な状況になるまでという条件で妻に貸したら、これは使いやすいと早速使っているところをみると、手の大きさに関係なく受け入れやすいサイズのようだ。
ただし、505には問題点もあって、最初、OSXにつないだらまったく反応しない。結局、LogicoolのサイトからUSBコネクタ用のドライバをダウンロード/インストールして初めて認識した。マウスでもそんなことがあるんだな(おまけに、存在しないキーボードを検出しようとしてIOをかけまくったらしく、初回起動時は妙に入力がしにくくて何が起きたのかと思った)。
パッケージ置き場にRuby-1.9.2-rc1のMSIパッケージを置きました。ご自由にどうぞ。
今回は現在の拡張ライブラリとの互換性をそれほど考える必要はないかもしれないので、VC6をやめてVC++2010で作ってあります。したがって同梱のreadline-4.3.2, iconv-1.11, opensll-1.0.0a, zlib-1.2.5も、VCR100で再構築したものです。
追記:上記のパッケージには、MSVCRT10が同梱されていないため、該当のDLLがインストールされていない環境では、インストールの最終ステップでエラーとなり、ロールバックされます。MSDNサイトからダウンロードしてください。
「腕時計が要るんだけど」
「どうせ、後、2、3年したらiPhoneかAndroid持ち歩くことになるんだから、腕時計なんて親のお古でいいだろ?」
「それは無理じゃないかなあ」
「何が?」
「後、2、3年」
「そうか? 大学生なら授業中に使っても問題ないと思うけど」
「違うよ。さすがにまだ出来てないよね?」
「?」
「アンドロイド」
「え」
「え」
まあ、その程度の知名度(家はauってのもあるかも)。
(C3POみたいなのを連れて通学する自分を想像したってことだと思うが、楽しそうな近未来だよなぁ)
比例区の名簿というのはなかなか興味深いものがある。
特に、その人物の肩書がおもしろい。
どういう肩書が並んでいるかをみると、その政党がどういうターゲットに向けて政治を打とうとしているかがわかるというものだ。
たとえば、こういう肩書が一位から並んだ党がある。面倒だから党名はいちいち書かないが、肩書からわかるところはすぐわかるのでどうでも良いだろう。いずれも1位から並べているが完全ではない。たくさん名簿に書いてあるところはたくさん並べたし、そうでないところはそうでなく並べた。
見事に、一人を除いて、すべてに「党」の1文字がつく。すばらしきかな党人選挙というか、その党(というか信ずる対象というか)にあらずんば……という印象を受ける。
一方、こういうのもある。
党人と、労組と、元議員だが、とは言え、最初に取り上げたところほど極端な感じがしないのは分母の少なさに対して、それでも(元議員とは言え)ジャーナリストや会社員出身とか、それなりに世間の風に吹かれていそうな印象を受けるからだろう。
こちらは特徴的。
何が特徴的かというと、2番目と同じく元議員が多いのだが、2番目の労組の代わりに協会理事とか経営者/女優といった人たちが混じっていることだ。雇われ者に対して雇う側ということですな。それにしても(元)看護協会理事、厚労省職員とか、元厚労政務官で、今は薬剤師連盟顧問とかって関連なさそうでありそうな職歴だなぁ。天下りのことはなんでも知っているから任せておけって感じ?
少なくとも、この3つの党であれば、おれは勤め人だから、2番目が党派的には向いていそうだなぁ、という感じだ。1番目は狭すぎるし、3番目はなんというか旧弊がそのまま議員になりそうというか(実際、なるわけだが)。
次。
むちゃくちゃなようでいて、それは先頭だけで基本、労組ということでOKかな? これも、勤め人のおれとしては、これまでの中ではもっとも党派的には近いということになる。
で、最後の例。
元地方議員、官僚と、社長(エネルギー(販社)、シンクタンク、建設、アパレル)か。というか、社長(元を含む)が多いのが特徴だとは言えるかな。きっと社長達がにっこりできるような政治をするのだろう。でも、官僚出身者も多いのに官僚機構を改革できるのかな?
SQLは大文字小文字を区別しないので、当然のように、
cscript \progra~1\mia713~1\windows\...\scripts\wirunsql.vbs foobar.msi "select action,type from customaction"
とか書くと、
Msi API Error 80004005: OpenView,Sql
エラーになる。
よもや大文字小文字を区別するのかな? と順番に試してcscript \progra~1\mia713~1\windows\...\scripts\wirunsql.vbs foobar.msi "select Action,Type from CustomAction"
とやったら動作した。
COMも大文字小文字を意識しないのに、妙なところでケースセンシティブなんだ。
で、いろいろ試しているうちに、エラーメッセージの2行目に必要な情報がちゃんと出ていることに気付いた。
1: ? 2: ファイル名 3: 名前 4: 文
となっていて、名前のところに問題となったカラム名やテーブル名が表示されていた。
バグを見つけてしまった。
opensslのインストールをスキップした場合、アンインストールに失敗する。
修正するには、c:\progra~2\ruby-1.9.2\bin\uninstall.rbの、すべてのFileUtils.rm呼び出しをFileUtils.rm_f に修正する。(存在していないファイルを削除しようとしてError:ENOENT例外で終了するのを回避する)
友人の家へ行ったら、バーンスタインのマーラー全集が安いから買ったとかいって聴かせてくれた。が、音が良いし、なぜか10番が入っている。
良くみたら、DG移籍後のやつで、いろいろ感じるところがあったので、タワーレコードへ行って、おれも買った。この内容で5000円を割っているとは信じがたい。
Mahler: The Symphonies(Mahler)
大地の歌が入っていないという欠点はあるが、10番まで含めて入っているし、コンセルトヘボー、ニューヨークフィル、ウィーンフィルだ。
とりあえず、10は聴く。
ウィーンを振っているのだが、今まで聴いていたオーマンディーはやっぱりオーマンディーだったと認めざるを得ない鋭い演奏。この音楽がほぼ無調音楽で、やはりマーラーは新ウィーン学派への道だったということが嫌味ではなく強調されている(たぶん第2主題に相当するのだと思う)。展開部の不協和音(9/12を使っているらしいがおれにはわからない)。オーマンディーを聴いていてもそういう要素はほとんどわからず、非常に美しい音色を持った世紀末のアラベスクといった趣であった。
4番(コンセルトヘボー)の歌があまり聞かない名前の歌手だと思ったらボーイソプラノで、なるほど、なぜボーイソプラノというものがあまり使われないかが良くわかる演奏。結局のところ子供なのだ。平板。しかし、天国の音楽を奏でる変わった音色の楽器として聴けば、こういうのもありなのかなぁ。
で、あまり好きではなく、大して聴いたこともない(おそらく中学のころ、ヴァルター&コロンビアで聴いたくらいではなかろうか)巨人(コンセルトヘボー)をあらためて聴いて、確かに最初の交響曲を作るにあたって、いろいろ研究したのだろうなぁとか、音色に非常に気をつかって作っているのだなぁとか録音が良いだけにいろいろ気付く。それにしても、コンセルトヘボーってこんなに優雅な演奏したっけな? とか思うまもなく展開部に入るとどんどんスピードが上がっておおバーンスタイン、とか思ったり。で静かになって、むこうでケッキョ、とかピヨピヨピーとか鳥の声が聞こえてきて、そこに弦が少しずつ合わさってきて、さっきまでの盛り上がりと合わせて、なんかもうすぐ山の上の草原だ、さあ走り出せ、と着いたところで寝転んで耳を澄ましているような、ありふれた情景音楽のような、なんというか、気持ちよさ。でも、良く聴くと弦は短調に変わるし、第一主題は薄暗く忍び足で近寄って来る。だいたいケッキョがフルートじゃなくなって、何か悪魔の物まねのようになってくるのが不気味だ。でもレントラー(だっけな?)ののんきな音楽が入ってきて、あれさっきのは何の気の迷いだったのかなぁとか、気分はすぐ変わる。変な音楽だな。
それにしても、10番を聴いていてつくづく思ったが、マーラーは本当に失敗したのだ。それも大失敗だろう。
単純化すれば、マーラーってのは以下のプロセスだ。
歌曲で練習つんで、巨人。やりたいことはたくさん、でもいまいちまとまらない。
で、復活。得意の歌曲と音色の変化をうまく利用して、構成力の弱さは歌詞で補い、まあよかったね。
で、メロディー作りの練習をして3番。
ここまでの練習を反映して4番。これは確かに傑作なのだと思う。短いから良く演奏されるのではなく、短くまとめることができたのだ。
そして5番を作る。ベートーヴェンを意識していないはずはなく、純器楽でそれまでに培ったすべてを注ぎ込んだのだろう。やはり、5番は傑作なのだ。ヴィスコンティが9番(これも録音はあったからつかえたはずだ)ではなく5番を選んだのも、そこら中のどうでも良いアンソロジーに収録されているのも伊達じゃない。傑作だからだ。
で、6番。5番の成功のあとだけに、本人もプロの(金を稼ぐ)作曲家として同工異曲で楽に作ろうと思ったのだろう。失敗した、失敗した、失敗したの打撃連打。
心を入れ替えて7番。ベートーヴェンだって7番では新機軸を打ち出したわけだし。で、かって書かれた交響曲の中で最も長くてつまらない(もっと長い曲もあれば、もっとつまらない曲もあるが、両方合わさったのはこれくらいだ)ので、夜の曲となってしまった。
心を入れ替え、初心にかえって8番。壮大なる失敗。というか、7番よりもましなのは歌詞のおかげで構成が保てているからではなかろうか。
さらに心を入れ替えて大地の歌。これはまぎれもない傑作だ。
で、9番。言わずと知れた傑作だが、待てよ、これは5番(と兄弟の6番)の優れた焼き直しに過ぎないのではないか? ベートーヴェンとはえらい違いだ。トリスタン以来の和音の不安定さに弦楽合奏の美しさと管をうまく混ぜ合わせた音色づくりの技術が生んだ優れた工業生産品のようなものだ。
そしてやっと時代精神を反映させようとした10番を完成できなかった。
これはやはり失敗した大作曲家にほかならない。
その19世紀末っぽい敗残の壮大な遺産を楽しめる21世紀。
タワーレコードに行ってつくづく思うのは、ほとんど博物館状態だということだ。
確かに、客は若いんだけど、平積みで並んでいるものの大半が、あれおれタイムスリップ? な感じだ。
いや、もしかするとレコードという仕組みからいつの時代もそういうものなのかも知れないと、過去を思い返してみると、確かに80年代にもビートルズやストーンズが並んでいたりしたけれど、でもそれ以上にニューウェーブやハードコアパンクとかが並んでいた。だからこそリアルタイムでジョイディヴィジョンやローリーアンダーソンとか聴けてたわけだし。
手元のファクトリのVHSのライブと確かに似ている。そのうち観る。というか予告編をたまたま観たら最後にアトモスフェアが流れていて突然ブームが再来しているのだった
それに確か10年くらい前はテクノだったし。
でも、今、タワーレコードに行くと、並んでいるのはおや懐かしいというような作品ばかりだ。廉価コーナーが古いというのはまだわかる。1000円コーナーにプリンスの1999やパープルレインが置いてあるのはまあそんなものだろう。でもABC順のメインのコーナーででっかい位置を占めているのがなんか懐かしい感じがするのはどうなんだろう。
クラシックはもともとが伝統芸能だから、いつだって古い芸術家が棚を占めているのはわかるからまあ良いとしても、あるいは、ロックもクラシックなジャンルになったのかな? ちょうど、シャンソンが80年代には伝統芸能になってしまって、いつでもどこでもイブモンタンとシャルルトレネとピアフばっかりで、イブシモンやベルナールラヴィリエ(だったかなぁ)やシャグランダムールとかはなかなか置いていなかったりしたのと同じような状態なのかも。
お、合ってた。おれはグリンゴ言葉はわからん
では、何が今の音楽なんだろうか? そんなものはもうどこにもないのだろうか、とか。たぶん、J-POPのフロアに行けばよいのだろう、たぶん。ってことは、外来語からますます消費者は離れているという傾向だってことなのかもね。
TortoiseSVN 1.6.10にバージョンアップしたら、Explorerのコンテキストメニューに出てこない。
結局、ホームページからproblems with upgradingを見つけて、書いてあるとおり、repairインストールをして無事動くようになった。詳細を読むと、いろいろ苦労していることがわかるので、ちょっと同情してしまった。
MSIのアップグレード(既存のインストールをアンインストールして新たなバージョンをインストール)というのは、どうにも難しいところがあるな。
sx :: Int -> [Int] -> Int -> [[Int]] sx 1 _ _ = [] sx _ [] _ = [] sx (n + 1) list x = map (++ [x]) $ select list n select :: [Int] -> Int -> [[Int]] select [] _ = [] select list 1 = map (:[]) list select list n = (sx n tlist $ head list) ++ (select tlist n) where tlist = tail list main :: IO () main = do putStrLn "list ?" list <- readIO =<< getLine putStrLn "choice ?" n <- readIO =<< getLine putStrLn $ show $ select list n
:とか++の使い方のせいだろうけど逆順になるところが気に食わないができた(えらい長い期間のトライ&エラーの後で、樹木図みたいなのを書いて深呼吸したら数分でできたが(多分、1の場合が出てこなかったのかなぁとできてしまうと何にひっかかったのか思い出せないものだ)、正味はおそろしく長い)。
*Main> main list ? [1,2,3,4,5,6,7] choice ? 3 [[3,2,1],[4,2,1],[5,2,1],[6,2,1],[7,2,1],[4,3,1],[5,3,1],[6,3,1],[7,3,1],[5,4,1],[6,4,1],[7,4,1],[6,5,1],[7,5,1],[7,6,1],[4,3,2],[5,3,2],[6,3,2],[7,3,2],[5,4,2],[6,4,2],[7,4,2],[6,5,2],[7,5,2],[7,6,2],[5,4,3],[6,4,3],[7,4,3],[6,5,3],[7,5,3],[7,6,3],[6,5,4],[7,5,4],[7,6,4],[7,6,5]] *Main>
select :: [Int] -> Int -> [[Int]] select [] _ = [] select list 1 = map (:[]) list select (x:xs) n = (map (x:) $ select xs (n - 1)) ++ (select xs n)
なんで、(x:)はOKで、([];)とは書けないんだろう。Couldn't match expected type `Int' against inferred type `[a]'
ということは、[]は要素の型が不定だからということなのかな(にしてはパラメータのパターンマッチには書けるのがわからないな)。(追記:とか書いてみたが、良く考えたらこちらは単に[a]だから要素は配列ではないからそもそも無理だった。そっちの意味のエラーだったのか。書き直したコードに問題があるのだとすぐ考えてしまうが、そうではなく書き直したことによって型の整合性が取れなくなったと考えるのが正しい考え方のようだ)
と思って、[a] -> Int -> [[a]]に変えたら、readIOが何に変換すれば良いかわからんエラーとなった。おそるべし型チェック……
昨日の夜9時ごろ、夜空を見ていたら、北の空がときどき赤く光る。チカチカッと。でも相当不規則だ。
空半分くらいが赤っぽく染まる瞬間もあれば、北の雲の形が際立つだけのときもある。たまに白い光もあるけど、基本的には赤い光だ。
はて。
花火にしては不規則な上に色数が少ないというか、そもそも全体が光るというのはおかしい。
雷かな? でも音はないし。
光ったときの雲の姿を見ると、どうも、手前のほうの雲よりも後ろで光るようだ。というのは、手前の雲の形が浮き立つからだ。
高い空? にしては、はるか北の低いところがおもに光る。
あまりに不思議なので30分くらい眺めていた。
そもそもなぜ赤い? たとえば、夕日や朝日は赤い。遠くの光が見えるとき、地面の近くで屈折とかして赤が良く通るとかかな? とすれば、すさまじく遠くの光なのかも。
で、あとでYahooの天気図を見ていたら、宇都宮(まさに東京の真北だ)が、赤い雷雲で覆われていて、落雷警報が出ていて、実際に落雷もしていた(実は落雷らしき白い縦の光も2つほど見ているのだが、本当に雷なのだろうか?)。
というわけで、どうも宇都宮の雷を眺めていたのかなぁと思うのだが、本当にそんなに遠くのものを見ることができるんだろうか? と、なかなか怪異な夜だった。
おもしれぇなぁ。それなりの年月を生きてきたけど、そんなものが見えるなんてまったく知らなかった。
埼玉県の落雷情報 (最新の雷と雨雲) 2010年7月24日 20時10分発表(でも、これってPermLinkじゃないんだろうなぁ……)
遠くで戦争が起きるとこんなふうに空が見えるんだろうか?
なぜRunAsが使えないか試しているうちに、単に管理者のパスワードを設定していないからだ、と気付いた。
とは言え、管理者のパスワードは設定する気はないし。
でも、ということは、2008 Serverなどではふつうに使えるのだな、と気付いた。
使い方:runas /user:Administrator "command \"quoted parameter\""
無駄に時間を消費するコンシューマの専門家用のデバイスで、その快適さのせいで、コミュニケーションデバイス(携帯)ですらない悪魔の贈り物のiPadだけど、カナ漢字変換の英語キーボードがすさまじく使いにくい。そこが気に食わない。
頼みもしない入力した文字の置き換えを、英語入力でしでかしてくれるのだ。
たとえばitscomと打ち込む。すると、なぜか選択状態になっていて、returnを押すと、its空白comに勝手に変わってしまう。単語の置き換えも日常茶飯事。とにかく気付くと余分な空白や、入力した憶えもなければ筈もない単語がマッシュアップされた人工詩となっている。
こんな使いにくいバカなデバイスはあり得ないから、どこかに設定があるだろうから、探してみよう。
iPad VS. キンドル 日本を巻き込む電子書籍戦争の舞台裏 (ビジネスファミ通)(西田 宗千佳)
追記:設定ー一般ーキーボードー自動修正をoffにする。
レンタル版(先頭にスキップできない長い広告が入るのだな、と初めて知った)のコントロールを妻に借りて来てもらって観た。
これはきつい映画だな。
まず物語は完全に破綻しきっている。というか、物語になりようがない。
こういう物語だ。
道路歩いてて近所の子供がボール取ってよーとかを無視して、家に帰ると部屋にこもってボウイのアラジン・セインを聴きまくっている。壁にはルーリードのトランスフォーマのポスターとか。マリファナ吸ってぼーっとしている。
でも高校には通っているが、やっぱりぼーっとしている。友達の家に行ってもぼーっとしているが、窓から外を眺めながらワーズワースを暗誦してみたり。お、詩人。
友達が誘って来た女の子が可愛いのでボウイのライブに誘う(スパイダーツアーらしい)で、そのまま卒業して結婚。でもやっぱりぼーっとしている。
地元クラブに行くとどうでも良いバンドが何かやっている。知り合い3人組がボーカルがいればおれたちのほうが上なのになぁとかつぶやいている。ところが、どうでも良いバンドではなくて、セックスピストルズだった。おい、ボーカルさがしているとか言ったよな? と、すべての気の迷いが始まる。
演奏していればメジャーにもなりたくなる。奥さんから400ポンド借りて(というか他の連中は一文も出していないようだ)ワルシャワの最初のドーナッツ盤を出す。トニーウィルソンがテレビで紹介してくれる。
クラブでトニーウィルソンにおれらもテレビに出せと談判して、歌い始める。えーとなんだっけな。トランスミッションはこの後、テレビでやるから、シャドウプレイあたりだったような。
すげー、お前ら天才! と興奮したDJが楽屋にやって来て押しかけマネージャになる。
すげー、お前ら天才! と興奮してトニーがファクトリーへ契約しろとやってくる。もちろんメジャー指向なんだけど、トニーの意気込みに負けて契約してしまう。トニーは左の指を切って血で契約書にサインする。sが1つ足りないから書き直せ!で、ついに倒れてしまったり。
が、金はない。
昼の仕事は職業紹介所で、くずばかりを相手にしている。「どんなことがお好きですか?」「テレビ見ること」「他には?」「朝食と昼食と夕食」……「映画のホットドッグスタンドの職がありますよ」「ホットドッグは嫌いだ」「そういわずに、電話してみましょう」
てんかんの女性が職が決まったと同時に発作を起こして倒れる。
ロンドンへツアー。
客がいないと不満を垂れているうちに、寒気がするとかでギタリストと喧嘩になり、泡を吹いて倒れる。自分もてんかんだった。
薬がたくさん。副反応もたくさん。どの薬がきくかわからんから、全種類飲めと言われる。
金は入らない。
ベルギー人の女性がインタビューに来てねんごろになる。
薬の副反応だと思うが、就業中に居眠りしてしまって、ほとんどクビになる(日本と同じで自分から辞表を提出するように仕向けるようだ)。
妻のことは愛していると思うし、学校出てすぐに結婚して楽しい生活が過ごせたし、子供もいる。感謝もしているし(時給1ポンドのバイトをしてもらうことになった)、でも彼女はパンクロッカーではない。故郷の町を大切に思っている。おれはそんなの嫌だと思っている。ベルギーの女性はいわゆる自立した女性でうらやましい。
ヨーロッパツアー。
アンノウンプレジャーツアー。
奥さん、雑誌のサインからベルギー女性の存在を察知して問い詰める。返事ができない(高田純二のような人間もいるけど、そうではない人間もいるのだ)。ごめんなさい。
客も増える。怖くて歌えない。
それでもベルギーの女性とは手が切れない。別れを告げたはずだけど、自由人だから全然気にしていないのだ。やばい、本気で惚れそう。
ついに奥さん離婚を申し立てる。受けてしまう。ごめんなさい感でいっぱい。
金がなくて泊まるところもなく、仲間の家を転々とする。
アメリカツアーが決まる。月曜に出発だ。
最後にやり直したくなる。家に戻ってみる。誰もいない。奥さんを待っている間にいろいろ考える。
奥さん帰ってくる。面倒になる。そこで突然、出てけと怒鳴って追い出す。
さらに時間が過ぎる。月曜になる。洗面所の戸棚の釣り縄を見上げる。
奥さん帰ってくる。悲鳴。
おしまい。煙突から煙がもくもく。
……というか、遥か遠くの日本ですら、アンノウンプレジャーはある程度売れた(だっておれ、青山のパイドパイパーハウスで買ったし、たぶん、ほぼリアルタイムに)のに、なんでそんなに金がないんだ? とか、マリファナは最初だけで、あとは基本的にふつうのタバコをマネージャ含め、みんなスパスパ吸いまくっていて、おお80年代ですな、とか、ベースが意外と体育会系(楽器重いし)とか、ギタリストがやっぱり変とか、いろいろ思うところはあるが、この映画は、イアンカーティス(それにしても似ているなぁ。ライブでの手足のばたばた振るところ――映画だとその後、てんかんの発作でひっくり返るけど)の声と詩(正しそうな和訳があるのが良いところ。考えたら、おれは歌詞がわからなくて、イタリアの海賊版歌詞集+17インチドーナツ盤つきのわけのわからないブートレッグを新宿CISCOで買ったのを思い出した。こないだ、本棚で見かけた)に思いいれがないと、あるいは一部の彼の思考方法に共感できる人でないと、まったくおもしろくない風景映画に過ぎないだろうなあと、思う。
で、おれは、目と耳をそらすことができなかったのだが、それはしょうがない。やはり、すげー天才と感じてしまうのであった。
追記:思い出したが、やたらとハワードデヴォート時代のバズコックスに対する思い入れが(脚本家に、かもしれないけど)ある。妻の友人たちとの会話。「バンドやってるんだ」「バズコックスは好き?」、ベルギー女との会話。「バズコックスは好き?」、その他、そこら中でバズコックス。そういうもんなのかな(マガジンになってからは良く聴いたけど、ハワードデヴォートがいたころのバズコックスは聴いたことないからわからない。でも、ハワードデヴォートは確かにすごいやつだが、声の音の高さがちょうど逆だな)
(久々に聴いてみることにしたり)
本棚を軽く見てみたら、岡崎京子って、そのくらいの長さでまとめることが多かったのだな、と気づく。
(なんか、1冊になっちゃってるけど)。それにしてもこっちは何の記憶もないな。
一方、これはそれなりに覚えていたりする。
男の子は眼鏡をかけてリゾーム読んでるし、ビックリハウスが休刊して「アキラ」が始まるし、頭の中ではゲリーニューマンのジムノペディが鳴るし、巻末には浅田彰との対談が出ている(マンガ自体は90年代に入ってから書かれたものだから、これから始まる無意識の時代に対して、どうして葬ったはずの70年代が復活してきているんだよーな感じが半分、やっぱ80年代のドライブ感って楽しかったねが半分)し、ああ若気の至りっぽいところが実に良いんだけど、高校生がだらだら過ごしているだけのマンガで、ささやかにしか何も起きないし、何も起きる必要もないし、80年代の「カルチャー」っぽさの良質なサンプルだなぁ、とぺらぺらめくって感慨にふける。しかし、他人が書いた本なのに、読むとどうにも赤面してしまうくらいに同時代人っぽいところが、好きなところなんだろう。実に良いマンガだ。
これも1冊になってしまってるな。しかも引退した本らしい。
難波のじゃりん子チエに対抗しようとしたわけじゃなかろうが、小学生の女の子が主人公だったってのは覚えているが、あまり印象にないなぁ。
しかしアマゾン評を読むと、見事にスージーアンドザバンシーズがスルーされていて驚く。ハッピーハウスっていったら、まずスージーがピエロみたく踊りまくる妙なビデオを思い浮かべて、そしてこれ読んでへへへへとなるのが(575とか季語とか知った上で芭蕉を読むような意味で)正しいと思うんだけど。ハッピーなハウスなんだから、当然、それは空っぽの洞窟だ。
Kaleidoscope(Siouxsie & The Banshees)
それにしても4半世紀以上たつというのはおもしろいことだ。おれが小学生になったときに、アメリカとの戦争に負けて、中国でもこてんぱんにのされて逃げてきて4半世紀だったわけだから、ちょうどそういう間隔の昔ということだな。
次の記述が、構文エラーになる。何故か?
x:
echo hello
答:
1文字のターゲットは、ドライブ名と区別するために:の前に空白が必要。
例
foo.txt: x:
cmd /c copy x:foo.txt
x::
net use x: ??bar?txt
:と:の間に空白は不要。
上野でトリノ王立歌劇場のラボエーム。
ラボエームを初演したというのは知っているが、スカラ座なんかと比べると、印象として2流の歌劇場だよなぁと思っていたので、それほど期待していたわけではなかったが、とんでもない話だった。
まず、オーケストラの音が素晴らしく良い。上野とは思えないくらい弦が良く鳴って、たとえばミミが太陽が降り注ぐ部屋でどうしたとか歌うところでは、響きの美しさだけで思わず涙が出そうなほどに感動的で、おそらくノセダという指揮者(これも初見なのだが、両手をぶるんぶるん振り回すタイプの指揮者だった)の作らせ方がうまいのだろう。
実は、開幕前の音合わせが妙で、みんながラで合わせるわけではなく、勝手にメロディーを流すやつもいれば、ボンボンしているやつもいて、てんでばらばらで、なにこれイタリアンという感じだったのだが、それぞれがきちんとうまいのだった。
幕は初演のイラストを利用して作曲家と脚本家(リリクがどうしたとか書いてあった)の名前の幕で、まさか初演時のものではないだろうが、なんとなくほほえましいのだが、それが透けて、左が建物、右が住居で始まる。左の建物は全幕通して利用しているようだった。
マルツェッロが良いなぁとか思いながら見ていて、ブノワが出てくるあたりは例によってちょいと退屈しかけたが、出ていけの合唱までテンポが良い感じで、そのまま引き込まれていて、そしてミミが出てくる。写真で見ると相当なおばさんだが、舞台で見ると美しい。自分でロウソクを消すと、あわててロドルフォも自分でロウソクを消す。今様の演出。
なんかミミがベッドの上で何かを拾って枕の下に隠すが、あれは鍵なのだろうか? でも、もしそうだとすると4幕目の歌詞とあまりに合わないから、ちょっと不思議かも知れない。
で、ロドルフォがどうやって生きているのか? 生きているのだ、のあたりを歌うと、きれいな柔らかい声だが、どうにもあっさりし過ぎた歌い方でまったく食い足りない。つまりあまり感心できず、さてどんなもんかとか考えていると、ミミが実に素晴らしい。声を震わせるところで、いかなる魔術か、ガラスの大きなビンをこするような美しい響きが生まれて、歌があふれてくるようだ。こういう経験は初めてだ。そしてオーケストラがからんで、太陽が窓辺に降り注ぎとなって、もう頭がぼーっとしてくるくらいに感動的な体験で、もしかしたら、おれは初めて本当の音の調和というのものを体験したのかも知れない。
バルバラ・フリットリという名前は、これでおれの中では女神となった。
アマゾンで何か売っていないかとみてみたら、実はすでに持っていることを発見した。
プッチーニ 三部作 [DVD] [Import](フアン・ポンス)
(ジャンニスキッキばかり何度も観ていて、修道女アンジェリカは観ていなかったのだが、アンジェリカを演じていた)
が、やはりロドルフォが食い足りない。良い声なんだがなぁ。演出というかテンポ設定の問題なのかも知れないけど。
2幕目は、子供が楽しみにしていた、森麻季の登場。まあうまいよね。
演出上は暴れまくる役回りで、皿をど派手に割ってたぶん、かけらがオーケストラピットに落ちたみたいだが、私が町を行けばを歌うときは、マルツェッロにちょっかいを直接出しながら歌いだす。
4銃士が陣取るのは、店の外の席。ルルとムゼッタも同様。
この演出はおもしろくて、(追記:最初の箇所でスリの捕り物騒動らしきものまである)4銃士を座らせっぱなしにせずに、マルツェッロは誘惑に負けまいと右端の席に移って女給(追記:子供によると道端の女性とも話しているし、ふらふらしているから娼婦じゃないかとか)とたわむれて、ロドルフォとミミは左端の道端に座った占い師か何かと話していて(離れているだけにミミが彼女はマルツェッロを愛しているのねが強い客観性を持つので構造が明確化されている)、コッリーネとショネールだけが席に座っている。で靴を脱いで、脚をどーんと机に乗せ、その後、まくりだすと、給仕がどれどれとのぞきに来て、そしてついにマルツェッロが立ち上がり、おれの青春は終わってないと歌いだす。演出のテンポが実に気持ち良い。
おれの席からは見えなかったが、子供によると去り際にミミがきっちりとクリームを食べていくそうだ。
3幕は本当に雪景色を作っている。ポワヨンポワヨンした妙な楽器の音が聞こえてくるのだが、あれはなんだったのだろう。1幕よりもロドルフォは良い感じだが、それでもやはり食い足りない。ミミは本当に素晴らしい。
4幕の出だしは当然のように楽しい。ミミが寝たときにわかりやすいようにだと思うが、1幕とはベッドの位置を変えている。(もともと右にあって最初にミミが腰かけていたベッドは奥にどかされているように思う。4幕では中央のベッドが中心となる。追記:と思っていたら子供によると90度視点を換えた配置になっているらしい)
この舞台で、さよなら外套が、実に良い曲だなとわかった。ウリヴィエーリというような名前の歌手。ショネールは水をくみにいくとか言わずに黙って(ロドルフォをハグしてから)出ていく。
そしてミミの回想の歌がこれまた感動的。なんと良い声なんだろう。オーケストラもまた良い。
追記:カーテンコールで、フリットリは正座してお辞儀していたが(野田秀樹の土下座を思い出した)、誰が教えたんだろうか? 何か間違っている気がした。
というわけで、すばらしい歌声の歌手を一人知ったのがまず嬉しい。
Opera Arias(London Symphony Orchestra)
とりあえず、これは買っておこう。
指揮のノセダは、ネトレプコのアリア集を振ったりしているのか。
宝石の歌~アンナ・ネトレプコ/ ヤング・オペラ・ヒロイン(ヴォルフガング・アマデウス・モーツァルト)
他にもリストの交響詩を相当録音しているようだな。
Symphonic Poems 5(BBC Philharmonic Orchestra)
おそらく、同じく振幅の大きい厚みがあるドラマティックな演奏だとすると相当良さそうなので検討してみる。
ノセダとフリットリでタイスとか出ているのか。
Thais [DVD] [Import](Massenet)
これはしかし曲に興味が持てないのがなぁ。
一方、フリットリとメータのラボエームはあるのか。
ジェズイットを見習え |
_ ムムリク [なるほど、なるほど。]