トップ 最新 追記

日々の破片

Subscribe with livedoor Reader
著作一覧

2012-03-03

_ Linuxの帰還

やっと時間がまとまって取れたので、サーバーをLinuxに戻した。結局Gentooでしばらく試したが、こちらのカーネル構成がどうやっても正しくならないらしく、数時間動くとハングしてしまう。これを避けるために、全部入りにしてしまうとすると、なんかGentoo使うメリットが感じられない。というわけで、結局、Debian系のディストロにした。

が、何かおかしい。ターミナルが無闇とキーを取りこぼす。

でも、Emacsのシェルモードは問題ないというか、そもそもEmacsはちゃんと動く。なんかgnome-terminalにバグがあるとしか思えない。

で、調べて、gnome-terminal: keyboard input is super flakyを見つけた。

ibusあたりが悪いんであって、gnome-terminalのバグじゃないと書いているが、他のプログラムでは問題ないからなぁ。

しょうがないので、buglogに出ている問題の試し方にしたがって、~/bin/termina.shを作る。

#!/bin/sh
unset XMODIFIERS; gnome-terminal
 

(追記:なんかわけのわからないものをペーストしていたので修正した。3/4 23:06)

これをローンチャに登録して、問題なし。日本語を入力できなくなるが、それはEmacsを使えばよいから問題なし。

crontab -e とか実行するとエディターが動くので、Emacsのshell-mode内では都合が悪い(試したことないけど、EDITORをemacsにしておくと、shell-modeが同じEmacsのプロセスを利用してくれたりはしないだろうなぁ)ので、terminalも必要なのだった。

_ 補足(3/6)

sora_hから、

make localyesconfig で現在の環境で動いてるモジュールなどの情報をもとに必要なコンフィグをYにしてくれる

と教えてもらった。

さすがに、動かし始めた今となってはGentooには戻らないと思うけど、Gentooの利用を考えていて、でも、Kernel構築にいまいち不安な方は、試してみると良いと思います。

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

_ るいも [ibusとかscimとかバグが多いので、私は消してuim入れてます。]

_ arton [あー、そのてが正解ですかねぇ。]


2012-03-04

_ ワイアレススピーカーを購入

Justshopのポイントやキャンペーンがうまく重なって結構な割引となったので、以前から気になっていたONKYOのワイアレススピーカーを購入した。

ONKYO WAVIO ワイヤレススピーカーシステム DLNA対応 15W+15W ブラック GX-W70HV(B)

良かった点:

ケーブルが無い! もっとも、正確にはある。コンセント-太いコード-ACアダプタ-中くらいのコード-右スピーカー-細いスピーカーケーブル(+/-のやつ)−左スピーカーと、直列配線はされている。右と左のケーブルって本当に必要なのか? とちょっと思ったが、右側から音を取らなければ左にもコンピュータを載せて通電が必要になるのだろうからしょうがないだろう、現在のところは。

というわけで、なんか、楽しい。ケーブルが無いってとても良い。

悪かった点:

期待ほどの音じゃなかった(なんとなくシャキっとした音を期待していたのだった)。とは言え、悪いわけではないし、床に直接設置したのだが、台の上などに置くと相当印象は変わると思う。早い話が、床で反射してもごるのだと思うが、どうもそれなりの価格のスピーカー=床置きという固定観念があるのと、置きたかった部屋に手頃な台が無いのが敗因だろう。

(以前使っていたビクターのSX-IIがおれのスタンダードになっているからどうしても辛くなるが、今使っているSONYのSRS-004よりは上(言い方を変えれば中低音が出ている)だ。あと音量を絞るとさすがに20000円以上のスピーカーという印象はある)。

音切れ:

Windows Media Player12を使ってみているが、ごくごくまれに無音の時間が瞬間的にある。が、気になる範囲ではない。おれはピュアオーディオ主義者ではないので多少間引きされても気にしないが(でなければ、CDからMP3にリッピングしたりはしない)、それにしても、音そのものはきちんと処理されているように聞こえる(音がもごるというのは別の話)。

厄介だったところ:

無線アクセスポイントがTime Capsuleだというのが一番やっかいなところだ。以前、購入を考えたときにHPのWPS対応プリンタ設定のところに、AirMacユーティリティを使えば設定できると書いてあったのだが、そんな項目が存在しなくてあせりまくった。

もしかして、おれのTime Capsuleは初代だからサポートしていないとか?

で、良く読むと、Mac OS X v10.6って書いてある。おれのMacはLionなんですが……(そういえばAirMacユーティリティのUIが妙にあっさりしたものに変わっているし)、っていうか、アップルにつかまされた! と愕然とした。

が、しばし考えて、HPのプリンタをサポートしなくなるってこた、有り得ないな、と気付く(が、HPの接続ソフトがWPSではなく独自の方法で接続するように最近では変わってきている(HP オート ワイヤレス コネクト)ので、USではWPSは消える方向だと思う)。

