Normal view

There are new articles available, click to refresh the page.
Before yesterdayfivestone

“网络读书会” 的一些思路和方案

By: fivestone
10 April 2025 at 12:04

想弄一个长期的、朋友们一起读书的小组。大家对书中的文字,进行高亮或评论,并且围绕评论进一步讨论。

对于读书平台而言,这应该是很容易实现的功能。很多平台都有类似的功能:Amazon、微信……但并没有真正形成规模。原因很简单:首先,参加讨论的每个人,都先要在那个平台上买书。这就会涉及到金钱上的压力;大家也不想被平台渐渐捆绑住;以及,如果讨论的内容敏感,在某些平台,是很危险的事。

于是,有什么方法,可以不依托于大的平台,就能实现读书会的功能?以及,无须讳言,很多时候大家读的都是盗版电子书,读盗版是否也可以享受一起读书的乐趣?

虽然我们想要构建一个公开的、适合更多人的平台,但最终并没有特别完美的方案。考虑到的很多方案,其实更适合少数人的内部读书活动;所以,在这里把这些思路介绍一二,如果大家觉得合适,可以自行去拉小群,不用管我们 ^^


需要考虑的问题

  • 读书会的规模。人数的多少,彼此是否熟识。其相应的方案,会有很大不同,后面详细讲;
  • 私密性:是否需要匿名?是否能够匿名?
  • 小组的准入机制、成员管理、对评论的管理;
  • 是否会构成对盗版书的传播?如何把握其中程度?会不会因此导致使用的平台被举报?
  • 书评和讨论的内容,能否长期留存?能否导出?平台崩了能否迁移?
  • 如何应对恶意攻击?
  • 是否要依赖 vps 自建?或者其它技术门槛?
  • 能否跨平台:电脑、手机、平板……
  • 是否要翻墙?

不同的人数规模

  1. 小圈子,互相熟识
    • Google Doc 基本就够用了
  2. 中等规模,会通过邀请链接,加入陌生网友,内容不向小组外公开
    • 准入机制
    • 成员管理
    • 成员之间的身份如何保密?
  3. 大规模,不需要准入机制,任何人都能评论
    • 如何应对恶意攻击、垃圾评论?
    • 管理员的身份如何保密?
    • 书籍内容如何恰当地发布?

书如何生成?

首先,目前的各种方案,只适用于文本编码形式的书;对扫描版的书做评论要复杂很多,暂时不考虑。

大多数书以 .epub 的形式被获取,在不同方案中,被转换成 .pdf .docx .html 的形式。用 Calibre 可以很容易把 .epub 转换成 .docx 和 .pdf,后者需要事先考虑页面大小、字体、边距……以方便多数人的阅读习惯。

生成的 .docx 可以直接导入 Google Doc 之类的在线文档;导入 wordpress 的话,可以使用 Mammoth .docx converter 之类的插件。

使用 pandoc 可以从 .docx 生成很清爽的 .html 主体,比用各种 Word 软件转换好,也比用 pandoc 直接从 .epub 转 .html 好。


目前的三种方案

方案 1. Google Docs

演示页面

使用 Google Docs 的「建议编辑」模式(View – Mode – Suggesting),就可以把文章变成可以让协作者随意高亮评论的模式。可以只邀请指定的人编辑;也可以让任何人通过文章链接,成为 Commenter。

  • 适合小圈子,人多了存在误操作和恶意攻击的风险;
  • 允许匿名评论;
  • 可以把带评论的文档导出到本地。

有类似功能的协作编辑平台有很多,CryptPad 也很推荐。国内也有很多这种平台,但如果评论的内容比较敏感,还需要谨慎使用。

方案 2. hypothes.is

hypothes.is 是一个,小组内部一起阅读讨论学术文献的网站,用户需要注册账号,在 chrome 浏览器安装插件后,可以对任何网页或 PDF 进行评论和讨论。

  • PDF 的演示】,需要安装 chrome 插件 才能看到评论;
    • PDF 的亮点在于,是通过文件本身的 id,在 hypothes.is 系统中定位的。于是,即使 pdf 所在的网址改变,甚至把 pdf 存到本地再拖进浏览器,都可以进行评论同步;
  • 网页版的演示】,手动嵌入 js 文件,可以不用专门安装浏览器插件。

