2010年9月15日水曜日

ファイル保存よりも環境保存

 長年に渡ってコンピュータを使い続けていると、その間にマシンのトラブルに巻き込まれる機会もそれだけ多くなる。昔はそれほど頻繁にマシントラブルに会うことはなかったような気がするが、コンピュータの性能が良くなり高度で精密機械として扱われるようになると、ハードウェアが故障する頻度もそれだけ高くなってきているのではないかと思う。

 マシントラブルに遭遇した時、一番に心配になるのは直前まで扱っていたファイルの安否であろう。今まで営々と時間と労力をかけて作成してきたファイルが、破壊されたり失われてしまうかもしれないのである。あらかじめ外部メディアに保存するなりの対策をしておけば良かったと思っても、もはや手遅れであることが多い。誰でも、以下に示す「ソフトウェアの法則」【ファイル破壊の予知法則】を知っていればよかったのに、と思うに違いない。

【ファイル破壊の予知法則】
 ファイル破壊の事故は、常に「ファイルを保存したい」
と熱烈に思う直前に発生する。


 コンピュータを故障させずに長く使い続けるコツは「コンピュータを長持ちさせる法」で紹介したとおりである。つまり
 ・定期的に使い続ける
 ・できるだけソフトウェアを変えない
 ・愛情を持って取り扱う
であるが、この他に、もう一つ重要なのが
 ・スリープ機能を多用しない
ということではないかと最近感じている。

 Windows Vista がリリースされた時、そのシステムの立ち上げに随分と時間が掛かり不評だった。その対策として、私はスリープ機能を多用するようになった。夜、コンピュータを使い終わってもシャットダウンせずに翌朝までスリープ状態にしておくのである。翌日、すぐ立ちあげられるので便利ではあったが、そのためか故障しやすくなったように思う。スリープ状態にしておいて、いざ使おうとマシンをウエイクすると、コンピュータ本体がかなり高温に保たれていることが多いからである。このスリープ機能のために故障したと言いきるだけの確実な証拠はないが、基板上の多くの部品が長い時間高い温度のままで放置されていたのであるから保守上望ましい状態にあったとは言えない。それ以来私は、夜コンピュータを閉じる際は必ずシャットダウンするようになった。そして翌朝コンピュータに触れた時、本体からひんやりとした感触が返ってくると何かほっとして「よし、いいぞ」と思うのであった。

 さて、本論に戻ろう。大切なファイルを失わないためには、日頃からファイル保存の習慣を身に付けておく必要がある。そのための手段として、ファイルのバックアップユーティリティーが用意されているのが普通である。私もその類いのソフトウェアを何度か使ったことがあるが、結局長続きしなかった。操作が面倒で時間がかかるからである。この種のソフトウェアは大抵はファイルを保存することしか眼中になく、個々のファイルを復元する作業は利用者まかせであることが多い。私の経験では元の状態に復元するのにかなりの努力と時間を必要としている。

 マシンが(修理依頼しなければならないような)致命的な故障をした場合、普通は修理に1~2週間はかかるのを覚悟しなければならない。その間は別のマシンで代行しなければならない。そのマシン(もしあれば)への移行作業を迅速に行えるかどうかが一番の問題になるのではないかと思う。毎日行う作業、たとえばメールの送受信などが数日間できないとしたら、これは大変なことになる。たとえば私の場合、迷惑メールが1日当たり200件程度は届くので毎日処理していないとメールボックスが満杯になり、受け取るべきメールも受信できなくなる恐れがある。大学の授業で使っているファイル、課題提出の管理、その他いろいろと、マシンが使えなくなったら大騒動になるのである。

 したがってファイル保存よりも、日々使っている自分の作業環境そのものを保存し、マシントラブルが起こったらすぐさま別のマシン上で同じ作業環境を動作させ継続的に(もちろん最新のファイルを用いて)作業できるようにすることが重要になるのではないか。

 そこで私は、外付けの大容量ハードディスク上に、その日に変更したファイルや履歴を保存することにした。“外付けの”ハードディスクであることが重要な点である。
 保存すべきものは、
 (1)自分が作成したファイル(*1)
 (2)自分が使うアプリケーションのステータス(*2)