で、いろいろ探し回って、Mac OS X Lion 用の AirMac ユーティリティ 5.6を見つけた。ダウンロード、インストールして(一体、Lionの付属のAirMacユーティリティはどうなるのかと思ったが、App名が異なるので共存するのだった)、無事、解決。しかし、山ライオンになると、どうなるんだろうか? WPSそのものは脆弱性の範疇に数えられている可能性があるし(というのは、MacのフォーラムでWPSの方法を聞いている質問者に、「おめでとう。アップルに脆弱性なし!」と回答しているバカがいるのを見たからだし(apple.comのEnglishフォーラムの話)、必然の機能ならLionのAirMacユーティリティから機能を落とすこともないはずだ)、まあ予断は許されない。

2つのAirMacユーティリティ

WPSを利用するには、AirMacユーティリティ(5.6)でTime Capsuleを選択して、「手動設定」ーメニューバーの「ベースステーション」「ワイアレスクライアントを追加」を選ぶ。

すると、PINか最初のアクセスかの選択が出るので「最初に接続したクライアント」をチェックする。

Time CapsuleのWPS

そして、他の機器がアクセスしてくる前にスピーカーの接続ボタンをピンで押してやる。

クライアントの接続確認

このとき、ONKYOでもなければRemote Speakerでもなく、「RalinkLinuxClient」という意表を突く怪しい名前で出てくるので、ちょっとびびる(マニュアルに明記しておいて欲しいが、元々、手動でWPSを使うことを想定していないのだからしょうがないかも)。

これで、Time Capsuleに接続できるので、後はDLNA対応のプレイヤーから音楽を流せばOK。残念ながら、iTunesは対応していないので、とりあえずWindows Media Player12を利用しているが、このあたりはおいおい変えていこうと思う。


2012-03-06

_ 今日のエニグマ

こちらのバグだとは思うのだが、どうにも釈然としないのでメモ。

次のようなC#のコードで動くASP.NETと統合されたWCF RESTサービス。

/// ユーティリティ群
internal class Logger { ... } // 独自のバックアップハンドリングとかあるので作り込み。
internal class TableMapper { // 軽いモデルが成長してしまったやつ
  delegate void UserCode(SqlConnection c);
  // せっかくコネクションを持っているから、アプリケーション独自
  // 処理にも開放してやるか。
  internal void UserTransactionProc(UserCode cb)
  {
     // コネクション関係のいろいろ
     try
     {
        cb(connection);
        connection.Commit();
     }
     catch (Exception e)
     {
         Logger.Log(e);
         connection.RollBack();
         throw; // 3/7 1:00追加。これがなきゃ外のcatchのコメントは合わないよね。
     }
     finally
     {
        // 後片付け。 
     }
  }
}
/// サービス
public string FooBar(string arga, string argb)
{
    try
    {
       bool success = false;
       // arga, argbの検証
       var t = TableMapper.CreateGeneral();
       t.UserTransactionProc((c) =>
       {
          var command = c.CreateCommand(); // とかなんとか
          command.Parameters.Add(new SqlParameter("@foo", arga));
          ....
          success = command.ExecuteNoQuery() == 1;
          if (success) 
          {
             callNextCommandChain(c);
          }
          else
          {
             Logger.Log("failed...argsa=" + arga);
           }
       });
    }
    catch
    {
       Logger.Log("foobar arga:" + arga); // Excepion was already Logged by TableMapper
       throw;
    }
    return CreateJson();
}

これがargaの特定パターンで、ログにfoobar arga: とだけ残して消失(クライアントへはRSTか500が返る)する。ログのメッセージパターンからは例外が起きているはずだが、その例外の大元となるSqlExceptionらしきものが何もない。そりゃ、TableMapperのtry節以外でArgumentExceptionとかもあり得るが、あくまでもあり得るというだけのことだし。

いくら考えてもわからない。

面倒になって、一番外側のcatchを次のようにした。

    catch (Exception e)
    {
       Logger.Log("foobar arga:" + arga, e); // maybe Exception logged twice
       throw;
    }
    return CreateJson();

すると、先ほどまでと同じargaの入力パターンに対して、ログが"failed...argsa=bad paramとなった。? 内側のログだよな。

まるで、printf入れると動きが変わるCのプログラムだ。

argaの腐れっぷりがILのスタックを壊す? いや、そんなばかな。

上のように簡略化した再現コードを作ったが、再現しない。まあ、しないほうが自然ではある。

というわけで、今日は疲れているので寝る。明日、再検討するか。

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

Before...

