GitHub Arctic Code Vaultのバッジが自分のProfileについたので何事かと思い調べてみました。
Table of Contents
想像してごらん
千年後の君へ
1000年後の世界をあなたは想像できますか?
西暦2020年から1000年後は西暦3020年なわけですが、ドラえもんの登場が22世紀なわけなので、めちゃくちゃ未来なわけです。
もうとっくにタイムマシンができていて、
空飛ぶ飛行機や、チューブの中を縦横無尽に進むレールウェイがあったり、
或いは化け狸型ロボットと友達になって映画のときだけ優しくなる太っちょがいる世の中か、
はたまた、チャージマン研もどきが闊歩している世紀末都市か、
そんな甘くないよ
私は1000年後はこんな世界だと思ってます。
核を超える兵器を使った戦争で世界経済は崩壊。
荒廃した街は暴力で支配するマッドマックスな光景。
1000年後の君がせめても2020年現在くらいの技術水準にまで街を回復させるにはどうすればいいでしょうか?
GitHub Archive Program
GitHubの人がこんな荒廃した世界を憂いてやったかは不明ですが、 GitHub Archive Program というものがGitHub Universe 2019で発表されていたらしいです。
GitHub Actionsの話でいっぱいいっぱいだったのでそんなこと知りませんでしたが、こんなことを考えていたんですね。
プロジェクトの詳細はhttps://archiveprogram.github.com/に書いてありますが読み物として面白かったので少し皆さんと読んでいきたいと思います。
冒頭の原文を引用します。
The world is powered by open source software.
It is a hidden cornerstone of modern civilization, and the shared heritage of all humanity. The mission of the GitHub Archive Program is to preserve open source software for future generations.
OSS、それは世界を支え、現代社会の隠れた礎らしいです。
確かに、OSS文化が花咲いてから我々底辺にもなにかできるという希望が芽生えやすくなりましたし、実際世界の発展には欠かせないでしょう。
そんなOSSをずっと残していきたい。たとえマッドマックスになっても。そんな意志を感じられる文章ですね。
続いてのセクションでは、
Why we use multiple forms of storage
複数の形態のストレージを使用する理由について述べてます。
GitHub Archive Programではpiqlのマイクロフィルム技術を使って膨大なOSSデータを残してますが、同セクションではいかに現代文明のデータ保存方式が一時的で脆いかを訴えてます。
それは現代文明に限らず、前48~47年のアレクサンドリア戦争のとき,大量の蔵書とともに焼け落ちたアレクサンドリア図書館や、
パンテオンなどのローマ時代の重厚な建物に使われるローマン・コンクリートもローマ帝国滅亡後に使われなくなり現代使われていコンクリートの耐久性がクソ雑魚ナメクジだったり、
ナチスの敗戦とともに文字通りDDTに駆逐されてしまった我がドイツの医学薬学は世界一ィィィィーーーーッ!な人体負荷の低い殺虫剤DFDTが忘れ去られてなければマラリアに苦しむ人々を救ったかもしれない話や、
スペースシャトルチャレンジャー号事件をきっかけにあの月までも飛んでいくロケットサターンVに回顧したり...。
テクノロジーをロストしてはいけない(戒め)なお気持ちがひしひしと伝わってきます。
GitHub Arctic Code Vault
GitHubでは、コードの長期保存プログラムとして、GitHub Arctic Code Vault をはじめました。
GitHub Arctic Code Vaultは、北極圏の山の永久凍土の中にある250メートルの深さにある非常に長期的なデジタルデータアーカイブ施設である Arctic World Archive (AWA) に保存されているデータリポジトリらしいです。
はて、永久凍土といえば種子バンクで有名なスヴァールバル世界種子貯蔵庫を思い出します。
スヴァールバル世界種子貯蔵庫... ビル・ゲイツ...マイクロソフト... あっ(察し)
と思ったら、スヴァールバル世界種子貯蔵庫もGitHub Arctic Code Vaultもスヴァールバル諸島にあるのです。
スヴァールバル諸島
なんとこのスヴァールバル諸島、スヴァールバル条約というなかなかに興味深い条約により、諸島の領有権はノルウェーであるものの、ノルウェーの法律をすべては適用せず、条約加盟国(オーストラリア、カナダ、デンマーク、フランス、インド、イタリア、日本、オランダ、ニュージーランド、ノルウェー、南アフリカ、スウェーデン、イギリス、アメリカ)は等しくこの島で経済活動を行なう権利を有する形に定められているとのことです。
また、スヴァールバル諸島を非武装地帯として軍事活動を禁じているため、第二次世界大戦中を除いて、軍隊は駐屯していないとのこと。
なるほど、物理的にも政治的にも強固な地なのですね。
データ量は21TB
GitHubはGitHub Arctic Code Vaultに2020/2/2にすべてのアクティブな公開リポジトリのスナップショットを取得し、そのデータを2020/7/8に無事Arctic Code Vaultに保存したとのことです。(例のウイルスで対応が遅くなってしまったそうです)
データ量186リールのpiqlFilm(デジタル感光性アーカイブフィルム)に21TBのリポジトリデータを書き込んだそうです。たった21TBかーと思いますが、1000年残せるメディアへの転写です。すごいことではないでしょうか?
AWA
Arctic World Archive (AWA)は、ノルウェーの国営鉱業会社であるStore Norske Spitsbergen Kulkompani(SNSK)と、非常に長期的なデジタル保存サービスを提供するPiql ASの共同企業らしいです。
どうやら、スヴァールバル諸島は元炭鉱で廃炭鉱をアーカイブ施設として改造して、密閉されたチャンバー内の鉄壁のコンテナでアーカイブデータを保存することで、仮に電気が止まってしまっても氷点下の環境を維持できて、長期保存フィルムのデータも安全に保管できるとかで一儲けしているみたいです。
GitHub以外にも実績があるようで、ノルウェー国立博物館向けにエドヴァルド・ムンクの『叫び』のデジタル化版、バチカン図書館向けに『神曲』のデジタル化版などのデータが保存されてるらしいですよ。
私のダメコードはどんな形で後世に残るのだろうか
GitHub Arctic Code Vaultでは、すべてのアクティブなGitHub公開リポジトリが含まれています。
対象は2019/11/13のGitHub Universeでの発表から2020/02/02までの間にコミットされたすべてのレポ、星が1つ以上のレポジトリ、スナップショットの前年(02/03/2019 - 02/02/2020)からのコミット、星が250つ以上のレポが含まれます。
毎日コード書くようにしていた時期だ...。
スナップショットは星の数が多いリポジトリはバイナリを保持できるらしいですが、各リポジトリのデフォルトブランチのHEADから、100KB以上のバイナリを除いたもので構成されるとのことですので、私のレポジトリからはバイナリファイルは抜かれてしまっているでしょう。ほぼ画像とかしかないですがね。
また各リポジトリは1つのTARファイルとしてパッケージ化され、データの密度と完全性を高めるために、ほとんどのデータはQRエンコードされ、圧縮されて保存されるとのこと。
結論
どうやら1000年後までダメコードが残されてしまうことになってしまいました。
縄文土器でもよく失敗した土器が発掘されることがあります。後世の人に笑われると思うとなんか微妙な気分にもなりますが、ちょっと感慨深い気もします。
ちなみに、無事コードが保管されるとGitHub Profileに Arctic Code Vault Contributorというバッジが表示されるようになります。
**1000年後の君へ。**僕のコードを見たときにあーだこーだ言わずにそっと閉じてくれればいいからね!間違っても草生えるとか言わないでね。