等である。
【注】(*1)更新日を比較して変更の必要があるものだけを保存する。具体的には、xcopy コマンドにスイッチオプションとして D を指定するとよい。
【注】(*2)各アプリケーションごとのステータス情報は AppDataディレクトリ(隠しファイル)以下に保存されている。どの場所に保存されているかは、その気になって探せはすぐ分かる。これも xcopy コマンドで必要なものだけを選んで保存するようにする。

 この作業を、毎日の終りにマシンを閉じる際のシャットダウンの直前に行うのである。2~3分で済むから何の苦にもならない。
 こうやって変更のあったものだけを保存していると、不要になり削除したはずのものが外付けのハードディスク上に残ってしまう。そこで毎月1回は、%USERPROFILE% 以下のものを robocopy コマンドを用いて保存し、最新の状態にしておく必要がある。

 私は「コンピュータを隠し持つ」で触れたように、普段使わないマシンがあるから、そのうちの1台をバックアップマシンとして利用することにした。そのバックアップマシン上に同じアプリケーションをインストールし、外付けのハードディスク上に前の晩保存しておいた(1)、(2)のデータを、毎朝リカバリしているのである。そうすると、バックアップマシンの方には必ず前の晩の状態がキープされているので、たとえ普段使うマシンが立ち上がらなくても、何の心配もないということになる。いや、やはり心配ではありますがね。

【追記】本文のリライト版【素歩人徒然】「環境の保存」も参考にしてください。

2010年8月23日月曜日

コンピュータを隠し持つ

 コンピュータ開発の黎明期の頃から、自分の家にコンピュータを備えるということは科学者や技術者にとって最大の夢であった。ソフトウェア技術者だった私めも、自分の家に自由に使えるコンピュータ(当時は電子計算機と称した)があれば、どんなに素晴らしいことかと夢想した内の一人である。

 コンピュータで何をやりたいかというと、数学の未解決の問題を解くために用いるのである。数学の世界には、まだ証明されていない未解決の定理が沢山ある。それを否定的に解くのに利用しようと思ったのである。つまり、その定理が間違っていることを示す例を一つでもいいから見つけ出せれば、一夜にして定理の解決者としての栄誉が得られることになる。否定的に解くのは、肯定的に解くよりもはるかに容易なことのように思われた。

 もし家にコンピュータがあれば、それを24時間連続稼働して未解決の問題を解くプログラムを動作させ、しらみつぶしに当たっていって答を見つけ出せばよいのである。そういうプログラムを作るのは自分の本業であるから、コンピュータを動作させる電気代のことだけ心配すればよかった。プログラムが昼となく夜となく解を捜し求めている間も、本人は遊んだり別の仕事をしていられるのだから楽なものだ。
 そう夢想していた時、私が空想の中でコンピュータを設置する積りだった部屋は6畳間ほどの広さであった。これは、その当時の中型のコンピュータが何とか納まる程度の広さである。

 時代は進んで、大型コンピュータによるタイムシェアリング全盛の時代には、家にテレタイプ型の端末を置くことを夢見たものである。公衆回線を使って職場(当時はアメリカの研究所にいた)の大型コンピュータを呼び出して使うのである。この頃にはもはや夢ではなくなっていた。端末は研究所からの借り物で、電話料金は(アメリカでは)基本料金で済むから負担にはならない。とにかく家でコンピュータを使えるようになったのである。しかし残念ながら借り物なので“私のコンピュータ”という実感は得られなかったし、日本ではまだまだ実現の難しい夢のような環境であった。

 時代は更に進み、マイクロコンピュータの出現によってパーソナルコンピュータ(パソコン)の時代になった。当初は、いわゆるマイコンを家に置いて、おもちゃで遊ぶような感覚で使っていたものだが、その後コンピュータの性能は飛躍的に高まり、普通のプログラム言語が使えるようになった。そして、再び自分の家に(おもちゃではなく本物の)コンピュータを備える夢が、実現可能な夢として再燃してきたのである。

 特にパソコンの出現は“私のコンピュータ”を沢山持つという贅沢な夢を現実のものとする上で大きな役割を果たしてくれた。もはや、設置場所として6畳間の空間など必要としないのである。私は、実に30台ものコンピュータを自分の家に“隠し持って”いた時代があった。なぜ(豪邸でもない)個人の小さな家に、30台ものコンピュータを隠し持つことができたのか。それはもちろん、私がコンピュータ開発という仕事に携わり、ハードウェアそのものを手に入れる機会に恵まれていたからであるが(詳しくは【素歩人徒然】「コンピュータショウ」参照)、最も重要な点は、コンピュータを隠す技術に長けていたからである。その隠す技術の中でも、特に重要なものはノートパソコンの発明にあるのではないかと思う。この技術の存在なくして、30台ものコンピュータを家人に知られずに家の中に隠し持つことなど不可能であったろう。

 家人の目を逃れるには、もちろん色々なテクニックを駆使しなければならない。デスクトップ型の大きなコンピュータを2~3台、所せましと並べて意識的に家人の不満をそちらに向けさせる。その状態を目くらましにして、残りのノート型のコンパクトなものは、家人の目に触れないように巧妙に隠すのである。応接間の大型ソファの下、椅子の下などが最適の隠し場所となる。本箱や押入の奥にさりげなく置くのもよろしい。一か所にまとめないで、いろいろな場所に散在させるのがコツである。本箱の本と本の間に縦にして置くのは、保守上からは勧められない。むしろ並べた本の上の空間に、水平に置くべきであろう。

 このような高度なテクニック(?)を使って隠し持っていたコンピュータは、古いもので、もはや動作しないものばかりであった。その後いろいろな事情があって、ほとんどの物を手放してしまったが、最近、また集めだしている。使い込んだ愛機を、壊れたからといって廃棄処分することができないのである。修理するとなると、大抵は基板の取り替えが必要となり5~6万円は費用が掛かる。これは新しいマシンを購入できる値段である。しかしそれでも修理して動作する状態にして保存したいと思う。私の書斎のデスク周辺には、そういう稼働するけれども特に使う予定のないマシンが、わさわさと存在するのである。このようにして台数が増えていくと、またぞろ“コンピュータを隠し持つ”ためのテクニックを発揮しなければならなくなるかもしれない。困ったことである。
