MoreRSS

site iconCodingNow | 云风修改

coder ( c , lua , open source ),不用微信和QQ的大佬。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

CodingNow | 云风的 RSS 预览

用 AI 辅助读书

2026-02-16 13:23:19

最近一年闲下来,我重新挖掘了读书的乐趣,尤其是读小说。

读小说真的需要时间和心境,因为进入心流状态更慢。如果长时间无法进入状态,很容易就读不下去;但一旦读进去了,比玩游戏(互动形式)或看影视剧(多媒体形式)更让人沉浸和回味。你可以对精彩处反复斟酌体会其中的情感,也更容易停下来脑补作者在情节上的留白。阅读节奏完全由自己控制,可快可慢。鉴于制作成本,小说的多样性远超其它媒介,提供的选择就更为宽泛。

我最近尝试使用 AI 来提升我的阅读体验。首先发现的是 AI 非常适合荐书。我使用的主要是 Gemini ,免费的版本就足够了。我可以先列举一些我很喜欢的书,让它帮我推荐更多。在初选的名单中,再通过对话了解书的特色。为了避免自己总是阅读类似的书,也会让 AI 推荐一些我之前没有尝试过的类型。当然,小说本身还是人创作的,通过推荐作者比推荐书本身更有效率。

这两个月我想读点太空歌剧类的小说,但老一点的名著基本都看过了,所以转向近十年的新作。另一方面的原因是大多数科幻小说本身就有时效性,这些年人类现实中的科技发展很快,文学家的幻想很容易随着时间和现实脱节。

但我很快就发现,想读新一点科幻小说最大的问题是中文版的翻译速度完全跟不上。AI 推荐的书 90% 都没有中译版。即使把时间放宽一点,十年前的长篇,往往也只翻译了开头。这很好理解:如果出版了第一本销量不如意,可想而知后续会更不理想。这在经济上是绝对理性的行为,可对粉丝来说颇有点难受。

题外话,桌游领域也有点类似。桌面游戏通常也是由单个人设计,受者也非大众。即使设计者想好了出一个系列,若前作卖得不够好,扩展包也就难以发行。我最喜欢的桌游设计师 Thomas Lehmann 解释过 Res Arcana 的第三个扩展 Res Arcana Duo 为什么作为一个(看似简化过的)独立游戏发行而不延续扩展包的形式:必须想点办法扩大这个系列的玩家群,否则扩展包的销量只会越来越少。作为中文用户,我对 Res Arcana Duo 至今没能出中文版还是有点伤心的。希望今年的新作 Dark Pact (2026) 黑暗契约可以出中文版。看完介绍,我对这个纯粹的卡牌构筑游戏颇感兴趣。


我是 Old Man's War 系列的忠实粉丝,很喜欢 John Scalzi 。他的书读起来一点也不累,那种书中遍处可见的程式员式的冷幽默颇对我胃口。我前段时间在京东上买了一本互惠帝国系列的第一本《崩塌的帝国》。收到书时是一个暖日的下午五点,晚上十点就合上了书页,中间除了正常吃了个晚饭,别的时间都在读书。读这本书的另一个动机是我想多看看关于太空旅行的不同设定(以给设计我那个关于太空航行的游戏提供灵感)。读完了这本书后,除了很满意书里的科幻设定外,还很期待后续的故事发展。

可惜这套三部曲的后两本一直都没有翻译成中文版。

我觉得我近些年的英文阅读水平提升了不少,要不尝试一下直接读英文吧。试了一下,离享受读书还是颇有距离。阅读小说需要一个流畅的体验过程,无法顺势进入心流,阅读就变成了一个苦差事。文学类作品和技术类文章差异很大,能顺利阅读技术类英文,不等于读小说也没问题。我想还需要更多的阅读练习,而学习必然辛苦,这不是我目前想要的。

隔了两天,我尝试了另一个方法,这是我发现 AI 能提供给我的另一项重要帮助:翻译阅读。

