2005年11月の日記。

2005年11月01日

Operaとuim

先日、FIVAのOSをFedora Core 1からFedora Core 4にしたわけですが、それに付随してかOperaで日本語入力ができなくなりました。そのうち設定しようと思っていて放置していたのですが、いざ取り掛かると何が足りないのかさっぱり解りません。

yumでuimをインストールする場合なら動くのでしょうが、ソースからmakeしたいのでそれは避けたい。残念ながらsystem-swhich-imがブラックボックスとして隠してしまっているようです。

とりあえず/etc/X11/xinit/xinput.d/ja_JPを書き換えてみましたが改善しない模様。rxvtやローカルディレクトリブラウザ(仮)では動くので何がよくないのかさっぱりです。

Linux 2.6.14

リリースされたので、昨日コンパイルしてインストールしました。make oldconfigすると、CONFIG_IEEE80211というのが追加されていました。CONFIG_NET_WIRELESSとの違いがよくわかりません。

アクセス保護

で、Linux 2.6.14でFUSEがマージされた訳ですがFUSEではファイルシステムをユーザモードで処理することからセキュリティ面からの懸念があるという話があります。

ファイルシステムをカーネルモードのみで処理するかユーザモードでも処理するかというのは実は細かいことで問題ではありません。ファイルシステムをプロセスごとに分離できない、ということが問題です。

アドレス空間をプロセスごとに分離して、他プロセスからの影響を排除し、それによって他プロセスからの無作法な書き込みからプロセスを保護する。またはプライベートな情報の読み取りをさせないように保護する実装がなされました。アドレス空間、つまりメモリは記憶装置です。同じ記憶装置であるハードディスク、ファイルシステムを分離しないというのはおかしな話です。

メモリ、アドレス空間のどこをどのように使うか。そんなことはユーザが意識する必要はありませんし、理由もありません。同様にファイルシステムのどこに、何があるということを意識する理由は実は無いのです。単にパソコンではそこまでの実装がなされていない、追い付いていないだけです。組込み系ではディスクが無いことからこのようなくだらない制限からは解放されています。ユーザが意識したいことは、記憶装置に格納する「内容」とそれに付ける「名前」だけです。今のファイルシステムではファイル名で識別していますが、別にこれが半導体メモリであろうがハードディスクであろうがユーザには直接は関係しません。

本来、携帯電話の電話帳やメールの受信フォルダも不要です。ただ、設計をしている人がパソコンのファイル管理に縛られているために、そこから抜け出したデザインができないのです。メールであれば、素手に受信しているのですから記憶装置には入っています。それに対して識別用の名前を付けるだけでよいのにもかかわらず、「受信フォルダ」というよくわからないところに移動させることを強制しています。それではあまりにも面倒、ということで自動的に移動させる機能が追加されたりもしましたが、結局ユーザが「受信フォルダ」というものを意識しなければなりません。

そろそろ、ファイルシステムという発想から離れる頃合です。64ビットのアドレス空間であればディスクだって直接マッピングできます。ファイルシステムという枠自体が不要になる時代がそこまでやってきています。

・・・ファイラ要らないし。今の無し。

ブシドーブレードオンライン

というのを思い付いてしまい苦しい思い。

udev

Fedora Core 1では普通にdevfsだったのですが、Fedora Core 4ではudevが採用されています。これがまた遅い。

起動時にいちいちudevの起動を待つのは嫌なので、Software Suspend2を導入。何箇所かでパッチが弾かれましたが

と言う程度でおおむね問題ありません。x86-64ではないし、mdは使ってないし。suspend.hだけは気になるので手作業で。

最初はスワップの設定が独特だったためかうまくいきませんでしたが、動くようにはなりました。

2005年11月02日

ToDo

いい感じに溜まってきました。

ココログが2GBに

全部あちらに移行してしまいましょうか。2GBあればしばらくの間は収まりそうですし。

Operaで日本語が使えないので、これが解決するまではココログには移行できませんけれども。

拡張子別コマンド

掲示板で要望があったように、別セクションを読みにいく機能を追加しました。本当は再帰的にどんどん他のセクションを取り込んでいくような作りにしたいのですが、それにはちょっと手間がかかるので読み込みセクションを切替えて再処理するだけに留めました。

コマンド定義の先頭に「@=ext.ini」と、@=「セクション名」を書けばそのセクションを読みにいきます。

SONY BMGのやりすぎたコピープロテクトCD

厳密にはCDではないのでコピープロテクト「CD」とは書きたくないのですが他にどう記述するのが適切なのか。

