weekly/docs/issue-258.md

386 lines
19 KiB
Markdown
Raw Permalink Normal View History

2023-06-09 08:06:29 +08:00
# 科技爱好者周刊(第 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. Carmack1970-的程序员他编写了《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)
(完)