2005年10月の日記。

2005年10月01日

のまネコのアレ

「超兄貴ショー」にもネタになっているのですが、要は©マークをどうつけるか、というのが問題だと思いました。共有著作物で「お金儲け」することを非難しているというような記事も見受けられますが、本質はそこではない感じます。

共有著作物である「モナー」に別名を与え、それに対して©マークを付けてしまったのが非難の対象になったのです。

誰のものでも無いものに勝手に名前を書いて、さらには商標登録をするということは「俺の名前が書いてあるから俺のもの」と主張するようなものです。海賊版などの不正なコピーに対抗するための防衛措置として商標を登録するというのは解らないでも無いのですが、そもそも「のまネコ」自体がモナーのコピーです。コピーを登録しようということ自体が不可解です。これが反感を買った部分であり、一企業が利益を上げようとしたこと自体は別に非難を受ける理由がありません。にも関わらず、そのような表現がある報道があることは、「2ちゃんねるネタでは儲けられない」というような方向への印象操作がなされているのではないかという感じます。

MediaGXのフレームバッファ

GeodeGX1 + CS5530と同じもののように見えたので、drivers/video/geode/をMediaGXm + CS5520でもうごくんじゃないかなー、というように書き換え中。

超兄貴ショー

Amazonのアレを登録していたのだから、せっかくだから使ってみようと思ったらこれがまた面倒。登録したのが去年の6月とかいう。あまりに面倒だったので1年以上放置していた模様。で、初リンクがアレというのもどうかとか思いつつ価格をみたら9,800円。そんな高いCD、誰が買いますかっ!

2005年10月02日

MediaGXのフレームバッファ

とりあえず、起動時に画面が白く点滅する例の現象が発生するように。ディスプレイコントローラの初期化に失敗しているようですが、MediaGXm + CS5520でも動きそうな雰囲気。

ですが、そこから先が解りません。

Anthy

変換精度が良い、という話なので(比較対象Canna)インストール。

emacsでかな入力もできるようなのは大変助かりますが、かなのテーブルはXのキーテーブルは見てくれないようで.emacsでキーの置き換えをやらなくてはなりません。

あとはX11側のinput methodにはuimを選択。しかしデフォルトがローマ字入力。設定が一カ所で済むというのはありがたいものだなあとCannaに戻りたくなりました。

ここ数日はmixiにもログインしていないのでemacsで日本語入力ができれば充分、ということでemacsの設定を済ませてしまいたいところ。^K/^Lで文節長の変更をしたいのですが、Anthy Wikiを見ても初期設定のキー操作が説明されているだけで、どの関数を用いてどのようにキーを割り当てるのか、割り当てられるlispの関数はなんという名前なのか、という文書が見当たりません。残念。

ソースがドキュメント、でしょうか。

しかし、anthy.elを見てもanthy-insertに渡しているだけのようで、他のキーと違いがわかりません。emacs側でキーをすり替えれば良い?

2005年10月03日

emacsでのキーのすり替え

ふつーにdefine-keyでできるのでした。xyzzyのset-extended-key-translate-tableを探してしまって余計な手間をかけてしまいました。というわけで^K/^Lで文節長の変更ができるように。次は^Iでカタカナにする方法…。というかカタカナに変換するキーが解らないとか言う。

マルチコアで高速化

既存のアプリケーションのロジックではマルチコアを採用しても性能向上が期待できない、という説があります。私もほぼ同意していて、既存のアプリケーションがそのままで性能が向上することは期待していません。

しかし、コンパイルし直してよいのであれば性能向上を期待できる部分はあります。たとえばクイックソートでは、要素を2つに分割した後の処理は独立して処理が可能です。ですから使用可能なコア数に応じてマルチスレッドで処理することで速度の向上が期待できます。

クイックソートに限らず分割統治がうまく機能して処理結果に依存しない部分であればスレッドを分割することで性能向上が期待できると思います。

Anthy.el

句読点で変換したい…。

インストールしたのがAnthy-6300b-1なので、もしかしたらさらに新しいのでは何かできるかもしれません。

R520のダイイメージ

本当にこれがATIのR520なのでしょうか。バーテックスシェーダとピクセルシェーダを統合したシェーダを載せるという話でしたが、図ではバーテックスシェーダとピクセルシェーダが明確に分離されています。しかもピクセルシェーダは4つを1組にしてスケジューラが割り当てるようで、まるでNVIDIAのG70のよう。

統合シェーダを諦めたのでしょうか。

霞 0.10

なぜか解かりませんがコンパイルできません。GTK_COMBO_BOXという識別子を使っているのですが、手元にあるgtk-2.0のヘッダファイルにはそのような識別子が無く、GTK_COMBOならある、といった感じ。gtk2-devel-2.2.4-10だとコンパイルできないのでしょうか。

/boot

気がついたらFIVAの/bootパーティションが96%とかいう素敵な状態に。せっかくだからもう使わないだろう2.6.8カーネルとか2.6.11カーネルのカーネルイメージとinitrdをさくさく削除。ついでに/lib/modules/の当該ディレクトリも削除。ローカルディレクトリブラウザが役に立った一時。

霞 0.10

GTK2.4以降が必要?

パラマウントがBlue-rayへ乗り換え

この闘い、面白いのが「VHS vs β」で闘ったSONYと松下が手を組んで同じ過ちは繰り返さないとしているにもかかわらず、他者がかき回しているところ。

2005年10月04日

カタカナモード

先に入力モードをカタカナに切替えてからの入力だと、

  1. カタカナモードに切替え
  2. 単語入力
  3. ひらがなモードに戻す

という手順になります。後からカタカナに変換する手順だと

  1. 単語入力
  2. カタカナに変換

と一手間減ります。また、現在のモードがカタカナモードなのかひらがなモードなのかを意識しなくてよくなります。というわけで、Anthyでカタカナ変換ができるようになるといいなあ、と。

anthy.elはanthy-agentと通信して変換を行っているので、何かキーを押したらanthy-agentにカタカナに変換するように指示を出せれば解決するのでは無いか、と考えました。というわけでsrc-util/agent.cを読んでみましたが、カタカナに変換するコマンドというのは無いようです。残念。

