2002年1月の日記。

counter

一覧。


2002年01月01日

Tricksterの家に移動。

DF

BITMAPINFOHEADER::biSizeImageが0になるということを想定してなかった。なんと。

Tシャツ

帝宅に移動。

2002年01月02日

特訓

Athlon 1.2GHz GeForce31500fps
Dulon 900 謎のオンボード950fps
Pentium !!! GeForce2(DELL)1400fps
Cerelon 650MHz i815EP内蔵VGA1900fps

2002年01月03日

排気ガス

何食ったらそうなるのだ。

画面解像度

800x600でも1024x768でも狭いことには変わりない。Wordで作文する時には大差無い。Excelだとちょっと違うけど。

まあ、絵を描く時には1ドットでも広いほうが助かる。

特訓

敵の弾射出クラスを作っていなかったので面倒なことこの上ない。

このままでも作れないことはないけど、作りなおすか。

2002年01月04日

帰宅

某様邸宅を辞して帰宅。高速バスで3時間。H氏に停留所まで送ってもらうことになる。

出る直前になって眼鏡をかけてないことに気付く。そろそろ買い替えてもいいのだけれども、今は正月休みで店が営業していないのでダメだ。っていうか、休み明けから千葉に行くので間に合わない。眼鏡を確保する必要がある。ってな感じでわたわたと捜し回る。

バスに乗る。SRXでMP3を聴きながら移動。調子に乗ってコーディングしてたらバスに酔ったのでSRXはバカデカいMP3プレイヤーと化す。

バスに乗ってから3時間後、札幌到着。バッテリ残量65%。

OSはあと4時間30分活動できると報告。FIVA101だと負荷がかかりまくる処理でもSRXだとほとんど負荷にならないようだ。これでもう少し小さかったらなあ。

MP3の再生とエディタでの入力作業、どちらが負荷が高いかといえばMP3のほうが負荷が高いような気がする。タイピングしててもC3ステートに移行するけど、MP3を再生していればC2に移行するのが精一杯でさすがにC3には入らない。

液晶のバックライトの消費電力がどのくらいになるかがポイントになりそうだ。

帰宅途中、「愛のうた」を見つけたので購入。

車酔いで胃の調子が良くないので晩ご飯はカレー。

2002年01月05日

Paint Shop Pro 7J

年末にWebから注文していたPaint Shop Pro 7J到着。ユーザー向け優待販売。

Webから注文する時に、クレジットカードの番号を間違えてて、問い合わせの電話を頂いていたのだけど、この時の電話が何ともいえなかった。

担当の方曰く、

年内の発送は終わってしまったので年内には間に合いませんが、お急ぎですか?

というのだ。急いだらどうなるのだ? っていうか、8日には千葉に移動するのでそれまでに間に合えばいいのだけど。というわけで、急いだらどうなるのか訊いてみた。

今からだと年明け1月7日の発送になってしまいます。

急いでも変わらないのか。なら訊くな。

という感じの回答を頂いてぐんにょりしたのでなげやりに「それでいいです」的な返事をして打ち切ったのだけど、届いた。千葉行きには間に合ったものの、どうしろと。

絵でも描くか。

2002年01月06日

HDDの整理。

お好み焼き

「広島風お好み焼き」と「お好み焼き」の違いを知る。

DF

DFの開発日記を更新しておく。

2ちゃんねる

090 01/12/23 05:16 名無しさん@お腹いっぱい。

卓駆★→だいな→あふ→DF

ファイラー使ってますか? >>90より

099 01/12/23 23:28 名無しさん@お腹いっぱい。

>90

だんだんマニアックになっていってるのにワラタ

ファイラー使ってますか? >>99より

ぐはっ。

PIM

IrDAで同期取れるのは便利だけど、PIMの使い勝手はPalm m100よりもPocket CALEIDのほうが便利だ。

ほとんどは付属アプリを捨てて、代替するソフトウェアを使えばでカバーできそうな気もする。

CALEIDと違って、アプリからスケジューラとかToDoのデータをいじれるみたいなので、解決策があるのは有利かも。

でもCALEIDにIrDAついてくれたほうがうれしいなあ。付けてくれないかなあ。メーる機能なんか要らないから。

ってな感じでちょっとCALEIDの画面を撮影しようとしたら電池が切れた。m100もそうだけど、単四電池なので切れてもコンビニで買えるのが助かる。Ni-MH使っているのでとりあえず充電する。

2002年01月07日

買い出し

お買い物リストをCALEIDに突っ込んで外出。

STAEDTLER

文房具を見に大丸藤井セントラル(パルコの東側)に行く。

STAEDTLERの芯ホルダー、Marstechno メーカー廃番。同じくSTAEDTLERの芯、Mars-Lumograph B3,B6廃番。代替製品は出していないようだけど、どうなっているのだろうか。もしかしてヤバイ?

もっとも私は芯ホルダーは使っていないので直接的な影響は無いけど、STAEDTLERが無くなるのはちょっち寂しい。

かばん

ついでにノートを入れるかばんを物色してみたものの、めぼしいものは見つからない。LAGASHAのB5サイズのがちょうどいいかと思ったけど、ノート入れたらそれでいっぱいになりそうだったのでヤメ。ノートとCOOLPIX 800が入ってくれないと困る。後はコクヨのノートとか筆記用具も入ってくれればなおよし。ジッパーついてて、かぶせで、ショルダーで、というのがなかなか見つからない。

ポストホビー

ポストホビーに行ったらKSC製品が置かれてなかった。

なんでも夏くらいから置いてなかったらしいけど、その頃にはまだあったような気がする。ここしばらく来てなかったのでよくわからない。

WAのブレードマスターを薦められた。

グリップした感じは、実銃を思わせるものがあって割とナイス。

でも、いまいち気に入らない。シングルアクションオンリーなのはナイス。でもセフティが普通のアレなのは頂けない。デコッキングしないのが救いか。シングルアクションオンリーなら、セフティはフレーム側に欲しかった。スライド側にあると抜いてすぐにセフティを外す、ということができない。

KSCのグロックを見せて欲しかったのに、無いので仕方がない。他に観るようなものはなかったのでリリアンに持たせるXM-177E2を買う。M4とセット。

そういえば未だに1/6サイズのHP Mk3は見付からない。リリアンにHPを持たせてもう一度「リリアンのHP」とやりたいのだけど。

で、ボークス素体のリリアンに持たせてみたら異様に小さく見える。手と比較するとそれほど縮尺が合わないとは思えないのだけど、ボークスの素体は手足が異様に長いので小さく見えるのだろう。

というわけでしまい込んでいたニニー復活。服が無いのでスクール水着にエプロンというどうしようもなくダメな状態だったので秋葉のゲーマーズで買っておいたアゾンのセーラー服を着せておく。

もう少し普段着っぽいのも作ってくれないものか。セーラー服と体操服と水着ばかりっていうのはちょっち。

で、M4の方をいじっていたらマウントが上下ではなくて左右に付いている。ダメじゃん。これじゃRISつけても横にでっぱる。これはこれで便利かもしれないが。ザクマシンガン。

2002年01月08日

IBMのThinkPad s30開発者インタビュー

買い物

シャーマンキング「brave heart」購入。

ダイアルアップ

いつもはスタートメニューからダイアルアップコマンドを実行していたのだけど、たまたまコマンドプロンプトで作業中だったのでrasdialでダイアルアップした。

どこをクリックしろと。コマンドプロンプトに詳細なんて無いっちゅうねん。

千葉行き準備

わたわたする。何持っていこう。

気がついたらHDDの空き容量が2GBくらいになっていたので余計なものをデスクトップに待避する。つーか、余計なものありすぎ。

4GBくらいコピーする。LANを100Base-TXに変えといて良かった。

WaveGene

WaveGeneという、選択した波形で選択した周波数の音を鳴らすツールを見つけた。

試しに鳴らして見たら、10kHzの音は聞こえるのに16kHzの音が聞こえない。

私、22kHzまで聞こえていたはずだが、耳が悪くなったのか?

にしてもイキナリ半分以下というのもおかしすぎる。

SRXの内蔵スピーカーだからか?

2002年01月09日

手荷物チェック

ひっかかる。

SRXの投影面積が大きすぎたのか、「パソコン取り出してから再検査させてください」とか言われた。FIVA 101だとこういうことは無かったのになあ。

まあ、こうでもしないと金属ケースに拳銃突っ込んだりしたケースに対応できないのだろうから仕方がない。

SRXの意外な欠点。

brave heart

CDExでリッピングしてエンコードしていたんだけど、なぜかRIFF形式 MP3になっていたのでWyvernで再生できない。んがー。

一緒にエンコードしていた「feel well」(スレイヤーズ ぷれみあむ)は普通にMP3になっていたのになあ。なんかキー間違ったかな。

RIFF形式MP3を普通のMP3(ってこういう言い方が正しいのか知らん)に変換するツールって無いのか。音質の劣化しないほうがいいけど、帰ってきてからエンコードすればいいkので無理ならあきらめる。

つーか、こういう使い方ができないCDを売るのはやめてくれ。CDというカーボネイトの円盤が欲しいのではなくて、曲データが欲しいわけだ。にも関らず利用できない形式で曲データを売られてもうれしくも何ともない。ゴミ。

出張時にCDプレイヤーとCDまで持ち歩くのは面倒だ。とは言いつつ、KXL-808AN持ってきたけど。

KXL-808AN

で、思い出したけど、KXL-808ANはWindows XPには対応させない模様。月刊ASCIIの付録にWindows XP対応ハードウェア、ソフトウェアの一覧みたいなものがあってソコに対応予定無し、という感じのことが書かれていた。

まあ、Windows 2000のドライバもβのままだし。

WaveGeneリベンジ

MP3を聴くためにMDR-EX70SLを取り出したついでに、昨日敗北したWaveGeneにチャレンジ。

16kHzは聞こえた。内蔵スピーカーの問題だったらしい。

20kHzはノイズにしか聞こえない。サンプリング周波数かWaveデバイスの問題か。それとも耳か。

下限は20Hzまでしか試せないようだけど、これも聞こえた。

しかし20kHz位から聞こえないのか。道理でCDからリッピングしたWaveとエンコードしたMP3を効き比べてもビットレート192bpsあたりで違いがよく判らなくなるわけだ。

そういえばMDR-EX70SLの再生周波数レンジってどのくらいだっけ。もしかしたら上限20kHzだったかもしれず。

暖房器具

会社で用意している寮という名のアパートに入る。

で、夜も更けた頃寒くなってきたのでエアコンON。あれ、暖かくならない。よく見たら冷房専用とか書いてる。

以前使った別の部屋では冷暖房対応だったのに。

一晩耐えきって、明日暖房器具の所在を小一時間問い詰めることにする。

