たまにっき。 / 2004-04
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
2004-04-30 Fri
■ 非常勤
1 時間半の間喋りっぱなしはやはり疲れる。
で、TA の皆さんは先週のことが嘘のように頑張ってくれていた。
ちょっと時間をオーバーしたのと、最後の課題に対する説明がかなり不十分だったことが反省点。
もっと全体的に考えて余裕を持たせなきゃ。
■ 『iPod』のシャッフル再生で音楽の聴き方が変わる
via 読書記録ChangeLog
私は iPod で全曲シャッフルにして、一人イントロクイズを楽しんでいますが、何か。
■ 某大学の非常勤
演習では講師 3 人と TA 3 人が担当するのだが、この週から
私が前でマイクを握って説明することになった。
緊張するなぁ。
2004-04-28 Wed
■ メタクラス
+---------------+
| <<metaclass>> |
| String |
+---------------+
↓インスタンス化
+---------------+
| String |
+---------------+
↓インスタンス化
+---------------+
| abc:String | ← String クラスのインスタンス
+---------------+
メタクラスをインスタンス化するとクラスが得られる。
クラスをインスタンス化するとオブジェクトが得られる。
んでもって、メタクラスは何から作られるかというとメタメタクラスというものがあったりする。
実はメタクラスのメタクラスはメタメタクラスであり、
メタメタクラスはメタクラスをインスタンス化したものであったりする。
鶏が先か卵が先かという問題になったりする。
実際の実装では途中までメタクラスを構築し、それを元にメタメタクラスを部分的に
構築して、そして、メタクラスを作ったりしているみたい。この辺りは怪しい。
ちなみに抽象クラスとは全く異なる概念。
+--------------+
| <<abstract>> |
| List |
+--------------+
△
|
|------------------+
| |
+--------------+ +------------+
| ArrayList | | LinkedList |
+--------------+ +------------+
この図での List が抽象クラスで上のメタクラスの図における String に相当する。
■ TrackBack
I 垣さんから TrackBack できないと言われる。
むぅ。何がおかしいんだと調べてみると tb.cgi に必要なライブラリが入ってねぇ。
で、入れてみたので、これでどうだ。
■ TrackBack
できるようになりました.
じゃんじゃん TrackBack してください.
ちなみに,TrackBack ping 先は
http://oikaze.com/~tamada/cgi-bin/tb.cgi/TRACKBACKID
で TRACKBACKID は 20040428 など日付になります.
2004-04-27 Tue
■ 福島さんらの論文のまとめ
各 Birthmark の定義などは たまぺーじ分家 からダウンロードできる pdf などを御覧下さい。
ref. [2004-03-12-5]
二つの論文に共通する部分で、我々が考えていることとの決定的な違いがある。この birthmark の目的だ。
彼らは birthmark は盗用を証明するものだと言っている。
しかし、我々は birthmark は盗用を証明するものではないと考えている。
birthmark はあくまで、盗用の疑いがあるプログラムを見つけ出すものだと考えている。
盗用の証明は watermark なり、code clone なりで行なえば良い。
birthmark は大量のプログラムの中から盗用だと疑わしいものを見つけ出すものだ。と考えている。
そして,二つの birthmark を共に実験していないのがちょっと引っかかる.
考察で終わるのが駄目と言っているわけではないが,考察が合っているかどうかを
実験で確かめるのも大切ではないのかなぁ.
しかも攻撃(難読化)に対する耐性って頭の中では整理しきれないと思うし,
原稿で挙げられている難読化手法の他にも沢山の主要な方法があったりするし.
例えば,文字列の暗号化とか,マルチスレッド化とか,数値の分割とか...
- Javaクラスファイルの等価変換に耐性を持つプログラム指紋抽出法
私が [2003-07-17] に ISEC で発表した birthmark 抽出方のうち、
CVFV(Constant Values in Field Variables) と IS (Inheritance Structure) の問題点が指摘されている。
CVFV は初期値を見るので、
public class Hoge{
private int fuga;
public Hoge(){
fuga = 3;
}
}
とあるのを
public class Hoge{
private int fuga;
public Hoge(){
fuga = 1;
fuga += 2;
}
}
に変えてしまえば改ざんできてしまうという指摘。
IS の方は
public class SuperClassA{
:
}
public class ChildA extends SuperClassA{
:
}
の二つのクラスの間に
public class DummySuperClassB extends SuperClassA{
// no any fields and methods
}
を入れ、ChildA クラスを
public class ChildA extends DummySuperClassB{
:
}
とすれば良いとの指摘。
ごもっとも。
ただし、CVFV の改ざん方法に対処するのはあくまでツールなので、余り問題にはならないと思う。
そのフィールドを注目すればできるような気がする。
とは言え、一旦別のローカル変数に代入されたりすると、お手上げなのは確か。
IS の方は、はい、まあ終わってます。
で、SMC については birthmark として有効だと書いているけど、他の二つと同じようなもんだと思うけどなぁ。
彼らは新たに提案する birthmark として「メソッドの有限オートマトン化」を挙げている。
手順をさらっと説明すると、
(1) オペランドスタックへの push から pop までの instruction を一つの疑似 instruction とする
(2) 上で得られた疑似 instruction のシーケンスのうち、入れ換え可能な instruction を一つのグループとする
(3) 上で得られたグループを条件分岐などのジャンプで繋ぎ、オートマトン化する
(4) 得られたオートマトンから無条件ジャンプを削除し、それを birthmark とする
こんな感じかなぁ。今手元に原稿がないので、ちょっとうろ覚え。
間違いに気付いた人がいれば突っ込んで下さい。後で私も確認します。
birthmark としては、私の提案したものよりも強い耐性を持つんだろうけど、
実装が大変な気がする。
まず、(1) から言うと push, pop って単純に並んでいるわけじゃない。
invoke 命令も push, pop を行なうので、その関係を見つける事が面倒臭そう。
例えば,
1: aload_0
2: iconst_0
3: aload_1
4: iconst_0
5: aload_0
6: arraylength
7: invokestatic System#arraycopy
という命令列だと
System.arraycopy(localVariable0, 0, localVariable1, 0, localVariable0.length)
という命令に相当するのだが,この場合,
push 1: aload_0
push 2: iconst_0
push 3: aload_1
push 4: iconst_0
push 5: aload_0
pop, push 6: arraylength
pop*5 7: invokestatic System#arraycopy
という関係だ.どこからどこまでを一つの擬似 instruction とするのかがわからない.
(2) については、副作用のあるクラスのメソッド呼出を考えると、入れ換え可能かどうかというのは
人が読まないとわからなそう。
(3), (4) は特に突っ込むべきところもない。
- 動的解析を用いたJava クラスファイルのプログラム指紋抽出法
こっちはコンセプトが終わっている気がする.
birthmark は盗用を発見する技術であって,盗用を証明するものではない.
発見するのだから,高速に,大量のプログラムを検査することが重要だと思う.
そして,誤検出は全然問題ではなく,それよりも盗用されたプログラムが検出できない
ということがないようにしなければならない.
で,この原稿ではクラスファイルを動的に解析している.
動的に解析するということは,もうほとんどの場合,自動化できない.
自動化できない時点で birthmark の目的が達成できないことになる.
で,肝心の手法ですが,原稿を何度も読み返したのですが,不明な箇所が多くて
よくわかりませんでした.
自分の提案した手法の弱点をこんなにさらけだしていいんだろうか・・・。
ちなみに,私がここに書いたいちゃもんらしきもの全てを満たしているわけではありません.
2004-04-26 Mon
■ CLI+
バージョンアップした。今度は XML で定義したオプションの description を
ResourceBundle から読めるように。
具体的には、XML の description を指定する場所で
ResourceBundle のキーを $( と ) で囲めば OK。
■ 輪講にて
以下の論文を読む.
L. Badger, L. D'Anna, D. Kilpatrick, B. Matt, A. Reisse, and
T. van Vleck, "Self-protecting mobile agents obfuscation
techniques evaluation report," Network Associates Laboratories
Report #01-036, Nov. 2001, Updated Mar. 2002.
<http://opensource.nailabs.com/jbet/papers/obfeval.pdf>
Clark Thomborson 先生が素晴らしいと絶賛していたそうな.
私の担当は 2, 3 章.
■ あやし

