2025年度总结

前排声明:本文未使用任何AI模型辅助编写,请放心阅读

上高中的时候,每天总有学不完的习、做不完的题和唠不完的嗑,每天都感觉过的好漫长。可是自从上了大学,时间就在每天的刷刷视频、写写代码中悄然流逝,似乎从18岁到24岁也不过是弹指一挥间。尤其是上了班之后,每天就是开会、开会、开会、加班写代码调板子、睡觉中度过,甚至回想起2025年,我似乎什么也没做,整整一年,365天,8760小时,31536000秒,我的目标几乎没有得到任何有效推进,而且身体由于报复性熬夜还变差了,更别提什么健身、读书、学点什么提升自己了,在这一年我有印象的时间里全都是在工作。既然如此,那自然也没什么流水账可记了,所以我决定换个形式,分成许多个主题来写今年的年终总结。

关于工作

很显然,在今天要总结的所有点中,工作是最不重要的了,所以放在第一个。

让我回忆一下,工作节奏应该是在今年年中转正以后突然加快的。当时我接手了一个很重要的模块,另一个项目又在赶进度,我们组又非常缺人,因为缺人又招了将近十个人进来,这就是《人月神话》中所说的往已经延期的项目里加新人一定会导致项目延期更加严重。我每天除了开会、学习相关知识、写代码以外还要指导新同事接手死机和维测相关的东西。那段时光是十分煎熬的,一方面要干自己的活,对着看不懂的代码和资料硬研究,另一方面还要抽空给别人讲死机定位和维测。6月份是我加班最多的一个月,按一天工作8小时算(不含吃饭时间),我总共奉献了60个小时,接下来的几个月也是加班20~40小时不等。

好在半年之后大部分事情都走上了正轨。即使我再什么都不懂,研究一个东西研究一年也足够了解它了,不能说完全掌握,但是至少能不出重大问题地维护下去了。新来的同事们也能够独立承担一部分工作了,至少大大减轻了我们的压力(就算不能减轻也能陪我吃饭)。同时我还分别指导了不同项目的三位同学接手他们项目内的维测模块,颇有成效,现在他们都能独立承担项目内的维测模块的维护和问题定位工作了,如果不涉及到很复杂的问题和新需求的话已经不需要找我(和我们组专门负责维测的专家)了,这是真的能大大减轻我的工作量的,否则我每天就是开会开一天,帮完上个人看日志打不出来的问题之后帮下个人看死机问题,根本没有任何时间学习新东西和交付新需求。

公司有个叫“明日之星”的奖项,或许可以叫做“阳光普照奖”,基本上每个人在职业生涯上都会拿几个,就是按照一定比例每个人投票选出来的。12月的时候我们组和隔壁组一起评选,结果没想到居然有很多人投票给我。不过想想倒也合理,在座的所有人,或多或少我都帮他们定位过日志或死机问题,甚至即使我现在已经交给新来的同学了,但是有些人遇到死机问题,第一个想到的还是拉我来看。在互评环节,leader说了一句话,就是他每次去实验室都看到我在别人旁边(指指点点)指导,仔细想了下好像确实是这样,新同学刚来的时候很多东西都得手把手教,而他们上手之后遇到死机问题也得我来,遇到其他问题我也得看看,是不是和我现在负责的模块有关,至于我有没有偷懒之嫌,那就留待后人评说了:)

除去无穷无尽的开会和加班,我在这一年里的收获是巨大的。在工作上我算是走出了舒适区,之前的日志和死机维测模块算是纯软的,除了汇编以外就不涉及什么硬件的东西了,但是这一年里我(被迫)接触了之前不敢也没机会学的QSPI、SDIO、eMMC甚至是USB协议栈,当然还有我新接手的需要和所有的领域协作的模块,在这个过程中我还学习了OS的调度、内存分配算法,以及一点点蓝牙协议栈、音频、媒体等业务,虽然肯定不会写相关的代码,但至少有了粗浅的理解,能够定位一些简单问题。

