MoreRSS

site iconSKYue | 拾月修改

在Shopee做搜索产品,日常关注互联网、软件应用居多,也喜欢股票投资、社科历史。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

SKYue | 拾月的 RSS 预览

端午节第三弹:Typecho Newsletter插件;及Claude Code + DeepSeek的使用体验

2026-06-21 16:41:00

Typecho Newsletter插件

Typecho发布中文日期处理两款Obsidian插件之后,我的第三个vibe coding项目落地了——一款Typecho Newsletter插件。关注我的人或许知道,我对博客支持Newsletter有执念,在AI的帮助下,这份执念终于实现了。

项目地址:skyue/typecho-newsletter

核心功能:

  • 弹窗订阅 — 在主题任意位置添加 #newsletter-subscribe 链接,点击弹出订阅窗口,点击本博客菜单的「订阅」查看效果
  • 双重确认 — 订阅后发送确认邮件,确认后才生效
  • 即时推送 — 文章发布时自动向所有已确认订阅者发送邮件
  • 全文/摘要 — 邮件内容可选全文或摘要模式
  • RSS 订阅 — 弹窗中可选展示 RSS 链接及常用阅读器快捷入口(Feedly、Inoreader、Feedbin)
  • 邮件模板 — 可自定义确认邮件和推送邮件的 HTML 模板
  • 后台管理 — 查看、添加、删除订阅者;发送测试邮件;查看发送历史
  • 暗色模式 — 弹窗自动适配浅色/深色模式
  • 筛选发送 — 支持指定类目,仅该类目更新推送邮件

在开发过程中,我曾对两项功能进行过权衡并最终舍弃:一是定时发送,二是嵌入式订阅表单。

1、定时发送

Typecho系统不支持定时任务,实现定时发送通常有两种路径:

  • 编写php脚本,配合服务器crontab定时调用
  • 利用博客访问事件触发定时任务

我觉得两个方式都不优雅,前者配置繁琐;后者受博客访问量影响,且消耗资源。

让Claude Code删除定时发送功能
让Claude Code删除定时发送功能

2、嵌入式订阅表单

在页面中嵌入表单需要做主题的适配,我保留了一套css类,可以在style.css中自定义表单样式,但我觉得自定义css有一些门槛,且嵌入式订阅表单意义可能不大,正如Claude Code所说:

结论:嵌入式是给"担心读者看不到"的心理安慰,实际上愿意订阅的人会自己找入口。保留弹窗一种方式就够了,插件更轻、用户更少决策负担。

我希望降低使用门槛,保持简洁,最终只提供弹窗订阅表单。

让Claude Code删除嵌入式订阅表单
让Claude Code删除嵌入式订阅表单

Claude Code + DeepSeek API

此前在Vibe Coding项目中,我曾使用Alma客户端 + Kimi API。而近期这三款插件的开发则换至Claude Code客户端 + DeepSeek API。这一切换的带来的优势非常显著:

  • 成本显著降低
  • 响应速度更快,几乎没有等待感
  • 任务成功率更高

这三个插件的开发只用了9天,总消耗2.6亿Tokens,费用21.88元。如下图所示。

image-20260621-163012.webp
image-20260621-163012.webp

image-20260621-163170.webp
image-20260621-163170.webp

DeepSeek模型本身实力不俗,而Claude Code的harness应该也加持不少。这是我第一次直观体会到harness的价值所在。

Natural Language Dates - Chinese:终于能在Obsidian中处理中文日期了

2026-06-20 20:48:00

我每天在Obsidian中新建一篇标题为YYYY-MM-DD的笔记记日记,任何笔记中提及日期我都主动关联相应的笔记,但提及日期往往使用自然语言,我现在的处理方式如下图所示:

笔记中大量日期引用
笔记中大量日期引用

其中有两个问题:

  1. 自然语言没办法自动识别为日期,需要自己换算并输入日期。
  2. 我比较懒,自然语言后直接跟个双链日期,没有做别名处理,很不优雅。

插件市场其实很早就有Natural Language Dates插件处理自然语言日期,后来又有人开发了Natural Language Dates - Redux,都是很多人推荐的必备插件,确实很好用。但可惜,它们只支持英文。

我没有找到中文的,那就自己vibe coding一个吧,下午花了两个小时搞完,已经上架插件市场:Natural Language Dates - Chinese

只支持中文,如下所示,终于能愉快的使用中文日期了。有需要的朋友赶紧来试试。

gif-26062020.gif
gif-26062020.gif

Obsidian笔记如何一键发布到Typecho?试试我开发的这款插件

2026-06-20 14:51:00

又vibe coding了。

这次开发了一款Obsidian插件,实现一键发送笔记到Typecho博客。插件已经上架Obsidian插件市场。