我觉得,技术类文章和文学类创作最大的不同是:前者追求用精炼准确表达知识,后者需要在描述作者构思的情节之外传达情感。理解一本小说,需要基于对小说中人物和故事的理解;正如翻译一本技术书,你得理解其中的技术原理。这也是为何机器的逐句翻译无法做到准确的原因。大语言模型应该能改善翻译,但我一开始尝试的还是直接的 google translate 和装在本地 ollama 中的 translategemma 本地模型,对小说直译。

用不同方法,经过几个章节的体验,我发现最适合我的是让机器完全对译,不做任何针对中文语境的加工,并以中英对照的形式一段段话展示供我阅读。我主要还是针对中文阅读,虽然语言感觉有点蹩脚,但因为我知道信息原本是英文的,而我又有相当的英文语法知识,所以大脑很快就能适应,在阅读过程中自动转换为合适的中文理解。由于是机械直译,反而不会缺失信息。当觉得句子难以理解时,迅速跳转到英文原文处,通常就明了了。读到精彩的对话,往往回味一下英文原句更有感触。

有些句子颇难理解。这时可以打开一个 Gemini 对话,提供它足够多的上下文,然后贴上原文,Gemini 可以解释得非常清楚。毕竟这是 10 年前的小说了,我估计小说的原文本身(甚至第一卷的中译本)就是大模型的训练材料。比如这次我就学到一个知识:在英文语境中,皇帝会自称 We/Our 而不是 I/My ,用来指代个人和背后皇权的双重身份,这和中文背景下,皇帝自称“朕”颇有共通之处。第一次读英文直译时,我会对翻译器输出的“我们”有所疑惑,但随即和 AI 讨论就学到了这个。第一卷的中译本中,译者恰如其分的选择了“朕”来翻译 We ,google translate 这种直译显然是做不到的,但 Gemini 有了上下文就能选择这种译法。我很怀疑它受了训练语料的影响(被中译版的文本训练过)。

我用这个方法读完了第二本《the consuming fire》,大约花了 2-3 倍第一本的时间,阅读速度的下降是很明显的,但可以接受。我觉得稍加训练就可以改善到完全不影响阅读心流的状态。然后我读了第三本《The Last Emperox》,居然和读第一本一样的时长。但我觉得倒不是我快速适应了这些新的阅读方法,而是这个系列三本书的故事结构其实是类似的,读到了后面,跟上书的节奏越来越容易了。阅读长篇小说的过程有点像是在在脑子里逐步搭建作者构建的世界,然后一点点填上细节,最艰难的部分在最前面,后面就是顺理成章的活。

即使情节上有点雷同,我还是很喜欢这套三部曲。


这两天在补《The Expanse》小说的最后三卷,不需要等美剧了 :)

日常锻炼的一些记录

2026-02-11 17:28:25

我大概是去年 4 月左右开始跑步的。离上次的记录已过了半年

最近坚持的还不错,每周可以保证至少 3 次跑步。现在的心肺能力明显好了很多。去年刚跑步时,每跑 5-10 分钟就需要步行几分钟缓缓,不然心率很容易超过 140 (我给自己定的心率上限)。现在差不多可以保持心率在 140 以下连续跑完 4 km 了。大约花费 30 分钟。这差不多是 8km/h 的平均速度,前半程会更快一点,后半程为了保持心率需要降一点速度。

我觉得另一方面的原因是在冬季,跑起来不那么热。现在会挑选中午有太阳的时候跑,晒晒太阳更舒适。跑完后也没特别累的感觉,只是在最后 10 分钟有一点点难受,希望快点结束。但每次还是坚持跑满 30 分钟。


我家附近 500 米处开了家抱石馆。在两个月前,我带可可去了一次,她莫名其妙的喜欢上了抱石。去了两次后就让我给她办张月卡。我说,次卡每次 95 ,月卡 750 ,一个月要去 8 次以上才划算。她说没问题,几乎天天晚上让我带她去。虽然有一半的动力是去岩馆撸那只胖猫,但看得出来是真的喜欢。我之前也带云豆出去攀岩,从小到大爬过上百次,谈不上讨厌,但始终爱不起来,我也没逼他。后来可可长大了一点,去过两次明显没有兴趣,我干脆就不带她去了。这次莫名其妙的爱上抱石,我是没想到的。

