メイン | August 2004 »

July 31, 2004

Subversionのインストール

ダウンロードしたのはsvn-1.0.6-setup.exe。
インストールページを探すが、Windows上でのSubversionのインストールを解説したよさげなページは見つからなかった。
でも、インストーラーがあるので実行すればよいかと思い実行。
Nextを押しまくっていたらインストール終了。
で、どうするのさ?
このページを見て、自分のPC内のコンフィグを探すが、見つからず。
C:\Documents and Settings\ユーザ名\Application Data\Subversionってフォルダなんてないぞ。
よくわからないがSubversion によるバージョン管理のインストールの部分から少し読んで、おもむろにリポジトリを作る。
そしたら、C:\Documents and Settings\ユーザ名\Application Data\Subversionが出来ていた。
これで上のページと同じようになったのでこのまま進められる。

Apacheの設定をしてブラウザから見られるようになった。
ただし、Subversionの後半の設定はまだ。
TortoiseSVNをインストール。
ViewCVSも入れたいと思うが・・・Pythonが必要なのか。
面倒なのでまた今度にする。
Pythonも面白そうなので一度遊んでみたいが・・・

とりあえずはこんなところか。
DirectShowで遊びたいし。

投稿者 Takenori : 06:49 PM | コメント (0) | トラックバック

バージョン管理について悩む

別に適当にやっていても良いのだが、後のことを考えるときちんとやっておいた方がよいだろうということで、バージョン管理ソフトを入れることを考える。
真っ先に思いついたのは、やっぱりCVSだ。
でも、subversionも気になる。
Apache2も入れていることだし、subversionにするか。(すごい安直です)

そういえば、Apache2なんかのインストールメモを残しておくのを忘れていたのでここにメモ。まあ、こういうのはいっぱいあるから別にここに書いとかなくてもいいけど、自分が一番忘れそうだからね。
Perl
Namazu, kakashi, seach-s
MySQL
WinへのApacheインストール方法
mod_phpインストール方法

後は関連する記事などを
Apache2.0関連記事
WebDEV関連記事
Subversion関連記事
別に一覧にしなくても、リンクはつながっているんだけど、一応。

Apache2を使う時、Perlは5.8系を使わないといけないようだ。
で、Perl 5.8系とApache2をインストールした。
NamazuはPerl5.6以上と書いてあるが、以前上位バージョンを使った時はうまく動かなかったのだが、大丈夫だろうか?
まだNamazuでインデックス作っていないので何とも言えないが・・・、うまくいかなかった時はどうするかなぁ。
------以前のメモ書きコピー終わり

で、まずはWebDAVを試してみる。
とりあえず、このページを参考に設定してみる。
日本語ファイル名対応(mod_encodingの導入)だが、何もしなくてもうまくいった。
インストールしてあるApache 2.0.50なら大丈夫なのだろうか?
それとも、利用環境がWinだけだから大丈夫なのか。
@ITの記事にもうまくいく場合といかない場合があると書いてあるし細かいことは気にしない。
mod_encodingの最新版がApache2.0.48用となっていて、バージョンが少し異なるのも気になるので、とりあえず入れないことにする。
まあ、subversionとか入れて問題が出てきたらインストールすることにしよう。

そして、WebDAVを使ってみた感じだが、いい感じだ。
普通にWebフォルダに設定して使ったのだが、ローカルと同じような感覚で使える。
Windowsの共有じゃなくて、こっちをメインに使った方がよいかなぁと思ったりもするが、よく考えるとどっちも同じだな。

次にsubversionインストールするためにをここからDL。

投稿者 Takenori : 05:47 PM | コメント (0) | トラックバック

DirectShow 実験プログラム作成開始

DirectShow 実験プログラム作成開始

Direct Showのヘルプで関係有りそうなところを読んでみた。
何となくわかったので、次は実践。
で、これから作るプログラムの簡単な使用を書いてみる。

---第1段階---
Direct DrawとDirect Showを使う。
Direct Drawのバックサーフェイスに直描きする。

---第2段階---
複数のMPEGファイルをつなげて再生する。(出来れば切れ目なく)

---第3段階---
[通常再生|2回ループ再生|通常再生]と言った感じで、ループさせる。

---第4段階---
オーバーレイとサーフェイス直描きの切り替えが出来るようにする。

