# 科技爱好者周刊(第 300 期):三十年,解决人生三大问题
这里记录每周值得分享的科技内容,周五发布。
本杂志[开源](https://github.com/ruanyf/weekly),欢迎[投稿](https://github.com/ruanyf/weekly/issues)。另有[《谁在招人》](https://github.com/ruanyf/weekly/issues/4390)服务,发布程序员招聘信息。合作请[邮件联系](mailto:yifeng.ruan@gmail.com)(yifeng.ruan@gmail.com)。
## 封面图
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051501.webp)
本周,太阳活动剧烈,引起几十年来最大的地磁暴。地球的中高纬度地区,普遍可以看到极光,就连北京这样的中纬度城市,都出现了极光,上图是长城。([via](https://m.bjnews.com.cn/detail/1715495546129388.html))
## 三十年,解决人生三大问题
我最近看到[一篇文章](https://huyenchip.com/2024/04/17/personal-growth.html),很有意思,分享给大家。
文章大意是,**人的一生就是解决三个基本问题:事业、家庭和财务。**
一份有成就的事业,一个幸福的家庭,一个健康的财务状况,人生就没有遗憾了。
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051513.webp)
我们的人生规划,就是朝着解决这三个问题努力。哪怕其中只有一个没有解决,你的人生就过不好。
原文作者提出了他的规划。他说,这三个问题要分阶段解决,每个阶段重点解决一个问题。而且**他估计,每个阶段要花费十年**,总共需要三十年。
**(1)第一个十年**。你搞清楚自己想干什么,找到方向,为事业打下基础,从此全力投入。
**(2)第二个十年**。你结婚、买房、养育后代。
**(3)第三个十年**。你努力赚钱,积蓄退休金。
如果将18岁成年作为起点,过完这三个十年,你就已经48岁了。
也就是说,你的目标是,到了48岁,基本解决人生三大问题。48岁以后的时间,就是自己的选择,追求梦想,照顾家人,或者继续推进事业,积累更多财富。
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051607.webp)
原文作者没有解释,为什么每个阶段需要十年。我倒是觉得,十年是一个合理的时间。
如果是八年、七年、甚至五年,那样固然很好,不过难度也会相应变大,多少人能做到呢。如果更长一点,每个阶段需要十二年,甚至十五年,那样就有点太晚了,你都要退休了。更重要的是,年纪越大,人生改变的可能性越小,五十岁以后其实能做的有限。
总之,我认为,这是一个很新颖的视角,可以用作思考人生问题的框架,对我很有启发。
凡事就看它是否有助于“事业、家庭和财务”,我们的目标就是在48岁前解决好这些问题。
## 活动
**1、WebGPU 线下沙龙**
前端程序员怎么转向 AI?
除了构建 AI 的前端界面,还有一个更有前途、更适合前端的方向,那就是浏览器直接运行 AI 模型。
**网页跑 AI,需要调用显卡的计算能力,就会用到 WebGPU**。它是去年发布的最新标准,允许网页代码访问 GPU 功能,Chrome 浏览器已经支持。
下周五(5月24日)晚上有一个难得的机会,小红书官方会主办一场 REDtech 技术沙龙,主题就是 WebGPU。
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051604.webp)
活动嘉宾是 W3C 资深媒体技术专家、**Web GPU 工作组负责人 François Daoust**,以及小红书前端架构团队,活动内容如下。
> 1. 浏览器如何调用显卡功能,运行 AI 和网页渲染?
> 1. WebGPU 的音视频处理技术有哪些最新进展?
> 1. 小红书如何应用 WebGPU 构建动画,支持业务的快速迭代?
大家点击[这个链接](https://hdxu.cn/LQaZE),或者扫描上方海报的二维码,了解活动详情和**免费报名**。线下座位有100个,邀请码填写“WebGPU”,如果报名的人多,这样更容易通过,不在上海的同学可以预约线上直播。
到时,除了了解 WebGPU 在 AI 和影音方面的应用,还能跟嘉宾互动,并有机会获得小红书的周边纪念品!
**2、稀土开发者大会**
上周,周刊介绍了今年的“稀土开发者大会”,6月底将在北京举行。
它面向全国开发者,让大家聚在一起,交流分享彼此的开发经验,以及热点技术的进展。
现在,**“架构设计和业务稳定性建设”分论坛**的议题内容和演讲者名单,已经出来了(见下图)。
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051605.webp)
如果你参与应用的架构设计,需要后端能够快速缩放,又要保证业务稳定性,同时还要时刻监控关键指标,那么这个分论坛一定很合适你。
大家看它的演讲阵容就知道了,全是国内头部应用的真实案例和实务操作,挺精彩的。
详细的分论坛信息和大会安排,点击[官网链接](https://conf.juejin.cn/xdc2024/?utm_source=ryf),或者扫描上面海报的二维码,购票也是这个链接。
最后提醒一下,**今天是限量早鸟票的最后一天!** 下周,早鸟票就没了,票价就涨了,想要现场参加大会的同学不要错过了。
## 科技动态
1、[蒙娜丽莎的地点](https://www.theguardian.com/artanddesign/article/2024/may/11/where-mona-lisa-was-painted-mystery-solved-geologist-claims)
达芬奇的世界名画《蒙娜丽莎》是一个谜。人们不知道,它是什么时候画的、为什么达芬奇会画、画里女子到底是谁……
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051510.webp)
一位地质学家最近声称,她找到了一部分的答案,那就是这幅画的地点。
她认为,这幅画的地点是意大利科莫湖东南端的莱科市,理由是莱科的地质环境跟画的背景很像。
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051511.webp)
达芬奇用灰白色绘制背景的湖畔岩石,这是石灰岩的颜色,莱科的岩石就是石灰岩,而意大利其他的石灰岩地区都没有湖。
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051512.webp)
另外,背景里还有一座桥,正好跟莱科14世纪的一座古桥相吻合。
2、[沙发充电插座](https://www.core77.com/posts/132116/An-Unusual-Furniture-Design-Niche-Behind-the-Sofa-Consoles)
很多人喜欢坐在沙发上玩手机,但是常常找不到插座充电。
因此,现在就流行一种新家具,是沙发后面装一个木架,木架上面有插座。
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051003.webp)
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051004.webp)
这个架子放在沙发后面,很简单就解决了找不到插座的问题。
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051005.webp)
3、[金属轮胎](https://www.theverge.com/2023/9/14/23873153/nasa-bike-tire-shape-memory-price-smart-specs)
一家美国创业公司发布了自行车的“金属轮胎”,轮胎里面不是空气,而是金属弹簧。
![](https://cdn.beekka.com/blogimg/asset/202309/bg2023091605.webp)
![](https://cdn.beekka.com/blogimg/asset/202309/bg2023091606.webp)
这家公司介绍,它采用美国宇航局发现的镍钛诺合金。这种合金具有记忆功能,能够记住加热后锻造的形状,同时重量非常轻而且坚韧,适合做成弹簧替代轮胎。
![](https://cdn.beekka.com/blogimg/asset/202309/bg2023091607.webp)
![](https://cdn.beekka.com/blogimg/asset/202309/bg2023091608.webp)
这种“金属轮胎”的优点是不用充气,耐用性好。缺点是价格贵,不含轮圈的价格是500美元一对,是普通的优质自行车轮胎的10倍。
![](https://cdn.beekka.com/blogimg/asset/202309/bg2023091609.webp)
4、[冰岛的总统选举网站](https://uxdesign.cc/how-do-you-accidentally-run-for-president-of-iceland-0d71a4785a1e)
冰岛即将举行总统选举,报名资格是最少需要1500人的签名支持。
政府架设了[一个网站](https://island.is/forsetaframbod),让公民在网站上,向支持的候选人提交电子签名。
但是,这个网站出了一个乌龙事件。
![](https://cdn.beekka.com/blogimg/asset/202404/bg2024043009.webp)
它的签名页有一个“注册”按钮(下图的蓝色按钮),很多人点击注册了。
![](https://cdn.beekka.com/blogimg/asset/202404/bg2024043010.webp)
殊不知,签名只需要身份证,不需要注册。这个按钮实际上是“总统候选人”注册。你点击后,会显示一张表格,填完以后你就变成总统候选人了。
于是,冰岛现在就有了82个总统候选人,要知道以前选举的候选人,最多一次也只有9个。网站发现闯祸了,赶紧把 UI 改了。
我在想,要是有一部电影,讲述因为网站出错,一个普通人变成了总统,那就好玩了。
## 文章
1、[一个不知名的开源项目可以带来多少收入?](https://mp.weixin.qq.com/s/3i-bOEtM78xKSku5ndqp7Q)(中文)
三年前,作者决定做一个开源的开发工具。三年过去了,这个项目怎么样了,赚了多少钱。([@zhouyanliang](https://github.com/ruanyf/weekly/issues/4458) 投稿)
2、[5个改善用户体验的 HTML 属性](https://www.htmhell.dev/adventcalendar/2023/4/)(英文)
![](https://cdn.beekka.com/blogimg/asset/202312/bg2023120502.webp)
本文介绍5个不常用的 HTML 属性。
3、[现代 JavaScript 框架是如何工作的](https://nolanlawson.com/2023/12/02/lets-learn-how-modern-javascript-frameworks-work-by-building-one/)(英文)
![](https://cdn.beekka.com/blogimg/asset/202312/bg2023120302.webp)
作者通过示例,解释反应式的 JavaScript 前端框架的核心原理,并且自己实现了一个最简框架。内容还可以,但是写得不易读。
4、[Emoji 正则匹配](https://taxodium.ink/post/emoji-regexp/)(中文)
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051505.webp)
本文介绍一个 JS 技巧,如何用一个简单的正则表达式匹配 Emoji 表情符号。([@Spike-Leung](https://github.com/ruanyf/weekly/issues/4452) 投稿)
5、[Linux 容器的底层技术](https://www.annwan.me/computers/what-why-how-containers/)(英文)
![](https://cdn.beekka.com/blogimg/asset/202403/bg2024032803.webp)
一篇非常简单的文章,列出了容器技术底层依赖的几个 Linux 技术。
6、[Steam Deck 的五个杀手级功能](https://www.jonashietala.se/blog/2023/10/24/the_killer_features_of_the_steam_deck/)(英文)
![](https://cdn.beekka.com/blogimg/asset/202310/bg2023102406.webp)
作者非常喜欢便携式游戏机 Steam Deck,列出了五个他最喜欢的点。
## AI 相关
1、[Veo](https://deepmind.google/technologies/veo/)
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051502.webp)
谷歌本周发布的“文生视频”模型。
2、[Jan](https://jan.ai/)
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024050105.webp)
ChatGPT 的替代品,可以在桌面和服务器运行,接入各种 LLM 模型,让初学者也能轻松上手。
## 工具
1、[GitUI](https://github.com/extrawurst/gitui)
![](https://cdn.beekka.com/blogimg/asset/202401/bg2024011508.webp)
终端里面的 Git 图形界面,将各种 git 操作可视化,使用 Rust 语言开发。
2、[Outline](https://github.com/outline/outline)
![](https://cdn.beekka.com/blogimg/asset/202401/bg2024011701.webp)
一个开源的在线知识库软件,支持多人合作。
3、[Vnt](https://github.com/lbl8603/vnt)
一个开源工具,将不同网络下的多个设备虚拟到一个局域网下,类似与 tailscale、zerotier、n2n。([@lbl8603](https://github.com/ruanyf/weekly/issues/4444) 投稿)
4、[DashPlayer](https://github.com/solidSpoon/DashPlayer)
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051506.webp)
一款专为英语学习打造的开源视频播放器,支持生成双语字幕,进行精听或泛听练习。([@solidSpoon](https://github.com/ruanyf/weekly/issues/4454) 投稿)
5、[字幕工具箱](https://zm.i8k.tv/)
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051508.webp)
这个网站收集了一些字幕相关的工具,纯前端处理,无需安装任何插件或软件。([@mzhren](https://github.com/ruanyf/weekly/issues/4464) 投稿)
6、[封面图片生成器](https://spacexcode.com/coverview/)
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051108.webp)
一个制作简单封面图的 Web 工具。([@fantingsheng](https://github.com/ruanyf/weekly/issues/4439) 投稿)
另外,还有一个类似的 Logo 制作工具“[Logo 厨师](https://www.logocook.shop/)”。([@gdfsdjj145](https://github.com/ruanyf/weekly/issues/4455) 投稿)
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051507.webp)
7、[Easy Voice Toolkit](https://github.com/Spr-Aachen/Easy-Voice-Toolkit)
一个简易的语音工具箱,提供音频处理、语音识别、合成等音频工具,使用 Python 语言开发。([@Hao4Wang](https://github.com/ruanyf/weekly/issues/4471) 投稿)
8、[Segmentify](https://segmentify.app/zh)
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051509.webp)
一个 Figma 插件,使用浏览器 GPU 能力运行 AI SAM 模型,快速分割图片,从图片中提取元素至 Figma 文件。([@janily](https://github.com/ruanyf/weekly/issues/4472) 投稿)
9、[Web-Tracing](https://github.com/M-cheng-web/web-tracing)
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051504.webp)
一个开源的前端埋点工具,提供项目监控。([@M-cheng-web](https://github.com/ruanyf/weekly/issues/4451) 投稿)
10、[Technitium DNS](https://technitium.com/dns/)
![](https://cdn.beekka.com/blogimg/asset/202401/bg2024011706.webp)
一款开源 DNS 服务器,带有 Web 管理面板。
11、[QR code designer](https://github.com/kochrt/qr-designer)
![](https://cdn.beekka.com/blogimg/asset/202305/bg2023053102.webp)
一个 Web 工具,用来设计二维码,可以嵌入各种文字和图形,另有一个[类似工具](http://jsfiddle.net/lachlan/r8qWV/)。
12、[BullMQ](https://github.com/taskforcesh/bullmq)
![](https://cdn.beekka.com/blogimg/asset/202211/bg2022111202.webp)
Redis 的 JS 客户端,号称强大且快速。
## 资源
1、[LaTeX 入门与进阶](https://latex.lierhua.top/zh/)
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051107.webp)
网友写的中文书籍,介绍如何使用 LaTeX 和宏包编写。([@immotal](https://github.com/ruanyf/weekly/issues/4436) 投稿)
2、[URLhaus 数据库](https://urlhaus.abuse.ch/browse/)
![](https://cdn.beekka.com/blogimg/asset/202405/bg2024051503.webp)
这个数据库专门收集各种恶意 URL 网址,目前已经收集了280万个,可以免费查询和下载。
3、[数据科学导论](https://rafalab.dfci.harvard.edu/dsbook-part-1/)(Introduction to Data Science)
![](https://cdn.beekka.com/blogimg/asset/202403/bg2024030201.webp)
开源的英文教材,源于哈佛大学同名课程,使用 R 语言学习数据科学。
4、[引脚定义](https://pinouts.org/)
![](https://cdn.beekka.com/blogimg/asset/202309/bg2023091204.webp)
一本免费英文电子书,收集了130种电子产品常见组件(比如 USB 口)的引脚定义。
## 图片
1、[愤怒的小鸟原型](https://mymodernmet.com/angry-bird-cardinal-photo/)
著名游戏《愤怒的小鸟》的主角,是一群彩色的麻雀。
![](https://cdn.beekka.com/blogimg/asset/202311/bg2023113012.webp)
这种小鸟的原型是北美红雀(cardinal),它们长得简直跟游戏里面一模一样。
![](https://cdn.beekka.com/blogimg/asset/202311/bg2023113013.webp)
![](https://cdn.beekka.com/blogimg/asset/202311/bg2023113014.webp)
2、[《异星工厂》的 3D 图像](https://alt-f4.blog/ALTF4-65/)
[《异星工厂》](https://www.factorio.com/)(Factorio)是一个策略类游戏,要求玩家在一个荒芜的星球建造出一个完整的生产系统(即建造各种各样的工厂)。
原始游戏是 2D 图像。
![](https://cdn.beekka.com/blogimg/asset/202307/bg2023070301.webp)
![](https://cdn.beekka.com/blogimg/asset/202307/bg2023070302.webp)
[FUE5](https://github.com/FUE5BASE/FUE5) 是一个社区项目,目标是使用 Unreal 引擎将这个游戏变成 3D 的样子,效果非常出色。
![](https://cdn.beekka.com/blogimg/asset/202307/bg2023070305.webp)
![](https://cdn.beekka.com/blogimg/asset/202307/bg2023070303.webp)
![](https://cdn.beekka.com/blogimg/asset/202307/bg2023070304.webp)
![](https://cdn.beekka.com/blogimg/asset/202307/bg2023070306.webp)
## 文摘
1、[11,000行的单个源码文件](https://austinhenley.com/blog/11000lines.html)
我曾经遇到过一个超过11,000行的源码文件,它是 VBScript 代码的电子表格应用程序,公司所有员工需要的各种表格都在这个程序里面。
这个文件包含了你能想到的软件开发的所有噩梦。
多年来,无数人对这个文件进行了更改,但他们不是程序员,而是从 IT 支持到业务分析师各种人都有。你无从追踪每个人更改了什么地方。
整个文件看起来是从上到下执行,但我从未真正确认。代码的大致逻辑是,获取一些用户数据,然后检查数据是否满足某些条件,再执行各种动作,包括显示表单、访问共享驱动器上的文件、运行 SQL 查询、向硬编码地址发送电子邮件等等。
文件里面许多变量似乎没有从未使用到,变量名也难以搞清楚含义,同义词到处都是。
有趣的是,一个变量可能在第200行-210行使用,然后突然又在第8544行再次使用,其他地方就找不到踪迹了。
很多逻辑似乎是多余的,可能是复制粘贴进来的,然后从未清理过。一旦我清理它,代码突然就出错了,直到今天,我有时躺在床上还想知道是什么原因造成的。
它没有版本控制。关于代码更改的唯一线索,是看它抛出的错误提示和代码注释,但是我学会了不要信任那些注释。
它没有测试环境。如果我进行了更改,就必须在生产环境中对其进行测试。程序的所有状态都基于用户的权限,我们只有冒充报告错误的人,才能看到他们看到的内容。
它没有单元测试。如果我修改了一个地方,也没法知道会不会出错,可能要等到一周后,才有用户报告遇到了一个错误。
这个故事的寓意是什么?
我不知道,也许是它告诉我们,现实生活中真的有这样可怕的代码存在。
## 言论
1、
参观日本就像参观2000年代初期:随处可见的 CD 店,百货商店兴旺发达,人们还在使用厚重的笔记本电脑。
-- [《访问日本的感想》](https://alexanderweichart.de/5_Archive/1.-Projects/Notes/Notes-on-Japan)
2、
人工智能背后的实际技术,主要是一小部分巧妙的技巧,使用神经网络有效地对数据进行处理,神经网络本身并不神奇,并且开发过程很好理解,但是除非你有大钱购买硬件,并且使用每个人的私人数据进行训练,否则你的模型就没什么用。
-- [Hacker News 读者](https://news.ycombinator.com/item?id=40359459)
3、
不要将技术博客的写作视为打造“个人品牌”,它肯定对此有所帮助。但是,写作最重要的功能是,它是提升个人知识和批判性思维的一个工具。
-- [《为别人而写,但主要是为自己而写》](https://jack-vanlightly.com/blog/2022/1/25/write-for-others-but-mostly-for-yourself)
4、
今天的创业公司还面临一个资金过剩的风险。许多创业公司资金充足,就过度招聘并迅速扩张,但并没有真正的增长或实际需求。
他们没有安排最好的工程师来创造最好的产品,而是从一开始就忙于招募和处理臃肿的团队和人员扩张的烦恼。
-- [《遵循精益创业的方法》](https://www.june.so/blog/lean-startup-method-2024)
5、
瓶装水的保质期,指的是塑料瓶的保质期,而不是水的保质期。纯净水是不会变质的。
-- [BusinessInsider.com](https://www.businessinsider.com/does-bottled-water-go-bad-yes-but-it-probably-wont-harm-you-2023-3)
## 往年回顾
[训练材料用完之日](https://www.ruanyifeng.com/blog/2023/05/weekly-issue-253.html)(2023 #253)
[英国的名校签证,伯克利的计算机教育](https://www.ruanyifeng.com/blog/2022/04/weekly-issue-203.html)(2022 #203)
[机器翻译是对译者的侮辱吗?](https://www.ruanyifeng.com/blog/2021/04/weekly-issue-153.html)(2021 #153)
[信息的半衰期](http://www.ruanyifeng.com/blog/2020/04/weekly-issue-103.html)(2020 #103)
(完)