杂谈
2026-03-11
将电脑大部分权限,交给AI是个可怕事
你敢把手机交给人装软件?电脑呢?
你敢运行来源不明的插件/SKill?
若要安装,我会将它与宿主机隔离。我觉得让AI操作电脑,这种情况AI算“半个病毒”。如果机主是个电脑菜鸟,我认为是在养蛊不是养虾。
但是,装来干什么?我是坚持问题分解和人做决策。web端纯文本其实能解决我日常大部分问题了,且web端免费
2026-02-22
我期望编程领域有一套新的有关ai的程序设计范式。以下纯粹糊说八道。
比起3年前ai说的一堆糊话,现在大多数已经很少见。在拆解问题和更准确的描述后,以自然语言让ai确实能做到一些工作。但是【自然语言】的表达不具备’数学’的标准化。
在我们编程领域中,有一种概念叫到【幂等性】,意思是,不论对同一...
Click to read more ...
skynet我的一种lua代码组织方式
请注意本文讨论的是Lua代码的目录组织而非C代码
之前参与的几个项目都是直接以origin/skynet作为工程根目录。但当在创建新工程时,我开始思考工程目录结构的问题。
此前,为了更加方便,我给debug_console的性能参数增加排序功能
但我不想直接修改原有代码,也不希望在内网维护修改后的skynet分支。
基于搜索优先级,加载lua代码
假设此时我有另外一份debug_console代码放在./app/service/debug_console.lua。根据启动config和https://github.com/cloudwu/skynet/blob/master/lualib/loader.lua#L11,只需将./app/service在luaservice选项...
Click to read more ...
skynet定制加载loader
经历了好几个skynet项目,有些项目细节很适合在lualib/loader.lua里实现
区分service是skynet内置的还是游戏项目新建的
针对游戏项目新建的service在newservic成功后,有额外的初始化工作
记录这些地址,后续广播消息用
skynet.dispatch额外需要的消息协议
当然,针对前两项是可以在项目早期对skynet.newservice包装一层新接口实现,并规范项目成员使用新接口myapp.newservice
function myapp.newservice(name, ...)
local addr = assert(skynet.newservice(name, ...
Click to read more ...
skynet sharetable.loadtable相同引用table会深复制
部分策划配置表,会在后端代码运行期间进行二次转换。比如,抽卡以池子类型drawType字段和消耗货币costCurrencyType区分业务逻辑,而它们定义在同一张表draw.lua
local datas = {
{id = 1, drawType = 1, costCurrencyType = 1, ...}
{id = 2, drawType = 1, costCurrencyType = 2, ...}
{id = 3, drawType = 2, costCurrencyType = 1, ...}
{id = 4, drawType = 3, costCurrencyType = 1, ...}
{id = 5, drawType = 3, costCurrenc...
Click to read more ...
git hook进行luacheck
git hook
参考官方git hook文档,使用pre-commit钩子可以在提交前可对代码进行检查。以下让ai总结各个钩子的说明和例子
客户端钩子 (本地开发使用)
钩子名称
触发时机
作用描述
具体使用例子
pre-commit
执行 git commit 后,编写提交消息前
检查即将提交的代码快照
运行 ESLint 检查、执行单元测试、检查代码中是否遗留了 console.log 或临时密钥。
prepare-commit-msg
默认消息创建后,编辑器启动前
自动生成或...
Click to read more ...
luarocks里一个纯lua热更的方案 xlua实时热更示例
luarocks里搜索到的热更方案https://luarocks.org/modules/jinq0123/hotfix,该方案也是笔者在好多年前,在工作中看到别人用到,自己也在后面的项目尝试使用。
以文件为热更单元
满足大部分热更情况,不能热更内容将在后面选节提及,只稍加注意就能避免
对工程无入侵式编码
简单说一下,lua脚本return table的热更过程
若value不是function
新table的新增值,复制到旧table
新、旧table的同层级metatable,递归执行以上操作
若value是function
旧function的upvalue复制到新functi...
Click to read more ...
搭建loki日志聚合
loki
据我不严谨的搜索,loki发布于2020年左右,截至本文落笔记目前仍在不断变化中。所以在开始前非常有必要提醒读者,本文内容用到的loki组件版本:
grafana/loki:3.5.8
grafana/grafana:12.2
grafana/alloy:v1.11.3
此前,我没有搭建聚合日志平台的经验。本次我主要是利用 AI 翻译和讲解和反复阅读官方 loki 3.5.x 教程。
如果你阅读过quick-start和tutorial,你会发现这两篇教程并没有手把手教你搭建,更多是界面使用教程。对于期望自己搭建 loki 的新手来说,并不是一个好的开始。
本文的初衷,是给我司的游戏项目多节点部署(非 docker、非 k8s)场景,搭建一个日志聚合平...
Click to read more ...