评论的可见性,有三种模式:

  • private,仅自己可见;
  • public,公开可见,——注意,这里不仅仅指评论本身公开,而且,任何人点进你的用户页面,可以看到你都在哪些网页留下了公开评论;
  • group,只有通过邀请链接加入小组的用户,才能看到并参与评论。但是,这个小组功能做的很简陋,作为社交网络的话,缺乏很多基本功能:
    • 组长没有任何权限,不能踢人,不能删评论,不能解散小组;
    • 邀请链接是唯一的,不能更改,——也就是说,任何知道这个链接的人,都可以进来胡乱留言,大家无法强制他离开;大概也没有举报封号机制;
    • 用户不能把自己的评论,批量挪到另一个小组,或改变公开状态。

这个小组功能,抵抗恶意骚扰的能力几乎为零。虽然项目组说未来会改进,但目前更适合,只在中小规模内部交流。不过,私下使用的话,这个小组功能不仅限于读书,同好们建个小组,日常对任何新闻网页都能一起吐槽 ^^

其它的优点:

  • 很多工具配合;
  • 评论可以导出,甚至可以自动同步到 Obsidian;
  • 目前不需要翻墙;
  • 有自建 hypothes.is 的可行性(还没认真研究);

缺点:

  • 小组邀请链接一旦泄露,后果可能很惨;
  • 无法匿名评论,必须注册 hypothes.is 账号;
  • 目前 pdf 的评论功能还有些问题,无法在各自的用户界面显示文件标题,文件多了会非常乱(这是新出现的 bug,也许很快就会好);
  • 如果原始 url 消失了,就无法再在原文中查看评论(甚至之前的评论,也无法删掉);
  • 可能还是需要自建 Web Server 来配合,或者免费 S3 文件服务器也可以?

方案 3. WordPress + CommentPress 插件

虽然 WordPress 和大部分网站一样,只能在文章下方集中评论;但仍然有人做了 CommentPress 插件,把评论和文章内容关联。插件分支出几个版本,目前最靠谱的是 Github 上的 CommentPress Core

演示网站】,——专门临时架了一个 wordpress,但以后可能会关掉,所以在这儿留一张截图吧。

感觉 wordpress 更适合大规模,完全公开的读书交流方式,但还有很多需要进一步思考完善的地方。当然,中小规模内部用 wordpress 也可以,但相对而言 hypothes.is 更好用一些?

优点:

  • 可以匿名评论,——评论者需要填写 id 和 email,假的也可以,虽然后台也可以设成不要 email,但这样会更难阻挡垃圾留言;
  • 可以使用文章密码,控制书籍内容是否对外可见,防止被不恰当传播;
  • 数据完全自主掌握;

缺点:

  • 页面效果难看……只能使用 CommentPress 自带的 wordpress 主题,虽然有三种,但都不好看。也许 css 高手修改一下会好些?
  • 只能把评论定位到所在的段落,并不能够高亮显示选中的文字,只好在评论区手动引用;
  • 如何防止恶意攻击?Wordpress 防垃圾留言很弱的;当然也可以小范围改成注册用户才能留言;
  • 需要自建服务器配合(官网免费 wordpress 不支持插件)。

寻找适合的自建聊天工具

By: fivestone
3 July 2024 at 22:07

到现在为止,并没有找到最合适的解决方案(目前最靠谱的是 Nextcloud Talk 和 Voce Chat)。先把过程中考虑到的一些因素,记录下来,作为借鉴。

我的目的,是如何更便捷地,和墙内小范围的朋友、家人,保持联系,在对话中不受信息审查。现有的聊天软件,能够不翻墙使用的,几乎没有了,即使有,也不是长久之计。所以最靠谱的方式,大概只有通过一台海外的 vps,自建服务,供小范围的人使用。如果传播范围不大,除非 gfw 变成白名单,否则应该都可以长期使用。

