FC2ブログ

curlとOOoBasicマクロで、インターネット上の帳簿画像取込に成功!

(2016-11-15)
10月11日から11月14日

10月11日からはいつものようにDatini古文書館で撮影、3冊の帳簿と一箱に納められた15束の帳簿の撮影を完了しました。この15束の中には損傷の激しいものが多くあり、写真を撮り終えた後に帳簿のかけらがテーブルの上に残り、いつも心が痛みます。私達の撮影画像で見た方が却って解読しやすいとは私達の欲目でしょうか?いずれにしても早く全部撮り終えたいものです。そうすれば、Pratoの南のArezzo辺りで最近よく起きているような地震対策にもなりますし。

10月22日には2月以来はじめての日本からのお客さんが到着、25日午前お帰りになりました。フィレンツェ空港は風が強いと容赦なく到着先がボローニャに変更になってしまうので心配しましたが、無事に着陸。出発のときもやはり心配ですがこれも問題なく離陸できました。どこへご案内したかですって?そうですね、ワイナリ巡りが当初のアイデアでしたが、Pratoに来て頂いたからにはDatini古文書館は必須ですのでここへご案内し、普通は入れて貰えない書庫室でC嬢に説明して貰いました。他は、到着日午後からフィレンツェ、翌日はLuccaへ。私達はLuccaは2度目ですが、Duomoの中に入ったのははじめてで、その素晴らしさに感嘆しました。写真はこのDuomo内部です。Pisa様式の流れを汲みながらそれを更に洗練したような様式美が感じられ、高いところに繊細な柱が並んでいて、とても優美です。Luccaでの食事は魚料理でイタリアでは珍しくお料理が何種類も出てきましたので日本の一杯飲み屋のように小鉢に取り分けて味わいました。白ワインも飲み放題で3人で50ユーロ。全員満足。ちょっと昼間から飲みすぎてしまいました。

その後は二人して風邪をひき、2週間おとなしくしていましたので写真撮影はできず。今回はCさんもN教授の奥さんも風邪をひいてなかなか直らなかったようです。

[curlに出会う前]
さて、11月11日、風邪はほとんど抜けました。そして、何を思ったか以前読んだcurlのホームページを開いてちょっとだけと思いながら読みはじめました。すると、command-lineという言葉に目がとまりました。curlはスウェーデンのストックホルム在住のDaniel Stenbergさんが開発したソフトウエアで、インターネット上のサーバーとクライアントの間でのデータのやり取りを可能にしてくれます。Creative Commons Attribution 4.0 licenseにのっとり、無償で配賦されており、現在は多くの開発者が協力してさらにいいものにしていく作業が続けられています。
話をもとに戻して、なぜ、目がとまったか。ここが重要なのですが、今年の3月初旬から、インターネットのサーバーに置いた画像ファイルを私の会計システムの表に貼り付けようと、毎日あぁでもないこぉでもないと試行錯誤を続けていたことは既にこのブログで読まれた方も多いと思います(「JAVAでインターネット・サーバーから画像ファイルをダウンロード」3月20日)。そしてJavaプログラムはできました。でもOOoBasiからこのJavaを動かすことができなかったのです。これを何とか解決しようと3月20日以後ももがいていました。まず、無償提供されているJava開発ツールでもあるNetbeansを使ってみました。どうも旨くいかないので、次にEclipseを試してみました。そして、頒布用のjarファイルを作成し、それが動くところまでは行きました。問題はその次です。手続書のような小さなファイルをつくるための道具を使って、OOoBasicにJavaプログラムを認識させ動かさせる必要があります。idlc、regmerge、regview、pkgchkなどの道具がそれで、これらは開発ツールとして提供されているはずでした。ところが開発キットにpkgchkが含まれていないのです。名前が変わったのか、Versionアップがあったために付属されていないのかどうかも分からない。そしてOOoBasicソフトの開発マニュアルが膨大で、いくら読んでも、肝心な箇所に辿り付けません。サンプル・プログラムも見つかりません。目が疲れてきて、もう、読みきれない、やめようか。折角作ったJavaを捨てるのも悔しいけど。ユーザーのOOoBasicに私のJavaプログラムを実装するために、やはりユーザー自身が多くのステップを踏まなければならないことを考えると踏ん切りがつきました。

[curlに再会、そして画像取込に成功]
こういった経緯からJavaは放棄し、C++でプログラムを書いて小さなEXEファイルを作り、これをOOoBasicからShell関数を使って動かすことにしようと決めていたのです。これが4月25日のこと。
Shell関数を使うと、例えばWindowに付属されている計算器ソフトをOOoBasicから起動することができることは確認済みでした。とすると、Shell関数を使ってOOoBasicから外部プログラムを動かすことと、Command-lineでプログラムを動かすことは何か似ていそうだなと思ったのです。それで、例の真っ黒な小さなWindowsのDosプロンプトを起動し、その中で以前ダウンローしておいたcurlを実行してみました。カレント・ディレクトリをcurl.exeが入っているディレクトリに移動して、curlと入力します。すると、反応がありました。うれしくなって、「everything-curl」というcurlのマニュアルをダウンロードして読み始めました。そうしたら、サンプル・プログラムも書いてありました。それで、試したら、何と3MBの画像ファイルを2秒で取り込んでしまったのです。次はOOoBasicのマクロからShell関数を経由してcurlを動かしてみました。やったぁ!マクロから画像ファイルを2秒弱で取り込めた!これは私のJavaより速い!これがやりたかったんだ!これが11月12日のこと。
そこから進行状況を表示するためのプログレス・バーをつけたり、画像取込が終わる前に待ちきれずにカーソル移動してエラーになるのを防いだりと、OOoBasicのマクロをいろいろ手直しし、先程実用になるものができました。

[これからやること]
curlはきびきび動くだけでなく、5つのファイルをダウンロードするだけ(インストール作業は不要)で動くので、ユーザーが利用するためのハードルが低い点が素晴らしいと思います。多分、これで行けます。あの、マニュアルを読みながら、結局成功するかどうか分からない中で3ヶ月も悶々とする状況からcurlが私を解放してくれました。著作権の問題が厳然と存在していますが、これについて古文書館をどのように説得するかを具体的に考える段階に入れたこともとてもうれしいです。画像取込もできないうちに何言ってんのなんて、言われませんからね。世界中のDatini古帳簿に関心をもつ人々が、自分で画像を見ながら、システムに入力することが可能になる基本技術がこれで揃いました。会計システムに原価計算機能を加えると一応出来上がりですから、その後はHPにマニュアルを掲載する作業にも入れます。行く手がぱっと明るくなり、体も軽くなった感じです。あらためて、Daniel Stenbergさん、ありがとう!!!
スポンサーサイト


プロフィール

SCIUICIdiFDATINI

Author:SCIUICIdiFDATINI
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR