2008.04 春はあけぼの

わーくすてーしょんのあるくらし ( 182 )

2008-4 大橋克洋

< 2008.03 毎日1回フルスイング | 2008.05 複雑なものを簡潔に >

「一番好きな花は?」と尋ねられれば、迷うことなく「桜」と答えます。 その他に好む花は、 菖蒲の花の目にしみるような紺と天に向かってすっと伸びた姿や、 桔梗、山吹の花などがあります。 考えてみると、いずれも日本的なものばかりですね。

しかし中でも桜は木全体、あるいは山全体をいっぺんに埋めつくす華やかさと、 その散り際の潔さが好きです。 今回の写真は、友人とお花見に行くというので、 家内に接写を注文し撮ってきてもらいました。 2月は結構寒かったにもかかわらず、 3月初旬を過ぎると4月中旬くらいの暖かさとなり、 3月23日頃には東京でも桜が咲き始めてしまいました。

「春はあけぼの、」は清少納言の歌ですが、 朝の空の白むのも少し早くなってきました。 大分前から朝方プログラマーにスイッチしたものの、 冬場は温い布団から抜け出し難いものです。 しかし 大分起きやすくなってきました。 まだ夜の明けやらぬうちに起きだして、 簡単な柔軟体操をするのが毎日の日課です。

さあ4月からは 特定健診だとか保険の点数改訂だとか、 今までに輪をかけてややこしく がんじがらめで 医療の世界はますます大変なことになってきます。 特にお年寄りや救急医療は、悲惨なことになりそうです。 小泉政権の「医療をぶっ壊す」は、 安倍、福田と政権が変わっても 続いています。 ようやく世間も「医療崩壊」を実感するようになったようです。 そもそも「崩壊」というものは、 一定のエネルギーが溜まった結果 ついに耐えきれなくなって生ずるものです。 一旦始まったら止まりません。NY の高層ビル崩壊や、 雪崩のようなものですね。

○ 今月の脳トレ

最近は、ほとんど Ajax で javascript と PHP、MySQL のカラダになってしまいました。しかし後述するような必要があって 久々に MacOSX の Cocoa 開発環境で作業することになりました。 Leopard になって、開発環境 Xcode が大きく様変わりしました。 今迄で一番大きな変化と思います。

使い勝手もかなり違って、最初はとまどいました。 例えばオブジェクト同士をバインドさせる操作などが、 以前とは大きく違っていて(いつもマニュアルを読まず、 試行錯誤する私としては)結構なアドベンチャー・ゲームでした。 次第に使い方がわかってくると、 なるほど機能アップしていることがわかります。 まだまだ使っていない便利そうな機能が満載です。 現在 作業は Ajax に特化していますが、 いずれまた それらに挑戦することになるのでしょう。

さて、そんなことで 66 才の誕生日を過ぎても、 プログラミング能力はほとんど以前と変わらないことを確認しました。 一時まったく駄目になっていたのですが、 ここまで回復した理由は、何と言っても中国武術による 「一日一回フルスイング」です。 短時間ですが肉体を極限まで使うことにより、 脳の血流もよくなり気力も充実するからと思います。 ある程度 年齢がいっても、 体力・脳力ともに 使えば それなりに改善されることが証明されました。 次は「古希を過ぎたプログラマー」を目指しています。

○ 長年のスケジュールのデータ変換と統合

電子カルテNOA の Cocoa バージョンから、 新しいWeb版へのデータ移行に手間取っています。 複雑な作業に ちょっとくたびれたので、 手慣らしと気分転換ということもあって、 昔からの古いスケジュール・データの 変換・移行作業にとりかかりました。

スケジュール管理の初期の頃は Shell コマンド、さらにはテキスト・エディター Emacs と lisp 言語を使ったものでした。 その後 NeXTSTEP で専用アプリを作り運用していましたが、 やがて NeXT 社の Apple 社への吸収合併とともに、 Cocoa アプリへ移行しました。 さらにこれを外出先からも読み書きできるようにと、 5年前データベース OpenBase と WebObjects を使って Web アプリへと移行し、 これが今年 MySQL と Ajax のアプリへと移行してきました。 スケジュールデータは、このような長い変遷を経てきたものです。

