netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2002-07-01 古い日記からの変換データ [長年日記] ▲
2002-07-03 古い日記からの変換データ [長年日記] ▲
2002-07-04 古い日記からの変換データ [長年日記] ▲
_ IEEE 1394 ▲
IEEE 1394 の到達距離を聞かれたので調べてみたら,実はわずか 4.5m らしい.でも400Mbps出るんだからたいしたもの.1394b では 100m で 3.2Gbps まで,とかなりパワーアップしている.
ちなみに,シリアルケーブルの基本である RS-232C について調べてみると,伝送距離は約15m,最高通信速度は115.2kbpsらしい.それを上回る長距離伝送ケーブルや高速ツールもあったりするが….
_ FTP ▲
bun45 の HTML Help 自動生成ツールでは,FTPとHTTP を使って,サーバから勝手に必要なファイルを落してくるようにした.
Delphi の FTP コンポーネントは,リクエストを出すとブロックせずにファイル取得完了イベントを待たないといけない.これはこれで場合によっては便利だが,いまひとつ使いにくい.
Ruby の Net::FTP コンポーネントだとけっこう簡単に使えて,ブロックしてくれるので逐次的な処理の記述は容易.
でもやっぱり wget -i filename が楽でよさげ.問題があるとすれば,wget がファイルに記述された URL ごとに毎回コネクションを張りなおすのかどうか,というところ.無駄にサーバに負荷をかけそうだ.
_ kabayaki ▲
「namazu をもっと手軽に」がキーワードな検索システムらしい.http://www.timedia.co.jp/new/products/kabayaki/
最初 kabayaki で検索して,こんなのを発見.http://www.dentsu.com/MUSEUM/edo/food/26.html
_ kakasi ▲
kakasi で利用する kanwadict は,mkkanwa.exe kanwadict kakasidict bun45dictで生成される.あとは kanwadict を目的位置にコピーして,export KANWADICT=辞書のフルパス指定 するだけで利用可能.
この kanwadict,実は linux / windows で共用可能らしい.
_ 邪空の王 ▲
ワイス&ヒックマンの邪空の王 (上・下,ハヤカワ文庫).ドラゴンランスの作者が書いた本だというので,とりあえず読んでみた.世界設定として,人間,エルフ,ドワーフ,オルクの各種族の性格の書き分けが面白い.四大元素の対立図で中央に来る空間を "邪空<void>" と呼ぶ設定がかなり気に入った.三部作の1作品目なせいか,物語としてはちょっと消化不良気味.次の作品に期待したい.
_ CRC Card ▲
Borland Software Craftsmanship を読む.http://www1.bell-labs.com/user/cope/Patterns/Process/QPW/borland.html
CRC(Class/Responsibility/Collaboration) カードの利用なんかについても触れられている.3x5 のカードの左側にクラスの Role の Responsibility を,右側に Collaborator を列挙して,あとはカードを並べてボードに貼るなどして,クラスの相互作用を示せる(間に線を引いてグラフ化できる).
一枚の紙に毎回手書きでクラス図を描くよりは便利かもしれない.カードの保管場所がきちんと用意できればの話だけど.今度,使ってみることにする.
2002-07-05 古い日記からの変換データ [長年日記] ▲
2002-07-06 古い日記からの変換データ [長年日記] ▲
2002-07-07 古い日記からの変換データ [長年日記] ▲
2002-07-12 古い日記からの変換データ [長年日記] ▲
_ Pike ▲
Pike Conference 2002 の案内が届いたので,Pike 言語について調査をはじめる.http://pike.ida.liu.se/
C/C++ like なインタプリタ言語で,やっぱり main 関数から実行.array, mapping, multiset, program, object, function が参照型で,int, string などがスカラ型.int|string のように複数の型に対応できる関数が書ける.ライブラリが意外と豊富な組み込み系の言語,といった印象.…でも,他の言語のような独自性がないところが微妙.
2002-07-13 古い日記からの変換データ [長年日記] ▲
_ URL.escape ▲
namazu でインデクシングしてるファイルに,"(", ")" が含まれていることが判明.namazu が内部できちんとURL escape してるか不安になったのでソースをチェック.
mknmz.pl がほとんど事前作業はがんばってるので,そこを見ると NoEscapeURL とかいうフラグがあって,それによって escape 作業の ON/OFF を決めているらしい.えらい.
しかし,今頃になって,bun45 で動かしているカスタマイズした mknmz に追加したオプションが,これら標準オプションとかぶっているような気がしてきた.サーバが復旧次第,確認してみることにする.
2002-07-15 古い日記からの変換データ [長年日記] ▲
_ START ▲
Win2000などでは,cmd.exe からSTART filename でファイル名に関連付けられたプログラムを起動できる.cygwin(bash.exe) からはできない..bat ファイルなら cygwin からでも実行できるので,start.bat なんてものを経由して実行することにした.
_ bun45: default route のつづき ▲
パケットを通る必要のないゲートウェイ(と思っていたマシン)に投げていたことが判明.# 今まではゲートウェイだったのかもしれないが
でも,LAN から外へ出られないのは ipchains の設定が間違っているんだろうなー.と思って slogin しようとしたら,経路が死んでた.これじゃ作業できない.やっぱりネットワークに依存しすぎなのも問題かもしれない.
_ ワイン ▲
ARIEL のノンアルコールワイン(白・シャルドネ)を飲んでみる.原材料ワイン+ぶどう果汁+香料って何? という不安は的中し,値段(1500円)のわりに不味かった.
フェッラーリのシャンパン(白・brut(ブリュット?))はそこそこのおいしさ.飲むまでに時間があったせいでぬるくなってしまっていたのが悲しかったけど.
2002-07-16 古い日記からの変換データ [長年日記] ▲
_ 論文 ▲
ECOOP 2002 に出ていた Dyamically Composable Collaborations with Delegation LayersKlaus Ostermannを読む.
Collaboration 単位での再利用を提案した論文.Runtime AOP みたいな雰囲気で,実行時に collaboration (アスペクトによく似ている)を結合する.
各クラスの実装に相当する部分をオブジェクトのdelegationで(一種の Decorator パターン?)で実現しているところがえらい.実際に使えるようなコンパイラ作るのは大変そうだけど.
_ JGL ▲
Java Generic Library,Recursion Software Inc. が開発した Java 用の STL みたいなものか.有料な時点で使う気なし.とりあえず JDK 1.5 の Generics を待つことにする.
http://www.recursionsw.com/products/jgl/jgl.asp
_ YAML ▲
Ruby で YAML4R が実装されたっていうので見てみた.オブジェクトを可読性の高いテキストにシリアライズできるらしい.バイナリフォーマットと違って気楽に読み書きできるのは嬉しい.オブジェクトの中身をデバッグしたいときとかに便利?手動で書き換えようとしたら死にそうだけど.
http://www.yaml.org/
_ self problem ▲
論文を読んでて遭遇したキーワード.Broken Delegation とも言うらしい.
複数のオブジェクトがかたまって1個のオブジェクトを構成する場合(Decorator パターンなんかもその一種?)A の一部であるような B がいるが,そのオブジェクトを表す "self" はA の中であっても B の中であっても A を指さなければならない.しかし,ほとんどの言語では,B のコンテキストでは self がB を指してしまうという問題.
int A::foo() { return b.foo(); }int A::hoge() { return 1; }int B::foo() { return this->hoge(); }int B::hoge() { return 0; }a.foo() = b.foo() = a.hoge() となってほしいが,実際にはa.foo() = b.foo() = b.hoge() となってしまう.厄介なバグになる可能性が高そう.
2002-07-18 古い日記からの変換データ [長年日記] ▲
2002-07-19 古い日記からの変換データ [長年日記] ▲
_ Ruby ▲
HTML Template 展開ライブラリ Amrita がリリース.どっかで見たような展開ルールだなぁとか思ってたら,Walrus(OBAQ) の展開エンジンが基になっているらしい.納得.今までとの最大の違いは,ドキュメントが整備されたことだろうか :-)
http://kari.to/amrita/
_ JDK 1.4 ▲
JDK1.4で Chained Exception が加わっていたらしい.http://javaboutique.internet.com/tutorials/Chained_Exceptions/index.html
new Exception(Throwable cause), Exception(String, Throwable)のようにコンストラクタ引数が増えている.
try { foo} catch (Exception e) { throw FooException(e);}とかやるとFooException caused by e FooException に関する情報 e に関する情報のように表示されるらしい.
また,StackTraceElement とかいう要素が増えてスタックトレースの中身にプログラムからアクセス可能になったらしい.これらの機構を使えば,色々遊べそう.
_ リダイレクト ▲
コマンドプロンプトでの bat ファイル実行時に
hoge >output_file.txt 2>&1
とかするとすべて output_file.txt に吐かれるらしい.
標準出力・エラー出力を1とか2というファイルデスクリプタのコードで表現するのは好みでないけど.やっぱり stdout とか使いたい.
2002-07-21 古い日記からの変換データ [長年日記] ▲
2002-07-25 古い日記からの変換データ [長年日記] ▲
_ Selector ▲
Java 1.4 のライブラリを調べる.java.nio で加わった SelectableChannel と Selector を使えば,いわゆる select システムコールみたいなことができるっぽい.Selector.open() で作成して,Channel.register(selector) する.Selector.add(Cahnnel) とするか,それとも Channel.register(selector) とするか,意外と難しいデザイン決定なのかもしれない.
…と思ってたら,AbstractSelector extends Selector で,AbstractSelector.register(Channel) を channel.register から呼び出す形式らしい.たぶん,それ以外の Selector が来たら別の動作をするのだろう.Abstract のほうがサブクラスなのはどうかと思うけど.