« 2005年9月 | メイン | 2005年11月 »

2005年10月21日

光陰矢のごとし

カテゴリー: [日常]

なんで,今月はもう21日なのでしょう.
なんで,もう1分以内でに22日なのでしょう.というか,書いている内に22日なった...
10月になったばかりという感覚だったんですけどね.

blogのエントリも今月は,このエントリで4つ目という.もしかしたら,最小記録?
今月も,残すところ,あと10日です.
前からですが,特に最近,どうも時間だけがすごい早さで進んでいるような気がします.

その割に,思った通りに事が進んでいないような気がして,焦ります.

投稿者 shingo : 23:59 | コメント (0) | トラックバック

2005年10月17日

HDD交換

カテゴリー: [パソコン]

主に少々古くなってきたという理由で,自宅のメインPCのシステムドライブを含むHDDを交換することにしました.

新しいHDDにOSごとコピーしてしまうために,「HD革命/CopyDrive」も買ってきました.
コピーの時には,一時的に新旧の両方のHDDを同時に接続しないといけませんが,マザーボードのIDEに空きがないので,外付けHDDケースも買ってきました.

しかし,予定外のことがいくつかおきました.

その1:IDE->USB変換コネクタがダメダメ

外付けHDDケースの他に,ケースではなく,IDE->USB変換コネクタみたいな,コネクタだけのものを買ってきてました.データをコピーするときは,一時的にケースにいれるのではなく,これにつなげば楽だと思ったからです.2.5inchのHDDにもつなぐことができるので,後々,いろいろと便利だと思ったので.
ところが,まともに認識しませんでした.まあ,この手のものがまともに動かないのは,良くあることですけど...

中に入っていた1枚っきりの説明書には,USBにつなぐ機器なのに,PCIにさす方法が懇切丁寧に書かれていました...なんだこりゃ.新手のジョークですか?

教訓:「安物買いの銭失い」


その2:CopyDriveの仕様

コピーするために買ってきた,HD革命/CopyDriveの仕様が思っていたのと違いました.
このソフト,CopyDriveという名前ですが,いわゆるOSからみた"drive"じゃなくて,物理的なHDD単位でコピーするものでした...OSからみたドライブ単位でコピーできると思っていたんですが...
もちろん,HDDの署名ごとコピーするから,ドライブレターの問題を起こさずにシステムドライブのコピーができるわけで,そこのところは妙に納得しましたが...
こういう仕様のため,サイズが異なるHDDにコピーすると,パーティションのサイズがそのままで,コピーされ,新しいHDDの後ろが空き領域になります.
勝手になおしてくれたりはしません.
さて,このソフトには,「プロフェッショナル」と,「スタンダード」があります.プロフェッショナルには,同じシリーズのPartition Liteがついてきます.つまり,元と同じパーティション構成で使いたかったら,パーティション操作ソフトが必要なのです.私はスタンダードを買いましたが,Partition Magicをもっていたから,助かりました.

パーティション操作ソフトを持ってない人は,スタンダードを買ってはいけません.後ろの空き領域に新しい領域を確保して使うしか,方法が無くなります...

そんな注意,Webにも外箱にもなかったような...なんか,いろいろだまされた気分になった日です.

さて,まだデータのコピー中です(思っていたよりも早い).
この後,HDDを交換して,パーティションサイズの変更して移動する作業が残ってます.この作業は無いと思っていたんですけどね...

投稿者 shingo : 01:58 | コメント (3) | トラックバック

2005年10月 1日

.NET Compact Framework と P/Invoke

カテゴリー: [プログラミング]

.NET Compact Framework で仕事してますが,いろいろやっかいな事が多くてまいっています.

P/Invoke(Platform Invoke)は,.NETから,DLLにあるアンマネージ関数(いわゆるネイティブな関数)を呼び出す仕組み(のよう)ですが,.NET Compact FrameworkのP/Invoke は制限が強く,Windows CEのAPIを呼び出すのに一苦労です.

基本的な型は自動的にマーシャリングされますが,構造体(特に文字配列を含む構造体)などは,その対象になりません.そういう構造体を引数に持つ関数を呼び出す場合,マーシャリングを手書きしてやらないといけません.

では,どうするのか.byte配列を作って,そこに構造体に必要な情報を頭から順番に詰め込むのです...
byte配列で無くても,他にも方法はあるようですが,自分でメモリを確保して,そこに詰め込むという点においては大して変わりません.それができるように,それを補助するためのクラスが用意されています.文字列を,エンコーディングに従って,バイト列にしたり,バイト列をコピーしたりするものです.

で,WindowsのAPIの呼び出しには,構造体が多用されています.もちろん文字配列を含むものも多いわけです.一つAPIを呼び出せるようにするために,膨大なコードを必要とします.
引数が簡単なAPIならいいんですけどね.

構造体のメモリ上の並びは,.NET Frameworkと違って必ず書いた順番になりますから,かえって楽ですし,メンバの型がマーシャリングの対象になる型だけなら,特に考えることはないようなんですが,理想条件ばかりじゃないですから.

まあ,プラットフォームをまたぐ呼び出しが面倒なのは理解できますが,ちょっと面倒というか,ごちゃごちゃしすぎている感じです.プラットフォームをまたぐ複雑さが,コードに直接出てきてしまう感じですね.その割には,制限のためにそもそも呼び出せないAPIもあるんですよね.

投稿者 shingo : 22:27 | コメント (0) | トラックバック

国勢調査

カテゴリー: [その他]

今年は,国勢調査の年です.うちにも,もちろん国勢調査の用紙が来ています.

封筒に,日曜日に来るとか書いてありましたが,都合が悪いんですけどねえ.

あと,「仕事をした時間」を書く欄がありますが...はっきりいって,覚えてない^^;
というか,いつから仕事で,いつからそうじゃなかったんでしょう?
タスクスイッチが頻繁だとはっきりしませんし,覚えてません.
まあ,だいたいあってそうな時間を,適当に書いておくしかないでしょう...
って,そんなんでいいんだろうか.良くないような気がするけど,どうしようもないような気がします.

投稿者 shingo : 00:06 | コメント (0) | トラックバック