「わーくすてーしょんのあるくらし」 1987 年 9 月号に当時のスケジュール管理について書いてあります。 予定をワイシャツ・ポケットの薄い手帳にメモしておき、 逐次コンピュータ上のスケジュールと手入力で同期するのは 現在もまったく変わりません。 変わったのは、スケジュールをインターネット上から 読み書きできるようになったこと。そして DB 特性を生かし、通年検索できるようになったことです。 いずれは iPhone で直接 読み書きできるようになるんでしょうか、、 自作アプリの読み書きが、すぐ簡便にできるようになるとも思えません。

さて、まずは Cocoa 環境で使っていたデータの MySQL への読み込みです。 Cocoa ではデータを plist 形式で保存していました。 これは XML に似た形式のものです。これを解析して CSV へ変換し、 MySQL のデータとマージしました。 データ変換に多少の試行錯誤もあり、2、3日ほどかかりました。 ちなみに Cocoa 環境のデータは OpenBase + WebObjects 版には、 まだ読み込んでいませんでした。つまり長年のデータが、 plist、OpenBase、MySQL と3カ所へ分散していたのです。

次は OpenBase からのデータ移行です。DB 同士なので 簡単なはずなのですが、なかなかそうもいきません。 結局 以前 住所録データの変換でやったと同様、 WebObjects で表示された画面のソース つまり HTML を解析して CSV データとし、 これを MySQL へ読込みました (現在の Ajax アプリでは javascript を使っているため、 画面ソースがデータそのものを反映しておらず、 今後その手は使えません。MySQL から CSV で吐き出す機能があるので、 それを使うことになるのでしょう)。

これで丁度 20 年分のスケジュール・データを一貫して MySQL データベースにマージできました。 ほう、面白いですねえ、 キーワード検索したものを一覧表示できますので、 20年の間の色々な事柄を時系列的に眺めることができます。 まさに「継続は力なり」ですね。とても面白いです。 「ソフトは消耗品、データこそが財産」を実感するところです。

○ 電子カルテのデータ変換

返す刀で、再び電子カルテデータ変換作業に戻りました。 今迄のデータは OpenBase に入っています。これをスケジュール同様 MySQL へ移行したいのですが、 やっかいなのは以前も述べたように RTF やイメージデータなどが混在していることです。 このため変換作業はそう単純ではなく結構複雑となって、 頭を悩ませるところです。

RTFD の中のイメージデータはまだ取り出せていませんが、 Cocoa で変換ツールを作り、とりあえず RTF の文字列は プレーン・テキストとして取り出せるようになりました。 そんなことで、カルテ・データの変換も8割方うまくできてきましたが、 まだデカイものですと途中でコケたり、文字化けが混ざったりします。 すこしずつ雑草取りをしているところです。 5月の GW には何とか仕上げたいところですが、、

それから2日ほど経ました。ようやく Cocoa 版 NOA からのデータを JSON を経由して、Web 版 NOA への移行に成功しました。 イメージデータだけはまだ取り出せていませんが、 とりあえず私のところではイメージは余り記録していませんので、 これで何とかなりそうです。

今迄ひっかかっていたところは、次の2点でした。 最初は javascript 側で JSON データを展開し サーバへ送ろうとしたのですが、 URL で送付できるデータ容量に上限があることがわかり断念しました。 次に PHP 側で JSON ファイルをロードし展開しようとしたのですが、 含まれる文字コードによっては PHP での json_decode() がうまく作動しません。 javascript なら、ちゃんと decode できるのですが。

しばらく頭を悩ませ 考えだした解決策は、 javascript のクライアントから全データを送るのではなく、 展開した JSON から1レコードずつ取り出し サーバへ送る方法です。Ajax で これをどう実現するか考えたあげく 「ちょっとトリッキーかな、」と思った方法が 功を奏しました。 まだデータ変換の操作が簡便とも言えませんが、 とりあえず何とかなるでしょう。 これで従来のデータを新しい電子カルテに移行しつつ、 現場投入できる見通しがつきました。

○ 今月の筋トレ

さて今月は、こちらの話が出遅れました。 決してサボっていたわけではありません。 中国武術では「本当の威力を発揮するためには、 十分に力を抜かなければならない」と言いますが、 それがようやく実感をもって理解できるようになってきました。