2002年01月10日

暖房器具

寒くて眠れない。

なんで屋内で布団にくるまってガタガタ震えなきゃいけないのだ。

結局、眠れたのは6時頃。気を失ったという説もある。

で、8時には目を覚ます。寒くて。

一晩くらいなら堪え切れる、と思っていたら結局堪え切れず38度の熱を出してしまう。

早退して病院に行く。

2002年01月11日

LOOXのとか、N200のとか無いものか。

風邪

一回休み。

風邪にはビタミンだっ! ということでオレンジジュース飲みまくり大会。

Takaraの「豊熟果実みかん」が割とおいしい。なっちゃんはあっさり風味でこれもまたよし。

って2リットルも飲んだら他のは飲めないので飲み比べにはなっていないような気がする。

2002年01月12日

風邪

寝て過ごす。

何もしてない。洗濯、掃除くらいしたほうがいいような気もする。

あ、食事してない。

2002年01月13日

食事

ということで、コンビニに。

食欲が出てきたので米の飯〜とか思っていたら、米の飯が無い。病人に食わせる飯はないとでもいうのか。残念な思いを堪能する。

米が無いなら麺を食べればいいのよ、ということでパスタ。

「わかやま 紀州みかん」を買ってみる。でも品名には「うんしゅうみかんジュース」って書いてある。「紀州」って「うんしゅう」と読むんだっけ? 読まないと思っていたのだけど。

味は、おととい飲んだものに比べると酸っぱい。さすが果汁100%。でも濃縮還元。

ラベルに書いてある

温州みかんストレート果汁を混合したみかん100%ジュースです。

という文面に違和感を感じる。

書き換える。

ブラジル産ストレートコーヒーをブレンドしたコーヒー100%飲料です。

違和感の元が判ったような判らないような。ストレート果汁だとか100%と言いつつも実はブレンドというあたりに違和感を感じているのだろうか。

DFの位置指定

フォルダ、ウィンドウ位置、ウィンドウサイズ、を指定して 開けて、出来たらマスクを指定できるやつ。

ファイラーを語ろう Part4 >>732より

このくらいならすぐ…かな? できなくはないし、あっても良さそうなので付けましょう。

あ、起動時のマスク指定はは面倒なのでやらないかも。少なくとも、今はやらない。後でやるかも知れない。

2002年01月14日

DFの位置指定

完成。久しぶりに気分よくコードが書けたような気がする。

コードを小さくする努力をしたら正式版にしてしまおう。千葉にいるあいだはそんなに手間掛けられないし。

というか、SRXにVisual C++をインストールしていないのでテストに手間がかかる。FIVAPMのことを考えるとFIVAにはVisual C++をインストールしておかないといけないのだけど、ライセンスは一つしかないし。

WATCOMのデバッガだと時々ブレークしてくれないんだよな。あと、ブレークポイントの設定を記録しておくのが手動だったりして。この辺はソースが公開されたらデバッガをデバッガにかけてみよう。

…これくらい手間がかかるほうがテストに手を抜かないんじゃないのか?

MP3

ぼーっとしながら聴いていると林原めぐみさまのハイトーンがひずんで聞こえる。

エンコードする時にはベースとバスドラムがちゃんと聞こえるか、というところに気を取られていたので気付かなかった。帰ったらCDと聴き比べてみよう。

外出

映画を見たくて柏まで出る。どの駅に何があるのかさっぱりわからないけど、JRの駅に柏方面などと書いてあったりするということはそれなりに大きいのではないかと。

まあ、今いるところに比べれば店も多かったりして、それなり。

でも道に迷って映画館は見つからず。

結局

を購入して帰ることにする。

晩ご飯

松屋でカレー。うっかり大盛りにしたら割と量が多くて参った。

DFの位置指定

気分よくコードを書いたら間違ってた。

2002年01月15日

DF ゴミ箱

DFでゴミ箱送りにするときに確認のダイアログはWindows任せにせずにDFが出してくれたら速くていいかも。ってできるんだっけ?

裏夜食日記 2002年1月13日より

できますがやってません。そういうフーには作っていません。

ダイアログを自前で出しても、遅いのはシェルのナニの問題というか仕様というか制限なので削除が終わるまでの時間は早くならないような気が。

DF 切断

切断機能が動いてない。

いや、前から動いてなかったんだけどまれに動いていたのでてっきりWindows 98だからこんなものか、という程度にしか考えてなかった。

Windows XPでも動かないとなるとこちらの問題なので(っていうかWindows 98で動いてなくてもこっちの問題であることが多いのだけど)調べる。

ダイアログに渡すパラメータを増やさないといけないことが発覚。んがー。

DF 接続

アクセス権のないディレクトリにカレントディレクトリを変更しようとすると無限ループしやがる。

という感じにしていたら、WNetAddConnection2()が成功したと返ってきている。こうなるとDFは接続できたと思いこんでいるからSetCurrentDirectory()を試みる。失敗する。何かの間違いかと思って再度WNetAddConnetion2()を試みる、という流れ。流れてないから回転。

よくわからないけど、ディレクトリに対するアクセス権というのが接続権と参照権みたいなのがあるんだろうな。unixでいうところのr権限とx権限みたいな。

NTFSにもあったような気がするけど忘れた。WRCFのどれが該当するのだろう。

2002年01月16日

ラグナロク

5時頃、電車の音がうるさくて目を覚ます。

眠りに入ろうとするタイミングで電車が来るのでラグナロクで時間をつぶす。

8000Zenyまで貯ったけど、アークワンドは13000Zeny。まだまだだ。

DF ダイアログ

昨日、ダイアログパラメータを増やした時、トレースしにくいのでコンボボックスのサブクラス化をしないでテストしていた。

うっかりとそのことを忘れてアップロードしてしまい、コンボボックスでキーを押しても何も起きないバージョンになってしまった。

お仕事

風邪引いて休んでいたおかげで3日遅れ。

テストで手を抜くために、テストするためのプログラムを書く。

思ったより手間取って半日仕事になったけど、残った半日で予定の倍のテストができたので吉。

元のテストプログラムがひどい作りだ。


if(strcmp(str, "command1") == 0){
    ret = func1();
    if( ret != 0 ){
        /*  エラー処理がある  */
    }
}else if(strcmp(str, "command2") == 0){
    ret = func2();
    if( ret != 0 ){
        /*  上のと同じエラー処理がある  */
    }
}else if(strcmp(str, "command3") == 0){
    ret = func3();
    if( ret != 0 ){
        /*  上のと同じエラー処理がある  */
    }
}else if(strcmp(str, "command4") == 0){
    ret = func4();
    if( ret != 0 ){
        /*  上のと同じエラー処理がある  */
    }
}else if(strcmp(str, "command5") == 0){
    ret = func5();
    if( ret != 0 ){
        /*  上のと同じエラー処理がある  */
    }
}

なんて言うのが50個続いている。もうね、アホかと。馬鹿かと。

こんなソース見てらんないので書き直す。

よくある手だけど


typedef struct{
    char *cmd;
    int (*func)(void);
}cmd_table;
cmd_table  tab[]={
  {"command1", func1},
  {"command2", func2},
  {"command3", func3},
  {"command4", func4},
  {"command5", func5},
};

int i;

for(i = 0; i < sizeof(tab) / sizeof(tab[0]); i++){
    if(strcmp(str, tab[i].cmd) == 0){
        ret = (*tab[i].func)();
        if( ret != 0 ){
            /*  エラー処理がある  */
        }
        break;
    }
}

コマンドを増やす時も楽。

つーか、こんなものを一所懸命に頑張って書くな。無駄な労力。

消すのにも一苦労だ。

LOOX S

256MB積んだ。

最初から256MB積んでればSRXじゃなくてLOOX買ってたのに。

もうSRX買っちゃったから買わないけど。むしろ、今使っているSRXを修理に出している間の予備機としてもう一台SRX買おうかと思っているくらい。

こんどはSRX7な。

2002年01月17日

文字コード

文字コードついてなんか熱くなっている掲示板を見つけてしまったが、文字コードと符号化方法の区別くらいしたほうがいいと思った。

火に油を注ぐかどうか迷っている。

それでもって,JIS->EUCが簡単だというのはそういうコードだからです。 JIS X0202(ISO 2022)の規則を使うとあのようになるのです。

これだけ短い文の中にツッコミどころが凝縮されている。

接続時に通知

XPのネットワークプロパティダイアログWindows XPのネットワーク接続で、適当なものを選んでプロパティを表示させるとこんな感じのダイアログが出てくる。下のほうに接続時に通知領域にインジケータを表示するというチェックボックスがある。

これをONにしておくと、ネットワークがつながっている時にタスクバーの通知領域にWindows 95なんかでダイアルアップした時に出てくるようなアイコンが出てくる。

Etherとかならつながっているからといって特に操作する部分は無いのでこのアイコンを出しておく必要はない。ケーブルを見ればつながっているかどうか解るし。

問題は、非接続時に通知領域にインジケータを表示するというオプションが無いこと。このため、Etherをつないでいないと、タスクバーにアイコンが出てきて邪魔。SRXには無線LANも内蔵されているので、何もつなげていない時には二つもアイコンが出てくる。ここでAirH"でダイアルアップすると通知領域のスナップショット3つも出てきて邪魔というかうっとうしい。

この不要な2つのネットワーク接続のアイコンとSONY謹製のPowerPanel、Jogダイアルのアイコンが消せると半分に減るのになあ。

お仕事

昨日、手を抜くためにいろいろ細工したために通常時の予定の5倍の作業量をこなすことに成功。

下手するとこのペースを維持するハメになるのでこのあたりで少し手を抜かないといかん。

というか、このペースを維持し続けるには体力が持たない。ゆっくり眠れる環境があればともかく。常磐線うるさすぎ。寝かせてくれ。

2002年01月18日

ラグナロク

なんとかお金が貯る。やわらかい毛を買い取ってくれる人がいるので、毛を集めては売る、という手段。同じことを企んでいる人は多いのか、毛は凄い競争率だ。

で、お金がたまったところで商人から20%オフでアークワンド購入。しかし、レベルが低いうちはグラディウスという短剣のほうが良い、とアドバイスを頂く。グラディウスのほうが最大ダメージがデカい。でも最低ダメージが小さい。DEXが低くて刃物を使いこなせていないのだろうか。

なぜかお金が余ったのでアークワンドとグラディウスの両方を購入することにする。

街の中で聴いた誰かの台詞。「弱いので何かください」。最初はネタかと思ったけど、その次に「お金も無いし」とか続いたのでネタではなくて天然物のようだ。