开发原则

  • 发布文章不破坏本地笔记格式。比如笔记中的图片,仍然保留本地引用,只在博客文章中转化为图床URL。
  • 避免依赖:Typecho默认只支持XML-RPC接口,插件仅依赖这个接口。

核心功能

  • 不依赖第三方接口:使用Typecho的XML-RPC接口发布,不依赖第三方API插件。
  • 存量文章自动更新:新发布文章自动保存文章id到笔记的frontmatter,再将发布会识别文章id更新文章。
  • 基于笔记frontmatter自定义文章元数据:标题、发布时间、分类、标签、是否可评论等文章元数据,均支持在笔记的frontmatter中自定义映射关系。比如将笔记的aliases别名作为文章标题发布。
  • 笔记双链自动处理:笔记中的双链笔记,如果也是一篇发布文章,会自动替换为博客链接。如果只是一篇私密笔记,则转化为纯文本。
  • 图片支持Cloudflare R2图床:除Typecho自带的附件管理能力,插件支持配置Cloudflare R2图床。未来会根据用户的使用反馈,增加其它图床。
  • 自动保存图片上传状态:同一张图片被多篇笔记引用发布,图片只会上传一次。
  • 同时支持桌面端和移动端:插件同时支持桌面端和移动端,手机也能发博客了。
  • 使用Obsidian命令发布文章:安装并启用插件后,Obsidian命令面板搜索「Publish to Typecho」就能找到发布命令。

一些插件截图

插件设置界面部分设置项
插件设置界面部分设置项

Obsidian中的Publish to Typecho命令
Obsidian中的Publish to Typecho命令

文章发布成功弹窗
文章发布成功弹窗

文章更新成功弹窗
文章更新成功弹窗

总体来说,插件完全复刻《Python脚本发博客》的功能,并进行了通用设计,支持各项参数配置和手机端支持,完全适配我自己的需求。

如果你的博客在用Typecho程序,并且使用Obsidian写博客,欢迎试用。如有疑问请在GitHub提Issue

WordPress博客也有XML-RPC接口,原则上应该也能用,但我测试过。

(本文是第一篇使用该插件发布的文章)

宜兴三日游

2026-06-13 21:27:00

上周末连着周一,到宜兴玩了三天,超级休闲。行程如下:

  • 周六到宜兴,先逛陶二厂、蜀山古南街和东坡书院,然后开车到知春卢仝山房坐了一会。晚上住希尔顿欢朋酒店(宜兴人民中路店),附近逛吃。
  • 周日到窑湖小镇玩一天,住窑厂度假酒店
  • 周一上午就回了杭州。

几处推荐:

  • 古南街的蜀山东肆咖啡,依山而建,露台环境不错。
  • 知春卢仝山房在山间,很适合休闲躺平。
  • 希尔顿欢朋酒店附近的梅姨臭豆腐(西后街店)和尚食卢记烧饼(宜兴店),很好吃。
  • 窑湖小镇的飞鸟之约表演比较独特,我没在其它地方看到过鸟类表演。

一些照片:

陶二厂:

陶二厂
陶二厂
陶二厂
陶二厂
陶二厂
陶二厂
陶二厂
陶二厂

蜀山古南街:

蜀山古南街
蜀山古南街
蜀山古南街
蜀山古南街

东坡书院:

东坡书院
东坡书院

知春卢仝山房:

知春卢仝山房
知春卢仝山房
知春卢仝山房
知春卢仝山房

美食:

尚食卢记烧饼
尚食卢记烧饼
梅姨臭豆腐
梅姨臭豆腐

窑湖小镇飞鸟之约

窑湖小镇飞鸟之约
窑湖小镇飞鸟之约
飞鸟之约
飞鸟之约
飞鸟之约
飞鸟之约
飞鸟之约
飞鸟之约
飞鸟之约
飞鸟之约
飞鸟之约
飞鸟之约
飞鸟之约
飞鸟之约
飞鸟之约
飞鸟之约
飞鸟之约
飞鸟之约

窑湖小镇其它:

窑湖小镇
窑湖小镇
窑湖小镇小火车
窑湖小镇小火车
窑湖小镇夜景
窑湖小镇夜景
窑湖小镇烟花秀
窑湖小镇烟花秀

装修日记(4):618买家电

2026-06-07 14:24:00

本文为装修系列第4篇,前序文章:


去年装修收尾时,部分家电因担心贬值而未买。我们计划今年七月搬入,所以趁着近期的618大促买了几个家电:

  • 冰箱:美的M60-520(BCD-520WUFPZM-E)幻影砂深色
  • 洗衣机:美的清风明月2.0洗烘套装(MGH20AIR-W)海盐白
  • 扫地机器人:石头P20 Max
  • 直饮机:苏泊尔管线机UG02A(接桶装水)
  • 智能晾衣架:米家智能晾衣架Pro

和去年计划的购物清单对比如下:

