2026-01-08 10:37:40
![]()
虽然 Miloco 的系统要求写着要求 30 系以上的显卡,看着有点劝退,但其实可以不部署对应的模型,只运行系统,模型从云端获取(也可以是本地部署的模型)。由于部署只支持 Linux 和 WIndows,而且对具体的 Linux 发行版也有不少限制,例如 Alpine 就不行,过程中踩了不少坑,还是写篇文章记录一下。
虽然完全可以自己用模板起 LXC 然后再装 Docker 之类,但是有个很好用的脚本:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/docker.sh)"
中间根据自己的需要配置一下网络,其他选项保持默认即可。配置的过程中会问你要不要安装 Docker Compose,选择是,剩下的也保持默认即可。这个脚本完成后,就会看到一个新的 LXC,里面已经配好了 Docker 和 Docker Compose,使用的发行版是 debian。
接下来进入 LXC 中,用 root 用户登录,然后运行下面几个命令新建一个用户,并且给到 Docker 的权限。
adduser miloco
addgroup miloco docker
usermod -aG docker miloco
usermod -aG sudo miloco
退出 root 用户,用新建的用户重新登录即可,登录后可以运行一下 docker 和 docker compose,如果没有报错说明配置成功。
官方提供了一个部署脚本,直接运行:
bash -c "$(wget -qO- https://xiaomi-miloco.cnbj1.mi-fds.com/xiaomi-miloco/install.sh)"
选择 2,不安装 AI 引擎,然后等待他完成即可。浏览器访问 https://<YOUR_IP>:8000即可。接着就是配置 PIN 码,绑定小米帐号,进入系统,没啥特别的。
由于视觉理解的功能需要使用摄像头的画面,出于隐私的考虑还是使用本地部署的为妙。我的 Mac Mini M4(16G RAM)使用 LM Studio 部署了 Qwen3 Vl 4B 和 Glm 4.6v Flash,我更推荐前者,推理速度更快,效果也差不多。
推理模型则是使用了火山引擎的 doubao-seed-1.8,尝试过 DeepSeek V3.2,似乎适配不是很好会输出一些无意义的标签,遂弃之。
其实我对 Miloco 还是有比较大的期待的,这有点像是特斯拉的纯视觉方案与激光雷达方案之争。我原本觉得它能以更好的方式实现「人在」的检测。这里补充一点背景信息,我住的是二十平左右的单间,摄像头放置在进门的位置,能覆盖基本整个房间;之前使用领普人体存在传感器,人在检测其实不是很准确,有时候在床上睡觉会被识别为没人,白天出门上班后不知道是墙太薄被邻居干扰还是什么原因,会识别为有人。
Anyway,我设置了两条规则,「有人回家打开空气净化器」和「没有人在家关闭空气净化器」。前者我回家之后过了十分八分钟才响应然后打开,反应特别慢,不知道是推理的延迟,还是触发推理的逻辑就有问题(我推测是画面有剧烈变动才触发推理)。这个 case 下使用体验远不如人在传感器(如果它不被干扰的话)。
然后我又尝试了两个人在传感器没法实现的规则(至少是没有分区功能的人在传感器没法实现的),「有人躺在床上切换空气净化器至静音模式」和「有人离开床切换空气净化器至自动模式」。能用,但是问题很多。除了上面提到的反应慢,规则之间还会相互打架,例如我在床上盖着被子,一时会被识别为「有人在床上」,一时又会被识别为「没有人在家」,似乎 AI 不太能处理好「人盖着被子」这个场景。
所以在「人在」这个场景来说,暂时还是人在传感器比较靠谱。在配置规则的时候,也没法把传感器加入条件中。而且,目前似乎没有用 AI 来对冲突的规则进行处理。
另外一个经验是,在规则的「设备执行」这里,可以使用缓存指令的功能,就是它每次都会调用测试时的那几个 MCP,响应会快一点,也节省 token。操作设备的 MCP 是幂等的,例如设备原本就是打开状态,再操作打开设备不会有滴声;所以执行的规则应该是「打开xx设备」而不是「如果xx设备没有打开,就打开这个设备」,前者可以缓存,后者就没法缓存。
最后,我觉得 Miloco 一个非常大的亮点就是把智能家居的门槛降低了。之前配置自动化,需要一大堆传感器,然后排列组合去选择条件、调试,对于本身会编程的人来说倒是不复杂,但对普通用户应该还是有一些认知门槛的。Miloco 的交互就很直接,一句话就能创建对应的规则,配置规则的地方也是可以用自然语言去描述的。另一点就是它是「纯视觉方案」,不再需要依赖原本的人在传感器了,可以实现一些原本纯传感器没法实现或者摄像头需要依赖云端算法的功能,例如有人跌倒之类的功能。虽然现在 Miloco 还很 prototype,我觉得完善一下响应速度、规则支持传感器条件以及规则冲突的处理,再打磨一下,可能就会上到米家普及。小米也可以卖部署好 Miloco 的新中枢网关(也许可以内置 AI 算力?),值得期待。
2025-12-28 20:58:15
![]()
这是猫鱼周刊的第 91 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在
博客:阿猫的博客-猫鱼周刊
RSS:猫鱼周刊
邮件订阅:猫鱼周刊
微信公众号:猫兄的和谐号列车
一转眼来到 2025 年的最后一周,下周因为出去玩,周刊休息一周,所以在这里先祝各位新年快乐。
按照习惯来说,年底也应该写一份年度总结,今年真的发生了很多事,现在还没构思好到底要怎么总结我这一年,可能拖更到新的一年吧。
一篇很受到震撼的总结。作者是我大学时候的同学,本科毕业的时候从双非保研到清华,毕业这几年也没怎么联系,再听到他的消息已经成为顶尖大佬。
说起来,这位大佬其实给了我很多震撼,或者说启发,也算是对我大学以及毕业后的生涯有不少的裨益。
首先是不要太在乎别人的非议,坚持做自己的事情。大学第一年评奖学金的时候大佬的综测分就很高,自然就有竞争对手采取投诉、散播谣言抹黑等。印象中他也曾经苦恼这些事情,但事实证明优秀的人就是能拨开云雾坚持走好自己的路。
然后是应对挫折的能力,大佬最近的文章里提到连续考了七八次雅思,分数没有达标还要再考。复习备考雅思是很花时间精力的事情,失败的成本也很高(两千多考一次),但大佬面对失败就不是沮丧和自我怀疑,而是调整心态重新再战。我觉得这点我真的很需要改善。
还有就是认清自己的能力,以及「努力」也是能力的一种。我算是一个比较自负的人,我会觉得自己能力很强,我无敌(也许也是因为这样所以我受到一点点挫折或者负反馈就会陷入严重的自我怀疑)。事实上其实我能力也就平平庸庸,只是对我感兴趣的事情会比较上心,对自己的要求也稍微比较严格,所以可能有些事情会做得比较好。在「努力」这种能力上我表现很差,不管我怎么 push 自己也做不到专注之类的,这真的没得说。我之前提到过,成功是天赋、努力和运气的结果。
另外就是想清楚自己适合做什么不适合做什么,以及发展出一套适合自己发挥的 SOP。正是在跟他的接触中,我发现自己并不适合做科研,我提不出什么非常原创的思路,但是我比较擅长调研现成的技术,然后排列组合出解决某一个现实问题的方案。你会注意到我没有把「不专注」、「低能量」这些列为我的「缺点」,我觉得这些更加是我的「特性」,因为在这几年里面我逐渐折腾出很多办法来节省我的时间精力,反正对我没有太决定性的影响。
最后一点,说出来我还觉得有点心虚,因为我真的做不到,就是「在自己的时区上,一切都非常准时」。在 25 岁这个节点,有人结婚生子,有人买车买房,也有人研究生毕业,而我今年最大的事情就是生 cancer,lucky me。说来好笑,我对我自己的人生其实没什么规划,按部就班大学毕业,找工作上班,就这么多。大佬会对自己的职业有很清晰的规划,什么时候实习,什么时候博士毕业,都有很严格的规划,以及行动力很强的执行。我觉得这算是两种不同的方式吧,不管怎么样,保持良好的心态好好过就好了。
原来还有域名会专门解析到 127.0.0.1,可以用来方便本地开发,好处还不少,例如可以共享 Cookie、替代 IP:端口等。
其实 DNS 就是一个简单的 KV,你可以把域名解析到任意的 IP 地址,可以是私有地址,也可以是 127.0.0.1。如果你使用 tailscale,因为它使用的是私有地址,所以也可以把某个域名解析到这个私有地址,然后在连接了 tailscale 网络后通过私有地址来访问,别人拿到这个域名也是无法访问的。
这周主要做了一个获取全文的功能,以及一些细节的优化。有了获取全文的功能之后,就可以实现对一些聚合类型的订阅(例如 VXNA)结合之前做的偏好系统进行打分,阅读体验也会更好。
![]()
另外,收到的用户反馈不少是关于部署太过繁琐的。这也是我没考虑好的地方,其实项目本身通过一个 docker compose 就能部署,但是我觉得管理后台和向量数据库这些东西都不是必须的,所以就做成了可以简化的部署方式。即使有 AI 帮我撰写文档,对于一些用户来说认知成本还是很高。有时候给用户太多的选择,不如帮用户做好选择。所以下一步可能会针对部署做一下优化,简化部署的方式,也会加快一下 SaaS 版本的上线,方便更多人用。
用来获取一个链接中的正文、作者等结构化信息,也是 Glean 用来提取正文用的工具。这类东西最经典的用途就是浏览器的「阅读模式」,需要识别出文章的正文,去掉网页中其他的无关元素。
也是一个提取正文的包。本来一开始使用的是这个,star 更多,看起来也更好。实际使用的效果提取出的 HTML 丢结构比较厉害,渲染出来效果很差,所以没有选用。
一个计算密码强度的包。比起传统的规则(例如密码至少有 x 位,必须包含大小写特殊符号),这个方案通过计算破解这个密码需要的时间作为密码的强度,更加先进。
本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡)
另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。
2025-12-21 20:21:28
![]()
这是猫鱼周刊的第 90 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在
博客:阿猫的博客-猫鱼周刊
RSS:猫鱼周刊
邮件订阅:猫鱼周刊
微信公众号:猫兄的和谐号列车
这周依然花了很多时间在 Glean 的开发上,内容也不是很多,STDOUT 部分介绍一些开发过程中的心得吧。
最近确实见到越来越多博客在开头的地方做一个 AI 总结,甚至为了模拟实时生成(事实上都是提前生成好的)还做了打字机效果,确实觉得很喧宾夺主(这也是 folo 最近的更新让我很难受的地方)。
作为创作者,我很认同作者说的 AI 总结应该作为「预告片」,而非完全概括文章的内容。你的期望是这个总结能够吸引读者的兴趣,尽可能读完你的文章,而不是期望读者读完就走,那你洋洋洒洒码的字算什么?我会用 AI 给周刊做一段 120 字左右的简介(120 字也是微信公众号的平台限制),有时候会手动编辑一下,使它更加适合我的风格。如果你要做 AI 总结,我觉得限制字数就是一个不错的方式。当然还有其他的东西需要考虑,例如展示的样式不要太抢眼球等等。
(博客加了雪花动画,还有一个会动的雪橇,指针也会变成圣诞树,可爱捏!)
![]()
作者把这种行为称为「差不多主义」。
只要对方能看懂,写哪个字似乎并不重要。
说来好笑,这真的是我日常工作中最为困扰的问题,打错字只是一个最显眼的表象,更多的是逻辑没有梳理清晰。这种没有消歧、逻辑混乱的信息经常会使我 panic,我需要反复跟对方确认,如果对方一直不能给到我满意的清晰答复,会很影响我的心情。然而,我发现别人似乎对这个情况没多大的反应,他们会很「有耐心」地去别人的工位上,或者语音电话,一点点聊清楚。
我很讨厌这种工作方式,尤其是基于线下沟通、反复核对,明明一开始文档写清楚就完事了,还得拉个会议或者到别人工位上去讨论大半个小时。相对地,如果是我主导的工作,我一定会写很清晰的文档,在钉钉/邮件上也会做到言简意赅、逻辑清晰无歧义。这对我来说是比「对一下」更加轻松好办的事情。
《窃听风云》的解说,一共三期,一期半个小时左右,很深度解析了电影里面的情节以及里面用到的一些窃听的技术等,对股市以及资本可以如何操控股价的解说也很有意思。这也是我觉得电影比短剧、电视剧等体裁更有意思的地方,它是比较严肃的创作,好的电影在剧情上很值得推敲,更别提镜头设计等等,有很多耐人寻味的地方。
Vibe Coding 对软件行业其实影响很大,它最实在的地方是可以帮助你完成能力的外延,例如你是设计师,原来只能画一下高保真原型,现在可以通过 AI 把产品 MVP 做出来;如果你是一个熟练的后端,对前端一知半解,原来做不了有界面的产品,或者要拉上一个人组队,现在可以通过 AI 一人成军。当然了,纯粹的 Vibe Coding 其实很局限,基本上只能做出一个很粗糙的 MVP,你会发现很多 Vibe 的产品的特点就是文档很长很详细,但是软件界面比较简陋或者 AI 味,功能相对也比较简单,没有复杂的业务逻辑,给人一种半成品的感觉。
要想实现传统软件开发的优点,例如功能完备、相对地 bug free 等等,其实需要我们在大学里往往当水课不听的「软件工程」。在 Glean 的开发中,我一开始先通过跟 Opus 4.5 聊天,确定产品的 PRD 以及开发路线,把整个系统的功能拆分为数个 milestone,形成第一个文档;然后再通过 Project 功能,把上面的 PRD 文档存在里面,再新开一个聊天,跟 Opus 4.5 确定整个产品的技术栈,指定开发规范等等,形成第二个文档;接着通过这两个文档,逐个 milestone 编写对应的技术方案、测试验收方案等;最后拿着这些文档,在编辑器中让 Cursor / Claude Code 去实现,编写单元测试,修复逻辑、样式问题,并且通过浏览器 MCP 进行测试和验收。
另外一个我很惊喜的地方是,AI Coding 近年来的进步其实不小。从最早 23 年底的时候我做过一版 code review,当时的 GPT 3.5 只能指出来一堆 nitpick,对实际的逻辑 bug 没什么帮助;到现在 Claude 做的 review 已经能一针见血指出一些诸如 race condition 之类人眼难以发觉的问题。所以我现在写完之后都会通过 PR 或者 Cursor 里自带的 Review 让 AI 自己再检查一下自己的成果,我更多专注于在界面、用户体验上捉虫和提要求。
Anna's Archive 是一个自由、非盈利的影子图书馆元搜索引擎。它进入我的眼球是因为最近的两个更新:
其实这个东西还挺「灰色」的,它的大多数资源其实都是「盗版」,它通过存储元数据的方式避免了存储受版权保护的内容,但实际上是完成了版权内容的分发。从另一个角度来讲,如果你认同「知识应该全免费人类共享」,那它正是那个理想主义者。
可以把某个订阅提供的 AI 额度转成标准的接口,提供给其他工具使用。有点担心会违反 TOS 导致封号,不过功能确实深得我心:我有 GitHub Copilot 的订阅,给的量还挺多,但是因为主要用 Cursor 和 Claude Code,这个订阅长期有点浪费掉。
本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡)
另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。
2025-12-14 23:25:30
![]()
这是猫鱼周刊的第 86 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在
博客:阿猫的博客-猫鱼周刊
RSS:猫鱼周刊
邮件订阅:猫鱼周刊
微信公众号:猫兄的和谐号列车
这周因为很多时间花在 Glean 的开发上,看的东西不多,所以周刊的内容相对也少一点。
早就有闻可以通过 Figma 把设计稿通过 MCP 让 AI 写高保真代码,这篇文章算是走通了整个流程,并且给出了实验的结果:在传统 XML 项目中无法完美还原 UI,但是作为自动化的辅助有一定的价值;如果需要实现完全的自动化,需要设计侧和开发侧配合使用一定的规范。
我觉得这跟我之前提到过的「AI 友好」的概念很类似,就是尽量使用结构化、规范的方式去跟 AI 沟通,尽量使用业界通用的做法(例如一些软件工程的实践),注重文档工作,这样能够使 AI 的表现更加符合预期。写到这里我觉得比起 AI 这更像是管理学的延伸,毕竟所谓「软件工程」的很多实践,设计之初就是为了让水平参差不齐的工程师输出标准化、相对优质的结果。
科技界的两大 Linus 的史诗级会面!说是装机,更多是一个访谈,整个视频时长很长,就挑我印象比较深刻的一个点谈谈:Linus Torvalds 提到,他只会使用 ECC 内存,因为他需要更高的稳定性,如果出现什么 bug,他不希望在硬件上找问题。
我觉得这是抽象思维的体现。他主要做内核的开发,在这种抽象下,他的期望是硬件会正常工作,如果出问题,一定是在内核上。试想如果你遇到一个 bug,查了半天软件的实现,结果确实硬件掉了链子,那真的很蛋疼。
这一定程度上也反映出为什么感觉「差不多」的硬件,企业级的就是要比消费级的卖得贵,这额外付出的成本就是在稳定性上。这个原则其实也很适用于搞 Homelab,我自己是个比较狂热的 Homelab 爱好者,近年来我在选购时会更加愿意购买大牌成品方案而不是买更加性价比的品牌或者捡垃圾 DIY。你在出问题时付出的时间金钱成本,甚至造成的损失,很多时候不如一开始就搞一个靠谱的方案。
还是 LTT 的视频。这个视频从 VHS 开始重新体验,一直到蓝光,覆盖了几十年里全部家用影音格式。除了在市场上算是胜出的 VHS、DVD、蓝光以外,原来还有很多不知名但其实还挺有意思的产品。
我不清楚各位读者的年龄段以及经历,我记忆里使用得比较多的是 VCD 和 DVD,那时候盗版满天飞,十几二十块就能买到一张影碟。那个时候不管是 VCD/DVD 播放器还是光驱都非常流行,而且带刻录功能的光驱就很 fancy。到稍微后来(06 年之后),宽带普及了,光碟这个媒介就渐渐消失了,到 12 年我第二次装机的时候,就已经没有再配光驱了。
这条跟上面一条其实还有点关联。最近我三四年前组的蜗牛星际开始出问题了,以为是电源坏了,结果换了电源还是不行,一直重启,拔掉几块硬盘后倒又能稳定运行,我估计是硬盘背板坏了,造成供电不稳定。这也是我说最好不要搞这种 DIY 的方案的原因,它的散热风道设计很差,机箱里面积灰非常严重;而且由于使用 AC 电源(一般大牌都使用外置的 DC 电源),电源这种易损品更换起来非常麻烦;没有保修这一点就不提了,坏了之后能不能修全凭运气,数据能恢复多少更是没有保障。言归正传,它上面还有一些没有遵循 321 原则的数据,于是我就重新考虑了一下冷备的方案。看了这个视频,我发现原来蓝光光盘原来还广泛用于数据归档,有专门的档案级光盘,可以实现 20 年以上的数据存储,更加有千年盘这种号称能长期保存的。对比我之前了解的 LTO 磁带,使用上更加简便,macOS 甚至系统自带刻录光盘的功能,而且基本上都是免驱;成本也相对更低,考虑到我的数据量 ~500G,单张 25G 档案级蓝光光盘大约 40 元,整体成本在 1000 元内,再加上机器成本,大概也就 2000;如果使用 LTO 磁带,这个价钱只够买一套机器,以及一两盘带。
分享一下开发中的「智能列表」功能。之前的周刊就提到过,我想打造一个基于反馈的个人偏好系统(via link),帮我过滤掉一些没意思的文章。下面就是这个系统的雏形:
![]()
在阅读的时候,你可以根据自己的喜好,给对应的文章标记喜欢/不喜欢,以及收藏的行为,都会影响最后对你偏好的判断。一方面,系统会把每篇文章向量化(相当于理解文章的语义,得出文章的特征),计算你喜欢以及不喜欢的向量(可以视为你的偏好的特征),通过计算特征的相似度判读你对文章可能的喜好。另一方面是统计模式,会记录你对订阅源和作者的偏好,也作为一个调节参数。可以看看图片中的 demo,我常读的 So!azy 的文章就排到了前面。
这个功能目前还有一些最后的交互细节需要打磨,完成后就会上线。如果你对 Glean 感兴趣,不妨关注一下,给我点个 Star,又或者可以加入 Discord 谈谈。
一个由日本火车爱好者做的生成火车票面的网站。之前就知道有「火车迷」这么个群体,他们会研究火车线路、拍火车、坐特定班车收集对应的火车票等等。之前纸质车票被正式取消,所以有人做了这么个网站来生成纸质车票。
![]()
说到这里,有点怀念以前的红色火车票,以及坐广州站出发的绿皮卧铺,摇晃十几个小时去旅行,那种新鲜和激动的感觉。现在经常来往广州南和深圳北,高铁坐到烂,反而是有点麻木了。
本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡)
另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。
2025-12-07 19:35:35
![]()
这是猫鱼周刊的第 88 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在
博客:阿猫的博客-猫鱼周刊
RSS:猫鱼周刊
邮件订阅:猫鱼周刊
微信公众号:猫兄的和谐号列车
这周还是没有图。自从进了胶片的坑,出门要么不带数码的,要么带了也不拿出来拍。而一卷有 36 张,经常一次拍不完,又想等囤起来一起洗了,所以很久都没出什么图。
这周主要很多时间精力花在一个新坑上,起因是最近 Folo 团队裁员,裁掉了最核心的两位贡献者,而且发布了所谓「正式版」,加上怎么都关不掉的 AI 功能,实在让我觉得非常难受。RSS 阅读器这块我从一开始的 Reeder(Classic)到 NetNewsWire 再折腾到 Follow(Folo),来回折腾其实都只是不一样的界面,功能上没有什么特别亮眼的,也没有能针对我的信息获取工作流做优化的地方。于是我决定写一个自己的 RSS 阅读器 Glean,中文名叫拾灵,具体的后面细说。
说的是 AI 厂家在输出最后总会加的口癖(例如「要不要我帮你调整 xxx」)。作者举了几个小学生利用 AI 完成作文、作业,以及老师用来发朋友圈文案的例子。
我上周才提到过,如果把 AI 不加处理地用于教育领域,很容易造成「Shit in, shit out」的局面。小朋友的可塑性是非常强的,稍微「权威」的来源会对其认知产生很深远的影响。我记得以前小学的时候,学写信的格式,结尾一定要有「此致」「敬礼」,老师从来没有解释过为什么,我也理解不了为什么为什么要向信的读者敬礼(即使 ta 就是我的朋友),后来才知道其实还可以写「顺颂时祺」之类的套话,但实际上我用得最多的还是漫无章法的「祝好」、「祝万事如意」、「Best Wishes/Regards」。基础教育因为要面对非常多样性的群体,没法做到很细致,如果你拿着这个问题去问小学老师,一般得到的回答就是「你就记着这么用就行了,别问为什么,没有为什么,固定搭配」。
![]()
回到这个 AI 的例子,这里面最为讽刺的是,人把自己的知识蒸馏后训练成 AI,结果 AI 再蒸馏一遍知识给下一代的人,但每一步蒸馏都会有不少损失,所以才说对下一代的人来说,是「Shit in, shit^2 out」 。会不会下一代的人,写作风格不仅充满 AI 味,写出来的文章最后还要加上一句「如果你需要根据自己妈妈的特点进行个性化修改,我也可以帮你调整这篇作文。」?
一个初学者角度的 Go 语言印象,以及对一些 Go 生态中常见哲学的理解和解读。我觉得 Go 在我心目中算是排名数一数二的语言,虽然我最近用的 Python 比较多。
首先,Go 是偏见非常强的语言,诸如只有 gofmt 一种风格、不允许未使用的变量、强制错误检查等,一定程度上让代码「规范」了很多。这里的反例就是我最讨厌的 Java,八股里面我最讨厌的一个问题「线程有几种创建方式」,在 Go 里只有一种,就是 go 关键字,不需要考虑茴字到底有几种写法。
其次,Go 在语法上非常简单,也没有复杂的语法糖,不管你的本命语言是什么,读 Go 都会觉得很顺畅。作者举的三目表达式就是一个非常好的例子,Go 就鼓励清晰的 if-else 结构。
还有一点,Go 让我写代码的时候逻辑变得非常清晰,或者说形成了一些良好的思考习惯。比如强制的错误检查,会让你在调用某个函数的时候,仔细考虑它会可能会出什么异常,对于业务来说应该怎么处理;又比如非面向对象的设计,会让你更加好地考虑怎么设计数据结构和接口;以及相对比较「裸」的并发写法,让你自己控制通道和锁,比起 Java 那套奇怪的调度方法好理解得多。
最后不得不说的就是跨平台能力和性能。与 Java 的虚拟机机制不同,Go 在所有平台上都是二进制原生运行的,这点就很无敌。性能方面,Go 的线程就是一个很好的例子,内存占用非常小,这在现在以云服务为主,内存寸土寸金的环境来说非常友好。
我的编程入门语言是 Python,甚至是 Python 2,最早是高中的时候自己搞了点书看。然后到大一学了 C/C++,自学了 PHP、Python 3、JavaScript,大二自学了 Java,大三自学了 Kotlin,后来工作之后又自学了 Go。在见识过基本上全部主流的语言之后,我心目中数一数二的就是 Go 和 Python,这俩也是我最为常用的语言。也许后面可以专门写篇文章展开讲讲我对各个语言的一些印象。
Kodak Reto (柯达授权经销商)新出的一款胶片相机,25mm f9.5 广角镜头,固定 1/100 快门,有自动卷片、自动回卷和自动闪光,支持双区对焦、双重曝光,使用 7 号电池供电。
![]()
我在小红书上刷到的,看了一下国内贩子都在加价,就直接在官网下单买了,99 + 3.5 运费,算下来比贩子卖得稍微便宜一点,而且 12.2 发货,第二天就收到了。我买的是白色款,包装里自带一个收纳袋和一条挂绳。
带着拍了几天,简单谈谈使用体验。它非常轻便,操作也很简单,上卷、打开电源,按快门即可。拍照的时候会有一个很轻的快门声,然后就是过卷马达的声音,这个比起手动过卷的机器来说没有拨动过片扳手的齿轮声悦耳,跟其他一些傻瓜机差不多。自带的挂绳很有意思,保证你在扫街的时候可以第一时间拿出来拍。(此处应有伍佰)我觉得胸前挂着相机大摇大摆走还是太张扬了,而且给的绳子有点长,在肚子上晃荡,所以我是绳子挂在脖子上,然后相机踹在前胸大口袋里,也很方便。
![]()
因为第一卷还没拍完,所以画质这些也许要等后面洗出来再聊。25mm 的镜头对我来说也是一个挑战,因为我平常惯用 50mm 甚至更长的焦段,25mm 这样一个大广角对我来说有点难以掌握,不过我发现这对于拍摄街景、建筑或者壁画这些东西非常适合。另外,固定 1/100 的快门和 f9.5 的光圈也有点蛋疼,官方的说明里推荐晴天/阴天户外使用 ISO 100/200 的卷,阴天、室内使用 ISO 400 的卷。我第一卷装的是全能 400,我也不确定宽容度有多高,但是拍摄的过程涵盖了阴天和大晴天,到时候看看效果吧。小红书上有不少评论说不如买几百块的二手 PS 机,二手 PS 机我也有,但是真的很难买到成色好,更别说全新的机器,而且 PS 机也做不到这样轻的重量。我觉得它的定位是玩具相机和 PS 机的中间,比玩具相机更好的画质、可以重复装卷,结构比 PS 机简单、成本更低。如果你对胶片感兴趣,我觉得这是一台比较值得入手尝试的机器。
前面说到,Folo 的变动,让我决定写一个自己的工具,它主要是一个自托管的 RSS 阅读器 + 个人知识管理工具,主要会有以下的功能:
所以 Glean 在产品形态上大致是 Folo/RSS Reader + Cubox/Karakeep 这样的东西,相当于是把我平时用来阅读和收藏整理信息的工具整合起来了。这是它目前的样子:
![]()
它会采用 OSS + SaaS 的商业模式,OSS 版本跟 SaaS 版本的区别就是 BYOK(Bring Your Own Key,使用自己的 AI) 和平台托管,你可以自建 OSS 版本获得基本上全部的功能,如果自建对你来说太麻烦,也可以付出 AI 的成本来获得对应的服务。
做自己的工具对自己来说是非常满足的事情,除了功能,一些交互细节也可以打磨到自己喜欢的样子。例如阅读界面右边的 Outline 功能,就有非常多考虑:
另外,这次 Vibe Coding 我也在尝试一种比较新的工作流程,在过程中更多地使用 AI 和 文档,大致是:
这套工作流用下来还可以,开发的效率相对比较高,很多时候只要人工介入一下具体的交互细节就可以达到可用的程度。唯一的缺点可能是烧钱太快了,我的 $20 Claude Pro 和 $20 Cursor Pro 订阅一两天就用完了,Cursor 我升级到了 $60 还是不够用,已经上到 $200 了。
![]()
直播录制工具,支持多个平台的直播录制。
本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡)
另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。
2025-11-30 18:35:47
![]()
这是猫鱼周刊的第 86 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在
博客:阿猫的博客-猫鱼周刊
RSS:猫鱼周刊
邮件订阅:猫鱼周刊
微信公众号:猫兄的和谐号列车
好久不见。上周的周末有事回了趟广州家里,周六当天来回,折腾了一趟实在是太累了,于是就咕咕了。
这周的周刊将会迎来第二次重构,就如上期所说,新的周刊会分成 INIT、STDIN、STDOUT、MISC 和 EOF 这几个板块,弱化掉以前文章、项目之类的概念,更加适应现在周刊的内容。
上周折腾了一个小东西 llmsh,可以利用本地的小参数模型(例如 qwen3-4b),配合 zsh 插件,实现命令补全、自然语言转命令等。做这个东西的来头也很神奇,我在翻东西的时候发现了一张 23 年 gpt-3.5-turbo 刚出的时候的截图,概念是利用 history 的前几条,来预测下一条命令,来实现比 zsh-autosuggestions 更加「智能」的提示。于是,我花了四五个小时搓出了这个东西,它有点像 warp,但是它可以跟你喜欢的终端一起使用,只依赖 zsh 和一个二进制,非常优雅。但是最终我也很少使用这个小东西,原因跟我不使用 warp 这类终端一样,autosuggetsions 的建议足够好用,而且绝大多数日常使用的命令我都能凭肌肉记忆打出。如果你感兴趣,不妨安装试玩一下。
另外这段时间里我学会 3D 建模,给我常用的消毒湿巾做了一个宜家洞洞板收纳,模型开源在 MakerWorld 了 link,感兴趣可以看看。
作者谈到自己最近的迷茫:
我好像一直很忙,工作确实很多,但仔细想想,除了工作之外,我似乎也说不清自己在忙什么,更说不清到底什么是重要的。
他也列出了自己很多的不足,又感叹自己总是好像原地踏步,而且这些问题早就意识到,但总是不能聚焦去改进。顺着这个思路,他还进行了很多思考,略微有点进入哲学的范畴了。
我觉得作者应该是跟我差不多年纪,刚毕业几年内的人,因为我不久之前也有过同样的迷茫,而我现在好像已经渐渐走出这个迷雾了,分享一些我的观点。
首先需要肯定的是,有这种迷茫是好事,说明你还在一个反馈循环里面不断提升自己。在日常工作中,会遇到两种人:一种是埋头苦干的人,这种人是大多数,这里的「埋头苦干」不是指在工作中的态度,更多是说他的认知更多就停留在毕业时或者第一份工作的程度,不会再去跟进行业的发展,不会再学习新的东西提升自己,在工作中对自己也不会有很高的要求,目标多数是赚钱,很多事情就是得过且过;另一种是有远见的人,他会有自己的主线,会追求自己感兴趣的事情,坚持走下去自己规划的路。所以如果你感觉到迷茫,反而是一种好事,说明你还没完全躺平。
然后要说的是,感到原地踏步,或者说一时做下这个又做下那个,在把时间拉长之后,其实也是不小的进步。离开学校之后,会发现很多东西在很短时间内是无法看到结果的,可能要拉长到年甚至数年才能看到效果。乔布斯在斯坦福的毕业典礼演讲上说过一句话叫「Connecting the dots」,我对它的理解就是,在人生路途中你会做出很多选择,或者做了很多的事,很可能在当下看不出有什么用,直到有一天你取得了成功,才发现原来这些点连成了你的成功路线。例如今年五月份的时候我就买了 3D 打印机,当时就打算要学建模,自己打东西玩。结果过去了半年,因为健身房新的跑步机没有手机支架,总是坚持不下去走有氧,有天我在跑步机上怒看了一个多小时视频,回家就把模型画出来了。在这中间,我其实把一大堆兴趣轮询了一遍,例如胶片摄影、模拟赛车、meshtastic 等等,我很少长期专注去做某一件事,也许周刊算是一个,但「兴趣轮询」算是最适合我的一种模式。另外,作者说到自己是「问题驱动」的人,我也是,我不喜欢系统性去学习某个东西,我一般遇到某个问题之后,我会去研究相关的东西,但只限于刚好解决这个问题。时间拉长之后,你发现你有很多点,每个都可以解决一定的问题,这在遇到复杂的问题的时候,你会发现自己会比别人更快地能把这些点连成线,看出某个 bug 的本质,找到对应的修复方案,或者在复杂的需求中提出一个很优雅的技术方案。
顺着「兴趣轮询」说下去,清晰认识自己、发展出适合自己的处事模式也很重要。我从小到大都被老师说不专注,现在在工作中更经常会发现,在准备去解决一个问题的时候,发现了另一个兴趣点,于是又花了大半天在这个新兴趣点上的情况。也做过一些在线测试,说是有一定的注意力缺陷。在这件事情上,我觉得这更多是我的 feature,而不是 bug(毕竟并没有严重到影响我的工作和生活)。因此我围绕这个 feature 发展出了很多效率方法,例如使用 todo list 来保存一些上下文,方便我来回切换和找回重点;又例如我会把一些繁琐的步骤用脚本自动化或者在设计上就简化,保证我不需要花很多精力去重新理解等等。
最后就是,今年一场大病之后,我发现自己做到了「见攰就唞」(觉得累就歇歇)。以前我经常会有爆肝的心态,很着急出结果。现在更多觉得如果已经累了,那就先歇歇,才有更多时间精力甚至健康的身体去做想做的事情。
今天这个部分写得好长,算是记录自己走出类似的迷茫的经历。
英国一所大学对学校使用 AI 制作课程,包括 PPT 和配音都是 AI 制作,引起学生的不满。
我觉得如果 AI 大量应用于教育领域,会对人类产生一种钳制作用。人的大脑跟 AI 有一点是类似的,那就是接受一定的输入,产生输出,然后根据反馈做出调整。因此人其实也会受到 AI 在训练语料上遇到的问题,「Shit in, shit out」,学习了太多低质量语料导致效果不佳。从我知道的来说,连小学生都在用 AI 来批改作文了。会不会从 10 后或者 20 后开始,人类写的文章就是 AI 味的?
作者提到,在 AI 编程推广之后,更大的问题是「理解债务」(comprehension debt)。AI 能很快的写出一大堆代码,而使用 AI 编写这些代码的人因为没有经历完整的思考过程,这些代码实际上并不「属于」他们,很难真正理解;在出现问题的时候,只能利用 AI 去解决,很容易陷入死循环中,让事情变得更糟。
这个事情我深有同感,在 你不是在 vibe coding,而是在十倍速生成屎山 中我就提到:
一旦你开始 vibe coding,你就只能 vibe 到底了。
所以其实 AI 编程并不是一刀切的就一定能提升开发的效率,其瓶颈依然是使用者的认知上限,也应了我经常说的那句:
AI 决定下限,人决定上限。
讲的是 F1 运动历史上第三年轻的意大利新秀 Kimi Antonelli 获得梅赛德斯车队席位的过程,一部 40 分钟的短纪录片。出道一年不到就有一部自己的纪录片,小 Kimi 真是有点东西。
说到 F1,它除了是顶级体育赛事,在比赛周之外就是超大型的真人秀,官方都有不少节目,也有合作方例如 Netflix 的电视剧,以及相关的电影、纪录片,还有无数围绕 F1 话题的视频、帖子,而且也有对应的粉丝、周边等等。作为 F1 车迷,真的可以每一周都很充实(只要别看法拉利)。
一款基于大语言模型的视频字幕处理助手,支持语音识别、字幕断句、优化、翻译全流程处理。
多平台热点聚合 AI 分析工具。
视频镜头分割工具,可以当成 Python 包使用,也可以通过命令行使用。
本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡)
另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。