---第5段階---
メモリ上へのプリロードしてから再生を開始する。


とりあえずは、上記のような仕様で徐々に拡張しながら実験(学習用)プログラムを作っていく。
まあ、上記のようなのが作れれば、そこそこDirect Showに関する知識も深まっていることでしょう。

投稿者 Takenori : 05:46 PM | コメント (0) | トラックバック

July 29, 2004

ブログの設定をいじる

コメントつかないなぁとなにげに考えていて、ふとコメント機能は使えるのか?と気になったので確認。
できない。
いろいろと調べて、ブログの設定をいじる。
そして、スクリプトも修正しないといけないようなので、修正
----修正内容
[MT]/lib/MT/App/Comments.pm の 693行目を修正しなければなりません。
693行目に「$cookie」という変数が1つだけあるので、これを「$cookies」に修正してアップすればエラーは出なくなるはずです。
-----終わり
ただし、上のはBETA版の時の話みたいです。
で、確認。
コメントが入力できるようになった。
めでたしめでたし。

投稿者 Takenori : 10:43 PM | コメント (0) | トラックバック

IRC チャンネル?

IRC チャンネルとはなんだろう?
初めて聞く言葉。とりあえず、ググる。
上2件のページで調べてみる。
IRC普及委員会
IRC users in Japan Home Page
どうやら、インターネットを使ったチャットシステムのようだ。
httpとかtelnetとかftpとかそんなのの一種だろう。細かいことは気にしない。
次にクライアントソフトを落とす。
TakIRCをインストールして使ってみる。
なんかよくわからない。というより、私が全然理解していないようだ。
吉里吉里のページでは、irc:#kirikiriirc にリンクが張られている。
だから、サーバーにirc:#kirikiriircやirc.kirikiriircなどいろいろと試すがうまくいかない。
よくわからないので、もう一個ダウンロードしてみた。
CHOCOA
そして、さらに調べる。
国内サーバーリストというものがあった。
irc.huie.hokudai.ac.jp
irc.media.kyoto-u.ac.jp
irc.tokyo.wide.ad.jp
irc.fujisawa.wide.ad.jp
irc.nara.wide.ad.jp
irc6.nara.wide.ad.jp
wwwの部分をircに変えたアドレスが基本のようだ。より正確に言うなら、サブドメインで切り替えているようだ。
で、#kirikiriirc はどこかのサーバーのチャンネルらしい。
上のアドレスのいくつかと、TRPG.NETのサーバーに#kirikiriircというチャンネルがないか探すが見つからず。
吉里吉里ページのアドレスにIRCをつけてirc.kikyou.infoとしてみるがつながらず。
いったいどこのサーバーに#kirikiriircはあるのだろうか?
---ちょっと追記
コメントにも書いたのですが、よくよく考えたらここにも書いといた方が良いと思ったのでここに追記。
irc.*.wide.ad.jp は相互接続していますので、どれにつないでも #kirikiriirc チャンネルに入れるはずです。
chocoaならサーバを適当に選びまして「コマンド」から「チャンネルに入る」で「#kirikiriirc」と打ち込みますと吉里吉里チャンネルに入れます。
とのこと、なるほど。
上に書いたアドレスの2個目までしか試していなかったかも。
もう1個試していれば見つかっていたのか。
確認すると、irc.tokyo.wide.ad.jpは試していた。
といっても、チャンネルリストを表示で見ただけだった。
で、チャンネルリストでは表示されていない。
チャンネルへ入るで#kirikiriircと入力すれば入れた。
なるほど、そういうことだったのか。

投稿者 Takenori : 09:25 PM | コメント (3) | トラックバック

DirectShowで実験-サンプルの改造

