Radium Software Development

HOME - ARCHIVE - ABOUT - RSS

Irish Potato Famine

2006-12-01

概要

19 世紀始め,イングランドの植民地政策により困窮に喘ぐアイルランドは,その食糧供給をジャガイモの栽培に大きく依存していた。しかしそこで栽培されるジャガイモは単一の品種に限られており,遺伝的多様性を欠いていた。 1845 年から数年に渡って流行したジャガイモの胴枯病は,アイルランドのジャガイモを全滅させ,約百万人(全人口の1割ほど)を餓死に至らしめた。また,約二百万人が国外への移住を余儀なくされた。この一連の出来事は「アイルランドのジャガイモ飢饉」 (Irish Potato Famine) として広く知られる。

遺伝的多様性を持たない個体群は,環境の変化による絶滅のリスクを負う。アイルランドのジャガイモ飢饉は,モノカルチャー(単式農法)の孕む危険が現実のものとなった代表的な事例として引用される。また,少し文脈を一般化して,多様性を保つことの重要さを示す教訓として用いられることもある。

アイルランドの植民地化

19 世紀始めのアイルランド農民は,当時のヨーロッパの中でも最も貧しい水準に置かれていたという。清教徒革命以来続くイングランドの圧政が,アイルランドを救われようの無い貧困へと追い詰めていたのだった。

アイルランドは伝統的にカトリックの国だが,隣国イングランドでは 16 世紀以降プロテスタントの力が強まりつつあった。イングランドで清教徒革命が起こると,「カトリック勢力としてのアイルランド」と「プロテスタント勢力としてのイングランド」の対立は決定的なものとなっていく。共和政イングランドの指導者オリバー・クロムウェルは,イングランドの内戦を収拾へと導いたのちに,カトリック同盟の支配する地アイルランドへと軍を向ける。この遠征は大規模な虐殺を伴ったことで知られており,アイルランドの全人口の約 1/3 が殺されるか国外逃亡を余儀なくされたと伝えられている。

061201_0.jpg
護国卿クロムウェル,画像は Wikipedia より (PD)

アイルランドのカトリック勢力が所有していた農地の多くは没収され,イングランド側に配分が行われた。また,カトリック教徒の権利を大幅に制限する法律の数々――「カトリック刑罰法」 (Penal Law) として知られる――が発令される。これらの法律によってカトリック教徒は投票権を奪われ,公職に就くことを禁じられ,教育を制限され,土地の購入を制限され,他にも様々な基本的権利を制限されることとなった。また,土地の一子相続を禁じ,相続者の間で均等に分割することを強制された。この分割相続の強制によって,カトリック教徒が一家族あたりに持つ土地の面積は代を重ねる毎に狭められ,最終的には自給にも事欠く有り様となってしまう。

061201_1.jpg
クロムウェル前(左)後(右)の土地所有の変化,色の濃い地域がカトリック優位,画像は The Ireland History より

1840 年頃,飢饉直前のアイルランドは,自らの所有する土地を年に数回しか訪れないようないわゆる「不在地主」のプロテスタントが支配する一方で,その国土には自ら食す分もままならないような面積の農地しか持たないカトリックの貧農達で溢れ返っていた。彼らの生活は貧困そのものだったが,それを改善するための手立てを打とうにも,彼らの土地にあるものは全て地主の所有に帰すものであって,地主が立ち退きを要求すればそれらを没収することなど造作も無いことだった。結局,全ての努力は無駄に終わってしまうという恐れから,貧農達は何も手を打つことができずにいた。

生命線のジャガイモ

そのような制限された農地において,食い繋ぐのに十分な量を収穫することのできる作物は,唯一ジャガイモしか存在しなかった。現代においてはなかなか注目される機会が無いが,ジャガイモは栄養素に優れた野菜である。ジャガイモは単体でタンパク質,炭水化物,ミネラル,ビタミンを摂取することができる。極論を言えば,人間はジャガイモといくらかの牛乳があれば健康を保つことができる。現に,ジャガイモを主食としていたアイルランドの貧農は,パンを主食としていた他のヨーロッパの貧農よりも健康的ですらあったという。

