«前月 最新 翌月» 追記

netail.net

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

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


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

_ 論文

オブジェクト指向シンポジウムの論文の投稿が終了……したはずだが,投稿メールがエラーで帰ってきた.まだ準備されてないらしい.2週間前に送るほうが悪いとも言うが.

_ Eclipse

Eclipse CDT (C/C++ Development Environment) の解説記事を読んでると,Eclipse での C/C++ プログラミングもよいかも,と思わなくもない.コンパイラは gcc が前提っぽいが,gcc, bcc を素で使うよりは楽ができそう.GUI プログラミングは C++ Builder, Delphi のほうがいいかもしれないが…….http://www-6.ibm.com/jp/developerworks/opensource/030620/j_os-ecc.html

_ クイズ

まだまだあったのね,という感じ.むしろ,一般の人の知識レベルを調べるのには,こういう形式のほうがいいのかもしれない…….http://itpro.nikkeibp.co.jp/free/LIN/ITBASIC/20030630/1/

一箇所問題文を読み間違えたので90点.自信があっただけに,ちと恥ずかしい.


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

_ 掃除

パソコンパーツ関連の古いマニュアル,保証書類を整理してたら,体積が半分くらいに減少した.過去3年分くらいなので元々全体の量はたいしたことないのだが.

もう使ってない(譲渡済み)マシンの保証書とかも転がっていたので,そのあたりは念のため保管しておく.


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

_ 宅配便

鮎方さんからのメールの返事を書いてたら,宅配便が到着.何かあったかなぁ,と思っていたら Adobe Acrobat 6 Pro だった.予約注文したことをすっかり忘れていた.


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

_ COE

学内郵便が届いて,何かと思えばCOEプログラムの人文科学/教育系の「21世紀型高等教育システム構築と質的保証」という広島大学の人がやってる,大学院などでの研究活動に関するアンケートだった.

http://rihe.hiroshima-u.ac.jp/html/center_021_2.html

さっさと書いてさっさと出したが,どのくらいの母集団でアンケート取ってるんだろう.

_ SEC

ソフトウェア工学専門の研究機関を作ろうという動き.http://itpro.nikkeibp.co.jp/members/NC/ITARTICLE/20030625/1/

専門の人間にとっては,就職先が増えるので良いことだ.実践的な研究を行う,ということなので論文のための研究よりはマシな研究が出てくるかも.工学なんだからそもそも実用的でないと困るような気はするが.

_ Explzh

バージョンアップ通知が届いたので,Explzh 自動アップデートを起動.キーひとつ叩くだけでアップデートされるので,すごく楽.いいツールだなぁ.


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

_ Eclipse

Eclipse に SWT Designer プラグイン v0.0.1 をインストールしてみた.draw2d (GEF収録)のインストールが必要なのに,それを書いてないあたりがひどい.

エディタはとりあえず動くようだが,GUI 上の操作が反映されないっぽいのでしばらく保留か.今後の展開には期待できそう.

_ Java

Java でのクライアント・サーバのフレームワークがないかなーと調べていたら,ゲーム用フレームワークを発見.http://www.cyberstep.com/keel/

ライセンス料金が¥98,000-発生するので今ひとつ.でも,個人で無償の活動なら開発物の配布は自由なので面白そうではある.


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

_ LotR

エラッタ,FAQ によって更新されている部分を確認,反映.ルーリングセクション → エラッタ でかなり移動していた.

ひそかに,Warrior's Heart Edge が戦闘中の呪文にも適用できるので,魔術師のスタミナは意外と高く設定されることになりそう.実際,キャンペーンでは Tireless Edge で既にスタミナが10超えてる人がいるし,魔術師がパーティの中で一番スタミナがあるっていうのもどうかと思うけど.

_ 読書

Ken Arnold, James Gosling, David Holmes:プログラミング言語 Java 第3版,ピアソン・エデュケーションをちょっとだけ読んでみた.

新しい情報があったわけではなくて,StrictMath とか Process とか Locale とか存在自体を忘れてたクラスの存在を思い出したり,ソースコードで Unicode 文字が使えるとか,AccessibleObject (Field, Method などのスーパークラス)を使えばアクセス制御を無視したりできるんだ,とか微妙な情報がいっぱい載ってた.

でも,新しい情報がほとんどないということは,言語レベルではそれなりに Java に習熟してきたということなのだろう.もちろん,ライブラリのリファレンスは手放せないが.

_ 論文

次のネタ向けにピックアップした論文のうちのひとつを読む.Robert B. Findler, Mario Latendresse, Matthias Felleisen:"Behavioral Contracts and Behavioral Subtyping"出典は Foundations of Software Engineering (FSE 2001)で,Behavioral Subtyping を考慮して assertion をチェックしようという話.あるサブクラスが Bahavioral subtyping かどうか,というのはJava では記述できないので,そのあたりでは困っている様子.assertion の持っている問題を説明しているのでそのあたりで議論するときに refer するかも?


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

_ Java

Ant の Taskdef の追加方法が良く分からないので,そのまま ANT_HOME/lib に突っ込んでおくことにした.ant Tasks も数が増えてくると管理が面倒だが…….user.taskdef とか何かで設定するのかなぁ.

_ Java

SableCC をインストールしてみた.

Token 系が Txxx というクラスになっていて,identifier = {single} id | {multiple} id identifier;というように書くとPIdentifier に共通の実装が定義され,ASingleIdentifier と AMultipleIdentifier で個別のケースにアクセスできるらしい.

で,Analyzer (DepthFirstAdaptor) に自動生成される void caseASingleIdentifier(ASingleIdentifier) をオーバーライドして Visitor パターンと同様に解析クラスを実装して,root.apply(adaptor) で解析する.

思ったよりシンプル.構文解析系のツール(ANTLRとか)を使うのは苦手なのだが,このぐらいが実装が楽でよいかも.

_ FSE

FSE2003/IWPSE2003 への参加登録.EUR 250 の出費.今回も5泊か6泊になりそう.カードの限度額もつかなぁ.

_ 論文

A.J.M.M. Weijters, W.M.P van der Aalst:"Rediscovering Workflow Models from Event-Based Data"

ペトリネットで Workflow を記述するとして,Workflow Log からペトリネットを逆に抽出してやろうというもの.Dependency/Frequency なんてものを使ってる.

A が出る頻度,A の出た後に B が出る頻度,A の出る前に B が出る頻度,なんてものを見ることで順序,並行関係にあるかを見てやろうというものらしい.シーケンス長 n に対して O(n^2) な様子.

_ 論文

Mohammad El-Ramly, Eleni Stroulia, Paul Sorenson:"From Run-time Behavior to Usage Scenarios:An Interaction-Pattern Mining Approach"

画面トレース(画面IDの並び)からシステムの動作パターンを検出しようというもの.ユーザ・システム間のインタラクションを取り出すのが目的.

パターン抽出の基本操作はシーケンスの長さ n,数 k に対して長さ2の組み合わせを取り出すので,O(k * n^2) になる.

メソッドの実行トレースから計算しようとするとこの方法だと n = 10000~ なので大変そうだ.

