Skip to main content

兎のエゴンと私: 見えない惑星を発見することの不思議さについて (2)

(前回からの続き)

I: 私が遠くの星を物理の法則から見つけるのが不思議ではないと感じる理由で,思いあたることがある.これは少し私の世界が広くなったことだからだと思う.でも,それが十分広いと思っているわけではないんだ.私が傲慢になって,世界がわかった気になって,不思議に思わなくなったということではないと自分で願う.私は世界の一部を学んだことで,不思議なことのいくつかが素敵なことへと変化したんだ.不思議は知識になった.

Egon: ...

I: それにほとんど全ての知識は私の努力で得られたものではない.私は知識を学んだ.それをただ覚えたのではなく,理解したと思いたい.

Egon: ...

I: あまり正確な言い方ではないけれども重力の法則というのは「物は落ちる」ということだ.人間は何千年か地球や宇宙を見てきて,「物は落ちる」ということが宇宙のいろんなところで起こっていることを調べたんだ.

Egon: 人類としての長い時間と努力を経た知識の蓄積がある.

I: どうして落ちるのかは実はわかっていない.私にはよくわからないが,最近ヒッグス・ボゾンに関しての進展があったので,少し重力についての知識は前進したらしい.それでも重力の起源が理解されたとは聞いていない.しかし,いつでも物を投げるとそれは落ちる.石を上に投げると落ちる.ボールを上に投げると落ちる.私がジャンプすると落ちる.君が跳ねても落ちる.

Egon: どんなうさぎでも,いつまでも空には留まれない.うさぎにもそういう言い回しがあったかもしれない.

I: あたりまえと思うかもしれないが,「あたりまえ」とは私や君が「感じる」ことであり,多くは身近な事実だと思う.身近な事実が世界で通用しないこともある.「私の世界ではいつもそうだった.」というのがあたりまえということなのだろう.しかそそれは他でもそうだということではない.この地球上では物はいつも落ちるかもしれないが,それが宇宙の彼方でも同じだとどうしてわかるのか.1000光年向こうでも重力の法則は同じだとどうしてわかるのか.月に行くだけで物の重さは変わるのに.反重力のある星がないとは言えるのか.(とは言っても重力の法則は地球と月では実は同じだが)

Egon: 地上であたりまえのことでも,確かに宇宙普遍の法則ではないかもしれない.

I: あたりまえと思うのは,私の世界でいつも落ちることを見ているからなのだろう.だから落ちないものがあれば不思議に思う.例外に見えること,鳥が飛ぶとかも,熱気球が浮くとかも,実はよく考えてみると,例外ではないことがわかる.熱気球は熱を失なえば落ちる.鳥もいつまでも浮いてはいられない....つまり,いつも物は落ちる.そして物理学ではそれがどんなことかを記述する.「なぜか」ではないが,「どんなものか」を記述する.2つの物体の間にどんな力が働くのかわかる.それはそれぞれの質量に比例し,距離の2乗に逆比例し,ある定数に比例する.

Egon: 何か細かい話になってきた.

I: まったく同じことだが,F = GMm/(r^2) とも書ける.こうすると,日本語とか英語とかによらないし,自然言語のあいまいさがないので,便利だと思う.でも,さっきのややこしいことを,違う言語で書いたにすぎない.英語で書こうが,ドイツ語で書こうが,数学で書こうが,結局,物は落ちるというだけのことさ.

Egon: ...

I: あたりまえというのはある意味心地良いことだ.でもそこに留まっていると自分の世界は広がらない.そしてそういうところに留まることもできる.しかし,世界がやがて私達をつかまえる.その変化していく世界でも生きていくために,私は自分の世界もバージョンアップして少しでも広げていきたいと思う.それが学ぶということだと思う.私の場合,技術者だから新しくなっていく技術についていかないと,やがて技術屋としては生きていけなくなる.それはある意味,心地良いと思う世界から出て行き,広い世界に移動することだ.でもそのためには葛藤を経なくてはいけない.不思議で理解できない世界に入り,理解をしようとする努力が必要になる.めんどうなことだ.

Egon: 君が自分の作った檻に我慢できなくなって,もっと大きな檻が欲しくなった時,その檻を壊さなくてはならない.でも檻の中というのはある意味安全だ.壊しても大きな檻は今の檻よりも住み心地は良くないかもしれない.

