プログラマーはエラー処理に頭を悩ませる。

プログラムというのは、目的通りに動いていればいい、という訳ではありません。

目的通りに動かすのは「当たり前」で、それ以上に頭を悩ませるのがエラー処理なんです。

具体的には、なんらかの要因で正しい処理が行えなくなった場合でも、正しい状態を保つ、ということをプログラミングしなければなりません。

前者が「正常系」と呼ぶのに対し、後者は「準正常系」と呼んでいました。

ちなみに、それ以外の深刻な問題が発生したときは「異常系」と呼んで、オペレーターに異常を知らせる処理を実行します。主にハードウェアの故障などがこれに該当します。

準正常系は、入力データの異常や割り込み処理などが該当します。

ソフトウェア設計者は、こういった準正常系の処理を全て網羅して、あらかじめエラーを検出し、本来の正常な動作を保つように設計しなければなりません。

設計者が頭を悩ませるのが、「準正常系に漏れが無いよね?」ということなんです。

我々がニュースなどで耳にする「ソフトウェアの異常」というのは、大抵、準正常系の考慮が漏れていたことに起因します。

そして、本番でこういうことが起きないように、出荷前に様々なテストデータを用意して、徹底的にいじめます。

特に組み込み系のファームウェアは、簡単にアップデートできないので、出荷から当分の間はヒヤヒヤします。

トラブルがあったら現場大炎上なので。

では、どうすれば良いかというと、これも難しい話で、経験を積み重ねるしか無いんですよ。

ベテラン技術者にレビューして貰うのも一つの手です。

まぁ、ソフトウェア製品の開発にはこんな事があるんですよ、ということで理解して貰えれば。

【防災】3.11から9年。災害対策できてますか?

まぁ、3.11のような規模の災害は当分起きないとは思いますが、用心するに越したことはないので。

オイラは、北海道胆振東部地震をきっかけに、少しずつ災害対策を始めました。

具体的には、ライフライン(電気、ガス、水道)が無くても、数日は耐えられるように、と想定しています。

電池で動く携帯ラジオ。

停電で電気が使えないとなると、最も頼りになる情報元は地域のラジオです。

スマホのradikoではダメですよ!

基地局がバッテリー切れしたらインターネットもできなくなりますからね!

小型のコンロ。

燃料。

中型の焚き火台。

この上でお湯も沸かせます。

燃料となる薪も少し用意しています。

乾電池で動くLEDランタン。

念のため、ガスコンロも用意しています。

LOHACOで買ったお水。

こっちの方が長期保存ができます。

食料は、今、カップラーメンを発注しています。

これだけあれば、ちょっとしたキャンプぐらいできそうです。

それともう一つ、

これらのアイテムは持っているだけではダメで、きちんと動くことを定期的に確認することも大事。

買ったは良いけど使い方がわからない、なんて事が無いように、点検しておくべき。

軽く、デイキャンなんてどうですかね?

北海道はまだ無理だけど、暖かくなったらデイキャンなんて良いかもしれません。

結局はやってみないと、いざというときに使い物にならないわけで。

これを機に点検してみてはいかがでしょう。