«前月 最新 翌月» 追記

netail.net

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

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


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

_ お年玉

正月といえばお年玉.もう修士課程なのに,まだもらえた.いーかげん断ってもいいのだが,断る口実を見つけられないのが弱い.

それにしても,現金ではなく web money とかの形式で渡されるような時代になったら面白いのになーと思う.まったくありがたみはないが.

_ ps2eps

PS ファイルから EPS ファイルを生成する ps2eps .Windows 用らしき BAT ファイルも入っていたが,うまく動作しなかった.結局,研究室サーバに入ってた ps2epsi のほうが安定して動作するようなので,そっちを使うことにした.epsi (EPS with preview image でいいのかな?) はサイズが大きいのが欠点だが.

http://ftp.agh.edu.pl/pub/tex/support/ps2eps/


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

_ お出かけ

新年の混雑の中,お出かけ.いいかげん寒いので羊革の手袋を購入.

帰ってみると,論文投稿の話のメールが返ってきてたので,再び作業を開始することに.


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

_ 日記CGI

検索の複数キーワード処理を修正.具体的には,空白で区切られた文字列を正しく処理できるようになった.# というか今までできてなかったのか :-)

_ LaTeX

Windows で LaTeX コンパイルしようとして,jtygm.sty とかいうのがないと言って怒られたので,google で探してどこかから拾ってきた.jtygm.sty.txt

フォントの対応付けとかをするものらしい./usr/local/share/texmf/ptex/platex/base に置いてみたら読み込まれた.……このやりかたも含めて誰かの日記に書いてあったのだが,URL を忘れてしまった.


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

_ お出かけ

京都の八坂神社,平安神宮に参拝.お昼ごはん兼おやつを,錦小路(四条から一本北の通り)にあったもちつき屋というお店で,店内で餅を七輪で焼いて食べるメニューがあったので,それをいただく.700円.

「もちつき屋」で検索するといっぱいヒットした.実は有名なお店だったのかぁ.http://www.puri2.com/B1/motituki.html


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

_ 論文

Coordination aspect というのがあるらしい,と言われて渡された資料を読んでみる. Demter/J の人たちがやっている仕事で,COOL: COOrdination Langugage というJava のスレッド同期処理を記述する言語を作ったらしい. たとえば以下のようなコードになる.