_ arton [同期です。(そこは上の簡略コードの通りに、スタックを確保して、UserTransactionProcを呼ぶと、スタッ..]

_ 楓等 [ああいや、このコードでは同期ですが、その、簡略化されていないコードではどうかなと思って…。 非同期だとキャッチされな..]

_ 楓等 [あっと、時間差。失礼しました。同期なんですか。本当に謎ですねえ。]


2012-03-08

_ にぎやかな未来へもう一歩

テレビは赤字を垂れ流しているけど、撤退もできない状況らしい。というよりも、液晶パネルが、ということだと思うけど。

ソニー「解体」の日――復活への処方箋はあるか

にぎやかな未来は筒井康隆のショートショートだけど、世の中すべてが広告であふれている近未来を描いていた。もっと具体性があった似たような作品を星新一が書いていて、そこではあらゆる平面で動画が動くことになっていた。道を通りすがれば車の壁面(これ、トレーラーで実現しているけど)、ビルの壁面、服、顔、すべてだ。

これだよ。

赤字垂れ流しになるのは、生産が需要をはるかに上回っているからだ。ならば、需要を作ればよい。

大は鹿島建設から小は町の工務店まで、あらゆるところが、外壁材として、それなりに耐久性がある液晶を使うのが世の標準になれば、確実に需要のほうが大きくなる。小さな戸建てだって、4000枚くらいのパネルが最低でも必要となる道理だ。

で、そこをアフィリエイトする。

インターネットが現実にやってくるのだ。ほら、ホームページはおれの庭だ、のリアルワールド版で、すべての家がバナー公告で埋め尽くされる。

選挙の前になると、候補者に雇われたアルバイトがポスターを持って各戸を「はらせてください」と回るのではなく、SDカード(あるいは、受信装置かもしれないし、単なるログインアカウントの作成かもしれないけど)を持って回って、お宅の通りに面した玄関脇に流してください、とか頼みに回る。

すると、一戸建てを持つ人間は、持たない人間よりも、アフィリエイト収入の分だけ、確実に所得が伸びることになる。

これはたいへんだ、と、賃貸万能論が危機に瀕して、みな、持ち家めざして金を貯めたり、借りたり。

すべては丸く収まるのであった。

にぎやかな未来 (角川文庫)(筒井 康隆)

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

_ ksk [賃貸もレンタルホームページみたいに広告有りだと無料/格安になって、 借りやすくなるといいですね。]

_ arton [w)]


2012-03-12

_ さまよえるオランダ人

新国立劇場でさまよえるオランダ人。このオペラはゼンダのバラードは聴いたことがあるが(あまり印象に残っていない)初見、初聴。

序曲がホルンを初めとした金色系の楽器で始まる。オーケストラはうまいものだ。全体を通して、オーケストラは実に良い感じだった。

が、長い。途中からばらばらに旋律が出てくるのだが、全然有機性がなくて、ワーグナーも、最初はこんなものだったのか、とだんだんうんざりしてくる。

で、幕があくと、いきなり陽気に始まり(嵐で大騒ぎしているので、陽気も何もあるわけではないのだが、船長と見張りがかけあい漫才をするので、陽気な感じがしまくる。船長の歌手は良い歌手だ)、なんじゃこりゃと驚く。全然、想像していたものと違う。ノルウェーの船らしい。

が、一転、フライングダッチ号が出現するところは、演出の妙もあって、これはすさまじい。おおー、となり、船長がサンダーバード2号のバジルのような不思議なポーズで、ノルウェーの船に乗り込んでくる。で、独白が始まるのだが、これも長い。なんだこれは? と、ワーグナーの作詩能力も、まだまだ話になりませんな、という感じ。だが、演出はスペクタクルで、オランダ人の歌手も妙に説得力がある。が、長い。イライラしてきたところで、ノルウェーの船長が再登場。また、見張りと漫才をやって、オランダ人との会話となる。「娘はいいものだ。悲しいときは慰められるし、楽しいときは歓び倍増」という実に当を得た歌をうたって、船長の嫁にやることを決める。宝に目がくらんだというよりも、素直にセリフ通りに、風格がある立派な人物で、しかも裕福だから、娘の婿にふさわしい、と考えたんだろうなぁ、とすっかりノルウェー船長に同調するわけだが、なんというか、歌手は良く、演出も良く、オーケストラも良いのに、肝心の曲がぱっとしないまま、1幕は終わり。

休憩中にプログラムを読むと、序曲は短縮版を使ったと書いてある。うーむ、おそるべきワーグナー。あの冗長な序曲ですら短縮版なのか。しかも、全幕通しでやるのが本来とか書いてあるのでぞっとする。ラインの黄金なみの長さなのだな。

で、2幕が始まると、紬車と舵を掛け合わせた舞台装置に、合唱団の糸紬娘がぞろぞろ出てきて楽しい合唱。ゼンダは大柄で小太りなので、娘軍団(日本人合唱団)に混じるとあまりに異様な感じがして、なんじゃこりゃという視覚効果なのだが(ルサルカでは気にならなかったことを考えると、実際に大柄な歌手なのだろう)、歌を歌い始めると、これが実に美しい声で、見てくれは以降、まったく気にならなくなる。これは良い舞台だなぁ。が、やはり音楽は冗長だ。どうして、こうも退屈なのだろうと思いながら音を追うわけだが、密度が薄いのかなぁ。で、狩人登場。これが見事に美しい歌を歌う。ここで初めて、ワーグナーが美しい歌を作れることがわかった。で、オランダ人と運命的な出会いをして(絵が壁から落ちると本人が登場というのは、空想が現実に変わる瞬間を示すには結構うまい方法だなと思った)、2幕が終わり暗転したまま3幕へ突入。それにしても、狩人にさんざんな評価をされているが、親父はいいやつだと思うけどなぁ。同じ職業(船長)の裕福なイケメンのほうが、狩人の貧乏な男よりも、そりゃいいだろう。

で、3幕が始まるが、ここからは、作品自体もえらくおもしろくなる。