1810 年頃に「ランパー」 (Lumper) と呼ばれる品種が導入されると,アイルランドのジャガイモに対する依存はより一層高められることになる。ランパー種は従来の品種と比較して栄養面で劣っていたが,少ない肥料と痩せた土地でも栽培が可能であるため,特に困窮の著しい西岸地方から始まってアイルランド全域へと普及が進められつつあった。飢饉直前のアイルランドにおいては,全人口の 30% から 35% もの人々がジャガイモを主食としており,一日三食を全てジャガイモでまかなうことも珍しくない光景になっていたという。

しかし,こうして単一の品種が急速に広められることによって,アイルランドのジャガイモからは遺伝的多様性が失われることになる。ジャガイモは一般に塊茎を使った無性生殖によって栽培が行われるが,そこで増やされたジャガイモは言わばクローンであり,遺伝的に同じ性質を備えたものとして見ることができる。何らかの環境の変化に対して,ある個体は弱く,ある個体は強い,というような差異は存在しない。ある個体が危機に晒されたならば,即ちそれは全ての個体が同様の危機に晒されることを意味している。

胴枯病の発生

1845 年 9 月のこと,アイルランド全域において,ジャガイモの葉が黒く変色し,のちに腐敗するという奇妙な現象が発生する。掘り出されたジャガイモも最初は食べられそうだが,しばらくすると黒く変色し腐敗してしまう。天候の不順などによる一時的な不作は過去にもあったことから,人々はこの現象も一過性のものであると推測し,何も手を打たないまま翌年の植え付けを始める。しかし,翌年も状況は変わらずであったという。しかも,通常の不作であれば地域によって程度の差が現れようものが,この現象はアイルランド全域に渡って等しく発生していた。

061201_2.jpg
胴枯病に侵されたジャガイモ,画像は Wikipedia より (PD)

事態を重く見たイングランド政府はこの問題に関する科学調査委員会を設立するが,もっともらしい原因を見つけることはできなかった。人々は,最近敷設された鉄道から発せられる静電気がジャガイモを腐らせているのだとか,地球の中心から火山を経て腐気が放出されているのだとか,非科学的な原因を噂し合った。また,カトリック教徒は悪徳地主に対し裁きが下ったのだと解釈し,プロテスタント教徒はジャガイモへの依存から脱するための祝福が与えられたのだと解釈した。

現在では,この現象はフィトフィトラ (Phytophthora) 菌の感染によって発生する伝染病(一般に胴枯病と呼ばれる)であったことが分かっている。フィトフィトラ菌は温暖多湿な気候において急速に風媒伝染する。恐らくはアメリカ大陸からイングランドに持ち込まれた菌が,南東からの風に乗って海峡を渡りアイルランドへ達し,たまたま多湿だったその年の気候に乗じて感染を広げたのだろう。胴枯病への耐性を持たないランパー種は,たちまちに菌の餌食となり,アイルランドを食糧危機へと陥れることになる。

自由放任主義

アイルランドのジャガイモ飢饉の被害が甚大なものとなった理由のひとつに,政府の対応のまずさが挙げられる。食糧不足を解決するためには海外の安価な穀物を早急に輸入する必要があったが,これは穀物の価格維持を目的とした法律(穀物法)の存在が障害となり,実行が困難となっていた。穀物法の撤廃は当時の首相ロバート・ピールによって試みられていたが,同法を支持する勢力は強く,強行的な撤廃に踏み切れば氏の政治生命と引き換えになるであろうことが分かっていたという。結局,同法は 1846 年に撤廃され,同時にピール政権は終焉を迎える。

ジャガイモ飢饉に対するイギリス政府の対応は,当時の風潮のひとつであった自由放任主義――いわゆる「レッセ・フェール」 (Laissez-faire) を反映していた。すなわち,自由市場における自然の働きに任せることを良しとする考えである。ピールに次いで首相に就任したジョン・ラッセルは,ピールの執った対応を過剰反応であると批判し,これを放任主義的な対応へと移行させる。