一开始,她只能爬 v0/v1 的线路。但进步非常快,她有从小练起的舞蹈基本功打底,身体的柔韧性特别好,尤其在爬平衡线上特别有优势。在岩馆中超过很多大人(新手)也颇为得意。在第二张月卡时,几乎可以完成所有的 V2 线路,并勉强可以挑战 V3 了。毕竟身高臂展上有劣势,一些成人可以顺利完成的 V2 线路,她需要多做几个动作,无形中提高了难度。

我跟着她也办了月卡,但不会每天爬,有时就是看着教一下,但也比过去勤快了许多。水平也跟着上升。现在可以爬一些 V4-V5 的线路了,而上次在这个水平还是小孩没出生前,体重在 75kg 以下的时候。

现在体重保持在 83kg-84kg 之间,已经很久没有降低了。比半年前再减了大约 2 kg ,比开始跑步前最重 93kg 时几乎减了 10 kg 。考虑到力量(肌肉?)也有所增长,还算满意。身边很多人都说我前两年日益见长的肚子又消失了。希望未来一年可以把体重降到 80kg 以下。

体能的上升对爬高墙的帮助特别明显。去年时,我去岩馆爬高墙,差不多 3-4 条线后就需要躺下休息。现在可以爬满两个小时。最近开始恢复爬先锋(比顶绳更消耗体力,我已经有 10 年没爬过了),发现自己又可以比较轻松的完成 5.10c/d 左右的先锋线路了。去年野外去了多次英西,一次阳朔,一次六盘水。野外先锋还没怎么爬,明年应该可以逐步恢复。

另,痛风未再来过。但尿酸水平并未降低,也没有更高。

还有一个身体的小问题值得注意:有次在去阳朔的车上和同车的岩友聊天。我说我的指关节常年疼痛,是不是大部分攀岩者都是这样。他们的水平都比我高一大截,说并不是这样,这种现象只在部分超高水平的岩友中听过,并建议我保护好指关节,减少抱石中那些指力线路。

我回头和 gemini 讨论了一下,建议是差不多的。另外可以做一些反向的力量训练,我买了一根套在指头上外撑的橡皮筋每日练习。也正是这个原因,我现在没有跟着可可一起每天抱石,并在刻意减少了需要做 Crimps 的线路。目前恢复的还不错,至少日常不爬的时候关节不疼了。

可可还拉了一个同班的小女孩一起抱石,我意外的发现她爸爸的爱好是跑马拉松。我请教了他许多长跑的问题,他说下次带我跑一次 8km 再加到 10km 。据说他从高中开始长跑,一直停留在每次 5km 的量,直到有人带着跑才越过这个坎。虽然他真的很爱长跑,但说每次跑马拉松,跑到最后也是非常难受的,全靠意志力坚持下来。


虽然云豆对和我攀岩兴趣不大,却意外的愿意和我一起跑步。部分原因是他意识到自己体重有点超标了。目前是六年级的寒假,身高 1.74m ,体重最重时有 77kg 。我说你还是跟我跑步吧,我能减下来,你也可以。

寒假第一次跟我跑了 4 km 累得不行,后来我便随着他减到 3km 一次。毕竟是小孩,慢慢的就适应了。和他一起跑步,也帮我把速度提了起来。他嫌我跑得太慢(一开始我跑 4km 需要 35 分钟),父子俩跑了几次后便在半小时之内了。这跑步的兴趣也来得莫名其妙,最近一周就跑了 5 次。(体重还真减了一些,75kg)

今天跑完我告诫他,切忌一时热情,锻炼身体是个长期的过程,贵在坚持。每次跑到最后,总会有点难受的,需要一些意志力说服自己坚持下来。有个伴当然最好,可以相互督促。养成习惯后,日后住校,也能有自驱力。