長いといえば長いノルウェー水夫と糸紬娘たちのやり取りに引き続き、演出効果が抜群のフライングダッチ号の水夫の合唱が続き、おお、新国立劇場の合唱はすばらしい、と初めて気付いた。血塗られたフライングダッチ号の帆が手前に下りてきて、舞台を覆い、地下へ呑み込まれて、再び後ろからフライングダッチ号に戻ってくるのはなかなかのものだ。

で、また猟師がやってきて、未練たらしい歌を歌うのだが、これまたきれいな楽曲で、ワーグナーって変な作曲家だなぁと思いながら、物陰からオランダ人登場。ゼンダは誠がない、おれこそ伝説のオランダ人だと一席ぶつのだが、理屈がいまいちわからない。誠を尽くす純潔の乙女が、誠を尽くせば奥さんになるわけだから純潔の乙女ではなくなり、結局は呪いにやられて地獄行きという理屈なのかな? で、勘弁してやる、おれは立ち去ると船に向かう。

おれが知っているオランダ人のお話だと、船長は出港して、ゼンダは身を投げるということだったが、この演出はまったく異なり、ゼンダがりりしく舵を取る。かくしてオランダ人は息を引き取る。

曲はあまり感心しなかったが、舞台は素晴らしかった。極めて満足度が高かった。

その他気付いたこと:

・オランダ人が呪われているという伝説は、新教徒だからなのかなあと考えていたが、全く関係ないようだ。むしろ同じ反カソリックの英国水夫がオランダ人をばかにして唱えた説とかもあるらしい。

・丸い船のハンドルは単に舵だと知った。実際には面舵が左回り、取り舵が右回りらしいが、これまで、丸いのが主たる舵で「おもかじ」、多分船の副舵が取り舵(たとえば回転させずに引っ張って動かすので「取り」と呼ぶのだろうと想像していた)なのだろうと、思い込んでいた。調べてみるものだな。

・いささか冗長だが、独白あり、合唱あり、かけあいありの3時間と考えると、そう悪いオペラでもないな。が、おれには指輪のほうがおもしろい。(トリスタンとイゾルデはもっと長くて冗漫だが、音の密度が濃くてまだおもしろいと思う)。というわけで、この作品はあまり成功しなかったというのもうなずけるものがある。


2012-03-15

_ 共和主義、民主主義、多数決原理

センの正義のアイディアを読み進めているのだが、これまで民主主義=多数決原理と考えていたのが、どうもそうではないらしいということに気付かされて、ちょっと驚いている。

もちろん、用語というのはなんでもそんなものだから、普通の人にとってはインターネットはするもので、それはつまりはブラウザーを利用してHTTPでGETしたHTMLを表示することを意味しているのと同じくらいに、異なることだったようだ。

少なくとも、センが定義し利用している概念において、多数決原理で少数意見を無視するのは共和主義で、民主主義は多数が少数に配慮する、より人間的な政体を意味するものであった。まあ、そう言われてみれば、なるほど、アメリカ合衆国は共和党と民主党が同じ多数決原理の上で争っている異なる考え方の集団であった。

イスラム原理主義の過激派による自爆テロが多発しても、だからといってイスラム教徒を民衆がリンチにすることはない民主主義の国はインドで、(それは書かないわけだが)9.11以降コーランを焼き捨てたりチャドルを着けた人間をリンチにかける共和主義の国はアメリカであった。

また、自由の概念について、アメリカの支配的な考え方についても考えさせられるものがあった(注)。

1) 四肢不自由で寝たきりである。たまには外へ出たり入浴したいができない。

2)四肢不自由で寝たきりである。そこで国家あるいは自治体(もしくはボランティア)が税金(もしくは善意)を使って彼のために介護者を派遣して外へ連れ出したり入浴させたりしてくれる。

3)四肢不自由で寝たきりである。しかし金があるので人を雇って外へ連れ出させたり入浴させたりする。

このうち1が不自由というのは共通の認識なわけだが、アメリカの支配的な自由の考えでは、2は自由ではないこととなる。したがって自由の国アメリカでは2の状態は基本的に有り得ない。なぜならそれは自由ではないからだ。

それはおかしいだろう、とセンは言う。1と2は同じか? もちろん違う。この違いを無視して、2は自由ではないからあり得ないというのは間違いだ。

正義のアイデア(アマルティア セン/池本 幸生)

なるほどなぁ、と健康保険制度について貧しいアメリカ人(ほど)そんなものはいらない、ここは自由の国だ、と胸を張って自滅する愚かしい姿を思い浮かべる。

教育とは恐ろしいものだ。

注)アングロサクソンの言葉では、freedomとlibertyが異なる単語だというのは関係あるだろう。フランス語のliberteはむしろfreedomであると、高校生の頃、ダニエルゲランを読んで学んだことを思い出した。

日本語の自由は、コンセンサスではfreedomのほうで、ただ自由民主党だけが異なる意味(つまりliberty)で利用しているという言い方もその頃、見かけたな。