061201_3.jpg
ピールとラッセル,画像は Wikipedia より (PD)

ラッセル政権は自由市場への干渉を拒絶した。政府による穀物の輸入は実施されず,国外への輸出に対する規制も行われぬままとなった。結果として待ち受けていたのは荒廃だった。食糧の価格は高騰し,貧民の手には届かないものとなってしまう。他方で,地代をまかなうために穀物や牧牛の輸出は続けられていた。深刻な飢えに直面しているにも関わらず,食糧は国内から失われる一方という,異様な事態を迎えることになる。

政府は自由放任主義の立場から,無償での救済を行うのではなく,あくまでも雇用を増やすことによる救済にこだわった。救貧院 (workhouse) はこのための施設であるが,アイルランド全体で10万人の収容が可能であるとされたこの施設も,飢饉が本格化するとすぐに飽和状態となる。また,施設に入るには救貧法の定めるところに従い,財産と自由を放棄する必要があった。救貧院は「懲治院」の訳語をあてられることもある――この言葉こそが,救貧法の実態を如実に表しているとも言える。

飢饉が進行するにつれ政府も事態の深刻さを悟り,遂には救済の拡大に乗り出すが,これにも様々な問題が付きまとった。 1847 年に改正された新救貧法では 1/4 エーカー以上の土地を持つ者は救済の対象から除外された。この制約によって,多くの農民は,飢えてでも土地を手放さずにおくか,あるいは土地と尊厳を失ってでも救済を受けるか,その生死をかけた決断を迫られた。また,同法は 4 ポンド以下の規模の貸地を行っている地主に対して税金を課し,それを救済事業の資金とした。地主はこの税を回避するために,小規模な小作農を自らの土地から追い出すという行動に出る。

061201_4.jpg
「ブリジット・オドネルとその子供達」,画像は Wikipedia より (PD)

ある者は自ら農地を捨て,ある者は地主によって追い出された。その地主さえも地代不足から破産し,多くが没落に至ったという。折りしもイギリスでの金融危機も重なり,アイルランド経済は最悪の事態を迎える。僅かながらも金と体力の残っている者は,カナダやアメリカ,あるいはイギリス本土へと移民し,そうでない者は救貧院に入るか物乞いとなった。そのいずれの道を選んだ者も,多くが飢餓,赤痢,コレラ,チフスにより死亡した。

飢饉その後

061201_5.jpg
飢饉による人口低下の分布図,画像は The Ireland Story より (PD)

ジャガイモ飢饉の終焉を特定の時期に置くことは難しい。ただジャガイモの不作が無くなったことにより飢饉が終わったというわけではない。現に, 1870 年代に入ってもジャガイモの不作は度々発生していたが,その頃にはジャガイモへの依存は既に無くなっていたために,被害は軽微な規模で済んだ。

飢饉中に発生した小作農の立ち退きと地主の没落は,結果として農地の集約を生み出す。飢饉直前は 5 エーカー以下の小規模な農地が全体の半数近くを占めていたのに対して,飢饉後は 5 エーカー以上の農地が主流を占めるようになったという。また,不動産負担法の成立により,農民が自らの土地を政府の補助の下に購入することができるようになると,アイルランドを長年苦しめてきた農地問題も遂に解決を迎えることになる。アイルランドから貧民と地主は姿を消し,中流階級の農民達が十分な広さの農地を得た。農地さえ十分にあればジャガイモに依存する必要も無い。それまでの農業一辺倒の構造も崩れ,畜産業が次第に盛んになっていく。牧牛の輸出には,飢饉の間の公共事業によって敷設された鉄道が役立てられたという。

結局のところ,ジャガイモ飢饉はアイルランドが抱えていた社会構造の歪みに対して止めを刺したに過ぎないのだろう。たとえジャガイモの不作が発生しなかったとしても,この社会は遅かれ早かれ破綻を迎えていたに違いない。ともかく,アイルランドはジャガイモ飢饉から社会構造の破壊と再構築を経て,植民地支配を脱する力を得る。その変革の流れは,飢饉から約 100 年後―― 1949 年のアイルランド独立へ向けて,脈々と続けられることになる。

