<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>分类：代码艺术 - Sinon的博客</title><link>https://sinon.top/categories/codding-art</link><atom:link href="https://sinon.top/categories/codding-art/feed/categories/codding-art.xml" rel="self" type="application/rss+xml"/><description>Sinon的博客</description><language>zh-cn</language><lastBuildDate>Thu, 5 Nov 2026 07:38:38 GMT</lastBuildDate><item><title><![CDATA[记一次：阿里云 ESA 偷偷给我的博客注入监测脚本]]></title><link>https://sinon.top/archives/diary-aliyun-esa-rum-script-inject</link><description><![CDATA[<img src="https://sinon.top/plugins/feed/assets/telemetry.gif?title=%E8%AE%B0%E4%B8%80%E6%AC%A1%EF%BC%9A%E9%98%BF%E9%87%8C%E4%BA%91%20ESA%20%E5%81%B7%E5%81%B7%E7%BB%99%E6%88%91%E7%9A%84%E5%8D%9A%E5%AE%A2%E6%B3%A8%E5%85%A5%E7%9B%91%E6%B5%8B%E8%84%9A%E6%9C%AC&amp;url=/archives/diary-aliyun-esa-rum-script-inject" width="1" height="1" alt="" style="opacity:0;">前阵子把博客挂上了阿里云 ESA，顺手用 kuma 每分钟 ping 一次首页当心跳。今天翻监控数据，发现首页响应体积老在两个值之间跳，一会儿 21K 一会儿 28K。好奇心上来了，抓两份下来解压一比——好家伙，大的那份多了行我从没写过的东西：&lt;script src="https://xxxxx.m]]></description><guid isPermaLink="false">/archives/diary-aliyun-esa-rum-script-inject</guid><dc:creator>SinonJZH</dc:creator><category>代码艺术</category><category>日常</category><category>学习笔记</category><category>休闲时光</category><pubDate>Fri, 23 Oct 2026 18:51:19 GMT</pubDate></item><item><title><![CDATA[GitHub仓库发布——ZCode 会话管理器（Python CLI 版）]]></title><link>https://sinon.top/archives/github-repo-zsm-for-python</link><description><![CDATA[<img src="https://sinon.top/plugins/feed/assets/telemetry.gif?title=GitHub%E4%BB%93%E5%BA%93%E5%8F%91%E5%B8%83%E2%80%94%E2%80%94ZCode%20%E4%BC%9A%E8%AF%9D%E7%AE%A1%E7%90%86%E5%99%A8%EF%BC%88Python%20CLI%20%E7%89%88%EF%BC%89&amp;url=/archives/github-repo-zsm-for-python" width="1" height="1" alt="" style="opacity:0;">仓库地址：SinonJZH/zsm-for-python（当前版本 V1.0.1，MIT 协议）。 上一篇《GitHub仓库发布——增强版Qdrant MCP服务器》的结尾说，给知识库补上“改得动、删得掉”的句柄，这件事算是了了。结果话音落下没多久，我发现另一个只进不出的角落——而且这次里面装的东西]]></description><guid isPermaLink="false">/archives/github-repo-zsm-for-python</guid><dc:creator>SinonJZH</dc:creator><enclosure url="https://sinon.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fzsm_for_pyhton_webui.png&amp;size=m" type="image/jpeg" length="0"/><category>AI</category><category>代码艺术</category><category>学习笔记</category><pubDate>Tue, 13 Oct 2026 09:31:00 GMT</pubDate></item><item><title><![CDATA[GitHub仓库发布——增强版Qdrant MCP服务器]]></title><link>https://sinon.top/archives/github-repo-enhanced-qdrant-mcp</link><description><![CDATA[<img src="https://sinon.top/plugins/feed/assets/telemetry.gif?title=GitHub%E4%BB%93%E5%BA%93%E5%8F%91%E5%B8%83%E2%80%94%E2%80%94%E5%A2%9E%E5%BC%BA%E7%89%88Qdrant%20MCP%E6%9C%8D%E5%8A%A1%E5%99%A8&amp;url=/archives/github-repo-enhanced-qdrant-mcp" width="1" height="1" alt="" style="opacity:0;">仓库地址：SinonJZH/mcp-server-qdrant（当前版本 0.9.0，Apache 2.0） 前情提要：《给 AI 一份外置记忆：我的个人知识库部署全记录》——我的个人知识库搭建记 一、上回说到 之前写过一篇讲 AI 外部记忆库的文章：用 Qdrant 存记忆，官方的 mcp-ser]]></description><guid isPermaLink="false">/archives/github-repo-enhanced-qdrant-mcp</guid><dc:creator>SinonJZH</dc:creator><category>AI</category><category>代码艺术</category><category>学习笔记</category><pubDate>Tue, 13 Oct 2026 06:53:03 GMT</pubDate></item><item><title><![CDATA[搬完家，一周装修完：博客新前台开发全记录]]></title><link>https://sinon.top/archives/new-frontend-one-week</link><description><![CDATA[<img src="https://sinon.top/plugins/feed/assets/telemetry.gif?title=%E6%90%AC%E5%AE%8C%E5%AE%B6%EF%BC%8C%E4%B8%80%E5%91%A8%E8%A3%85%E4%BF%AE%E5%AE%8C%EF%BC%9A%E5%8D%9A%E5%AE%A2%E6%96%B0%E5%89%8D%E5%8F%B0%E5%BC%80%E5%8F%91%E5%85%A8%E8%AE%B0%E5%BD%95&amp;url=/archives/new-frontend-one-week" width="1" height="1" alt="" style="opacity:0;">上一篇《把博客搬成纯静态》的结尾，我给主题重写留了一句「那会是另一个系列」。结果它没成系列——成了一次冲刺。九月二十三日迁移收官那天，新前台还只是个能跑的最简骨架：四十四个路由全部预渲染，全站却只有一套临时样式。到今天写下这些字，暗色主题、独立首页、路由体系、文章目录、图片灯箱、边缘加速、追番列表、]]></description><guid isPermaLink="false">/archives/new-frontend-one-week</guid><dc:creator>SinonJZH</dc:creator><category>代码艺术</category><category>学习笔记</category><pubDate>Tue, 29 Sep 2026 18:17:16 GMT</pubDate></item><item><title><![CDATA[从 charabia 到 ICU：我的静态博客搜索里，两本词典打了一架]]></title><link>https://sinon.top/archives/pagefind-charabia-icu-issue</link><description><![CDATA[<img src="https://sinon.top/plugins/feed/assets/telemetry.gif?title=%E4%BB%8E%20charabia%20%E5%88%B0%20ICU%EF%BC%9A%E6%88%91%E7%9A%84%E9%9D%99%E6%80%81%E5%8D%9A%E5%AE%A2%E6%90%9C%E7%B4%A2%E9%87%8C%EF%BC%8C%E4%B8%A4%E6%9C%AC%E8%AF%8D%E5%85%B8%E6%89%93%E4%BA%86%E4%B8%80%E6%9E%B6&amp;url=/archives/pagefind-charabia-icu-issue" width="1" height="1" alt="" style="opacity:0;">静态站没后端，全文搜索交给 Pagefind 在访客的浏览器里跑。上线第二天我用真实词一搜，复合词全军覆没，单字却条条命中。这篇记录了从复现到修复的全过程——根因是索引侧和查询侧各带一本中文词典、切法还不一样；修法是把索引侧对齐到浏览器这本，而查询侧连一点插手的余地都没有。 搜索是前一天刚上线的。静]]></description><guid isPermaLink="false">/archives/pagefind-charabia-icu-issue</guid><dc:creator>SinonJZH</dc:creator><category>代码艺术</category><category>学习笔记</category><pubDate>Tue, 29 Sep 2026 17:48:20 GMT</pubDate></item><item><title><![CDATA[从 zone.js 到 signal：把异步请求写成响应式]]></title><link>https://sinon.top/archives/angular-from-zone-to-signal</link><description><![CDATA[<img src="https://sinon.top/plugins/feed/assets/telemetry.gif?title=%E4%BB%8E%20zone.js%20%E5%88%B0%20signal%EF%BC%9A%E6%8A%8A%E5%BC%82%E6%AD%A5%E8%AF%B7%E6%B1%82%E5%86%99%E6%88%90%E5%93%8D%E5%BA%94%E5%BC%8F&amp;url=/archives/angular-from-zone-to-signal" width="1" height="1" alt="" style="opacity:0;">这篇写给两类人：刚接触 Angular、想搞明白 signal 到底是什么的新人；以及在 zone.js 时代的 Angular（v13~v16 之类）里写了多年 @Input + ngOnChanges + subscribe 赋值，最近升级发现世界变了的老兵。文章从「一个会撒谎的计数器」讲起，一]]></description><guid isPermaLink="false">/archives/angular-from-zone-to-signal</guid><dc:creator>SinonJZH</dc:creator><category>代码艺术</category><category>学习笔记</category><pubDate>Fri, 25 Sep 2026 03:37:48 GMT</pubDate></item><item><title><![CDATA[杀戮尖塔 2 效果实现教程 —— 卡牌 / 遗物 / 药水 / Power 怎么写]]></title><link>https://sinon.top/archives/slay-the-spire-2-modding-effects-tutorial</link><description><![CDATA[<img src="https://sinon.top/plugins/feed/assets/telemetry.gif?title=%E6%9D%80%E6%88%AE%E5%B0%96%E5%A1%94%202%20%E6%95%88%E6%9E%9C%E5%AE%9E%E7%8E%B0%E6%95%99%E7%A8%8B%20%E2%80%94%E2%80%94%20%E5%8D%A1%E7%89%8C%20%2F%20%E9%81%97%E7%89%A9%20%2F%20%E8%8D%AF%E6%B0%B4%20%2F%20Power%20%E6%80%8E%E4%B9%88%E5%86%99&amp;url=/archives/slay-the-spire-2-modding-effects-tutorial" width="1" height="1" alt="" style="opacity:0;">打个广告：我给《杀戮尖塔2》开发的《星塔旅人》mod《杀戮星塔》正在锐意开发（咕咕）中，欢迎来围观！仓库地址：Github:SinonJZH/slay-the-stella 写在前面：这是我和 AI 斗智斗勇了 6 个小时后弄出来的教程。 这份教程讲什么：只讲一件事——效果代码怎么写。从"造成 6]]></description><guid isPermaLink="false">/archives/slay-the-spire-2-modding-effects-tutorial</guid><dc:creator>SinonJZH</dc:creator><enclosure url="https://sinon.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2FSTS_visual_select.png&amp;size=m" type="image/jpeg" length="0"/><category>代码艺术</category><category>游戏</category><category>学习笔记</category><category>休闲时光</category><pubDate>Wed, 23 Sep 2026 04:17:57 GMT</pubDate></item><item><title><![CDATA[ 一个 p 标签，弄哑了我的 SPA 导航]]></title><link>https://sinon.top/archives/a-p-tag-destroyed-my-nav</link><description><![CDATA[<img src="https://sinon.top/plugins/feed/assets/telemetry.gif?title=%20%E4%B8%80%E4%B8%AA%20p%20%E6%A0%87%E7%AD%BE%EF%BC%8C%E5%BC%84%E5%93%91%E4%BA%86%E6%88%91%E7%9A%84%20SPA%20%E5%AF%BC%E8%88%AA&amp;url=/archives/a-p-tag-destroyed-my-nav" width="1" height="1" alt="" style="opacity:0;">博客迁移收官日，新前台上线不到一小时，我就发现顶栏点不动了。URL 会变、标题会变、页面纹丝不动，console 干净得像什么都没发生过。这牵出了一场持续一整天的悬案：一度结案为「Angular 框架 bug」，最后翻案——凶手是一个不合法的 &lt;p&gt; 标签，藏在我从 WordPress 主题里抄来的]]></description><guid isPermaLink="false">/archives/a-p-tag-destroyed-my-nav</guid><dc:creator>SinonJZH</dc:creator><category>代码艺术</category><category>学习笔记</category><pubDate>Tue, 22 Sep 2026 12:19:44 GMT</pubDate></item><item><title><![CDATA[软件开发笔记——Sinon的追番列表]]></title><link>https://sinon.top/archives/sinon-bangumi-list</link><description><![CDATA[<img src="https://sinon.top/plugins/feed/assets/telemetry.gif?title=%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0%E2%80%94%E2%80%94Sinon%E7%9A%84%E8%BF%BD%E7%95%AA%E5%88%97%E8%A1%A8&amp;url=/archives/sinon-bangumi-list" width="1" height="1" alt="" style="opacity:0;">其实严格来说这并不算是软件……（但是懒得弄新分类了） 这个插件的开发目的，就如插件名称所说，是要开发出一款插件来自动生成我的追番列表页面。(感觉自己又开了一片大坑） Sinon的追番列表 GitHub 更新日志 V1.2.1]]></description><guid isPermaLink="false">/archives/sinon-bangumi-list</guid><dc:creator>SinonJZH</dc:creator><enclosure url="https://sinon.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2FIMG_1789.jpg&amp;size=m" type="image/jpeg" length="0"/><category>代码艺术</category><category>学习笔记</category><pubDate>Thu, 25 Apr 2019 14:57:32 GMT</pubDate></item><item><title><![CDATA[软件开发笔记——基于SQL，使用C++编程的图形化学生管理系统]]></title><link>https://sinon.top/archives/student-file-manager-sql</link><description><![CDATA[<img src="https://sinon.top/plugins/feed/assets/telemetry.gif?title=%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0%E2%80%94%E2%80%94%E5%9F%BA%E4%BA%8ESQL%EF%BC%8C%E4%BD%BF%E7%94%A8C%2B%2B%E7%BC%96%E7%A8%8B%E7%9A%84%E5%9B%BE%E5%BD%A2%E5%8C%96%E5%AD%A6%E7%94%9F%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F&amp;url=/archives/student-file-manager-sql" width="1" height="1" alt="" style="opacity:0;">感觉最近好像喜欢上开坑了……这次的目标是要做一个基于SQL的图形化学生管理系统，预期实现的目标至少包括学生的增删改查操作，以及成绩系统录入、排名等操作，还包括课程的管理，学分和绩点的计算等，主要目的是学习一下SQL与其他编程语言的联合编程，软件项目开发的过程，以及git、GitHub的基本操作。主要]]></description><guid isPermaLink="false">/archives/student-file-manager-sql</guid><dc:creator>SinonJZH</dc:creator><enclosure url="https://sinon.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2FIMG_1754.png&amp;size=m" type="image/jpeg" length="0"/><category>代码艺术</category><category>学习笔记</category><pubDate>Wed, 26 Dec 2018 01:57:41 GMT</pubDate></item><item><title><![CDATA[软件开发笔记——学生成绩管理系统]]></title><link>https://sinon.top/archives/students-score-system</link><description><![CDATA[<img src="https://sinon.top/plugins/feed/assets/telemetry.gif?title=%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0%E2%80%94%E2%80%94%E5%AD%A6%E7%94%9F%E6%88%90%E7%BB%A9%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F&amp;url=/archives/students-score-system" width="1" height="1" alt="" style="opacity:0;">新分类又一次上线了……虽然还是很菜的东西…… 老师让我们做的一个小程序，稍微多加了一点功能，然后变成了一个勉强能用的软件了…… 因为比较简单，先直接上代码到时候看心情补讲解…… //database.c（主文件）中的内容 #include"sinon_database_fuction.h" #pr]]></description><guid isPermaLink="false">/archives/students-score-system</guid><dc:creator>SinonJZH</dc:creator><enclosure url="https://sinon.top/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2FIMG_1754.png&amp;size=m" type="image/jpeg" length="0"/><category>代码艺术</category><category>学习笔记</category><pubDate>Wed, 19 Dec 2018 11:41:47 GMT</pubDate></item></channel></rss>