混沌周刊 #19 | 永久链接不永久

Hello,欢迎来到本期的《混沌周刊》,让我们来看看有什么新东西。

🔗 看好你的链接们

大概在2014年,我就开始使用Pocket这个软件(后来被Mozilla收购),以保存在网上看到的各种链接,一部分意义上也承担了笔记软件的职责。随着时间推移,我更换了不少电子设备,旧设备上的缓存丢失。直到最近,为了表示支持,我开通了Pocket的年费会员,然后发现,只有收费会员收藏的内容才会被永久保存。而当我回头查看2014年开始保存的若干链接时,才察觉到相当一部分链接已经变得无法访问了。而更讽刺的是,当我试图去Google这样的搜索引擎,以这些链接的标题为关键字搜索,竟然是那些日常令人深恶痛绝的采集站把这些文章保存了下来。

我从2007年开始上网,遇见过很多有意思的网站,但最后大部分都被时代所淹没,仅能在某个时刻脑海的闪回里泛起点点波澜。记得十多年前有个叫「海哥电脑园」的网站,其上的文章在我热衷于折腾PC系统时给过我不少帮助。后来的某一天它关站了,没有看到任何人提起过它。如果没有Wayback Machine1,可能它就像一些人声称的灵异现象一样,到最后自己也会怀疑是否是真的存在过。更近一些的例子是「伯乐在线」,也是一个挺有意思的网站,但最后也无声无息地突然无法访问了。

这种情况在国内网站更加常见。运营个人咨询网站难免面临各种额外成本,获得收入也不易。网站管理政策进一步收紧,与此同时微信公众号在内的封闭内容生态占据了普通人上网的大部分时间——不过从内容留存的角度出发,这样也有优点,至少链接没那么容易丢了。倒……也不一定,在这些平台发布信息需要时刻担心内容被莫名其妙删掉的风险,另外也得小小担心一下会不会经营不善,比如曾经的博客大巴。我得知它无法访问时还相当遗憾,因为自己「年轻时候」在上面写过日志。好在运营者再给了一次机会,让用户把内容下载回来。可惜,其他小网站的用户就不一定有这个好运了。

我还是个活跃知乎用户的时候,留意到知乎是少有的删除内容会以邮件方式将原文回执的平台。不清楚现在他们是否还保留这个做法,但在当时的确是留下了不少好感。用户在平台创建的内容,平台当然有权删除,但不应该让用户连当初发送了什么都忘记了。我有时候打开自己在国内视频网站的收藏夹,就能发现一些收藏的视频消失了,只留下「该视频已被删除」的标记,我甚至连它的原标题是什么都无从得知。这是对用户权利的侵犯。

如果你依赖这些商业平台发布你的内容,也请在本地保留一份备份;如果你自己搭建自己的网站,请尽量不要变更已经发布的链接,也要记得时常做备份。这和提供RSS feed一样,是一种美德。数据无价,记忆更是珍宝。

🔐 便利与隐私可以共存吗

《连线》的网站几年前有一篇文,标题是《PGP已死》。文章先提到了PGP在一些邮件客户端上暴露出的安全漏洞,然后说诞生于1990年代的PGP没有跟上信息安全的发展,最后强调PGP太难用以至于经常用错(我想这才是核心论据),然后推荐大家使用Signal、Telegram乃至iMessage、WhatsApp等更方便的加密聊天工具。有趣的是,李彦宏那句著名的「中国人更开放,愿意用隐私换便利」也诞生在那年。

PGP确实是不好用。我第一次接触GPG(GNU的OpenPGP实现)时,花了很久的时间也没明白怎么把一个文件加密起来。一个不熟悉密码学和网络安全概念的用户,需要很多时间弄明白什么是公私钥,怎么创建密钥,创建哪种密钥,如何导入别人的密钥,如何标记密钥的信任度,什么是key server……然后需要在命令行敲选项不简单的命令来完成加解密和签名的操作。Keybase是一个有趣的尝试,它构建了一套在手机上也能使用的服务,供人们交换密钥、端到端加密聊天、发送文件,以及管理加密钱包。但对普通用户而言,这样的要求似乎还是有些高了。所以更流行的是Telegram,因为它更好用。就像很多号称去中心化的系统,最终也会慢慢地(至少一部分)变得中心化。

