MoreRSS

site iconAmeow | 阿猫修改

后端工程师,写Go 和 Python,运营「猫鱼周刊」。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Ameow | 阿猫的 RSS 预览

猫鱼周刊 vol. 078 我的 Dev Portfolio

2025-08-24 19:10:13

关于本刊

这是猫鱼周刊的第 79 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在

博客:阿猫的博客-猫鱼周刊

RSS:猫鱼周刊

邮件订阅:猫鱼周刊

微信公众号:猫兄的和谐号列车

私信:[email protected]

头条

最近没出门拍照,之前拍完的一卷蓝凤凰也还没洗,准备等另一卷金 200 拍完一起送出去洗,所以没有头图可以用了。

这周几乎都在重构我的通知项目 Heimdallr,借助 Claude Code,我给它加了一个前端管理界面,后续还会加上按时间聚合通知、推送记录等功能。这周的内容也不多,索性「想法」部分多写点。

文章

英文罪名小赏

原文链接

又是我非常喜欢的词源学的文章,这次介绍的是英语中常见的一些罪名,最近在看《The Rookie》,也经常碰到这些。

这个博客的背景和字体看起来很有质感,阅读起来很有感觉,每次碰到更新我都会打开原网页去阅读。这次看的时候发现了一个小交互,往上滚动一段时间之后会出现一个小蝙蝠,实现回到顶部的功能。这个挺有意思,不会一直展示在页面上碍眼,蝙蝠图案也跟博客整体氛围很搭。这就是自己写博客程序的好处吧!

在 AI 时代,我却更渴望代码

原文链接

作者利用 AI 学习源码的经历分享。

现在有很多制造焦虑的资讯,经常在说「用某某 AI 花 xx 时间做了一个 yy」,或者说什么职业要被 AI 取代了云云,但其实对大家来说,最直接的事情是:

我的那些曾经只停留在 todo list 里的想法,终于可以一个个实现。

因为 AI,我最近又重拾了一些之前做的 side project。就像上周所说:

在 AI 时代之前,这个想法会因为我没有前端能力,又一直不愿意去学前端而搁置。另外,有些明知道怎么写,但是没有时间精力去写的东西,也可以交给 AI 去做了,我只需要做产品经理和监工就行。

想法

我的 Dev Portfolio

因为刚毕业的时候买的三年 JetBrains All Products Pack 要到期了,所以我最近又重新评估了一下手头在用的开发工具。之前因为使用 Cursor,我基本上不怎么用 JetBrains 家的 IDE 了(靠,才想起来 GitHub Copilot 居然也还在续费)。虽然订阅过期后,我还可以永久使用回退许可(2024.2),但我已经着手列出了一些我很喜欢,离不开 JetBrains 或者需要找到替代的功能:

(后续我会频繁提到 vscode,泛指 Cursor 等以 vscode 为基础的 IDE)

  • git 可视化提交记录:我不喜欢用单独的软件(例如 SourceTree 之类)去做 git 的管理,vscode 的 GitLens 我也用不惯。我习惯用命令行做 pull、commit 之类的大部分事情,但是很需要这个可视化的提交记录(包括查看 diff 等)。写到这里我发现它的 resolve conflict 功能我也很喜欢。JetBrains 有一个在测试中的 git 工具,有点期待。
  • 数据库插件:可以连接各种数据库,开发的时候会很方便。vscode 上的插件大多非常简陋。
  • 启动配置:IDE 右上角的启动配置,可以设置启动参数、命令行参数等等;vscode 中有类似的,但是就是没有这么方便配置和好用。尤其是运行单测时,在单测函数旁边点击运行就行,这个在 vscode 中好像做不到。
  • 跳转、代码提示:JetBrains 的「就是好用」(just works)。
  • Debugger:用得很少,但还是习惯 JetBrains 的。
  • 快捷键:同上。但是 vscode 的 command palette 也很好用。

不得不说 JetBrains 的的确确是我的白月光,我的使用习惯完全是它的样子。但是比较遗憾我不打算继续续费了,但也许我会继续拿开源项目去搞开源许可继续去偶尔用一下。它主要的问题是:

  • AI 功能毫无特色。这部分我不知道怎么细说,就是很粗略的感觉,甚至都没有详细体验下去的欲望。GitHub Copilot 的支持也比 vscode 落后一截(last time I check,因为我也没什么兴趣去体验)。
  • 卡,卡得很。先不提它是 Java 写的这件事,如果你同时在写 PHP 和 Go,就要同时打开 PhpStorm 和 GoLand,对 16G 内存的机器来说可不是那么友好。

所以我现在的 portfolio 是:

  • Cursor:主力 IDE,主要使用 tab 功能,以及 Claude Code 陷入死循环时用 gpt-5 当替补。20 刀的用量太少了,狠狠用一天就能用完。
  • Claude Code:主力 AI,配合 gaccode 的月卡实现爽爽写。
  • DataGrip:数据库工具, 虽然也有 TablePlus,但是工作中有时候用到 ClickHouse、Presto 之类的,这个支持的广一点,而且已经付过钱了。

