会場の様子

当時の写真

当時の写真

当時の写真

当時の写真

当時の写真

当時の写真

当時の写真

当時の写真

当時の写真

当時の写真

当時の写真

当時の写真

当時の写真

当時の写真

当時の写真


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

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

Apache/PHP/FirebirdによるWebサーバ簡単構築方法

井上@電機大さんが
「Apache/PHP/FirebirdによるWebサーバ簡単構築方法」を公開しています。
とりあえずは動くという明確な基準で、
簡単に構築する方法を説明しています。


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

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

UDF

FirebirdSQL – UDF

UDF(User-defined functions:ユーザー定義関数)はFirebirdの特徴的な機能です。
その名の通りユーザーが独自の関数を定義できます。
Firebirdのユーザー定義関数はSQL言語で作成するのではなく、Delphiなどのプログラミング言語で作成します。
このページではFirebirdに標準添付されているユーザー定義関数について解説します。
文字列操作関数はマルチバイトに対する考慮に欠けているものもあるため、日本語データを扱う際には注意してください。


※UDFリファレンスは山田健一さんによって作成されました。


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

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

Linuxでのcronバックアップの例

■ Linux上でcronによる
  Firebirdのデータベースの世代バックアップ

※この記事は保坂さんの公開MLでの投稿を元に作成されました。

主にLinux上でFirebirdを運用する場合、バックアップファイルはサーバ間で持ち合う用にしています。方法としては、リモートのTargetサーバを指定し、このスクリプトを走らせるローカルのgbakでバックアップファイルを作成します。
下記は世代バックアップを行うシェルスクリプトの例です。

● 使い方

日単位で実行するようcronに登録すると、ローカルの $BAK_DIR に $BACKUP_DAYS に指定した世代(日付)分のバックアップを作成・保存します。
※echoをloggerコマンドに変更すると /var/log/messages に実行ログを記録出来るので更に良いかもしれません。


#!/bin/sh 

#TARGET HOST. IP Addrss or localhost.
HOST="localhost"

#DIRECTORY OF BACKUP FILES.
BAK_DIR="/home/backup"

#TARGET DB FILE.
FDB_FILE="/firebird/firebird.fdb"

#BACKUP DB FILE NAME.
FBK_FILE="firebird.fbk"

#GBAK PATH.
GBAK="/opt/firebird/bin/gbak"

#SYSDBA USER.
ISC_USER="SYSDBA"

#SYSDBA PASSWORD.
ISC_PASSWD="masterkey"

#BACKUP FILE WRAPPING DAYS.
BACKUP_DAYS=3

#DATE
DATE_PATH=`which date`

#TODAY
TODAY=`$DATE_PATH -I`

#ROTATE DAY.
ROTATE_DAY=`$DATE_PATH -I -d ${BACKUP_DAYS}days+ago`

#BACKUP FILE NAME OF TODAY.
FBK_FILE_TODAY="${FBK_FILE}.[${HOST}].${TODAY}"

#ROTATE FILE NAME.
ROTATE_FILE="${FBK_FILE}.[${HOST}].${ROTATE_DAY}"

#COMMAND
COMMAND="$GBAK -B -user $ISC_USER -pass $ISC_PASSWD ${HOST}:$FDB_FILE ${BAK_DIR}/${FBK_FILE_TODAY}"

#SWEEP SPAN.
SWEEP_SPAN=`expr 30 - ${BACKUP_DAYS}`




if [ ! -d $BAK_DIR ]
then
    echo "INFO: mkdir ${BAK_DIR}."
    mkdir $BAK_DIR
fi

if [ ! -f ${BAK_DIR}/$FBK_FILE_TODAY ]
then
    echo "INFO: Starting gbak. -> $COMMAND."
    $COMMAND
    STATUS=$?
else
    echo "INFO: Backup is not excuted. Backup file -> ${BAK_DIR}/${FBK_FILE_TODAY} allready exists."
    exit 1
fi

if [ $STATUS -eq 0 ]
then
    echo "INFO: Backup is completed."
    if [ -f ${BAK_DIR}/${ROTATE_FILE} ]
    then
        echo "INFO: Removing old backup file. -> ${BAK_DIR}/${ROTATE_FILE}"
        rm -rf ${BAK_DIR}/${ROTATE_FILE}
    fi
else
    echo "ERROR: Backup is failed. please check -> $COMMAND."
    if [ -f ${BAK_DIR}/${FBK_FILE_TODAY} ]
    then
        echo "INFO: Removing failed backup file. -> ${BAK_DIR}/${FBK_FILE_TODAY}"
        rm -rf ${BAK_DIR}/$FBK_FILE_TODAY
    fi
fi

#SWEEP FUNCTION.
sweepFile () {

        CHECK_COUNTER=0

        while [ ${CHECK_COUNTER} -lt ${SWEEP_SPAN} ]
        do
                CURRENT_AMOUNT=`ls -l ${BAK_DIR}/${FBK_FILE}.[${HOST}].* | wc -l`
                VALUE=`expr ${BACKUP_DAYS} + ${CHECK_COUNTER}`
                SWEEP_DAY=`$DATE_PATH -I -d ${VALUE}days+ago`
                SWEEP_FILE="${FBK_FILE}.[${HOST}].${SWEEP_DAY}"
                if [ ${CURRENT_AMOUNT} -gt ${BACKUP_DAYS} ]
                then
                        echo "INFO: Checking old backup file. -> ${BAK_DIR}/${SWEEP_FILE}"
                        if [ -f ${BAK_DIR}/${SWEEP_FILE} ]
                        then
                echo "INFO: Old backup file is finded."
                                echo "INFO: Sweeping old backup file. -> ${BAK_DIR}/${SWEEP_FILE}"
                                rm -rf ${BAK_DIR}/${SWEEP_FILE}
                                SWEEP_STATUS=$?
                                if [ $SWEEP_STATUS -eq 0 ]
                                then
                                        echo "INFO: Sweep is completed."
                                else
                                        echo "ERROR: Sweep is failed. Pleas check ->  rm -rf ${BAK_DIR}/${SWEEP_FILE}."
                                        exit 1
                                fi
                        fi
                fi

                CHECK_COUNTER=`expr ${CHECK_COUNTER} + 1`
        done

}

