Soliloquy

【 2005/2 】

* Code or Die - 敬称略ソフトウェアソリューションズ (2/5)
* 適度に暗号化された通信 (2/12)
* 覚えられキャラ (2/19)
* Virus Warning (2/26)

* 2005/2/5 (土) 【 Code or Die - 敬称略ソフトウェアソリューションズ 】

お…
お…っ
『オブジェクト指向』って何や――ッ!

皆様お久しぶりです。ここしばらくきちんと冬っぽい気候が続いていますがいかがお過ごしでしょうか。私はオーバータスク気味で、と言うよりこの冷え込みで地味に回転数が下がってしまい、処理待ちの仕事を次から次へと生み出しております。まあちょうど、講義レポート、就活、日々の研究、と仕事が重なる時期でもあったりするわけなのですが。

レポートは何とか終わらせました。乗り切れたわけではありません。1つ意図的に落ちたやつがあります。教授室に呼び出し食らって、課題と小言とお情けを用意していたであろう教授に向かい「いえ、単位は結構です。」と肩透かしをかけてきてしまいました。若干慌てて心配されてしまいましたか、すいません教授。でも学会用原稿締め切り前日にプレゼン付きレポート課題は重過ぎました。

就活のほうもなんとも。積極的に出来てる訳ではありません。化学系ともなると結構先輩とかがリクルートに来てくださるのでその話を聞き、興味を持った企業の説明会に出向き、雪で新幹線が遅れ、応募したのに参加者名簿に私の名前だけがない、といった感じで。「人生の転機だから厄年なのか、厄年だから転機なのか」と以前申しましたが、単に「人生の転機かつ厄年」というだけのような気がしてきました。

そんなわけで現在、主に日々の研究に遅れが生じています。今現在やっているのは、マクロ書きです (註:私は実験化学系の学生です)。私の研究テーマでは、実験による測定と並行して、計算機を用いたシミュレーションによる検討も行います。こう言えば聞こえはいいですが、要は、その化合物がどんな構造をしていると考えられるかというのを計算機で探しているのです。一般に、化合物にはいくつも安定構造があって、その中の一番安定なやつを使って議論することになります。ソフトウェアのほうにも、安定な構造を探す機能はついているのですが、それが「一番」安定かどうかまでは判別できません。そんなわけで、人の手をつかって、いくつもの安定構造候補をリストアップし、計算させ、結果を整理し、一番安定な構造を求めます。総当りです。とんでもない数のインプットを叩き込み、とんでもない量のアウトプットを処理する羽目になります、私が。それではあまりに実験時間が削られてしまう、そういったことから、この作業の自動化を図ろうと、現在その処理を記述しているところなのです、ちょっと手の込んだマクロで (註:私は、実験化学系の学生です)。

ですがと言うか当然ながら、私にプログラムの知識などあるわけがありません。初めて本とヘルプファイルと実際に記録してみたマクロを元にまったくの徒手空拳で挑むことになります。これ配列とか使ったほうがいいのかなぁと思いながら大量の変数を定義し、ここもうちょっとまとめられるよなぁとか思いながらループなして繰り返し処理を書いたり、これどうやったらファイル開くねんとか思いながら1時間ほどヘルプファイルと闘ってみたり。当然ながら本来業務は進まないわけで、実際出来上がってもこの作成時間考えたら手作業でやるのと同じくらいなんじゃないかと思ってみたり。しかしここで手作業に戻ってしまっては、ここまでの時間が丸ごと無駄になってしまいます、もう後には退けません。いつの間にか壁紙はぐるちょ氏作の「Code or Die」に、そしてそれ以上に、一面に広がる「それっぽい」画面。もちろん、バグも結構出てきて、ほかの人たちが実験台の周りをうろうろしている中、一人コンピュータに向かってキーボードをたたき続ける私 (註:…私は、実験化学系の、学生です)。

そんな私を見ていたのか、先輩が「略君はプログラムができます」って言ったのか、助手の先生がなにやら持ってきてくれました。
「略君。プログラムやるの?」
「…え?はあ。」
「これね、Visual Basic。これでやるとアプリケーションが作れる。でね、こないだ捨てた UV ディテクタ用のパソコンに付いてたのがこれなんだけど、これだけつないでもソフトが古すぎて動かない。配線を書いた紙はここにあるんだけど―――」
「…え?あ゛…」