参考資料

アイルランドのジャガイモ飢饉の話は,日本の高校の世界史の授業では,一言触れられれば良い方といった程度の扱いだが,欧米圏では比較的広く認知されている出来事らしく,ウェブ上の資料にも事欠かない。ただし,これをイギリス側から見るかアイルランド側から見るかによって微妙な違いが現れてくるため,視点の異なる複数の資料に目を通すことが求められるかと思う。

The History Place - Irish Potato Famine: 飢饉と移民について非常に詳しく触れているが,ややアイルランドに同情的な記述を行っているきらいが見られる。

The Ireland Story - The Great Famine in Ireland: 比較的中立的な視点で書かれていると感じられる。上の資料と併せて目を通すと良いのではないか。

Wikipedia - Irish Potato Famine: 他の資料と比較するとやや簡素な内容だが,関連する話題を追うには重宝する。同時に History of Ireland などにも目を通すと参考になる。

Go To Statement Considered Harmful

2006-12-08

Edsger W. Dijkstra. Go To Statement Considered Harmful. Communications of the ACM, Vol. 11, No. 3, March 1968, pp. 147-148.

David R. Tribble. Go To Statement Considered Harmful: A Retrospective.

Scott Rosenberg. Code Reads #2: Dijkstra's "Go To Statement Considered Harmful".

「Goto は有害である」と最初に言われたのはいつのことだったか。初めて覚えたプログラミング言語であるところの BASIC において goto は必須の存在だったが,それでもなお goto の説明と同時にその害悪について説かれたような気がする。今時の,最初に習う言語が C++ や Java であるような人たちならば,プログラムを習うと同時に goto の害悪について叩き込まれるか,あるいは,もはや goto の存在も知らずに過ごす場合さえあるのではないか。

Goto が有害であると最初に主張した人物が誰であるかは定かでないが,それを広めた人物ならよく知られている。エドガー・ダイクストラ (Edsger Dijkstra) は 1968 年に執筆したエッセイ "Go To Statement Considered Harmful" ――「Go To 文は有害である」において, goto の使用を避けるべきであるとの持論を展開した。しかし恐らくはその内容よりも,その過激な題名のためであろう,この文書は広く人々の注目を集め, goto 有害論の論拠として引用され続けることになる。

しかしそれにしても "Considered Harmful" という言い回しはよほど印象的だったのか,以後この言い回しはコンピュータ・サイエンスの分野において何らかの批判を展開する際に用いられる常套句となっている。まずは件のエッセイに対する反論からして "'GOTO Considered Harmful' Considered Harmful" (Rubin, Frank) ――「『GOTO は有害である』とは有害である」と来ている。それに対する更に反論として "''GOTO Considered Harmful' Considered Harmful' Considered Harmful?" (Moore et al.) ――「『『GOTO は有害である』とは有害である』は有害か?」などと続く。また,題名に "Considered Harmful" を用いること自体を批判した "'Considered Harmful" Essays Considered Harmful" (Meyer) ――「『~は有害である』というエッセイは有害である」というエッセイも存在する。

ところで,ダイクストラのエッセイは goto 有害論の論拠として広く引用される一方で,その詳しい内容については意外と知られていないように感じられる。実際にエッセイを読んでみると,題名ほどに過激な批判は行っていないことが分かる。また, goto は高級言語から無くされるべき存在であるとの主張はなされているものの,それが「有害である」とは一言も述べられていない。

ダイクストラのエッセイは 1968 年に執筆された非常に古い文書であり,その時代背景を知っておかなければ,その内容が意図するところを正確に理解することは難しい。当時の人々にとってのプログラミング言語とは,それが現在ある姿とは掛け離れている。現在ならば常識として通用するような諸概念も,説明を交えながら冗長な記述を行わなければならなかった。ゆえに,当世の人々がこの文書をそのまま正直に読んだとしても,なかなかその意図を量りづらいという側面がある。