そこで疑問なのだが、リベルテール(これはおれの政治信条であるわけだが)の英訳がリバータリアンのはずだが、いつの間にかリバータリアンの意味が変節したのか、それともリベルテールにはリバータリアンの意味が実は内包されているのか、どちらなのだろうか。おれの理解では、現在のリバータリアンはまったくリベルテールではない(なぜなら、リベルテールの基本的な思想には相互扶助が当然のように根を生やしているからだ)。したがって、後者ではない。だが、前者だとした場合、それは意味がつかめない。ありうるのは、現在のリバータリアンがアメリカではサッコとバンゼッティが殺されたときにリベルテールが死滅したので、言葉を乗っ取った可能性だが、それにしても言葉の多義性はおも(そ)しろいなぁ。リベルテールが英訳して自分をリバータリアンだと語ると、その瞬間にまったく異なる政治信条になってしまうわけだから。


2012-03-16

_ RjbでSEGVする人

とても不思議なのだが、RubyforgeのHelpフォーラムなどに、それなりにRjbをirbで動かすと動くのに、RailsだとSEGVすると書き込む人たちがいる。

まったく、再現しないのでとても不思議だ。(しょうがないので、試しにLinuxでRailsのアプリケーションを作ってテストしてみたりするわけだが、まったく問題ない)

逆に、どうやればSEGVさせられるのか知りたいものだ。


2012-03-17

_ 協力者への報告を兼ねた礼としてのまとまった文書

たださんの『 「後世に残る」のは紙か、電子か。』のコメント欄が興味深いと、ムムリクさんが指摘されていて、おやいつの間にと読み返し、脳裏に浮かんだのは、トルコの村の人たちに(不本意なところは多々あるけれども)ようやく形になった文法書を配って歩く小島剛一の姿だった。

漂流するトルコ―続「トルコのもう一つの顔」(小島 剛一)

広く永くそこに記された文章を伝えたたい、ということであれば、おれも間違いなく電子化され(検索可能な状態で)置かれるのが良いだろうと思う(それがまさに遍在するということだ)が、個々の協力者への礼としては、有形のものの価値はやはり高そうに感じる。

爺さんだか婆さんだかが、孫だかひ孫だかに、戸棚の奥に大事にしまってある四角い紙の塊を取り出して、「ほら、ここのところは私が教えてあげたことなんだよ」とか「ほら、ここに私の名前が出ているでしょ」と示す姿は容易に想像がつく。

もっとも、iPadみたいな端末でGoogleを開いて、検索して表示されたページを指さして、「ほら、ここのところは私が教えてあげたことなんだよ」という姿を想像することもできてしまうなぁ、どちらにしても、孫やらひ孫やらが受ける印象はあまり変わらない気がしてきた。(無理矢理違いを考えると、前者のほうがきわめて私的な空間が作られていて、昭和30年代っぽい印象だ)

いずれにしても、両方あったほうが良いってことになるだろうけど。

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

