2026-10-11 软件 把 BadgerDB 移植到仓颉(二):十次优化与一次误判 从 Go 移植 BadgerDB 到仓颉(二) 十次优化,和一次「我以为是编译器 bug」的乌龙 Cangjie · 性能优化 · badger-cj 这是系列第二篇。第一篇讲无锁跳表的实现 , 本篇讲怎么把它调快,以及一个把我引向错误方向的排查。 Continue reading...
2026-10-10 软件 把 BadgerDB 移植到仓颉(一):没有裸指针怎么做无锁跳表 从 Go 移植 BadgerDB 到仓颉(一) 仓颉没有裸指针,于是我把节点指针换成了数组下标 Cangjie · LSM-Tree · badger-cj · 移植 这是系列第一篇,讲怎么把它写出来:语言差异怎么绕、以及怎么用。 后续三篇分别讲优化与误判、基准复核、以及怎样测才算数。 Continue reading...
2026-09-22 鸿蒙PC 【鸿蒙PC】二进制签名实战:三类签名、沙箱权限矩阵,以及一张调试证书的坑 鸿蒙 PC 上二进制必须合法签名才能加载运行。本文把官方给出的三类签名规则、应用拉起二进制的沙箱权限矩阵整理成表,再补上我们在 MateBook Pro(OpenHarmony-7.0.0.105)上实测出的五种组合结果——包括一张 DevEco 自动签名调试证书被内核 fs-verity 拒掉的完整证据链,以及换成自申请调试证书后立刻能跑的对照实验。 Continue reading...
2026-09-09 软件 仓颉服务 - 忆时塔 OOM 追凶记 一次横跨六个仓颉自研库的排查 从一条空 message 的异常,到 662 个 CLOSE_WAIT —— 长连接泄漏如何伪装成存储 OOM 2026-08-19 → 2026-09-09 · Cangjie · badger-cj · mcp-cj · json-rpc 一条空消息 事情的开始,是一条几乎不包含任何信息的报错。 我在本地跑着一个常驻的 MCP 服务——一个基于时序数据库、用于会话记录存储的记忆系统(下面就叫它「线上这个服务」)。它会在后台定期执行维护任务。 Continue reading...
2026-09-06 思考 戴森球与光伏文明:一个被忽略的最优解 引言:悖论的另一面 在关于费米悖论的无数讨论中,有一个流传甚广的说辞:“能造戴森球的文明不需要它,需要它的文明造不出来。” 这句话听起来深刻,却长期缺乏令人信服的底层逻辑。我们习惯了将“高级能源”与“核聚变”“反物质”绑定,却极少停下来思考一个问题—— Continue reading...
2026-06-30 软件 鸿蒙PC上使用box64运行x86_64鸿蒙SDK编译HAP 本文记录在鸿蒙PC融合开发引擎的openEuler aarch64容器中,通过box64模拟x86_64兼容层,运行鸿蒙命令行工具编译HAP的完整过程。 Continue reading...
2026-04-03 编程 仓颉语言 Neovim 开发环境配置指南 本文档介绍如何在 openEuler (aarch64) 系统上配置 Neovim (AstroNvim) 开发环境,用于仓颉语言开发。 目录 系统要求 安装仓颉 SDK 安装 Cangjie STDX 环境变量配置 Neovim 配置 常见问题 系统要求 操作系统:openEuler 2403 SP1 (aarch64) GCC 版本:12.3.1 或更高 Neovim 版本:0.9.0 或更高 安装仓颉 SDK 从官方渠道下载仓颉 SDK (aarch64 版本) 解压到 ~/.config/cjvs/store/ 目录 目录结构示例: Continue reading...
2026-04-03 软件 鸿蒙PC融合开发引擎中编译安装Neovim与AstroNvim配置指南 本文记录在鸿蒙PC融合开发引擎的容器环境中,因glibc版本限制从源码编译Neovim和tree-sitter的完整过程,并配置AstroNvim作为开发环境。 Continue reading...
2026-04-03 软件 鸿蒙PC融合开发引擎架构解析:虚拟机与容器双模式 本文深入解析鸿蒙PC融合开发引擎的技术架构,揭示其如何通过StratoVirt虚拟化和OzoneC容器技术实现Linux应用兼容。 背景 鸿蒙PC(HarmonyOS PC)采用了独特的架构设计来实现Linux应用兼容。作为用户,我在使用过程中发现系统提供了一个"融合开发引擎"功能,可以在其中运行openEuler环境。本文将解析这个融合开发引擎的技术架构。 Continue reading...
2026-03-19 思考 MCP-Term:一个未出生即夭折的想法 ⚠️ 已弃坑 此项目在讨论阶段即放弃,无任何代码实现。 放弃原因:市场风向转变,目标场景已被钉钉、Obsidian CLI, anything CLI 等原生工具覆盖。 记录此文仅为保存思考过程。 Continue reading...