年別アーカイブ: 2010年

47件の投稿

私にとっての一言

プログラミングに集中していると、ブログを更新する余裕がありません。

 

凡庸な青年であった私に、晴天の霹靂とでもいう事件が発生し、
それを機に「よし勉強しよう」と心に決め猛烈な勉強を始めました。

家業のせいもあって、建築家になりたいと思いました。
憧れは、コルビュジェでありライトであり丹下健三でした。
小さいときから「よくできる子」ではなくて、年を取ってからの勉強では「方法」が重要でした。
どうすれば努力に見合った成果を挙げることができるか。

いくつかの人生経験をして、大学院の学生になっていました。
貧乏学生でしたので切り詰めた生活費から可能な限り沢山の本を買い、
売り出しの建築家の言動を追いました。

しかし、彼らの言うことが私には理解できまん。
建築家の名前は忘れましたが、
カリスマ建築家の文章にハイデガーの「存在と時間」が必読であると書いてあります。

私は早速買い求め、読み始めますが、まったく理解できません。
私は自分の程度の低さに落胆しました。
数回、挑戦しましたが、どうしても読み進むことができません。

意を決して、ハイデガーの「存在と時間」を翻訳した東大の原佑教授に電話しました。
翻訳者だし、日本では誰よりもハイデガーを理解している人に違いないと思ったからです。

先生は赤門の前の喫茶店に私を誘い、ケーキと紅茶を注文してくださいました。
私は、「ハイデガーが全く理解できません。『存在と時間』はどのように勉強すればいいのでしょうか」と切り出しました。

先生が、「先ず、ソクラテスを読みなさい。次にはアリストテレス、その次にデカルト…」というように、
勉強の方法を教えてくださることを期待していました。

しかし、先生の回答は全く私の予想しなかったものでした。

「わかる訳ないでしょう。私だって何度も読み返し、やっとある程度理解しているのです」

そのとき私はどんな顔をしたのでしょうか。絶句したと思います。ゼロクリア。

先生が私の申し出を断ってお会計してくださったこと以外、何も覚えていません。
結局哲学の話はなかったと思います。

 

「もっと先へ」と努力し、「もっとパーフェクトな方法で」と思い続けていたのですが、
まったく異なる方法論に気づきました。

それ以来勉強することが負担でなくなり、気楽に勉強できるようになりました。
これまでの私にとって、原教授の一言が最も私を励まし続けた一言であったと思います。

と同時にあんなに知ったかぶりで喋り捲る建築家はいったい何なのだと、
私の心の深層に消しがたい嫌悪感が生じていたと思います。

VB6プロジェクトのアップグレード 5

ひたち海浜公園の水仙、見ごろでした

VB6のアップグレードの目処はついたのですが、細かいところに手間取っています。

一つは、古いプログラムでもFarPoint社のSpreadを使っているのですが、行と列の番号が1からスタートしていますし、
新しいものでは0からスタートしています。
従って、細かく調べないと新旧プログラムの計算結果が大きく異なります。

それは少し丁寧にプログラムを比較していけばいいことですが、
計算結果の微妙な相違を突き止めるのはもっとやっかいです。
このプログラムでは、お金の計算をしています。
1円1銭ほど細かい必要はありません。
概算でいいのですが、それでも二つのプログラムが少しでも違えば突き止めなければいけません。

どれだけ大きなお金の計算になるか分からなかったことと、
多分当時のデータ型の制限でお金の計算にダブル(Double)を使っています。
.NET環境では色々な種類のデータ型が用意されていますので、最終的には新しい環境で最適なデータ型を選択したいと思いますが、とりあえず二つの開発環境での計算結果の相違についての究明が急務です。

孫のこと

コーちゃん。バイバイ。
コーちゃん。バイバイ。

1歳半の孫がいます。初孫です。
「バイバイ」とか「あっち」とか、
やっといくつかの単語を発声する程度ですが、
こちらのいうことはおおよそ理解しているようです。

私のお気に入りです。
「孫はかわいい」とよく言いますが、私も例外ではありません。
孫の名前は「コー」ちゃんです。
とても活発な子です。

自分の子供を育てたときは、
日常に精一杯でまったく気づきませんでしたが、
ときどき見る孫では日に日に進歩する子供の成長にとても感動しています。

生後8ヶ月過ぎたとき、嫁が2日続けてコーちゃんを我が家につれてきました。
今日突然手をたたきます。
嬉しそうに笑顔で何度も何度も手を叩きます。
昨日そんなことはしていなかったのに。
昨夜、息子が教えたのだそうです。
ついこの間やっと首が座って、椅子に座れるようになったところなのに、
「わずか一日で新たなことを身に着ける」知能の素晴らしさをみた思いです。

生後8ヶ月くらいでハイハイを始めます。
まだ腕の力が弱く腕を交互に繰り出すことができないため、
前に進むことが出来ません。
四つんばいになって、前ではなくむしろ後ろに進みます。
しかしその時期を過ぎると「ハイハイ」が出来るようになります。
どんどん突進します。
前にあるものは山超え谷超えです。
何が何でも前に進みます。

ハイハイし、ソファーによじ登りました。
私は「コーちゃんは随分成長したな」と感心してみていました。

ソファーから降りるときです。
頭から降りるのではなく、向きを変えて足から降ります。
当然といえば当然ですが、私はとても驚きました。

私はプログラマですから、プログラムのことを考えます。
ロボットで前進プログラムを書いたとして、
「降りるとき向きを変えて足から降りるプログラムはどのように書けばいいのだろう」
結構難しいプログラムです。