David Tribble は,その時代背景についての注釈を交えつつ,「つまるところ,今風に直すならば,何を言わんとしているのか」という点について解説を行っている。この文書に目を通せば,ダイクストラは高級言語における goto の駆逐を主張しているわけではなく,ここ(1968 年当時)から高級言語が進化を遂げるにあたって,いかに goto が不要になっていくべきか,というようなことを論じていることが分かる。

ダイクストラは,制約の無い goto の運用がプログラムの構造(構造化言語における構造の概念)を容易に破壊しうることを指摘している。 C 言語における goto 文は既に制約のある goto だから,これをもって例を示すことは難しい。他のたとえを探すならば, C++ における大域ジャンプの扱いなどが適切かと思う。 C++ においてコールスタックを遡るには,例外と大域ジャンプの2種類の方法が考えられるが,大域ジャンプの方は「スタック上のオブジェクトはスコープを抜ける際にデストラクタを呼ばれる」という C++ の原則を破綻させうる。ダイクストラが危険視しているのは,このようなプログラムに与えられた原則を破綻させうる存在としての "goto" であり,それが制約無しに用いられるべきではないと主張する。

ところで,ダイクストラは晩年のエッセイ "Notes on Structured Programming" において "Considered Harmful" の由来について触れている。曰く,当初は "A case against goto statement" ――「goto 文の適さないケースについて」という題名の論文であったものの, CACM の編集者がこれを手っ取り早く発表するために「編集者への手紙」という扱いにして掲載してしまったのだという。そしてなぜか,編集者は自分で考えた題名をこれに当ててしまった。その編集者とは,「アルゴリズムとデータ構造」の著者,あるいはプログラミング言語 Pascal の設計者としても有名なニクラウス・ヴィルト (Niklaus Wirth) であったことが明かされている。

元の題名であれば,余計な論争を招くことも無かったのかもしれない。本当に有害なのはヴィルトのおせっかいであったのか。

0^0=1

2006-12-15

韓非子 『矛盾』――楚人に盾と矛とを鬻ぐ者有り。之を誉めて曰く、「吾が盾の堅きこと、能く陥すもの莫き也」と。又其の矛を誉めて曰く、「吾が矛の利きこと、物に於いて陥さざるもの無き也」と。或るひと曰く、「予の矛を以て、予の盾を陥さば如何」と。其の人応ふる能はざるなり。

高校の数学の授業で指数について習うとき,ともかくまず「任意の底 a の 0 乗は 1 である」と教えられる。

a0 = 1

その理由については特に触れないまま,とにかくそうなのだと機械的に教えられた記憶がある。「a を n 回掛けるのが an なのだから,まだ何も掛けていない a0 は 1 じゃないと困るだろう」とか,その程度の説明でもあれば良かったのかと思う。

他方で,任意の指数 n による 0 の累乗(0 の n 乗)は 0 であると考えられる。

0n = 0

0 は何回掛けても 0 なのだから,当然と言えば当然だろう。

それでは,「0 の 0 乗」は何だろう?

00 = ?

"a0 = 1" から類推すると 1 のように思えるが, "0n = 0" から類推すると 0 のようにも思えてくる。本当の答はどちらだろう?

ひとまず無難な答を出すならば,「そのいずれでも無い」というのが正しい。 00 はいわゆる不定形 (indeterminate form) のひとつで, 0/0 や inf-inf 等と同じく,決定的に評価することのできない式である [MathWorld] 。その極限は,式のとり方によって 0, 1 以外にも様々な値を取りうる [NIIT] 。

例えば C99 (ISO/IEC 9899;1999) の math.h に含まれる pow 関数は,底と指数の両方に 0 が与えられた場合,ドメインエラーを返すと定義されている [C99] 。他にも 00 をエラーとして扱う処理系は多いのではないだろうか。

それでは,我らが Google 先生は何と答えるだろう?

061215_0.png

驚いたことに,何のためらいも無く "00 = 1" と答えた [Google] 。

