| 广东 揭阳 旺旺 |
跟大家讲个笑话:
- 在中国,主张「停止虐待动物」是「违反法律法规」的。
- 在中国,主张乃至实施「虐待动物」是「没有违反现行法律法规」的。
这种事情,我初中看到政治教科书里关于「人民」的「定义」时第一时间就明白了。一个泥巴任它捏的东西,跟它较真你只会变成泥巴。
昨天偶然之中发现,自己在 Nube.sh 的 Tokyo 可用区购买的 VPS,无法正常访问在 Vultr 上的一台 LA 的 VPS。具体表现为 SSH 端口能通,然而真连接过去的时候,一些操作会中断,无法继续。例如:
我是在 SecureCRT 中通过在 Firewall 中 Select Session 设置了转发,也就是说 SSH 隧道过去的。不清楚直接在命令行上 SSH 过去会如何,但无论如何这个现象都不正常。
这个问题只在这两台 VPS 之间存在,方向倒过来的情况我没试过。感觉跟两者之间的网络状况有一些关系。现在排查这类问题也算简单:直接问 AI,比我自己想要快,也可能更靠谱,至少能得到一些方向性指引。果然,AI 的回答直指问题的核心——MTU。
我的确是在 Nube.sh 的客服群里面见到过有人在反映日本的 VPS 有问题。回头搜了一下(奇怪 Telegram 的搜索功能我记得不太好用来着?),发现今年五月份的时候就有人回答说是 MTU 不够。老板也认可了这个结论,不过后续当客户催促修正时,老板那边没了下文。Nube.sh 的规矩一向是「只认工单」,我估计那个客户没发工单,所以这个事情直到现在应该都还是这个状况。
仅仅是 MTU 的问题的话,是可以自己动手搞定的。AI 同时也提供了方案:
因为我并没有广泛测试,说不定还有哪些机器和 Nube.sh 日本这台 VPS 之间也有类似问题,所以我就选了方案一,直接改网卡设置了。一劳永逸,至少在我或牛肉老板重置 / 还原 VPS 网络设置前都能有效。
我的操作系统是 Debian 13,修改 /etc/network/interfaces 即可。Nube.sh 在 dhcp 后面加了一句post-up,在它前面再加上一句就行了:
post-up ip link set dev eth0 mtu 1400
实际能正常发送的包的大小,我用 ping 测试了一下,应该是 1448:
ping -c 4 -M do -s 1448 <IP Address>
那也就是说实际上的 MTU 应该是 1448 + 28 = 1476,不过 AI 建议我多留点余量。考虑到也没有太大的副作用,我就按它说的直接设到 1400 了。重启之后查看网卡设置:
ip link show eth0
OK,现在的 MTU 是 1400 了。SSH 恢复正常。完结,撒花。
《武器小百科:战机知识绘本》:很差的图书,也许纸质版还会有点用处,但电子版真的就是一无是处了。基本上就是把一些战机的三面图片给晒了一下,在现在这个资讯并不匮乏的年代,这样做甚至都有点骗钱的嫌疑了。还好我没花钱去买。
《字母表谜案》:挺好的日式推理小说,和大山诚一郎其它作品类似,也是可以轻松拿起和放下的类型,没有负担。然而几个案件又有点关联,而且末尾发生了更大的事件,了不得。推荐。
《史班瑟岛》:凡尔纳的不那么知名的小说。一贯的风格,乃至人设都是。充满了那个年代的味道,算不上什么科幻,粉丝可以勉强看看,我的评价不高。情节大概可以说是神秘岛的恶搞微缩版吧。免费借阅 OK,不值得花钱购买。
《药物简史》:书的内容撑不起这个名字,不过还算可以一看,对医药历史感兴趣的话就还行,对「人类战胜自然」抱有希望的就不必看了,算是科普作品吧。能借的话就看看,没有必要购买了。
《喜鹊谋杀案》:我是先看的《猫头鹰谋杀案》,所以可以说被部分剧透了。本书最好是先看。书中套的那本书我这次也看了,本来期望情节有所帮助,谁知道结果是玩字谜。我们这些读译文版的非母语读者基本都被坑了。书中那位是被弟弟杀了,书外那位是合作伙伴。我觉得作者虽然写得不错,引我把两部书都看完了,但我并不太喜欢这种书套书的模式。不过这一本套得比《猫头鹰谋杀案》要自然一些。
《关键词是谋杀》:比《喜鹊谋杀案》和《猫头鹰谋杀案》都要好一些。作者是同一人。大概是因为没有书套书的缘故,这次作者把自己的身份套在了故事中,然后以第一人称描述,代入感不错。我猜错了一个主要情节,后面自然全错了。曾一度怀疑殡仪馆长就是凶手,但是作者铺垫得不够,实在是没法猜到。也罢,就跟着作者的叙述慢慢看吧,篇幅也还好。感觉这个系列作者还会有后续的,他才刚开了个头。值得购买。
《同名同姓受害者协会》:日式推理小说,但是并不太像传统的日式推理小说,反正肯定不是本格派的。篇幅不短,试图给读者挖坑,但我认出来了。重点关注了网络暴力。文末有一个反转,没人料得到,但是也不甚要紧。我是借阅的,看完以后应该不会去买。
《爱丽丝罪恶奇境》:糅合了科幻和推理的日式小说,但讲的又不是日式的故事。不过还是应该算日式推理小说,而且恐怕是本格派的。主角在梦境中解答了四个疑案,也算是对《爱丽丝梦游仙境》中一些情节的再创作,有一些与原著有关,有一些没有什么关系。最后的谜题算是解谜失败,不过反正剧情也到了让人鼓掌退场的时刻,反转再反转也无所谓了。能借着看就不要买了。
《致命之白》:这本我是买的,篇幅明显长过前三部。买的时候就没想过什么值不值得。但读完以后对于情节稍微有点小失望。心机男犯人不光弑父,还诱惑了女主打探情报,最后把女主绑架到游船上准备逼供后杀害,结果被男主救出。女主这集当了卧底,也因此再次以身犯险。不过她与老公虽然结了婚,但那调调从一开始就是奔着离婚去的。这集没能离成,但已经分居了,下集看看吧。我觉得罗琳不会安排女主和男主走到一块的,她擅长这样写男女关系。
《时间回旋》:书很不错,我很高兴我是买下的。在两条时间线来回跳的写法我不是很喜欢,我很讨厌被迫要切换上下文,人不是电脑。但是文中的情节和构思本身可以算是神作了,很不错。「时间回旋」本身算是凭空想象且毫无交代的东西,不过其它的部分,包括人类殖民火星的构想,以及宇宙级别的生命形式,还是很棒的。主角表现得一度像个美国英雄,最后也有个不错的结局,挺好。
儿子在问我存起来的老游戏里面,《战国美少女》是什么游戏?
我告诉他说,是经典的日式
RPG。
他又问我,什么是 RPG,以及什么是「日式 RPG」。
在这之前,他只知道
RPG 是 DF5 里面的「火箭筒」,以及他只玩过《Fallout 4》那种美式
RPG。
于是,我打算把游戏拿出来,当场演示给他看。
然后,我发现,在我笔记本电脑的
Win11 上已经玩不了这游戏了。于是我把 VMware 找来,我有一个 WinXP
虚拟机,就是为这种事情准备的。
再然后,我发现我的 WinXP 虚拟机启动很慢,进桌面花的时间比我预期的要长得多,声音也是发抖的。然而游戏还是跑不起来。儿子一看「这么麻烦」,转身就溜了,留下我独自发愁。
WinXP 虚拟机的这个情况,我是知道的。之前在公司办公电脑上也遇到过。当时是开了 WSL2,然后 VMware 就多出来了一个选项。
|
| 图片来自网络 |
对于 Win7 以及更高版本的虚拟机而言,这个选项是有效果的,勾上就基本能解决问题了。但是 WinXP 虚拟机不行,勾上还是很慢。偏偏 BCB5 在 XP 下面活得比较好,各方面都比较舒服。有的同事面对这种问题是换到 Win7 虚拟机下去解决的,我最后是把 WSL2 给关掉了,反正现在用不上。
我这次也想把笔记本电脑上的 Hyper-V 给关掉。怎么关我也知道,但笔记本电脑上是 Win11 家庭版,通常的方式行不通。BIOS 里面看了一下,没有相关的信息,于是去问 Google。也有人在咨询这个问题,答案不一而足,但试了也没用。
其实我看这个「家庭版」不爽很久了。
买回来笔记本的当天,我就纠结了蛮长的时间。当时有在三个选项中来回权衡很久:
现在这台笔记本电脑我已经用了两年多了,整机质保已经过了。主要硬件也扛到了现在,质保对我而言没什么大用处了,而「代价」现在慢慢开始浮现。家庭版没法开 RDP,并且现在 Hyper-V相关的东西也开关不了。但我现在上面东西也比较多,重装肯定是不希望的。那既然微软可以让人付费升级,我有没有办法呢?
问了 Google Gemini,答案是有。那就是连微软自己的技术支持人员也在用的
MAS。
用 MAS,你可以把 Windows
版本给变掉。然后 Windows 会变成未激活。接下来怎么办呢?都用上
MAS 了,就别问我这个了。
Win11 专业版下,Hyper-V 可以关掉了。然而我去看的时候,发现本来就是关着的。别的相关内容也没有开。所以「家庭版」还真是干净的。我只是收获了
RDP 而已。
去看了看VMware,发现选项还在。按照 Google Gemini
说的把「内存隔离」给关掉,也没有用。我知道如果
Hyper-V 真的关掉了,那个选项会消失的。所以还是没能成功。
最后我是照着 这个 处理的,看不懂英文版的可以看 中文版,Reddit 的翻译功能还挺不错的,有时候蛮接地气。关键是第 6 步,完事后第一次重启之后黑了屏,吓得我不轻,好在之后无大碍。
重启完之后,我看了一下相关的变化。发现「固件隔离」是被关掉了。可能刚才我最后差的就是这一步吧。
现在
VMware 里面没有那个 Hyper-V 相关的选项了,我的
WinXP 虚拟机,运行性能也终于正常了。
然而我的《战国美少女》还是玩不了。
弹的报错框是
Big5 码的内容。截了图发给 Google
Gemini 看了一下,说是路径有问题。
奇怪我记得我以前是玩过的,当时应该没有遇到类似问题。试了一下,手上的《战国美少女2:春风之章》可以直接在
Win10 上玩。
折腾了一大圈,解决了一堆问题,竟然又回到了起点。好吧,算了算了,去网上找了个百度云盘的 资源 补上。有空再给儿子演示看看吧。
此致,敬礼。
去年我在 VirMach 上的一台 VPS,一度失联,后来又恢复了。这事我还写过一篇 Blog。
当时是九月份的事情,正好是我续费的日子。于是我就正常续了,反正大家的 VirMach 机器都是便宜得来的,可能还不够我一顿饭钱。
好景不长,到了 12 月 18 日,它又开始不正常了,第二天又失联了。这下就一直失联了快半年。一开始机器状态还在,只是无法访问。后来机器也离线了。感觉像是被上游拔线了。比较尴尬的是,我续费已经过了三个月,PayPal 争议也不方便了。还好钱不多。官网一直还在,但我就没抱什么希望了。
后来到了今年春天,4 月 8 日,我意外地发现 IP 地址又通了。但 VirMach 上的 VPS 状态始终是离线,并且虽然 IP 可以 ping 通,但 SSH 端口不通,显然 IP 地址已经被别人拿走了,不再是我的 VPS 在用了。
今天,终于在官网上看到通告了。
![]() |
| 全 SJC 都断了快半年了,你们这是在调查外星人呢? |
话说,这事拖了这么多个月,VirMach 这是才发现啊?是不是打算再「修好」它几个月,继续骗我下一年的年费啊?这顿饭我可不想请了,修好也是明年拜拜,挂半年玩什么玩啊真是的!
五一之前,收到 Nube.sh 的 Email,通知说 SJC 的中国大陆优化线路要取消了。
给的时间不多,2026-05-01 实施,2026-04-27 通知。有点猝不及防,去 Telegram 里面看了一下,大概是这么回事:
四月中旬某个机场的中转服务器被拔线,因此拿了 Nube.sh 来跑流量。Nube.sh 的 SJC 中国大陆优化线路的速度不错,产生了很大的按流量付费账单。然而 Nube.sh 的上游是根据「九五计费」规则买的带宽。这半个月以来的高流量,把全月 95% 的总值给顶上去了,但前面闲的半个月 Nube.sh 又没拿到流量费用,所以老板在叫亏连天。最后大概是担心这类事情以后会一再上演,所以索性就停掉算了。
按理说 Nube.sh 之前肯定有机场在跑流量。老板的意思只要是长期跑都是 OK 的,就怕只跑半个月或一周的高流量。估计对方也跟老板线下讲了这个情况,老板合计一下觉得这样下去不是个事,干脆快刀斩乱麻了。
他是快刀了,我也有危机感了。花了两天时间紧急研发了一下黑魔法,总算能够 avoid 掉这次变动的影响了。也好,反正跟这些捞钱的机场长时间跑一条线路总归不是好事。我又不赚钱,无论是山贼还是六扇门我都不想招惹。
|
| 图片由 Google Gemini 3 + Nano Banana 生成 |
到了预定的时间,那条线路好像是断过两天网。我也没去管,后来自己又恢复了。Email 中说如果不管的话就是「国际优化」的线路跑「中国优化」的费用。但我看了一下,Resize 也会导致其它费用规格「重置」,比现在高不少。我现在的 VPS 基础费用还算便宜,可能当时有打折吧,闲置不用反而更划算。反正也只当作备份站点,平时没啥流量,那就先留着吧。我那点用途,产生不了多少流量,一个月下来全部也就 100GB 左右,就算是按「中国优化」的那档收费,也没多少钱,无所谓了。
青山不改,绿水长流。各位绿林好汉,咱们就此别过!
![]() |
| 图片由 Google Gemini 3.1 Pro + Nana Banana 2 生成 |
早上到公司,去洗手。有同事在洗脸、刷牙,不知道是不是熬了通宵?
不过这使我回想起了一些事情,随后它们就像一串珠子,滑进来了我的脑海里面。那一瞬间,我有点走神了。
公司的洗手盆,是不锈钢制的,两个圆形的台下盆。以前不是这样的,老板应该是掏钱自己重新装修过。
自从 Covid-19 疫情以来,我已经养成了长途移动后必须洗手的习惯,「七步洗手法」,虽然不一定标准,但步骤都有到位。如果某次没洗,或者还没来得及洗,心里就会有疙瘩,喉咙也会开始发痒。
洗的时候,洗手液泡沫会溅到水盆边上,特别是四指交叉的那一步。还好水盆很深,不会溅到外面去。时间允许的情况下,我总是会用水流把这些泡沫冲走。如果后面站着一队人,可能就不一定这样做了。所谓「仓廪实而知礼节,衣食足而知荣辱」。资源不够充足,文明可能就要靠边站。而时间,也是资源的一种。
之前有因为二次创业而搬去外面的场所办公。那栋写字楼有三十年以上的楼龄,因此卫生间的装修比较陈旧,灯光也很昏暗。用的是陶瓷洁具,台上盆。台上盆这种工艺,在酒店用得多,可能比较好看,但并不实用。特别是盆比较浅的情况下,老是把水弄到外面来。我有个朋友,家里装修也是用了台上盆,后来后悔死了。
不过台下盆也有麻烦的地方。如果台面是大理石或岩板,就需要切割,而且往往要现场操作。上次来我家装修的师傅,看他切得到处都是粉尘,戴个 N95 口罩,感觉也挡不住。这个工种的健康肯定是会受到损害的。
那栋老写字楼的卫生间里面,发生过一些趣事。有一次我听见有人在厕所隔间里面打鼾,似乎是拉屎拉到一半睡着了?还有一次,一个同事跟我在里面碰见,洗手的时候提醒我说,两个盆里面有一个尽量少用。我问为啥,他说有一次看到一个人在盆里面洗自己的 Penis。
我听了下巴大概是掉了。有这种事?真是有够离谱的。但卫生间里面一共也就两个洗手盆,人一多起来也没法顾忌那么多。只能说知道了这事以后,尽量不碰盆子就是了。反倒是那些中午带饭在盆子里洗饭盒的同事们,听了这故事以后应该多长一点心。
告诉我这件事的那位同事,后来离职了。他的沟通有一些问题,导致大家渐渐地都不想跟他合作了。他还算「服」我,我是能跟他正常沟通的,但我也不能总是去当翻译。因此当找到了另一个可以接替他工作的人选之后,老板就把他资遣了。
他有一个在《三国》里面能找到的名字,也算是有点个性。在职期间还出过一次事情,貌似骑电瓶车把一个警察给撞了。我估计那个警察肯定是拦了他,可能是辅警。这事最后公司还出了面,没闹很大。我只听老板跟人解释说「撞的多少是个警察,得进去蹲几天」,可能就是指被治安拘留了吧。
被裁之后,我听说他去了德国。貌似带了家人过去,记得他有两个小孩,大概是奔着移民去的,或许家庭条件足够托举。我这人跟谁都不怎么联系,因此也只是听说而已。如果是真的,那我觉得还是不错的。他这样的个性,呆在国外比较适合。工作能力我不作评价,但至少我觉得国内环境应该不适合他。
相比起洗 Penis 来,大家在洗手盆里吐痰,貌似没那么不能接受了。当然,现在公司这个洗手盆是在卫生间外面,也不会有人干那种好玩得不得了的事情。
记得发姐有一次直播中,有观众来信提到,在国外,往洗手盆里面 Spit,被清洁工骂 Disgusting。当事人颇为不解,归结于国内外的文化差异。我也不知道对方是吐唾沫还是吐痰,很难说清吧。但我对这种事情,也是心存芥蒂的。不管吐什么,总之不是什么雅观的事情。实在不行,装作漱口也要好一点。
我知道有同事把牙具放公司,每天午饭后都刷牙。这其实是一个很好的习惯。不过午饭后的时间往往都是一堆同事在排队等着洗饭盒。如果饭后超过 15 分钟再刷牙,效果又没有那么好了,但总归好过不刷。
公司的洗手盆,每到了周五快下班的时候,就会有不少茶叶堆在里面。旁边本来有一个专门倒茶叶的容器,墙上也贴了告示说茶叶请倒在这里,不要倾倒入洗手盆内。我正想骂,发现那个容器不见了。观察了一阵子,似乎每到周末,打扫卫生的阿姨就把它收了起来,可能是怕周末两天出什么妖蛾子。然而这些茶叶不去这里就会去到那里,所以其实问题始终没有得到解决。这种现象似乎是我们这个社会的一个通病?
我家厨房装修,水斗用的「摩恩」,感觉还不错。当时也看到有卖公司现在用的这种圆形单盆,所以这勾起了我的回忆。
后来盐城房子装修的时候,也在京东上买了一模一样的型号寄过去。然而装修的老板拿到之后就告诉我们「不值这个价钱」。我们当时还以为是埋汰我们不用他推荐的品牌,然而实际一用就发现的确不一样,感觉更廉价。
太太觉得是遇到了假货。但后来我了解到了电商行业的一些情况后,跟太太说,可能是遇到了 A/B 货。看收件地址,上海和盐城,发不一样的货。当然,也有可能是品牌堕落,过了几年偷工减料了。谁知道呢?我们不是什么自媒体,不可能为了这个事情去花几千块搞求证。
城市,或者往大一点说,国家、地区,真的很重要!
看到有朋友在 Substack 上发 Note,说起轮椅出行遇到有台阶不平的地方,正在狼狈,有好心的路人大叔主动帮助,把轮椅拿过去,不胜感激。
我亦回想起,在 2023 年 2 月 20 日(记得这么清楚是因为有写日记以及 NotebookLM),我也在地铁站帮助过一位推婴儿车独自带娃出行的女士。
![]() |
| 图片由 Google Gemini 3.1 Pro + Nana Banana 2 生成 |
当时我在刷卡进站过闸机,看到她在旁边踌躇,我过了闸机就马上转身到护栏处冲了她打了个手势,帮她把婴儿车拿了进来。她一个劲地感谢,我说了声不用客气就走了。
我对自己当时如此干脆的行动力还是有点惊讶的。回想了一下,我当时意识到了她的窘境:闸机太窄,推着婴儿车过不去。抱着孩子的话,最多只剩一只手,即使婴儿车没有很沉重,但也是弄不过去的。连着孩子一起举过去,估计她没那稳劲,而且这样也很危险。而路过的所有人都是过完闸机就匆匆走掉了,若非存心要帮忙,恐怕连放慢脚步都难。真正该出手的是地铁员工,然而安检的只管看他的 X 光机,拿着「裤腰带」的只管「为拦」人,一副「关我屁事」的样子,没心没肺像个神仙。这种情况下,如果没人主动提供帮助,她也很难向谁去请求援手。
我有闲暇,我不赶时间。上班通勤忙,但并没有忙到连一两分钟的事情都不能停下脚步来做。最重要的是,我判断,她确实需要帮助,以及,我的确能够安全地提供帮助。所谓,利人不损己,为何不为?别人为何不为,我不知道。但我可以做,我也就这样去做了。
没想到,仅仅是这种程度的善意,也能让对方感激不尽。但对这份感激,我其实是受之有愧的。我知道她接下来不管去哪里,全程都还要再经受很多「考验」。站厅里有直升电梯,所以她应该可以顺利搭电梯到站台,然后搭乘地铁去到她的目的地,但出站的时候,可能又会遇到问题。我毕竟还要上班去,也只能帮到这里。只希望她接下来还会遇到更多的好心人。
我对于上海在这方面的评价,其实并不高。每个地铁站,貌似都有一些无障碍设施,但又似乎都只能算是摆设。比如那种能通过大件行李物品的宽版闸机,并不是每个地铁站,每个出入口都有。盲道大多弯来拐去,翻山越岭。楼梯不是每一段都有举升机。感觉设计的人首要考虑的并不是让行动不便的人能更方便,而反而更像是在折腾他们。是什么「男生女生向前冲」的综艺节目吗?
若只是这些问题,还能算作硬件条件的缺失,可以指望慢慢改善。至于素质方面,地铁、公交上年轻人坐着刷手机,老年人站着的情况比比皆是。习惯了厦门那种风气,初来乍到的时候我很不适应。有上海人向我辩解,说「上海的年轻人上了一天班也很累」。好吧,就算是真的,那我也不喜欢。不过上海的老年人也有很多是很坏很不客气的,抢座霸座一只鼎,也不全是什么良善之徒。1966-1976 期间该读书的那一辈人,现在正是拿养老金的好年纪。
我还是挺怀念厦门的。年轻人上了公交车也都从最后一排开始坐起,为的是把前面的座位让给没有那么方便的人。公交车慢吞吞的,在老城区里面盘来盘去,反正也没有地方可以超车。整个城市给我的感觉就是没那么卷,有一种余裕在里面,不论是物质还是精神上。慢悠悠的日子,人们也都更加谦让友善。难怪易中天要削尖了脑袋往厦门钻。即使时隔多年再次造访,还是那种感觉,连空气都仿佛能让人松弛下来。
有一首歌,叫《从前慢》。如果能慢下来,大概人们就相互客气了吧?
在软件中需要加入一些为用户个性化定制的内容推送,因此需要一个用户标识。
正常情况下,如果用户有登录,就是一个 UserID 的事情。然而我们这次的场景是匿名使用,所以没有这个 UserID 可以用,需要自己来生成一个。
以及,产品设计上希望能做到还是能大致识别到一个「人」。同一台机器上如果有多个我们的软件,最好能得到相同的 ID。因此最后商量下来决定采用设备 ID(或设备指纹)的方式。
如果是 Web 浏览器,算是有相对成熟的方案。浏览器指纹也不是一两个人在做了,「广告」这个需求天然就需要这种东西。然而我们是 MFC 程序,需要自己想办法。
我以前做 Shareware 的时候也大致接触过一些 DeviceID 的东西,知道这种事情吃力不讨好。很难覆盖那么多种类的硬件,特别有一些可能还是服务器上才能见到的东西。万一搞不好,说不定在某些特殊硬件上还要出什么状况,所以并不是一件容易的事情。所幸我们这次的事情并不是性命攸关的「注册码」,只是一个可有可无的身份标识,即使拿不到,也可以接受,因此压力没那么大。
很自然地,我想到了让 AI 来做这个事情。说到「见多识广」,可能没有人比得上它。知识结构也是它比较新,不用担心去网上找到的开源代码只能支持老旧硬件的事情。把需求描述给了它,很快就生成了一个函数,专门用来在 Windows 上得到 DeviceID。
自测的时候,问题来了:DeviceID 有时候会变。
其实这个问题一早就埋下了,是我需求没向AI说清楚,算我的锅。
说起来,这类需求虽然都可以描述为 DeviceID,但实际上是不同的:
两者是有大区别的。前一种就最好是有点变化就换个 ID,后一种则应该只要怀疑可能还是原来那台,那 ID 就不要动。
但是,这种事情确实不太好把握。加根内存条算不算新设备?可能不应该算。那换块硬盘呢?如果 CPU 升了个级,心脏都变了,还说没变化,有点说不过去吧?以及,如果用户把操作系统从正版的 Win10 家庭版给重装成了盗版 Win11 专业版呢?
![]() |
| 图片由 Google Gemini 3 Pro + Nano Banana Pro 生成 |
我们的需求肯定是希望尽可能不要因为一丁点儿变化就换一个 DeviceID。但这事是一个「忒修斯之船」悖论。变到什么程度才算一台新设备?如果太过追求某一个极端,就会落入两头的陷阱。要确保 DeviceID 的「排他性」,就需要冒「稳定性」不佳的风险。
AI一开始给出来的方案,「稳定性」是不够好的。即使硬件和 OS 都没有发生变化,它也可能会变。据说是多核 CPU 的线程绑定带来的问题。麻烦在于,如果我不从需求侧来反推,以及没有进行足够数量的测试,很可能发现不了。
解决了这个问题,还有另外一个问题:如何保证这段用于生成 DeviceID 的代码,在各种硬件上都能稳定运行?
我们的要求很低:如果不能保证生成 DeviceID,那就别生成,或者生成一个可能会重复的,都 OK。这算是允许牺牲 DeviceID 的「稳定性」,来换取更好的「鲁棒性」。这个需求我从一开始就给了 AI,它的确也在代码上作了处理,我有看到。然而,如何保证呢?作更多的测试?
我目前能想到的:在调用的时候套一个 try...catch,不知道有没有用。另一个我知道肯定有用的办法,就是把这个事情扔给一个独立的进程来做,这样应该可以保证万无一失。软件运行架构会需要一点调整。我知道这样去做,AI 呢?你如果只是把它限制在写函数这件事情上的话,它肯定没法告诉你答案。
这种事情,让 Claude Code 来做,能更好吗?如果让 OpenClaw 放开手脚不限费用地去干,它最终能搞定吗?GIGO,如果人想偷懒的话,估计就会很难。