«前月 最新 翌月» 追記

netail.net

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

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


2002-10-01 古い日記からの変換データ [長年日記]

_ 読書

「紅茶の辞典」「魔法のお店」「魔幻境綺譚」を読み終え.

「紅茶の辞典」は作った人の紅茶への思い入れが分かる.残り二つは,以前も読んだことがあるものだけど.魔幻境綺譚のほうはその悲しいエンディングがちょっと好みだったりしてつい何度も読み返してしまう.

_ 論文

ASE2002 開催の Workshop on Declarative Metaprogramming (DMP)の論文をチェック.

Robert E. Filman and Klaus Havelund: ``Realizing Aspects by Transforming for Events''

アスペクトを作るのに必要なイベントの種類をまとめている論文.AspectJ の join points では十分ではないらしい.この論文,どんなふうにアスペクトが使われているかをまとめてくれているので,参照するには便利かもしれない.

Tom Tourwe, Johan Brichau and Tom Mens:``Using Declarative Metaprogramming To Detect Possible Refactorings''

クラス間の関係ルールを論理型言語で記述しておいて,リファクタリングなどの作業中にルール違反を検出しようという試み.実はこの手の制約(たとえば Law of Demeter の厳守)を記述するようなプログラミング言語というのは新鮮な感じ.もっとも,正確に制約を書くのは難しそうだけど….

Gopan Gupta:``A Language-centric Approach to Software EngineeringDomain Specific Languages meet Software Components''

DSL(Domain Specific Language)をコンポーネントの高レベルラッパーとして使う,開発者はDSLさえマスターすればコンポーネントのインタフェースを直接触る必要はないよね,という話.アプリケーションからのトップダウン的に述語を生成していってDSL のプロトタイプを作り,最終的にコンポーネントでの表現に落としていく論理型プログラミング的な扱いになる.個人的にはいまひとつかも.


2002-10-02 古い日記からの変換データ [長年日記]

_ 論文

ASE 2002: International Conference on Automated Software Engineering の論文チェックをしようと思ってhttp://ase.cs.ucl.ac.uk/を見に行ったが,どうやら pdf は過去の best paper award に入っている奴しか置いてないらしい.とはいえ,いくつか研究者のページから取れる pdf もあったのでそれらについては見てみることにする.肝心のアスペクト関連のものが取れないけど,その周辺論文は取れた.やっぱり,主流(AOSD2002など)の学会に比べると大した収穫はなし.


2002-10-03 古い日記からの変換データ [長年日記]

_ TA

授業 TA としての顔見せにいく.けっこう知り合いが多いなぁ….

_ IE6

研究室用マシンで,IE6 がなぜか落ちまくるようになってしまった.イベントビューアで調べてみると,msctf とかいうモジュールの特定アドレスで落ちていることが発覚.msctf には,Office XP のモジュールと干渉してJavaScript を使ったページ翻訳機能がうまく動かないという問題があるらしい.…関連性はあるかどうか分からないままOfficeXP をアンインストールしたところ,とりあえず動くようにはなった.OfficeXP って,アプリケーションのくせにシステムの DLL を置き換えてるのかな….

_ 論文

論文読み.Neelam Gupta and Praveen Rao:``Program Execution Based Module Cohesion Measurement''

モジュールの凝集度を,モジュールの出力ごとの動的スライスに登場する Def-Use 関係の数から計算するというもの.出力が複数ある=機能が複数あるとき,各出力の動的スライスのどちらかにしか登場しない Def-Use は凝集度を下げる,と考えるらしい.アイディア的には面白い.

_ 宅急便

通販で買ったコンサートチケットを,20分ほど買い物に出てたせいで受け取り損ねた.再配送の手続きだけど,ネット経由でできたので非常に楽に済んだ.便利になったもんだ.


2002-10-05 古い日記からの変換データ [長年日記]

_ Ruby

ディレクトリ内部のファイル名の一括変更方法が分からなかったので,Ruby で実行."p Dir.methods" とか "p Dir.open(".").methods" とかやって使い方をオブジェクトに聞きながら作ってみた.

ruby -e 'Dir.open(".")each { |filename| system("mv #{filename} #{filename.gsub(\".jar\", \".zip\") }")if filename [-4, 4] == ".jar") } '

この辺の手軽さが,Perl との違いかも.

_ Eclipse