Texture3Dサンプルとヘルプでしばらく格闘したところ、DirectShowはDoRenderSampleを勝手に呼び出すようだ。(CTextureRendererはCBaseRendererを継承しているので)
そして、CTextureRenderer::DoRenderSampleではテクスチャをロックしてビデオの画像をテクスチャへコピーしている。
つまり、テクスチャをバックバッファにコピーするようにすれば、とりあえず目的は達成できそうだ。
とりあえず、あんまり何も考えずにIDirect3DTexture8*をIDirect3DSurface8*にキャストして、CopyRectsでコピー。
エラー。
当たり前か。
次にLockRectでちまちまコピーすることにする。
試してみると、バックバッファのサーフェイスがロックできない。
BeginScene - EndSceneの中でやっても、外でやってもできない。
if( pBackBuffer->LockRect( &lrDest, NULL, D3DLOCK_NOSYSLOCK ) == D3D_OK ) ってやっても if( pBackBuffer->LockRect( &lrDest, NULL, 0) == D3D_OK ) ってやってもできない。
何か特殊な方法があるのだろうか?
ふと、IDirect3DSurface8::LockRectとIDirect3DTexture8::LockRectの引数が違うことが気になる。
IDirect3DTexture8はテクスチャのレベルを指定するパラメタが多い。
そして、IDirect3DTexture8::GetSurfaceLevelというメソッドに気付く。
IDirect3DTexture8::GetSurfaceLevelを使えば、、IDirect3DSurface8*が得られるようだ。
早速、取得してCopyRectsを試す。
エラー。
フォーマットが違うとでている。
バックバッファーはD3DFMT_X8R8G8B8だが、テクスチャはD3DFMT_A8R8G8B8。
面倒なのでテクスチャをD3DFMT_X8R8G8B8にしてしまう。
で、実行。
うまく表示されたが、上下逆だ。
DoRenderSampleの引数のIMediaSampleからGetPointerを使って得られるポインタはビットマップ形式のようだ。(つまり上下逆)
反転させるためにIMediaSample::GetMediaTypeを使って、サイズを得ようといろいろやるが、画像サイズは元々メンバにあった。
m_lVidHeightやm_lVidPitchを使えばよいようだ。
で、ビットマップの方を下からコピーするようにして反転させる。
表示させてみると・・・うまく表示された。
とりあえず、こんなもんかな。
謎がいくつかあるが気にしない。
バックバッファがロックできないのは結構気になるが。
でも、それよりもう少しDirectShowをさわる部分をいじっていかねば。

投稿者 Takenori : 06:25 PM | コメント (0) | トラックバック

DirectShowで実験-サンプルのビルド

実際に実験を行ってから、少し時間が経ってしまったが、メモしておくのを忘れていたので、ここに追加しておく。

まず、やりたいことはオーバーレイを使わずにDirectShowを使ってビデオを再生することだ。
オーバーレイは以前に一度、DirectX7かその辺りの時に、何となく遊んでみたことがある。とは言っても、そのころのことはほとんど忘れてしまった。
そんな感じなので、とりあえずは良さそうなサンプルをDirectX8.1 SDKの中からか探してみる。(DirectX9でもいいのだが、入れてあったのが8.1だったので、そのままにした)
いろいろと見てみたところTexture3Dが一番近そうだ。
Texture3Dはムービーをテクスチャとして使うサンプルだ。
とりあえず、MovTexture3Dと言うフォルダを作り、そこにこの中身をコピーする。
プロジェクトはVC++6の物のようだ。
気にせずダブルクリックしてVC++.NET 2003を立ち上げる。
プロジェクトを変換するかとどうか聞かれたので、すべて変換する。
何はともあれビルド。
> Textures fatal error LNK1104: コンパイラは、ファイル 'libci.lib' を開くことができません。
と出て、失敗。
旧プロジェクトから変換した時、よく出るエラーだ。
LIBCIをリンクしないようにして、再度ビルド。
> Textures error LNK2001: 外部シンボル "_CLSID_FilterGraph" は未解決です。
> ・・・
なんか、リンク時にいっぱいないと言われる。
いろいろと調べたところstrmiids.libを追加する必要があるようだ。
で、追加したらうまくいった。
そうそう忘れていた。
上記のこと以外に、XSDK/samples/Multimedia/DirectShow/BaseClassesをビルドしてライブラリを作っておく必要がある。
これを忘れているとさらにエラーが出たはず。
以上で、とりあえずビルドが通ったので、改良にかかる。

投稿者 Takenori : 05:07 PM | コメント (0) | トラックバック

こういう仕様にしましょう

