惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
S
Secure Thoughts
月光博客
月光博客
美团技术团队
雷峰网
雷峰网
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
News and Events Feed by Topic
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Forbes - Security
Forbes - Security
W
WeLiveSecurity
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
G
GRAHAM CLULEY
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
AI
AI
Last Week in AI
Last Week in AI
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
云风的 BLOG
云风的 BLOG
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Recent Announcements
Recent Announcements
Webroot Blog
Webroot Blog
T
Tor Project blog
Cisco Talos Blog
Cisco Talos Blog
N
News and Events Feed by Topic
罗磊的独立博客
The Register - Security
The Register - Security
Blog — PlanetScale
Blog — PlanetScale
T
Threat Research - Cisco Blogs
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
T
The Exploit Database - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
B
Blog
腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Engineering at Meta
Engineering at Meta
Latest news
Latest news
IT之家
IT之家
D
DataBreaches.Net
博客园 - 司徒正美
N
Netflix TechBlog - Medium
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
Roam Research:一款为研习者而生的笔记工具 | 认知下一代信息管理系统(上) - 少数派
2024-07-12 · via 少数派

仙那度计划 (Project Xanadu) | 双链简史

本文正式开始之前,让我们回到故事的原点——追溯双向链接的历史,找寻永恒记忆宫殿的遗址

上都启示录:超链接(Hypertext)缘起

一切的一切,始于信息技术先驱 Ted Nelson(泰德 · 尼尔森)内心深处的愿景——一个能够在数字世界关联起一切事物的电脑文件系统。最初,Nelson 的构思是想建造一个数字资源库——以承载全世界范围内的所有电子出版物。

那之后,他将心目中关于这一想法的企划正式命名为 Project Xanadu「上都计划」。

尼尔森定义了「超文本」的概念

1965 年,Nelson 把他的想法诉诸于论文之上,并提交给了计算机协会(ACM)。

 范式:Xanadoc | Xanadu Space

这是一篇关于宇宙学的文档,由其他文献中的段落共同组成

感兴趣的朋友可自行访问 Xanadoc 或者观看 Nelson 发布的示范 Demo

失落的仙那度 | 万维网(World-Wide-Web)远非世外桃源

尼尔森不认同多数人对于「所见即所得」的看法

不难看出,Nelson 本人并不认可互联网时代下的万维网——他认为所谓的「所见即所得」,不过是局限在传统打印文件里的说法。

也就是说,一切计算机文档都是无互动性可言的,既不能被标注,也不允许插入(外部链接)——好比压在玻璃下的报纸,是可望而不可即的。

因此,当下的人们亟需一个可以关联所有文档的笔记工具,以满足信息时代日益增长的个人知识储备。


Roam Research:属于前方朝圣者的福音 | Project Xanadu 原教旨之十二

1.每一位用户都是独一无二且属安全认证的:

在 Roam 里,每一个云端库(Hosted Graph)都是独有且私有的。

ps:仅在创建图库阶段,可以将其设置为独立加密类型

2.每一位用户可自行搜索,检索,创建以及存储文档

每一位用户(编辑权限)可自行搜索,检索,创建以及存储区块(Block)和页面(Page)。

3.每一份文档可由任何数据类型的任意数量部分组成

Roam 的 Block 可由相当数量的不同数据文件组成,类型如下:

  • 文本(text)、图像(image),音视频(audio/video)
  • PDF文件、网页(web page)
  • 看板(kanban)、表格(table)
  • 画板(drawing board)
  • 白板工具(excalidraw)
  • 思维导图(diagram)

4.每一份文档可包含任意类型的链接,包括系统所有者可访问的任何文档的虚拟拷贝(转包)

每一个区块可包含任意类型块的引用,包括图库所有者可访问的任何区块的虚拟拷贝(嵌入)

5.链接是可见,且可从所有端点处出发跟踪

