ざつだん。
(04/11/01〜)
04/11/01
・ログを分離しました。
・新札発行
...どうでもいいや。
・運転中の携帯電話禁止
...どうでもいいや。
・実家のある町が町村合併で町名変更に...
...どうでもいいや。
・それでは?
今日の話題はコレに尽きる。今日は幼稚園の願書提出日だった...AM8:00より。だが、この幼稚園の願書提出には毎年父兄が夜通し並ぶと言う。この
幼稚園を選んだのは単に「一番近い幼稚園」という理由だったのだが、それであのような苦労をするとは。
昨日のPM11:00過ぎ、事務所へ行く事に。願書提出に並ぶにしたって、ちょっと並んでいる状態で行けば何ら問題はないので、時間調整をしよう
と思ったのだ。ちなみに事務所と自宅と幼稚園はそれぞれ同じような距離にある。で、「まさか今頃並んでいる奴はいないだろう」と、冷やかしのつもりでその
幼稚園の前を通って事務所に行く事にした...
10人以上並んでやがる。
お前らバカかよぉ(ToT)
仕方がないので、とっとと事務所に車を置いて幼稚園へ。「年中コース」と「年少コース」があったので「年少コース」へ並ぶ。時刻は午前零時...あと8時
間待たなくてはならない。
今回の募集人員は「年中コース」は12名、「年少コース」が48名だった。入園は基本的に「願書提出順」なのでこのように並んでしまうのだ。僕は
会社の人間から「毎年並ぶ」という情報を貰っていたから並ぶ事を考えたが、事前に情報がなければAM8:00ちょっと前にしか行かないだろ、普通。
多分この現象は「少子化」の歪みだ。少子化により、評判のいいトコへ集中するようになってしまったのだろう。僕はそのとばっちりを喰った事にな
る。
AM1:00過ぎ。あまりに暇なので社長にイタ電を掛けるも...出ない。
寝や
がったな、アンチクショー
AM1:00過ぎ...寒い。
AM2:00過ぎ...寒い。
事務所
から石油ストーブ持ってきちゃダメでしょうか?
AM3:00過ぎ...寒い。
あー
やってらんねー!!
寒いし、タバコ吸えねーし、トイレには行きたいし。それはそうだ。並んでいたのは幼稚園の正門の外の道路なのだから。用意のいいヒトはビニールシートや折り畳み
イス、保温ステンレスボトル等を持参していた。僕はその場に「コーヒーのペットボトルとタバコ」を置いて事務所に車を取りに行った。そしてそのままコンビ
ニへ行き、トイレを済ませて、ホットな飲物と最近使った事のない「使い捨てカイロ」を2個購入。もう一度事務所に車を置き、幼稚園へ。なんだか虚しくなっ
てくる...
AM4:00過ぎ...寒い。
AM5:00過ぎ...寒い。
ここで幼稚園の関係者がやってくる。毎年恒例なのでこういう状況は把握してる訳ね。そして正門開放、園庭へ入った。しばらく待つと整理券を配られ
た。番号は「7」なんだかラッキー。そして園内に通され、書類の一部を預けると、「AM7:50迄にくればOK」とのお達し。現在AM6:00...とり
あえず事務所に行くか。
事務所で熱いコーヒーを淹れ、石油ストーブに点火、エアコンの暖房も入れてまさに「ほっとする」。中途半端な刻をWebブラウズ等して時間を潰す。
AM8:00ちょっと前に幼稚園へ行く。そして時間となり、説明が始まった。周りを見回す...アレ?一緒に並んでいた「防寒着でモコモコだった
お父さん達」の数が減り、ちゃっかり「お母さん方」にすりかわっている。
引田天功でもやんねーぞ(ToT)
そりゃそうか、今日は平日、月曜日だしな。そして改めて周りを見渡す...アレ?とりあえず眠い目をゴシゴシ。周りを見渡す...アレ?今度はメ
ガネもゴシゴシ。「年少コース」って35人位しかいないねー。
定員割れかよ...
○| ̄|_
そう、すべて無駄な行為だった訳だ...。
04/11/02
・IBConsole(Build
1.0.0.337)日本語版+α rel.7
リリース。
・日本語化しきれてない所を日本語化。
・ローカルデータベース起動直後にローカルサーバに接続できない事があるのを修正。
・メッセージダイアログ(IBCConsole独自)の一部でサイズが異常になるバグを修正。
・データベースのリストアで完了ダイアログが出なかったバグを修正。
・細かい修正。
|
いやートリッキーだわ、このソース。順を追って説明する事にする。
・日本語化しきれてない所
ローカルサーバを登録すると「Local
Server」って勝手にエリアスが登録されるけど、そのエリアス名を「ローカルサーバ」にした。ローカルサーバは一つしか登録できないような仕様なのだ
が、それはこのエリアスを見て判断している。ローカルサーバを既に登録していると「ローカルサーバ」というエリアスが作れるのでローカルサーバが2つに
なってしまう。よって、エリアス「Local Server」は誤動作防止のために削除して下さい。
・ローカルデータベース起動直後にローカルサーバに接続できない
CreateProcessでローカルなInterBase/Firebirdサーバを起動してるのはいいんだけれど、起動確認をしないままいきなり接
続に行くもんだからタイミングによってはコネクションエラーになってしまう(^^;
・メッセージダイアログ(IBCConsole独自)の一部でサイズが異常
一つは独自ビルドのバグ。もう一つはフォームの大きさを「Width/Height」で直値指定(実際にはOKボタンからのオフセット値を設定している
が、そのオフセット値がマジックナンバー)しやがるもんだから、XPやキャプションバーの高さが違う他のOSだとフォームのレイアウトが崩れてしま
う...他にもありそうだな、このバグ。
・データベースのリストアで完了ダイアログが出なかった
ソースでダイアログの「ModalResult」を見てる(mrOK時)くせに、OKボタン自体は「mrNone」になっていた。
・その他
メニュー/コンテキストメニューの並びをちょっと変えた。そのアイテムでコンテキストメニューをポップアップさせても「絶対グレーアウトする」ものが表示されていたりしたので、それらはメニューから
削除しておいた。
元々の色が「clWindow」なのに、無効の場合に
「clSilver」等になり、再度有効にした時は「clWhite」
にしてたりするトコがあったのを修正した。
いつまで経ってもLinux版を作れない...着手にはもうしばらく掛かるかも知れないな。
・Firebird Embedded Server
これは面白い。「Firebirdは読み込み専用で使えるDB」と
いうのを前提に考えてもらいたい。この「Embedded
Server」は名前が示す通り「組み込み用」のサーバだ。「ローカルサーバ」と何が違うかというと、「Firebirdをインストールなしで使える」という事だ。「CD-ROMでDBが使える」というのは面白い...というより便利だ。配布
パッケージは以下のようになると思う(app.exeはIBXを使っているという前提)。
(AppPath)
│ app.exe (自作アプリ)
│ firebird.conf
│ firebird.msg
│ gds32.dll (fbembed.dllをリネームしたもの)
│ ib_util.dll
│ icudt30.dll (FB2.0の場合)
│ icuin30.dll (FB2.0の場合)
│ icuuc30.dll (FB2.0の場合)
│ msvcp60.dll (場合によっては)
│ msvcrt.dll (場合によっては)
│
├─data
│ data.fdb (自作アプリが使うDB)
│
├─intl
│ fbintl.dll
│
└─udf
fbudf.dll
|
見ての通りサーバらしきものはない。サーバの機能を取り込んだクライアントDLLである「fbembed.dll(gds32.dll)」が
lochalhost(つまりは自分)とTCP/IPで通信してFirebirdの機能を提供しているらしい。
・サーバ名は使われない(localhostや127.0.0.1等のループバックアドレスを設定するのではないという事)。 ・接続プロトコルはTCP/IPが使われる。 ・ローカルサーバやリモートサーバとは競合しない。
|
このような特異な構成であるから、不都合もある。一番の問題はサーバマネージャが
ないので「IConsole」が使えないという事だ(独自ビルドでも対処方法がない)。開発時にはローカルサーバでテストできるので、そう
問題にはならないかも知れないが。IBXで普通にDBをいじる分には「ローカル/リモートサーバ」でやる時と何ら変わりはない(マルチスレッドは無理か
も...)。
この記事を見て一番喜んでいるのはels氏なのではな
いかと、勝手に想像している。
04/11/03
・IBConsole(Build
1.0.0.337)日本語版+α rel.8
リリース。
・日本語化しきれてない所を日本語化
・ローカルデータベースの種類を保存できなかったバグを修正
・テーブル/ビューの説明を編集できるようにした
・細かい修正多数
|
今回からUPX圧縮をやめました。
・背景色で文字を消すテクニック
Lynxやw3mでWebブラウズすると、そんなの意味がないって事を思い出し
た。
04/11/04
・IBConsole(Build
1.0.0.337)日本語版+α rel.9
リリース。
・日本語化しきれてない所を日本語化
・「InterBaseサーバ」選択時の「サーバの登録解除/ログイン/プロパティ」をグレーアウトするようにした。
・データベース未選択時の「インタラクティブSQL」をグレーアウトするようにした。
・データベース非アクティブ状態で「インタラクティブSQL」を起動する時には自動でデータベースをアクティブにするようにした。
・「新規作成インタラクティブSQL」は実装が不完全なので無効にした。
・「インタラクティブSQL」のキャプションには「サーバエリアス:DBエリアス」を表示するようにした。
・「インタラクティブSQL」の「新しい接続」は実装が不完全なので無効にした。
・「インタラクティブSQL」の「データベースの作成/削除」は同期が取れなくなるので無効にした。
・「ユーザの追加/編集」ダイアログの危険なショートカットを外した(Insで追加/Delで削除)。
・「データベースのプロパティ」でエリアスを編集後「適用」を押した後で「OK」を押すと「エリアスが存在する」旨のエラーが出るバグを修正。
・細かい修正多数
|
・「InterBaseサーバ」選択時の〜
元ソースのロジックミスです。
・インタラクティブSQL(ISQL)
メイン画面にある「新規作成ISQL」とISQLにある「新しい接続」は何のためにあるのかやっと理解できた。「データベース未選択時でもISQLを起動できていた」というのが
ヒントだ。つまり、サーバやデータベースが選択されていなくてもとりあえずISQLを起動し、ISQLから自由に「サーバ/
データベース」を切り替えられるような構造に
した
かったらしい
「らしい」というのは、ちゃんと実装されていないからだ。ISQL
上にサーバはおろかデータベースを切り替えるためのUIが存在しないため、メイン画面にある「ISQL」と「新規作成ISQL」はほぼ同じ動作にしかなら
ない(完全に同じではない)。ISQLでも「新しい接続」と「ユーザを指定して接続」はほぼ同じ動作にしかならない。
...なので、ISQLを起動したはいいが、サーバ/データベースへ未接続状態になっている。コネクションを確立させようと「ユーザを指定
して接続」を選択するも、サ−バ/データベースは変更するUIがない。場合によっては「ユーザを指定して接続」がグレーアウトしてダイアログすら出せな
い。それじゃぁ、って事で「新しい接続」を開いても同じダイアログが出るだけで埒があかない。
やりたかった事は理解できるが、そんな中途半端なモノをメニューに出されても混乱するだけだ。つまりは広げた風呂敷をうまく畳めなかったって事なのだ。Borland謹製のIBConsoleで
はこの仕様に混乱したのか、ISQLを開いた時点でサーバ/データベース未接続の場合に「新しい接続」や「ユーザを指定して接続」を選択す
ると「DBに接続してないよ」ってエラーメッセージを出す。
例えばメインウィンドウでDBエリアス「ABC」を選択してISQLを起動する。ISQLでDBを切断してメインウィンドウに戻り、DBエリアス
「DEF」を選択してさっきのISQLをアクティブにする。そしてDBに接続しようとすると接続されるDBは「ABC」ではなく「DEF」なのだ。つまり
はISQLで操作できる「DB」というのはメインウィンドウで選択したものが対象なのだ。先に述べた「サ−バ/データベースを変更するUIがない」というのがすべての元凶となってい
る。
「データベースの作成/削除」も同様。例えばDBをISQLで削除すると、そこから何もできなくなってしまう。この辺りにはイロイロと問題がある。関連
するバグ(逆にメインウィンドウがISQLに作用する場合)の積み残しもあるのだが、これは次回以降で...。
・「ユーザの追加/編集」ダイアログ
「追加」ボタンに「Ins」、「削除」ボタンに「Del」のショートカットを割り当ててやがる。「便利だろうと思ったのだろう」ね。でも、このダイアログには数個の
「EditBox」が配置されているのを忘れているらしい。...いくらやってもBackSpace
でしか文字が消せないハズだよね...そりゃ。元ソースに存在する問題なのでBorland謹製のIBConsoleで
も再現する。
・「データベースのプロパティ」ダイアログ
入力変更チェックがあり、項目を編集するとこのチェックが入る。元のエリアスが「ABC」でエリアスを「DEF」に変更した場合、「適用」を押すと入力
変更チェックが走り、メインフォームに「DEF」ってエリアスがあるかどうかを調べる。あればエラーを返す。ここでエラーがなくエリアスが「DEF」に変
更されたとしよう。「OK」ボタンには「適用」ボタン押下時のイベントが書いてあるので、入力変更チェックが走る。ところが「DEF」はさっき変更したの
でエリアスが存在する...これでエラーになっていた。かなりマヌケなバグだった。これも元ソースに存在する問題なのでBorland謹製のIBConsoleで
も再現する。
04/11/05
・IBConsole(Build
1.0.0.337)日本語版+α
rel.10
リリース。最近こればっかですが、気の済むまでやらせてください。
・「サーバを登録解除/サーバからログアウト」実行時に起動しているイ
ンタラクティブSQLのうち、同一サーバにあるデータベースを参照しているものを閉じるようにした。
・「データベースを登録解除/データベースの削除」実行時に起動しているインタラクティブSQLのうち、同一データベースを参照しているものを閉じるよう
にした。
・細かい修正
|
昨日の続きですね。昨日も書いた通り、インタラクティブSQL(ISQL)に「サ
−バ/データベースを変更するUIがない」以上、「何もできなくなっ
て閉じるしかないISQL」が開いたままになる場合があります。これを自動的に閉じてしまおうという事です。オリジナルのままだとサ−バ/
データベースを変更するのに一旦メインウィンドウに戻り、ツリービューから目的のデータベースを選択してDBに接続しなくてはなりません。どうせメイン
ウィンドウに戻らなくてはならないのであれば、新規にISQLを起動しても手間はあまり変わりませんからね。
・Windows NT4.0
最新のHotFixを全部あてると終了時にExplorerまたはInternetExplorerが2回終了待ちになる事があります(HotFixは
特定できていません)。VirtualPCにNT4.0
をインストールして確認しましたが、そちらでもこの現象が再現しました。そのままフリーズしてシャットダウン/再起動しなくなる場合もあります。サポート
期間が切れてるとはいえ、どうにかなりませんかねぇ...Microsoftさん。
04/11/06
・IBConsole(本家)
「1.1.0.27」
を改めて眺めてみた。あれも独自ビルドに近いな。修正というより「拡張」
と言った方がしっくりくるカンジだ。「独自ビルド」はそれに追随するつもり
はない。しばらく使ってみて大きな問題がなければLinux版のリリース、それも落ち着いたらソースコードの公開をやろうかと思っている。
・パッチ
ソースの大幅な修正が途中なのだが、昔のソースがない。サーバを代える事になったが、ソース中に紛れていた「絶対パス」のせいで、サーバを代えると現在
動作している実行ファイルでは問題が発生する...って奴があった。ソースの修正はとても間に合いそうにない...。
バイ
ナリエディタぁー
絶対パスを検索、その長さを調べ新サーバのパスに変更(もちろん文字列長は合わせて)。とりあえず、問題なく動作する事を確認した...。
ダ
メですよ、絶対パス書いちゃ。
「ResourceString」なら文
字列長を気にせずにリソースエディタでパス
を書き換えられたのに。
・IP電話
会社にIP電話が開通した...のはいいのだが、回線スピードが1/10になった気がするのは気のせいなのか?
04/11/07
・今日も出社。
ちょっとした仕事上のトラブルによりデバッグ作業。
04/11/08
・
IP電話
掲示板にも書いたが、回線スピードが1/10になったのはプロバイダのミスだった。
・Mozilla
Thunderbird 0.9
こちらも正式リリースが近くなってきたな。今度からお客さんに納
品するマシンには強制的にFireFox&Thunderbirdを
インストールしておこうかな(しかもデフォルトブラウザで)。
FireFoxはRC2
がリリースされているようだ。そういえば窓の杜で見た「Mozilla
製品の日本語版作成に影響!? オープンソースと“公認”の複雑な関係」という記事だが、何を言いたいのかサッパリ解らないぞ。モノ書きならちゃんと推敲してからリリー
スしなされ...ひょっとして、自分でも(この記事の)意味が解ってないの?
04/11/09
・IBConsole Linux版
とりあえず下の画像を見てもらいたい。
とりあえず「コンパイルできるか?」をテストしたので、文字化けの部分には目をつぶっ
てもらうとしよう。スクリーンショットはもちろん設計時ではなく「実行時」のものである。
・問題点(ソースコード)
IBConsole(1.0.0.337)の
ソースコー
ドでは「Aboutダイアログ」に表示されるバージョン情報に「
Alfa
2」と表示されるようになっている。イロイロ触ってみてその理由が解った。とてもじゃないが満足に動作するコードではないのだ。いくら独自
の改変を加えたとはいえ、明らかに「そりゃダメだろうさ...」って部分がある。
ソースコー
ドを持ってきてそのままコンパイルしても英語版すら作れないって事だ。
・問題点(
SynEdit)
SynEditにも同様のバグがある。Windows
版にはv1.1(Stable)を使ったが、こいつもそのままでは
Kylixに
登録できない。とりあえずエラーが出ないようにしたものの描画は化けまくりで使い物にならない。こんな事なら標準のメモを使ったほうがいいような気がす
る...。次は2.x系の
SynEditで試してみたい
と思う。
・問題点(DBGrid)
Kylix版では文字化けしてしまう。データベースは「Shift-JIS」なのだが、文字コードを変換してくれる機能なんてある訳がない。DBの文字
コード指定で直るかも知れないので、詳しく調査してみなくてはなんとも言えないトコロだ。
・問題点(ソースコードの文字コード)
Delphiのフォームをテキストエディタで見た事
のあるヒトはご存知だろうが、
Delphi6から文字
列はUTF-8でエスケープ(エンコードではない)されるようになった。しかし、ソースコードではそれがないのでDBCS文字列を使う国のヒトは「
Delphi/
Kylix」で「
単一ソースファイルは作れない」事になる。ソースファイルは
DelphiではShift-JIS、
KylixではEUCだからだ。「単一ソース」は作れても
「単一ソースファイル」は作れないのだ...これは面倒としか言いようがない。マルチブート環境でFAT32のフォルダにソースを置き、Windowsで
コンパイルし。Linuxでそのフォルダをマウントして
Kylixで
コンパイルといった芸当ができない。つまり双方で修正部分の転記を行わなくてはならない。いっその事、ソースファイルもUTF-8にしてくれればよかった
のに...。
スクリーンショットの文字化けはソースコードで文字列を指定している部分である。Linux側にコピーする前に文字コードを変換するのを忘れて
Shift-JISのまま読み込み/保存をしてしまったためだ。Linux側にコピーした直後であれば
nkfで変換できたものを...。
・問題点(動作)
コンパイルが通ったものの挙動はかなり怪しい。DBへのコネクションやSQLの実行等は一応できるものの、ちょっと触っただけでエラーを起こす。スク
リーンショットを見て期待された方には非常に申し訳ないが、とても常用できるものではない。
・Mozilla
FireFox 1.0 日本語版
遂にFireFoxの1.0
がリリースされたようです。
面白いのはASCII24ではFireFox関連のニュー
スが過去に一度もない事(Firebird時代のは存在する。そもそもMozillaに直接関連する記事は2004/08/19以降存在しない)。
Linuxのコンテンツを持っておいてそれはないだろう?と思うのですが...。
とりあえず、食わず嫌いのヒトも一度試してみて下さい。「IEでいいよ...」って言ってるヒトや、「Mozilla使ってみたケド駄目じゃん」ってヒ
ト、「Netscapeと同じなんでしょ?」って
いつまで経っても誤解してるヒト
に強くオススメします。
04/11/10
・Zeta NEO
...って何ですか?>PC-CRAFTさん。要はRC4ですか?
・歯医者
現在、虫歯治療のため通院中デス。