【追記】本文のリライト版【素歩人徒然】「コンピュータと私」も参考にしてください。

2010年7月23日金曜日

日曜プログラマ

 英語には“Do it Yourself”と言う表現があるように、欧米では何でも自分でやったり、作ったりしようとする習慣がある。“DIY”と略記して、そういう生活態度や考え方そのものを指す場合もある。日本語では“日曜大工”がそれに当たるが、少しスケールが違うかもしれない。欧米では自分で家を建ててしまう人がいるくらいだから、日曜だけのお遊び程度では到底実現できそうにないものにも挑戦するようである。

 “昔プログラマ”を自称する私めも、会社勤めをしている頃は“日曜大工”ならぬ“日曜プログラマ”をしばしばやっていたものだ。定年後は、一応仕事は大学教師ということになっているが、ナニ毎日が日曜日(サンデー毎日)と言ってもよい状態である。であるからして、大掛かりに日曜プログラマができそうなものだが、もう若い頃のような大掛かりなソフトウェア開発を試みる気力は、残念ながら持ち合わせていない。

 それでも、日頃使い慣れたアプリケーションで少しでも使い勝手に不満が出てくると、すぐさまその解決策を求めてプログラム作りを始めてしまうのである。既存のソフトウェアに後から機能追加することを、普通“プラグイン”とか“アドイン”などと呼ぶ。追加したプログラムが、アプリケーションと連携して動作はするが、一体となって動作するわけではない場合はアドインとは呼ばない。単なる“ツール”と呼ぶべきであろう。
 最近のアプリケーションは、アドインされることを前提として設計されているものが多い。したがって、私めのような“老プログラマ”でも挑戦する場はたくさん存在するのである。

 私が作ったアドインソフト、あるいはツール類を以下簡単に紹介することにしよう。

(1)アクセス数の一覧表(ツール)
 私のホームページ内には、色々な場所にカウンターが設定されていて、そのページ内容がどの程度読者に読まれているか記録されるようになっている。最近は検索エンジン経由で(トップページを通らず)直接アクセスしてくる人が多いから、トップページにだけカウンターを設定しておいても意味がない。そのようなカウンター設定場所が年々増えていって、今では170個所を超えている。それらの個所をいちいち見ている訳にはいかないから、一覧表にして表示できれば便利であろう。そう思って作ったのが「Knuhsの書斎・アクセス数の一覧表」(図1)である。
 ①「タイトル」………掲示内容、
 ②「Access日時」……最近のアクセス日時、
 ③「Access数」………昨日までの総アクセス数、
 ④「最新値」…………現時点の総アクセス数

がそれぞれの列の枠内に表示される仕組みになっている。
 Access日時の表示がだとその日にアクセスされたことを意味し、だと前日にアクセスされたことが分かる。前日の記録からどう変化しているかが一目了然で分かるように工夫されている。

 このツールは、Perl言語で記述されている。出力はHTMLファイルで、ブラウザ上で結果を見ることができるようになっている。この表を毎朝最新のものに作り直してアクセス状況の変化を観察しているのである。時々刻々と変わっていくカウンター値(最右欄)を見るのは、なかなかのものである。

 このHTMLファイルは私のローカルなマシン上に置かれているが、実は、私のホームページ上にもこれと同類の“allcount.html”というファイルがあり、上記③が「月頭Access数」つまり「月始めの総アクセス数」に固定されて表示されている。これを見れば、月始めからどう変化しているかが分かるようになっている。 http://beam.to/knuhs で簡単にアクセス表示できるから、関心のある方は見てください。