大致是这样,如果大家有好的插件、工具推荐,欢迎留言。

Yay or Nay

由于我每天都会看挺多文章,长久以往我发现自己形成了一个对文章的筛选标准。这里我尝试总结一下,分为 Yay(好)和 Nay(不好)。我会把 Nay 放在前面,因为 Nay 会导致我看两眼就关掉文章,而 Yay 会让我看完之后再回味,或者放到周刊里推荐。

Nay:

  • 大段复制粘贴,或者是翻译的文章,或者 AI 味很重的文章:拜托,别生产垃圾。
  • 使用大量 AI 配图:同上,如果图片不能辅助文章的表达,那就是画蛇添足。「图文并茂」不一定会让文章变得更加有趣,更别提我其实相对很反感 AI 配图,尤其是某几个风格,简直看得审美疲劳。
  • 全文大部分是代码,没多少文字:其实重点还是「没新意」。如果有比较独特的想法,一定是会花更多的篇幅在文字的表达,而不是大段的代码,因为核心代码不会太多。
  • 弹窗,页面排版差,或者发布在臭名昭著的平台:有网站上来就弹窗让你关注 ta 的公众号;也有的网站有很多奇怪的样式(例如背景有动画、边角有看板娘之类,甚至播放音乐)。还有就是发布在 CSDN、知乎这类本身就在强奸用户的平台。

Yay:

  • 我感兴趣的话题:例如上面的词源学,或者是 AI、摄影、生活之类,难以逐一概括。
  • 良好的排版,有趣的风格:不用多说,这类我会专门打开网页去看。

我之前有一个想法,是做一个个人的偏好引擎,每一次看到喜欢或者不喜欢的文章,就通过一个接口给它打标,学习我的偏好;然后通过浏览器插件或者 RSS 过滤等方式,帮我过滤掉一些没意思的文章。也许上面的内容会成为它的 prompt。

拓竹 CyberBrick 卡车

前两周就拼好了忘记发了。好玩的过程是拼装,拼好之后就有点索然无味了,就是比较普通的遥控车。

打印的部分没什么大问题,有一块 TPU 的部件,自己切片用 PLA 打了,其他都是用官方的打印配置直接打印。那块 TPU 的部件是前轴,不知道是不是这个原因还是因为我组装有问题,这个车会跑歪。

组装的话会比之前的遥控是更大的工程,笨手笨脚的话耗时两三个小时左右,算是大人玩的赛博拼图吧,跟着官方的 PDF 不算很难。有几个要用到胶水的地方,因为前面踩过坑了,这次终于没被胶水粘到手。这里分享几个 tips:

  • 要打非常多的螺丝,建议用电动螺丝刀。
  • 打印一个螺丝托盘,以及一些小的收纳筐来装各种小零件。我打了一个 2+1 的螺丝托盘,小的区域装螺丝(整个项目只有一种螺丝规格,好评!),大的区域放当前步骤的零件。小收纳筐可以方便提前从整个 kit 里抓好这次要用的零件。
  • 备一个镊子,装灯的时候要用,另外用胶水的时候也可以避免手碰到。

项目

meshing-around

SpudGunMan/meshing-around - GitHub

项目链接

我之前就介绍过 Meshtastic 和它的中国社区,这是个很有意思的离网通信组网项目,目前增长得挺迅速(已经满了一个 500 人的微信群),深圳这边已经可以完全实现离网通信了。

这是一个 BBS 脚本,可以实现一些机器人功能。Meshtastic 这种离线组网和业余无线电一样,需要找到一些平时的应用,或者说乐趣,才能推广开,或者说让人坚持下去。光聊天这一种功能,替代不了微信。深圳这边每周五会有点名活动,参与的人不多,但是好像比国内其他城市都走得前了。在折腾这一块,还是有挺多好玩的方向,例如做太阳能节点、放生野外节点、用模块手搓 DIY 超低成本节点等等。

最后

本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡

另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。

猫鱼周刊 vol. 077 Code For Fun

2025-08-17 20:18:56

关于本刊

这是猫鱼周刊的第 78 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在

博客:阿猫的博客-猫鱼周刊

RSS:猫鱼周刊

邮件订阅:猫鱼周刊

微信公众号:猫兄的和谐号列车

私信:[email protected]

头条

还是之前在赤柱海边拍的照片。蓝蓝的海和天,浮标和远处的帆船点缀其中,很有夏天的味道。

这周做了好几个事。首先是一篇 TIL 类型的文章优雅地在 crontab 中运行脚本,总结了一些令 crontab 体验更好的小技巧;第二是用 Claude Code 做了一个个人项目展示的页面;第三是装修了一下博客,重新写了一下关于页面等。

这周做的事情比较多,所以这期周刊内容会有点缩水。

文章

停用 Facebook 和 Instagram 对用户情绪状态的影响

原文链接

国外的一项研究,原文内容我没有看,翻译了一下它的摘要:

我们在 2020 年美国大选前通过两项大规模随机实验评估了社交媒体停用对用户情绪状态的影响。与仅停用第一周的控制组相比,在大选前六周停用 Facebook 的受试者在快乐、抑郁和焦虑综合指数上显示出 0.060 个标准差的改善。同期停用 Instagram 的用户则表现出 0.041 个标准差的提升。