_ 論文

Sergey Butkevich, Marco Renedo, Gerald Baumgartner, Michal Young:"Compiler and Tool Support for Debugging Object Protocols"出典は FSE-8, San Diego, CA, USA (2000) らしい. interface 定義に,一緒にプロトコルを定義しようというもの.
interface DataInput {   protocol { open; read*; close; }}
メソッド呼び出しパターンと,状態変数の定義を組み合わせて記述しよう,とか書いてある. 実際には表現力が謎ではある.例示として上がっているのが Stack なせいかも.やはり,もうちょっとオブジェクト内部の記述にも触れるようにしたいところ. 実行時の検査はやっぱりラッパークラスを使うみたい.ラッパーを使うと, self problem が発生するのが難点だが.

_ 台所

妙な臭いがすると思ってたら,流し台の下のパイプの固定がわずかに緩んでいて水がもれていたのが原因だった.物置になってる部分から直接触れるので,あっさり修復.これだけが原因ならいいのだが.

_ Windows 2000 SP4

アップデートついでに,デスクトップのほうのWindows 2000 に SP4 を適用してみる.データ用ディスクは分離しているのでどうせ失敗しても再インストールすればしまい,ということでけっこう気楽に動かす.

今回もかなりの数の .SYS, .DLL, .EXE が差し替えられてる様子.時間はかかったが,無事終了.

_ ごみ箱

ごみ箱に600MB以上のデータがたまってた.ディレクトリごと書いたり消したりを色々してるからか.

_ BIOS

Let's Note CF-T1 の電源コントローラをアップデート.いちおう事前のバックアップを取ったので時間がかかった.

_ eMemoPad

Public Beta 2 がリリースされた.色々機能が追加されているので乗り換えたいところだが,いくつかの公開ファイルのフォーマットのこともあるし,正式リリースまではとりあえず待つことにする.


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

_ AspectJ

さらに意見が出てた.これ,どこまで続くんだろう.
  • Aspect には, "abstract" なアスペクトが,pointcut に join point と関連付けられていないという形式と,pointcut は定義されているが処理が定義されていない,という二つの形で存在している.これらを言語上で区別するべきではないだろうか.

_ AspectJ

MLでの議論はまだ続いてる様子.
  • Eclipse AJDT ではマーカーを表示してくれる.タグ付けで「ここでアスペクトが動く」っていうのを書くのはたしかに一見してわかるという利点はあるが,統合開発環境のサポートがないからといって言語が対応するというのは問題なのではないだろうか.
という感じの意見もあったりする.みんな色々考えてるんだなぁ.

_ AspectJ

AspectJ-users メーリングリストで,AspectJ みたいな言語によるアプローチと,Java を拡張するフレームワークとで,どっちがいいんだろう?とかいう感じの話があった.まとめると,だいたい次の通り.

  • アスペクトを複数のファイルに記述するとき,言語的な観点からは,導入する複雑さのほうが本来解決すべき問題の複雑さを超えてしまうかもしれない.
  • JBoss グループでは,メタデータとインターセプタによってAOP を実装しているが,「AOP を実現するツールとしてのメタデータとインタセプタ」が,「AOP とはメタデータとインタセプタだ」ということに置き換わる恐れがある.
  • デバッグのサポートは重要.アスペクトによって,予期せず到達したコードがある場合,「なぜそのコードにたどり着いたか」を知ることが重要となる.
  • pointcut は単純すぎるとアスペクトの記述が難しくなる.たとえば,Control-Flow 記述を省略することでシンプルな言語を作ることはできるが,特殊な実行トレースなどを作るときに苦しむことになる.
  • 補足的なアスペクトを追加するときは Java + XML が妥当に見えるが,アプリケーションで重要な(「補足的でない」)アスペクトを記述するときは,できるだけソースコード中に情報を書きたくなる.補足的なアスペクトだけを見ている人には,フレームワークのほうがわかりやすい.
  • フレームワークのほうが導入しやすいが,使いにくい.フレームワークの動的な側面は,Java がリフレクションで利便性を得たのと同様に,便利な側面がある.
  • XML によるdeployment の記述は,意外と難しい.また,アスペクトの情報が複数のファイルに分散するのも大変.アスペクトを別ファイルに書くくらいなら,xdoclet みたいに@xx という追加タグを埋め込んだほうがマシ.
  • シンプルなフレームワークには魅力がある.しかし,ツールによるサポートなしでは厳しそうに見える.

……といったところ.全体では,AspectJ の方法のほうが良いと思ってる人は意外と多そうだ.Users メーリングリストなんだから当然かもしれないが.

_ スクリプト

ゲーム用のスクリプトを作ってくれーと言われてるので地道に SableCC なんぞを調べているのだが,問題は言語の表現力.どうせ言語を作るなら,できるだけ抽象的に書きたいし,ゲーム向けの,確率テストや乱数発生,計算の扱いなんかを簡単にしてやりたい.どうせ Python/Java からコントロールされることになるのであとは外部関数呼び出し機能くらいか.もう少し仕様を詰めてもらわないと,方針が立たないので保留しておく.


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

_ C#

SharpDevelop がかなり頑張ってる様子.こんなのよく作るなー.http://sharpdevelop-jp.sourceforge.jp/

_ 論文

Remi Dounence, Olivier Motelet, Mario Sudholt:"A formal definition of crosscuts"

「プログラムは,ステップごとにイベントを生成する」というモデルを説明した論文.モニタは,イベントのリストをプログラムから受け取って,crosscuts (イベントのリストとして定義される)が発生したかどうかをチェックする.

Crosscutsを定義するための Domain Specific Language を定義していて,実行時には Java としてコンパイルしてしまう.

どうやら,Event-based AOP というタイプらしい.素の Java で記述した Event-based AOP に比べると,DSL にした分,少し抽象的に書けている気はする.あと,cflow の最適化に関して証明が付いてるところもいちおうポイントだろうか.

_ 論文

Andres Farias and Mario Sudholt:"On Components with explicit protocols satisfying a notion of correctness by construction"

メソッド呼び出しの順序と,それによって起こる状態遷移を Protocol として定義するという話.まあ,ここまでは基本的に他のと同じだが,複数のプロトコルを結合(合成)するための形式的な計算法を提案している.これを使えば,オブジェクト間の Protocol をうまく計算できる可能性はある.もちろん,状態定義などをきちんとできれば,だが…….この手の protocol 定義では,例外処理などが定義されていなかったりするあたりが少し悲しいという気もする.

_ 論文

Matthew B. Dwyer, John Hatcliff, Robby Joehanes, Shawn Laubach, Corina S. Pasareanu, Robby, Hongjun Zheng,Willem Visser:"Tool-supported Program Abstraction for Finite-state Verification"出典はICSE2001らしい.

マルチスレッドなプログラムに対する検証を行うために,プログラムを抽象化して必要なところだけ取り出してやろうというものらしい.BASL (Bandera Abstract Specification Language) をJava に変換して,具体的なオペレータをその抽象的オペレータに置き換えたりするらしい.あと,PDG を辿っていって,途中の制御変数では最も影響の強い(数多く使われている)ものだけを残して他を取り除いたり,といったプログラムスライシングを応用したようなこともやっている様子.

