念头。遇见不同想法 NIANTOU.NET

在别人的文字里,遇见自己的念头。

独立书写 · 自由阅读

流动

按发表时间排列
42 篇

一次 GitHub Actions 超时,追到 IPFS 基础设施的动荡

前言 
 今天更新《 博客时光机 2.0 前端篇:把时间装进一台 Macintosh 》时,突然遇到了 GitHub Actions 执行失败。 
 简单看了下报错,看着是 IPFS 部分执行失败了。 
 以为是偶尔遇到的网络问题,重试几次还是不行。

博客时光机 2.0 前端篇:把时间装进一台 Macintosh

上一篇《 博客时光机 2.0 后端篇:构建可视索引 》讲了后端的实现,如何把完整的 CID 构建历史整理成一条真正有意义的「可视时间线」。 
 后端提前生成好了可视索引,前端只需要按索引展示就好了,但如何实现前端的效果也是折腾了一番。

Twikoo 评论为什么这么慢:藏在 POST_SUBMIT 里的 5 秒等待窗口


 2026/09/29 更新 
 文中排查的问题已经修复并合入 Twikoo。 
 我升级后重新测试,评论请求耗时从原来的 5-6s 降到了 1s 以内 。 
 有同样问题的,可以将服务端升级到 2.0.12 或更高版本 。如果使用 Netlify 老部署,还需要按官方更新文档完成一次 Modern Functions 入口迁移。 
 本文保留完整的排查过程。 


博客时光机 2.0 后端篇:构建可视索引

前言 
 上一篇介绍了 博客时光机 2.0 的更新,这篇来聊聊它背后的实现。 
 2.0 想做的事情其实很直观: 
 
 让博客从过去开始,一版一版走到今天。 
 
 原本以为,把历史页面截下来,按时间播放就行了。

博客时光机

从 1.0 的 IPFS 历史快照与随机穿越,到 2.0 的可视索引与 Macintosh 时间线,这份指南记录博客时光机从想法到实现的完整演进过程。 
 时光机建立在博客的 IPFS 发布链路之上,相关部署与维护记录整理在:

Hugo 博客搭建、部署与优化实践

本博客使用 Hugo 生成静态页面,并部署在 Cloudflare Pages 和 IPFS。 
 长期维护过程中,我先后折腾过主题改造、图片加载、访问性能、部署发布、评论系统和搜索收录等问题。 
 这份指南汇集了这些实践,记录每次调整背后的原因、遇到的问题,以及最终采用的实现。

AI 口播视频生成实践

为了生成自然的 AI 口播视频,我先后部署并测试了多种音色克隆和人物对口型方案。 
 这份指南记录了不同方案的实际效果与取舍,以及如何将这些能力组合起来,最终实现口播短视频二创工具 VideoRemaker。

博客时光机 2.0:在一台 Macintosh 里看见时间

前言 
 9月21日,博客时光机 V1 版本上线。 
 当时满心欢喜,自己觉得还挺好玩。 
 但上线后,现实给我泼了一盆冷水。 
 虽然也在 V2EX 上发帖做了推广,上线到现在,一共才有68次浏览。

Muse AI 注册教程:借助 Google Gemini Spark 完成注册

Muse 是 Meta 于 2026 年 9 月 8 日推出的全球首款面向普通消费者的个人 AI 智能体(AI Agent)应用。 
 现在仅面向美国和加拿大地区的 18 岁以上用户开放。 
 在 V2ex 上看到可以通过 Gemini Spark 进行注册,绕过 IP 检测,本文记录整个操作过程。

给 Twikoo 接入 Jev,用 AI 判断博客评论是不是广告

前言 
 最近 Jev 火了,时间线上全是讨论这个新模型的内容。 
 
 Jev 是 TypeSafe AI 发布的首个 System One 模型,主要面向软件中的快速、结构化决策。 
 
 和 ChatGPT、Claude 这类偏文本生成的大模型不太一样,它更偏向于“做判断”:输入一组状态和问题,直接返回结构化的判断结果以及概率。

Twikoo 2.x 升级踩坑:Netlify CORS 报错与解决方案

前言 
 刚更新完上一篇 《我给博客做了一个时光机》 ,顺手打开文章看看效果,结果发现评论区挂了。 
 浏览器控制台报错: 
 Access to XMLHttpRequest at 'https://comment.example.com/'
 from origin 'https://blog.example.com' has been blocked by CORS policy:
 
 Response to preflight request doesn't

