«前月 最新 翌月» 追記

netail.net

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

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


2005-04-01 [長年日記]

_ [work]新PCのつづきのつづき

せっかく新PCに移行したんだからツールのバージョンも上げてみようと思って,Inkscapeを新しく(0.41.1に)してみたら,起動時にぼろぼろエラーをはかれてしまった.プラグインの依存関係が解決できないような感じのエラーメッセージで対処方法がわからないので,とりあえず0.40.1に戻した.


2005-04-03 [長年日記]

_ [お出かけ]明石

私用で明石へ行ったので,ついでに駅前で明石焼きを食べる.5年前か6年前に姫路で食べて以来.

さらについでに,本屋で小栗左多里,トニーラズロ著「ダーリンの頭ン中」を購入.

_ [論文]属性ベースの(AspectJの)Join Pointで指定すると問題が起きる例

Donal Lafferty: Avoiding Incorrect and Unpredictable Behavior with Attribute-bassed Crosscutting.

Proceedings of ACP4IS, Chicago, Illinois, March 2005.

.NET用に言語非依存のAOPフレームワークを作っている人らしく,AspectJなどのメソッドの属性などでポイントカットを指定する方法だと,SML.NETなど一部の言語で,ポイントカットにマッチしてしまうような作業用メソッドがコンパイラによって生成されてしまうことがある,というもの.で,アトリビュート(メタデータ)をメソッドごとに付加した方法だったら,Join Pointが勝手に増加しないので無難だよ,というふうに主張している.

_ [論文]Pointcut記述のマッチ可能性の計算量

Karl J. Lieberherr, Jeffrey Palm, Ravi Sundaram: Expressiveness and Complexity of Crosscut Languages.

Proceedings FOAL, Chicago, Illinois, March 2005.

AspectJにおけるポイントカットやDemeterJにおけるインスタンス探索を,コールグラフやインスタンス関係のグラフからマッチ対象を選択する "Selector" として考える.このとき,Selectorが特定のノードに常にマッチする場所を見つけられるか,1つもマッチしないことが調べられるか,といったことが最適化時に重要となる.

で,アルゴリズムの計算量を調べたら,基本的には,intersectionとnegationを使わなければ,多項式時間でよく,それ以外でも一部多項式時間で解ける問題があるらしい(それ以外はNP完全).

面白いところは,AspectJとDemeterJとをグラフ選択問題として共通化してるところ.AspectJで,コールグラフ上で

call(void f()) & !cflow(void g())
のようなメソッド選択の式を,DemeterJを使って
from main() bypassing g() to f()
のように置き換えることで negation や intersection を取り除いて多項式時間の問題に帰着できるらしい.


2005-04-04 [長年日記]

_ 宅配便

家で待機して荷物受け取り.最近といってもかなり前からだが,某宅急便は荷物IDさえ分かっていれば配達が現在進行中かどうか(家で待機している必要があるか)調べられるところが便利になったなーと思う.半日単位くらいだからまだまだという気もするけど.

_ 在学証明書

手続きに必要な在学証明書を取りに,基礎工の証明書自動発行機のところへ行ってみたら,再起動画面で止まっていた.教務の人に言われて理学部へ行ってもやっぱり停止していたので,サークル棟2階の学生センターへ行ってみたら,自動発行機の新型(?)が2台用意されていて(1台は奥の柱の影で見つけにくかったが),順調に動作していた.成績を知りたい学部生が行列していたので微妙に待たされたが.

_ [日記CGI]tDiary 2.0.1

3月31日付けでアップデートが出ていたので,適用.設定ファイルが標準で dot.htaccess とか tdiary.conf.sample とかなっているので,単に上書きしたら設定ファイルだけが移行するようになっているので楽.

…と思ってたら,手で変更した css まで上書きしてしまったので復旧.

_ [論文]AspectJのバイトコードをスライスする

Davide Balzarotti, Antonio Castaldo, Mattia Monga: Slicing AspectJ Woven Code.

Proceedings of FOAL 2005, Chicago, Illinois, March 2005.

AspectJの出力バイトコードに対してスライス計算すればいいよね,という話.やりたいことが,この人たちの場合は最終的にアスペクトの影響度合いを調べたいっぽいので,それなりに使えそう.難しいのはバイトコードのうちコンパイラで生成されたコード(特にポイントカットのマッチ処理やインタータイプ宣言)からソースへマッピングしなおすところだと思うのだが,そのあたりはやはり対応できていない様子.

