除了bug,GitHub可能还把你的女装照冻到了北极,1000年后还能读那种

简介: 对于程序员来说,一生中最骄傲 / 耻辱的事可能在于:人没了,代码还在。

「代码恒久远,bug 永流传。」前不久,GitHub 帮广大程序员把这个噩梦变成了现实。

上周,这家全球最大的开源代码托管机构表示:今年的 7 月 8 号,我们已经把大家 2 月 2 号之前开源的项目代码安全送到了北极,预计存个一千年没有问题。

微信图片_20211204095048.jpg


为什么要费这么大劲存一堆代码?GitHub 曾在去年的 GitHub Universe 大会上解释说:首先,这些代码都是人类文明的宝贵财富,但现有的存储介质都不足以让它们长期保存下去,一旦丢失,后代就要重新造轮子;其次,天有不测风云,万一哪天哪个天灾人祸让地球回到原始时代,起码还能留下点火种,让后代在这个基础上重建新一轮的计算机文明。

GitHub 的担心不无道理。且不说外星人入侵、核战争之类的全球毁灭性灾难,就是在正常情况下,人类文化遗产也有不少一度或永远消失在历史长河中,比如古罗马的混凝土工艺。

因此,GitHub 就想到了这个极富远见和科幻色彩的方法——将代码存到北极

微信图片_20211204095055.png


这个项目名叫 GitHub Archive Program,宗旨是为子孙后代留下一个名为「GitHub Arctic Code Vault」的开源项目代码库,具体做法是为网站上每个活跃的开源代码库创建「快照」,然后将其存储在胶片上运往北极。

受疫情影响,该计划最近才被完成。

如果你在今年 2 月 2 号之前向 GitHub 提交过开源项目代码,那么恭喜你,你的代码很可能已经静静地躺在北极了。

微信图片_20211204095059.png

为了表彰广大开发者对开源项目的贡献,GitHub 设计了荣誉徽章(图上的「Highlights:Arctic Code Vault Contributor」字样)。如果你的 GitHub 个人主页下方也有这个徽章,表明你的代码去了北极。机器之心的已经去了。

21TB 代码的北极之旅

此次运往北极的代码达到了 21TB,存储在 186 卷数字光敏档案胶片中。这些胶片来自一家名为 Piql 的挪威公司。据报道,常见胶片的寿命约为 500 年,但 Piql 的胶片在 1000 年之后仍能读取。

微信图片_20211204095107.jpg


代码以二维码的形式存储在胶片上,每一帧可以容纳 880 万个像素。

微信图片_20211204095113.gif


这些胶片从 Piql 在挪威德拉门的办公地点出发,被打包运到首都奥斯陆机场。它的最终目的地是 600 英里(1000km)外的斯瓦尔巴群岛。

微信图片_20211204095116.jpg


经过上千公里的飞行,代码安全抵达斯瓦尔巴群岛的朗伊尔城。这里的山上有一个「退役」的煤矿,你的代码就被安置在煤矿几百米深处永冻层的一个房间。这一区域被称为人类文明的「诺亚方舟」,全球种子库也在这附近

微信图片_20211204095122.gif


微信图片_20211204095126.jpg


一份写给未来的读取指南

GitHub 这一项目的科幻色彩贯穿于每个细节。考虑到一千年后的人类不一定能读懂今天的代码,GitHub 贴心地为每份文档附加了一份「指南」
指南的开头这样写道:「你可能在一年或一千年之后读到这篇文章,但无论是哪种情况,我们都希望文中的概念,或者说开源的概念,对你有所帮助。」

微信图片_20211204095132.jpg


接下来,他们又简单地介绍了一下二进制、计算机、软件、编译等基本概念,以及如何解码胶片上的信息。

由于不确定人类将来使用何种语言,GitHub 将这份指南用五种语言各写了一遍。

尽管已经解释地非常仔细了,但 GitHub 觉得,后代还是有可能打不开这些文件,因为他们可能缺乏一样最重要的东西——计算机。

地球上最早的人类文明诞生于数千年前,但现代计算机直到最近几十年才出现。如果再经历一次文明重建的过程,我们的后代是不是还要花这么长时间?GitHub 显然已经想到了这个问题。因此,除了代码读取指南之外,他们还留下了另一样东西——「科技树」

微信图片_20211204095136.jpg

「科技树」是一个独立的人类可读卷轴,里面主要包含现有的工作,旨在让后代对现代计算、开源及其应用、现代软件开发、流行编程语言等有一个详细的了解。

此外,它还包含理解软件所需的多层技术基础,如微处理器、网络、电子、半导体,甚至工业社会前的技术。有了这些技术,我们的后代就有可能重新造出现代计算机。

有人在 GitHub 的这份指南中读出了《流浪地球》般的史诗味道,感兴趣的读者可以前去阅读全文:https://github.com/github/archive-program/blob/master/GUIDE.md

被封存的不只是代码

在 GitHub 公布代码已经安全抵达北极的消息之后,开发者们纷纷晒出自己的代码被选中的喜讯。

有人将这个项目的「浪漫」演绎到了极致:

微信图片_20211204095140.jpg


但对于另外一些人来说,浪漫永远是别人的:

微信图片_20211204095144.jpg


还有人担心后代看不上自己的代码:

微信图片_20211204095148.jpg


更有意思的是,有人提醒说,GitHub 上几屏都拉不到底的女装教程「Dress」也被冻在了北极:

微信图片_20211204095153.jpg

