第2回準備会合議事録

Firebird日本ユーザー会第2回準備会 議事録

日時:2003/7/20 14時~18時

場所:タイムインターメディア社会議室

参加者:11名(省略)

 

・     ユーザー会の組織体制について

Ø         NPO法人化かそれ以外か
必要性と現実性を考慮して決めたい

²        協同組合など他の形態も模索。

²        法人化のメリット・デメリットについて考える。

²        会計の透明性の向上は法人化による最大のメリット。

²        法人化により決算事務や総会の準備などの事務作業が増大することがデメリットとしてあげられるが、
事務作業は法人の場合でも、非法人の場合でもちゃんとした組織として運営する限りそれほど変わらないかもしれない。

²        会費未納者への連絡などのいろいろな事務作業が発生する。(但し、これは法人か非法人かによることではありません)

 

Ø         NPO法人化の場合の定款(案)、予算(案)等
林さんの準備した配付資料に基づいて検討

²        個人会員の会費は妥当だと思う。

²        法人会員の会費はあまり安いと、逆に不審感をいだかれるのではないか?

 

Ø         目的や事業内容を中心に検討

²        「少なくとも当面の必要性は薄いので、事業目的から営利事業を抜いた方が良いのではないか?」という意見と、「後日に定款変更などを行うのは手数、経費に無駄が多いので網羅的に含めたらどうか?」という二つの意見があった。

²        また、営利目的の事業については、ユーザー会と会員の事業が衝突したらどうするのか?という疑問があった。

²        営利事業によって資金を得て、会の目的達成のために使用するのが通常のカタチであり、会の目的自体が営利になるということではない、という意見もあった。

 

・     ユーザー会として行うプロジェクト/事業について

Ø         ドキュメントの翻訳と収集をすすめる

²        日本語で公開できるマニュアルを作成する。

²        単なる翻訳でなく、会独自のものとして作成する。

Ø         各種ツール類の日本語化

²        会としてというよりは、会員が独自にどんどんやっていただく。(現状ではその方が良いのではないか?ということです)

 

・     ライセンスについて

Ø         IPLの翻訳について

Ø         ライセンスについての注意点

※上記の案件については時間の都合で十分に話し合われれていませんので、検討の余地がありそうです。

 

・     その他

MLの内容が開発よりになってきているので、devel系と一般系を分けたほうがよいのではないか。

 

※NPO法人の場合、設立総会開催後に申請となるので、本年中の設立は無理と判断。年内に設立総会を開催し、来年4月までに認可を目指すしかない。

 

・     決定事項

Ø         ユーザー会を法人化すること自体については、異論がないので、形態を模索しながら法人化を進める。

Ø         firebird-jp-develを別途立ち上げると、誘導が難しそうなので、会員希望者向けのMLを作成する。名称はfirebird-jp-membersとします。内容は参加者以外非公開とする。初期参加者は、準備会合参加者及び参加希望者とする。

Ø         日本語マニュアル作成プロジェクトを立ち上げる。とりまとめは、スタートアップ/グループの白井さんにお願いする。まずは、目次の作成から。

Ø         次回会合を2ヶ月後に予定する。それまでに、法人化の件を新規MLにて検討していくこととする。

 

 ※この内容は、林がまとめた内容を三浦しゅうが一部加筆・修正しました。内容についての修正・追加等は、林までメールしてくださるか、この記事へのコメントでお願いします。

-
ゲスト(50)  7月25日(金) 11時39分 – 2003年:

私の「協同組合」の発言について誤解されていた事がわかりました。現在の定款の(事業の種類)でNPO的な部分と協同組合的な部分があります。この部分を明確にすべきか?または現状のままでいいのか?という問いかけとして発言したつもりでした。個人的にはNPOの主旨を明確にした方がいいと考えていますが、そもそも事業等が明確になっていないので判断は難しい点と思います。意見は無視しておいてください。

-
ゲスト(50)  7月25日(金) 12時58分 – 2003年:

確か私が発言した「ユーザー会と会員の事業が衝突」の懸念についですが、誤解もありそうで補足しておきます。 今後団体/個人会員の方(敬称略)が増えていった場合に「NPO」としての活動と自社活動の線引きが必要となります。自社の活動方向と現在の定款(案)と結構重複部分が多いので「対団体/個人会員」からみた不信感に繋がる可能性もある事に対する懸念として発言したつもりです。 ですから「NPO」の主旨を明確にした方が問題は少なくなると考えています。「協同組合」が必要であれば別に設立という考え方でもあります。ただ先のコメントと同じように「NPO」としての意義が明確になっていないのが難しい点でもあり無視しておいてください。


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=41

Firebird1.5とPHP4.3.x

アーティクルID:40
最終更新日:2003/7/7
編集者:三浦しゅう(ウェブ担当)
ML投稿者:三浦しゅう、林務さん、天野 潔さん
参考・引用記事:Firebird1.5rc2と PHP4.3.x, RE: [Firebird-jp-general] Firebird1.5rc2と PHP4.3.x, Re: Firebird1.5rc2と PHP4.3.x <続 > , RE: [Firebird-jp-general] Re: Firebird1.5rc2と PHP4.3.x <続 > , Re: Firebird1.5rc2と PHP4.3.x <続 > , PHPからFirebirdを使うには, Re: PHPからFirebirdを使うには, Re: [Firebird-jp-general] Re: PHPからFirebirdを使うには , Re: PHPからFirebirdを使うには , TOMNEKO’S ROOM : http://homepage2.nifty.com/tomneko/tomneko_labo/tomneko_labo_5.html , DipMeshSystems : http://xdip.com/sylph/index.php?sylph_xsite=63 , http://xdip.com/sylph/index.php?sylph_xsite=64

先日から隙を見つけてはPHPの関連ソースコードなどを検討した結果、Firebird1.02からFirebird1.5rc2にあげても特に問題はないだろう、という見込みが立ったので、早速実験用サーバー(fb1.02+php4.3.1)にFirebird1.5rc2をインストールしてみました。ちょっとは身構えたものの…PHPからのアクセスは全然問題なし、、、、ibWebAdminも大味で言えば…動作しているようです。(ibWebAdminについてはキャラコード設定の動作に以前から疑問がある)Delphi6ent付属のInterBase6のibConsoleからのアクセスは
ユーザー管理などは使えないようでした。一応、自分のサイトに手順メモっておいたので、参考になるようなら参考にしてください。
http://xdip.com/sylph/index.php?sylph_xsite=64
※./configureの際のinterbaseオプションのディレクティブは「/opt/interbase」のままでもNPかと思いきや…動いていた理由はむしろそこにあったようです。念のためにfirebird1.02のリソースを/opt/interbaseに残していたので、以前のリソースで動作していたと思われます。で、とりあえずは特定できているポイントですがfirebirdインストールディレクトリ/include/の中に以前のものも1.5rc2もcのヘッダファイルが配置されているのですが、1.5rc2についてきているものではconfigureやmakeでエラーが起きます。コードの詳細はまだみていないのですが、とりあえずご報告です。※ちなみにかなり邪道ですが、1.5rc2を稼働させて、古いincludeでphpを構築すれば「とりあえず動いている」ことは確認済みです。

windowsでibwebadminを動かすとうまくいきませんね。IBOConsoleはちゃんとつながるんですが・・・。

動作しているサーバーは1.5だけど、クライアントライブラリは1.0.2が使用されているということですね?1.5の新フィーチャーを使用しなければそれでもOKなのかな?Windowsでは、GDS32.dllを入れ替え忘れてIBOConsoleを起動したりすると、サービスマネージャーに接続できないというエラーになってダメでした。isql.exeは古いモノでも大丈夫ですね。

SQL> show version;
ISQL Version: WI-V1.0.2.908 Firebird 1.0
Firebird/x86/Windows NT (access method), version “WI-T1.5.0.3233 Firebird
1.5 Release Candidate 1″
on disk structure version 10.1

ver.1.0.2のisql.exeでv1.5に接続するとこんな表示になります。ODSが10.1になっていますね。この状態でリモートのv1.0.2に接続するとこうなります。

SQL> show version;
ISQL Version: WI-V1.0.2.908 Firebird 1.0
Firebird/x86/Windows NT (access method), version “WI-V6.2.908 Firebird 1.0”
Firebird/x86/Windows NT (remote server), version “WI-V6.2.908 Firebird
1.0/tcp (svrxxx)/P10″
Firebird/x86/Windows NT (remote interface), version “WI-T1.5.0.3233 Firebird
1.5 Release Candidate 1/tcp (pcxxx)/P10″
on disk structure version 10.0