下面是选择各种自建聊天工具时,会考虑到的因素。这些因素之间,有些是互相冲突的。对不同需求的人,在这些因素之间考虑的权重,也不一样。对于我上述的需求来说,

  • 不需要考虑的因素,用黑色显示;
  • 希望能有,但没有也无所谓的因素,用蓝色显示;
  • 非常希望能满足的因素,用绿色显示。

首先,我希望这是一个可以挂机的聊天工具,可以在收到信息时,从手机接收到通知;而不仅仅是个网页聊天室,只能在专门打开网站时,才能聊天:

  • 可以持续挂机,通过 app 或者「Chrome 把网站添加到桌面」的功能,实时接收来信通知
  • 除了手机外,也能在 pc 的浏览器里使用

要联系的人,并不擅长电脑技术和操作,因此

  • 不需要翻墙使用
  • 操作简便
  • 有中文界面

这些人,可能并不属于同一个群体。所以,需要为不同的人群,架设不同的服务地址,互相分开。

  • 在一台 vps 上,同时部署多个聊天服务。一些功能更加完善的聊天服务如 xmpp,因为需要独占端口,并不能满足这一点;

安全性方面:

  • 信息加密
  • 开源
  • 不和中央服务器连接,一些 self-host 的服务,会经常连接开发者的服务器,虽然只是检查升级或校验程序完整性,但还是看着心虚;
  • 完全通过域名交互,不向其它服务器暴露 ip 地址
  • 用户之间的私信,对管理员也不可见,否则,其实开个 fediverse 实例,可以满足这里很多条要求;
  • 用户之间不会互相暴露信息,譬如很多协同工作平台,可以互相看到所有用户的名单、email……

架设系统的便利程度:

  • 支持 docker + nginx 部署,或者直接放进 php 目录就能运行
  • 系统开销小,内存上 G 的那种就算了吧;
  • 不需要 mysql 等专门数据库,因为规模不大,sqlite 就足够了;
  • 能部署在网站的子目录下,不需要独占一个子域名;

对聊天功能的需求:

  • 是否要加入去中心化网络,和其它服务器的用户交流?对我来说,这不是必须的。而且这在部署的便利性、轻量级、安全性、同时部署多个服务……等方面,都会造成冲突;
  • 可以群聊,也可以一对一私聊
  • 可以传输文件;
  • 支持语音
  • 支持视频;
  • 注册过程简洁,可以由管理员直接生成账户;
  • 可以关闭对外注册

……………还有什么要补充的吗?


已经考察过的工具

其实最理想的,应该是一个 php 的聊天室……能通过 chrome 在手机桌面接收消息通知就可以。轻量化、可以塞到任何目录下、没有中文我自己汉化也可以。但是,真的没找到靠谱的…………求推荐!!!

ps,如果联系人有一定电脑常识,也懂英文的话,用 mycryptochat 做临时沟通,蛮好用的。

目前最合适的,是 Nextcloud Talk,用 docker + sqlite + nginx,是可以做到快速部署的;占用内存不到 300MB,勉强可以接受(所以开销更高的方案,基本不考虑了);而 nextcloud 作为一个庞大的办公平台,其 web 界面对于非技术人士,未免有些眼花缭乱。

xmpp 和 matrix 服务器,可以做到开销更小,但也在 100MB 以上,还涉及独占端口的调整,部署起来繁琐很多。似乎也可以把跨实例通信的功能关掉,做成封闭社区,配置和开销会简单一些。但还没仔细研究。

各种协同平台类,如 Mattermost、Rocket.Chat,系统开销过大,就算了。

这两年有个国人开发的 VoceChat 工具,评价很不错。可以 docker + nginx 部署,内存 30MB,有 web 界面和自己的 app。推荐大家可以试试。目前发现的一些问题:

  • 免费 license 有 20 个用户的限制。 问题不大;
  • nginx 不能反代到子目录,只能独占域名的根目录;
  • 可以看到其它用户的 email,但用邀请码注册的话,可以填假的,不用验证;
  • 最大的问题:VoceChat 的语音聊天模块,是外挂的 agora.io,——是著名的大陆运营商,当年 clubhouse 因此遭受很大质疑。所以,不要用它的语音功能谈关键的信息。进而,这个软件的文字聊天的安全性,虽然是开源,但使用官方 docker 时,也让人有些嘀咕了。