(2)スパムメールの整理・後始末(アドイン)
 私めのところには、毎日200通あまりの迷惑メールが届く。メイラーのフィルター機能だけでは対処しきれないので、スパムメールキラーというアプリケーションを用いて一挙にそれらを排除することにしている。排除すると言っても、その中に間違って受け取るべきメールが紛れ込むこともあり得るから、一応は私的なごみ箱(1か月間は保管しておく)へ捨てる前にざっと目視で確認する必要がある。慣れてくると2~3分で済む作業である。

 スパムメールキラーでは、メールの発信月ごとに特定のフォルダー上にスパムメールをまとめてくれる。たとえば、2010年7月だと“201007”という名のフォルダーが作られ、その上に置いてくれるのである。新しい月の初日は“201006”と“201007”という二つのフォルダーに分けて保管してくれる。親切で、よくできた仕様だと思う。
 ところが、最近のスパムメールには発信日時を詐称するものが増えている。そうなると目視チェックを複数のフォルダー上で実施しなければならなくなり効率が悪い。そこで手作業で1つのフォルダー上にまとめてから目視チェックを行うことにした。面倒だがその方が早く済むのである。

 しかし発信日時を詐称するメールは増え続け、多い日には10個の偽フォルダーが作られたりする事態になってしまった。たとえば6月のある日の例では、

偽フォルダー名 詐称された年月(*1)
 200611    2006年11月
 201003    2010年 3月
 201004    2010年 4月
 201012    2010年12月
 202606    2026年 6月
 203006    2030年 6月
 203306    2033年 6月
 203406    2034年 6月
 203706    2037年 6月
 203801    2038年 1月
といった具合である。これでは手作業での対応は限界がある。そこで以下のようなバッチファイル(xmvfx.bat)をPerl言語で作りだすことにした。
【注】(*1)発信年月を詐称する(誤記する。あるいは“欺記する”と言うべきか)理由はよく分からないが、多分受信メールの一覧の先頭に表示させることを狙っているのではないかと思う。

●xmvfx.bat ファイルの内容例
@echo off
if (%1)==(1) %then% goto clear
move /y 200611\*.* 201006>nul
move /y 201003\*.* 201006>nul
move /y 201004\*.* 201006>nul
move /y 201012\*.* 201006>nul
move /y 202606\*.* 201006>nul
move /y 203006\*.* 201006>nul
move /y 203306\*.* 201006>nul
move /y 203406\*.* 201006>nul
move /y 203706\*.* 201006>nul
move /y 203801\*.* 201006>nul
echo:* 全メールを 201006 に集めました。
echo:* 内容をチェックしてください。
goto exit
:clear
echo:* 圧縮ごみ箱に移動してもよろしいですね?
pause
move /y 201006\*.* 圧縮ごみ箱>nul
cd 圧縮ごみ箱>nul
c:\tools\lha m 201007-pack *.txt *.001>nul
:exit

 これを
  xmvfx [Enter]  で呼び出せば一か所への“移動”を、
  xmvfx 1 [Enter] で呼び出せば“ごみ箱”へ、となる。
 この呼出し系列をスパムメールキラーのツールとして登録し、スパムメールキラーの中で利用するのである。もちろん、現在年月や詐称年月などは毎日変わるから、このバッチファイルも毎日作り直さねばならない。それを工夫するのがPerlプログラミングの面白いところである。ここでやりたい作業自体は一連のコマンド列で書き下せる程度のものだから、バッチファイルの形で簡単にツール類を作成しアドインできることになる。あなたも試してみませんか。

 ここで、ごみ箱の中身を圧縮したのは、スパムメールにはウイルスが付着していることが多いので、そのまま私的な“ごみ箱”に(少なくとも1か月間)置いておくと、ウイルス対策ソフトが「ウイルス発見!」と騒ぎ出すことがあるからである。圧縮したり、更にはパスワード付きで封印保管すれば万全であろう。

(3)ソースプログラム集(ツール)
 大学のプログラミングの授業で用いるプログラムのソーステキストを取り出すためのものである。毎回の授業に出席し、その場で指定された秘密のキー(*2)を入力すれば自動的にソースイメージが引き出せるようになっている。授業中にそのプログラムを用いて実行したり、改造したりして利用するためのものである。ただし、授業中しか引き出せないように工夫されているところがミソである(正確に言えば、その日の内なら授業の時間内でなくても引き出せるようにはなっている)。随分と意地悪な先生だと思われていることであろう。ただ、欠席して引き出せなかった学生も、プログラム自体は教科書に載っているのだから自分でシコシコとキー入力すればよいだけのことである。それ程意地悪とは思わないが、どうであろうか。
 このプログラムは、PerlとC/C++とを用いて作られている。
【注】(*2)この秘密のキーは、一定の規則に則って定められているが、今まで誰もそれに気が付いた学生はいない。