虽然说「停用社交媒体可以减少焦虑」这个结论稍微有点断章取义,但是这个结论安在我身上好像是说得通的。最近发现自己越来越少刷朋友圈,有时候居然两三天才会打开一次,这个改变连我自己都感到惊讶。朋友圈是一个很典型「报喜不报忧」的场景,大家都会在朋友圈展示自己生活最精彩的一面,而生活更多是平淡,或者是痛苦的时刻。如果不能调整好心态,看朋友圈的时候陷入一种「天啊怎么别人都过得这么好,怎么就我的生活这么烂」的想法,那真是自寻烦恼(不久前我真的会这样)。

37 岁退休一周年:经验与心得分享

原文链接

作者介绍了他退休一周年的经历,重点介绍了财务准备和心理转变方面一些经验和心得。

提前退休除了需要在经济上要有准备,在心理上也需要有很多建设才能实现,有很多人生的问题需要想清楚。

因为那才是你想要的生活,是 FIRE 的目标,也是你坚持计划的动力。而不是“工作压力大了、领导太操蛋了、上班太辛苦了”这类逃离借口。前者是你想到达某个地方,而后者只是你想逃离。

能够开心的过完这一生,本身就是最珍贵的意义。

想法

Code for fun

在 V2EX 分享了新写的项目,有人回复「所以我为什么不直接链接到 github 主页」。

我的回复是:

从目的上说 profile 页完全能满足需求,但是体验一下用 AI vibe 一个前端的过程,折腾一下 Actions 这些对我来说很有趣。

类似 游戏可以看解说视频云玩为什么要自己买一份花时间精力玩?

我在开始之前知道我这是在重复造轮子,但是我甚至没有先去找一个类似的项目,还是造了这个轮子。因为重要的并不是结果,并不是它有什么意义、价值,而是我享受了创造它的过程,调通那一刻的成就感。还有就是当我跟别人提起这个东西时,不是「我用了 xx 项目」,而是「我自己写的!」那种自豪感。

Callback 一下,前面那篇文章的作者就说过:

很多事,本来就没有意义。... 人生在于体验,而不是结果...

之前周刊介绍过的 35 岁+程序员依然可以兼顾热爱代码和享受生活 里也提到过:

那些 35 岁要当管理的理论都是狗屁人说的,什么年纪大了不能写代码?我今年 37 岁,依然热爱代码,而且是下了班写到半夜 2 点。人这一辈子,唯一的规则就是毫无限制,不要管别人说什么,自己快乐最重要。

希望我能到不惑之年还能保持对写代码的热爱,又或者找到新的热爱,谁知道呢。

More on vibe coding

我之前说过:

你不是在 vibe coding,而是在十倍速生成屎山

我现在想对它做个补充:如果你能像喝药一样捂住鼻子,不要关注它写的代码,也不要介入去改代码,一路 vibe 到底,出来的成品还不错。

我觉得我对 AI 写代码的认知还停留在之前 GitHub Copilot Chat 或者 Cursor 那种选片段让它改的阶段,没有进入到 agentic coding。比起一点一点改,agentic coding 更加像现实中多人合作开发的模式,AI 独立去实现一个需求,或者是解决一个问题,然后一次性提交一大堆变更,然后你去 review 这样。我发现一个所谓「工作流」,能提升 vibe coding 的效果:

  • 介绍背景:有一个 CLAUDE.md 可以用来简单介绍项目,这个可以通过 /init 来生成,然后再根据需要修改一下。这里最好把技术栈、文件结构、代码风格之类介绍清楚,可以避免它漫无章法地生成文件。这个文件后续也需要根据它的行为(例如你不想它次次都生成测试或者帮你运行代码)来调整。
  • 描述需求:比起简单一句话描述需求,你可以用一个 markdown 文件来详细描述需求,包括技术要求等,以及一些你觉得需要注意的地方。
  • 计划:要求它先输出一个实现计划,包括要创建哪些文件,每个文件里面包含什么逻辑、对应的数据结构、使用的中间件等等。你可以跟它反复修订这个计划。
  • 执行:当你跟 AI 商定好技术方案之后,运行一次 /compact 压缩一下上下文,然后告诉它开始实现。按 Shift + Tab 打开自动接受变更。

等它执行完,当 code review 一样去给他提意见就好。可以在旁边开个窗口一条一条记下来,然后在复制粘贴进去,等它反复修改,直到满意,中间不要自己去改代码了。

另外一个转变是,它赋予了我快速实现一些想法的能力。我的笔记中有一个「灵感」文件夹,充满了一时兴起想做、列好了功能列表、做出来能满足我某些需求但其实「没什么用」的东西,这次这个就是其中之一。在 AI 时代之前,这个想法会因为我没有前端能力,又一直不愿意去学前端而搁置。另外,有些明知道怎么写,但是没有时间精力去写的东西,也可以交给 AI 去做了,我只需要做产品经理和监工就行。总体来说,这还是很有意义的,至于是不是自己一行一行亲手写的代码,好像也无所谓了。