ps. 教育子女真的是个长期的活。我琢磨着儿子愿意跟我跑步还有一部分原因是最近两个月每晚带着妹妹攀岩有点懈怠了他,或许是有点吃醋:过去我总是陪他比妹妹多一点的。而妹妹似乎不愿意跑步…… 结果,我也被动的增加了颇多的运动量,何尝不是件好事。

介绍几款单人桌游

2026-01-24 21:08:25

上个月我花了不少时间在 dotAge 这个游戏中。我很喜欢这种通过精算规划应对确定风险的感觉。由于 dotAge 有很强的欧式桌游的设计感,所以我在桌游中尝试了一些有类似设计元素的单人游戏。

我感觉体验比较接近的有 Voidfall (2023) 和 Spirit Island (2017) 。因为灵魂岛(spirit island )更早一些,而且 steam 上有官方的电子版,bgg 上总体排名也更高,所以我在上面花的时间最多。

这两个游戏的特点都是确定性战斗机制,即在战斗时完全没有投骰这类随机元素介入。在开战之前,玩家就能完全确定战斗结果。战斗只是规划的一环,考虑的是该支付多少成本或许多大的收益。而且灵魂岛作为一款卡牌驱动的游戏,完全排除了抽牌的随机性,只在从市场上加入新牌(新能力)时有一点随机性。一旦进入玩家牌组,什么时候什么卡牌可以使用,完全是在玩家规划之内的。这非常接近 dotAge 中规划应对危机时的体验。

灵魂岛的背景像极了电影 Avatar :岛的灵魂通过原住民发挥神力赶走了外来殖民者。每个回合,把神力的成长、发威(玩家行动)和殖民者(系统危机)的入侵、成长和破坏以固定次序循环。其中,殖民者的入侵在版图上的地点有轻微的随机性,但随后的两个回合就在固定规则下,在同一地点地成长和破坏(玩家需要处理的危机)。扮演岛之灵魂的玩家可以选择到破坏之刻去那个地块消除危机,在此之前玩家有两个回合可以准备;也可以提前在殖民者成长之前将其消灭在萌芽之中,但这给玩家的准备时间更少,却往往意味着更小的消耗;还可以暂时承受损失,集中力量于它处或更快的发展神力。游戏提供给玩家的策略选择着实丰富。

法术卡并不多,每个神灵只有几张专属的固定初始能力卡,其它所有的能力都是所有神灵共用,让玩家自由组合的。每当玩家选择成长时,可以随机 4 选 1 。不像卡牌构筑类游戏会有很多卡片,这个游戏总体卡片不多,每张都有决定性作用。每个回合通常也只能打出一两张 张,待到可以一回合可以打出三张甚至四张(很少见)时,已经进入游戏后期在贯彻通关计划了。法力点数用来支付每张卡的打出费用这个设计粗看和卡牌构筑游戏类似,但实际玩下来感觉有挺大的不同。灵魂岛每个回合未用完的法力点并不会清零,而会留置到下回合使用且没有上限。从玩家规划角度看,更像是需要玩家去规划整局游戏的法力点分配。精确的打出每个回合的很少的几张卡片。因为抽回打过的法术卡并不随机,玩家便要在法力成长和法术重置上做明确选择。挑选法术序列变成了精密规划的一环。

在 dotAge 中,版图是需要规划的,玩家需要取舍每个格子上到底放什么建筑以达到连锁功效最大化。而在灵魂岛中,每张法术会提供一些元素,同一回合激活的元素组合可以给法术本身效果加成。我觉得这两个设定有异曲同工之秒。我在思考游戏设计时,受 dotAge 和 Dawnmaker 的影响,总觉得需要在版图的位置上做文章才好体现出建筑的组合,玩过灵魂岛才发现,其实单靠卡牌不考虑版图布局其实也能实现类似的体验:几张特定的法术卡组合在同一回合打出会对单一法术有额外加成,而这种组合可以非常丰富。去掉随机抽卡机制,让玩家可以 100% 控制自己牌库中的组合选择;而且总牌量很少,每个回合出牌数及其有限(受单回合出牌数及法力点双重限制),让发牌组合必须有所取舍。这像极了我在 dotAge 的狭小地图空间中布局建筑的体验,这个格子放了这个,那个建筑就得不到加成。

