利用 NAS、Docker 和 Calibre Web 搭建个人线上书库

经常阅读电子书并且用过 Kindle 的人应该都体会过整理电子书时的痛苦。尤其是像我这种经常下载电子书文件再导入到 Kindle 上进行阅读的人(或是为了省钱、或是因为 Kindle 商城中没有我们想要阅读的书),对于那些有着各自不同的标题、作者、封面,以及文件格式的纷繁复杂的电子书,缺乏一套行之有效的管理方案,进而充分管理自己的阅读进度与时间。 长期以来,PC 和 Mac 端的 Calibre 都是一个差强人意的电子书管理解决方案。它不仅支持多平台、功能强大(支持电子书整理、编辑、格式转换、一键推送到 Kindle 等),而且完全免费。那我为什么要将这么厉害的软件说成是“差强人意”呢?因为 Calibre 已经多年没有较大的功能更新,作为一款电子书管理软件,它已经无法适应当下人们已经习以为常的需求。具体而言,Calibre 具有以下缺点: 界面老旧(或曰古朴?),看起来像是十年前的软件; 启动和运行速度较慢,操作繁琐; 不支持多设备同步,不提供云存储服务(这是最重要的一点)。 对于像我这样学习或工作繁忙,几乎没有固定的整段时间使用同一台终端设备的人来说,多端同步和云存储几乎是不可或缺的功能。而且在网页程序和微信小程序等日益普及的今天,有时连下载一个专门的应用程序都显得繁琐(可能是被这几年的技术进步惯坏了把)。因此,最好有一款类似于 Plex 影视库的电子书管理服务器应用,能够让我随时随地打开一个网页就能管理和阅读自己的电子书。幸运的是,这样的软件确实存在,它便是 Calibre 的继任者—— Calibre Web。 下图就是我用 Calibre Web 在自己的 NAS 上搭建的个人电子书管理网站(或曰个人电子图书馆?)。通过这个网站,我可以轻松地在各种终端设备上上传、修改、整理、推送各种格式的电子书。由于是网页端,因此我不用担心海量电子书会占用手机或电脑的硬盘容量,也不用担心多端同步的问题。更加难能可贵的是,由于 Calibre Web 开发得比较晚近,因此它的界面也很符合当下的主流审美标准。 关于 Calibre Web 的搭建方法,网络上有很多前辈们撰写的教程,他们已经说得非常详细了。首先,你必须拥有一台能够稳定运行的服务器或 NAS(其实任意一台普通电脑都是可以的,只要你舍得让它 7*24 小时运行)。然后,你需要在你的设备上搭建一个 docker 环境,因为 Calibre Web 需要 docker 作为运行的载体。最后,经过简单的安装和配置,你就可以拥有一个属于自己的电子书管理网站了。 这里以群辉为例。首先在“控制面板”中创建一个新的共享文件夹,用于存放 Calibre Web 的数据库和电子书资源。我这里将它命名为"Books"。创建完成后切记要开放该文件夹对所有用户的读写权限,否则 Calibre Web 将无法正常运行。 共享文件夹配置完成后,在群辉的套件中心中选择安装 docker 并打开它。再在“注册表”页面中搜索“Calibre-web”,此处途中框选的三个镜像都可以下载,它们的区别并不大,这里主要推荐 linuxserver/Clibre-web,在双击后弹出的对话框中选择“latest”并点“确定”开始下载。 镜像下载成功后(系统右上角会弹出提示),进入 docker 的“镜像”页面选择刚刚下载好的 linuxserver/Clibre-web 镜像,点击启动。在弹出的对话框中,点击“高级设置”,再按下图所示进行设置即可。 ...

2020-05-12 · Mason

可能是最好用的记忆辅助工具 Anki