块引用是公开的,且能从所有引用过原区块的区块处反向跟踪

6.每一份文档都是独一无二且安全认证的

每一个区块都是独一无二且由双重标识(Private ID/Public ID)进行识别——每一页 Page 在命名空间(Namespace)的标题(Title)都是唯一的

对于云端加密库而言,每一个块(页面)引用都经由自动加密处理

特殊地,桌面端应用上的离线本地库无法加密由用户上传的图像等媒体附件

7.每一份文档都具备安全的访问控制

每一份页面都可以被共享给任何人,或具备阅读/编辑(read/edit)的账号邮箱

特殊地,共享独立页面将加载部分图库(Graph)的数据到任何一位访问者的浏览器上

因此,对于一位别有用心且精于钻研的人来说,他将可以从某一页面访问图库

8.每一份文档都可以进行快速搜索,存储以及检索,并且无须考虑其物理意义上的存储位置

每一个区块(文本/字符串)都可以进行快速搜索,存储(仅限于 Page)以及检索,并且无须考虑后端数据库的存储问题

9.每一份文档根据来自任意地点的访问频率,自动迁移到最合适的物理存储区

每一个区块涉及到的最近编辑数据,都以 EDN 格式扁平化存储为一系列简易数据集,并储存在本地缓存中

除此之外,对于无加密的云端库来说,还能够以离线的形式直接访问
警告:删除本地缓存将导致尚未同步的数据丢失

而对于任何共享了访问权限(阅读/编辑)的人来说,图库数据将加载至他们的浏览器上

10.每一份文档都有作自动冗余存储,即使在意外情况下也能保持可用性

仅对本地库而言,如果尝试清除本地存储,那么此举将即刻删除掉该浏览器上的所有图库
建议:用户方应自行设置好定期备份,以避免重要数据的损失

对于任何共享了访问权限(阅读/编辑)的人来说,都可以将图库整体导出为以下格式:MarkDown/MarkDown、JSON以及EDN

Roam 支持 4 种格式的整库导出

11.每一项事务都是保密且可由组成事务的部分(文档源)进行单独审计的

每一项事务都默认存储在与之对于的属性列表当中;每一项事务都仅可由共享相同事务ID的区块进行审计查询

此外,仅限于云端库而言,所有区块的类型内容(含图像等媒体附件)同数据集(非必要的元数据外)一样,均可经由加密处理

  • 常见的上传附件 (Uploads):图像、音视频、还有 PDF 文件
  • 一些非必要元数据 (Non-Necessary Metadata) 不会被加密:
    • 节点形式(无序/有序/文档)
    • 标题水平以及文本调整情况(居左/居中/居右)等
  • 所有 Blocks 的关键数据将被加密:
    • 各个用户的昵称/邮箱
    • 以及创建该区块的用户信息(昵称/邮箱)
    • 还有页面标题,图像链接等

12.Xanadu 客户端通讯协议是符合开源公布标准的;因此,涉及到第三方软件的开发与集成是被允许且支持的

在 Roam 中,涉及到第三方插件的开发和集成式被允许且支持的