底软开发确实很锻炼人,虽然钱少事多,被什么算法甚至前后端薄纱,但就嵌入式行业来说,我推荐所有从事嵌入式行业的人先找类似的岗位工作一段时间,哪怕只是实习。开发底层模块,例如系统服务、驱动、OS这些,既和硬件息息相关,又被上层各业务领域紧密依赖,也就是说相当于所有的东西你都要了解,可以极大地扩展视野。更何况可以让你感到大学的知识没有白学,例如在维护维测模块的过程中,我就用了到很多计组和编译原理的知识,汇编、llvm、链接脚本、堆栈排布、代码段排布、计算函数栈大小、调用栈回溯,甚至还复习了流水线和cache(其实这里就能感受到科班和非科班的区别了,如果是科班出身或者有丰富工作经验的人,我只要提到这个概念他就能明白,甚至还能反过来纠正我的错误;而非科班的人要给他解释半天,他还似懂非懂迷迷糊糊的,即使有的时候我瞎编也发现不了)。xa大佬在自己的嵌入式项目里遇到了好几个stm32的死机问题,在没有任何维测手段的情况下(只有jlink调试),都被我下班后利用一个小时以内的时间轻松秒杀了,可以说这段工作经历功不可没。

关于开源

我记得23年我就说过要把GitHub的评级涨回来,但是这个其实很困难,25年我通过在B站宣传EInkAssistant和RGBLight多了一些star,再加上一些开源贡献,算是勉强升到了B+,距离A-还有很长一段距离。今年的开源工作还是分为两个方面来讲,一个是我自己的项目,一个是对其他项目做的贡献。

自己的项目可以分为几个类别:嵌入式的项目包括EInkAssistant和RGBLight,今年都获得了一些新功能更新,在做的LittleOvO,还有新的墨水屏项目(本来打算12月中旬做完,结果沉迷于ATM10现在还没咋动);音视频相关主要是CoralReefPlayer,在25年发布了两个新版本,支持鸿蒙、拉mpeg-ts流和裸RTP流、以及最重要的编译成WebAssembly在纯浏览器环境上运行;游戏相关的包括用vibe coding重制了小时候做的通信方块mod(这种简单的需求用AI很容易实现,复杂的就不好说了),把22年做的失败了的游戏的对话系统抽了出来,做成框架开源了(后续会写篇博客甚至是录个视频介绍下,因为我觉得我设计的还挺好的),把之前给后端做的mc登录api也抽象成了一个库贡献给了学校的mc社团,用这个库可以将当前已有的nodejs认证服务器接入mc启动器,玩逃离鸭科夫的时候发现这游戏很有梗,顺便想试试给Unity游戏做mod和给mc写mod有什么不同,以及上传创意工坊是什么流程,所以花两天时间搓了个把鸭鸭一键换成鸡哥外貌的mod;其他方面就是尝试在我的香橙派5上跑Android容器,发现需要魔改linux内核,就顺便上传到了GitHub。

对开源的贡献包括给星露谷物语的Fast Animations模组顺手刷了一遍中文翻译,继续给银临茶舍的KMP客户端做iOS适配,还搞了个libpag的compose库(有时间发布到maven),当然还有最重要的是在给crp适配WASM的过程中发现了emscripten的bug,所以提了pr帮他们修,bug修起来很简单,但是狠狠练习了一下英语,还体会到了跨时区沟通的酸爽。

总结起来就是今年的开源贡献其实是没有去年多的,也可能和工作太忙有关,都是使用驱动,用到了才去做贡献。

