コーちゃんの心理

コーちゃんの引っ越しは3月12日に決まりました。遠くの都市ですから、もうあまり会えなくなります。とても悲しいことですが、息子の生活が第一です。コーちゃんがいい子で育つことを願うばかりです。

さて、先日ホームセンターに買い物にいくので、コーちゃんを連れて行きました。
最初に動物のフィギャーを買いました。以前可愛いい犬のフィギャーを買ってやったので、ゾウとか馬とかを選ぶかと思いましたがサメを選びました。

「これがいいの?」と何度も念を押しましたが、「うん」と答えます。正午近くだったので、マクドナルドで食事をし、必要な日用品を買って帰途につきました。

しばらく行くと後ろのチャイルドシートでコーちゃんが「恐竜」といいます。「恐竜」とは、そこから30分ほどの自然博物館で、これまで数度いったところです。そこには恐竜の骨格模型や「ガオー」と動く恐竜模型のほかに、小さな水族館があってサメがいるのです。

なるほど、サメを見たくなったのか。

「恐竜にいくの?」
「はい」

お母さんの留守電に「恐竜を見に行きます」と伝言し、車を反転させて自然博物館に向かいました。

途中コーちゃんは眠ってしまいました。

自然博物館に到着。
自然博物館に到着。

さっそく恐竜の部屋に直行。

それからサメを見に行きました。手にしっかりサメのフィギャーをもって、何度も何度もサメがぐるぐるまわってくるのをガラスに額をくっつけるように観察しています。

標本室に移ると幼稚園の遠足の子供がたくさんいました。コーちゃんは彼らに混じってわが物顔にそこらじゅう駆けまわっています。

幼稚園の子供と一渡り遊んだあと、外に出てここでも駆け回ります。もう3時を過ぎていたので、「帰ろう」とコーちゃんを促して、駐車場に向かいました。コーちゃんはさすがに疲れたらしく、なかなか動こうとしません。何度も「帰るよ」と呼びかけます。

しぶしぶついてきます。

抱いてほしいのです。

彼は私にはダダをこねません。私はいつも彼には優しくしています。しかし私は優しいけれど甘い人間ではありません。もし彼がダダをこねれば拒絶すると思います。

彼は一切ダダをこねません。

車にたどり着いて、チャイルドシートに座らせると、小さい声で「お母さん」といって涙ぐみます。おそらく母親がいれば「抱っこ」を強要したのでしょう。

彼の心理はどのようだったのだろうと思います。私は彼に優しいのですが、彼はその優しさに増長してダダをこねることはないのです。私が怖いと思っているのでしょうか(私はこれまで一度も彼を叱ったことはありません)。あるいは彼はダダをこねて優しいじいちゃんの不評を買い、じいちゃんとの良好な関係を損ないたくないと考えているのでしょうか。

あるいは幼児のそれとは違う心理なのでしょうか。

くたびれた彼にもう少し優しくしてやればよかったのだろうか。あるいはそれでよかったのだろうか。

遠くに行ってしまうと、会うこともなくなるのでしょう。彼の心のなかに優しく気の合うじいちゃんを覚えていてほしいと願っています。

晃一くん2歳6ヶ月。

Windows開発ドキュメントの作成

S社が「パーキング~」をカスタマイズするにあたって、弊社は一部をDllにしてソースを公開しました。ソース部分は読めばいいので細かい解説はしませんが、Dllの部分は解説ドキュメントが必要です。

プログラムの公開は初めてだったので、人様にお見せできるようなドキュメントがありません。急きょドキュメントの作成に取り掛かりました。

ドキュメント作成にマイクロソフトが提供する、[Sandcastle]を使いました。ソースコードにコメントを入れるだけで素晴らしいドキュメントを作ってくれます。

とりあえず1週間足らずで一通りそろえることができました。

[WIX]といい[Sandcastle]といい、無料の実用的で有益なツールが使えるのは大変ありがたいことです。

札幌

弊社駐車場賃貸管理ソフト「パーキング~」をカスタマイズしたいという話があって、その支援のために札幌に来ました。多分15年ぶり位です。

寒さの程度がわからなくて、3泊4日の旅にボストンバッグに沢山の防寒衣服をつめこんで、快晴の成田を飛び立つと、福島あたりから下界は銀世界です。

青森の最北端尻屋岬から海上に出て、陸が見えてきたところに雲の合間から千歳空港が見えてきました。東京の空港に比べ広々としたところにゆったりと空港が作られています。

空港にはS社のT社長が出迎えに来てくださいました。ここ数日暖かくなって「札幌雪まつりの雪も解けかかっています」のようなお話をしながら暗くなった札幌に到着。

ホテルにチェックイン後S社に移動、T社長のご家族も集まって、歓迎のホームパーティで出迎えていただきました。

S社は住宅地の中の一般住宅をそのまま事務所にしています。アメリカではよくあると聞きますが、アットホームでとてもいいなと思います。

今回私が札幌に来た大きな理由は、ソフトウェアの内容をT社に説明することです。説明は順調に進み、昨日は天気がいいので会社のまわりを散歩しました。
メイン道路で車が通る部分は雪はありませんが、裏道には逆に雪がいっぱいあり、歩くのに神経をつかいます。わずか20, 30分の散歩ですが、顔がピリピリし、やはり北国の冬は厳しいと実感しました。