(4)課題提出状況の表示(ツール)
 授業では、毎週課題が出る科目もある。その回答を、期日までにメールで送付することになっているが、その管理が結構面倒なのである。少しずつプログラム化して自動処理化しようとしているところである。
 私は表計算ソフトで提出状況を管理しているが、学生の方も受理されたのかどうか知りたいから、提出状況の一覧がウェッブ上に表示されれば便利であろう。 そこで、私はメイラーから取り込んだデータをPerlで処理し(学籍番号と課題番号を抜き出す)、その結果を表計算ソフトへ入力する。表計算ソフトではVBマクロのプログラムを用いて管理表に登録(締切前か後か、1週間以上遅れているか等を判断)する。その一覧を定期的にHTML化して出力し、再びPerlで変換して表示形式を整えてウェッブ上にアップする。この一連の処理をPerlとVBマクロプログラムで半自動化しているのである。学生の回答が、締切日に遅れたり、誤って何度も同じ文面のメールを送ってしまったり(そういう例が結構多い)しても少しも驚かない体勢になっている。

 老プログラマにとって、アドインソフトやツールの作成は、ぼけ防止に最適であるように思う。

【追記】本文のリライト版【素歩人徒然】「日曜プログラマ」も参考にしてください。

2010年7月18日日曜日

書斎のテレビ

 最近、書斎で見るテレビをポータブルな物に入れ替えた。
 それまでは、パソコン1台でコンピュータ使用とTVを見るのとを兼用にしていたのである。コンピュータと兼用と言っても1セグのような解像度の悪い画面では満足できないので、普通のTVと同じ画質とサイズのものである。場合によっては、TV画面を小さくして(“ながら見”モード)コンピュータ作業を並行して行うこともできる。かねてから、こういう環境を構築したいと思っていたのでそれなりに満足して使ってきたのである。

 不満があるとすれば、TV画面の立ち上げに時間が掛かることであろう。使っているOSの Windows Vista の立ち上げには勿論時間が掛かるが、それはレジューム機能を利用してカバーすることができる。しかし、更にTV環境の立ち上げにもかなりの時間が掛かるのである。書斎に入って直ぐTVを見たいと思ってもそうはいかない。決定的な画面を見逃してしまうこともあるのを覚悟しなければならない。

 “ながら見”では、普通はメールチェックとか簡単な作業しかやらないから問題はないが、段々と複雑で大掛かりな仕事を始めてしまうことがある。それなら“ながら見”など止めればよいのだが、もともと「ながら族」なのでそれができないのである。特にTV側で録画の指定をした時などは、コンピュータ側で大掛かりな仕事をはじめてしまうとレスポンスが悪くなり、録画される画面の質にも影響してくることになる。

 これでは困ると思い、Windows 7 マシンが売り出されたのを機会に、もう1台コンピュータを購入してコンピュータ作業はそちらに移行させることにした。実は、意識的に移行させたのではなく、Windows Vista 環境より Windows 7 の環境の方が、はるかに使い勝手が良いので自然に使用環境が移って行ったというのが本当のところである。その結果、書斎の机の上は、左側に作業用コンピュータ、右側にTV用コンピュータという何とも贅沢(?)な環境になってしまった。大型の机なので2台も置くことができるが、このエコの時代にこんな電力の無駄づかいをしていてよいのだろうかという忸怩たる思いもあった。

 そこで、TV用コンピュータをやめて、専用のTVを購入して使用することにしたのである。電力もたいして掛からないし、見たい時には直ぐ電源オンできるのも良い。私の寝室にはTVを見る環境がないので、そちらで寝ながら見たい時は持って行ける程度のポータブルなものである。書斎で1台のコンピュータですべてを満たすという長年の夢は、実際にやってみると色々な問題があるということを学んだのであった。

【追記】本文のリライト版【素歩人徒然】「書斎のテレビ」も参考にしてください。

2010年6月6日日曜日

