# 科技爱好者周刊（第 258 期）：卡马克的猫

这里记录每周值得分享的科技内容，周五发布。

本杂志[开源](https://github.com/ruanyf/weekly)，欢迎[投稿](https://github.com/ruanyf/weekly/issues)。另有[《谁在招人》](https://github.com/ruanyf/weekly/issues/3157)服务，发布程序员招聘信息。合作请[邮件联系](mailto:yifeng.ruan@gmail.com)（yifeng.ruan@gmail.com）。

## 封面图

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060502.webp)

世界首架载人飞碟，6月3日在深圳正式起飞。这架飞碟是电动的，最大飞行高度200米，续航时间15分钟。（[via](https://www.sohu.com/a/681963859_121384220)）

## 卡马克的猫

推荐一本书[《DOOM 启世录》](https://book.douban.com/subject/1152971/)（Masters of Doom），电子游戏名著，2003年在美国出版，第二年就出了中译本。

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060709.webp)

它详细讲述了电子游戏《DOOM》（毁灭战士）的故事，两个怀揣梦想的青年，如何一步步创造出这个游戏。

写得非常好，翻译得也好。通过它，可以了解游戏行业的内幕，以及程序员的人生。

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060710.webp)

主人公之一，是一个叫做约翰·卡马克（John D. Carmack，1970-）的程序员，他编写了《DOOM》的主要代码。他原来只是一个辍学生，但是后来变得世界闻名。

书里讲了一个他的小故事，分享给大家。

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060711.webp)

卡马克小时候痴迷电脑，跟家人和同学都很疏远。陪伴他的只有一只叫做“咪子”（Mitzi）的猫。他编程时，猫就趴在电脑上面。

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060402.webp)

19岁，他离开家，去另一个州创业，什么都没带，唯一从家里拿走的就是这只猫。它一直陪着他，甚至公司的员工名单里面，他也把这只猫加了进去。

后来，DOOM 开发最紧张的那段时间，猫的脾气变得暴躁了，经常乱撒尿，卡马克新买的真皮沙发就被它毁了。

卡马克不想忍了，尽管相陪多年，他还是把咪子送到了动物收容所，从此就不管它了。

卡马克跟同事解释这个决定：“咪子对我的生活产生了负面影响。” 其他人惊讶地说：“送到动物收容所，这只猫可能会死掉。” 卡马克不为所动，转过身继续去编程。

作者说，这个事件反映了卡马克的性格。**他只关心他要写的程序，在他眼里，其他都是小事，如果妨碍到他，就必须剔除。**

他不仅这样对待猫，也这样对待朋友和自己。他从不保存自己的照片、资料、早期作品，因为不关心这些东西。如果他觉得你对他的软件没有帮助，他就要你走。DOOM 的其他三个创始人，有两个是卡马克自己赶走的。

他这种冷漠无情的性格，很难跟别人相处。公司同事都觉得，有他在场，公司气氛都变得压抑了。

但是，《DOOM 启世录》的作者认为，**恰恰是这种性格，造就了卡马克。** 正是因为他心无旁骛，无比关心程序的性能，才在并不强大的硬件上，第一个实现了 3D 效果。不提供价值的东西，就会被他剔除，才最终写出了简洁高效的代码。

举例来说，那个年代的硬件很弱，不足以渲染 3D 场景。卡马克想到，可以放弃天花板和地板，只渲染左右两侧的矩形，作为两堵墙，从而创造出 3D 感（下图）。这个解决方案跟他无所羁绊的性格大概是有关系的。

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060403.webp)

其他世界级的优秀程序员，很多也很难相处。比如，理查德·斯托曼对自由软件宗教般的坚持，林纳斯·托瓦兹对提交愚蠢代码的程序员会当众讽刺。也许“亲人”和“亲代码”就是有点对立，性格特别和善可亲的人，不容易成为优秀程序员。

## 活动消息

1、[字节跳动云原生沙龙](https://www.bagevent.com/event/sales/zzze3q8v8uvz6ff7fjpwe4wx9jt5rvrj)（第二期）

上周提到的“云原生沙龙”，本周六将紧接着举办第二期。

云时代如何开发软件，**如何完成自托管软件（self-host）向云原生软件（cloud-native）的转变**？这就是这个系列活动的主题，字节官方跟社区分享自己的实践和探索。

上期是 Serverless，本期是**基础设施软件的落地**。活动时间是明天（6月10日）下午两点，一共四个讲座，都是字节的负责工程师主讲。

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060801.webp)

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060803.webp)

活动地点这次在上海，地址是徐汇区古美路1520号的漕河泾中心。熟悉的朋友应该看出来了，这是**字节的上海工区**，线下参加的同学可以顺便参观一下，当然也可以线上观看直播。

