上へ

開発メモ

2003/06/06 カウンタ

大家さんのCGIカウンタに手を加えてページビューカウンタに変更。

2003/06/07 正規表現ライブラリ

「Delphi でも正規表現ライブラリが欲しい」とふと思い立つ。DLL 呼び出しタイプはあるんだけど、プアでも良いから DLL 無しが良い時もあるし。たしか正規表現を構文解析して、NFA 作って DFA に変換して DFA 最適化して、パターンマッチだったよな。と資料を漁りだす。

・web
 linux 環境では標準で POSIX regex が使えるけど windows では DLL 呼び出ししかないみたいだ、
 C++ では Boost Regex++ が有名らしい、
 .net の正規表現ライブラリは逆に NFA で処理するのを売りにしてるようだ。時代は巡る。
・yacc/lex プログラムジェネレータ on UNIX,五月女健治,啓学出版,1992
 yacc/lex のとっかかりには良いけど、今回はいらんな。
・オートマトン言語理論計算論I,J.ホップクロフト/J.ウルマン,サイエンス社,1984
 大学の参考書(というか睡眠薬)、DFA の最適化部分はこれを見るしかないか。
・コンパイラ構成論,R.ハンター,近代科学社,1991
 ・・・外れだ
・yacc によるCコンパイラプログラミング,近藤嘉雪,SOFTBANK,1990
 なつかし〜・・・けど、外れだ。もうひとつ近藤嘉雪本があったはず。
・lex&yaccプログラミング,John R.Levine他,ASCII,1994
 表計算DLL 作るときお世話になった本、処理系別の細かいオプションが載ってるけど・・・今回はいらん。
・アルゴリズムとデータ構造,石畑清,岩波書店,1989
 大学の参考書、一応、正規表現→NFA→DFA→パターンマッチまで載っている。
 もっと分かりやすいのがあったはず。
 そういえば アルゴリズム+データ構造=プログラム,Niklauth Wirth (これも大学の参考書)が見当たらない、
 捨てちゃったか?
・Cプログラマのためのアルゴリズムとデータ構造Part2,近藤嘉雪,SOFTBANK,1993
 これだ!

 で改めて web を調べると bmonky氏の bmRegExp を発見、メモリ中のマッチングや、
 マッチ位置の取得(perl 方式)も欲しいので、微妙に方向性が違うけど、日本語対応だし、ファジー対応だし、
 エンジン部分でここまでのものを作るつもりは無かったし、実力も無いし・・・と一気にやる気が。

 ・・・つづく?続かないかも。

2003/06/14 正規表現ライブラリ

続かなかった。

2003/06/15 ライセンス

作者のソフトはだいたい LGPL2(not 2.1)で配布していますが、LGPL2 のライセンス文が無くなって久しいので次の手を考え中。ちなみに LGPL2.1 はあなたの次のライブラリにはライブラリGPLを適用するべきでない理由と共に世に出てきたので嫌い。余計なお世話なんである。

基本的には同じ問題を作者より上手く書く人は世の中いくらでもいるので、「どんな編集や改変や引用や二次創作も構わない。つか、むしろパクれ」という立場なんだけど、ある程度しょうもない奴(*)からは身を守りたいし。
歌代氏 jcode.pl, Jcode.pm のライセンスや、水魚堂氏 BSch ソースについてが作者の感覚に近いかも。

(*)SC○とか米UNI$Y$ とか、そういえば昔PDS(たしか画面バックスクロールソフト)に nifty のパスワード漏洩機能つけて配布した奴がいた。実際接続料何百円とかいう被害報告があったと思う。掲示板でスレッドが立って、みんなで解析をはじめると、オリジナル部分はSJIS->JIS変換、98TVRAM漢字右側左側処理までしているはずなのに、パスワード漏洩機能部分は、日本語通すと化けるは、暗号化しているものの sed で逆解析できちゃうは、とあまりにお粗末な出来で、「なんやこれ〜!」と妙に憤慨した覚えが。(←そこ怒るとこちゃう)

2003/06/18 発見!

ついに社内で本格的な C++ プログラマ発見。

・関数、モジュール分割の規模が適切
・インターフェースの継承が使いこなせている(←社内 C++ では初めて見たかも・・・)
・テンプレート、例外、イテレータ、ネームスペース、それぞれメリットデメリットを把握して、設計時に考慮している。
・CVS はもちろん作者的にはアレげなプログラマの必要条件と思っているコンパイラ間の違いも考慮。

恐ろしい程のハイスペックぶりだ。どこのコミュニティーに育てられたんだろう?こんな人がいたなんて。これならぞぶオフ3次会のあやしい人達に取り囲まれても生還できるな(←どんな基準やねん)。まだまだ社内も捨てたもんじゃないなと再認識。
多分、ぞぶのあやしいふつーの人達に育てられてしまった人→おれ

2003/06/20 InputForms

・OK時に SaveToValues がイベント、ShowModal 戻り時と二度呼ばれるのを修正
・FindLabel 追加

あとはGetTitleString, GetDataString で布石を打ってはいるデータ保存構想を実装しないと。

2003/06/21 怨念がおんねん!因縁がいんねん?

深夜、都内某牛丼屋にて

客A:ガラッ!ドシドシドシ・・・ドシドシドシ(遠くに行った)・・・
作者:(酔っ払いか?順路右ってかいてあるのに、お約束が守れん奴っちゃな)

客A:・・・ドシドシ(戻ってきた(^^;) 「特盛、ご飯少なめ!」
注文までのやり取りで喧嘩売ってるような言動が随所にありつつも、店員が流したので、とりあえず注文はクリアした客A
作者:(特盛でご飯少なめって、まさかダイエット中?)

客A:ドシドシドシ(遠くに座った)・・・過剰にふんぞり返って新聞を広げる
腫れ物客ぶりを如何なく発揮している客A、微妙に緊張感が漂いつつもしばらくのあいだ平和な時が流れる
作者:(遠くに座って良かった、このままとっとと食って帰れ)

アルバイターA:お待たせしました
客A:ちょっと待て、なんだこれは?
アルバイターA:御注文の特盛ですが?
客A:だから、なんだこれは?これのどこが特盛なんだ
アルバイターA:???
ついに勃発、「特盛りだ」、「特盛じゃない」、と水掛け論開始。
客A:特盛りというのはだな・・・ネチネチクドクド
彼の特盛りに対する熱い思いを語る客A
作者:(食い終わったけど・・・成り行きを見守るか←一応空手経験者)
客A:(熱い思い続行中)・・・こんなんでまた来たいと思うか?
作者:(二度と来なけりゃ良いだろ。つか二度と来るな
店長と思しき人が出て来て、なだめて、説明して、謝ってとなったので、これで収束するかと思っていたら、とことん理論的な会話が出来ない客らしく、再び水掛け論ループに突入。店長と思しき人が同じ説明を繰り返していると
客A:やんのかコラ
作者:(なんでそうなるねん、振り返ってみると・・・結構ゴツイ奴だ、どうする?職業チンピラかも?無傷じゃ勝てないかも?)
ということで110番することに。
作者:「もしもし○○の角の牛丼屋なんですけど、変な客が・・・」
客A:(ドシドシドシ)なにしてんだ(携帯に手を伸ばして来る)
作者:えっ?いや〜?別に〜「そう××の前の方の・・・よろしくお願いします」(実際はもっと説明下手だった)
とやっていると、警察はまずいと思ったのか、闇の中にゆっくり去って行ってしまいました。
作者には「逃げんなアホ〜」と言って彼を引き止める勇気はありませんでした。