見出し画像

マンスリーデルタV 2019.9月号

「ナビゲーションに潜む蛇」

皆さんは一年でどれくらいの映画を観るでしょうか?僕はせいぜい多い時で年5本。テレビもあまり見ませんし、ドラマなんかの話はさっぱり付いていけません。

しかし宇宙がテーマの映画となると話は違います。宇宙に興味があるというか、話題に乗り遅れないための情報収拾という側面が強いのですが、近年ですとInterstellar, TheMartian, Hidden Figures, First Man, Apollo 11などを観ました。そのうちの一つHiddenFigures(邦題ドリーム)では、アポロ計画に計算手として従事した女性を映しています。ひと昔前はコンピューターを扱う、もしくは数値計算をやるのは女性の仕事でした。今の時代ですとコンピューターを使いこなせる人間はIT業界で重宝され華やかなイメージがありますが、当時のコンピューターは今のものとは比べものにならないほど大き
く、扱いづらく、計算も遅いものでした。

戦争がテーマの映画を見ていてもそうですが、タイプライターを打っているのはいつも女性ですよね。昔は計算式を考え出すのは男、それを実際に計算するのは女性、と棲み分けがされていました。計算式を考えるのはクリエイティブな難しい仕事だが、計算だけなら女性でも出来るという男尊女卑の思想もあったと聞いています。

ここに先月学会途中に寄ったハーバード大学に展示されている1940年代のコンピューターの写真を載せました

(Mark I: http://sites.harvard.edu/~chsi/markone/exhibit.html)

スクリーンショット 2020-03-20 12.47.58

ご覧の通り人よりも大きいです。説明文にはfor loopの実装が画期的であったと書かれていました。for loopというと、同じパターンの計算を繰り返したい時に使います。昔のプログラミングは紙に数字を示す穴を開けて計算していましたから、for loopに辿り
着くと実際にその計算に必要な紙を移動させたりするのでしょう。僕もコンピューターの発展に関しては全く詳しくありませんから分かりませんが、昔のボスがこんなことを話してくれたのを思い出しました。

「冬の寒い日に研究を終えて帰ろうと外に出ると、一人学生が歩いてきた。大きな鞄と沢山の教科書を抱えていた。その日は雪が降っていて、その学生は滑って転んでしまった。それと同時に鞄が開いて、運が悪く中に入っていたパンチカードがバラバラになってしまったんだ。学生はすぐに泣き出した。そんな大量のパンチカードを順番通りに直すなんてまさに悪夢だ。僕が大学生の頃はそういう時代だった。」

今僕が仕事で使っているコンピューターは1時間ごとにバックアップを取ってくれていますから、例えばファイルを誤って消してしまってもあまりダメージはありません。しかし紙を何千枚も並び替え、しかも中には作り直しのカードもあるとなると… 想像しただけでゾッとします。

写真がFortranのパンチカードです
(https://en.wikipedia.org/wiki/Computer_programming_in_the_punched_card_era)

スクリーンショット 2020-03-20 12.50.34

さて、ここでタイトルに戻りますが、一体「ナビゲーションの蛇」とは何だ?ということについて書きたいと思います。

僕が普段衛星の軌道計算で使っているソフトウェアの名前はMONTEと言います。正式には Mission Analysis, Operations, and Navigation Toolkit Environmentの略式で、僕の働く部署が開発・管理しているものです。興味のある方は以下のページにもう少し詳しく紹介されています。
= https://montepy.jpl.nasa.gov/
=http://conference.scipy.org/proceedings/scipy2016/pdfs/jonathon_smith.pdf
= https://www.youtube.com/watchv=E3RhKKpm4TM&feature=youtu.be

MONTEが書かれている言語は何かと言うと… MONTEと聞いてすでにピンと来る方もいるかもしれません。それは勿論、Pythonです。これは60年代のコメディー、MontyPythonへのオマージュ。コメディー好きが長じてPythonでプログラムを書くというのもおかしな話ですから、当然Pythonで書くことを決めた後にMONTEという似たような音の名前を付けたことになります。ちなみにPythonはuser interfaceを楽にするためのwrapperで、その下にある計算ルーティーンはC++です。

そしてそのPythonですが、プログラミング言語でもあると同時に世界最大級の蛇の名称でもあります。最長10メートル弱まで成長するような巨大蛇ですから、人間でも簡単に胃の中に入ってしまいますね。

運用中の衛星の軌道計算をするような大事なソフトウェアですから、当然バージョン・コントロールされています。そのバージョンは基本的には数字で表されるのですが、重要なリリースになると名前が付きます(namedrelease)。例えばMacのOSですと、YosemiteとかSierraとかいうのがnamed releaseになります。

すでにもう予想がついた方はいるでしょう。そのnamed releaseがMONTEの場合は全て蛇に因んだ名前になっているのです!アルファベット順にAから始まり、Zまで名前を付けることになります(いくつかnamed releaseされなかったアルファベットもあります)。現在の蛇の名は恐竜の時代に生きていたとされているTitanoboaという超巨大蛇です。

僕はJPLに勤めて6年になりますが、予てから日本に由来のある蛇の名前を付けたいと企んでいました。次のnamed releaseはVから始まる蛇に決まっているので、僕に残されたチャンスはW, X, Y, Zしかありません。英語ですとそんなアルファベットで始まる蛇がいるのか?と諦めてしまいそうですが… そうなんです、日本には八岐大蛇という立派な蛇がいるじゃないですか!流石に “We are releasing the Yamata noOrochi version of MONTE”なんて滅茶苦茶言い辛くて大変ですが、Yamataぐらいなら行けそうです。

僕のアイディアをこの前ソフトウェア管理のチームに提案したところ、中々の好感触でした。Yamataにはeight-headed snakeなので、8倍優秀なソフトウェアになるおまじないの意味もかけています。

ということで、数年後には八岐大蛇が衛星を飛ばす日が来るかもしれません。そのときは悪事を働くこともなく、退治されることも無い優秀なソフトウェアとして。皆さんも僕の案が通るよう是非応援してください!


高橋さん

高橋雄宇
JPLで働くナビゲーションエンジニア。Dawn, Juno, OSIRIS-RExの軌道決定 ・Radio Scienceに関わる。専門は小惑星周りの軌道決定・重力場のモデリング。エンジニアは仮の姿で、本当は自家製ビールの向上に日々汗を流している。

この記事が気に入ったらサポートをしてみませんか?