2008年7月24日 (木)

BENCH_DD。

D言語とDFL、そして現在試作中のDBエンジンを使って、簡単なベンチマークテストを行うプログラムを作りました。

08072401_2

「BENCH_DD_080724.lzh」をダウンロード

Windows2000,WindowsXPで動作確認しました。

STARTボタンを押すと1分間データ処理を行い、スコアを表示します。
環境変更前後の性能比較に有用だと思います。

(この画像は、Pentium3-600MHzマシンでの結果です。)

| | コメント (0) | トラックバック (0)

2008年6月30日 (月)

LGPL。

D言語で簡単なベンチマークプログラムを作ってみました。

以前はBorlandの開発環境で作成していましたが、配布条件が緩く、添付文書に一文を添えて、そのまま固めて公開で良かったのですが・・・・・。

このプログラムはgtkD及びgtkライブラリを使用していて、何れもLGPLが適用されています。この配布条件が、一読して今までに経験したことのない厳しさに感じられたのです。これは、オープンソースとそのライセンスへの先入観があったためでもあります。

私が作成したソフトウエアの中には「第三者に公開する予定のないソース」を含んでいます。そもそも、計測条件の一致が前提である「ベンチマーク」プログラムが、ソースを公開して改変の自由を認めるのは致命的です。

いくら何でもそれでは使えないと思い、条文を更に読んで自分なりに解釈してみました。

『LGPLが適用されたライブラリを組み込んだソフトウエアを配布する時は、そのライブラリ自身の改変が出来るように、ライブラリのソースの所在を明記の上、ライブラリを呼び出しているプログラムのソースファイルまたはコンパイル済みのオブジェクトファイルを添付して、ソフトウエアの再構成が出来なければならない。』

それが可能かどうかはともかく、納得は出来ました(~~;。

| | コメント (0) | トラックバック (0)

2008年6月25日 (水)

D言語について。

最近、D言語を知りました。

言語仕様に共感する部分が少なくなく、IDE(統合開発環境)も有志によって整備されています。

本格的なフォームデザイナと、C言語からのコンバータがあれば、すぐにでもTurboC++から移行するのですが・・・。1年早くに知っていれば・・・。

私は、「ただのWin32アプリ」が作りたいだけなのです。

(080601 00:00 追加)

意を決して、D言語で「Hello,World!」を表示させてみた・・・。

良い機会ですので、現在試作中のDBエンジンを大きく設計変更して再構成しようと思いました。先は長いですが・・・。

これからもC言語は、仕事で依頼されて使う時はあると思いますが、個人的なプログラミングはD言語で行こうと思います(^^)b。

DMDコンパイラのバージョンは1.xx、IDEはPoseidonを据えました。

DOS版のTURBO PASCALから使い始めたBorland系の開発環境とも、これでお別れです・・・。

(080606 21:30 追加)

少しずつ、Cで書いた既存ソースを移植しています。元ソースを貼り付け、コンパイルが通るように修正して動作確認、という手順を関数ごとに行っています。

基本的にはBASIC-PASCAL系を長く好んでいましたので、専門的にみるとあまり凝ったプログラムではないと思いますが、それでも、配列操作の手法としてポインタを利用することもあり、移植にあたってその挙動を心配していたところですが、結果「cast」という語句を入れたり、変数型名をDの言語仕様に合わせるくらいで、そのまま動作するようです。

(080614 12:00 追加)

配列のスライシング、文字列の「.dup」メゾッドといった独特の機能を使い始めました。特に後者は、私がC言語をやっていなかったら理解に苦しむ仕様だったと思います。

(080624 23:00 追加)

フォームデザイナとして、Gladeを使ってみました。必然的に、GUIライブラリはgtkDを使うことになりますが、gtkDのコンパイルが通り、Gladeで作ったフォームを表示するところまで分かりました(~~;。

(080625 11:30 追加)

メモ:

gtkDを解凍したディレクトリで「DSSS build」を実行するとコンパイルできる。同じく「DSSS build --doc」を実行すると「src\dsss_docs」以下のディレクトリにリファレンスマニュアルが生成される。

おかげで、Gladeで作成したフォーム内のテキストボックスに文字を流し込むことが出来ました。何とかGUIプログラミングできそうです(^^)b。

(080626 22:30 追加)

ウインドウ内のテキストボックスに、リアルタイムで処理の進行状況を表示させたい時、その更新のために例えばVBAではDoCmd..RepaintObject、DelphiではRefreshメゾッドを使っていますが、gtkDでは相当する機能がないようです。ボタンを押して処理を開始した時、処理が終わるまでUIの再描画は行われないようです。gtkDの基幹ルーチンであるGtkD.main()が属するモジュールに何か用意されているかも知れないと思い至るまでに時間がかかりました・・・。そして、該当するリファレンスマニュアルに答えがありました・・・。

    while (GtkD.eventsPending ()) {GtkD.mainIteration ();}

(080708 09:30 追加)

現在、IDEは使わず、「サクラエディタ」のタブ切り替えモードで使っています。[F5]でリビルドできるようにしてあります。単一フォルダで完結するプロジェクトであれば、これで充分だと思います(^^)b。

(080714 00:00 追加)

既存ソースの char型を ubyte型に書き換えました。今まで動作に問題はなかったのですが、言語仕様で明確に区分されていますので、その意向に沿った形です。その結果、コンパイルした実行ファイルの大きさが変わりましたが、速度は変化ないようです。

(080717 20:30 追加)

IDEをEntice Designer、GUIライブラリをDFLにしてみました。一長一短という印象です。ただ、環境のインストールからフォームデザイン、コーディング、実行までの手順は、こちらの方が取っ付きやすいと思います。

(080719 13:30 追加)

DFLは配布条件も緩いようです。D言語を使ってWindowsアプリを作る環境としては、私には必要十分だと思います。欲を言えば、Entice Designerでイベントハンドラの入り口まで自動生成してくれたら、ほとんどDelphiやC++builder感覚になるのですが・・・。

| | コメント (0) | トラックバック (0)

2008年1月29日 (火)

さようなら Microsoft Access。ありがとう ShurikenPro4。

1995年頃からデータベース(DB)ソフトとしてMicrosoft Accessを使用しています。特にAccess97は高く評価しています。ファイルサイズの制限がなければ、今でもAccess97で行けるのではないかと思います。

しかしその後、Access2000、2003、と不満は増えるばかり・・・。

ついに「今度新しくDBが必要なプロジェクトが立ち上がったら、Accessは使わない。自分で使いやすい小回りの利くDBエンジンを自作すれば良いではないか」・・・と決断したのは去年の3月末のことでした。

それから参考書を買い込み、試作を始めました。

08012901

去年の第2四半期をピークとして試作を続け、DBの基本的な操作ができるようになりましたが、自分のスキルアップに満足して作業を中断した時期もありました(~~;。

最近になって「DBの実験として自分用のメーラを作るのはどうだろう?」と思うようになり、現在に至っています。

現在使っているメーラ(ShurikenPro4)に不満は全くありませんが、実使用できて性能を体感できるDB評価用のアプリとして、これ以上の題材は思い付きません(^^)b。

まだDBエンジンの開発途上ですが、使い物になりそうな手応えを感じている今日この頃です・・・。

| | コメント (0) | トラックバック (0)