記事ではrootkitを用いたもの、と受け取れる書き方をしているのでバックドアなどが仕掛けられ兼ねないような印象を持つのですがそういうことではないようです。rootkitはバックドアを仕掛けたりログを残さないようにするなどの隠蔽工作を行います。そのrootkitの隠蔽テクニックを利用した監視プログラムのようです。推測ですが、常にユーザの操作を監視することによって製品のデータに意図しないアクセスがなされていないか、リバースエンジニアリングが試みられていないかを検出しようとするのでしょう。

音楽再生プログラムだ、と言われてインストールしたものが実はユーザ監視プログラムだったとしたら。これは単なるトロイの木馬です。

SONY BMGといえば「真愛珍愛2005風行精選集」というアルバムにWoody RinnさんのMIDIを未承諾のまま収録したという事件も起こしていますし、他人のものはコピーしておいて何を考えているのでしょう。

千葉銀行を装ってCD-ROM送付

わざわざお金をかけてCD-ROMを作ったり郵送するなんて手が込んでます。費用をかけても回収できる見込みがあるのでしょうか。今回は回収できたようですけれども。

東証でシステム停止

ハードは予備を用意できてもソフトウェアは予備を持ってても役に立ちません。同じように動いて同じように止まります。

自己放電が少ないNi-MH電池

三洋電機と松下電池工業がそれぞれ製品発表をおこないました。

DSC-U10は単四電池を使うので、電池が切れたので交換しようと思ったときには代わりの電池も放電済みなので自己放電が少ないというのは助かります。しかしGameboy AdvanceもSPになってリチウム電池になってしまいましたし、なかなか乾電池型のバッテリを使う機会がありません。忘れたころに交換する電池、というのはどのようなものがあるでしょう。無線マウス?

2005年11月03日

Shift_JISからEUCへ

意外なところで手間取りました。よくよくコードを確かめてみたら、足し算と引き算を間違えていたというもの。


  sjis[0] ^= 0x20;
  sjis[0] -= 0xa1;
  sjis[0] <<= 1;

  if(0x9f <= sjis[1]){
    sjis[0]++;
    euc[1] = (sjis[1] - (0x9f - 0x21)) | 0x80;
  }else{
    if(0x80 <= sjis[1]){
      sjis[1]--;
    }
    euc[1] = (sjis[1] - (0x40 - 0x21)) | 0x80;
  }

  euc[0] = sjis[0] + 0xa1;

とりあえず現状はこれ。ADCを使ってキャリーフラグを含めて加算すればsjis[0] <<= 1とsjis[0]++をsjis[0]++;をまとめられるはず。でもその後の引き算に使う数が異なるので結局分岐しなきゃいけないし、無意味のような気もします。

むしろどちらの分岐が成立するか、というのを大量にファイルを処理させて統計をとってそちらに合わせたチューニングをする方が有効か もしれません。

if(0x80 <= sjis[1]) sjis[1]--;もうまくやればaddとadcで分岐無しにできそうです。

で、ミスというのは「- (0x40 - 0x21)」というのを「- (0x40 + 0x21)」と書いていました。差分を引きたいのに、足してどうする。

ウィルススキャナに共通する脆弱性

人目を引く、注目を浴びやすいとは思いますがなんでも「新しい脆弱性」などと言えばよいものではないと思います。

この「脆弱性」というのは、既存のウィルスファイルに改造を施したらウィルススキャナが検出できなくなる、というもの。新しい亜種を作ったら検出されないというのはある意味当り前の話です。どの程度の改造で検出できなくなるか、というところには各スキャナで耐性が違うでしょうけれども、検出できなくなるまで改造を加えたのであればどんなスキャナでも検出できなくなります。なぜなら、検出できなくなるまで改造するからです。

しかし、The Magic of magic byteを読む限りこの程度の改竄には耐えないといけないと思います。

DOSの実行ファイルヘッダ(MZヘッダ)をテキストファイルに付与すると、ウィルススキャナは実行ファイルのヘッダがあるため、.EXE系のスキャンのみをおこないます。その結果、HTMLファイルなどに埋め込まれている不正なリダイレクタなどの脅威を見のがしてしまいます。ファイルを開こうとするとWindows(というかShellExecute()API)はファイルの拡張子に応じて動作を決定します。ウィルススキャナは実行ファイルだと仮定してスキャンしてもShellExecute()はHTMLファイルや.emlファイル、.vbsスクリプトと判断してそれに応じて関連づけられたプログラムを起動します。その結果、ウィルススキャナの網をくぐり抜ける訳です。

貧弱なスキャナ(論文によればMcAfeeとUNAの製品がそうです)であればファイルの先頭に2バイト、MZと書くだけでテキスト系ウィルスはスキャナをすり抜けることができます。それでダメなら、正式のMZヘッダ、電卓の先頭115バイトを付ければすり抜けられるでしょう。なぜなら、スキャナはそのように作られているからです。

では、これを脆弱性と呼ぶべきでしょうか。