eclipse.org で公開されている統合開発環境 Eclipse を動かしてみる.ぱっと見の特徴は,・間違ってるところにアンダーラインを引いてくれるので見やすい・エラーを含むファイルのアイコンにマークが付く・コンパイルが高速.インクリメンタルコンパイルをしている?など.実はすごいツールかも.Libretto で動かすには画面が狭いけど.


2002-10-07 古い日記からの変換データ [長年日記]

_ bun45

namazu のバッファサイズが namazu.h にBUFSIZE 1024 で定義されているのだが,mknmz した結果,項目タイトルが長すぎるとそこで切られて,うまくヒットしなくなるらしい.結局 8096 とかで再定義.メモリ消費は多くなるけど,簡単に解決するにはこれが一番楽だろう.

#……という設定を以前からしていたのに,#サーバ再インストールしたときに復旧するのを忘れていた.失敗.

_ 書類書き

給与振込み関係の書類書きをする.4,5枚書くだけなのに1時間くらいかかってしまった.けっこう手間だな~.こういうのをさばく経理の人たちって偉いなぁと思ってしまう.


2002-10-08 古い日記からの変換データ [長年日記]

_ Eclipse

AJDT のコンパイルを通す.JDK 1.3 + AspectJ 1.0.6 がインストールされた環境で,Eclipse 本体 + Graphical Editor Framework で,あとは参照しているパッケージへクラスパスを通すだけ.このあたりもそのうち資料をまとめるべきかな.

_ Eclipse

Windows XP のファイル保護のおかげで.classpath ファイルを直接書き換えることはできなくせに,他所のファイルシステムからコピーしてくるのは OK .なんだかなー.

_ Eclipse

Eclipse を WinXP マシン上で動かそうとしたら,クラスパスを保管する .classpath ファイルが作れないと怒られた.調べてみると,例によって Windows の仕様らしい.ひどい話だ.


2002-10-09 古い日記からの変換データ [長年日記]

_ AspectJ

AJC1.1alpha がもうすぐリリースらしい.主な特徴は以下の通り.・コンパイル時,リンク時,クラスロード時の weaving を可能に(.jar も扱える)・eclipse.org のコンパイラによる再実装・アスペクトのバイナリに,ソースと同等の すべての情報を保存するようになった・インクリメンタルコンパイルの実装これでさらに面白くなりそう&面倒が起きそうな予感.

_ robocode

JNI を使って Win32 API の getKeyboardState を呼び出し,ロボットをユーザが動かすことができるか?という実験をしてみた.

ユーザがコントロール可能なロボットは,強化学習などで使えるかもしれないなーとか,別のゲームとしても遊べそうだなーとか思ってたんだけど……

結果は,「System.loadLibrary への呼び出しを妨害しました」という旨が java.security.Permission によって出されておしまい.まぁ,robocode の趣旨的にはすごく正しい反応だ.Java 以外の機能使うのはある種のインチキだし.

手間かけて DLL とか作ったわりに結局役に立たなかったので少し残念ではあるけれど,Security Manager が有効に動作してる環境は初めて見たので,感動した.

_ JNI

Java Native Interface を使ってみた.使い方をいちおうメモ.・native メソッドをクラス側で宣言・javah でヘッダファイルを生成・ヘッダファイルを使って VC などで DLL を作成 (インクルードパスに C:\jdk1.3.1\include などを通しておく)・DLL を java.library.path のパスのどこかに置く (または実行時に java.library.path を設定する)・System.loadLibrary("hoge") をクラス初期化時などに呼び出す (Windows なら hoge.dll が読み込まれる)


2002-10-10 古い日記からの変換データ [長年日記]

_ AspectJ

AspectJ についての話を,研究室の web 用に書いたので,それを流用してアスペクト指向のコンセプトについての話を追加.

_ カウンタ

久しぶりにトップページを見てみたら,カウンタがもう200に届こうかというところ.こんな内容のないサイトでも 5件/日 くらいは見てくれる人がいるのね.


2002-10-11 古い日記からの変換データ [長年日記]

_ 指輪物語

注文していた The Lord of the Rings RPG core book が,ようやく日本に届いたらしい.届くまでも長かったけど,ここから受け取り店舗に届くまでも長い.

_ 検索

日記 CGI に記録されたデータ量も増えてきて,データの検索をそろそろ真面目に考えないといけない気がしてきた.

現状はタイトルに使ってる「読書」「紅茶」「AspectJ」などの決まり文句でいいけれど,それ以外に利用可能なキーワードを適当なツールを使って自動的に探せるようにしたいところ.

_ 紅茶