_ [論文]未来を含むイベント列にマッチするポイントカット

Karl Klose, Klaus Ostermann: Back to the Future: Pointcuts as Predicates over Traces.

Proceedings of FOAL 2005, pp.33-38, Chicago, Illinois, March 2005.

実行トレース=イベント列に対して,イベント間の時間的関係でポイントカットをマッチさせるとき,未来に発生するイベントへの言及も許可したようなポイントカット記述言語を考えてみました,という変わった論文.

「Aが呼ばれて,将来Bが呼ばれるなら」という条件が書けるが,矛盾が起きるのを防ぐために,アスペクトが自分自身や,自分より以前に動作した他のアスペクトに影響を与えてはならないという制約が付く.また,「将来Bが呼ばれるなら」の可能性をどこまで広げていいかがネック.連続したメソッド呼び出しくらいなら許せる気もするが.

今のところ実装がかなり制限つきで,キラーアプリケーションもないらしいが,アイディアのユニークさはすごいところ.

_ [論文]Aspectual Caml

Hideaki Tatsuzawa, Hidehiko Masuhara, Akinori Yonezawa: Aspectual Caml: an Aspect-Oriented Functional Language.

Proceedings of FOAL 2005, pp.39-49, Chicago, Illinois, March 2005.

Objective Caml の AOP 拡張してみましたーという話らしい.アスペクトの型推論とか書いてあるようだけど,とりあえず論文の存在だけメモしておく.

_ [論文]AspectJのモデル記法

YAN Han, Gunter Kniesel, Armin B. Cremers: Towards Visual AspectJ by a Meta Model and Modeling Notation.

Proceedings of AOM 2005, Chicago, Illinois, March 2005.

AspectJのUML記法とそのメタモデル.ただ,横断対象のクラスに重ねて記述するのは,ポイントカット式が複雑化すると失敗する可能性もありそう.


2005-04-06 [長年日記]

_ サークル棟1階食堂

昼ご飯を食べに行ってみた.手前に普通の食堂,奥にカフェがくっついてる構成で,8:00〜20:00営業でカフェは朝食が,食堂は夕食があるあたり,サークル棟で活発に活動する人向け?

メニューは他の食堂の混成+αで,マフィンとかケーキもあるあたり嬉しいかも.食べてないからまだ何とも言えないけど.

_ [work]新デスクトップ

デスクトップPCも前のを返却→新PCに移行.ケース自体にスピーカーが埋め込まれているところが少し怪しいHPのPC.

_ Pay-easy

年金の費用の支払いに初めて使ってみた.機関ID5桁+帳票ID16桁+確認番号6桁の入力だけで決済できて非常に楽.


2005-04-07 [長年日記]

_ クリーニング

コートを受け取り.

_ [work] AspectJ入門用(?)ドキュメント

現在,ソースコードのサンプルも含めると25000字くらい.A4で1段組で25ページ.けっこう増えてきた.

AspectJのインタータイプ宣言の基本であるメソッド・フィールドの定義はJavaのメソッド宣言によく似ているので,説明がすごく楽だということ発覚.

_ [論文]アスペクトの状態遷移モデル

Mark Mahoney, Tzilla Elrad:

Modeling Platform Specific Attributes of a System as Crosscutting Concerns using Aspect-Oriented Statecharts and Virtual Finite State Machines.

Proceedings of AOM 2005, Chicago, Illinois, March 2005.

基本の状態遷移を Actual Event/Actual Action として,Actual Event を仮想状態機械への入力 Virtual Event に,仮想状態機械の出力 Virtual Action を Actual Action や Actual Event にマップすることで複数の状態機械を連動させて動かす方法の提案.Virtual/Actual のマッピングは開発者の誰かががんばって記述する.

実行コンテキスト(主にはplatform dependentな部分)の組み合わせによる状態数の爆発を防いだりはできる?

_ [論文]Join Point 情報をUMLに持たせる

Maria Tkatchenko, Gregor Kiczales: Uniform Support for Modeling Crosscutting Structure.

Proceedings of AOM 2005, Chicago, Illinois, March 2005.

UMLにおいて,Operation(クラス図のメソッド)やSequence(シーケンス図のメソッド実行中を表現する部分)などに,複数の図の間で共通しているJoin Pointを持っているかを情報として持たせて,要素間の相互リンクを自動的に張る.リンクを張ってから,何らかの調査スクリプトなどを走らせるのだが,Join Point の情報しか拡張してないのでツールサポートも楽,ということになるらしい.いまいち感覚がつかめてないが.