2005年11月04日

シリコンジャケットで保護、となると放熱が気になりましたがBerettaのスライドのように平面部は露出しているので大体安心というものようです。

クッションで一部だけを支えるというのは衝撃対策にはよいでしょうけれども、放熱を考えると空気が介在するのでよくありません。冷えピタシートのようなジェル状のものでフローティングさせてケースに熱を伝達させるようなことはしないのでしょうか。

名古屋証券取引所もシステム障害、午前中の取り引きが中止に

東証のシステムの一部改造版とのことなので同じ問題が発生したのでしょうか。

gccの最適化

adcでまとめられるハズ、と思っていた部分ですがgccが既にまとめていました。面白いです。

下手に手で書かない方がよさそうです。adcしたあとorしているのがもったいないので、これは書き直しましょう。このタイミングではJISコードが入っているはずなので| 0x80 ではなくて + 0x80でも等価のはず。本当でしょうか。

タイトーのカードゲームに製造販売中止の仮処分申請

ムシキング特許を侵害したとして、タイトーが販売する「ダイノキングバトル CARD GAME」の製造販売中止を求める仮処分申請を申し立てたとのこと。

ちなみに、この「ダイノキングバトル CARD GAME」を開発したのは韓国のソフトメーカ。韓国で作る分には日本の特許には気をつかわなくてもよいかもしれませんが、それを日本に持ち込む時点で日本の知的財産権に抵触しないか確認しないといけません。しかし、ムシキング特許なるものがあるとは。

anthy.elで片仮名変換

ダイノキングがなかなか変換できなくてイライラ。半年ROMするつもりでしたが、リクエストすることにします。

2005年11月06日

瀬川晶司さん、プロ棋士に

二勝二敗で臨んだ第五戦。三勝目を挙げついにプロ棋士への編入試験に合格。

負けた方も何かとプレッシャがありそうですが、最近はソフトウェアにも負け兼ねない時代なのですから、ある意味アマチュアに負けても仕方がないかもしれません。

なんにせよ、これからは「アマ強豪」と奥歯にものが挟まったようないい方では無くて堂々と「プロ」を名乗れるわけで、素晴らしい。

2005年11月07日

Agile?

NAgileで始める実践アジャイル開発第二回の内容が、先日ローカルディレクトリブラウザ(仮)に文字コード変換を付けたときの思考に似ていたので興味深く思いました。

私がやろうとしたことは

というものです。変換元となる「各種文字コード」というのは

で、これらを同じインターフェイスで処理したいわけです。Shift_JISからEUCは簡単です。UCS-2やUTF-8からEUCは、計算で求められないのでテーブルを用意しなければなりませんが、変換テーブルを用意してしまえば簡単です。iso-2022-jpはエスケープシーケンスによるページの切替えがあるので厄介です。何からの状態遷移を用意しなければなりません。さて、どうしましょう。

ここで、「どうやって作るか」という方向に思考が固まってしまいました。

まあ、「どうやって作るか」ということを考えても作れないこともないのですが、できあがったものが妥当かどうか、判断するのが難しくなります。また、この時はどう作るのが正しいのかという評価基準も定まっていませんでした。

  1. nバイト読み込む。
  2. 変換する。
  3. 変換するには現在の「状態」が必要だ。すぐには変換できない。
  4. では状態を取得しよう。
  5. 状態を取得するためにはバイト列を読んでエスケープシーケンスを「変換」しなければならないのでは?
  6. いつまでたっても「変換」できない?

というような堂々巡りに入ったような気がします。ような、というのはもはや覚えていないからですが。昔のことは忘れました。Aの処理のためにBを呼び出して、その中でCの処理を呼び出すのだけどその実現のためにAを呼び出す? みたいな思考を展開していたら再帰してしまったのです。

再帰から抜け出すために考え方を変えました。「どう作るか」ではなくて「どう使うか」、むしろ「どう使いたいか」を考えることにしました。

理想的には、「変換!」と叫んだら、叫ばなくてもよいです、念じたら変換できるのがベストです。というわけで、こんな感じ?

do{
  変換();
}while(終わるまで);

というわけで、後はこの変換処理の中身を埋めるだけです。

結局、ローカルディレクトリブラウザ(仮)ではCharsetConvert()という呼出一回でできるようになりました。終わるまで繰り返し、というものすら省けた訳である意味理想を越えたことになります。

たかだか文字コード変換という些細なものですが、どうやって作るかという手順や手法だけ考えていたのではうまくいかないものです。何しろ、同じことをするにも実現手法というのはいくつもあるからです。どうやっても同じことは実現できます。こういう場合、手段から考えてもひとつにまとまらないことがあります。

