記事一覧

MBM 高速起動

 フリーのブートローダーの MBM が久々にバージョンアップしていることに気が付いた.
 このバージョンアップで,MBM をインストールするドライブが選べるようになったのは便利.今まで C: にしかインストールできなかったので,USB メモリ等からブートすると (それが C: になってしまうので) HDD にインストールできなかったのだが,その制約がなくなった.

 今回から GPL になってソースコードも付属している.なので前からやりたかった「起動待ち時間を 1秒より速くする」(標準の MBM は自動起動までの最小時間が 1秒なので) をやるため,再アセンブルしようと思った.
 でやってみたら,アセンブラは OPTASM…? そんなのもう入手できねーよ(;´д⊂)ためしに MASM32 でアセンブルしてみたけどエラーの嵐.

 というわけで,方針を変えてパッチ当てで(笑) ソースは付属してるので,パッチ当て箇所がわかりやすくてありがたい.

1460  wait_timer:     ; 起動タイマー表示(CF=set on break, clr on time out)
1461          _skip e, MainParms.MpTime, 0
1462                   call   set_csrhome
1463                  mov     bp, 10 ←**ここ**
1464           _while
1465                  push    di

wait_timer で cx(=メニューで設定した待ち時間) * bp * 100ms 待っているので,bp への代入を 1にすれば,メニューで設定した秒数 / 10 の時間でタイムアウトする.(どうせ最小時間しか設定しないので問題なし)