coordinator BoundedBuffer /* クラス名と同じ */ {  
  // selfex は,それぞれ,あるスレッドが独占する
  // 異なるスレッドが実行することはありうる  
  selfex {put, take}   
  // mutex は,あるスレッドがアクセスしている間,  
  // その組にあるメソッドの呼び出しはブロックされる.  
  mutex  {put, take};
  // put メソッドの終了時に実行される処理を記述  
  // (@ @) の中に,Java コードが入る  
  put requires (@ !full @) {
    on exit (@
      empty = false;
      if (usedSlots == array.length) full = true;
    @)
  }

こういう記述を与えると,weaver はクラスに synchronized や

while (条件) {
   try { wait(); } catch (InterruptedException e) {}
}

といった記述を追加したコードを生成する. Coordination aspect で検索するとヒットしてくる ppt にけっこう丁寧なサンプルコードが載ってたので,これ以上は省略.

_ 論文

久しぶりに論文読み.アスペクト干渉の検出と解決問題.

F. Douence, P. Fradet, M. Sudholt:``A framework for the detection and resolution of aspect interactions'', Proceedings of the 27th ACM SIGPLAN/SIGSOFT Conferenceon Generative Programming and Component Engineering (GPCE), October (2002).

形式的検証してるのでいまいちよく分からない.やっぱりここまでするのね,というところ.この辺の検証する人たち,実際にどういうものが検証できるのかを目に見える具体例で用意してくれないので論文がすごく読みにくい気がする.検証系の実用性に関しても何も説明がないのが悲しいところ.一般のコンパイラなどにその成果が反映されるにはまだまだ時間がかかるのだろうか.

_ 電子署名

電子署名の付けかたについて調べてたら,AL-Mail 用では PGP と連携する簡易メールエディタがあるらしい.http://hp.vector.co.jp/authors/VA007478/almail/kmwrite/kmwrite.html

_ AspectJ

Erik Hilsdale が説明してくれていたコンストラクタへのjoin point の使い分け方法を日本語訳.こうやって着実に文章を増やしていこう.

_ AspectJ

AspectJ の用途についての文章を補強.といってもたいしたことないけど.

_ Java

先に書いたコードのように,Exception.getCause や .printStackTrace をいじった Exception オブジェクトをネットワーク上で動作するアプリケーションで投げると色々と攻撃ができそうな気がするのだが…….やっぱりその辺は SecurityManager でカバーするんだろうか.

_ Java

思いつきで例外を悪用したコードを書いてみた. EvaluableAsInt は int getInt() を実装していること.getInt() は成功したか失敗したかを throw する.

void evalSquareRoot(EvaluableAsInt o) {
  try {
    o.getInt();
    assert(false, "this statement never executed");
  } catch (IntResult e) {
    if (e.getValue() > 0) {
      throw new FloatResult(sqrt(e.getValue()));
    } else {
      throw new IllegalArgumentException(e);
    }
  } catch (FunctionFailure failure) {
    throw failure;
  }
}

使う側はこんな感じ.getMessage をオーバーライドしてる時点でけっこう邪悪.

public static void main() {
  hoge = new Hoge(100);
  try {
    evalSquareRoot(hoge); 
  } catch (FloatResult f) {
    throw new Exception () {
      public String getMessage() {
        return f.getValue().toString(); 
      }
    }
  } catch (FunctionFailure f) {
    throw new RuntimeException(f);  
  }  
  throw new Error(); // ここには来ないはずだが
}

chained exception や setStackTrace を使えばさらに怪しいコードが書けそうな予感.

_ スクリプト

Universal Studio Japan に行きたいという人がいたのでとりあえずサイトを見てみようとしたのだが,http://www.usj.co.jp/

JavaScript を有効にしないとそもそも見れないらしい.普通はスクリプト無効にしてると思うのだが,最近こういうサイトが多くてちょっと気になる.


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

_ AspectJ

Ivan Kiselev: "Aspect-Oriented Programming with AspectJ",Sams Publishing の内容のうち,アスペクトの分類の話をコンテンツとして追加.サンプルコードがたくさん載ってて読みやすい本だなーというのが印象.

_ Java

Java Performance Tuning ニュースなんていうものがあったらしい.知らなかった.この日本語訳,すごくがんばってると思われる.こういうものが無償で公開されてることに感謝.

http://www.gimlay.org/~andoh/hatena/JavaPerformanceTuning/

_ Eclipse

汎用ペインタサポートは 2.1M4 リリースですでに実装されている(ように見える)ので,とりあえず移行してみることにする.

_ Eclipse

テキストエディタ上にデータの検索結果をハイライト表示をしたくて,そのやり方を調べていたら,汎用ペインタは 2.1 からサポート予定となっていて,現状では使用できない様子.それまではテキストマーカーでごまかせるだろうか?


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

_ Eclipse

汎用ペインタサポートは Eclipse Platform - Text の2.1 plan に書いてあったのだが,これが JDT 側に反映されるのはさらに先になりそうだということが判明.

ということでプロトタイプを捨てて,2.0 へ戻る.CompilationUnitEditor を継承してエディタを作ろうかしらん.

_ 掃除

部屋の掃除をしてたら,昔読んだ論文などの残骸を発見.重要なコンテンツは全部 pdf 化されているのでどんどん捨てる.


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

_ Ruby

Ruby用の XML Pull Parser を探していたら,REXML が知らない間に XML Pull Parser も実装していたらしい.

REXML は最初のリリース以来(最初はバグだらけだったが)その使いやすさに惹かれて愛用しているが,気づいたら Ruby の中ではほぼ標準の XML パーサ.すごいなぁ.

_ Java

Java World 2月号の Java Tips 工房の記事から.

Java では,static final な定数についてはコンパイル時に解決してしまうため,いわゆる if (DEBUG) {} のような記述が可能だが,定数を書き換えた場合に,関連するファイルをすべてコンパイルしなおさないといけない.普通は javac *.java とかやる必要があるのだが,どうやら Eclipse では,ファイル間の依存関係を解析していて,ちゃんと必要なファイルだけを再コンパイルしてくれているらしい.ちょっと感心.

_ Relaxer

Java World 2月号に載ってた relaxer が便利そうだったので見てみた.XML 定義から,その取り扱いに必要な Java クラスを自動生成する.Relaxer CDL を使えば事前条件や事後条件も記述できるらしいので,面白い道具かもしれない.http://www.relaxer.org/


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

_ RPG研

もらった写真をアップロード.この手の画像ファイルを管理するにはXMLで画像情報を書いて,XSLTでHTMLを生成するのが楽だろうか?手作業での管理は面倒なのでどこかで切り替えたいが,良いインタフェースを思いつかない.

_ ボードゲーム

先輩に誘われてボードゲーム Wizards Kings を遊ぶ.http://www.cyberdungeon.com/Generated/GameSystems/25761.html

ルールがそれなりに単純で,意外と行動の幅も広く,SLG としてなかなかよくできている.陣営ごとに,互角なようで微妙な差異を持っているので,マップの特性とからめて使えるかどうかが重要っぽい.

2人で3〜4時間程度かかったが,慣れたらもう少し早く遊べるだろうか.


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

_ ワイン

デパート地下でワインの試飲だけしてきた.

アルビオン・カベルネとルブラート・アリアニコ.どっちもフルボディの赤ワインで,3000〜5000円の妥当な価格帯.美味しかったので,そのうちボトルで買ってみよう.

普段は置いてないらしいが,しばらくは取り扱うと試飲コーナーの店員さんが言っていたので,即時購入は保留.

_ 紅茶

レピシエでアッサム・ディコムを補充しようとしたら売ってなかった.仕方がないので,アッサムのディクサム・フルリーフを100g購入.ついでにウヴァ・ハイランズを50g補充.

そこでもらった「レピシエだより」に,「電子レンジで作るチャイ」というのが載っていた.

作り方はとてもシンプル.1. ティーバッグ+50cc程度の水を電子レンジで加熱.沸騰させる.2. 沸騰後,5分ほど蒸らしてからティーバッグを引き揚げる3. ミルク150ccと,砂糖を加えて,電子レンジで沸騰しない程度に加熱.

しかしティーバッグのお茶なんて持ってないので試そうにも試せない :-)


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