私の場合は、「どうやって作るか」から「どうやって使うか」に考え方を変えた訳ですが、これが記事にあった「どうやって作ろうか」から「何を作ろうか」への変換に通じるものがあると感じました。使い方が定まれば、その使い方で使える「もの」が定まります。使い方が決まっていますから入出力のインターフェイスも決まっています。処理の内容と使い方が決まっているということは外部的な仕様が定まっているということです。後はその仕様を満たせるように作るだけです。

2005年11月08日

ロシア語で考えろ

/.jで、Firefox機能拡張開発コンテストとトピックが立ったのですが、「翼とかタイヤとかレーダーとかビームとか」とあったので「ロシア語で考えろ」のあれを思い出しました。

ですが、反応はデンドロビウムとかドリルというもので「ロシア語で考えろ」はもしかしてマイナ過ぎるんでしょうか。

翼、タイヤ、レーダーと言えば戦闘機だと思うのですが。ビームは無かったと思いますが映画は見ていないのでもしかしたら映画だとミサイルの代わりにビームを撃っていたりしたのかもしれません。

ディスプレイメーカのイーヤマが民事再生申し立て

まあ、製品が中途半端でしたから。

ナナオや三菱、SONYのように「せっかくだから赤の扉ナナオ製を選ぶぜ」というようなポジティブに選択される製品では無くて、「TOTOKUは買えないから」というようなネガティブな選択で選ばれる製品という印象があります。

値段の割には綺麗、というか同じ価格帯の製品の中では比較的よい画質だったとは思いますが。

というわけで「ナナオや三菱やTOTOKUやSONYが欲しいけども手が出せないからイーヤマ」というユーザが昔はたくさんいたのですが、今ではナナオのディスプレイもそれほど高くありませんし、画質を望むユーザはナナオや三菱のディスプレイに移行したのではないでしょうか。同様に、安さを求めるユーザは、もっと安いDELLやBenQのようなメーカに流れたでしょう。

安くもないけど画質が良いというわけでもない、そんな中途半端なポジションにいたのが運の尽きかもしれません。

最近はノートパソコンの売行きが良いですから、そもそもディスプレイは売れないという感じもします。

qemacs

面白そうなのでコンパイルしてみましたが、そのままではコンパイルが通らない上に、-O0じゃないと動きません。

gcc 4.0.2だから?

qe_init()から呼び出す、init_all_modules()がかなり黒魔術で面白いです。問題はこれがセグメンテーションフォルトを起こしてしまうところですが。

2005年11月09日

朝から雪。

software suspend

ハイバネーションもレジュームもできるのですが、その後にPCカードの抜いたりさしたりすると停止することが。今日もしっかりと停止。APM周りとIDEの割り込み関係が怪しい雰囲気。

2005年11月10日

晴れ

今朝は昨日とはうって変わって晴れ。

マクドナルドがホットスポットに

Yahoo!のBBモバイルポイントが日本全国のマクドナルドに設置されるとのこと。ついついフレッシュネスバーガーかモスバーガーに行ってしまうのであまりマクドナルドに行くことは無いのですが、こうした利点があればマクドナルドに行くかもしれません。

味噌ラーメン

逆転裁判(1)をプレイしていたら味噌ラーメンが食べたくなりました。

先日まで逆転裁判(3)をプレイしていたので、木槌の音質などが気になります。かなりサンプリングレートが変わっている雰囲気。1から3では操作性も改善されています。

にしても、トノサマンはいいなあ。

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

importでスクリーンショットを取りまくってWindowsのAnimation Shop ProでアニメーションGIFに。アニメーションGIFもImageMagickで作ればよさそうなものですが、いまいち使い方を解っていないので手作業。

2005年11月11日

GPL

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

この項目が気になっています。

ライセンスで明確に許諾された行為を除き、プログラムの複製、変更、サブライセンス、頒布を禁止します。ここまでは良いのです。

次の、Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License.がひっかかります。

その他のプログラムを複製、変更、サブライセンス、頒布しようとする行為は無効です。また、自動的にこのライセンス(GPL)による権利は消失します。この「その他の行為は無効」というのがよくわかりません。解りたくないのかもしれません。

GPLとBSDライセンスのデュアルライセンスで提供しようとした場合、その他の行為、つまりBSDライセンスに基づく複製などの行為が無効になるのか。なぜGPLがそんなことを規定できるのか。GPLで頒布しようとするとGPL以外のライセンスは適用できないのか。

このあたりはどうか意釈したら良いのか理解に苦しみます。実際にGPLとBSDライセンスのデュアルライセンスだったりするものもあるので。英語の読解力の問題かもしれません。

千葉銀行に届けられたのはCD-ROMではなくてCD-R?

Re:config.sysによると、千葉銀行に届けられたCDはCD-ROMではなくてCD-Rだった見込みが高いとのこと。専用のプレス機が必要なCD-ROMと、私でも作成できるCD-Rとではお手軽度が段違いです。どうしてこの違いを報道しないのでしょうか。

