看了一篇博客 A Manifesto for Preserving Content on the Web 介绍了如何设计 web 可以让你的信息更好的被存储下来,感觉很受启发,在这里对这篇文章的观点做一个介绍,也回顾一下自己这么多年来遇到的类似的问题,并且结合目前的技术栈说说自己的一些想法。
这篇博客的作者发现自己之前保存的各种 bookmark 都已经失效了,然后回想自己七年前发布的文章里所包含的 demo 链接已经成了奇奇怪怪的广告页面。于是开始考虑在经历了这么多年的 web 发展之后如何设计 web 内容可以让它支撑 10 年之久。
任何网站都是需要维护的,内容需要更新,域名需要续费,机器节点需要付钱。但是人的兴趣是会慢慢转移的,也许在某一个账单将要失效或者网页因为某个依赖崩掉而无法打开的时候,你就觉得要不算了,这东西打不开也没关系,然后你所维护的网站就消失了。我自己曾经也拥有多个域名,但是相当多内容都已经消失了呢。
然后 web 的技术栈一直在变化,从 jquery 的出现,到后来 bootstrap 再到后来的 backbone angular react。尤其是后来 Single Page App 的兴起导致真正的数据已经不再是 html 而是其背后的 API 了。一方面越发复杂的技术栈确实大大提升了当下的 web 应用的开发效率和使用体验(在有合理投入的前提下)但是这种形式也让搜索引擎以及类似的爬虫更难帮你把你的网页保存下来了。当然市面上还有一些静态网站生成器,比如目前的博客所用的 jekyll ,它依然将数据以静态 html 的形式提供。可惜岁月不饶人,随着 ruby 的热度的下降,至少对我来说 ruby 已经不再是我的核心技术栈了,目前我甚至很难让我自己的网站在本地跑起来了。前一阵子我也甚至在尝试如何将它切换到 hugo 或者 hexo 上去。
第三,不少人的信息都放在了 UGC 社区里,但是这些社区出于商业利益考量,他们的信息不太容易轻易的被倒腾到其他地方,但不少类似的东西也撑不住 10 年,想想开心网、人人网(校内),想想你的 qq 空间。
然后作者从三个角度去强调如何让自己的 web 信息得以更长远的保存:
我觉得需要考虑的一个非常重要的事情就是...你为什么需要考虑 10 年甚至更长的维度的事情?不是说了么,我的兴趣都已经转移了,这东西死活跟我关系不大呀?
我觉得 10 年是个非常长的维度了,再次强调,技术栈的变迁会导致你的维护成本越来越大,所以最终即使有个东西你依然还算是有兴趣,也不想如何的耗费精力了。但如果维护成本不高,写个 10 年 20 年被博客也没什么兴趣不兴趣的吧?
然后作者也提到作为一个科研工作者,很多东西的生命周期越长其所产生的影响力也会越大,并且这种稳定可靠的信息会带给使用者信心,让他们更愿意为其添加引用(想象一下看到一个有 10 年历史的博客的时候,你会不会觉得这人挺靠谱的,居然让这个博客持续了这么久),也许最后就是你觉得的一些没有意义的东西被别人挖掘到了金子呢?
然后这里结合我的经历和目前的技术栈说说我觉得可以做的事情。
我自己的博客到今年也刚好 10 年了,期间有过一次重大的损失发生在 2014 年。在那个年头国内火过一个东西叫做 云引擎(使用体验和 heroku 很像),但是用的是 svn,这个东西的好处就是建站便宜并且自带个域名(毕竟国内域名备案是个很麻烦的事情)。于是我就把自己的 wordpress 博客放到那里了,但是由于自己的疏忽忘记续费了,14 年的博客丢的干干净净。幸好其他博客还有备份避免了全军覆没。后来自己的博客就用 jekyll host 在了 github。 托它的福一直稳定维护至今,但由于目前国内网络对 github page 已经非常不友好了,访问也是时断时续。考虑我博客的主要受众是我,那也就不必在意这么多了。
回顾 10 年,wordpress 所使用的 php 已经逐渐活在了段子里,ruby on rails 也逐渐成为了传说。唯有 html 依然屹立不倒...在未来,如何想要更好的维护自己关注的信息,可以从以下几个方向去考虑:
最后,很多事情是要以更长的时间线去回顾才会发现其中的奥妙,如果连 10 年的记忆都留不下怎么才能温故而知新呢。而且,看看 10 年前自己的东西,也挺有意思呢。