人们越来越多地使用加密是件好事。如今最普通的电子产品用户,也能用几十年前被当作军事武器管制的算法保护信息。使用这些新兴工具可以提高上网时的平均安全性,但请不要抱有类似「只要我用了iPhone,我的隐私就受保护了」「只要我用了某款软件,我的聊天就安全了」「只要我用了VPN上网,我的网络活动就匿名了」的观点。安全性的最后一步永远落在人自己的安全意识,依赖于和你只身走夜路时一样的警惕心。安全(隐私)和便利永远是一对平衡。过度依赖外部(尤其是非开源)工具,也许在关键时刻会害了自己。

🧱 新项目和新动态

相信长期使用JetBrains系列IDE的开发者朋友们,一定既为它强大的功能感叹,又抱怨它过分笨重启动缓慢。并且由于历史包袱,他们的产品很难跟上远程开发的潮流。所谓Projector项目也只是把图形通过网络传输到服务端(倒是很符合名字),网络状况不佳时体验很差。于是,本周JetBrains宣布推出他们的下一代编辑器(IDE),名叫Fleet,这套新的架构面向远程开发设计。据开发者在Twitter上的评论,Fleet主要采用了Kotlin和Skia(Flutter的底层图形库)开发。目前支持的语言包括Java/Kotlin/Python/Go/JavaScript/Rust/TypeScript. 由于收费,它应该不会成为Visual Studio Code的完全竞品。不过作为JetBrains订阅用户,我倒想一睹芳容,提交了预览申请。目前预览申请已经关闭,可以在他们的博客获取更多信息。

说到编辑器,这里有一份教程,教你如何打造一个命令行界面的文本编辑器(还带语法高亮功能)。如何在标准库处理不了的字符界面渲染内容,以及处理不同的终端类型,也算是所有人都用过但很少人清楚实现的黑暗角落。

一部分开发者抱怨微软对.NET开源项目的专断(秘密删除功能并只向商业用户提供),Fork出Open.NET项目。微软几年来在开源和开发者关系上的动作积累了很多好感,人们也许忘记了曾经的3E策略(拥抱、扩展再消灭),就像忘记了1984年的苹果也是一家反抗主流的公司。

morphdom,一个对真实DOM做diff和patch的JavaScript库。

尤雨溪的桌面布置。结合之前看到的若干评论,看来程序员的工作环境追求都是相似的,下限不低,上限不高。一些人也许认为这些追求是消费主义的表现,我部分同意。但真的没必要一直给自己说「等我xxx以后就……」

为什么要尽量少使用模态对话框

计划于明年上半年发布的Emacs 28将会支持Emacs Lisp的JIT功能,利用GCC的libgccjit实现。

《跟我一起写Makefile》,算是陈年老文了。虽然今天很少有人会有手写Makefile的需求,但理解Makefile的工作原理,对使用其他所有构建工具(Gradle、Webpack、Cargo…)都有帮助。GNU的命令行工具令人惊叹的地方在于,他们几乎都能将某个单一工具的扩展性和灵活性发挥到极限。实际上GNU Make(包括其他若干GNU软件)可以和Guile(GNU的Lisp解释器)集成。这也算是某种生态。不过也不意外,毕竟GNU的计划可是个操作系统!


这周的内容就到这里,下期再见!

1 截至发布这篇文章的时候,在中文Google搜索Wayback Machine,右侧的百科摘要显示的内容却是iOS 9,不清楚这个Bug什么时候会被修复。


2 comments

  • 很多内容都是我所担心的,在“永久链接”这方面我是不太相信互联网的。所以对于我喜欢的内容我很喜欢自己本地离线保存。

    至于便捷性和隐私性问题及依赖外部这个问题,我觉得相当无解,开源软件虽然安全但却没有商业闭源软件那么多的维护者,因此也很难有精力去维护便捷性做到面面俱到。

    同时开源软件在桌面端尚还可以勉强和商业闭源软件打个平手,但在移动端就有点被打地溃不成军了。

    • 开源软件在移动端失利,一定程度和移动端的定位有关:人们使用移动设备更多为娱乐消费而非工作生产,前者更需要精心设计和商业运营。这也大概是Linux桌面迟迟不成功的重要原因。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注