2005-04-08 [長年日記]

_ [AspectJ] AspectJ1.5M2リリース

JDK1.5の構文とannotationをサポートしたバージョンがとうとうリリース.AJDTも(開発版だが)Eclipse 3.1M6+AspectJ1.5M2用の新バージョンが登場.

書いてる記事もこれに合わせて書きたいところが出てきた.annotationとか特に.

_ [work] Zaurus SL-C3000 + CFXGA

「ザウルスショット」でスクリーンショットを取ってZaurusへ転送する作業自体は自動化されていたが,PowerPointファイルをいちいちスクリーンショットを撮るのは面倒.で,印刷イメージを1ページごとに画像化してZaurusに転送することもできるのだが,そうするとページごとに余白が生成されてスライドの上下左右に微妙な空白が出現してしまう.スライドの背景に色や罫線を使っている場合,これが目立ってしまうので,スライドのテンプレートに注意が必要そう. CFXGAが出力できる画像自体は640x480または800x600で,プレゼンツールは画像を勝手に縮小して表示するらしい.どちらかというと,集めた雑多な情報をみんなに見せたいとき用か. もしスライドを出したい場合には,800x600環境で手作業でスクリーンショットを撮るのが無難?1280x1024なディスプレイでしか試してないので,普通のプロジェクタだとあまり気にならないのかもしれないが…. ここを見ると,PDF/PostScriptから画像変換とかしている.

_ [work] ppt2png

PowerPoint のスライドオブジェクトが持っている Export メソッドに,slide.Export('hoge.png', 'png', 800, 600);とか渡すと画像変換できること判明.

これで作った画像を Zaurus プレゼンテーションに食わせてみたら,それなりの品質だったので,Zaurusでプレゼンするのをもう少し検討する気になってきた.

ザウルスショットを使った場合,解像度を変更する必要があって,BMPかJPEGしか選べないのに対して(印刷キャプチャは余白が入るので今のところ論外),好きなサイズが選べてPNGも作れるので,任意の枚数・サイズで自動的に画像化するツールとしておけば Zaurus に転送する以外にも使えて,けっこう便利な小道具になるかなーと期待して,時間があったら作ってみることにする.


2005-04-10 [長年日記]

_ オフ会

みんなでお土産を持ち寄ったので,プレゼント交換会のような感じに.愛・地球博のモリゾー&キッコロの飾りつきペンをもらった.イラスト版のモリゾーの目はあまり好きでないのだけど,飾り版のは普通に良い感じ.

ちなみに帰りの東京みやげは,選ぶ時間があまりなかったので東京ばな奈にした.

_ [読書]ラヴクラフト全集7

新幹線での移動中にラヴクラフト全集7巻目(これで最後)読了.短編集なので比較的さらっと読めた.


2005-04-12 [長年日記]

_ [work] ppt2png

とりあえず動くバージョンができたのでppt2png 0.1 公開してみる.使ってみたい人はどうぞ.

とりあえず輪講で使ってみる?

本日のツッコミ(全2件) [ツッコミを入れる]

_ ozuma [お久しぶりです.元ペーゲー研のおーすみです. さっそく使ってみましたが,存在しないフォルダを出力先に指定するとエラー..]

_ てぃる [お久しぶりです. 10分くらいいじってみたらディレクトリ自動生成ができたので,バージョン上げておきました.まあ,あっ..]


2005-04-13 [長年日記]

_ [日記CGI]コメントスパム

tdiary本来の機能としては削除が不可能(隠すことができるだけ)なので,tdiary のデータディレクトリにある .tdc (コメント)ファイルを直接編集+cacheの中の parser ファイルを削除して対応.

隠すだけだと,さすがに一部の明らかなスパムは問題.referer 情報を見たところ,URL が diary でキーワード "Powered by Ruby" とかで検索かけて日記を見つけられたりしている.


2005-04-14 [長年日記]

_ [work] Zaurusでプレゼンテーション

Zaurus+CFXGA を輪講で使ってみた結果わかったのは,スライド切り替え速度が遅いので話ながらスライド切り替えるときに妙に間があいてしまうし,質疑応答などのときにもうまく移動しないと応対が難しそう,ということ.また,机の上に置いて使わないと,ケーブルの重みのコネクタ部分への負荷が心配.スライドへの書き込みなどは使ってないので何とも言えず.

