昨日のサイトの図4(改良LEDフラッシャ)の回路をブレッドボード上に作ってみた。コイルは鈴商で \50 で買ってきた 5t のコイル (CM08RA) で代用。トランジスタには 2SC2655、SBD には千石で 10本 \100 で買ってきた ERA83-006 を、LED は SDL-5N3PW (typ. 5.5cd, min. 2.5cd, 20deg) を使った。コイルの巻き数が少ないので LED が点かないのではないかと心配したが、一応光った。あまり明るくないような気がして、LED の電圧・電流を測ってみると、およそ 2.5V 11mA と出た。電流が少ないのはまあいいとして、電圧が妙に低い気がするのだが・・・テスターの問題だろうか。ちなみにこのときの入力は 1.1V 45mA だった。効率は 27.5[mW] / 49.5[mW] * 100 = 56[%]。
LED を外して無負荷で出力電圧を測ってみると、およそ 20V 出ていた。
LEDを電池1本で光らせるコンバータ - 回路としては、ELM - LEDヘッドランプにあるものとほぼ同じ。ブロッキング発振回路の動作解説がある。
PowerShot A400 で MMC が使えるか試してみた。意外にも全く問題なく使えた。HyperHyde 用に買った 32MB の MMC が5枚も余っているわけだがこれが使える。もっとも 128MB くらいの SD カードを買ってしまった方が使い勝手も良いのだろうが。
BUFFALO の PCastTV をインストールしたときにインストールされる MPEG2 デコーダは CyberLink 社製のものだったようだ。ファイルのプロパティを見て気付いた。
研究室のマシンに coLinux を入れてみた。以下のサイトを参考にした。
coLinux 内から ping が通らず、少し迷った。VB2004 のパーソナルファイヤーウォールではじかれていたのが原因だった。テンキーが有効にならない(Num Lock が効かない)のだが、何か設定がいるのだろうか。
X と Java を入れて、JF や jFD の動作確認をしてみたいのだが、まだそこまではやっていない。
PATH の通ったところに vi が無いのはちょっと困った。とりあえず nano を使って設定ファイルをいじった。後で知ったが /initrd/bin/vi にあった。
単三または単四電池2本、SD カードのデジカメを中古屋で探してみた。Canon PowerShot A400(萌)を \13,000 にて購入。色違いの雫の方が良かったのだが、萌の方が安かったのでこちらを買った。帰ってからよく見ると、説明書などがビニール袋に入ったままで、取り出された形跡がない。未使用品だったのだろうか。
ラジオデパート 1F で LED 球キットなるものがあった。自転車のライトに使えないかと思い、買ってみた。中身は、電球の口金、φ8mm の白色 LED (OSTW8131A ?)、15mA の定電流ダイオード (E-153)、整流用ダイオード、熱収縮チューブと説明書だった。半波整流というのが何だかなぁ。ショットキーバリアダイオード4本によるブリッジ整流にして、定電流ダイオードは 10mA を2本並列で 20mA にしてみるのはどうだろうか。
GA のドライバの設定をいろいろいじってみたら、何とかオーバーレイが使えるようになった。今まで、この関係の設定はいじったことがなかったのだが、なぜオーバーレイが使えなくなっていたのだろうか。謎だ。
ついでに DirectShow Filter Tool を使っていろいろいじってみた。MPEG2 のデコーダはいくつかインストールされているが、BUFFALO Video/SP Decoder が最も CPU 負荷が軽かったので、これが優先して使用されるようにメリット値を変更しておいた。
st6e で PowerDVD を使っての DVD の再生ができなくなってしまった。また mplayer2 で MPEG2 ファイルを再生すると画像が上下逆さまになってしまう。
dxdiag でチェックしてみると、DirectDraw アクセラレータ、AGP テクスチャアクセラレータが利用できないと表示された。
TV の表示だけでも CPU パワーを食っている。今までは TV を見るだけなら 5〜10% の CPU 使用率で済んでいたのだが、どういう訳か 80% ぐらいになっている。原因は分からないがオーバーレイが使用できなくなってしまったようだ。VNC 経由で動画を再生してみると、コマ落ちしながらも画像が表示されることからも、オーバーレイが使用されていないことが確認できた。
GA のドライバを最新版に入れ替えてみたが、症状は変わらず。orz
久しぶりにデジカメを引っぱり出して、本日開業の TX の流山おおたかの森駅などを撮ってみた。今のデジカメは 85万画素しかない上に、電源は単三電池4本で重く、しかもすぐ無くなる。反応も遅いし、さらに、以前落としたときに爪が一部壊れてバッテリーのふたがきちんと閉まらない。そろそろ新しいデジカメでも買おうか。
このデジカメに以前 2000mAh の NiMH を入れて数ヶ月間ほったらかしにしていたところ、4本とも液漏れを起こしていた。NiMH での液漏れは、この時初めて見た。今日はこの液漏れを起こした電池を使って撮影してみたのだが、10枚程度撮影できた。全く使えないと思っていただけに意外だったが、やはり実用的ではない。
実家の Ls150 の RTC がまた狂ってしまったので、SETRTC の動作をもう一度調べてみた。SETRTC を iplware として動作させて、RTC を正しい日時にセットしてから Win98 を起動したところ、Win98 上では、日付は正しくなっていたが、時刻が狂ったままだった。MS-DOS モードで再起動してみると、DOS 上では時刻が狂ったままだったが、SETRTC で RTC を確認してみたところ、RTC の時刻は正しくセットされていた。このまま何もせずに再起動してみたところ、Win98 上でも時刻が正しい状態になった。謎だ。
実家のマシンは、HDD 起動メニューで自動起動するように設定してあるが、もしかしてそれが関係しているのだろうか。SETRTC で日時をセットしたあと少しウェイトを入れた方が良いだろうか。
Ls150 の RTC 用の電池を外して電圧を測ってみたところ、2.8V しかなかった。2日間電源を入れなかっただけでこの状態ということは、やはり寿命だろうか。別のジャンクマザーから外した電池と交換してみた。(こちらは長い間充電していなかったために 1.2V しかなかったが。) 果たしてどちらの電池が良かったのだろうか。
VC++ 7.1 で STL を使うときに、try 〜 catch を使った例外処理を使いたくないときは、ヘッダファイルをインクルードする前に、
#define _HAS_EXCEPTIONS 0
と書いておけばいいらしい。VC++ 6.0 では STL で例外処理を使わないようにすることはできないようだ。
実家の Ls150 に SETRTC を放り込んでみた。どういうわけか年月日だけがセットされて時分秒がセットされなかった。
実家の Ls150 のメモリを 32MB から 80MB に増設しておいた。160MHz にオーバークロックすれば体感速度は大きく向上するが、道具がないのでやりたくともできない。
Win2k で DVD-R ドライブの速度が遅いような気がしたので、DMA が有効になっているか調べようとしたが、デバイスマネージャを見ても DMA に関する設定が見あたらない。とりあえず再起動したら速度は戻ったようだが・・・。DMA に関する設定はレジストリでは以下の場所に保存されているそうだ。(パソコン Windows 2000/XP 設定 より)
8. HDD の DMA を有効にする レジストリ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\4D36E96A-E325-11CE-BFC1-08002BE10318\ の 0001, 0002, ... から「プライマリIDEチャネル」を探す(Driver Desc の値). Ultra ATA/100 なら MasterDriveTimingMode(または SlaveDeviceTimingMode)を 10010 に設定. Ultra ATA/133 なら 12010
Mozilla 1.7.11 をインストールした。TbE 1.14.2005060301 を入れてあったのだが、リンクを Ctrl を押しながらクリックしても、新しいタブでリンクが開かなくなってしまった。仕方なく TbE 1.14.2005071301 を入れたのだが、かなり挙動不審だ。何回か、インストールをやり直したところ、だいたいの不具合はなくなったのだが、まだおかしい動きがある。外部アプリから Web ページを開くときには新しいタブを開く設定にしてあるのだが、どういうわけか一度新しいウィンドウが開いてから、それが閉じられそれから新しいタブが開く。非常に鬱陶しい。Mozilla Mailer のリンクを Ctrl を押しながらクリックしたときの挙動も相変わらずおかしい。TbE の作者は Mozilla Suite をほとんど見捨てているような感じだし・・・。もっと軽くて安定したタブブラウザ拡張が欲しい。(Firefox 用にはいくつか代替品があるようだが・・・。)
短時間でできる汎用の同期オブジェクト - メータードセクションなるものの解説。英語版にソースあり。
202 名前:デフォルトの名無しさん[sage] 投稿日:2005/08/09(火) 03:52:29 ディレクトリの作成日時や更新日時を変更する方法を教えてください。 203 名前:デフォルトの名無しさん[sage] 投稿日:2005/08/09(火) 05:04:28 ディレクトリの更新日時は、ちょっとしたことで変わります。 諦めたほうがいいかと。 SetFileTimeしてみた? 205 名前:デフォルトの名無しさん[sage] 投稿日:2005/08/09(火) 06:32:42 >>202 http://homepage3.nifty.com/k-takata/mysoft/touch.html 206 名前:デフォルトの名無しさん[sage] 投稿日:2005/08/09(火) 08:31:17 ありがとー。 これで書庫のディレクトリの日時の復元が出来そうです
自分が書き込んだ記憶がないのに、見慣れた URL が出てきてちょっと驚いた。>>206 はアーカイバでも作るのだろうか。ついでに Win9x に対応させるつもりなのかも気になるところ。その必要がないのならわざわざ touch を参考にしなくとも良いわけだが。まあ、ソースを公開していたことで役に立つのは嬉しいことではある。>>203 に関しては、NTFS では確かにそうで、ディレクトリ内にファイルを作ったりすると更新日時が変更される。一方、作成日時の方は変更されない。
[INFO] Windows の Rundll と Rundll32 インターフェイス
mixi 始めますた。
@nifty の「迷惑メールフォルダー」がうまく spam を分類してくれない。昨日から、「10時間後解除となります。」という題名の spam が何件も届いているが、何回学習させても spam として分類してくれない。全部 ID 宛なので、ID 宛は着信拒否するとするかな。
「実行ファイルサイズを減らす」を見ていて思い出したが、WinMain() に渡されるコマンドラインには、実行ファイル名は含まれていない。KeyX のソースでは、実行ファイル名を含んだ状態のコマンドラインを WinMain() に渡すというミスをしていた。動作に問題はないが、気持ち悪いのでとりあえず修正しておいた。なお、tnywmain.c を使っているソフトは他にも公開しているが、他のソフトは WinMain() に渡されたコマンドラインは使用していないので、今のところ修正する予定はない。
@nifty 会員種別の移行をした。(「@nifty(旧NIFTY SERVE)会員」→「@nifty 会員」) 何もしなければ8日に自動的に移行されるが、一足早く自分で済ませることにした。
自分にとって、会員種別の変更による特に大きな変更点はメールシステムの変更である。@nifty 会員になって、「迷惑メールフォルダー」や「スパムメールブロック」など spam 対策の機能は大幅に向上しているのだが、旧 NIFTY SERVE 会員のようなメールの受信履歴が無い。
今までは、「電子メール着信拒否サービス」で拒否されたメールは、受信履歴で送信者と件名を確認することができた。「電子メール着信拒否サービス」では、メールアドレス後方一致で 100件しか登録できなかったが、受信履歴を活用することで、spam を9割以上はじくことができた。また、誤認をチェックすることができた。
今までの「電子メール着信拒否サービス」に相当するものが「スパムメールブロック」だが、受信履歴が無いために誤認をチェックすることができないので、あまりきつい条件を設定するわけにはいかない。また、設定したアドレスがどの程度有効に働いているかも確認することができない。かなり不便だ。
「迷惑メールフォルダー」はベイジアンフィルタをベースにしたフィルタのようだが、Spam Mail Killer と組み合わせて使うと学習がうまくいかない。というは、「迷惑メールフォルダー」で spam と判断されず SMK で spam と判断された場合、そのメールが spam であるということを学習させる必要があるにもかかわらず、学習前に SMK で削除されてしまうので学習させることができなくなってしまうのである。とりあえず SMK は一時停止させて、手動でメールチェック・学習させることにした。不便だ。どうするのが良い方法だろうか。
Web メールの動作が非常に遅いのも気になる。
玄箱のディスク (/dev/hda1) の空きが無くなってしまった。とりあえず、apt-get autoclean を実行して apt-get のキャッシュを削除してみたが、空きは 80MB 程増えただけだった。
無駄なファイルがないか探し回ってみたところ、/var/spool/exim/msglog/ に 1GB 以上ものログファイルがあった。ローカルのメール配送用に exim を入れておいたのだが、設定がうまくいっていなかったようである。root 宛のメールが配送されず、エラーログがたまっていた。/etc/aliases をいじって、root 宛のメールを普段使っているユーザー宛に転送するように書き換えてから、newaliases を実行したところ、無事メールが配送されるようになった。
VC++6 では、for ループにおける変数のスコープが C++ の標準とは異なっている。/Za オプションを指定することで、スコープを ANSI C++ に準拠させることができるが、他の MS 独自の拡張も使えなくなってしまうため少々不便である。スコープの問題を解消するためのマクロがあるのだが、この前使おうと思ったときに思い出せずに苦労した。たまたま、見つけたのでメモしておこう。
#define for if (0) ; else for
だそうだ。MS のサイトにもこのマクロが紹介されている。(PRB: Variable Scope in for-statement Extends Beyond Loop) なお、VC++7 には、/Zc:forScope というオプションもある。
社本@ワック Blog - VC++ 関連の tips など。例: for 内で宣言した変数のスコープ範囲 - VC++、「古い形式の関数やクラスを使用しています」ワーニング(C4966) - __declspec(deprecated) - VC++
上記の「社本@ワック Blog」に WTL (Windows Template Library) についての記事があったのを見て、久しぶりに WTL について調べてみた。MFC よりもコンパクトなプログラムができるらしいのだが、まだあまり情報がない。
2つめのサイトは分量が多かったので、ローカルに保存しておこうと思い、Acrobat を使って PDF で保存したところ、600ページにもなってしまった。普通の書籍として出版できそうな分量だ。
コンパクトにできるらしいとはいえ、C++ を使う以上、スタートアップルーチンを省いてサイズを小さくするなどのテクニックは使えないのだろう。それでもおもしろそうである。
窓プログラミング - Windowsプログラミングの Tip 集など。「エクスプローラーを作る」、「実行ファイルサイズを減らす」などなど。「実行ファイルサイズを減らす」に関しては、lpszCommandLine を char * ではなく、unsigned char * にしないとコマンドラインに日本語を含む場合に正しく動作しないので注意。(参考: undll.exe)
SetWindowsHookEx() の WH_KEYBOARD_LL を使って、Ctrl と Caps Lock の入れ替えプログラムを作れないものかと試してみたが、うまくいかなかった。残念。Win2k/XP で動いて、インストール・アンインストールの必要がない、キー入れ替えプログラムを作ってみたいのだが・・・。
先月の spam メールの集計結果。着信拒否になった spam が 3038通。着信拒否にならなかった spam が 359通。そのうち Spam Mail Killer で削除できた spam は 351通(97.8%)。誤削除が 2通。