对包括我在内的相当一部分人来说,记单词几乎已经成为一种刚需。无论是为了应付考试、取得各类等级证书还是单纯提高语言能力,词汇都是我们不得不正面应对的挑战。而在如今这个互联网时代,捧着厚重的词汇书或者词典进行背诵的方式已经被大多数人所抛弃,因为它既枯燥又低效,不仅会消磨我们学习一门语言的热情,还不利于培养语感、付诸实用。 在这样的背景下,一众“背单词”软件应运而生。这其中就包括开心词场、扇贝英语和百词斩等较为优秀的产品。但是,这些软件或多或少都存在着以下几点无法弥补的缺陷: 词库多为厂商事先制作而成,缺乏根据个人情况进行定制的空间,灵活性不强。 支持的语种多为英、日、韩等热门语种,无法满足小语种(如希伯来语)学习者的需求。 出于营利目的,集成了许多不常用的花哨功能,洁面不够简洁。 同样出于营利目的,部分功能仅对付费用户开放,免费用户的使用体验受限。 凡此种种,都构成了我长期无法找到适合自己的背单词软件的原因。然而,就在将近两年前,也就是我正在准备研究生考试的时候,我遇到了 Anki 这个神一样的记忆软件。之所以称它为“记忆软件”而非“背单词软件”,是因为它几乎支持所有需要记忆的内容格式,而不像上文提到的众多“专业软件”那样只能用来背特定语种的单词。实际上,只要你愿意,Anki 可以被用来记忆唐诗、成语,甚至纳瓦霍语。 简单来说,Anki 是一种利用类似于 Flash Cards 的卡片机制来辅助记忆的,支持高度定制化的工具。到目前为止,我发现它具有以下几个传统背单词软件所不具备的优点: 支持几乎所有内容形式,只有你想不到,没有 Anki 不支持的内容。 不仅支持传统的翻面单词卡,还支持诸如填空题、选择题等多种答题形式,满足各类需求。 根据艾宾浩斯遗忘曲线科学定制学习和温习计划,保证高效利用精力和时间。 云端实时备份词库和学习进度,并支持包括 PC、Mac、iOS、Android 等类操作系统,让用户可以轻松跨平台同步学习进度,随时随地进行学习。 支持牌组导出导入,结合活跃的社区和各类资源分享渠道,使那些不愿意自己制作牌组的用户也能通过下载并导入前人制作好的卡组来高效进入学习状态。 Anki 的桌面端(包括 Windows 和 Mac)和手机端(包括 iOS 和 Android)的功能几乎完全相同,但前者完全免费而后者必须付费。如果你既不愿意付费也不想使用盗版,那么只使用桌面版即可。这样除了无法获得多平台同步学习的体验外,不会受到任何具体功能上的限制。 Anki 的桌面端界非常简洁,你可以通过点击“新建记忆库”来自定义录入自己的牌组,也可以点击“获取牌组”以进入 Anki 官网浏览和下载其他用户上传的现成牌组。另外,在诸如淘宝或闲鱼等交易网站上也会有卖家有偿销售自己制作的 Anki 牌组,如果你购买了那些牌组,那么只要点击“导入文件”按钮即可将买来的牌组轻松导入。 以手机端为例,在学习牌组的过程中,我们可以根据自己的答题状况点选下方不同颜色的按钮。这样,Anki 就会将相应卡片加入对应的温习序列中,并根据艾宾浩斯遗忘曲线,结合我们后续的回忆状况,动态地安排学习计划。可以说,Anki 的这种根据个人记忆状况动态定制学习计划的特点,是使它从众多“背单词软件”中脱颖而出的最根本原因。 去年的这个时候,我正在准备所报考学校的研究生复试。如果说我的研究生外语考试能够取得理想成绩“多半”是我自己努力的结果的话,那么 Anki 便是那“少半”的原因。

2020-03-26 · Mason

MacOS 10.15.4 更新 iCloud 文件分享功能