_ ただただし [ムムリクさんの指摘へのリンクが正しくないような。こっちかな? http://mumrik.air-nifty.com..]

_ arton [おお、本当だ。直します。]


2012-03-18

_ DLNAスピーカーと戯れる

まだ、戯れるどころか翻弄されているだけだが、メモ。

  • UPnPライブラリで変更が必要な点

    (DLNAのプロトコルがわからないため、サーティフィケーションできないので、UPnPライブラリとしては正しい動作の可能性がある、というか動作しているはずだから難しい。オープンクラスで良かった)。

    1. UPnP::SSDP

      会話用のUDPSocketを239.255.255.250のメンバーシップにしているが、少なくともスピーカーはソースIPアドレスに対して応答を返している。したがって、IP_ADD_MEMBERSHIPを呼んではならない。

      SSDPポートはWindowsでは他のサービスに食われている(ようだ)。スピーカーはSSDP M-SEARCHを送信したIPアドレスにレスポンスを返すので、ポート1440にバインドしないでエフェメラルポートを利用する。でも、これってM-SEARCHのHOST変数を無視しているってことなので、スピーカーの実装ミスなのかDLNAの仕様なのかは不明。

      追記:UPnP-arch-DeviceArchitecure-v1.1の1.3.3では、

      To be found by a network search, a device MUST send a unicast UDP response to the source IP address and port that sent the request to the multicast address.
      としている。したがって、ONKYOの実装は正しい。WinSockのIP_ADD_MEMBERSHIPがUnix Socketと異なるのかも知れない。

    2. UPnP::Control::Service#parse_service_state_table

      スピーカーはstateVariable要素のCurrentTrackDurationに対してdefaultValueとして00:00:00を返す。したがって、以下の行でエラーとなる。

            if default then
              default = default.text.strip
              raise Error, "insecure default value #{default}" unless
                default =~ /\A\w*\z/
            end
      

      また、default.txtが空要素の場合があり、この時、text属性にはnilが入るため、無条件にstripを呼ぶと例外となる。以下のように修正する。

            if default && default.text then
              default = default.text.strip
              raise Error, "insecure default value #{default}" unless
                default =~ /\A[\w:]*\z/     # :の追加だけでOKかは不明
            end
      
    3. AVTransport.GetPositionInfoなど
      REXML::ParseException: #<ArgumentError: invalid byte sequence in US-ASCII>l;

      などのエラーになりまくり。default_externalをutf-8にしているのだが、REXMLは何を元にしているんだろう?(このあたりはまだ手をつけていない)。

      追記:REXML::IOSourceに問題があり なのだが、この場合、Content-Typeにはutf-8がセットされていて、かつopen-uriを利用している場合もSOAP4Rを利用している場合も、それは正しく認識している。しかも特定のフラグメントの処理時にUS-ASCIIになる(それ以外はUTF-8)なのでわかりにくいことこの上ない。

    4. UPnP::Control::Service#method_missing

      1.9系では動かない。面倒なので、obj.driver.メソッド 形式で利用しているが、respond_to? の実装が1.8っぽい。

        def respond_to?(message)
          @driver.methods(false).include? message.to_s || super
        end
      

      多分、to_sが不要

  • Windows Media Player 12の問題

    ノートPCから制御ができないので、何がなにやら(WMPも動作しないわけでUPnPの問題ではなく、マカフィーのファイアウォールが設定を無視しているのか? とかいろいろ)だったが、こいつが、SetAVTransportURIの呼び出しでCurrentURIに、VirtualBoxのIPアドレスを設定してスピーカーに送り込んでいたことが判明。でも、WMPにはサーバーのIPアドレスを設定する項目が無い……。いちいちコントロールパネルから、ネットワークデバイスの無効化とかしてやるしかないのかな? というわけで、WMPの役立たずっぷりがわかった。っていうか、普通は仮想マシンのIPアドレスは内部IPアドレスに対するNATではなく、同じネットワークのIPアドレスを割り当てるものなのかな?

ONKYO WAVIO ワイヤレススピーカーシステム DLNA対応 15W+15W ブラック GX-W70HV(B)

あわせてインストールしたい Wireshark

あわせて読みたい ミニ実験でつかむパケット解析手法 ネットワーク原理の観察からトラブルシューティングまで(荒井 美千子)


2012-03-21

_ 能楽堂 1.3.0

能楽堂

Ruby-1.9.3-p125、Rails 3.2.2。Railsのバージョンが上がったので関連するgemも軒並みバージョンアップしてあります。例:activerecord-sqlserver-adapterは3.2.1になりました。

・既知の問題点:多分、Ruby-1.9.3-p125になったからだと思うけど、コンソールで^Cでは終了しなくなりました。MSWin64 Rubyのシグナル処理がなんかバグっているんじゃないかなぁ(そのうち見る予定)。コマンドプロンプトウィンドウのXをクリックして殺してください。

・productionモードで実行する場合には、public/assetsをルーティングするために、config/environments/production.rbのconfig.serve_static_assetsをtrueに設定する必要があります。(文書化してあるけど、Ruby on Rails を Windows Azure で使用するの『production モードでの実行』に追記する必要があるかも)

・一通りアプリケーションを作ってSQL Expressとインターフェイスさせてみたので、普通に利用できると思います。

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

_ なかむら(う) [>コンソールで^Cでは終了しなくなりました。 Bug #6131 ですね。 原因はわかってるけどどう直すかが決まって..]

_ arton [シリーオプションになっちゃうのかなぁ。犀 (ずいぶんと違う)]


2012-03-24

_ ユベールロベール

国立西洋美術館で、ユベールロベールの企画展。企画自体がうまくて(時間の庭とは言い得て妙だ)、まったく退屈知らずの約2時間を楽しんだ。

おもしろかったのは特に3点:

・ベルサイユ宮殿の一部とは言え成功をおさめた庭園デザイナー(その他にもいくつも手がけているし、最初のルソーの墓碑のデザイナーでもある)で本国では知られているらしいのに(画もどう考えても嫌う人はいなそうな明解さと美しさをもっている)、なぜ、フランス大好き日本で全然無名なの? という驚き。

・廃墟を描けば19世紀末には人類滅亡を予感させる陰鬱なものになるわけなのに(ベルギー頽廃派とかがまさにそうだ。というか廃墟になりそうなブルージェとかだけど)、廃墟は自然の中に朽ちて溶け込んで(倒木の画が何点かあったが廃墟はおそらく植物化した何かなのだろう)、そこで洗濯女が労働し、赤ん坊があやされて新しい生活があふれているという、健康的というのもともちょっと違う、ありふれた日常風景になっている(明るい未来があるべき過去と現在というか)、なるほど、もうすぐ市民革命なんだねぇーという感が溢れている。(もっとも本人はルーブル宮に住み込んでいたらしいから、まったく庶民というのとは異なるけど、でも時代の空気は時代の空気ってやつなんだろう)

・で、革命後は投獄されたそうだが、その間に牢屋の中で制作して横流しして稼いだらしい絵皿が、ほーこれこそ労働者リアリズム(じゃないけど)という、ギロチンで首が次々落ちている時代に妙な生活を送る不思議さ。

・最晩年のベルサイユ宮の庭園の大作(自分がデザインした人工洞窟の画)が、えーと驚くほど緻密な駄作(技術的にはうまいんだろうし、構図は良いと思うのだが、60年代の画と違ってなんかべたーっとしていておれにはつまらない)で、はて、この人は一体なんだったのか? と最後に大きなクエスチョンが残るおもしろさ

満足しまくった。

Futures & Ruins: Eighteenth-Century Paris and the Art of Hubert Robert(Nina L. Dubin)

その他:

・赤いチョークと黒いチョークで突然、豊かな色彩を感じさせる温泉から見た風景(というような題のロシュフォールの家で発表したらしい作品。題は忘れた)の画が、それまでの油彩や単なる赤チョークと異なって、すごく印象的だ。なんか、とんでもなくいい画だった。(廃墟関係なし。洗濯女系の画かな? 色彩だけ覚えている)

・おれの印象では、廃墟(遺跡)には2種類の描き方があるのではないか。細部の意匠に着目する方法と、全体の構造に着目する方法。でも、この画家は突然細部の意匠に着目したりもするが、この画を描いている現在の枠組みの中に当てはめることを第一義としているように見える。

名付け親(本当の父親かも知れないし、父親の雇い主かも知れないし、そんなことはわからない)は、脚韻が好きなのは間違いなさそうだ。

・同時開催のピラネージの牢獄も観たかったが、疲れたのでまた今度。


2012-03-25

_ DLNAスピーカー(続)

だいたいプロトコルは(UPnPの仕様は入手できたけど、DLNAは無理っぽいので、Wiresharkで眺めて理解した範囲だけど)わかったので、デスクトップのWMPから再生しているものを、ノートで動かしているirbからUPnPライブラリ(改)を利用して、停止、再生、ポーズ、ヴォリュームレベルの取得、設定とかはできるようになった。

というわけで、後は、URIの提供なのだが、WMP12の仕組みを見ていると、次のようになっていて、なんだかなぁ感はぬぐえない。

1)WMPでリモートプレイ用のウィンドウを開く

2)WMP本体から上記のウィンドウへ選択したトラックをドラッグ&ドロップ