寒いので紅茶を飲みつつメール整理.そろそろ新しいダージリン,アッサム,あとウバかキームンあたりを仕入れたいところ.

アッサム・ハルムッティが尽きてダージリン・グームティーだけの現状では,(もちろんダージリンもおいしいんだけど)バリエーションがないためにちょっと寂しい.

_ 論文

実験の合間にも論文読み.

Constantinos A. Constantinides, Atef Bader, Tzilla Elrad:``A Framework to address a two-dimensional composition of concerns''

アスペクトを言語ベースで実現するのではなく,Aspect Moderator というオブジェクトにアスペクトの管理をまかせて,メソッド呼び出しなどのたびにアスペクトを起動するかどうかをModerator が動作してアスペクトの生成・起動を行う.フレームワークになった分,将来の拡張性は上昇している.しかし,アスペクト間の結合については Pre/Post Condition による処理を行うとしているだけなので,セキュリティ上の問題などを厳密に解決しているわけではない.様々なアスペクト処理系の実装を要約してくれているので参考にするには便利.

要約をみた限りでは,IL (interaction language?) というのがobject interaction を記述する言語らしいので,チェックする必要がありそう.

[Berger et al. 98] L. Berger, A.M.Dery and M.Fornarino. Intaraction BetweenObjects: An Aspect of Object-Oriented Languages, Position paper at the ECOOP'98 Workshop on Aspect-Oriented Programming

_ TA

学生実験の TA をやる.みんな,指導書をちゃんと読んでくれーと言いたいほど同じ質問が来てちょっとへこんだ.でも,意外とみんな真面目に実験してるなぁ……と思ったら,どうやら「この実験は真剣にやっても時間内に終わらないらしい」という噂が事前に回ってたらしい.普通にやってたら終わると思うのだが.まぁ,それでまじめに実験やってくれるのだから,監督する側から見たら楽なものだけど.


2002-10-13 古い日記からの変換データ [長年日記]

_ 紅茶

レピシエでアッサム・ディコム,ウバ・ハイランズを購入.ついでに,部室に転がっていたまま放置されていたダージリン・キャッスルトンのブランド不明な缶紅茶をもらってきた.こちらも,しばらくはこれで十分だろう.まだ試飲してないけど.

_ 読書

The Lord of the Rings Role-Playing core book が届いたのを受け取りに行くついでに,アン・マキャフリィ「パーンの竜騎士」の2~3巻,野矢茂樹「論理トレーニング」,三浦俊彦「論理パラドックス」,ゴールドラット「チェンジ・ザ・ルール!」を購入.

アン・マキャフリィの未訳作品「Pegasus In Space」も発見したけどさすがに読むのが大変なので保留.

他に,人から借りてきた森博嗣の作品2冊,長野まゆみ「テレビジョン・シティ(上・下)」.読書キューが一気に長くなったので,しばらくは退屈しなさそう.


2002-10-15 古い日記からの変換データ [長年日記]

_ Eclipse

Eclipse の AspectJ プラグインをセットアップしてみた.クラスのメソッド宣言から,どのアスペクトに影響を受けているかを調べられるのがすごく便利.

_ Opera

研究室マシンのIEがあまりにあやしいのでOperaを導入.こういう高機能なソフトが無料で(広告は出るけど)使えるのはうれしい.まぁ,必要なのは機能よりも安定性なのだけど.

_ 紅茶

アッサム・ディコム(SFTGFOP1)を飲んでみた.甘い香りが強いところが好印象.淹れ方も上達してるのか,茶葉が新鮮なおかげか,ちゃんと熱対流で茶葉が動いて,ほとんど全部が沈んだのが嬉しかった.スコーンやクッキーのような茶菓子とあわせられたら最高かな.


2002-10-16 古い日記からの変換データ [長年日記]

_ AOSD

aosd-discuss ML で.アスペクトが結合可能な Join Point を手動でクラス側に定義するようにしたらどうか? という話が出た.面白いけど,それじゃあアスペクト指向の「強制的に参加者を決められる」特徴が落ちてしまうのでダメだろうというのがみんなの反応.私も同感.参加するのを表明するのは,きっと別の言語要素になるはずだ.

_ 読書

長野まゆみ「テレヴィジョン・シティ」を読破.わりと重たい話だった.鉱石などを色の表現に使って,微妙に硬質さを表してるのが格好いいかも.この手の徐々に崩壊していく秩序とかコンピュータ,失われていく真実と嘘の境界っていうノリはけっこう好き.

