トップ 最新 追記

日々の破片

著作一覧

2006-09-01

_ SCSF

馬鹿馬鹿しいが面白い。pub/subを属性から自動解決と言うのは巧いかも。

最初にGAXCABEntLibをインストールする。

Smart Client Software Factory

後で書く

_ C++

何を考えてるのかC++のことを「しーぷらぷら」と口にしまくるので気持ち悪い。

すごい違和感。本当に口にする人がいるとは。

_ スラド

「5 素晴らしい考察」がトップに来てるわけで、ミスリードも甚だしい(中盤あたりからこういう投稿は「4 おもしろおかしい」とかに変わるのだが)。というか、明らかに-1相当だと思われる。で、その下には「4 参考になる」というでたらめが書いてあったり(で、その下に「3 参考になる」「2 参考になる」で訂正してる人がいたり)。4より上しか読まないとまったくゴミだ。

最後のほうになると「2 すばらしい考察」とかがやっと出てくるが時すでに遅し。というか、2だし。

とか、あきれながら読めるところが、スラドの価値なんだろうな。

#確か、豊田有恒のショートショート(筒井康隆かも)で、盗作騒ぎに巻き込まれたら次々と「わたしが書いた小説の『すでに辺りは暗くなっていた』という部分を盗作している」とか「『好きだ……。』という部分を盗作している」とか言い出す作家が何万人も押し寄せてきて、元の小説が身包み剥がされて最後の最後に真実の1つの文が残るというようなのがあったような気がしたが、そんな感じ。

_ 悲しいお知らせ

以下の商品については入手できないことが判明いたしました。
ジョゼ サラマーゴ (著), et al "見知らぬ島への扉"
お客様にこの商品をお届けできる見込みでしたが、現時点ではどの仕入先 からも入手できないことが判明いたしました。お客様のご期待に背くお知らせとなりますと共に、お客様にご迷惑をおかけしたことをお詫びいたします。
見知らぬ作家の見知らぬ書物を見知らぬ時間に人知れず紐解く喜びがついえ去ったのを知る。
本日のツッコミ(全16件) [ツッコミを入れる]

Before...

_ arton [あ、よく見たら「ます」が付いているので想定外人物だったかも。]

_ wildcats [勝手な推測ですけど「VC++」から「しーぷらぷら」と略して言うようになったって無いですかね〜? 「ヴぃじゅあるしーぷ..]

_ arton [TechEdでシープラプラ言いまくってた人の知名度と活動範囲から考えると十分にあるかも知れませんね。 字面じゃなくて..]


2006-09-02

_ SCSF

というか、なんていうか、MSDNのこのあたりのソフトウェアってなんか不愉快な。

っていうのは、ダウンロードしようとすると、必ず無料だからレジストレーションしろとか言って来る。しないとダウンロードできない。まあ、それが1個か2個なら良い。でも、関連するソフトウェアのすべてが登録しろとか言って来る。

なんでそんなのが必要なんだ?

単純に考える。かみそりを振り回すのはシャブロルだ。

嘘の心 [DVD](サンドリーヌ・ボネール)

それはやはり、評価というやつじゃないか。MS内部でのプロジェクトに対する。どのプロジェクトが求められているかとかを判断するためにやってるとしか思えないね。

Jakartaの関連するやつを集めないと動かないやつよりもっと面倒だ。

ぷんすか。

_ キャブキャロウェイ

SCSFのためにはCABが必要だが、CABはCABじゃなくMSIで配布されている。

というわけでもないが、キャブキャロウェイのことを突如、思い出した。

ハイ・デ・ホー・マン(キャブ・キャロウェイ)

(ジャケットは良いがこれは買えないだろう)

ミニー・ザ・ムーチャー(キャブ・キャロウェイ)

(こっちは妥当)

場所が横浜、斉藤さん達とのスパークス会議の席上でのことだ。

そういえば、昔、横浜のブントホテルの近くに行ったことがある(ブントじゃなくてバンドかも)。キャブキャロウェイを見るためだ。横浜といえばタップとズートというイドラがそこで生まれた。

ハイデハイデホー、ハイデハイデホー。

と書くと、ハイデハイデハイデハイデホー、ハイデハイデホッホーホーというチーズかなにかのCMを思い出すけど、全然関係ない。

_ Amazon

またURLが変わったようだ。クールじゃない。

面倒なのでそのうち直す。

_ うう

明日も嵐山を抜けなきゃならない(それも早朝)というか、今日だよ。

寝るか。

_ Amazon

行ったきり戻れなくなっていたのでとりあえずこのページについてはタグを殺した。

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

Before...

