跳转到主要内容

博客

  • 四视角 review

    发布于 文章 531 字 2 分钟

    AiCode_review

    好久没试过自己纯手写点什么了。。试试重新写 blog 看看 最近模仿 qoder 的 code review ultra 技能,自己写了个分四视角做 code review 的,效果确实比之前单视角的强。大致是按正确性、完整性、影响范围、安全性四个维度做评估。正确性主要关注逻辑错误、错误处理的边界情况、明显的错误边界。完整性是按 commit message 里描述的功能特性来评估的。影响范围是看引入的新代码,有没有将现有的东西改坏了,比如引入并发问题等。安全是针对玩家输入,看看有没有缺乏校验, …

    好久没试过自己纯手写点什么了。。试试重新写 blog 看看 最近模仿 qoder 的 code review ultra 技能,自己写了个分四视角做 code review 的,效果确实比之前单视角的强。大致是按正确性、完整性、影响范围、安全性四个维度做评估。正确性主要关注逻辑错误、错误处理的边界情况、明显的错误边界。完整性是按 commit message 里描述的功能特性来评估的。影响范围是看引入的新代码,有没有将现有的东西改坏了,比如引入并发问题等。安全是针对玩家输入,看看有没有缺乏校验, …

  • AI 编程的三阶水平

    发布于 文章 1939 字 4 分钟

    AiLlm

    最近一直在想一个问题:用了 AI 写代码这么久,到底到了什么水平? 想了想,大概可以分成三个阶段。 一阶:写代码 这就是 vibe coding。描述需求,AI 写代码,自己 review。效率飞升,睡眠不足时遗漏边界条件的 bug 也少了很多——上次聊过,不重复了。 一阶的核心是"快"。以前一个功能写三天,现在一天能写完三个。AI 像 C 语言取代汇编一样,不再需要纠结每一行怎么写,除非遇到性能瓶颈。这个阶段我已经比较熟练了,Claude Code 搭配 GLM-5 日常开发,基本形成了肌肉记 …

    最近一直在想一个问题:用了 AI 写代码这么久,到底到了什么水平? 想了想,大概可以分成三个阶段。 一阶:写代码 这就是 vibe coding。描述需求,AI 写代码,自己 review。效率飞升,睡眠不足时遗漏边界条件的 bug 也少了很多——上次聊过,不重复了。 一阶的核心是"快"。以前一个功能写三天,现在一天能写完三个。AI 像 C 语言取代汇编一样,不再需要纠结每一行怎么写,除非遇到性能瓶颈。这个阶段我已经比较熟练了,Claude Code 搭配 GLM-5 日常开发,基本形成了肌肉记 …

  • 使用文件系统映射进程内存

    发布于 文章 384 字 1 分钟

    AiGameDev

    同事写了个游戏控制台,支持读取和改写游戏数据。上周他又迭代了一版,用 Opus 4.6 封装了一个漂亮的 Inspector 网页,调试起来非常方便。 不过我比较懒,更希望 AI 替我看数据。于是我在控制台基础上又封装了一层:通过协议对接控制台,把游戏服务端的数据拉下来写入本地文件系统。这样 AI 就能在自己最熟悉的文件系统里检索和分析了。思路类似 Linux 的 /proc——用文件系统作为窗口,透视远端进程的内存状态。更进一步,我还考虑用 git 管理这套文件快照,通过 diff 发现数据变 …

    同事写了个游戏控制台,支持读取和改写游戏数据。上周他又迭代了一版,用 Opus 4.6 封装了一个漂亮的 Inspector 网页,调试起来非常方便。 不过我比较懒,更希望 AI 替我看数据。于是我在控制台基础上又封装了一层:通过协议对接控制台,把游戏服务端的数据拉下来写入本地文件系统。这样 AI 就能在自己最熟悉的文件系统里检索和分析了。思路类似 Linux 的 /proc——用文件系统作为窗口,透视远端进程的内存状态。更进一步,我还考虑用 git 管理这套文件快照,通过 diff 发现数据变 …

  • AI 全速开发中

    发布于 文章 878 字 2 分钟

    LlmAiGlm-5

    最近用 Claude Code 接 GLM-5 来 vibe coding,有了 AI 加持,解决问题和写需求的速度突飞猛进。更关键的是,以前睡眠不足时经常遗漏边界情况导致的 bug,现在少了很多 回想起来很感谢阮一峰的推荐,趁着过年买了智谱的 Pro 版 Coding Plan,后来纷纷涨价,现在只后悔当时没直接上 Max。搭配 Claude Code 真的很爽,当然 Codex 也很香,不过最近养 OpenClaw 花得有点快……反而工作里没怎么用上 Codex 了 有了 vibe …

    最近用 Claude Code 接 GLM-5 来 vibe coding,有了 AI 加持,解决问题和写需求的速度突飞猛进。更关键的是,以前睡眠不足时经常遗漏边界情况导致的 bug,现在少了很多 回想起来很感谢阮一峰的推荐,趁着过年买了智谱的 Pro 版 Coding Plan,后来纷纷涨价,现在只后悔当时没直接上 Max。搭配 Claude Code 真的很爽,当然 Codex 也很香,不过最近养 OpenClaw 花得有点快……反而工作里没怎么用上 Codex 了 有了 vibe …

  • 关于 sharedata 的使用

    发布于 文章 1069 字 3 分钟

    SkynetSharedata引用计数

    最近上了全节点热更配置表。起因是有一次热更配置表时没有覆盖全节点,导致数据不一致而 traceback,中断了一个重要流程。由于读表服务和目标服务的相关性比较隐蔽,热更 review 时没能发现这个问题,于是决定后续所有配置表都采用全节点热更。 全节点热更上线后,发现内存会持续增长,多次热更后尤为明显。同事排查后发现是 sharedata 服务的内存一直在涨,应该是旧配置表没有释放导致的。这件事比较复杂,搞清楚后很容易又忘了,决定写篇博客记录一下。 为什么要有 sharedata 各服务的配置内 …

    最近上了全节点热更配置表。起因是有一次热更配置表时没有覆盖全节点,导致数据不一致而 traceback,中断了一个重要流程。由于读表服务和目标服务的相关性比较隐蔽,热更 review 时没能发现这个问题,于是决定后续所有配置表都采用全节点热更。 全节点热更上线后,发现内存会持续增长,多次热更后尤为明显。同事排查后发现是 sharedata 服务的内存一直在涨,应该是旧配置表没有释放导致的。这件事比较复杂,搞清楚后很容易又忘了,决定写篇博客记录一下。 为什么要有 sharedata 各服务的配置内 …

  • ai 主旋律

    发布于 文章 1289 字 3 分钟

    Ai

    没想到这就变成了年更博客,完全没想到啊……感觉时间被偷走了一样 这一年里,终于搞清楚了困扰我多年的身体bug的根本原因。有些问题原来是由基因决定的,活了这么久竟然从没往这方面想过。好在今年的体检指标比去年有了明显改善,往后会更加重视健康 这段时间,AI俨然成了集团的主旋律。到处都在宣讲"all in AI",但肉眼可见的实际落地却寥寥无几。这越来越像一场不得不参与的豪赌——不参与可能直接出局,参与了又担心最终沦为AI的打工人,在AI搞不定的地方被临时拉上线救场hhhhh 就个人体验而言,AI在编 …

    没想到这就变成了年更博客,完全没想到啊……感觉时间被偷走了一样 这一年里,终于搞清楚了困扰我多年的身体bug的根本原因。有些问题原来是由基因决定的,活了这么久竟然从没往这方面想过。好在今年的体检指标比去年有了明显改善,往后会更加重视健康 这段时间,AI俨然成了集团的主旋律。到处都在宣讲"all in AI",但肉眼可见的实际落地却寥寥无几。这越来越像一场不得不参与的豪赌——不参与可能直接出局,参与了又担心最终沦为AI的打工人,在AI搞不定的地方被临时拉上线救场hhhhh 就个人体验而言,AI在编 …

  • 又溢出了

    发布于 文章 209 字 1 分钟

    Lua

    海外上线了,首日无事故,总算平平安安。最近抓了个黑产,发现又是熟悉的溢出, 和旧文如出一辙 ,真是尴尬 这次遭殃的是交易行,也是利用相乘后,一个巨大的数量变成一个小的消耗,刚刚好可以负担得起,于是他就上架了庞大数量的虚拟货币(153722867280914*120000),一直卖一直拿钱 …… 同样的,检查的地方也只是不让负数通过,没有留意到上限,哎,十分尴尬 问了下其他项目,似乎也没有通用校验的,有点囧 rz 先写个通用校验函数吧

    海外上线了,首日无事故,总算平平安安。最近抓了个黑产,发现又是熟悉的溢出, 和旧文如出一辙 ,真是尴尬 这次遭殃的是交易行,也是利用相乘后,一个巨大的数量变成一个小的消耗,刚刚好可以负担得起,于是他就上架了庞大数量的虚拟货币(153722867280914*120000),一直卖一直拿钱 …… 同样的,检查的地方也只是不让负数通过,没有留意到上限,哎,十分尴尬 问了下其他项目,似乎也没有通用校验的,有点囧 rz 先写个通用校验函数吧

  • 当lua_sharedata碰上上限

    发布于 文章 567 字 2 分钟

    SkynetSharedata

    最近在使用sharedata共享配置表的时候遇到了问题,报了stack overflow,最小复现的例子贴在这里了。之前因为忙,没有细读过sharedata 的代码,这次事故正好临急抱佛脚读一遍,匆忙记点笔记,以后好回忆起来。sharedata是为了不同服务之间共享配置表而诞生的,通过sharedata接口拿到的是一个 c 的代理对象,并不直接持有配置表本身。正是通过这个代理,实现了配置表的无感热更,以及服务之间的配置内存共享。对于字符串来说,这个C代理持有的并不是字符串本身,而是一个索引,指向 …

    最近在使用sharedata共享配置表的时候遇到了问题,报了stack overflow,最小复现的例子贴在这里了。之前因为忙,没有细读过sharedata 的代码,这次事故正好临急抱佛脚读一遍,匆忙记点笔记,以后好回忆起来。sharedata是为了不同服务之间共享配置表而诞生的,通过sharedata接口拿到的是一个 c 的代理对象,并不直接持有配置表本身。正是通过这个代理,实现了配置表的无感热更,以及服务之间的配置内存共享。对于字符串来说,这个C代理持有的并不是字符串本身,而是一个索引,指向 …

  • debian12安装nvidia驱动

    发布于 文章 534 字 2 分钟

    DebianNvidiaOperating System

    事缘公司使用4年的台式机可以自购了,第一时间买回家准备搞本地大模型。奈何死活装不上NVIDIA驱动,搞的我都emo了。最近娃丢回老家了,正好有空研究一下 显卡驱动需要编译后加载到内核中,而Intel牵头搞的SecureBoot则通过主板固件检查内核是否被篡改,通过SecureBoot启动的内核,也会同步校验内核模块是否签名,未签名的模块就禁止加载。原理大概就是这样,但是debian官方教程没解释,基本就是让apt装个nvidia-driver的包就完事了……看了很多教程都是在纠结Nonveau的 …

    事缘公司使用4年的台式机可以自购了,第一时间买回家准备搞本地大模型。奈何死活装不上NVIDIA驱动,搞的我都emo了。最近娃丢回老家了,正好有空研究一下 显卡驱动需要编译后加载到内核中,而Intel牵头搞的SecureBoot则通过主板固件检查内核是否被篡改,通过SecureBoot启动的内核,也会同步校验内核模块是否签名,未签名的模块就禁止加载。原理大概就是这样,但是debian官方教程没解释,基本就是让apt装个nvidia-driver的包就完事了……看了很多教程都是在纠结Nonveau的 …

  • 项目上线啦

    发布于 文章 2001 字 5 分钟

    SkynetLuaGoscon

    历时 3 年半,项目终于上线啦,打开 tig 翻到仓库的开头,看看提交历史,还是有点感慨的,实在没想到要花这么久。简单聊点线上问题吧 这次上线最刺激的是,开服前半小时,发现昨晚压测的服务器崩掉了,原因是聊天服务内存太大导致 OOM。于是用 memlimit 紧急止血,出问题的方法挂到模块上方便后续线上热更,然后打包,重启,紧赶慢赶在开服前几分钟搞完,提前开服错峰。真的非常非常刺激,当然,线上也没有出现这个问题,我们压测的例子相对比较极端,一大堆人每 30 秒集体跳场景,注册场景聊天的地方又做了锁 …

    历时 3 年半,项目终于上线啦,打开 tig 翻到仓库的开头,看看提交历史,还是有点感慨的,实在没想到要花这么久。简单聊点线上问题吧 这次上线最刺激的是,开服前半小时,发现昨晚压测的服务器崩掉了,原因是聊天服务内存太大导致 OOM。于是用 memlimit 紧急止血,出问题的方法挂到模块上方便后续线上热更,然后打包,重启,紧赶慢赶在开服前几分钟搞完,提前开服错峰。真的非常非常刺激,当然,线上也没有出现这个问题,我们压测的例子相对比较极端,一大堆人每 30 秒集体跳场景,注册场景聊天的地方又做了锁 …

  • 首次付费测

    发布于 文章 664 字 2 分钟

    Skynet

    游戏终于走到了付费测试阶段啦,头几天遇到了一些奇奇怪怪的问题,记录一下 首先是内存问题,压测没有测到反复登录的情况,线上发现内存占用逐渐上升,到了一个玩家 40M 的惊人水平。正想着手查哪个模块耗的内存多,涛神下来讨论问题,让我先看一下 uniqtask 的返回,结果好家伙,基本上每个 agent 服务上都挂了 400 多个协程在上面,review 下代码发现每个协程都拿着一个角色,导致内存没法释放。兹事体大,没有立即解决挂起的协程了,先热更修复这个代码的问题,然后降低 agent 的复用次数, …

    游戏终于走到了付费测试阶段啦,头几天遇到了一些奇奇怪怪的问题,记录一下 首先是内存问题,压测没有测到反复登录的情况,线上发现内存占用逐渐上升,到了一个玩家 40M 的惊人水平。正想着手查哪个模块耗的内存多,涛神下来讨论问题,让我先看一下 uniqtask 的返回,结果好家伙,基本上每个 agent 服务上都挂了 400 多个协程在上面,review 下代码发现每个协程都拿着一个角色,导致内存没法释放。兹事体大,没有立即解决挂起的协程了,先热更修复这个代码的问题,然后降低 agent 的复用次数, …

  • 压测周

    发布于 文章 933 字 2 分钟

    Skynet

    最近一周做压测,发现了几个 skynet 使用上的问题,记录一下 目前的进程大概分成 center、login 和 room 三种,login 用来承接玩家连接,做一些单机玩法,center 做一些玩家间的附带玩法,比如公会、排行榜,room 处理房间相关的战斗逻辑和 aoi 剪裁 首先发现的问题是建公会相关的。压测的时候居然不是 center 进程挂了,而是 login 进程先挂掉了,公会服务负载还比较低;还附带副作用:建立的公会多了,就再也起不了服务器,center 一定会在启动的时候挂掉。 …

    最近一周做压测,发现了几个 skynet 使用上的问题,记录一下 目前的进程大概分成 center、login 和 room 三种,login 用来承接玩家连接,做一些单机玩法,center 做一些玩家间的附带玩法,比如公会、排行榜,room 处理房间相关的战斗逻辑和 aoi 剪裁 首先发现的问题是建公会相关的。压测的时候居然不是 center 进程挂了,而是 login 进程先挂掉了,公会服务负载还比较低;还附带副作用:建立的公会多了,就再也起不了服务器,center 一定会在启动的时候挂掉。 …