相比于国外而言,中国国内的公共网盘生态好似一潭死水。这其中固然也有厂商不思进取的缘故,但更主要的还是政府对网络信息的严密审查,使得公共网盘服务提供商很难在维持自身生存和提升用户体验之间取得平衡。 经过几年前的一阵腥风血雨之后,目前国内叫得上号的公共网盘只剩下百度网盘、域通网盘和坚果云等。其中最臭名昭著的非百度莫属,其不仅对非会员用户有着苛刻的功能限制(地容量+下载限速),并且身型极其臃肿、拥有很多大多数用户完全用不到的冗余功能。相比之下,坚果云就要好不少,它对免费用户只做月流量方面的限制,除此之外既不限制速度也无冗余内容,可以说非常良心了。 然而与百度网盘生成链接直接分享的便捷性相比,坚果云在文件分享方面又稍显不足。因此在目前国内的公共网盘生态中,想要免费使用一个功能简洁、分享方便又不限速的网盘产品,几乎是不可能的。在这种情况下,很多用户开始转向私有云(NAS)方案,即建立私人的网络存储服务器,如购买群晖或 QNAP 的 NAS 主机或自行组装一台 DIY 主机。但无论是前者还是后者,都具有一定的技术门槛,并不适合所有用户。 作为苹果产品生态的基础性服务,iCloud 几乎为所有苹果设备用户所使用。无论你是否意识到,只要你用 iPhone 拍过照,你的照片就会自动被存储到你的 iCloud 中。无论你是否付费,只要你注册一个 Apple ID,你就会得到 5GB 的 iCloud 存储空间。虽然这个容量并不算大,但仅用于存储日常拍摄的照片和办公文档,是完全足够的。多年来,icloud 的封闭性一致为人们诟病。可能是出于数据安全的考虑,苹果并不允许用户将自己 iCloud 网盘中的文件分享给其他人。但好消息是,这一状况在最新一次的 MacOS 系统更新中被彻底改变。 今天上午,当我打开电脑准备开始今天的工作时,发现苹果推送了最新版本的 MacOS 10.15.4 系统更新,更新说明里面赫然写着羡慕一段话: 也就是说,iCloud 终于支持对外分享文件了!于是我立刻更新了系统,想尽快体验一下用 icloud 分享文件的感觉。在新版本的系统中,只要在 icloud 文件上右击鼠标,选择“共享”,再点“添加用户”,即可生成该文件的分享链接。 打开“添加用户”对话框后,我们可以对共享链接进行相应的设置。如果我们只想对受邀请的用户共享文件,那么不仅要在下方将“有权访问的用户”设置为“仅限于受邀用户”,还要在上方填写我们所邀请用户的邮箱。注意,目前“受邀用户”功能只对其他 Apple ID 开放,填写的邮箱也必须是 Apple ID 的登陆邮箱。 如果我们想要创建公开共享链接,而不是只针对特定用户开放浏览,那么我们可以选择“任何拥有链接的用户”。这样,只要将我们创建的共享链接发送给其他人,拥有链接的用户就可以随时打开相应链接浏览文件。 另外,我们可以在下方的选项中设置共享文件的访问权限。其中“仅查看”是只读权限;“可更改”是读写权限。 设置完成后,通过点击下方的“共享”按钮,我们就为指定文件创建了一个共享链接。共享链接创建完成后,它会自动地被复制到我们的剪贴板中,并且相应 iCloud 文件的名称后面会出现“由我共享”字样,便于我们事后查找。 现在,我们就可以将复制好的共享链接发给其他用户,让他们通过浏览器打开该共享链接来读取或更改相应文件了。值得一提的是,如果共享文件是 PDF 等格式的文件,打开共享链接即可直接预览其内容,而无需先下载再查看,非常方便。

2020-03-25 · Mason

当我们反对“感恩教育”时,我们究竟在反对什么?

2020年3月7日,《长江日报》刊载了一篇题为“在全市开展感恩教育,形成强大正能量”的文章,披露了现任武汉市委书记王忠林在武汉市新冠肺炎疫情防控指挥部视频座谈会上关于对广大市民及党员干部开展以“听党话、跟党走、形成强大正能量”为主题的感恩教育的指示。该文一经刊出,立即引来舆论哗然。人们纷纷指责武汉政府在疫情尚未得到有效控制的情况下将宝贵精力投入到如此“细枝末节”的工作中。在人民的一致声讨中,相关媒体悄然将该文章撤回。 但文章的撤回并不意味着“感恩教育”的结束,抑或说,此次“感恩教育”的偃旗息鼓并不意味着所有“感恩教育”的绝迹。相反,在中国自秦汉以来2000多年的漫长历史中,“感恩权力”或“感恩国家”的文化一直都是最大的“正能量”。只要这种文化及其所生长的土壤依然存在,数不尽的“感恩教育”就不会真正消失。 在中国走向现代化的过程中,许多人误将上述“感恩文化”归咎于中国的传统文化或所谓“儒家思想”,并就此展开对中国传统的全面批评。然而在我看来,这些人似乎在革命的最开始便找错了敌人。 谁是我们的敌人?谁是我们的朋友?这个问题是革命的首要问题。中国过去一切革命斗争成效甚少,其基本原因就是因为不能团结真正的朋友,以攻击真正的敌人。 ——毛泽东《中国社会各阶层的分析》 首先,他们所批评的”儒家思想“究竟指的是哪种思想就很成问题。战国时期的孟子,这位在我们现代人眼中几乎与孔子是”同时代人“的”亚圣“,在许多问题上就已经与后者产生了严重的分歧。何况儒学上下绵延2000多年,其流变程度堪比忒修斯之船,要将“儒家思想”统而论之,并扣上“封建礼教”的帽子加以攻击,实属“找错了敌人”。那些攻击儒学的人,似乎只能看到“”身体发肤,受之父母;不敢毁伤,孝之始也“,而看不到”民为贵,社稷次之,君为轻“。儒学内容之丰富、流派之众多,尽被这些”进步“的攻击者们”统一”成了落后腐朽的模样。 其次,儒学之所以会在近现代以“落后腐朽”的模样示人,自身内容的丰富性与攻击者的蓄意“归纳”固然各有功劳,但更主要的原因还是封建帝制的霸道本性。中国的封建帝制是一个高度注重实用性的体系,对中国的封建帝王来说,凡是有利于维系统治的,皆可拿来一用。在这样的环境下,各派学说无论最初有多么迥然不同的主张,最终都会在权力的倾轧下变得高度同质化。换句话说,即使汉武帝时在思想领域取得胜利的不是董仲舒的儒学,而是黄老、阴阳或其他流派的学说,后来的历史也不会有任何改变。事实上,董仲舒的儒学与孔孟的儒学已经想去甚远,前者为了迎合权力的需要,已经褪去了太多“不合时宜”的棱角。 那么,我们真正应该攻击的“敌人”到底是谁?或者换一个问法,中国源远流长的“感恩文化”究竟源自哪里?这正是我今天要讨论的主题。如前所述,如果说中国古代的封建帝制一直在玩“外儒内法”的把戏,即表面上遵从儒学道德以增添自身统治的合法性、实质上却无时无刻不践行着法家的残酷驭民术,那么培育出“感恩文化”的罪魁祸首就应该是“内法”而非“外儒”。至此,问题的答案就很明显了——我们在反对“感恩文化”的时候,真正反对的应该是封建帝制及其“法家”心法,而不是被其披在身上充当外衣的无辜的“儒家思想”。 “感恩教育”及其背后的“感恩文化”都是历久弥新的封建帝制的一部分,它们不会随着时代的前进而自然地归于消灭。如果我们始终找不到真正要反对的东西,“感恩教育”就会一直继续下去。在“中华人民共和国的一切权力属于人民”赫然写在《宪法》第一条的今天,我们不能再有“感恩教育”。

