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

2006/11/13

AjaxTerm

AjaxでPuttyのようなターミナルコンソールを表示するソフトを見つけた
動かしてみた感じでは、普通に動くし(1テンポ遅れた感じはするが)
普通に使えるような感触だった。

設置も簡単で、pythonさえ入っていればUnix系のOSなら簡単に始められそう
ただ、デフォルトではローカルからのみ接続可能なので、Apache等のProxyを
介して外部から接続を受け付けられるようにする必要がある

ただ、セキュリティ等の問題は別レイヤで解決する必要があるので、使い所が
難しそうだ・・・ 

AjaxTerm
http://antony.lesuisse.org/qweb/trac/wiki/AjaxTerm

2006/11/07

Apache & Tomcat連携

mod_jk2を使っているサイトを見つけたので、メモ

今、サポートされているのはmod_jkとapache2.2から追加されたmod_proxy_ajp
2年も前にApacheのサポートが終わっているので、mod_jk2は使わないように!

そのときのアナウンス
http://tomcat.apache.org/connectors-doc/news/20041100.html#20041115.1