项目 去年看中款 去年价 今年实购款 今年实购价 差价
冰箱 美的M60 508 3699.20 美元M60 520 3693.25 -5.95
洗衣机 美的清风明白 5599.00 不变 4563.02 -1035.98
直饮机 苏泊尔20G3A 394.87 苏泊尔UG02A 439.17 44.3
晾衣架 米家智能晾衣架Pro 934.15 不变 721.61 -212.54

洗衣机和晾衣架款式不变,价格降幅不小,还是省了些钱。冰箱和直饮机,在价格相当的情况下买了新款。

大促买东西发现商家和平台的保价套路:冰箱和洗衣机在我下单后都降价了,但使用淘宝平台的保价功能,洗衣机订单提示无差价可退,冰箱订单更绝,提示商品正在参加百亿补贴,不支持保价。

洗衣机提示无差价可退,冰箱提示百补中无法价保
洗衣机提示无差价可退,冰箱提示百补中无法价保

于是我直接联系商家,商家则非常干脆,直接承诺平台保价期结束后(7月7日)退差价。

美的洗衣机和冰箱退差价沟通记录
美的洗衣机和冰箱退差价沟通记录

我买石头扫地机器人时,下单前直接联系客服要优惠,石头客服说的也很直接:「在使用88VIP满5000减650券的情况下,到手价3852元,超出部分在保价束后(7月7日)退差价」。

石头客服的回复
石头客服的回复

商家的以上反应,给我的感觉就是:商家也不想跟平台玩那么复杂的营销,只想简单点给用户确定性。平台做的事,在商家和消费者两端都不讨好。

阳台的洗衣机、扫地机器人、晾衣架安装效果
阳台的洗衣机、扫地机器人、晾衣架安装效果

直饮机安装效果
直饮机安装效果

冰箱全嵌效果
冰箱全嵌效果

此外,部分家电装修时已经购买,其中我们直接将新电视放在现在租的房子先用起来了。

所有家电型号及到手价汇总如下:

image-20260607-141385.webp
image-20260607-141385.webp

至此,装修才算是基本完成,待入住后再添置一些装饰布置。

将装修的所有费用汇总如下,共计37.7万。中博硬装+系统窗+全屋定制三块费用,走了杭州政府装修补贴,退了1.9万。因此,实际装修支付约35.8万

项目 费用 备注
中博硬装 173317
拆旧 7650
系统窗 21606 含旧窗的纱窗
美的中央空调 26728 含安装耗材
博世地暖 20155
千年舟全屋定制 42000
小米全屋智能 7550 开关、门锁、中控、感应器等
软装 36909 家具、灯、监控摄像头
大小家电/厨电 28321
港华燃气安装 810
美缝 3300
阳台柜 3800
阳台猫柜 1145
监理费 3991
合计 377282

一个月Vibe Coding:我写了什么,又学到了什么

2026-05-25 20:58:00

近一个月,我使用Alma客户端搭配Kimi模型Vibe Coding了若干小玩意,本文记录一些过程和想法。

用量统计

账单显示一个月总消费361.8元,日消费峰值未超80元。从4月24日到5月22日,累计输入Token 1.92亿,输出Token 113万,Cached Token 1.85亿。以上均为Vibe Coding消耗,期间经历了Kimi 2.5升级到Kimi 2.6。

Kimi API消费
Kimi API消费

4月每天消费(紫色是上下文成本,绿色是模型推理成本)
4月每天消费(紫色是上下文成本,绿色是模型推理成本)

5月每天消费
5月每天消费

4月24日至5月22日Token消耗量
4月24日至5月22日Token消耗量

做了啥

1、一个稍后阅读应用

服务端基于Supabase + Cloudflare,客户端基于Flutter开发了iOS版,并开发了Chrome插件。这是Vibe Coding练手项目,从服务端到客户端全部跑通了,产品基本达到可用状态。

iOS App
iOS App

Chrome插件
Chrome插件
网页
网页

2、一个高度定制的博客系统

  • 开发了一个Obsidian插件,使用Github API将笔记发布到仓库。
  • 基于Astro开发了一个静态博客生成器,集成giscus评论。
  • 博客生成器和文章分属独立仓库,确保文章发布和博客迭代互不干扰。

最终,创作和发布全部在Obsidian内完成,体验很流畅。下图为部署在Cloudflare Pages上的示例站点。

博客示例
博客示例
Obsidian插件设置界面
Obsidian插件设置界面

本想把Typecho博客迁移到这个系统,却心生犹豫,缘由有二:
  • Typecho博客所在的阿里云服务器尚有一年,到期前不想折腾。
  • Typecho博客有几千条评论无法迁移到giscus。

3、开发Typecho的warmpaper主题

Typecho主题开发详见《Typecho升级到1.3,使用Warmpaper主题》,此处不再缀述。