さらに、isql.exeのディレクトリにv1.0.2のgds32.dllを配置するとこうなります(当然か)

SQL> show version;
can’t format message 17:10 — message file C:\Program
Files\Borland\Interbase\/i
nterbase.msg not found
Firebird/x86/Windows NT (access method), version “WI-V6.2.908 Firebird 1.0”
Firebird/x86/Windows NT (remote server), version “WI-V6.2.908 Firebird
1.0/tcp (svrxxx)/P10″
Firebird/x86/Windows NT (remote interface), version “WI-V6.2.908 Firebird
1.0/tcp (pcxxx)/P10″
on disk structure version 10.0

interbase.msgが見つからないというエラーは、レジストリにインストールルートが無いので出ています。v1.0.2のinstregで登録するとでません。v1.5とv1.0.2はレジストリエントリが変更されているので、こうしても問題がおきることはありません。

正確にはサーバーは1.5が稼働していて、apacheのPHPモジュールのibase関数群が、1.0.2のヘッダファイルを元に構築されているという感じですね。つまり…1.5サーバーに1.0.2準拠の関数群でアクセスしている感じ。PHPはどちらかというとリモート接続イメージなので、レジストリやdll、その他のファイルについての問題は、ソースコード見てもなさそうです。問題は、1.5で新たにフィーチャーされた機能については新しいヘッダファイルをインクルードして構築したライブラリじゃなければ使用できそうにないことですが、、、逆に言えば、1.02までと同じRDBMS「として扱って」1.5を稼働させることはphpからのアクセスに関していえば特段問題が出る可能性も少なそうです。

結局のところPHPモジュールは位置づけとしてはisqlに近い存在だと思います。つまり、プロトコル経由で異なるソフトウェア同士が対話的に問題を解決するモデルですね。その場合には、今回のような問題には比較的強いことになりそうです。勿論、どのポートに問い合わせるか?などを解決するマッパー役のDLLなどのリソースに依存することは同じでしょうが…。

PHP から Firebird を使うにはどうすればよいのでしょうか。加藤大受さんの『Firebirdオープンソースデータベースの導入と運用の実際』に Apache をソースからコンパイルしたときの例が出ていますが、私は Red Hat Linux 7.3 に附属している rpm 版の Apache を使っています。ソースからコンパイルするとディレクトリ環境が変わってしまうこともあり、できれば rpm 版のままで使いたいと思います。ご教示いただければさいわいです。よろしくお願いします。

要約するとまずは…(一般的に配布されている)rpm版のままのApache&PHPでは無理です。というのも、ApacheのモジュールとしてInterBase関連関数を組み込むように
PHPのソースコードをconfigureしなければならないからです。一見ちょっと面倒なようですが、それほど難しいことはありません。
以下のPHPのドキュメント
http://jp.php.net/manual/ja/install.linux.php
http://jp.php.net/manual/ja/install.apache.php
http://jp.php.net/manual/ja/install.configure.php
などが参考になります。

ディレクトリ環境については、configureオプションでインストールするディレクトリをrpmにあわせるのも手です。
まぁ、redhatの自動アップデートからははずれてしまうでしょうが、configureのオプションを保管しておけば、更新の手間は大したものではないので、是非挑戦して下さい!私もよく分からない状態からやってみましたが、慣れると結構サクサクな作業ですよ。
ソースパッケージをインストールして、specファイルを編集し、rpmをビルドするという手もあります。
PHPではありませんが、Apacheで同様のことをしたときの様子をまとめたことがあります。古いので、rpmのバージョン3系列ですから、今のバージョン4とはちょっと違うかもしれません。(最近やってない)
http://homepage2.nifty.com/tomneko/tomneko_labo/tomneko_labo_5.html

Apacheの場合は、ログローテートの設定などもあり、rpmを再作成した方が便利だったので、やってみましたが、三浦さんの言うとおり、PHPをコンパイルするのも難しいことではないと思います。rpmにこだわるなら、こういうやり方もあるということで、参考にしてください。

-
三浦しゅう(5)  7月7日(月) 9時9分 – 2003年:

参考までに:
http://xdip.com/sylph/index.php?sylph_xsite=64

まずは稼動しているFirebird1.0.x、あるいはInterBase6.01の
動作を停止させなければなりません。(止めないとインストーラにしかられますTT)