あまり頻繁にスライドを移動しないような場合や,設置してスライドをひたすらループさせるようなデモなどでは,普通に使えそう.

_ [論文] 関数の呼び出し関係の類似性を使ったコード位置の移動等の認識

Michael W. Godfrey, Lijie Zou: Using Origin Analysis to Detect Merging and Splitting of Source Code Entities.

IEEE Transactions on Software Engineering, Vol.31, No.2, pp.166-181, February 2005.

輪講で紹介された論文.バージョン間で,関数が統合されたり分割されたりソースのどこかへ移動したりを検出するのに,関数の名前,引数の名前,呼び出し先・呼び出し元の集合の共通集合の大きさを使うとしている.

呼び出し関係の類似性という考え方はどこかで使えるかもしれないのでメモしておく.

_ [論文]効率的なグラフ解析ツール

Dirk Beyer, Andreas Noack, Claus Lewerentz: Efficient Relational Calculation for Software Analysis.

IEEE Transactions on Software Engineering, Vol.31, No.2, pp.137-149, February 2005.

ソフトウェア分析では,ソフトウェアの要素をグラフにマップして解析することが多いので,大規模なグラフから性質を解析するためのProlog風な印象の言語CrocoPatを作ったという話らしい.

ノードやノード間の Relation を Binary Decision Diagram を使ってエンコードして,必要な操作をすべて BDD 間の演算として定義している.

言語→言語で書けるプログラム例→実装上の工夫→パフォーマンス評価,といった感じ.実装については,Relation を BDD でエンコードしてあとは高速な演算用ライブラリを作った,という感じで,TSEのわりに短くまとまっている印象がある.


2005-04-17 [長年日記]

_ [読書]プログラマの数学

梅田に買い物に行く人に,結城 浩「プログラマの数学」を買ってきてもらったので,とりあえず1章を読んでみた.別に新しいことが書いてあるわけではないのだけど,何となく手元に置いておきたい本という印象.


2005-04-19 [長年日記]

_ [AspectJ] annotationを使ってみる

記事執筆用に初めてannotationを使ってみた. annotation って実は "@hoge" とかってソースでいきなり使っていいのかと思っていたけど,実は定義が必要だったらしい(annotation typeと呼ぶらしい).
public @interface logged {
}
といった適当な java ファイルを作ってコンパイルして,classpathに配置しておく(参照さえできればいいので一緒にコンパイルしてもOK).execution(@logged * *.*(..))でロギングを実行するようにしておくと,ログを取りたいときにポイントカットを毎回作らず,ログを取りたいメソッドの頭に "@logged" を付加するだけでよくなる. デバッグ用小道具なアスペクトを手元にそろえておくと,実は作業がすごく楽になるのかも.

2005-04-20 [長年日記]

_ ユーザを変えた後の Live Update

Norton Internet Security を Administrator でインストールした後に,ユーザ名を変えてから Live update をかけようとしたら,微妙に失敗した.サーバ関連の情報をレジストリの LOCAL_MACHINES ではなく LOCAL_USERS のほうに書き込むからなのか,LOCAL_USERS の設定をユーザ間で移動したら動くようになった.

怪しげではあるが,ユーザを変えるほうが悪いのか.


2005-04-21 [長年日記]

_ [AspectJ]サンプル作り

記事掲載用のサンプルをひたすら作る.モジュール化してうれしい例にしないといけないところが難しい.それにしても,AspectJ 1.5M2は,Genericsやannotationもちゃんと使えるし,エラーメッセージもちゃんと出るしで,前に使っていた1.0の時期に比べるとかなり快適になった気がする.

_ [論文]Early Aspect アプローチの分類

Jethro Bakker, Bedir Tekinerdogan, Mehmet Aksit: Characterization of Early Aspects Approaches.

Proceedings of Workshop on Early Aspects 2005, Chicago, Illinois, March 2005.

過去の Early Aspects で登場した要求分析〜設計段階でのアスペクト識別の方法について整理した論文.Early Aspects 関連で調べるときには開始地点としてよさそう.

アスペクトのモデリングは詳細設計レベルで行っているものはあるが,Early Aspect に対して詳しく行っているものはないとか,また取り出されたアスペクトについての評価も行われていないとか,色々研究でまだカバーされてない範囲について言及している.


2005-04-22 [長年日記]

_ [hyCalendar]印刷にバグ

