关于本刊

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

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

RSS:猫鱼周刊

邮件订阅:猫鱼周刊

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

私信:[email protected]

An image to describe post

宝安耶稣君王堂,建成于 2010 年,有四层楼高。晚上教堂灯火通明,也很好看,不过不好拍。教堂周日可以进去参观,教堂外围和四楼中殿均可自由活动,但是注意内部不能拍照,保安会提醒不要带相机入内,门口有自助寄存的柜子可以存包、相机等。

文章

防裁员编程?防御性编程?

原文链接

「防御性编程」最近都被用烂了,中文社区到处都在说这个梗。然而实际上防御性编程是一种好的实践,是为了保证,对程序的不可预见的使用,不会造成程序功能上的损坏。

有个高赞回复我觉得很在理:

这不叫防御性编程,都被你们用烂了。防御性编程是用来抵御不确定的错误与有风险输入之类的,是一种非常好的编程实践。

你这个只能叫防裁员编程。

比较有趣的是,这个场景符合博弈论中的「囚徒困境」,员工和公司可以视为两个玩家,对于员工,可以有合作(写高质量代码)和不合作(写低质量代码)两种策略;对于公司,有合作(保持现有员工)和不合作(裁员并招聘新员工)两种策略。

在一般情况下,纳什均衡是(编写低质量代码,保持现有员工),因此提高「被替换」成本是有利于雇主作出「不裁员」的决定的。但是如果雇主经济压力增加时,这个均衡就会发生改变,长期来说「裁员」的策略对雇主来说就更优。

生成数独

原文链接

作者给他的奶奶做了一个数独生成网站,「顺道」研究了一下各种数独解法以及难度评分的策略。文章中的算法由浅入深,比较好懂。文章中还附带了一些 demo,可视化算法解题的过程,以及主观呈现在不同难度下不同算法解题速度的差异。

An image to describe post

一文讲清多线程和多线程同步

原文链接

美团技术团队的文章,不得不说,美团的团队在分享上是真的多,而且详尽,一点都不藏着掖着。

文章把多线程串讲了一遍,从硬件到软件,从组成原理、操作系统到 C 语言,大学学的时候一般都是各门课程分开讲,不会有人给你串着讲一遍,所以看完这篇文章对整个知识体系又有了新的认识。不过我看到乱序执行就看不下去了,后面的内容此前完全没接触过,看来还是得花时间钻研一下。

项目

showlinenum

jay/showlinenum - GitHubjay/showlinenum - GitHub

项目地址

一个在 git diff 结果的每一行前面添加行号的 awk 脚本,非常地 unix 哲学。要做到这个还有更多的方法,stackoverflow 上有这么一个帖子专门讲这个。

sweep

sweepai/sweep - GitHubsweepai/sweep - GitHub

项目地址

AI 驱动的可以用来写小功能和修复 bug 的程序员。不同于 AI 辅助写代码,这个是直接 AI 去改代码然后提 PR,比较新鲜。比起项目本身,项目方还有一个博客专门讲怎么实现这个流程,值得一看。

generative-ai-for-beginners

microsoft/generative-ai-for-beginners - GitHubmicrosoft/generative-ai-for-beginners - GitHub

项目地址

微软出的生成式 AI 教程,很系统完善的教程,介绍了 LLM 的原理、Prompt 工程、RAG、微调,甚至给了一些应用的例子、UX 设计等,也有介绍怎么用其他的开源 LLM。

工具/网站

世界各地的星巴克

网站链接

An image to describe post

作者从 1997 年开始,致力于打卡世界上所有的星巴克,至今已经到访了 19511 家,主要以北美为主。网站风格非常原始,也有些非常老的照片。

开源替代

网站地址

An image to describe post

收录了非常多开源软件,可以方便地寻找商业软件的替代。这个网站比较新,同类的还有 AlternativeTo这些。

最后

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

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