还有一个问题是,Claude Code 如果用 API 烧钱真的很快,短短一个小时不到我在 API 上就花了两百多块,甚至还没做完我的需求。如果你的用量比较大,还是用月卡比较划算。这里打个小广告,我用的是 gaccode,这周末用下来非常稳定,原生的模型原生的体验,用量也够我一直高强度使用。你可以通过我的链接注册来获得免费的 10000 积分,如果你需要购买月卡,现在有限时的优惠,¥289 一个月(原价 ¥299),添加我的微信 _3verest,备注 gaccode 即可。

项目

showcase

LeslieLeung/showcase - GitHub

项目链接

展示你的 GitHub 项目,使用 GitHub Actions 自动更新,并部署在 GitHub Pages。就是上面提到的个人项目展示的页面。


claude-code-router

musistudio/claude-code-router - GitHub

项目链接

一个在 Claude Code 中使用其他模型的方式。不过说实话,深度体验之后,只有使用 Claude 效果最好,追求低成本使用 Kimi K2 或者 Deepseek 都达不到原生的效果。

最后

本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡

另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。

博客装修之开源项目展示、关于页面

2025-08-17 13:40:29

博客里面有一个很简陋的「项目导航」,原本的目的是用来展示我做的一些项目。标题上还有「开源项目」,是因为这里面曾经还有几个在学校期间做的项目,代码又不能公开,网站也需要账号才能访问,放在这里实在没有意义,就去掉了。

所以我想要一个页面,能自动去拉取我的 GitHub Repo,然后展示出来,思路大概是这样:

  • 抓取 GitHub Repo 及其描述
  • 使用 GitHub Pages 静态部署
  • 使用 GitHub Actions 自动更新

于是用 Claude Code vibe 了一个页面,有黑白两个主题。

大致就是我想要的东西了,非要说的话有两个遗憾:

  • 不能嵌进博客里,要跳转到新网页
  • 样式很无聊,我原本想要 fancy 一点的效果,奈何我自己都描述不出来,更不可能让 AI 去发挥出来了

总之,现在博客菜单中的「项目导航」已经换成了「开源项目」并链接到这个页面。如果你对这个项目感兴趣,欢迎看看 LeslieLeung/showcase,fork 后改一下配置就能成为你自己的 showcase 了。

另一个变化是重新写了一下「关于」页面。这个链接一开始是有一句不三不四的个人介绍,后来链接到了 bento,也是有点意义不明。看别人的文章时,有时候会好奇作者的背景,学什么、做什么,基本上都可以在「关于」这个页面找到答案。于是这块我也重新写了一下。

最后就是「影集」里面上新了最近拍的一些胶片。没想好这块要怎么用,博客自带的上传和图片管理都比较麻烦,也许又会再 vibe 一个别的东西出来(?)。

