我在开发本地版「语雀」(下)
欧雷 发表于
在上篇文章《我在开发本地版「语雀」(上)》中挑重点介绍了我开发 KnoSys GUI 应用的缘由及其核心功能;即便如此,有的人看过之后仍是不解我为啥要造这个轮子。
简单来说,KnoSys 是我宏大愿景的一块拼图,得至少大致了解全貌才有可能真的理解我为何要非造这个轮子不可。
希望通过本文对 KnoSys GUI 应用背后思想及意义的「揭秘」,令大家能够稍微了解我的宏大愿景。
设计与构成
作为一个追求自由,不想被平台、工具等所挟持的人,我不会自己再创造一个去挟持其他人的工具——己所不欲,勿施于人。
基础理念
在核心部分的设计上尽可能地遵循「开放、标准、可迁移」的原则,尤其是至关重要的数据:
- 采用无需额外下载安装应用而使用操作系统内置应用就能查看的文件格式存储数据;
- 文本类数据优先选择 Markdown、YAML 等对人类读写友好且成为(事实)标准的格式。
因此,就算不用 KnoSys GUI 应用而改用 Obsidian、思源笔记、IDE 等也能够无障碍打开并编辑相关文件——甚至可以只用操作系统内置的应用!
使用 KnoSys GUI 应用的唯一限制,就是为了方便程序处理的目录结构规范——QiiDB 数据规范——同样是符合(事实)标准或人们惯常用法的。
用户自主
在使用其他云服务或应用时,它们总会「自以为是」地内置一些根本用不到的功能模块,还无法删除或禁用,挤占着有限的各种意义上的「空间」。
作为知识管理工具,KnoSys GUI 应用最不可或缺的功能特性是「知识库」和「扩展市场」,其他的基本都算是增强功能,理论上皆可通过「扩展市场」按需获取。
我不打算剥夺用户的选择权,因而不会内置任何非必需的功能模块,尽最大程度让用户自主选择与组合。
技术架构
从技术层面讲,说白了 KnoSys GUI 应用就是 QiiDB 的操作客户端,因其本身并不带任何操作能力——
QiiDB 是数据规范及以此为标准的开放数据集合,KnoSys 是以这个数据规范为基础去进行数据处理的工具。
目前为止,KnoSys 体系由三大部分构成:
- SDK——通过函数形式提供能力去操作符合 QiiDB 数据规范的文件夹与文件;
- 网站——结合 SSG 将符合 QiiDB 数据规范的数据源进行转换并生成静态网站;
- 应用——可视化操作符合 QiiDB 数据规范的数据源,即 KnoSys GUI 应用。
其中,应用部分强依赖于 SDK,而网站部分会作为应用的扩展功能为其提供「知识库」的共享发布能力。
「知识库」根据「元数据」进行数据校验及界面相关展示形态的动态渲染等能力,则基于我自己的用于低代码开发的 Fxxk Design 与 Future.js 体系构建。
另外,以「人」的维度订阅信息的能力会依赖 LinXoid 这个有志于帮助人们建立连接的项目。
遐想与意义
既然 KnoSys 是我宏大愿景的一块拼图,那么其他的拼图大概长啥样呢?接下来在务实与务虚两个层面为大家揭晓。
数字生活
就像依赖电器一样,二十一世纪的绝大部分人在生活中已经离不开数字产品了,零零后们更是数字世界的「原住民」。
然而,迄今为止的数字产品主要是面向商家、企业、政府等,面向个人的以消费娱乐为主;为了让个人与家庭生活得更好的产品不是完全没有,但我觉得很少且不够好。
作为热爱生活且掌握软件开发技术的人,我有志于填补并完善这块空白!
结合我个人情况来看,为支撑我想过的可持续数字游牧生活,需要一个家庭数字工作台:
- 在物理家庭中搭建可外网访问的服务器,最好能多地多中心数据互备;
- AI 辅助的知识管理,会用到 KnoSys 和本地大语言模型;
- 知识驱动的个人与家庭生活管理,包括家庭协同、财务、健康、智能设备等方面;
- 用于资源共享与沟通交流等的个人或家庭间通信,会用到 LinXoid 和对等网络(P2P)。
届时,物理家庭中的服务器就是 SSOT 的数据中心,电脑、手机等设备则是基本不存储持久数据而连接并访问数据中心的客户端操作界面而已。
赛博空间
随着科技的发展,数字世界对现实世界的「侵蚀」会逐渐加深,直至两者深度融合,人们不再「刻意」地去区分孰虚孰实为止——皆为虚幻,亦皆为真实。
在现实世界中,最重要的是对真理探索后形成的「知识」,以及围绕着「人」展开的一切事情——在作为现实世界映射的数字世界中同等重要,是其根基。
要成为赛博空间的住民,对「知识」与「人」有清晰的认知,清醒地认识到它们的重要性并争取到相关权力是极为重要的!
现实世界中,过去「知识」掌握在巫、祭司、教皇等极少数特定人群手中,而平民大众是无知的,可任其摆布;数字世界中,「知识」大多掌握在平台手中,用户受其摆布。
现实世界中,过去大多数人普遍没啥人权,作为事实上的奴隶被极少数特定人群所压榨剥削;数字世界中,人们也只是某平台里的资源、被压榨剥削的低价/免费劳动力。
数字世界的文明程度远低于现实世界——绝大部分人还没意识到自己在赛博空间中「知识」与「人」相关的权力,更别谈去争取了!
我期望自己的行动能够唤醒其他人,哪怕是只有几个。
扩展阅读可看我写的「闲聊个人服务」系列文章。
结语
说回到 KnoSys GUI 应用,因秉持开放、标准与用户自主的原则,在没有所依赖技术限制的前提下,我选择具有同样理念的 Web 技术去实现。
初步考虑支持以下两种使用方式:
- 通过浏览器扩展程序在新标签页中自动打开;
- 电脑开机时自动启动应用服务,手动在浏览器中输入地址。
单纯的知识管理部分只提供桌面端,若想要在移动设备上操作,请期待我日后开发的「数字生活」相关的移动端应用吧!