やわらかい毛を5個くらい集めて、買い取ってもらえば5,000Zくらいにはなるし、5,000Zあれば最強の棍棒(?)スタッフが買えるので(攻撃力+90くらい)何とかなる。棍棒ならDEXが低くても使えるっぽいので安心。

DF

うっかりファイルを削除しそうになるのが恐い。

というわけで安全装置としてマークした時だけ削除出来る、という動作オプションを追加。

削除だけあるのも変なので、コピーと移動についてもマークした時だけ動作するオプションを付ける。

ものはついで、ということで2画面時にはコピー先、移動先を問い合わせないという動作を復活。オプションにする。

このオプションの名前が思いつかない。

[OPT]

XXX=1

さてなんて名前にしよう。

このままというのもアグレッシヴでナイスだが。

DF #2

選択ファイルの一覧ウィンドウの位置が気に入らない。

今まで解像度が低かったので気にならなかったけど。

という感じを目指していたのだけど、今の動作は

でちょっち違う。

問題は、どのくらいずらすか何だけども。かっこいいズレ具合というのは無いものか。

飲み会

誘われたのでのこのこと。

飲み物が全然来ないので、しかたなく中ジョッキを一口。アルコールを摂取するとぜんそくの発作を起こすことが頻繁にあるので少量で様子を見る。問題なさそうので2/3ほど飲む。

すこぶる眠くなる。

2002年01月19日

スレイヤーズ

んがー、柏じゃやってないのかー?

どうせだったら買い物がてら新宿辺りまで出かけるか。出かけるために勢いが必要というか、出かけるぞ、と気合を入れないと出かける気になれない。面倒で。

というか、ビール飲んだせいか眠くてたまらん。寝る。

目が覚めたら外出どころの時間じゃない。引きこもる。

エディタ

・・・それに、折り返しなんかより、もっと大事なことは、

「“32M しかメモリのない CE 機に、512M の CF 積んで、 100M のテキストファイルをさくさくいじりたい”と思っている人を 幸せにすること」

だと思うんですが(また出来もしないことを言う)。

日々のつぶやき 1/16より

画面が狭いCE機で折り返しできないエディタを使うことが幸せにつながるのでしょうか。と煽ってみる。

私が秀丸エディタではなくてWZ使っているのも、秀丸エディタではウィンドウ幅に合わせた折り返しができないからですし。

CEって仮想メモリ使えるんでしたっけ。使えないとなると、編集中の領域だけを実メモリに確保してその他はストレージに待避させるという手間が入りそうですが、コレがまた面倒で。

って、CEだとウィンドウサイズは固定なんでしたっけ。CreateWindow()でウィンドウ作ると全画面占有してしまうからダイアログで作った、というような苦労話を聞いた記憶が。

だとすると、事前に指定した幅で折り返せれば特に不満は無いかも。

とか言う私は全然エディタ作りに時間をかけていないという。書きかけのコードはFIVAの中だし。送ってもらうか。

Distance

何を今更、と思いつつも宇多田ヒカルのDistanceを購入。RAGNAROKプレイ中にMP3聞いてると演奏がもたつくという不純な理由。CDプレイヤーで再生しているぶんにはもたつかないだろうと。

で、さっそく聞きながらコーディングして、そろそろRAGNAROKでも…とおもったらAirH"カードが使えない。CDを聴くためにKXL-808ANをPCカードスロットに差しているおかげでMCP-300はつなぐ場所が無い。しまった。

2002年01月20日

DTI

@niftyでチャット中、イキナリ通信が途絶えたので何事かと思ったら、DNSが変というか経路が変というかなんだか判らない状態に。

DNSにpingが通らない時って何をどうしたらいいんでしょうか。プロバイダ変える?

っていっても最初につながるハズのAirH"用ルータにも反応がなさそうだし。

おやつ

ちょっとお腹が空いてきたのでポテトチップスとチョコレートと「甘栗むいちゃいました」を買ってくる。

チョコレートの袋を開封した時の香りったらもう。

コレガのブロードバンドルータ

インプレスのBroadband Watchの記事、

一方でコレガは問題となった「BAR SW-4P Pro」のスループットを発表当初から 65Mbpsと表記していた。テストパターンでの測定結果と断わりを入れたとして も、実際の使用状態とはかけ離れた測定結果を表示することにユーザーの誤解がつきまとい、問題がないとは言えない。Broadband Watchの測定結果で も、26.371Mbpsのスループットが確認されている。

メルコとコレガ、ルータのスループット表記方法について対立より

これだけ見ると、26Mbpsしか出ないルータを65Mbpsと表記しているようにみえるけど、測定結果の記事を見てみると

フレッツ・スクエアによるスピード計測では、回線にPCを直接接続した場合が 35.782Mbps、BAR SW-4P Proを経由させた場合が26.371Mbps、NetGenesis OPTでは19.134Mbpsという結果になった。直付けをベースとした場合の回線 の有効使用率はBAR SW-4P Proが73.7%、NetGenesis OPTが53.5%。すべ て10回計測を行ない、その平均値を用いている。

コレガの高速ルータ「BAR SW-4P Pro」を実際にテストしてみましたより

と言うわけで、元々65Mbpsも出ない回線に接続してテストしているわけで、このテスト結果から見て65Mbpsという表記は不当だ、というのはおかしい。73.7%のスループットを出せるなら100Mbpsの回線につなげることができれば73Mbps出るわけでコレガが主張している65Mbpsくらいは出てもおかしくない。

もっとも、65Mbpsだせるなら10Mbpsの回線につないでも10Mbps出そうな気がするのでその辺は誤解しやすいかも。回線速度の65%のスループットが出ます、というものなら問題なし。

ラーメン

変人窟を見て、激辛ラーメンが食べたくなってしまった私。

花月の激辛ラーメンがかなりいい感じでイヤな汗がかけるそうなのでコレはぜひとか思ってしまうが、りゅうさんにイオンド大学の関係者が経営しているという噂のチェーン店とか言われてしまう。言われて平和神軍とかいう謎の集団とかを思い出す。

が、ラーメンに罪は無いのでちょっと気になるけどこだわらないことにする。

で、来週襲撃予定ということになる。

もっとうまい激辛ラーメンがあれば情報希望。

DF

生成コードは小さくなったのに実行バイナリは大きくなった。うーん。

ブレークポイント

デバッガを走らせると「ブレークポイントの設定位置0xcfdf7a」とのたまって UnaceV2.dll 内部で停止。 そこから実行再開すると、強制終了等せずにそのまま 解凍完了。 でも普通に真っ直ぐ動かすとやっぱり強制終了。謎だ。

Talk 21:24 02/01/18より

それって強制終了した時「ブレークポイント例外」とか「ソフトウェア例外03H」とかでてませんか。

私は、最適化掛けないと再現しないバグとか、デバッガに掛けていると発生しないバグが出た時などにDebugBreak()を呼び出しておいて、むりやり止めてからデバッガをアタッチするという手段を使っていました。

コレをやるとブレークポイント例外03Hが報告されるはずです。

Windows 95にIE4入れてアクティブデスクトップ突っ込むとSHELL32.DLLの何かの関数(忘れた)を呼びたした時にもINT 03Hが発生して困ったことがあります。

普通に動かしている時にはOSの構造化例外処理で引っかかってうまく処理しているみたいですけど。

そういえば私のSRX、いつの間にかワトソン博士が仕事してくれないのですが私はどこでワトソン博士を解雇してしまったのでしょうか。

エラーをMicrosoftに報告しない、というオプションを有効にしたらワトソン博士が仕事してくれるようになったのですが、いつの間にやら。

ラーメン

来週食べるとはいえ、無駄に高まったラーメン食べたい度が下がらないので食べることにする。

なんとなく旨そうな雰囲気が漂っていた新高揚とかいう店に突撃。

入ってみたら高いぞココ。くそっ。パイコーメンが1,100円だとっ!? 札幌で1,000円出したらカニラーメン食えるぞコンチクショウ。新宿って物価高いなあ。スクワットも200円だったしな。

鶏がら、醤油味が食べたかったのでこの点は幸運。

で、せっかくだからパイコーメンにしようかと思ったけどなんとなく胃にもたれそうな気がしてふつーの醤油ラーメンにする。金も無いし。

麺が旨くてかなり満足。スープも期待通りの鶏がら。高いだけはあるというか。ついでに餃子も頼んだんだけどこれもまた旨い。最近ろくなもの食ってないので何食っても旨く感じるのかもしれない。とにかく旨かった。

全国警察24時

初めてプレイ。装弾数の多さに魅力を感じてS.W.A.T.装備のサブマシンガンを選択。

コレがまた大失敗。フルオートで着弾がばらつくので、民間人がいるところでは迂闊に発砲出来ない。また、フルオートで連射してしまうので装弾数が多くてもすぐに撃ちきってしまってすぐにリロードするハメになる。せめて3点バーストしてほしい。

お薦めはやはり婦人警官でしょうか。それとも1マガジンで8発撃てる工藤?

今日見かけたモバイラー

中央線の中でiBOOK使っている人発見。

iBOOKって結構かっこいい。使ってる兄ちゃんもかっこよかったけど。

まん中にでんっとあるリンゴマークがいいよね。ごてごてしてないし。Windowsのロゴじゃかっこ悪いことこの上ない。

Japanist2002

Japanist2002を買ってきた。結構面白いものだと思うのだけど、使い物にならん。

キーカスタマイズが自由にできないのだ。

とりあえずWXG4とJapanist2002のキーカスタマイズ画面を紹介する。

WXG4のキーカスタマイズ画面
WXG4のキーカスタマイズ画面
Japanist2002のキーカスタマイズ画面
Japanist2002のキーカスタマイズ画面

WXG4のキーカスタマイズ画面には、

といった状態があり、この状態に応じて機能を変えられるようになっている。

しかし、Japanist2002にはそのような設定がない。

変換を割り当てたキーはIMEが起動していない状態でも変換すべき文字列がない状態でも変換の機能が割りあたっているため役に立たない。

今まで使っていたように変換キーでIMEのON/OFFを行いつつ、入力した文字列を変換するときにも変換キーを使いたい、というような設定はできないようだ。

スペースキーも同様で、スペースキーに変換機能を割り当ててしまうとスペースを入力できなくなってしまう。困る。

しかも一部のキーは初期状態から変更できない。変換キーはその一部のキーに該当するため割り当てを変更することができない。

変換効率は割といいと思う。変換速度も速いし、ストレスのない日本語入力が可能だ。ただし、HTMLとかコーディングしたり、半角英数と日本語文字列の両方を入力するような使い方には向かないような気がする。少なくともIMEのON/OFFが手軽にできないと不便だ。個人的にはスペースキーで変換できないのも不便。

