netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2002-11-21 古い日記からの変換データ [長年日記] ▲
2002-11-20 古い日記からの変換データ [長年日記] ▲
_ 読書 ▲
菊地秀行「マリオネットの譚詩(バラード)」読了.この人の作品の類にもれず,主人公は強くかつ美形.途中までは,わりとお決まりの展開だが,だんだんクトゥルフ神話に傾いていく展開には,いい意味で意表をつかれた.
オーガスト・ダーレスの,旧神と旧支配者の対立構造なのでストーリー的にも無理なく導入されてるのが上手い,と思う.
2002-11-19 古い日記からの変換データ [長年日記] ▲
_ 論文 ▲
International Conference on Software Process Improvementhttp://www.software-process-institute.com/
がちょうど今日から開催されるようなので,ざざっとプログラムを見てみる.
さすがにソフトウェアプロセス関係だけあって,タイトルから興味を惹かれるような論文は特になし.内容的には興味がないわけではないが,本筋に関係ない論文まで読んでるほど時間がないというのが現状なのでとりあえず何も読まないことにする.
_ 読書 ▲
アン・マキャフリィ「竜の貴婦人 (下)」読了.意外とあっさりした結末だったという気がする.予兆もなく,簡単に,だから悲劇なのかもしれないが.
さりげなくネリルカとかいう人が出てたので「ネリルカ物語」への伏線?とか思ってみたり.
モレタの「やってしまったことへの後悔よりもやらなかったことへの後悔のほうがずっと大きい」という言葉に昔,自分が「やらずに後悔するならやってから後悔しよう」と主張したことがあることを思い出して笑ってしまった :-)
_ コンサート ▲
ポール・マッカートニーのコンサート@大阪ドームに行ってきた.ツアー最終日な上,最初で最後の(?)関西公演との話もあって,実は貴重な経験だったのかもしれない.
2時間ちょっと,という予想を大幅オーバーする約3時間で帰りはやや慌ただしくなったが,14,000円の値段相応の価値はあった,と思う.古いビートルズの曲は全部わかるのに,ソロ活動してるときの新しい曲が分からないという年齢不相応な事態に陥っていたが,知らなくてもどこかで聞いたことがある曲も多いあたり,さすがという感じ.
"Hey Jude" を観客も含めたみんなで合唱したのは面白かった,かな.このあたりの動員力はすごいものがある.
2002-11-18 古い日記からの変換データ [長年日記] ▲
_ AspectJ ▲
AspectJ に関するドキュメントを,XML 形式に書き換え始めた.大雑把な well-formed だが,当座は十分だろう.コンテンツの構造(階層,順序)情報をどうやってエンコードするかというのと.文字コードの問題が残っているが,
2002-11-16 古い日記からの変換データ [長年日記] ▲
_ 論文 ▲
OOPSLA 2002 投稿論文のうち,タイトルが目を引いたMira Mezini, Klaus Ostermann:``Integrating Independent Componentswith On-Demand Remodularization'' を読んでみた.
interface として expect, provide の二通りを定義し,expect を使って provide を実装する implements class とprovide を使って expect を実装する bind class とを作成し,collaboration = implements + bind という形式でペアにしてそれらを結合して利用する,というもの.expect/provide interface の発想は今までにもあったが,fluid (流動的?) AOP,実行時のペアの差し替えなども視野に入れている様子.
これは class -> aspect 方向の依存辺を引くという点がaspectual collaboration などと異なっていて,自分でやろうとしている仕事と近い立場.
ただ,bind する側はすべての expected を実装する必要があって,3者以上が参加する collaboration を定義するのは難しそう.また,アクセス制限なども考慮されてないので,そのあたり微妙な問題を含んでいる気がする.もう少し,自分のネタとの比較は真剣に検討したほうがよさそうだが,同じような立場を取る人が他にもいる,というのは心強い.
_ delphi PCL ▲
Persistent Component Library に含まれているHashTables.pas にバグ発見.
function THashTable.Current: Pointer; の中身誤: if (FPosition >= 0) and (FPosition < FCapacity) and正: if (FPosition >= 0) and (FPosition < FCapacity * 2) and
これのせいで TStringTable.Current, TStringTable.CurrentKey が正しく動かない.なぜだろうと思っててひたすら内部をデバッグしていて気付いた.(他の条件節ではすべて FCapacity * 2 なのに,ここだけ * 2 がなかった)
_ 読書 ▲
ネビル・シュート「パイド・パイパー~自由への越境」読了.古い作品の復刊だが,構成として非常によくできている,と思う.たくさんの子供を連れて戦火の中を移動する,強い責任感を持って行動する老人の頑張りが印象強い.別に大事件が起こるわけではないけれど,追われる側の緊張感がある.
長い旅路っていうネタは TRPG でもやってみたいと思ってるので,そのときにはこの作品も参考になるかも,とか思う.
さて,パスポート申請に行ったついでに買ってきたアン・マキャフリィ「竜の貴婦人(上・下)」を読み始めることにする.テーマは「モレタの飛翔」で,最終的にどうなるかはバラードとして既に他の作品で語られているが,どうしてそうなったのか,というところが気になるので読んでみる.
_ Bookmark Manager ▲
非階層ブックマークを実装するべく,久しぶりに Delphi を起動.カテゴリを扱うために文字列の集合クラスを作りたいが,TSet なんて標準では定義されてない.Tommi Johtela の公開している Persistent Component Library を使わせてもらうことにした.
紹介記事:http://www.undu.com/Articles/991117a.htmlダウンロードはここから:http://www.cs.utu.fi/tjohtela/software.htm#PCL
いちおう集合クラスも定義されていたのだが,TSet はTItem とかいうクラスしかアイテムとして取れなかったので,いちいち String のラッパーを生成するのが面倒そう.そこで,StringTable (KeyがStringなHashtable)を利用して,関連付ける値としては TObject に Singletonなオブジェクト1個を食わせる形式で,自前の StringSet を定義することにした.
2002-11-14 古い日記からの変換データ [長年日記] ▲
_ 論文 ▲
OOPSLA 2002 投稿論文のJan Hannemann, Gregor Kiczales:``Design Pattern Implementation in Java and AspectJ''に目を通す.GoF のデザインパターンを AspectJ で実装したらどうなったか,という報告論文.
いくつかのパターンは Aspect で記述したことでモジュール性が向上しているのだが,特に効果が出なかったパターンもいくつか.デザインパターンを使う際の参考になりそう.
_ Grammar Expert Plus ▲
英文を添削するために導入した文法チェッカ Grammar Expert Plus の試用期限が来てしまう.Word などのスペルチェッカに比べると使ってる情報が多いので単数・複数形や動詞の変化形などをちゃんと見てくれるところが嬉しいのだが,買ってまで使うか?と聞かれると微妙.
_ 紅茶 ▲
ウヴァ・ハイランズを飲みきる.寒くなってお茶を頻繁に飲むようになったので,50g があっという間になくなった気がする.約1ヶ月前に一緒に仕入れてきたアッサムも同程度減っているということは,1日平均で 3~4g 程度は消費してる計算になる.
_ プログラム解析 ▲
プログラム解析の作業速度には個人差があるようだけど,いったいどこから来るんだろうかと,ふと思う.
自分のやり方では,オブジェクト指向プログラムでは・役立ちそうな情報を持っているクラスを識別する -- ほとんど勘.クラス名とメソッド名だけが頼り.・そのインスタンスを手に入れるための方法を探す -- あるクラスのメソッドの戻り値,など・その方法を利用するための方法を探す -- そのクラスのインスタンスや,必要な引数をそろえるには?という形式で芋づる式で辿っていくので,ソースとパッケージ関係,検索ツールさえあればクラス階層図や呼び出し関係図などが手元になくても,やりたいことを実装する方法は把握できてしまう.
まだ使ってないクラス呼び出し関係などの情報を使えば,もっと効率よい情報把握方法が使えるのかなぁ.個人的には,初期情報が多すぎるとコントロール不可能になる恐れがあると思うのだけれど.