流 Maie 流浪天下 10-12 而今再无割草人|记我的大哥 早上九点过,大姐发来微信:大哥今天早上走了。我一时没反应过来。 大哥是大伯家的堂兄,兄弟里排行老大,我们都叫他 […] #随笔 #亲情 #故乡
设 Tokinx 设计笔记 09-30 Typecho-Workers 安装指南 在前面的几篇文章中,我梳理了把博客搬迁到 Cloudflare 边缘无服务器(Serverless / Edge)架构的完整过程:从最开始处理 10ms CPU 超时、平滑迁移历史文章与笔记,到构建平台层零 CPU 缓存,再到重构主题并实现评论动静分离。 在这段重构与打磨后,这个名为 Typecho-Workers 的项目已经在我的生产环境平稳运行。对于同样希望摆脱传统 VPS 维护繁琐、搭建一套轻量且低成本个人博客的朋友,这篇文章将详细介绍这套系统的全貌,并提供一份清晰完整的部署上手指南。 一、系统全貌与核心特性 Typecho-Workers 是基于经典博客系统 Typecho 的数据库设计,使用 TypeScript 在 Astro + Cloudflare Workers 架构下重写的一套现代博客系统。 它拥有静态博客的低维护成本与极速响应,同时完整保留了动态博客的在线写作后台、原生评论互动与插件扩展能力。 1. 现代边缘计算架构 运行环境:跑在 Cloudflare 全球 300+ 节点的 Workers 运行时中; 数据与存储:使用 Cloudflare 原生 #随笔
ymz316 我心向阳 09-17 需要注意身体了 随着年龄的增长,身体里的风险因素也不断增加;体检报告单问题数量是一年比一年多,内容篇幅也一年比一年长。 体检问题引发的担忧 今年,又参加了一年一度的体检。前几天,拿到报告单后,一个重要健康问题引起了我的注意:心电轴重度右偏,异常Q波。 大概是从 2018 年开始,我几乎每年的体检心电图都会有提示“窦性心律,心电轴左偏”,可这次来了个180度大反转,心电轴变成了重度右偏。这对于每年都怀疑自己心脏是不是有问题的我来说,有点紧张了。于是,我向 AI 发送了请求。 首先,就“心电轴重度右偏”这一现象,可能的原因有两个:生理性与病理性,其严重性也截然不同。 生理性是良性的,通常不严重; 但如果是病理性的,则需要重点关注,因为它涉及右心系统负荷过重或传导异常,常见于:右心室肥厚/负荷过重(慢性肺源性心脏病/肺心病、肺动脉高压、先天性心脏病、急性肺栓塞),传导阻滞以及其他方面(冠心病、心肌病)。这看起来是个危险的信号!!! 其次,就体检结果的大反转来看,可能有三种原因: 技术因素(最常见):可能是左右手电极接反,这是体检中最常见的误差;也可能是电极位置不准、皮肤接触不良。 生理波动 #随笔
ymz316 我心向阳 09-17 需要注意身体了 随着年龄的增长,身体里的风险因素也不断增加;体检报告单问题数量是一年比一年多,内容篇幅也一年比一年长。 体检问题引发的担忧 今年,又参加了一年一度的体检。前几天,拿到报告单后,一个重要健康问题引起了我的注意:心电轴重度右偏,异常Q波。 大概是从 2018 年开始,我几乎每年的体检心电图都会有提示“窦性心律,心电轴左偏”,可这次来了个180度大反转,心电轴变成了重度右偏。这对于每年都怀疑自己心脏是不是有问题的我来说,有点紧张了。于是,我向 AI 发送了请求。 首先,就“心电轴重度右偏”这一现象,可能的原因有两个:生理性与病理性,其严重性也截然不同。 生理性是良性的,通常不严重; 但如果是病理性的,则需要重点关注,因为它涉及右心系统负荷过重或传导异常,常见于:右心室肥厚/负荷过重(慢性肺源性心脏病/肺心病、肺动脉高压、先天性心脏病、急性肺栓塞),传导阻滞以及其他方面(冠心病、心肌病)。这看起来是个危险的信号!!! 其次,就体检结果的大反转来看,可能有三种原因: 技术因素(最常见):可能是左右手电极接反,这是体检中最常见的误差;也可能是电极位置不准、皮肤接触不良。 生理波动 #随笔
设 Tokinx 设计笔记 08-31 前台体验重塑 —— 从笔记动态到评论动静分离 底层的初始化、数据迁移以及多级缓存搞定后,博客的基础设施基本稳了。接下来,我把精力转回到了读者与作者端的前台体验——如何让随笔记录更轻快,以及如何让前台主题在拥有丰富交互的同时,保持极高的边缘缓存命中率。 为什么我需要“微动态/笔记”? 写正经长文往往需要构思提纲、组织段落、排版配图,写一篇得花上几个小时甚至几天。这种较重的心理负担,很容易让人一拖再拖。 在日常生活中,我经常会有一些零碎的想法、随手拍的照片、一段代码片段,或者只是几句随感。这些内容发长文显得单薄,发在第三方社交平台又容易淹没在算法信息流里。 我希望博客里有一块轻量记录的自留地: 发布足够轻便:随手写两句话、传几张图就能直接发; 支持多媒体:不仅能发多图,还要有自适应九宫格、灯箱预览,以及音视频内嵌播放; 话题聚合:支持正文直接写 #话题 进行归类; 权限灵活:支持发布仅自己可见的私密随感。 基于这些需求,我开始动手开发 typecho-plugin-notes 插件。 1. 坚持不改动原生表结构 在规划数据存储时,我坚持了一个原则:不修改 Typecho 的原生数据库 Schema。 这样能保证 #随笔
设 Tokinx 设计笔记 08-27 从多级缓存到 Workers Caching,资源开销骤降 98.7% 性能优化实践 历史数据全部导入完成后,博客终于像模像样地跑起来了。本以为接下来就能安稳地写写笔记,没想到第二天一早打开 Cloudflare 控制台,迎面而来的却是一条鲜红的配额超限报警。 在没有任何突发流量、仅仅是搜索引擎爬虫日常抓取和少量正常访问的情况下,D1 Database 的单日读操作行数直接飙到了 600 万 ~ 900 万行,直接击穿了 Cloudflare 每天 500 万行的免费额度。 Cloudflare D1 Usage: 6.8M / 5.0M rows read per day (Quota Exceeded Alert) 不仅数据库报警,Worker 的执行次数与 CPU 时间也一直在高位徘徊。 为什么读操作会暴涨? 我让 AI 分析近 12 小时日志排查原因。结果原因很简单,在未加缓存的纯 SSR(服务端渲染)模式下,每次请求到达 Worker,都会完整走一遍 Astro 的服务端渲染流程: 查 typecho_options 加载全站站点配置; 查 typecho_metas 加载分类和标签列表; 查 typecho_contents 加载文章正文和自 #随笔
设 Tokinx 设计笔记 08-25 从 WordPress 到 Typecho-Workers 的数据映射与导入 书接上回,解决完初始化的 10ms CPU 超时问题后,程序总算能顺利运行了。接下来最重要的任务,就是把旧博客里的历史数据完整搬过来。 我的旧数据来自 WordPress 导出的 WXR(XML)备份文件。正经的文章和页面数据其实不算多,但十多年里积累下来的上万条读者评论,每一条都是弥足珍贵的互动记录;再加上数年来随手记录的日常笔记,构成了整个博客最核心的数字资产。 数据的构成与难点 常规内容的迁移相对直接: 文章与页面:标题、正文、发布时间、分类与标签的映射关系很明确,直接转换成 typecho_contents 和 typecho_metas 即可; 评论数据:主要在于维护父子层级的 parent 引用,按时间先后顺序插入并关联对应的文章 cid。 比较麻烦的是笔记(Notes)。 早年在 WordPress 中,我为了记录零散的想法与日常随笔,专门通过自定义文章类型(Custom Post Type)扩展了一套微贴系统。这部分数据在导出文件里非常特殊: 字段分散:正文属于 post_type = 'note',但点赞数、话题、关联的多张图片附件 ID 全部分散在 #随笔
设 Tokinx 设计笔记 08-23 10ms 魔咒 —— PBKDF2 降档与 HMAC Pepper 安全加固 书接上回,选定 Typecho-CF 之后,我兴冲冲地把它打包部署到了 Cloudflare Workers 上,本以为马上就能用上,没想到出师不利,初始化这一步就被卡住了。 代码发布上去后,我打开绑定的域名进入 /install 页面,输入站点名称、管理员账号和密码,点击“开始安装”。浏览器转圈两三秒,随后弹出了一个红色错误页: Error 1102: Worker exceeded CPU time limit. 博客没能初始化成功,数据库里的初始表和管理员账号也只写了一半。 为什么会 CPU 超时? 我把当时的 Worker 运行日志和安装代码发给 AI 协助排查。AI 顺着调用栈逐行分析,很快指出了问题所在:在创建管理员账号时,密码哈希计算耗尽了 CPU 时间。 Cloudflare Workers 对请求有严格的算力限制: Free 计划:单个请求的纯 CPU 时间上限为 10ms。 Paid 计划:默认 50ms,最高可调整至 3000ms。 这里的 10ms 指的是 CPU 实际计算时间,等待数据库读写或网络 IO 的时间并不计入其中。 原项目为了遵循 #随笔
设 Tokinx 设计笔记 08-22 将 Typecho 跑在 Cloudflare Workers 一、为什么想折腾这个? 其实工作之后博客就很少更新了。很多时候脑子里冒出一个不错的想法,真打算坐下来写的时候,又总觉得内容太简单、不太值得分享,于是慢慢养成了只写“笔记”的习惯——记录一些零碎的想法和短篇随笔。 然而,一个更新频率并不高的博客,传统架构的维护成本却一点也没少: 服务器维护繁琐:要维护服务器、运行环境、程序更新,偶尔还得防范扫盘和挂马; 资源浪费严重:就像一台服务器二十四小时开着,却只为了一个偶尔才有人访问的页面,开销不少,性价比极低。 中途我也动过把博客彻底迁移到 Hugo、Hexo 这类静态博客(SSG)上的念头。静态托管在 GitHub Pages 或 CDN 上确实能免去服务器运维,但实际体验下来却发现并不顺手: 发布流程冗长:每次写篇随笔或改个错字,都得开本地编辑器编译、提交 Git 仓库、再等 CI/CD 部署,完全失去了随手记录的即时感; 评论与互动割裂:静态博客无法原生处理动态评论,只能依赖第三方挂件(如 Waline、Twikoo 等)或自建服务,评论管理和审核都极为割裂。 既想要静态博客的免运维、低成本与高并发,又想要动态博客的在线写作 #随笔
ymz316 我心向阳 08-09 阿里云工具使用之痛 最近在使用阿里的工具上,遇到了好多奇葩的问题。 一、钉钉 linux 版修复之路 好久以前,我在 debian 上安装了钉钉后,点击程序图标无反应,于是就弃用了,甚至都删除了手机版钉钉。 最近,因学习需要不得不在手机上安装了钉钉。今天,我再次将 linux 版钉钉安装到 debian 13.6 系统,发现还是同样的问题。钉钉的开发工程师们,难道这个问题就一直让它摆在这里,成为大家使用中的一道坎吗??? 具体是什么问题?有2个。 第一个就是安装后自动生成的桌面图标所有者竟然是root,那一把❎是无法打开的。只能删除,重新添加图标到桌面。 第二个问题就是点击无反应了。我使用千问办公(阿里客服推荐的)问了半天,只提示无法加载某些 .so 库文件,一顿操作之后问题依然,永远也抓不到正确的点。于是我只能用智能体+AI模型来解决,果然还是用 AI 模型思路清晰,给我写了个 py 文件,执行了一条命令就修复了,1 分钟搞定。 二、千问办公智能化程度也不高嘛 我在阿里工单上问了关于Qoder 使用方面的问题后,客服回电解答了半天,最后推荐我用千问办公来解决,但我发现,这个千问办公似乎真 #随笔 #工作
ymz316 我心向阳 08-09 阿里云工具使用之痛 最近在使用阿里的工具上,遇到了好多奇葩的问题。 一、钉钉 linux 版修复之路 好久以前,我在 debian 上安装了钉钉后,点击程序图标无反应,于是就弃用了,甚至都删除了手机版钉钉。 最近,因学习需要不得不在手机上安装了钉钉。今天,我再次将 linux 版钉钉安装到 debian 13.6 系统,发现还是同样的问题。钉钉的开发工程师们,难道这个问题就一直让它摆在这里,成为大家使用中的一道坎吗??? 具体是什么问题?有2个。 第一个就是安装后自动生成的桌面图标所有者竟然是root,那一把❎是无法打开的。只能删除,重新添加图标到桌面。 第二个问题就是点击无反应了。我使用千问办公(阿里客服推荐的)问了半天,只提示无法加载某些 .so 库文件,一顿操作之后问题依然,永远也抓不到正确的点。于是我只能用智能体+AI模型来解决,果然还是用 AI 模型思路清晰,给我写了个 py 文件,执行了一条命令就修复了,1 分钟搞定。 二、千问办公智能化程度也不高嘛 我在阿里工单上问了关于Qoder 使用方面的问题后,客服回电解答了半天,最后推荐我用千问办公来解决,但我发现,这个千问办公似乎真 #随笔 #工作
ymz316 我心向阳 07-11 用 AI 疯狂输出 因为只要你想,AI 都能帮你实现。 所以,我对自己的博客功能有了更进一步的要求。 继前一段时间我将百度网盘足迹地图插件完善之后,最近一顿疯狂操作,又将数个插件进行了升级,如今,已基本都趋于稳定,当然,tokens 也消费不少 涉及到的插件已全部上传 gitee 公开仓库,取走不谢。 一、输出 memos 动态插件:动态页面 先看看效果: 短代码查看具有 typecho 标签的笔记,每页显示2条 ymz316 2026-06-20 11:40 最近几天对 #typecho 的 #博客 进行了调整: 将 plain 主题做了修改和简化生成了 sleek 主题。 将主题内的 memos 动态用 AI 适配并生产出可用于任意主题的 #memos 插件 。 移除将主题内置的订阅,用 AI 生成出可用于任意主题的 FriendsRss 插件。 用 AI 生成出可用于任意主题的 Heatmap 热力图插件。 💬 0 ymz316 2026-05-13 14:55 激动的用 #ClaudeCode 给我 #typecho 框架的博客开发了一款文章热力图插件。 💬 #随笔 #建站
ymz316 我心向阳 07-11 用 AI 疯狂输出 因为只要你想,AI 都能帮你实现。 所以,我对自己的博客功能有了更进一步的要求。 继前一段时间我将百度网盘足迹地图插件完善之后,最近一顿疯狂操作,又将数个插件进行了升级,如今,已基本都趋于稳定,当然,tokens 也消费不少 涉及到的插件已全部上传 gitee 公开仓库,取走不谢。 一、输出 memos 动态插件:动态页面 先看看效果: 短代码查看具有 typecho 标签的笔记,每页显示2条 ymz316 2026-06-20 11:40 最近几天对 #typecho 的 #博客 进行了调整: 将 plain 主题做了修改和简化生成了 sleek 主题。 将主题内的 memos 动态用 AI 适配并生产出可用于任意主题的 #memos 插件 。 移除将主题内置的订阅,用 AI 生成出可用于任意主题的 FriendsRss 插件。 用 AI 生成出可用于任意主题的 Heatmap 热力图插件。 💬 0 ymz316 2026-05-13 14:55 激动的用 #ClaudeCode 给我 #typecho 框架的博客开发了一款文章热力图插件。 💬 #随笔 #建站
ymz316 我心向阳 07-05 何以娄底? 若你摊开湖南的地图,目光投向其几何中心,会找到一个名字——娄底。它虽年轻,却承载着亿万年地壳运动的山水遗存;它从乡镇逆袭,却锚定着湘中“材料谷”的未来图景。一个“何以”的追问,恰好是读懂这座城最好的钥匙。 年轻之城 过去的娄底,还是涟源县所管辖的一个乡镇级小弟,先后跟随涟源县归属于益阳专区和邵阳专区。 1958年,娄底镇发生了 2 件大事,其一就是湘黔铁路娄底站建成,更成为当时湘中地区停靠列车最多、客流量最大、辐射范围最广的火车站;其二是涟源钢铁厂建立,并在此诞生了湖南第一炉铁水、第一支棒材、第一卷板材,而娄底也乘势升腾、大步跨越,走上了逆袭蜕变之路。 60年代的火车站.webp 60年代的涟钢.webp 1977年邵阳专区一分为二,新设的涟源地区带着5县1市(冷水江市、涟源县、新化县、双峰县、邵东县:1983年改属邵阳市管辖、娄底镇)独立出来,而娄底镇也因交通发达、工业兴起,一跃而成为了机关驻地所在,不可不谓之为最牛乡镇。 1982年,涟源地区名正言顺地更名为娄底地区,从此娄底步入了正厅级的行政区域。 80年代的娄底老街街口自由市场 80年代的老市委 80年代的娄 #随笔
ymz316 我心向阳 07-05 何以娄底? 若你摊开湖南的地图,目光投向其几何中心,会找到一个名字——娄底。它虽年轻,却承载着亿万年地壳运动的山水遗存;它从乡镇逆袭,却锚定着湘中“材料谷”的未来图景。一个“何以”的追问,恰好是读懂这座城最好的钥匙。 年轻之城 过去的娄底,还是涟源县所管辖的一个乡镇级小弟,先后跟随涟源县归属于益阳专区和邵阳专区。 1958年,娄底镇发生了 2 件大事,其一就是湘黔铁路娄底站建成,更成为当时湘中地区停靠列车最多、客流量最大、辐射范围最广的火车站;其二是涟源钢铁厂建立,并在此诞生了湖南第一炉铁水、第一支棒材、第一卷板材,而娄底也乘势升腾、大步跨越,走上了逆袭蜕变之路。 60年代的火车站.webp 60年代的涟钢.webp 1977年邵阳专区一分为二,新设的涟源地区带着5县1市(冷水江市、涟源县、新化县、双峰县、邵东县:1983年改属邵阳市管辖、娄底镇)独立出来,而娄底镇也因交通发达、工业兴起,一跃而成为了机关驻地所在,不可不谓之为最牛乡镇。 1982年,涟源地区名正言顺地更名为娄底地区,从此娄底步入了正厅级的行政区域。 80年代的娄底老街街口自由市场 80年代的老市委 80年代的娄 #随笔
ymz316 我心向阳 06-10 春风吹向了百度网盘 Linux 版 使用 Linux 系统已经多年,也一路见证了其软件生态的不断丰富。如今,抛开游戏不谈,我个人认为,Linux 在日常使用体验上已经完美碾压 Windows。 百度网盘,这个我多年来不得不用的工具,也陪伴了我许久。在 Linux 系统上,我深度体验过它的 Wine 版和原生版,也见证了它从初期 bug 频出到逐步稳定的过程。 然而,Linux 版的功能始终比 Windows 版落后一大截。尤其是随着 Linux 内核不断升级,App 中无法播放视频的问题一直困扰着我,也深度影响了我的使用体验。 今天,我像往常一样习惯性地执行了 update && upgrade,随后打开百度网盘。也不知怎么的,鬼使神差地想去看看能不能升级,于是点进了下载页面。 进入下载页面后,没有任何提示——看来还是没有更新。我已经习惯了百度对 Linux 用户的“视而不见”。 但我不甘心,又点了一下“版本更新”。咦?最上方竟然出现了“百度网盘 Linux 电脑客户端 V8.5.2,更新时间:2026年06月08日”。我顿时一阵激动。 赶紧返回下载页面,点击下载 Linux 版链接,果然,拿到了最新版本。 #随笔
ymz316 我心向阳 06-10 春风吹向了百度网盘 Linux 版 使用 Linux 系统已经多年,也一路见证了其软件生态的不断丰富。如今,抛开游戏不谈,我个人认为,Linux 在日常使用体验上已经完美碾压 Windows。 百度网盘,这个我多年来不得不用的工具,也陪伴了我许久。在 Linux 系统上,我深度体验过它的 Wine 版和原生版,也见证了它从初期 bug 频出到逐步稳定的过程。 然而,Linux 版的功能始终比 Windows 版落后一大截。尤其是随着 Linux 内核不断升级,App 中无法播放视频的问题一直困扰着我,也深度影响了我的使用体验。 今天,我像往常一样习惯性地执行了 update && upgrade,随后打开百度网盘。也不知怎么的,鬼使神差地想去看看能不能升级,于是点进了下载页面。 进入下载页面后,没有任何提示——看来还是没有更新。我已经习惯了百度对 Linux 用户的“视而不见”。 但我不甘心,又点了一下“版本更新”。咦?最上方竟然出现了“百度网盘 Linux 电脑客户端 V8.5.2,更新时间:2026年06月08日”。我顿时一阵激动。 赶紧返回下载页面,点击下载 Linux 版链接,果然,拿到了最新版本。 #随笔
ymz316 我心向阳 05-07 五一武汉行 五一带上小女去武汉走了一遭。因为有小舅子等几个亲戚就住在武汉,所以此次并不算纯游,可以说是相聚家常及随缘游览吧。 一、东湖 5月1日,早上乘高铁约 8 点到达武汉,因东湖就在武汉站附近,我们选择先在东湖游览一番。 百度到东湖“斗战圣佛”,提示我们坐 4 号地铁然后走路。按照推荐的方式,我们坐了 1 站地铁,然后步行前往东湖方向。途中,我往火车站方向一看,却发现火车站近在咫尺,这样看来,坐地铁并没有省多少路,反而徒步既能节省时间还能节省金钱。 3另外,武汉这座大城市交通优惠政策竟然没有惠及退役军人,算是一点小小的遗憾吧。 从手机地图上看,没有感觉到东湖的大。结果,在湖边我们明明步行了好长一段路程,但在地图上却并没有感觉移动多远。于是,我们调整了游览方式,选择了共享单车。不得不说,在武汉共享单车是个好工具,首先武汉是真大,光靠两只脚东湖走一天估计也只能走个角吧;其次这里地势平缓,骑车较为轻松,锻炼观光两不误;第三,在此骑车者众多,已然是一道美丽的风景线,加入其中岂不更好?因为只有一个手机,我就用哈罗单车和美团单车 2 个 APP 来扫码解锁,哈罗 1 天 6.78 元随便骑;美团 #随笔
ymz316 我心向阳 05-07 五一武汉行 五一带上小女去武汉走了一遭。因为有小舅子等几个亲戚就住在武汉,所以此次并不算纯游,可以说是相聚家常及随缘游览吧。 一、东湖 5月1日,早上乘高铁约 8 点到达武汉,因东湖就在武汉站附近,我们选择先在东湖游览一番。 百度到东湖“斗战圣佛”,提示我们坐 4 号地铁然后走路。按照推荐的方式,我们坐了 1 站地铁,然后步行前往东湖方向。途中,我往火车站方向一看,却发现火车站近在咫尺,这样看来,坐地铁并没有省多少路,反而徒步既能节省时间还能节省金钱。 3另外,武汉这座大城市交通优惠政策竟然没有惠及退役军人,算是一点小小的遗憾吧。 从手机地图上看,没有感觉到东湖的大。结果,在湖边我们明明步行了好长一段路程,但在地图上却并没有感觉移动多远。于是,我们调整了游览方式,选择了共享单车。不得不说,在武汉共享单车是个好工具,首先武汉是真大,光靠两只脚东湖走一天估计也只能走个角吧;其次这里地势平缓,骑车较为轻松,锻炼观光两不误;第三,在此骑车者众多,已然是一道美丽的风景线,加入其中岂不更好?因为只有一个手机,我就用哈罗单车和美团单车 2 个 APP 来扫码解锁,哈罗 1 天 6.78 元随便骑;美团 #随笔