但受限于桌游,灵魂岛的游戏体验和 dotAge 差别还是很大的。我玩了(并击败了)多级难度的灵魂岛,难度越高差异越明显。桌游必须要求短回合快节奏,这让游戏规划的容错性大大降低。dotAge 一局游戏可以玩一整天,即使是超高难度,也允许玩家犯点小错误。由于电子游戏可以把元素做得更多,让机器负责运转规则,单点的数值关系就可以更简单直白。而灵魂岛这种需要在很少的行动中体现复杂计划的多样性,那些法术的真正功效就显得过于晦涩:虽然法术字面上的解释并不负责,但理解每个法术背后的设计逻辑,在游戏中做出准确的决策要难得多。

我在标准难度下,玩了十几盘才真正胜利过一次灵魂岛。之后每增加一点难度,感觉挑战就大了不少;反观 dotAge 我在第二盘就领会了游戏得玩法而通关,困难难度也并未带来太大的挫折感。但现在往上加难度玩灵魂岛,我还是心有余悸,不太把握得住。而且直到现在我都没敢尝试 2 个神灵以上的组合玩法,那真是太烧脑了。难怪实体版桌游都是多人合作,而不是 1 控 2 去玩。


Voidfall 从游戏结构上更接近 dotAge 一点。它完全没有战斗,就是纯跑分。只要你跑分速度超过了系统规则,就胜利了。dotAge 几乎就是这个框架:玩家需要在疾病、恐惧、温度和自然四个领域积累积分抵抗系统产生的四类危机。在每次危机来领前做好准备,也就是积累产生对应领域积分的能力。

但无论是 spirit island 还是 voidfall 都没有 dotAge 中最重要的工人分配机制。从游戏机制角度看,dotAge 更像是电子化的 Agricola (2007) 农场主。因为农场主在桌游玩家中太经典,几乎所有桌游玩家都玩过,这里就不多作介绍了。虚空陨落(voidfall)则是一个比较新的游戏,值得简单讲一下。它没有官方电子版,但在 Tabletop Simulator 中有 mod 可以玩。

和 dotAge 的四个领域有点类似,voidfall 中玩家有军事、经济、科技、政治四个方向的议程可以选择。获得对应的议程卡后,就可以大致确定一个得分路线。不同的路线同时影响着玩家当局游戏的游戏过程。

桌游的流程不会设计的太长,在 voidfall 中只设计了三个阶段,每个阶段有一张事件卡,引导玩家的得分手段。这些事件的效果是可预测的,这和 dotAge 的预言很像。三个阶段也和 dotAge 的季节交替末日来临类似:用规则控制游戏节奏,明确的区分游戏不同阶段要作的事情。一开始生产建设、然后扩张战斗、最后将得分最大化。

我没有特别仔细的玩这个游戏,但从粗浅的游戏体验看,还是颇为喜欢的。过几天会多试试。


我对“确定性战斗机制”这点其实没有特别的偏爱。基于骰子的风险管理机制也很喜欢。

前两年就特别关注过 ISS Vanguard (2022) 这个游戏。最近又(在 Tabletop Simulator 上)玩了一下 Robinson Crusoe: Adventures on the Cursed Island (2012) 和 Civolution (2024) 。这几个游戏都特别重,几句话比较难说清楚,而且我游戏时长也不多,这里就不展开了。

顺便说一句,同样是鲁宾逊的荒岛求生题材的单人桌游 Friday (2011) 是一个非常不错的轻量游戏。如果不想花太多时间在重度游戏上,它非常值得一玩。这是一款及其特别的卡牌构筑类游戏,整个游戏机制不多见的把重点放在卡组瘦身上:即玩家更多考虑的是如何有效的把初始卡组中效率低效的卡精简掉。