この答には少し理由があって, 00 は不定形であるとされるものの,数学の特定の分野においては,利便性の面から "00 = 1" と定義されることがある。その理由については [sci.math] [Mudd] などによくまとめられている。

代表的な理由としては,二項定理 [Wikipedia] を成立させるため,というものがある。

061215_1.png

これを負でない任意の整数 n について成立させるには,任意の数 x に関して x0 = 1 が成立しなければならない。 x = 0, y = 1 の場合を考えてみると分かり易い(左辺は 1, 右辺は 00 となる)。

[sci.math] によれば,この「00 をどのように扱うか」という問題は,数学者の間で古くから議論の対象とされてきた。不定形ゆえに未定義 (undefined) とするのは妥当だが,文脈によっては "00 = 1" と定義することに明らかな利点を見出すことができる。他にも様々な資料に目を通す限りでは, "00 = 1" が専ら一般的な定義となっているように感じられる。

教科書によっては x → 0 のとき x0 と 0x が異なる極限値を持つことから 00 を未定義としていることがある。しかしこれは過ちだ。二項定理を x = 0, y = 0 なおかつ・あるいは x = -y のとき成立させるには,全ての x に関して x0 = 1 と定義されなければならない。この定理は恣意的に制限するには重要過ぎるのだ! 対照的に,関数 0x は全く重要ではない。―― Concrete Mathematics (R. Graham, D. Knuth, O. Patashnik)

つまり,勝手ではなく,故あって a0 = 1 が優先されるのである――そう言えば,韓非は許してくれるだろうか?

KAOSS PAD KP3

2006-12-20

061220_0.jpg

KORG KAOSS PAD KP3 を購入してから2ヶ月近くが経とうとしている。普通ならば,そろそろ飽きも感じられる頃かと思われるが,実際には触れば触るほどその奥深さが感じられるようになってきており,一向に飽きる気配が無い。いまだに暇を見つけては,自分なりの使い方を色々と模索してみている。

YouTube - KORG KAOSS PAD KP3 (4)

YouTube - KORG KAOSS PAD KP3 (5)

今のところは,内蔵の4トラックサンプラーのみを音源として用いるスタイルに絞って模索を試みている。たった4トラック,しかも各4小節までしか扱えないという,音源としては非常にささやかな存在だが,エフェクトの多様さを活かしつつ構成を練れば,意外なほどに幅広い表現を行うことができる。これが8トラックあれば,あるいは,せめて6トラックでもあれば……と考えることは多々あるが,敢えてそれを4トラックという,足りそうで足りないギリギリの制限の中で模索させることが,独特の面白みを醸しているのかもしれない。

サンプル(音ネタ)の作成には専ら Ableton Live を使用している。このソフトは,純粋に DAW 環境として評価しても非常に高い完成度を持っているが,今回のようなパターン編集が主となる場面においては特に高い生産性を発揮する。

061220_1.jpg
Ableton Live

音源には主としてフリーの VSTi プラグイン Synth1 を利用している。いわゆる「シンセっぽい音」は,これさえあればほぼ事足りる。リズム系の音には,同じくフリーの VSTi プラグイン E-Phonic Drumatic 3 を主として用いつつ, Live 標準デバイスのひとつである Impulse を併用している。

Live 上でだいたいの構成を決めたあと,トラック毎に wav フォーマットで出力する。出力の際には実際のループよりも前後を余計に出力しておいて,のちに波形編集ソフト上でトリミングを行う。この編集作業にはフリーの波形編集ソフト Cycle of 5th SoundEngine を利用している。持続音が滑らかに繋がるようループさせることはなかなか難しいが,実際には多少のノイズが出たところで気にはならない。ゼロクロス選択を利用すれば,ほぼ問題無いレベルに抑えることができる。

061220_2.jpg
Cycle of 5th SoundEngine