_ Eclipse

必要なクラス参照を見つけてimport文を作ってくれるOrganize Importを使ってみたら,swtのColorなどへの参照がawt.Colorへの参照などに置き換えられてしまって,依存関係がほぼ崩壊.

結局,直前に取ったバックアップに復帰させた.import まわりは,Java言語の性質上,取り扱いが難しいところなのかも.メソッド呼び出しのシグネチャなどから類推してくれてもよさそうなものだが…….高望みしすぎだろうか?

_ 紅茶

朝食の材料を仕入れるついでに日東紅茶のティーバッグを買ってきて,電子レンジで作るチャイを試作.

ティーバッグをミルクを入れる前に引き揚げちゃうので香りは大丈夫かなーという不安があったが,出来上がったものは,それほど悪くはない.コスト対効果としては十分というべきか.


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

_ Graphviz

作っているPDG(Program Dependence Graph)生成ツールのデバッグをするために実際にPDGを生成してdotファイルに吐き出してGraphviz に食わせてみると,gif ファイルで2.8MBになった.なんと IEでも読み込めない.jpgにしたら 3.8MB になったが,IEで何とか読み込めた.サイズが大きすぎて(だいたい27000x2600程度)全体を見渡すことはできないが,バグの原因は概ね特定できた.もうちょっと,可視化に関しては何かいいツールを作ったほうがいいのかもしれない.