しかし,適用対象が小さいプログラムなので,あまり有効性については分からない.

抽象的なオブジェクトに落としていく,というのは"ソースコード縮退" 系の研究には微妙に関連しそうではあるが.

_ AspectJ

pointcut のところに,Jim Hugunin が指摘していたafter/around : handler が使用不可能になった話を追加.追加しようとして,ずっと忘れていた.

また,#hoge 形式のページ内リンクがフレーム有効時にうまく動かなかった部分を修正した.

_ C#

Borland C#Builder が出るらしい.Visual C# .NET のぱっと使った限りでの完成度からして,戦うのは難しそうなのだが,Personal の機能限定版は無償配布らしいので地味に食い込んでいくかもしれない.まあ,使いやすさや,Delphi, C++Builderからの移行しやすさ(ツールの操作の共通性)がどの程度かによって,売れるかどうかは決まってきそうだ.

_ タクシー

GPS 使ってタクシーが駆けつけるサービスとかがようやく実現され始めたらしい.以前は,「できたらいいなぁ」という程度だったのだが,不況→打開策として投資という動きで,しばらく進んでいきそうだ.http://biztech.nikkeibp.co.jp/wcs/leaf/CID/onair/biztech/biz/255498

_ AspectJ

Jianjun Zhao, Martin Rinard:"Pipa: A Behavioral Interface Specification Language for AspectJ"

BISL (Behavioral Interface Specification Language) のひとつJML (Java Modeling Language) を AspectJ に拡張するという話っぽい.

JML は,ドキュメントコメントタイプ.@model instance int x_Mdl; とかいってモデル上での変数を宣言したり, @depends, @represents とかを使ってモデルと実体のフィールドを対応付けたりする.で,メソッドごとに ensures とか定義するらしい.

これを AspectJ に拡張しているのだけれど,advice の先頭にこの振る舞い記述を書けるらしい.

しかし,コード中にいっぱい分岐があると,その分振る舞いの仕様も増えていて,コードと仕様記述が重複していて無駄に見える.invariants とか書けるのは,まあ便利だが.

コンパイル時に AspectJ 記述が Java ソースに落ちるのと同様にJML 記述に落とすようなことが書いてあるが,詳細は不明.また,cflow など一部の join point はサポートしていない様子.

どうやら,この手の仕様記述や assertion の設計としては「動的にチェックするかどうか」といった問題があるらしい.いっぱい関連研究を挙げている.あまり読む気は起きないけど.

結局,この手の仕様記述は,書くかと言われると書かないなぁ.特に振る舞いの仕様記述は,コードと内容が重複するのが問題のような気がする.

_ 論文

論文を斜め読み.Steven P. Reiss and Manos Renieris:"Encoding Program Executions"

実行履歴を使って動的解析するのはいいけど,大量の実行履歴を扱うためには圧縮が必要,ということで色々な圧縮方法を比べている論文.

call/return を ABvCv (v はreturn) と表現する String Encoding,stack trace の中身を tuple で表現するとか,DAG で表現するとかになるらしい.

Grammar Based Encoding は,ICSE2003 の J. Law, G. Rothermel:"Whole Program Path-Based Dynamic Impact Analysis"で使っていたような気がする.

また,Finite State Automata を構成するなんてのも.圧縮率がけっこう違うんだなー.生データで 20G とかあっても,FSA とかに圧縮してしまえば実用範囲内に落ちるらしい.繰り返し回数とかの情報が落ちることを考慮しないといけないだろうけど.

_ 名簿

名簿の原稿の誤植の改訂とか,他人の分の捏造をしたりする.だいぶ GIMP の使い方に慣れてきた.


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

_ SCO

Linux でもめてる SCO の意見.大変だなぁ,とは思うのだが,ライセンスの「方法を真似してもダメよ」系は厳しすぎるような気がする.特に,ソースコードが公開されてしまって「コードを読んでしまった」状態のプログラマたちがそれ以外の手法でプログラム書き直すのは難しいのに…….昔みたいに「経験者お断り」なクリーンルーム実装でもしないと無理かしら.http://itpro.nikkeibp.co.jp/free/LIN/NEWS/20030709/1/

_ Backup

MyBackup をインストールしてみた.単なるスクリプト実行よりは,ディレクトリごとに保存設定とかを楽に書けるので良さそう,という程度だが.

_ Eiffel

Assertion, Representation Invariants が気になったので,B. Meyer のオブジェクト指向入門を読み直してみた.

  • Assertion は,「クラスが安定した時点」で守られていればよい.安定した時点とは,次のタイミングである.
    • インスタンス化された(Create 実行が終了した)直後
    • obj.method 形式のリモートコール (外部からの呼び出し)の前後
  • メソッドの処理中や,ローカルコール(オブジェクト内部のコール)においてはAssertion は守られなくてもよい.
  • クラス不変表明 (Class Invariants) は, すべての事前・事後条件に AND で付加される共通条件である.ただし,「これから追加されるメソッド」に制限を課すという点で,通常の事前・事後条件よりも強い意味を持つ.
  • 実現不変表明 (Representation Invariant) は,クラス不変表明のひとつで,「抽象データ型の仕様に対して直接対応するもののない表明」.簡単に言うなら,外部に公開されていないような内部変数に関する表明である.
  • 副作用 (Side-Effect) とは,オブジェクトの持つ属性を一つ以上変更する操作のこと.オブジェクトの持つファンクションは,副作用はあってもよいが,抽象状態ではなく具象状態にのみ影響を与えるものでなければならない.

どれも,妥当な意見なので納得.昔読んだときに比べると少しは理解度が上がった気がする.

_ ANA

マイリッジ(またはマイレージ)サービスに登録してみた.これから海外行く機会が多くなるだろうし.

_ 散髪

髪を切りに行ったら,肩がこってるねーと感心されてしまった.

_ Segway

http://biztech.nikkeibp.co.jp/wcs/leaf/CID/onair/biztech/mech/256412なんかを見てると,法整備は待たずにとりあえず走らせる気か.扱い的には,原付あたりと似たような扱いになるのかなぁ.

_ AspectJ

プロジェクトが Jim Hugunin から Adrian Colyer に引き継がれた.とうとう AspectJ 1.1 で PARC が面倒を見るところは終了したらしい.

_ バックアップ

家のデスクトップの HDD に蓄積されたホームディレクトリのバックアップ履歴のうち過去1年分(約2GB)をCD-Rに書き出す.

2週間から1ヶ月程度の間隔でバックアップを取っていたが,意外とたまっているものだ.


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

_ Java

JEasy http://www.jeasy.de/世の中には,XML で GUI コンポーネントの構造を記述したりするものもあるらしい.

_ ITCC

輪講に出てきた論文の出典がInternational Conference on Information Technology: Coding and Computing という名前のわりに聞いたことがなかったので調べてみたら,マルチメディアデータの効率的な符号化・計算などが主な interest らしい.