----以下、W.Dee氏の返答から引用
もし吉里吉里本体に手を加えられるならば、VideOverlayにレイヤへの画像出力機構を持たせるようになるのかな、とか思っています。
VideoOverlay のなんらかのプロパティにレイヤオブジェクトを指定するとそのオブジェクトに動画が出力されるようになると。
いわゆる「オーバーレイ」では無くなるので VideoOverlay という名前とはちょっと乖離してしまいますが、レイヤの指定領域にビデオを勝手に表示する(結果もともとレイヤのそこの領域にあった画像は上書きされる)という意味ではオーバーレイという意味があり、名前はこのままでかまわないとも思います。
----以上、引用終わり
W.Dee氏の考えに沿う形にしよう。
より詳細な仕様は、もうちょっと調査してから決めることにする。

投稿者 Takenori : 01:05 AM | コメント (0) | トラックバック

July 28, 2004

新構成を検討

W.Dee氏の回答を受けて新たに構成を考える。
って、よく考えたら、初期の構成と同じじゃないのかとふと思ったが、気にしないことにする。

1. 関数のプラグインを作ってTJS2のクラスでラップする。
2. 本体に改良を加える。
以上のどちらかで作成することにした。
で、気分的に心地よいのは、やっぱり2.かな。
とりあえずは、本体に改良を加えると言う方向で行こうと決める。

投稿者 Takenori : 11:26 PM | コメント (0) | トラックバック

プラグインのライセンスに関して

いずれlicense.txtに追加されることになりそうですが、念のためここにメモしておく。
------以下、引用
license.txtの「● オープンソース」のにある「ここで流用とは、このソフトウェアの一部が他のソフトウェアに組み込まれること」(tp_stub.h / tp_stub.cpp が他のソフトウェアに組み込まれること)に該当しますが、プラグインについては特にそこで求められているような「このソフトウェアに含まれるソースを使用している旨をドキュメント等に表記することか、あるいは、このソフトウェアの作者に配布を行う旨を事前に連絡し確認をとることの、どちらかあるいは両方」は求めない方向で行こうかな、と思います。
ただし、tp_stub.h や tp_stub.cpp 以外の 吉里吉里のソースコードを流用する場合は別です。

ライセンスに補足が必要ですね。入れておこうとおもいます。

ただプラグインをGPLも適用可能なライセンスにしておかないと、吉里吉里のライセンスとしてGPLが選択されたときにその吉里吉里とはリンクできないことになりますのでご注意ください。
もっともGPLを選択可能にするのは強制ではありませんし、プラグインのソースを公開することでさえ強制ではありません。

# 吉里吉里のライセンスとしてGPLが選択された事例は未だ見かけた事はありませんが

投稿者 Takenori : 11:23 PM | コメント (0) | トラックバック

クラスプラグインに関するW.Dee氏の考え

可能ですが、かなり面倒です。
ソースのtjsNative.hや「TJS2リファレンス」の「基本的な使い方」が参考になるといえばなりますが、これはTJS2をアプリケーションなどに組み込む際の話で、吉里吉里用プラグインではかなり勝手が違います。

ArrayとかDictionaryとかを作るメソッドはプラグイン側に提供されているのですが、
クラスそれ自身、それとクラスからオブジェクトを作る際のベースとなるtTJSCustomObject (TJSにおける生の"Object") がプラグイン側に提供されていないのでかなり難しいです。

# tTJSCustomObject と同じ動作の物をプラグイン側で実装してしまうならば別ですが...

プラグイン側でクラスを実装できるようにするのは、TJS2に予定しているクラス関連の仕様の改良が済んでからと思っていたので、ちょっと現状では簡単にはできないかな、と思います。スミマセン。
--------以上、引用終わり

つまり、止めた方が良いと言うことのようです。
自分がこう返答する場合は、「十中八九、私ならしない」と考えている場合なので、クラスプラグインはあきらめることにする。

投稿者 Takenori : 11:10 PM | コメント (0) | トラックバック

MovableTypeのテンプレート素材

http://www.sucharaka.jp/blog/
http://wandering-wind.jp/archives/2004/0515225938.html
http://unmovabletype.org/archives/umt_style.php

投稿者 Takenori : 04:45 PM | コメント (0) | トラックバック

MovableTypeのテンプレートを少しいじってみる

MovableTypeのテンプレートを少しいじって若干使いやすくした ( つもり )。
CSSの方もいじってもっとかっこよくしたいなぁ。

投稿者 Takenori : 04:42 PM | コメント (0) | トラックバック

クラスプラグインは可能?