まさかCD-RとCD-ROMの見分けが付かない訳でもないでしょうに。

2005年11月12日

LinuxとWindowsとの名前解決

Linuxで動かしているFIVAとWindows XPで動かしているVGN-T90とで名前解決させるにはどうしたらよいのでしょう。今まではIPアドレス指定でsshしていたので困らなかったのですが、Xも飛ばそうと思ったらxauthが名前で判断するようなので名前解決しなくてはなりません。

そういえばAthlon XPをsmbmountするときにはIPアドレスではなくてホスト名で処理できているので、その辺りに鍵が?

でもXを飛ばしてもCygwinのXでは日本語が表示できていないので使い道が限られるような。理想としてはEmacsをWindowsに飛ばしたいところですが。

2005年11月13日

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

~/.dfx/keysファイルに、実行コマンドを直接記載できなくなっていた不具合を修正。したものの、何か忘れているような気がしてならない。なんでしたっけ、と考えていたら引数つきの内部コマンドについての処理が抜け落ちていました。とりあえず動くようにはしたものの、毎回毎回コマンド文字列の組み立てと解放処理が入るのが処理速度的に不満。

引数無しの内部コマンドに付いてはコマンド文字列を未設定にしておくことで回避するように仕組んでいたのですが、今突っ込んだ暫定処理はとにかくコマンド文字列を設定しておくことで引数の判定処理をさせようというものなのでよろしくありません。わろし。

2005年11月14日

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

内部コマンドとか外部コマンドの処理を見直して再テストしていたらメモリリークとダブルフリーを発見。

文字列管理構造体の仕組の悪さ、というか手抜きが見えてきました。

と思ったらStr_Free()の第二引数は常に0だし。気にしなくてもいいかも。

指摘録音補償金制度の見直しが先送りに

CNETの記事によると指摘録音補償金制度の見直しは今回結論を出さずに見送ることになったとのこと。

これがよい方向なのか悪い方向なのかは今すぐには判断できませんが、個人的には複製する自由が金で買えるのであれば補償金制度があっても良いし、DRMやコピープロテクトで縛ろうというのであれば、それは指摘複製権が侵害されているのですから補償金を払う筋がないと考えています。

manファイル

行頭の.が書けなくて書けなくてどうしたものやら、と大変悩みました。正解は「\&.」。&が必要でした。

otaba

やっと登録手続きを済ませました。しかし、ユーザ数はおそらく3,000人程度だと思うのですがここまで遅いというのも不思議。

2005年11月15日

XtPopup()と格闘

やりたいことは、XtPopup()でマップするダイアログシェルの大きさを知りたい。たったこれだけのことなのですが、うまくいきません。

XtQueryGeometry()を呼ぶとまだリアライズされていませんからXtGeometoryNoが返ってきてしまいます。XtPopup()を呼んでからだとサイズが取れますが表示されてから瞬間移動するようになってしまいます。

リアライズせずにリアライズしたときのサイズを知る術は無いものでしょうか。

XtPopup()と格闘、勝利?

あれ、XtRealizeWidget()したあとにXtPopup()したらエラーになったと思いましたが、ならないようです。ちゃんと座標も取れてるし。勝利?

XtRealizeWidget()

手がうっとりしててXtResizeWidget()とか書いてました。ふふ。

emacsから使うiTunes

スクリーンショットに「松崎しげる Time 愛のメモリー」が表示されているのが個人的にツボ。

しかし、sshでリモートログインしながらというのはどういうシチュエーションなのでしょう。外出先から自宅のMacにリモートログインして、自宅のiTunesの選曲を変更するという操作に一体何のメリットが。嫌がらせ?

遠隔操作で嫌がらせといえば、私を含めて3名がCZ-613Dというディスプレイを所有していたことがあります。おかげで通りすがりにリモコンでチャンネルを変えたり電源を消したりという嫌がらせが可能でした。

2005年11月16日

heliwm

超シンプルなウィンドウマネージャ。

ウィンドウ管理以外のことは一切しないという潔さが素敵です。

これに加えてFluxboxのルートメニューというか、ランチャがあればとても使い易いのですが、ランチャは別途用意するのが流儀でしょうか。