_ Java

Java から C# に乗り換えた10の理由,とかいう記事が載ってた.http://www.atmarkit.co.jp/fdotnet/special/java2cs/java2cs_01.html

スタック上にオブジェクトを構築できること,delegate が存在するあたりは C# のいいところなので素直に同意してみる.

property はメタデータ記述と似ているので置いといて,メタデータ記述は JSR 待ちとなっているので,今のところ C# のほうが上.

スレッドまわりの話は,Java のクラスライブラリがいけてないだけなので,C# との言語的な差というのは微妙.

しかし,「final を速度向上のためにつける,それよりは virtual/override のほうがいい」というのは,final を付けたら速度が上がるという噂に騙されてるので,ちょっと困ったもんだ(多くのJavaプログラマも,記事の筆者も騙されている).virtual はオーバーライドされて挙動を変えられる可能性を明示することでプログラマに注意を促すという重要な意味があるのに…….

まあ,C# に優れた点があるので乗り換えました,というのは正しい意見なのだが,10の理由とか挙げるほどかなぁ.いくつかの強い理由と弱い理由が混在してる気がする.


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

_ LotR

キャンペーンで色々わかったこと,その3.その他.

  • レベルが高いキャラクターなら,武器スキルはほぼ確実に12(最大)まで成長させられて,かつ専門化されている可能性は高い.技能における戦闘力だけなら,どのキャラクターも簡単にナズグルなどと渡り合えるようになる.実際には,Intimidate に耐えられるかどうか, 呪文による攻撃に耐えられるかどうかというのがキーポイントとなるので,低レベルのキャラクターで戦うのが難しくなっている.
  • 意外と Willpower が伸びないことも.
  • 実は,Edgeのほうが成長が安価なので,Strong-willed や Tireless,Resolute などのほうが得だったりする(種族にも依存するが).
  • 交渉系技能は,GMの方針によってはほとんど使われない.
  • Inspire, Intimidate は使いどころが難しい.
  • 種族の能力は忘れられやすい.
  • Renown は,有名な敵と戦って倒すと,一気に上がる.

_ LotR

色々わかったことその2.戦闘関連.

  • 飛び道具は命中しやすい.接近戦闘での使用を許可すると,どんどん当たる.威力は低いが,技能が高いと最大ダメージが連続になる.
  • 「ラウンドの最初で行動を宣言」は運用が難しい.また,攻撃の達成値を決める前に防御か回避を宣言するのも難しい.防御はできそうもない攻撃を耐えるという選択肢がないため.
  • 各行動順のときに行動を宣言するときは,先に4連続攻撃などをするキャラクターが現れたとき,防御側は「これは追加行動(-5ペナルティ)分で防御」などと宣言できるようにしておくべき.
  • Bane-spell など,攻撃に修正が入るものについて,防御に対して修正が入るか不明瞭だが,入るとしておいたほうが安全.
  • 多人数戦闘のときは,強いキャラクターなら圧倒的勝利可能.
  • ただし,囲まれると追加防御行動の-5ペナルティが出てくるのでかわしきれない場合が多い.基本的に Health の削りあいになる.鎧や盾は重要.
  • Sweep(2行動分)は,3体狙えない場合は,2体を別々に攻撃したほうが有効(何かルールを読み落としている?).

_ LotR

キャンペーン終了.原作設定を応用しつつ色々遊んだ感じ.色々分かったこと,その1,魔法関連.

  • 魔法の威力は Bearing で上がる
  • 魔法使いは Stamina を高くしたいので Vitality が上がる
  • 呪文の<集中>の維持するのに必要な Wits 15 は まず成功しない
  • 序盤は,Intimidate がやや強力すぎる感あり.Resist Fear がない状態のキャラクターに Evoke Fear すると Willpower が低いので,Disastrous Failure を起こしやすい.
  • 魔法の状態(修得からの経過時間,2回の Superior Success)をトラッキングできないとダメ.書き込み用の別シートがほしいところ.
  • Warrior's Heart,Tireless などを限界まで取ると,それなりに魔法を使える.
  • 魔術師のほうが,戦士より Stamina が高くなる.
  • 魔術師は,意外と Wisdom を使うタイミングが少ない.
  • 攻撃魔法を使いたい場合は,Ranged Combat が重要.
  • 攻撃魔法に対してアーマーが有効かどうか不明.(一般に,有効としたほうが安全そう)
  • 支援系魔法は非常に強力.Bane-spell, Victory-spell を事前にかけておくのは重要.
  • 「1分間以内の魔法」のカウントが意外と面倒.非戦闘時に,1分の準備時間の呪文をかけるときなど.
  • 効果が発動中の呪文の個数のカウントと,両方が必要.これも分かりやすいカウント方法が必要そう.

_ PDA

最近 mp3 プレーヤと化していた Genio e で,メールを読めるようにしてみた.メーラはnPOP.無線LAN 環境さえ整えれば,部室でのメール読みはすごく楽になる……かも?ノートPC持ち歩きたくないときに使ってみることにする.

それにしても,データをSDカードに入れてコピーできるのでアプリケーションのインストールがすごく簡単でいいなぁ.

_ どせいさん

ポケットから取り出した拍子に,どせいさんストラップのどせいさんが取れてしまって焦る.結局,留め具が外れただけだったのですぐ直った.しかし,この手の,小物をぶらさげる系のストラップは,取れたものがどこかへ行ってしまう可能性が高いので微妙だ.

_ 新幹線

旅行用の新幹線のチケットを押さえてきた.さすがに,1ヶ月先ぎりぎりなので,わりと余裕で確保できた.

問題は帰省用のチケットだが,日程を詰めて,17日くらいを目処に取りに行くことにする.


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

_ 読書

マーセデス・ラッキー「女神の誓い」読了.アン・マキャフリィと「旅立つ船」で共同執筆してたので名前を見たから買ってみた.

主人公二人が女性という,わりと珍しい作品.誓約の剣<もとめ>の所有者は女性の助けを断れない,という制限付きの剣を軸に話が進んでいく.

ファンタジーっぽさを演出しているのは,誓いや絆が意味を持つ(何らかの力によって支援される)というあたりかも.シリーズものなので,続きも読んでみたいところではある.


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

_ 読書

野矢茂樹「論理トレーニング」読了.前々から部分的に読んでたのだが,初めて,通しで読み終えた.基本的な文章の接続の話から,論文の書き方とかまでカバーしてる教科書的な本.それなりに読みやすいし,勉強にはなった.論理パズルの本ほど面白くはないが.

_ LotR

特徴の一覧表を作成.表記を簡略化しただけだが,おかげでページ数が減った.

_ SS2003

SS2003のチュートリアル資料を見せてもらった.

佐原 伸, "ソフトウェア開発のモデル化技法"オブジェクト指向形式仕様記述言語VDM++ に関するチュートリアル.

クラス定義が,一部,語彙など関数の階層関係の表記に使われていて「オブジェクト」主体ではなく,クラス主体になっているように見える言語(単に例として載っているのが全部 static 関数で関数をクラスに分類しただけのようにも見えるせい).

