2026-10-19 软件 tsdb-cj 的四次静默失效:代码能跑、测试能过,但什么都没发生 tsdb-cj 排查笔记 最危险的不是崩溃,是「看起来在工作」 tsdb-cj 是基于 badger-cj 的嵌入式时序数据库, 也是忆时塔 分层记忆的存储底座。 本文不谈它的设计,只讲一次审计里挖出来的四类问题——它们的共同点是: 代码能跑、测试能过、日志无错,但功能根本没生效。 Continue reading...
2026-10-19 软件 storm-cj 的索引代价:44 倍查询换来的写入腰斩 storm-cj(bstorm)设计笔记 · 上篇 把写吞吐砍掉一半,换 44 倍查询——这笔账怎么算 这是仓颉版 storm 的第一篇。上一篇关于 storm 的文章还是 2019 年写的 Go 版 storm 的使用 ——bstorm 的灵感就来自它, 但实现完全不同:Go 版架在 BoltDB 上,bstorm 架在自研的 LSM 引擎 badger-cj 上。 本文讲索引带来的取舍,不讲 LSM 基础(那个在前四篇里)。 Continue reading...
2026-10-16 软件 给 Agent 造一座记忆塔(二):我去测了它,错了两次 忆时塔(Chronomem)实测笔记 · 下篇 结果最好看的部分,是「我的测量方法错了」 这是实证论文的博客版——position 论文(AiraXiv 2610.0035)提出评估计划, 上篇 讲那份设计, 本文报告执行结果。评估工具与原始结果归档: atomgit.com/ystyle/chronomem (bench/ 与 bench/results/)。 Continue reading...
2026-10-16 软件 给 Agent 造一座记忆塔(一):扁平存储与一次性压缩之间 忆时塔(Chronomem)设计笔记 · 上篇 扁平存储与一次性压缩之间,还缺一种记忆 这套设计我写成了 position 论文(AiraXiv 2610.0035), 对应的实证论文是下篇 的主题。 代码与完整技术设计:atomgit.com/ystyle/chronomem 。 本文是博客版,讲动机与设计取舍;严格定义与参考文献见论文。 Continue reading...
2026-10-15 软件 一段代码,两个系统:仓颉怎么处理「跨平台」这件事 写给第一次接触「跨平台」的仓颉学习者 从「为什么要跨平台」讲到亲手跑通一个例子 Cangjie · 入门 · 跨平台 这篇不假设你学过任何其他编程语言,也不假设你懂操作系统内部。 如果你刚学仓颉,听到「跨平台」「条件编译」「common/specific」这些词一头雾水——这篇就是给你的。我们从一个最朴素的问题开始:同一段代码,为什么不能在所有电脑上跑? Continue reading...
2026-10-15 软件 Go 一行注释就能把整个文件绑到平台,仓颉为什么不行? 从 Go 的 //go:build 到仓颉的 common/specific 拆开「仓颉不能按文件分平台」这句话:它其实有三种粒度,以及一个真实项目绕的弯 Cangjie · Go · 跨平台 · mmap-cj 如果你写过 Go,多半见过 src/net/fd_js.go 这类文件——开头一行 //go:build js,整个文件就只属于 js 平台。转到仓颉之后你会发现:没有等价的一行注释。 Continue reading...
2026-10-13 鸿蒙PC 【鸿蒙PC】二进制签名入门:证书从哪来、能要什么权限、该用哪一个 鸿蒙 PC 上不签名的二进制根本跑不起来,但官方文档一上来就摆出三种签名,反而让人卡在第一步:我到底该用哪种?这篇把三种签名的证书来源、能声明的权限、以及在 HiShell 里跑和在自己应用里拉起两种场景下的对应关系,整理成几张能直接查的表。不涉及原理,只回答该用哪个、要做什么。 Continue reading...
2026-10-13 鸿蒙PC 【鸿蒙PC】二进制签名解析:自签名、调试证书、二进制证书到底差在哪 鸿蒙 PC 上不给二进制签名就跑不起来,但官方文档把「自签名 / 调试证书签名 / 二进制证书签名」并列成三张对照表之后,反而更难看清它们到底是不是三种不同的东西。本文从开源实现里读回来一份答案:三种签名共用同一个 .codesign 段、同一个 fs-verity 描述符结构,区别只在 signature 字段里填什么、以及内核对它的信任等级。权限、分发范围、设备要求上的全部差异,都是从这一个字段推出来的。 Continue reading...
2026-10-13 软件 把 BadgerDB 移植到仓颉(四):怎样测才算数 从 Go 移植 BadgerDB 到仓颉(四) 四个方法学缺陷、Go 侧三个陷阱,与一套可核验的流程 Cangjie · 基准测试 · 方法论 这是系列最后一篇。第三篇讲了三个被推翻的结论 , 本篇追问:它们为什么会错,以及怎样才能不再错。 Continue reading...
2026-10-12 软件 把 BadgerDB 移植到仓颉(三):重跑基准,三个结论翻了 从 Go 移植 BadgerDB 到仓颉(三) 重跑一遍基准,三个结论都翻了 Cangjie · 基准测试 · badger-cj 这是系列第三篇。前两篇讲实现 与优化 , 本篇讲复核:把积累半年的基准数据重跑一遍之后,有三条结论被推翻, 而且方向都是反的。 Continue reading...