購入したのはいいのだが、読んでみると以前読んだことがあるような気が・・・
もしかしてと思い、本棚を探してみると見つかった・・・。
買った本のデータベースが必要だなぁ。
2004-04-24 Sat
■ Template Method パターン
来週の某大学での輪講は私の番で,Template パターンの担当.

- テンプレートとは何か
文字の形に穴が空いている薄いプラスチック板のこと.それを用いて文字
を書くことができるが,実際に書かれる文字はサインペンや色鉛筆など筆
記具に依存する.
- Template Method パターンとは何か
スーパークラスで処理の枠組みを定め,サブクラスでその具体的な処理の
内容を定めるようなデザインパターンのこと.
- クラス図

- ヒント
ロジックの共通化.
スーパークラスとサブクラスの連係プレー
サブクラスをスーパークラスと同一視する.
- 関連パターン
Factory Method パターン.この Template Method パターンをインスタン
ス生成に応用した例.
Strategy パターン
Template Method パターンは継承を利用してプログラムの動作を変更する.
対する Strategy パターンは以上を利用してプログラムの動作を変更する.
2004-04-22 Thu
■ 『囚人である』 ことと 『オフィスで働く』 ことの違い
via Miyabi's Page
わはは。
■ news
- 「文章の盗作を探知する」ソフトの採用、新聞や警察などにも拡大
via たつをのChangeLog
どうやって検知するのか,アルゴリズムを知りたい.
- 喫煙者採りません 強まる社内禁煙
via たつをのChangeLog
何て言うか、こういう会社が良い会社とは思えないんだが。
「業務での拘束時間に喫煙休憩は認めない」と言うならそれは全然 OK なのだが、
禁煙させるというのは、越権行為だと思うなぁ。
たばこを社内から追放したそもそもの理由は、コンピューターに灰やヤニが入るのを防ぐためで、当初は分煙制だった。だが、会議中に喫煙時間を取るかどうかなどを巡って、喫煙者と非喫煙者に割れる弊害が目立つようになった。
この理由での分煙は納得する。ただ、喫煙者と非喫煙者に割れる原因には納得しかねる。
会議中に限らず、「喫煙時間を取れ」と要求するのは駄目でしょう。
ただし、長い会議の場合、休憩を取るのは必要だと思う。4, 5 時間連続の会議の場合、
喫煙するかどうかに限らず、途中で休憩を入れて欲しいものだと思うのだが。
私は常々、非喫煙者の多くは仕事中休憩を取っているように見えないことを不思議に思っている。
このようなことを考えてみると、この会社は拘束時間中に、一度も休憩を取らせないつもりなのかな。
喫煙する、しないは個人の問題であって(他人に迷惑を掛けない限り)、
会社がとやかく言えることじゃないと思うけどなぁ。
「会社は喫煙場所を提供せず、また、喫煙休憩も認めない」というのであれば、
いいんだけど、このような「禁煙が条件」という会社には間違っても入りたくないし、
関わりたくない。
まぁ、喫煙者サイドからの発言ですが。
2004-04-21 Wed
■ jbirth
こんなの見つけた。