っていうか、なんでわざわざ一部のキーをユーザーにカスタマイズさせないのか理解に苦しむ。このキーはカスタマイズ可能、このキーはカスタマイズ不可能、というようなフラグを持って判定しなくてもユーザーに一任させてしまった方が楽だし自由度も高まる。何を考えているのだ。

2002年01月21日

Japanist2002

昨日の、ちょっち訂正。

しかも一部のキーは初期状態から変更できない。変換キーはその一部のキーに該当するため割り当てを変更することができない。

と書いたけど、微妙に違う。

変更はできないけど追加はできる。削除は不可能。

初期状態で変換キーには変換機能が割り当たっているけど、その上に仮名漢字変換ON/OFFを割り当てることが可能。

つまり、一つのキーに複数の機能を割り当てることが可能。で、押したときにどの機能が働くか、というのは機能ごとに優先順位があるらしく、リストの上の方にあるものが常に機能する。

「仮名漢字変換 ON/OFF」は「変換」よりもリストの上位にある。つまり、変換キーに「仮名漢字変換 ON/OFF」を割り当てるとデフォルトの「変換」よりも優先されるので仮名漢字変換のON/OFFを変換キーで行えるようになる。

ただし、どんなときでも仮名漢字変換 ON/OFFとして機能するので文字列を入力してから変換キーを推しても「仮名漢字変換 ON/OFF」として機能するので変換できなくなる。微妙に使えない。

スペースキーに「変換」を割り当てたところ、スペースキーで変換できるようになったので変換キーは仮名漢字変換の起動専用にしてしまい変換はスペースキーで行うことにする。なぜか入力文字列がなければスペースキーを押しても変換しないで空白を入力できるので問題なし。

キー割り当てに、「半角ひらがな変換」というのがあるのが気になる。

まあ、とにかく思い通りには動いてくれないのでなかなかイライラする。道具に使われる感じ。

Ctrl + Hで前の文字を削除しつつ変換中には前候補を選択したい、という私の要望はかなえていただけないものだろうか。

問い合わせは電話でしか受け付けてないみたい。とりあえずメモ。

Japanist サポートセンター
045-332-6585

平日しか受け付けてないみたいだからかけることができるかどうか不安だが。

デバッガ

デバッガが暴走する。何が原因なのかさっぱりわからない。

InitializeCriticalSection()でなんで暴走する?

デバッガ その後

コマンドライン版のデバッガならうまく動いた。助かった。

デバッガ さらにその後

昨日と何が環境が違うのだろう、と考えたら次の二つが違う。

試しに標準の仮名漢字変換をWXG4に戻したらデバッガがまともに動いた。おにょれJapanist。

WACOMのタブレットドライバもエラーを出さなくなってめでたしめでたし。いや、めでたくない。

しかも、実行ファイルのサイズが512バイト小さくなるというおまけ付き。関係あるのか、これは。

Japanist2002

FMWORLD.NETに修正モジュールがあったのでダウンロード。

突っ込んでみたところ、V2.0 L10 relGからV2.0 L10 relHになった。デバッガが暴走しなくなった。

修正モジュールについては探してみたのだけども、Japanist サポート & サービス アップデートのページを見ても見つからなかったのだ。

だってアップデートのページ見ててもプロレス辞書とかJapanistテーマとかしか無いし。

Q&Aのページを見ていたらバージョンアップすると解決する類の問題があったので、それでやっと修正モジュールがあることがわかったという。

2002年01月22日

昨日電話で話していたネタ

大学入試センター試験 総合理科第5問

夢がないな、夢が。

ShellExecuteEx

ShellExecuteEx()で外部プログラムを実行しようとした。

カレントディレクトリに同じ名前のディレクトリがあったため、ShellExecuteEx()はExplorerでそのディレクトリを開きやがった。

仕方がないのでShellExecuteEx()する前にSearchPath()で環境変数のPATHから検索してもらおうと思ったら、SearchPath()もカレントディレクトリの同名ディレクトリを優先して発見してくる。

どうやったらディレクトリではなくて実行ファイルを見つけることができるのだ。

DF

ファイル名だけ反転だと、ファイル名の長さが極端に違うとき、どのファイルにファイルサイズが対応してるのか分かりにくいんでちと使いにくい。

ファイラーを語ろう Part4 >>843より

難しいです。以上。

DFの画面構成は、

DFの画面サンプル

というような感じになっています。

BREAKの部分のように描画するには、その上のBMP.Cの後ろにあるグレーの部分を反転描画しなくてはなりません。この反転部分の右端がどこになるのか、というのがこの時点ではまだわかりません。この右端の部分がどこになるのかが判明するのは最下段のCMD.TXTを描画したときです。

DFは、サイズをその列の一番長いファイル名の後ろから描画しているため、サイズを描画する前に一番長いファイル名を先に調べる必要があります。

じゃあ、先に調べろという話になりますが、長さを調べるには描画するしかありません。文字数だけで判断するとプロポーショナルフォントを使ったときに右端が欠けたりします。ファイル名を二度も描画するのは描画速度に影響すると思ったのであきらめました。

あふとかExplorerのようにファイル名表示部分の長さを事前に決めてしまえばいいのですが、それは、限られた領域に可能な限り詰め込む、という目標からはずれるので没。

カーソル色を背景と文字と個別に設定できなくてもいいのであれば単純に反転させるという手もありますし、カーソル部分だけ後で再度上書きするという逃げ道もあります(二回描くからちらつく)。後で上書き、という手段でもあふみたいなアンダーラインならそんなに重くならないかもしれません。

Japanist2002

昨日の、ちょっち訂正。

つまり、一つのキーに複数の機能を割り当てることが可能。で、押したときにどの機能が働くか、というのは機能ごとに優先順位があるらしく、リストの上の方にあるものが常に機能する。

と書いたけど、キー割り当て一覧の上にあることと優先順位とは何の関係もないらしい。

Ctrl+Spaceに割り当たっていた「取り消し」というのはリストのかなり下の方にあったのに、Ctrl+Spaceに別の機能を割り当てても取り消しが優先されてしまう。がっくし。

何がどのようにして優先されるのかさっぱりわからない。

2002年01月23日

Japanist 2002 その後

よくも悪くもOAKの血を受け継いでいる。

って書いてあると、大抵は悪いことばかり書いてあるような気がするのは気のせいか。

Japanistの特徴に入力予測っていうのがある。というか、これが売り。2,3文字打ち込んだところで以前の確定結果を一覧表示してくれる。

ただ、ある程度長い文字列というのは完全に一致することはなくなるわけで、せっかく表示してくれても入力したい文字列とは一致しない。

で、単語単位、熟語単位程度であればそれなりに一致することが多くなるけど、たんと入力したところで「単語」っていうのを表示してくれてもあまり役に立たない。頭の方はもうって入力する気満々だし。そこで思考を切り換えて一覧リストから選択する操作に切り換えるのは時間がかかる。何も考えないでと入力して変換した方が速い。

候補一覧には、以前に確定したものが表示されるので入力予測というのはちょっと変な気がする。入力予測というよりは入力履歴という感じ。

続けて確定していったものは結合されて履歴に登録されていく。

「入力予測というよりは入力履歴という感じ」を入力する場合、

と小分けに確定していくとにゅと入力した時点で

という感じで確定したタイミングで区切られた候補一覧が生成される。

WXGやATOKのような、複文節を一度に入力してまとめて変換する仮名漢字変換に馴染んでいた場合、「にゅうりょくよそくというよりはにゅうりょくりれきというかんじ」まで入力してから変換するので確定は一度しか行わない。

この場合、にゅと入力した時点での候補はいきなり「入力予測というよりは入力履歴という感じ」しかでてこない。こんなに長いものを出されても使い所は限られているので使い道がない。

Japanistは単文節ごとに変換、確定していく使い方じゃないとせっかくの入力予測が使い物にならない。

複文節で使うことを考慮していない、というあたりがOAKに似ていると思う。

逆に、単文節で変換していくような使い方をする分にはそれなりに快適になるのではないかと。このあたりもOAKに似ていると思う。

あと、デフォルトのキー割り当てでは一覧から選択するためにはカーソルキーを使うしかないんだけど、キー入力中ってカーソルキー触らないし。遠いし。とりあえずCtrl+Jに割り当ててみたけどそれでも候補一覧が出たところで頭を切り換えてCtrl+Jを押そうという気にはなれない。

キー入力中に出るかでないか判らない候補一覧を気にし続けるのは疲れる。

日記

日記に明けましておめでとうとか謹賀新年とか書くのって変じゃないか?

って誰に言ってる?

ケーキ

無性にケーキを食べたくなる。

しかしローソンにあるのは2つ入りパッケージのみ。2つ食べられないわけではないけどどうせ食べるなら別のものを2つ食べたい。

が、我慢しきれずイチゴのレアチーズ購入。

2002年01月24日

Japanist 2002

このところ『アニオタアニオタゆーなー アニキオタクじゃねーぞコンチクショウ』さんの『日記。』でも取り上げられています。

お笑いパソコン日誌 2002/1/23 AM 1:44より

日曜日に衝動買いしたもので。っていうか、札幌にいたころに買おうと思っていたら見つからなかった。それがあなた、ふらふらと新宿ヨドバシにいったらおいてあるものだから、つい。

確かに面白いとは思ったものの、三日ほどで消してしまいました。何が気に入らなかったかというと……。えーと、えーと、なんだったっけかな。いくつかあったんだけどな。ああそうそう、たとえば、「藤原紀香」を単語登録しようとして、品詞に人名というのがあるからそれを選ぶと、なにやら不可思議な選択肢が出てきたように記憶。

お笑いパソコン日誌 2002/1/23 AM 1:44より

Japanist V1.0とJapanist 2002とで若干の違いがあるのかもしれません。

単語登録画面ではこんな感じ。

品詞グループ基本・姓
Japanist 2002の単語登録画面 品詞グループ 基本/品詞 姓
品詞グループ基本・名
Japanist 2002の単語登録画面 品詞グループ 基本/品詞 名
品詞グループ名詞・人名
Japanist 2002の単語登録画面 品詞グループ 名詞/品詞 人名

WXG4に比べれば登録できる品詞が少ないのですが、このくらいの方が曖昧に解決できて都合がいいような気がします。

変換効率とかについてはそれほど文句はなかったんですが。

お笑いパソコン日誌 2002/1/23 AM 1:44より

文句がないどころかMS-IMEと比較すればこちらの方が好み。

気に入らないところはキーカスタマイズが不自由で気が利かないところ。というか、同設定すると同動作するのか判らない。キーに割り当てる機能名も「前変換」とか機能名だけ書かれていて実際にそれがどういう動作するのか判らない。

キー割り当てについてヘルプで調べると、キー割り当てを行う手順については詳細に書いてあり、Ctrl+F1に「全取消」を割り当てる方法を具体的に記述してくれているのですが、「全取消」っていうのがとういう動作なのかは記述されていない。困る。