I: でも私の古い檻はいつか住めなくなる.私が檻をいつも壊して広げ,新しくしていくか,それとも破局になってから泥縄で対処するか.私はできればいつも新しくしていきたい.破局は早めに対処すると避けることができることが多い.他の破局から学びたい.

Egon: それはしかし勇気のいることかもしれない.外の世界は嫌なものとして嫌って近付かないという選択肢もあるかもしれない.いつまでも母親の後ろに隠れる子どもでいられたらいいと願うこともできる.「檻を開けないで,放っておいてくれ.それが私のあたりまえの世界だから.世界の変化よ止まれ」という生き方もあるだろう.

I: そういう考えもある.ただ,そういう生き物は生き伸びる可能性が低い.滅ぶことが別に問題ではないのなら,そういう生き方も問題ではないが,生き伸びるということが重要なことであれば外に興味を持つことは重要だ.

Egon: 檻に守られていても?

I: どんな檻も完全ではない.いつかは壊れる.だから,一ヶ所に留まって外の世界に興味を持たない生物というのは,その地域の災害,あるいは特定の病気の蔓延などで全滅する可能性がある.しかし,もしある生物が外へと広がるのなら,自然災害から逃れて生きのびるものもあるだろう.単にリスクマネジメントの問題だ.全財産を一ヶ所に賭ければ,一度で全てを失う可能性がある.子どもがいろいろなことに興味を持つのは,様々な世界に対応するためだと思う.檻を壊して世界に広がり,それぞれの場所に苦労して適応する生物は,よりリスクが分散され生きのびる可能性が高い.外の世界に興味を持ち,様々な考えを知ることは,生きのびるための知恵だと思う.それは投資のようなものであり,もちろん失敗も危険もあるだろうが,まったく投資しなければ成功もない.それに子ども達の存在がある.まったく新しいことをしないようにするためには,まったく新しい個体である子は害となる.しかし,子の存在を否定して未来はないと私は思う.

Egon: 全滅しても檻が良いという生命もあるだろう.未来がないことを悪いと思わない考えもある.あるいは,家畜として生き伸びるのも1つの方法だ.

I: 未来のない世界,家畜として生き伸びる.どちらもあまり興味をそそる考えとは思えないが...

Egon: そうかね.自由と命とひきかえに1ヶ月の食事と寝る場所を求める人は多いそうじゃないか.

I: ...

Egon: 君は以前,人間と動物の違いは未来を見て計画をつくれるかどうかと言っていたが,うさぎの世界の未来と,人間の世界の未来とどちらがまともな世界だと思うかね?

I: ...「蜂が滅びれば地上の生命は滅亡するが,人類が滅亡すれば,他の全ての生命は栄える.」...

Egon: ...

話が少し違う方向にいってしまった.私は新しいことを不思議と思うこと,それを自分の世界という檻を広げることと考えた.そこに落ちついてしまう時,私は自分の可能性を否定し,精神的な死となると思う.でも,そこから出ることは簡単ではない.時には自分と少しでも違う人達を排除して,自分の世界に留まるのも楽だと思う.新しい考えを学ぶということは難しいことだ.そして新しい考えはまったく知らない人達から来ることも多い.知っている人達は似たような考えをするからだ.問題は時間が止まっておらず,今でも新しい人々が生まれているということだ.世界は動いている.古い世界はやがて去る,それと一緒に去るのか,あるいは新しい世界を切り開くのか.今のシステムが害となることがはっきりした時でも,そのシステムにしがみついて滅びの道を歩むのか,それとも新しいシステムをまったく新しい考えを持つ人々と苦労をしてでも作っていくのか.私は Egon の隣に座って考えていた.

(次回へ続く)

Comments

Popular posts from this blog

共有メモリによるプロセス間通信