jbirth のアイコンにいいかも。
ただ、Adobe が何か言ってくるかなぁ。
picassohead でこんなのを作ってみた。

2004-04-19 Mon
■ 相変わらず変なキーワードでひっかかる.
- 住商エレクトロニクス 2ch
誰だ.
- latex 透かし
PDF に透かしを入れる方法ってのは聞いたことがあるけど.
- たまちゃんを見守る会
ほんとに引っかかってる・・・.
- ビデオ カメラ付き メガネ
- 京都河原町 ゲームボーイ
何を検索したいんだろう?
- 須藤理沙 盗撮
そんなものはここを探してもない.
2004-04-17 Sat
■ Windowsユーザーのための電子メモ術
via 読書記録ChangeLog
実のところChangeLogも、今世紀初頭まではそのようなものであった。
ChangeLog のグルたちは、例外なく情報科学を専門とする研究者であり、
鍛え上げられた左の小指を持つ誇り高きEmacsの聖戦士であった。
最後の一文、「鍛え上げられた・・・」のくだりには笑ってしまった。
2004-04-16 Fri
■ 今日は某大学の臨時講師
今日から毎週金曜日は某大学の臨時講師.
ただ,飲みすぎた.これから寝ます.
学生にこの日記を見られたらやばいなぁ.
2004-04-15 Thu
■ ジュマンジ〜
欺瞞じゃなくてそれで正しいと思うんだけど……。
会社に拘束されている以上払うものは払ってもらわなきゃ。
ただ働きなんて死んでもヤラネーヨ
残業をつけるかどうかではなく,休日出勤や残業を
上司だけのせいにしている部分が欺瞞だと書きたかったのですが,
そう読めなくもない程度で,全然伝わりませんね・・・.すいません.
ちなみに,私もただ働きは一切やりません.
ref. [2004-04-13-1]
2004-04-13 Tue
■ コンピュータによる自然言語処理を応用した製品に関するニーズ調査 に関する たつをさんからの突っ込み
無事届きました。
ただ最近、本は Amazon で買っているので使う機会があるのかなぁなんて思ってみたり。
とはいえ、頂いたものは有効に活用させて頂きます。
■ 組織崩壊サンプル発見!
冒頭のセリフの
「一度しくじればプロジェクトからはずされかねず、しかも二度と呼ん
でもらえなくなるかもしれない立場の技術者」は、「社長からどういう
わけか全面的に信頼されていて、一度や二度の失敗で解雇はまだしも、
減俸、叱責すらされないプロジェクトリーダー」をどういう目で見るだ
ろうか?ってゆー疑問は去年からずっと抱いているんですけどね。
これを見てなんとなく思い出したこと。
以前、会社でデスマチっていて、休日出勤していて、その愚痴というか、
休日出勤の言い訳を上司に求めたことがある。
私が休日出勤してまで片付けならない仕事がある理由はなんだろう?
なんでこんなにやらなきゃならないことが多いんだろう?
仕事の許容量を越えているぞ。そうだ、個々人に対する
仕事の割り当てがおかしいんだ。そうだ、仕事を割り当てている
上司の采配が間違っているんだ。
上司が間違った指示をしているから休日出勤で正当に残業を付けてもそれは許されるんだ。
と。友人にこのようなことを言うと
それは欺瞞に過ぎない。
と一蹴された。まぁ、私自身も今思えば欺瞞に過ぎないと思うけど。
このように責任を擦り付けられる上司というのはイヤなものだ。
上司の責任をわかってくれるような部下を育てられる上司に(将来なった場合には)なりたいものだ。
今は部下というか、私が直接教育するような部下はいないけれど、将来的に
そのような立場に立った場合、上司のためにではなく、上司のあの人の立場のためにというように
考えてくれるような部下を育てられればなぁ。
まぁ、私にはそのような「上司のあの人のために」なんて考えはないけどさ。
そうしたいならば、私自身の意識改革が必要か・・・。
■ 春だ 4 月だ Ruby をはじめませんか
via 彼の岸
後で読もう.と思いつつなかなか読めないんだろうな.
■ 平日 21:54 から
報道ステーションを初めて見た。
ニュースステーションから報道ステーションになってからほとんど見なくなったのだ。
古舘伊知郎嫌いだから、あんまり見たくもないなぁ。
2004-04-12 Mon
■ ClearCase
こんなバージョン管理ツールもあるのか。多分しばらくは使わないけど。
最近は SVN 始めようかとちょっと思ったり。
■ Java Developer
[2004-05-10] に紙媒体から Web マガジンに移行するらしい。
■ jbirth
バージョン 0.1.0 をダウンロードできるよう、更新した。
今度は GUI バージョンも用意している。
GUI の場合、InternalFrame (フレームの中にフレームがあるようなヤツ)がいいのか、
複数のフレームを開くのがいいのか、それとも、一つのフレーム内で
全てを表示するのがいいのか、どれなんだろう?
今のところ、InternalFrame にしているけど。
あと、誰かアイコンを描いてくれぇ。
■ news
- 坂道で車バック、パトカーに衝突…中3女子逃げ回る
ミッションの坂道発進は慣れないと難しい。
私はサイドブレーキ使用。練習しなきゃ。
- ネット犯罪防止ビデオ出演の女子高生、HP改ざん
- ネット犯罪予防ビデオ主演の女子高生、不正アクセス容疑
ビデオに参加させるときにネチケットなんかの講習をしなかったのかねぇ。
2004-04-11 Sun
■ orkut
研究室の教授を Orkut で見つけて、友達に登録しようと、友達リストに招待した。
5 分後に accept され、余りの早さに狼狽してしまった。
2004-04-10 Sat
■ 黄金色の祈り

