原発の安全な設置場所

地震はそんなに来ないはずだった日本海沿いで立て続けに大地震が来て、これはもうどこに原発を建てたらいいのかわからないですね。
天災は地震だけではないけど、最大の脅威を地震とすれば……
いま最も安全な建設地は、海上ですね。メガフロートまたは大型タンカーに原子炉を建設。発電船とします。20万トンクラスのタンカー上になら、ギガワット級の原子炉は余裕で設置できるでしょう。
メリットは、土地買収コストがかからないこと、また、そのために大都市の近海に浮かべることができ送電コストを節約できること。さらには、移動可能なので災害や事故で電力の不足した地域に回送できることです。
接岸しているわけでなければ津波の影響はほとんど受けません。
サイズから、台風の際の心配は転覆することよりも流されて座礁することでしょう。自走能力を持ち、嵐に抗して位置を保てるようにする必要があります。
嵐への耐久力を考えるなら、水上よりむしろ水中かもしれません。
ただ、水中に潜航できるようにするとすれば、その技術は原子力潜水艦そのものですから、当分は無理でしょうが。

「機種変更」っておかしいよね

一般的に機種変更と呼ばれている行為、「機種変更」って呼ぶのは変ですよね。
実際に変更しているのは端末。端末を変えるのは機種を変えるときが多いんだけど、お気に入りの端末が全損したから同じ機種を買い直すってときもあり、それも機種変更と呼んじゃっていますね。
機種はクラス、端末がインスタンス
クラスとインスタンスの区別がついていない素人プログラマみたいな言葉の使い方にいつも違和感を感じるのです。

すべては無である。なぜか。

禅の《絶対無》の深遠さには遠く及びませんが、僕の「すべては無である」という考え方について述べてみようと思います。

台風というモノはない

「ゆく川の流れは絶えずして」しかも、もとの水ではありませんね。分子という概念のなかった平安人も、川の流れが一定でも、それを構成する水は交替し続けていることは容易に想像がついたのでしょう。
これと同じ話ですが、もう少しわかりやすくするため台風の話をします。
台風は、地上(海上)の暖かい空気が渦を巻いて上昇する現象です。川と同じで、それを構成している水分子も空気の分子も、すごい勢いで入れ替わっています。しかも川と違って、台風は時々刻々と位置を変えています。
するとどうでしょう、ある台風と、その台風の1時間後を比べれば、構成する分子も全然違う、位置も全然違うわけで、「これが同じモノだ」と識別できる要素はありません。それなのに「台風4号」などと同じ実体であるかのように人間は名前を付けます。
人間が「4号」と命名して識別する根拠は、現象が連続的に続いていることの一点にあります。
つまり、連続的に起きている現象をあたかもモノであるかのように捉えているわけです。実際にはモノでないのは明らかですね。水分子も空気分子も、自分が台風に参加している意識しているわけもなく、周囲の圧力に押し流されているだけです。

人間だって現象

台風がモノでないのは、わりと当然なことです。
さて一般的な常識は人間の個体は明らかに物体です。「人間をモノ扱いするな」とかそういう話ではなくてですからね。
では、ある30歳の人が、30年前のある赤ん坊と同一人物であるというのは、どうして言えるのでしょう? 言うまでもなく、構成している分子はとっくの昔にほぼすべて交替しているはずです。絶えず位置が変わっているのも台風と同じですね。
もちろん実用的には、容姿だとか指紋なんかで個人を識別することはそれほど困っていないのですが、根本的にある人が昔のある人と同一人物である理由は、容姿でも指紋でもありません。
台風と同じく、生命活動が時間的空間的に連続しているから、です。
しかも考えてみてください。人間を構成している要素に特別なものはありません。炭素・水素・酸素・窒素、その他の原子が組み合わさって、エネルギーを消費しながら自己を維持している集合体です。台風と同じく、現象なのです。

その構成要素だって現象

時間的空間的に連続している現象に対して、知性が勝手に「台風」「人間」と呼び名を与えてモノ扱いしているのだ、ということです。では、それを構成している分子や原子ならモノだと言えるのか、という問題があります。
それについては量子力学が答えを出してくれています。素粒子も現象なのです。
素粒子同士は、種類が同じなら個体を区別することができません。技術的に無理なのではなく、原理的に同質なのです。これは、空間に素粒子Aが「存在する」というよりは、空間のこの位置は「素粒子Aがあるという性質を持つ」という空間の性状として捉えられることを意味します。
ミクロの世界で、空間は電光掲示板のようなもので、存在する粒子は掲示板上のランプの点灯でしかありません。現象なのです。

現象は架空