例えば、腕を振り下ろし相手を打とうとします。 普通はどうしても力んでしまいますが、 これでは本当に強い力で打てません。 十分脱力して腕を振り下ろし、相手に当たる寸前 そこにすべての体重を載せることにより、 極めて大きな威力を発揮することができるのです。 しかし長年の鍛錬を経ないと、 打ち降ろす前にどうしても力が入ってしまい、 結局台無しになってしまいます。

これをようやく実感できるようになってきました。 中国武術をはじめて2年半ほどになります。 ようやく少し勁力がついてきたかなという感じを持つようになりました。 歩きについても同じです。 いかに力を抜けるかどうかが、効果的な歩きに繋がってきます。 そして腕で打つにも歩くにも、根源はすべて「腰」ですね。 相手を打つのは腕ではなく、腰にあることがわかってきました。 「腰」の入った「打撃」は非常に大きな威力を発揮します。

「電車の中でつかまらずに立つ」も、 色々と試行錯誤を重ねてきました。 現在は「全ての土台は腰にある」という観念で、 足首の力を抜き頭頂部を糸でつり下げられたような意念で行っています。 今迄このコラムでも色々な言い方をしてきましたが、 それらのいずれもが結局現在の意念と同じ方向へ向かってきたことがわかります。 昔ほどフラつかなくなってきた理由は、 足腰が強靭になったこと、身体が柔らかくなったこと、 バランス感覚の向上にあると思っています。

つまり、「何事も基礎が大切」「土台がしっかりしていなければ、 大したことはできない」ということでもあります。 上もので威張ってみせても、 土台がしっかりしていない人間の能力は大したことはない ということも言えるのでしょう。 私も人間的な土台は、まだまだです、、

○ 日本医師会 代議員会

4月1日、2日は日本医師会の定例代議員会が開催されました。 今年は役員改選の年で、副議長、会長、常任理事にそれぞれ定員を上回る 立候補者があり、選挙が行われました。 神戸から47才の会員が会長へ立候補しましたが、 大差で唐澤会長が当選となりました。 会員の誰にでも立候補する権利はあります。しかし 本当に日本医師会を率いるつもりであれば、 それなりの経験を積んでおくことや、 組織をうまく運営するための信頼と幅広い人脈などが絶対に必要です。 それもなく立候補というのは、どうなんでしょうか。

1日目は選挙だけで終わりました。常任理事の選挙は、 10名連記のため開票に1時間ほどの時間がかかり大変でしたが、 2年前の会長選挙ほどの緊張感はありませんでした。 あの時は本当にドラマチックでしたが、、

2日目は、議案の審議や代表質問などです。 今回は医療界を襲う大きな嵐、 「特定健診」「大野病院の産科医逮捕事件に発する諸問題」 「レセプト電送」「勤務医問題」 「医療崩壊について世の中に正しく理解してもらうには」 など深刻なテーマが山積みです。 代表質問・個人質問では、大変熱の入ったやりとりが行われました。

世の中の医師会に対する目は 自分達の権益を守るためとしか、 捉えていませんが、これほど医師達が「国民への良い医療を守るため」 熱心な討論を重ねていることをどうしたら伝えられるのでしょうか。 一面、本当に医師というのはお人好しだなあ、とも我ながら思ってしまいます。 そのため、行政やマスコミは「医師はいくらいじめても大丈夫」と 思っているのでしょう。

しかし、そろそろ医師の頑張りも限界です。 東京を含めた全国各地で医療の自然崩壊が急速に始まっています。 「空気」や「水」のように、「医療」もあって当たり前と思われてきました。 しかし、これからは そのような状況はなくなり、 大変なことになるでしょう。早くマスコミにも気づいて欲しいものです。 「医療をこのようにした最大の責任」はマスコミにこそあるのですから。 彼らが駄目にしたのは 医療だけでなく、日本人そのものもですが、、

○ 私を UNIX の世界へ導いた東芝 UX-300

Web から、懐かしい UX-300 の写真を掘り出しました。 30年にわたる私のコンピュータ・ライフに 非常に大きな転機を与えた この UNIX マシーンについて、 書き留めておきたいと思います。