バイナリ上のパッチ当て箇所は以下のとおり(ver.0.39).黄色で示した箇所を 0x0A→0x01 に書き換える.
ファイル 149-1.png
 これで MBM のメニューが一瞬でタイムアウトするようになったヽ(´ー`)ノ もちろんキーをあらかじめ押しておけばタイムアウトがキャンセルされるので,使い勝手的にも問題なし.

民族大移動

ファイル 148-1.jpg

 HDD の WESTERN DIGITAL WD15EADS 1.5TB を購入.ついでに 120GB と 250GB の HDD を売却するためにデータ移動中.
 HDD のアクセスが速くなったとはいえ,さすがにこの容量のデータ移動は時間がかかるわ.帰宅してから寝るまでの時間では 1日でおわんねぇ.

 で,最近の HDD なら静かさはどれもかわんねぇだろ,と思って WESTERN DIGITAL を買ってみたけど,失敗だった orz 今まで使ってた日立の HDP725050GLA360 との比較になるけど,アイドル音は (5400rpm だけあって) 静か.ただしシーク音がうるさいよ… 日立のは「シャリシャリ」って感じで耳を澄ませば聞こえる程度だったが,WD は「コリコリ」ってうるさい.しかも,HDD にアクセスしていないはず (HDD アクセスランプが点灯していない) なのにシーク音が聞こえるよ…(HDD にアクセスするはずのない BIOS 画面ですら音がする) 静かさでは日立の方が上だな.
 まぁ,WD は 5400rpm だけあって,発熱は少なかった.

----
後日追記: アイドル時のヘッドシーク音(?),しばらく使っているうちに症状はなくなった.おそらく購入直後は,HDD が自発的に何らかのアクセス (初期設定とか?) を行ってたのだろう.まぁシーク音がうるさいことに変わりはないけど.

口減らし

ファイル 147-1.jpg

 気がつけば,PC の数がデスクトップ 3台,ノート PC 3台になってた…
 明らかに戦力外のノート PC 2台・デスクトップ 1台は売却,しかしネットブックの価格破壊の影響で中古ノート PC はジャンク品並みの値段でしか売れんなぁ… Pen3 866MHz のデスクトップ PC なんかさらに悲惨で,昼食 1回分の値段以下で売るくらいなら,IDE HDD のサーバーにしたほうがましだ.

 とか思ってたら,また ASPIRE ONE AOA150-Bk1 を \21,500 で衝動買いw
 工人舎から mbook が販売されると知ったときはかなりぐらっときたけど,所詮室内でしか使わないことを考えると安さ優先でいいかなぁと.
 で,リファビッシュ品ということでキズの具合が気になっていたのだが,結構ひどいwww 天板はピアノのように光沢のある黒なのだが,磨き傷のような細かいキズが全面に.あと角にぶつけたような結構深い傷が 1cm ほど.筐体が黒だと結構目立つ.これなら白買っとけばよかったかなぁ.

 まぁこの値段ならあきらめも作ってもんよ.実際に使ってみた感想だが,一番の目的であった,デスクトップ PC で録画した HD ビデオを LAN 経由で再生するのに特に問題はなかった.ただし CPU パワーはぎりぎりらしく,たまにコマ落ちする.あと CPU フルパワーだと結構熱を持つ.冬場は布団にもぐりながらビデオ見てカイロ代わりになりそうだw
 あと,この記事も ASPIRE で書いてるけど,キーボードは快適でサイズの小ささは特に感じない.画面の大きさも,横に広にせいか特に狭いとは感じなかった.

 今のところの不満点は,
・タッチパッドのクリックボタンが硬い.結構力を入れて押し込まないとクリックできないので,右ボタンドラッグとか,片手だけでやろうとすると指がつりそう.
・タッチパッドのすべりが悪い

 質感も安っぽさを余り感じることもなく,まぁこれが 2万円ちょっとなら,いい買い物をしたかな.

WMWare 上の WindowXP の時計が進む

 ホスト OS = WindwosXP の VMWare 上で,得体の知れない実行ファイルなどを実行させるための仮想 WindowsXP 環境を立ち上げていたのだが,なぜか W クリックを認識しないという問題があった.なんでかなー? と思っていたら,なんと時計が 2倍近い速度で進んでいるではないか(汗

 で,ググッてみたら,原因は
・ゲスト OS = Linux 時に,Linux の時計の実装に起因するもの
・ホストマシンが可変クロック周波数であることに起因するもの
の 2種類があることがわかった.

 前者は今回は関係ない.後者の解決方法はここに載ってた.

 ホストマシンが,Cool'n Quiet かつ AMD のデュアルコアの場合に起こるなんて情報もあったが,ウチの場合関係なかったみたい.

HP Photosmart C4480 購入

ファイル 143-1.jpg

 プリンタを新調.

 プリンタを選ぶに当たって考慮したのは,(画質とか印刷速度とか付加機能とかは無視で) とにかくトータルコスト (本体価格・インク代・故障対応に必要な金) を下げること.
 インクジェットプリンタはヘッド目詰まりという宿命があるので,ページプリンタにしようかとも思ったが,ページプリンタはトナーが高すぎるので却下.
 そうこう考えるうちに,やっすいインクジェットプリンタ買ってインク切れたら本体ごと捨てるのが一番いいのでは? と思うようになった.

 それはさすがにやりすぎなので,インクは切れたら社外品の補充インク (ボトル式のやつ) を使う事が前提.そうすると,非純正だと回復不可能なヘッド目詰まりの危険性が多少なりとも上がってしまうという事で,インクタンクとヘッドが一体型の HP Photosmart C4480 を ¥4,866 で購入.これならインクタンク交換でヘッドも新品になるから,怪しい補充インクでも気兼ねなく使える.
 スキャナは別にいらんかったけど,スキャナついてなくてもこの値段なら買うわ.

----
しばらく使ってみた感想
○黒インクだけで印字できる
○前面給紙・前面排紙なので設置しやすい
×本体のボタン一発でスキャン・コピーできない(?)
×ドライバだけ入れたいのに,やたらソフトをインストールされる

あんま印刷には無頓着なので,気づいたのはこんなもん(笑)

----
 以下愚痴.
 PM-930C 分解して思ったけど,あんなステッピングモーター? とかいっぱい使ってる機械が \1万 とかおかしいだろ.でプリンタ本体は赤字だからインクで稼ごうとしてインク代がメチャ高くなる.で社外品の安いインクが出現したら,わざわざインクタンクに IC チップ埋め込んで社外品は使えないようにするとか,もう意味わかんない.

 こんなアホなビジネスモデルしてるから,インク切れたら本体ごと捨てるとか言う運用がまかり通ってしまう.新機種が安く手に入るからユーザー的にはメリットがあるのかもしれない (インク代も含めたトータルコストでメリットかどうかは怪しい) が,少なくともメーカーの企業倫理がまったく感じられない…

Linux は軽い

ファイル 141-1.jpg

…という夢を見たんだ.

いやね,いま Libretto30 (Am5x86-100MHz, Mem 20MB) を,単体で Web & メールクライアントに仕立てて復活させようとしているんだけど,
・Windows95 をサポートする Web ブラウザは古いものばかりで,今日日の Web ページは表示が崩れてまともに見れない
・Win98 は既にきつい

 それなら,一般的に Windows よりも軽いといわれている Linux はどうなのよ? とチラッと調べてみたけど,Mem 128MB 以上でないと動かんとか.全然軽くないじゃん.Win95 世代のマシンはすでに切り捨てられたってことね…
 と思ったら見つけたのが以下の 2つ.
・Damn Small Linux
・Tiny Core Linx
特に TCL の方は,iso サイズが 10MB なのに GUI が使えるということで期待していたが,Out Of Memory とかで起動中にカーネルパニックを起こしたwww

ならばと DSL のほうを入れてみたら,無事動いたよ…(゜ーÅ)ほろり
ただし,プリインストールの FireFox 起動してみたら,5分たっても帰ってこねぇw より軽いナントカってブラウザ (写真) はスタイルシートを無視するし,日本語が表示できないのが痛いw rdesktop でリモートデスクトップクライアントにはなるが,これなら Win95 とかわんねぇし.

 (安定性とか置いといて) まともな GUI が使えるという条件において,Win95 より軽い Linux は無いという結論に達した.
 Lib 単体でがんばるなら,Windows 版 w3m を入れるのが落としどころかもしれん.

UMID mbook ごっこ

ファイル 140-1.jpg

 UMID の mbook が凄く欲しくなってきた.個人的には VAIO P よりもほしいくらい (VAIO P 意外とでかいし).ただし,今のところ品質が安定しないのと,韓国語キーボードだけは絶対に嫌だw
 日本メーカーも,ありきたりなネットブックじゃなくてこういう尖った魅力のある製品を作ってくれんかねぇ.個人的には,電子辞書サイズの PC-9801 互換機とか作ったらレトロブームに乗っかって微妙に売れるんじゃなかろうか? とか思ってたりして.
 で,mbook 買えない欲求不満を解消すべく,Libretto30 引っ張り出してきたw Lib に無線 LAN カード挿してナンチャッテ mbook 構築完了.さすがに Lib 単体ではできる事は限られているので,リモートデスクトップでメインマシンに入って色々作業してみる.

 …使いにくうw

 テキスト入力ツールとして使うためには,キーボードの大きさは重要だと理解した.少なくともこれでソースコード書こうとかは思わんなぁ.でも web ブラウジング程度なら,しょぼくても「キーボードがある」だけでかなり使い物になることも分かった.PSP でブラウジングするのとは使いやすさがダンチだ.

 てかリモートデスクトップクライアントとしてなら,Lib もそこそこ使えるじゃん.音が出ないのが非常に惜しい.

プリンタヘッド洗浄

タダでもらってきた EPSON PM-930C.
印字してみると目詰まりがひどく,プリンタ機能のヘッドクリーニングでも改善しなかったので,分解洗浄を敢行.

ファイル 139-1.jpg
ココまでばらさないとヘッドは取り出せなかった.

ファイル 139-2.jpg
何が写ってるかわからんと思うけどw ヘッダをアルコール漬けにしてサランラップで包んで,ガンコな汚れを分解洗浄中 (のつもり)

で,再組み立てして試してみたら…まったく改善してないやん.

オレの工数を返せ(;´д⊂)

zlib にハマる

 とある Windows プログラムで,.gz 圧縮されたログファイル (テキスト) を直接読めるように,zlib を組み込んでみた.下がその一部

if(( fp = gzopen(( char *)szFileName, "r" )) == NULL ) return FALSE;
while( gzgets( fp, szBuf, BUF_SIZE ) != Z_NULL ){
    ....
}
gzclose( fp );

なんのことはない,fopen/fgets/fclose を gz なんちゃらに置き換えただけ.こんなん余裕っすよ.と思って実行してみたら,「invalid distances set」やら「invalid distance too far back」やらで全然リードできねぇ.たったこれだけのコードのどこに間違う余地があるのか_| ̄|○

 と,ふと目にとまったのが gzopen( ... , "r" ) の "r".Windows 上のテキストファイルだから何も考えずに "r" にしていたのだが,"rb" にしてみたら直ったヽ(´ー`)ノ "r" だと,0x0D 0x0A が 0x0A に変換されたりして .gz が壊れたのと同じ状態になってたんだろうな.
 てか,gz から解凍後のデータに対してテキストモードを適用すると思うでしょ普通.gz ファイル自体にテキストモードを適用してどうする (--# むか

Icarus Verilog vs. CVer

 ちょっくら,家で Verilog-HDL シミュレーションをやる必要が出てきたので,sim 環境を構築しようとしてみた.かつては Silos-III 評価版を魔改造してw 使っていたのだが,ちょっと大き目の回路だと落ちるようになってしまったので…
 フリーの Verilog-HDL シミュレータとしては,Icarus Verilog と cver が代表的だと思う.cver はどっかのベンダーが商用ツールをフリーとしてリリースしたもののようで,vcs とかになじんでいるとコマンドラインオプションとかが似ているので使いやすい.iverilog は 0.7 時代は使い物にならなかった印象かあるのだが,0.9 になって System Verilog とかにも対応したのか.すげぇな.

 で,SystemVerilg は使う予定がないので,普通の Verilog で,どっちが速いか試してみた.

お題: 16bit RISC CPU で 256個の数値クイックソート

GPLCVER_2.12a of 05/16/07 (Cygwin32).
9.108u 0.061s 0:10.27 89.1% 0+0k 0+0io 1607pf+0w

Icarus Verilog version 0.9.1 (v0_9_1)
37.327u 0.046s 0:40.57 92.0% 0+0k 0+0io 1842pf+0w

cver の圧勝.こんだけ差があると,iverilog を選ぶのはきついな.System Verilog を覚えてみるのもいいかとも思ってたのだが…(゜ーÅ)ほろり

----
 んー,ここの結果だと Icarus Verilog のほうがはやいなぁ.Cygwin 上でテストしたのが間違いだったんだろうか?
 てか,Verilator ってナニ!? VCS より速いフリーのシミュレータ!? おら,すっげぇわくわくしてきたぞwwww

AviSynth プラグインフィルタ自作(2)

ファイル 136-1.jpg

 ほぼ移植完了.AviUtl と AviSynth の差分は,画像データに点を打つ関数と,画像のプロパティ (縦横サイズとか) 取得部分のみなので割とすんなりと実装は済んだ.
 …と思ったら,MediaPlayerClassic で映像と音声とメーターがズレてるよ_| ̄|○ MediaPlayerClassic で動画のプロパティ見るとなぜか 25fps になってた.ffdshow のオンスリーンディスプレイでは 29.970fps になってるのに,いみがわからん.
 調べてみたら,.mp4 が 25fps になってしまうのは ffdshow のけっこう有名な問題らしい.そういや,AviUtl で ffdshow 経由で .MP4 開いたときもおかしくて,mp4input.aui 経由で読むように変えた過去があったし.でも ffdshow の新しいバージョンでは改善されたとかの記述もあるし,よくわからん.
 でとりあえず Haali Media Splitter 入れたら直ったヽ(´ー`)ノ そういや昔はこれ入れてた気もするが,ffdshow が新しくなってから入れなくても .mp4 見れるようになった(?) ので,入れてなかった.Haali Media Splitter 入れてない状態で,ffdshow 再インストしたら .mp4 見れなくなったので,何らかの .mp4 スプリッタが入ってたらしく,25fps 化はこの謎スプリッタが原因みたい.

 で,いろいろ使ってみたのだが,AviSynth 対応は自分ですら予想しなかったほど便利であること発覚.例えば 320*240 で撮影した動画は,640*480 に拡大してからメーターを重ねるなんてことが簡単にできるし,↓のようなスクリプトで 2つの車載動画を並べて同時再生とかもできるし.

c1 = DirectShowSource("SANY0001.MP4").ConvertToYUY2(). \
    VSDFilter( \
        "vsd20090123_095934.log", \
        video_start=8324, \
        video_end=68034, \
        log_start=4522, \
        log_end=34980, \
        map_length=240, \
        map_size=460, \
        map_angle=3406, \
        lap_time=1, \
        g_snake=1 \
    ). \
    BilinearResize( 320, 240 )

c2 = DirectShowSource("SANY0002.MP4").ConvertToYUY2(). \
    VSDFilter( \
        "vsd20090123_111455.log", \
        video_start=221, \
        video_end=52536, \
        log_start=8611, \
        log_end=35296, \
        map_length=240, \
        map_size=460, \
        map_angle=3406, \
        lap_time=1, \
        g_snake=1 \
    ). \
    BilinearResize( 320, 240 )

StackHorizontal(c1, c2)

こりゃ便利だわヽ(´ー`)ノ

AviSynth プラグインフィルタ自作

 車載動画スーパーインポーズフィルタ (vsd_filter) を,AviSynth プラグインフィルタに改造中.なんでそんなことしてるかというと,
・AviUtl で合成した動画は,.avi に書き出さなくても AviUtl で再生することはできるが,プレーヤーとしていけてないので,DirectShow 経由で普通のプレイヤーで見たい.
・Adobe Premiere とかで合成した動画を編集したいとき,いったん .avi に書き出さないといけない.AviSynth 経由なら,いちいち .avi に書き出さなくても直に読み込める
と,それなりに利点はあるので.かつて DScaler フィルタで作ろうと思ったけど,DScaler のプラグイン SDK は有料(?) みたいなので断念していた.
 というわけでここを見ながら AviSynth のプラグインフィルタについて勉強中.

移植に当たっての問題点は,
・AviUtl でダイアログで設定してるパラメータを,AviSynth では GUI で設定できない.なので,AviUtl の設定パラメータをファイルにライト・リードする機能を付加した.これで AviUtl の GUI でパラメータ調整→パラメータ書き出し→AviSynth のスクリプト内でパラメータファイルを指定,のようにすればパラメータを読み込めるはず.
・YUY2 のオペレーション.線とか円を書くとかの関数はクラス化してるので移植は容易で,これらの関数は最終的に 1ピクセルの点を打つ関数を呼んでいるので,アプリに依存しているのはこの 1ピクセルの点を打つ処理だけ.問題は YUY2 フォーマットでは U/V が横 2ピクセルで 1データを共有しているので,1ピクセルだけ打つというのが (画質を追求すると) めんどくさいよなぁ…

1807年のブログ

Web クローラに色々な情報を与えるために robots.txt の仕組みが用意されているが,自分がサーバ管理者なら .htaccess でアクセス制限できるので,今まで robots.txt のありがたみがイマイチ分からなかった.

が,ふと Apache ログを眺めていたら,Googlebot が 1807年~2206年の日記をクロールしている事に気づいたw いやいや,そんな世紀の日記とか書けないからwww

今ご覧のブログ,Web Diary Professionalというフリーの blog スクリプトを使わせてもらってるのだが,「先月」「来月」のリンクが (記事が無くても) 常に張られ,記事は無くても 404 にはならずに「記事がありません」と書かれたページが生成されるので,「記事がありません」だけのページが上の年月×12ヶ月分キャッシュされているという状態.

これじゃ Google にもアクセスを受けるうちのサーバにもムダなので,日付指定が含まれている URL を robots.txt でクロール対象外にした.

なるほど,こういう風に使うのか.

Linux サーバを coLinux 化

ファイル 129-1.jpg

 ウチの Linux サーバ (Celeron@300MHz のノーパソ),かつては VMWare 上の Linux で動かしていたのだが,あまりの遅さに耐えかねてネイティブな Linux で動かしていた.
 が,どうやっても手持ちの USB LAN アダプタを WEP でしか動かせなかったのと,トラブル時の復旧の容易性 (ディスクイメージファイル 1個をコピるだけで別のホストマシンで復旧できる.メールサーバが動いているのでダウン時間は最小に抑えたい) を考えると,やはりバーチャルマシンで Linux 動かしたほうが便利.

 というわけで,coLinux 入れてみた.VMWare に比べてメモリ消費量が格段に減ったので廃スペックマシンでの動作も快適.素の Linux と変わんないっす.ヽ(´ー`)ノ

 で,本格運用しようと思ったら,無線 LAN アダプタと仮想マシンの LAN アダプタが Bridge できねぇ_| ̄|○
 WPA で接続しようと思ってたのに,いみねーじゃん.

-----
追記:

・無線 LAN アダプタを含めたブリッジができた.情報はここ↓
http://d.hatena.ne.jp/cnaos/20081102/1225628170
ただし,リンク先では無線 LAN アダプタだけ enable にすればよいみたいに読めるが,ウチの環境,無線 LAN・有線 LAN・TAP-Win32 Adapter をブリッジする環境では,有線・無線 LAN を enable にしないとだめだった.

C:>netsh bridge show a

----------------------------------------------------------------------
 ID AdapterFriendlyName         ForceCompatibilityMode
----------------------------------------------------------------------
  1 ローカル エリア接続 2                disabled ← TAP-Win32 Adapter
  2 ワイヤレス ネットワーク接続          enabled  ← 無線 LAN アダプタ
  3 ローカル エリア接続                  enabled  ← 有線 LAN
----------------------------------------------------------------------

Layer3 互換モードってなんだろうねぇ? 自身の MAC アドレス以外の MAC アドレスを持つパケットを送出できない LAN アダプタ用の設定かな? (てきとう)

・実は WMWare でもホストマシンとゲストマシンとのファイル共有・Samba ファイル共有ができないという現象があって困っていたのだが,WinPCap を使ったブリッジ構成の coLinux でも同じ現象が出て困っていた.(ゲスト OS と,LAN に繋がった他のマシンとなら問題なし) その解決法がここに載っていた↓
http://scratchpad.fc2web.com/colinux/winpcap.html

どっちも重要な割りにすげーマニアックな設定方法なんですけどwww
ググってもなかなか引っかからなくて苦労したよ…

本気でゴミを作ってしまった

ファイル 124-1.jpg

 GA-MA78G-DS3H はどのように省電力設定しても,USB に常に電源が入る.例えば電源を切っていても光学マウスの LED が光りっぱなし.で,PCI スロット用 USB2.0 カードがあったのでこれにキーボードとか挿してみたら,BIOS でキーがきかねぇ…_| ̄|○

 なので,マザボ上の USB ピンヘッダをリアの PCI ブラケットに引き出すパーツを上の PCI カードを破壊して(笑) 作ってみた.ただし電源部分は残して PCI バスからとるので,PC 電源 OFF 時は USB 電源も落ちるのがミソ.

 で,早速使ってみたら,キーボートとかマウスとか接続がプチプチ切れる…_| ̄|○ やっぱノイズとかまったく考慮してないからかなぁ…

 久々にゴミを作ってしまった.しかも USB PCI カードを破壊してまで_| ̄|○

USB シリアルポート番号を増やさないようにする

 USB シリアル変換ケーブルは,以前に挿した USB ポートと違うところに挿すと,以前と違う COM 番号が割り当てられるので,ほっとくと COM 番号がだんだん増えていってしかも元に戻せない.デバイスマネージャの以下の設定で
ファイル 123-1.jpg
COM ポート番号自体は変えられるのだが,以前のポート番号は「使用中」になっていて選べない.

 なんだかなぁと思って久々に WWatch を引っ張ってきて,COM ポートが増えてしまったときの差分を調べてみたら,以下のキーが見つかった.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter の
ComDB で,32バイトのバイナリ値で構成されていて,1バイト目が COM1~8 の使用状況を示しており,例えば COM1,3,4,5,6 が使用中なら,1バイト目の値は 0x3D になる.

 で,使用したい COM 番号の bit を 0 に落とすことで,上のダイアログボックスで COM ポート番号を元に戻すことができた.

PDF にタダで文字・図形を記入できるソフト

 最近よく,申込用紙なんかが PDF で配られてたりするけど,Adobe Acrobat (リーダぢゃないやつ) 持ってないと編集できないから,名前とか住所とかは印刷した後手書きなのよね.

 俺は字が汚いからあんまり手書きしたくない.という事で,PDF を編集できなくても,記入欄にテキストボックスを貼り付けるくらいのソフトならあるんじゃないの? と思って探してみたら,フリーソフトではないが評価版として↓が見つかった.
Foxit Reader 2.3

最新版は 3.0 だが,以下の理由により 2.3 がおすすめ.

 評価版の制限は,編集した PDF を保存すると「これは評価版です」みたいな英語のメッセージが PDF についてしまう事.だが保存前に印刷してしまえは問題なし.もっともバイナリエディタで .exe の「これは評価版です」メッセージを 0 に塗りつぶしたら PDF にもメッセージ付かなくなったけどねwww
 ここまでしなくても,評価版メッセージの上に白塗りの長方形を重ねてしまえば実質問題なくなるし.

 こりゃいいソフトだわヽ(´ー`)ノ

DELL DIMENSION WOL 化計画(2)

 DIMENSION の WOL ということで,パワー SW や WOL 信号の特性を探ってみた.

ファイル 119-1.jpg
 まずパワー SW だが,ケースからのフラットケーブルを接続するコネクタの 6, 8番 pin をショートさせると,電源が入る.もっと具体的にいうと,#6 が 3.3V にプルアップしてあって,これを GND とショートさせると電源が入る.

ファイル 119-2.jpg
 LAN カードの WOL コネクタのほうは,たぶん真ん中が GND,残りが +5V と WOL 信号で,WOL 信号は定常状態で 0V,マジックパケットを受け取ると,3.3V になった.
 
 しかし,ここで問題があることが発覚.WOL 信号は Windows が起動して LAN カードに何らかの設定がされるまで 3.3V のまま.一方,パワー SW 端子のほうは,ショートさせっぱなしだと (マザボに通電自体はするものの) ブートシーケンスが開始されない.つまり,単純に WOL 信号の極性を反転させてパワー SW 端子に接続したとしても,マジックパケットを受け取った時に通電はするが Windows は起動しない.

 この LAN カードを使って WOL を実現するにはここのようにタイマー回路を組んで一定時間後に WOL 信号を 0V に落とさないとだめだけど,俺にそんな知識ありませんから!! 残念!!

 ほかの LAN カードで試してみるかなぁ(゜ーÅ)ほろり

-----
 ちょっと話題は変わって,今回 DELL を分解してみて,いろいろと合理化されていてびっくり.
 一つはマザボの固定方法で,ネジ 1本でうまいこと固定している.(説明がめんどくさいのでここ見てくれw)

ファイル 119-3.jpg
 もう一つはケース排気ファンが CPU 冷却ファンを兼ねていること.これはコストを下げるのはもちろんのこと,ファンの数を減らして静音化につながったり,CPU の廃熱を確実にケース外に排出する優れた機構だと思う.そういや BTX は吸気ファンと CPU 冷却ファンが兼用でちょっとうれしかったが,もう BTX は終わった感じだしねぇ.
 DELL は合理化を進めるあまりパーツが特殊になって,自分では買いたくないがw (この DELL をオクで買ったのは異様に安かったから),こういう機構は積極的に規格化して自作界にも取り入れてほしいところだ.

DELL DIMENSION XPS 4100 WOL 化計画

 昔,ヤフオクで落とした DELL DIMENSION XPS 4100 を WOL ( Wake On LAN ) 化してみようと思い立った.DIMENSION の BIOS には WOL/PME の項目があるのだが,マザボ上に WOL コネクタはない.たぶん,コストダウンでそこらへんの回路は省略されてるんだろうな… PME の項目があるということは,WOL ケーブルをつながなくても PCI スロットを通してパワー ON イベントが送られるのではなかろうか? と期待したが,どうもそれも NG のようだ.
 幸い,BIOS のこれらの項目を ON にしておけば,Windows シャットダウン後にも LAN カードの電源は落ちないようで,要は LAN カードは WOL パケット (マジックパケット) を受け取って WOL コネクタに信号を出すことができる.すなわち,電源 SW とこの WOL コネクタの信号をうまいことつなげば,WOL が実現できるはず.

 というわけで,いろいろググってみたら,同じようなことを試みている人は結構いるようだ↓
http://www.geocities.co.jp/SiliconValley-PaloAlto/6025/WakeOnLan.html
http://www5.atwiki.jp/kuro-bsd/pages/128.html

これらを参考に,DIMENSION WOL 化計画を進めていくつもり.

根本的スパム対策

 今まで本命メアドと捨てメアドを使い分けて,本命メアドは信用できるところにしか公開していなかったのでスパムメールとは無縁だったのだが,ついに本命メアドがスパムメール業者に渡ってしまったらしい.出会い系とか「10万円当たりました!」とか大量に届くようになった.これを機に,根本的なスパムメール対策システムを考えてみようと思う.

 一つ思いつくのは,メアドを知らせたい相手一人一人に違うメアドを教えておく,というもの.一般的にはテンポラリメールアドレスと呼ばれる仕組みだが,例えば

Aさん: hoge-a@domain.jp
Bさん: hoge-b@domain.jp
通販業者C: hoge-shop_c@domain.jp

 などのように,一人一人に違うアドレスを教えておく.例えば業者 C がメアドをスパム業者に売ったとしても,あて先メアドから誰が犯人であるか明白であるから晒し上げる事もできるだろうし,そもそも通販のやり取りが終わった時点で hoge-shop_c@domain.jp を破棄すればよい.
 また A さんが事故で hoge-a@domain.jp を外部に漏らしてしまった場合でも,A さん用メアドを新たに割り当てなおして,メアド変更の連絡は A さんだけで済む事から被害を最小限に抑えられる.

 幸い,今使っているメールサーバーの qmail にはこれに適した仕組みが用意されている.具体的には dot-qmail という仕組みで,hoge-*@domain.jp の * があらかじめ設定したものと一致すれば,hoge@domain.jp 宛てへのメールとして届けられる.

 これにより受信側は解決だが,問題は送信側.From アドレスは普通メーラーで設定するから,メール送信ごとにメーラーの From 設定を変えるのはめんどくさい.現実的な案として,To 欄を参照して自動的に From 欄を書き換えるメールゲートウェイを設置する事だが…

 てか,こんなサービス,どこかで既にやってそうな気がしてきた.

緊急用ブータブル CD

ファイル 116-1.jpg

 New マシンのケースには FDD 用ドライブベイがなかったので,FDD をつけていない.最近では CD ブートや USB ブートが当たり前になってきたのでこれでも問題ないや,と思っていたのだが,MBM (SystemCommander みたいなブートマネージャ) のインストールには MS-DOS が必須…
# 最初は USB HDD ブートでいけるかと思ったが,それやると USB HDD が仮想的な C: になってしまい,さらに MBM は C: にしかインストールできない仕様なのでダメだった

 それでも FD イメージさえあれば,CD-R に焼いて FD エミュレーションで MS-DOS が起動できるが,CD-R の容量のうち 1.44MB しか使わないのはもったいない.と思っていろいろ探してみたら,CD-R に収められた複数の FD イメージ・ISO イメージから選択して起動できるブータブル CD 用ブートマネージャがあった.
ここの解説が大変詳しい.

 というわけで,MS-DOS やら NT Loader やら MemTest86 やらいろいろ詰め込んだ緊急 CD 完成ヽ(´ー`)ノ

旧メインマシン復活

ファイル 115-1.jpg

 調子が悪くなった先代 AthlonXP マシン,電源を変えたら調子がよくなったっぽいので,電源が原因かと思いこんでいたのだが,OS 再インスト中にバンバン落ちる~(;´д⊂)
 よくよくマザボを見てみると,半分ぐらいのコンデンサが膨らんでるし(;´д⊂) こりゃ逝ったのはマザボかな? そういやこのマシンは無理やり静音化してエアフロー最悪だったので,夏場はマザボの温度センサーが 50℃とか過酷な環境で使ってたしなぁ…

 でも AthlonXP 2700+ (正確には 180MHz * 12 のオーバークロック) をお蔵入りさせるのはもったいないので,中古 SocketA マザボ (KM2M Combo) を \500 で購入w でもって早速組んでみたけど,クロック倍率もコア電圧も BIOS でいじれないジャン…_| ̄|○
 幸い,CrystalCPUID での倍率変更は受け付けたので,133MHz * 15 で運用.

 でも旧マザボの EP-8K3A は気に入ってるんだよねー.コンデンサだけ張り替えればよかったかもしれない.

Cool'n Quiet (じゃないけど) 設定

ファイル 114-1.png

 倍率を BIOS で 3GHz ( = 200 * 15倍 ) 設定に設定すると,Cool'n Quiet が効かなくなっていたが,どうやらそういうもんらしい.Cool'n Quiet が使えなくなるのはいやだし,かといって定格で使うのは Black Editon 買った意味がなくて負けた気がするし.

 というわけで,先代マシンでも使っていた Crystal CPUID を使うことに.Crystal CPUID だと VCore も変更できるので,低クロック時にどれだけ VCore 下げられるかも調べてみた.

周波数VCoreコメント
1.0GHz0.800V で安定これが設定できる最低値
2.0GHz0.950V で死亡
3.0GHz1.375V で安定定格1.325V では不安定
3.1GHz1.375V で不安定
3.2GHz1.450V でも死亡

オーバークロック耐性としては,どうもハズレの個体らしい…_| ̄|○
1.0GHz だと定格の 1.10V よりもえらい下げられるんだなぁ.

というわけで,画像のとおりの 3段階で Crystal CPUID の運用を行うことにけってー.

ファイル 114-2.png
大昔 (Windows95 時代w) に作ったクロック周波数表示プログラムが思わぬところで活躍.(→ダウンロード) 負荷で周波数がダイナミックに変わるのは見てて楽しいw

PC 新調

ファイル 113-1.jpg

 5年ぶりに PC を全更新.
 PC でゲームとかしないし,今の AthlonXP 2700+ でもぜんぜん問題なかったのだが,経年劣化のためか電源がヘタってきたらしく,PC 使用中に突然リブートしたりする.
 最近は PC パーツ事情にもすっかり疎くなって,「メモリーどれ買えばいいんだ?」などとド素人レベルに戸惑いつつ,2日ほどで悩んだ結果が下のとおり.

CPUAthlon64X2 5000+ Black Edition\7,580
マザボGIGABYTE GA-MA78G-DS3H \10,580
メモリPC2-6400(DDR2 800) 1GBx2 \4,560
CPUクーラーNINJA 弐(SCNJ-2000) \4,280
HDDHITACHI HDP725050GLA360 \6,500
ケースAntec ThreeHundred \9,750
電源玄人志向 KRPW-V400W \4,650
合計\47,900

 ああ,3代続いて AMD だ(笑) ミドルレンジ CPU だとやはり AMD のほうがコストパフォーマンスが高いので.
 で,Athlon = 熱い = ファンがうるさい,と思い込んでいたので,ケースとクーラーには金かけてみたが,つめた!!Σ( ̄□ ̄; アイドル時は気温 +2℃? これなら大げさな冷却しなくてもよかったな…orz
 CPU はクロック倍率フリーというところに惹かれて Athlon64X2 5000+ Black Edition をチョイス.が,ちょっとした問題が.3GHz でも普通に回る (ノーマルは 2.6GHz) ことは確認できたが,マザボでクロック倍率をマニュアル設定すると Cool'n Quiet が効かねぇ.そういうもんなのか?
 コストダウン対策として,光学ドライブは使いまわしで,ビデオもオンボードw
 まぁ 5万以内で組めたので,いいかなと.

 と思ったら,あああ,シリアルポートがついてない(;´д⊂) 組み込みプログラマの端くれとして,これは痛いな.USB シリアル変換ケーブルでも買ってくるか.

ntp.conf の罠

最近,録画 (TV キャプチャボードを使った PC での録画) の冒頭が切れるようになった.

ちょうど,グラフィックボードの交換と発症時期が重なっていたので,これが原因かと思って録画時間を早めに開始する措置をとっていたのだが,ふと時計を見ると,1分遅れてるやん…なんで?(;´д⊂)

自宅 LAN 環境では,Linux サーバに ntpd を立てて WinXP と同期させているので,時刻ずれとは無縁のはずだったのだが… 改めて Linux のログを確認すると,1ヶ月以上前から Linux サーバが参照している上位 ntp サーバとの同期に失敗している.しかも ntp.conf の設定が前設定したのとえらい違うぞ? しかもしかも,前設定した内容が ntp.conf.sv なんてファイルに勝手にバックアップされてるぞ???

と思って調べてみたら,引っかかったのがここ.DHCP 使ってると勝手に ntp.conf が書き換えられてしまうのね.
そういや,ntp.conf の作成日時が前回リブートした日時と一致してるわ.

Phun で遊んでみる


Phun なる 2次元物理シミュレーションソフトソフトがある事をニコニコ動画で発見したので,遊んでみた.

物理 sim といっても実際はそんなに気難しいものではなく,現に作者は子供の教育用に開発したらしい.しかしその sim 性はなかなか奥が深く,凝ったものではピタゴラ装置や,実際にトリガーを引いて弾を発射できる拳銃のモデルまで作った人も!

というわけで自分も作ってみた.記念すべき第 1作目は,日本が誇るピタゴラ装置「ししおどし」(笑) この程度の物でもやはり奥が深く,ししおどし本体の支点の位置などを細かく調整しないと,うまく動作しない.一番苦労したのはウォーターポンプかな.最初は水車で水を持ち上げていたのだけれど,これでは水が大量に必要 (水の量が多いと sim が極端に重くなる) なので,なるべく少ない水で動作する機構を何度も作り直したりした.

こうして苦労してうまく動くようになったときは,感動っすよヽ(´ー`)ノ これはハマるわ(笑)

HUNDAI W240D 購入

ファイル 93-1.jpg

HYUNDAI W240D が届いたので,感想なぞを.HYUNDAI の液晶なんて聞いたこと無いのでどうなんよ? と思っていたが,価格.com での評判では「コストパフォーマンスは高い」との事だったので,買ってみた.

まず画面が広すぎるぜwww 今までの画面 (1280x1024) 分のスペースのさらに横に TV キャプチャのウィンドウが置けるので,作業が快適! なれないうちは,気がつけば画面の左 2/3 しか使ってなかったりw 貧乏人がいきなり豪邸に引っ越して,そのスペースの広さを使いあぐねている感じ?
あと,アスペクト比表示モードが一通りはそろってるので,変なアスペクト比表示を強制させられることもなさそう.
スピーカーは使ってないけど,たぶんショボショボなんだろう.

まぁよかったのはこれくらいで,悪い点は,
・画面上端の液晶の色調が変
 画面から 40cm 位の距離で使ってると,画面上端は視点から (俺感覚で) 15度くらい見上げる感じになるのだが,それだけの角度がつくと液晶の色が少しおかしくなる.離れて見れば問題ないのだが,今までの iiyama の液晶ではその角度ではなんとも無かったので,やはり LCD パネルが安物ということだろう.
・タッチパネル使いにくい
 調整ボタンがタッチセンサーになっていて,デザイン的にこっちのほうがいけてると思ってる人もいるのかもしれないが,黒の前面パネルではどこ押せばいいのか見難くて使いにくい~
・中途半端に黒
 このモニター,筐体全体が黒かと思ったら,前面パネルとスタンドだけが黒で,横とか裏から見ると白が目立つ(笑) 改めてカタログ写真見たら,前面パネルの横端に白い筐体樹脂が見えてるし.なんでこんな中途半端な… こんなんだったら白モデル出してよ.そっち買うから.
・アスペクト比切り替えは,ワンボタンで切り替えるようになってるとうれしかったな.ボタン余ってるんだし.
・入力切替の反応が悪い
「ピッ」と音はすれど,切り替わっていない場合が多々.HDMI→DVI に切り替えるときは 3回切り替えないといけないのだけど,ストレスがたまる~(--#

まぁ値段から考えたらおおがね満足っすかね~ LCD 変色の問題だけは失敗したけど,事前に知っていたとしてもこの値段なら買ってたと思うし.人によっては我慢できないレベルだと思うので,気になる人は実物見て判断したほうがいいかも.

俺が死んだら,CD-Rの中身は確認せずに捨ててくれ

ファイル 88-1.jpg

ほら,誰にでもあるでしょ.他人に内容知られたくないヤヴァイ個人情報保護の観点から機密を守らなければならない CD-R とか.

昔,HDD が 2GB だったころは,CD-R はデータ退避メディアとしては十分な容量だったが,今日日 HDD の容量があまりまくってる時代には,44枚もの CD-R はかさばって仕方がない.データは HDD にコピーしたが,さて,この CD-R をどう処分したものか.

というわけで,電動ドリルにワイヤーカップブラシをつけて,反射層を削り落とした.これならデータは読めないだろうし,CD-R の表面に書いた内容説明も削り落とせるので,一石二鳥ヽ(´ー`)ノ

韓国フィルタ

Linux サーバを立ち上げている人なら誰でも直面する問題,セキュリティ.Linux ではやたらとログが残るので,どこからどんなアクセスがあったかが詳細にわかるので,気になりだすと仕方がない.

特に,中国・韓国あたりからのアタックがひどい.スパムメールの踏み台にしようとしてるのか,メールサーバーに何度もアクセスして失敗した跡がある.

あー,俺別に中国人・韓国人に友達いないし.そんなとこからのパケット無条件に捨ててくれていいよ.

と同じ境地の人がいるはずと思ってググって見たら,いたよ…↓
http://www.hakusan.tsg.ne.jp/tjkawa/lib/krfilter/index.jsp

これは iptables を利用して,中国・韓国・東南アジアからのパケットを無条件でポアするフィルタ.
3日ほどで 221件のアクセスが引っかかった↓

Chain KRFILTERED (2247 references)
 pkts bytes target     prot opt in     out     source               destination
  221 10768 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0

変なアクセスログがすっきりヽ(´ー`)ノ

cookie 食えねぇ…

自宅サーバーのアパッチで,クッキーを食わせる cgi を立ち上げていたところ,クライアント PC のブラウザ (IE) でどうやらクッキーが保存されていないことに気づいた.

他のサイトではクッキー OK なので,IE はシロだと判断して,Apache の設定を疑っていたのだが,最初のこの判断が間違っていておおハマリしてしまった.Apache の設定をいくらイジっても改善しない.

ここで,確か IE にはゾーンごとにセキュリティの設定が別々に設定できたよな? と思って一番ゆるい設定にしてみたら,クッキー食えました.犯人は IE かよ…orz

で,さらに詳しく調べてみると,サーバの URL は外から見ると http://naruto.sytes.net/ だが,ローカルでアクセスするときは,http://dds_svr/ とマシン名だけでアクセスしていた.で,IE は,URL にピリオドが何個ついているかもゾーン判定の材料にしているようで,後者でアクセスするとなぜかキツイ制限になってクッキーが拒否されていたようだ.

でも普通,ローカルアクセスのほうが制限がゆるくできると思うのだが….

ページ移動