批評は今まで色々と読んでいて、後味が悪いというのが多いように思っていたが、
そんなに悪いかなぁ。
後味が良いわけではないが、私としてはそれほど悪いようには思わなかったなぁ。
2004-04-09 Fri
■ 今日は研究室紹介
新 M1 が来る。e-learning システムをデモで動かそうとするも動かねぇ。
マシンが変わって動かすための設定を全くしていなかったためだ。
何故だろうとしばらく悩む。
Tomcat の設定で md5 digest にしていなかったからでした。
■ Profes 2004 の Victory party
Frank と Seija を迎えに行って、会場に行くと、既に何人かがいた。
Frank と Seija に
あなたが色々と教えてくれるんでしょ?
と言われ、同じテーブルに座る。I 先生、M 先生、Seija、Frank、私というメンバーになった。
隣のテーブルでは Pekka や Pasi ら Finland のメンバーが飲んでいる。Pekka がかなり酔っていた。
Pekka が帰る時、私に送っていけと言う。
マジですか。
仕方ないので、送っていく。送っていく途中、Pekka に
Answer the question.
と言われるが質問が分かんない。
まぁ、そんなこんなで無事ホテルに着く。
飲み屋に戻るとそろそろお開き。
Pasi がもっと飲みたいと言い出したらしく、私が人身御供として拉致される。
Night in Nara にはもう一人付いてくるとな。
私一人では心元ないので、K 崎さんに付いてきてもらう。
Pasi が自分を Taro と呼べと言い出す。Pasi という名前は Finland ではよくあるらしいので、日本の有名な名前である太郎とかぶらせたのだろう。
で、JR 奈良駅前のにんにくやで飲む。
忍者と侍と大名、将軍の関係がよくわからんらしい。
忍者のボスは大名なのは知っている。侍のボスも大名なのは知っている。
では、忍者と侍の関係はなんなのだ?
で、そこへ将軍というのはどこに出てくるのだ?
この 2 次会での失敗談をひとつ。
水が欲しいと名前を知らない外国人が言ったので、店員さんに伝えようと私の口から出てきた言葉は
Water please.
店員さんに「ハァ?」とかいう表情されてもーた。
そんなこんなで 2 次会も終了。
さて帰ろうかと Pasi に言うと、次行くぞと言われる。Bar with girls ってキャバクラかよ。
私も、K 崎さんもよく知らないので、タクシーの運ちゃんに聞いて回るも、英語が通じるようなキャバクラというのは知らないらしい。
もういいやと思い、ちょっとさびれた道に連れていき、
Just look, all restrant and bar are closed.
So, let's go back to the hotel.
と言うと納得したのか、仕方ないという顔でホテルに帰ると言ってくれた。
タクシーに乗せて、Night in Nara は終わり。
2004-04-08 Thu
2004-04-07 Wed
■ news
- 「ピーキー過ぎてお前にゃ無理だよ」――“金田バイク”が参考出展
via こだわりの「金田のバイク」
来たー。
- サンテグジュペリ搭乗機の残がい発見、墜落地点を特定
- オープンソース脆弱性データベース公開
■ デビュー
車で Profes 2004 の会場まで行ってみた。
周りからは
死なないでくださいね。
と言われるも、事故も違反もなく、無事到着。
■ Profes 2004
Banquet では staff のみの部屋に割り当てられる。
まぁ、途中で退席しないといけなかったので、仕方ないが、外国の方とお話したかった。
午前中、フィンランドから来られた Pekka さんと少し話す。
自分の研究内容を英語で話すのは難しいが、世間話程度であれば結構喋ることができる。
Reception で仲良くなったノルウェーの人 Marek とは話が弾んだ。
Zhang さんは良い人だ。
■ 要望というか、思ったこと。
- カテゴリ一覧
今のバージョンでは全てのカテゴリが表示される。
が、カテゴリの内容の数を上から 20 くらいまでの js ファイルも作られると嬉しいかも。
全てのカテゴリが表示されるものと、カテゴリの内容数を多いものから 20 コだけ表示するものと 2 つ出力されて欲しい。
- 検索
1 語だけの検索の場合、カテゴリ名でひっかかるかどうかをまず検索すると嬉しいかも。
■ 午前中
Profes 2004 を少し抜け出し健康診断を受ける。
採血の前の日には酒を飲まない方が良い
と書いてあるが、昨日は Reception。
追い出しをしなくていいということだったので、たらふく飲んでしまっていたよ。
幸いというか、異常なし。
体重は増えているだろうなと思っていたら減っていた。