2020-03-11 · Mason

利用 Hugo 和 Github Pages 搭建自己的个人博客

如你所见,此博客是一个完全静态的 HTML 站点。相比于 PHP 编写的动态站点,静态站点不仅访问速度更快,而且部署门槛低。一个完全不会编程的新手,只要花点时间掌握一些工具的用法,也能轻松建立属于自己的站点。 本站由 Hugo 渲染而成。它的使用方式非常简单,想要自学的朋友可以阅读 Hugo 的官方文档。与其他博客系统一样,Hugo 也拥有着众多简洁美观的主题,本站所使用的主题是 maupassant(2024年更新:播客迁移后最新使用的主题为PaperMod),它最初是由 cho 开发于 Typecho 平台的主题,后被移植到众多其他平台,并被加入了许多新功能。 Hugo 的所有页面都支持 Markdown 语法,借助它,我们可以在任何环境下撰写出格式统一的博文,而不用担心外观问题。Markdown 的学习成本很低,任何人都可以在极短的时间内学会。如果你有兴趣,可以通过这份教程入门 Markdown。Typora 是我目前正在使用的一款支持多平台的轻量级 Markdown 编辑器,界面非常干净简洁,并且免费开源(2024年更新:该软件已于2022年开始收费,目前我使用的编辑器是 MarkText)。 通过 Hugo 生成好完整的 HTML 页面之后,我们便可以将这些页面放到我们的服务器上了。你可以购买一台虚拟主机,或者更加省时省力地,利用 Git 仓库托管自己的网站。Git 是一个应用非常广泛的版本管理工具,而 Git 仓库则是用于托管源代码的小型服务器。最著名的 Git 仓库非 Github 和 Gitlab,它们在提供免费的源代码托管服务的同时,还支持 Pages 托管服务。所谓 Pages,原本是用于介绍和传播开源项目的说明文档,但其本身也是一个小型的 HTML 静态 Web 服务器。利用 Pages,我们可以轻松而免费地部署自己的静态网站。 如果你不希望通过手动的方式创建页面或修改配置,而是习惯于通过类似于 PHP 动态博客后台的可视化界面来编辑自己的网站,那么你可以尝试 Forestry。它是一个支持多种环境的可视化内容管理系统(CMS)。通过 Forestry,你可以像编辑动态博客那样管理自己的静态网站,并实时地将编辑好的网站推送到你的 Git 库中,实现真正的无代码建站。 本站即通过 Hugo + ~~Forestry ~~+ Github 搭建而成,从开始自学到写这篇文章总共花费三天时间。在此感谢所有为开发上述工具或撰写相关教程而无偿付出时间与精力的前人们,若不是站在他们伟岸的肩膀上,本站不会有问世的这天。

2020-03-10 · Mason