ソースやTJS2のドキュメントを見ていて気付いたのだが、関数プラグインだけではなくて、クラスプラグインも作れるのではないだろうか?
関数プラグインはtTJSDispatchを継承して作る。
実際の処理はFuncCallをオーバーライドする。
そして、それをバリリアント型に変換する。
iTJSDispatch2かそれから派生したグローバルオブジェクトを取得し、そのメンバ関数のPropSetを使い、バリリアント型に変換したクラスを登録する。
そうすることで、グローバルな関数として使えることになるようだ。

そして、ここからはソースやドキュメントからの予想。
PropSetは字句を登録しているのではないだろうか?
登録した字句をnewするとiTJSDispatch2のCreateNewがコールされる。
生成されたオブジェクトのメソッドをコールするとiTJSDispatch2のFuncCallがmembernameを伴ってコールされる。
と言うことは、クラスプラグインも何とかなるのではないだろうか?
ただ、組み込みクラスは継承図の構成が異なっているのが気になる。
ファクトリーパターンやプロキシのような作りになっていると言うことだろうか?
やはり、もう少しコードを追わないと可能かどうかわからないなぁ。

クラスプラグインが使えるのなら、関数をまとめたクラスをTJSで作ると言うことはしなくても良くなる。
当然、その方が自然だし、処理も軽くなるだろう。

ソースを追ってもいいが、聞いた方が早いか。

投稿者 Takenori : 02:05 PM | コメント (0) | トラックバック

関数プラグインの作り方

吉里吉里の関数プラグインの作り方をすでにあるプラグインのソースを追って調べていたのだが、tvp2win32/base/win32/plugin_kit/basetest/Main.cpp を見ると作り方が解説してある。
しかも、Readmeをよく見ると "/base/win32/plugin_kit/basetest/ は、吉里吉里で使用可能な関数を増やすサンプル" と書いてある。
Readmeは読んだつもりだったのだが・・・もっとよく読んだ方が良さそうだ。

投稿者 Takenori : 02:01 PM | コメント (0) | トラックバック

Doxygen

DoxygenGraphvizをインストール。
Latexはインストールが面倒なので入れなかった。
まあ、数式を書かないのであれば、Latexは必要ないのでしばらくは大丈夫だろう。

吉里吉里のソースにDoxygenをかけてみるが結構な量だなぁ。
ある程度分割してかけた方が良かったかも。

投稿者 Takenori : 01:56 PM | コメント (0) | トラックバック

DirectShow

はじめは言いたいことはわかるが・・・なんか漠然としているなぁと思っていたが、ヘルプを読み進んで何となく理解した。
DirectShowは与えられたファイルを元に最も適切だと思われるグラフを構築する。
もし、特殊な用途で使用する時は、グラフから一度フィルタやピンの接続を解除し、再度目的のフィルタやピンを接続する。
と言うことか。

ゲームなどの用途でDirectShowを利用するという似たような状況を解説したページを発見。
軽くふれる程度の内容だが、なかなか良い。

投稿者 Takenori : 01:48 PM | コメント (0) | トラックバック

July 26, 2004

開発凍結

フリーで良い物がないと言うことで開発を始めたアグリゲーターだが、今日なかなかよさげなのを発見したので、凍結することにした。
当面は開発前の調査中に得た情報 ( このブログの開発日誌 ) を整理して、今後のために保存する作業を行うことにする。

投稿者 Takenori : 06:17 PM | コメント (0)

構成

拡張方法としては、次の2つが考えられる。
・本体に変更を加える
・プラグインを作る

しかし、W.Dee氏は定期的に本体の拡張をされているようなので、あまり本体に変更を加えたくない。
そうなるとプラグインとなるのだが、今回のような用途の物はあまり想定されていないようだ。
吉里吉里で使えるプラグインの種類は次の3つ。
・Susie Plug-in (画像読み込みとアーカイブアクセス)
・WaveSoundBufferで再生可能な形式を拡張するためのプラグイン
・そのほかの吉里吉里専用のプラグイン

そして、そのほかの吉里吉里専用のプラグインは次の2つにわかれている様子。
・トランジション用
・関数追加用

以上のことから考えると、
プラグインで提供する。
プラグインはTJS関数追加プラグイン。
となりそうだ。
後は、利便性を考えて、TJSでクラスを作り、KAGプラグインとして提供するとなるだろうか。
なんか、Cで組まれたライブラリのラッパークラスを作るような感じだなぁ。
組込型に比べれば少し重いかもしれないが、たぶん大丈夫でしょ。(根拠なし)