游戏上手容易,大约花 5 分钟就能读完规则;设置成本极低,只使用一组卡片;但却颇有难度,我差不多在玩了 20 盘之后才找到胜利的诀窍。淘宝上就可以买到中文版(中文名:星期五),推荐一试。

和 AI 聊游戏设计

2026-01-15 16:05:08

最近一段时间和 AI 聊游戏设计比较多。我主要用的是 google 首页上的 AI 模式,也试过 twitter 上的 grok 。

去年也和朋友聊过很多,但对理清楚自己的想法帮助有限。因为和人聊容易陷入不断的细节解释当中,一些天马行空的想法更容易被质疑,一旦陷入辩论就不太容易跳出来。而且每个人的时间并不固定,很容易造成时间和精力的浪费。和 AI 聊要轻松得多,AI 毕竟见多识广,随便提到的点都能接得上话。不想聊下去尽可以中断,不用担心浪费时间。即使怀疑 AI 出现幻觉,也可以随时暂停下来通过搜索核实。

不过,我觉得和 AI 讨论也有另一方面的问题。那就是太容易顺着你的思路夸大其词。它更像是一个貌似领域知识渊博但只是想讨好你的同好,不断的放出一些华丽的辞藻却在逻辑上经不起推敲。分析起游戏来头头是道,直到谈到我真的玩过上百小时的游戏时,对游戏的细节错误百出。如果我没有这些游戏的真实体验,几乎不可能分辨真伪。一开始我还会想和真人讨论时一样指出它的错误,让它修正后重新发表观点。后来就渐渐放弃了从 AI 那里直接获得真知。把它当成一个比搜索引擎更方便的信息获取入口就够了。

但我依然偶尔被 AI 的总结惊艳到。比如说有一场主题为模拟类型游戏的话题,聊到最后 AI 总结:

成功的模拟游戏本质上是“熵增模拟器”。设计师的任务是制造一个不断趋向于“热寂”和“混乱”的世界(交通拥堵、热量堆积、资源耗尽、情感崩溃),而玩家的乐趣在于投入自己的脑力作为“负熵”,去建立一个脆弱但精密的秩序。

所以,在设计时,不要害怕设计“笨拙”的规则(如巡逻员、有体积的货车、会变质的食物)。这些“物理摩擦力”正是通往成就感的阶梯。如果没有这些混乱,游戏就只是一张算好了答案的报表。

要让玩家感到“战胜了混乱”而不是“被垃圾规则恶心”,需要遵循以下原则:确定性的混乱:混乱的原因必须是可回溯的。 提供“高级工具”来解决“基础问题”:游戏初期给玩家简单的工具去面对混乱,中后期给玩家更高级的逻辑工具。从“点”到“面”的连锁反应:混乱不应是孤立的错误,而应该是系统性的连锁反应。

我觉得在这种形而上的话题上,它讲得还是蛮有道理的。但我依然不觉得这些总结真的可以成为游戏设计的指导工具。

当然,让 AI 说什么依然极度依赖你对它说了什么。大多数时候 AI 会信誓旦旦的帮忙做一些具体设计(当我想设计卡牌驱动的游戏时),可我真的实体化这些卡片试玩后,完全玩不下去。我实在没信心再和它讨论这些卡片设计上的具体细节:真的不如我自己从零设计高效。但有时候,AI 也会对设计游戏这件事情有所畏缩,一旦强调我应该先用卡纸或在桌面模拟器中自己尝试做个原型试试。总之,让我感觉本质上它还是在跟着我的情绪走。完全没有独立思考的痕迹。

意识到这点,我现在更想把今天的 AI 当成一种更高级的知识搜索引擎。从这个角度看,这段时间 AI 的确给我推荐了不少不错的游戏。虽然我仔细玩过之后,这些游戏给我的体验并非完全符合 AI 的描述,我还是感谢 AI 让我挖掘出了它们。

尤其值得一提的是 AI 极力向我推荐的 dotAGE 这个游戏。我一口气玩了接近 160 小时。