imply などいくつかの演算子が,事前・事後条件の記述に便利そうな点は好感が持てる.

仕様とは,関数(宣言的)あるいは操作(手続き的)で,また,事前・事後条件,あるいは,どのように計算するかで定義されると明示している点は意味がある……のかな.そこまで書くならの話だけど.

関数型言語でよく使う let 文(一時変数への値のバインド)は,やっぱり手続き的言語では便利かもしれない.

検証関連はまったく話が出ていないようなので残念.あと,段階的な詳細化・洗練を,どのように行っていくのか,具体的な開発している様子があまり見えてこない.あと,この手の言語の弱点は,開発者にかなりの熟練(論理的な知識)を要求するところだ,とか誰かが言ってた気がするが,たしかに,imply や iff をきちんと理解してない人が混ざったら開発が大変になりそうな気がする.

_ Java

EXCELSIOR (XLSoft) という Java ネイティブコンパイラを使えば,ヒープ領域がちょっと多く(通常1GBのところが 1.5G とかその程度)使えるらしい.

JVM,早く 64bit 化されないかな…….

_ SD Card

Microdrive から SD Card へデータの主体を変えてみたら,PDA の電池の持ちが2倍(推定)くらいになった.Microdrive の電力消費が大きいのは何となく予想はついていたし元々使用時間が短いのでさほど気にはなっていなかったが,ここまで差が出るとは,と少し驚いた.

_ 写真

RPG 研究会のキャンペーン打ち上げ時の写真をアップロード.アナウンス流すのが面倒なんだが,どうしておこうか.


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

_ ロボット

日本科学未来館ロボット・ミーム・データベース.http://www.miraikan.jst.go.jp/tool/rmdb/

こんなもん作ってるんだなー.感心.

_ 失敗学会

失敗知識データベースの話があったので,http://shippai.org/を見に行ってみたのだが,ほとんど会員制で制限がきつくてダメそうだ.ちなみに年会費7000円なので,かなり安いといえば安い.

_ Java

J2SE から Fullscreen Exclusive Mode API なんてものがあったらしい.これ使ったら,Java では描画速度が遅いだのという話はある程度解消しそうではある.

# たまにフルスクリーン解除できないと嫌だーという人もいるが.

http://www-6.ibm.com/jp/developerworks/java/030704/j_j-mer04293.html


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

_ activemail

neweb がいつまで残ってるか分からなくて不安なので,メールアカウントを ActiveMail に移行開始.activemail.jp ならまあ,残るだろう.

_ 無線LAN

WN-B11/CF を PDA にセットアップ.つながらないなーと思っていたら,ESS ID 入力フィールドが大文字・小文字を区別していたらしくて全部大文字にしたら通った.むー.

_ 日記CGI

ひそかに入っていた blockquote を外したりcolspan の値を変更したりして,微妙にレイアウトが変化.ウィンドウを小さくしたときに(PDAからとか),少し読みやくなったはず.

_ 無線LAN

自宅LANに無線ブリッジを追加.これでまた少しケーブルの本数が減る.

_ どせいさん

どせいさんのほんを購入.真空パックのどせいさんがどんなのか見たかっただけだが.家に置くほど作りがよくないので,部室に放置することにする.

_ 恋愛頭脳

http://hanihoh.com/love/の診断結果は「達人」だった.駆け引き過多らしいが :-)


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

_ activemail

activemail.jp にメーリングリスト系をほぼ移行.ついでに,あちこちに持っていた各種アカウントのリストアップも完了.


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

_ Java

ソフトウェアデザイン8月号を読んでたら,やはり Tiger (1.5) では JSR-201 の Iteration over Collection も入るらしい.

for (String s: c) { .. } とか書けるようになると,だいぶ記述が楽になる.

_ Delphi

C Magazine 8月号を読んでいたら,Delphi 7 Studio についてくる IntraWeb の紹介記事が載っていた.フォームデザイナでWebページをデザインできるのはかなり便利そう.

_ 読書

Java2 Platform, Enterprise Edition アプリケーション設計ガイド (ピアソン・エデュケーション)を読了.最近,J2EE を使って(EJB コンテナを使って)AOP を実装しようという話を聞いたので EJB がどんなものか知りたくて読んでいたのだが,コンテナ(実行環境なので,ミドルウェアと考えるべきか?)がメソッド呼び出しをローカル,あるいはサーバへの呼び出しにマップしたり,トランザクションを連動させたりといった機能を提供するらしい.そりゃ AOP の実装に使えそうではあるなぁ.

ローカルに見せるインタフェースとリモートに見せるインタフェースを違うものにできるような書き方をしている(EJBObjectを介して呼び出し,Beanインスタンスの参照には直接触れないらしい)あたりが面白いところではあるんだけど.

Enterprise Edition っていう名前を使わなかったらもっと普及したような気がするんだけどなぁ.Enterprise と言った瞬間に,小規模なWebアプリケーションを開発するユーザを遠ざけたような気がする.

それにしてもこの本,用語や表現が非常に混乱しやすいので読みにくい本ではあった.もうちょっと,いい入門書を探したほうがいいかもしれない.

_ デジカメ

保証書の整理をしてたら,カメラの保証書が約2ヶ月前に既に期限切れになっていた.ということで,カメラまわりのこまごました品物を破棄する.

……スマートメディア 16MB が1個あまってることが発覚したが使い道がないので放り出しておく(カメラには32MBを装着済み).

_ 査読

先生から論文の査読を頼まれた.4ページなので,すぐ終わりそうではある.


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

_ 読書

インタフェース8月号を購入したついでに,マーセデス・ラッキー「裁きの門」,「誓いのとき」を購入.

_ 査読

論文の査読がいちおう片付いた.他の人に軽く意見を聞いてから,まとめて先生に出すことにする.

_ ワイン

楽天市場でのワインのオークション.1934年ものが現時点で2万8千円.28日の朝までなので,27日の夜に様子を見たいところ.http://www.rakuten.co.jp/yuhara/460416/500991/


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

_ CATV

排熱が微妙に悪いことが分かったので,ケーブルモデムを風通しの良い位置に再配置.

液晶ディスプレイの箱をたたんだりしたので,だいぶ空間を確保できた.

_ 読書

エリヤフ・ゴールドラット,「チェンジ・ザ・ルール」を読了.システム・インテグレータがテクノロジーを売るのかバリューを売るのか,とかいう話.TOCとかも絡んで,システムを導入してもシステム導入前のルールが,システムの活用を阻害するとかいう厳しいお話.


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

_ XVCL

サンプルを見た限りだと,コード(というかテキストか)の合成ツールのように見える.insert-before, after などを使ってコード片をつなぎあわせたりするのに使えそう.

逆に,コード生成ツールは,生成後のコードの変更をフィードバックする仕組みがないとデバッグしにくいのだが.

_ XVCL

XML-based Variant Configuration Language らしい.http://fxvcl.sourceforge.net/

コード生成ツールだろうか.いまいち良く分かってないので,もうちょっと調べてみる.