投稿者 Takenori : 05:33 PM | コメント (0)

懸念事項

吉里吉里の掲示板を見ていて気付いたのだが、W.Dee氏も最前面以外にも表示出来るようにすることを検討されているとか。
微妙だなぁ。
まあ、かち合ってもいいか。
気にせず前進あるのみ。

投稿者 Takenori : 05:25 PM | コメント (0)

制限

吉里吉里2/KAG3のムービー機能では次のような制限がある。

・ムービーは常に最前面に表示される。つまり、テキストなどをそれより前に表示することが出来ない。
・通常再生のみサポート。ループ、途中から再生などが出来ない。

基本的に上記制限を解消するために開発を行う。

投稿者 Takenori : 05:16 PM | コメント (3)

2004/07/26

少し前にSQLiteと言うものを知った。
SQLiteはRDBのような使い方をする用途ではBerkeley DBに取って代わろうとしているとかしていないとか書いていた記憶がある。( 残念ながらそのページのURLはメモするのを忘れていた )
で、調査することに。
パブリックドメインで、自由にコピー、変更、出版、使用、コンパイル、販売、オリジナルSQLiteのコードの配布がバイナリ、ソースコード問わず、どのような用途でも、商用、非商用関係なくできるようだ。
詳しくはこの文章を呼んで下さい。

注意!!上記解説は私のつたない英語力で読解した物なので、当てにしないで下さい。
この解説を元に損害を被っても私はいっさい責任を負いません。
この文再び登場。

すごい。すばらしい。
なんて崇高な思想なんだろう。
しかも、SQL文が使える。まあ、そのせいで動作はBerkeley DBよりは遅いことが予想されるが、ベンチマークを見る限りでは、MySQLと同じか少し速い、PostgreSQLより圧倒的に速い。
速度的な問題は実際にアプリに組み込んで使ってみないことには何とも言えないが、たぶん大丈夫だろう。(根拠なし)

簡単にコマンドラインのプログラムをいじってみたが、いい感じだ。
普通のRDBMSのような感じで使える。
しかも、データはファイルに直接書かれる。
クライアント・サーバ形式ではない。
ああ、素敵だ。
もう、SQLiteに決めた。(即決!惚れた!)

現時点ではバージョンの問題があるようだ。
2.8系と3.0系。
3.0系は次のバージョンで安定版になるだろうと書かれている。
どうするかなぁ・・・
3.0系にするか。
BLOBをきちんとサポートしているし、UTF-8、UTF-16もサポートしているし。
何より新しい方がいい。
全く持っていい加減だが、気にしない気にしない。

結果
データ保存部分はSQLite V3.0系にする。

ラッパーとしてこれが有用かも。

投稿者 Takenori : 04:52 AM | コメント (0)

HP関連

Movable Type 3.x 導入手順

投稿者 Takenori : 01:29 AM | コメント (0)

July 12, 2004

2004/07/12

Berkeley DBライセンスをチェック。
オープンソース形式なら無料、ソースを公開しない場合は有料です。って事らしい。
オープンソース形式とは、GPLとBSDを含むopensource.orgで記載されている条件を満たした物らしい。
オープンソースライセンスは@ITによる解説文GNUによる解説文がわかりやすそう。
次に添付されていたライセンス文を読む。
Berkeley DBのソース配布予定はないので、バイナリ形式の項を読む。
バイナリ形式で配布する場合は、上述のコピーライトの複写、この条件リストと以下の免責条項を配布物に付属するドキュメントもしくは他に付属する配布物に添付すること。
免責条項の欄はまだ読んでいない。

注意!!上記解説は私のつたない英語力で読解した物なので、当てにしないで下さい。
この解説を元に損害を被っても私はいっさい責任を負いません。
と、一応書いておこう。