仕事の目途が付きましたので、本日作業を早めに終え、嫁たちが希望の[ジャガポックル]を買いにJR札幌駅に行きました。

その足で大して遠くないので、寒い中大通り公園まで歩いて雪祭りの出来具合を見に行きました。雪まつりは明日から始まりますが、もうほとんどの雪像が完成していて多くの人が見物に来ています。本番には身動きとれないほどの人出になるそうです。

明日午後帰ります。

ボランティア

孫が引っ越すことになり、大変かなしく思っています。

「そうだボランティアをしよう」と思い、近くの中学校にメールを送り、
「できることがあればやらせてください」とお願いしました。

学生のとき中学生を何人か家庭教師で教えた経験がありますので、
「英語なら大丈夫だろう」
「数学は教科書を見ないとわからないが…」
「勉強の方法なら教える自信がある」等々考えて、
補習のお手伝いでもさせてもらおうと思っていました。

中学校の校長先生からお電話をいただき、
「一度お会いしたい」とのこと、
早速、すぐ側の中学校に出かけました。

地域内の二つの小学校の校長先生もお見えで、
具体的お話ではなかったのですが、
「顔合わせ」ということで、
できることをやらせていただくようお願いし、
先生方もそれなりの期待をされた様子でした。

私が住んでいるところはつくばに1時間程度のところですし、
近くには東大の研究所もあります。

これらの施設には私自身多少のご縁がありますので、
子供たちに研究所を紹介したり、
逆に研究者の方に学校に来てもらったり、
子供たちに多少とも科学技術への親近感を持ってもらうお手伝いができればいいな、
と思っています。

まだ具体的ではありませんが、
次の世代の子供たちに少しでも役に立つことができれば、
これはこれでうれしいことです。

シリアル番号の検査 in MSI セッアップ、 WIX

パッケージソフトを作って、インストールの途中でシリアル番号のチェックをしたい。[InstallShield]等の高価なソフトを買うほどのことではない。このようなケースは結構あるのではないでしょうか。

[Visual Studio]でSetupProjectを作成できますが、添付されているシリアル番号の検査は、非常に単純で内実を知っているユーザからすれば全くの無防備です。

恐らく政治的な(あるいは商売上の)方針だと思いますが、マイクロソフトはこのあたりの実装について公開していません。公開されているカスタムアクションは、製品のインストール終了後直ちにインストールしたプログラムを開くとか、データベースを作成するとかの方法の情報だけで、インストールの途中で独自のシリアル番号のチェックするルーティンを走らす情報はどこを探しても出てきません。

私自身は[InstallAware]というソフトを購入したのである意味緊急という訳ではないのですが、めったに使わないのにOSや[.Net Framework]の更新があるたびに、買い替えなければいけないのは抵抗があります。

手持ちのツールでなんとかしたいと長く考えていました。

なんとかなるのではないかと思いますのでご報告します。
道具立ては[Visual Studio 2010]と[Wix](WixEdit:Wix用無料IDE)です。

[Visual Studio 2010]には、マネージコード用のカスタムアクションDll作成ツールが付いていて、C++でもVBでもC#でもカスタムアクションが作成できます。手馴れた言語が使えるのはありがたいことです。

次はWixの情報です。これがなかなかありません。
多分唯一といっていい解説書は、[Wix : A Developer’s Guide to Windows Installer XML](PACKT)です。
ドンぴしゃりの解説はありませんが、Wix一般を勉強するにはいい教科書だと思います。紙が不必要に厚いのが気に入りませんが、英文は平易ですので読み進むのに抵抗はありません。

一番ほしいシリアル番号ルーティンの組み込みの方法は、インターネットで入手可能な[Wixチュートリアル](日本語訳)で十分です。

これだけあれば、[Visual Studio]のセットアッププロジェクトで可能な限りキチンとしたセッアッププロジェクトを作成し、インストールパッケージ(msi)を出力。出来上がったmsiを[WixEdit]で逆アセンブルし[wxs](XMLソースファイル)に変換して、これにカスタムアクションを組み込めばよい。

と思っていたのですが、そうは問屋が卸さないようです。
[Visual Studio]の[msi]を逆アセンブルした[wxs]は、教科書に書いてあることといささか異なります。出来上がった[wxs]はすんなり使えません。

これを色々調べながら使うくらいなら、はじめから[WixEdit]でwxsを作った方がいいようです。[Visual Studio]はDllの依存関係と所在を教えてくれますので、[Visual Studio]ではその辺りの情報だけ使うとよいと思います。

完全ではないのですが、模擬的にこれでよさそうだという[wxs](msi)を作りました。WixEditでターゲットマシンのディレクトリを作り、[Visual Studio Setup Project]からDllの情報を参考にしながら、ディレクトリの中にComponentを作成。[Wixチュートリアル]に従って[UI]を作成。この中で[Visual Studio]で作っておいたカスタムアクション(.CA.dll)をコールするようにしました。

まだ色々詰めなければいけませんが、なんとか物にできそうです。