機能に「前候補群」というのがあるくせに、「前候補」が無いっていうのはどういうことだ。っていうかスペースキー押しすぎたときに戻るにはどの機能を割り当てるのが正解なのでしょうか。今のところ「上カーソル移動(横)」というのを割り当ててしのいでいますが、これは候補一覧がでているところじゃないと機能しない。変換してすぐの直ぐの状態では機能してくれないので困る。

あと、キー割り当て画面。

Japanist 2002のキー割り当て画面OSで定義している色使いを使うならちゃんと全部使ってほしい。「割り当てる動作」の部分にチェックボックスがあるのだけど、リストボックスはOSの配色を利用して、チェックボックスだけ独自に配色しているのでそこにあることに全然気づかない。

最初はキーカスタマイズできなくてかなり悩んだ。新規に登録しようとするからダメなのか、と思って既存のキー定義を変更してみたらチェックマークがでてきてびっくり。

雪印

こういう体質なんだろうな。もう。

つぶせ。

2002年01月25日

RAGNAROK

dark-shunaiderというキャラクターに延々と「ルートするな」と言われてつきまとわれる。

こちとらAirH"でつないでるせいでタイムラグが発生しているため、固まって動けないのだが。

どうやらスピアというものを私が横取りして拾ったらしいのだが、スピアって魔術師が使えますか? つーか高く売れる? 高く売れるのなら今使っていないマインゴーシュと交換してもいいくらいですが。

つーか、私じゃないといったらじゃあだれがもってる??とか言われるし。知るか。みんなテレポートで移動しているから途中の動作なんて見えないし。

どーせポリンにでも持ってかれたんだろう。何がむかつくってむかつくって言われたことがむかつく。

私じゃないといっても信用しないし。そちらが信用しないのなら、こちらもそちらの主張を信用しない。

3桁区切り

突然、いんどらさんからメーられる。

1234567890→1,234,567,890 というような変換を行うコードを作っていたらしい。

以前、FC(C言語フォーラム)でも話題になって、調子に乗ってアセンブラで書いた記憶がある。

ちょっと関数仕様までは書かれていなかったので、サンプルコードから仕様を想像する。

パラメータは次の通り。

返り値は変換した文字列をポイントするポインタ(馬から落馬系)。

バッファサイズは気にしなくてもよいらしい。

何も考えず書くとこんな感じのものができるかもしれない。

char *int2str(int n, char *buf){
    while(n){
        *buf++ = n % 10;
        n /= 10;
    }
    return buf;
}

これは

ということで次のように修正。

char *int2str(int n, char *str){
    int sep;
    char *dst;

    sep = 0;
    dst = str;
    while(n){
        *dst++ = n % 10;
        n /= 10;

        sep++;
        if(sep == 3){
            *dst++=',';
            sep=0;
        }
    }
    dst = '\0';
    return strrev(str);
}

x86では(他のプロセッサでも大抵は) 任意の数と比較するよりは 0 と比較するほうが速い。

というわけで sep == 3 を sep == 0 に書き換える。

char *int2str(int n, char *str){
    int sep;
    char *dst;

    sep = 3;
    dst = str;
    while(n){
        *dst++ = n % 10;
        n /= 10;

        sep--;
        if(sep == 0){
            *dst++=',';
            sep=0;
        }
    }
    dst = '\0';
    return strrev(str);
}

最後に反転するのが気に入らない。文字列を反転する、ということは文字列をスキャンしなきゃいけないわけで、strlen()並に遅そうだ。最初から後ろ向きに格納すればいいのではないか。

そんなことを考えて最初にコンパイルしたのはでこんなコード。

char *int2str(int n, char *str){
    int len;
    int sep;
    int tmp;
    char *dst;

    /*  桁数を計算  */
    tmp = n;
    len = 0;
    while(tmp){
        len++;
        tmp /= 10;
    }

    sep = 3;

    /*  末尾をポイント  */
    dst = str + len + (len - 1) / 3;

    *dst-- = '\0';

    while(n){
        if(sep == 0){
            *dst-- = ',';
            sep = 3;
        }
        *dst-- = n % 10 + '0';
        n /= 10;
        sep--;
    }

    return str;
}

いんどらさんから送られてきたサンプルコードと比較してみると

サンプル12,107ms
12,007ms

大して変わらん。

一仕事終えてからリベンジ確定。

3桁区切り #2

とりあえず、高速化の定石、ループの展開を行う。

char *int2str(int n, char *str){
    int len;
    int sep;
    int tmp;
    char *dst;

    /*  桁数を計算  */
    tmp = n;
    len = 0;

    while(1000 < tmp){
        len += 3;
        tmp /= 1000;
    }


    while(tmp){
        len++;
        tmp /= 10;
    }

    /*  末尾をポイント  */
    dst = str + len + (len - 1) / 3;

    *dst-- = '\0';

    while(1000 <= n){
        *dst-- = n % 10 + '0';
        n /= 10;

        *dst-- = n % 10 + '0';
        n /= 10;

        *dst-- = n % 10 + '0';
        n /= 10;

        *dst-- = ',';
    }

    sep = 3;

    while(n){
        if(sep == 0){
            *dst-- = ',';
            sep = 3;
        }
        *dst-- = n % 10 + '0';
        n /= 10;
        sep--;
    }

    return str;
}

これで多少速くなって10,285ms

先程のはいんどらさんの友人のコード。で、いんどらさんのコードも送られてきた。

サンプル12,107ms
10,285ms
いんどら版10,215ms

いんどらさんの友人のコードもいんどらさんのコードもstrrev()で反転している。反転は遅くないのか?(先に試せよ)

時代は反転なのか!?

っていうか、仕事させてくれ。

3桁区切り #3

仕方がないので反転させる。これにより、桁数を計算しなくてもよくなる。

三桁以上ある場合の処理はループを展開。三桁ごとに処理する。

char *int2str(int n, char *str){
    char *src;
    char *dst;
    char c;

    dst = str;

    while(1000 <= n){
        *dst++ = n % 10 + '0';
        n /= 10;

        *dst++ = n % 10 + '0';
        n /= 10;

        *dst++ = n % 10 + '0';
        n /= 10;

        *dst++ = ',';
    }

    while(n){
        *dst++ = n % 10 + '0';
        n /= 10;
    }

    *dst-- = '\0';

    src = str;
    while(src < dst){
        c = *src;
        *src++ = *dst;
        *dst-- = c;
    }

    return src;
}

実行してみる。7,611ms。勝った。

後半の、最後の三桁部分を処理するところのループも展開する。禁断のgoto。