安卓上的记账软件:Gnucash Pocket

By: fivestone
12 January 2024 at 20:25

最近又试了一圈 Android 上的记账软件。各种时兴的记账 app 里,仍然没有靠谱的。最终的选择,是停更了五年的:Gnucash Pocket,——Gnucash 的非官方手机版。Google Play 上早就没有了,只能自己编译,或者下载 2018 年的 apk(还很好用 😛


个人需求,并非面面俱到的记账;而是针对一些小项目(譬如一次多人旅行、入门一个兴趣领域时的投入……),记录相关的开销。所以,我的核心需求,是能够在多个项目间,方便进行切换,这一点,是市面上很多记账软件,无法做到的。

一些记账软件里常见的,但我并不需要,甚至会反感的功能:

  • 和其它 app、乃至和你的银行账户,对接数据
  • 繁复的报表(我可以导出到 pc 后自己整理
  • 实时汇率
  • 多设备、多用户,实时同步信息(这个还是想要的,但不是必需
  • 需要注册网站用户

很多年前我找过这样的 app,并没有找到合适的,也就放弃了。如今又把 app store 里的常见记账软件,试了一圈,仍然没找到靠谱的(一些上来就要手机号注册的,我就不试了…)。最终还是投奔鼎鼎大名的 Gnucash。——这是从上个世纪就已经存在的老牌开源记账软件了,支持 Win / Linux / Mac 平台,我在 pc 上也很常用;但是并没有官方的手机版本。官网的 wiki 介绍了一些第三方开发的手机版本。感觉最好用的,是 Gnucash Pocket,原作者从 2014 维持到 2018 年,就停更了,后来被人 fork 了继续维护,但 fork 版不提供现成的 apk。原版 2018 年的最终版本的 apk,我用起来挺好的,没什么大问题。

注意:我说的是 Gnucash Pocket,而不是 Google Play 里的 Gnucash Mobile。Gnucash 的 wiki 官网对这两个 app 都有介绍。这些都是第三方开发的项目,和 Gnucash 官网没有关系。Gnucash Mobile 感觉很难用:不支持多项目,而且似乎先要导入一个在桌面 Gnucash 建好的账户模板……以及,那几个 ios 上的版本,我没有试过,并不知道是否好用。


Gnucash Pocket 的优点:

  • 完备的复式记账功能,——很多记账软件里眼花缭乱的功能,譬如 AA 账单之类,其实都可以通过设计合适的账目结构来实现
  • 在多个项目切换
  • 不依赖网络,可离线使用
  • 数据可导出到 Gnucash 桌面版
  • 支持多币种
  • 免费,开源
  • 无广告,不需要注册用户

缺点:

  • 不能实时多设备/多用户同步
  • 菜单里通往各个功能的入口不全,譬如缺一个一键回到首页的功能……

具体用法就不多介绍了。这里只是向那些,有类似需求和记账知识的人,介绍有这么个东西。具体用法应该很好摸索。


Gnucash Pocket 和 Gnucash 桌面版的数据迁移

记账的项目告一段落后,可以把数据从 app 导出,再导出到桌面版的 Gnucash,进行归档或进一步的处理。注意,如果账目里只有一种货币,那么选择 .csv .qif 格式,都可以顺利地迁移数据;但是,如果账目里有多种货币,这两种格式都会出现问题,就只能导出成 xml 格式。导出的文件有个看着很怪的 .gnca 扩展名,没关系,在桌面版的 Gnucash 里,直接 file – open – 打开这个 .gnca 文件,就可以了。桌面版的 Gnucash 项目,选择 save as 成 xml 文件,传到手机里,也可以用 app 打开继续记账。

写作工具

By: fivestone
29 September 2023 at 15:08

为了写长篇论文,整理各种散碎的构思和素材,尝试了一圈现有的写作工具。把体验的过程记一下。

先说结论。符合刚需,可供选择的,只有下面这几个。目前的考虑次序是:

  • 思源笔记、Lattics、Scrivener(付费)、Manuskript、Joplin、CherryTree

参考过,因为不满足刚需被淘汰的:

  • Effie、Flomo、Heptabase、Logseq、Notion、Obsidian、Onenote、QuollWriter、Ulysses、Writeathon、Zettlr、印象笔记

有一些我知道但没有去试的,譬如 IA Writer。以及这些年似乎有很多,给网文作者开发的写作工具,就不去一个个试了。毕竟我只是要找个自己能用的,而不是做这方面的全面评测。

不在意的要素:

首先,我寻找的这个工具,是为了一个特定的写作项目,而不是日常泛泛的信息管理。所以,一些对于后者而言,很重要的功能,我是不需要考虑的。

  • 运行速度。我知道一些工具,在文档增加到上万条后,会变得很卡。但我这里最多几百个文档,就不必考虑这个问题。
  • 是否便于导出 / 迁移到其它工具。一些工具的迁移性很差,乃至管理很多信息后,让人有被这个软件绑架了的感觉。但对我而言,只是需要把几篇最终成品,手动转移到其它工具去排版。

一些对我而言的刚性需求:

  • 支持 Windows。一些传说中很优秀,但只能苹果用的,我就不去看了。淘汰:
    • Ulysses
  • 内容对运营商不可见,尤其是大陆背景的运营商。淘汰:
    • Notion、印象笔记、etc.
  • 可离线使用。有一些工具,我不确定能不能离线,但安装桌面客户端后,需要先注册个账号才能用。而且这么搞得大多是国内开发。结合上面那条,我就不继续试了。淘汰:
    • Effie、Flomo、Writeathon
  • 支持三层以上的目录结构。淘汰:
    • Onenote,这个只是随口提一下, onenote 的块编辑太迷了,我试过几次,从来没习惯
    • Logseq
    • QuollWriter
  • 可拖拽排序。这一条淘汰了很多,其实非常优秀的工具。其中一些,甚至是我日常其它方面的主力工具。但对于构思长篇文章而言,可以随时拖拽排序,而不是改变文件名手动排序,对我很重要。淘汰:
    • Obsidian,很可惜,Obsidian 在其它方面几乎完美。有可以手动拖拽的插件,但只能改变第一层目录的顺序
    • Zettlr,这个我也很喜欢,而且它整合 zotero 的功能似乎很好用。我回头会试着用它来整理成稿
  • 费用。能免费用当然最好;可以花钱,但作为一个我会长期使用却又不是每天使用的工具,我更希望是一次性买断(譬如 Scrivener),而不能接受付费订阅模式。淘汰:
    • Heptabase

一些不是刚需,但会是我选择的重要因素:

  • 界面舒适程度。一些老牌的英文软件,打开后默认的界面,还是满不适应的……而且英文字体也很小。虽然很多是可以定制的,但我没时间慢慢去调。
  • 可视化的 markdown
  • 内部文章链接,是否双链倒无所谓
  • 分屏,同时编辑两篇文章

其它可有可无的加分项:

  • 可以把不同的项目存在独立的文件夹里,每次只打开一个项目,便于在不同项目之间切换。
    • Lattics 好像是不可以的?所有的项目都放在一个边栏界面里。这样偶尔用一次无所谓,但不能作为长期进行多个项目的工具。
    • Joplin 在这一点上减分比较大,但反而是因为,这本来就是我的日常主力笔记工具,和项目混在一起,就太乱了。
  • 可以调用其它外部编辑器
  • 支持 zotero,具体我还没细看
  • 卡片模式,我还没体验到,单独用一个文件夹来保存零碎想法,和卡片比,有什么区别?
  • 多设备同步,这大概是思源和 Lattics 的付费功能?
  • 直接在文件管理器里,访问项目的文本和媒体文件
  • 学习复杂度
  • 卡片模式
  • 开源
  • 费用

六种工具的横向比较。空白的是我还没仔细看的。

ScrivenerLattics思源ManuskriptCherryTreeJoplin
界面★★★★★★★★★★★★★
markdownxxx
内部链接x
分屏xx
切换项目xx
外部编辑器xxxxx
zoteroxxx
卡片x
多设备xxx
管理媒体文件
学习复杂度★★★★★★★★★★★★★★★
开源xxx
国产xxxx
费用买断免费+订阅免费+订阅免费免费免费
❌
❌