netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2006-07-03 [長年日記] ▲
_ [hyCalendar][お知らせ] hyCalendar 1.3.9 リリース ▲
ご指摘いただきました日付名のフォントの間違いを直しました.
それから,六曜モジュールのほうは,今までは六曜計算 DLL がカレントディレクトリにあっても読み込んだのですが,ちゃんと六曜モジュールのあるディレクトリに固定しました.また,発見できなかったときに何もメッセージ出してないことに気づいたので,ファイル参照のダイアログにメッセージを出すようにしました.
2006-07-02 [長年日記] ▲
_ [hyCalendar] 六曜モジュールなんかも修正 ▲
参照ファイルを追加した瞬間と,ファイルを開いたタイミングで違うDLLがロードされる可能性があったので,久々に六曜モジュール側も更新.明日か明後日にはリリースします.
今さらながら,DLL 側に stdcall 指定が抜けていたこと発覚.今までは引数/戻り値のどちらかしか持たないような手続き・関数ばかりだったので(?),偶然動いてたみたい.stdcall が抜けてると,スタックポインタがずれるのか何かで,関数から戻るまでは正常なのに戻ったら突然アクセス違反という厄介な動きをしてしまう.原因に気づくのに時間がかかってしまった.
2006-06-27 [長年日記] ▲
_ [hyCalendar][お知らせ] hyCalendar 1.3.8 リリース ▲
目立つバグ入りのバージョンが各所で配られっぱなしというのも良くないので,とりあえず昨日発見した問題2件+新たに見つけた2件の計4件の修正でリリースしました.ご迷惑をおかけして申し訳ありません.
_ [AspectJ][読書] AspectJ Cookbook オンライン版を読む ▲
ACM から,書籍の中身をオンラインで全文読めるサービスの案内が届いてたので,使ってみた.それなりに本の種類が多く,オライリーの一部の本なんかも無料で読める.当然ながら英語版しかないけど,PDFじゃなくて普通にHTMLとして供給される上,「よく似た文章が他の本にもあるよ」と通知が出たりするので,けっこう面白いサービスだと思う.
で,AspectJ Cookbook を見つけたので読んでみた.ほとんどのレシピは当たり前というか,各ポイントカット定義の使い方の例示みたいなものばかりだったのだけど,1つだけ面白いのを見つけた.プロパティの値管理にアスペクトを使おうというもの.
staticinitialization(Main)
なんかを捕まえて設定値のロードを行っておく.そして,プロパティの値を使うオブジェクトが生成されたとき(execution(public MyClass.new(..))
)オブジェクトに設定値をセットしにいく.これによって,利用者側がConfigFile.getInstance().getSomeProperty()
といった形で設定を読みにいく必要がなくなり,設定を格納したオブジェクトへの依存関係を削ることができる.
設定値の変更にも,set(int Main.someProperty)
のように代入を監視することで対応できるので,設定ファイルの読み書き処理と利用者側の各クラスとを完全に切り離すことができる.
この方法を使うと,プロパティの値に依存して動くクラス群のテストなんかが楽になりそう.普通なら,設定ファイルに値を読みに行く処理をモックで差し替えるとか,様々な設定値のファイルを用意しておくとかになってしまうところが,単にテスト用コードが「アスペクトが読んでセットしてくれるはずのプロパティ」の値を代理でセットしにいくだけで良くなる.
「誰がこのフィールドに値をセットするんだ?」とか混乱は起こりそうだけど,そこはちゃんとドキュメントするなり,Java ならアトリビュート使って「これはアスペクトにセットしてもらいますよ」と明示するなりして使えば何とかなりそう.
この設定値の管理アスペクトは,「システムのあちこちで共有のパッシブなオブジェクトを使う」というのを,「システムの動作中の適切な時点でアスペクトが勝手に動く」という形で置き換えている,ロギングとよく似たパターンであるという気がする.fan-in analysis によるアスペクトマイニングで出てくる候補というのが,実はこの種の処理だったりするのかもしれない.
この設定値の管理方法,既に山ほど設定項目の入った設定ファイルクラスを持ってる身としては,すごく便利そうだなーと思ってしまう.Delphi用のアスペクト指向環境があったら喜んで使っていそう.
2006-06-26 [長年日記] ▲
_ [hyCalendar] バグ告知 ▲
ごめんなさい.周期予定の条件で「他の予定から X 日"前後"」が,キャッシュ処理に誤りがあってうまく動いてません.「後」のほうは,動く場合がありますが「前」のほうはまったく動いてないと思います.テストが完全に抜けていました.
また,祝日ではないけど日付の名前にしている予定が,ポップアップ文字列から消えています.
最新版バイナリを作りましたので置いておきます.
まだ他にも問題がありそうなので,もうちょっとテスト項目を洗いなおしてから,正式リリース用のアーカイブを作ります.
2006-06-25 [長年日記] ▲
_ [ツール] pukiwiki 1.4.7 へ移行 ▲
日本時間で26日付けでアナウンスされてたのを見て移行してみた.
差分版のほうをダウンロードして,元 wiki を cp -R
で丸ごとコピーしておいた場所で,上書きするとまずそうなcacheディレクトリの中身とFrontPageに相当するファイルとpukiwiki.ini.php
とpukiwiki.skin.php
以外を上書きコピー,pukiwiki.ini.php
はパスワード設定など手写しして,最後にパーミッションの統一取れてないところを直して,動作確認.
あっさり動作してくれたので,古いほうとディレクトリごと差し替えて終わり.古いほうはそのままバックアップとして保存.
それにしても,「最近の更新」リストの中身を壊さないように移行する方法が分からない…….
_ いなかです [HPに載せれるカレンダーを探してここまで来ました。 突っ込みと言われてもまだ使っていないのでなんとも! パソコン内で..]