char *int2str(int n, char *str){
{
    char *src;
    char *dst;
    char c;

    dst = str;

    while(1000 <= n){
        *dst++ = n % 10 + '0';
        n /= 10;

        *dst++ = n % 10 + '0';
        n /= 10;

        *dst++ = n % 10 + '0';
        n /= 10;

        *dst++ = ',';
    }

    if(n<10)goto col1;
    if(n<100)goto col2;
    *dst++ = n % 10 + '0';
    n /= 10;
col2:
    *dst++ = n % 10 + '0';
    n /= 10;
col1:
    *dst = n % 10 + '0';

    dst[1] = '\0';

    src = str;
    while(src < dst){
        c = *src;
        *src++ = *dst;
        *dst-- = c;
    }

    return src;
}

実行してみる。7,481ms。これでどうよ。

3桁区切り #4

使用したコンパイラとコンパイラスイッチを書こうと思ったら、サイズ最適化を掛けていた。速度最適化に変更して再度トライ。

バージョンサイズ優先最適化速度優先最適化
サンプル12,107ms12,227ms
いんどら版10,215ms9,995ms
私(後ろから格納、ループ展開)10,285ms9,593
私(反転)7,611ms7,391ms
私(反転、ループ展開)7,481ms7,130ms
使用したコンパイラ
WATCOM C/C++ 11.0J
最初のコンパイラスイッチ
-6r -bm -oa -oh -ok -or -ot -s -w=4
速度優先コンパイラスイッチ
-6r -oa -ob -oh -ok -ol -ol+ -or -ot -s -w=4

2002年01月26日

0

いんどらさんからメーられる。

昨日書いたコード、

char *int2str(int n, char *str){
    int len;
    int sep;
    int tmp;
    char *dst;

    /*  桁数を計算  */
    tmp = n;
    len = 0;
    while(tmp){
        len++;
        tmp /= 10;
    }

    sep = 3;

    /*  末尾をポイント  */
    dst = str + len + (len - 1) / 3;

    *dst-- = '\0';

    while(n){
        if(sep == 0){
            *dst-- = ',';
            sep = 3;
        }
        *dst-- = n % 10 + '0';
        n /= 10;
        sep--;
    }

    return str;
}

これだとwhile(n)なので n が 0 だと何もしない。はっはっは。

花月漫遊記 そにょ1

今でました。

スピーカー付コンピュータ

ステレオスピーカーが付いたコンピュータなん てX68k以来だなあ。

偽偽夜食日記 2002年1月23日より

スピーカーがついていたのはCZ-613Dとか、ディスプレイの方だったハズ。

つーか、某様とか私のCZ-613Dは現役です。烏賊様のはどうよ。

花月漫遊記 そにょ2

秋葉原到着。待ち合わせは万世橋だ。って橋といっても橋のどっち側なのかも判らない。それでいいのか。

こだわらずにてくてく歩いていくと、なぜかブックタワーに出てしまう。昔から万世橋に行こうとするとブックタワーに出てしまうという謎の習性があって、今は亡きSTEPに行こうとしてブックタワーに行ってしまったことがある。

RTCで「なんでやねん」とか言われてしまったけど、なぜ間違えるか判っていれば次からは間違えないハズだが判らないから間違える。

期待を裏切らず、今日もブックタワーに出てしまった。

で、90分遅れで待ち合わせ場所に到着。時間通りに来ていたのはばけらさんだけで、

の3名は遅刻。っていうか、私よりも遅い参加者がいたりして。ビバ光画部時間。

ばけらさんは寒い想いをして残念な思いを堪能してしまったわけだが、こちらもお待たせしてしまい非常に残念な思いをしてしまう。

引き分け(そうか?)。

花月漫遊記 そにょ3

むらまささんがキーボードを買うというのでまずはぷらっとほーむへ。

片手入力用のキーボードを購入。

次に、私のSRXのヒンジを調整してもらうためにソニーサービスステーション秋葉原へ。

どこよそれ、という勢い。事前に地図をダウンロードしていたのでそれを見せて案内してもらう。プライバシーフィルターの威力を堪能する。

花月漫遊記 そにょ4

ソニーのサービスステーションで、ヒンジの調整ができるか訊いてみる。

10日以上かかる、ということなので残念な思いをしつつ断念。

札幌に帰ってから修理にだそう。

花月漫遊記 そにょ5

次にばけらさんのノートパソコン物色。

キーボードにこだわりがあるようで、右シフトが「ろ」の隣というのがmust。もう、これだけでかなり絞り込まれる。ある意味楽だけども、探すのが大変。

とりあえず要求条件。

というわけで、りゅうさんのオススメ、Macintoshを見にT-ZONEミナミへ。

「T-ZONEにMacintoshってあったっけ?」というむらまささんの疑問に対して「誰も行かない様なところにある」とりゅうさん。いやー素晴らしい。ものすごい上にあるのだそうだ。Macintoshはコンピュータの頂点に立っているから、とかフォローすると「さらにその上はあるんだけどね」とか言われてしまう。修理受付窓口とかがあるらしい。むらまささん曰く、「あー、それは壊れやすいということですか」。

で、見る。

G4高っ。デカっ。

iBookもでかっ。特にキー。こんなにキーがでかいとは思わなかったよ。

そこからどんどん降りてってWindowsパソコンを物色。

私とむらまささんのちょー個人的オススメマシン SRX3はシフトキーがカーソルキーよりも外にあるし、パラレルポートも無いので却下。残念な思いをする。つーか、USBからパラレルに変換できなかったっけ?

日立Priusの液晶がキレイだということで意見の一致を見るものの、いつのまにか液晶の名前が変わっていて、知識を披露したむらまささんが残念な思いをする。

そういえば、ばけらさんが触ったとたんに「熱っ」とか言って手を離したノートがあったけどアレはなんだっけ。

それとは別にLibretto L3(だっけ? L2?)、これも熱かった。キーボード左側。ビデオチップかな。

Appleマーク

なんだかんだで、「iBookはかっこいい」という話になり、前も書いたけどWindowsロゴがついていたらものすごくかっこわるいだろうという話をする。するとむらまささんが「gatesの Gはどうよ」。

想像図Thinkpad s30のような鏡面仕上げの黒い背面に真っ赤なGが彫り込まれているのを想像して笑いだしてしまう私。

いやあ、きっとカッコイイぞ。どこか作れ。

直販系

まあ、店頭販売されているものはおおむね見たので、次はDELLとかDECCOMPAQのような直販系の展示品を見に行く。さすがは秋葉原。いやー素晴らしい。

Evo N200を初めて見たけど、これはすごい。キーボードがかなりよい。好み的にはs30のほうがいいけど、誤差。キートップを押し込むとストンと落ち込む。落ち込む時のなめらかさが素晴らしい。N200とかs30に比べるとSRXはちょっと粘る感じがする。

難点はメモリが192MBしか積めないところ。残念な思いを堪能する。

でも、現在Windows 95を使っているばけらさんには、192MBもあれば充分なのではないかとむらまささんと私。Windows 2000なら全く問題ないハズ。しかし、せっかくだからXPを使いたいというので残念な思いをしつつあきらめる。

で、隣にあるEvo N400。これはばけらさんの要求スペックを満たしている。

モバイルPentium!!! 850MHzと低電圧モバイルPentium!!! 700MHzの二機種があったけど、とりあえず熱くなる度合いが少ないだろう、低電圧モバイルPentium!!! 搭載機をオススメしておく。

ちなみに、N400のキーボードはイマイチ。感覚的にはSRXよりも粘る感じがする。

ふと奥を見ると Lavie G とか書いてある。Gだよ、G。せっかくだからどんな機種か確かめもせずにオススメしておく。

帰宅してからWebで注文するのでどちらを買うのかは後の祭り。

迷う買い物

りゅうさんがテレビを捨てるとか、不穏なことを言いだして(事実誤認)別の店に。どこですか、ここ。五州貿易に移動。

先日落札したOSがCD-Rで提供されていたというG4 Cubeでテレビを見るための周辺機器を買うらしい。

むらまささんが hp のフリスビーを発見。100円。買う。というか、1つしかないのが残念。なんだか無理いって買わせてもらった感じ。

悩むりゅうさん。悩む。さらに悩む。むらまささんが買うのか買わないのか激しく問い詰める。

そのやりとりを堪能している間、うっかり目に留まってしまったのがCLIE PEG-S300。1万円切ってる。

私は小さいコンピュータが好きだ。

小さくてもちゃんと動くコンピュータが大好きだ。

PDAは1万円切ってると急に買いたくなってくるので買う気ゲージ急上昇。気分的には購入決定。

で、悩むりゅうさんを問い詰めて今日は買わないということにしてからソフマップの中古モバイル店に移動。

PEG-S300がより取り見取りだ。9,800円から15,800円まで。ちょいキズありから。悩む。

12,800円でカラーの(型番忘れた)CLIEも手に入るが、PDAはモノクロ液晶(というか反射型液晶)の方が使い勝手がいいような気がしているので、とりあえずモノクロのものに限定。

9,800円のと11,800円のは、何が違うのだろうとみていたらメモリスティックが8MBついている。なるほど。2,000円で8MBのメモリスティックがついてくるのならお得かもしれない。この最高値がついている15,800円のは何が違うのだろうとかなり眺めてみると、こっちは64MBついてくる。なんと。問題はこれが安いのか高いのか判らないところだ。メモリスティックなんて使ったことも無いし使おうと思ったこともなかったので値段なんかノーチェックだ。相場が判らない。

せっかくだからむらまささんに相談してみるもののむらまささんも同じような状態でさっパリだそうだ。残念な思いをする。

まあ、ものは試しということで64MBのメモリスティック付のものに決定。購入。

1万円しないものを買うつもりで16,000円になってしまう罠。秋葉原は怖いところです。

ついでにスタイラス、Pentopiaも購入する。m100で使ってから気に入っている。しかしソフマップには置いていないのでザ・コンに移動。CLIEのスタイラスを買うついでにと、精密ドライバーのセット(200円)とSONY製 単4Ni-MH電池4本を購入。最近メガネのビスが緩んでいるので、締め直せるようにしておきたいのとPalm m100とCALEIDの予備バッテリ。

花月漫遊記 そにょ6

買い物を堪能したところで花月襲撃。

さて、どこに移動しようか、というところで誰も秋葉原から近い花月を知らないという罠。

SRXとMPC-300を出して、花月のページをみてみるものの、IMG要素ばかりでALTも指定されていないために何も判らないという罠。

クリッカブルマップだったということは覚えていたので適当にマウスを動かしてそれらしいURLのところにジャンプ。

しかしデータがこない。流れてこない。AirH"の素晴らしさを布教するつもりが情けなさを満喫させるという残念な結果に終わった。

これでは場所が判らないので適当なインターネット接続体験コーナーみたいなところを探してそこでチェックしようということになる。

Yahoo! BBのデモを見つけ出して、そこで花月のページを表示させる。速っ。すぐに出てくる。いやー素晴らしい。うちもADSLにしようかね。

で、とりあえずの候補を二カ所に絞る。

浅草橋
秋葉原からは近い。駅から花月までは遠いように見える。
駒込
秋葉原からは遠い。駅から花月までは近いように見える。

雪というか雨というか、とにかく水が降ってきているので、駅から近い方を選択する。

花月駒込店への地図を表示した時のディスプレイ道に迷うと行けないので画面をCOOLPIX 800で撮影。

いざ駒込。

荷物

せっかくDVDを鑑賞できる環境になったりゅうさんにたいしてむらまささんがDVDを貸し付ける。

実は荷物を減らすためだったという話が。つーか本買いすぎ。うらやましいぞ。

LAOX BOOK館にいたら私も読みたい本を見つけてしまい、購買意欲が高まるものの、荷物になることを考えてあきらめる。

本は札幌でも買える。今買ったら購入金額と同等の送料がかかる。もったいない。

今日のテーマはDVD

りゅうさんだけが何も買い物をしていないということが発覚。

急遽、りゅうさんが魔女の宅急便のDVDを買うことにする。なぜかむらまささんも「12人の怒れる男たち」DVDを買ってしまうという予想外の事態が発生するがこだわらない。

むらまささんの買い物力はすさまじい。

花月漫遊記 そにょ7

地図を見た限りでは、信号を1つ越えたすぐ先、という感じだったのだけど信号を3つくらい越えてもそれらしいものは見えてこない。

細かな信号は省略されていて、ポインツは交差点らしい。とにかく交差点まで歩く。

やっと花月発見。

なぜか4人ともバリ辛ラーメンを頼む。バリということは九州地方なんだろうか。残念ながら出汁が何なのかということはよく判らなかった。

ちなみに、マジックスパイスの涅槃に比べればどうということは無い辛さ。全く問題なし。

スープまで飲み干して終了。しかし、上に乗っていた唐辛子を食べる気にはなれなかった。これ、単体で食べたらすごいことになりそうな気が。

Half Keyboardお披露目

片手用キーボードコレ。左手用。スペースキーを押し下げている間、右手用に入れ代わる。ローマ字入力でも母音は

左手
右手

と分散しているので思ったよりは使えるのかもしれない。

ただ、スペースの入力がプレスエッジではなくてリリースエッジになってしまうので仮名漢字変換の操作とかでいらいらするかもしれない。

名前

マッチョブラザーに3票入る。約一名だけが強行に反対するが、民主主義的多数決でどうよ。

感想

かなり残念な思いを満喫したような気もするけど、それを差し引いても楽しい一日でした。というか、残念な思いすらも楽しいという。またよろしくお願いしたい所存。

酒も煙草も入らない健全なオフでした。唐辛子とニンニクは入ったけど。

CLIE

うごかねー。

クレイドルを認識してくれない。というか、認識まではするもののドライバをロードできないらしい。理由は全く不明。

IrDAでのシンクロも途中で止まる。これも理由は不明。

Error 6410ってなによ。ログにはconnection lost とかあるけどIrDA通信中にサスペンドしているとか? 外部電源つなげっぱなしなんだけどなあ。蛍光灯が赤外線に悪影響を与えるということもあるので適当な紙をかぶせてリトライ。ダメ。

2002年01月27日

CLIE

日付が変わってもまだ動かない。ものすごく残念な思いをする。

XPだから? ハードリセット掛けてもエラー6410で止まる。なんかのデータベース転送中らしい。ハードリセット掛けてもダメということはメモリがイカレているのではないだろうか。

XP対応のためのPalm Desktop 4.1が公開されているが、どうしてもダウンロードできない。8MB、10MB、9MB、11MBくらいダウンロードした辺りでエラーがでて止まってしまう。

挫折

5時頃。

うまくダウンロードできて、クレイドルを認識できるようになったとしても、IrDAでシンクロできなければ役に立たないことに気付く。

返品決定。んがー。

またまた残念な思いを満喫して寝る。

Palm m100

昨日出かける時に見当たらなかった。多分、職場に置き忘れているだけだと思うので回収にいく。

見当たらない。どうやら、職場に忘れたのではなくてどこかに落としたらしい。んがー。またまた残念な思い。

昨日、今日と雨というか雪というかとにかく水が降っていたので屋外で落としていたらもう見てらんない。困る。

むらまささんではないけど、私も外部記憶装置が無いと困る体質になっているので何とかしたい。

つーか、コーディングしてたりデバッグしていると時間の感覚がなくなってくるので打ち合わせとかすっぽかすんだよな。打ち合わせのハシゴとかする時にも困るし。

この使い方だと外部記憶装置というよりは外部クロックか。WDTがないと暴走するようなもの。

まあ、分単位で設定できるCALEIDのほうが都合いいのでm100がなくてもすぐには困らないのだけど。しかしIrDAでシンクロできるのは大きい。

CALEIDは先が無いので、Palmに慣れておきたい。

返品したついでにCLIE買ってくるぞコンチクショウ。

つーか、m100にDFの改造案を入れておいたのだけど、何をどうするんだっけ。頭に残しておくと仕事中にも考えてしまうのでメモって忘れてしまうことにしているのだけど、忘れてしまったら思い出せない。

つーか、何のために昨日電池買ったんだ。

返品

さっそく返品。

ということで受け付けてもらえた。

同梱の64MBメモリスティック、これも含まれていたのか念を押されて確認された。しくじった。抜いておけばよかったか。

きっと無くてもしばらくはバレなかったに違いない。ちぇっ。

CLIE

さあ、何買おう。気分的にはモノクロなので、PEG-T400にしたいのだけど。値段が折り合わない。つーかPEG-N600CというカラーのCLIE(The(中略)mori尊師ももっているアレ)のほうが下手をすると安いという状態。

ものすごく悩む。悩みながらアキバ散策。

途中、烏賊様からデンパ。周りがうるさいので声が聴こえない。静かな方静かな方へと移動しながら会話していると、自分を見失う。ここはどこだ。WHAT'S THIS PLACE?

T400って薄くていいよなあ。予算が許せばこっちだよなあ。

秋葉館地下で中古のCLIEというかPDA各種を割合と安く売っていた。値段をメモって他の店を回って、戻ってくると閉まってた。しまった。

地上の方ではT400は売り切れ。んがー。

N60Cは29,800円とちょっと手が出ない感じ? つーか、当初の予算10,000円というのはどこに行ったのよ。

m100なくしてから我を忘れてませんか? いや、マジで無いと困るんですけど。

結局、N600Cを22,000円で購入。当初の倍の出費。秋葉って怖い。いや、マジで。スタイラスは共用できるので助かった。

int2str

小松平さんからメーられる。小松平さんはFIVAの改造技術者(事実誤認)。256MB認識させたすごい人。札幌にお住まいらしいので、一度お会いしてお話をうかがいたいと思っているもののちょっちネタがなくて恐れ多くて機会がない。

で、小松平さんから送りつけられたコード。

typedef unsigned int U32;   /* 32bit unsigned という前提 */
typedef union {
    struct {
        char c3, c2, c1, c0;
    } c;
    U32 c3210;
} tR32;


/* 速いのかわからん */
char *int2strKMTunion(int n, char *str)
{
    tR32 r;
    char *src;
    char *dst;
    U32  *dst32;
    char c;

    dst32 = (U32*)str;

    r.c.c0 = ',';
    while(1000 <= n){
        r.c.c3 = n % 10 + '0';
        n /= 10;
        r.c.c2 = n % 10 + '0';
        n /= 10;
        r.c.c1 = n % 10 + '0';
        n /= 10;
        *dst32++ = r.c3210;
    }
    dst = (char*)dst32;

    if(n<10)goto col1;
    if(n<100)goto col2;
    *dst++ = n % 10 + '0';
    n /= 10;
col2:
    *dst++ = n % 10 + '0';
    n /= 10;
col1:
    *dst = n % 10 + '0';

    dst[1] = '\0';

    src = str;
    while(src < dst){
        c = *src;
        *src++ = *dst;
        *dst-- = c;
    }

//  return src;
    return str;
}

4バイト単位でごにょごにょする、というのがポイント。

25日には書かなかったので後出し、と言われて仕方がないのだけど、私もDWORD単位で処理することでさらに速度が稼げるのではないか、というのは思いついていたものの長さが4で割り切れない時には残念な思いをするので書くに書けなかったり。

x86には、BSWAPという都合のよさそうな命令があるのでこれを使えば4バイト単位を1命令で反転させることができる。ループの回数を減らすにはかなり使えるのではないかと思いつつも時間切れというか、CではBSWAPを直接使えないので、使うとしたら全部アセンブラで書くような感じになるので見送ってしまった。

さらに、後ろから格納するという私が敗北したパターンのものも送っていただいた。ソースコードはこちら。

char *int2strKMTendian(int n, char *str)
{
    U32 r;
    char *dst;
    U32  *dst32;
    int tmp;
    int len;    /* 変換後の文字列の長さ */
    int len0;   /* 文字列の長さを 4byte boundary にあわせたもの */

    tmp = n;
    len = 0;
    while (tmp >= 1000) {
        len += 4;
        tmp /= 1000;
    }
    len0 = len;

    /* 頭のあまっている部分 */
    while (tmp) {
        len++;
        tmp /= 10;
    }

    /* 4byte boundary */
    if (len - len0) {
        len0 += 4;
    }

    /* でも str って 4byte boundary じゃないかも? まあいいか */
    dst32 = (U32*)(str + len0) + 1; /* +1 は pre-decrement を期待 */
    *dst32 = '\0';                  /* 4byte 0fill でもまあいいか */
    while (n) {
        r = n % 10 + '0';
        n /= 10;
        r = (r<<8) + n % 10 + '0';
        n /= 10;
        r = (r<<8) + n % 10 + '0';
        n /= 10;
        r = (r<<8) + ',';
        *--dst32 = r;
    }
    /* 補正しないと 0-leading になっちゃうというか */
    dst = ((char*)dst32) + (len0 - len);

    return dst;
}

さて計測結果。

いんどらさんの友人12,337ms
いんどらさん10,035ms
私(後ろから格納、ループ展開)9,844ms
私(反転)7,551ms
私(反転、ループ展開)7,420ms
小松平さん 前から格納して反転 7,391ms
小松平さん 後ろから格納 10,084ms

この計測結果は新宿のドトール店内で、バッテリー駆動状態で計測している。

バッテリー駆動なので、もしかしたら最初に実行されるいんどらさんの友人さんのコードはクロックが低い状態から加速しながら実行されているのかもしれない。

で、結論としては先に長さを確認してから後ろから格納する、というやり方は長さを確認するという部分がオーバーヘッドになっているのか、後から反転した方が速いという結論のようだ。

ちょっとクヤシイぞ。

ちなみにDFは後ろから格納しているけど、最初に桁数を数えるということをしていない。右詰めで格納しているので最初からバッファの後端が判っているので数える必要がない。

後ろから格納しているので最後に反転させる必要もない。

あと、WATCOM C/C++11.0Jは、除算は逆数の乗算で演算してくれるけど、商を求めるのはdivで求めてくれる。divを使えば商と余りを同時に求めることができるので、上でいう n % 10; n /= 10;をdiv1つで済ませている。

もしかしたら乗算で商と余りの両方を求めるようなうまいやり方があるのかもしれないけど、そこまで追求するのは止めた。div使った方がコードは小さいし。

昨日の日記

昨日の日記、まだ書き終わらないのですけど。

2002年01月28日

メモ

CLIE #1

とりあえずIrDAシンクロする。

正常終了。

m100のデータを突っ込むためにPalm Desktopのデータを m100のものに差し替えて再シンクロ。

正常終了。

Palm Desktopを起動する時にエラーが出るようになってしまった。手書きメモのモジュール(Note pad.exe)がないとか言ってる。CLIEには無いし。なんでこれまで読もうとするようになったのだろう。どこにインストールされているモジュールのデータがあるのだ。

その後、IrDAシンクロさせるとデータベース転送でエラー。ふむ。

MGメモリスティックにデータをコピーしてからハードリセット。直った。データも消えたけど、メモリスティックから戻して終了。

Palm Desktopが起動時にエラーを出す問題はアンインストールしてから再インストールで解決。

S300はハードリセット掛けてもダメだったんだけど、なんだったんだろう。

CLIE #2

やっぱりこのカバー使えない。

カバー開くでしょ。そしたらIrDAポートをふさぐんですよ、このカバー。で、カバー閉じとくと液晶をタップできないのでHotSyncできない。んがー。

横開きのケースってないものか。

3桁区切り #5

DFで使っているルーチンは速いんだぞ、と言っても数値を挙げないのでは説得力に欠けているので計測してみる。

これで遅かったらどうしよう。

私のC版 前から格納して反転7,240ms
DFで使っているルーチン5,190ms

よかった。

ちなみに、DFで使っているルーチンは64ビット整数を変換するためC版とは単純に比較できない。

ついでにソース。

ll2str  proc near
    push    ebx
    mov ebx,dword ptr [esp+0Ch] ;ebx←len
    push    ebp
    push    esi
    push    edi
    mov edi,ecx         ; edi ← lo
    test    ebx,ebx         ;len == 0
    je  L009
    mov esi,dword ptr [esp+14h]
    mov ebp,3           ; ebp←counter
    add esi,ebx         ; esi←buf
    test    edx, edx
    mov byte ptr [esi],0

                    ; hi==0 && lo==0 ?
    mov eax, edx
    jne L003            ; hi!=0

    test    edi, edi        ; lo == 0?
    mov eax, edi
    jne L006            ; lo != 0

    dec esi
    dec ebx
    mov byte ptr [esi],30h  ; put '0';
    jmp L011;

L001:                   ; while(hi)
    test    eax, eax
    je  L004    ; hi == 0
    test    ebp,ebp         ; counter == 0
    jne L003
    dec esi
    dec ebx
    mov byte ptr [esi],2Ch  ; put ','
    je  L009
    mov ebp,3
L003:
    xor edx, edx
    mov ecx, 0Ah
    dec ebp;
    div ecx
    mov dword ptr [esp+18h], eax    ;メモリ hi / 10

    mov eax, edi
    div ecx
    mov edi, eax
    dec esi
    dec ebx
    add dl, 30H
    test ebx, ebx
    mov byte ptr [esi],dl

    je  L009
    mov eax,dword ptr [esp+18h]
    jmp L001

L004:
    mov eax, edi;
    test eax, eax           ; lo == 0?
    je  L007            ; lo == 0
L005:
    test    ebp,ebp         ; counter == 0
    jne L006
    dec esi
    dec ebx
    mov byte ptr [esi],2Ch
    je  L009
    mov ebp,3
L006:

    xor edx, edx
    mov ecx, 0Ah
    dec ebx
    dec esi
    dec ebp
    div ecx
    add dl, 30h
    test ebx, ebx
    mov byte ptr [esi], dl
    je L009

    test    eax,eax
    jne L005
L007:
    test    ebx,ebx         ;len
    je  L009
L011:
    mov eax, ebx        ; set return value
L008:
    dec esi
    dec ebx
    mov byte ptr [esi],20h
    jne L008
    jmp L010
L009:
    xor eax, eax    ; ret = 0
L010:
    pop edi
    pop esi
    pop ebp
    pop ebx
    ret 8
ll2str  endp

ループを展開してやればもっと速くなるのか。

プロトタイプ宣言は

int ll2str(unsigned long lo, unsigned long hi, char *buf, int len);

という感じで、

lo
下位32ビット
hi
上位32ビット
buf
変換結果格納バッファ
len
変換結果格納バッファサイズ

戻り値が格納した桁数。なので buf + 戻り値から描画してやれば左詰めの文字列を取り出せる。数値を書かなかった頭には空白(0x20)を書き込む(L008の辺り)ので、固定ピッチフォントで描画すればうまく右詰めになる。

あー、今見てたらP6で条件分岐ストールしそうな気がしてきた。見なきゃよかった。書き直したくなる。

3桁区切り #6

ループを展開してみた。

私のC版 前から格納して反転7,240ms
DFで使っているルーチン5,190ms
ループ展開後4,907ms

4%しか変わらないくせにサイズは倍。ここはループさせておこう。

土日の日記

まだ書き終わらない。

2002年01月29日

メモ

DF

β30で正式版にしたかったなあ。

でも、もう後の祭。40もすぐ行きそうだから、せめて誕生日までにはっ。

作業済み

宿題

うっ、まだまだじゃないか。

今、ダイアログエディタが無いのでカスタマイザは作れないかも。

2002年01月30日

SRX3

どうも不安定だ。右手前がぐらぐらする。

つーか、メモリ増設の手順でネジをうまく締めていないとがたつきやすくなる。私のSRX3もやたらに右手前が浮く現象が出ていたのだけど、購入直後はがたついていなかったような気がしたので分解して最組み立て。ほぼ解消。

右手に力を入れるとすこしカタッとするのだけが解消しなかったけど、ひっくり返してみていたらハードディスクのカバーを押すとすこしヘコむことが判った。

ここもバラして締めなおせばいいのか。締めなおしてだめならゴムのワッシャーでも仕込めばOk。

そんな物理的な不安定よりもPCMCIAの電源が切れないことが気になる。何か良くないことの予兆のような。

MC-P300を差しただけでアンテナランプが付いてしまう。電池の無駄だ。電源切れ。

ももいろ

少しももいろつぽい。

闇黒日記 平成14年1月29日より

ごめんなさい、ごめんなさい、かなぶんよりもごめんなさいっ。まだstrictに書いてないし〜。

アレを書いていた頃とコレを書いている今とではHTMLの捉え方がだいぶ変わってるし。今見たら書き直したくなる。

意味もなく(?)見た目のバランスのために画像を左とか右にfloatさせたい場合、どのようなクラス名を付けるのがstrict?

あー、CSSオフでもももいろにしたくてbodyにbackground属性付けてたり。うーん。ダメですか。そうですか。そうですね。

あふ

コンパイル等の高負荷時にレスポンスがあまりに悪くなってしまう

ファイラー使ってますか? >>189より

そう?

というわけでmakeかけてからあふをちょっと操作してみる。

ディレクトリ移動後にカーソルキーを押しても1秒くらい反応がない。一度反応するとあとは普通に動く。

なんだか、ディレクトリエントリ列挙中のプロセスかスレッドの優先順位が下がっている感じ?

試したのはv0.124βです。えっ? ダウンロードしろ? ではまた後で。

つーか、あふで重いと思うのであれば、DiskWalkerかDF。ぜひDFを(宣伝←でも見ちゃいない)。

Japanist 2002

もう、ダメ。使ってられない。キー割り当てが不自由過ぎる。機能の説明もないし、おかしな動作ばかりする。Japanist的には私のほうがおかしな操作をしているのだろうけども、思ったとおりに操作出来ない。

なんで変換して、第二候補が選択されてるんだ。

WXG4に戻る。

コレ使ってるとタブレットドライバもエラー出すし。

今時サポートが電話しかないというのもちょっち。PHSから掛けたらいくらかかることやら。

背景色

だーかーらー、一度ブラウザの設定を変えて

背景色
文字色

にして見てみろって言ってるんだコンチクショウ。

メモリスティック

メモリスティックってSONYのですか。

過ぎ行く今は星の瞬き 2002/01/28(Mon)より

はい。

32Mで五千円くらい。128Mで二万円近辺。メディアが高いのよ。なんとかしないと廃れちゃうよ、SONY。

過ぎ行く今は星の瞬き 2002/01/28(Mon)より

あー、やっぱり抜いておけばよかった :-)。

