«前の日(08-27) 最新 次の日(08-29)» 追記

netail.net

自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.

最近のお知らせ (古いものはこちら)


2002-08-28 古い日記からの変換データ

_ bookmark manager

自分用に作ったブックマーク管理ツールを,こっそり公開.Libretto みたいな横長画面のマシン以外では役立つのかどうか知らないけど.

_ AspectJ

AspectJ の話のところに,「ワームホール」のことを追加.「ワームホール」という名前自体は AspectJ Users メーリングリストで「こう呼んだらいいかもね」みたいな話があったのでそこから拝借.もっとも,まだアスペクトのイディオムというのがそれほど整理されてないので,将来的には名前が変わるかもしれない.

ワームホールは,個人的には嫌い.AspectJ IDE for Emacs みたいなツールの助けがないとコードが追えないから.そもそもアスペクトの存在を仮定してクラスのコードを書くということ自体おかしいと思うんだけどなぁ.アスペクトなしでもクラスは動くべきで,コンポーネントの接続には別のメカニズムを使うべきだと思う.

_ JNI

Java からキーボード情報が取れないのは悔しかったので,いちおうJava Native Interface について調べた.

DLL に Java_pkg_class_method といった感じの関数名を用意しておくというだけの発想らしく,Delphi とか使っても簡単に作れそう.暇があったらやってみよう(最近こんなのが多いような気がする)


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の裏にある問題でもある.結局,明示したとして,「意識的な変更」を妨害することはできても,予期せぬ変更を防ぐことはできない.

……ということで,あっさり流された感じがする.

_ AspectJ

inter-type declaration は,AspectJ 1.1 では特定のクラスに宣言はできても Object (A||B).hoge; のように複数宣言することはできなくなったらしい.

_ ワイン

通販で,ボルドーの6大シャトーのヴィンテージワインが6ヶ月間,月1本ずつ届くサービスがあるらしい.個別で探す手間を考えると,1ヶ月あたり23,000円で悪くない金額ではあるのだが,もうちょっと手ごろな値段のワインを探したいところ.


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バイト分)のイベントが飛んでくることで判定している.我ながらひどい実装.