#AMOUNT OF BACKUP FILE.
AMOUNT=`ls -l ${BAK_DIR}/${FBK_FILE}.[${HOST}].* | wc -l`

#CHECK OLD FILES THAT OVER $BACKUP_DAYS AGO.
if [ $AMOUNT -gt ${BACKUP_DAYS} ]
then
    echo "ERROR: The amount of backup files offensehe occured. Sweep is started."
    sweepFile
fi


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

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

RedhatLinux7.3 への Firebird1.5.1 インストール

RedhatLinux7.3 への Firebird1.5.1 インストール

大分古くなってきましたが、安定稼動するOSということでRedhatLinux7.3を利用している方もいらっしゃると思います。しかし、Firebirdの1.5/1.5.1はRedhat8以降でないとインストールすることができません。

そこで、RedhatLinux7.3になるべく既存の環境を変更せず、Firebird1.5.1をインストールする方法を以下に示します。

gcc-3.3.3.tar.bz2をダウンロードする

gccホーム
http://gcc.gnu.org/

dtiのミラーサイトからのダウンロードパス
ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-3.3.3/gcc-3.3.3.tar.gz

#tar jxvf gcc-3.3.3.tar.bz2

#cd gcc-3.3.3


#./configure –prefix=/usr/local/gcc-3.3.3 –enable-languages=c,c++


–enable-shared –enable-threads –disable-libgcj


#make


#make install


#PATH=/usr/local/gcc-3.3.3/bin:$PATH


#ln -s /usr/local/gcc-3.3.3/lib/libstdc++.so.5 /usr/lib/


#ln -s /usr/local/gcc-3.3.3/lib/libgcc_s.so.1 /usr/lib/


#gcc -v


/usr/local/gcc-3.3.3/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/specs から spec


を読み込み中


コンフィグオプション: ./configure –prefix=/usr/local/gcc-3.3.3


–enable-languages=c,c++ –enable-shared —


enable-threads –disable-libgcj


スレッドモデル: posix


gcc バージョン 3.3.3


・この状態で、FirebirdSS-1.5.1.4481-0.i686.tar.gz からインストールします。


#tar xvzf FirebirdSS-1.5.1.4481-0.i686.tar.gz


#cd FirebirdSS-1.5.1.4481-0.i686


#./install.sh


これで、パスワードを設定するとfirebirdが起動します。


次回起動時に自動起動するようにしておきます。


#chkconfig –add firebird

残念ながらNPTL版は動作しません。依存関係のあるライブラリが多数に上るので、
検証は断念しました。

また、gcc-3.3.3をインストールしてFirebirdをソースからビルドも試みました
が、やはりそのままでは難しいようです。


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

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

1.5.1 Windows版のビルド方法

日本語版のインストーラの作業を進めるため、Firebird 1.5.1のWindows版の
ビルドを行ってみました。
1.5.1のCVSのタグはR1_5_1となっています。

以下、ビルドの手順です。

Firebird 1.5.1のビルドの方法
====================
1)Visual C++ 6.0 / 7.0のインストール
2)sed, bisonなどのツールのインストール
3)ソースコードのダウンロード
  c>cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/firebird login
    パスワードなし
  c>cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/firebird -r R1_5_1 co firebird2
4) isc_userおよびisc_passwordの環境設定を行う
5)firebird2/builds/win32に移動
6)firebirdをインストール(ビルドにfirebirdが必要)
6) prepare.bat c:\program files\firebird\firebird_1_5
7) make_boot.bat
8) make_all.bat

これでoutputディレクトリにビルドができあがります。
サンプルも作成したい人は

9)make_example.bat
を実行してください。
このときfbclient.dllにパスが通っていないとエラーとなりますので
注意してください。

注意しなければならないのはFirebirdのビルドにはFirebirdが必要です。
これはメッセージファイルの構築、gpreを利用するためです。
インストールしたFirebirdのbinディレクトリにPATHを通しておくことと、
ISC_USER,ISC_PASSWORDの環境変数を忘れずに設定してください。

VC6を利用している人はfirebird2buildswin32msvc6readme_MSVC6.txtに
書いてあるとおり、以下のサイトを参照してstrftime.cを修正する必要があります。

Fixes for Library Bugs in VC++ V5.0/V6.0
http://www.dinkumware.com/vc_fixes.html

HEADのタグを付けると2.0のソースコードを入手することが出来ます。
ただし、私の環境ではビルドが失敗しています。

Vulcanのビルドについてもfirebird-develにAnnさんがポストしています。
64ビットマシンを持っている方は挑戦してみてはどうでしょうか。

※この記事は加藤大受さんから提供していただきました。

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

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

