Hi there 👋

欢迎来到我的博客,这里记录了我的技术探索与生活思考。

GitHub 上的 License:从右上角那行小字说起

打开任何一个 GitHub 仓库,大约在右侧栏「About」下方,都会看到一行小字:License: MIT、License: Apache-2.0、License: GPL-3.0……有的仓库干脆什么都不显示。这行小字看起来不起眼,却决定了别人能不能用你的代码、能不能改、能不能闭源卖钱,甚至决定了你自己将来能不能反过来告抄袭。 ...

2026年9月10日 · 13 分钟 · 6351 字

编码与转换手段大全:URL、Base64、Hex、哈希一网打尽

浏览器地址栏里的 %E4%B8%AD、JWT 里那段 eyJhbGciOiJIUzI1NiJ9...、邮件里偶尔见到的 =E4=B8=AD、网页源码里的 &……这些看似乱码的字符串,其实都出自同一类东西:数据编码与转换。 上一篇《字符编码详解》讲的是"字符怎么存"(字符集与 UTF-8),这篇讲的是另一层——数据怎么传、怎么展示:URL 里不能裸奔的字符、二进制怎么变成可见文本、数据完整性怎么校验。两者名字都带"编码",但解决的问题完全不同,别混在一起。 ...

2026年9月10日 · 9 分钟 · 4136 字

字符编码详解:从乱码到 Unicode 与 UTF-8

你有没有在终端或旧系统里见过这样的"天书":中文、汉字,或者更魔性的 锟斤拷?这不是加密,也不是乱敲,而是字符编码错位的产物——同一段字节,用不同的编码规则去解读,就得出完全不同的文字。 字符编码是计算机最基础也最容易被忽略的知识之一。这篇文章从 ASCII 讲起,一路走到 Unicode 与 UTF-8,把"字符集"和"编码"这两个概念彻底理清楚,最后用代码验证各个编程语言里字符串的真实存储方式。内容参考了 hello-algo 第 3.4 节《字符编码》。 ...

2026年9月10日 · 9 分钟 · 4145 字

AGENTS.md:给 AI 编码代理的"README"

你可能已经注意到了,本仓库的根目录里躺着一个 CLAUDE.md——就是 Claude Code(Anthropic 的 AI 编码代理)在这个项目里工作时读的"操作手册"。它告诉代理:这是一个 Hugo 博客、文章命名有什么规矩、frontmatter 怎么写、有哪些自定义布局。 ...

2026年9月9日 · 9 分钟 · 4100 字

Git 的四个特殊文件:.gitignore、.gitattributes、.gitkeep、.gitmodules

随便打开一个像样的项目仓库,根目录里几乎都有几个以点开头的文件:.gitignore、.gitattributes、.gitmodules……它们不起眼,却各自管着一件大事。很多人用 Git 好几年,也就对 .gitignore 略知一二,剩下几个要么没见过,要么见过也没深究过。 ...

2026年9月9日 · 9 分钟 · 4322 字

SQL 中的 CTE(公用表表达式)详解:从基础语法到递归实战

写复杂查询的时候,你有没有经历过这些瞬间:一个查询里套了三层子查询,括号一层套一层,改一个条件要数半天括号;同一个中间结果在一条 SQL 里要用两次,只能复制粘贴两遍;想表达"先取 A,再基于 A 算 B,最后基于 B 出结果",却不得不把它们全部硬挤进一个 SELECT 里。 ...

2026年9月8日 · 7 分钟 · 3497 字

Fork:一款快速友好的 Mac / Windows Git 客户端

Git 本身是个强大的工具,但"强大"的另一面常常是"门槛"。命令行里 git rebase -i、git reflog、冲突解决这些操作,对新手不友好,对老手也未必高效。于是诞生了一大批 Git GUI 客户端——但大多要么臃肿缓慢,要么功能残缺,真正"又快又好用"的并不多。 ...

2026年9月7日 · 5 分钟 · 2210 字

Typora:所见即所得的 Markdown 编辑器与正版购买指南

写 Markdown 的人,多多少少都经历过这种割裂感:左边是满屏的 #、**、> 符号,右边是渲染后的预览,两个窗口来回对照,写久了总有种"我到底是在写代码,还是在写文档"的错觉。分栏预览是绝大多数 Markdown 编辑器的标配,但真正把它做舒服、做到"无感"的,屈指可数。 ...

2026年9月7日 · 5 分钟 · 2347 字

开源后端选型指南:PocketBase vs Supabase vs Frappe 深度对比与实践选型

在如今全栈开发、独立开发(Indie Hacker)和敏捷业务交付的浪潮下,很少有人愿意再从零手写一套重复的基础设施:用户认证(Auth)、权限控制(RBAC/RLS)、文件上传存储、CRUD REST/GraphQL 接口、管理后台(Admin UI)以及实时订阅(Realtime)。 ...

2026年9月4日 · 9 分钟 · 4168 字

git filter-repo:彻底清理 Git 仓库历史(大文件 / 敏感信息)

仓库用了几年之后,.git 目录常常比源码本身还大——曾经提交过的大文件、误传的密钥、不小心提交的 node_modules,都永久留在了历史里。它们不会因为你后来删掉文件而消失,只要别人 git clone 一下,这些包袱就会被整个拖下来。本文介绍 git filter-repo,Git 官方推荐的历史重写工具,用来把这些垃圾彻底清出仓库历史。 ...

2026年9月1日 · 6 分钟 · 2784 字