上書き保存による記憶の変質

 テレビを見ていたらニューヨークのマンハッタン周辺を空から紹介する番組をやっていた。最初に、スポーツカータイプの格好いい車が横付けされ、その車から案内役のヘリコプターの操縦士が降りてくる。その場面を見た瞬間、何故か不意に私の脳裏には仕事で初めてアメリカを訪れときの感激が、ほんの一瞬だけフラッシュバックのように思い出されたのである。初めてアメリカの文化に触れ、こんな素晴らしい所に住みたいものだとわくわくしながら将来の夢を思い描いていた青春時代のことが突然に思い出されたのである。

 しかし、そのわくわくするような気持ちは一瞬のことで、次の瞬間にはその気持ちを再び思い出すことはできなくなっていた。“一瞬の閃き”という感じで終ってしまったのである。なぜなのだろう。

 私がまだ独身の頃、米国西海岸のサンフランシスコ郊外マウンテンビューにあるソフトウェア会社へ共同開発の業務に参加するため派遣されていたのである。
 アパートで自炊しながら、車で職場のオフィスに通うという生活を数カ月間続けていた。アパートの部屋は広くて当時の日本の生活に比べたら格段に豪華であった。車はレンタカーだったけれど最新型のマスタング マッハ1(Mustang Mach1)に乗っていた。スーパーマーケットの駐車場に止めておくとアメリカ人の男性が「いい車ですねぇ」と車体を撫でながら声を掛けてきたことを覚えている。
 プロジェクトの米人リーダーを務めていた男は、もっと大きなサンダーバード(Thunderbird)という車に乗っていた。一度乗せてもらったことがあるが、その車は降りる時にハンドルを助手席側へスライドさせて乗り降りが楽にできるようになっていた。こういう車を見たのは初めてだったので、私は大いに驚き“アメ車”は凄いと思ったものである。

 オフィスは郊外の緑豊かな素晴らしい環境にあり、プロジェクト室は日本では考えられない程使いやすく工夫されていた。そこで行う仕事の内容は厳しく大変だったが、最先端の技術に取り組んでいるという満足感に溢れていたように思う。
 休日は車で観光に行ったり、日本にはない大型スーパーマーケットで買い物をしたり、百貨店でアメリカの生活用品を見て実に豊かな彼らの生活を実体験したような気分になっていた。
 天候は常に快晴、太陽の日差しも強く日本とは比較にならぬ程の爽快な日々であった。そういう夢のような環境で生活していたのである。

 毎朝、車でオフィスに向かう時は、カーラジオから流れるトム・ジョーンズの“デライラ”の歌声を聴きながら、起伏に富む眺めの良い道をドライブする。そういう時、自分は今何と恵まれた環境にいるのかと実感しつつも、夢の中にいるような気持ちがしたものであった。その頃のことは、その後も度々思い出し懐かしさに浸ることがある。よい経験をさせてもらったと思っている。

 しかし今感じた“一瞬の閃き”として思い出された記憶の断片は、その記憶されていたはずのものとは明らかに異質のものであったように思う。これだ! あの時感じた夢のような気持ち、将来への希望に燃えていた頃の気持ちはこれだったと思った瞬間に、それは通り過ぎるようにはかなく消え失せてしまっていた。あわてて混沌とした記憶のもやの中を探しまわってみたが、残念ながらそれを二度と再び思い出すことはできなかった。

 人間の記憶の仕組みは、一体どうなっているのだろう。
 記憶というものは、その後何度も思い返している内に、新たなデータで補強され上書き保存されることによって少しずつ変質していくのではないだろうか。自分では明白な記憶として最初から変わることなく覚えている積りでも、次第に劣化したり、変質したりしていくのではないかと思う。たとえば、過去に見た風景などは、同時に撮った写真を後で見ることによって細部のデータが補強され、写真ではなく実際に見た風景として脳の中に記憶となって残されるのではないか。我々はそれを、本来の記憶のように錯覚しているのではないか。私が、自分の記憶だと確信していたものは、ずっと不変の記憶ではなく、劣化したり、変質したり、場合によっては実際とは異なる新たなデータが上書きされることによって異なる記録(記憶)となって保存されているのかもしれない。
 この経験を、こうやって文章として記述していること自体、記憶の上書きを引き起こす要因となっているのではなかろうか。

 しかし“一瞬の閃き”ではあっても、実際に思い出された記憶の断片が存在したということは、もしかすると上書きされないまま残されている可能性もあると思うのである。あのテレビの画面に映っていた何かが、私の記憶を刺激してあの“一瞬の閃き”の記憶の断片を思い起こさせたのである。その鍵は、多分
 ・輝くような陽光
 ・スポーツカータイプの豪華なアメ車
 ・トム・ジョーンズのデライラの歌声
 ・将来への夢、若さ
などのいずれか、あるいはそれらすべてがそろった時ではないかと思う。“若さ”の方は、もう期待できないのが残念であるが、何とか上書き保存されていない記憶の方を、もう一度思い出したいと思っている毎日である。
Delilah 

I saw the light on the night that I passed by her window
I saw the flickering shadows of love on her blind
She was my woman
As she deceived me I watched and went out of my mind
My, my, my, Delilah
Why, why, why, Delilah
I could see that girl was no good for me
But I was lost like a slave that no man could free

At break of day when that man drove away, I was waiting
I cross the street to her house and she opened the door
She stood there laughing
I felt the knife in my hand and she laughed no more
My, my, my Delilah
Why, why, why Delilah
So before they come to break down the door
Forgive me Delilah I just couldn't take any more

She stood there laughing
I felt the knife in my hand and she laughed no more
My, my, my, Delilah
Why, why, why, Delilah
So before they come to break down the door
Forgive me Delilah I just couldn't take any more
Forgive me Delilah I just couldn't take any more

Tom Jones

【追記】本文のリライト版【素歩人徒然】「記憶」も参考にしてください。

2010年5月21日金曜日