_ ワイン

http://www.rakuten.co.jp/winesenka/496017/497820/とかを見てるとたくさん入札されているので,やはり美味しい(と言われている)ワインのほうが古いワインよりは人気があるらしい.

まあ,金の使い方としてはそのほうが妥当な気はするのだが,あえて飲んでみたい古いワイン.どっかの古酒とかいうレベルじゃないからなぁ.

_ グリッド

グリッドコンピューティングは分散した(まとめると膨大な)資源を仮想共有する,というのとOGSA (Open Grid Service Architecture) ベースなら異機種間統合できるというところで並列計算機より有利っぽい.(並列計算より大きい概念かも)

スケーラビリティは謎だが.並列計算でも 10**6 台あたりは狙ってた気はするがグリッドだとどこまで伸びるんだろう.

_ 論文

ソフトウェア工学研究会の Proceedings を読む.中島 震, 玉井 哲雄:"セキュリティポリシーに関するデザイン解析",情報処理学会 ソフトウェア工学研究会 2003-SE-143

セキュリティシステムが正しく動いてるかどうかを検証するという話らしい.システムの振る舞いを複数のジョイントアクションと考えて,それらのジョイントアクションが,特定の順番で起きるのが正しい振る舞い,とかAlloy を使って記述して,検証してやろうという話らしい.

Join Action とは Catalysis が提案したもので,誰が何をするか,という記述無しに,インタラクション全体として何が起きるかという単位.

これに対して,Localized action は pre-condition を満たしているとき,post-condition を満たさせるために呼び出して発生する interaction のこと.Joint action は何が起きるかを説明しているが,直接呼び出すというものではないらしくて,オブジェクトのグループの振る舞いを規定することができるそうな.

ちなみに,コラボレーション関連ではJackson System Development (JSD; ジャクソン開発法) というものがあるらしい.玉井先生のソフトウェア構成論の授業資料に載っていたのでURLだけ置いとく.http://www.graco.c.u-tokyo.ac.jp/~tamai/softwconst/softwconst3.pdf

_ AspectJ

AspectJドキュメントのカウンタの周りが最近早くなってきた気がする.今まで10件/日くらいだったのが30件/日.気のせいかな?

_ 査読

論文査読終了.先生に「曖昧な論文ですが,書くとしたらこんな感じでしょうか」と,ちょっと論文査読的な(pros and cons を列挙した)コメントを送ったら,「僕が読んでもなんか曖昧で訳分りまへんでしたので」と返事が返ってきた.やはり印象は間違ってなかったらしい.

_ TV

USB接続のTV/Video キャプチャキットを購入.これでノートPCからCATVが見られる.もっとも,ノイズが多いので(ケーブルモデムのスプリッタあたりが怪しいのだが未確認),ほとんどニュースを聞くためだけのものだが.


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

_ 論文

次ネタの準備に向けた論文読み.Daniel Jackson and Alan Fekete:``Lightweight Analysis of Object Interactions'',Proceedings of TACS 2001

オブジェクトの Interaction を扱うために,宣言的な記法を使って,オブジェクトに関する必要最小限の制約を書きましょう,というもの.

全部が全部形式的にやるんじゃなくて,必要なところだけで,っていうあたりは実用性を考えている.宣言的記法で,インタラクションの状態遷移の制約を書いて,反例を探すことで Violation の可能性を見つけようというのはなかなか大したもののように思える.オブジェクトの状態ではなくインタラクションの状態であるという点は特に.

抽象的に書けるぶん,具体的なものを書きたいときには使えなかったりしそうなところは苦しいが,悪くないような気がする.refer 用リストに入れておこう.

_ Java

Core Java Technologies Tech Tips, July 22, 2003 に Taglet (javadocコメント中の @hoge ) の使い方が載ってた.

基本は com.sun.tools.doclets.Taglet を implement したクラスを作って, javadoc -taglet オプションで渡すらしい.

Taglet は,

(1) static register(Map) で map に自分の名前 (@hoge なら hoge) に自分のインスタンスを関連付けて,

(2) どこに記述されるかをinField, inMethod, ... というメソッドで boolean を返すようにして,

(3) もし行内展開するなら isInlineTag でtrue を返すようにして,

(4) HTML 記述を生成するtoString() (単体と配列を引数に取る2種類)を実装する.

けっこう簡単に書けるっぽいので,機会があれば使ってみたいところ.

もう一つ,javac をソースコードから呼び出す方法も載ってた.

こっちは,com.sun.tools.javac.Main.compile(new String[] {sourceFile}); を呼び出すという,シンプルなインタフェースになっている.逆に遊ぶところもなさそうではある.

_ activemail

ルータがパケット落とすなんてありえない(だってコネクション張ってるんだし)ので,やはり名前取得のタイムアウトが原因だった.ってことで Norton Internet Security のファイアウォール設定を変更したら問題は解決した.

_ activemail

activemail 側のサーバは,送信側にホスト名か何かを取りに来てるっぽいのだが,ルータは何も返さないはずなのでタイムアウト待ってるような感じ.あやしいなぁ.ログ吐き用のホスト名だったりしたら嫌だなぁ.

_ XVCL

XVCL 使ったら,差分ベースなプログラミングができそう.それはそれで,けっこう面白いかも.デバッグとかは大変そうだが.

_ XVCL

Java コードに適用している例を見たところ,やはり予測は間違ってなかったらしい.

"frame" という単位が基本の意味的まとまりを表現していて,その中身のテキストの途中には "break" を挿んでおくことができる.

"break" には,別のファイルで "insert" を定義しておくとその break に収めるべき別のコード片を書いておける.

で,出力ファイル名の指定と adapt タグを使って,必要な frame を選択して,それらを合成する.

insert-before, insert-after というbreak の前後にコード片を入れる指定子や,変数,ループなどを使った記述ができる.たとえばクラス名をパラメータで与えて変数の型を指定するとかいった,いわゆるコードジェネレータでのGenericsの代替などがそれなりに簡単にできる.

利点は,言語を問わず,任意のテキストが扱えるところ.欠点もそこにあって,構文木の構造などに注意を払わないので,コードを合成するまではコンパイルが通るかどうかまったく分からない.


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

_ 論文

Scharli, N., Ducasse, S., Nierstrasz, O. and Black, A.P.:"Traits: Composable Units of Behaviour"ECOOP2003

今回一番気になった論文.trait = 特徴 を再利用単位にしよう,という話.trait は,メソッドの実装を提供し,必要なものを要求する.Trait は状態変数には直接アクセスはしない.Traits はクラスと合成される.Conflict が起こったときは明示的に解決する必要がある.

多重継承や mix-in の問題点を挙げている.たとえば,出力ストリームクラス A と B に対して,それらを継承してSyncA, SyncB という同期クラスを作るとき,共通部分だけを取り出して AやBと独立にSyncWrite クラスを作ることはできない(Template使えば別だが).