Interview with Ivan Prenosil on InterBase World

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

 本インタビューは、InterBase World のWebサイトでMarina Novikova氏によって公開されたものを、Marina氏とIvan氏の許可によって翻訳したものです。
 Ivan Prenosil氏は、2000年からInterBase/Firebirdに関するWebサイトを立ち上げられて、コミュニティの活動を牽引されています。このサイトは、木村明治氏によって日本語化されて公開されていますので、ご存じ方もいらっしゃるかと思います(http://www.geocities.jp/kimura804/rdb/)。
 Marina Novikova氏はロシアの企業で英文翻訳とテクニカル・ライターをするかたわら、InterBase Worldの管理者をなさっています。Marina氏はInterBase Worldで、毎週のようにインタビューやレビューを更新されているのですが、このインタビューは、技術的なことやビジネスに関することだけでなく、各ゲ ストの人となりがよく現れていて、私はいつも楽しみにしています。


「Ivanは、長年にわたってInterBaseの開発に携わってきた人物で、彼の意見はいつもよく考えられているものだ」(www.ibphoenix.com)。
彼のサイト http://www.volny.cz/iprenosil/interbase/ には、素人であろうと玄人であろうと役に立つ技術情報が満載です。しかし、彼がオルガンを弾いたり、Delphiを訪れることを夢見ているとは誰が知っていたでしょうか?


Marina Novikova: ご自身のことについてお聞きします。趣味は何でしょうか、音楽はどのようなものをお聞きになりますか、また、好きな本(作家)や映画はどのようなものですか?

Ivan Prenosil: いまのところ、私の趣味は写真を撮ることです(私の写真を送れないのはどうしてかというと、いつも私はカメラの背後にいるからなのです)。また、音楽はとても好きです。よく聞いているのはクラシック(Rackmaninov、Saint-Saens、Madelssohn、Copland、Chopin、…)ですが、正反対にGenesis、Santana、Pink Floydやジャズ(Petrucciani、Corea)もよく聞きます、昨年はここプラハで日本の「太鼓ショー」があったんですよ。
それから、私はピアノとオルガンを弾いていました(何度かバロック時代の古楽器に触れる興味深い機会もありました)、ここ数年はやっていないのですが、というのも私が仕事から帰ってくると隣家の人々がもう寝ている時間になっているからなのです。その自分の唯一の名残は、私がPCのキーボード上で全ての指を使っているということだけかもしれません。
映画は、あまり見に行きません、なぜかというと私の好きな映画はちょっぴり時代遅れのモノだからなのです。2001年宇宙の旅、Chicken Run、 La vita e bella、 Laurel and Hardy、その他歴史物で…いい映画がいくつかあります、like Kundun、 Zorba the Greek、Himalaya-Caravanはサウンドトラックも素晴らしかった。
本については、読むのがとても遅いので、また時間も全然無いので、実際に読んできたものと、私が読みたいものには大きなギャップがあるのです。例えば、SF(Clarke)を読みましたし、最近はよりドキュメンタリーな本(歴史や哲学に関するものなど)をよく読んでいます。しかし、一日中コンピュータ・スクリーンやマニュアルの上で過ごすようになってからは、別の活動をしたくなるようになっています。
その他の趣味では、天文学ですね。不幸なことに、ここ数年間の天候は私にとっては逆風でした。長い間メジャーな彗星雨をちっとも見ることが出来なくて、1999年の皆既日食の時も曇っていたことは言わずも知れたことです。(私はスポーツマンではないのですが、スキーは好きです(ダウンヒルもクロカンもね))

Marina Novikova: ビールは飲まれますか?もしそうなら、どんなものがお好きですか?

Ivan Prenosil: いや、飲みません。

Marina Novikova: いままでにもらった中で、もっともおかしな(あるいは奇妙な)プレゼントは何でしょうか?

Ivan Prenosil: へんてこなプレゼントというのは全く無かったですね…
子供が生まれる前に、私の妻が息子を欲しがっていて、自然と私たちはそうなるものと思っていたのですが、実際には娘が生まれて(マーフィーの法則ですね)、つまりアダムが生まれた時 、いい意味で驚かされることになりました。

Marina Novikova: 人生の中でもっともエキサイティングな日を覚えていらっしゃいますか、あるいは、人生の中で最も素晴らしい瞬間など。

Ivan Prenosil: うーん、何も思いつかないなぁ。たぶん、プラハの古い街並みに住んでいるので、築後400年くらい経っているんです、ミステリアスなロフトがあって、地下墓地のような貯蔵庫があって、日時計もあり、3階にある私の部屋の窓から直接手を伸ばして梨をもぎ取ることもできるんですが、考古学者が最近になって発見したところによると、その梨の木というのは実はかつての墓場の上に生えているとか(学者さんたちは沢山の人骨を発掘していました)、プラハ城まで歩いて10分くらいなんですが、プラハ城にはゴシック様式のカテドラルやロマネスク様式のバシリカ聖堂があって、また15分くらい歩くと天文台(いくつかの望遠鏡とコロナグラフがある)があるんです。

Marina Novikova: どんなことがお嫌いですか?

Ivan Prenosil: 書類を埋めることと、列に並ぶこと。

Marina Novikova: 周囲の人々のどんな行動があなたをイライラさせますか?

Ivan Prenosil: 傲慢さと不寛容ですね。

Marina Novikova: いま自由になる時間あるとしたら、どうお使いになりますか?

Ivan Prenosil: 自由にならない時間に終わらせないとならないことを、そのまたおまけに終わらせるために使わないとならないでしょうね。

Marina Novikova: 何か大きな夢というのはおありですか?

Ivan Prenosil: Martian と握手をしたいですね。

Marina Novikova: いままでにどこか他国へ行かれたことはありますか?どこが一番気に入りましたか?

Ivan Prenosil: そのリストはとても長くなってしまいますね、もっともヨーロッパの近隣に限られていますが。オーストリア、英国、フランス、ドイツ、ギリシャ、イタリア、ノルウェイ、ポーランド、スペイン、スイス、ユーゴスラヴィア/クロアチア、スロヴェキア、ハンガリー、ブルガリア。
どの国も、それぞれに興味深いところがありますね。私は好きで、しょっちゅうギリシャへ行っています(クレテのKnossosパレス、テラのvolcano島、Corinth運河、アテネ、オリンピア、Samos)。でも、まだDelphi神殿に行ったことが無いんですよ。(^^;

Marina Novikova: 突然宝くじに当たったら、何を買いますか?

Ivan Prenosil: さっきのリストに載っていないいくつかの国々を訪れたいですね(アイスランド、チリ、ニュージーランド、東南アジア)

Marina Novikova: 学歴をお聞きしてもよろしいですか、また、ハイテク領域で働こうとお決めになったのはどうしてですか?

Ivan Prenosil: プラハのチェコ工科大学で、電気工学を学んで、国家試験に受かって、「Ing」の資格を授与されました(なんと訳したら良いかちょっとわかりません)。プログラミングと電気工学はいつも私の趣味でもありました(思うに13歳の頃から)、ですので道を決めることはたやすいことでした。

Marina Novikova: いつからWebサイトを始められたのでしょうか?

Ivan Prenosil: 1997年からInterBaseのメーリングリストのいくつかに参加するようになったので、私のメーラーのSentフォルダはどんどん大きくなりました。私はそれらの情報がより有益な貢献に役立つのではないかと考えたので、比較的不安定なニュースグループではない別のどこかで公開しようと思いました。そうしたら、Claudio Valderrama がちょっとだけ背中を押してくれたというわけです、2000年の中頃でしたね。

Marina Novikova: あなたのWebサイトは、多くの有益なアーティクルを持っていますし、人々はあなたをInterBaseのただ者ではないスペシャリストだと知っています。InterBaseに関する書籍を書こうと思ったことはありませんか。

Ivan Prenosil: もちろんです、十分アイデアと素材を持っていると思っています。しかし、それを書籍に「構築」するためには、何ヶ月もの労働をしなくてはなりませんし、最初に出版社を見つけて、あるいはスポンサーか、宝くじを当てないと…

Marina Novikova: どうして、InterBaseを使うようになったのでしょうか?また、他のデータベース・サーバもお使いになっていますか。

Ivan Prenosil: 1990年に、鉄のカーテンが落とされたすぐ後のことです、休暇にノルウェイへ行ったのですが、そこでSQLに関する書籍を買いました、それは素晴らしいアイデアであることがわかりました、私の一ヶ月の収入の半分に近いコストがかかると言うことを除いてね。
5年後になって、データベースシステムを選定しなくてはならなくなって、InterBaseはベスト・チョイスだったのです(少なくとも私にはね。会社の中にはAccessにこだわっている人間が一人いましたよ)。我々はデータベースにスケーラビリティを求めていました(この点でSybaseは除外されました)、WindowsとUnix系のシステムの両方で稼働することも条件でした(この点でMS-SQLとInfomixが除外されました)、そして導入コストが低いことが必要でした(この点でOracleが除外されました)、信頼性も当然必要です(この点でおもちゃ系のAccessやdBaseが除外されました)、イベントが使えて、blobをうまく使うことが出来、自国語をサポートし、オンライン・バックアップが可能で、並行トランザクションが出来る、…InterBaseの他になにか思い浮かべることが可能ですか?InterBaseの開発者(特にJim Starkey)とメーリングリスト上で直接話すことが出来るというユニークな可能性も説得力を持ちました。そして、こうした合理的な理由以外にも、私は「エレガントな発明」が好きなので、つまり、航空機やカテドラル、マルチ・ジェネレーション・アーキテクチャ、宇宙(の構造)、物質、自然等…
私は他のリレーショナル・データベースは使いません(過去にはOracleやInfomix、dBaseも触りましたけどね)

Marina Novikova: チェコ共和国でのInterBase/Firebirdの人気について、何かお話し頂けませんか。こうしたものを証明するような投票結果などありませんか。

Ivan Prenosil: チェコでは多くの人々がInterBase/Firebirdを使っていると確信できます、しかし確たる証拠を持っているかというと、持ってないですね。

Marina Novikova: ポスト-リレーショナル・データベースやオブジェクト・RDBMSに対して、どのようにお考えですか、例えばCacheについて?これらは、すぐにも市場のRDBMSを置き換えてしまうでしょうか?

Ivan Prenosil: 最初に言っておくと、私のRDBMSに関する主な関心はフル・テキスト・データベースにあります。(まだ)私はオブジェクト指向DBMSの必要性を感じたことはありません。(しかしすぐに変わるかも知れません、いま新しい仕事を探しているのでね)もちろん、データベース・テクノロジの新しいトレンドに関しては学ぼうとしていますが、そういったものに対する選択権を社内で持っていないのです。ポスト-リレーショナルDBMSについての一般的な書物(少なくとも私が読んだもの)は、一般的なことしか書いてありません、特定の製品に関するものは自画自賛に満ちています。テストも無しに、そのように実装されたフィーチャーが実際に利用価値があるかどうかを識別することは困難ですし、どれもがそれぞれの新製品の「委任統治」になってしまっていますし(この頃ではそういったもの無しには市場性を見いだせませんからね)、いずれにせよそういったフィーチャーが必要かどうかはお構いなしなんです(オブジェクト指向、Java、XML、ハイパーなんとか…)。Cacheもインストールしてみましたが、いろいろと試したり学んだりする時間がまだ無いのが現状です。
そういったものがすぐにもRDBMSを市場で置き換えるでしょうか?Noだと思います。
それらがすぐにもRDBMSの深刻な競合製品となるでしょうか?Noでしょう。それらの製品の性能がアドバンテージを本当に得るためには、新しいスタンダードが必要となるでしょう、新しい接続ドライバ/ライブラリ/コンポーネント、その他。しかし、何事もいかに乱暴に/攻撃的にどうするのかということに、その市場性というのは関わっているのでしょう。あるいは恐らく、そういったものがオープンソースとしての価値を現す時にかかっているのだと思います。
しかし私はよい研究者ではないので、例えば、60年代から70年代の高級言語での開発を見ると、Pascal、Simula、Ada…、クラス/オブジェクトのような素晴らしいフィーチャーを持っていて、構造化された例外ハンドリングがあり、強力な型チェックがありました。いったい誰が何年にもわたって支配的な言語が C になることを期待したでしょうか(私は絶対ちがいます)!?

Marina Novikova: あなたのWebサイトのほとんど全てのアーティクルはサーバサイドに関するものです。そこから察するにあなたの開発経験はほとんどがデータベース上のもので、クライアント・ソフトウェアを書くことは少ないのでしょうか。その場合、もしあなたがクライアント・アプリケーションを書くとすると、どういったオペレーティングシステム上で、どういった開発環境を利用されていますか、また、それはどのような理由からでしょうか?

Ivan Prenosil: 私はデータベースとアプリケーションの両方を開発しています(とはいえ最近はほとんどデータベース上の開発に時間を費やしています)。サーバサイドに関する記事は、そちらの方がより多くの人々にとって有益だと強く考えているからです。もしクライアント・サイドに関して何かを書くとしたら、ほとんどの場合、特定のアクセス・メソッドやライブラリに制限される事になるでしょう。
現状では、私はWindows上の開発を行っています、単にそれを顧客が使っているためですが(しかしこれまでにOpenVMS、Sinix、Linuxでも開発を行ってきました…)。
最初に学んだコンピュータ言語はAlgolでした(それはまだ私がコンピューターというものを目にする前のことです)。二番目の言語は(TIとHPのプログラム電卓を除いてね)Pascalでした(それをICLコンピュータ上で遊びました。コンパイラを書いたのはWirth自身で、いくつかのバグを修正するパッチを書いたことを覚えています)。とはいえ最近では私はC言語を学び、使用しています(そのほかにもいくつかあったけど、もう忘れてしまいました、いまでは誰も使っていないようなものです、Fortran、Prolog、Simula67なんかですね)、一度でも高級言語を使用したことがあるならおわかりでしょうが、C言語のような低級言語を使いたいとは思わないでしょう(私はこれを「高級アセンブラ」と呼んでいます)、特に理由がない限りはね。ということで、質問の答えになりますが、私の好んでいる開発言語はPascal/Delphiなんです。
その上、ObjectPascalが欠点(例えば移植性の無さ)を持っているとしても、オルタナティブはありませんね、広く使われている(コンパイラ)言語を挙げると、C++位になりますが、私が思うにC++はCから悪いところを沢山引き継ぎすぎているように思います。(しかしC++Builderを使うことはあったかも知れません、BorlandがそいつをDelphiより前に作っていたとしたらですが)そういった意味では、ふさわしい開発言語を選択するという問題を解決するために、自分たちで言語を開発して使っている会社もありますね。

Marina Novikova: InterBaseとFirebirdが離れていく傾向にあることをどうお考えですか?両者は全く違ったデータベース・サーバになっていくと思われます。これはプラスですかマイナスですか?

Ivan Prenosil: それは傾向ではないですね、両者はすでに全く違ったデータベースになっています。ここ何年間か、私はいろんなニュースグループに流れる不満を読んできました「上司(あるいは顧客)が、最愛のInterBaseの代わりにOracle(とかMSSQL)を使えと言うんです!」とね。いまでは、それどころかこんなメッセージが流れています、たとえば「上司がFirebirdの代わりにInterBaseを使えというんです!」「上司がInterBaseの代わりにFirebirdを使えと言うんです!」などですね。
こうした分離の不利益があるとすれば、遅かれ早かれほとんどのデベロッパはどちらかを選ぶことになって、多くのアプリケーションがFirebird-OnlyやInterBase-Only(あるいはYafill-Only)になってしまうことでしょう。逆に言えば、選択することはいいことだとも言えます。両者の分離は、同じルーツを持つオープンソース製品とクローズドソース製品の開発競争という滅多にない機会になるからです。また、FBとIBが再統合される可能性は全くないでしょうから、こうしたことに時間を費やすことは無駄だと思います。
ということで、「プラス」に1票としましょう。

Marina Novikova: コンピュータゲームをやりますか?もしイエスなら、お好きなものは何でしょうか?

Ivan Prenosil: あなたは、厳粛な開発者という私のイメージをぶちこわすおつもりですね?(^^;イエス、コンピュータゲームをやりますよ。あまりしょっちゅうではないですが、年に2本くらいかな、大体アドベンチャーゲームなんですが、例えば、ルーカスアーツのGrim Fandango(英語教育に最適ですね、音楽も素晴らしい)です。

Marina Novikova: 開発者として見た場合、InterBaseに欠けているものはなんでしょうか?

Ivan Prenosil: それはとても長いリストになっていまいますね、全て列挙しましょうか?(^^;-いくつかの素晴らしい機能がAPIからしか使えないこと、DSQLやSP/TriggerやUDFで使えません、BLOBフィルタやストリームBLOBなどです。-ケース・インセンシティブな検索、隠しフィールドは余りいい考えとは思えません、Dave氏のコレーションKitはいい考えです、不幸なことにFBサーバのいくつかの制限のためにケース・インセンシティブなLIKEとSTARTING演算子の問題は解決できていません。-オプティマイザに対する制御をより強化すること、現在のオプティマイザは情報が少なすぎて、最適化したPLANを作成することが出来ないのです(例えば最初のレコードをより短い時間で取得したいとか、全結果セットをより短い時間で取得したいとかあるでしょう?速度よりも考えなくてはならない重要なことがあることも考えられます。例えば、indexによって行間を移動するよりもソートを早く行いたいとか、巨大なソートファイルを作成する余裕があって、データベースより大きくなってしまうとかね?)-セキュリティの強化(誰でも新しいデータベースを作成できて、新しいオブジェクトをデータベースに作成できて、オーナーでなくてもオブジェクトをドロップできて、全てのジェネレータの値を変更できて、キャッシュサイズを変更できる…)

Marina Novikova: InterBase Worldのコミュニティに一言お願いします。

Ivan Prenosil: いつでも人々が素晴らしいアイデアとともにあり、それを実装するだけの十分なエネルギーも、それから革命的な変化をさえ実行するだけの勇気も与えられますように。


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

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

DML系SQL

Firebird SQL – DML系コマンド
 DML(Data Mnipulation Language)系コマンド=データ操作言語に含まれる、DELETE/INSERT/SELECT/UPDATE等のコマンド群は、データベースのデータを操作するために使用されます。
  • DELETE
  • INSERT 
  • SELECT 
  • UPDATE 

 Firebird 1.5で追加された機能


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

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

Interview with Craig Stuntz on InterBase World

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

 本インタビューは、InterBase World のWebサイトでMarina Novikova氏によって公開されたものを、Marina氏とCraig氏の許可によって翻訳したものです。
 Craig Stuntz氏は、Borland社の運営するニュースグループ等でBorland製品をサポートするTeamBというグループに所属して、InterBase担当として活動されています。また、InterBase PLANalyzer や InterBase Performance Monitor などのフリーツールを公開して、デベロッパーに奮起を促しています。
 Marina Novikova氏はロシアの企業で英文翻訳とテクニカル・ライターをするかたわら、InterBase Worldの管理者をなさっています。Marina氏はInterBase Worldで、毎週のようにインタビューやレビューを更新されているのですが、このインタビューは、技術的なことやビジネスに関することだけでなく、各ゲ ストの人となりがよく現れていて、私はいつも楽しみにしています。


Marina Novikova: ご自身のことについてお聞かせ下さい。
趣味は何でしょうか?また、どんな音楽をお聴きになりますか?それから、お気に入りの本(作者)はどんなものですか?

Craig Stuntz: 私はたくさんの趣味を持っていましたが、昨年娘が生まれてからは、仕事以外のことでは彼女と遊ぶことの他には何もしなくなってしまいました。
もっとも、私と妻は二人で築115年の古い家屋のリストアをしている最中なので、2,3時間でも手が空いた時には家具を組み立てたりもしています。
音楽の趣味について言うと、なんでもありなんだけど、商業ラジオでかからないようなものならほとんど何でもOKですね、でも、ここはロシアのサイトなのでお気に入りのロシアのバンド

[1]

を宣伝させてね。
ここ数週間の間に読んだ本で一番いいなと思ったものは、Daniel Ellsberq の『Secret』

[2]

なんだけど、お気に入りの作家というとJannette Winterson

[3]

かな、彼女の体操のようなな言葉の使い方がお気に入りなんです、それから、Neal Stephenson
[4]

ですね、彼の創作は素晴らしいですね。

Marina Novikova: ビールはお飲みになりますか?もし飲まれるのであれば、どんな銘柄がお好きですか?

Craig Stuntz: もちろん飲みますよ。新鮮なものがいいですね。UKでは、どこでもうまいビールが手に入りますが、合衆国では、ちょっと難しいですね、もっとも、私の街ではいいビール・パブ(全部で4ヶ所以上ありますね)があるので安心です。自分が好きなのは、Bell
[5]

ですね。

Marina Novikova: 今までもらったもので、一番おかしな(へんてこな)プレゼントは何でしたか?

Craig Stuntz: ミツバチの群
[6]

ですね、父親からもらったんですが。

Marina Novikova: これまでに一番エキサイトした日、あるいは一番素晴らしかったなと思った瞬間というのは覚えておられますか?

Craig Stuntz: ちょっとはまりすぎだけど、本当のことなので。やっぱり娘が生まれた日ですよね。ウチの娘は自宅で生まれたんですが、ちょうどトルネードのまっただ中だったんです!なんというかエキサイティングで、素晴らしい出来事でした。

Marina Novikova: 嫌いなことはどんなことですか?他人のどんな振る舞いにイライラしたりしますか?

Craig Stuntz: いつもつまらないことをしないように心がけているんですが、たとえばほとんど考えなくてもいいこととか、何かをする時にはね。そんなわけで、粘着質の人とか、私利私欲にとらわれている人、個人攻撃ばかりする人と付き合うのはいやですね。

Marina Novikova: 好きなだけ自由な時間があったら、何をしたいと思いますか?(^^)

Craig Stuntz: 何も。自分の娘と遊ぶことは除外してね、それは責務でもあるんですが、楽しいことでもあります。

Marina Novikova: 大きな夢をお持ちですか?

Craig Stuntz: 私の娘について、もっと聞きたいということかな?(^^)

Marina Novikova: ピクニックに行って、Dale Fuller氏のハンバーガーを食べたことがあるというのは本当ですか?(^^)

Craig Stuntz: そんなことはないですね。その手の噂はデマです。いますぐここでそうしたデマを断ち切りたいですね。なにしろ、私が食べたのはDale氏のマッシュルームバーガーなんですから。私はベジタリアンなんですよ。(^^)

Marina Novikova: 学歴をお聞きしてもよろしいでしょうか?また、どうしてハイテク領域で働こうと思ったのでしょうか?それから最初にInterBaseに興味を持ったのはいつ頃のことでしょうか?

Craig Stuntz: 学歴ですね、音楽の話と同じなのですが、これまた何でもありなんです。まず、映像関係
[7]

の学位を取得しています。その後、核物理学と電気工学を学びました。学問的には、成績は良かった方ですが、大学は結局実際の生活をチャレンジングなものにすることからかけ離れてしまっているという結論に達したんです。それから私は非営利団体
[8]

のいくつかで仕事をしました(わざとそうしているようなところがありました)、Vertex Systems社
[9]

に腰を落ち着けるまでですが、そうした非営利団体は非営利で活動すると共に、うまく運営していくために十分な利益を出さないといけないのですよね。多くの人々とと同様に、私はDelphiについてきたのでInterBaseを発見しました。自宅でInterBaseを使って遊んでいただけで、なにか重要な仕事に使ったりしたことはありませんでした、Vertex社で仕事を始めるまではね。

Marina Novikova: InterBaseのニュースグループで活動していると、しばしば同じ質問や同じ間違いを犯す人々を見かけると思います。こういう事に腹を立てたりしませんか。

Craig Stuntz: いいえ、頻繁に上げられる質問は、答えるのも簡単なのです。:) また、忙しい時はそういうものは読み飛ばしてしまいますしね。というのも、多分他の誰かがそうした質問に答えてくれるだろうなとわかっているからです。もし、何度も何度も質問されることがあったとして、それがどこにも文書化されていないとすれば、私はそうした問題に関するアーティクル
[10]

を書くことにしています。私をいらいらさせる質問があるとすれば(怒らせるとまでは行かないけど)、こちらが適切な答えを書くために必要な情報を、いやいや書いて来るような時ですね。もし、答えを書く時間を使ってほしいと思うなら、その質問についてあなたの抱えている問題の詳細を十分に書いてほしいと思うのです。

Marina Novikova: TeamBでは長いこと働いているのですか?このことから得ているものはなんでしょう(お金に関することではなくて、興味を引かれている事という意味です)

Craig Stuntz: かれこれ3年くらいTeamB
[11]

のメンバーをやっています。金銭的利益に関して質問しなかったのは正解です、ただ働きなもので。:) この数年間BorlandのR&Dの仲間と一緒にやってきたことが一番の宝だと私は思っています。私がマニュアルや簡単な実験以外の部分でInterBaseについて学んだことのほとんどは、こうしたとても頭の切れる仲間とのやりとりの中で得たものです。私がInterBaseのコミュニティに対してお返ししようと思っていることは、テクニカルサポートやフリーのツール
[12]

以外に、Borlandとサードパーティの開発者の関係をより強化したいということなんです。私はこれまでに2つのInterBaseコンパニオンCD
[13]

を作成していて、定期的にサードパーティのツールメーカがBorlandからのサポートを受けられるように手助けしています。

Marina Novikova: FirebirdがInterBaseへの交換性を保ち続ける可能性についてどのようにお考えですか?彼らがはっきりと言っているように、FireibirdはBorlandの顧客を欲しがっています。

Craig Stuntz: 私はFirebirdプロジェクトに関わっているわけではないので、この件について何か言う立場にないと思いますが、Firebirdチームは彼らのプロジェクトにとってベストだと思うことをする意外にないでしょうし、その根拠もあるのだと思います、それにもし彼らがInterBaseとの交換性を必要ないと思ったり、彼らのツールをもっと多くの人々に使ってほしいと思わなかったりしたとしたら、かえって私はびっくりしてしまいますよ。それに、自分の顧客を他の企業が欲しがらないことを期待するような企業は、結局のところ長いビジネスを続けていくことは出来ないでしょう。

Marina Novikova: InterBase7は革命的なテクノロジーだと思いますか?

Craig Stuntz: 実際の所はそんなものではないですね。バージョン7の新機能によると、データベース界で新機軸となるようなものはありません。実装が大変良くなっているにも関わらずね。しかし、バージョン7は私がInterBaseを使うようになってから、もっとも重要なアップグレードになっています。ご存じの通りスレッド周りが改良されているのですが、私が思うにバージョン7は本当の意味でSuperServerアーキテクチャーという約束を満足させる初めてのものでしょう。しかし、私の日々の業務を大きくかえる可能性のある新機能は、テンポラリシステムテーブルに関するものです。この機能によってサーバの非常な詳細までをモニタすることが出来るようになりました、もう盗人みたいなクエリーやトランザクションやユーザ等々を書いたりしなくてもいいのです。私はInterBase Performance Monitorを書いていますが、文字通りこのツールを自分自身のデバッグに使っています。DelphiのIDEからPerformance Monitorを実行していて、ランタイムで実行していると見間違ったことがありました。

Marina Novikova: オープンソースのInterBase6についてご意見をお聞かせ下さい。これは、Borlandにとってミスだったのでしょうか、それともそうでなかったのでしょうか?

Craig Stuntz: 私が思うに、恐らく誰であってもいくつかの間違いを犯してしまうことはあるでしょう。あとづけの意見で、InterBaseをオープンソースにしたのは間違いだったという人もいます、しかし、こうした意見は単純すぎると思います。何らかの意味で、オープンソース化によって、Jon ArthurがInterBase部門の役員になったわけですが、このことはInterBaseにとってはとてもいいことでした。

Marina Novikova: InterBase7の値段は高くなりました。この価格政策についてお聞きしてもよろしいですか?

Craig Stuntz: この前、この件に関するアーティクルを書いたのですが、InterBaseと他の商用データベースの価格を比較したとき、標準価格に関して、最低でも、InterBaseは価格競争力があると思います。しかし、もし私にそうした権限があるとすれば、2点ほどInterBaseの価格構成に関して変更したい事があります。まず、フリーで無制限な開発用ライセンスが必要です(現在の唯一の選択肢はBorlandの開発用ツールについてくるライセンス又は評価用ライセンスを利用するというもので、両者とも同時接続数に関する制限があります)、それから、CPU数でのライセンスが必要です、同時接続数の制限は無制限のものです、そうしないと他の商用データベース製品との価格競争力を保てないでしょう。明らかに、私が欲しいものもこれなんですが、Borlandのビジネスに関して彼らがどうしようとしているのかをこれ以上知りたいとは思いません。

Marina Novikova: あなたのお好きなIDE/開発ツールはなんでしょうか?

Craig Stuntz: もちろんDelphiですよ。IDEは十分に素晴らしいものですが、それ以上に言語としてとても気に入っています。他の言語でこれはいいなと思うものは、Eiffel
[14]

くらいですが、これについては商業市場は全然動きがないですね。

Marina Novikova: オープンソースプロジェクトに対してどのような態度をおとりですか?

Craig Stuntz: そうですね、この答えをMozillaで書いてるんですが、私はオープンソースのツールをよく使っていますよ。それに、SourceForgeでプロジェクトの管理者もやっているんです、MIDAS Essentials Packというものですが、そこでは大変活発に活動をしています。他にもいくつかオープンソースの活動に関わっていますが、私がニュースグループ上で他のデベロッパのプロジェクトについて、それを支援するために手間暇かける際には、それがオープンソースであろうと、クローズドソースであろうと、他の何かであっても関係ありません。

Marina Novikova: Plan Analizerをオープンソースにしようという計画はありませんか?

Craig Stuntz: 現時点でInterBase PLANalyzerに関しての長期計画はまだありません。たくさんのIBデベロッパの要求に応えられるようにしたいのですが、現時点では永遠に一つの道に縛られるようになってしまうようなことはしたくないのです、そういうわけでとりあえずうっちゃっているんです。ツールの裏側にあるものは話す価値があると思ってはいます。BorCon2001で、その時点で可能なサードパーティのInterBaseツールのほとんどについてレビューをしました。いくつかのとても良いツールがあるにも関わらず、いくつかの機能はそのどれでも実現されていないのです、ツールはたくさんあるんですけどね、そしてみんな同じようなことをやっているわけです。私がIB PLANalyzerを書いたのは自分が必要としていたからなのですが、サードパーティのツール作者に対するある種の挑戦でもあったのです、かれらが追いついてきてくれたことを話すことが出来るというのはとてもいいことです。私は二番目のツールである、InterBase Performance Monitorをリリースしました、昨年のことです。そして、来年の終わり頃には次の新しいものをお見せできるでしょう。今の時点では、どんなツールもそれを実現しないことをやって見せますよ。まだ秘密なんですけどね・・・。



[1]


http://www.yat-kha.com/ YAT-KHA というバンドで、中央アジア系?民族音楽みたいな感じでしょうか。



[2]

http://ellsberg.net/ 『Secrets: A Memoir of Vietnam and the Pentagon Papers』が正式名称。ダニエル・エルズバーグ氏はベトナム戦争の政府文書を公表し、トンキン湾事件がねつ造であったことなどを暴露した人物。本書では、イラク戦争をベトナム戦争になぞらえて批判している。



[3]

http://www.jeanettewinterson.com/ 『オレンジだけが果物じゃない』でデビューしたイギリスの女性作家。同性愛に関しての告白を含む半自伝的小説である同書は、日本でも人気を博したようです。



[4]

http://www.well.com/user/neal/ コンピューターネタの小説が中心のようですが、『In the Beginning was the Command Line』が「太初にコマンド・ラインありき」というタイトルで、週刊アスキーに翻訳が連載されていたようです。



[5]

http://www.bellsbeer.com/ ミシガン州Galesburgのビールメーカ。



[6]

http://catalog.heifer.org/bees.cfm こんなものも売ってるんですね。$30です。



[7]

http://www.rit.edu/~sofa/ School of Film& Animation



[8]

http://www.ohiocitizen.org/ Ohio Citizen Action 環境保護団体のようです。



[9]

http://www.vertexsoftware.com/ システム系コンサル会社のようです。



[10]

http://delphi.weblogs.com/articles Craig Stuntz氏によるWebsite。Delphi / InterBase Weblog というタイトルで、興味深いアーティクルが満載です。



[11]

http://info.borland.com/newsgroups/teamb/ TeamBはBorlandのニュースグループ等でサポート活動を中心となって行っている人々です。Craig氏はTeamBの中でInterBase担当となっています。



[12]

Delphi / InterBase Weblogs にて、「InterBase Performance Monitor」「InterBase PLANalyzer」を配布されています。



[13]

http://delphi.weblogs.com/stories/storyReader$180 希望すればこのCDにツール等を収録してもらえるそうです。


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

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