用户方甚至可以直接在特定的页面或区块下方,自行修改定义图库样式 (Graph's CSS), 以及 JS

举例来说:油管视频(嵌入式)的 Comment Button 的样式修改

{
  background-color: white;
    right: 0;
    left: 98%;
    top: 95%;
    bottom: 0;
    z-index: 2;
    opacity: .8;
    position: absolute;
    border-top-left-radius: 7px;
}

类似的设置,都是可以直接在 Graph 里由用户方自行定义的


知识图谱 Roam Graph:非线性大纲笔记——打破传统文件柜的桎梏

对于非线性的网状形成,不只是页面与页面之间的联系,更要有任意段落的粒度参与。

跳出文档柜的层级藩篱,打造第二大脑的数字城堡

每一页 Page 都是 Graph 这座森林中的一棵树,而所有的 Blocks 则充当枝干和树叶的形式。

[[Page]]
* Branch
  * Branch
    * Leaf
    * Leaf
  * Leaf
  * Branch
    * Branch
      * Leaf
* Branch
  * Leaf
...

事实上,Page 和 Block 并没有本质上的区别,Page 只不过是一类特殊的 Block ——作为视图 (Graph Overview) 上独立且直观的节点;换句话说,Page 即是不存在父级节点 (Parent Node) 的区块。

更形象地说,Pages 与 Blocks 之间的关系基本可视作为正方形与长方形(前者为独立的个体,通常由后者组成)。

不只是树叶的繁荣,也要有花朵般的点缀

标题树 [[title]]

标题粒度

使用 [[]](双中括号)引用的 Pages,具备相对宽泛的节点粒度;如同森林里的树木,高矮胖瘦,各有不同。

顺便说一句,区块 (Blocks) 在粒度的定义上理应是“最自由自在的”。

标签垛 #tag

标签粒度

紧挨着 #(井号)的 Page 引用通常具备较小的节点粒度,这类标签常用于标记 Block(s) 在内容上可能涉及到的概念/范畴。

堆垛 #tag/sub-tag

对于递进式的标签链接,它们更接近于「堆垛」的状态。

只有当该标签(含子标签)相对于独立标签是不可分割的,才以“多步标签 (Multi-step label)”的形式进行引用

如果还是不能很好的 Get 到这一块的内容,可通过以下内容来理解:

上图为O2(氧分子),下图为O3(臭氧分子)

如图,两种分子都属于是氧元素的单质类型。不同的点在于臭氧分子比之氧分子多出了一个氧原子——因此说臭氧在形态上更进一步。

属性核 attribute::

属性粒度

attribute::#tag 相似,但在细粒程度上更加具体,普遍用来概括(涵盖)一类拥有共同特征(特性)的的人/事/物。

例如:作者/邮箱 (Author/Email)

Author:: Mac Arthur
Email:: macarthur@gmail.com

 种子/果核

简单来说,attribute:: 不仅可以用于描述一类具体的属性,还能用来概括具备同一特点的不同事物。

Forest
* Apple:: This is an apple
  * AppleCore:: An apple core

* Banana::
  * BananaSeed:: A banana seed
  * BananaSeed:: A banana seed
  * BananaSeed:: A banana seed

* Pear:: This is a pear

通用格式:

- attribute:: outline 
    - sub-attr-1:: detail
    - sub-attr-2:: detail
    - sub-attr-3:: detail

简而言之,一切与属性相关的数据,更接近于“元数据 (Metadata)”的概念。

用集合的表达式来理解的话,attribute:: 更接近于右侧对于 φ 的属性定义(特点/类别);左侧部分则是双冒号 :: 之后具体的(多数)对象。

可见,集合`{1,2,3,4}`中各元素满足同一特征 φ∈N*

而在 Roam 中,具备相同(近似)属性/属于相同(近似)类型,则可由 attribute:: 来定义或包含。

内联标题[[[[inline]]outline]]

标题中的标题:洋葱头,番石榴,柚子

除了上述三类引用,Page 还可以作为任意粒度的独立节点(相对于 Block 而言)——此类 Page 可以在标题的命名空间 (Namespace) 处内联其他 Page 的 Title,来进一步「增殖」该 Page 的节点粒度

Guava: [[[[seed]][[flesh]]]]

可见,Guava 通过前后内联其他 Page,使得原本的节点粒度进一步「增生」。


根系发达,枝头发芽

ps:枝头即 Headings,需要区别于页面标题 Title

世界上不存在两片完全相同的叶子

如果说,每一页 Page 都是一棵树,那么它的根须将可以与不同的 Pages 相连——它们之中的 Blocks 既是具备营养的花蜜果肉;也是充当养分的化肥颗粒;更是洞见灵感 (Insight) 的花种果核

而为了保证这样一幅“营养-养分”网络系统的自身稳定,Roam 不仅为每一个 Block (包括 Page 在内) 分配有独一无二的双重 ID,还在页面标题的命名上,采取了「非唯一则合并」的维稳手段。

对于页面标题的(重)命名,Roam 只允许同时存在一份同名 Page,并在内容上合并二者。

良好的开端,是成功的一半

每一页 Page 下的 Top-level Blocks,通常作为 Headings 存在

正如本章开头所提及的,Graph 本身像是一座大林场。每一页 Page 即是一棵 Tree,而这些 Top-level Blocks 则是树上的主要枝干,起到统领全文,提纲挈领的重要作用。

它们常以各级标题的形式出现,如一级/二级/三级标题:

一级标题

二级标题

三级标题

而这些 Top-level Blocks 都将 Page 视作唯一的父级节点;且 Top-level Blocks 不只是作为 Page 的直属(后代)节点,同时还是各段落的起首节点。

尽管标题水平 (Heading Level) 与节点当前所处的层级无关,但还是十分建议将 Heading Blocks 与线性的层级关系相匹配。

注:heading 仅作为一个 Blocks 的可选项(相对于 Pages 的 Title)

附庸的附庸不是我的附庸

一般来说,当把 ((block ref)) 置于某处时,该引用仅显示当前块的命名空间 (Namespace) 里的内容。

那么块引用 ((block ref)) 与嵌入 {{embed:((block ref))}} 间的区别又何在呢?

全文式索引的块引用

通俗地说,块引用是仅包含自身的;除非嵌入该引用,否则节点将视作从原本的层级关系中「抽离」出来而变得无法展开的。

只有当块引用被置于嵌入块内,即 {{embed:((block ref))}},才能够展开/收缩其下属的后代节点——之所以将块引用称作【全文式索引】的缘故,正是因为 ((block ref)) 总是指向被引用块的位置以及包含一个直属子级节点的属性列表

换句话说,只有被嵌入的 Block(s),才能「串联」起各个层级的后代节点,进而形成完整的 Branches 分支系列。

定位原区块的导航栏

左键位于左侧的 Bullet Node,将 Zoom-in 到当前区块(段落),或者在按住 Shift 键的同时左键节点,则可在右侧 Sidebar 处打开当前区块的“视窗口”;

而不管使用哪一种方式打开,都始终存在一个 Breadcrumb 导航栏指向当前节点的先代节点——这是因为所有节点的 ((block ref)) 都将默认存储在其所有后代的属性列表当中。

Breadcrumb 导览器

引用上下文的位置框

同样,左键位于视窗口顶部的(任一)先代节点,即可展示对应层级的上下文内容——此时,会出现一个“黄色边框的盒子”来「突出」原区块的位置。

在右侧 Sidebar 处 Zoom in 当前区块

简而言之,你进入的层级越高,那么你看到的上下文越多。


半场总结

综上所述,Roam 的双向链接 (Bi-Directional Liking) 足以证明涉及到整个 Graph 中的不同 Page/Block(s) 之间的链接是高度可靠的,且能在足够宽泛的粒度范畴内深度「反向追踪」。

【可溯源性】在设计上应当高于【延展性】。

概要

现在,让我们再次回顾一下目前提及的功能特性

  1. Page 对应不同节点粒度区间的基本引用形式:[[title]]/#tag/attribute::
  2. Page Title 命名的全局唯一性——Block Ref 同样具有潜在的唯一性
  3. Block Ref 引用的全文式索引
  4. 任一 Block 的 Breadcrumb 导航栏

可以说,Roam 在节点内容的粒度上没有任何限制,也支持上传各种类型的资源文件——除了文本,块引用本身还能展示图像,音视频等外部链接的内容。

在下文中,我们将继续探索 Roam 中的功能块 (Func-Blocks)。