# 科技爱好者周刊(第 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) (完)