註:…わ、私は…、実験化学系の……ッ…

[ 敬称略 ]

* 2005/2/12 (土) 【 適度に暗号化された通信 】

あるシステムを円滑、かつ効率よく運用するためには、そのシステムに合った情報伝達法の構築が必要不可欠である。

皆様、いかがお過ごしでしょうか。今回は、少しコラム的なお話にお付き合いいただきます。

例えば、飲食店を始めとする様々な店舗を考えてもらえれば分かりやすいだろう。そこにいるスタッフの一人一人がシステムの一部一部であり、それらが集まることによって一つの、例えば「飲食店」という機能を提供するシステムを構成している。そして、「いらっしゃいませー」に始まるこのシステムの動作には当然ながらシステム内部での大量の情報伝達、つまりスタッフ間の会話があるのである。

さて、円滑、高効率なシステムの動作に必要な情報伝達形態であるが、まず重要となるのが、システムの規模と「何処から何処へ」の通信であるかの示し方である。例えば、親父さんと弟子二人でやるような小さいラーメン屋と、大きいチェーン店のラーメン屋とを考えて頂ければよい。前者で「弟子 1 から親父さん、並一丁です」というように一々データの送り元と送り先をつけても「やかましわい、わし以外の誰が作るんや!?」と雷が飛ぶくらいでシステム全体の効率は上がらないだろう。逆に後者で厨房に向かって「並一丁」というデータのみが飛んだとしたらどうなるだろうか。そこにいる調理人それぞれが並サイズのラーメンを一つずつ作り、結果として注文の数倍の量が出てくることになるだろう。これはきちんと情報に送り元と送り先をつけなかったことによってシステムの円滑性が失われる例だ。実はきちんと一つだけ出てくることが多いのだが、それは「ラーメン屋」内に「厨房」というサブシステムが構成されていて「厨房」内の一人一人が情報伝達を行って注文情報を同期させ、生産を調整しているからに他ならない。そしてやはりその中では「調理人 1 から調理人 2 へ、今回の並一つはそっちで作って」「調理人 2 から調理人 1 へ、えーさっきのだって私が作ったやん。今回は勘弁」「調理人 1 から調理人 3 へ、やっぱ今回の並一つは君が作って」「調理人 3 から調理人 1, 2 へ、…分かりましたよ、もう」といった情報の送り元、送り先が明示されたデータが飛び交っているに違いないのである。システムの規模に合わせて、エラーが起こらない程度に送る情報に最低限の送り元、送り先情報を付加する、これがまず重要な点である。

次に重要となるのが、そのシステムが外部からの入力に対して動作する場合、その入力に対して、現在システムが動作中である旨を応答しておくことである。つまり、飲食店で言うところの「かしこまりました、少々お待ちください」というやつだ。これがないと客 (つまり入力) 側は果たして自分の注文が通ったのかどうか分からず、並一丁を欲して入力を繰り返し、時間差で入力数に応じた並が返ってくることになってしまうだろう。入力側にある程度の応答を示すのは入力―システム間のエラーを防ぐためにも重要なのだ。
 この応答、わざわざ入力専用に「お待ちください」と用意するのも手だが、入力に応じたシステム内での通信をそのまま応答として返す、という手もある。一部のホームセンターなどで用意されている、ボタンを押すと「○○売り場で、お客様がお待ちです。スタッフの方は…」という放送が流れる、という方法や、業務連絡をそのまま店内放送でスタッフにも客にも聞こえる形で流す、という方法だ。ここで重要となるのは、その情報量と、何処まで暗号化するかという点である。例えば、手芸用品売り場でボタンを押したとしよう、そのときに店内放送で「ぴーぴぴっ、ぴーーぴーー、ぴほ」と流れてみたところでボタンを押した私には何も分かりはしない。逆に、そこそこ暗号化しておかないと、システムの知られたくない情報をばら撒いてしまうことになる。例えば短時間に何度も繰り返される、援軍はまだかー!?雰囲気の漂う「○番レジ、チェッカー応援お願いします」といったものなどである。入力―システム間でのエラーをなくすための取り敢えずの応答、そしてその応答の際の情報量と暗号化の程度、これが二つ目に重要な点である。