印刷時,フリーメモ欄を印刷しようとすると,アクセス違反でこける.明示的にアクセス違反だと出ない(ウィンドウがモーダルのはずなのに後ろに移動する)で怪しげな状態になる.

マルチドキュメント対応したとき(Singletonを解除したとき)に,Document.getInstanceするかわりにオブジェクトの参照を取得してくる処理がどこかにすっ飛んだらしい.

修正は 1.0.1 としてリリースの予定.

_ [hyCalendar]1.0.1リリース

がんばってドキュメントも更新したところで,ちゃっちゃとリリースすることにする.

_ [授業]PBL2,ゼミA

PBL2年生配属の中に2人ほどOUCCな人が混じってたのを発見.でも,基本的に学生にお任せ状態なので楽.

ゼミAのほうは,先生がいないので代理で担当で,アンチパターンの概略についての説明を聞く.あまりまじめに読んだことなかったので,わりと勉強になった.Silver Bullet=銀玉,Design Forces=設計力,という微妙な訳が出現したけれど,それ以外はわりと素直に聞けた気がする.Design Forces は,訳し方が難しいなーと思って調べてみたら,[PDF]Happy Squeaking!! − オブジェクト指向再入門 −では,問題から生じる様々な力および制約である,通常はトレードオフを発生させる,といった書き方をしていた.


2005-04-23 [長年日記]

_ [ツール] RSSバー

メーラ/ニュースリーダ形式のRSSリーダではなくエクスプローラバー形式のはあるのかなと思って探していたら,普通にIEで使えるRSSバーというものを公開している方を発見.

この手のエクスプローラバーは,IEの場合,履歴や検索以外に表示・非表示切り替えのショートカットキーは変更できない?ツールバーボタンについては,キーが衝突するのを避けられないからと記述があったが,エクスプローラバーについては言及しているものが特に見当たらなかった.


2005-04-25 [長年日記]

_ [OUCC] PCトラブル

おーさか@OUCC様のPCが,BIOS画面にすら進まない謎の症状を出した.電源/メモリ/ビデオカードをそれぞれ動くものと交換してもダメだったので,マザーボードの不良ということにしておく.

_ [work] 査読とか

この手の仕事が,先生を経由せずに直接依頼で発生するようになったのは,いちおう知名度が上がったということで,いいことなのか….


2005-04-26 [長年日記]

_ 定期健康診断

朝9時から受けてきた.経験的に9時半くらいには列ができ始めるので早めに行ってみたら,やはり今回もそうだった.

視力が左1.0/右1.5に悪化してたのと,受検したことを示すシールを学生証に貼ってもらうほかは特に変化なし.受検シールを毎年貼っていくと学生証がえらいことになりそうな気もするけど,どうするのだろう.

_ [AspectJ] wiki の更新

annotationの使い方をwiki内の簡易リファレンスに追加.

_ [日記CGI] 前の日記のデータ

前の日記からコンバートしたデータのうち,一部変なところを見つけるたびに直しているのだけど,そうするとRSSに載ってしまう.困ったことで.

_ [OUCC] 簡易DHCPサーバ

学祭用ネットワーク構築のために簡易DHCPコントロールをファイアウォールの例外処理に登録しても,うまく動かなかった.ちゃんと穴開けて対処.

_ [OUCC] CPU半挿し

CPUは,固定用のレバーが動く程度に半挿しになることがあるらしい.で,CPUが挿さってないのでまったく起動しない,という振る舞いになっていたらしい.

と言われたけど,CPU挿しなおしたら動いたので本当?でもまだ振る舞いは怪しい.


2005-04-28 [長年日記]

_ [OUCC] CPU

おーさか@OUCC様のPCの,負荷をかけたら(インストール途中くらいで)落ちて,挿しなおしたら動くとかいう怪しい動きをしていたCPUは,結局,別のものに交換したら動いたので,CPUが損傷していたらしい.

CPUとマザーボードが損傷して,怪しい挙動の中でハードディスクを道連れにしたといったところか.

_ FLASH Paper

flash で pdf みたいなのが見られるものらしい.flash paper で書かれた原稿を見せていただいたのだけど,けっこう軽く動いて,読み始めが快適なのに感心してしまった.


2005-04-29 [長年日記]

_ いちょう祭打ち上げ

RPG研究会の新歓兼いちょう祭打ち上げ.2次会以降はほぼOB会の様相だった.

_ 記事の作成

月曜には完成版送付の予定.その後校正が入るので,連休は休めるのかどうか.