日本人の作品では,やっぱり言葉の使い方が楽しいと言える.海外作品は,その言葉の面白さが翻訳過程で意味を失うのが残念なところ.


2002-10-18 古い日記からの変換データ [長年日記]

_ AOSD

aosd-discuss ML での「手動での join point 記述」から始まった一連の議論が一段落したので,自分用に少しまとめておく.けっこう色々な意見が出た.

発端の提案:予期しない変更に対する対処として,Join Point をプログラム内部に「変更しても良い場所」として記述するのはどうか?Join Point ごとに,他のアスペクトとの干渉しかたも違ってくるし,Aspect Weaving 用の情報も持たせておきたい.

出てきた意見:

・予期せぬ変更を綺麗に扱うのは重要だが,作業時間が短くなるかどうかは別の問題.

・コード単体から,簡単に join point が決められるのか?たぶん無理.

・複数のアスペクトを単一の join point に与えた際,その解決はコードレベルよりもっと上位で行うべき.それを妥当なコストで実現するツールが重要.

・アスペクトやハイパースライスをアプリケーションにマージするのは簡単ではない.注意深い計画と分析が必要である.Hyper/J で正しく作業しようとすると,再度モジュール分析して,影響を受けるハイパースライスを調べて,それぞれテストして,結合してテストして,……といった作業は必要となる.tangled code を避けるんだから,それくらいの作業は仕方ない.If you hack the code, your statements are true, though.If you hack the code, you have no place in a commercial project.

・標準のIDEやコンパイラで使えない言語要素の導入は,開発プロセスに大きな影響を与えてしまうのが問題.

・join point はコントロールされるべき.たとえば, - private なアスペクトはすべての join point にアクセスできてよい. - public なアスペクトは public な join point にのみアクセスする. - 何か適当な protected という範囲のアスペクトもあってよいはず.

・別に用意したスキーマを使ってアスペクトを結合するべき.

・スキーマも一種のプログラムだ.単に一緒に書くかどうかの違い.

_ 論文

以前,Extended Event Trace 図というのをコンポーネント間のインタラクション記述に使おう,という論文を読んだが,(タイトル:Using Extended Event Traces to describe communication in software architecture)実装言語があるかなーと思って論文の citation を探してみた.結果はゼロ.個人的には1個くらいは期待していたけど.設計時ドキュメントとしての価値はありそうだけど,それ以上の利用はされていないようだ.

_ 論文

実験の合間に論文を読むのが慣習になりそう.

L. Berger, A. M. Dery, M. Fornarino: ``Interactions between objects: an aspect of object-oriented languages''IL (Interaction Language) の紹介論文.IL はアスペクトを用いてオブジェクト間のインタラクションを書くための言語.

アスペクトを一種の手続き的な役割として使っている印象もあり,オブジェクト同士の対話をアスペクトが担当する.分散オブジェクトの管理なんかを頑張ろうと考えているらしい.これは,オブジェクトが処理の流れをコントロールするべきと思ってる人間にとってはあまり嬉しくない(単にオブジェクトの結合に用いる言語がアスペクトに移っただけであるが).

アスペクトの利用の例示として挙げている「一貫性保持」はけっこう妥当なものだが,「対話」というほどのものでもないような気がする.もうちょっとリモートオブジェクトの例がほしいところ.

_ TA

実験2回目のTA担当.みんな真面目なのはいいけど,時間ぎりぎりまで作業しようとして片付けが遅れるのは困ったものだ.


2002-10-20 古い日記からの変換データ [長年日記]

_ 読書

アン・マキャフリィ,パーンの竜騎士第2巻「竜の探索」を読破.第1巻もそうだけれど,巻の終わりできちんとそこまでの話はいちおう決着させておいて,でもやっぱり次の巻では新しい問題が出てくるらしい.構成としてはうまいかも.

人間と竜とのやりとりが前より多くなって,竜たちの意外な側面が色々見えてきた.<常識>が人間をいかに縛るか,という点についても過去や未来に縛られない竜たちとの対照が面白い.

_ 忘れ物

携帯電話を教室に置き忘れて,大学を出た後に気付いていったん取りに戻るという大失態をやってしまった.普段は忘れ物をしないための荷物配置をしているし,そもそも手放さないように気をつけてるから,気付いたときはすごく動揺してしまった.無事取り戻せたからよかったけど.

_

RPG研の例会が終わった後,車で部室まで送ってもらった.徒歩や自転車と比べて,やっぱり速いし楽だと痛感.格別必要ないのに乗りたいと思うのは贅沢だろうけど.

