引
只要您还想在程序员道路上发展,那么长期的系统式的学习是少不了的。碎片时代,知识的学习渠道也在短平快化。似乎,没什么东西是一个 ChatGPT + 搜索解决不了的。但硬币总有两面,如果每个人都只停留在 “知道” 碎片知识的阶段,而你可以深入和融会贯通知识,并消化思考,整合。最少有以下好处:
- 长期的积累下来,认知和思考模式层次就拉开了
- 同时也避免了走由同质化竞争而内卷的路
- 被现阶段 AI 淘汰的风险也可以减少
而最能带领人去系统深入知识的,就是书籍。但我们的记忆力是有限的,而书籍的知识是无限的。如何用有限的记忆力去记住看过的书籍,或最少为他们建立一个脑海中的索引?作为一个有几十年技术学习经验的人,我一直找不到一个理想的答案。
理想的读书笔记
先说说我的需求:
夸设备,多平台共享同步
- Apple / Android / Linux / Windows
- 搜索
- 方便的注释或笔记
- 方便的注释或笔记同步
最大化数据的控制权
- 最好是 Self-hosting 的
IT 人喜欢用 IT 的方法解决问题。我尝试过很多方法:
记录学习笔记,“复制” 有兴趣的知识点作为笔记
- 印象笔记会员
- Markdown + Git
公有云网盘共享 pdf,保存 pdf 注释笔记
- iCloud
- 其它网盘或阅读器提供的云存储服务
“复制” 的最大问题是,会丢失原书本的上下文和场景。没有上下文的知识,在一段日子后,你忘记得差不多时,回头看这些所谓的 “精华” 笔记,大概已经回忆不起,以前的自己在写什么了。因为这由人的记忆特性决定,能唤起回忆的,更多是场景和上下文,而不是“精华” 笔记的只言片语。笔记的意义就已经大大减少了。
公有云网盘共享书籍,同时也在文件中内嵌了注释和笔记,是个比较现实可行的读书笔记与助回忆方法。但网盘压根不是为读书设计的:
- 网盘没有为书籍提供重要的功能:内容搜索。
- 如果是 iCloud,就是锁定只能在水果家玩了。
- 东西放公有云,有各种可能的风险,由于各种原因,就不在这里展开说了。
如果你对自己的折腾能力还是比较有信心,也有这个时间,那么 Self-Hosting 是个不错的选择。这也是我去年写 《持续学习和关心个人资讯的IT人,为何考虑学点 self-hosting》 的原因。
那么,有没一个平台或软件可以完美实现上面的所有愿望?答案是:没有。但我选择了折中的 Zotero 。
Zotero
图:在线书架:Linux 与 iPad 同步
所谓一图胜千言。先上一个用 Zotero 搭建的书架的照片,让大家有个感性一点的视觉认识。
Zotero(/zoʊˈtɛroʊ/)是一款自由及开放源代码的文献管理软件,用于管理书目信息(如作者、标题、出版社、摘要、阅读笔记等)及相关材料(如 PDF 文件)。其最著名的特性包括:浏览器集成(来收集网页文献)、建立个人在线图书馆。支持多设备同步、集成的 PDF 阅读器和注释编辑器、与文档编辑软件如 Microsoft Word、LibreOffice、OpenOffice.org Writer 等集成,可生成文内引用(英语:citation)、生成页面脚注或文后的参考文献(
bibliographies
)。它最初由乔治梅森大学(George Mason University)历史与新媒体中心(Center for History and New Media)创建,截至 2021 年,由非营利性数字奖学金公司开发。“Zotero” 这个名字大致源自阿尔巴尼亚语动词 zotëroj,意思是“掌握(to master)”。
—— 以上内容基于 wikipedia 作了加工
当 Zotero 连接器插件 安装在 Web 浏览器中时,当在许多网站(例如图书馆目录或网站)上查看目录条目或资源(书籍、文章、论文)时,浏览器工具栏中会出现一个特殊图标数据库(如 PubMed、Google Scholar、Google Books、Amazon.com、Wikipedia 和出版商网站)。单击此图标会将参考信息保存到 Zotero 库。Zotero 还可以保存网页的副本,或者,如果是学术文章,则保存全文 PDF 的副本。也可以直接放入本地的 PDF 文件。然后,用户可以添加 注释、标签、附件和他们自己的元数据。
项目通过拖放界面进行组织资料,并且可以进行搜索。 本地参考图书馆数据的选择稍后可以导出为格式化参考书目。此外,所有条目(包括所选文章的书目信息和用户创建的富文本备忘录)都可以汇总到 HTML 报告中。 Zotero 可以将注释与书目项目关联起来。它可以注释 PDF 并将其与任何桌面应用程序和 iOS 应用程序同步。 许多学术机构为其会员提供 Zotero 图书馆。
—— 以上内容基于 wikipedia 作了加工
以上是学院派的介绍,回到贴地气的码农语言上,就是这玩意可以:
- 搭建个人书架
- 跨设备平台同步书本注释
- 方便的浏览器剪切内容插件
- 准 Self-Hosting 数据服务
我曾经用了 5 年的印象笔记会员,最后我还是放弃了。主要问题不是软件功能不够,而是做了一堆让人眼花缭乱的功能,却没几个用得上。界面异常繁杂,甚至,收费会员还是偶弹广告。一个笔记软件最应该的是让用户专注于笔记内容本身,而非软件上。
而 Apple 家的东西,的确不错,但其成功的原因也是其最大的问题:生态闭环。我不喜欢这种锁定。
最近我某论坛上看到 Zotero,使用后觉得不错。相比上面的几个,有以下优点:
- 跨设备平台同步书本注释
- 准 Self-Hosting 数据服务
功能少,但够用
- Do one thing and do it well —— Unix哲学
Self-Hosting
我不打算把本文写成一篇 Zotero 的简介或使用入门。这些信息网上一搜一大把,我就不班门弄斧了。这节主要简介一下 Self-Hosting 的支持情况。
虽然 Zotero 默认情况下将所有数据本地存储在您的计算机上,但 Zotero 的同步功能允许您在任何可访问互联网的计算机上访问您的 Zotero 库。 Zotero同步分为两部分:数据同步
和文件同步
。
以下部分说明来源于:https://www.zotero.org/support/sync
数据同步
数据同步
可在您的本地计算机和 Zotero 服务器之间合并库项目、注释、链接、标签等(除附件文件外的所有内容),使您可以在安装了 Zotero 的任何计算机上处理数据,并在 zotero.org 上在线查看您的库。数据同步免费且无限制,无需文件同步即可使用。
文件同步
数据同步
会同步库项目,但不会同步附件(PDF、音频和视频文件、图像等)。要同步这些文件,您可以使用 Zotero 官方云 存储
或 `其它 WebDAV 存储服务。
回到我们的标题 《准 Self-hosting 的个人在线书架 - Zotero》 “准” 就来源于此了。Zotero 文档中声明了文件同步
对 WebDAV
的支持。大部分人可以搭建或租用自己的 WebDAV 服务,来完成文件(附件)同步
。但对于 数据同步
,就没文档声明了。只有一些民间的记载。
不过不用太担心,对于这类学术类型的小众服务。无所不在的伟大的 Firewall 一般会网开一面。
真 Self-hosting
zotero 是个开源软件。服务端的 数据同步
也是开源的,不过因为你懂的商业原因,安装不容易:https://github.com/zotero/dataserver
好在,高手在民间:
- https://forums.zotero.org/discussion/98918/an-https-based-syn...
- https://github.com/uniuuu/zotprime
- https://github.com/FiligranHQ/zotprime
- https://github.com/foxsen/zotero-selfhost
我暂时只做了 文件同步
的 self-hosting。数据同步
还未做,所以暂无经验可分享。我的准 Self-Hosting 架构是:
- https://github.com/acmesh-official/acme.sh
- Nginx SSL reverse proxy
- Apache WebDAV
- 树莓 pi
PDF 注释生成笔记
我读书时为了让自己保持注意力的集中,也为了后面回看时快速找到兴趣点,会高亮一些重点。Zotero 可以为这些高亮内容生成一个集中展示的读书笔记,或者说,是笔记索引:
RSS 阅读器
结语
一如以往,这里没提供一个具体的教程。只说了可以有什么可能的功能或特性,和讨论一下这些东西的价值。想折腾的同学自然有方法找资料。不想折腾的同学,也可以作个笑点来看看。
个人经验是,尝试用一个笔记平台去记录你的所有笔记,往往不是最好的选择。如:
读书笔记
带书本上下文信息的 Zotero 类型的软件才是理想的选择。
技术长文
可能 《持续学习和关心个人资讯的IT人,为何考虑学点 self-hosting》 中说的 vscode server + git 才是合适的选择。Joplin 的定位更像一个日常事务的笔记 Self-hosting 方案。
日常笔记