そして三つ目、想定外の入力に対する対処。何もシステムが望むタイミングで、システムが望む形の入力が行われるとは限らない。例えば、厨房に向かっていきなり「並一丁!」と怒鳴る客がいないとも限らない。このようなとき、どのようにして対処するか、これがシステムの安定性に対して非常に重要である。こういった事態への対処はシステムによりまちまちである。例えば、私が、支払いが終わった後に一言「ごちそうさま」と言うとしよう。ある店では「おおきに!」と親父さんが笑ってない目で怒鳴り返してきたり、スタッフが「はーい」とあからさまな要らない情報扱いをしたり、「えっ?あっ!?えーと…」と、まったく想定外の情報への対処ができていない返事が返ってきたり、といった具合である。この場合は一連の動作の最後の最後だからまだよいが、前述のように初めの注文段階でこういった事態が起きた場合どう対応できるか、このあたりがシステムの安定性に非常に大きな意味を持つのがお解りいただけるだろう。

ここで述べた三つ以外にも、システムの円滑、高効率運用のためには達成すべき様々な課題がある。それらをなしてこそ、よいシステム、というものができるのだと言えよう。

で、何でこんなこと考えたかというと、ある日、朝の 4 時ごろに入ったラーメン屋で、あるお客、通称 43 番さんに関する情報がえらい錯綜してるのが傍で聞いててよく分かってちょっと面白かったからなんですけどね。
 しかし、何でこんなに体内時計壊れてるかな、私は。

[ 敬称略 ]

* 2005/2/19 (土) 【 覚えられキャラ 】

最近、日常的に交わされている次のような会話があります。
「おー、遅くまでご苦労さん。」
「あ、お疲れ様です。」

職場などでよく交わされる類の会話ですね。しかし今回の場合は状況が少し違います。

道路工事のおっちゃん:「おー、遅くまでご苦労さん。」
研究室帰り (at 1:00 AM) の私:「あ、お疲れ様です。」

…な・ん・で、覚えられてるの?

寒さもひところに比べれば緩んでいるような気がしますが、皆様、いかがお過ごしでしょうか。私はと言えば、連日連夜の午前様です。「あー、頑張ってるんや」などと思ってはいけません、単に JST -3 で体内時計が動いているだけです。

さて、世の中には、なぜか知らないが他人によく覚えられる人とそんなに覚えられない人がいます。同窓会などでもあるでしょう、「おー、○○!久しぶりやなぁ。」という会話になる人と、「…○△君?うんうん、久しぶりやねぇ!」という会話になる人、その 2 パターン。どうやらそれが私は前者らしくって、やたらみんな私のことを覚えて、覚えていてくださるんですね。件の道路工事のおっちゃんのみならず、最近で言えば、食堂のおばちゃんとか、理髪店の女将さんとか。何で覚えられるんでしょうね?

何か特徴があれば覚えやすい、と、普通は言います。つまり、何か他とは違うところがある、まあ誤解を恐れずにいうならば、変なやつ、ということですね。しかし、私個人は特に主張が強いわけでも、目立ちたがりでもないし、実際目立っているわけでもないはず。何かあったらとりあえず一歩引く生き方を心掛けてきたはずなんですが。ですから、何か特徴があれば、という覚えられの条件は必ずしも正しくはない、と言えるのではないでしょうか。大体あの条件で、自分が覚えられキャラである、と思うことはつまり「自分は自他共に認める変なやつ」ということにしかならなくなってしまいます、それは避けたいおかしい。

まあこの「覚えられ」という属性、それはそれで有難いんですけど、一つ困った問題として、大概の場合、こっちが相手を覚えていないということが挙げられます。
「おー、略!久しぶりやなぁ!俺の名前なんか覚えてへんやろ?」
「え?いやいや、えー…、うー…、○×君?」
「…おい。」
…恥ずかしながら、同窓会で時々あるパターンです。大概な話ですが、まだ酷いのもありまして、さっき述べた道路工事のおっちゃん、私はあの人を識別できないんですね。ちょっと顔は覚えたつもりなんですけれども。いきなり見知らぬ顔のおっちゃんからいつもの声で呼びかけられる、それに反応して慌てて挨拶を返す。おかげであの工事現場を通るときには気が抜けません。