3)再生開始

とするわけだが、2)の時点で選択されたプレイリストをスピーカーへ送るのかと思っていたら違った。

次のトラックへ移動する都度、URIをAVTransport#SetAVTransportURIで送り込んで、SetAVTransportURI#Playを呼び出す仕組みだった。したがって、SetAVTransportURI#NextやSetAVTransportURI#Previousは利用しない。

UIの自由度の問題なのかなぁ。

逆にこの方法なら実装は単純な気がする。難しいというか未知の部分は、SetAVTransportURIで送り込むメタデータの部分で、コンテンツからメタデータを取り出す方法は調べなければどうにもしょうがない。

で、ONKYOの実装は、WiresharkでUAを見る限り、コンテンツ(MediaStream)の取得には単にVLCプレイヤーを利用しているだけのようだ。

ONKYO WAVIO ワイヤレススピーカーシステム DLNA対応 15W+15W ブラック GX-W70HV(B)

(耳が慣れたのか、今はとてもご機嫌な音でニールヤングを再生している)

そこで、ちょっと考えてみた。

自作PCの時代は終わったけど、自作XXが世の中から消えるこたないだろう。

そこで、次の製品に目を向けてみる。

JVCケンウッド ビクター スピーカーキット SX-WD1KT

ちょっといい感じだ。音もよさそうじゃん。

わざわざ、自分で組み立てるわけだし、音楽の再生にそれなりのお金をかける人が購入するのだ。

ここに、市価3000円くらいのミニPCからノイズ源を可能な限り排除した(と称するだけだとさすがにばれるのでまじめにやる必要はあるだろうが)やつと、組み込み用にぎりぎり小さくしたLinux、VLCプレイヤー、WiFiチップセットとドライバーでキットを作ったらどうかなぁ。

同じように、自作テレビセットなんてのもそれなりに売れそうな気がする。

老人の暇つぶしに最適な感じだ。LinuxのカーネルやWiFiドライバーをいじれるようにしておけば、レイテンシを極限まで小さくする改良が行われたりとか、VLCプレイヤー用の新たな(どえらくスループットが良い)エンコーダーが作られたりとか。


2012-03-27

_ Subversionレポジトリに対するrobots.txt攻撃

攻撃っても、DoSとかじゃなくて、クロウラーがとにかく読みに来て、そんなものはSubversionのDAVの仕組み上、あり得ないので500になってerror.logが膨れ上がるということ。

でも、<Location>でDAV svnしているから、どうにもしょうがない。空しくrobotx.txt.formatが見つからないといって500がログされていく。

で、検索したら、同じように感じている人がいて、 Re: stopping webcrawlers using robots.txtで、Locationの代わりにDirectoryを使う方法を紹介していた。

で、実はfollowに気付かずに、やってみたら(当然)うまく行くのだが、follow見たらupdateが動かないとか出ている。

で、本当にそうなので、あえなく元に戻した。

でも、同じスレッドに良くみたら別解(Rewriteで普通のvhostへ飛ばす)があって、それがビンゴだった。


2012-03-29

_ 買った読んだ

軍鶏の最新刊が出ていたので買ったのは良いが、表紙に見慣れぬ男がいる……誰だ、このごっつい抜け作は?

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

画が洗練され過ぎたんじゃないかとか(試合の動きは美しいのだ)。黒崎以外はみな違う人間に入れ替わってしまったような印象を受ける。

にも関わらず、試合運びは、直観で敵の強さを見抜きひたすら逃げて、しかししょうがないので開き直って(ここでレフリーに、「やめられるならやめてぇよ」とか捨て台詞を吐くのは、うまい)、考えろ考えろと頭を使って対抗策を練る。何にも変わっていない。

