博客集
星河避难所 的首页快照

星河避难所

写代码,也写自己

暂未获得 暂未获得 暂未获得 暂未获得

该博客的最新文章

以下文章来自该博客的 RSS 订阅,点击标题前往原文阅读。

投递我的文章到本站
  • 用 AI 重写了一个用了两年的 B 站直播机器人

    上次写完《Skill 使用心得:从四处找插件,到建立自己的数字工具箱》之后,又过了一个月。 这一个月我大多数业余时间(除了打游戏的)都花在了一件事情上:用 Go 把之前那个 PHP 版本的 B 站直播机器人重写了一遍。 差不多月初开始动手,没过多久机器人的基本功能就已经跑起来了。这个速度放在一年前,我自己大概是不敢相信的。 这篇文章不聊协议逆向,那个我在《Bilibili直播信息流:连接方法…

  • Skill 使用心得:从四处找插件,到建立自己的数字工具箱

    上次写完《从网页聊天到 Claude Code:一个 Skill 改变了什么》之后,又过了一个月。 这一个月里我没怎么再折腾什么新鲜玩意,而是我对"Skill 这个东西到底该怎么用"这件事,想法完全变了。 刚开始:觉得 Skill 就是"能跑命令的聊天框"的升级版 刚接触 Claude Code 的 Skill 机制时,我第一反应其实挺平淡的——这不就是个写好的 Prompt 吗。 你把一…

  • 从网页聊天到 Claude Code:一个 Skill 改变了什么

    上周我做了一个叫「心理陪伴」的 Claude Skill。 它不是一个 App,不是小程序,甚至没有界面。就一个 Markdown 文件,加上几个参考资料,放在 GitHub 上。 但它能做到网页版 Claude 做不到的事:记住每一个来找它聊天的人、理解东亚家庭里的孝道压力、在合适的时机用"压力水杯"的比喻解释焦虑、识别到危机信号时递上心理援助热线。 这篇文章是我在做这个 Skill 过程…

  • 不用翻墙、不用注册、不用月费,普通人也能用上 Claude Code

    网上随便一刷,今天 A 模型封神,明天 B 工具屠榜,后天 C 应用卖爆。Cursor、Claude Code、Codex 轮番上场,你方唱罢我登场。卖课的一轮一轮抛出概念,prompt 工程、Agent、workflow、MCP 协议,推攘着圈内人的焦虑,裹挟着大家闷头往前跑。 学完 prompt 学 vibe coding,学完上下文学 Agent。刚喘口气,厂商推出更强算力的模型,卖课的抛…

  • 我把每天的键盘输入,变成了一张热力图

    有一天在打字的时候,我突然想到一件很小的事情: 我每天敲这么多键盘,那我到底更常用的是哪些键? 这个问题本身其实没什么用,但它有一点点“可能和直觉不一样”的感觉。 比如我一直觉得自己主要在用字母区,但如果真的统计出来,会不会空格才是第一?或者回车? 这种事情,如果只是靠感觉,其实永远不会有答案。 但一旦把它变成数据,就完全是另一种东西了。 想着想着,就干脆把这件事做出来了。 代码跟软…

  • Go + Vue 打包成一个单二进制的后台系统,我做了个后台脚手架

    做多了后台项目之后,其实会有一种很明显的感觉:很多东西在反复做。 一开始接需求的时候,通常节奏都比较赶,很少有时间去慢慢设计架构。登录、权限、菜单这些东西,基本都是一边写一边补,能跑就行。 短期看其实没什么问题,甚至很多项目也确实是这么交付的。 但只要你自己维护过一段时间,就会发现问题慢慢开始出现了。 逻辑开始变得有点绕,权限判断到处都是,改一个接口要翻好几层代码。有时候你自己都不太敢动,…

  • 一次被封 IP 之后:从 Shadowsocks 到 Xray Reality

    本文已加密,请到站点验证后阅读。

  • 从番剧墙到一个 Go CLI 工具

    前段时间我把自己的网站整理了一下,做了一个“番剧墙 / 影视墙”的页面。 每个作品有封面、标题、评分、简介,看起来很清爽,也算是给自己这些年的观看记录做一个归档。 一开始我也想过,这些信息要不要手动整理。 理论上当然可以,但当数量慢慢多起来之后,问题就变得很现实: 封面图从哪里来? 简介要不要自己维护? 某个平台没有这部作品怎么办? 后来我了解到了 TMDB。 它是一个由全球社区共…

  • 用 Go 实现一个可长期运行的 GitHub Webhook 服务实践

    前段时间我写过一篇文章,记录自己作为一名 PHP 开发者自学 Go 的过程 那篇更多是学习阶段的整理。这次则是一次完整实践的复盘。 单点知识和系统能力之间始终存在差距。 理解一个概念并不难,但要把多个能力组合起来,形成一个可以长期运行的系统,往往需要真实项目去反复打磨。很多看似基础的东西,只有亲手做过,理解才会真正扎实。 最近我完成了一个小工具:github-webhook-listene…

  • 从“能写 Go”到“写得对 Go”:一名 PHP 开发者的补课与重构

    写在前面 我是一名从事了几年的 PHP 开发者,平时以独立开发为主。主流的 PHP 框架基本都接触过,也做过不少实际跑在线上的项目。 后来因为工作和个人兴趣的原因,开始逐渐接触 Go,也用 Go 做过一些真实的东西。 比如,用 Gin + Vue + Wails 做过 PC 应用,在 Ubuntu 服务器上跑过 Go 服务,也写过一些用于接收 GitHub Webhook 执行 shell…

  • 2025 年度复盘:一些工作之外的项目、工具和想法

    2025 年对我来说,是一个节奏明显不一样的年份。 工作本身发生了一些变化,一方面是内容上的调整,另一方面也因为单位的特殊性,涉及比较高的保密要求,很多事情并不适合写出来。再加上整体节奏不像去年那样紧绷,我不再每天十几个小时泡在公司里,于是突然多出了一部分可以自由支配的时间。 这些时间我几乎没有拿去“休息”,而是顺手用来做了一些事情。 它们大多发生在工作之外,也基本不和工作直接相关。 之所以…

  • 一次受限环境下的 MySQL 数据导出与“可交付化”实践

    平时其实很少会专门写数据库导出的事情。 这种活本身并不复杂,零零散散也做过很多次,大多数时候也不会留下什么记录。 这一次之所以单独记下来,主要还是因为当时遇到了一些​比较具体、也比较现实的限制条件: 我需要在比较短的时间里接手一个并不熟悉的 MySQL 实例,把里面的数据整理出来,而且这些数据最终并不是只给工程师看。 从一开始就意识到的一个问题 在动手之前,其实有一件事情我是比较明确的:…

  • 用 Go 像写 Web 一样做桌面应用:完全离线的手机号归属地查询工具

    前阵子我做了一个小工具:一个完全离线的手机号归属地查询桌面应用 功能本身其实并不复杂,但在这个过程中,我反而重新认识了一次 用 Go 做桌面应用,其实可以非常像在写一个 Web 项目。 这篇文章不打算讲手机号归属地怎么查(那真的很简单,如果你需要直接到文章底部仓库下载我做好的工具就好),而是想分享一下: 为什么我会选择用 Go + Wails 做成桌面应用,以及这个过程里的一些实际感受。…

  • 用 PHP 解析 Protobuf 的坑与解法

    前阵子做的一个直播弹幕的机器人,其中有一部分上游数据是通过 Protobuf 返回的。几个朋友问我怎么处理,但我发现大家对「PHP 解析 Protobuf」这件事多少有点迷糊。确实,PHP 处理 Protobuf 的资料不多,而且踩坑成本不算低。 这篇文章不打算科普什么,也没有推荐任何技术栈的意思,就是把我自己摸索的过程整理出来,给遇到类似问题的人一个参考。 Protobuf 是什么 很多人…

  • 从零开始做 Go 项目:我的目录设计分享

    为什么要先规划目录结构 刚开始写 Go 项目的时候,我对目录结构这件事格外重视。对于刚入门的人来说,开发过程中几乎每件事情都是第一次: 全局配置怎么放? 数据库连接怎么初始化? Model 怎么设计? 路由怎么组织? 每一个点都能让人迷茫。 相比之下,像 Java 的 Spring Boot 或 PHP 的 Laravel 都会给你一套“默认结构”,至少能让你知道应该往哪里放东西。…