Unix の共有メモリを使ったプロセス間通信について調べて実験をしてみた.対象は1つのホスト上での複数のプロセスである.ネット上でいくつか例題はないかと探したが,どうも良い例となるコードが見当たらなかった.結局はある解説記事と,Stack Overflow の議論と,man page を見て作ってみたものになったので,例をここに置くのも有用かと考え,この記事を書く.(もしかしたら探し方が悪くて良いコード例をみつけられなかっただけかもしれない.) mmap を使うかどうかという話がいくつもでていたが,POSIX の方向としては,shmem_open と mmap を使うという方向があるということだったので,それを信じてその形での実装を試してみた. 基本的なコードの流れは次のようになる. 共有メモリ領域を1つのプロセスが shm_open() を使って作成する.その際に,プロセス間で共通の文字列を識別子(``identifier'')とする.(Linux ではこれが /dev/shm/identifier のように見える.) 共有メモリ領域を mmap() でメモリにマップする.共有メモリポインター (shared_ptr)が得られる. shared_ptr を使って複数のプロセスで通信をする. 利用終了後は munmap() をつかってマップを消す. 共有メモリオブジェクトを shm_unlink() によって消す. 以下に示すプログラムは,server と client の2つのプロセスが共有メモリを使って通信をするものである.ここで,server プロセス数と client プロセス数は共に 1 を仮定する.server と client は自分の領域にしか値を書き込まないことで,ロックを避けている.互いに相手の値を読み,それよりも1大きい数を一定の期間ごとに自分の領域に書くという例題である.シンプルではあるが,共有メモリで通信をする基本としては十分なものだと思う.ソースコード(shmem_test.cpp)を以下に付加する.ソースコードのコメントにコンパイル方法とどのように利用するかを書いておく. /*   Shared memory inter process communication minimal exa

複数の線を持つ線グラフを Jenkins の plot plugin で描く方法

私は毎夜のソフトウェアテストを自動化するために Jenkins というツールを使っています.今回は, valgrind  を使ってメモリーリークのテストを自動化することにし ました.その際,エラーの数の結果をグラフとして表そうと思って, Plot plugin  を使うことにしました. Plot plugin の例図からは,複数のデータラインを描くことができるのは明らかなのですが,どうやったらいいのかは参照のページや,例としてあった Perl script,plugin 中の help からは私にはよくわからなかったのです. ここで重要な考えは,それぞれのデータラインにはそれぞれの出力ファイルが必要ということでした.私はこれを誤解していました. 例として,ビルドの時に次の property データファイルを出力します.それぞれのファイルが1つのデータラインを表します. valgrind_trunk_result.definitely.property valgrind_trunk_result.indirectly.property valgrind_trunk_result.possibly.property それぞれのデータの中身は1行のデータ点です.たとえば, valgrind_trunk_result.definitely.property ファイルの中身は次のような1行 です. YVALUE=0 このファイルを ${WORKSPACE} ディレクトリ以下に出力します.ここで," WORKSPACE " は jenkins が提供する環境変数です. 図1が私の plot plugin の設定を示しています.これは jenkins の config 画面です.3つの data series があって,それぞれにデータファイルがあります. Figure 1: Plot plugin configuration in Jenkins 図2が結果です.複数の線が描かれているのがわかります.(実際には 3 本の線がありますが,最初の線と2番目の線が同じデータなので,重ねって見えません.) Fugure 2: Plot data with multiple data lines

ソニーのカメラ (α 5000) の 30 分のビデオ録画時間の制限を外す方法

私は Sony の Alpha 5000 を気にいって使っています。しかし一つだけ問題がありました。それはビデオの録画時間の制限が 30 分というものです。 今日,ちょっと気になって探したらこの制限を解除できることがわかりました。以下のビデオがその紹介です。 https://youtu.be/7cstA_PuRIg このビデオの作者によれば,ほとんどのソニーのカメラのビデオの制限はなくせるそうです。ただし私が試したのは,Alpha 5000 のみです。 手順 カメラ側 スイッチ On Menu -- Setup --- USB connection を MTP にする スイッチ Off and On USB ケーブルでカメラをコンピュータに接続する (以下接続したままにする) コンピュータ側でソフトのダウンロードとインストール (私は Windows 10 で試しました) 次の URL に行く https://sony-pmca.appspot.com/apps ただし,Internet Explorer か Safari のみサポートということでした。Chrome では上手くいきませんでした。私が試したのは Windows 10,Internet Explore 11 です。 注意事項: このサイトは Sony のサイトですが,ここにあるソフトウェアは Sony のものとは限らないので保証はありません。御自分でリスクを判断してご利用下さい。当方も何も責任を負えません。 上記の URL から,OpenMemories のページに移動する。 このページにある PMCADownloader plugin (PMCADownloader.msi) をダウンロードする PMCADownloader をインストールする 私はいちどここでページを閉じてもう一度 https://sony-pmca.appspot.com/apps を開き,OpenMemories のページに移動しました ここで log に Loading plugin Plugin loaded と表示されます。PMCADownloader の Install がされていない時には,``Plugin loaded'&#