普段使いの道がちょっとしたトラップゾーン。何だこの日常に潜む罠は。

[ 敬称略 ]

* 2005/2/26 (土) 【 Virus Warning 】

「寒さもひところに比べれば緩んで」と言っていたのも束の間、例の如くに国立大学前期試験にあわせた冷え込みがやってきたり H2A が無事に打ち上げられたりしている今日この頃ですが、皆様いかがお過ごしでしょうか。
私は、きれいさっぱり、風邪ひいてます。

そういえば去年もこの時期に風邪をひきましたか。去年と言い今年と言い、そんな暇無いんですが。今年のはちょっときついのか、先輩はダウンされてしまいました。ちなみに自己弁護のために言っておきますが、一番初めにひいたのはうちの教授です。

さて、ひいてしまったものは仕方が無い、ということで、風邪対策です。以下に今回私が採った対策を示します。

1. 周囲の人に注意を促す。
2. のど飴、のどに塗る薬を用意し、服用する。
3. とりあえず何があっても慌てず騒がず朝御飯を食べる。

以上。私の場合、とりあえずのどが痛むので、その対策が中心です。これが酷くなると、熱が出てだんだん動作と思考に支障が出てくるんですが、それほどではないのがまだ幸いなところです。って言うかたとえ酷くなったとしても薬を追加するくらいしか追加の対策がありません。今忙しさのピークなもので、せめて定格どおりに動かないと地味にピンチを踏み越えてしまう、と言うのが正確なところです。周囲の人に注意を促す、これとても重要。4 回生は卒論発表寸前で、私よりはるかにピンチです。そんなときに風邪などひかぬよう、私には近づくな、質問があったら別の先輩のとこに行け、と。後半は冗談ですが、まぁ 4 回生達にとってとりあえず迷惑な話ではあります。ちなみに、朝の体温が若干高めになったおかげで寝起きは少しよくなりました。のどの痛みは抜きにして普段からこれくらいの寝起きだったら楽だよなぁ、何で起きられないんだろう、と思って時計を見たら、ここ数週間目覚ましをかけていなかったことが発覚。今まで自然起床だったのですか、そりゃ昼前になるわ。

そんなこんなで、風邪はひいてるけれどもその存在をある程度無視する、という形で日々進行しています。本当に、風邪のウイルスなんかに一々かまってられるか、という状況で。例の如く午前帰り。おまけに自転車がパンクしたため徒歩通学です。そして自分の作業を進行させつつ 4 回生のサポート、測定装置の使い方から PowerPoint の操作方法まで。コンピュータにほとんど触ったことが無い、というファクターを見落としていたのは結構痛恨でした。このように若干定格越えな感じの運転が続いており、ネタティックエラーに事欠かない事態となっています。反応剤を間違えて、予定したものと全然違うものを合成するとか。とりあえずマクロ書きは一段落つけました。修正点はいっぱいあるけれどもとりあえず作業ができるからこれで、というところで。おかげでえらく大量のファイルを一気に全部開いて処理して閉じるとかいうとんでもないマクロになってます。実行するたびにコンピュータが倒れそうです。これもある種のマクロウイルスでしょうか。しかしまぁ作業が楽になったことは確かです。別のところが律速段階になりました。結局私律速なんですが。

で、こんな私の作業を見ていた研究室のほかのメンバーがそれぞれの作業の自動化を試み始めています。なぜかマクロ書きが広まりつつあります、踏み込みすぎると恐ろしいことになるのに。

…これもある種のマクロウイルスなんでしょうか。

[ 敬称略 ]
≪2005/1 | 2005/2≫
[ 2004 ] [ 2005 | 1 2 3 4 5 6 7 8 9 10 11 12 ] [ 2006 ]
[ SOLILOQUY INDEX ] [ LATEST SOLILOQUIES ]