どうせそのうちにメモリスティックWalkman買うだろうから、Magic gate対応のを買ってしまいました。64MB。8Kくらい。高っ。

その代わり、CLIEにアプリをインストールするのがものすごく楽になりました。いや、ふつーのメモリスティックでもいいっちゃあいいんですけど。

ただ、CLIEってバッテリー持たない。m100なんて一体いつバッテリー切れるんだろうと不安になるくらいだったのに。

単四電池使えるCLIE熱烈希望。

IBMのUSBメモリにウイルス混入の可能性@ZDNet

むらまささん、大丈夫ですか。

Perl

ActivePerlをダウンロードしようとするとAirH"の回線がキレる。なんで?

2002年01月31日

@niftyから送信

@niftyからBIGLOBEな人にメーろうとするとrejectされる。なんで?

結局別のSMTP使ったけど。

Perl

帰宅してからもう一度チャレンジ。やっぱりAirH"の回線がキレる。

つーか、様子を見ていると、以前通信カードを作った時の動作とよく似ている。

あの時作った通信カードは暴走した時にリセットがかかってぶち切れていた。なにか予期しないデータを受信しているのかも。

だいたい 163,840バイト前後でぶち切れる模様。

telnetでdownloads.activestate.comにアクセスしてGETしてみてもキレる。0x7Eの連続とか0xFFの連続を受信するとそこでまたぶち切れですよ。