_ 紅茶

アッサム・ディコムが尽きたので,ディクサムへ移行.ラマナガーやディコムの持ってるような甘い香りがしないのでちょっと物足りないが,しばらくは仕方がない.また最適な浸出時間を調べないといけないし,大変だ.


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

_ USJ

初めてUSJへ行ってきた.午前〜昼ぐらいまでは人が少なく,とても快適だった.ただ,複数回行こうと思わせるようなアトラクション・イベントが特に見当たらなかったので評価としては微妙.決して悪くはないのだけど.

ただ,すぐ至近距離にある海遊館などへフェリーで移動できたりして,泊りがけで遊びに来る分には面白いのかも.


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

_ AspectJ

AspectJ 1.1 beta4 がリリースされたらしい.例によってREADME をちょっとだけ読んで,ドキュメントを補強.


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

_ 読書

アン・マキャフリィ,パーンの竜騎士外伝1「竜の夜明け(上・下)」を購入.パーンに植民してきた人々の最初の糸胞との戦いの話らしい.時間があるときにゆっくり読もう.


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

_ Java

java.util.SortedMap で失敗.a.compareTo(b) で比較してから最後に a.equlas(b) するものだと思ってたら,a.equals(b) == (a.compareTo(b)==0) でないといけなかった.比較してから最後にequalsするのは Hash の実装のほうで,そちらと勘違いしていたらしい.一貫性のない SortedMap の動作は保証されないので,結果としてコレクションに投入した compareTo が 0 だけれどequals でないようなオブジェクトがどんどん消されて,あやしげな動作となっていた.

_ Java

try finally 文のfinally節は break や return で外へ飛ぶ際にも実行されるが,実は System.exit で強制終了した場合には動作しないらしい.当たり前のような気はするが,呼び出したメソッド内で勝手に exit されるとリソースがリークしそうなのが気になる.

ふと思ったのだが,Exception.getCause あたりをオーバーライドして,内部で exit するような怪しい例外を throw したら,もしリソースがリークしてたらそのうちシステムがこけそうな気がする.地味な攻撃手段だが :-)

_ 読書

日経ソフトウェア2月号を読んでたらわりと親切な入門記事があって好印象.

入門向けなどの書籍類の紹介があったが,コトラーのマーケティング・マネジメント基本編(ピアソン・エデュケーション),誰も教えてくれなかったIT英語?海外エンジニアはこう話す(ソフトリサーチセンター)あたりが個人的にはよさげ.そのうち読んでみよう.


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

_ Eclipse

ステップ実行していると,JDKのクラスに入るたびにClassFileEditor が開いてしまうと思ってたら,Preferences/Java/Debug/Step Filtering で選んだクラスのステップ実行を抑えることができるらしい.

_ カウンタ

気づいたら,AspectJ コンテンツのカウンタのほうがトップページのカウンタより数字が大きくなってた.なんだかなー :-)


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

_ SVG

グラフ表現が JPEG では重いので SVG にしてみた.表示ツールとしては,Adobe SVG Viewer + IE と batik SVG browser を試してみた.SVG を拡大・縮小はできてもパン(スクロール)させて見ることができないなーと思っていたら,IE 上では ALT キーを押しながら,batik では SHIFT 押しながらのマウスのドラッグで行けた.マニュアル見ない限り分からないって.

メモリ使用量はJPEG版で100MBちょっとくらいのものがbatik SVG browser では60MB程度,IEでは20MB弱まで抑えることに成功.

batik の SVG browser は java -jar batik-squiggle.jar で起動できるシンプルなツールの様子.さすがに Adobe SVG Viewer のほうがよかった.ALT + ドラッグで移動,CTRL + クリックで拡大,CTRL+SHIFT+クリックで縮小表示らしい.けっこう再描画も高速だし,いい感じ.


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

_ Java