SONY BMGのrootkitがインストールベースは56万台以上(http://www.itmedia.co.jp/news/articles/0511/16/news026.html)

日本のマシンは26万台を超えるそうです。日本国内にはXCPが使われたコピープロテクトCDは販売されていないという話なのですが、どうしてこのような結果になったのでしょう。

記事に依るとupdates.xcp-aurora.comなどへのDNS問い合わせをカウントしたようです。

サイボウズのrootkit問題

検出ツールの誤検出だったとのこと。当初の報道では進入経路がはっきりしないなど、いまいち釈然としませんでしたが誤検出ならなんとなく納得。

自作携帯電話

オープンハードウェアの悪夢再び。

勝手に作ったとして、認可は下りるのでしょうか。それとも、認可済みのキットがある?

2005年11月17日

XtMoveWidget()

manを引いたらXtMoveWidget()が出てくるにもかかわらず、コンパイラが警告を出してくるので不思議に思っていたのですが、なんとこの関数、Intrinsic.hではなくてIntrinsicP.hで宣言されていました。

何事かと思ってXt FAQを読んだところ、XtConfigureWidget()系関数はX Intrinsics内部で使用するものであって、アプリケーションが呼び出すものではないそうです。んがー。

では座標やサイズはどのように設定するのか、というとXtNx/XtNyリソースをXtSetValues()で変更しろとのこと。そういうものですか。

ちなみにCygwin/XではXtSetValues()でリソースを書き換えても反映されないという謎の現象が。しかし、XtMoveWidget()だと動かせます。無駄な時間を費しました。

ライセンス

ソフトウェアのライセンスが明示されていないと使いにくい、という話を読んだのでとりあえず著作権法に照らして書いてみたり。

2005年11月19日

GPL

やっぱり第四項、第五項について理解が足りないようです。たしかにMySQLやQtはGPLと非GPLの複数のライセンスで頒布されていますが特に問題視されていません。なぜそのような解釈が可能なのか。

第五項にある

You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works.

この部分、「あなたはまだ契約していないのでこのライセンスを受け入れる必要はありません。しかし、他にこのプログラムや派生物を改変したり頒布する権利を与えるものはありません。」とあるのは、他のライセンスが存在することを否定するように思えてなりません。

ローカルディレクトリブラウザ(仮)のテキストビューア

バイナリファイルを見ようとすると無限ループする現象が。

Tabコードを探している内にmblen()が-1を返してポインタが戻ってしまうのが敗因。

2005年11月20日

ローカルディレクトリブラウザ(仮)のテキストビューア

mblen()で-1を返してきてもなんとか乗り越えるように書き直してみましたが、バイナリファイルを開くとものすごく遅い。

もう寝ます。

DFスレ

気分転換にDFスレを覗いたらネタがあったので着手。

スレに出てきて30分後には実現なんかかっこいい! と思った午前二時。スレの書き込み時刻が午前一時。一時間も経ってるし。ちぇ。

ローカルディレクトリブラウザ(仮)のテキストビューア

目が覚めたら、Tabコードを探すのにマルチバイト処理はオーバスペックなのではないかと思いつきました。思いついたので即起床。というわけで単純にp++;みたいな感じで処理させたら体感的にはそれほど速度が落ちません。これで行きましょう。

改行コードを探すために一度スキャンしているのですから、その時点でTab文字もスキャンしておけば良いのですが、どこにTab文字があったかを覚えておくのもアレなのでとりあえず描画する度にスキャン。

MX500

カバーというか、あのスポンジはどうしてこんなに外れやすいのでしょう。

2005年11月21日

finger frenzy

VAIO type Tだと4.2秒だったのでクヤシイ思いをしたのでデスクトップにつないだRealForce 89Uでリベンジ。

2.422秒よし。

カルピス

どう見てもカルピスです。

本当にありがとうございました。

Clieがハングアップ

Clieというか、実際にはAudio Playerが操作不能になっただけでPalmOS自体は動作していたようですが、稼働していたAudio Playerを終了させられなくなった上に電源も切れなくなりました。なぜ動作しているといえるかというと、音楽再生は通常どおりできていたからです。

以前、バッテリが持たなくなったことがありましたが、これが原因でしょうか。推測ですが、Audio Playerで再生している極が切り替わる瞬間にHold状態から復帰させるとAudio Playerの再描画あたりで停止するようです。

職場に着いても音が止まらないのは困るのでソフトリセット。

Clieがハングアップ #2

何事もなかったように見えましたが、ファイルがひとつ読めなくなっていました。再生不能。

BOOK OFF Online

ONなのかOFFなのか。

レジスト

登録を意味するレジストという単語は英語には存在しない、というのは事実ですが英語ではなくて日本語なのでは。

何しろパーソナルコンピュータがパソコンと省略され、いまでは「パソ」とまで略されてしまうのです。日本人の「小さくしよう」という心意気は並ではありません。

「パソコン」ですら略されるのです。「レジストレーション」なんて長すぎです。とりあえず4文字程度に略してしまおうという心理が働くならば、「レジスト」になってしまうでしょう。

関数名に「regist」と書いてあるのがよろしくない、という話ですが関数名や変数名のような識別子があまり長いのも考え物です。registerとregistでは2文字しか違いませんが。ちなみに、WindowsのRegistry操作関数にはregisryなんて長いプレフィクスは付いていなくて、RegOpenKey()のようにReg〜という形式です。RegistryOpenKey()では長すぎる、ということでしょう。

registerとregist程度なら省略形といって通せるのでそれほど恥ずかしくはないのです。恥ずかしいのはローカルディレクトリブラウザのソースにあるsplitとspritの間違いのようなものを指すのです。

気づいているなら直せよ、というのは置いといて。しかもいまだに手がうっとりしてspiritとか入力することがあります。spirit window。訳が解りません。魂を込めた、ソウル溢れるコーディングを目指します。

INTEL CORE

CPUの展開語がCentral Processing UnitからCore Processing Unitに変わってしまうのではないかという気がしました。

2005年11月22日

かな入力

満足にかな入力をさせてくれるのはcannaくらいしかないようです。無念。

ローマ字入力しかできないのであれば、開き直ってSKKをインストールしてみました。

ローマ字入力の打鍵数の多さに割とげんなり中。

2005年11月23日

uimでカタカナ変換

anthy.elはもう古い、これからはuimだ、みたいなことを言われたのでuim.elでかな漢字変換をしてみようと。

しかし、uimでも後からのカタカナ変換はできませんでした。調べてみるとanthy-make-whole-sringで現在が仮名入力かどうかを判定して仮名入力の時には変換しないような処理になっています。何か不都合があるのでしょう。

anthy-make-whole-sringで参照しているリストを見てみると、ja-kana-hiragana-ruleとja-katakana-ruleと分かれていて、かつマージする予定だということなのでどういう形になるのか見てからではないと着手できそうにありません。

というわけでuimに手を入れるのはタイミングとしても、処理の内容としてもなかなか難しそうなのでanthy.elに手を入れる方向に戻ります。

anthy.elでカタカナ変換

注目文節をカタカナにする、というのはできました。ただ、変換結果をコミットしてしまうのか注目文節が移動してしまいます。

後はプリエディットをカタカナにする、というところですがanthy-set-string()が文節の区切りで行ってしまうようでもうすこし良く読まないと何がなんだか。

単に、spilitterがいつ文節を分解しているのかが解っていないだけですが。

USBキャプチャ

表示遅延が0.07秒なのでアクションゲームにも対応できるとのこと。本気でそんなことを思っているのでしょうか。

最小0.07秒ということは通常はもっと遅れるのでしょう。

通常のアクションゲームだと1フレームは1/60秒です。つまり0.16秒。0.5フレームの遅れはお話になりません。私のようにぬるいプレイヤならともかく、1フレームで合わせてくるバーチゃファイタには役に立ちません。

イヤホン

オーディオテクニカのATH-CK5の遮音性が気に入らないのであきらめて3つめのMDR-EX71SLを買おうかと思ったのですがケンウッドから新商品が出るそうです

見た目ではかなり遮音性は期待できそうです。15,000円という価格がネックですが。MDR-EX71SLが4つ買えます。

さらにオーディオテクニカからも新製品が。

2005年11月24日

PDA

キーボードが無いと使いにくいです。

今時の手書き入力なら大丈夫、とおっしゃる方もいますが、手書き入力でAからZまでの26文字を2.4秒で書けますか?

新幹線、中国へ

「ノウハウと技術を掻っ攫うけどよろしく!的契約」なんて紹介されていますが、「技術を掻っ攫う」ことがいけないことなのでしょうか。オープンソースというのは、技術を公開する、流布させる性質が高いものです。ことあるごとにソースを公開することを望む意見が多く出てくる/.Jという場では、新幹線の技術公開につながるこの動きは歓迎されるものだと思っていました。しかし、逆に技術流出を懸念するようなコメントが寄せられています。なぜでしょうか。

「列車事故を起こした場合の補償」というのも、オープンソース製品を採用した場合のサポート契約みたいなものではないでしょうか。割りに合わないと思えば契約しなければ良いだけですし。

中国だからネタになるのでしょうか。例えばドイツ、EU、ロシア、韓国だったらどのような反応だったのでしょう。

2005年11月25日

Linux 2.6.14.2 と software suspend 2

2.6.14.1での変更はsysctlでOopsするというもので、私の使い方では特に問題が無かったので放置しました。というか、software suspend2を当て直すのが面倒だったりとか。

2.6.14.2では修正箇所がかなり多いのであきらめて入れ直すことに。

software suspend2も2.2-rc8を入れたのがrc11になってました。

software suspend2は綺麗にあたらなかったので、patch -R でも取り外せませんでした。しかたがないので、改めて2.6.14のソースを展開してそれに2.6.14.2のパッチをあて、software suspend2のパッチを当てました。rc8とは違い、今度はrejectされることもなくすんなりと。

あとはcyrix.cにパッチを当てて終了。

HDDにアクセスしている最中にACアダプタを抜いたり差したりするとSeekCompleteErrorがでることがあるので、CONFIG_IDEDISK_MULTIMODEをyに。IDEドライバの問題かもしれないので、CS5520ドライバも組み込みに。

檸檬

インクが無くなりました。意外と早い。

2005年11月26日

Linux 2.6.14.3 と software suspend 2

って昨日付けで2.6.14.3とsoftware suspend2 2.2-rc13がでてるし!

2005年11月27日

Walkmanの気になるところ

文字にアンチエイリアスすら掛けていないのは手抜きじゃありませんか?

iPodは綺麗にアンチエイリアスを施して小さいディスプレイでも文字を読みやすくしているのに、SONYは何を考えているのでしょう。アンチエイリアスを掛けない方が読みやすいとでも思っているのでしょうか。

SonicStageの気になるところ

複数の曲を選択するのが面倒です。Sonic Stage 1.5から3.3まで使ってますが一向に改善されません。

動作はよくあるWindowsのリストボックスと同じです。クリックするとその項目、つまり曲が選択状態になります。Shift+クリックで範囲選択になります。個別に選択しようと思ったらCtrlキーと組み合わせる必要があります。しかも、途中でCtrlキーを押し忘れたら、それだけで破滅します。

CDを聞くために選択するボタンが「音楽を取り込む」というのもすごいセンスです。

SONYの中の人はSonicStage、使ってないのでしょうか。使ってないのでしょうね。

2005年11月28日

ビキニカラテ再販

きたー。っていうか来るなー。

Cygwinで日本語

今日試したらすんなり表示。なぜできないと思い込んでいたのか不明。

これでCygwinでもM+のビットマップフォントが。

サウスブリッジの消費電力

SonomaプラットフォームからNapaプラットフォームに移行するにあたりサウスブリッジの消費電力が激減しているという話。激減といっても1.5Wから0.6Wと、1/3程度。

以前、ICH4からICH6(Sonomaのサウスブリッジ)に移行した時点で10〜20倍の感覚で電力を使いますという話があったので、仮に10倍になったとするとICH4は0.2W以下だったのでしょう。

2005年11月29日

携帯電話新規参入

電話機自体は珍しくもないので、サービスでどのように差別化するのかというところに興味があります。

個人的に面白いだろうと思うのはNintendo DS対応。DSからは普通のWiFiに見えるけども実は携帯電話網に接続できるというメディアコンバータなんてどうでしょう。通信対戦ものでなければレイテンシにはそれほど神経質にならなくても良いですし。

2005年11月30日

嫌な馬鹿と好ましいバカ

嫌な馬鹿好ましいバカ
発想がずれてる発想がずれてる
発想が予測不可発想が予測不可
自分から行動しない行動も予測不可
自分から行動しない自分から率先して行動する
文句は言うが何もしないむしろ文句を言われる方
周りを巻き込む周りを巻き込む
自覚していない本人が一番よく自覚している

クレバーかバカかにかかわらず、私自身は「行動する人」好む傾向にあることに気づきました。

行動するバカに巻き込まれたトラブルは、後になると笑えるものが多いのですが行動しない馬鹿に巻き込まれたトラブルは思い出すと腹が立ちます。

外付けバッテリ

携帯機器の電源として使用できるバッテリ。価格は26,000円とちょっと高いようにも思えましたが汎用性と、500回充電できるということで1回当たり52円ですし汎用性も考えると妥当なのかも。

記事ではAC電源として使用可能とありますが、交流では無くて直流ですよね、多分。

380gと割と軽いのですが、容量はどのくらいなのでしょう。

東工大のスパコン

このほか、メモリは21.4TB以上、HDDは1.1PB(ペタバイト:テラバイトの1,024倍)以上、ネットワーク性能は13Tbpsなどの仕様となっている。現行の一般的なノートPCと比較し、演算性能が約60,000倍、メモリ容量が約40,000倍、HDD容量が約14,000倍、ネットワーク性能が130,000倍という。

演算性能の割りに記憶容量が増えないのが不思議です。個人的には演算性能の二乗で増加してほしいものです。演算性能があがればその分広い領域の演算ができるので。

4MHz64KB
8MHz256KB
16MHz1MB
32MHz4MB
100MHz40MB
200MHz160MB

このようにスケールしていけば、今時は10GBのメモリを載せていてもおかしくないのですが・・・。

MMX Pentiumの頃から急にメモリ容量が増えなくなりました。アドレス空間が狭いとか、HDDにスワップできるとかいろいろな要因があるのでしょうけども。


トップを狙う

Copyrigiht © 2005 びい