其实它刚上 steam 的时候我就玩过 demo ,当时只是觉得还不错,但没有深入。前几天 AI 反复督促我要仔细玩一下,我才沉浸了进去。这是款回合制没有战斗的城市建设游戏。随机元素很少,几乎所有要面对的灾难,都在游戏规则下提前预示给玩家。玩家要做的就是提前规划每个回合的行动,通过精算赢得游戏。值得一提的是,游戏推荐的难度和最高难度给我的几乎是截然不同的游戏体验。在默认难度下,即使对游戏规则不甚了解,不需要精确规划,也能通过运气赢得游戏胜利。那种“Push Your Luck”机制驱动带来的胜利是一种相当刺激的游戏体验;但在最高难度下,游戏变得无法通过运气获胜,转而必须精密规划。而这种精算带来的又是另一种成就感。

在玩游戏之余,我又阅读了作者在游戏发售前夕于 reddit 上写的两篇文章,方才了解到这个游戏几乎是作者一人在攻读完游戏设计专业的博士学位后,独自花了 9 年时间制作出来的,颇为震撼。怪不得我在玩的时候感觉这个游戏要深度有深度要广度有广度,完全不像是能短期做出来的。只能说,设计出好的游戏真的很难。

Skynet 升级到 Lua 5.5.0

2025-12-23 10:19:52

Lua 5.5.0 已经正式发布。所以,skynet 的 Lua 版本也随之升级。

skynet 维护了一份修改版的 Lua ,允许在多个虚拟机之间共享函数原型。这可以节省初始化 Lua 服务的时间,减少内存占用。

跨虚拟机共享函数原型最困难的部分是函数原型会引用常量字符串,而 Lua 在处理短字符串时,需要在虚拟机内部做 interning 。所以 skynet 的这个 patch 主要解决的是正确处理被 interning 的短字符串和从外部导入的函数原型中包含的字符串共存的问题。具体方法记录在这篇 blog 中

这个 patch 的副产品是允许在多个 Lua VM 间共享常量表。打了这个 patch 后,就可以使用 skynet.sharetable 这个库共享只读常量表了。

这次 Lua 5.5 的更新引入了 external strings 这个特性,已经大幅度提升了 Lua 加载字节码的速度。我比较倾向于在未来不再依赖额外的 patch 减少维护成本。所以建议新项目避免再使用共享常量表,减少对 patch 过的 Lua 版本的依赖。


Lua 5.5 基本上兼容 Lua 5.4 ,我认为绝大多数 skynet 项目都不需要特别改动。但在升级后,还是建议充分测试。注意:更新仓库后,需要用 make cleanall 清除 lua 的编译中间文件,强制 Lua 重新编译。直接 make clean 并不清理它们。

Lua 5.5 有几处更新我认为值得升级:

  1. 增加了 global 关键字。对减少拼写错误引起的 bug 很有帮助。skynet 自身代码暂时还没有使用,但后续会逐步添加。

  2. 分代 GC 的主流程改为步进式进行。过去版本如果采用分代模式,对于内存占用较大的服务,容易造成停顿。所以这类服务往往需要切换为步进模式。升级到 Lua 5.5 后,应该就不需要了。

  3. 新的不定长参数语法 ...args 可以用 table 形式访问不定长参数列表。以后可以简化一部分 skynet 中 Lua 代码的实现。

带可可学数学

2025-12-16 09:50:28

可可三年级,前段老师说她数学成绩不好,需要在家加强一下。

这段时间我每天晚上给她讲一点点数学,都是课本上的内容,然后我再稍稍发挥一下。几次之后,我发现最大的问题是她觉得数学很无聊。

她似乎比较抗拒学新的知识,更喜欢用熟悉的方法。去年我发现她计算能力有问题,每天给她做加减法练习,总算不再用更早年我教她的 +1 法算加法了:即计算 7+8 的时候,算 8 次 +1 ,也就是数数。二年级学了乘法,乘法表也背了,但现在做应用题,本该用乘法的场合,她还是习惯连续算加法,一旦乘数太大就会出错。要用除法的时候就更混乱了,并不是用减法,而是靠猜测来试。大脑里完全没有建立乘除的概念。乘法表更像是独立的有背诵任务的诗词,还没古诗那么有趣。