看了一下上次给博客换主题已经是去年七月底了,到现在刚好一年,不算是光折腾主题和功能,文章一点没写了吧(x。

优雅地在 crontab 中运行脚本

2025-08-12 23:11:18

一般来说,像 Node.js、Python 这类解释型的语言,系统上都会存在比较多个版本,利用一些诸如 nvm、venv、poetry、uv 等环境管理器来管理。一般来说部署这些脚本都算是一个比较噩梦的体验(相比可以打包可执行文件的语言来说),因为还要涉及到配环境的问题,另外配定时任务更是另一番折磨。

本篇介绍一个技巧,避免在 crontab 中反复使用绝对路径,更优雅地进行部署。解决方案就是写一点 shell 脚本,比在 crontab 里面反复 && 要好。

首先你需要一个配置环境的脚本,以及运行定时任务的脚本。

env.sh

#!/bin/bash

# 如果你的 nvm 在其他目录,需要修改这里
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm

# 如果你需要指定node版本,可以反注释下面一行
#nvm use v21.4.5

script.sh

#!/bin/bash
$(which node) script.js

单独给定时任务写一个脚本的好处是,如果你的参数非常长,或者定时任务想要复杂一点的逻辑,例如脚本 1 和脚本 2,需要在脚本 1 运行成功后再运行脚本 2,如果失败就告警,可以写以下这样的脚本。

#!/bin/bash

# 定义需要执行的命令
COMMAND1="ls /path/to/nonexistent/dir"  # 示例:故意让command1失败(返回非0)
COMMAND2="echo 'command1执行成功,现在执行command2'"

# 执行command1并检查结果
$COMMAND1

# 判断返回值:0为成功,执行command2;否则处理失败
if [ $? -eq 0 ]; then
    echo "INFO: command1执行成功(退出码0)"
    $COMMAND2
else
    echo "ERROR: command1执行失败(退出码$?)"
    exit 1  # 可选:失败时退出脚本(返回非0码)
fi

crontab -e

*/1 * * * * (cd path; . env.sh; script.sh >> path/cron.log 2>&1; )

解释两个地方,第一个是 .source 命令的缩写,与直接运行一个 sh 不一样的是,source 会在当前 shell 中执行,而不是在一个子 shell 中执行。第二个是后面的重定向,>> 表示以增加的方式(而不是覆盖)把日志写入(重定向至)文件,2>&1 则表示把标准错误流(stderr)也重定向至标准输出流(stdout)。这些日志能够帮助你定位定时任务的问题。

如果调试通过,最好把这个日志变成可轮转的(超过指定大小/时间会清除),避免占用太多磁盘。也可以重定向到 /dev/null ,这样就会丢弃掉所有输出。

使用这种方式,比以下这种更优雅、灵活和好维护的多。

*/1 * * * * cd path && /home/user/.nvm/versions/node/v24.5.0/bin/node script.js

Reference

Run `node` scripts using `nvm` and `crontab` without hardcoding the node version · GitHub

猫鱼周刊 vol. 076 看一场晚霞

2025-08-10 18:48:56

关于本刊

这是猫鱼周刊的第 77 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在

博客:阿猫的博客-猫鱼周刊

RSS:猫鱼周刊

邮件订阅:猫鱼周刊

微信公众号:猫兄的和谐号列车

私信:[email protected]

头条

摄于前海石公园。周五(8.8)预报说有很好看的晚霞,下了班就带着相机骑车去前海石,结果去到太阳已经在落山,日落是一点没有拍到,太阳像一颗大大的咸蛋黄一点点消失在天边,几分钟的时间就已经看不见了,这时候有很多人离开了。更好看的暮光则需要再等待十几分钟,中间的景色比较无聊,公园里只有挖掘机在施工(画面右下角可以看到施工的工地)。这段时间我有点生气,专程骑了几十分钟车过来,就看了个挖掘机。结果后来还是拍到了这张颜色还挺好看的晚霞。

不知道为什么,我至今为止还没拍到过一次完美的火烧云。每次不是在加班或者健身,就是看了预报说有结果扑空,我的运气就是这么背。另外,趁着这次拍日落,我把之前那卷蓝凤凰拍完了。这算是一个比较新的卷,如果有朋友知道哪家冲洗店和扫描方式比较好,不妨在评论区指导一下。

文章

会杀死我的,是确定性

原文链接

作者认为确定性是一种很典型的程序员思维,但现实很难按照你理解的方式去运行。

程序员会对确定性的细节有极强的执念,不能拿到事情的每一处细节的做法,就不清楚应该怎么完成工作。

生活大爆炸里的 Sheldon 就有一个很严格的时间表,对周几在哪里吃什么、做什么事都有很严格的规划,以及每天什么时候吃饭上厕所都有很严格的时间规划。

我觉得这种思维在生活中有很大的好处,能节省很多无谓的思考耗费的时间精力。例如我每周就会固定在周末中午吃一家茶餐厅,它家的出品是很稳定的粤菜口味,能满足我吃点家的味道又不用浪费时间探店踩雷。

至于在工作中,这种思维则经常让我陷入到繁琐的沟通,时不时还会让我很内耗。跟产品甚至是程序员同行沟通时,如果产品没有把需求描述清楚,或者同事没有把文档写清楚,又或者沟通的时候稍微带点歧义,我就会追着对方把他们应做的部分完善好;如果没有取得我想要的「确定性」,我甚至会内耗,觉得是不是自己哪里没有表达清楚,以及我怎么把我负责的部分推进下去。

我觉得只要不是冥顽不灵,这种思维并没有太大的害处,只是遇到变化时要去积极面对和调整,毕竟:

这个世界,从来没有义务按照我理解的方式运行。

IT 档案馆:沉浸式翻译工具 Immersive Translate 争议事件梳理

原文链接

上周才提过 PakePlus 的事情,还有之前的 Alist 之类的事件,这周又有一个沉浸式翻译的瓜。网上有很多吃瓜的文章,我挑了这个相对比较完整的放在周刊里。这个作者还有一些类似的文章,标题都是「IT 档案馆」,算是个吃瓜合集。

其实这件事主要是两个问题:一是泄露网页快照,二是限制第三方 API。

关于信息泄露的问题,我很早就写过一篇文章谈当时的超星事件,其实一般情况下个人隐私保护不是很复杂和难实施,只是大家都没什么意识。

  • 完善自己的安全意识和知识,在不同系统上使用不同的强密码,仅提供必要的信息,使用安全的网络访问等
  • 认识到什么数据属于个人隐私,坚决不能主动提供或被他人公开
  • 拒绝使用任何第三方平台,拒绝向第三方平台提供任何信息
  • 提醒辅导员不要在级群等公开渠道发布含有个人信息的文件,提醒学生助理等不要将含有个人信息的文件不加权限地发布在如腾讯文档、上传至百度网盘等

限制第三方 API 的事情,我觉得就是我之前提到过开源项目商业化里「吃相难看」的一种。不过从这个项目看,它早就卖给了公司。口碑和赚大钱很难两全,但是我觉得对一个商业项目来说,打磨付费服务的独特体验会比封杀免费服务更好。

另外有点偏题的是,我觉得与其折腾什么翻译工具,不如花时间学学英语来得有用。我的日常场景中,几乎所有的外语都只会是英语,所以对我来说根本不会用到翻译的功能。就算翻译的效果再好,检索、理解的效率都没有看原文的效率高的,这一点我在工作中深有体会。我经常看到同事对着翻译翻文档,怎么都找不到需要的东西,拿着牛头不对马嘴的文档说实现不了。

Do Variable Names Matter for AI Code Completion?

原文链接

清晰规范的变量命名对 AI 系统的帮助会更大。对我来说不算什么新闻,好的代码风格对人和 AI 的帮助都很大,没想到居然会有人为此写一篇 paper。

想法

$V2EX

我目前持有 4062 枚 $V2EX。

感觉这件事带动了很多人入坑 Web3。如果你是刚入坑,我觉得有个规则,或者说教训,一定要了解清楚:

你的资金随时有可能突然亏损,甚至清零。

因为 Web3 不受监管、去中心化等等特性,这是一个 24 小时的交易市场,没有任何的保底,诈骗层出不穷。你可能在短时间内血赚,或者血亏。我最早在 $DOGE 的时候,几百块入场,赢到了几千块,随后又在一个新币(甚至忘了什么名字)发布的时候,清零了这笔钱。对大部分人来说,这种高风险的事情,不应该作为一种赚钱的手段,抱着了解和体验一下的心态投入一点点可有可无的钱去试试就好了。

本来想简单写写买 $V2EX 的过程,想想可能单独写一篇文章会更合适,v2 上也有很多帖子写过了。这个币现在的氛围不错,社区里会发空投,站长也会很热情给你转一点 gas 钱。

至于最近有些争议说站长想赚钱,又或者是说站长的言论控制等等,我觉得任何一个社区都有其共识的价值观,如果认同你可以加入,不认同可以离开。这个社区确实比较独特,可以相对自由地讨论有意义的事情,也不会有太多无用信息浪费时间精力。

颓记茶餐厅

前面提到,我经常在周末去吃一家「颓记茶餐厅」。今天去吃了干炒牛河,葱和芽菜是最后放的,半生半熟的状态,口感很好;牛肉给的也很多,而且粉炒的稍微有点焦,总体很干身不会很多油,是很正宗的干炒牛河做法。

这家店的服务也很好,落座就给你上一杯冰水,炎炎夏日,这给人的初印象真的很好。点了一个雪糕心菠萝包,雪糕有点融了,送了我一支奶茶,过会儿又拿过来一个新的菠萝包,我婉拒了。

其实它的出品没有特别出众,但是在附近没有竞品,就因为它的做法最正宗。作为广州人,在深圳真的很难吃到真粤菜,反而是各种潮汕菜、湖南菜、川菜等等占据主流。

AI Coding 工具选择

Cursor 最近也推出了他们的 CLI,体验跟 Claude Code 非常类似。对我来说这个产品会有一点意义,第一是我付的 Cursor 订阅以及 JetBrains 订阅都不会被浪费(你可以在别的 IDE 里使用 Cursor CLI,同时拥有 IDE 的便捷功能和 Cursor 的 AI 能力),第二是它订阅起来比买 Claude Code 方便,使用成本相对也低一点。

关于这类产品,其实现在市面上竞品非常之多,例如有:

其实这类项目的核心无非是两个:模型以及编排。模型大家可用的底座模型都一样,编排说实话也大差不差。对于我来说,性价比可能更加关键。目前来说,我的选择是:

  • 主要使用 Cursor,一开始觉得 vscode 比较难接受,现在习惯之后觉得挺好用,简洁,多种语言同时写的时候不用开多个 IDE,体验也不会割裂;
  • 偶尔会试试 Claude Code,复杂问题用中转的 claude,简单问题用 kimi k2;
  • 准备试试 Cursor CLI,搭配 JetBrains 系列 IDE。

这个行业变化得非常快,短短两三年时间其实已经发生了好几代变化:

  • 第一代:以 GitHub Copilot 等补全为主的 IDE 插件
  • 第二代:以 AI 为核心的 IDE,例如当时的 Cursor
  • 第三代:以 vscode 为核心,深度定制的 AI IDE,例如现在的 Cursor、Windsurf、trae 等等
  • 第四代:现在的各种 CLI

一个题外话,你们一般在编程工具上花多少钱?我主要是 JetBrains、Cursor、Copilot这几个,每个月大概两三百块的样子。v2 有个帖子说 程序员不应该在 ai 上省钱,我比较认同。最好当然是公司出钱给员工提供这些工具,退一步说,如果确实能提升自己的工作效率和体验,这个钱也非常值。

项目

midscene

web-infra-dev/midscene - GitHub

项目链接

字节开源的 AI 操作助手,适用于 Web、移动端、自动化和测试。

我用它做了个 app 自动采集工具,相比之前写固定的 ADB 脚本以及繁杂的 API 抓包流程,使用 AI 直接去操作 app 以及从截图提取结构化信息,开发速度大大加快,就算 app 有改版也不需要改代码,自适应能力很强。

stagehand

browserbase/stagehand - GitHub

项目链接

一个类似的项目,不过只支持浏览器。

coze-loop

coze-dev/coze-loop - GitHub

项目链接

字节开源的 AI 全生命周期管理工具,有点像 Langfuse、LangSmith 等。

最后

本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡

另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。

猫鱼周刊 vol. 075 开源和白嫖

2025-08-03 17:29:27

关于本刊

这是猫鱼周刊的第 76 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在

博客:阿猫的博客-猫鱼周刊

RSS:猫鱼周刊

邮件订阅:猫鱼周刊

微信公众号:猫兄的和谐号列车

私信:[email protected]

头条

还是上周在赤柱拍的照片。教堂框架上蓝色的点缀跟后面的天空非常搭配,给人一种非常安心舒适的感觉。香港的建筑用色非常大胆,跟环境融入得出奇地好。

文章

视频字体排版调查和分析

原文链接

用 Notion 制作的文章(网站?),统计了视频创作者使用的字体。可以看到,苹方、思源黑体、阿里巴巴普惠体、得意黑这几个字体反复出现,都是一些免费商用的字体。

这算是一个很新奇的角度,我之前没有很关注字体对内容本身的影响。上周有个读者来信说我的公众号字体是宋体,请教我怎么做到的。说来惭愧,我一直用的 Quaily 的 微信公众号 Markdown 排版编辑器,确实没怎么关心过具体是什么字体。

移除博客的留言

原文链接

关注的一个作者,移除了自己博客的留言。无独有偶,我关注的另一个作者,他的博客也是没有留言的。

我的博客运行好几年了,其实总共才收到了百来条留言,一方面是我的博客不算很出名,写的东西也不是很大众,另一方面其实观众对互动不是感兴趣。我收到的留言大概有这三类:

  • 感想、有建设性的建议(主要是周刊)
  • 一些提问(尤其是教程向的文章)
  • 各种 spam

solazy 的博主提到:

真正想要和我互动的朋友,总能找到途径。

我觉得很在理。我目前公开的渠道其实有 Email 和一个微信群,但说实话我还是最喜欢 Email 这个渠道,非 IM 的模式(也可以说是「车马慢」)使得大家在交流上会多花一点时间打磨自己的表达,交流起来是更加高效的。微信群平时比较冷清,之前直接公开二维码时会进来一大堆羊毛群发广告的人,所以后面变成了邮件联系我然后邀请的方式,代价是操作成本比较高,我经常好几个星期才统一回复这种邮件。

暂时来说,我博客的留言还会照现在这样运行。先审后发的机制,加上邮件通知,这个系统暂时没有对我造成太多负担。但是如果你有一些问题想要交流,我更建议你给我发一封邮件。

备份你的 Obsidian 文件

原文链接

官方帮助文档里的文章,强调了同步不是备份,并且介绍了几种备份的方案。

个人来说,我用的是 Local Backup,在每次退出的时候生成一个压缩包。然后我再通过 Qsync 把这个文件备份到 NAS 上,并进一步通过 HBS3 完成 321 备份。

这个从来没看过的官方文档里面居然有如此多实用的使用技巧,我觉得很值得翻一下。

想法

拓竹 CyberBrick 上手体验

之前在读者群里有朋友讨论过拓竹的 CyberBrick,我当时还没有买到套件,但是已经给了我一个潜在的印象:搞起来会很麻烦。由于很清楚自己的拖延习惯,遇到这种麻烦的事情我一定会拖得遥遥无期(我两年前买的 NAS 直到这周才把盘位塞满配置成它的完成体),所以我没有在闲鱼加价买,而是在京东买的预售,到七月中才发货。收货之后我马上就打印了遥控器的两盘零件,然后就是拖延到这周末才把它拼装起来。

这是它组装完成的样子,我用了拓竹的 PLA Basic 白色和黑色来打。我觉得这个用 PETG 更加合适,但是官方没有提供 PETG 的打印配置,用 PLA 的配置来打 PETG 会翻车(但是 app 里居然没有提示,可以用 PLA 配置来打 PETG 耗材)。

拼装过程拓竹做了一个很有宜家风格的文档,主要步骤的部分文字非常少,这对小朋友会非常友好,我觉得小朋友完全可以在大人很少帮助下就把这个拼起来。

这个遥控器的设计我最不满意的地方就是要使用瞬干胶(502),它透明且速干的特性真的非常讨厌,戴手套又没法操作(会把手套也沾上),沾上之后很难清洗。而且它需要胶水的地方其实都有更好的解决方案:顶部盖板的两个小啾啾可以加点支撑一体成型打出来,而摇杆的地方可以用摩擦力或者加卡扣解决。

整个拼装的过程一小时左右就可以完成,也没有什么很复杂的步骤,总体来说体验不错。我会建议你在开始拼装甚至开始打印零件之前,先打印一个螺丝托盘和一些收纳框,会让你的拼装体验大幅提升。

小车还没开始打,最大的原因是有几个部件居然需要用 TPU,这个料贵、不好打,而且用量居然只有几克。我能理解这个材料的必要性,但是对用户太不友好了,如果能把这几个零件放在套件里面一起卖就好了。目前考虑的方案是在闲鱼找代打算了。

总的来说我还是很喜欢这个产品的,它解决了之前很多类似玩具项目的问题,例如需要打电路板(嘉立创可以免费打板,但是我一直没搞清楚怎么下单)、焊接(拓竹这个只需要接线就行)、采购材料(很多项目给的 BOM 表给的规格有点模糊,坑非常多)等。如果你已经有 3D 打印机,不妨从这个开始入门 DIY。

开源和白嫖

最近开源社区又有一件事情,有人碰瓷 Pake 这个名字,商业化推广一个叫 PakePlus 的项目,并且后来被爆出来使用用户的 GitHub Token 关注作者并且 star 了相关的三个项目。(via issue

尽管项目作者宣称他们跟 Pake 没有任何关联,但是确实被人翻出来早期的 Readme 照抄了 Pake 的。

我们已经在 README 中显眼位置声明了 PakePlus 和 Pake 没有任何关系,PakePlus 是完全独立开发的项目,未使用  Pake  的任何代码、架构或设计,所有实现均为原创。

作者对白嫖的理解更是清奇:

还在吃瓜呀,哈哈哈,在中国,一群装着破解 idea 的程序猿在讨伐我获取免费 star 的恶略行径,而且还不喜欢看使用文档,只想白嫖别人的劳动成功,甚至把自己当上帝或甲方 kuangkuang 一顿输出,从那个免费白嫖 cursor 的开源仓库都可以看出来,比获取免费 star 还严重的破解行为却被当成理所当然,真的笑不活。

翻了一下最近的 commit,发现一个很有意思的地方,作者故意破坏了一些构建需要的文件。再加上 issue 里面一水的 build success/error,这个作者的意图也有点清晰了:破坏一些构建文件,小白用户被卡住后,通过赞助提供所谓「技术支持」。

看似在骂人,但好像也在骂自己,你没有白嫖人家的名字吗?

除此之外,整个 issue 都是在争论 MIT 和滥用 GitHub Token 的事。我觉得 Pake 作者 @tw93的立场和做法很高尚和合理:

请不要借用 Pake 的名字对你的这个产品进行推广和商业化

我的立场很明确,为了避免用户混淆,我只接受改名这一种解决方案。

他从头到尾都没有攻击 PakePlus 的作者,只是表达对滥用 GitHub Token 这一事实的担忧,以及担心 PakePlus 的行为会破坏开源的环境。

印象中已经不是第一次谈类似的事情,每隔一段时间都会出现中国人在 GitHub 上投毒、抄袭、卖项目这样的事情,然后在 issue 里出现作者跟各种人相互对骂的抓马。「开源」应该是一座象牙塔,我们从开源中受益,当我们有能力的时候,也要回馈开源社区。我觉得这个作者其实有些地方能做得更高尚一些:

  • 不要滥用公共设施。很明显通过 issues 来收集用户使用信息,然后通过卖技术支持赚钱,这不是白嫖吗?
  • 尊重用户,不要破坏开源秩序。自动 follow 和 star 这个行为我真的难以理解,作者把不 star 等同于白嫖,把流量和金钱当作开源的回报,这是多扭曲的价值观啊。
  • 做好预期管理。开源这个事情本身就是为爱发电,从开源盈利有很多商业化的途径,有的让人津津乐道,也有的会遗臭万年。选条好路。
  • 可以重名,但是要正确 credit。我觉得如果一开始作者就说,这个项目参考了 Pake 的思路,感谢 Pake 作者的贡献,可能都不至于引来如此大的反感。

我觉得大学计算机学科缺少了很重要一课,就是开源,如何参与开源社区,什么是开源精神。我不确定国外的大学是怎么介绍这个部分,但是在国内除了会听说 GitHub 这个网站以外,再没有更多的介绍。我觉得有几个 DO 和 DONOT:

  • 友好交流,不要在 issues 等地方发表无意义的辱骂等。
  • 不要滥用公共资源,例如使用 GitHub Actions 跑自己的定时任务。
  • 尊重开源精神,遵守开源协议。

还有一个大家都要想想的事情,作者说的其实也有一点对的地方,我见过无数的人白嫖 IDEA、Cursor 等等,其实很多这些都没有好结果的,通常是导致别人直接 ban 掉中国地区的访问。我不能站在道德制高点去指责使用破解软件的人,我也曾经使用过不少破解软件,那也是我来时的路。在大学之后,尤其是工作有收入之后,我意识到开发工作的不易,再也没有使用过破解软件,为我常用的工具花费了不少钱。

项目

kopia

kopia/kopia - GitHub

项目地址

在找 Obsidian 的备份方案时碰到的一个工具,可以跨平台生成增量备份,有命令行和界面。

最终没有使用的原因是我使用的是 iCloud 进行同步,再把 Obsidian 的文件夹交给别的工具去读写会引入不必要的复杂性。

工具/网站

WhatFont

Chrome 商店链接

用来找到网页上字体的工具。使用方法很简单,打开工具,然后选中对应的文字就行。效果如下图:

所以原来我的公众号使用的是 Optima 字体。

最后

本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡

另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。