二分木 と ルーツヒーリング

 私は毎週1回は、K市にある大学のキャンパスへ講義のため通っている。電車で2時間以上はかかるので、電車事故などでダイヤが乱れると大幅な到着遅れとなって授業にも差し支えることになる。それを避けるため私は二つの通勤ルートを用意していて、順調に運行している方のルートを選んで大学に向かうようにしている。そのため、出勤の日は朝からラジオの交通情報に耳を傾け、家を出る直前にはインターネットで交通の事故情報を確認するのを習慣としている。

 こういった事故情報では、事故原因が“人身事故”となっていることが多い。春先など学期の初めには、特に人身事故に起因する電車事故が多発するようである。人身事故と聞いても我々は何気なく見過ごしてしまうが、たいていは飛び込み自殺であることが多いらしい。多くの人は「また事故か」と自分の被る迷惑の方に関心を向けてしまうが、その陰では人知れず悩んだ末に自身の人生に区切りをつけてしまった人がいるのかと思うと、痛ましいことだと思うのである。

 大学で若者達に接していると、彼らが青年期特有の色々な悩みを持ちつつも、着実に生きていってほしいと思う。新たな環境で学業や仕事を始める時は、いろいろとストレスに直面し悩むことも多いであろう。そういう壁を乗り越えていくための参考になればと、私は授業の中でストレスへの対処法など、多少なりとも役立つような経験談を語って聞かせることにしている。

 少し専門技術の話になるが、私はプログラミングの授業の中で二分木(binary tree)を取り上げることがある。周知のように二分木というのは1つの数値と2つのポインタ(番地)情報から成る構造体データのことである(図1参照:画像の上にカーソルを置くと図番号が表示されます)。
 この二分木の左右の枝に同じ構造の二分木を何重にもつないでいって、木構造を構築していく手法を教えているのである(図2)。 左右のポインタの指す先に何もデータが無ければ(図3、点線の矢印で示した部分の枝)、
その枝を書かないで済ますことにすると、図4のように表わせる。 

 この木構造を扱う時、私は何時も家系図に似ているなぁと思うのである。たとえば、図4の上下を逆転させた図5では、AさんとBさんが結婚して子供Xが生まれたことを示す図と考えれば家系図の表現そのままである。このXを自分だと仮定すると、将来、図6のようになるのではないかと想像することができる。

 この図6を見ながら、もし自分が若くして死んでしまったら、ここから派生する下方向への枝はすべて存在しないことになる。今ここに自殺したいと思っている人がいるとする。自分が死んでも誰も悲しむ人はいないから、と後腐れなく死んでしまいたいと考えている。しかし、たとえそう思ったとしてもこの図を見れば思い返してくれるのではないか。将来自分の子孫となるはずの人達が大変な迷惑(?)を被るではないか、と。いや、迷惑と感ずるためには存在しなければならないのだが、その存在そのものを否定されてしまうのである。そのことに思い当ってくれないものだろうか。

 昔見た「Back to the Future」という映画にも似たような場面があった。この図から、そういう教訓的な話が引き出せないものか、と私はかねがね考えていたのである。ところが、これがなかなかうまく説明できないのである。Xが存在しなければ、そこから派生する下向きの枝にぶらさがるすべての二分木が消えてしまうことになる。それを劇的に表現できるような図を作りたいのだが、まだうまくいっていないのである。2次元表示の図では、そういう家系図を作るのが難しいのかもしれない。

 もっとも、今まさに死にたいと思っている人にこんな話をしても何の効果も期待できないであろう。健全な心理状態の人に教えておいて、将来壁にぶつかった時に思い出してほしいと思うのである。残念ながら、あまり説得力のある話にまとめることはできそうにないのだが。

 ところで、先日ラジオを聞いていて偶然「ルーツヒーリング」という言葉に出合った。正確には聞き取れなかったが、多分“Roots Healing”ではないかと思う。これは自分の家系図を見て先祖の人々のことを振り返ることによって、心の癒しを得るというものである。なるほど、自分の親類・縁者や先祖の人々がどんな人生を歩んできたか、どういう足跡を残してきたかを知ることは、連帯感を育み、必ずや自分に生きる喜び、希望、勇気などを与えてくれるのではないか、と実感したのである。
 私の“二分木”による教訓話も、あながち的外れではないと勇気づけられたのであった。ルーツヒーリングを加えて、もう少し考察を進めてみようと思っているところである。

【追記】本文のリライト版【素歩人徒然】「二分木」も参考にしてください。

2010年5月9日日曜日