我说:数学其实是这个世界上最有趣的东西。

她说:为什么呢?

我说:这个世界上有趣的东西很多,但数学是性价比最高的。一本数学书很便宜,但可以让你读很久。从中发现有那么多有趣的事实。原来解决不了的问题,知道方法突然就明白了。如果是自己找到的方法,就更让人兴奋了。

她说:我还是觉得数学没意思。

我说:慢慢来,不着急。首先不要排斥它。学数学其实不需要硬背那么多东西,我小时候最不喜欢背书了,所以才喜欢数学的。因为数学是最不需要背的,只要你从原理出发,一步步理解,最后什么问题都能解决,只是速度慢一点。多练习就快了。那些需要记住的知识,用的多就自动记住了,不需要专门背。


还好她不排斥我给她讲数学。前段还给我说,为什么只有你给我讲数学我才懂呢?

就这么,我每天(半个小时左右)给她讲一点点。我觉得其实也讲不了什么,聊胜于无。有一点我觉得还不错,她有数学作业不会做,会主动来问,不需要等我检查作业。一点拨就懂了,但第二天又会有新问题,依旧靠自己解决不了。不过,知道自己不懂算是个好的开始吧?

昨天晚上,她说今天学的直线、射线和线段。这个好简单,之前的都好难。

我说,我出道题目吧。在纸上画五个点,你看看一共可以连出多少条线段。

她说,我去拿张纸来。

画了半天,数错了。可可说,我脑子好乱啊。

我说,我来教你方法。我们先把你画的点标上数字编号,从 1 标到 5 。然后你每次连一条线段,就把两端的数字记在图案下方,顺着写整齐。最后,数下面的记号。

这次她算对了。但是,好麻烦啊,为什么要用这么麻烦的方法。我想偷懒就会搞错。

我说,其实,你不需要画图,只用写数字就可以了。但是不要随便连线。1 号点先和 2 号点连,再和 3 号点连…… 顺着数字从小到大,这样就不会搞错。不需要真的把连线图画在纸上,在脑子里相像就可以了,只需要在纸上写下 1 号点能和几个点连成线段就可以了。这里,你写个 4 。然后再看 2 号点。

她画了一点时间,终于发现了规律,列出了算式 4 + 3 + 2 + 1 = 10 。

我说看吧,其实这不是一道绘图题,用数学方法,它转化为一道计算题了。

可可好像有点兴趣了,说我现在可厉害了,我能算 10 个点的问题。我说你试试。可可的悟性没我相像的那么高,并没有直接写出 9 到 1 的等差数列,每个数字都想了一会,直到 4 以后才有点把握后面应该是 3 2 1 。但是,面对长达 10 个数字的加法算式,可可说,我知道方法了,这个算起来太麻烦了,我不算了。

我说,你不是学了乘法吗?其实,这个问题不一定要用加法做,我告诉你怎么用乘法解决这个问题,就不用算这么麻烦的算式了。你看,刚才你连线的时候,把 1 号和 2 号连起来之后,从 2 号做起点就不连 1 号了。因为 1 到 2 和 2 到 1 是同一条线段。两个点之间只可以连一次。但是,如果我们每两个点都连两次,那么这 10 个点,每个都可以连出去 9 条(射线)。

最后,总共画了 10 组,每组 9 条射线,一共是 10 * 9 = 90 条。因为我们每条线段都计算了 2 次,所以答案就是 90 / 2 = 45 条线段。

有了这个方法,100 个点的问题你也能算出来了吧。

可可问,家里有没有有趣一点的数学书,我要看。我翻出了前年带着云豆读过的《我的第一本数学书》。可可翻了一下说,怎么这么多字啊。我说,周末我带着你读。


早上起床的时候,可可问,今天我能不能把昨天那本书带到学校去?

希望她能发现一点点数学的乐趣。