From Experience to Understanding

Agent 交互约定与使用方法备忘录

2026 下半年的时间点,软件开发等非很多具身任务都可以用各种 Agent 来辅助完成。不同 Agent 产品/软件的用户交互约定不尽相同,比如 Skill 存在哪里,对话历史怎么查看。这里以常见 A…

2026-10-10

从 homebrew 到 vintage - VCF 看展记录

Vintage 原意是特定年份和产区生产出的优质葡萄酒,被引申用来指代特定历史年代的经典作品。在北美的 Vintage Computer Festival 中,可以看到展会方修复、保存、呈现的 ~~&…

2026-08-16

Git SCM "done right"

对于已经上手 Git,有比较多使用经验的用户来说,想要进一步搞清楚其中细微的语义和细节并不容易。让我们以经典易混淆的 git revert、git restore 和 git reset 命令为例,对…

2026-07-05

虚拟化的三条线索

当你思考 "虚拟化" 这个话题,你会被乱飞过来的层出不穷的技术名词击晕:docker、podman、VirtualBox、VMWare、KVM、...。而从第一性原理出发,进程是虚…

2026-05-26

Linux 中的权限系统

*本文仅供娱乐,请勿参考 作为一个 “万物皆文件” 的系统,Linux 中的身份和权限很大程度上都是由文件定义,为控制文件访问而服务的。 身份的定义 用户和组 Linux 中身份的定义分为两个层级:用…

2026-04-17

Regex 实战与 VSCode 语法高亮指南

本文仅作笔记使用;如何在实操中用 Textmate Grammar 自定义 VSCode 的高亮规则,参考 VSCode 的官方指南 更清楚。 VSCode 语法高亮 VSCode 能够为源文件对代码…

2026-01-25

为什么要引入转义机制

数据和控制在同一个信道内传输 引子 很久之前在一个遥远的地方有一家字符串电报公司,通过一根电缆把用户提供的任意字符串从 A 地电报站的逐字符传输到 B 地电报站。两地电报站的内部联络和控制协调也使用那…

2025-12-23

A picture is worth a thousand words

AI 作图领域,存在如下两种不同的思路: 以 Stable Diffusion 为首的扩散模型,使用一系列的 denoising step 将一张随机噪声图片逐步在 CLIP 引导下转换为成品图。…

2025-11-23

协议、服务器和用户视角下的电子邮件系统

电子邮件系统的一个模型 +------+ +---+ +---+ |Sender| |MTA|->|MDA|…

2025-10-22

diff 工具和 diff 算法

diff 和 patch 工具的使用 双文件 diff 和 patch 很多 shell 或者版本控制系统都内置 diff 工具,用来逐行对比两个或多个文件。以最常用的两个文件 diff 为示例。【例…

2025-09-24

使用 FUSE 创建一个用户空间文件系统

这是我再次阅读、重新构建并调试修改一个之前做过的项目时所做的笔记。因此,本文主要包括原理介绍、重新编译和运行项目的步骤、代码解析、以及这一次所修改的内容。 项目本身: 利用 FUSE 接口实现自定…

2025-08-27

从 glibc 版本错配了解 ELF 格式和 ABI

近日尝试在 x86 平台上通过 arm-none-linux-gnueabihf 交叉编译工具链构建一个 C 语言写成的 Hello World 程序,得到可执行文件 "my_first_h…

2025-07-28

分布式系统中的问题和设计方法

本文从非分布式系统专业研究人员的视角,讲述分布式系统研究中一些基础问题和设计方法。写作大纲和具体协议或证明 完全启发自 / 参考了 Dahlia Malkhi 的 CMPSC 293B Foundat…

2025-06-25

随机化算法:从跳转表到分层小世界网络

本文可以视为“数据结构与算法”系列的延伸,在之前发布的相关博文基础上,介绍新的数据结构。“全序字典”问题和向量的近似 K 近邻问题可以被同一个简洁有力的思路解决。 跳转表 我们希望用数据结构实现下面的…

2025-05-18

回顾 C++ 编程基础

这篇笔记适合系统性学习过 C++,希望增加编程熟练度(指减少对 Copilot、搜索引擎、文档的依赖)、复习基础概念的读者阅读。不过,本文也会循序渐进地讲解编程中的难点。 可以选取收录但没有收录的话题…

2025-04-27

paper: 贝叶斯优化入门