/opt/interbase/bin/ibmgr -shut -password ????
赤い部分はFirebirdの前のバージョンがインストールされたフォルダ名です。
記憶によるとInterBaseにしろFirebirdにしろ、
前まではデフォルトで/opt/interbase/にインストールされていたと思っていました。
上述のコマンドで現在稼動しているエンジンを停止できます。
次は、手際の良い皆さんは用意してあるかと思いますが、
http://sourceforge.net/project/showfiles.php?group_id=9028
から最新のLinux版Firebirdを(この記事では1.5rc2をターゲットしています)
ダウンロードします。
(例: http://aleron.dl.sourceforge.net/sourceforge/firebird/FirebirdCS-1.5.0.3390-0.RC2.i686.tar.gz )そして、インストールしたいPCの適当なワークディレクトリにうつして、
tar xvfz FirebirdCS-1.5.0.3390-0.RC2.i686.tar.gz
でアーカイブを展開します。
その後、展開された内容が格納されたディレクトリに
cd FirebirdCS-1.5.0.3390-0.RC2.i686
で、移動して、その中のインストーラーを
./install.sh
とコマンド実行します。
あとは[Enter]キーを何度か押すと、
/usr/local/firebird に1.5rc2がインストールされます。

./configureの際のinterbaseオプションの
ディレクティブは「/opt/interbase」のままでもNPかと思いきや…
動いていた理由はむしろそこにあったようです。
念のためにfirebird1.02のリソースを/opt/interbaseに残していたので、
以前のリソースで動作していたと思われます。
で、とりあえずは特定できているポイントですが
firebirdインストールディレクトリ/include/の中に
以前のものも1.5rc2もcのヘッダファイルが配置されているのですが、
1.5rc2についてきているものではconfigureやmakeでエラーが起きます。
コードの詳細はまだみていないのですが、とりあえずご報告です。

※ちなみにかなり邪道ですが、
 1.5rc2を稼働させて、古いincludeでphpを構築すれば
 「とりあえず動いている」ことは確認済みです(苦

 現状ではFirebird1.5そのものズバリのクライアントとしては
PHPは動作できしませんが、古いincludeを用いて
PHPモジュールを構築することで、Firebird1.5サーバーと
1.02クライアントの組み合わせのような状態で動作するようです。

-
三浦しゅう(5)  7月7日(月) 9時11分 – 2003年:

更に…
http://xdip.com/sylph/index.php?sylph_xsite=63

【重要】Linuxではクライアントライブラリの名称が変わっていることがチェンジログに載っていました。
(多分rc1の頃のことだと思います)

以下、公式変更ログより抜粋翻訳

* ファイル名変更.

 我々はFirebirdなので配布ファイルの名称を変更します。現在、それら(のファイル)はfbserver, fbclient, firebird.msgなどです。

備考:

 クライアントライブラリは現在fbclientです、そしてそれは新しいFB-basedプロジェクトで使用されます。gds32は何の機能も持っていませんが、リダイレクトを互換性のためだけにプロバイドします。.

※PHPではこのあたりの「互換性」がうまくいってないような気がする(訳注)
※もしかしてそれだけならFirebirdインストールディレクトリ中のinclude中のヘッダファイルの該当部分の書き換えだけで上手くいきそうな気が…。今のところ一番ポイントになりそうなのがibase.hかな…。どういう風にコールしているのかいまいち判らないので、1.5系と比べてみます。(しゅう)

Firebird1.5系のインストールに先立って、phpのibaseモジュールのソースコードを覗いてみました。
王道ではないのは承知の上ですが以下のような方策が便利そうです。
–with-interbase=/opt/interbase
※重要なのは1.02のincludeがどこにあるかです。

後日blob系の情報をソースから調査してみるつもりです。
元々blob系はドキュメント化されていないので、自分用のメモを掲載する程度ですがね。。。

【重要】Firebird1.5rc2のインストールによるリソースだけではPHPモジュールにibase関数群を組み込めません。原因は1.5系で改変されたfirebirdインストールディレクトリ/include/の中のヘッダファイル群です。PHPのibase関数群の構築にはFirebird1.02以前、或いはInterBaseのincludeヘッダファイル群が必要です。(追記:ヘッダファイルを覗いてみたところ、ヘッダファイルだけではなく、1.0.2以前のクライアントライブラリのバイナリも必要でしょう…)

【対策】Firebird1.5のインストールの前に、Firebird1.02をインストールして、そのリソースを残したまま1.5をインストールして、PHPの構築時にはFirebird1.02のインストールディレクトリを指定してあげましょう。そうすれば、サーバーとしてはFirebird1.5がフルスペックで動作し、クライアントとしてはInterBase互換のPHP関数群を使用できます。とりあえずこの方法で問題は起きていません。

※追記:Firebird1.5のリソースが悪いわけではなく、単に現行のPHPのibase関数群の取り込み方と一致しないだけです。


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=40

Firebird local exploit

Firebird local exploit

アーティクルID:39
最終更新日:2003/7/2
編集者:三浦しゅう(ウェブ担当)
ML投稿者:えんどう(ENDO Yasuyuki)さん、林務(株式会社アペックス)さん
参考・引用記事:Firebird local exploit,Re: Firebird local exploit,Re: Firebird local exploit,Re: Firebird local exploit,Re: Firebird local exploit,Re: Firebird local exploit

1.00と1.0.2における脆弱性(2003年5月9日にbugtraqに投稿されていました)
http://www.securityfocus.com/archive/1/321087/2003-05-08/2003-05-14/2
FreeBSDだけでなくLinuxにも脆弱性がある、と書かれています。
http://sourceforge.net/tracker/index.phpの記事も参照した。

firebird.sourceforge.net でのアナウンス。

US YahooのFirebird-develリスト
> Leyne Seanさんからレスがついています。

–[DESCRIPTION

Firebird has 3 binarys [gds_inet_server, gds_drop, and gds_lock_mgr],
which all use insufficent bounds checking in conjunction with getenv(),
making each one succeptable to local exploitation.

Firebirdは3つのバイナリで動作しています[gds_inet_server, gds_drop, gds_locl_mgr]、
これら全てはgetenv()を使用していますが範囲チェックが十分ではありません、
そのためどれもローカルでの権限奪取の可能性があります。

Firebird is by default setuid[firebird]. This exploit can lead to
root/escalated
privileges, should the attacker trojan the local firebird application.

Firebirdはデフォルトで[firebird]にsetuidします。攻撃者がローカルのfirebirdを利用するアプリケーションにトロイの木馬を組み込むことで、この権限奪取はroot特権へエスカレートすることが可能です、

—以上

ということで、SourceForgeも見てみましたが、bugtrackerで降順にならべても、この情報はないし、セキュリティで絞っても出てこないので、多分まだ認識されていないのではないかと思います。念のため、Firebird-develリストも最近の分だけですが検索してみたら、5/11付でポストされていました。

Leyne Seanさんからレスがついています。

In future, all such security postings should be forwarded to
fbsecurity@lists.firebirdsql.org.  This list is where security issues
the Foundation ‘staff’ developers follow all security issues.

将来的には、こうしたセキュリティに関する投稿はすべて、fbsecurity@lists.firebirdsql.orgにフォワードされるべきでしょう。このリストはファウンデーションのセキュリティ担当によって管理され、デベロッパーは全てのセキュリティ情報を追跡することになるでしょう。

This saves the “whole world” knowing about the engine security issues
and how they can be exploited — after all not everyone “plays nice”

こうしたことは「世界全体」を守ることになるでしょう、エンジンのセキュリティ情報について熟知し、どうやって権限奪取をすることができるのかを知ることは重要なことです---そうすればきっと、「祈りなさい」と言わないですむようになります

 

-
三浦しゅう(5)  7月2日(水) 22時54分 – 2003年:

 このセキュリティ問題自体はローカルからFirebirdを使用するトロイの木馬を仕組まれた場合の危険に対する指摘なので、疑いのあるものをローカルに入れないということが肝要。実際にそのようなトロイの木馬を含んだ何かが発見されたわけではないようなので危険なことがありうるという可能性を示唆したものだ。勿論、放置されて良い問題ではない。調べてみないと全くなんとも言えないが、v1.0.0 v1.0.2 について記述されたものなので、時期的に考えても、1.0.3や1.5rc3のあたりでは解決済みかと思われる。


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=39

Interview with Jason Wharton on InterBase World

Interview with Jason Wharton
2003 / 4 / 1
2003 / 7 / 1 翻訳版 DelphiマガジンVol.29 掲載
Written by Marina Novikova
on InterBase World (URL http://www.interbase-world.com/)
翻訳:林 務(株式会社アペックス)

 本インタビューは、InterBase World のWebサイトでMarina Novikova氏によって公開されたものを、Marina氏とJason氏の許可によって翻訳したものです。
 Jason Wharton氏はIBObjectsの作者です。IBObjectsはInterBase / Firebirdへのネイティブな接続を提供するコンポーネント群であり、Delphi + BIB/FBの強力なサポーターとなっています。Jason氏はまた、ボーランドによってもたらされたInterBaseの危機に際しては、Helen Borrie氏やMark O’Donohue氏と共にコミュニティを守るために尽力されました。この件は、Helen氏のインタビューで詳しく触れられています。
 Marina Novikova氏はロシアの企業で英文翻訳とテクニカル・ライターをするかたわら、InterBase Worldの管理者をなさっています。Marina氏はInterBase Worldで、毎週のようにインタビューやレビューを更新されているのですが、このインタビューは、技術的なことやビジネスに関することだけでなく、各ゲストの人となりがよく現れていて、私はいつも楽しみにしています。


Marina Novikova: まず、ご自身のことについてお聞かせください。

Jason Wharton: 私はいま32歳で、幸せな結婚をして8年がたち4人の子供たちの父親となっています。私が生まれ育ったのは、アイダホ州の小さな田舎町で、それからユタ州へ、それからアリゾナへ移ってハイスクールの高学年を過ごしました。学校では、大変良い成績を収めていましたが同時にいろんないたずらをしたものです。もっともそれは、私が授業に興味を持って挑戦した時に限ってのことですがね。私は、いろんなスポーツのプログラムにも参加して、いつもたいへん多くのことをやろうとしていました。私はクラスメートにとって大変な競争相手だったと思いますよ。異性との出会いに関して言えば、若い頃は夢も希望もない独身人生でしたが、いつかきっと結婚して家族を持つことができると信じていましたよ。私の自慢の家族についてお話ししなくてはなりませんね。私は、愛と英知をもって家族を導いていける父親、そして夫になるために全力を傾けています。私はまた、人生を神に捧げて、神の摂理の下に生きるために、家族を導いています。

Marina Novikova: 趣味とか普段していることについて聞いてもいいですか?

Jason Wharton: アウトドア関係、そう、私の4輪駆動のチェロキー・ジープでオフロードを走るとか、ハイキング、写真を撮るとかですね。最近は、大変いい望遠鏡を手に入れたので楽しんでいます、どうしたら天の国を見ることができるのかわかってきましたよ。ウエイトリフティングをして、体型を維持しています。子供の頃はよく、友人たちとくだらない遊びをしたものです、彼らにとっては本を読むことよりも私と遊ぶ方が楽しかったようです、どうしてかというと私は気に入ってもらえるならとことん物語を脚色して、みんなを喜ばせたからです。私と妻は週に一回は夜にデートをするので、二人きりで出かけます。私は、夫婦二人きりで過ごす時間をとても楽しんでいます。結婚してからもう8年になりますが、彼女と会うときはいまでも本当にドキドキしますよ。妻は私の元気の素なんです。もちろん、子供たちと一緒に過ごす時間もたくさんありますよ。

Marina Novikova: どんな音楽をお聴きになりますか?

Jason Wharton: いろんなものに興味を持って、何年もの間に好みも変わってきましたからね。80年代のロックンロールバンドが良かったですね。いまは、インストゥルメントで霊感的な音楽をよく聞いています。これまで、憂鬱なメッセージの歌詞をさけてきたんですが、どうしてかというと、けっこう簡単に影響を受けてしまって、人生の中で良かったなあと思える素晴らしいたくさんの出来事を勘違いしてしまうようなところがあるんですよ。自分をポジティブにしてくれて、人々を愛する気持にさせてくれる音楽がやっぱりいいですね。ロマンチシズムに落ち込ませるようなのではなくてね。

Marina Novikova: どんな本を読むのが好きですか?

Jason Wharton: そうですね、歴史の本と科学の本、健康に関するものをよく読みますね。私は、秘伝的で超常的な事柄にとても親しみを感じていて、そういったものが持っている謎にチャレンジするのがおもしろいんですよ。人類はどこからきたのかとか、この世界はどのようにして創造されたのかとか、人類はどんな潜在能力を秘めているのかなど、そういったことをあれこれ考えるのが本当に好きなんです。私がもっとも時間を費やしている書物は私の所属する教会の聖典で、欽定訳聖書 、モルモン書、「教義と聖約」、「高価な真珠」 ですね。他にもこれは名著だと思うものがありますよ、David Wilcock (Diveine Cosmos, Shift of Ages, Convergence III)、Roy Masters(Findig God in Phisics, How Your Mind Can Keep You Well)、J.J.Hurtak(Keys of Enoch, Pistis Sophia, 他)などの本ですね、リストがどんどん増えています。彼らのことが好きな人はどなたでも私に聞いてください。

Marina Novikova: どんなものを集めていますか?

Jason Wharton: そういったことにはあまり興味がありませんね。実際に使わないものを持っていたとしたら、誰かほしい人にあげてしまうのが常です。子供の頃は、ベースボールカードとビー玉を集めてましたけどね。

Marina Novikova: 料理はお好きですか?

Jason Wharton: もちろんですよ、すごいピーナッツバター&ジャムサンドを作りますよ。コーンブレッドとスニッカードゥードゥル とパンケーキを作ったこともありますね。ちょっとした自慢なんです。本当のことを言うと、妻がとっても料理がうまいので、我が家では彼女が全部料理をしていて、私の出番はないんです。

Marina Novikova: どんな食べ物がお好きですか?

Jason Wharton: どんなものでも食べますよ。韓国料理は特に好きですね、宣教活動のために2年間住んでいたことがあって、本当の韓国文化に触れてきました。それで、韓国料理が好きになったんです。

Marina Novikova: ビールは飲みますか?もし、そうなら、お好きな銘柄は?

Jason Wharton: 反抗的なティーンエイジャーだった頃には、時々ビールを飲みましたね。でも、そうしたときはいつも「ビール顔」をしていましたね。どうしてもビールの味が好きになれなかったんですよ。「ショットガン」 をして倒れたときのことを覚えていますよ。クレイジーだったなぁ。でも、おおむね飲むことは無くなりましたね。

Marina Novikova: 大きな夢はおありですか?

Jason Wharton: たくさんのことがありますが、そのほとんどは人生に望んでいるものです、私の作品については多くの人々に使い続けてもらえればいいなと思います。 クリエーターになる前や人生の中で愛する人に出会う前やその他のいろいろなことの前のことですが、偉くなりたいなと思っていました。また、完全なる良心を知るようになって、全力を尽くすようになりました、私たちにとって永遠に共にあるようになること、どんなことでも経験をすることは人類の潜在能力のうちにあることなのです。私は自分自身が取るに足らない存在であることを知っていますが、神と共にあることで、私はすべてを愛することができるのです。私は、それらの完全なる実在の一部となりたいと思っています。また私は自分の惑星か太陽系を創造したいし、あるいはどこかの太陽系を中古で手に入れて、美しく素晴らしい生命体を創造しはじめたいですね。

Marina Novikova: あなたの言っている幸福というのは・・・

Jason Wharton: 自分自身の内に平安であること、自分自身を表現する自由を得ること、充実した目的のために熱心に働くこと。自分を支えてくれる、積極的で創造的な人々に囲まれること、ですね。

Marina Novikova: コンピューターゲームはプレイしますか?プレイしているなら、どんなものが気に入っていますか。

Jason Wharton: あまりやりません。スタークラフト・ブラッドウォーをプレイしたものですが、ああしろこうしろといわれるようなものは好きじゃないんです。私は(訳注:キャラクターを)育成することよりも、ゲームを進めるのためには乱暴になってしまいがちなんです。でも、暴力は家族の間ではしてはならないことです。また、こうも思います。何度も何度も繰り返し無駄なことをするので飽きてしまい、いやになってしまうのです。

Marina Novikova: 旅行はお好きですか?これまでどこに行かれました?

Jason Wharton: 大変好きですね。いろんなところに行きましたよ。韓国には2年間、モルモン教会の宣教で行ってきました。また、カンファレンスと研修をするのでヨーロッパの各国を旅しました、オランダ、ルクセンブルグ、ドイツ、ベルギー、デンマーク、イギリス、そのほかに1つか2つ。妻と二人で2週間にツアーで中国本土へ行きました、長江の船での川下りが5日間あって、上海・趙南 ・西安・北京などにも寄りました。本当に不思議な経験でした。日本にも寄りましたよ。

Marina Novikova: 一日にどれくらいコンピューターを使っていますか?

Jason Wharton: とってもたくさんですね。最低でも12時間、平均では16時間くらいかな。

Marina Novikova: これまでの経験でもっともヘンなことはなんでしょう?

Jason Wharton: 選ぶものがたくさんありすぎますね。私はこの手の話が大好きな手合いなんです。一例をあげると、本当にあったことですが、友人と私が彼の奥さんの大きなステーションワゴンで、砂利の駐車場に入って、外に出ようとして、タイヤが空回りしてしまって、そのためにガソリンを使い切ってしまったんです。ガソリンが切れてしまう頃には、まるでトラクターで耕したみたいに見えましたよ。彼には小さい兄弟の一団がいて、車は本当にぐちゃぐちゃでした、みんなのおもちゃとか読み物とかいろんなものでね、誰も知ったこっちゃ無かったんですが。後部ドアが開いてしまって、私たちをむち打ちようなつむじ風の中で、そこら中のものが吹き飛ばされました。がらくたがそこら中に飛んでいってしまいました。その車のエンジンは大変大きかったので、そこにあるものを全部くれてやってしまったんですね。あまりにひどく長く笑ったので、何日もおなかが痛くなりましたよ。実際、今でも思い出します。今でもおなかが痛くなるくらい笑って涙が出ますよ。本当におかしな出来事でしたね。最終的には何とか外に出ることができて、砂利をかき集めて駐車場を直したんです。丸一日かかってしまいました。

Marina Novikova: 学歴をお聞きできますか?また、どうしてハイテク分野で働こうとお決めになったんですか?

Jason Wharton: 最初は電気関係のエンジニアになったのですが、すぐにコンピューターシステムのエンジニアに転身しました。カレッジには3年ほどいたんですが、中退することにしました。コンピューターがとても好きで、プログラミングに情熱を抱いていたんです。小さな男の子だったころでさえ、夜通し何かのプログラムを作ろうとしていて、母親につかまりましたよ。そのころ書いたものはお話にならないんだけど、それがスタートだったんですね。そう決めたんだ、と確信を持っているわけじゃないんですけど。プログラミングは私の心に深く浸透しました、私にとって自然な表現だったのです。

Marina Novikova: どうして、IBOを書き始めようと思ったのですか?だれか手助けをしてくれる人はいましたか?

Jason Wharton: ここPhoenixのU-Haul Internationalで働いている間、BESTという売れ筋商品の次のメジャーバージョンのために使える製品がないかと調べては推奨するという仕事をしていたんです。たくさんの製品を比較して、DelphiとInterBaseの組み合わせに行き着きました。それまでは、聞いたこともなかったのですが。私には、その二つの組み合わせが完璧なものだとわかりました、それで自分のこれらを使うことに開発者人生を賭けようと決めたのです。上司はすでに、SQL-ServerをバックエンドにしてVisual FoxProを使うことを決めていたのですが、この話をしました、かなり徹底的に話をしましたよ。一度、このとてもよい組み合わせを知ってしまうと、元に戻ることはできないですね、仕方がないので会社を辞めることにしました。それと、私は自分がいいと思ったことが、聞き入れてもらえないということが我慢ならないんですよ。
その後は、独立して仕事をするようになりましたが、すぐにDelphiとInterBaseはうまく統合されていないことがわかりました。この両者を統合して機能させるという可能性は理解できていましたが、そのためには大きな部分が欠けていました。ミドルウェアは両者の利点を最大限に引き出すために必要でした。また、もうひとつ大きく欠けている点に気が付きました、それはクラリスのファイルメーカープロを使っていたのでわかったことですが、ヴィジュアル・インターフェースの機能なんです。私はGUIが大変好きなのですが、それは大きな可能性をもっています、とはいえファイルメーカープロのデータベースはフラットファイル型でパフォーマンスはひどいものだし、不安定で、トランザクションをサポートしていません。それで、私の目的はDelphiとInterBaseを最高度に融合させると言うことと、ファイルメーカープロのいい点を取り入れるということになったんです。

Marina Novikova: もし、競合する人々があなたの考えを無断借用したら、あなたも同じようにしますか?

Jason Wharton: 私は直接の競合相手からそうしたことをしようとは思いません。こうした領域では誠実さと相手を尊重する気持が保たれていると信じています。

Marina Novikova: あなたの開発陣にはどれだけの人々が参加してますか?

Jason Wharton: コミュニティを考慮に入れるととても多くのことをお話しすることになります。継続して雇用しているのはHelen Borrieだけで、他の方は短期間の請負でお願いしています。現在では、サポートや開発の本当に多くの部分がIBOのコミュニティで行われていて、それはコミュニティ全体の努力のたまものといえるでしょう。
バグフィックスのアシストをする人を追加で雇おうと計画しているところなんですが、FirebirdとInterBaseの進歩をサポートする新機能を実装するためにも必要かもしれないですね。

Marina Novikova: InterBaseは多くのクローンが作られています。それらに対してどうお考えですか?

Jason Wharton: 私の感じていることは、多くの人々に選んでもらえるような素晴らしいものを作ろうとして、多くの努力を本当にしているのであれば、全力を挙げてほしいということですね。もし彼らが素晴らしいコード・ベースを引き継ぐことに関心があって、そしていくつかの独自の変更をしたのであれば、売り物になる製品を持っているということになります、それは素晴らしいことです、しかし私はこう思います、もし多くの人々がそれをしだしたら、混乱も多くなるでしょうし、コミュニティや開発者を広げるためにのフラストレーションの源となってしまうでしょう。私として望ましいのは、人々の努力が一つか二つの本当に素晴らしい製品にフォーカスして、それを個人利用するためにちょっとだけ特別な製品を望んでいるその他すべての人々にも選ばれるということです。

Marina Novikova: それらのどれをもサポートされるのでしょうか?(もしそうでないなら、その基準はなんでしょう)

Jason Wharton: それについてそんなに心配しなくてはならなくなると言うことは理解できません。彼らが互いにうまく動くようにちょっとした努力をしてAPIの交換性を保つのであればね。私としてはできる限りのサポートに努力しているので、いつもそうした投資に対するリターンをはかることになるでしょうね。IBOがある何かをサポートするために多くの労力を投じて、もしあまり多くの人々に利用されていないということであれば、IBOにサポートされたいと考えている人々に、私たちよりも頑張ってほしいなと思いますね。

Marina Novikova: Yaffilについて聞いたことがありますか?もし聞いたことがあれば、どうお思いですか?

Jason Wharton: 聞いたことはありますが、特に意見はないですね。個人的には、彼らにはFirebirdの開発陣に参加してほしいなと思いますが、彼らには自分たちのプロジェクトを立ち上げる権利が確かにあると思いますよ。私としては、それがFirebirdやInterBaseと同じように使いやすいものであれば、IBOの制作において支援することを喜んで表明しますよ。

Marina Novikova: IBOはあなたにとって趣味なのでしょうか、それとも生業なのでしょうか?

Jason Wharton: 幸運なことに、私にとってはどちらでもありますね。加えて、私はフルタイムの仕事を続けているんですけどね。

Marina Novikova: 毎日どれくらいの仕事をIBOのためにされているんですか?

Jason Wharton: 進捗状況によってさまざまですね。平均すると、ここ数年間は毎日4~6時間を費やしてきましたね。

Marina Novikova: どうして、ビジュアル及びDB関連のクラスで独自の階層を構築したのですか?どうして、元々のボーランドのアイデアを引き継がないのですか?

Jason Wharton: どうしてかというと、それでは私がやり遂げたいと思っていることが不可能だからなんです。また、仕事を始めたときには使い物になるTDataSetの仮想クラスがなかったのです。

Marina Novikova: ボーランドがFreeIBComponentsを得た後で、どんな反応をしましたか?

Jason Wharton: ボーランドにいらつくことは、私と手を組んで一緒にやろうとしないことなんですよね、それができればほとんどの人々にとってもっとも良いソリューションとなるソリューションが出来て、みんなが勝者となることができるのにね。彼らの財布のひもはあまりに堅いので、いくつかのとても素晴らしい選択肢があるのに見えなくなっているように思います。私の想定していた価格帯は今ではとてもばかげているように思えますが、実際にはとてもいい見返りがあったんだろうなと考えることもよくありますね。私はこの3年間で多くの売上を得ました、それはボーランドがIBOを完全に買い取っていた場合に、私が受け取ったと考えられるよりも多くを売り上げたと思いますよ。私の希望と願いは彼らと一緒に仕事をして、成果を共有し、そのことで悔いが残ったりしないことですね。とはいえ、このことでコミュニティが失ったものについては、いまだに考えることがありますね。

Marina Novikova: それから、競合相手であるFIBPlusについてどうお考えですか?

Jason Wharton: 市場に競合相手がいると言うことは素晴らしいことだと思いますよ。私たちみんながいるようなニッチな市場をより有効に広げていくためにはね。彼らの立場はちょっと難しいとは思います、おなじ一角にいるIBXが立ちはだかっていますからね、とはいえ、彼らもいくつかの差別化に成功しているし、この無料の競合相手に対していくらかの付加価値を生み出していますね。もし、私が彼らだったとしたら、私が作り出したIBOと競合しようとはしなかったでしょうね、私がライセンスするという道もありますが、そうすれば、彼らが貢献を続けている大きなコミュニティにとって福音となったでしょうね。

Marina Novikova: それが本当なら、最初のバージョンのIBObjectsはボーランドのために作り出したことになって、それどころか(訳注:ボーランドに)IBOを与えることはもっと素晴らしいことだったと理解していいのかしら?

Jason Wharton: ボーランドが私にIBOをやってくれと頼んできたことはないですね。

Marina Novikova: Helen Borrieが言っていたんだけど、あなたがいないと大変厳しい状況だったそうです。どうして、支援しようと決められたんですか?

Jason Wharton: 私は本当に、痛切なほど、InterBaseの利点を理解して利用している企業ユーザーに出会いたいと思っています。また、私はDelphiを本当に好きで、Delphiに情熱をもっています。また私は次のよう思います、それは、私は真に大きな違いを生み出すことができるし、今ある製品に対してそれをもたらすことができるということです。私は、また多くの労力をIBOに注いできましたし、それが傷つけられるようなことを見たくはありません。私は熱心にリーダーシップをとってきましたし、事が起こったときはなんとかして取り戻そうとしてきました、Helenへの支援は大変価値のあるものでした。私にとってはこれまで全くなかったことで、他の誰かが彼らの責任で困っているとき援助したりはしませんでした。そしてまた、Helenが私が自分を個人的に支援していると考えているとは思いません、我々すべてが何が起こったのかをすでに知っているのと同様に、我々はそれを協力して行ってきていたのです。

Marina Novikova: 一番つらいのはどんなときですか?

Jason Wharton: 人々がエゴによって争ったり、なんの生産的な目的もないくだらないドラマに没頭しているときが、いちばんつらいですね。すべてが霊性とヴァイブレーションによって包まれていて、それは不健康で、空気中に漂っていて、私はどうやらそれによって影響を受けて打ちのめされてしまうんです。ボーランドの人々には本当にいらいらさせられましたし、新会社設立の努力についても同様です。このようなことを目にするとき、バラバラになってしまって、人々は結局隅へ追いやられてしまうのです。

Marina Novikova: 英語でIB/FBの本をお書きになりませんか?

Jason Wharton: やることが多すぎて、例外にできるものがないんです。これまで本を書いたことはありませんが、心にとめておいて、やらなければいけないことだと思っています。

Marina Novikova: 五月に行われる初のFirebirdカンファレンスに期待することはおありですか?

Jason Wharton: とてもめでたいイベントになることを、そして、親しい友人たちや直接会ったことのない仲間たちが、それぞれの交わりからようやく一つになること、Firebirdを取り巻いている努力の多くのエネルギーを作り出すのと同じくらい、人々のつながりが深くなること、そんなことを期待しています。一番楽しみなのは、大いに笑い、抱き合って、思い出話ができることですね。

Marina Novikova: InterBase Worldのコミュニティになにかご要望はありませんか?

Jason Wharton: 平安のうちにありますように、あなた方の心が繁栄と幸福の上にありますように、あなた方の勤勉さが達成されますように。私は学びました、私たちが(訳注:神のように)完全に話す事ができるようになり、あなたの話すことの意味を知ったとき、言葉が世界を形作りました。私はこのコミュニティのうちにあり、それはとても大切なものであり、また、私たちが生きかつその一部である世界のうちにあります。私はこう思います、私たちは周囲のすべてに手を伸ばして、背後にも目をやり、私たちがコミュニティに対して行っているように、この世界にも貢献しているのだということを知るべきです。


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/site_rsrc/images/92/interview_jason_wharton.html

マッピング検証

Firebird
SJIS_0208/EUCJ_0208/UNICODE_FSS

マッピング検証

アーティクルID:38

更新履歴

2003/9/15 V1.5(RC6)の検証結果を追加
2003/8/19 V1.0.3の検証結果を追加
2003/7/29 上記結果に伊浪氏の投稿情報を反映
2003/7/22 上記結果に伊浪氏の投稿情報を反映
2003/6/28 V1.5RC3による検証および結果整理

検証記事作成者:Minoru Yoshida / Timeful System,Inc. , 井浪さん
編集担当者: 三浦しゅう(ウェブ担当)
ML記事: マッピング検証, Re: [Firebird-jp-general] マッピング検証, Re: [Firebird-jp-general] マッピング検証, Re: [Firebird-jp-general] マッピング検証, Re: マッピング検証


検証目的

日本語Windows上で以下のキャラクタセットの登録/検索によりコードマッピング結果を確認する。

  • SJIS_0208 のテーブルに対する読み書きで正常か。
  • EUCJ_0208 のテーブルに対する読み書きで正常か。
  • UNICODE_FSS のテーブルに対する読み書きで正常か。

Firebird V1.0 検証環境 : 2003/8/19

Firebird V1.0.3 Windows SuperServer
サーバ Firebird V1.0.3 SuperServer / Windows2000(sp2)
クライアント (Local環境)
データベース MAPV1103.gdb(Zip圧縮)
USER:SYSDBA / DEFAULT CHARACTER SET SJIS_0208 / Dialect3
SJIS_0208検証用テーブル:SJIS
EUCJ_0208検証用テーブル:EUCJ
UNICODE_FSS検証用テーブル:UNICODE
接続キャラクタセット SJIS_0208
検証ツール B-Pla1/Data Definition    B-Pla2/Data Conversion   Middleware:IBObjects

Firebird V1.5 検証環境:2003/9/15

Firebird V1.5 RC6 Linux SuperServer
サーバ Linux RedHat8.0
クライアント Windows2000(sp2)
データベース MAPV15.fdb(zip圧縮)
USER:SYSDBA / DEFAULT CHARACTER SET SJIS_0208 / Dialect3
SJIS_0208検証用テーブル:SJIS
EUCJ_0208検証用テーブル:EUCJ
UNICODE_FSS検証用テーブル:UNICODE
接続キャラクタセット SJIS_0208
検証ツール B-Pla1/Data Definition    B-Pla2/Data Conversion   Middleware:IBObjects


検証データ

1バイト文字

SJIS 数 分類
00-  1F 32 制御コード(テスト対象外)
20-  7E 95 JIS X 0201英数記号
7F 1 制御コード(テスト対象外)
80 1 未定義
A0 1 未定義
A1-  DF 63 JIS X 0201カナ
FD-  FF 3 未定義
合計 163  

2バイト文字

SJIS 分類 数(非文字含) 文字数 備考
8140-EFFC JIS X 0208範囲内 8836 6355  
F040-FCFC JIS X 0208範囲外 2444 388 IBM選定文字388文字
合計   11280 6743  

(注)UNICODE_FSS時の2バイト対象文字は以下を想定します。

分類 JIS区画 数
数字・記号・かな 01~08区 524
第1水準 16~47区 2965
第2水準 48~84区 3390
合計   6879


検証テーブルと検証方法

テーブル 検証列(列/型/キャラクタセット) INSERT/COMPARE結果列 他
SJIS S_STR VARCHAR(1) CHARACTER SET SJIS_0208 S_INSERT/S_COMPARE
EUC E_STR VARCHAR(1) CHARACTER SET EUCJ_0208 E_INSERT/E_COMPARE
UNICODE U_STR VARCHAR(1) CHARACTER SET UNICODE_FSS U_INSERT/U_COMPARE

  • 検証データ(前述)は合計11443件(文字)のテキストファイルとして使用します。
  • 検証データ内検証文字を上記検証列にINSERTします。INSERT結果列:”OK”とします。
  • 検証データより検証列をSELECTして比較します。一致データはCOMAPRE結果列:”OK”とします。
  • INSERTエラーデータは検証列:”X”,INSERT結果列:”NG”としてINSERTします。
  • 不一致データは検証列:”X”,COMAPRE結果列:”NG”としてUPDATEします。
  • 上記INSERT結果:”OK”かつCOMAPRE結果列:”OK”の検証文字を正常とし正常件数を集計します。
  • 上記以外のINSERT結果:”NG”またはCOMAPRE結果列:”NG”の検証文字をエラー(注)としエラー件数を集計します。
  • (注)Firebird側コード変換範囲の対象外という意味です。ご了承ください。

    Firebird V1.0 検証結果 : 2003/8/19

    1バイト文字 JIS X 0201

    SJIS 数 サーバ 想定する正常件数 正常件数 エラー件数 メモ
    20-  7E 95 SJIS 95(100%) 95 0  
    95 EUCJ 95(100%) 95 0  
    95 UNI 95(100%) 95 0  
    80 1 SJIS 1(100%)  1 0  
    1 EUCJ 0(  0%) 0 1 未定義
    1 UNI 0(  0%) 0 1 未定義
    A0 1 SJIS 1(100%) 1 0  
    1 EUCJ 1(100%) 1 0 8EA0で変換
    1 UNI 0(  0%) 0 1 未定義
    A1-  DF 63 SJIS 63(100%) 63 0  
    63 EUCJ 63(100%) 63 0 複数バイト変換OK
    63 UNI 63(100%) 63 0 複数バイト変換OK
    FD-  FF 3 SJIS 3(100%) 3 0  
    3 EUCJ 0(  0%) 0 3 未定義
    3 UNI 0(  0%) 0 3 未定義

    2バイト文字 JIS X 0208 (8140-EFFC)

    SJIS  数 サーバ 想定する正常件数 正常件数 エラー件数 メモ
    8140-EFFC 8836 SJIS 8836(100%)  8836 0  
    8836 EUCJ 8836(100%) 8836 0  
    8836 UNI 6879( 78%) 6879 1957 実際にある文字が対象となる。検証データ(注)参照

    2バイト文字 JIS X 0208範囲外(F040-FCFC)

    SJIS  数 サーバ 想定する正常件数 正常件数 エラー件数 メモ
    FA40-FC4B 388 SJIS 388(100%) 388 0  
    388 EUCJ 0(  0%) 15 373  
    388 UNI 0(  0%) 2 386  
    上記以外 2056 SJIS 2056(100%) 2056 0  
    2056 EUCJ 0(  0%) 176 1880  
    2056 UNI 0(  0%) 176 1880  


    Firebird V1.5 検証結果:2003/9/15 ・・・V1.0と同一結果です。

    1バイト文字 JIS X 0201

    SJIS 数 サーバ 想定する正常件数 正常件数 エラー件数 メモ
    20-  7E 95 SJIS 95(100%) 95 0  
    95 EUCJ 95(100%) 95 0  
    95 UNI 95(100%) 95 0  
    80 1 SJIS 1(100%)  1 0  
    1 EUCJ 0(  0%) 0 1 未定義
    1 UNI 0(  0%) 0 1 未定義
    A0 1 SJIS 1(100%) 1 0  
    1 EUCJ 1(100%) 1 0 8EA0で変換
    1 UNI 0(  0%) 0 1 未定義
    A1-  DF 63 SJIS 63(100%) 63 0  
    63 EUCJ 0(  0%) 63 0 2バイト変換OK
    63 UNI 63(100%) 63 0  
    FD-  FF 3 SJIS 3(100%) 3 0  
    3 EUCJ 0(  0%) 0 3 未定義
    3 UNI 0(  0%) 0 3 未定義

    2バイト文字 JIS X 0208 (8140-EFFC)

    SJIS  数 サーバ 想定する正常件数 正常件数 エラー件数 メモ
    8140-EFFC 8836 SJIS 8836(100%)  8836 0  
    8836 EUCJ 8836(100%) 8836 0  
    8836 UNI 6879( 78%) 6879 1957 実際にある文字が対象となる。検証データ(注)参照

    2バイト文字 JIS X 0208範囲外(F040-FCFC)

    SJIS  数 サーバ 想定する正常件数 正常件数 エラー件数 メモ
    FA40-FC4B 388 SJIS 388(100%) 388 0  
    388 EUCJ 0(  0%) 15 373  
    388 UNI 0(  0%) 2 386  
    上記以外 2056 SJIS 2056(100%) 2056 0  
    2056 EUCJ 0(  0%) 176 1880  
    2056 UNI 0(  0%) 176 1880  


    マッピング検証結果資料/参考資料

    マッピング検証基礎資料(区画別集計一覧)

    マッピングエラー文字一覧(Shift-Jisテキスト)

    ASH multimedia lab 様 http://ash.jp/code/index.htm 文字コード、標準化について


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=38

How InterBase came to be

How InterBase came to be

-InterBaseはどのようにして生まれたか-

by Ann Harrison (翻訳 林 務)

 

InterBaseの草創期について、その生みの親以上に描写することができる者がいるだろうか?幸運なことに、Jim Starkey と Ann Harrison はこの輝かしい日々の記憶を共有しようとしていた。IBMがIT世界のルールであり、Microsoftはちっぽけな会社に過ぎなかった。「真のプログラマはPascalを使わない[i]」といわれていた。

 

Ann HarrisonによるInterBaseの始まりの回想

 

InterBaseはシャワーとともにはじまった。米国マサチューセッツ州グロトンのReedyMeadow通り297番地で、青いタイル貼りのシャワールームだったとはっきり覚えている。そこで、シャワールームの窓越しに森を見ていてた時、Jim StarkeyはInterBaseにつながる「ユリイカ!」[ii]を得たのだ。

 

70年代中期にDECに引き抜かれたJimにとって、それはリレーショナル・データベースのコードを書くチャンスだった。しかし、商用システムにとってはネットワーク・データベースのみがサポートされると広く信じられていた。この誤解を振り払うのに4年間を費やしている間に、JimはDatartrieveをデザインしコードを書いた。それは、フラット・ファイル・データベース[iii]とDMBS-32上で動作するリレーショナル・クエリー言語だった。Datatrieveのユーザーはよりフレキシブルで、同時並行動作の制御に優れ、原子性[iv]のあるトランザクションを兼ね備えたシステムを求めていた。

 

DECが最終的にリレーショナル・テクノロジーを取り入れる決定をした時に、JimはまだDatatrieveに取組んでいたので、別のグループが後にRdbになるシステムをデザインし始めた。彼らは、「リレーショナル」と「データベース」の意味について論じ合った。彼らは、一貫性の度合い、ロッキングの意味、シャドーイングのテクニックに関してすばらしい議論を持ち、文献を調査した。しかし、彼らはコードを一つも書き始めなかった。

 

シャワーとシャドーイング

 

Jimはイライラしてきて、シャドーイングについてコードを書き始めた。それは、彼にとって更新をブロックすることなく反復的読み取りを提供する方法であるように思えた。そして、ある朝シャワーの中で、彼はシャドウがまた、更新の衝突を防ぎ失敗したトランザクションを取り消すことをもまた、可能にすることを理解した。マルチ・ジェネレーション・データベースは、シャワーの中にそれ自身の姿を現したのだ。

 

興味を引き付けられて、Jimはjrdと呼ばれたデータベースの仕事を真剣に開始した。DECの経営陣は二つのリレーショナル・データベース・プロジェクトがあることを発見した。そのうちの一つがjrdであった。データベース戦争が勃発した。

 

それは暗い年月であった。血なまぐさい政治と誹謗中傷メールの嵐だった。Jim、Don DePalma、そして私はもっと良い方法をとる事を決心した。私達は、地方のワークステーション販売会社のアポロ社が自社ブランドのデータベースを欲しがっていることを知った。アポロ社の経営陣はjrdのモデルを評価してくれたので、Jimは(自宅の)2階のスペアルームへ移り、コードを書き始めた。最初の投資は快適なイスとデスクとしても使える持ち上げ式ドアのキャビネット2つ、締めて243.5ドルであった。 

 

私たちが交渉を開始してから8ヵ月後に、アポロ社との契約が交わされ、資金が入ってきた。Donと私は、とてもとても暑い2階のスペアルームでJimに合流した。Jimはコードを書き、Donはマニュアルを書いた、私はその他の全てのことをやっていた。猫がコンピューターの上で寝ていて、猫の抜け毛とフケが全てのマシンに降りかかっていた。アポロ社の清掃要員が毎週やってきては掃除機をかけていった。

 

Dave Rootがアポロ社を辞して4番目の創立者となった。どんな会社でも一人は正気の大人が居ないといけない。私たち4人はスペアルームにあふれてしまったので、この会社はバルコニーへ溢れ出した。

 

私達は顧客と顧客になる可能性のある人々を持つようになったので、ミーティングとメールでのやり取りを開始した。応接室はコピー室兼郵便室となり、リビングルームは会議室となった。私達はキッチンで食事を作り、ダイニングルームで食べた。珈琲ポットはバスルームの私のシンクの脇に置かれた[v]。私達はもはや家で働いているのではなく、仕事のうちに生活していた。

 

その年、ドライブウエイは木々に沿って曲がりくねり、凍っていて、サーブにとってはソリで走っているようなものだった。1月には、アポロ社以外のはじめての顧客がカリフォルニア州サンタバーバラからやってきて、前庭に滑り込んで、なんとかまっすぐに立っていた。とにかく、彼は契約を交わしてくれた。

 

グロトン・データベース・システムは家を追い出されたので、クリーニング屋の上のオフィスへ移転した。私はようやくバスルームから出ることができた。

 

「グロトン・データベース・システム」というのは、霊感を受けた名前だ、それは商標検索に引っ掛からない名前を探すことに私たちが失敗したことに端を発していた。私達はナイーブな新興企業家だったので、いつも名前のことを考えていた。私達は弁護士に「これでいい?」とたずねたものだが、後になって知ったところでは、そういう場合は「この名前を使って問題が起きたら弁護してくれる?」と尋ねるのが正解らしい。それほどに洗練された知識の下に、私達はシステムの名前をInterBaseへと変更した。それは、電話で「Rrrotten Database Systems」と応えた人がいたのでますますそうしようということになった。

 

コンセプト:簡単なこと

私達は何をしようとしていたのか?何かの邪魔になったりしないリレーショナルデータベースを作ること。一つには、インストールが簡単であること、管理が不要か殆ど必要ないこと、出来ればアプリケーションの内部で動作すること。

 

私達は皆、ネットワーク・データベースの経験を有していた。IDMS、Seed、DMBS-32。ネットワーク・データベースを使うためには、チューニングを心から愛さなくてはならないし、微調整をし、勉強をし、データベースを文字通り愛玩しなくてはならない。InterBaseは、真の仕事に取り掛かりたいと思っている私たちを休ませてくれるのだ。

 

履歴型アーキテクチャ-Jimのシャドーイングから得たユリイカ-は、他のデータベースが足をすくわれている問題を解消した。他の誰かが同じデータを更新している間に、大量の一貫性のある報告書を作成しようとするための読み取りが可能である。トランザクションのロールバックは単純だ、クラッシュからの復旧ですら自動的にできる。

 

クラッシュからの復旧は必須の要素だ。なぜなら、私達は会計・販売・コード管理・その他全てのことを、つまり会社をInterBaseによって運営しているからだ。電気的な故障は日常的に起こりうる、電気の使いすぎにしろ、夏の雷雨にしろ、電源コードを足に引っ掛けてマシンの電源が抜けてしまうというアクシデントだって起こりうる。データベースの復旧は私たちにとっても、どの顧客にとっても重要なことだった。

 

InterBaseは大変良い製品で、顧客の殆ども大変喜んでくれていた。私たちの会社は成長して、社員は7人となり、今ではドーナツ屋になっているかつてのクリーニング屋の上の2つの続き部屋へと拡張された。私たちのところにやってくる保険屋さんはドーナツ屋を毛嫌いしていたが、クリーニング屋の臭いに比べればまだましだった。

 

独自の魅力

ある場所には、それ自体に独自の魅力というものがある。あちこちで、床が気になるほど沈んでしまっていたり、誰かがそこに乗ると軋んだりすることがある。四角い角が一つも無いとか。私達は大変多くのコンピューターを所有していたので、そしてもちろん最近のものよりも古いコンピューターほどより大きくて発熱するものだから、私達は一年中エアコンをつけっぱなしにしていた。春と秋にはエアコンが凍り付いてしまうので、私達はヘアドライヤーをいくつか持ち出して氷を溶かして、なんとかまた涼を取れるような感じだった。

 

冬に入って数ヶ月経った後に、ガス会社がおよそ350ドルの請求書を送りつけてきた。私達はガスよりもよほどコンピューターによって暖を取っていたので、それまで私たちへの請求額は1ドルから2ドルのあいだだった。マス・ガス社は、私たちがガスを盗んでいると確信していた。彼らは、メーターを2回も交換したのに、まだ信じられないほど低い値をメーターから読み取るばかりだった。結局、検針員が私たちのオフィスへやってきて、コンピューターが大変な熱を発しているのを見て、納得して帰っていった。

 

顧客がたいていは大会社だったので、私たちのような大変小さな会社を扱うのになれていなかったため、私達は購買部門と未払金に関してやりあわねばならなかった。いくつかの会社では、「サポート更新」とラベルした品物[vi]の請求書を箱で送り付けなくては支払してもらえなかった。私には、これらの会社がどうやって電話料金の請求書のルールを曲げているのか想像もつかない。

 

私たちの顧客の一つに米国陸軍フード・サービスの目立たない係があった。彼らのプログラマーがトレーニングコースを希望していた。私達は地方のホテルの会議室を借上げ、見栄えの良いような格好をしていた。二人の男性が到着して、受講料をトラベラーズチェックで支払った、しかも外国人旅行者のトラベラーズチェックでだ。彼らは、自身の役割について何も語らなかったし、軍隊の物資供給を満たすための彼らの役割についてさえ話そうとしなかった。ほとんどなにも。

 

製品を見栄え良く見せかけることは、私たちがもっとも苦手とするところだった。Donは最終的にJimを説得して、私たちのユーティリティソフトウエアを「成功のためにドレスアップする」ことにした。ダッドリー(DDL用ユーティリティ)、バープ(バックアップ・レストア・ユーティリティ)、アリス(その他用途のユーティリティ)という名前がそれぞれに付けられた。訪問客が予想される時、私達は努力を払ったが、それは特に深くというわけではなかった。銀行員が、私が何とかしようとしていた備品向けローンの件で訪問してきた。銀行員は目端が利いたので、わが社にある全てのコンピューターを指摘して言った、一つとして2年以上経っているものはなかったが、「全てが時代遅れである」と。もちろん、他にも銀行はいくらでもあった。[vii]

 

サポートの重要性

サポートは私たちの仕事の上でもっとも大事な部分であった。企業がデータベースを買う時に、それはソフトウエアのコスト以上の投資をすることであるといえる。口コミは私たちの最大の広告であって、私達は顧客の成功のために働いていた。殆どの疑問は電話で解決することが出来た。

 

カリフォルニアの航空宇宙産業の大きな企業が問題を抱えた時、私達はその問題をリモートで診断することが出来なかった。レコードがデータベースから消えてしまう、ランダムに、そしてそれがしょっちゅう起こるのだ。顧客のエンジニアは彼のプログラムのせいではないと確信していた。彼は、そのことに人生をかけても良いと言った。Jimはソース・キットとともに顧客の下へ飛んで、デバッグ用システムを構築し、DELETE文から戻ってくる問題を追跡した。この企業は重要な顧客となったが、にもかかわらず購買部門の意見では我々はちっぽけで当てにならないのだそうだ。

 

現在でもある企業が、InterBaseの立ち上げ時のようにする事が出来るだろうか?恐らく出来ないだろう。リレーショナル・データベースを「ビルド」する会社などとんでもない。要求されることはどんどん増えてきているにも関わらず、価格は逆に下落していった。私達は1986年には、少々のコマンドラインツールをつけてデータベースを数千ドルで販売することが出来た。現在では、顧客はデザインツール、分析ツール、RADツール、管理ツール-それら全てが優れたGUIを兼ね備えているような-のパッケージを期待している。しかも、それらを100ドル以下で手に入れようと考えているのだ。

 

InterBaseはそれ自身の収益で5年間成長を続けて、投資家と出会う前の私たちにいくつかのビジネス上の経験をもたらしてくれた。市場が十分に大きい場合ですら、事業を成立させるために十分な顧客の注目を得ることは、大きな資金を必要とする。投資家-又は大きな信託基金-の援助無しに事業を開始することは、今日では絶対に不可能だ。その場合にも、金融資産を持つ企業は自力の[viii]企業よりましである。

 

Sybaseはグロトン・データベース・システムの時代に、幾百万のベンチャー・キャピタルのうち十幾つかに見出された。Sybaseはより多くの圧力を受け、より多くのソフトウェアを売った。しかし、私達はたくさんのファンを得ていた。ラッキーだったなと、私は思っている。

 

 

 


[i] 原題は「Real Programmers Don’t Use PASCAL」です。http://24.161.189.7/notes/pascal/e.html に原文、http://24.161.189.7/notes/pascal/j.htmlに日本語訳があります。

[ii] なんでシャワーなのかというと、アルキメデスが浮力の原理を発見した時に「ユリイカ!」(我発見せり)と叫んで風呂から裸で飛び出していったと言う有名な話に引っ掛けたのでしょう。

[iii] フラットファイル・データベース:1テーブル1ファイル構成のDB。今でも利用されています。

[iv]全てが完全に実行されるか、処理が中断された場合、元の状態に戻るという意味です。

[v] 後でも同様の記述がありますが、どうやらAnn氏はバスルームで仕事をしていたようです。でも、一体どうやって?(^^;

[vi] 原文は materials labelled “support renewal.”何かのモノにラベルを貼って送ったのでしょう。

[vii] この銀行は融資をしてくれなかったようですが、他の銀行から借りられたんでしょうかね?

[viii] 原文ではbootstrap companiesとあり、自己・縁故による資金調達を意味します。


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=34

その他

その他

  • Win32版はオープンソースの「MinGW」コンパイラでコンパイルされます
  • 新しいautoconfベースのビルド・コンフィギュレーション
  • Linux版ISQLへのコマンドライン・ヒストリの追加
  • ソースコードはエラーに対して例外を使用しています
  • IPX/SPXプロトコルは今後サポートされません
  • 古くなって推奨されないプラットフォームは今後サポートされません
    (Appolo, Cray, NeXT, Netware, MS DOS, Win3.1, WFW…)

 

 

Part of Sean Leyne’s presentation (.pdf) to the Toronto Delphi Users Group
that focuses on Firebird V1.5.

http://www.ibphoenix.com/downloads/Firebird15update.pdf

翻訳:株式会社アペックス 林務さん


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=30

バグフィックス

バグフィックス

  • LEFT JOINが間違った結果を返す
  • 3つのバッファー・オーバーラン
  • 自動/バックグラウンドのデータベース・スイープがハングアップする
  • メタデータのセキュリティホール
  • 数え切れないその他の不具合

 

 

Part of Sean Leyne’s presentation (.pdf) to the Toronto Delphi Users Group
that focuses on Firebird V1.5.

http://www.ibphoenix.com/downloads/Firebird15update.pdf

翻訳:株式会社アペックス 林務さん


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=29

機能強化

機能強化

  • オプティマイザの強化
    • OR条件の内側でのAND条件の取り扱いが向上
    • OR条件でのインデックス利用のサポートが向上。全てのAND条件に対して、最適な複合インデックスを選択します
    • 集合関数を使用したSELECTでサブクエリーに使用できるインデックスを発見することをサポート
    • ストアドプロシージャーに対するSELECT文のサブクエリーでもインデックスを使用します
  • スーパーサーバーのスレッド・スケジューラーの共有機能が向上
  • 新しいシステムインデックスによって、ステートメントのコンパイル・パフォーマンスが向上しました
  • メタデータのコンパイルが留保されます
    しばしば引き起こされる、衆知の「object in use」エラーを解決します
  • テーブルあたり64個までのインデックス制限はなくなりました
    今後は、データベースのページサイズによって制限されます

 

 

Part of Sean Leyne’s presentation (.pdf) to the Toronto Delphi Users Group
that focuses on Firebird V1.5.

http://www.ibphoenix.com/downloads/Firebird15update.pdf

翻訳:株式会社アペックス 林務さん


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=28

トリガーとストアドの新機能

トリガーとストアドの新機能

  • セーブポイント
    • SAVEPOINT save_pointname;
    • ROLLBACK [WORK] TO [SAVEPOINT] save_pointname;
  • 「CREATE OR ALTER」構文
  • ユニバーサル・トリガー ~ 複数動作の一括指定
    • CREATE TRIGGER my_tirigger FOR my_table BEFORE INSERT OR UPDATE…
  • 変数宣言の強化 ~ デフォルト値の設定
    • DECLARE [VARIABLE] name
       [{‘=‘ | DEFAULT} value];
  • 例外は意味が再定義されました(例:Throw)
  • 空の「BEGIN … END」ブロックをサポート
  • 新しいシステム変数:
    • ROWS_AFFECTED → ROW_COUNTに変更
    • TRANSACTION_ID → CURRENT_TRANSACTIONに変更
    • CONNECTION_ID → CURRENT_CONNECTIONに変更
    • SQLCODE
    • GDSCODE

 

 

Part of Sean Leyne’s presentation (.pdf) to the Toronto Delphi Users Group
that focuses on Firebird V1.5.

http://www.ibphoenix.com/downloads/Firebird15update.pdf

翻訳:株式会社アペックス 林務さん


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=27