Effective Java を読んでいて,java.util.LinkedHashMap などという知らないクラスの名前が出ていたので調べてみた.JDK 1.4 でちょっとだけ増えてたクラスたちだが,IdentityHashMap: Keyがequalsではなく == で比較されるHashMap.地味に static int System.identityHashCode(Object),つまり Object.hashCode の実装で計算されるオブジェクトのハッシュコードを返す関数を使って実装されているらしい.こんなメソッド,普通は存在を知らないって.

WeakIdentityHashMap はさすがにないようなので,弱参照を使いたい人は,素直にキーオブジェクトのequals(Object) を a==b で実装するほうがいいらしい.

LinkedHashMap: エントリが配列ではなく,二重の Linked List で実装されているらしい.マップのエントリが挿入順で保存されるので,コピーしたときなどに順序が予測可能(元と同じ)という利点があるそうな.LinkedHashSet: LinkedHashMapのSet版.

まだまだ Java には知らないライブラリがたくさんあるのだろうか…….

_ 読書

アン・マキャフリィ,パーンの竜騎士外伝1「竜の夜明け」読了.うーむ.パーンの竜騎士シリーズがマキャフリィの作品の中では一番好みなのかも,とか思ってきた.

パーン入植時代はほとんどSF世界だが,後の作品で登場する地名や動物の名前の由来など,パーンらしくなっていく様子が分かる面白い作品.シリーズのファンでないと,単体のSFとしては微妙かもしれないが.


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

_ AspectJ

AspectJ ML に流れてた AspectJ の記事R. Dale Asberry: "Using AspectJ to implement and enforce coding standards" の情報を追加.

単に訳したりサンプルコードを抜いてくるだけでは芸がないので,そこにどうやって+αできるかが勝負どころ.

_ コタツ

来客があるのでコタツを出したら,部屋が狭いので机が使えなくなる.仕方がないのでコタツの上で作業.ノートパソコンの本領発揮といったところか ;)


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

_ AspectJ

フリーボードにあった指摘を反映.こういう指摘は,とてもありがたい.

フリーボードが書き込みにくいので,やっぱり改良しよう.他人のものを使うのは面白くないのでやはり自作方針だが,人の名前を書けるようにする,ページ切り替えずに書き込めるのは必須だなぁ.


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

_ Eclipse

研究室で Eclipse 使いをまたひとり増やした.

Java で printf デバッグしてるのはさすがに見ていられなかったのでデバッガの使い方だけは丁寧に教えてしまった.

_ Eclipse

org.aspectj.compiler.crosscuts.ast を黙々と解析.ようやく,クラスのメソッドとアスペクトのアドバイス間の呼び出し関係グラフが生成できるようになった.

例によってgraphviz用にdot形式で吐き出してsvgに変換してみる.アドバイス頂点を [shape = box] 指定して四角に,クラス頂点を楕円にして,色々実験.

やはりループがあったら色づけするとかいう工夫は必要そう.


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

_ 読書

対外発表の準備をしながら読書も進める.借り物の茅田砂胡「神々の憂鬱・暁の天使たち2」を読了.スカーレット・ウィザードとデルフィニア戦記というまったく無関係に見える作品をまとめあげているのはすごい.わざわざ別作品でも十分なはずなのだが,そこに独特の味があるともいえる.


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

_ 出張

出張のために早起き.外を見ようとして,結露が凍っていることに気付いた.どれだけ寒いんだ?


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

_ 雑学

合羽の名前の由来を調べてたらこんなの発見.http://www.ishinotent.co.jp/Kappa/kappa.html

蓑から合羽に変わったのはポルトガル人やスペイン人たちが着ていたかららしい.

_ 出張

出張から帰還.二日連続の早起きのせいか,ちょっと眠い.

鳥取環境大学は広いしきれいだし,ネットワークも整っていて,学習環境としてはすごくよさそう.感心したのは.研究室の中が廊下から見えるようになっていたことで,教官に声をかけやすい状況になっていること.ちょっと大阪に比べて寒いし,市街地からも遠いから,私だったら通おうとは思わないけど.