你的程式碼將會被GitHub埋在北極,儲存1000年!
點選上方“視學演算法”,選擇加"星標"或“置頂”
重磅乾貨,第一時間送達
曉查 發自 凹非寺
本文轉載自:量子位(QbitAI)
你寫的程式碼將被會被GitHub儲存1000年。
GitHub是不是瘋了?有網友吐槽:3年寫前的程式碼就有些過時,10年前的程式碼更是老古董了,1000年後科技都不知道會發展成啥樣,什麼程式碼值得被儲存1000年?
GitHub說,開原始碼是全人類共有的財產,即使人類文明遭戰火毀滅,希望未來也可以用這些程式碼快速重建科技。
因此他們公佈了一項程式碼存檔計劃Arctic Code Vault,要把它們埋藏在北極的地下,儲存1000年。
該計劃將於2020年2月2日啟動,截止到那一天的開原始碼將會被GitHub處理後,以QR碼(也就是二維碼)的形式存在膠片裡。
儲存下這些需要3500英尺(1066.8米)長的膠片,最後膠片將被放在挪威斯瓦爾巴特(Svalbard)群島一座已退役的礦井裡。
程式設計師的“諾亞方舟”
GitHub採用的是來自挪威公司piql*的技術,膠片上每幀包含880萬畫素,原始碼以QR碼的形式儲存其中,可以儲存1000年。
存入膠片中的repo由專案的標星數、依賴項以及專家顧問的意見所決定,並且會剔除正在活躍的專案。
儲存的快照將由每個repo預設分支的HEAD組成,並且會去掉任何大於100KB的二進位制檔案。每個repo將打包為一個TAR檔案。
然後膠片將被放在鋼壁容器中,放置於斯瓦爾巴特群島廢棄礦井的密封室中。
之所以選擇斯瓦爾巴群島,是因為這裡屬於國際公約規定的非軍事區,可以免遭戰火的襲擾。而且這裡常年寒冷,有幾百米厚的凍土層。穩定且寒冷的環境非常適合儲存膠片。
△ 斯瓦爾巴特群島在地球上的位置
即使未來受到氣候變化的影響,也只會影響最外層幾米的永久凍土。
而且距離這座礦井不到一英里的地方,就有一座“諾亞方舟”,一個儲存全世界農作物種子的全球種子庫,足以證明這裡的安全性。
存檔在GitHub Arctic Code Vault中的程式碼將清除所有活動的公共GitHub儲存庫,此外還包括由星號,依賴項和諮詢小組確定的大量休眠儲存庫。
為了提高資料密度和完整性,大多數資料將以QR編碼儲存。易於閱讀的索引和指南將逐項列出每個儲存庫的位置,並說明如何恢復資料。
1000年後如何讀取
如果1000年後,人類遭遇了戰火,導致科技倒退,GitHub存下的程式碼還能被讀取出來嗎?
為此,GitHub諮詢了人類學家、考古學家、歷史學家、語言學家以及檔案科學、未來主義等方面的專家,把重建方法的指南寫得通俗易懂,就像旅行者號飛船上給外星人看的圖畫一樣。
重建指南中包括QR解碼規則、檔案格式、字元編碼等技術,以便將來的人類可以快速將原始資料轉換回原始碼。
讀取這些資料需要用到piql公司開發的一種類似電影放映機的裝置piqlReader,而不是像光碟機、硬碟等太高科技的裝置。
piqlrReader具有比前代產品更快的讀取速度,並且操作簡單,可提供對離線資料訪問的能力。
未來或用玻璃存程式碼
作為GitHub儲存程式碼計劃GitHub Archive Program的一部分,Arctic Code Vault用到的是膠片。
GitHub的母公司微軟還有一項比膠片更酷炫的技術——在一片變長7.5釐米的正方形玻璃瓶中存入75.6GB的資料。
玻璃瓶可以承受高溫烘烤、低溫冰凍甚至是鋼絲球刮擦,微軟說,只要你不用錘子砸,玻璃片中的資料可以儲存資料1000年以上。
華納兄弟已經用微軟的技術把電影《超人》儲存了下來。
未來,GitHub將以每年或每兩年一次的節奏來儲存程式碼,未來他們可能也會用上微軟的玻璃儲存技術。
專案地址:
https://archiveprogram.github.com/
- END -
如果看到這裡,說明你喜歡這篇文章,請轉發、點贊。掃描下方二維碼或者微信搜尋「perfect_iscas」,新增好友後即可獲得10套程式設計師全棧課程+1000套PPT和簡歷模板,向我私聊「進群」二字即可進入高質量交流群。
↓掃描二維碼進群↓
喜歡文章,點個在看
相關文章
- 進入社交領域?GitHub推出官方手機APP;北極程式碼儲存計劃浮出水面GithubAPP
- 如何將html程式碼儲存為Pdf檔案HTML
- linux儲存住github的賬號和密碼LinuxGithub密碼
- 臨時儲存程式碼
- repo-storage 使用程式碼託管平臺(github|gitee)做自己 '私有' 的 '物件儲存'GithubGitee物件
- GitHub 啟動程式碼永久儲存計劃,為人類文明留“火種”?Github
- OceanBase 儲存層程式碼解讀(三)巨集塊儲存格式
- OceanBase 儲存層程式碼解讀(二)微塊儲存格式
- JIT 編譯後的程式碼儲存位置編譯
- 英雄會被表彰,這些技術與程式碼也將被歷史銘記
- 如何將MAC的檔案儲存至NAS網路儲存?Mac
- python 3.6如何儲存編輯好的程式碼Python
- OceanBase 原始碼解讀(九):儲存層程式碼解讀之「巨集塊儲存格式」原始碼
- Python操作MySQL儲存,這些你都會了嗎?PythonMySql
- electron-store會將資料儲存為什麼格式
- 圖片儲存-從七牛到 GithubGithub
- Laravel 整合 GitHub 來儲存檔案.mdLaravelGithub
- 線性表的順序儲存C++程式碼C++
- Okta原始碼洩露,私有GitHub儲存庫遭到駭客攻擊原始碼Github
- 你應該知道的前端--儲存前端
- Mysql儲存過程基礎(案例+程式碼)MySql儲存過程
- OceanBase 儲存層程式碼解讀(一)引言
- 探索 SK 示例 -- GitHub 儲存庫中的機器人Github機器人
- 對映_儲存省會
- 期平總極始北萬段點你院nkv
- 使用 JDAudioCrawler 將下載的音訊儲存到本地儲存音訊
- 瀏覽器端儲存資料的終極指南瀏覽器
- 200 行程式碼實現基於 Paxos 的 KV 儲存行程
- 學歷造假但能力極強的程式設計師,你會不會留?程式設計師
- 【資料結構】二叉樹(順序儲存、鏈式儲存)的JAVA程式碼實現資料結構二叉樹Java
- HarmonyOS:儲存你的應用資料
- ibatis呼叫oracle儲存過程(極簡版)BATOracle儲存過程
- 如何用git將專案程式碼上傳到githubGithub
- 2.9.3 安全的外部密碼儲存密碼
- 在 macOS 內使用大小寫敏感的 APFS 卷儲存程式碼Mac
- 線性表的順序儲存C++程式碼實現C++
- 使用JavaScript將當前頁面儲存成PDF,支援圖片和文字的儲存JavaScript
- 北極科考:我們為什麼要在北極呆上一年?