形式与基础设施

站点说明

关于这个站点为何这样呈现,以及它在浏览器、构建系统和未来动态服务中如何成立。

视觉宪法

设计以暖象牙纸色、墨色和单一蓝色构成。空白负责组织,线条负责分隔,字体负责层级。没有卡片墙、渐变、发光效果、无意义网格或借古典物件制造的怀旧。

古典感来自比例、克制、可读性与时间感,而不是物件拟态。首页只保留一个正式抽象对象,其余图形只有在拥有真实数据和清楚含义时才出现。

首页标题“什么仍然属于人?”与抽象图形共同构成站点的设计命题。它不计入问题索引,也不表示作者已经发表了相应论证。

Pareto 图形

首页图形使用以下概念模型:

C(r) = {(x,y) | x ≥ 0, y ≥ 0, (x/a)^p + (y/b)^p ≤ r^p}

U(x,y) = x^α · y^(1-α)

内层边界表示能力扩张前的可行域,外层边界表示扩张后的可行域,等价值曲线表示不同目标权重,蓝色切点表示仍需由人承担的价值选择。它表达的是“能力扩大后,值得做什么仍需判断”,不是经验数据或预测模型。

确定性参数

概念参数固定为 a = 1.00、b = 0.76、p = 1.70、内层 r = 0.72、外层 r = 1.00 与 α = 0.58。它们只控制概念几何的比例,不来自测量。

当前 SVG 使用 720 × 520 的固定 viewBox。外层主曲线、内层曲线与两条等价值曲线均以写入源码的 Bézier 路径呈现,蓝色点固定为 (397, 133),半径为 5。页面加载时没有随机数、采样或动画,因此相同版本在每次构建中得到相同图形。SVG 是上述概念模型的固定视觉转写,不声称蓝点是由真实观测求得的最优解。

字体与许可

拉丁衬线使用 Source Serif 4,无衬线使用 IBM Plex Sans,等宽文字使用 IBM Plex Mono。中文分别回退到 Noto Serif SC 与 Noto Sans SC。字体文件随站点构建,不依赖页面加载时的第三方字体请求。各字体沿用其上游开源许可。

技术路线

站点以 Astro 生成静态 HTML,正文以 Markdown 为主,内容字段由 Astro Content Collections 与 Zod 校验。需要交互式文章时才引入 MDX。搜索使用构建时生成的独立 JSON 索引,由搜索页在浏览器中读取和匹配;查询不发送给第三方搜索服务。

发布链路使用 Cloudflare Workers Static Assets。私有 GitHub 仓库的 main 分支通过 Workers Builds 执行完整校验并部署;正式地址为 https://ethanhbzhou.com,www 以 301 跳转到 apex。普通页面、目录、元数据、修订记录、RSS 与站内链接不需要数据库,也不依赖客户端 JavaScript 才能阅读。

应用安装包由 Cloudflare R2 分发,地址为 dl.ethanhbzhou.com。每个构建以版本号定址,与它的 SHA-256 校验和一同发布,且发布后不再改写,因此一个下载地址始终指向同一份字节。一个很小的 Cloudflare Worker 只负责 /dl/:记录一次请求,然后跳转到文件。其余所有路径都直接由静态资源提供、根本不会进入它,因此即使 Worker 或它的数据库不可用,站点仍然完整可读。

如果以后开放私密反馈、留言或审核评论,提交接口会复用同一个 Worker;若仅靠审核不足以挡住垃圾提交,再引入 Turnstile 过滤。

数据与隐私

站点有且只有一个数据库。它记录对下载接口的请求:日期、产品与版本、网络报告的国家,以及请求是否自报为爬虫。不存储 IP 地址、Cookie,也不存储任何能把两次请求关联到同一个人的标识。它计的是请求数——不是人数,也不是完成的下载数,因为下载可以开始后中断。任何取自它的数字,只能按它本来的含义描述。

阅读页面不会向这个数据库写入任何东西:记录下载的 Worker 在页面请求上根本不会被调用。但这不等于一次访问在任何地方都不留痕迹。Cloudflare 承载本站,会保留该域名的聚合流量指标,以及 Worker 调用的短期日志。它们属于托管平台而不属于本站,只要还托管在上面就无法关闭。

这个累计数显示在对应的产品页上,标注为「自某日起的下载请求数」,且只在大于零时出现。它在页面加载之后才取回,不是阅读的前提:Worker 不可用时,那一行就不出现而已。之所以公开,是因为一个产品有人试用,是关于这个产品的证据,不是关于你的证据——这也正是它从不被写成「多少人」的原因。它的限度在于那道爬虫判定:请求按 User-Agent 归类,因此只有自报身份的自动流量会被挡在公开数字之外。剩下的里面也明显有一部分是自动的——有几次被计入的请求在同一秒内取走了站上每一个产品,而且每次来自不同国家——它们和其余请求一起被公开了。这个数字是「有多少人试用」的上界,不是对它的测量。

站点没有公开评论。自 2026 年 8 月起,本站确实启用了访问统计:Cloudflare Web Analytics,这是任何页面唯一会联系的外部服务。它需要向两个 Cloudflare 域名各发一个请求——一个取回 beacon,另一个接收它上报的内容——这也是本站仅有的两个会离开本站的请求。它上报「某个页面被看过一次」,附带路径、来源站点、国家、浏览器与设备类型,以及页面变得可用所花的时间。它不设置 Cookie,不在你的浏览器里写任何东西,也不构造任何标识——因此两次页面浏览无法被归到同一个人身上,这正是它能被接受、而多数替代方案不能的原因。beacon 写在页面源码里,不是由网络注入的,因此它和这一页的其余部分一样可以被直接读到。没有任何东西等待它:把它拦掉,你看到的一切都不会改变。

未来反馈表单会默认私密,允许匿名,联系方式可选。公开评论必须逐篇开启并经过审核,评论数量不表示认可,也不会影响核心文章的加载。