category name  »  page title date

パソコンな日々

このところ、パソコンづくめの毎日であった。

人口ビジョン

高知のO先生に頼まれて、いくつかの町の人口ビジョンをつくった。これまでの人口の推移をいろいろな角度から分析したのちに、将来の年ごとの出生率と出生児の性比、年齢階級別の生存率、純移動率などを仮定して、2060年までの人口の推移をいわゆるコーホート要因法で推計して、さらに政策的要因をいれて将来の目標人口を設定する、という仕事である。
というと簡単であるが、労力はそれなりにかかる。ひとことで「仮定する」といっても様々な条件がありえるので複数のケースを用意することになる。ああなったら、こうなったらと、ある町では7つのケースを設定した。ケースごとに推計を行って、その結果を総人口の推移グラフや、年齢区分別の推移グラフや、各年次の人口ピラミッドなど、説明するためのわかりやすい図表に作成しなくてはならない。ちょっと係数を変更しただけで、最初からもう一度全部やり直すということになる。
いずれも定型の一連作業なので、なんとか省力化と汎用化ができないかと悩みつつ、とりあえず腕力で仕上げたものの、どうもすっきりしない。それで、すべて終わったあと、やおら汎用システムの制作にかかった。
全国どこの自治体でも簡単に使えて、各ケースの設定内容が自由に変えられて、変えたとたんに最後の人口ピラミッドまでできている、というもの。

VisualBasic

使用言語はエクセルのVisualBasic。いわゆるマクロである。
エクセルベースであれば、使いやすい人が多いだろうということと、グラフ化するのが簡単そうに思えたからである。VisualBasicは単純な言語だから、なんとでもなるだろう、という程度の覚悟であった。

ところがどっこい、これが悪戦苦闘。VisualBasicは、なかなか素人には使いこなせないということがよくわかった。仕様どおりに動かないのである。たとえば、セルに名前をつけることはエクセルを使ううえで常識と思っていたのだが、VisualBasicでは名前に関わるバグがたくさんあって、危険だからプロは名前を使わないのだそうだ。それから、現在アクティブなワークシートの中の範囲をあらわすのに、ただ単にたとえば“E1:G10”とすればよいと思ったら、どのブックのどのワークシートのどこというようにフルアドレスで指定しないと間違ってしまう、ことがある。これには再現性のないことが、さらに困る。間違うかもしれないし、間違わないかもしれないのである。だから、いつもフルアドレスで指定するのがよい。これも隠れた常識らしい。そんなこと知るか!と叫びたい場面が多々あった。
開発環境そのものも実に不親切な代物で、たとえば、エラーが発生すると当然エラー・メッセージが出るのだが、どこでどんな理由で起きたエラーかということがたいていの場合わからず、手探りで捜索するしかない。あてずっぽうに近い勘が当るかどうかということが、プログラム開発の効率を大きく左右するのである。

それでも汗まみれになりつつ、どうやら、とても便利なシステムができあがった(上図)。できあがったものの、これ、使う機会があるのかしらとも思う。とも思うが、一応達成感は得られたのでよしとしよう。

レシピーレコード

Tさんには、いつもお世話になっている。わたしが名簿管理などに使っているファイルメーカーProのバージョンが5だというのを知って、7を提供してくれたのもTさんだし、小さなプラントボックスでゴーヤを育てていたら、これではゴーヤがかわいそうだと立派な土嚢に専用の土を調製して植え替えてくれたのもTさんである。
そのTさんが、料理のレシピー集のデータベースをつくっていて、それをファイルメーカーで管理したいのだが、と言ってきた。彼はもと大手の醤油メーカーの偉いさんだったので、いまだにそういうことに凝っているのである。
とにかく、世話になっているTさんがそう言うのだから、よしわかった、と引き受けるのが自然の成り行きというものである。

FileMakerPro Script

何年かぶりで、ファイルメーカーのスクリプトを組んでみた。スクリプトは自動実行の手順書のようなものである。このスクリプトは、なかなかよくできている。思い出さなくてもよいくらいに、懇切丁寧でかつ簡単にできているのも嬉しいが、バグが少なくてちゃんと仕様どおりに動くという安定性はさらに気分がよい。スクリプティングやデバッグの環境がまどろっこしいことや、vistaとの相性が悪いらしくて思わぬところで画面が暗転してしまう、簡単すぎてできることが限られているなどということもあるが、この安定性はそれらのストレスを補って余りある。・・・と思った。

日本焚火学会

そうこうしているうちに、10月10日に開かれる日本焚火学会の年次大会があと一月という時期になり、案内通知を出さなくてはならないことになった。
案内通知は、会員のうちでメイルアドレスの登録のある会員(約250名)にはメイルで、その他の会員(約450名)にはフェイスブック、葉書、口伝のいずれかで出す。その仕分けはけっこう大変なのだが、企業秘密であるので詳細は伏す。
問題は、いずれの場合も「詳しくはHPで」と振るようにしているので、まずは焚火学会のHPの更新を行わなくては、なにごともはじまらない。
だからどうだということでもないのだが、わたしの場合、このために何ヶ月ぶりかで更新作業を行うことになると、余計な根性が息を吹き返してきて、いろいろと回り道をしてしまう。

CSS

まず、ついでに画面のレイアウトのちょっと気になっていたところを直すことにした。そのためには、全ページが参照しているレイアウト記述用のCSSというファイルを更新する。