_ arton [ハンバーグなのか。っていうか、全然スイスの山小屋と山男と結びつかないところがなんとも(チーズはヤギじゃないけど一応そ..]

_ 桑島 [×マルシン→○丸大、らしいですよ。 /www.geocities.jp/tune1973/data.html 幼稚園..]

_ arton [おおー、これですよ。最後のハモリ具合が最高ですね。というか「大きくなるんだよ」が実は重要そうなのに記憶から欠落してる..]


2006-09-03

_ Vista Beta2のインストールが終わらない

縁起物だし入れたいなぁと思うわけだが、というかTechEdというのはデモの場としても意味があるのだなとつくづく思うわけだが、そうだVirtual PCだ、というわけでやり始めたのだが。

もちろん、いまや「-usehostdiskcache」を付けて起動するのは当たり前――と思ったが、ショートカットのリンク先から抜け落ちてるな……ショートカットでコマンドライン引数を指定しておくのってどうやるんだ? (追記:とりあえずバッチファイルを作ってそれのショートカットを作るようにしてみたが、43% 8:08時点がもったいないので試せないと思ったが、3%:0.5hなら残りが57%:9.5hか……やり直してみるか……変わらんということはDVDの読み込み速度は問題じゃないのか、というわけで固定長VHDにしてみる)

で、それが影響してるのかしてないのか 22:00ころからインストールを開始して、7:30現在、「Windows ファイルをコピーしています(40%)」――なんでだ?

_ 突然ゴス系

Alice's Inferno(Forever Slave)

できた(2.0.2系列)。

-@amazon_url = 'http://www.amazon.co.jp/exec/obidos/ASIN'
-@amazon_item_name = /^Amazon.co.jp[::] *(.*): .*$/
-@amazon_item_image = %r|(<img src="(http://images-jp\.amazon\.com/images/P/(.*MZZZZZZZ_?.jpg))".*?>)|i
+@amazon_url = 'http://www.amazon.co.jp/gp/product'
+@amazon_item_name = /^<title>Amazon.co.jp[::] *(.*): .*$/
+@amazon_item_image = %r|(<img src="(http://images\.amazon\.com/images/P/(.*MZZZZZZZ_?.*?\.jpg))".*?>)|i
追記(ja/amazon.rb 1.3.2.7の修正(下記)じゃないとまずいようです。
@amazon_item_image = %r|(<img src="(http://.*?amazon\.com/images/P/(.*MZZZZZZZ_[^.]*\.jpg))".*?>)|i

もしかしたら、@amazon_url を変えるのはまずいかも知れないので、それについては自己判断で。

ついでにフッタにネオンみたくバナーも入れてみたがいまいち蛍光色っぽくならないな。

鼻毛カッターが出たら負けのルーレットみたいだな……

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

Before...

_ arton [どうもありがとうございます。 マシンを落とすことはできないのでVirtual PCは外せませんが(仮に製品版が出ても..]

_ ただただし [今回、@amazon_item_imageが複雑怪奇なことになっているので、そのパッチだと書影が出ない場合があります..]

_ arton [どうもありがとうございます。こちらのja/amazon.rbも修正しました。]


2006-09-04

_ GNU Development Tools

届いた。

惚れ惚れするほどきれいだ。

でも手を洗ってから読まないとあっというまに黒くなってしまいそうなのが気になる。

黒い本 (中公文庫 C 10)(ロレンス・ダレル)

しかし、カバーを付けると惚れ惚れするようなきれいさが否定されてしまうような。

結局は

汚れちまった愛―ある非行少女の日記 (集英社文庫―コバルトシリーズ)(南 英男)

美しさを保ったまま読まれない本と、汚れきった読まれた本、美しさを保ったまま読まれてはいるがその美が醜い天蓋に覆われている本。

シェルタリング・スカイ (新潮文庫)(ポール ボウルズ) (天蓋の空のほうが良い題だ)

すべてもう手に入らないらしい。


2006-09-05

_ System.Collections.Generic

System.Collectionsのやつと違って同期オブジェクトが作りにくいような気がするがなんか見落としてるかな?

#System.Collections.ICollection#SyncRoot が取れるのは見えてるが、Synchronize相当のラッピングメソッドが見つからない。ReadOnlyCollectionはあったけど。


2006-09-06

_ わらしべ長者

うさぎが川辺を歩いているとカニに呼ばれた。うさぎどんうさぎどん、ずいぶん髪の毛が長いじゃないか、おれが切ってやろう。

はて? とうさぎは考えた。全然、長いと思わないのだが。

長い長い、それは長い髪の毛が2本飛び出してるずら、とカニが言う。まるでおさげをさげた豚の尻尾のようだ。

豚の尻尾ってのはいやだなぁ、とうさぎは切ってもらうことにした。

そしてすべてが終わり、うさぎは礼を言って川辺を後にした。カニは切った髪の毛をそこらに捨てて、柿の種に水をやるために川の水を如雨露に汲むとそのまま柿畑へ去っていった。

そこにニートな男がやってきた。落ちてる2本の不思議な物体を拾うとしばらく考えた末、もやい結びで1本の紐状のものにして歩き出した。しばらくするとカナブンを見つけたので先っぽに結わえ付けて、また歩き出した。

そうこうすると、通りすがった牛車に乗った女の子が中から声をかけてきた。おら、そら欲しい。ただじゃやらんと言うと、代わりにミカンをくれるというので交換した。

そこへあらわでいでたるは黒い山高帽を被った三人の山賊達。村を襲おうと思ったが7人の強い侍が守っているそうなので、しょうがないのでそのへんをぶらぶら散歩していたのだ。

しめた、牛車だ。まずは、牛の鼻先へ胡椒吹き付け機。次に車輪を大きなまさかりで真っ二つ。昔はこのまさかりを担いで熊にまたがっていたものだ。そして、最後に取り出したるはラッパ銃。牛車の扉を開けて手を上げろ。しかし、そこへいたのはカナブンを飛ばして遊んでいる女の子。彼女は播磨の国は山椒大夫によって都へ売られていくところだったのだ。まあ、ついてるわ。おじさんたち、私を月まで連れてって。

しょうがないので、三人組は山の上の蜘蛛の巣城に子供を連れて行った。そのうち、そこら中から保元の乱やら応仁の乱やらで焼きだされた繊細な戦災孤児たちがわらわら集まってきて立派な街になった。山のてっぺんには3人組を記念してでっかな3個の山高帽が作られた。遠く京の町からも見えたそうな。

すてきな三にんぐみ(トミー=アンゲラー)

_ enum

イニュームだなぁとは思うけど、イナムときどきイーナムと口にしてる。ニュマレイション(命数法――ニュメレイションのほうがカタカナっぽくて良いようだ)じゃなくてナンバリング(番号付け)のnumだろうと最初に誤解したのが始まりだな(なぜか先頭のeは無視しているわけだが)。

わかっているなら直せば良いのだ。というわけで、今この瞬間からイニュームときどきイニュムにしようかな。

_ 手法を知らない子供たち

引用を知らずに彼らは生まれた

換骨奪胎も知らずに彼らは育った

大人になってパクパク言い出す

酸欠金魚は血が回っていない


2006-09-07

_ Jude

ちょっと仕事でUMLを書きたくなったので、いまさら竹でもないだろうと、Jude Commnunication Editionをダウンロードして使ってみたら、以前から使いやすかったのだが、おそろしいほど機能が充実していてびっくりした(かと言って処理がとろくなったってことは全然ない)。

僕の使い方だと、ユースケース図と、クラス図、シーケンス図が書ければいちおうそれで良いのだが、配置図や、コンポーネント図もかっちり書けるので作ってみた。作図可能な範囲が増えたこともそうだが、シーケンス図のCreateの振る舞いとか、クラス図の操作や属性の記述が使いやすい。

#難点を言うと、実際には.NET用のUMLを書いていたので、属性(というか公開プロパティの記述に利用: 実装詳細のprivateフィールドまでクラス図に書く気はまったく起きないし)にリードオンリーとかライトオンリーとかも付けられるといいな(追記:ステレオタイプでいいような気がしてきた)。

左のペインから右のエディターへのドラッグアンドドロップの操作感も良かった。

_ 新人への課題

っていうか9月になって新人も変だが。

会社のえらく使いにくいWeb電話帳のかわりに、普段はタスクバーの右端にいて、ダブルクリックすると検索窓を表示してそこに入れた名前でリクエスト投げてレスポンスからデータ抽出してポップアップ表示するC#のアプリケーションを作れ(WebReqeust、WebResponse、Encoding、RegExとかそのあたり。あとHTMLのForm解析するとか)

意外と正規表現に引っかかっているので、IDEのサポートが無いというのはこういうことかと思ったり(C#ベースの部分はわりとさくさく作るのだが、正規表現に書き間違いがあったりとかいろいろ)

_ 思わず「まあね」と言いたくなるエントリー

どうでもいいもん

スーパーソニック・ジェット・ボーイ(THE HIGH-LOWS)

だから、別にしーぷらぷら言っててもいいもん(でも、おれは言わないし、特別な事情がなければListと宣言するわけだし)。

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

Before...

_ arton [やっぱりヘイジュードなのかなぁ?]

_ かくたに [Java and UML Developer's Environmentのacronymです。作者は「ジュード」と発..]

_ 桑島 [おお今度から自信を持ってジュードと発音します。]


2006-09-08

_ SYNSYNACKEOT

LANの上にいきなり載るわけでもなく、TCPの上位にくるプロトコルに、なぜSYNだのACKだのEOTだのがいるのだろうか?

TCPで、ACKとかEOTとかやりとりするジグザグチャート見ると、ネイグルのアルゴリズムをどう考えているのかと(あるいは考えてないのか。というか、今も考える必要あるのかというのもあったり)。

多分、1バイトづつ読んで状態遷移表を引くんだろうな。

と、RS232Cに乗せるデータをそのままソケットに乗せたようなプロトコルを見て考えた。(でも、CRCとか付いてないんだよなこれが)

_ 今日の名言

おもしろかったので無断引用。
ruby-dev初めて読んだけど,アツいですね。
ruby-listには登場しない男たちのドラマがそこにはある感じです :-D
今nil.to_sの議論読んでます
確かにドラマかも。男たちの戦いの歌がそこにはあるのかもとか。まで言ったり。
僕はnil.to_sは、
string s = null;
System.out.WriteLine(s); or System.Console.WriteLine(s);
と同じ振る舞いでもいいかなと思わないでもない。
でも、あっちはnull.ToString()してるわけじゃないからな……

_ ステレオタイプ

タグ付けって、ステレオタイプのことなのか?

_ C#2.0 ジェネリック、反復子

わからん。次のはOK。
using System;
using System.Collections;
 
public class Enumerable : IEnumerable
{
    int[] data;
    Enumerable(int[] ary)
    {
        data = (int[])ary.Clone();
    }
    public IEnumerator GetEnumerator()
    {
        for (int i = 0; i < data.Length; i++)
        {
            yield return data[i];
        }
    }
    public static void Main()
    {
        Enumerable e = new Enumerable(new int[] {1, 2, 3, 4, 5});
        foreach (int x in e)
        {
            Console.WriteLine(x);
        }
    }
}
コンパイルも通るし、実行できる。あたりまえだけど。
しかしだ。
using System;
using System.Collections.Generic;
 
public class Enumerable : IEnumerable<int>
{
    int[] data;
    Enumerable(int[] ary)
    {
        data = (int[])ary.Clone();
    }
    public IEnumerator<int> GetEnumerator()
    {
        for (int i = 0; i < data.Length; i++)
        {
            yield return data[i];
        }
    }
    public static void Main()
    {
        Enumerable e = new Enumerable(new int[] {1, 2, 3, 4, 5});
        foreach (int x in e)
        {
            Console.WriteLine(x);
        }
    }
}
をコンパイルすると
enum.cs(4,14): error CS0536: 'Enumerable' はインターフェイス メンバ 'System.Collections.IEnumerable.GetEnumerator() を実装しません。'Enumerable.GetEnumerator()' が public ではなく、static になっているか、または戻り値の型が正しくありません。
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll: (以前のエラーに関連するシンボルの位置)
enum.cs(11,29): (以前のエラーに関連するシンボルの位置)
となる。これって、反復子とジェネリックは食い合わせられないということ? それとも僕の書き方が何か間違っている?
追記:試行錯誤の結果できたけど、なんだこりゃ?
using System;
using System.Collections.Generic;
 
public class Enumerable : IEnumerable<int>
{
    int[] data;
    Enumerable(int[] ary)
    {
        data = (int[])ary.Clone();
    }
    IEnumerator<int> IEnumerable<int>.GetEnumerator()
    {
        for (int i = 0; i < data.Length; i++)
        {
            yield return data[i];
        }
    }
    public System.Collections.IEnumerator GetEnumerator()
    {
        return ((IEnumerable<int>)this).GetEnumerator();
    }
    public static void Main()
    {
        Enumerable e = new Enumerable(new int[] {1, 2, 3, 4, 5});
        foreach (int x in e)
        {
            Console.WriteLine(x);
        }
    }
}
しかも、まったーく意味がない。
        foreach (string x in e) // publicがあっちなのでこう書ける
        {
            Console.WriteLine(x); // もちろんInvalidCastExceptionになる。
        }
#ジェネリッククラスを提供するのでなければ、ジェネリックIEnumerableを継承してもほとんどおいしくない。

追記:
NAgilerさんに教えてもらったけど、もう一声が足りなかった。

using System;
using System.Collections.Generic;
 
public class Enumerable : IEnumerable<int>
{
    int[] data;
    Enumerable(int[] ary)
    {
        data = (int[])ary.Clone();
    }
    public IEnumerator<int> GetEnumerator()
    {
        for (int i = 0; i < data.Length; i++)
        {
            yield return data[i];
        }
    }
    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
    {
        return ((IEnumerable<int>)this).GetEnumerator();
    }
    public static void Main()
    {
        Enumerable e = new Enumerable(new int[] {1, 2, 3, 4, 5});
        foreach (string x in e)
        {
            Console.WriteLine(x);
        }
    }
}
だと
Microsoft(R) Visual C# 2005 Compiler version 8.00.50727.42
for Microsoft(R) Windows(R) 2005 Framework version 2.0.50727
Copyright (C) Microsoft Corporation 2001-2005. All rights reserved.
 
ite.cs(25,9): error CS0030: 型 'int' を型 'string' に変換できません。
で、OK。インターフェイス継承したメソッドのどっちをpublicにするかは厳密に決まっているわけではなく、自分の好みで良いようだ(確かに、それはそうだな)。

2006-09-09

_ Sun対MS

今は仲良く喧嘩しな状態でいい感じだが、JRuby対IronPythonってのも成り立つのかな?

JRubyの開発者がSunに雇われたとか。

_ Adobe on Rails

Announcing the Ruby on Rails RIA SDK by Adobe

後で読むかも。RIAってなんだ?

_ tcltklib

   ライブラリ tcltklib-i386-mswin32.lib とオブジェクト tcltklib-i386-mswin32.exp を作成
中
tcltklib.obj : error LNK2001: 外部シンボル "_TkEventuallyRedrawMenu" は未解決です
tcltklib.obj : error LNK2001: 外部シンボル "_TkEventuallyRecomputeMenu" は未解決です
tcltklib.obj : error LNK2001: 外部シンボル "__imp__TkFindMenuReferences" は未解決です
../../.ext/i386-mswin32/tcltklib.so : fatal error LNK1120: 外部参照 3 が未解決です。
NMAKE : fatal error U1077: 'cl' : リターン コード '0x2'
Stop.
NMAKE : fatal error U1077: '.\miniruby.exe' : リターン コード '0x1' 
Stop.
追記:stubの問題っぽいな(今回、Tcl84に変えてみているのが理由か?)。
追記の追記:当たりだ。しょうがないのでstub無しでTcl84をハードリンク(という言葉で良いのかどうか)。

_ リストマニア

リスト:ピアノ・ソナタ(ポリーニ(マウリチオ))

人から大して省みられない音楽が好きなおれが一番好きな後期ロマン派の作曲家はもちろんリストなのだ(ツェムリンスキーとか叙情交響曲を聴く限りそんなに好きではない)。

リストにはすべてがある。

・単一化への強い意思

・美しいメロディー

・分厚い響き

・漸進的半音階

・リズム指向

・名人芸指向

・不安感

・巨大な音が響きあう陶酔感

・動機による構築(パターン)

・ゴシップ

・高潔さ

・気紛れ

・遠くを見ようとする希望

とか、そんな感じ。

ポリーニはへたするとつまらない演奏に陥りがちなクリアな演奏と計算ずくの解釈力の持ち主だが、おかげでロ短調ソナタの美しい構造がきちんとインスタンス化されていて、これが単なる流行ものメロディーの名人芸スクリプト(即興)グルーによるツギハギの怪物ではなく、適切な循環構造を持つ、むしろ生き生きとしたパターンランゲージで無名の質を示しきった見事な大伽藍だということが見える(ホロヴィッツ最晩年のパイプだらけの――レアルの建物みたいな感じ――も好きではあるが)。ポゴレリッチの押し付けがましい構造の明白化(ポリーニが29分ちょっとで弾いているところを33分強で弾いているわけで、10%増しだ)のも好きだけど。っていうか曲が圧倒的にすばらしいのでブレンデルのでさえ良かったりするわけで。

ロ短調ソナタは前期ロマン派のベートーヴェンの32番、セリエル派のブレーズの2番(疲れるからほとんど聴かない)と共にピアノソナタの平面的な金字塔の1つの頂点(立体的な金字塔であれば、スクリアビン――構造的にはリストの直系かも。初期はショパンみたいなのだが――を含める必要がある)だ。

それにしても30分、動機重要とか、ベートーヴェンの5番目の交響曲というのは、音楽としてはこれっぽっちも好きでは無いが、驚くほどソナタ形式の完成形であるな。

灰色の雲とか凶星!は、自分でも弾けるので別にポリーニが弾いているのを聴く必要はないのだが、それにしても、増4度の閉塞感(2音しか持たないのだからまったく発展性がない)に対するリストの偏愛ってなんなんだろう? 灰色の雲も凶星!も動機の2音目と3音目が増4度の跳躍なので、ほとんど同じ曲に聴こえるわけだが(それにしても凶星!のほうは、動機の終結の部分がC−F#の下降による和音なので閉塞感も著しい。中間部あたりではほとんど増3和音で響きが1つに収斂するのでリズムだけが生き残ったり。

もしかするとダンテソナタとかから類推すると、リストにとっての「何も無い場所」なのかな。

Fear of Music(Talking Heads)

悲しみのゴンドラは僕でも弾ける陶酔的な和音の連続と美しいメロディーの組み合わせのショートピース。しかし、これも崩落寸前の美しさ。

そして最後のリヒャルト・ワグナー―ヴェネツィアだが。この曲はいきなりC#-Fnatural で、そもそも調性記号がない曲なのに、なぜFにナチュラルを付けてるのか、といえば、C#の次にFが来ればそりゃ普通はF#になるからだ。というわけで、ここでは減4度を譜面上で強調してたり。この左手の舟歌風の繰り返しの最初の4度のバリエーションがすべての曲。途中、妙にすっきりするのだが、ヴェーヌスベルクを巡る物語じゃないよな(ローマに巡礼に行くはずがヴェネツィアに着いたとか)。

_ レネグルスベルト

Mlah(Les Negresses Vertes)

妻がNHKテレビのフランス語講座を見てた時、今月の歌で紹介されてた連中がぶっ飛んでて思わず買ったわけだがアルバムはクソだ。少なくても聴き通すこたできない。退屈だ。

とは言え、この天気の下でうんざり歩いている時に、iShuffleからいきなり「イルフェショー」とか脳天気な声が聴こえて来ればほんの一瞬とは言え気分はナイスなニースあたり(ストラングラーズからの引用)。

なんとナントで休暇だよ(ジャックドゥミーのロシュフォールの恋人達のマクシミリアンの科白から引用)。

_ 荻窪ドミナス

今日はフォワグラ丼。ピクルスが合う。

シャトームトンのポスターを眺める。70年代はすごい時代だな。フィニは30年代なのか。


2006-09-10

_ ASR 1.8.5.0

ASR 1.8.5.0

Exerbは4.0(1.8.4)のままです。

追記:前回入れ忘れたrb2exeをスタートメニューに登録してみた。


2006-09-11

_ Rjb-1.0.1

download
Object getObject() {
    return new Object[] { "a", "b" };
}
とした場合に、クラス名の[Ljava/lang/Object;を配列と認識せずに処理してたのを修正。
svn+ssh が山ほどpasswordを訊いて来る(svnクライアントが複数のコネクションを張るのが原因らしい)ので不安になって、いろいろなパスワードを試した結果、ブラックリストに載ってしまった(らしい)。
と、FAQ街道を驀進中で心より恥じる……

_ ASR-1.8.5.1

ASR-1.8.5.1

パッケージミスしてました。すみません(2回目だ)

ついでというと変だけどrjbも1.0.1に更新。

で、なぜパッケージミスなんてするのかと言うと、Visual Installerの設定方法にあって、安全にやるには、常に全部削除−全部登録が必要だけどそれが遅くてGUI操作ではやってられないというのが理由。

でもそうも言ってられないので、次回からは我慢するか、なんか方法を考えるか(*)で対応予定。

もしかすると、目検はしてるけど他にもコピー漏れがあるかも知れませんので、気づいたら教えてください。

*)考えたぞ。リストボックスを指定すると、その中に入っている文字列をコンソールにリダイレクト(じゃなくてもコピペ可能なようにEditコントロールへコピーでも良いか)するバッチ操作可能なツールを作れば良いのだな。

ツリーコントロールの先頭から順にたぐりながら、右側のリストボックスペインの内容を取得していくようなやつ。

#追記:というか、単にインストールが終わってから元のツリーとの差分を表示すりゃいいだけだな(外部拡張ライブラリは別)。

_ C#の匿名メソッド

既に戻り値の型を見ているんだな。
using System;
public class Ano
{
    delegate string f();
    static void hello(f fun) {
        Console.WriteLine(fun());
    }
    public static void Main()
    {
        hello(delegate { return "Hello"; });
    }
}
匿名メソッドは
primary-no-array-creation-expression:
    …
    anonymous-method-expression
anonymous-method-expression:
    delegate anonymous-method-signature(opt) block
anonymous-method-signature:
    ( anonymous-method-parameter-list(opt) )
anonymous-method-parameter-list:
    anonymous-method-parameter
    anonymous-method-parameter-list, anonymous-method-parameter
anonymous-method-parameter:
    parameter-modifier(opt) type identifier
    ――(C# Language Specification 2.0, March 2005 Draft)
(anonymous-method-parameter-listはオプションなのか……)
なのでメソッドシグネチャに戻り値の型がない。
ということは、型チェックは実行時のInvalidCastExceptionにお任せかというと違う。
using System;
public class Ano
{
    delegate string f();
    static void hello(f fun) {
        Console.WriteLine(fun());
    }
    public static void Main()
    {
        double d = 3.5;
        hello(delegate { return d; });
    }
}
をコンパイルすると
ano.cs(11,9): error CS1502: 'Ano.hello(Ano.f)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
ano.cs(11,15): error CS1503: 引数 '1': '匿名メソッド' から 'Ano.f' に変換できません。
とエラーになる。
そこで次のように変える。
using System;
public class Ano
{
    delegate string f();
    static void hello(f fun) {
        Console.WriteLine(fun());
    }
    public static void Main()
    {
        double d = 3.5;
        hello(delegate { return d.ToString(); });
    }
}
戻り値の型がstringになった=fの定義と一致ので、これでコンパイルが通る。
本日のツッコミ(全3件) [ツッコミを入れる]

_ 桑島 [書くのを忘れていたのですが、_invokeで引数に配列が含まれるとき、配列引数の値がnilだと「can't coer..]

_ arton [空配列使って欲しいとは思うけど取り込みます。]

_ arton [リリースはしないけど、直しました。 http://rubyforge.org/plugins/scmsvn/view..]


2006-09-12

_ ファクトリメソッドかインスタンスの貼り付けか

微妙なシンクロニシティもあって、昼の仕事でC#でコンポーネントを作っているのだが、どうも勝手が違う。
Javaに慣れすぎたせいか、どうしても
 public static Foo createNew() { return new Foo(); }
 private Foo() { ... }
みたいに書きたくなるのだが、そうするとどうしても、ツールボックスに貼り付けてプロパティエディターでプロパティを永続化して……みたいな利用方法はできなくなる。あたりまえだけど。
どっちが良いか考えてみると、実に微妙な問題だ。
そういえば、COMシングルトンのベストプラクティスを思い出す。
COMではシングルトンは内部オブジェクトにしておいて、ユーザーにはラッパーのインスタンスを与える(したがってマルチインスタンスに当然なる)のがベストプラクティスだ。マーシャリングの問題とかをマルチインスタンスとして生成されるCOMのコンポーネント側で吸収できるからだ。
同じように考えるのが良いかな? (とは決めにくいのだけど)
貼り付け可能にしてユーザーへ与えるコンポーネントは 1……n:1 の関連で、内部で利用するオブジェクトへの参照を持つようにする。内側が外側で外側が内側。
それに関連しなくもなく
public class Foo : Component {
    public Foo(IContainer container) {
        container.Add(this);
    }
    ...
}
というのを見て、なんとなく幸せな気分になったり。

_ 歴史を知らないからウヨ

ちょっと複数のBlogやらページやらで、昔はサヨばかりでどうしただけど最近はウヨも増えてきたから変なのが混ざって来ただけだよ、みたいな愚かなカキコミを見て困惑した。

確かに暴力団を雇って労組指導者を拉致したりするのは、実効力があるという意味ではこれっぽちも「変なの」ではないかも知れないし、滅び行くものを守ることが滅ぶことであることを身をもって呈した三島由紀夫は単に特異点なのだろうけど、それでは権藤成卿の社稷という不思議な概念や、単なる論難の固まりで何がしたいのかまったくわからない北一輝や(そのあたりのなんだかわからないけどムシャクシャするんやみたいな気分が喧嘩えれじいに最終的には昇華するのだろう)、というか思想(個人がどう世界と対峙するか)と政治(個人間の利害の調整をどう最大限の幸福に導くか)の境界をあいまいにしてる時点ですでに意味なんかまったくないのだ。

政治としての右翼というのは実効性がある(しかしそこには最大限の幸福という政治のもっとも重要な観点は欠落している=それは暴力装置としての実効性でしかない)。しかし思想としての右翼というものにはまるで意味がないし、かって意味があったためしがないし、なんの価値もない。

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

_ mumurik [でもコンストラクタでAddとか副作用のあるような物をたくさん呼ぶと、Testハーネスでのinstantiateが難し..]


2006-09-13

_ タダ

NetBSDの将来」を読もうとしたら、妙にでかい広告が目に付く。

タダ という2字がどでかくブリンクするわけだ。

ふむふむ「タダででプログラムコードが手に入る」か。それはすばらしい。

「タダ」ってのは、つまり「タダ」のことだな。

なるほどIBMの広告か。さすが、オープンソフトに対して積極的にコミットしている企業だけのことはある広告であるな。

_ Rubyでクリップボード上の画像データを取り出してファイルへ書く

いんちきと言えばいんちきだけどな。
require 'rjb'
 
Toolkit = Rjb::import('java.awt.Toolkit')
DataFlavor = Rjb::import('java.awt.datatransfer.DataFlavor')
ImageIO = Rjb::import('javax.imageio.ImageIO')
JFile = Rjb::import('java.io.File')
 
clipboard = Toolkit.getDefaultToolkit().getSystemClipboard
begin
  image = clipboard.getData(DataFlavor.imageFlavor)
rescue
  puts 'no image in Clipboard'
  exit 1
end
# select your favorite format
#file = JFile.new('/home/test/test.jpg')
#ImageIO.write(image, "jpeg", file)
#file = JFile.new('/home/test/test.bmp')
#ImageIO.write(image, "bmp", file)
file = JFile.new('/home/test/test.png')
ImageIO.write(image, "png", file)
問題は、{PrtSc}がきかないことだが、これはセキュリティ的な理由なのか、それともGinaあたりがからんでいるからなんだろうか?(でもC-M-Delとは違うような気がするので、本当にGinaがからんでいるかは知らない)

_ コンポーネントのツールボックスビットマップ

出ない。

ILdasmで見ると、リソース名の先頭に#が付加してる。なぜだ? (理由:文字列の区切りまでの長さがたまたま#と同じコードだったから)
ネームスペース名の長さとか、ネストのさせかたとかがからんでるのか?
と気づいたことをメモ。

追記:ネームスペース名を第1引数のアセンブリから取って前置する仕様らしい。これってとてもバカな仕様に見える。

例)KKK社のProductプロダクトのFooコンポーネントを作るとする。 VS2005でソリューションFooを作るとして、デフォルトでプロジェクトはFooになる。
そこで、Foo.csのネームスペースをKKK.Product.Fooにするとする。で、そこにFoo.bmpを作るわけですな。
当然のように、

namespace KKK.Product.Foo {
  [ ToolboxBitmap(typeof(Foo), "Foo.bmp") ]
  public class Foo {
    ...
と書く。

その結果、アセンブリには何が入るかというとFoo.Foo.bmpが作られるわけだ、自動的に。しかし、Foo.classといえば、KKK.Product.Foo.Fooになっている。
これでは探せない。
したがって、最初にプロジェクトを作る時点では、KKKと作ってそれから順にフォルダーを作ることになる。のか?

実験してみたら、そうじゃなかった。プロジェクト名でKKK.Product.Foo を入れれば良い。そうすると最初からのそのネームスペースを作る。

ということは、プロジェクトというのはネームスペース名で完全修飾したプロジェクト名を入力しなければならないということだ。ちょっと発想が逆のような気がするが、わかったから良しと。


2006-09-14

_ ハッブルハッブル

南口というかほとんど代々木の紀伊国屋の5階で立ち読みしているうちになんとなく右側のほうへ進んでいて、すると冥王星の追悼コーナーがあっていっぱい平積みになってる中から、なんか表紙がきれいなので手にとってみて、つい買ってしまった。きれいなnakedの写真集を買うなんて高校卒業してから初めてだ。

天文学を飛躍的に進歩させたハッブル宇宙望遠鏡15年の新天文学 (ニュートンムック)(-)

それにしてもなんて不思議な世界なんだろうか。特に鷲座のやつは何度見ても(以前、未来館で見た)びっくりだ。しかもサイズがこっちの尺度からかけ離れているところもすげぇな。

そこで、ルトガーハウアーの死ぬ間際の独白が、聴こえてきたりもするわけだ。いろいろな光景を見て来たというのはどういうことなのかとか。

ちゃんとわかってなかったが、ハッブル宇宙望遠鏡の前後で宇宙に関する知識が大きく変わったのか。それで、子供の頃に習ったことと随分違ったりするのか、とあらためて知った。で、大気がなければ生きていけないのだが、その存在ゆえに目が曇らざるを得ないというあたりから、因習とか習慣とか作法とか文化とか伝統とか慣習とか偏見とかと、科学や技術の発達によって捨てることになったそれらの一部と未だに生き残っているものとの違いは何かに思いを巡らせてみたり、という具合に示唆に富みまくっていて期待以上に楽しい。

_ デル

なぜか自作派(最後に作ったのがAthlon1800+の時代だから、相当昔だな)からデル派になったおれに朗報が。

E521

Vista実験マシンとして買おうかなぁ。

_ デルのテレビ

家のテレビは20年以上前のナショナルの28インチのブラウン管なのだが、そろそろ液晶にしてもよいかなとか思わないでもない。(NTSCでスタンダードサイズのレーザーディスクが相当あるんだが、28インチブラウン管相当の液晶ワイド型のテレビってどの程度の大きさが必要なんだろうか?)

で、デルのPCといっしょに買えば安くなるのでW2306CとかW2606Cとか眺めてたら、電源が落ちるとか3ヶ月おきに交換だとかとんでもなさげなことが書かれていたり。

そんなに不具合出まくりなら欲しくないしな、実際のところどの程度の発生率なんだろ。

_ あやかろう

2人もNetBeansがいる。

_ MSがWS-*周辺の仕様に対して権利を主張しないことを約束

Microsoft Open Specification Promise

promiseというのは強い制限を課す意味なのかな? いや、ここまで面倒になってしまえば、プロトコルの脱共有化は完了してるから、共有してもまったく痛くも痒くもないとも取れるし。単純に考えれば、WFCが完成したからあとは普及のために、.NET Framework 3.0以外にも実装させてインタオペラビリティを確保するのが重要になったという意味だけかも知れない。

訴えない限りは自由にして良いというのは、自衛権の確保だけにしておくということなので、企業としての1つの方法ではあろうな。

そろそろWS-Transactionあたりは読んでおくか。

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

Before...

_ arton [おおどうも。……って37型相当なのか! そりゃ買えんわ(っていうかブラウン管のもすごく高い)。 これって20年前と比..]

_ arton [と思ったら桁を1個間違えてた。ブラウン管は安いなあ。]

_ むらまさ [ちなみに、自分は最近液晶テレビ(4:3の15インチ)からブラウン管テレビ(4:3の25インチ)に買い換えました。これ..]


2006-09-15

_ カマトンカチ

英語でなんて言うのかわからない。カマイタチもわからんな。

なんとなく昨日のエントリー関連で。

Official Seal Generator

Log経由。

_ time to die

イン・ザ・ナイト(ザ・ストラングラーズ)

そういえば、ストラングラーズのインザナイトの1曲目のタイムトゥダイはびっくりするほどできが良く、ヒューコンウェル在籍時の最後の10よりもはるかに好きだ。

例によって色味が欠如した単調な音色だがスピード感があり、低音が響き、ストラングラーズっぽいボーカルが入る。

これってでも実際には難しいのだ。

ボーカルはバンドのフロントエンドなので、いくらモデルやコントローラのできが良くても、プレゼンテーションに人は左右されてしまう。

たとえばPILだ。もちろんジョンライドンは他にかけがえがないから当然とは言え、でも初期のサウンドでのキースレヴァインの音作りというのはとても大きかったと思うのだが、でも、分裂後のキース版のほうは誰からも相手にされていなかった。ジャーウーブルはとりあえずおいておくとして。

もっと極端なのはエコー&ザバニーメンで、音を作っているのはギターのウィルだから、分裂後のサイカデリアみたいなタイトルのCD(奇跡的に入手できたのだが、海外版含めてアマゾンにはないな)は出色のできで、いかにイアンマカロックのために最後のほうはぐだぐだになっていたか良くわかる傑作なのだが、セールスは全然、おかげでレコード会社との契約は打ち切られてバンドはほぼ失業状態になってしまうとか。

音がどれだけオリジナルでも、パチモンに聴こえてしまうのが問題だからだ。(それにしてはニューオーダーはうまくやったと思うんだけど、それは分裂じゃないからかな)

その意味じゃ、インザナイトもパチモンのストラングラーズとして扱われてもそんなにおかしかないんだが、ファンもバンドも大人だということだな。まあ、喧嘩別れというわけでもなさそうだし。そこはかとないパチモン感は漂わなくもないんだが、良い音だ。

というくらいにフロントマン重要なんだが、そうでもないこともたまにはある。

ウルトラヴォックスだ。ビューを置き換えたらとたんに人気が出てきたといったっていいくらい。

アダムアントとバウワウワウの関係とかもそれに近いかな。というか元々バンドの体をなしてなかったとも言えるか。

というところで急に子供の卒業式の歌が、Who Loves the Sunだというんでびっくらこいたのを思い出した。ローデッド。なんでだ?

ローテッド~スペシャル・ヴァージョン(ヴェルヴェット・アンダーグラウンド)

伝説は海のかなたから聞こえてくる。アンディウォーホルが入れ込んでいるバンド、暴力的なバンド、サイケなバンド、アートなバンド、退廃的なバンド、それはいったいどんなんだ? 1ドルが360円の時代だから誰もが聴きたくても聴くことはできない。

そこにやっと日本版が発売されたよローデッド。健康的なあんちゃんがのんきに歌うよフーラブザサン。

えー、これが? とみんなあっけにとられたのは言うまでもない。これがヘロイン中毒でぐだぐだのサイケバンドか? 頭おかしいのがビオラがりがりするっていうアングラバンドなのか? アンディーウォーホルって音楽の趣味が寺山修司の映画の趣味くらいひどいんじゃないか?

とか往時を想像するでよ、ローデッド。

#でも、割と好きだよローデッド。シスターレイ聴くよりはこっちのほうが好きだよローデッド。でも一番すきなのはゴディバ夫人だけど(なんとなくコクシネルみたいで好き。逆だけど)。

White Light White Heat(The Velvet Underground)

_ Joelの翻訳がほぼリアルタイム

青木さん、グッドジョブ。

Java、C#、PHPの3つは鉄板、Pytonは半分、Ruby on Rails選ぶなんてチャレンジャーだよね、で物議をかもした『言語をめぐる論争』。

だって、Rubyは遅いじゃん、動的だし、で同じく物議をかもし続けてる『再びRubyのパフォーマンスについて』。

まつもとさんの『Joelが実際にRubyを使おうが使うまいがそんなことは小さいことに思える』のリンク先が英語でめげた人はこっちを読もう。


2006-09-16

_ ポテトはいかがですか

結局いろいろ考えた末マシンの交換時期が来た(実験マシンに載せてるRADEON7500ではあるが、結局3Dゲームなんて一回もやらなかったな……)というわけでデルに発注。

したらいきなり日本語が母語じゃなさそうな人から電話がかかって来てちょっとひいた。

「本当に発注してよいのか?」と言ってるらしい(いまいちわかりにくい)

当然のように不安になる。AMDだからか? 実は何か工場に秘密があるのか?

で、良く聞くと、ハードディスクが大容量なのにパーティション切りの依頼がない。90%の発注者はパーティション切りをするのにおかしい。チェック漏れではないか? と訊かれる。

いや、パーティション切りは不要だよん、と答える。

いや、そうは言っても不便ですよ。事実90%の人は……と繰り返す。

いや、不要です。

いや、そうは言ってもバックアップやリストアのときに困ることになります。再インストールするとMy Pictureとか消えちゃいますよ。

だんだん面倒になってきたので、じゃあ頼もうかな、と言ったらすかさず20G、40G、60Gからお選びください、と来た。

じゃあ、60Gよろしく。

ありがとうございます。3000円の追加です。

じゃあ、いらない。

いや、そうは言ってもバックアップやリストアのときに困ることになります。再インストールするとMy Pictureとか消えちゃいますよ。

そりゃそうかも知れないけど、必要なら自分でやるからいいよ。

いや、みなさんそうおっしゃって後で泣きを見る(とは言わなかったがそんなニュアンス)。

おい、不安になってきたぞ。HDDが飛びやすいとかじゃないだろうな。まあ、そのときはそのときだ。っていうか実験用マシンだし。だから、やっぱり不要です。

そうですか、それは残念です。と諦めてくれた。

ところで、と実はまだ続く。ウィルスのなんちゃらがどうたら……

リプレース対象のマシンのトレンドマイクロのライセンスを移すか、毒食わばでVistaのMS謹製(RCにも入ってるかは知らんが)を試すからどうでもいいな、と思いながら、不要です。

そうですか、しかし……(良くわからない、というかまじめに聞いてない)

いや、不要です。

ところで、このままではオフィスとかは入っていませんよ?

ええ。

みなさん、オフィスとかお使いになるつもりで入ってないと後から導入されるよりプリインストールがどうしたこうした……

いや、不要です。

さすがに、このあたりでなんでPrecisionではこんな電話がかかってこなかったのか見当が付いてきた。さすが、Dimensionだ。きっと後から苦情のサポート依頼がたくさんたくさん来るんだろうな。というか、いまだにワープロ専用機みたく考えてる人だってDimensionならありそうだ。するとワープロが入ってないとか苦情が来るんだろう。本当かなぁ? それとも単にセールス強化月間なのかな?

で、やっと終わった。秋葉原で黙ってパーツ集めて組み立てるほうが簡単だったかも知れない(捨てるときとケースの開けやすさを考えるとそうとはいえないのがデル派になった理由なのでそれはないとは思うが)。

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

_ るいも [きっと、そこでオプション追加になると、幾らか担当者にキックバックされるとか。]

_ arton [それもありそうですね。 仕事熱心な感じで好感は持てたから、今度注文する(いつのことだろう?)ときは、Sempronを..]


2006-09-17

_ LhaLib

Lhaってコマンドでしか無いからsystemとか呼ぶことなる。でも、同じスクリプトでUnixでもMacでもWindowsでも動かしたい場合は厄介だ。だから拡張ライブラリになってりゃ便利だろう。

で、こんなのを考える。

require 'lhalib'
LhaLib::open('foo.lzh').each do |unpacked_file|
  s = unpacked_file.read # unpacked_file is IO instance
end
...

openで、展開する。配列を返す。いまさら、わざわざLhaとか使って圧縮する人はいないだろうから、展開だけで十分だろう。展開するパスはopenメソッドの第1引数で指定されたファイルと同じディレクトリとする。上の例では配列の中をFileのインスタンスにしているけど、これでは開いたファイルが多すぎて死ぬ場合もありえるから、展開後のパス名(=String)のほうが良いかも。open_each('foo.lzh') do |x| の場合にFileのインスタンスという手もあるか。

では、作ろうかと思って(僕には圧縮関連のアルゴリズムに関する知識はまったくないわけで)Lha関連のソースを探す。

オリジナルの吉崎さんのソースは、Vectorにあった。が、ライセンスがなんか面倒くさい。でも再構成した場合については自由みたいだからまあありかな。でもアセンブリ言語で書かれた部分をCにトランスレートするのはやだな。

Lha for Unixのソースは、sourceforge.jpだ(新井さんがメンテされてるのか)。うぐ、こっちのライセンスはもっとやっかいだ。派生物はLHaと名乗ってはいけないようだが、LhaLibなら良いだろう。商利用についてはむちゃくちゃが書いてある(組み込んだり派生したものの配布先が商利用する場合について不明瞭なのはともかくとしても)。使用者として不適切と判断したらだめとか書いているが、そんなものわかるもんか。っていうか、相当多数のLinuxパッケージにLHaは組み込まれているように思うが、このライセンスまったく守られてないだろ。いや、ディストリビュートするだけでは商利用に含まれないのかも。まったくもって玉虫色だ。

この時点ですっかりやる気がなくなっているわけだが、ソースを見るとライブラリ的に利用するには相当手を入れなきゃなら無そうでこれもちょっとやる気が削がれる。アルゴリズム抜きに単にライブラリ化技術だけでやっつけようとしているわけだから、何か変なことになっても直せないからだ。

さて、能書きは書いたからやるとするか。

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

Before...

_ arton [どうもありがとうございます。 7-zip ってのは知りませんでした。 http://sourceforge.net/..]

_ arton [よくみたら分離されてますね > 7-zip (ソース見ないとだめだなやはり) しかも、各アーカイバはCOMのインター..]

_ 成瀬 [Unix向けですと p7zip http://p7zip.sourceforge.net/ でしょうか。ソースは見て..]


2006-09-18

_ LhaLib

成瀬さんに7-zipを教わったものの、途中まで作ってしまったという経緯もあって(あとDLLとか特にインストールしたくないじゃんってのも無いわけじゃない。ただ、「特にインストール」する場合には7-zipが良さ気なのはわかったので、ライブラリ化する気はあります)、とりあえずLHa専用版。

LhaLib

相当手抜きな実装なので、いろいろ不都合はありそうですので、試していただけたら嬉しいです。

svnレポジトリ

_ いつから戦争映画はお涙頂戴になったんだ?

青島要塞爆撃命令 [DVD](加山雄三)

多分、これだと思うけど、子供のころテレビで見て最高におもしろかったな。

御前会議―ドーンドーンと音が鳴って大帝登場とか。

いや、それはどうでも良い。

飛行機で青島にある敵の輸送列車を爆撃するのが彼らの使命だ。

飛行機ってなんだ?

というところから始まる悪戦苦闘。横を見るとツバメが飛んでいる。で、あれよあれよという間に追い抜かされるとか。

で、狙いを定めるんだが、飛行機の脇にくくりつけられた茶筒みたいのに爆弾を入れて荒縄でくくって、横から覗いてOKそうに見えたら出刃包丁で縄をたたっきる。

で、爆弾は3個しかない。

飛行機より速い速度で基地のトンネルへ吸い込まれていく敵の輸送列車。

包丁でスパッ。

はずれー。

包丁でスパッ。

はずれー。

おいおい、もう後が無いよ。

という感じで楽しいね。というか、太平洋戦争と違って時代も呑気だし勝ち戦だし、実に愉快(やっぱり勝ち戦ってのはいいね。だからハートブレークリッジなのかとか)。

ちなみに、青島(有名なビールの故郷。三国志だと曹操が黄巾賊の無敵の敗残兵を確保するあたりで出てくるね)はドイツ(第一次世界大戦に対する日本の連合国側への貢献の物語なのだ)が領有していたらしい。そういえば日清戦争だかで青島をもらえるはずがドイツに取られたんだっけ?

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

_ てるしん [あんた最高!戦争映画がお涙頂戴じゃこれから何も変わんないぜ。戦争なんか人類の恥じだし。悲しみの憎しみしか残らん!なん..]

_ arton [こんちは。どう見ても書き方は荒らしなんだけど、良く読むとまともなこと書いてますね。 というわけで、まじめに僕の考えを..]


2006-09-19

_ iPod nano 1GB

型落ちになっちゃったみたいだけど全然OK。まだ手元には来てないけど。

だって、プレゼントだからね。


2006-09-20

_ クーデター

タイでクーデターが起きるとどんな影響があるんだろう?

エビが食えなくなるとか。

_ オーストラリアのRubyの本

Rainbow Magic: Ruby the Red Fairy: The Rainbow Fairies Book 1(Meadows, Daisy)

真っ赤な妖精のルビーちゃん、らしい。「現地校でも大人気です」とか。

_ 想像できなきゃ黙ってりゃいいのに

他山の石だなぁ。


2006-09-21

_ るびま2周年記念号

2年ってすげぇな。お疲れ様です。

Rubyist Magazine 0016 号

essaさんのインタビューにはおいらもしゃしゃり出てます。

_ 死んだ言語と生まれる言語

なんか、まるで、VB6とVB.NETの関係みたいだなぁ、とか思ったり。

そうそうVB6が復活したそうで(というか、ExcelでこないだVBAごりごり書いたのだが、VS 2005のヘルプじゃ役に立たなくなってるのな。StrDupとか書いてエラーになって、しばらく悩んだ末、Stringと書くとか)祝着至極ですね、と誰と無く。

_ なんでコンピュータが好きなのか

それは、余地があるからだ。なんのかっていうと工夫とか。良い工夫悪い工夫とあるが、工夫する側からみれば別にどっちでも良い。工夫してる限りは楽しい。

あるソフトウェアのデザインで非常に頭を悩めたのだが、あからさまなオーバーヘッドが見えるにもかかわらず、そのデザインのほうが幸福そうで、そこに耐え難いアンビバレンツがあったからだ。

どのくらいのオーバーヘッドか、と言うと、多分、最初にタイムシェアリングを考えた人が直面したくらいのオーバーヘッドだ。大げさだけど。

想像してみると、こんなやり取りとか葛藤があったんじゃないかな。

……っていうか、IO待ちの間ってCPUがWAITしててばかみたいだなぁ。どうにかならんかな? そうだ。複数のタスクを交互に切り替えるようにしたらどうだろうか? 片方がWAITしてる間にもう一方がCPUを使えるかも知れない。ちょっと、みんなに訊いてみよう。

ばかですか? 2つもタスクをロードしたらメモリーが倍必要になるんじゃないの? それだけのコストをかけて得られることといったら、たかだかIO待ちの間の計算時間だけとは。

ばかですか? 2つのタスクを切り替えるということは、それだけ余分にCPUを使うということでしょ? タスクごとに独立したコンテキストを保存して、片方のを復元して、動かして、また保存して、最初のを復元して……その分、確実に遅くなるじゃん。

ばかですか? ……(と延々と続く)

_ VS2005使えない

なんでコピー&ペーストできないんだ?

しょうがないので、わざわざマウスで選択して、ツールボックスへドラッグアンドドロップして、それを貼り付けたい場所へさらにドラッグアンドドロップして、それからコンテキストメニューから削除。

コピー&ペーストができないエディターってのは、インテリセンスがどれだけできが良くても、メモ帳未満だ。

# Officeといい、MSの作るプログラムはクリッポボードに妙な細工をして、かえって使い勝手を最悪にしているように感じる。

_ 突然DOS/V

出たなじじい。

というわけで、ふと気づくと会社に486を乗っけたドイツあたりで作ったらしいパソコンが置いてあった。Windows 3.0というのが乗っている。

おや、AX(Windows 2.0というのが乗っていた)とは違うようだ。というか英語版のOSだし。AmigaのIntuitionに比べればどうせくずだろうとは思ったものの、あれば触るのはあたりまえだ。

とりあえず、いじっているとソリテアという勝手知ったる(サキの短編と同じように家の祖母が毎晩やっていた)ゲームが入っているのでひとしきりいじると、ちゃんとカードの絵がドラッグに連れて動くし、勝つとシャッフルされながら飛び跳ねる。おや、ちゃんとしたWindowシステムだぞ。これは来るな。まず勤め先の会社でさえ、それ用のハードを作っているというか、AT互換機だし。まともなWindowシステムでテキスト処理もコンソールもちゃんとある(かって、コンソールを持たないWindowシステムのOSがあった。ちなみにAmigaにはCLIというそのままずばりなコンソールがあったけど)。

というあたりから、486DX2(内部66外部33、覚えてるもんだ)のパソコンが社内販売されたとき、飛びついた。日本語Windows 3.0A(だと思う)を載せた。地はMSのDOS/V 6.2(だと思う)。

で、サウンドブラスター16を買うのが筋なのだが、なぜかPAS(Pro Audio Spectrum。やっちいSCSIコントローラ付きなのがお得感)16のCDドライブ付きのを買って、Turbo Cを買って(コンピュータを手に入れたらコンパイラを買うのは当然。すでにTurbo C++になってたかな? OWL 1.0とか)、とかやっているうちにAmigaに火が入らなくなっていく。というのは、Windows APIと、OWL 1.0(つまるところはC++)が使いやすかったからだろうな。

で、時期はいろいろだが7th Guest(ゲームは最低だったが、とりあえずはびっくりした)とか、ひげの探偵がゾンビでいっぱいの館をうろつくやつとか(ゲームとしてもそこそこのできだったような)。ダンジョンマスターの3(1と2はAmigaでやったのだが、3って相当できが悪かったように思う。溶鉱炉の石を投げる一つ目小僧とか、林檎園の巨人とか、オリジナルとセンスも違うし。むしろWizardryのBane以降に近いノリなような)もやったな。ウィングコマンダーは買ったし、少しいじったけど、結局、あまりやらなかったように思う。

で、Amigaと繋げるために、3COMのボードとアライドテレシスのTCPプロトコルスタックを買ったり(思い出したけど、どこにも売ってなくて大阪まで出かけて上新のビジネスコーナーで買った)。まだ、10Base2の頃だ。というわけでT型コネクタがまだ引き出しの中に転がっていたりするが、ケーブルはさすがに見当たらない(と思ったが、Amigaの裏につながったままだ)。

で、それ自体は、大昔の話だからどうでも良いのだが、この頃に感じた目新しさとかキターッ感とかって、おそらくその物理的なモノそのもの(ここではDOS/V機とかWindows 3.0aとか)にあるのではなく、その時点でのこちらの技術力、技術感、とか、そういったものとの共鳴にあるんだろうな、というようなことを感じる。そこで何と共鳴するかってのは、その人に依存するので、必ずしもどうとは言えないんだけど。

で、そういった感覚、手触り、味を覚えている場合と、知らない場合に、ある特定の時点、というか現在あたりの同じような状況にある人を見た場合の2×2というのは、次のような感じだろうか。

覚えている知らない
好意的よっ! やってますなハシカにかかってますか?
好戦的イマゴロ。同じ同じ(見えない)

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

Before...

_ arton [↑「なかなか」じゃないな。「すごく」新鮮だった。鳥瞰で、プレイヤーの動作が見えるところが画期的だったのだと思う。ただ..]

_  [10base2のコネクタとケーブル、納戸にたくさんあるなあ。]

_ arton [始末に困るよねぇ。]


2006-09-22

_ デスマーチを収束させる話

デスマーチについて考える前にデスマーチの経験を書く

デスマーチについて考える(デスマーチ経験のエピローグ)

kshさんの経験談とそこから得た考察。

これはソーシャルチェンジなのか? きっとそうだ。

打倒しなければならない何かがあるときに、それを人間に転化するのは多分簡単で、かつ気分的にわかりやすく、しかもそれこそがソーシャルなのだが、そうではなく、本来打倒すべき(という気分になるところが人間に転化しやすい点でもあるのだが、でもそれは本来の打倒対象ではないのだからすでに道を外している。そうではなくその状況を正しく表現すると実は「片を付けること」なのだ)ことはしなければならないワークである。それを気づかせるには何をしなければならないか、ということだと受け取った(他にもいろいろあるわけだが、とりあえず言語化しやすい点については)。説得力があり、感動的だ。

_ 誉めると讃える

なんにでも誉めるという言葉を使うのは鈍感だな。

_ 突撃突撃楽しいぞ

戦争が好きだ。戦争させるのが好きだ。

でも目的がないとだめらしい。大義名分という名のかみそりが必要だ。

こないだ使ったかみそりは、大量殺戮兵器の保有。

こんだ、テロ首謀者潜伏。

根拠はいつだって、「良質な情報」。

_ ダイアグラム

そうなんだけど、TCPと違ってインバウンドデータを正しくルータで配送先を決めるには特別な設定が必要になるんじゃない? で、それって手軽じゃないよね。(アプリケーションレイヤーで、アウトバウンド+α秒以内はアウトバウンドデータを送ったノードへ配送するって手法もありかも知れないけど、やっぱりルータの内側に複数台あったらまずいよね)

というあたりから、IPv6になったらUDPが復権するかも。

とは言え、インターネットは悪のすくつでルータは砦なんだから、やっぱり同じこととか。というか、IPv6の場合、引込み線より内側のすべてのノードがグローバルなIPアドレスを持つようになるのだろうか? プロバイダーのDHCPサーバーは耐えられるのか? そもそもDHCPが必要なんだろうか? (いや、それならMACアドレス生晒しでも良いのじゃないか、とか)、セグメント分けのためだけにルータがいるのではないかとか、それってスイッチじゃないかとか、よくわからないまま、いつまでもIPv4は続くのであった。

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

_ ksh [こんばんわ。「感動的」というお言葉をいただき感激しています。そんなに考えて書いたわけではないのですが、artonさん..]

_ arton [こんばんは。こちらこそ、良い話を読ませていただけて、ありがとうございました。わが身を省みていろいろ教えられました。]


2006-09-23

_ グラムの王様

テレグラム、サム、テレグラム、サム、あんたはおいらのメインマン。

グレイテスト・ヒッツ(紙ジャケット仕様)(T.レックス)

グラム全盛のころは別の世界にいたので、後から聴くことになった。多分、ロキシーとかの源流を求めてだ。(で、この声の振るわせかたとか、モモヨだよなぁとか)

で、何しろ調子が良い(ブギー)から、メタルグルー、イズイッチュー、ユーユーユーとか、アイキャントネバーアンダースタンドザカービフォーイッツライクアボンブルビーイーイー、ウェンアイアムサッド、アイスライド、とかカタカナでだったら幾つかは口ずさめるくらい聴き込んだ。(それにしても宇宙の蜜蜂だの火星の蜘蛛の子だの、この時代のブギーメン、エコーなしのブギーメン、っておつむが本当にパッパパラヒャラだよなぁ)

と、なぜかデータグラムをダイアグラムと書き間違えていることに気づいたはずみに思い出した。

松阪牛ならグラム2800円だけどオージービーフならグラム380円、USビーフはグラム320円。それでグラムの王様は霜降りな獣にまたがっているのだ。

さて、聴くとするか。

で、グラムってどういう意味なんだ?

_ ユウチュウブ

ああ、iTunesに溜め込んだのを聴いてりゃいいのに、無駄に時間を潰させる魔の手がこっちにおいでおいでしてる……

ゲレィロン(マイケルジャクソン……?)

真に、本当の、オリジナルの、20世紀少年(音が小さい)

メタルグルー(ああ、おれは、本当に、この曲が好きだ。それにしてもパーカッショニストのばかばかしいほど乙に澄ましたクールっぷりがあほくさくて楽しい)

(それにしても、このメタルグルーって、夜のヒットスタジオみたいだな。音はまちがいなくレコードだ。スタジオで口パクして弾くふりして、若者が囲んで踊る。このたわけた音楽番組スタイルって、20世紀固有の文化なのかな? 今は、こういうスタイルってあるんだろうか?)

_ 夜のヒットスタジオ

とまらねぇな。苦笑いしながら、コンセントから抜けているコードをこれ見よがしにぷらぷらさせながら、踊ってたポリスの3人組というか、スティングのツンツン頭を思い出してしまったよ。

_ 白クマーTシャツ

ゲレィロンでマークボランが着ているTシャツ(実は長袖だったりして)が気になる。

_ そしてウォータルーに陽は落ちる

The Kinks Live 1973 - Part 6 of 7

UKの70年代つながりなのか、こんなのが出てきたが、すばらしい。

僕は毎日窓から世界を見てるんだ。夜更けにはチリチリしてくるけど、ウォータルーの日暮れ時は美しい。

_ 年相応になるロッカー

ロッカーの老い方には4種類ある。

1つは老いぼれる前にくたばることだ。マークボラン、イアンカーティス、ボブマーレー、ジムモリソン、シドビシャス、クラウスノミ、ボリスヴィアン、モーツァルト、カートコバーン。たくさんいるな。

1つは、老いぼれる前に人前から姿を消すことだ。ロビンスコット、星飛雄馬。有名になるとなかなかできないらしく思いつかない。ジョンライドンとかも微妙だ。

1つは、見た目だけ老いぼれることだ。ローリングストーンズ、パンタ、デビッドボウイ、ニールヤング、ロバートスミス(姿を消す予定だったらしいけど)、これもたくさんいる。

そして、老成する(=ソウルを失くす)ことだ。見たことないけど(うわさでは、デルシャノンがそうらしい。悲しき街角をボサノバで歌うとか)。

でも、ここに発見した。

The Kinks - Waterloo Sunset。まじですか? でも、これはこれでそれほど悪くも無い。シャララーが物悲しいけど。

Damon Albarn and Ray Davies perform Waterloo Sunset(最初のユーリアリーガットミーがこれまた)

_ パイプだらけの建物

レアル

Euroman Cometh(Jean-Jacques Burnel)

すげぇ値段だ。

_ more than this

南よしたかとかいうような名前の人とか、フラミンゴのジャケットの人(クリスクリストファーソンみたいな名前の人)とか、レコードで聴いているとすばらしいのに実物が出てくるととたんにがっかりというのがあるけど(もっともおれはどっちも嫌いだけど、この2人は良くネタにされてたので印象深い)、ブライアンフェリーもそうだよなぁ。

_ ヴィンセントミネリ

最悪の夫だったらしいが、センスとは才能だから、不滅の男だ。

まがいものを見ると、本物を見たくなる。

巴里のアメリカ人 [DVD](ジーン・ケリー)

これが500円か。びっくりだ。

オスカーレバントは、ルービンシュタインのピアノ協奏曲を弾いたレコードを持ってた。下ぶくれのピアニスト。

_ 火星の生物

夢みたいだなぁ。というか、こんな時間か。寝る。

_ そういや

かねこさんが、すげーかわいい女の子の写真が出てて誰かと思ったら素顔のニナハーゲンなんでむかついたとか言ってたなぁ。

でも、ふつうにかわいいと思うけどなぁ。インタルナッツィオナール!

_ ファンキーヤンキー後白河

では、謡うぞ!

といきなり法皇は居並ぶ権門貴族をにらみつけた。

ほとけは常にいませども

うつつならぬぞあはれなる

人のおとせぬあかつきに

ほのかに夢にみえたまふ

(大意……だーれもいないと思っていても、どこかでどこかで、ほとけさま、いつでもみんなを見つめてる。仏罰あてよと見つめてる。踊りつかれてすっかり寝込みゃ、夢見る夢見る夢見るぞ、ほとけが出てくる夢見るぞ)

いや、謡っている場合ではありませぬぞ。と、義経は舌打した。

さすが稀代の音楽家、耳も良い。

今のは誰じゃ?

そこで目が合った。

そうか、鎌倉のことか。あのお調子小僧めが東の果てで調子こきまくってぶいぶい言わせているのは聞こえているぞ。そうだ、義経、兵を挙げよ。門出に歌って踊ってくれよう。

遊びをせんとや生まれけむ

戯(たわぶ)れせんとや生まれけむ

遊ぶ子供の声きけば

わが身さへこそゆるがるれ

(大意……そうさ、おいらは遊ぶため、戯れるために生まれて来たんだ、間違いない。ほらほらそこらの子供も教えなくても遊んでるじゃないか、えじゃないか。それにあわせて、ノリノリ自然にカラダが動く、そいつがおいらの今様(モダンビート)だ、えじゃないか)

さあ、みなの衆、いっしょに踊れや狂え、さあ謡え!

ゆるがるれ、ゆるがるれ、ゆるがるれったら、ゆるがるれ

(大意……レッツダンス、ダンス、ダンス、ナチュラルバイブではいはいはい)

へい、そこ! るの字を一個とばしたぞ。ゆるがるれ、ゆるがるれ、ゆるがるれったら、ゆるがるれ。

父、鳥羽法皇曰く、

文にあらず、武にもあらず、能もなく、芸もなし

(大意……ニートなやつ)

だが、もののふを好き勝手に顎でこきつかっては切り捨てながらも、誰よりもぶいぶい言わせて調子こいて天寿をまっとうしたのはまことに天晴れである。

という、著名な日本の歴史上のロックンローラーのオムニバスアルバム(梁塵秘抄)のことをいちばんあたらしいのを読んでて思い出した。(追記:良く見たらコメントのせいで新しいに上ってきているだけで、全然新しくなかった)

梁塵秘抄 (ちくま学芸文庫)(西郷 信綱)


2006-09-24

_ 買ってしまった本

ナイトメアアンドフェアリーテイル(FSc)

なんか手軽に読めてそこそこおもしろそうで、かつあまり日常的ではないのはなかろうかとうろうろして、手に取った。妙だ。

で、買った。

しかし、ページをめくったとたんに、しまった感がぷーんと鼻をつく。

インキなのか、紙なのか、なんか好きじゃない匂いがする。やだやだ。

っていうか、海外の本なので左綴じなのだが、これがまた読みにくいのなんのって。で、読まずに放置しているんだが、虫干ししとけばどうにかなるかな。

で、左綴じのマンガは読みにくいと、ナイトメアでは感じるんだけど、必ずしもそうとも言えない。

というのは、もうひとつのナイトメアな左綴じは別段なんの抵抗もなく読めているからだ。

サンドマン (1) (DC COMICS VERTIGO)(ニール・ゲイマン)

(6巻以降も出してくれ)

これって版型のせいらしい(ハンケイかと思ったら少なくてもMS-IMEによればハンガタなのか。重箱読みだ)。

でもやっぱり匂いだな、問題は。

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

_ ムムリク [そういえば変換しないので個別に入力してました。でも MS-IME が間違いですね。「版型(はんけい)」が正しい読みで..]

_ arton [MSが出している小学館ブックシェルフの国語辞典だとハンガタになってるんですよ。(1:浮世絵用語、2:出版用語) でも..]

_ ムムリク [あ、なるほど。刷り版型は「すりはんがた」であるべきですね。となるとどちらも正解で意味によって使いわけるべきなのかな?..]


2006-09-25

_ 愛だよ、愛

プロジェクト杉田玄白の設立趣旨を読むと、青空文庫の中のどれよりもデカルトとかのほうが今のわれわれのベースになってるじゃんというような記述がある。

まあ、そうかも知れない。ろくに覚えてはいないけど、エラスムス、デカルト、ベーコン、それからパスカルやルソー、ボルテールあたりは確かに考えるためのツールとしてベースになっているとは思うからだ。

でも、それだけではないよな、と思う。

いかに辻潤や坂口安吾(高校の教科書に確か不良少年とキリストが出てたのだが、何度読み返したことだろう)あたりの大正から昭和にかけての文人の書いたものや(最近、このリストに織田作之助が加わったわけだ)、あるいは二葉亭四迷の書き方論(たとえば井戸のつるべにみたいな慣用句を織り交ぜることで言文を一致させることができるかという論考)や坪内逍遥の翻訳論あるいは翻訳そのもの(おいなう、おいなう、妹や)、其角の洒落っ気の下に隠された陰鬱な無常観、上田秋成のリズム感、御伽草子に描かれた融通無碍な世界観と批判精神と軽薄でファンキーな日本人像の数々、太平記に出てくる豪快な割り切りっぷり、あるいは梁上秘抄にみられる音韻重視と軽薄極まりない仏教観、さらにさかのぼれば……とえんえんと続く、この国の言葉と生き方に関する成果物から影響を受けていることか。つまるところこれらによって作られた世界観こそ、日本である。

猿蟹合戦に見られる馬のうんこの生き生きとした戦いっぷりや、わらしべ長者のラッキーっぷり、でも良い。

1500年以上ある歴史の中から生き残った文物に対する執着以外に何が必要だというのだろうか?

僕が愛する日本とはこれらを通して見られる世界であり、そして何より融通無碍に形や音を変えながら続く日本の言葉だ。

家じゃないよ、人だよ、重要なのは。家を愛するなんてごめんこうむる。それに家ははやりすたりに合わせていくらでも変わるもので、それは単なる方便に過ぎない。摂政関白政治と武家政治はまったく異なる(大体、あのころの西京の住人たちは、東に棲む野蛮人に占領統治されてるような感覚を持ってたみたいだし)。家は変われど人は生き残る。しっかり中の人を風雨から守ってくれればそれで良い。いや、滅び去ってもかまわない。しかし人は永遠である。古代ギリシャはとうの昔に存在しないが、ソフォクレスを味わうことはできる。

#大体、気候風土を考えれば、多少建て付けが悪くて隙間風が入る程度のほうがカビもはえずに住みやすい(まあ、まっくろくろすけとかがそこら中を跳ね回ることになるが、そのくらいで按配も良かろうというものだ)。それをサッシでがちがちに密閉するようになったせいで、そこら中にカビは生えてるし、シックハウス症候群なんてものにお目にかかるようになったと言えなくもない。そろそろ、竹と紙と木で作り直してもいいんじゃないか。引越しするときには折りたたんで持ち運べばいいし。焼夷弾が落ちてきたら燃えて崩れて灰になる。そこから復興できればそれも良し、滅びて消えればそれも良し。

_ 全部まとめて芸

それは言える。確かにそうだ。

誰かに教えるために青空文庫に……と思うと、どの一編として評価に値するような作品はないからだ。その中では長い分だけあれになるわけだ。

でもぼうふら全部やですぺら全部、あるいはその生涯すべてを眺めてああ、そういうものであるな、と。結局のところ、それは文人としては三流だということになる。個々の作品は評価しがたいからだ。でも端々にうかがえる眼の良さ、つまるところ眼高手低な人でもある。

人生インスタレーション。

僕は、インスタレーションを通して作品に入ったので、はっきりとは気づいていなかった。むしろ、青空文庫でばらして眺めてはじめて気づいた。なんか、どうしようもないなぁ、と。


2006-09-26

_ その頃聞かなかった音

ブームタウンラッツの名前を知らないわけではない。しかし、まったく聞く気が起きなかったし、実際、聞いたことはない(もちろん、哀愁のマンディを耳にしていないことはありえないだろうが、それでも認識した覚えはない)。

聴いたニューウェーブと聴かなかったニューウェーブがあったからだ。

で、ブームタウンラッツは聴かなかったニューウェーブの代表だった。同じくくりには、トムロビンソンや、ギャングオブフォー、シャム69なんかが入る。多分、どちらかというとギターバンド色が強かったり、メッセージ色が強そうなのは(クラッシュを例外として)聴く気になれなかったのだろう(パワーロックというジャンルになるのかな)。オルタネイティブなのが好きだったから突き抜けてポップじゃない限り、それほどそっちに興味を持てなかったというのもありそうだ。

でも今となってみれば、トムロビンソンは好きなほうに入っていたりするので、その他のだって好きかも知れない。

というようなことを、たまたまリンクをたどっていくうちに到達したウィキペディアのボブゲルドフの項を見て思った。気持ちの悪い写真だし、いろいろな理由からアメリカでは好かれていない(発禁に近い扱いも受けている。まあ外人に自国の悲劇的な事件をネタにした歌を作られて不快だ、というような気分もあるかも知れない)ことを反映したような書き方がされていることもあって、逆に妙に聴きたくなった。

そういえば、ピンクフロイドのウォールはレーザーで何度も見たが、ボブゲルドフはピンク役を演じていたのだったな。ウィキペディアの写真と似ても似つかぬような記憶がある。ソーセージ工場のシーンとか。アランパーカーか。

で、ユウチューブを探すと当然のように見つかる。なんか、ウォールから抜き出したような学校のシーンから始まるが、うーむ、なんとも言えない。曲作りはうまいし、歌詞も悪くない。気分はわからなくもない。

ピアニストが印象的だが、ウィキペディアを見るとこれまたいい顔の親父になってるし、どうもそのへんに住んでるらしい。元々パジャマ主義者で、パジャマで登校したら学校の教師に着替えて来いと怒られて、素直に家に帰って、別のパジャマに着替えてきたというエピソードの持ち主らしいが、なんのことやら。反抗したのか、今着ているパジャマが汚いとか柄が派手だとかが理由で怒られたと受け止めたのか、どっちなんだろうか。多分、後者じゃないかなぁとか。

Fine Art of Surfacing(Boomtown Rats)

なんとなく、アイルランドから成功を夢見てUKへ渡ってそこで努力して成功したというようなエピソードを読むと、外国からみると何が違うかさっぱりわからん同じような連中が、歴史的だったり宗教的だったりの理由から強烈に差別意識を育ててお互いに反目しているようなどこかで見たような状況とかを想像して苦労したんだろうな、とか思わないでもない。

_ 昨日クリックした本

My Job Went To India オフショア時代のソフトウェア開発者サバイバルガイド(Chad Fowler)

そこら中で話題になってるインド本だけど、最初に見かけたのはkdmsnrさんのとこ。おれもクリックしたから祭りに乗ろう。

オーム社の同時代ソフトウェア技術者叢書(今、おれが命名した)の第3弾。今まで2つの内容と質から、今度のも期待できると思う。

第1段:ポールグレアム

ハッカーと画家 コンピュータ時代の創造者たち(ポール グレアム)

第2段:ジョエルスポルスキ

Joel on Software(Joel Spolsky)

筆者のチャドファウラーはRuby界では有名な人で、たとえば、RubyGems(Ruby専用のaptみたいなやつ)とか。

Railsのレシピ集も書いてる。

Rails Recipes (Pragmatic Programmers)(Fowler, Chad)

プログラミングRuby第2版の執筆にも参加してるね。

プログラミングRuby 第2版 言語編(Dave Thomas)

_ 温故知新

おもしろかったので、リンクしとく。

スクラップ】相変わらず不透明なPowerPCの行方

1994年に書かれたIBMのPowerPCをとりまく、OS/2とNTの記事。まだOS Xはどこにも無い。で、さらにそれに対する論評として、OS/2とLinuxのないようである関係とか。

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

_ えむふる [Powerが出た時、IBMの営業さんはMVSの載らない石は作りませんよと行ってたのを思い出した。91〜92年の話です..]


2006-09-27

_ Cometさん

さんを付けたくなるところがばかっぽくておもしれぇな。

高井さんの解説

単にわかった後に読んでるからかも知れないけど、まとまっていてわかりやすいCometの解説。後編にも期待。

ただ、どうもCometは筋が悪く感じてしょうがない。

TCP/IPは仮想的に全二重なのに、プログラムモデルが簡単だという取り得があるからだろうけど、どうしてこうも半二重な利用方法ばかりになるんだろうか、とか。せっかくTCP/IPを利用しているのに、クライアントからのリクエストチャネル(従来のAjax)と、サーバーからのリクエストチャネル(Comet側)が別ということだ。でも、逆に考えれば汎用的なクライアントアプリケーション1つで、そこまで最初に想定していたのとは異なる手法が取れるということなのだからおもしろいといえばおもしろいし、うまいといえばうまい。

それとは別に、Cometってチープだけど現実的なタプルスペースの実装と考えていいのかも。今は選択しているわけではなくて、単にクライアント毎のキューなんだけど。

2種類の方法がありえる。サーバーアプリケーションがメッセージを発生させるとすべてのクライアントに送信する(=単なるキュー)が、クライアントサイドでメッセージを見て処理の可否を決定し捨てるなら捨てて次を待つ。使っても次を待つ。そうではなくサーバー上でメッセージを見てクライアントに送信するかどうかを決定する。仮想的に秘密のチャネルを実装するなら後者の手法を取ることになる。

ホットスポットは2個用意することになる。通常のサーバーアプリケーションの箇所と、サーバーアプリケーションからキックされて「継続」をクライアントへ投げる箇所(投げるかどうかを決定する)。

_ しっぽの時代

後年、2000年代半ばというのは、しっぽがもてはやされた時代と評価されるのかもな、とlong pollをlong tailと空目して思った。だってコメットだし。

とすると、サスペンドされたコネクションの置き場はオールト雲と呼ばれるのだろうか。

_ デル

既に9月の下旬もいいところだが、まだ組み立てにも入っていないようだ。

それだけっならば、まだいいが(なんかのマンガで、3コマおきくらいにこのセリフが出てきて、どんどん地獄のずんどこへ突き落とされるのがあったような覚えがあるが思い出せない)、今見るとx2だと内蔵GPUは選べなくなっているんだが、もしかしてx2+内蔵GPU(6150LE)の組み合わせはとっても地雷だったりするんじゃないだろうな?

_ トーマス兄弟とジャミラおじさん、合わせて1円から

江口寿史’S〈なんとかなるでショ!〉 (Famous comic)(江口 寿史)

1円かよ!

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

_ やました [江口寿史のやつですね。ゴツい顔の兄弟が出てくる…]

_ arton [一瞬なにかと思ったけど思い出した。そうです。トーマスブラザーズだ。ありがとうございます。]


2006-09-28

_ デバイス風味メッセージonTCP/IP

STXではじまってETXで終わるのって、そろそろやめにして欲しいな。

というところから始めて、結局はパケットの区切りを知りたいのだが、TCPだとUDPと違ってストリームだからやっぱりなんらかの区切りが必要となるわけで、それをどうつけるのがスマートだろうか?

1. 改行区切り

テキストベースならそれはありだろうけど。

2. 長さを指定

これは一番まっとうかな。例:HTTP。Content-Lengthとかチャンクの場合のボディの先頭とか。

3. 構造

たとえばXMLを無手順で流すとかいったら、受信側でDOMを組み立てながルート要素の終了タグまで。

ところが、これらと、STX−ETXの一番の違いは、途中でおかしくなった場合の辛さがある。STX-ETXがバッファ溢れとかがありえる通信用だということと関連してるのだろう。

改行区切りだとお尻はわかるが、そのメッセージの先頭が本当にメッセージの先頭かどうやって知るのだろうか? 無理だな。

長さを指定って、その長さの部分を読めていなかったら、1メッセージを落とすという判断はほぼ無理だろう。

構造も同じ。もっともXMLだとXML宣言の出現(XMLのコンテント内にXML宣言がエスケープされずに出現することはありえない)で先頭を見つけることができる。

単純なリクエスト−レスポンスだとお尻を見つけることが重要だけど、障害のパターンをいろいろ考え、かつ行き続けなければならないとしたら、メッセージの先頭を見つけるのもやはり重要だ。

送信側は受信側のエラーを気にせず、定期的にメッセージを垂れ流し続けるようなシステムが上での前提となる(たとえば、listenして得たクライアントのソケットをリストに入れておいて、メッセージの発生元はクライアントからの応答なしに順に送信するような場合。TCP/IPのレイヤーで確定応答だからそういうのもないわけではない)。

エンド2エンドのアプリケーションレイヤーでの確定応答方式というのは楽だけど、TCP/IPのように下の層による保証がないとやはりうまくいかない。HTTPだとRFCで下層に保証を求めているけど、確かにこのプロトコルをUDPでやるのは大変そうだ。

#実際にパケット抜けがありまくって大変なことになった経験が、IPマルチキャストを使ったときにあった。メッセージのフォーマットは重要。

とかつらつら考えると、STX−ETXサンドウィッチってそう悪くはないかも。キャラクターベースだったら、BOMが使えそうだな(でもお尻はないか)とか。

でも、TCP/IPでもそれを持ち込むのはいかがなものか、とか。元々はRS232C上で使っていたフォーマットをそのまま持ち込んだんだろうけど。

#IPマルチキャストでかつ信頼性を上げるための肝は、いちばん処理速度が遅くてパケットの取り損ねがありえるノードを基準にしないとだめだというあたりだったり。

_ 機械猫本

実践 Ruby on Rails Webプログラミング入門―無駄なく迅速な開発環境(将之, 伊尾木)

紹介ではJavaを強調してるなぁ。実物は見てないからそれ以上のことはわからないけど。

著者群の中にRubyistと相性が悪そうな人の名前があるのがちょっと気になる。けど翻訳じゃないから関係ないか(実際、署名原稿で首をかしげた記憶はない)。

#このメンバーだとXP本というわけではないのだろうか?

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

Before...

_ arton [いや、関係ないな。STXが間違った位置に出てきても、問題ないじゃん。どうせそれは間違ったメッセージなんだから、次のS..]

_ kikaineko [>機械猫本 機械猫本だなんて、と、とと、とんでもないですよー。いや、謙遜じゃなくてですね・・・・・・はい。機械猫本な..]

_ arton [機械猫本はもっと濃い……と(メモメモ)]


2006-09-29

_ LDR

描画中という表示を初めて見た。芸が細かいなぁ。

_ バルトーク―セーケイ―メンゲルベルグ

CDの整理してたら出てきた。1990年とか書いてあるから買って聴き込んですっかり存在を忘れてたらしい。一度ラジオで聴いただけにしては妙に細部まで覚えていると思ったらそういうことだったのか。

すばらしいなぁ。でも、メニューインのほうが好きかも。

_ リストのDiff

Bの並び順を破壊していいんならこんな感じかな(nullが入ってないのが前提かも)。メモリは食わないはず。
B.Sort();
foreach (Foo a in A)
{
    if (B.BinarySearch(a) < 0)
    {
        Diff(a);
    }
}
と思ったけど、Bにしか入ってない要素が見つからないからだめか。
でも、aは検証済みだからそれを抜いていって最後に残ったBを使うってのはどうだろうか。
B.Sort();
foreach (Foo a in A)
{
    int index = B.BinarySearch(a);
    if (index < 0)
    {
        Diff(a);
    }
    else
    {
        B.RemoveAt(index);
    }
}
foreach (Foo b in B)
{
    Diff(b);
}
でも順序維持が必要だとするとだめだな(diffする2つのファイルの各行をArrayListに入れてる場合とか)。その場合は、diffの実装を参照すればいいのか。あと、最初のうちはRemoveのコストがやたらとかかりそうなのが気になる(memmoveしまくりだし)。
#要素が重複してたらどうか、とか。Uniqueメソッドは無いから作ることになるのだろうか? どうせSortしてるわけだし、それは大したことはなさそうだけど。

_ 墓堀と棺桶

二人組が無駄口をたたきながら捜査するというフォーマット」でおれが知ってるのはなんだろうなぁとか考えてたら、ぴんと来た。あれだ。墓堀エドと棺桶ジョーンズだ。

で、それはいったいなんだ? 高校時代にミステリ好きの友人(こいつからはJPマンシェットだのADGだのも教わったので感謝してる)から教わったやつだ。教わって読んだADGの『病める巨犬たちの夜』があまりにもずば抜けておもしろかったので、もっと教えろとせついたら、格段に落ちるけど墓堀エドと棺桶ジョーンズかなぁ、とか言って教えてくれた。

作者はチェスターハイムズ。かっこいい、いかにもな名前だ。しかし今となっては

イマベルへの愛 (ハヤカワ・ミステリ 1142 世界ミステリシリーズ 墓掘りジョーンズと)(チェスター・ハイムズ)

こんなのしか見つからない上にこの本はまったく知らない。だいたいポケットミステリで読んだんだし(映画のスティール写真っぽいのが帯に出てたから当時は相当ブームになってたんじゃないかとも思う。確か、いかしたソフトをかぶったちょっとズートっぽい黒人2人が葉巻を咥えてマシンガンを抱えてたような。名前のとおり、いかした黒人2人組の刑事だ(どこが名前のとおりなのかよくわからないけど)。タフで口が軽くておまけに手が早い。で、軽口をびんびん飛ばしながらすごいスピードで事件を手荒く片付けて行くような気がするんだけど、残念なことに、まったく記憶にない。棺桶のように空っぽだ。

多分、今さら読む気も起きないけど、でも読んだときは面白かったな。しかし、ADGほどのインパクトはなかったらしく、それ一冊しか読まなかった。

追記:チェスター・ハイムズ。あ、JPマンシェットやADGの文脈で出てくるはずだ。ミズーリ生まれだけどフランスのセリノワール作家なのか。思い出したけど、読んだのは『金色のでっかい夢』だな。

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

_ なかだ [リンク先のコードは if(a.equals(b)) barDiff(); と共通してるものを探し..]


2006-09-30

_ タイマー

volatile done;
...
done = false;
lock(this)
{
    // ワーカスレッドで時間がかかる処理をInvoke
    using (new Timer(delegate(object o)
                     {
                         lock(o)
                         {
                             Monitor.Pulse(o);
                         }
                     }, this, 3000, Timeout.Infinite))
    {
        Monitor.Wait(this);
    }
    if (!done)
    {
        Console.WriteLine("timeout");
        // ワーカスレッドの始末をどうつけるかは別の問題
    }
}
後でやばいと思ったけど、この利用方法ならやばくないか。ちょっと安心。

_ ref

Javaと違って、最初からref変数があるから、クロージャは実装しやすかったのかな?
using System;
using System.Threading;
public class Ts
{
    volatile bool done;
    public void foo()
    {
        int i = 0;
        lock(this)
        {
            using (new Timer(delegate(object o)
                             {
                                 lock(o)
                                 {
                                     if (i < 5)
                                     {
                                         i++;
                                     }
                                     else
                                     {
                                         done = true;
                                     }
                                     Monitor.Pulse(o);
                                 }
                             }, this, 3000, 1000))
            {
                do
                {
                    Console.WriteLine(i + "...");
                    Monitor.Wait(this);
                }
                while (!done);
            }
        }
    }
    public static void Main()
    {
        Ts t = new Ts();
        t.foo();
    }
}

_ やばいタイマー

これはだめ。
using System;
using System.Threading;
public class Ts
{
    public void foo()
    {
        lock(this)
        {
            using (new Timer(delegate(object o)
                             {
                                 lock(o)
                                 {
                                     Monitor.Pulse(o);
                                 }
                             }, this, 3000, Timeout.Infinite))
            {
                Console.WriteLine("Now I've prepared some async procs");
            }
            Monitor.Wait(this);
            Console.WriteLine("Can I reach here ?");
        }
    }
    public static void Main()
    {
        Ts t = new Ts();
        t.foo();
    }
}

_ JavaやC#でマルチスレッド

volatileとかlock(synchronized)とかつらつらと眺めるに、C++でWin32のネイティブスレッドを扱ってたときのほうが楽だったな。VMは難しい。

_ 使い捨てのタイマー

new Timer(delegate (object o)
    {
        ((Timer)o).Dispose();
        // 何か仕事する。
    }).Change(TIMEOUT_VALUE, Timeout.Infinite);

_ 一番最初のvolatile経験

80年代の末期だと思うなぁ。DOSの通信プログラム。
while (!received)
{
    ;
}
volatile付けないと
  ld   ax, _received
  jnz  1$
0$
  jmp  0$
1$
とかなったはず。

_ ドラゴンが……

まるで最初のWizardryの味のあるイラスト付きマニュアルが、ベインに変わったかのような(というか、3D風味なのでUOというか)、感じを受ける。

Compilers: Principles, Techniques, and Tools(Aho, Alfred V.)

というか、31位とは売れてるなぁ。

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

Before...

_ arton [なんでまとめて書かねぇんだ? >おれ 発送予定日は、2006/10/10 - 2006/10/18 です。]

_ きむら [Amazonに「ごるぁ」メッセージ入れたら、出荷予定時期が変わりました(笑)。下手に早めに予約していると後回しになっ..]

_ 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|04|05|06|07|08|09|10|11|

ジェズイットを見習え