访问[这个链接](https://www.bagevent.com/event/sales/zzze3q8v8uvz6ff7fjpwe4wx9jt5rvrj)，或者扫描上图二维码，了解活动详情，免费报名线下/线上参加活动，当天的参加者还有丰富伴手礼。

## 科技动态

1、[面包板手表](https://ingep.net/breadboardwatch/)

面包板是电路实验的基本工具。一位国外爱好者制作了一块面包板手表，可以戴在手上。

![](https://cdn.beekka.com/blogimg/asset/202305/bg2023052801.webp)

他在面包板上，集成了电池、电路、定时器和 LED 显示屏。他还把自己写的固件，放到了 [GitHub](https://github.com/ingepnet/breadboardwatch)。

![](https://cdn.beekka.com/blogimg/asset/202305/bg2023052802.webp)

2、[自动紧急刹车](https://arstechnica.com/cars/2023/05/automatic-emergency-braking-should-become-mandatory-feds-say/)

美国交通部表示，正考虑让美国所有的轿车，都安装自动紧急刹车装置。

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060202.webp)

一旦前车突然减速，或者前面突然出现行人，该装置会发出警报，并启动刹车。美国交通部的设想是，它以后会像安全带和气囊一样，成为每辆车的标配。

这意味着，车辆前部必须加一个传感器，可能是雷达，也可能是摄像头，用来检测前方物体。根据研究，这样每年可以防止24000起车祸，少死360个人。

3、[无镜头照相机](https://bjoernkarmann.dk/project/paragraphica)

一位荷兰设计师发明了一个匪夷所思的装置：无镜头照相机。

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060203.webp)

这个照相机的镜头是封死的，它将当前地点的 GPS 坐标和取景器里面的物体轮廓，发给 AI 模型。

AI 会根据这些信息，生成当前场景的文字描述。

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060204.webp)

这些文字会再传给“图像生成引擎”，生成图片。效果非常惊人。下面是实际的街景。

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060205.webp)

下面是这台照相机生成的街景。

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060206.webp)

4、[水稻工厂](http://ah.people.com.cn/n2/2023/0606/c227131-40445805-7.html)

安徽六安建立了一家智能化水稻工厂，采用培养盘种植水稻。

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060703.webp)

由于是标准化的室内种植，可以保证最适宜的温度和湿度，并进行精确施肥。

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060704.webp)

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060705.webp)

虽然非常节约土地和人力，但是它的种植成本高于传统水稻，而且耗电大，如果无法保证获利，还是很难推广。（[@shencn](https://github.com/ruanyf/weekly/issues/3169) 投稿）

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060706.webp)

## 文章

1、[一道物理高考真题](https://m.weibo.cn/detail/4910316167105260)（中文）

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060804.webp)

刚刚结束的全国1卷物理高考真题之一：“嫦娥五号着陆器质量 m，月表重力加速度 1/6g，着陆器四条支腿与垂直方向夹角为 θ，则一条腿对月面的压力是多少？”

2、[人工智能发现计算机算法](https://www.ithome.com/0/698/425.htm)（中文）

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060805.webp)

谷歌人工智能部门 DeepMind 宣布，使用 AI 发现了一种新的算法 AlphaDev，把排序速度提高了 70％。

如果 AI 自己能发现并实现算法，LeetCode 刷题的意义就少了很多。

3、[苏联的电子工业为什么输了](https://mp.weixin.qq.com/s/Vqd2tg0Rlx0bSaPxUYc9Cg)（中文）

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060115.webp)

在电子管时代，苏联的电子工业是很强的，本文探讨为什么它后来远远落后于西方。