で、どうするかだが、派生物の定義が微妙だ。
Berkeley DBのDLLを使用したソフトウェアは派生物になるかどうか。
GPLの場合、リンクするソフトウェアは派生物とされているが、LGPLの場合は、派生物ではないとなっている。
Berkeley DBのライセンスはどうなのだろう?これはかなり詳しく追いかけていかないとわからない問題だ。
とは言っても、このアグリゲーターはフリーで良い物が見つからなかったので、作ろうと思った物だ。
なので、オープンソースにしてしまっても問題ない。
とりあえず、オープンソースで行くことにしよう。
しかし、今後Berkeley DBを使ったソフトウェアを開発する時はどうするか?
オープンソースではなくプロプライエタリなモデルを採用したい場合だ。
うーーん、購入すればよいか。

その他発見したBerkeley DBに関するリンク
Berkeley DB と mmap
UNIX DBM掲示板
等を発見。
他にもいろいろと読んでみたが、良さそうなドキュメントは見つからず。
AmazonでもBerkeley DBの書籍を探すが見つからず。
やはり、添付ドキュメントとサンプルソース見ながらゴリゴリしかなさそうだ。
でも、当たり前と言えば当たり前だが組込型のデータベースはBerkeley DBが一概に最良というわけではないようだ。
まあ、面倒なのでBerkeley DBでいいや。

投稿者 Takenori : 04:08 PM | コメント (0)

2004/07/11

とりあえず、DLしたBerkeley DBをVC.NET 2003でビルド。
エラーが出るが、tcl(2)やjava用の何かのようなので気にしないことに。
ライブラリはきちんと出来ているし。
でも、このライブラリBorland C++ Builderで使えるんだろうか?
たぶん大丈夫だろう。
COFF(2,3)、ELF(2,3,4,5,6)、PEフォーマットなどで出来ているだろうから ( すごい自信なかったり ) 。

投稿者 Takenori : 01:36 AM | コメント (0)

July 11, 2004

2004/07/10

Berkeley DBで遊ぼう!を読んだが、良い、シンプルな作りだ。
でも、C++の方は載っていない。
で、ググるが良さそうなページが見つからない。
DLしたBerkeley DBのドキュメントを見てみる。
各APIの説明などは ( 英語で ) 載っているが・・・
これはいきなり作るか。いつも通り。
よし、サンプル見ながらいきなりゴリゴリ行こう。

投稿者 Takenori : 01:07 AM | コメント (0)

July 09, 2004

2004/07/09

ニュースの各記事を保存するのに独自のデータ形式を設計して、読み込み書き込みライブラリを作って・・・というのは、ちょっと現実的ではない。
だいいち面倒臭すぎる。
XMLを使って保存することも考えたが、こういうことは明らかにRDBMSの方が向いている。
たぶん、XMLでやってしまうと、記事が多くなってきた時、読み込みが遅くて嫌になるだろう。
そんなこんなでRDBMSを使うことを決めたが、まだ何を使うか決めていない。
とりあえず、MySQLかなぁと思ったが、そんなことしたら一般配布が困難になってしまう。
別にいいかと思いつつBCCでMySQLにアクセスする方法などを調べてみる。
データベース操作実験と言うページがよさげであった ( MySQLではないが ) 。
その後、直接プログラムに組み込めるDBがあるのではないかと気づき、調べたところいくつか見つかった。
そのような用途ではDBM, NDBM, GDBMなどが有名なようだ。
しかし、最近はBerkeley DBがよく使われているような感じだ(自信なさげ)。
このブログもBerkeley DBを使っている。
と言うことで、Berkeley DBを使おうと決めるが、使い方など全く知らないので、調査したところ、Berkeley DB で遊ぼう!と言うページが良さそうな情報を提供していた。

RSSを扱うのに特化したライブラリやコンポーネントがないか探すが見つからず。
Xerces-C++を使って作るか。

投稿者 Takenori : 06:05 AM | コメント (0)

2004/07/08

技術関連のニュースを読む機会が多くなったので、アグリゲーターでも使おうかなぁと思い、シャープリーダーNewsGlueを試すが、重い。起動が重すぎる。
ニュースはそんなに頻繁に確認する物ではないので起動が遅いのは痛い。

仕方ないので、自分で作ろうかなぁと思い始めた。
とりあえず、Borland C++Builer 6Xercesをビルド。
800万行超!うーむ、ビルド時間もすごいが行数もすごい。

寝る前にPerl & XMLを少し読む。
PerlにはRSS専用モジュールがある。って、C++用のやつもないかなぁ?と考え始める。
よし、明日探そう。

投稿者 Takenori : 05:54 AM | コメント (0)

Total : Today : Yesterday :