CSSもスタイルシート言語というコンピュータ言語の一種である。これは、それぞれのブラウザが解釈して画面表示に反映してくれるのだが、ブラウザの種類やバージョンによっては受け付けないコードがあったり、受け付けても微妙に結果が異なる場合がある。MicrosoftのInternetExplorer(以下IE)にいたっては、国際的な標準仕様となっているW3Cの勧告をわざと逸脱している部分があり、さらにバージョンによって大きく挙動が異なっている。このために、他のブラウザとの互換性がはなはだ悪い。
それで、CSSをきちんと使おうとすると、IEにも、さらにIEの各バージョンにも対応できるように、きわめて煩雑なコードを書かねばならない。これをクロス・ブラウザ・テクノロジともっともらしく呼ぶらしいが、W3C勧告を尊重していれば、世界中のアマ・プロのプログラマにこんなわずらわしい思いをさせなくてすんだはずだ。
と、ぶつぶつ言いながら新しいCSSを書いた。ただし、こちらはプロではないので、充分なことはできない。ChromeとFireFoxとSafariだけでチェックし、あえてIEには対応しないことを画面上に明記して困難を回避することにした。あいかわらずIEのシェアは高いらしいが、寡占状態だから何をしてもよいという世間の寛容さが、あのおよそ信じられないような使いにくさをもつワープロソフトWordをそのままにしているという実態への、ささやかな反抗である。

HTML

それから、これもついでに文面や写真のちょっと気になっていたところを直すことにした。そのためには、各ページのコンテンツを記述したHtmlファイルを更新する。新しいページもあらためてHtmlで記述する。さらに、全体の目次に該当する部分も追加したページへのリンクをはれるよう修正する。

このHtmlもマークアップ言語というコンピュータ言語の一種である。これもIEはW3C勧告に違反していて、それをカバーするために「IEハック」というアクロバットな技法まである。Stu Nicholls氏のCSSPLAYというサイトは、創造性あふれるナビゲーション・メニュー用のコードを満載していて、わたしもたびたび参考にさせていただくのだが、そのサンプルコードは、単にIEの各バージョンに対応するためだけに本来の長さの3倍も4倍も長くなっていた。この理不尽さも、わたしの反抗の理由である。
どなたか、「わたしはIEを使いません」という共通バナーでも公開してくれないものか。

PageCaster

実は、これらの作業を行うのにいちいち個々のファイルを手で直したわけではない。それでは混乱しかねないので、簡単な文法のマークアップ言語もどきをつくって、それを直すとそれぞれのページのHtmlに反映され、必要なら目次も再構築してくれる、といったようなシステムを使っている。このためのアプリケーションを「PageCaster」といいます。
もどきとはいえ、守るべき文法は当然ある。自分で作った文法ではあるものの、ときどき使うだけだと、そのたびに思い出さねばならない。簡単な文法なので解釈のバグはほとんどないが、簡単な分だけ逆に融通の効く面があって、いろいろと技法を編み出して一人悦にいってきた。だから、それを思い出すのにも実は骨が折れるのである。

C#

PageCasterでソースをいじっていると、PageCaster自体の仕様をさらに更新したくなってくる。それで、更新することにする。
PageCasterは、C#というプログラミング言語でつくった。C#はMicrosoftが作成したもので、実によくできた構造化言語である。VisualBasicやIEと同じ会社が開発したものとは思えない。
統合開発環境であるVisualStudioでC#を使っていると、サクサクと仕事がはかどって、実に気持ちがよい。エクセルやファイルメーカーをいじっていると、なんでこれをC#でやらせてもらえないのかと、いらいらしてくる。まあ、いろんな事情があるんでしょうな。
PageCasterはずいぶん以前に作ったのだが、その後こんな調子でバージョンアップを繰り返し、名前もPageCaseter2からCast3、さらにBonFire、BonFire2と改名して現在に至っている。ひとりよがりではありますが。
BonFireの命名は、主に日本焚火学会のHPの更新に活躍するようになったからである。ただし、汎用の掟は守っているので、実際にBonFire2で管理しているサイトはそのほかにも5つ6つある。実際にこのブログもBonFire2で管理している。

というようなわけで、この1週間、エクセルのVisualBasic、ファイルメーカーのスクリプト、PageCasterのタグ、CSS、Html、さらにC#とおよそ概念も単語も文法も、ついでに信頼度も異なる言語にずっぽりとつかって過ごした。おかげで、少し若返ったような気がしなくもない。
たまたま日本焚火学会のHPではJavaScriptを使用していないので、それは免れたが、たとえばこのブログ・サイトなどはけっこうJavaScriptに頼っているので、ここをいじろうとするとさらに相手にする言語の数が増える。
こんな乱世のような状態はいつまで続くのだろう。100年後には統一された超高性能言語が使われるようになっているのだろうか・・・・

唐突に思い出したのは、トノのことである。バリ島のアピアピにしばらくいたジャワ出身の少年。小学校も出ていないトノが7ヶ国語を自由にあやつるのに感銘を受けた。

文明人トノ

わたしも、この程度のことでウジウジ言うのは恥ずかしい。多様性こそが持続的発展の基礎なのだから。
多様性がなくなると、あのWordの席巻を許すような世の中になってしまう。

大切なことは、いろいろな環境に謙虚に向き合いつつ、それぞれのよいところに敬意をはらって、自身を高めていくことだろうと思う。
だから、それを通してひとりよがりではあっても、自分なりの美学というものをきちんと構築して守っていく、というのが一番よい態度だ。

inserted by FC2 system