2007/04/15

ログオフ or 電源オフに時間がかかる

Windowsのログオフや電源オフの時間がかかるようになって、イライラしてきた。
調べてみると、どうやらレジストリのタイムアウト待ちが原因のようだ。
なので、こいつをインストールして解消できた。

==User Profile Hive Cleanup Service==
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=1b286e6d-8912-4e18-b570-42470e2f3582

詳細についてはこっちを参照

==プロファイルのアンロードに関する問題のトラブルシューティング==
http://support.microsoft.com/default.aspx?scid=kb;ja;837115

2007/04/12

Windows Updateが上手く動かない

同僚がWindows Update が上手く動かず(CPU 100%で固まる)悪戦苦闘していた。いっしょに調べていていくつか原因のようなものを見つけたのでメモ

  1. cygrunsrvを動かしている
  2. MS Office 2003が入っている & Microsoft Update を使っている
  3. その他
まずは1番目、cygwinのデーモンをWindowsサービスに登録して動かすためのツール"cygrunsrv"がサービスとして動いているとWindows Update が上手く動かないことがあるらしい。ただ、サービスを停止してしまえばいいらしいので対応は楽。ただ、同僚のマシンにはcygwin自体がインストールされていなかった

2番目の"MS Office 2003が入っている & Microsoft Update を使っている"場合はパッチがあるようなので、それをダウンロードして、インストールしてみる。原因はSvchostがCPUを100%使い切ってしまうためらしい。

ただ、このパッチをインストールするために、Windows Installer をアップデートする必要があるので、要注意!

==ホットフィックス パッケージ 916089 を適用した後に、 Windows Update から更新をインストールするとき、アクセス違反が表示されます。==
http://support.microsoft.com/kb/927891/

==Windows インストーラ 3.1 v2==
http://support.microsoft.com/kb/893803/

ただ、このパッチを当てても問題は解決しなかった

3番目のその他として、時刻がずれているとWindows Update に失敗するので同期を取ったり、ウイルス対策ソフトの設定をデフォルトに戻したりと色々やってみたが、まったく効果なし。ただ、何度か繰り返していると上手くWindows Update が出来てしまった。原因がつかめないまま終わったので、どうも釈然としない。

2007/04/11

マクロ関数!=関数

同じような処理(構造体にデータをセットして関数に渡すだけ)をソースのあちこちでやっていたので、マクロ関数を定義して読みやすくしてみた。関数を新しく作っても良かったが、引数の数が多くなりそうだったので、マクロ関数にした。

C言語のマクロ関数はただ単にプリプロセッサで文字列の置換がされるだけなので、型チェックや変数の値とかに注意する必要はあるけど、使うのは簡単(使い方を誤ると副作用もでかいけど・・・)

普通の関数と違って、ポインタ渡しで渡す必要が無かったり、戻り値が取れないとか使い所を分けてやる必要があるけれど、これってCの初歩じゃないのか?

2007/04/07

portupgradeの場所が変わってた

portupgradeのports Collectionでの場所が変わっていたのでメモ

/usr/ports/UPDATING の記述によると2007/2/5にはすでに変わっていたみたい・・・orz

新しい場所は、 ports-mgmt/portupgrade なので、sysutils/portupgradeを探しても見つからないわけだ

2007/03/13

Windows2000から Vistaへのアップグレードメモ

Windows 2000(W2k)からWindows Vistaへアップグレードしようとしたときに、いくつか躓いたのでメモ

  1. VistaのアップグレードにはHDDにインストール済みのWindowsが必要
  2. Vista 64bit は、インストールDVDからブートしてインストールする
  3. Vista 32bit は、Windows2000から直接インストールできるが、アップグレードではない
  4. Vista 32bit から64bitへのアップグレードは出来ない?
  5. Vistaでパーティションを切るとW2kのインストーラーから正常に見えない
まず1番の"HDDにインストール済みのWindowsが必要"なのは、アップグレードの上で面倒だった。
W2kのアップグレード版なら、Win98のCDを途中で要求されるが、それさえクリアすればそのままインストールが続行できたので楽だった。だが、Vistaのアップグレード用のプロダクトキーだと、HDDにW2kが入っていないとインストール出来なかった。なので、余っていたW2kのライセンスを使って新しいマシンにVistaのアップグレード版を入れようとするとインストールが面倒なので注意!

2番目は、W2kから64bit版Vistaへ移行しようとするには、VistaのインストールDVDから起動する必要がある。32bit版Vistaは、インストールDVDをW2kが起動しているときに入れてウイザードに従えば出来るから、セットアップ手順が異なるので気をつける。特に、64bit版のインストールDVDを入れてもまったく実行が出来ないが、これは仕様らしい(DVDからブートしろという表示は出てこないのが、不親切 ただ単に、実行できませんとだけ表示される) 

3番目は、MSのホームページで表示されているのでパス。バックアップを取っておきましょう(w

4番目は、32bit版でインストールしてしまった後で、64bit版をインストールしようとしたら出来なかった。これはアップグレードにはならないからなのか?(Ultimate版同士だから?) 仕方が無いので、W2kをインストールしなおして64bitへアップグレードした。ついでに、同じマシンなのに32bit版でアクティベーションしてしまうと、64bit版ではすんなりオンラインでアクティベーションが通らなくなった。
どうやら同じマシンでも32bit版と64版では違うらしい

5番目が一番厄介だった。4番でも書いたが、インストールに戸惑って何度もVistaのインストーラーで操作したHDDにW2kをインストールしようとしたらトラブった。原因は、Vistaで作ったパーティッションをW2kのインストーラーは上手く扱えないこと。Vistaで一度綺麗にパーティッションを削除しないとW2kが上手くインストールできない。
ただ、VistaのインストーラーもW2kのインストーラでパーティッションを操作した後だと上手く操作が出来ない(Vistaのインストーラーがエラーを吐いて落ちる)ので、W2kもVistaもインストール出来ないHDDになってしまう(w

そういう場合は、LinuxとかのLiveCDで修復可能(今回はFreeSBIEを使用)
コマンドは下記のとおり
$ su -
# dd if=/dev/zero of=/dev/hd0 count=1m

countの値は結構適当(w ただ、つけないとむちゃくちゃ遅いので適当な大きさをつけておくこと
C+tで転送量とか見えるので、ひまなら時々押してみるのが良いかも

2006/12/27

メモリ増設

会社のPCにメモリが256MBしかなかったので、増設した。
+1GBなので、これで快適にVisualStudioが動く。

というか、SI会社のPCが何で256BMしかメモリーをつんでないのだ?

今のところ増設したメモリは問題ないようだ。もし、壊れるな速く壊れろ(w
(バルク品なので、店保証が1ヶ月だから)

仕事が忙しいのでしてないが、こういうmemtestとかでテストしないと
後で原因不明のトラブルに悩まされるのでやっておくこと!

memtest86
http://www.memtest86.com/
memtest86+
http://www.memtest.org/

2006/11/21

hibernateで一括更新

hibernateを使っていて、SQL風に一括で更新したい場合がある。
(O/Rマッパーでやるべき問題かは別として)
そういう時は、HQLを使えば一括で更新が出来る。

Hibernateリファレンス DML-style operations
http://www.hibernate.org/hib_docs/v3/reference/en/html/batch.html#batch-direct