まあ、このまま惰性で最後まで買うかも知れないが、社会から隔絶されてしまって、肉体の躍動を描く画家の作家主義だけが残った残骸のようなマンガになってしまったなぁ。


2012-03-30

_ 買った読んだ

もやしもん(11) (イブニングKC)(石川 雅之)

まあ、内容はともかく、引っ掛かった、引っ掛かった、25万分の1に引っ掛かった。

オリゼによるポリオのワクチンについての豆講座が入っていて、それ自体は、途中まで筋道が通っていて、ふむふむそうなのかと読むわけだ。

1960年ちょっと前にポリオ大流行(といっても病気が病気なので全国で数1000人という規模)。

子供のころを思い起こせば、小児マヒで車椅子というのは、一つの主人公が美談を作るためのパターンとなるくらいには流行した。肩を壊して通院していて知り合った、入院している車いすの少年の夢をかなえるために主人公が奮起して優勝するとかね。

で、最初、不活化ワクチンを使っていたのだが、これが予防にはきくが、現にウィルスがうようよしているところでは、あまり効き目が無い。

そこに、どうにか日米安保(まだ締結する前だと思った。というかおれも生まれていない)の足を引っ張りたいソ連から、効き目ばっちりの生ワクチンを提供するという申し出がある。

それを無視する自民党政権。

でも、最終的には国民の声に押されて生ワクチンを認可するのだが、ソ連は関係なく国産するのかな。ちょっと忘れた。

効き目は抜群で、またたくまにポリオは激減し、上で書いたような美談の中でしか登場しない病気となり、そのうち、美談の中にも出なくなった。

そうやって国内生産ができるようになり、しかも効き目があるとなると、産業として成立し、かつ実績と前例ができるので、前者は経済、後者は政治のアーキテクチャがあるから、変えられなくなる。

となると、国内に関してはウイルスそのものがいなくなったにも関わらず、不活化ワクチンに戻すということができなくなった。

問題は生ワクチンは、あくまでも生ウイルスだということで、一番危険な数字を持ち出すと250000人に1人は、副反応として感染してしまう可能性がある。不活化ワクチンにはその危険性はほとんど無い。

これは、おかしいだろ? とオリゼが叫ぶ。

うむ、そうだなぁと読み進むと、突然、オリゼがむちゃくちゃを言い出す。しょせん菌だなぁ。

親にとっては、250000分の1という数字には意味ないですよね? 我が子が罹患するかしないかの1/2です!

いやいやいやいや、それはないだろう。

こういうたわけた物言いが入ると、とたんにげんなりしてしまうのだった。

良い日本人が1億人いるとして、しかし犯罪率から25万人に1人は殺人を犯す悪い日本人です。でも、親にとっては殺されるか殺されないかの1/2ですよね。隣人の日本人を撃ち殺しましょう。

それは理屈ではなく、単なる扇動だ。(似たような扇動をさんざん見せられたのが、まさに昨年のことだった)

というわけで、なんかとても気分が悪かったせいで、本編も今一つ。ただ、美空が宙をばたばたしてから、ふとあきらめるところでは笑ったけどな。

神奈川県は地方行政として不活化ワクチンの接種に取り組んでいた(民主党政権が今秋から導入としたので今年3月末でやめるらしいけど)ようだ

# 百日咳を巡って2種か3種かという選択はあって、子供には確か2種を受けさせたのだが、今は焦点はポリオに移って、百日咳ワクチンは問題なくなったのか?

jaWikipediaだと、百日咳は不活化ワクチンに問題があって、微妙な対応をしつつ1994年(これも非自民政権だ)に仕切り直しがあったみたいだな。年金の問題とか厄介なこともあるし、動きは遅いかも知れないけど、厚生労働省は仕事をしているなぁ。


2012-03-31

_ 仮想ホストの罠

httpsなホストが動いているapacheに、もう1つhttpsな仮想ホストを追加しようと考えた。

で、テスト用の認証局からサーバーの俺様証明書を作ったりしてごちゃごちゃと仮想ホスト用のhttpd.confをきったりして、service httpd restart。ここで、サーバー証明書はパスフレーズなしの秘密鍵で作っとかないとapacheというかmod_sslがパスフレーズを聞いて来て厄介だということを知った。が、それは余談。

で、ブラウザーからアクセスすると、当然のように、危ない証明書の警告が出る。で気にせず進めて動作を確認してから、俺様認証局の証明書をブラウザーにインストールしてやり直した。

はて、相変わらず危ない証明書と文句を垂れるぞ? と、不思議になる。認証局の証明書はちゃんと入っているしなぁ……

で、サーバー証明書を表示したら、既に動いているホストのやつが出てくる。ホスト名が違うから、危ないって言っているのか!

で、新たに追加したホストのhttpd.confをチェックするが、秘密鍵も証明書も正しく俺様ファイルを参照するようになっている。

ログをみると……アクセスされていない。でも待て、アクセスしているわけだが。

という順序で調べたので、原因にたどり着くまで時間がかかった。

リクエストヘッダーを参照するには、復号されている必要があるってことだろうなぁ、と同僚と納得し合ったのだった。


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|

ジェズイットを見習え