我给博客做了一个时光机

前言 
 博客早在23年的时候就接入了 IPFS 服务,通过 GitHub Actions 实现了 Cloudflare Pages 和 IPFS 两套服务托管。 
 整个流程大概是下面这样的,具体实现可以参考 Hugo 接入 IPFS 服务 这篇内容。 
 Hugo Build
 │
 ├── 正常部署 → Cloudflare Pages ← liudon.com
 │
 └── IPFS → CID ← liudon.xyz
 博客主要还是通过

山西之旅

趁着暑假最后一个周末的尾声,来了一趟三天两晚的山西之行。 
 第一天 
 上午11:29分在清河站乘坐G2509次火车,下午14:27分直达忻州西。 
 


博客焕新,记录继续

前言 
 经常访问本站的朋友,可能已经发现本站换了新的主题。 
 回顾折腾博客的这一路,已经用过了5个主题,其中 PaperMod 这个用的时间最长。 
 cactus
 jane
 yinyang
 meme
 PaperMod
 一直想换个新主题,但查了一下,没有找到特别喜欢的主题了。

友链

欢迎交换友链,但需要一定条件: 
 
 使用独立域名 
 内容以原创主,保持一定的更新频率 
 上线一年以上,内容十篇以上 
 
 本站友链相关信息: 
 站点名称:流动
 站点地址:https://liudon.com
 站点LOGO:https://liudon.com/avatar.png
 申请友链时,请提供以下信息:

博客加速实践

目前博客部署在 Cloudflare Pages 服务上,通过 DnsPod 服务做了国内和海外分线路解析。 
 Cloudflare Pages
 ↑
 blog.liudon.xyz
 ↑ ↑
 回源 直接访问
 │ │
 腾讯云 CDN │
 ↑ ↑
 国内 海外
 \ /
 DNSPod
 ↑
 liudon.com
 因为 Cloudflare 在国内属于反向加速,所以加了一层国内CDN做加速。

广府古城一日游

6月底给家里添置了辆车,还在磨合期。 
 平时爸妈开的不多,这次暑假回家,想着找一天带爸妈出门逛逛。 
 上午带老妈去医院做了个CT检查,检查完结果要4个小时才能出来。

我做了一个口播短视频二创工具:VideoRemaker

做自媒体的同学,有个口播视频的需求,希望能帮忙搞个工具出来。 
 以前没有 AI 的时候,我还真不敢接这活,现在有了 AI,决定试试看。 
 前面做了调研,核心就是 语音克隆 和 对口型视频合成 两个能力。

AI Agent折腾记(OpenClaw / Hermes Agent)


 AI 智能体(AI Agent)是一种能够感知环境、进行推理并自主行动以实现特定目标的智能系统。 
 
 本文记录我在一台 2 核 4G 云服务器上部署 OpenClaw 和 Hermes Agent 的过程,以及实际遇到的问题。

我的2025年

2025年,会是我人生的一个重要节点。 
 工作 
 这一年,处于一种持续性、高强度的加班状态,晚上9点算是早下班了。 
 24年底,接手了一个历史模块,对于一直在做运营开发的我来说,算是一个不小的挑战。

大连之行

6月底,趁着娃刚考完试,学校也没课了,请假带娃去大连玩了一趟。 
 这次是跟娃好朋友一起出行,人两口子以前做旅行社的,直接搞了一个行程表,我们就跟报了个旅行团一样。

回家收麦

家里有两块地,一块离的远租出去了,另一块近的老爸老妈还在自己种。 
 自从上高中后,就很少下地了,现在让我下地,我都找不到自家地。 
 老爸生日回家,刚好赶上收麦,记录一下。

六一儿童节爬长城

六一儿童节,娃和好朋友约好一起爬长城。 
 去年我们 去过慕田峪长城 ,人不多、好爬不累,两家商量后决定还是去慕田峪。 
 
 
 


Golang database/sql 数据库断线自动重连机制解析

最近有个交接服务的数据库要升级版本,升级最后切换瞬间会有一个闪断。 
 这里业务侧需要确保有自动重连机制,否则会影响服务。 
 因为是交接的服务,得通过代码再确认一下。

清明踏春,爬山看海

自从买了登山杖,娃一直说想去爬山。 
 前段时间天气一直不好,山上也还是光秃秃的,就一直没去。 
 趁着清明假期,带娃爬山去。 
 去年假期去过一次香山,路上超堵,这次还是选择了离家不远的百望山:好爬不累。