4、日常开发脚本处理解决一些小需求

比如这篇文章介绍的Rime输入法五笔词库管理脚本,便是AI生成的。

一些感受

1、「我有一个想法,就差一个程序员」已成历史。

这句调侃产品经理的段子,如今彻底过时了。我折腾的几个项目,几乎没有手写一行代码(仅偶尔手动改个文案,此场景没必要消耗Token),全部是通过自然语言在对话框中完成的。

如果一定要加个条件,AI至少在CRUD类业务逻辑和前端/客户端相关的功能开发上,已经非常好用了。

2022年我开发Pinfive网站,没有AI加持,在一个Python开源项目上魔改,过程不可谓不艰辛。若今天用AI重做,估计两个小时就能做出来。

2、但是,想用好Vibe Coding,还得懂点技术和软件工程规范。

我不确定完全不懂技术的人Vibe Coding的真实体验如何。但我确信,Vibe Coding对我这种没在生产环境写过代码,但对API、函数、数据结构、schema等等编程概念非常熟悉的产品经理非常友好。

Vibe Coding时,我仿佛在和一个技术能力很强,但经验不丰富的程序员打交道。在磨合和过程中,形成一套流程:

  • 先和AI讨论一个产品想法,将其细化为PRD。
  • 然后,再与AI讨论技术选型,我会提些要求,比如网络环境要求国内、国际都能正常访问,客户端开发要求ios/android一套代码等等。
  • 接着,我会和AI讨论数据库schema和api设计,输出技术方案文档。
  • 最后,要求AI严格按技术文档写代码,并让AI自己写测试用例,所有测试通过后再找我验收。

这和真实工作中产研合作流程如出一辙。

如此,AI产出的稳定性和确定性提高不少。道理很简单:需求不讲清楚,AI很容易自由发挥,导致产出不符合预期。工作中提「一句话需求」,技术同学会直接驳回,但任劳任怨的AI,就会陷入盲目发挥。

3、Alma + Kimi的能力边界和特性

使用Alma + kimi 2.5(后来升级到2.6)进行Vibe Coding,我观察到一些特点:

  • AI很喜欢长篇大论和coding:有时候我只是想就方案中某个细节深入讨论,但AI会长篇大论的把整个方案复述一遍,甚至直接coding(超级浪费Token)。以至于我现在常常强调「我们来讨论一下xxx,先别写代码」。
  • AI经常对代码进行大范围编辑:有时只是很小的需求调整,我确定只需要很少的改动即可,但AI却会进行大范围增删代码,这让人非常不安。同样的,我会用prompt控制,让AI先输出方案,说明改动的文件、代码及理由。
  • AI在技术选型时倾向于国外方案:尤其是SaaS服务选择时,默认都是选择国际主流方案,但这些方案未必适合国内。比如supabase + vercel在国内就无法访问,虽然这套方案Vibe Coding真的爽到爆。
  • 在代码部署方面,自动化还不够:本地运行正常,部署却报错,我目前还是人肉搬运错误信息给AI,让AI修复。这部分的瓶颈不完全在AI模型,也在于开发者工具对AI是否友好。
  • 没有错误日志的问题,AI容易「鬼打墙」:有错误日志的问题,AI通常都能解决。没有错误日志时,AI容易瞎猜乱改。比如我用Flutter开发iOS App,编译到iPhone真机上,首次运行正常,但kill app后重新打开,就会闪退。Xcode终端没有错误日志,Kimi分析优化了几轮也未解决。后来,我把问题抛给Gemini,让他猜测一下可能的原因,Gemini点出了要点:这是Flutter Debug模式的问题,和代码没有关系,使用release模式编译就解决了。
  • 更长的上下文,不一定有更高的准确率:开发warmpaper主题时,不同子话题,全部在一个对话框内完成,上下文极长。到了后来,一些小迭代,AI也要思考很长时间,并常常犯错。观察Kimi的思考过程,有时就是无关上下文引用导致。上周读到《你的AI Agent越用越蠢?港中大、浙大戳破「记忆」的谎言》,文中提到AI的记忆只是备忘录,非人类的那种记忆,深有同感。
  • 涉及到UI的调整,靠自然语言沟通困难:UI调整有时候不好用自然语言描述,Kimi有多模态,截图+自然语言描述,能解决部分情况。

Gemini对闪退问题的回复
Gemini对闪退问题的回复

4、Vibe Coding让人上瘾

编程是一个反馈很清晰的活动,从产品想法到MVP,再至体验完善,所获得的成就感极强。古法编程比较慢,偶尔还会卡在一个问题上几个小时,容易打击信心。但Vibe Coding加快了反馈速度,你说一段话,AI几分钟就能修改一版,立马查看效果。很快的冒出想法,很快获得反馈,太容易上瘾了。我经常Vibe Coding到忘记时间。