この世で、モノだと思っていたものはすべて現象としか捉えられなくなりました。
しかし現象というのもあやふやなものです。台風の例えでも、水分子や空気の分子はあくまで、周囲の圧力と熱、重力、コリオリ力、潮汐力などに動かされていただけです。分子達は物理法則に従って淡々と動いているだけなのを、知性が勝手に「この現象を台風と呼ぶ」と概念づけてしまっただけ。
もう少し一般的に言うと、この世の物理的な運動の中に特徴的なカタチをみつけたら、知性はそれを現象と呼んでしまうのです。そして、現象が時間的空間的に連続しているとそれをモノとみなしてしまう。現象もモノも、知性が勝手に定義した架空の存在なのです。

イデア論の誘惑

現象もモノも実体がない、そのことは、ある法則を思い出すと飲み込みやすいかもしれません。
「例外のないルールはない」
ルールをどううまく定めても、どうしても例外が生じてしまう。それは現象というものが知性の勝手に決めたものであることと密接に関わっています。ルールは現象に対して定められています。「人を殺したら斬首」なんて古代のルール、簡単に見えますが、運用はそう簡単じゃありません。人殺しという行為は現象です。そして、現象はあくまで、変化の特徴的な部分に名前を付けただけのもの。完全な定義などできないのです。それでも判決は下さないといけないので困った例が出てくる。あげくに、「未必の故意」みたいなさらに複雑な概念を定義していく必要が出てきます。そういう積み重ねをしても、やはり判決に困る例に事欠かないのはご存じの通り。
本来架空のものである現象を扱おうとするから、完全な定義付けができない、それが例外のないルールを作れない根本原因と言えます。
いや、モノにも現象にも本来完全な定義があるはずだ、なきゃおかしい、という考えから発展したのが古代ギリシアのイデア論でしょう。モノのイデア、はまあいいとして、善のイデアまで定義しようとしてしまいました。善の定義なんて無理だろうとは、古代人でも気付かないわけはなかったと思うのですが。
しかし彼らは、実体から離れられませんでした。

それでも僕らは物質界で生きている

こんな、すべてを無に帰すようなことを考えていても、お腹は空くわけでお野菜買ってきてごはん作らなきゃいけません。物質のすべてを否定しながら物質界で生きている、また楽しいことじゃありませんか。

段ボールを食べて危ないわけは

もう「あれはやらせだった」と発表された、中国での「段ボール入り肉まん」事件ですが、これに関して「苛性ソーダを使ってるなんて、なんて危険なんだ」という論評を数多く見かけました。
苛性ソーダ。水酸化ナトリウム。NaOH。ほぼ100%電離する強アルカリ。
段ボール入り肉まん事件が本当であれやらせであれ、水酸化ナトリウムを使用していることが危険な理由にはなりません
水酸化ナトリウムで処理した食品なら僕もたまに食べてます。カップヌードルの具で、サイコロ形の肉があるでしょう。あれは蛋白加水分解物と呼ばれます。硬すぎて食用にならない肉を水酸化ナトリウムで分解して柔らかくしたものです。

(8/5訂正)削除部分は、以前伝聞で知った話です。調べ直してみたところ、2点で間違っていました。

  • 蛋白加水分解物は、具材ではなく調味料です
  • 加水分解は主に塩酸が使われ、水酸化ナトリウムは処理後に塩酸を中和するために使われます

どちらにしろ、水洗・中和ができるので直接の危険性はないという点に変わりはありませんが。

そもそも水溶性の物質。食品の処理に使っても、水洗いすれば完全にすすげます。
それでは段ボール肉まんは安全?
いやいや、危険です。
危険なのは、紙パルプ。人間はパルプを消化できません。紙なんか大量に食べたら、腸閉塞起こしてしまうのです。

安倍さんが何か言う前に言っておこう

これは橋本首相が9年前、参院選の大敗で首相を辞任したときに思ったことだし、3年前の参院選のときにも思ったことですが。

  • 安倍さんが敗北の責任をとってやめるべき役職は「党総裁」
  • 首相を辞めるべき理由は「国民の信任を得られていないことが示されたから」

本人も報道も、これを完全に取り違えています。

線分を扱うプログラムはベクトルで解く

最近、別々の人から同じ質問をされたのでエントリーにまとめることにします。
その質問というのが「線分ABと点Pが与えられたとき、AB上でもっともPに近い点を求めるには?」というもの。
垂線をおろして交点を求めるだけの簡単なプログラムのように思えて、これはちょっと工夫が必要です。

誰にでも思いつくナイーブな解法

垂線をおろして交点を求めればいいわけです。もし交点がなければ線分の端点AかBのどちらかが「最も近い点」になるはず。
実際に手順を書いてみましょう。

  1. ABの傾きaを求める。
  2. 垂線の傾きは -1/a。ただしABが垂直なら垂線の傾きは0。垂線の傾きをbとする。
  3. 点Pを通り傾きがbとなる直線を求める。【一次方程式を解く】
  4. ABを直線の式で表し、垂線との交点を求める。【連立一次方程式を解く】
  5. 交点の座標がAとBの間にあるなら、交点が求める点。
  6. 交点の座標がAの外側ならAが求める点、Bの外側ならBが求める点。