这是以 “paper:” 作为标题前缀的论文速读系列。最初的动机方法是参考多份资料学习并写出一份贝叶斯优化入门笔记,结果发现了这篇 paper,尤其适合阅读来入门,于是本学习笔记就以翻译和注解这篇论文…

2025-03-25

字符编码、控制字符和转义序列

茴香豆的“茴”字有几种写法,你知道么?读完这篇笔记你就知道了。本文的写作尽量做到面向所有读者,不论技术背景。 本文的三个小节按照从通用原理到特殊应用的方式排列。 计算机是如何储存文字的 这是一个基础的…

2025-02-21

Shell Script 写作方法与 Linux 命令备忘录

这是一个个人笔记的收录处,乐观地看,我会不断更新它来收录新内容。 本文先从入门使用的角度介绍 Shell script 的常见骨架(控制语法)和填充(Linux 命令)。然后,我们阐述 Shell S…

2025-01-08

编程语言二三事

本文的写作动机:作为一般程序员而非专门的编程语言研究者,收集对于 PL 的一些基础概念,作此草稿。本文较为琐碎,章节标题并列不代表这两个话题一定是并列的关系。 作用域、名称绑定和闭包 自由变量 (Fr…

2024-12-09

包管理工具的使用技巧

从编程语言特定的 pip, conda,到操作系统级的 apt, pacman,我们在构建工程时离不开包管理工具为我们处理依赖。本文旨在总结这些工具的使用技巧。 如果你也经常用包管理工具,可能能从本文…

2024-11-17

使用 Electron 开发"聊天记录管理器"桌面应用

代码仓库见 github.com/wangziao9/directory-of-dialogues,不定期维护。 动机:聊天会话的笔记管理 线性倒序列表的普遍性 多数 AI 聊天助手,不论是网页还是桌…

2024-10-18

点查找、区间树和线段树

计算几何中的正交范围查询(Orthogonal Range Search),旨在快速响应与坐标轴对齐的“长方形/立方体”范围的对象查找。 对象为点的查找 思路:范围树 一维查找 有序向量可以解决这个问…

2024-10-12

采样技巧和 ReSTIR 渲染算法

本文是 ReSTIR DI 算法的一些前置知识和论文阅读笔记 关于采样技巧 蒙特卡洛积分和重要性采样 蒙特卡洛积分是通过采样来估算积分的方法: $$ \int_x f(x)dx = \frac{1}{…

2024-09-16

alg: 图论相关算法

重申一下,alg 系列博文(本文在内)中的伪代码部分复制或改动自清华大学数据结构课程(邓俊辉课堂的)讲义,它可以从这个链接获取。 关键词: 最小支撑树 Minimum Spanning Tree:Pr…

2024-09-05

alg: 单调队列和滑动窗口算法

单调队列 给定一个长度为 n 的数组,需要输出每连续 k 个数(A[i, i+k-1])中的最大值,可以在 O(n) 时间内做完吗? 一个思路就是动态地维护一个队列,在任何时刻 i 都满足 队列中…

2024-09-03

alg: 字符串匹配算法

这是以 alg 作为标题前缀的数据结构与算法系列。 本系列的更新策略:直接更新内容,不标出更新的年月日。 本系列的写作参考了诸多来源,一个重要来源是清华大学数据结构课程(邓俊辉课堂的)讲义和《数据结构…

2024-09-02

强化学习中的若干概念

这是学习我阅读若干在线 RL 教程所作的笔记,比较杂乱无章,不适合作为你的第一个 RL 教程阅读,如果想要找一个入门的 RL 教程推荐从头到尾阅读 OpenAI 的 Spinning Up 再贴一个叶…

2024-08-25

paper: 不借助平行语料可以进行机器翻译吗?

这是以 "paper:" 作为标题前缀的论文速读系列。 我如何写作本系列:在接触到令人尤其感兴趣的论文后,总结论文的部分内容,探讨论文之外的相关思想,不作为论文的概括,亦不保证信息…

2024-08-02

关于部署一个Mastodon站点

我是如何写作本文的:在应用部署平台和 VPS 上各自建立了一个测试用的 Mastodon 站点后,作技术笔记。自评可靠程度:可靠性中等,全面性中等。 本文适合谁看/怎么看:了解 Mastodon 的设…

2024-07-28

机器怎样学习:使用概率统计的视角

视角的转换:预测取值还是预测分布 泛泛而论,机器学习就是给定一个输入 x,预测一个输出值 y,或者说,逼近目标函数 y = f(x)。回归模型接受输入 x,线性地预测一个输出 y。图像分类器将每个输入…

2024-06-21

LLM + RLHF = Chat Agent

Large-Scale Language Model + Reinforcement learning from human feedback = Helpful Chat Agent 回顾 Open…

2024-06-16

棋盘游戏智能体:从蒙特卡洛树搜索到AlphaGo

棋盘游戏 vs 街机游戏 智能体行动的环境,很多都可以归入如下两类: 一类是两方博弈的棋盘游戏,不包含随机性,胜负可以由棋盘上的状态一眼看出,比如围棋、象棋; 另一类是智能体适应/对抗环境的“…

2024-06-11

从一维回归任务说起

任务的定义和评价 给定一个输入空间和输出空间,我们想要通过输入空间中的变量预测输出空间中的变量,这就是ML和统计学中的回归任务。让我们考察一个简单的例子,输入空间、输出空间均连续一维的情况,即(单变量…

2024-05-12

初识固件接口和磁盘分区:计算机是如何启动的?

前些时间为了给笔记本上的Arch Linux系统增加存储空间,折腾了一下磁盘分区,借此了解了磁盘分区、固件接口等等与计算机启动过程相关的底层结构,记录如下。 固件与固件接口 (Firmware Int…

2024-04-15

计算机中图像的捕捉、存储与显示

计算机处理的图像,有的是抽象的图形,有的则是力求刻画或模拟现实世界的的照片。这里讨论后一种图像。 度量光线,度量视觉 可见光作为一种电磁辐射,可以套用很多物理量来度量,这些物理量及单位如下: 辐射…

2024-03-15

浅谈 Wiki 系统、Wiki 站点和 Wikipedia

一般情况下,维基百科是一个相对高效、可靠的信息来源——作为一个任何人都可以编辑的系统,是什么保证了它的信息不被严重污染?除了维基百科之外,也有很多其它的维基存在,它们的背后是怎样的技术和社群? Wik…

2024-03-06

关于非对称密码学、CA 和 TLS

最近一次更新:2026/4/7 非对称密码学 非对称密码学应用两个密钥、公钥 Pub 和私钥 Pri 。对数据应用公钥或私钥的过程是单向的,即计算上不可能通过 Pub(x) 或 Pri(x) 来反解 …

2024-01-05

关于部署一个网站

摘要:一些关于部署网站的技术知识的概述。 域名 域名对一个网站的作用,无需多言。澄清一点,云服务器提供商和域名提供商是分离的。虽然云服务器经常向用户兜售域名,但你使用的域名不必来自云服务器提供商。反之…

2024-01-04

Dual Boot Arch Linux 其二

书接上回,成功安装完 Arch Linux 之后,有很多配置问题有待解决:系统不识别笔记本自带的键盘(这个造成了很大的麻烦,外出不方便携带机械键盘于是不能使用笔记本上的 Arch 系统);尚未配置 i…

2023-12-26

Arch Linux,启动!

尝试配置一个 Arch Linux + KDE 桌面环境的组合。 VirtualBox 篇 先使用 VirtualBox 熟悉一下流程,这样不用担心搞坏 Host OS。安装过程的话,按照 Arch …

2023-12-17

学习在本地部署 WordPress

是时候学习如何配置、运行、维护个人博客了。我选择迈出的第一步,是学习在本地部署WordPress镜像,构建一个供我个人运行调试的服务器。下面总结一下技术要点。 要本地部署一个个人博客服务器,需要配置哪…

2023-11-05

再谈神经网络的惊人表现:两步跳跃

我在2022年2月曾写博客谈论神经网络的惊人表现,七个月过去了,在泛读机器学习概论课程参考书(Tom Mitchell著),阅读更多文献,产生更多思考后,今天我再次探讨神经网络。本文主要探讨训练神经网…

2022-09-28

[仅作存档] 谈谈神经网络的惊人表现

2016年前后,在机器翻译的任务中,诸多指标(人类评价、BLEU分数等)表明神经网络翻译(NMT)效果已经与统计翻译(SMT)不相上下,很多场景下更好。谷歌更是将自己的翻译系统由统计翻译系统替换成基于…

2022-02-16