1982年発売された東芝のUNIX搭載の科学技術用 UNIX マシーン

AT&T の UNIX ver.7(後に UNIX System III と呼ばれる)に日本語機能を組み込み

日本語 UNIX の草分け的存在となった

15インチ縦型 A4サイズ表示を可能とした CRT をもつ

UX-300 を購入したのは 発売の翌年です。 その 5 年ほど前、世に出た初めてのパーソナル・コンピュータと出会い、 BASIC、UCSD-Pascal、などの言語でアプリを組んできたのですが、 当時のコンピュータ雑誌「ASCII」に 「これからは C 言語」とありました。 そして C は UNIX システムの上で開発されたものであると。 C の走る環境を持たないにもかかわらず、 東大の石田晴久先生が翻訳された カーニハン&リッチーの「C 言語」の本を、 むさぼるように読んだりもしていました。

そんな時ビジネスショウで、思いがけず 「日本語の走る」UNIX マシーンを見つけたのです。 「縦型 A4サイズ表示ができ、グリーンに発色するディスプレイ」 「シンプルでセンスのよいデザイン」 にも非常に魅了されました。 「即、買い」で購入したものです。 当時のマシーンはハード・ソフトともに、今では考えられない非力なもので、 エディターは何とライン・エディターだけでした。 それでも初めての UNIX マシーンなので「こんなものか、」と、 感激して独学で UNIX と C 言語を勉強しアプリを作り始めたものです。

一行しか編集できないライン・エディターでアプリを組むなど、 今では気が遠くなりそうな話ですが、しばらくして テキストで編集できる vi が搭載されました。 UX-300 を業務に目一杯使い込んだ 数少ないユーザの一人と思っています。 ここから、UNIX の世界、インターネットの曙の世界へと、 大きな「ときめきの世界」が続くことになりました。 それが現在の MacOSX の世界へと続いています。 世に先駆けて「電子カルテ」開発を始めたのも、 このマシーンからでした。 このネタで書けることはいっぱいありますが、まずはこの辺で、、

○ WindowShadeX が帰ってきた

MacOSX 10.5 ( Leopard ) になってから、 WindowShadeX が使えなくなったのが唯一の不便でした。 これを出している Unsanity の新しい OS への対応はいつも少々時間がかかるのですが、 ようやくベータ版が出たことを知り、早速 download しました(インストール後 OS を再起動しないと機能発揮しません)。

ベータ版とは言っても、今のところ従来と同様まったく問題なく使えています。 Leopard になってから Spaces などの機能が増えたとはいえ、 やはり作業中にちょっと邪魔なウインドーを閉じておき、 必要な時に簡単に復活できる機能がないと不便です。 これでやっと Leopard 環境を便利に使えるようになりました。

Spaces が出現する前から、 それとほとんど同じ機能の DesktopManager というツールを使ってきました。 やはり WindowShade 機能と Spaces 機能は、 両方を使える方がずっと便利です。 ちなみに私は MacOSX 標準の Dock への一時収納は余り使っていません。 Dock に無数のアイコンを設置してあるので、 そこから一時置きのアイコンを選択しキックするのは、 思考ならびに操作としてステップ数が多いからです。

お、、ベータ版をうたっている理由がわかりました。 Xcode では WindowShadeX の機能が働かないようです。 なるほど、Xcode のように(おそらく)特殊な扱いをしたアプリなど、 まだ対応できないものがあるということですね。 でも、これは十分許せる範囲です。

○ おお、なるほど Web 閲覧が高速快適になった

CNET Japan の記事で「MacOSX 向けのフリーな Proxy サーバソフト Dolipo」 を見つけました(この URL は月日が経つとアクセスできなくなるかも知れません)。 起動しておくだけで Web ページの閲覧速度が改善される、 高速化ユーティリティーということです。 早速 download してみました。

おお、なるほど、起動してすぐには高速化は感じられませんが、 何度か使っているうちに Web ページが極めて快適に開くようになりました。 「これに慣れてしまうと、ちょっと困りますね、」というような快適さです。

< 2008.03 毎日1回フルスイング | 2008.05 複雑なものを簡潔に >

東京タワー下の夜桜

これは日々の生活で感じたことを書きとどめる私の備忘録です