长风破浪会有时,直挂云帆济沧海
2024 年是我从大学毕业,进入社会后熬过的第一个完整年。从年初开始,我经历过许多具有挑战性的事件。在此风雨飘摇之际,我必须保持乐观、积极应对挑战。
在工作上,今年聚焦于「柚子星云」的核心业务与我个人的开源项目 Nginx UI,全年累计代码提交超过 2,500 次,增加超过 30 万行代码,减去 17.6 万行代码1。在几乎「零投资」2的前提下,柚子实现了稳步的增长,其中核心开发成员再增加 1 人,弹性开发和测试组增加多人,显著提升了团队的生产力。开源项目 Nginx UI3 增加 5.1k Stars,累计达到 6.4k Stars,增长率达到 433%。
1 月 15 日,在海上世界与 @Sunbelife 和 @Hackl0us 会面,都是当年威锋论坛的老网友。3 月,与 @Hintay,九年老网友,技术导师第一次线下见面。6 月 20 日,与 @Sunbelife 和 @i_82 史诗级会面,也是 9 年老网友,带我入坑的大神第一次线下见面。七月份,实现全款拿下全新 Apple Vision Pro4。9 月,Nginx UI 关注度开始高速增长,在 12 天内涨了 1k Stars。11 月 15 日,以第二作者发表的论文拿到 ICMSR 2024 会议5 AC。
柚子星云
柚子星云团队成员为深圳技术大学物联网工程科班出身,部分成员有在德国留学和深圳腾讯工作经验的背景。我们活跃于世界上最大的代码开源社区 GitHub,致力于通过创新技术和定制化服务,帮助企业优化运营流程,提升工作效率和数据处理能力,核心领域包括物联网、 AI 大模型、电商/保险解决方案、Web 软件开发和微信小程序定制。团队致力于为中小型企业提供高效率、专业的技术解决方案,协助企业实现数字转型,提升运营效率。6
经过一年的稳定发展,在硬件上公司已有星闪7周边、星闪开发板等产品;软件上有集成 AI 的中/后台,中国大陆/海外电商独立站,保险行业系统,定制微信小程序,大模型问答机器人,深度学习参数预测等经典产品。
其中,独立站是我们公司今年投入力度最大的产品,完全从 0 到 1 的自研高性能架构,支持商品秒杀等经典业务场景,耗时五个月开发,11 月底上线。
我们引入大模型来优化销售人员的工作流,在过去,用户需要手动编写 SEO 优化的关键词并总结描述,如今使用大模型,我们可以直接从内容中自动生成关键词和简介。
此外,在编写商品描述的时候,我们也引入了写作润色工具,支持包括缩写、扩写、翻译、修正语法错误等功能。
在支付方面,支持银行转账、PayPal、Stripe、微信支付等多种支付方式,目前已完成一定量的订单交易。
安全性方面,公司的软件产品,通过公安部网络安全等级保护2.08测试。
在 2024 年的开发周期中,我们渐进式的规范了开发与部署的流程,比如要编写清晰的注释;执行重构级别的改动要团队一起开会讨论;通用的依赖库统一抽离到单独的仓库,并为每个仓库都编写尽可能详尽的说明文档,后人学习、接手项目时,可以减轻负担。在编写代码的同时编写单元测试,减少改动后引起的副作用。部署的时候会分离部署生产环境和演示环境,规范分支保护,禁止未经 PR 审查的代码合并入生产环境中等。
此外,我们还组建了弹性开发与测试组,针对核心业务进行自动化流水线的交付测试,提早发现软件的缺陷和故障。
我们的核心软件开发团队扎根于开源社区,也坚持回馈开源社区。今年我司的框架 Cosy9 ,在取得计算机软件著作权后开源至 Github 中 https://github.com/uozi-tech/cosy,接受社区的检验。
Nginx UI
Nginx 是 Web 服务器市场上占有率最高的产品,截止到 2024 年 12 月的调查统计10,Nginx UI 则主要是由我和 @Hintay,为 Nginx 设计开发的管理界面,除了配置管理外,我们还集成 ChatGPT 助手帮助解答、编写或优化 Nginx 配置文件,SSL 证书的自动部署与续期,配置策略批量同步至无限制数量的集群节点等企业级功能。
在 2024 年开发周期中,我进行了 409 次代码提交,新增 88,233 行代码,减去 57,163 行代码11。增加了如证书自动推送到集群节点、网站分组,站点配置同步策略等 44 项功能12。同时我们的跨平台能力也有进步,除了常见架构外,我们还支持 🇨🇳 loongarch64 (龙芯架构)。当前,Nginx UI 官方仅提供 Linux / macOS 的支持,团队成员正在努力将它移植到 Windows 平台上。
自去年拿下 1k Stars 之后,今年在 7 月 22 日拿下 2k Stars。就当我觉得它即将迎来上升瓶颈的时候,在 9 月底的时候突然迎来一波暴力拉升,特别是在 3-4k Stars 阶段,仅用时 12 天。在这里,我代表 Nginx UI 开发者和社区,对自发帮助我们宣传的个人博主、B 站 UP 主,微信公众、技术人员等表示衷心的感谢!
安全性方面,在 1 月 11 日,我们收到了 1 份越权访问13 14、1 份远程代码执行15 16、1 份 SQL 注入漏洞报告17 18;1 月 28 日,收到 1 份文件逃逸访问漏洞报告19 20, 1 份远程命令执行漏洞报告21 22;10 月 21 日,收到 2 份远程代码执行23 24 25 26,1 份文件逃逸访问漏洞报告27 28,共计 8 份报告。上述漏洞只有管理员先登录进入系统才可以执行,而我们没有接到登录部分的漏洞的报告,因此我认为并不是致命级别的漏洞。上述漏洞最快在安全研究人员反馈后的 1 天内,我们进行了修复,并且在修复后的第 14 ~ 21 天后才申请 CVE29 并向公众披露,留足时间为存量用户进行升级。此外,我们在后续版本中升级了登录安全机制,引入 OTP30 二步验证机制, Passkey31 登录/二步验证方式,同时二步验证方式也扩展到敏感操作,如在线终端,在线编辑 Nginx UI 自身配置。并且,会自动阻止同一 IP 多次尝试使用错误的用户密码登录行为,强化了系统的安全性。
当前,v2.0.0 版本已经迭代到第 42 个测试版,预计在 2025 年春季会迎来 rc(发布候选版本)阶段。在此感谢所有参与 beta 阶段测试的用户。我们展望在 2025 年夏季发布 Nginx UI v2 的正式版本。
线下活动
无派科技
新年的第一天,由老孙发起的无派科技线下聚餐。
@Sunbelife 与 @Hackl0us
1 月 15 日,老孙带我见了之前威锋论坛的一位老朋友。
柚子星云看大黄鸭
我记得 12 年前的时候,大黄鸭到了维多利亚港,当时想去没去成。今年大黄鸭居然来前海了,必须过去打个卡。
柚子星云团建
1 月底,邀请帮助柚子星云的老同学回学校团建。
与高中同学
2 月初,与高中同学爬山。
与 @Hintay
3 月底,与 @Hintay 线下见面。2015 年的时候在 Github 里认识的大哥,在我读大学的时候,在专业上提供的很多的帮助,九年后终于见到真人了。
柚子星云5 月团建
5 月中,回学校一日游,同团队一同聚餐。顺便收拾了一下阔别几个月的工位。
与 @i_82 和 @Sunbelife
恰逢吴老板来深圳视察,老孙和我一起见到了吴老板。2015 年的时候,我使用了由他和 @Hintay 开发的 DCRM 项目,也算是把我带入了计算机的坑(不是),意义很重大。2017 年的时候我也参与过 DCRMv4 的前端开发工作,终于在今年线下见面。
恭喜大师兄毕业
大师兄是李教授实验室的开门大师兄,时间一晃三年过去了,大师兄也毕业了。
生日
8 月 5 日,与柚子星云度过的生日晚宴(上半场),与 sst 和大蓑衣的蛋糕(下半场)。
与 @Moli
压抑了三个月后,出来和 @Moli 在市民中心闲逛的一天,放松放松心情。
新年特别活动
柯教授团队的新年特别活动,我也是第一次去深圳最高(物理)的自助餐厅用餐。
苹果税
Apple Vision Pro
今年 6 月,在 @Sunbelife 的诱惑下,试了他的 Vision Pro,当时我近视,没带专用镜片,近视直接抵消了 Vision Pro 摄像机拍摄外景的噪点,然后我就种草了。7 月,斥他刚给我发的外包费去整了一台全新未拆封的美版 Apple Vision Pro 512G,因为包装盒实在是太大,这里直接省略,展示开箱后的样子。
一块外挂电池、然后就是本体、遮光罩、遮光垫、Solo 单圈头戴(附带一个双圈头戴)、里面还配有一个官方定制的蔡司镜片,这些都是要带着才能用的,缺一不可。
以下是我在虚拟世界中的录屏,这是我在看之前大一的时候在学校饭堂楼下音乐节录的视频。
壁纸是动态的
Safari 和 b 站基本上是超大 iPad 的体验,窗口与窗口之间在空间上是有层级的。
淘宝/京东的部分商品已经有3D 1:1 的建模了,很真实,在装修、布置家居的场景会非常实用。
得物S能看各种球鞋的3D建模。
腾讯视频的比赛直播,除了能看主视角,还可以在侧边看比赛的信息,在下方看视野的沙盘,这个建模还是很精细的。
不过看演唱会确实挺爽的,巨幕+立体声,希望以后 b 站能支持空间视频,也希望以后演唱会的回放能有空间视频级别,这样不就不用去现场了(笑)。
苹果官方的沉浸式视频因为版权原因,无法截图。
以下是淘宝 x 小米 SU7 虚拟试驾场景:
目前,在更新 macOS 15.2 和 visionOS 2.2 后,现在已经可以使用超宽屏(等效两块 5K 屏幕)作为 MacBook 的外接屏幕,适合出门在外的办公场景。
Apple Vision Pro 的体验是惊人的,让我窥探到了可能是未来十年的科技发展的前景。这个东西的缺点也很明显,就是它实在是太重了,长时间佩戴对脸部和颈部有很大的挑战性。他不是传统意义上的 MR,设备会先通过两组前置摄像头采集环境,大概就跟手机录像一样,不过延迟很低,但是在环境光稍暗的地方,会有明显的噪点。此外,带上它之后基本看不清电子产品的屏幕。
这个舒适佩戴方案是小红书上买的,官方是有双圈头戴的,但是那个纯纯勒头。这个方案用的 Solo 的后置头戴,后脑勺的压力可以分摊,然后其实是把压力分摊到头顶,避免前侧的海绵压脸。不过这个只是缓兵之计,佩戴时长超过一小时后,脸部还是会疼痛的,但至少不是剧烈疼痛。
iPhone 16 Pro
自给自足 iPhone 的第三年。
今年 iPhone 16 Pro 512G 实在是太难抢了,自九月份没抢到首发之后,甚至连国家补贴也没抢到,到 11 月份铺货之后才买到。
虽然迁移数据的时候用的是 Thunderbolt 线材了,上一台 iPhone 15 Pro 也是支持 Thunderbolt 协议但迁移速度还是非常慢。
以下为 Geekbench 6 的跑分结果,相比前代的单核、多核、GPU 均提升了 22%。性能也终于超过了 4 年前的 M1。今年的 Soc 相比前代 A17 Pro 的发热控制有很大的进步,在游戏中终于可以开高画质并且能边充电边玩了,之前 A16 包括 A17 Pro 真的是玩不了一点。我认为这个 A18 Pro 应该是当年 A16 的完全体,不过没想到还是隔了三年才出。
充电方面,提升了一个寂寞。
关于这个拍照按钮,在目前国行的机器且 iOS 18 时代,基本图一乐。我不否认它能快速的进入相机界面方便取经,但是它这个按钮的按压力度要比其他按钮大,且设计的位置太靠上了,按下按钮时机身可能会晃动,影响成片质量。
AirPods 4
AirPods 4 的购入纯属意外,我之前送给我妈的 AirPods Pro,前阵子在路上丢了一只耳机,Find My 定位到,也去找了,甚至耳机的蓝牙都连接上了,但最终还是没有找到。因为初代的 AirPods Pro 是没有超宽频定位的,所以没办法找到精确的位置,这也是个遗憾。
于是,就给她安排了一个新的 AirPods 4 降噪版。
新耳机一如既往的继承苹果的音质调教,这个没什么亮点,还是经典的白开水音质。不过这个降噪的功能倒是很神奇的,在不需要像 AirPods Pro 那样的耳塞的情况下,他可以做到和初代 AirPods Pro 一样的降噪能力32。
基础设施维护
软路由
因为软路由是放在我的房间里的,而我又被苹果的(无)风扇设计惯坏了,受不了一点低端工业风扇的噪音。无奈,只能换掉之前的四口「超迷」路由,改用零刻 EQ12,这是一个双口 2.5G 的路由器,CPU 部分是 N100。散热规模比之前的大很多,经过手动调整散热策略后,几乎听不到风扇的声音。
NAS
目前我的 NAS 可以说是「柚子星云」的老员工了,我们的 CI/CD、虚拟机测试环境分布在多个同事的家中,我这个算是其中一个最高性能的节点。
9 月底,移速的 SATA SSD 彻底掉盘(中途掉过两次但是重新接线好了),9 折退款,虽然这个存储池里的数据并没有那么重要,但还是为了保险起见,买了两块新的盘。
10 月中开始,NAS 系统变得不稳定,经常死机报内核 panic,内存自检不能过。因为之前这套 Setup 就偶尔会出现内存跑不了高频的情况,但是现在连 4800MT/s 都难以维持。一开始怀疑是 CPU 缩缸,因为 i7-14700K 是在缩缸清单33内的。换了一颗 i7-14700,结果升级 bios (0x12B) 之后,全大核睿频只能跑到 3.2GHz (峰值 5.2GHz)了,后来一咬牙觉得应该是华硕主板的问题,换了块技嘉的 Z790M 小雕,CPU 的问题居然解决了,但是内存还是跑不了高频,遂更换了一套内存。
下表是 v2.5 的 Tower 方案,因为换了标压 U,系统待机功耗降低,CPU 温度降低,并且在我的散热规模下和带 K 的峰值性能比并没有什么区别。
CPU | i7-14700 20C28T |
主板 | 技嘉 Z790M 小雕 WIFI D5 |
显卡 | 微星万图师 RTX4070 双风扇 |
内存 | 金士顿 128G DDR5 (5600MT/s) |
SSD | 爱国者 P7000Z 2T * 4,铭瑄电竞之心2T PCIE-4,移速 4T SATA SSD *2 |
机箱 | 先马趣造 v2 |
水冷 | 霜界 280 一体水 |
事后,将 i7-14700K、华硕 Z790M Prime、光威内存分别送回检修,检查结果是 CPU 暂时没有缩缸,功耗就那么高,电压也那么高(真就传奇耐电王),主板确实坏了,直接换了一套备件给我,光威内存两套中有一套有问题。这也算是解答了我长达一年的疑虑了,两三个组件出现问题,排查不了一点。
新升级的 Setup 用了大约 1 个月,至 11 月底,又陆续遇到 ZFS Pool 报废,这个很好理解,因为存储池之前允许在了一个内存不稳定的平台上,过多的位发生错误翻转导致 ZFS 无法纠正,不过好在存储池仍能以只读模式访问,于是赶紧把数据抢救到了临时的机械硬盘上并重建阵列、恢复备份。不久,之前的双盘 SATA 又遇到单盘掉盘故障,好在双盘是互相镜像的,售后更换了新的硬盘换上了,数据没有受到影响。
由此看来,今年的 NAS 稳定性是很低的,多次遇到系统级内存故障,后来估计因为之前的主板有很大问题,导致硬盘也跟着遭殃,甚至后来我的 Unraid 启动盘也坏掉了。这次重构,更换了核心组件,希望能稳定运行更长的时间,当然了,以后条件允许会使用更高端的固态硬盘。
其他
新冠二阳
四月中旬去深业上城吃了饭之后就二阳了。没有用特效药,7 天后转阴,但是对心肺功能的慢性副作用持续了很长时间。
黑猴子,启动!
也是跟我弟体验了国产 3A 大作,黑神话·悟空。说实话,国产游戏能有这个水平,超出我的预期了。
帮大蓑衣修电脑
从 AMD 平台更换到 Intel 平台。
学术
论文发表一篇,暂时告别学术圈了。
注释
- 代码量使用 MyYearWithGit 统计,截止至2024 年 12 月 24 日, https://github.com/Lakr233/myyearwithgit, 代码仓库年终总结报告, 2024. ↩︎
- 经费完全来自交付项目, 2024. ↩︎
- Nginx UI, Yet another WebUI for Nginx, https://github.com/0xJacky/nginx-ui, 2024. ↩︎
- 全新 Apple Vision Pro 512G 美版, https://www.apple.com/apple-vision-pro/, 2024. ↩︎
- ICMSR 2024, 2024 10th International Conference on Mechatronics System and Robots: Optimization of Robot Control Algorithms, 2024. ↩︎
- 柚子星雲團隊介紹.pptx, 2024. ↩︎
- 星闪(英语:NearLink,旧称SparkLink)是一种无线电短距离通信技术,其标准由星闪联盟(SparkLink Alliance)制定和规范。星闪联盟于2020年9月22日由华为牵头成立,截至2023年9月,联盟会员单位已超过300家,包括行业机构、汽车厂商、芯片和模块厂商、应用厂商、ICT企业和科研单位等,https://zh.wikipedia.org/wiki/星闪 ,2024. ↩︎
- 什么是等保,https://www.sangfor.com.cn/knowledge/classified-protection,2024. ↩︎
- Cosy, Golang Web API 框架, https://cosy.uozi.org/, 2024. ↩︎
- December 2024 Web Server Survey, https://www.netcraft.com/blog/december-2024-web-server-survey/, 2024. ↩︎
- 代码量使用 MyYearWithGit 统计,截止至2024 年 12 月 26 日, https://github.com/Lakr233/myyearwithgit, 代码仓库年终总结报告, 2024. ↩︎ ↩︎
- Nginx UI v2.0.0-beta.43 Release Note, https://github.com/0xJacky/nginx-ui/releases/tag/v2.0.0-beta.42, 2024. ↩︎
- Authenticated (user role) arbitrary command execution by modifying `start_cmd` setting (GHSL-2023-268), https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-8r25-68wm-jw35, 2024. ↩︎
- CVE-2024-22198, https://www.cve.org/CVERecord?id=CVE-2024-22198, 2024. ↩︎
- Authenticated (user role) remote command execution by modifying `nginx` settings (GHSL-2023-269), https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-pxmr-q2x3-9x9m, 2024. ↩︎
- CVE-2024-22197, https://www.cve.org/CVERecord?id=CVE-2024-22197, 2024. ↩︎
- Authenticated (user role) SQL injection in `OrderAndPaginate` (GHSL-2023-270), https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-h374-mm57-879c, 2024. ↩︎
- CVE-2024-22196, https://www.cve.org/CVERecord?id=CVE-2024-22196, 2024. ↩︎
- Arbitrary file write through the Import Certificate feature, https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-xvq9-4vpv-227m, 2024. ↩︎
- CVE-2024-23827, https://www.cve.org/CVERecord?id=CVE-2024-23827, 2024. ↩︎
- Authenticated RCE through injecting into the application config via CRLF, https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-qcjq-7f7v-pvc8, 2024. ↩︎
- CVE-2024-23828, https://www.cve.org/CVERecord?id=CVE-2024-23828, 2024. ↩︎
- Unchecked logrotate settings lead to arbitrary command execution, https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-66m6-27r9-77vm, 2024. ↩︎
- CVE-2024-49368, https://www.cve.org/CVERecord?id=CVE-2024-49368, 2024. ↩︎
- The log path can be controlled, leading to arbitrary file reading, https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-gr34-jgw4-7j4m, 2024. ↩︎
- CVE-2024-49367, https://www.cve.org/CVERecord?id=CVE-2024-49367, 2024. ↩︎
- The json field can construct a directory traversal payload, causing arbitrary files to be written, https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-prv4-rx44-f7jr, 2024. ↩︎
- CVE-2024-49366, https://www.cve.org/CVERecord?id=CVE-2024-49366, 2024. ↩︎
- 公共漏洞和暴露(英语:CVE, Common Vulnerabilities and Exposures)又称通用漏洞披露、常见漏洞与披露,是一个与信息安全有关的数据库,收集各种信息安全弱点及漏洞并给予编号以便于公众查阅。此数据库现由美国非营利组织MITRE所属的National Cybersecurity FFRDC所营运维护, https://zh.wikipedia.org/zh-cn/公共漏洞和暴露, 2024. ↩︎
- 一次性密码(英语:one-time password,简称OTP),又称动态密码或单次有效密码, https://zh.wikipedia.org/wiki/一次性密碼, 2024. ↩︎
- 通行密钥(英语:Passkey),是一种数字认证凭证,用于网站或应用程序的身份验证。它受到万维网联盟和FIDO联盟的支持,是一种无需密码的验证方法。它通常由操作系统或浏览器保存,并可通过云计算在同一生态系统中的不同设备间同步, https://zh.wikipedia.org/wiki/通行密钥, 2024. ↩︎
- 主动降噪效果相较 AirPods Pro (第一代) 和 AirPods 4 (支持主动降噪) 最高提升至 2 倍, https://www.apple.com.cn/airpods-4/compare/#footnote-2, 2024. ↩︎
- Intel Core 13th and 14th Gen Desktop Instability Root Cause Update, https://community.intel.com/t5/Blogs/Tech-Innovation/Client/Intel-Core-13th-and-14th-Gen-Desktop-Instability-Root-Cause/post/1633239, 2024. ↩︎
评论 (0)