孫は簡単にクリアしています。

10ヶ月過ぎた時です。
彼は紐が好きで壁から下がった紐をぎこちなく左右に引っ張ります。
紐の先にビニールの袋がブラ下がっていて、
紐を引っ張るとその袋がチャラチャラと音を立てます。
それが面白いらしいのですが、
しばらく遊んでいてその紐を私に渡すのです。

私は「とんでもないことだ」と驚嘆しました。

「自分」だけでなく、「相手」という認識をしています。
猿はこのように自分の遊びをまわりの猿に手渡すことがあるのでしょうか。
人間の脳はわずか生後10ヶ月で「他者」への意識があります。
もう猿がいくら頑張っても届かない知能を身に付けているのではないでしょうか。

一月くらい前彼の家に用事で行き、
ついでに彼を連れて2時間程散歩しました。
私は彼を気にいっていますし、彼も私のことを気にいっていると思います。
散歩から帰って私は「バイバイ」して我が家に帰ろうとすると、
彼はべそをかいて泣き出しました。

おっぱいがほしいとか、手をはさんで痛いとか、
生理的な欲求や不快感から泣き出すことは理解できます。

しかし、「爺さんと分かれるのが悲しい」は生理現象ではありません。
大きな心理的発達があるのでしょう。

数日前にコーちゃんと母親が我が家に来ました。
私は、彼のためにボーロという小さな丸いお菓子を用意していました。
彼はそれが好きでパクパクしています。
やがて、母親が「あーん」と「頂戴」のしぐさをします。
コーちゃんは小さな手に一つボーロを掴んで、母親の口に近づけます。
母親が食べようとすると、素早く手を引っ込めてボーロを母親でなく、
自分の口に入れ「キャッキャ」といって喜びます。
このいたずらの脳の仕組みはいったいどうなっているのでしょうか。

日曜日家内と二人でコーちゃんのうちに行きました。
動物の絵本を見ていると、
犬の写真があって、それをみて彼はちいさなベロを長く出し何かを言います。
「何だろう」と思っていましたが、犬のまねをしているのです。

「なるほどそういうことか」
私が早速ベロをだして「ワンワン」。
コーちゃんはキャーキャーいって興奮します。

べろを出して
べろを出して

私たちソフトウェアのプログラマは、
ほんのちょっとしたロジックにどれだけの時間をかけているのでしょう。

子供は躊躇なく物事に突進し、
大きく目を見開いて真正面から相手をみて、猛烈な勢いで情報収集します。
そして脳をフル回転して常にプログラムを修正発展させていきます。

人間の脳は信じられないほどすばらしい仕組みです。

VB6プロジェクトのアップグレード 4

[VB6プロジェクトのアップグレード]は目処がついた。と思っていたのですが…

[Microsoft.Office.Interop]を使って、アプリケーションのデータをWordに書き出すこともExcelに書き出すこともできました。
これで終わりと思ったのですが、グラフを書く作業が残っていました。

VB6ではOLEオートメーションを使って、ここにExcelグラフを表示していたのですが、
VS2008ではOLEオートメーションはもはやサポートされていないようです。
[Microsoft.Office.Interop]を使う可能性を色々調べたのですが、結局どうすればいいか分かりませんでした。

VBアプリからVSTOをコールする方法があればこれがベストなのでしょうが、解答を見つけられませんでした。

となると残された方法は、クリスタルレポートかMicrosoftレポートのグラフを使う方法です。

色々試みてMicrosoftレポートでグラフを書くことができました。
しかし不満があります。できればクラス等のプログラムのデータを直接使いたいのですが、うまくいったのは一度DBに書き出してこれを使う方法です。
Microsoftレポートは、プログラミングの余地があまりありません。それにどうしたことかウィザードでデータセットにデータを読み込むことができませんでした。
ここを自前のコードに書き換えてなんとかグラフを表示することができました。

最低限の要求を確保しましたので、もう少しクリスタルレポートとMicrosoftレポートを研究したいと思います。

また、この場合やはりVSTOは使えないのか。
どうしても分からないときは、私はMSDNのフォーラムに質問を出します。
問題を整理してこのフォーラムに質問したいと思います。

VB6プロジェクトのアップグレード 3

プログラムのデータをWordおよびExcelドキュメントとして、書き出すプログラムを書き換えました。

VSTOに興味があってVSTOを使いたいと思っていたのですが、プログラムからこれらのドキュメントを作成する方法がわからなく、また単純にこれらのドキュメントを作成するときにVSTOがいいのかどうかも分からなく、結局従来の[Microsoft.Office.Interop]を使ってプログラムを書き換えました。

VSTOは基本的にスタントアロンでWordやExcelを起動して、そこから様々な操作をするため仕組みだと理解しています。
最近はOffice開発での参考資料は殆どVSTOのもので、VSアプリケーションからOfficeドキュメントを作成する参考書はあまりありません。
2、3参考書を新たに購入しましたが、余り役にたちませんでした。


結局Wordの書き出しは、昔のVisual Studio に付属していた[Microsoft Office 2000/Visual Basic プログラマーズガイド]が一番役に立ちました。

Excelの書き出しは、FarPointのSpreadを使えば命令一発でいいのですが、書式も書き出すとなると色々調べなくてはいけないので、
昔のプログラムを少し修正するのが一番簡単との判断でExcelファイルを一から作成することにしました。

VB6プロジェクトのアップグレードは、気になっていたところは大体解決したので、
あと1ヶ月程度で満足いく程度の完成度にできると思います。