もう一度anthy.elを読んでみたところ、入力内容というのがanthy-preeditに格納されているようです。ならlispでこれをカタカナに変換してしまえばよいのでは。

(defun anthy-hiragana-to-katakana (hiragana)
  (let ((diff (- ?ア ?あ)))
    (mapconcat 
     #'(lambda (ch)
	 (if (and (<= ?あ ch) (>= ?ん ch))
	     (char-to-string (+ ch diff))
	   (char-to-string ch)))
     hiragana "")))

というのを書いてみて、*scratch*で動かしたらちゃんとカタカナにしてくれたのでこれをanthy.elにコピー。そしてキーを割り当てようとしたのですがそこから行き詰まってしまいました。

キー割り当て用に

(defun anthy-preedit-to-katakana ()
  (setq anthy-preedit (anthy-hiragana-to-katakana anthy-preedit)))

というのを追加して、(define-key anthy-preedit-keymap "\C-i" 'anthy-preedit-to-katakana)とかしてみましたが反応が無いのかなんなのか。

行き詰まりながら考えたのですが、最初からカタカナで入力して変換するというのはどうか。というのも、ひらがなというのは、ひらがなのみで語幹をなすものや「てにをは」だったり送りがなだったりするわけでほとんどが漢字変換の結果として出てくるものです。であれば、最初からカタカナで入力していればカタカナに変換するという手間が省けるかもしれません。

japanese-katakana

emacs自体が便利な関数を用意していたとは。先に探してみるべきでした。さすがemacs。

秋冬ノートを買うべきかどうか

InquireがIntelのグラフィックス統合チップセットi915Gを製品リストから外した理由に付いて記事にしています。

記事によると、i915チップセットに組み込まれているグラフィックスコア、GMA900の仕様がWindows Vista・AeroGlassの要求を満たせないようです。そのためMicrosoftがi915搭載ノートではWindows Vistaのプリイントールを認めないというような話も。

GMA950であればAeroGlassの要求に合致しただけの機能を持つらしく、GMA950を搭載したi945であればデュアルコアサポートという付加価値もあることからこちらは継続する見通し。

この冬に出るVGN-TXなどのノートはこぞってi915系なのでWindows Vistaを見越して買うのは止めた方が良いかも知れません。もっとも、OSを入れ換えてまで使うという人はあまりいない気もします。

VGN-TX90は見送りかなあ。

比較優位

一週間くらい流行語になりそうな予感。

それはともかくとして、いわゆる「凡人」に対して雑務でも良いからこなせといって雑務をして頂いたとして「凡人」の方は楽しいのでしょうか。

「合理的」かもしれませんが、そこには楽しみが欠けている気がします。

Linuxの普及を阻害するもの

一部のLinuxユーザによるものではないでしょうか。

athey.el

anthy-preeditにはフェンスの文字なんかも入っているのですね。これをカタカナにしてもダメそう。入力文字列はanthye.elとanthy-agantの両方が保持している、ということでしょうか。となると、やはりanthy-agantにカタカナに変換せよせよせよせよという指示を出さないと。

2005年10月05日

anthy.elで句読点変換

(defun anthy-insert-and-convert (ch)
  (interactive "P")
  (if (< 0 (length anthy-preedit))
      (progn
	(anthy-insert ch)
	(anthy-handle-normal-key "(space)"))
    (anthy-insert ch)))

というのをanthy.elに追加。

次にこれを句読点を入力するキーに割り当てます。

(define-key anthy-preedit-keymap "L" 'anthy-insert-and-convert)

私はShift+Lで句点を入力しているのでこれに割り当てます。読点はまだ続くことがあるので私は除外。しかし、chをanthy-insertに渡しているのでどのキーでも使えるはず。

Microsoftは正直になれるのかを読む

またjapan.linux.comが面白い記事を。

先日、IntelとMicrosoftがHD DVDの支持を発表したことを受けての記事で、「Microsoftはウソ付きだ」と批難しています。確かにMicrosoftとIntelの主張は不正確です。ですから批難するのは解ります。しかし、なぜMicrosoftだけを批難するのでしょうか。Intelを批難しないのはなぜでしょうか。

勇気というのは変だろうか。いや、本当にそうなのだ。当時は、Microsoftの見解に沿わない記事を書くことは暴挙でしかなかったのだ。それが理由で、PC Magazineの人気ライターが解雇され、InfoWorldの編集者にビル・ゲイツ本人から電話がかかってきた。私も、Microsoft社員のネット上での悪徳行為について書いた記事について、どうしても発表するなら法的手段に訴えると脅された。

おそらく、これと同じことが起きているのでしょう。Microsoftはライバルですからいくら批難してもよいのです。しかし、CPUを供給してくれているIntelはLinux陣営にも重要です。多分。だから批難しにくい。もしくは批難できないのではないかと勘ぐってしまいます。

最近聞いた「嫌われる人の条件」というものに「昔のことをいつまでもぶり返す」というのがありました。この話も同じようなもので、10年も前の話を持ち出して批判の対象にしています。Microsoftの姿勢が10年も前から変わっていないのであれば、もっと最近の事例を挙げればよいのです。10年も前の事例では、まるで10年間は正直だったということで逆効果になり兼ねません。

こういったライバルを、特にMicrosofを、必要以上に批難する姿勢がLinuxの普及を阻害しているのではないかと思っています。

ローカルディレクトリブラウザ(仮)

ファイルの移動で、表示を更新しないことがあるのを修正。また、移動元に付いて更新チェックをしていなかったのでこれも更新するように。

ついでに不適切だと感じた関数ポインタ名を変更。コピーなどの終了時に呼び出すイベントハンドラとして(*notify)()としていたのですが、これを(*done)()に変更。そして、エラーや問い合わせが必要になった時に呼び出していたイベントハンドラは(*cont)()から(*notify)()に。最初は、エラー発生時に処理の継続を問い合わせる用途に使用していたのでcontinueのcontだったのですが、インクリメンタルサーチの時のキー入力ハンドラとしても使用したために解りにくい名前になってしまいました。

2005年10月06日

日記のネタ

ネタが無いのでローカルディレクトリブラウザにフィルタ機能を実装。

A・リード氏死去

ネタが無い、と思っていたのですが先月あのアルフレッドリード氏がお亡くなりになっていたことを知りました。

「オセロ」とか「春の猟犬」が好きでした。この二曲、改めて聴きたいのですがナイスなCDは無いものでしょうか。

2005年10月07日

GeForce FX 5900XT

8,000円ちょっとで売ってました。5700Ultraから乗り換えるか微妙。

たまに1280x960の解像度でアンチエイリアス掛けて使いたいのですが、この時には5700Ultraだとちょっとキビシイ。

しかし、そのために8,000円というのもどうか。

OZONE

ミュージックステーションにてOZONEが歌うMai Ai Heeを放送。「米さ米酒さ」のルビがなかったのは何故?

ReiserFS

SCSI Ultra320のHBA/ディスクでExt3のパーティションに書き込みのとReiserFSのディスクに書き込むのとでは大分速度が違いました。厳密に計測はしていませんが、1MBずつ1GBのファイルをシーケンシャルに書くだけで2割程度速いです。シーケンシャルでこれならランダムアクセスにはもっと期待できそう。

FIVAのパーティションはExt3なのでインストールし直してみようか。Fedora CoreだとデフォルトでReiserFSが選択できないので別のものを選択しないといけないようですが。

Fedora CoreでReiserFS

なんと、インストール時のプロンプトに「reiserfs」と書くだけで使えるとか。

2005年10月08日

連休

linux用のファイラとしてCxplorerを試してみようとしたのですが、shared-mime-infoというパッケージが必要、ということで頓挫。freedesktop.orgにFedora Core 1用のRPMがあったのでインストールしてみましたが/usr/lib/pkgconfigに反映されなくて認識しません。

GTK2.4が無くて霞をインストールできないとかいろいろ不自由に感じてきたので、Fedora Core 1を卒業しよう。ファイルシステムもExt3からReiserFSにしたいし。

というわけでせっかくだからFedora Core 4のCD-ROMを作ってブート。

ide1=0x190と指定することで、CD-400は認識している模様。hdcというデバイスがあるように見えてます。でもストールするのでアウト。

hda: max request size: 128KiB

で止まってしまいます。

noautotune

noautotuneを付けることで回避成功。というわけで起動時に付加したオプションは

text nodma noprobe nofb noacpi askmethod reiserfs ide=nodma ide1=0x190 ide0=noautotune hda=slow hdc=cdrom

見ていると途中でide-csをロードしてCD-400を認識したようなので、ide1=0x190は意味がないかもしれません。

vs Fedora Core 4

やはりide-csがCD-400を見つけるのでide1=0x190は不要でした。APM経由の割り込みが上がってくるとpanicするのでapm=offは必須オプションの模様。ついでにskipddcも付けておくと画面が乱れないということも発見。

text nodma noprobe skipddc nofb noacpi apm=off ide=nodma ide0=noautotune reiserfs

しかし、対Cyrixのパッチを当てないと2.6カーネルのFedora CoreはIDEの割り込みで混乱するようで、ファイルのコピー中にpanicしてしまいました。敗北。

vs Debian

というわけでDebianに変更。インストールを始めると/をExt2で初期化してしまいます。目的はReiserFSなのでちょっと困る。

まあGConfとかGTK2.4とかも目的なのですが。

2.5インチHDDの変換アダプタを買ってきてデスクトップからインストールした方が楽かも…。

2005年10月09日

vs Fedora Core 4

というわけでヨドバシで2.5インチHDDをつなぐケーブルを購入。Athlon XP機に接続してFedora Core 4のインストール。

デフォルトのカーネルではReiserFSの / をマウントできないという間抜けな事態に引っ掛かりましたが、/bootをExt3の別パーティションにして回避。なんとなく釈然としません。

emacs

emacsのdump中にセグメンテーションフォルトで死にます。

ぐぐったらNew dumping problem...というのがヒット。

rootになってから

echo 0 >/proc/sys/kernel/randomize_va_space

としてやると回避できるとのこと。確かにできました。

とりあえずgcc-3.4.4をmakeしてそっちでemacsを組み立ててみたりして。

Fluxbox

デフォルトのgcc4でないとlibX11.aを見つけてくれなくてmakeできません。うーん。

A・リード追悼記念

CD屋さんでA・リード氏のCDを物色。さすがに数がありません。大阪市音楽団演奏のCDを3枚見つけましたが

と、好みの曲がそれぞれ別に入っています。どれも捨てがたく、結局買えないとか言う。

さらにオセロがどれかに入っていればソレを買ったのですが。もしくは2曲入りなら。うーん。

2005年10月10日

vs Fedora Core 4

デフォルトゲートウェイの設定ができなくてADSLモデムから外に出られないという。

dhclientが動いた辺りでRTNETLINK answers: Network is unreachableとか表示されますが、dhclientが何をやっているのか解らないので何をどうしたら良いのかさっぱり解らないまま。

HDDをデスクトップにつないでいたときには動いていたので、FIVA用に作ったカーネルに問題があるのでしょうが、.config自体はFedora Core 1で使っていたものをそのまま流用したので何がなんだか。

ネットワークの設定スクリプトがFedora Core 1とFedora Core 4とで違うのでしょうが、何が変わったのか解らないのでどうしたら良いのかさっぱり判りません。

-Os と gcc4

Fedora JP 掲示板「eth0はアクティブなのにpingが通らない」によると、カーネルをgcc 4、最適化オプションとして-Osを使用しているとRTNETLINKなんとかとか表示されてデフォルトゲートウェイが設定されないという現象があるそうです。

さすがにこれは気づきませんでした。

未成年者を選挙運動に使用し公職選挙法違反

民主党の佐々木隆博議員の運動員が未成年者を選挙運動のために雇用したために公職選挙法違反の疑いで逮捕されたとのこと。

未成年の娘を使用した鈴木宗男議員は罪に問われないのでしょうか。

2005年10月11日

vs gcc 4

あきらめてgcc-3.4.4でカーネルコンパイル。

起動時にloを立ち上げるときにもRTNETLINK: answersと文句をいっていたのがでなくなりました。これは期待できます。

steelo

先月、9/26にシグマA.P.O.のsteeloというレーザマウスを買いました。いまいち調子がよくないというか、マウスパッドの上ではポインタがぶれ、まっすぐ動かしているつもりでも、よく見るとポインタが上下に動いているのがわかりました。コピー用紙の上だと割と普通に動いたので、マウスパッドとの相性が悪いのだろうと思っていました。

それが、今日PCG-SRX3に接続するとポインタが自動的に動くという念力マウスに変身していました。ありえない。

というわけで購入したパソコン工房に持ち込んでみたところ、そこでも元気よくポインタが動き出しました。自動的に。「休み明けにパソコンにつないだら、元気よく動き出したもので」と言ったら「元気いいですよね」と女性店員。一週間の保証期間は切れていましたが快く交換していただけました。

交換後のsteeloは実に快適。交換前のはホイールクリックが異常に固くて押しにくかったのですが、交換後はスムーズに押せます。回転もクリック感はありますが軽く廻せます。

ラピタ

付録が万年筆というので思わず購入。

ペンなんてゼブラの丸ペンと日光のGペン以来のような気がします。STAEDTLERのMarl maticもペンですか。

gcc 3.4.4でコンパイルしたkernel 2.6.13.3

ちゃんとネットワークが使えるようになりました。

2005年10月12日

松下電器産業が上告断念

ヘルプアイコンが特許を侵害しているとしてジャストシステムを提訴していた松下電器産業ですが、先日の高等裁判所の判決を受け入れ上告はしない方針とのこと。

民事訴訟法312条によると、判決に憲法の解釈の誤りがある時に上告できる、とされています。ですから、上告しても棄却される公算の方が高かったはず。

Operaのフォントと格闘

M+のビットマップフォントを愛用していたのですが、Operaはフォントに付いては割とわがままで同じFoundry名、Family名で各種文字セットにアクセスできないと代替フォントにフォールバックしてしまいます。逆に、同じFoundry、Family名でアクセスできるフォントであればきちんとそのフォントを使用してくれます。そこで、M+のBDFファイルを書き換えて-mplus-helvetica-*でiso8859-1、jisx0201、jisx0208にアクセスできるようにしたのですがどうもうまくいきません。-mplus-gothic-だとうまくいきます。しかしこちらは固定ピッチフォントになっているのでちょっと読みにくい。なんとかしてhelveticaにしたいところです。

というわけで違いを調べていたところ、xfontselで-mplus-gothic-を選択するとサイズ0のものが選択できるのですが、helveticaだとサイズ0が選択できません。可変サイズだと認識しているかどうかがポイントのようですが、font.aliasでhelveticaが指定されたらgothicと同じフォントを使うように指示しているだけなのでよくわかりません。実ファイルが存在するかどうかがポイントかもしれません。

日記の切り分けプログラム

Fedora Core 4に変えたら動かなくなりました。なぜっ。

Operaのフォント

そういえば、Fedora Core提供のX11には日本語フォントが導入済みでした。以前はmakeしたX11を使っていたので日本語フォントはK14などの極一部のみで、これにM+を追加したのでした。Fedora Core 4に含まれている別のフォントが選択されてしまっているのかも。

勢い余って/usr/share/fonts/japanese/miscからM+フォントを削除してしまいましたが、このディレクトリをフォントの検索パスから外すだけでもよかったかも。

2005年10月13日

日記の切り分けプログラム

変数の初期化洩れがあったためにうごかなくなっていました。malloc()した領域が0でクリアされている場合にはうまくうごいていました。テストが甘かった。

暗黙のうちに「この時、値は0であるハズ」という仮定をしてしまい、この条件が常に成立するかどうかをテストし忘れたのでしょう。Windowsで動かしていたときにHEAP_ZERO_MEMORY指定をつけてHeapAlloc()を呼び出していたこともテストを省いてしまった原因かもしれません。

今のローカルディレクトリブラウザではmem.cを見ると解かりますが初期化洩れがあってもすぐに見付かるように0xAAで埋めて返すラッパを使っています。さすがに0xAAで初期化されているという前提は立てないと思うので。

この小技はDFを作っているときにも使っていて割と便利。

PSPにHDD

DatelがPSP用の4GBハードディスクを販売するそうです。稼働時間が二倍になるという触れ込みの大容量バッテリも付属。

Datelというのがなんなのかよくわからないのですが、海外ではメジャなゲーム機の周辺機器メーカのようです。日本で言うところのGAMETECHみたいな感じなのでしょうか。

Yonahは来年元旦登場

わかっちゃいますが、Dual Coreならともかく、超低圧電だとSingle Coreでトップスピードが1.2GHzでFsBは533MHz。L2キャッシュも2MBとDothanと変わり映えしません。

気になる価格は通常電圧でローエンドのSingle Core 1.66GHzだと210ドル。同じクロックでDual Coreになると240ドル。たった30ドルでデュアルコアなら15%の価格アップで性能2倍ということですから割安に感じます。ハイエンドのDual Core 2.16GHzは640ドル。クロックが30%アップでお値段は3倍以上。ちょっと割にあわない感じです。

1月末にはCeleron M 390が135ドルで販売されるとのこと。クロックは1.7GHzでL2キャッシュは1MB。

Windows Vistaの製品構成

Windows XPでは

といった複数のバージョンがあるわけですが、Windows Vistaでは20種類になるそうです。

サーバ向けの製品構成も含んでこの数なら解らなくもありませんが、消費者向けだとすると何を基準に選択したらよいのか解らなくなりそうです。

OSもBTOする時代かも。

2005年10月14日

EnumChildWindow() for X11

ローカルディレクトリブラウザ(仮)はどうも操作に対するレスポンスがよくありません。使っているのがMediaGX 200MHzという今となってはパワー不足なPCだからか、とも思っていましたが、このMediaGXを載せているFIVAでDFを使っていたときにはそれほどもたついたりはしませんでした。というか、もっと非力なLibretto 30でもちゃんと動いていました。

これはもう、ちゃんとボトルネックを特定して改善しなければなりません。

例によってRDTSCを使って所要クロックを求めてみました。

シェルウィジェットの作成150513
ダイアログウィジェットの作成238653
内部処理287
ボタンウィジェットの作成286459
ラベルの設定66554
XtPopup()250216
全体992682

30%以上の時間をシェルウィジェットとダイアログウィジェットの生成で費していました。一度作って使いまわすようにしたら3割速くなります。

初期状態の文字列チェック253
シェルウィジェットの作成202436
ダイアログウィジェットの作成186966
テキストウィジェットの作成46194534
保存処理285
イベントハンドラ設定4776
XtPopup()437352
XtSetKeyboardFocus()49683
全体47076285

コピーなどの入力ダイアログに至ってはasciiTextWidgetを作るだけで8割の時間を費しています。

というわけで、シェルウィジェットとダイアログウィジェットは使いまわすことにしました。しかし、その上にのっているボタンなどは破棄したいので、子ウィジェットを破棄するような仕組が欲しい訳です。

そこでXtDestroyWidget()のソースを見てみると、なんということでしょう。*childrenメンバに直接アクセスしているではありませんか。

プライベートヘッダで宣言されているので、ちょっと触りたくないところ。とりあえずchildrenメンバにアクセスする方法はないものかとヘッダにgrepをかけてみたところXQueryTree()を発見。これで望みのことはできそうです。

ってこれだとXt的にUnmanageされないとかいろいろ不都合がありそうな。自分で作った子ウィジェットくらい、自分で覚えておけ、ということでしょうか。

StringDefs.hにはXtNchildrenというのが宣言されているので、これを取得すると子ウィジェットの一覧を取得できたのでこれを使って一撃必殺。

2005年10月15日

XtPopup()

ウィジェットを使いまわすようにしたもののもっさりした感じが消えません。

2005年10月17日

ダイアログ

ローカルディレクトリブラウザ(仮)のプログラムを書いていて、処理ごとにダイアログを分けよう、と考えていたのですがこれは誤っていたような。

処理の途中で選択肢がダイアログという形で表れるのであって、コピー先入力ダイアログがコピーする訳ではない、というか。コピー処理はコピー先の入力も必要ですがその後上書きの確認でもダイアログを出すのでダイアログに閉じ込めようという発想には無理がありました。

XtPopup()

ふと思い立って、ウィンドウマネージャのFluxboxを起動せずにrxvtのみにしてからローカルディレクトリブラウザ(仮)を起動してみました。

XtPopup()しているダイアログの表示が速い!

とりあえずキャッシュ化したものを元に戻しました。

asciiTextWidgetを使い回していると、なぜか途中から巨大化するという謎の現象がCygwinで。再現性はあるのですが理由がさっぱり不明。

2005年10月18日

Cygwin/XのasciiTextWidget

文字を挿入すると、カーソルの後ろに何かゴミ…というかNUL文字が付いているような。

フラップ故障

羽田に向かっていたら。

着陸前、いつもよりどうも高度が高いような印象を受けました。計器を見ているわけではなくて機外モニタからの映像から受けた印象ですが。モニタの都合かもしれないのでソレはソレとしても、どうも滑走路を飛び越えそうな雰囲気。大丈夫かなあ、と思っていたら加速して上昇、そして旋回して引き返しました。

私がエアロダンシングなんかで遊んでいると、着陸できそうにないから上昇してやり直し…と思ったときにはもう手遅れで加速しつつ滑走路に激突してしまったりタッチアンドゴーしてどこかに飛んでいってしまう体たらくなので上昇できるうちにリトライしにいく、というのはさすがプロの判断。

すると、アテンダントの方から機内アナウンスが。「左フラップが故障しているため、着陸を延期いたします。ただいま修理を行っておりますので詳しいことが判り次第改めてご連絡いたします。」とのこと。

私は座席を後ろの方に取っていました。フラップが壊れているということは揚力が稼げないか減速しにくい状態になるわけで、着陸を強行しようとすると機首を上げて機体底面で減速しながらということになるのでしょうか。つまり尻餅をつきやすい。そして私の座席は後ろ側。ピンチ。

そもそも上空にいながら修理できるものなのかどうか。油圧ピストンが冗長化されていて、系を切り替えるだけで動くようなものなのか、ピストンに気合いを入れたら動くようになるのか、セガールが主翼の上に乗って修理しているのでしょうか。

なんてことを考えていたら、「操縦席よりお知らせします。進入していましたが、…揚力装置の故障によりいったん上昇しました。トラブルシュートし現在は通常モードになっております。通常通り※※※(アルファベットと数字の組み合わせによる4,5文字くらいの記号のようでしたが聞き取れませんでした)滑走路に着陸いたします。到着時間が遅れましたこと、お詫び申し上げます。」進入って何がどこに進入していたのか説明が足りません。「トラブルシュート」という言葉も乗客に対する説明に用いるには不適切な印象を受けました。通常モードというのもよく解りません。言葉だけでは全然不安を解消できていないのですが、このアナウンスは異様に自信に満ちあふれた口調でしたのでそれなりに安心感は与えたのではないでしょうか。言葉の意味はよく分からないが、とにかくすごい自信だ、みたいな。

そしていざ着陸。滑走路が見えますが今度はやけに遠い。減速のしやすさを考慮しているのか…と思ったらするすると滑走路は右に流れてきます。機体が左に流れているのでしょう。あの滑走路じゃないとしたら手前のアレかなあ、でもあれは誘導灯とは形が違うような…と思っていたらそれもモニタ中央より右にそれました。戻す気配もありません。どこに着陸するのだろう、と思ったら、赤い誘導灯がモニタ下に。誘導灯は鉛直に見えます。一体どういう飛び方をしているのか。右から吹く風に流されてドンピシャ。流石プロ。でもこのままだとまた滑走路を飛び越えそうな…と思っていたら機首が下がって滑走路がモニタ一面に。後部座席でよかった!

後部座席でよかった!と思いつつシートベルトを確認していたら機首が戻ってあっさり着陸。流石プロ。すごすぎる。

ITmeidaへのリンク

ITmediaへのリンクの制限が撤回された、ということが話題になっています。以前はリンクは事前に許可を頂くようになっていました。私も申請したことがあります。ITmedia Information:利用規約によりますと、

<リンクをお断りする場合>

以下の事項のいずれかに該当する場合は、リンク自体をお断りする場合があります。

というのがありまして、アイティメディア株式会社が著作権を持っていない記事に対してリンクを張ることは「お断り」される可能性があります。ITmeidaにはeWeekやロイター、linux.comなどの記事も転載されていることがありますがこれらの記事についての著作権はアイティメディア株式会社が持っているわけではありません。ですから、これらの記事にリンクを張るのは避けた方が無難と言えます。

2005年10月19日

閉鎖空間にてセクハラ未遂

事件は5月に出港した実習用のための船内という閉鎖空間で発生。6月下旬に技師が女子生徒にセクハラ行為をしたとのこと。記事では「未遂に終わった」とありますが、セクハラつまりいやがらせ行為というのは成立しているのではないでしょうか。嫌がったから逃げ出したわけですし。というか「未遂の嫌がらせ」というのは「計画を立てた段階」だとか「実施したけど対象が気づかなかった場合」くらいなもので、大抵は実施したら即成立するような気がします。

楽天とライブドア

ライブドアは楽天のための露払いをしているようにしか思えない今日この頃。

次は楽天が無線LANに手を出すのでは。

MicrosoftがHD DVD支持を今発表した理由

本田さんはではなぜ両社はHD DVDを支持したのだろうか?と書いていらっしゃいますが、Microsoftについての答えに限れば記事に書いてあります。

MicrosoftはXbox 360のため、将来はXbox 360を安く作るため、HD DVD対応ドライブをたくさん作ってもらう必要があります。そのためにはHD DVDプレイヤがたくさん作られなければなりません。たくさん作られるためには、たくさん売れる見込みがなければなりません。HD DVDプレイヤが売れるためには、ソフトウェア(映画などのコンテンツ)がたくさん必要です。そういった種をまくためにHD DVDを推しているのです。SONYの場合は、自分で必要なドライブは自分で作ることができます。PS2の時にもやったことです。もう一度できるでしょう。

なぜこの時期か、というのはパラマウントやワーナーがBlue-rayもサポートすることを表明してしまったためです。HD DVDの魅力が減ってしまった今、すぐにHD DVDの魅力を増すような対抗策が必要でした。

では、なぜIntelまでがMicrosoftに追従したのか。それは判りません。MicrosoftがIntelに持ちかけたのかもしれません。Intelの場合は特に理由はないのは本田さんの記事の通りです。しかし、Microsoftには理由があります。PC業界はこの問題に中立であるべきだ、という見解には同意します。Intelは口を出すべきではありませんでした。

しかし、Microsoftは違います。MicrosoftはPC業界にいる企業です。しかし、ゲーム業界にもいる企業です。ハードウェアを売っている企業でもあります。PC業界としてのMicrosoftは中立であるべきです。しかし、光ディスクドライブを直接使うゲーム業界としてのMicrosoft、ハードウェアメーカとしてのMicrosoftは違います。自社が有利になるように積極的に働きかけることは当然のことです。そのために他社にも口添えしてもらって影響力を増そうと図ることは納得のいく話です。それがIntelだったというだけです。Intelを選択するというのは、どうかと思いますが。

ローカルディレクトリブラウザ(仮)

登録コマンドファイル(~/.dfx/cmd)の末尾に改行コードがないと、バッファオーバランを起こす問題を発見。

読み込みバッファにデータがあった場合、それは未処理だと思っていたので読み込みバッファの内容をさくっと処理用バッファに移動する処理を書いていました。その後、ファイルの読み込みループを書き直した際にバッファの統合処理をループの内部にまとめてしまったためループを抜けた後では不要になったのですが、削除するのを忘れていました。

なんにせよテスト重要。

プログラミングの楽しみ

プログラミングの楽しみというのは、やはり「書いたものが動く」という点に尽きると感じます。

書いたものが思い通りに動く。これこそがプログラミングの目的であるわけですから、動いているものを見るのは楽しいわけです。

そうなると、プログラミングの最大の楽しみを得るためにも、書いたものが思い通りに動いている現場を見なくてはなりません。それこそがテストです。

しかし、動かしてみると「書いたものが思い通りに動かない」という厳しい現実に直面することもあります。だからといってこれを避けてテストしないというのは馬鹿げたことです。テストをしなければ「書いたものが思い通りに動いている」という確信を得ることができないのです。せっかくの楽しみを得られないわけです。また、動かないものを動くようにするというのも大変楽しいものです。

テストをおろそかにしている人は、プログラミングの楽しみを理解していないと言えるでしょう。

2005年10月20日

風邪

ノンストップ鼻水。

ティッシュ一箱が二日と持ちません。

ローカルディレクトリブラウザ(仮)

キーアサインについて、KeySymだけではなくて文字も指定できるようにしてみました。*を「Ctrl + :で」はなくて*と書けるようになりました。

あとはマークの解除コマンドと反転コマンドを実装。

2005年10月21日

風邪

予定を変更して、午前中に札幌に帰ることに。

便は10時離陸の便。ちょっと出遅れたので9:30に空港に到着。間に合った。京浜急行を降りたところで搭乗手続をしたのですが、「座席が選択できない」という理由で拒否されました。窓口で手続きしろとのことです。時間が押しているので座席なんて空いてるところでよいのですが、融通の利かないシステムです。

窓口…といわれてもいつも端末で手続きしているのでどこが搭乗手続窓口なのか知りません。というわけで案内窓口で聞いてみると正面の10番窓口が搭乗手続を行っているとのこと。ものすごく並んでます。電光掲示板を見ると、空席は既にないようです。何かトラブルでもあったのか、搭乗口が変更されているようです。101番ってどこでしょう。

「9時50分発の便にお乗りの方は係員までご連絡ください!」と叫んでいるようですが、私は10時出発なので対象外。9時50分になりましたが一向に手続きできそうな雰囲気はありません。間に合うのかどうか。搭乗手続は10分前まで、とかチケットには書いてあるのですがこのように窓口が混雑していて手続きできない場合の責任というのは誰にあるのか。

すると、電光掲示板の表記が変わって「10時発札幌行きにご搭乗のお客様は6番窓口へ」と表示されました。行ってみるとガラガラ。すぐに手続きできました。

「搭乗手続の窓口はどこか」と訊ねるのではなくて、「搭乗手続のできる空いている窓口はどこか」と訊ねるべきでした。失敗失敗。というか、案内窓口の方も、真正面の混雑している10番窓口を案内するなんて、どうかと思いますが。

時間ぎりぎりというか、10分前まで、という指示を無視して搭乗手続を行い、手荷物検査。

「パソコンはありますか?」と聞かれたので当然「はい、あります。」と返答。「出してください」というのでまずはPCG-SRX3を渡しました。SRX3をトレイに置いてコンベアへ。次にVGN-T90を渡そうとしたら係員の方はショルダーバッグを受け取るつもり満々だったようでトレイを用意していなくて慌ててました。2台出てくるというのは想定の範囲外だったのでしょう。

搭乗手続は済ませたので、ちょっとは送れても乗れるはず。101番搭乗口というのを探してみたらずいぶんと奥の方にあるようで結構歩くハメに。着いたらこちらも大変混雑していました。それでも10時前には到着。出発まであと5分。ってそんな時間にまだ機体整備中というのはどういうことか。

仕方がないのでVGN-T90を取り出して日記でも書こうとしたら、機材変更のため出発延期。10時50分発になるとのこと。そしてまたもや搭乗口変更。59番へ。59番って手荷物検査を受けた近くでこちらに来るときに通りすぎたところではありませんか。

まあ、時間が余ってしまったのでおみやげを買う時間ができました。3月に買って好評だった空飛ぶでかドラを買いました。このページを見て驚きましたが、一つで1083kcal。つまり1メガカロリーでありでかドラ1つで100万カロリー。さらに2つ追加で300万カロリー!!

というわけで買い物を済ませて戻ってくると、出発延期のお詫びとしてANA FESTAで搭乗券を見せると1,000円分のお買い物ができますとのこと。もう買い物は済ませました…。なんだかことごとくタイミング悪すぎ。

2005年10月23日

ローカルディレクトリブラウザ(仮)

公開しているアーカイブを更新。

Fedora Core 4に含まれているlibXawが実は7だったということにちょっと驚き。というわけで今回のバイナリはlibXaw.so.7にリンクしてます。

試しにlibXaw.so.6にリンクしてみたら、ポップアップシェルを消したときの再描画がおかしいという不具合。

ローカルディレクトリブラウザ(仮)

更新した途端に、マークを解除した時の処理が誤っているのを発見。公開しているアーカイブを更新。

Razer Copperhead

無駄に高いスペックを謳うRazerのマウス。それが実はそれほどではないという話です。

この手の物は難しく、ハードウェア、LSI単体の仕様としては規定の性能があっても組み合わせると出ないとか、その性能を発揮するには別途定める条件下でないといけないだとか微妙な制限事項があったりします。そういった条件を知らずに作ると意図したような性能が出ないものが出来上がったりするのですが、マウスといえども作るのは難しいのだなあと思いました。

私はFPS系はやらないのでMX-310でほぼ満足しているわけですが。

cygwinと日本語

Cygwinで日本語のmanを表示するにはどうしたらいいのでしょう。

2005年10月24日

ローカルディレクトリブラウザ(仮)

mkfileコマンドでファイルが作れないバグを発見。

open()でファイルを作っているのですが、このときファイル名の末尾に/が付いていました。Fedora Core 1ではそれでもファイルが作れたので「Linuxって面白いなあ」と思っていたのですがFedora Core 4では弾かれてしまう模様。

インスパイヤ

あふのマスコットキャラ(?)にインスパイヤを受けて描いてみたり。

自分でも自分がなになにやってる人なのか解らなくなってきました。

CLIEで描いてみましたか、狭い中に何を詰め込むか、というのはなかなか難しいものです。功夫が足りません。そもそも人物が中央になってないし。

使用したソフトウェアはPixMarker。まだまだ使いこなしが足りません。ちゃんと使えばマスクもどきとかいろいろできるのですが。後は電車で描くと揺れます。

2005年10月25日

MINIX3リリース

カーネルモードで動作するコードはたったの4,000行以下。その他のOSを構成するドライバなどはユーザモードで動作させる、ある種徹底したマイクロカーネルOS。

元は教育用という側面がありましたが、MINIX3では実用度も向上させたようで

などがターゲットとなっています。

カーネルコードが4,000行というのはどのくらいすごいことかというと、ローカルディレクトリブラウザ(仮)のソースコードがすでに10,605行なので、あれよりも小さいOSということになります。

2005年10月26日

Wineβリリース

Win32互換環境を提供するWineがついにβリリース。

slashdot japanに寄せられた投稿に依ると、WineでDFも動くという話なので試してみたいところ。

もっともDFは2画面にさえしなければWin16 + Win32sでも動くんじゃないかという勢いなのでWineで動いても不思議はなかったり。というか、DFくらい動かないと互換環境とは呼べないような気もします。

夏樹静子「ドーム」

K.INABAさんの「ドームチルドレン」の説明を読んで、夏樹静子さんの「ドーム」を思い出しました。

よく解らないなりにも「清水建設かっこいい」とか思ったものです。この本を知ったきっかけは、この本を原作としたシステムサコムのゲーム、「ドーム」。

ローカルディレクトリブラウザ(仮)

テキストビューアの基礎を実装。

表示できるだけでまだスクロールもできませんが、これは後々。どうも描画がWindowsほど速くないのでファイルの内容を保持するバッファと表示用に変換したバッファの2面持たなきゃ行けないのが気になります。まあ、これだと検索もできるようになるのでまずはこれで。

ロケールがEUC限定になってしまいかねないのが悩み。

2005年10月27日

ATI Radeon XT1800を1GHzで駆動

今日はInquiryに面白い記事がたくさんありました。毎日見ていればよいのでしょうが、たまに見る程度なので面白いのがたくさんあるように思えます。

Inquirerの記事に依ると、フィンランドでは有名な二人のオーバクロッカがXT1800を1GHzオーバで駆動させたそうです。

記事はなかなか面白く、

NVIDIAは制限つきながら110nmプロセスでGeForce 7800 GTXを作った。500MHzで走らせたところみんな幸せになった。ある日、ATIは90nmで作った。ATIのプロトタイプは500MHzの壁を破ることができなかった。しかしながら、2005年のMVPが問題を解決するとクロックが上がり始めた。まずは600MHz。そして650MHz。概ね700MHzで動くものが採れたけども、歩留まりと販売開始時期を考えて625MHzで出荷。

というわけで当たりを引けば700MHzで動くらしいです。で、あと300MHz上乗せしたというのがフィンランドのお二人。彼らは「正しく冷やしてどんどん電力をつぎこめば1GHzの壁だって破れる。」

そこまでして1GHzで動かすことにどのくらいメリットがあるのか解かりませんが、そんなGPUよりもどこでも500MHzで動いてそれなにハッピーなGeForceのほうがよさそうな気もします。

NVIDIAがチップセットをリコール?

GeForce 6100/6150、nForce400/430のデュアルLANポートとActive Armourに不具合がありリコールする、という噂があったのですが、NVIDIAは完全否定の模様。

GeForce 7800 GTXがShaer Model 3.0のテストに不合格

画像ではよく見えませんが、ドライババージョン66.81ではShaer Model 3.0に限らず、2.0、2.xでも表示互換性テストに通っていないようです。

楽天市場からの個人情報漏洩、犯人逮捕

センターロードの社員だったようです。流出した情報がAMCの顧客情報ばかりだったので、楽天市場ではなくてAMCの問題ではないかと思っていたのですが、AMCを運営していたセンターロードの社員がデータを持ち出したということです。

この人一人のおかげで、楽天市場側が顧客情報を厳しく制限するようになってしまい商品配達手段の選択肢が狭まったり、配送費が実質値上げという状態なので民事的にもものすごい勢いで損害賠償を請求できそうです。

名簿業者にはいくらで売ったのでしょう。

GCC 4.0 vs GCC 3.4.4

どうも以前と比較するとemacsの起動が遅いのでgcc 3.4.4でコンパイルし直してみたり。

感覚的には3.4.4でコンパイルしたものの方が起動してウィンドウが出てくるまでが早いです。起動してしまえばほとんどアイドルしているので気にならないのでしょうけど。

2005年10月28日

コミュニケーションの極意

オレンジニュースから。

正しい英語を喋ることより喋っている内容(コンテキスト)の興味を持つ相手であれば自分の意思が伝わっていくのだという経験を詰むことができたそんな経験が、こんなに英語のヘタな私でも何とかやっていけるという自信に繋がってきたのです。

これを読んで、目から鱗が思いがしました。漠然としていたものに突如明確な形があたえられて目に見えるようになったような感覚です。

コンテキストに内容に興味を持つ。これが重要なのです。多分。

void氏とのコミュニケーションが成立せず、ディスコミュニケーションを楽しめるのは、void氏がコンテキスト、内容を無視した返答をしているからです。なんとなく解かっていても、こうしてコミュニケーションが成立する要点を、古川さんの明解な言葉で説明されることで、void氏のコミュニケーションが破綻する理由が明確になった気分です。

「内容に興味を持つ相手であれば自分の意志が伝わっていく」ということは、裏を返せば「内容に興味を持たない相手には何をやってもダメ」ということです。

マルチコアでの注意点

「Dealing With Ambiguity」と題されたスライドが大変興味深いものでした。一般家庭にマルチスレッド環境を普及させたWindows 95の販売から10年近く経ちましたが、マルチスレッド環境でのプログラミングは全然普及していないのかもしれません。

 シーケンシャルコンカレント
動作不変不定
メモリ使用量安定あやふや
排他制御不要不可欠
グローバル変数手続きの先頭、出口、外部手続きの呼び出しの際に保持できていればよい常に排他制御を行う
デッドロック起きない排他制御を順序を定めずに行うと、いつでも停止する
テストコードカバレッジテスト(全面検査)はバグを最大限見つけ出す。また、ストレステストは品質も保証する。コードカバレッジは競合を引き起こす致命的なバグに対してはなんの役にも立たない。ストレステストにパスしてもちょっとした安らぎでしかない。
デバッグエラーが発生した処理を追跡することで修正箇所を見付けることができるのでだいたい安心。競合が発生していることを想定してコードを点検する。根本的な原因は簡単には簡単には見付けられないまま残っている。

この「テスト」「デバッグ」の項目に付いてはすでに常識だと思っていましたが、こうしてスライドに出てくるということは知られていないのか、軽視されているということなのでしょう。競合の件に付いては、私の経験では根本的な原因は設計時の見落とし、想定の範囲外の事象によるものがほとんどで、後から直そうというのは作りなおしに近いものになります。

2005年10月29日

省電力POWER

P.A.Semiが開発したPWRficientというPOWERプロセサは、平均消費電力5W、最大消費電力が25Wというものだそうです。これならノートに搭載できます。12インチには難しいかも知れませんが、15インチ以上のサイズなら充分でしょう。

ただし、市場に出てくるのは二年後とのこと。

IBMからの省電力PowerPC

デュアルコアとなるPowerPCでIBMも消費電力が少ないことを訴えました。が、先のPWRficientが最大25Wというのに対して100Wというのは見劣りします。Pentium 4と比較すれば30Wくらい少ない訳ですが。

さすがにこれをノートに入れるのは無理があります。

2005年10月31日

USBメモリとして使用可能な受信機を備えた無線マウス

便利なものがでてきました。

最近は情報漏洩対策として、USBメモリを使用禁止とするところが増えているのですが、これなら「マウスの受信機です」と主張できるため堂々と使用できます。

Mircosoftから4ボタンコンパクトマウス

こういうのが欲しかったんですよねえ。持ち運びできる4ボタンマウス。先日レーザマウスを買っちゃったのでしばらく買いませんが。というか、レーザじゃないのが残念。

Intelのチップセット計画が後退

Itaniumとx64系Xeonのチップセットを共通化しようという計画が延期されたとのこと。

実のところItaniumのチップセットは誰も必要としていないというか、せいぜいがリファレンスボードのようなものでItaniumを採用するようなハイエンド系であれば独自の障害対策機能を盛りこむためにベンダ各社がチップセットを起こすのが通常です。つまりIntel製のチップセットが必要なのはDELLのようなチップセット開発能力が無いベンダだけです。HPや富士通、日立といったIntaniumサーバを販売しているところは独自開発したチップセットを使用しているのでIntelがチップセットを作らなくても問題はありません。

またDELLもItaniumサーバは売るつもりが無くてXeonに集中していますから、こちらも問題はありません。


トップを狙う

Copyrigiht © 2005 びい