_ プレゼンテーション

RPG研で,なりゆきで30秒プレゼンテーションの簡単な指導をする.といっても,単に・手足を無駄に動かさない・腕を後ろで組まない(組むなら前で)・アイコンタクトをがんばる・はっきりした言葉で適切な速度で喋るとか,ほとんど常識的な話ばかりだけど.

でも,30秒でひとつのことを簡単に説明するって,聞いていても意外と難しいことがわかる.こんな指導してても,自分でもできるかどうか怪しい.ちょっと気をつけたほうがよさそう.


2002-10-21 古い日記からの変換データ [長年日記]

_ Eclipse

jar に対するソースアタッチ機能を使ってみる.jar ファイルの中身を選ぶと,対応ソースファイルの中身を見せてくれる優れもの.ただ,jar ファイルと同じパスにあるファイルを直接叩いてるらしく,AJDT (AspectJ Development Tools) の ajdtsrc.zip みたいに中身が src/org/../*.java のようになっていると,ファイルを見つけられない.で,わざわざ org/../*.java だけを圧縮したアーカイブを作成した.展開したままでもよいが,on demand で展開しても十分速いし,ファイル整理的には圧縮したままのほうがうれしい.

_ グラフ

アスペクト間の関係グラフを描画させたいのに,適当な描画方法が思い当たらなかったので色々調べてたら,グラフの描画ツールを発見.

http://www.research.att.com/sw/tools/graphviz/

dot とかいう形式(頂点間の関係を書いてくだけの単純なテキスト)で書いたファイルを食わせればよいらしい.今度使ってみることにする.


2002-10-22 古い日記からの変換データ [長年日記]

_ Action Semantics

Java World 2002 November の Action Semantics の解説記事を読んだ.

UML のような設計ドキュメントレベルの高い抽象度で,システムの振る舞いをデータフロー+アクション言語で書いてそこから実装コードに落としていこうという試み.データフロー主体なところが好みではないが,今後出てくる可能性があるので注目は必要そうだ.

_ 論文

_ Curtis Clifton and Gary T. Leavens:``Spectators and Assistants: Enabling Modular Aspect-Oriented Reasoning''

アスペクトを Spectator (動作に影響を与えない) とAssistant に分類して,Assistant のほうはクラス側あるいは Aspect Map で「accept」することを明示されない限りは使えないとするもの.

この「accept」の概念は自分でも考えたことと似ているのでこの論文もチェックリストに入れておく.

_ 論文

NET CLR 上で Generics を実現しようという試みの提案論文.

Andrew Kennedy and Don Syme:``Design and Implementation of Generics for the .NET Common Language Runtime''

vtable などと一緒に型情報を持たせるという単純な発想ぽいけれど,動的に型情報を生成するというのはある意味すごいかも.

色々な言語で Generics な型をやり取りできるようになるとすごく面白そう.それにしても,CLR では Standard ML の高階関数とかの言語ごとの特殊要素はどう扱うんだろう?けっこう怪しげではあるが…….

_ 論文

正確には論文ではないが,Designing with Cosmos, AOSD 2002 Version 1.0を読んでみた.Concern を XML 表現に落として,関係をグラフ化したりコード生成に使ったり,という試み……なのかな.「要求が変わったらコードが変わるのは仕方ない」という立場で,コードジェネレートとかもやりそう.

メソッドを XML 的に記述するのはどうかという気もするけどもうちょっと具体的な情報が集まるまでは何とも言いようがない.とりあえず,設計段階で頑張ろうとしてるところは評価.


2002-10-25 古い日記からの変換データ [長年日記]

_ Java

無名クラスの悪用を避けられないかどうか考えたが,・静的に構文チェックが一番楽そう.しかし,これを AspectJ の pointcut として書こうとすると実はできなさそう,ということも分かった.まぁ,構文チェックだけで済むならそれでよいか,という気もするが.

newInstance のほうは気持ち悪いので,以下のようにして禁止してみるのも手だろう.

pointcut use_newInstance(): call(Object Class.newInstance());declare error(): use_newInstance(): "don't use newInstance()!";

_ Java

無名クラスはクラスとして使えるのか?という疑問がふと湧いたので,こんなコードを書いてみた.無名クラスのオブジェクト生成→クラス取得→クラスからインスタンス生成,というだけだけれど.

public static Comparator getComparator() { Class c = new Comparator () { : }.getClass(); try { return (Comparator)c.newInstance(); } catch (InstantiationException e) { return null; } catch (IllegalAccessException e2) { return null; }}なんと結果はOK. Main$_1 とかいう無名クラスのクラスオブジェクトがちゃんと取れていたし,インスタンスの生成もできた.

ちなみに,無名クラスは,コンストラクタ以外なら何でもオーバーライドできそうな気配.たとえば,throw new RuntimeException("hoge") { public String getMessage() { return "foo"; }}とやってみたところ(getMessage をオーバーライドした),ちゃんと動作してしまった.これも無名クラスのオブジェクトになる.

勝手にローカルにクラスをオーバーライドできることがわかったので,やっぱり無名クラスの利用は禁止したほうがよいのかもしれない.セキュリティ上は final が重要だなぁ.アスペクトでこういう奴の利用を引っ掛けられたらいいんだけど…….

_ 紅茶

レピシエ,ウヴァ・ハイランズを飲んでみる.感想は紅茶のページのところにちょこっと書いてみたけど,やっぱりアッサムの一位は揺らがず.アッサム・ラマナガーやディコムのように,フルリーフなアッサム紅茶が最高.#この辺は完全に好みの話なので情報量は少ない

_ 読書

アン・マキャフリィ,パーンの竜騎士3「白い竜」を読破.話の展開が速くて,大きな事件になると思ったものがあっさりと解決されてしまってちょっと意表を突かれる形になった.

これで,パーンの竜騎士,最初の三部作は読み終わったので,私の個人的お気に入りである竪琴師メノリらが主役の4・5巻を買うついでに,視野を広げるべくエリザベス・ヘイドン「ラプソディ」の解説のところに影響を受けたファンタジー作家のひとりとして挙げられていたパトリシア・マキリップの「妖女サイベルの呼び声」を仕入れてきた.

先に借りてきた本だけは片付けないとまずそうなので,そちらから優先的に片付けることにする.読書キューの長さがまったく減ってないし,だいぶ前に買った J2EE アプリケーション設計ガイドとかを読める時間が取れるのはいつになるのだろう :-)


2002-10-26 古い日記からの変換データ [長年日記]

_ バックアップ

Libretto (ネットワーク名 'asteria')のバックアップを取る.ここ最近バックアップを取っていないなーと思ってたら,バックアップ先のディレクトリの日付を見るとなんと2ヶ月ぶり.

Home 以下と cygwin,メールなど,ほぼ丸ごとバックアップを取った.しかしこのマシンの設定,一回壊れたら復活させることできるのかな?ちょっと不安だ.

_ 読書

ザ・ゴールのシリーズ3巻目「チェンジ・ザ・ルール!」を今まで「チェンジ・ザ・ゴール!」だと間違えていたことが発覚.うーむ,なぜ読み間違えていたんだろう?

_ LAN

PCMCIA で使っていた LAN カードが死亡.以前から不安定だったが,ファイルコピー中に死亡してping も通らなくなってしまった.ここ1年間ずっと持ち運び繰り返したせいかなぁ.XJACK もだいぶ痛んでしまっていた.

_ 奨学金

奨学金の不採用通知が届いた.やっぱり高額な分競争率も高いのかなぁ.残念.書類作った手間を考えるとなんかもったいないけど,書類作ることで研究構想が固まったことも事実なので作業自体は無駄ではなかったかもしれない.


2002-10-27 古い日記からの変換データ [長年日記]

_ 文字列の縦書き

Windows で文字列の縦書き出力ができないか,と聞かれて色々調べてみると,Windows API のCreateFontIndirectを使ってフォントを作成すればよいらしい.

Delphi で昔一度作ったことを思い出したのだが,ソースコードはアルバイト先にコミットしたのでもう手元にない.で,Visual Basic で再実装するがうまく動かない.どうも,配列や文字列,オブジェクト参照の扱いが曖昧なので API が呼び出しにくくて全然扱い方が判らない.昔の自分はよくこんな言語使えてたなぁと思う.

_ 読書

借り物の森博嗣「ミステリィ工作室(タイトル違うかも)」「すべてがEになる」を読み終える.興味のあるところだけの飛ばし読みだけれど.これで他人から借りてる本はゼロになったので,自分の買った本をゆっくり読める.

_ プレゼンテーション

RPG研で再び30秒のショートスピーチの練習を見る.前回他人のを見ているせいか,全体に質が上がっている.アドリブで喋る人間は論外だが :-)やっぱり就職活動やゼミ・学会で鍛えられてる4年生は上手.話すスピードなどは,私も見習う必要がありそうだ.

あとは,やっぱり緊張して上ずった声になるとか,視線が宙を泳ぐとかいう人がいる.無理もないが.この辺,私は自己暗示で切り抜けるのだが,これを他人に説明するのは意外と難しい.いわゆる "おまじない" と同じだし.


2002-10-28 古い日記からの変換データ [長年日記]

_ 論文

OOPSLA 2002, Workshop on Tools for AOSD からもう2本読む.

Katharina Mehner, Awais Rashid:``Towards a standard interface for runtime inspection in AOP environments''

Java Platform Debugger Architecture (JPDA) のような実行時情報を取得するための標準インタフェースをアスペクト指向プログラムに対しても定義できないか,というもの.Join Point なんかを使って引っ掛ければいけそうであるが,そもそもアスペクト指向っていうのはパラダイムであってJVM など特定の実行環境が想定できない.C++ のようなネイティブコンパイルするタイプの言語のことは想定してないのかな? Windows.NET の CLR で OK だね,とか言われそうだが :-)

Mark C. Chu-Carroll: ``Supporting Aspects in Program Storage''こちらはソースコードをファイル単位ではなく,それより小さい「フラグメント」の集合として捉えましょう,という提案の話.これ自体は前からあるものだけど,このような構成管理ツールのひとつに,アスペクト指向などで言われているmulti-dimensional な構成管理を導入してみよう,というものらしい.概要だけ述べてあって具体例がないので,あまり理解できていないが,ソースコードの取り扱い単位をファイルから解放したい,という意見には部分的に賛成なので,この辺の研究はがんばってほしいところだ.

_ 埋め込みIC

「体内埋め込みIC,規制を逃れてついに発売」http://itpro.nikkeibp.co.jp/members/ITPro/USIT/20021027/1/なんてニュースを読んでると,だんだん現実がSFの世界に近づいてきた印象がある.しかし,記事にも書かれてるけど,本当に体に埋め込んでまで使う道具の価値はあるんだろうか…….個人的には通信機器くらいまでに高機能なら面白いなぁとは思うが :-)

_ Eclipse

plug-in のプロトタイプを書き始める.どうやってテストするのだろうと思ってEclipse.org の Your First Plug-in の記事を読んでみると,Run -> Run As -> Runtime workbench で実験用ワークベンチを立ち上げるらしい.高コストだがやむを得ないか.

_ 論文

OOPSLA 2002, Workshop on Tools for AOSD の論文がダウンロード可能になっていたので,こっちもいくつか見てみることにする.

Joao Cachopo, Antonio Menezes Leitao, and Antonio Rito-Silva: ``The Tyranny of the File Decomposition''どんなツールでもファイルという単位が基本になっているが,ビューとして開発者がコードを見るときには,ファイル内のレイアウトに縛られずに意味のあるコード単位で開発者に提供すべきだ,という論文.アスペクトを使うとどうしても複数のファイルに分散していく傾向があるので,たしかにこの主張には一理ある.……実装によるけど.

_ 論文

とりあえず面白そうな論文をいくつか見つけたので読んでみる.

Stefan Hanenberg, Rainer Unland: ``Grouping Objects using Aspect-Oriented Adapters''アスペクト指向で Adapter を実現してみようという話.introduction (アスペクトによるクラスへのメソッド追加) を濫用すると構造が汚くなってしまい,またアスペクトによって変化した部分と変化してない部分とを区別できないので困るよね~という言い分で,Adapter を introduction のかわりに使って,しかも Adapter まわりの実装にはアスペクトを使う,らしい.Reflection API 使ってる時点でちょっといけてない気がするが,汎用的な Adapter 実装しようとするとやむをえないところか.

参考文献に入っていた K. Lieberherr, D. Lorenz, M. Mezini:``Programming with Aspectual Components'' などが応用可能な部分として挙げられていたので,そっちも見てみることにする.

検索してみたら,Lieberherr のページも発見.http://www.ccs.neu.edu/home/lieber/AOP.html

LieberherrってAspectual Collaboration のときに見た名前だから,たぶんこれも似たようなものなのだろうか…….

_ OutlookExpress

「メールを表示せずに消すにはどうしたらいいの?」と聞かれた.手元の Outlook Express で実行してみると,なんとメールを選んだ瞬間に表示してしまう.オプションも,それらしいものはない.「プレビューの際に自動ダウンロード」とかいうオプションは,まだ本体がダウンロードされていないメッセージにしか効かないようだ(当然か).

私が普段使っている Al-Mail は選ばない限りメールを開かないので,この挙動はどうかと思うのだが…….ここで「OutlookExpress腐ってる~」と叫んでも解決にならないので,[編集]-[検索]-[メッセージ]で,メールの検索結果一覧ウィンドウからならメールを開かずに消せることだけは確認して,それを教えた.

もし検索結果一覧で選んだメールが勝手にプレビューされるようだったら,本当に腐ってると言ったかも :-)ちゃんと方法が見つかってよかったよかった.

_ bun45

サーバ移行を視野に入れた CGI の書き換え作業を行った.単に CGI などのパスを書き換えるだけとはいえ,ファイル数も多いし,動作確認もけっこう大変.

ただ,ファイルをまとめてダウンロードするシステムだけは真面目に書き直さないとまずそう.研究のほうのプログラム開発もあるので,ちょっと忙しくなりそうな気配.


2002-10-29 古い日記からの変換データ [長年日記]

_ AspectJ

AspectJ は CLDC/MIDP では使えないんじゃ?という質問が aspectj.org に出てた.CLDC/MIDP って何だろう,と思って調べてみると

CLDC: Connected Limited Device ConfigurationMIDP: Mobile Information Device Profileってな感じの組み込み系っぽい Java の世界だった.

CLDC などでは Clonable とか Serializable とかいくつかのインタフェースが使えないらしい.このあたり,AspectJ の一部のライブラリが裏でこっそり使ってる可能性がある.

まぁ,オブジェクト指向が組み込み系で使えるようになるまでに時間がかかったように,アスペクトが組み込み系で使えるようになるには時間がかかりそう,というのはあるかも.

個人的には,アスペクトを weave した後のコードがサイズ制約やタイミング制約に引っかかるのでは?というほうが気になるのだが :-)

_ Opera

研究室のマシンでは Opera を使うようにしていたのだけど,Windows Update は IE からでないといけないので,わざわざ IE を起動.最近マシンの調子が悪くてプリンタドライバや Windows Update まわりが非常にあやしい.

そもそもあやしくなるようなプログラムを売るなよーとは思うが,このくらいの規模のシステムになるとどうしようもないのかなぁ.

_ Java

パッケージ名はドメイン名 (たとえば com.sun.xxx)でつける,という慣習があるけれど,どうやら "-" は使わせてくれないらしい.(まぁ当然と言えば当然だが)

Eclipse で作ってみたら,ディレクトリは普通に生成されるけどソースのコンパイルは通らない~という微妙な状況になってしまった.

ドメイン名とパッケージ名が一致できない場合はどうするべきなのか,なんか一貫性のある変換ルールでもあるのかな?


2002-10-30 古い日記からの変換データ [長年日記]

_ 論文

Karl Lieberherr, David Lorenz, Mira Mezini: ``Programming with Aspectual Components''Aspectual Components とは,Aspectual Collaboration と同じものを指していて,単にこちらが論文の元となったレポートらしい.

AspectJ へのコードを展開なども説明してあってサンプルコードも多くて丁寧で判りやすい.

ためしにコードを人に見てもらったが,一見したときの印象としては悪くないようだ.

うーん,やっぱりクラスを勝手に書き換えるのだけは気持ち悪い(アクセス権限をかけられないのかな?)が,有用性はすごく高そう.少なくとも,AspectJ よりも読みやすくて使いやすそうなので,コンパイラ実装してくれたら使うのになー.ソースコードの情報に reflective にアクセスできる API を用意してくれれば,という限定付きになってしまうけれど.

_ LAN

LAN カードが1枚壊れてしまったので,Libretto がルータ役をできなくなってしまった.これだと他のマシンから外に出られないので,一部のゲームやツールが使えない.直結もできるが,デスクトップマシンにはファイアウォールをセットアップしてないから不安も多いし,どうしたものか.

_ ZAQ

ZAQ から重要そうな封筒が届いてたので急いで目を通してみると,単に工事するのでうるさかったらごめんなさい,+これを機会に加入したい人はアンケート出してねというだけだった.うーむ,ちゃんと工事前に断ってくるのはえらいなぁ.どうせ工事中の時間は家にはいないんだけど….


2002-10-31 古い日記からの変換データ [長年日記]

_ TA

実験室で無線 LAN 接続を試みるが,電波状況が悪くて扉のところまで移動しないと接続できない始末.困ったもんだ.