Traits の例として,たとえば・TDrawing はBounds と Canvas を要求して,draw メソッドの実装を提供する.・TCircle は bounds を TDrawing に提供し,size を要求する.・Circle クラスは,TDrawing に Canvas, TCircle に size を提供する.……といった接続関係を定義できるらしい.

この方法は,オブジェクトが Traits を取り込むと宣言するので,アスペクトとは逆にObject -> Traits 方向の依存関係が発生する.必要最小限の Traits -> Object 依存関係を持つので下手すると依存関係が複雑化しそうだが.

多重継承などよりは整理された方式なので個人的には好み.スクリプト言語なんかで実装されてて,簡単な Traits がたくさん準備されてたら,思わず使ってしまいそうだ.ただ,Traits はアスペクトと違って「勝手に動けない」ところが少し弱いので悲しい.動けるようなものなら間違いなく使う.昔,そういうネタを考えてたけれど,誰か作ってくれないかなぁ.自分で実装するのは面倒だ.

_ 論文

Lam, P. and Rinard, M.:"A Type System and Analysis for the Automatic Extractionand Enforcement of Design Information"ECOOP2003

型システムを少しいじって,「これはxxという名前のサブシステムね」と型宣言をできるようにして,システムの動作を解析している.

モデルとしては,Call/Return Interaction Model (制御関係)Heap Ineteraction Model (共有データへのアクセス) なんかが導出可能らしい.

Call/Return Interaction Diagram は,すべての interaction の可能性を示しているもの.UML のシーケンス図は特定のユースケースに縛られているのでそれとはちょっと違うものだよ,と主張している.

実装方法としては,言語を拡張すればいける,というのが偉いのかどうか.ソースコードをぱっと見た限りでは,こんなのを手作業で書くのは大変そう.

たとえば,サブシステムに属するクラス宣言は class Hoge enter H1 { ... } とか書くことになる.この H1 とかいう名前が後で出力される図のベースになる.小さなサンプルで 3つくらい型パラメータがある時点であまり使いたくない.

いちおう静的情報でがんばって獲得しているように見える.が,言語をこれだけ拡張されてしまうと,実用性という観点では,適用するのが難しそう.どっちかというと,「誰がどのサブシステムです」と言語の外側にメタデータとして付けてほしいところ.メタデータで実装が可能なら,けっこう便利かも.

_ 論文

Popovici, A., Alonso, G. and Gross, T.:"Spontaneous Container Services"ECOOP2003

Spontaneous は "自然な,自発的な" という意味.EJB のようなコンテナ技術は固定されたネットワークを前提に作られているが,モバイルネットワークでもコンテナの透過性やトランザクション機能は便利なので使えるようにしましょう,という話.実装に dynamic AOP とか Jini を使っている様子.

コンテナが勝手に実装を置き換えたりできる世界になってる……らしい.dynamic AOP を使って,static にできない何ができるか,っていういい代表例になるかもしれない.そのうち.

_ 論文

Henkel, J. and Diwan, A.:"Discovering Algebraic Specifications from Java Classes"ECOOP 2003

Java クラスのコードから,実行時情報を使って,代数的仕様を発見しようというもの.

たとえば,Class が Immutable かどうかを,すべてのメソッド呼び出しの前後でシリアライズした表現とハッシュ値が同じかどうかでチェックするらしい.

見つけてきた情報から Term -> Equation -> Axiom と発展させるらしい.

実験対象はデータ構造系ばっかり.代数的仕様の弱点は,オブジェクトの内部状態ばかりに注目して,外部に及ぼす影響を評価していないことだと思うのだが…….

_ 論文

ECOOP2003が開催されているのに合わせて論文読み.# 別に意味はないが.

Aldrich, J., Sazawal, V., Chambers, C. and Notkin, D.:"Language Support for Connector Abstractions"

システム間,分散したコンポーネント間を接続するコネクターの話.ArchJava をベースに,connect という言語要素を導入している.コンポーネントの port 定義を,connect(ui.search, peer.search); とかいう感じで接続できるらしい.

connect (PoemPeer.client, PemPeer.server) with new TCPConnector (..)というように, "with" を使って接続メディアを指定できるあたりが便利そう.Connector オブジェクトが,オブジェクトの登録やら接続,通信の面倒な処理を全部やってくれるらしい.Connector は Decorator などに近いので,CachingConnector とか,Connectorに特殊な機能を持たせることでシステムを拡張することもできる.

理解容易性と拡張性がアップするらしい.コネクタベースの記述というのは面白いかも.競争相手は,もちろん,通常のOOPやAOP,各種分散システムのインフラ系など.

_ Windows

Windows のパスワードが破られたという話を教えられた.

http://headlines.yahoo.co.jp/hl?a=20030724-00000024-zdn-sci

論文をちらっと読んでみると, key' = res(hash(key))というように逆ハッシュっぽい関数で,key を key' にマップすると, f = res(hash) とするとどこかで f^n(key) = key となって,keyが破れるという話っぽい.1.4G とかのルックアップテーブルを作れば OK だそうな.で,このテーブルの構造を工夫したところがポイントだったらしい.

まあ,目標の(対象マシンのパスワードがエンコードされた)ハッシュ値が取れないとクラックしようがないので,そういうハッシュ値が簡単に取ってこれるようなスクリプトや ActiveX がなければそれほど問題ではないかな.

パスワードの関数がへぼいからといって,ハッシュ関数を置き換えてしまうと,元パスワードでログインできなかったりしそうだし.どうやってアップデートするんだろ?Longhorn まで待つのかなぁ.


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

_ ランチャ

キーボード制御であることに心惹かれて,ランチャ Blue Wind を導入.メール,エディタ,SSH の起動をセッティング.http://cspace.s2.xrea.com/software/bluewind/

_ ML HTMLHELP

メーリングリストのアーカイブを HTML Help に変換するプロトタイプを作ってみた.単に MHonArc の出力 HTML をリストアップして hhp (プロジェクトファイル) にadd するだけの簡単仕様.実は tknamazu とかのほうが早かったりしそうだが.


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

_ 読書

倉島保美「理系のための英語ライティング上達法」(ブルーバックス)読了.

助動詞,前置詞や接続詞の使い方における注意などだが,文章の構成のための基礎の説明がメイン.

コロンやセミコロンの使い方,いくつかの慣用句表現の微妙な違いについても簡単な説明があって,ためになる本だ.文章を書くときにまた参考にしたい.

作者の人のwebページはここらしい.http://www2u.biglobe.ne.jp/~kurapy/

_ AspectJ

AspectJ dev メーリングリストで,こんなのはどうだろう,とAdrian Colyer と Wes Isberg が話してた. インタフェースに abstract pointcut を定義しておいて,

interface I {
   abstract pointcut pc();
}
アスペクトにはその実装が書いてあって,
    before () : I.pc() { ... }
クラスごとにインタフェースを実装してpointcut を定義すればいいよねーというもの.
class A implements I {
     pointcut pc() : within(A);    
}
class B implements I {
     pointcut pc() : target(A);
}

アスペクトを「どこに貼り付けるか」定義をクラス側に書けるので面白い. 他にも pointcut 定義の拡張・再利用の方法は考えられるのでどれが残るかは分からないが.