除了开源项目贡献外,今年的3月29日我还去参加了开源操作系统年度技术会议(OS2ATC),12月7日去了第十届中国开源年会(COSCon’25),接触到了很多前沿的东西,也白嫖到了很多小礼物。像是OS2ATC上看到了小米vela和vivo蓝河系统的宣传,COSCon’25上听了很多我感兴趣的项目的演讲,甚至还有嘉立创。其中有件事特别有意思,就是我和moonbit的负责人聊了好久,发现他们确实对编程语言有很深的理解,而且最重要的是,他们自己承认走黑红路线了,毕竟黑红也是红,怪不得天天在公众号上刷到逆天文章。另外就是聊了一圈发现开源界普遍对huawei观感很差,倒也说的过去,如果抛开工作仅从开源贡献者的视角来看,我也会讨厌这样一家公司,整天看谁做的好就抄过来,不过这也算是大厂通病了,看到你的创意之后就可以堆人力,在你之前把你的创意做出来,毕竟按我24年的分析来看,软件工程本质上就是堆人的工程。

关于小玩具

今年工作繁忙,所以还是以维护旧项目为主,新的小玩具还没来得及做,只是把硬件调通了。

赶在转正之前还有时间的时候终于实现了RGBLight的动画编辑器(大饼画了4年),并且录了教程和演示视频发到了B站。

给EInkAssistant适配了更多的屏幕(感谢lxwx大佬的帮助),然后发了段演示视频到B站。

所以还有谁没看过视频,都去给我点赞投币三连!

上述两个项目都适配了PlatformIO,目前同时支持Arduino和PlatformIO,还给RGBLight移植到了RP2040,后续会给它们再移植到Hi3863上。

LittleOvO:硬件调通了,没放弃,只是实在没时间做TAT

新的墨水屏项目:基于nRF-EPD魔改,侧重于日历、相册功能和低功耗,仓库名字不变,但内部名字可以叫EInkAssistant(蓝牙版);原来的EInkAssistant可以叫WiFi版,侧重于天气预报和需要网络才能实现的功能。

帮助xa大佬调他的嵌入式项目,目前功能已经基本完善了,剩余外壳设计和低功耗调优工作,争取明年3月份前搞完。

关于博客

由于工作原因今年博客写的太少了,在这儿磕一个先,其实已经有很多选题了,甚至有些选题是2年前就想好的,明年争取都写了。

但是其实这条不是说写博客的,是关于博客架构的。因为目前使用的WordPress被攻击过好几次了,为了避免被黑入我甚至连php的文件上传都关掉了,而且php巨慢无比(至少相比于静态页面速度是慢很多的),也不利于CDN加速。所以我两年前就想用现代点的技术重构了,那时候我花了几天时间用Nuxt.js+Vue+TailwindCSS简单搞了个原型出来,感觉还可以,打算把整个博客都迁移过去,谁知道一拖就是现在,拖到现在我还没搞。而到了2025年,前端技术每天都在发生大变,SSR已经是最基本的了,流行的框架都变了,感觉现在最流行的是Svelte,而最流行的原子CSS框架似乎从TailwindCSS变成了UnoCSS,构建工具在往rust迁移,例如SWC,更别提各种静态页面生成器了,感觉我挑一个现成的用用得了,还造啥轮子了。

传统派MkDocs和Docsify自然不必多言,还有各个框架自己开发的文档生成器,例如VuePress/VitePress、Rspress等,还有专门用于博客的静态页面生成器,例如Hugo、Hexo,还有新一代的静态页面生成器,例如Astro、Docusaurus这种,令人眼花缭乱目不暇接不知道该选谁为好。前端实在是太卷了,卷不动,明年看看有没有机会重构吧,感觉又该换技术栈了。

关于聊天机器人

和博客一样,聊天机器人也是很早就想重构了,现在看着他们那些支持Markdown的官方机器人和能渲染图片的机器人心里直痒痒,奈何受架构所限,我的机器人还是只能支持图文混排,而且不能充分利用各平台的特性,和现在的主流机器人框架相比已经落后太多了。而且最忍受不了的一点是,现在的机器人框架和后端是耦合在一起的,其中一个崩溃会连带着另外一个一起崩溃,之前不知道怎么搞的把nodejs写出了内存泄漏问题,QQ掉线重连次数多了就会内存泄漏,然后连着把后端一起干挂。

