netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2002-08-28 古い日記からの変換データ ▲
_ AspectJ ▲
AspectJ の話のところに,「ワームホール」のことを追加.「ワームホール」という名前自体は AspectJ Users メーリングリストで「こう呼んだらいいかもね」みたいな話があったのでそこから拝借.もっとも,まだアスペクトのイディオムというのがそれほど整理されてないので,将来的には名前が変わるかもしれない.
ワームホールは,個人的には嫌い.AspectJ IDE for Emacs みたいなツールの助けがないとコードが追えないから.そもそもアスペクトの存在を仮定してクラスのコードを書くということ自体おかしいと思うんだけどなぁ.アスペクトなしでもクラスは動くべきで,コンポーネントの接続には別のメカニズムを使うべきだと思う.
2003-08-28 古い日記からの変換データ ▲
_ AspectJ ▲
AspectJ 1.1 での intertype declaration の微妙な変化のことをドキュメントに追加.まだ Introduction という表現になったままだったので,Introduction -> intertype declaration に修正.
_ AspectJ ▲
aosd-discuss ML にて,Obliviousness Principle in Aspect-Orientedというスレッドで,
Join Point というのはアプリケーション拡張のためのインタフェースの一つで,最終的なシステムがちゃんと動作するためには,クラスに private, public というアクセス制御があるように,Join Point にも何らかのアクセス制御が必要なのではないだろうか?(オブジェクトがアスペクトに「侵入」されるのを防ぐ方法などもあってもよいのではないか)
という話が出ていた.でも,過去の議論によれば,
「ソースコードを変更しないでね」と宣言するようなメカニズムを作ることは可能だが,実際にそれでよいのかというのは疑問.「予期せぬ変更」はAOSDの裏にある問題でもある.結局,明示したとして,「意識的な変更」を妨害することはできても,予期せぬ変更を防ぐことはできない.
……ということで,あっさり流された感じがする.
2004-08-28 古い日記からの変換データ ▲
_ [hyCalendar]全角スペースの扱い ▲
0.8.4 向けに,起動時にIMEを自動有効にするオプションを追加.ついでに,TODOリストビューにおいて,チェックボックスのON・OFF切り替えを半角スペースだけでなく全角スペースでも取り扱えるようにしてみた.
MS-IMEの状態取得では,JP・ENのモード切替が起こっても「変換モードの取得」では設定が取得されないことが判明.しかも IME は ON になっていると判定される.TListView は,EN モードのときのスペースキー押下は半角スペースとして扱うが,JP モードの「半角英数」入力時とプログラム側からの区別ができなかった.
仕方がないので,KeyDown イベント時にチェックボックスの状態を保存しておいて,その後飛んでくる KeyPress 時にチェックボックスの状態が既に変わっていれば処理済みなのでイベントをそのまま捨てて,チェックボックスの状態が変わっていなければIME の半角英数が有効なので半角スペースかどうか判定する,という微妙な処理で実装した.
ちなみに,全角スペースは,KeyDown ではトラップできずKeyPress で2回(2バイト分)のイベントが飛んでくることで判定している.我ながらひどい実装.