まっとうな日本語を身に付ける

 速読法というものがある。この技術を身に付けると文章を驚くほど速く読めるようになるらしい。大量の本を短時間で読了できるのなら、試験勉強の時など便利だろうから私もやってみたいと思わないこともない。しかしその技術の核心が、どうやら「文章を読まない」というところにあるらしい。そうだとすれば、やはり二の足を踏んでしまうことになる。

 私は、どちらかというと遅読の方である。ゆっくりと個々の文章を味わって読むような読み方をしている。こういう読み方を昧読(まいどく)と言うのだろうか。心に響くような素晴らしい文章に出合うと、その部分を繰り返し読んだりメモしたりして記憶に焼きつけようとする。後で思い返すと、どの本のどの辺りに書いてあったかまで鮮明に思い出せることもある。だから私は、速読法で文章を読まずに、ただ内容だけを短時間に把握できても、少しも有難いとは思わないのである。もちろん、評論家のように短時間に大量の文書を読みこなす必要のある人には有用な技術なのかもしれないが、特別、速読を必要としない人が、あえて速読する意味はどこにあるのだろうかと不思議に思う。しかし人には、それぞれ好みがあるから他人の読書法についてとやかく言う積りはない。

 私は自分の長い人生の間に、新聞や書物を通じて様々な文章に出合い、それをじっくりと読むことによって自らの貧弱な頭脳に少しずつ知識を蓄えてきた。そのことが自ら文章を書く上での財産となり、役立っているのではないかと思う。本当は、ただ黙読するだけでなく、声に出して読むようにしていればもっと良かったのだがと思う。声に出して読むと、脳を活性化させる(1*)だけでなく漢字の読みを確認する動機にもなり大変に有効なのである。
【注】(1*)周知のように、日本語は表意文字と表音文字で構成されている。その日本語の文章を脳でどのように処理しているかというと、まず文字列を視覚パターンとして後頭葉に描き、既知パターンとの一致を求める。一致したら頭頂葉で意味処理を行い前頭葉で論理処理を行っている。
 つづりと発音とが一致しない言語(英語等)では、頭の中だけで発音してみる過程が加わり脳の聴覚機能が働くが、日本語の仮名を読む時は聴覚機能は働かない。したがって声に出して読めば脳の聴覚に関わる部分が活性化されるのである。
 漢字の場合は文字パターンが複雑なため、最初の後頭葉でパターン処理する段階で、より広い面積が活性化され、他の言語では左脳だけで処理が済むところを右脳まで総動員して処理しなければならない。このように、日本語の文章を読むということは、他の言語に比べて脳のいろいろな部位を活性化させていることが分かる。
 日本語として正しい文章、良い文章を数多く読んでいると、我々は日本語として正しい言い回し、表現方法を自然に身に付けるようになる。それを最初から記述できなくても構わない。少なくとも読んでみて、それが正しい(まっとうな)日本語の文章であるかどうかを判断できる“文章力”は身に付くであろう。

 最近、言葉の乱れが話題になっているが、その原因の一つは本を読まなくなったからだと言われている。たとえば、若者の間で「全然かまいません」とか「全然いいです」という様な言い回しが使われていて話題になっている。“全然”の後には、否定形の表現が続くのが普通だから、使い方に間違いがあるという指摘である。こういう議論になると必ず文法的な議論になり、肯定形が続いている例を持ち出してきて「全然いいです」は正しい使い方である、というような主張が展開されたりする。

 我々は(文法学者ではないから)文章を記述する時、いちいち文法のことを意識したりせず、自分の思いを自然のままに書き連ねているはずである。したがって、読み返してみて不自然な文章は、文法的に正しいかどうかを議論するまでもなく、やはり不自然で、まずい文章なのである。それは到底、良い文章とは言えないであろう。誤解を恐れずに書けば、やはり、まっとうでない“間違った”文章なのである。

 我々は不自然な表現に出合うと、その部分が気になって読みの連続性が乱されてしまうことが多い。不自然さがひどいと、読んでいる文章全体に対する共感が得られず、場合によっては内容全体に対する信頼性さえも失われてしまうことになる。不自然さのない“まっとうな文章”であるかどうかを判断するには、沢山の文章を読んで自分の“文章力”を鍛える以外に方法はない。日々交換しているケータイ・メールのいい加減な文章ばかり読んでいても、決してこの“文章力”は身に付かないであろう。ツイッターの、つぶやき程度のいいかげんな文章を読んでいても、多分得られるものは少ないと思う。私は、プロの書き手によって作られたすぐれた文章に数多く接することを薦めたい。それを続けていれば“不自然さ”を嗅ぎわける“文章力”を自然に身に付けることができると思うのである。

 私は他人の書いた文章を査読したり、添削したりすることを仕事の一部としてやってきた。その時、読んでいて不自然なところは、できるだけ直してあげようとする。「たとえば、こう表現したらどうですか」という程度の指摘であるが。
 先の「全然かまいません」などという表現は、明らかに不自然な表現と言える。私だったら「全くかまいません」と直すところである。“全然”と“全く”の使い分けをうまくすれば簡単に解決する問題なのである。それを知らないから“全然”という表現にばかりこだわって、不自然な文章にしてしまうのではないかと思う。まっとうな文を書けるかどうかは、その人が良い文章をどのくらい多く読んでいるかで決まるのではないかと思う。もちろん私も、まだまだ勉強中の身であり、この拙文の中に「不自然な」記述があるかもしれない。その際は、ご容赦願いたい。

【追記】本文のリライト版【素歩人徒然】「日本語力」も参考にしてください。