GitHub 上著名的女装项目,star 量 17.6k,贡献者有 248 位。该项目已经得到了 GitHub 给的徽章。

让我们猜测一下后代打开这个项目之后的反应:

微信图片_20211204095157.jpg


除了北极的这个存储库之外,你的代码(和照片)还有可能会出现在互联网档案馆(IA)和软件遗产基金会(Software Heritage Foundation)的库里,因为他们都和 GitHub 展开了合作,前者已经归档了大约 55TB 的数据,后者也已经归档了超过 1.3 亿个项目。

看来,以后写(传)代(照)码(片)也要多长点儿心了。

GitHub:1000 年不够,我们还打算存几万年

对于一个个体的生命来说,一千年已经很长了。但从整个人类的历史来看,时间是以「万年」为单位的。因此,GitHub 一直在寻找更加持久的存储方式。在最新的博客中,他们介绍了 Project Silica——一种借助石英玻璃存储代码的方法。

微信图片_20211204095202.jpg


这种存储方式是通过永久改变玻璃材质的物理结构实现的,能够抵抗地磁干扰,还能防水防热,可以将数据存储数万年。

微信图片_20211204095206.jpg


目前,GitHub 已经借助该方法存储了 6000 多个全世界最流行的开源项目,而且这个数字未来还将持续扩大。

最后提醒一句,如果不想被存几万年,现在删掉一些东西可能还来得及。

参考链接:https://github.blog/2020-07-16-github-archive-program-the-journey-of-the-worlds-open-source-code-to-the-arctic/

相关文章
|
26天前
|
Unix Shell 网络安全
git学习六:(bug总结)git@github.com: Permission denied (publickey).等
本文是关于解决在使用Git和GitHub时遇到的“git@github.com: Permission denied (publickey)”错误的指南。文章提供了详细的步骤,包括确认SSH Agent运行状态、检查密钥配置、确保密钥匹配、验证仓库URL、检查权限和代理设置,以及配置SSH文件。这些步骤帮助用户诊断并解决SSH认证问题。
69 0
|
3月前
|
存储 安全 API
GitHub代码删了也无用,任何人仍可永久访问?!微软:这不是Bug而是有意设计...
开源安全公司Truffle Security发现,GitHub上的数据删除可能只是表面现象,实际上被删的数据仍可被访问。这一发现震惊了开源社区。研究人员引入了“跨分叉对象引用”(CFOR)这一概念,描述了如何通过已删除或私有fork访问敏感数据。即便存储库被删除,提交的数据仍可通过fork存取,甚至私有存储库的数据也可能被公开访问。尽管GitHub回应称这是有意为之的设计,但对于许多用户来说,这打破了对数据隐私的基本期望。此发现不仅影响GitHub用户,还可能波及其他版本控制系统。
51 4
|
6月前
你的GitHub项目被封存到北极了吗?
你的GitHub项目被封存到北极了吗?
52 0
|
存储 开发者 Python
Python 决定放弃 BPO,将所有 Bug 迁移到 GitHub 中
Python 决定放弃 BPO,将所有 Bug 迁移到 GitHub 中
112 0
Python 决定放弃 BPO,将所有 Bug 迁移到 GitHub 中
|
编译器 Linux Shell
Git的安装、初次配置以连接github,在第三方软件中配置、使用git 命令,提交项目到github的远程仓库出现bug的解决
Git的安装、初次配置以连接github,在第三方软件中配置、使用git 命令,提交项目到github的远程仓库出现bug的解决
344 0
Git的安装、初次配置以连接github,在第三方软件中配置、使用git 命令,提交项目到github的远程仓库出现bug的解决
|
开发工具 git
Github上如何为开源项目提bug?
如何为开源项目提bug?   大家都知道,在解决一个问题之前,必须先了解这个问题,所以创建一个 问题(Issues) 来帮助开源项目是一个很好的方式。   当我们下载了开源项目的代码,引入到我的项目中,但是我们会发现这个代码中存在问题,并不能满足我的所有要求,可能是在我需要用到的一个函数里面有一个错误,但是我不知道如何修复这个错误,   这个时候可以通过 github 的 Issues 形式来构建一个非常好的问题报告来帮助项目的维护者和其他的贡献者来完善这个 bug,从而来完善整个开源项目。
2323 0
|
测试技术 区块链 数据安全/隐私保护
|
1月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
70 3
|
3月前
|
SQL JavaScript 前端开发
Github 2024-08-05 开源项目周报 Top15
根据 Github Trendings 的统计,本周(2024年8月5日统计)共有15个项目上榜。以下是根据开发语言汇总的项目数量: - Go 项目:4个 - JavaScript 项目:3个 - Python 项目:3个 - Java 项目:2个 - TypeScript 项目:2个 - C 项目:1个 - Shell 项目:1个 - Dockerfile 项目:1个 - 非开发语言项目:1个
93 2
|
3月前
|
人工智能 Rust JavaScript
Github 2024-08-26 开源项目周报Top15
根据Github Trendings的统计,本周共有15个项目上榜。以下是按开发语言汇总的项目数量:Python项目8个,TypeScript、C++ 和 Rust 项目各2个,Jupyter Notebook、Shell、Swift 和 Dart 项目各1个。其中,RustDesk 是一款用 Rust 编写的开源远程桌面软件,可作为 TeamViewer 的替代品;Whisper 是一个通用的语音识别模型,基于大规模音频数据集训练而成;初学者的生成式人工智能(第2版)则是由微软提供的18门课程,教授构建生成式AI应用所需的知识。
123 1
下一篇
无影云桌面