4、[安卓 Firefox 如何始终使用桌面视图](https://www.reddit.com/r/firefox/comments/p38p6t/guide_how_to_always_use_desktop_view_in_firefox/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202305/bg2023051804.webp)

手机浏览器默认打开网页的手机版，本文教你一种方法，使得它始终打开桌面版。

5、[CSS 获取子项目数量的方法](https://ishadeed.com/article/conditional-css-has-nth-last-child/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202305/bg2023051810.webp)

利用`:has`和`:nth-last-child`，可以在 CSS 获得容器里面子项目的数量（比如某个列表有多少项）。

6、[理解 PostgreSQL 数据库索引](https://blog.mastermind.dev/indexes-in-postgresql)（英文）

![](https://cdn.beekka.com/blogimg/asset/202305/bg2023051812.webp)

本文是一篇科普文章，介绍 PostgreSQL 数据库索引的相关知识。 

7、[Gmail 正在扼杀独立电子邮件吗？](https://tutanota.com/blog/posts/gmail-independent-email)（英文）

![](https://cdn.beekka.com/blogimg/asset/202304/bg2023042906.webp)

如果你自己架设邮件服务器，向 Gmail 地址发邮件，几乎肯定会被它当作垃圾邮件或者延迟送达。

8、[REST 和 gRPC 的详细比较](https://kreya.app/blog/rest-vs-grpc/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202304/bg2023042910.webp)

REST 和 gRPC 是 API 的两种最流行的实现方法，本文详细比较它们的差异。

## 工具

1、[Docker-OSX](https://github.com/sickcodes/Docker-OSX)

![](https://cdn.beekka.com/blogimg/asset/202301/bg2023011501.webp)

一个运行 macOS 虚拟机的 Docker 镜像。

2、[Tabby](https://github.com/TabbyML/tabby)

GitHub Copilot 的开源替代品，AI 代码助手，可以自己架设，并且离线使用。它还提供 Web 界面，根据指令生成代码。

3、[undb](https://github.com/undb-xyz/undb)

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060708.webp)

一个无代码数据库操作界面，数据保存在一个文件里面。（[@nichenqin](https://github.com/ruanyf/weekly/issues/3172) 投稿）

4、[jelBAN.js](https://github.com/Fcmam5/jelban-js)

一个 JS 库，用来过滤 Email 地址，包括一次性地址和邮箱的地址别名。

5、[Herowand Editor](https://editor.herowand.com/)

![](https://cdn.beekka.com/blogimg/asset/202304/bg2023041703.webp)

一个网页工具，可以将 JSON、XML、YAML、TOML 格式的数据可视化展示。

6、[sqlite-gui](https://github.com/little-brother/sqlite-gui)

![](https://cdn.beekka.com/blogimg/asset/202304/bg2023041904.webp)

一个 Windows 系统的轻量级 SQLite 编辑器。

7、[val town](https://www.val.town/)

![](https://cdn.beekka.com/blogimg/asset/202304/bg2023042004.webp)

该网站是免费的云函数运行环境。用户在网页输入云函数，该网站可以自动运行这个函数。

8、[stable-diffusion-videos](https://github.com/nateraw/stable-diffusion-videos)

用户提供两张图片，这个工具使用开源的 Stable Diffusion 模型，生成一段视频，内容是图片 A 逐渐变成图片 B。

9、[Helix](https://helix-editor.com/)

![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090702.webp)

一个现代版 Vim 编辑器，完全用 Rust 语言重写了。它跟 NeoVim 的主要不同是，它把一些主要的插件都做进去了，不用安装插件。

10、[Chitchatter](https://chitchatter.im/)

![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090703.webp)

一个开源的点对点网页聊天应用，聊天内容不经过服务器，可以自己搭建，分享房间号给其他人。

11、[Aether](https://getaether.net/)

![](https://cdn.beekka.com/blogimg/asset/202209/bg2022090806.webp)

一个点对点的桌面软件，用来搭建私人社区，一组用户可以用它交换内容，一个人发帖，其他人都可以看到，不需要服务器。

## 资源

1、[Posters](https://github.com/corkami/pics/blob/master/binary/README.md)

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022122703.webp)

这个仓库收集了作者原创的大量 IT 海报，比如上图是 ASCII 码的海报。

2、[Passkeys.io](https://www.passkeys.io/)

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060501.webp)

不需要密码的 Passkey 登录演示网站，桌面电脑使用物理密钥，手机使用指纹或脸部认证。

3、[让 ChatGPT 总结 Hacker News](https://hackernews.betacat.io/)

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060707.webp)

这个网站每天抓取“黑客新闻”首页的热门文章，再使用 ChatGPT 总结出每篇文章的主要内容，用来节省浏览时间，参见[介绍文章](https://blog.betacat.io/post/2023/06/summarize-hacker-news-by-chatgpt/)。（[@polyrabbit](https://github.com/ruanyf/weekly/issues/3171) 投稿）

4、[学习生成式 AI](https://www.cloudskillsboost.google/paths/118)

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060503.webp)

谷歌云推出的生成式 AI 免费英文课程。

## 图片

1、[YBC7289](https://twitter.com/tivadardanka/status/1608419325706391554)

YBC7289 是一块古代巴比伦的粘土板，制作时间大约是公元前1600年到公元前1800年。

YBC7289 是它的收藏编号。它是1909年由金融大王J·P·摩根捐献的，不清楚具体的出土时间和地点。

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022123001.webp)

它的珍贵之处是，证明了古代巴比伦人知道2的平方根√2，而且能够准确计算，精确度高达99.9999%。

这块板上刻了一个正方形，还画了对角线，还在对角线上写了数字。

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022123002.webp)

这些数字是古代巴比伦的楔形文字，经过辨认是四个数字：1、24、51 和 10。

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022123003.webp)

我们知道古代巴比伦人采用60进制，这四个60进制数字转成十进制，就是1.41421296296。

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022123004.webp)

这 √2 匹配到小数点后第六位，准确率为 99.9999%！

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022123005.webp)

2、[美墨边境墙](https://www.theverge.com/c/23203881/border-patrol-wall-surveillance-tech)

美国和墨西哥的边境有一堵巨大的墙，用来阻挡拉美移民偷渡进入美国。

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060806.webp)

![](https://cdn.beekka.com/blogimg/asset/202306/bg2023060807.webp)

这堵墙超过1000公里，目前还在不断延长，可能是美国建造的最大工程。美墨边境一共是3,145公里。

![](https://cdn.beekka.com/blogimg/asset/202208/bg2022080505.webp)


![](https://cdn.beekka.com/blogimg/asset/202208/bg2022080507.webp)

## 文摘

1、[布什内尔定律](https://en.wikipedia.org/wiki/Bushnell%27s_Law)

布什内尔是早期游戏公司 Atari 的创始人。

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022121805.webp)

他设计的第一款电子游戏，有四个外观相同但功能不同的按钮。玩家纷纷投诉，这种设计很让人困惑。

他经过反思就提出，游戏的操作应该简单，一看就会，但是玩法应该保持挑战性。后人总结为“**易于学习，难以精通**”。

这被认为是电子游戏设计的“布什内尔定律”，暴雪公司将它奉为游戏设计的座右铭。

可以这样理解，吸引大量玩家参与的东西，都应该很容易上手，但是取得进展很困难。

## 言论

1、

1977年上线的计算机系统中，只有两个至今仍在可靠的运行，而且都不在地球。它们就是旅行者1号和2号飞行器，目前都离开了太阳系，飞向宇宙深处。

-- [《是否存在过于可靠的系统？》](https://flyingbarron.medium.com/is-there-such-a-thing-as-a-system-thats-too-reliable-9a367ba850ac)

2、

突然之间就没有现实了，虚拟的世界如此逼真，这真的很令人担忧。我不知道我们该如何看待这个世界，谁知道它是真是假。

-- [加州大学教授 Hany Farid](https://www.npr.org/2023/05/08/1174132413/people-are-trying-to-claim-real-videos-are-deepfakes-the-courts-are-not-amused)，谈 AI 使得深度伪造变得多么容易

3、

如果你有原创性，就可以回避竞争。基本上，如果你与别人发生竞争，那是因为你们在做同样的事情。如果每个人做的事情都有所不同，就可以减少竞争，或者不存在竞争。所以，不要模仿他人。

-- [Naval](https://nav.al/competition-authenticity)，美国著名风投家

4、

归根结底，博客、播客、短视频都是一个人表达自己的地方，是他们用数字形式说“这就是我”的方式。

-- [《人工智能会扼杀博客吗？》](https://herman.bearblog.dev/will-ai-kill-blogging/)

5、

没有权威，证据就是一切。

-- [伦敦皇家学会](https://nautil.us/the-19th-century-trippers-who-probed-the-mind-303265/)，1660年成立时选择的座右铭

## 历史上的本周

[虚拟商品可以拉动 GDP](http://www.ruanyifeng.com/blog/2022/06/weekly-issue-211.html)（2022 #211）

[再见了，学术硕士](http://www.ruanyifeng.com/blog/2021/06/weekly-issue-161.html)（2021 #161）

[智能电视的误区](http://www.ruanyifeng.com/blog/2020/06/weekly-issue-111.html)（2020 #111）

[转行前端越来越难](http://www.ruanyifeng.com/blog/2019/06/weekly-issue-61.html)（2019 #61）

## 鸣谢

周刊得到国内新一代知识管理与协作平台 [FlowUs](https://flowus.cn?promotionChannel=GW_RYF_01) 的帮助，深表感谢。

[FlowUS](https://flowus.cn?promotionChannel=GW_RYF_01)  = 文档 + 表格 + 网盘。你可以用它写文档、做主页、管理数据、存储文件等等。

每一期周刊同时发布在[ FlowUs 专栏](https://ruanyf-weekly.flowus.cn/?code=FLOWUS&promotionChannel=WX_RYF_00)，欢迎大家也去开通自己的专栏和主页。

![](https://cdn.beekka.com/blogimg/asset/202303/bg2023030205.webp)

（完）