なんと連立一次方程式を解く必要があります。これは面倒くさいですね。
しかもこの方式、平面図形の場合にしか使えません。空間図形になるとそもそも「垂線の傾き」という概念がないですから。
ここで役に立つのが、高校で習ったベクトルです。

ベクトルを使ったスマートな解法

ベクトルxの長さのことを|x|と表現します。まずは考え方。

  • 線分ABを、基点Aとベクトルaで表す。AからPまでのベクトルをbとする。
  • aとbのなす角をθとすると内積abは、|a||b|cosθ。これを|a|で割ると、線分AB上に下ろした交点までのAからの距離を意味します。
  • |b|cosθが 0 以下なら A が求める点、|a|以上ならBが求める点、0より大きく|a|未満だったら、A + a・(|b|cosθ/|a|)が求める点です。

これを実際にプログラムにしてみましょう。コツとして、ベクトルの長さ|a|を求めるには平方根計算が必要になるので、|a|2のまま扱った方が効率がいいという点に留意します(|a|2を出すだけなら内積a・aを求めるだけです)。

  1. ベクトルaはB-A。ベクトルbはP-A。
  2. 内積iはab。交点までの距離比率rはi/|a|2
  3. rが0以下ならAを返す、1以上ならBを返す、それ以外ならA + r・aを返す。

C言語で書き下ろします*1。二次元ベクトルを表すvector2Dという型を用意して使っていますが、オブジェクト指向言語なら内積を求めるメソッド・引き算をするメソッドを用意することで三次元など一般的な次元にも対応可能。

typedef struct{
	double x;
	double y;
} vector2D;

vector2D nearest( vector2D A, vector2D B, vector2D P ){
	vector2D a, b;
	double r;
	
	a.x = B.x - A.x;
	a.y = B.y - A.y;
	b.x = P.x - A.x;
	b.y = P.y - A.y;
	
	r = (a.x*b.x + a.y*b.y) / (a.x*a.x + a.y*a.y);
	
	if( r<= 0 ){
		return A;
	}else if( r>=1 ){
		return B;
	}else{
		vector2D result;
		result.x = A.x + r*a.x;
		result.y = A.y + r*a.y;
		return result;
	}
}

まとめ

線分上で最も近い点を求める必要があるなんてそんな頻繁にはないことです。だからこの解法を覚えておく必要はありません。
大事なのは

  • 図形のプログラムはベクトルですんなり書ける場合がある。
  • 高校では、かなり実用的なことを習っている。

と覚えておくことです。

*1:手元にコンパイラがないので、書き下ろしただけです。見たところ間違いないけど、エラーがあったら教えてください

スキルアップ―レベルとスペシャリティ

流動化しすぎた労働力への反省から、企業は育てた社員を財産とみる考え方に戻って来つつあるようです。
この考え方をする企業は、社員のスキルアップのためコストをかけようとしますし、社員もやはり自分の価値を上げたいのでスキルアップを望みます。これだけ見ると、スキルアップしたい社員とさせたい企業、利害は一致しているように見えます。
しかし、お互いにとって必要なスキルの内容は本質的に異なっている点に注意が必要です。利害は一致しているどころか、むしろ対立していると解釈する方が適当かもしれません。
どういう点ででしょうか。
企業にとって人材は資源ですから、資源として管理の枠組みに乗るようにスキルを持ってもらった方が扱い易くなります。ありていに言ってしまえば、社員を互換可能な部品にしたいのです。それは配置管理上の都合もありますが、雇用主と労働者の力関係において、雇用主を圧倒的に強くしてくれるという効果にもよります。
互換可能であれば、その社員がいなくなっても、極端な話過労でつぶれてしまっても、損失は定量的なものです。会社はそこまで困らないので、安心して負荷をかけることができる。
これに対して、労働者側が「自分だけの」スペシャリティを身につけていた場合力関係は逆転します。いなくなれば業務に支障が出るので、辞めさせるわけにも病気させるわけにもいかない。辞めそうになれば、報酬なり地位なり権限なりを提示して引き留めないといけません(やる気のある労働者にとって最も嬉しいのは権限でしょう。権限が足りなくて仕事が停滞するのはやる気を大いにそぐことです)。
資格の取得を会社が勧めてくるなら、それは管理できるスキルの枠組み上に乗せたいという意思です。「○○の取得者は□□人」と把握できますから。
これに対して、「△△のことだったらあいつに聞けば必ず解決する」といった強み、スペシャリティは資格試験などない代わりに参考書もなく、自力で開拓するしかない管理不能のスキルです。これが労働者の権利を十二分に主張するために必要不可欠な武器となるのです*1

*1:ただし、あまりにも代替不可能なスペシャリティは自分の首を絞めることになるのでご用心。「自分がいないと業務のクオリティが落ちる」程度ならいいのですが、「自分がいないと業務が完全に停止する」程だと、休むこともできなくなりますね。