一時的に閉鎖

永続的になるかは今後次第。

USBマウス

先々週に買ったサンワサプライの光学マウス、e-mouseの調子が悪い。

使っているとポインタがテレポートする。形もいまいちというか、中央部が盛り上がっているためにボタンが低く感じてしまう。指が届かない感じ。

握り具合というか、掴んだ感じは結構いい感じなので残念。

というわけで、今まで使っていたモバイルマウスにもどす。

こっちはこっちでスクロールのローラーが固い。どっちもどっち。マウスポインタが飛ばないだけ迷わないけど。

FIVA101でこのモバイルマウスを使っていた時にはポインタがすっとんでいたので、USBコントローラとの相性なのかも。

メール

届くメールのdateフィールドが訳判らん。さっき受信したはずなのに見当たらない。どこにいったと思ったらはるか彼方に。

dateフィールドでソートしていたので、dateが昔を示していると画面に現れないという。

Received: from xxxxxxx.nifty.com (xxxxxxx.nifty.com [nnn.nnn.nnn.nnn])
 by ums517.nifty.ne.jp (8.9.3+3.2W/3.7W011218) with ESMTP id NAA10479
  for <RXA01732@nifty.ne.jp>; Thu, 31 Jan 2002 13:25:31 +0900 (JST)

Received: from xxxxxx.xxxxxx.ne.jp
  by mail506.nifty.com (8.11.6+3.4W/3.7W-01/21/02) with ESMTP id xxxxxxxxxxxx
  for <bee@mbj.nifty.com>; Thu, 31 Jan 2002 13:24:55 +0900

Received: from xxxxxxxxxx.xxxxxxx.ne.jp (xxxxxxxxxx.xxxxxxx.ne.jp [nnn.nnn.nnn.nnn])
  by xxxxxx.xxxxxxx.ne.jp (kwg/3.7W-02011615) with ESMTP id xxxxxxxx
  for <bee@mbj.nifty.com>; Wed, 30 Jan 2002 23:19:21 +0900 (JST)

Received: from xxxxxxx.xxxxxxx.ne.jp
  by xxxxxxxxxx.xxxxxxx.ne.jp (8.9.3+3.2W/3.7W-01111312) with ESMTP id xxxxxxxx
  for <bee@mbj.nifty.com>; Wed, 30 Jan 2002 23:15:59 +0900 (JST)

なんで14時間もかかるのだ。

というか、これ、ほんとに昨日の23時に送信したものだろうか。9時間ずれているだけならサーバの時計がズレているだけかなとか思うのだけど。

というか、@niftyのサーバがタコですか?

でも同じ奴が1時に送信したメールは、少なくとも朝には受信時できたし。

その時のヘッダ。

Received: from xxxxxxx.nifty.com (xxxxxxx.nifty.com [nnn.nnn.nnn.nnn])
 by xxxxxx.nifty.ne.jp (8.9.3+3.2W/3.7W991224) with ESMTP id XXXXXXXX
 for <;RXA01732@nifty.ne.jp>; Thu, 31 Jan 2002 02:45:20 +0900 (JST)

Received: from xxxxxx.xxxxxxx.ne.jp
 by xxxxxxx.nifty.com (8.11.6+3.4W/3.7W-01/21/02) with ESMTP id XXXXXXXXXXXX
 for <bee@mbj.nifty.com>; Thu, 31 Jan 2002 01:27:45 +0900

Received: from xxxxxxxxxx.xxxxxxx.ne.jp (xxxxxxxxxx.xxxxxxx.ne.jp [nnn.nnn.nnn.nnn])
 by xxxxxx.xxxxxxx.ne.jp (kwg/3.7W-02011615) with ESMTP id XXXXXXXX
 for <bee@mbj.nifty.com>; Thu, 31 Jan 2002 01:27:43 +0900 (JST)

Received: from xxxxxxx.xxxxxxx.ne.jp
 by xxxxxxxxxx.xxxxxxx.ne.jp (8.9.3+3.2W/3.7W-01111312) with ESMTP id XXXXXXXX
 for <bee@mbj.nifty.com>; Thu, 31 Jan 2002 01:27:42 +0900 (JST)

なんで@niftyに入ってから1時間も滞留しますかかかかっ!

先行者

そうか、国家機密か。


トップを狙う

Copyrigiht © 2002 びい