«前の日(12-23) 最新 次の日(12-25)» 追記

netail.net

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

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


2002-12-24 古い日記からの変換データ

_ クリスマス

ハイデルベルグ・クリスマスマーケットに行ってきた.新梅田シティの空中展望台のすぐ側.寒い中,暖かいグリューワインがおいしかった.赤ワインにシナモンやレモンなどを入れたものらしい.子供向けノンアルコールのキンダーグリューワイン(そのままだが)もあって,お酒に弱い人でも楽しめるようになっていたところもポイント.店の前や横に立食用のテーブルがいくつも並んでいて,何となく色々な人と喋るスタイルが私はけっこう好きだったりする ;)

夕方からのライトアップがとてもきれいだし,ドイツの色々な品物が売られていて,にぎやかなお祭りという感じがして面白かった.

夕食はイタリア料理のオステリア カラバジオのクリスマスディナー.テーブルごとにキャンドルが置いてあったりして,けっこう雰囲気にも気を遣っているお店だった.けっこうにぎやかで気楽に入れるところがよいなぁ.予約してなかったら全席埋まってたかも.

グラスワインの赤が標準で常温のフルボディなものだったし,ちゃんとワインの種類によってグラスも違うし,ワインもリスト以外に「その他」で色々頼めるようだし,色々こだわりを感じさせてくれるいいお店だった.

ちょっと値段は高かったが,その価値はあったというのが主観的評価.http://www.kes.co.jp/osteria/default.htm

_ Graphviz

グラフ出力ツール Graphviz を使ってみた.入力として,digraph graph_name { "vertex 1" -> "vertex 2"; "vertex 2" -> "vertex 3" [ label = "hoge" ];}というようなテキストを与えるだけでそのグラフの絵を gif や ps などで生成してくれるので,とても便利.論文書くときなどにはお世話になりそうなツールだ.

_ Eclipse

今日のはまりは org.aspectj.compiler.base.ast.Walker .いわゆる Visitor パターンのインスタンスで,ツリー構造の AST に, ast.walk(walker); と使う.時々ノードによって ast.getChild(1).walk(other_walker) というようにwalker を切り替えるコードを書いていたのだが,walker がそのノード自身も対象とすると思い込んでいたせいで,途中が一段飛ばされるのはなぜだろう?とひたすら悩んでしまった.結局,デバッガで walk の実装を見たときにそのノード自身は対象としていなかったことに気付いた.

教訓は,仕様はきちんと確認しろ,ということだろうか.


2003-12-24 古い日記からの変換データ

_ AspectJ

Wes Isberg が,aspectj-dev でアドバイスに影響を受けていないことを表現できるような(影響を受けたらエラーメッセージが出るような)declare advisedby みたいな言語要素を導入しないか,と提案していた.

一部の人にはかなり喜ばれそうな機能.

_ Calendar

Vector だけで,通算 約2800件のダウンロードがあったそうな.ありがたいことで.


2004-12-24 古い日記からの変換データ

_ 研究会登録費補助

情報処理学会の学生会員に対する研究会登録費補助は,平成17年度は1研究会に限って登録費が *無料* になるとのこと.ありがたい.

http://www.ipsj.or.jp/09sig/kenkyukai/student17.html

_ [論文]ルールベースでのスライシングの実装

Mathieu Verbaere の修士論文,Program Slicing for Refactoring の4章: Slicing using inference rules を読んでみた.

{parsed statements, Context, slicing result} の3つ組を特定ルールに基づいて更新していくことでスライシングを実現している.

使うのは,各命令での Ref 集合と Def 集合で,Context は,各変数がそれ以降で参照される可能性があるか(もしくは上書きされるだけなのか)を保存している.

呼び出し位置ごとに個別に処理を行う Context-sensitive なスライシングの実装となっているみたい.

グラフ上での処理に比べるとアルゴリズムが厳密に記述されている感じはする.計算されるスライスとしては,ほとんど Summary Edge を使った SDG の作成と変わらないようだが,メソッドごとの PDG を全体の SDG として接続する場合に比べて,手続きごとに作られた3つ組を呼び出し文ごとにマージする処理として記述されるので,「メソッド単位での処理結果」が再利用される様子が分かりやすい.


2010-12-24

_ [ツール] CCFinderX + Python 2.6.6

久しぶりに CCFinderX を使おうとしたところで,Python のバージョンにちょっとだけ悩んでしまったので,忘れないようにメモしておきます.

お手軽に CCFinderX を動かすには,Windows 32ビット版の上で動く Python-2.6.6.msi と組み合わせるのがいいようです.これなら,Python をインストールして,gemx.bat の中でset CCFINDERX_PYTHON_INTERPRETER_PATH=C:\Python26\python.exeというコメントアウトされてる行を復活させるだけで動きます.

これに対して,cygwin の bin/python.exe を使おうとすると,sys.path が /bin などの cygwin 用のパスになってしまうので,easytorq というモジュールを import するタイミングでモジュールが見つからない旨のエラーが出てしまい,そのままでは動きません.

また,CCFinderX の README には動作条件「Python 2.6 or later」と書いてあるものの,Python 2.7 を使ってしまうと,easytorq というバイナリのモジュールを import するタイミングで ImportError: Module use of python26.dll conflicts with this version of Python. と言われて怒られます(バージョン違いの時点でそれを明示して停止してくれるのは非常にありがたいところですが,動かないことに変わりはありません).