科技爱好者周刊(第 258 期):卡马克的猫
本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系(yifeng.ruan@gmail.com)。
封面图
世界首架载人飞碟,6月3日在深圳正式起飞。这架飞碟是电动的,最大飞行高度200米,续航时间15分钟。(via)
卡马克的猫
推荐一本书《DOOM 启世录》(Masters of Doom),电子游戏名著,2003年在美国出版,第二年就出了中译本。
它详细讲述了电子游戏《DOOM》(毁灭战士)的故事,两个怀揣梦想的青年,如何一步步创造出这个游戏。
写得非常好,翻译得也好。通过它,可以了解游戏行业的内幕,以及程序员的人生。
主人公之一,是一个叫做约翰·卡马克(John D. Carmack,1970-)的程序员,他编写了《DOOM》的主要代码。他原来只是一个辍学生,但是后来变得世界闻名。
书里讲了一个他的小故事,分享给大家。
卡马克小时候痴迷电脑,跟家人和同学都很疏远。陪伴他的只有一只叫做“咪子”(Mitzi)的猫。他编程时,猫就趴在电脑上面。
19岁,他离开家,去另一个州创业,什么都没带,唯一从家里拿走的就是这只猫。它一直陪着他,甚至公司的员工名单里面,他也把这只猫加了进去。
后来,DOOM 开发最紧张的那段时间,猫的脾气变得暴躁了,经常乱撒尿,卡马克新买的真皮沙发就被它毁了。
卡马克不想忍了,尽管相陪多年,他还是把咪子送到了动物收容所,从此就不管它了。
卡马克跟同事解释这个决定:“咪子对我的生活产生了负面影响。” 其他人惊讶地说:“送到动物收容所,这只猫可能会死掉。” 卡马克不为所动,转过身继续去编程。
作者说,这个事件反映了卡马克的性格。他只关心他要写的程序,在他眼里,其他都是小事,如果妨碍到他,就必须剔除。
他不仅这样对待猫,也这样对待朋友和自己。他从不保存自己的照片、资料、早期作品,因为不关心这些东西。如果他觉得你对他的软件没有帮助,他就要你走。DOOM 的其他三个创始人,有两个是卡马克自己赶走的。
他这种冷漠无情的性格,很难跟别人相处。公司同事都觉得,有他在场,公司气氛都变得压抑了。
但是,《DOOM 启世录》的作者认为,恰恰是这种性格,造就了卡马克。 正是因为他心无旁骛,无比关心程序的性能,才在并不强大的硬件上,第一个实现了 3D 效果。不提供价值的东西,就会被他剔除,才最终写出了简洁高效的代码。
举例来说,那个年代的硬件很弱,不足以渲染 3D 场景。卡马克想到,可以放弃天花板和地板,只渲染左右两侧的矩形,作为两堵墙,从而创造出 3D 感(下图)。这个解决方案跟他无所羁绊的性格大概是有关系的。
其他世界级的优秀程序员,很多也很难相处。比如,理查德·斯托曼对自由软件宗教般的坚持,林纳斯·托瓦兹对提交愚蠢代码的程序员会当众讽刺。也许“亲人”和“亲代码”就是有点对立,性格特别和善可亲的人,不容易成为优秀程序员。
活动消息
1、字节跳动云原生沙龙(第二期)
上周提到的“云原生沙龙”,本周六将紧接着举办第二期。
云时代如何开发软件,如何完成自托管软件(self-host)向云原生软件(cloud-native)的转变?这就是这个系列活动的主题,字节官方跟社区分享自己的实践和探索。
上期是 Serverless,本期是基础设施软件的落地。活动时间是明天(6月10日)下午两点,一共四个讲座,都是字节的负责工程师主讲。
活动地点这次在上海,地址是徐汇区古美路1520号的漕河泾中心。熟悉的朋友应该看出来了,这是字节的上海工区,线下参加的同学可以顺便参观一下,当然也可以线上观看直播。
访问这个链接,或者扫描上图二维码,了解活动详情,免费报名线下/线上参加活动,当天的参加者还有丰富伴手礼。
科技动态
1、面包板手表
面包板是电路实验的基本工具。一位国外爱好者制作了一块面包板手表,可以戴在手上。
他在面包板上,集成了电池、电路、定时器和 LED 显示屏。他还把自己写的固件,放到了 GitHub。
2、自动紧急刹车
美国交通部表示,正考虑让美国所有的轿车,都安装自动紧急刹车装置。
一旦前车突然减速,或者前面突然出现行人,该装置会发出警报,并启动刹车。美国交通部的设想是,它以后会像安全带和气囊一样,成为每辆车的标配。
这意味着,车辆前部必须加一个传感器,可能是雷达,也可能是摄像头,用来检测前方物体。根据研究,这样每年可以防止24000起车祸,少死360个人。
3、无镜头照相机
一位荷兰设计师发明了一个匪夷所思的装置:无镜头照相机。
这个照相机的镜头是封死的,它将当前地点的 GPS 坐标和取景器里面的物体轮廓,发给 AI 模型。
AI 会根据这些信息,生成当前场景的文字描述。
这些文字会再传给“图像生成引擎”,生成图片。效果非常惊人。下面是实际的街景。
下面是这台照相机生成的街景。
4、水稻工厂
安徽六安建立了一家智能化水稻工厂,采用培养盘种植水稻。
由于是标准化的室内种植,可以保证最适宜的温度和湿度,并进行精确施肥。
虽然非常节约土地和人力,但是它的种植成本高于传统水稻,而且耗电大,如果无法保证获利,还是很难推广。(@shencn 投稿)
文章
1、一道物理高考真题(中文)
刚刚结束的全国1卷物理高考真题之一:“嫦娥五号着陆器质量 m,月表重力加速度 1/6g,着陆器四条支腿与垂直方向夹角为 θ,则一条腿对月面的压力是多少?”
2、人工智能发现计算机算法(中文)
谷歌人工智能部门 DeepMind 宣布,使用 AI 发现了一种新的算法 AlphaDev,把排序速度提高了 70%。
如果 AI 自己能发现并实现算法,LeetCode 刷题的意义就少了很多。
3、苏联的电子工业为什么输了(中文)
在电子管时代,苏联的电子工业是很强的,本文探讨为什么它后来远远落后于西方。
4、安卓 Firefox 如何始终使用桌面视图(英文)
手机浏览器默认打开网页的手机版,本文教你一种方法,使得它始终打开桌面版。
5、CSS 获取子项目数量的方法(英文)
利用:has
和:nth-last-child
,可以在 CSS 获得容器里面子项目的数量(比如某个列表有多少项)。
6、理解 PostgreSQL 数据库索引(英文)
本文是一篇科普文章,介绍 PostgreSQL 数据库索引的相关知识。
7、Gmail 正在扼杀独立电子邮件吗?(英文)
如果你自己架设邮件服务器,向 Gmail 地址发邮件,几乎肯定会被它当作垃圾邮件或者延迟送达。
8、REST 和 gRPC 的详细比较(英文)
REST 和 gRPC 是 API 的两种最流行的实现方法,本文详细比较它们的差异。
工具
一个运行 macOS 虚拟机的 Docker 镜像。
2、Tabby
GitHub Copilot 的开源替代品,AI 代码助手,可以自己架设,并且离线使用。它还提供 Web 界面,根据指令生成代码。
3、undb
一个无代码数据库操作界面,数据保存在一个文件里面。(@nichenqin 投稿)
一个 JS 库,用来过滤 Email 地址,包括一次性地址和邮箱的地址别名。
一个网页工具,可以将 JSON、XML、YAML、TOML 格式的数据可视化展示。
一个 Windows 系统的轻量级 SQLite 编辑器。
7、val town
该网站是免费的云函数运行环境。用户在网页输入云函数,该网站可以自动运行这个函数。
用户提供两张图片,这个工具使用开源的 Stable Diffusion 模型,生成一段视频,内容是图片 A 逐渐变成图片 B。
9、Helix
一个现代版 Vim 编辑器,完全用 Rust 语言重写了。它跟 NeoVim 的主要不同是,它把一些主要的插件都做进去了,不用安装插件。
10、Chitchatter
一个开源的点对点网页聊天应用,聊天内容不经过服务器,可以自己搭建,分享房间号给其他人。
11、Aether
一个点对点的桌面软件,用来搭建私人社区,一组用户可以用它交换内容,一个人发帖,其他人都可以看到,不需要服务器。
资源
1、Posters
这个仓库收集了作者原创的大量 IT 海报,比如上图是 ASCII 码的海报。
不需要密码的 Passkey 登录演示网站,桌面电脑使用物理密钥,手机使用指纹或脸部认证。
这个网站每天抓取“黑客新闻”首页的热门文章,再使用 ChatGPT 总结出每篇文章的主要内容,用来节省浏览时间,参见介绍文章。(@polyrabbit 投稿)
4、学习生成式 AI
谷歌云推出的生成式 AI 免费英文课程。
图片
1、YBC7289
YBC7289 是一块古代巴比伦的粘土板,制作时间大约是公元前1600年到公元前1800年。
YBC7289 是它的收藏编号。它是1909年由金融大王J·P·摩根捐献的,不清楚具体的出土时间和地点。
它的珍贵之处是,证明了古代巴比伦人知道2的平方根√2,而且能够准确计算,精确度高达99.9999%。
这块板上刻了一个正方形,还画了对角线,还在对角线上写了数字。
这些数字是古代巴比伦的楔形文字,经过辨认是四个数字:1、24、51 和 10。
我们知道古代巴比伦人采用60进制,这四个60进制数字转成十进制,就是1.41421296296。
这 √2 匹配到小数点后第六位,准确率为 99.9999%!
2、美墨边境墙
美国和墨西哥的边境有一堵巨大的墙,用来阻挡拉美移民偷渡进入美国。
这堵墙超过1000公里,目前还在不断延长,可能是美国建造的最大工程。美墨边境一共是3,145公里。
文摘
1、布什内尔定律
布什内尔是早期游戏公司 Atari 的创始人。
他设计的第一款电子游戏,有四个外观相同但功能不同的按钮。玩家纷纷投诉,这种设计很让人困惑。
他经过反思就提出,游戏的操作应该简单,一看就会,但是玩法应该保持挑战性。后人总结为“易于学习,难以精通”。
这被认为是电子游戏设计的“布什内尔定律”,暴雪公司将它奉为游戏设计的座右铭。
可以这样理解,吸引大量玩家参与的东西,都应该很容易上手,但是取得进展很困难。
言论
1、
1977年上线的计算机系统中,只有两个至今仍在可靠的运行,而且都不在地球。它们就是旅行者1号和2号飞行器,目前都离开了太阳系,飞向宇宙深处。
2、
突然之间就没有现实了,虚拟的世界如此逼真,这真的很令人担忧。我不知道我们该如何看待这个世界,谁知道它是真是假。
– 加州大学教授 Hany Farid,谈 AI 使得深度伪造变得多么容易
3、
如果你有原创性,就可以回避竞争。基本上,如果你与别人发生竞争,那是因为你们在做同样的事情。如果每个人做的事情都有所不同,就可以减少竞争,或者不存在竞争。所以,不要模仿他人。
– Naval,美国著名风投家
4、
归根结底,博客、播客、短视频都是一个人表达自己的地方,是他们用数字形式说“这就是我”的方式。
5、
没有权威,证据就是一切。
– 伦敦皇家学会,1660年成立时选择的座右铭
历史上的本周
虚拟商品可以拉动 GDP(2022 #211)
再见了,学术硕士(2021 #161)
智能电视的误区(2020 #111)
转行前端越来越难(2019 #61)
鸣谢
周刊得到国内新一代知识管理与协作平台 FlowUs 的帮助,深表感谢。
FlowUS = 文档 + 表格 + 网盘。你可以用它写文档、做主页、管理数据、存储文件等等。
每一期周刊同时发布在 FlowUs 专栏,欢迎大家也去开通自己的专栏和主页。
(完)