_ RoleS

RoleS については以下のURLからダウンロード可能らしい.http://www.prakinf.tu-ilmenau.de/~hirsch/Projects/Squeak/RoleS/

基本は,オブジェクトに Role を付加するものらしい.動的にできるのだろうけど,役立つかどうかは知らない.

_ AOSD

aosd-discuss メーリングリストで,Robert Hirschfeld が AspectS (0.4.6), PerspectiveS (0.1.6), and RoleS (0.0.4) をアップロードしたよんと言ってた.

http://map1.squeakfoundation.org/smからも,もうすぐ取れるようになるらしい.RoleS って何なのだろう…….

_ データ整理

oucc.org サーバに置いてたデータが400MB近かったので整理.XML(Xalan, Xerces)関連の obj, doc, samples などを削除して,だいたい150MB程度まで減少した.

写真などを置いてるせいで,public_html 以下だけで40MB近い.まあ,ディスクが余っているからそれほど問題ないのだが…….

_ 無線LAN

なぜか無線LANが,ファイル転送をしようとすると切れる.ブリッジでのWEP128ビット復号化が間に合ってないとかだったら嫌だなぁ.試しに64ビットにしてみたら落ちなくなったし.

_ クレジット

シティバンク(VISA)の引き落としが届いた.なぜか勝手にリボ払いになってて,5万くらい使ってるのに2500円しか引き落とされずに,蓄積されてしまっている.確認するために web サイト覗きに行ったら,サービスが一時停止してた.この手のシステムは Availability が重要だと思うのだが…….

_ Web修正

アクセス解析(簡易版)を aspectj/ フレームあり版に追加.また,いくつかファイルのパーミッションが間違ってたところを修正.


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

_ AspectJ

AspectJ ドキュメントを少し補強.・call と execution の違い・Introduction とアドバイスの違いを追加.

_ 紅茶

梅田のCOCORICOでパイ+サラダ+飲み物のセットを頼む.パンプキンパイは普通に美味しかった.

アイスティーを,濃いめのアールグレイをたくさんの氷を入れたグラスに注いで作る様子に(目の前でやってくれるので)ちょっと感心.

スコッチとシロップで香りと味を微妙に調整するのが他の店にはない独特で面白いところで,かなり美味しかった.

_ 丑の日

今年も "the Day of the Ox during the doyo period of summer" である.http://www.dentsu.com/MUSEUM/edo/food/26.html

なのでうなぎを食う.


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

_ メール

いくつかのサイトで,登録したメールアドレスを「プロフィール変更」などから変更しても反映されずに,「メールマガジン登録」などで再登録した時点で初めて反映されるという動きをしている.

実装側の気持ちは分からなくもないが,変更した時点で一緒に反映してほしいものだ.

_ ワイン

オークションサイト,時間間際なせい?微妙な接続失敗をするようになった.5分前に入札.

隣のワインでは,直前9秒で入札していた人も.狙うにしても頑張りすぎ.


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

_ ホテル

OO2003とIWPSE2003のためのホテルを予約する.日本のは,旅の窓口(http://www.mytrip.net/)のおかげで簡単.

_ 縦書き

縦書き言語の続き.HTML で縦書き表示してみたら,けっこう格好いい(?).縦書き表示結果(HTML)

この HTML は,ツール「和歌と野」を使って生成している.http://www.vector.co.jp/magazine/softnews/000708/n0007083.html

_ 言語

C を日本語で書いたらどうなるか,という四方山話の成果物.C と対訳してたが,演算子で力尽きた.
const char *kRiffId = "RIFF";
文字列定数 *kRiffId を "RIFF" とおく.
 
interr (char *msg){    perror (msg);    return -1;}
関数 err は  引数に    文字列 msg   -- ポインタは都合により文字列と変えた
  をとり  戻り値として    整数  を返す.定義は次のとおり.
  msg を引数に perror を計算し,  -1 を返す.
 
typedef struct{
    char    tag[4];    long    length;
} RiffTag;
型 RiffTag の定義は  tag という
  要素数 4 の文字配列,  length という長整数,を要素とする構造体とする.
 
(5 + 7) * 8 / 2 + (5 + 4) + 2
5 に 7 を足し,8 をかけ, 2 で割り,
それに 5 と 4 を足したものを 足し,それに 2 を足す.

_ 消費税

消費税がすべて内税(税込み)表現に変更.元記事は,0.5円を誰が負担するかの話なのだが.http://www.asahi.com/business/update/0729/075.html

これで,また 0.05 演算が不要になったりして,システムのアップデートが必要になるので不満が多いみたい.

でも,税率がこれから上がっていく可能性を考えるなら,税率がハードコーディングされてる場所では,内税システムにしたほうが幸せなのかも.税率の定数定義を変更するだけで済むように実装しているところならいいけど.今の世界なら,たいてい価格設定はオンラインで変わりそうだから,そのほうが,実は楽にはなりそう.内税のほうが端数分ちょっと高くなるけど.


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

_ PSP

昔読んだ Personal Software Process の資料を処分.

簡単には,作業の見積もり・実際の時間・過去の履歴(平均,最大,最小)を蓄積していくというもの.過去の履歴が蓄積されることで,だんだん見積もりが上手くなっていく……はず.

実施しようとすると,休憩時間とかも把握しておかないといけないのでけっこう大変.プログラミング作業(設計・コーディング・テスト)を管理するだけでなく,作業時間全般の管理に使えるシンプルな手法.

一時期はやってたのだが,最近,あまりやってない.また再開してみようかな.計算自体は Excel でできるし.

_ 論文

古い論文を整理.

Michael Siff and Thomas Reps:Identifying Modules Via Concept AnalysisConcept Analysis を使って,変数・関数をモジュールに分類するというもの.どの関数がどの変数にアクセスしているか,という表を作ってConcept Lattice を構成し,適当な分類だと思われるところでそれらをモジュールとして切り分ける.実際に使ってるという人の話は聞いたことがないが,それなりに便利そうではある.

Peri Tarr and Stanley M. Sutton, Jr.:"N Degrees of Separation:Multi-Dimensional Separation of Concerns.

"Subject-Oriented Programming の基となった論文.Hypermodule(一連のクラス群)は複数の Hyperslice から構成され,Hyperslice はクラス群の実装の一部だけとなる.たとえば,AST Hypermodule はExpression, UnaryOperator, BinaryOperator, ... といったクラス群から構成されるが,これらはKernel, Display, Evaluation, Syntax Check,Semantic Check, Style Check といった複数のHypersliceによって実装されるというもの.Kernel がコンストラクタなど基本構成を実装して,それぞれの Hyperslice が必要なメンバを追加する形式となっている.

…… Hyper/J は使ったことがないのでよく知らないが,コンフィギュレーションファイルを記述して後で Hyperslice を足しこむような感じらしい.


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

_ activemail

研究室旅行前ということで,Activemail のモバイル設定を使って携帯電話から接続可能なパスワードを設定.まあ,実際にはあまり見ることもないだろうが.