关于AI

要说25年什么最火,那当然是vibe coding了。作为不折不扣的传统派,我一向是抗拒在某些项目中使用AI的,一方面是担心AI生成的代码有版权问题,还会用我的代码去训练模型;另一方面也是因为我目前做的某些方向,例如嵌入式和音视频开发,网上已有的代码太少了,AI几乎生成不出来我预期内的代码,调整提示词花费的时间比我自己写代码还多。在今年之前,AI存在的最大问题就是不具备学习和思考能力。模型在完成训练后权重就不再变化了,不能像人类一样边推理边训练,所以理论上很难让模型具备学习能力,但这可以通过工程办法来解决,让模型支持更多的token,然后将一些前提知识作为prompt输入进去,甚至是配合RAG,让模型从知识库里获取知识,再加上调用外部工具的能力,这就是agent做的事情。而思考能力则通过DeepSeek提出的思维链技术得以解决,它使得大模型能够在回答之前进行思考并生成一长串的思维链,最后给出答案,就像人类思考的过程一样,这大大增加了模型在复杂任务上的推理能力,提高了正确率(虽然速度会慢一点)。

既然2025年的AI进步这么大,那即使我再守旧,也该再次试一试了,正巧我的GitHub学生认证还没过期,还能白嫖copilot,那就试一试copilot的agent吧。

先说结论:结论是和之前没有任何区别,简单需求AI闭眼写,复杂项目还是完蛋,评价为:一拖答辩。

vibe coding在做一些大模型学习过的东西时确实很高效,例如上面提到的RGBLight,它可以通过串口进行控制,我在高三的时候曾写过一个在Minecraft内连接串口发送数据的mod,可以用那个mod来在游戏内控制RGBLight,但当时那个mod是基于1.12.2开发的,而现在已经1.21了,所以在录视频前我打算把这个mod移植到现在mod比较多的1.20.1版本,且同时支持Forge和Fabric。这种简单而且有很多代码可以参考的项目让AI做起来就毫无压力,我甚至只用了一下午时间就重制完了,中间只是改了改提示词,修了修调用的过时的接口,几乎没有写任何代码,AI完美实现了我的需求,而且没有什么bug。

举完了正面例子之后我可就要开喷了。正巧下半年的时候CoralReefPlayer有几个用户在issues提了需求,希望支持拉mpeg-ts和裸rtp流,live555虽然是个RTSP库,但是RTSP是基于RTP的,而且提供了mpeg的demuxer,理论上实现起来应该很简单。

所以我决定先让agent自己写写试试,结果才刚开始就发现不对劲了,AI根本没办法理解我的需求,刚开始甚至打算引入avformat去对mepg流解复用,我寻思我要是能用ffmpeg那还用live555干啥了,RTP拉流也写不对,我是想尽量复用live555已有的组件的,但是AI就是想自己造轮子,就像是完全不懂live555一样。live555只是因为要支持那么多种编解码才看起来复杂的,其实本质非常简单,就是source->sink(这个是有计划写一篇文章展开讲讲的),不像gstreamer那么复杂,也不像一些国产库从底层轮子开始造起,所以我当初选型就选择了live555。但是我没想到的一点是网上和live555相关的教程和代码太少了,甚至live555本身还是直接发布源码而不是使用GitHub托管的,这就导致AI没能学习到相关的知识,如果只是调live555的接口还好,但是一旦涉及到库内部,对库本身做出修改或者调用库内部的功能就束手无策了。

