关于本刊
这是猫鱼周刊的第 10 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在
博客:阿猫的博客-猫鱼周刊
RSS:猫鱼周刊
邮件订阅:猫鱼周刊
微信公众号:猫兄的和谐号列车
Discord:猫兄的和谐号高铁
私信:[email protected]
文章
Go 1.22 新特性
Go 1.22 预计将于 2024 年 2 月份正式发布。Go 的 for loop 一直有个坑,如果在 for 循环中使用循环变量,会出现在多个协程中引用了同一个变量的 bug,这个是大家都很关心的特性。
(这个 bug 如下)
// go 1.21
values := []int{1, 2, 3, 4, 5}
for _, val := range values {
go func() {
fmt.Printf("%d ", val)
}()
}
// Result : 5 5 5 5 5
// go 1.22
values := []int{1, 2, 3, 4, 5}
for _, val := range values {
go func() {
fmt.Printf("%d ", val)
}()
}
// Result: 5 3 4 1 2
Go 1.22 新特性前瞻
一篇中文的博客,与第一篇英文的侧重点各有不同。
Go 1.22 Release Notes(Draft)
官方的 Release Note,应该是最全的 1.22 新特性以及变化。
技术写作学习路线
之前就介绍过 roadmap这个网站,上面有一系列常见职业/岗位的学习路线。最近发现上新了一个技术写作的路线。
我们是怎么丢失了 54K star 的
HTTPie 项目因为作者不小心把仓库设成了 private 导致丢失了所有的 star,这件事情发生在 2022 年了,当时这篇文章也传得很火。文章里提出了几个教训来避免这类事情发生:
- 改进 UI/UX 设计
- 不要使用硬删除
- 不要太天真地信任 GitHub 与开发者的关系
对于 HTTPie 团队,结局不是特别好,GitHub 的态度一般,没有帮他们恢复(作者认为 GitHub 完全是有能力做到的,因为他们给自己恢复过,后来也给别的团队恢复过),只发了一条推文。
这件事情的后续也比较有意思。首先是这个项目现在(2024 年 1 月)已经恢复到 30K star 了,说明社区的力量还是很强大的;其次是 GitHub 真的修改了他们的 UI,使得现在删除前能更好知道自己的操作有什么具体的影响;最后是另外一个被删除的团队的 star 得到了 GitHub 的恢复。
项目
Portkey-AI/gateway
一个 AI 网关,类似 one-api,都支持通过 OpenAI 的接口对接到不同 AI 服务。区别是支持负载均衡、回落和自动重试,比起 one-api 要更加稳定。
bloomberg/memray
一个 Python 的内存分析工具,可以分析出火焰图等等,帮助优化内存占用。
工具/网站
PHP 沙箱
网站链接:PHP Sandbox - Execute PHP code online through your browser
之前一期我提到过一些在线的代码运行网站,最近又找到一个可以“对比多个 PHP 版本间运行差异”的,可以勾选多个 PHP 版本,同时运行,对比他们的差异。PHP 8 之后等于的判断与之前的版本有比较大的差别,在这个网站上就能方便地上手试试了。
几个 PaaS 平台
- Zeabur - Deploying your service with one click
- Sealos: 专为云原生开发打造的以 K8s 为内核的云操作系统
- Cloud Application Hosting for Developers | Render
几个对 Hobby 级别开发者非常友好的 PaaS 平台(类似 Vercel),都支持多种语言或基于容器部署。他们的部署流程和特性都很类似:
- (Zeabur)根据 Dockerfile 构建或从公共仓库选取镜像
- 使用镜像部署
- 提供修改环境变量、日志查看等功能
- 提供二级域名或自定义域名(使用 CNAME)
- 按照实际使用 CPU 和内存等资源收费,提供一定免费额度
想法
马太效应与先发优势
马太效应典出《马太福音》,原文为:
凡有的,还要加给他,叫他有余;凡没有的,连他所有的也要夺去。
1968 年,美国社会学家罗伯特·莫顿提出这个术语用以概括一种社会心理现象:“相对于那些不知名的研究者,声名显赫的科学家通常得到更多的声望,即使他们的成就是相似的,同样地,在同一个项目上,声誉通常给予那些已经出名的研究者,例如,一个奖项几乎总是授予最资深的研究者,即使所有工作都是一个研究生完成的。”
在 LLM 领域,OpenAI 的 GPT 不一定是性能最好的,但是却是最出圈的。由于它的先发优势,大家谈起 LLM 、AI 等等都会先想起 ChatGPT;同时,在别的公司推出自己的 LLM 产品后,由于 OpenAI 的生态已经有完善的 SDK 等,其他公司的产品也或多或少将自己的 API 向 OpenAI 靠近;或就是有开发者做了兼容其他 LLM,但使用 OpenAI 接口格式的网关。