こうして作成した4トラック分のサンプルを, KP3 に付属のソフト KP3 Editor を使って USB 経由で KP3 本体へ転送する。ここで過去の KORG 製品(あるいは他社の現行製品)ならば,一旦メディアにセーブしてからそのメディアを抜いて挿して……というような回りくどい手順を辿ることになるが, KP3 ではこのソフトが存在するおかげで,非常に手軽にサンプルを転送することができるようになっている。

061220_3.jpg
KP3 Editor

ここまで来たならば,あとは KP3 上で気が済むまで遊べばよい。本来ならばここからが本番だが,なにぶん模索中ゆえに決まった手順は存在しない。とにかく,試せる限りのことを試してみるしかない。その試行の過程で様々な発見を得ていくことが,この機材の楽しみ方のひとつであると思う。

The Path of Least Resistance

2006-12-22

Ka-Ping Yee. User Interaction Design for Secure Systems. University of California Berkeley Tech report, May 2002.

Ka-Ping Yee. The Path of Least Resistance. Usable Security blog.

コンピューターとは,それが信頼に足るものであり,なおかつ,そのソフトウェアが期待した通りに振舞う場合に,セキュアであると言える。―― Garfinkel and Spafford

コンピューターにおけるセキュリティの問題は,例えばバッファオーバーランや暗号の脆弱性などのように,ソフトウェアの技術上の問題に帰せられることが多い。故にその文脈においては,ソフトウェアの実装の「正しさ」を確立することを求めて,様々な議論がなされる。しかし実際には,ソフトウェアに「正しさ」を求めるのと同時に,ユーザー側におけるソフトウェアの扱い方にも「正しさ」を求めなければ,本当の意味でのセキュリティを確立することは出来ない。

コンピューターがファイルを消したり,増やしたり,書き換えたりするのは,それが仕様通りであれば正しい動作である。その動作がユーザーの操作によって引き起こされたものであればなおさらである。しかしそれがユーザーの操作でありながらも,ユーザーの想定を超えるようなものであったならば,それはセキュリティ上の問題として捉えられる。コンピューターが本当にセキュアな存在となるためには,実際のソフトウェアの動作が,ユーザーの頭の中にある想定を超えるようなことがあってはならない。

カリフォルニア大学バークレー校の Ka-Ping Yee 氏は,セキュアなソフトウェアに必要とされる相互作用設計(インタラクション・デザイン)に関する研究を行っている。氏はその中で幾つかの設計原則を提示しているが,それらの中でも最も基本的な原則として「最小抵抗経路の法則」  (the principle of the path of least resistance) を挙げている。

実世界においては,物事の容易さと危険性の間には相関性が存在しないことが多い。例えば,包丁を安全に扱うには慎重さを要するが,スポンジたわしを安全に扱うのに慎重さを要したりはしない。そういったことは他人から教えられたり,あるいは自ら観察や経験を経ることによって得なければならない。時には手痛い失敗を経てようやく得るということもあるだろう。

しかしそういったことは,道具の設計者が特別な気を配ることによって,使用者の行動を誘導することが可能である。例えば,電動ドリルのビット(錐)の留め具を外すのに使うハンドルは,電源コードの先端に備え付けられていることがある。こうすることによって,留め具を外す際に電源コードを抜くことは最も自然な流れとなり,また,電源コードを抜かずに留め具を外すことは非常に困難な流れとなる。道具の使用者は誰から教えられる訳でもなく,自然に安全な行動(留め具を外す前に電源コードを抜く)を選択するようになるだろう。

どのようなユーザーも(たとえそれが技術者であったとしても),常にセキュリティのことを考えながらコンピューターを扱っているわけではない。何か有益なことを達成する過程において,余計な手続きであると感じられることは自ずと避けるようになり,最も自然な流れ――「最小抵抗経路」を求めるようになるだろう。

故にソフトウェアは,最も自然な流れを辿るときに安全が保たれるようにしなければならない。また,危険な行為には困難さが伴うようにしなければならない。それでいて,その配慮がソフトウェアの有益性を損なうようなことがあってはならない。その両者のバランスを保つことが,優れた設計へと至るために必要とされる要素のひとつであると言える。