我从中午起床开始让AI写到晚上6点,中间DeepSeek、GPT-5、Cluade轮着用,最后也没写明白。发现AI写不出来后我又Google相关的资料,又是几乎把近20年live555邮件列表里的所有邮件翻了一遍(上次翻还是定位拉流延迟问题),发现全网居然没有一个人像我这么干,甚至live555对mpeg解复用的代码都是残废的,要自己改代码才能用起来,那AI自然是写不出来了。气的我吃完晚饭自己上手,仅使用copilot的补全和chat(模型是Cluade3),没用agent,到半夜三点就调通了,浪费一下午时间在那和AI斗智斗勇。最后成果如下,不知道我是不是全网第一个用live555拉RTP和mpeg-ts流的(笑

https://github.com/DawningW/CoralReefPlayer/commit/a5336d575ec50ba2aa7a2fb9662762f363b9fa3d

其实我在考虑把这笔修改贡献回live555,不知道他们能不能接受

我的看法就是除非大模型能真正实现和人类一样的边推理边训练的能力,否则永远也无法取代我,工程手段就只是工程手段,实际应用中还是一坨。但是AI的进步非常快,比我学习新东西还要快,每天都能看到各种人吹agent啊,所以crp的下个新需求还会先让agent自己写,我倒要看看,AI什么时候能真正取代我。

关于CoralReef宇宙

CoralReef是我们自主研发的全套水下机器人软硬件解决方案的代号,硬件包括多款型号水下机器人的FPGA、电路和机械设计,软件包括飞控算法、机器人视觉、图传、协议、上位机等,全都是自主研发,专为水下机器人场景优化。目前的计划是先把水下机器人做好,收支相抵后进军到具身智能领域。

目前已经开源的技术包括:

为了保持核心竞争力而不会开源的技术包括:

  • FinMu:基于FinNAV的姿态解算与惯性导航解决方案;
  • CoralReef:在Windows上运行的水下机器人上位机系统,现已投入生产环境;
  • CoralReefMobile:在Android端运行的水下机器人上位机,目前能用,但是还未达到生产环境就绪状态;
  • CoralReef-Taro:新开发的跨端水下机器人上位机,特点是支持微信小程序;
  • CoralReefPortal:边缘设备的神经网络模型转换和部署,后续计划开源;
  • OurIPC:自研IPC的软件部分,既可作为成熟的网络摄像头出售,也可作为机器人视觉解决方案;
  • FishIP:供多个项目使用的自研IP核与硬件逻辑。

硬件部分包括多款已经投入正式使用的型号:

年底的时候去找红光ASl大佬吃了顿饭,提到CoralReefPlayer已经在很多地方投入生产了,效果还挺好的,这是我没想到的,所以感觉之后还得接着做。总体来说稳步推进,只是OurIPC进度比较落后,希望27年能和大家正式见面吧。到时候我就不用给任正非打工了

最后还要感谢每一位曾经参与或现在正在参与CoralReef宇宙建设的小伙伴们,能完成如此庞大的工程,每个人都功不可没!

关于古风圈

今年接着追线下,不过侧重于去看前几年没有看过的。五一没抢到锦风绣韵的票,但是去排了临姐的签售,顺便和网友吃了几顿饭;五月底去看了不才的livehouse;七月份去郑州看了个拼盘,第一次听到了现场版的盗橘令,顺便两天特种兵极限逛了早就想去的郑州和洛阳(感觉那时候我身体还没现在这么差);十一月终于又去了杭州,看临姐的新巡演首场,是最后一次看到现场版的牵丝戏了,回去之后看说说才发现胡学姐也来了;十二月的最后看了司南的livehouse,也算是补全了自己的缺憾,毕竟24年我就想去看的,但是没去成。比较遗憾的是今年都是我自己一个人去的,希望明年能发展一个人陪陪我。

另外还有比较重要的事情是关于银临茶舍App的开发,去看司南livehouse的时候发现前面站着的老师手机上有茶舍App,突然意识到我们App的用户量还不小,所以我明年还是需要继续投入一下的。在这个项目中,我目前主要负责跨平台的适配和开发工作,主要包括适配iOS、网页和鸿蒙端,iOS端的适配工作几乎已经完成了,唯一剩下的就是性能以及上架问题。至于Web端和鸿蒙端,当前已经有了一点想法,但是目前整个App的架构是按照Android端App的架构设计的,compose multiplatform也是Android first的跨平台框架,我在适配iOS的过程中就已经感觉到别扭了,而如果要适配Web甚至是鸿蒙端,整个App的架构势必要大改,而我忙于工作还没有时间投入这件事情,得想想怎么办。

银临茶舍项目给我的收获是深入探索了一下跨平台开发,之前我只了解过Flutter,但是现在对Flutter、React Native(以下简称RN)和compose multiplatform(以下简称CMP)都有了很深刻的理解,尤其是RN,已经能够用RN开发跨Android、iOS和鸿蒙的完整App了,虽然最后我提出的方案还是被否决了。此外还有更大的收获,那就是学习了Kotlin,甚至深入接触了Kotlin/Native和Kotlin/WASM,在做这个项目之前,作为传统面向对象编程语言的忠实拥趸(说的就是你Java),我一向是讨厌各种语法糖的,认为糖越多越难理解,而且对于一个东西能写出各种各样的代码,如果是像Java这种死板的语言,不管什么水平的人来了写出的代码都是一模一样的,这多好。不过真正接触了Kotlin之后才发现,真香,语法糖从一定程度上来说确实增大了理解的成本,但是也大大减少了代码量,尤其是样板代码,况且代码都是人写的,写的时候完全可以选择在难以理解的地方克制地使用语法糖。总的来说Kotlin确实能大大提高开发效率,怪不得不只是Google在Android上强推Kotlin,Minecraft的mod和插件也有越来越多的人选择使用Kotlin,而且Kotlin支持编译成native、js和wasm,这就意味着以后学习一门语言就能做所有事情再也不是梦。

那么代价是什么呢,古尔丹?

  1. 资料少,和老牌跨平台框架Flutter和RN相比,资料实在是少的可怜,甚至要靠自己读代码才能知道一些API怎么用;
  2. 生态不完善,很多需要的功能CMP都没有提供,也没有现成的库可用,都得我们自己造轮子去补全能力,不过这倒是方便做小型化了;
  3. CMP全是坑,遇到的CMP问题数不胜数,尤其是CMP在Android上用系统组件,在其他平台上用skia自渲染,带来了一大堆问题。

KMP和CMP现在还处于快速发展阶段,每天都在快速迭代功能,大厂也在探索,没有像Flutter和RN那样大规模使用,所以遇到问题是在所难免的。但是好在这些问题都在我们的努力下一一解决,今年五月份我们甚至给银临茶舍App在iOS上实现了悬浮窗歌词的功能,这可是连某大厂的wyy都没有的功能(笑

关于Minecraft

其实年度总结本来打算1号0点就发出来的,结果玩ATM10玩上头了导致现在才写完爱慕西怎么这么坏啊

今年主要就是把之前给后端做的mc登录api抽象成了一个库贡献给了学校的mc社团,用这个库可以将当前已有的nodejs认证服务器接入mc启动器;还打算写一个叫UniLogin的插件,通过劫持原版的登录和UUID处理逻辑,自己实现一套不同登录API的UUID到存档内玩家UUID的映射,从而实现同时兼容正版、第三方和离线登录,但是现在还处在新建文件夹的阶段;最后就是关于给学校MC社团做的启动器,目前打算使用rust做启动器的后端,前端可以用DirectX、electron和Qt或者其他技术实现,总之就是先做后端,考虑到我对rust不是很熟悉,前期工作先交给z佬进行,后续需要我的时候再投入。

这几天玩ATM10,发现现在的mod一个比一个夸张,机械动力都已经是一般般了,作为一个从1.8时代一路走过来的mod开发者,我感触很深。Minecraft生态发展了这么多年了,随着AI的进步和开发者开发水平的提升,现在的mc圈如同神仙打架,而且开发体验和10年前比进步了太多了,可以说现在是做mod的最好机会,可是我似乎还是没什么时间,把我小时候没能做完的魔法mod的想法还是等以后吧,但是有一些创意可以先在这记录下,以免我以后忘记。

我的想法是可以基于KMP(Kotlin Multiplatform),仿照CMP做一个MMP(Minecraft Multiplatform),利用Kotlin的expect和actual去做Minecraft多平台和版本的适配。优点就是所有差异都可以在编译期处理,不需要Architectury那种运行时库;缺点我觉得没有缺点,也许依赖Kotlin运行时算一个,但是现在很多mod和插件都用到了Kotlin,所以难免要安装,更何况官方现在已经不混淆了,假如所有mod加载器和服务端都能用官方反混淆,那这个流程会更加简单,甚至Kotlin Native还支持和c互操作,所以可以支持一些拿C++写的服务端甚至是其他语言写的Minecraft?

关于wc☁核心网

趁着上班,我终于在一定程度上实现了经济独立,有钱给自己的设备更新换代了,也趁这个机会好好梳理一下wc核心网的设备和运行的服务。

  • tx云:负责运行暴露在公网上的对外服务,例如博客、落地页、Git、frp等服务;
  • 黑群晖nas:负责对内的轻计算重存储的服务,例如云盘、定时备份、一些内网的存储服务等;
  • 香橙派5(ARM ALL IN BOOM):负责对内的重计算轻存储的服务,例如Android容器、游戏挂机脚本、ci runner、Home Assistant等;
  • 12900k台式机:在家干活用,仅安装Windows,通过wsl1/2和Docker运行linux程序和服务;
  • amd笔记本:出门时携带,仅安装Archlinux,通过wine和qemu运行windows程序(TODO);
  • 旧戴尔笔记本:安装了黑苹果,开发银临茶舍App或给其他项目适配iOS时使用;
  • 红米K70:root过的调试机,用于调试App或学习逆向。

另外毕业之后原来的中心化的openvpn组网方案就没法用了,因为所有流量都得走中心服务器,而tx云那小水管,速度实在是一言难尽,几乎用不了。之前和同学联机的时候尝试过n2n,在mc社又尝试过zerotier,但是他们的功能太弱了,没有完善的身份验证机制,感觉还不如蛤蟆吃或者蒲公英这种,也缺乏一个好用的可视化管理界面。后来调研了一下,最终决定采用基于tailscale的自组网方案,用headscale+headplane自己搭建服务端,然后客户端还是使用官方的tailscale。

这套方案在10月和12月已经分别成功经历了考验,10月份去新疆玩,在新疆全程远程到北京的电脑上玩《魔法少女的魔女审判》,用了将近100g的流量;12月的mc服务器最多同时在线9人,在大部分人能够使用ipv6打洞成功的情况下,延迟很低,十分稳定。当然了,tailscale也不是没有缺点,最大的问题是国内运营商对UDP的QoS太严重了,在高峰期UDP极其容易丢包,表现上就是远程桌面巨卡无比,甚至不如腾讯会议开远程;另外还有一个小问题是tailscale是默认不保持连接的,也就是说要第一次尝试连接到另一个节点的时候才会创建连接,就会导致首次连接延迟偏高(因为要尝试打洞),不过这在我的使用场景里是完全可以接受的。

关于生活

打工人没有生活。

开玩笑的,25年由于天天加班和吃夜宵(还有熬夜),体重从毕业时的128增加到了140斤,而且坐着不动心率都有90多,感觉问题很大,所以新的一年得稍微锻炼下,不说去健身房,至少也得下楼跑跑步,不能天天往那一坐一动不动了TAT

其实不上班就都好了

标题: 2025年度总结
作者: QingChenW
链接: https://dawncraft.cc/2026/01/605/
本文遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 许可
禁止商用, 非商业转载请注明作者及来源!
上一篇
隐藏