这里记录每周值得分享的科技内容,周五发布。
本杂志开源[1],欢迎投稿[2]。另有《谁在招人》[3]服务,发布程序员招聘信息。合作请邮件联系[4][email protected][5])。

封面图

本周,太阳活动剧烈,引起几十年来最大的地磁暴。地球的中高纬度地区,普遍可以看到极光,就连北京这样的中纬度城市,都出现了极光,上图是长城。(via[6]

三十年,解决人生三大问题

我最近看到一篇文章[7],很有意思,分享给大家。
文章大意是,人的一生就是解决三个基本问题:事业、家庭和财务。
一份有成就的事业,一个幸福的家庭,一个健康的财务状况,人生就没有遗憾了。
我们的人生规划,就是朝着解决这三个问题努力。哪怕其中只有一个没有解决,你的人生就过不好。
原文作者提出了他的规划。他说,这三个问题要分阶段解决,每个阶段重点解决一个问题。而且他估计,每个阶段要花费十年,总共需要三十年。
(1)第一个十年。你搞清楚自己想干什么,找到方向,为事业打下基础,从此全力投入。
(2)第二个十年。你结婚、买房、养育后代。
(3)第三个十年。你努力赚钱,积蓄退休金。
如果将18岁成年作为起点,过完这三个十年,你就已经48岁了。
也就是说,你的目标是,到了48岁,基本解决人生三大问题。48岁以后的时间,就是自己的选择,追求梦想,照顾家人,或者继续推进事业,积累更多财富。
原文作者没有解释,为什么每个阶段需要十年。我倒是觉得,十年是一个合理的时间。
如果是八年、七年、甚至五年,那样固然很好,不过难度也会相应变大,多少人能做到呢。如果更长一点,每个阶段需要十二年,甚至十五年,那样就有点太晚了,你都要退休了。更重要的是,年纪越大,人生改变的可能性越小,五十岁以后其实能做的有限。
总之,我认为,这是一个很新颖的视角,可以用作思考人生问题的框架,对我很有启发。
凡事就看它是否有助于“事业、家庭和财务”,我们的目标就是在48岁前解决好这些问题。

活动

1、WebGPU 线下沙龙
前端程序员怎么转向 AI?
除了构建 AI 的前端界面,还有一个更有前途、更适合前端的方向,那就是浏览器直接运行 AI 模型。
网页跑 AI,需要调用显卡的计算能力,就会用到 WebGPU。它是去年发布的最新标准,允许网页代码访问 GPU 功能,Chrome 浏览器已经支持。
下周五(5月24日)晚上有一个难得的机会,小红书官方会主办一场 REDtech 技术沙龙,主题就是 WebGPU
活动嘉宾是 W3C 资深媒体技术专家、Web GPU 工作组负责人 François Daoust,以及小红书前端架构团队,活动内容如下。
1.浏览器如何调用显卡功能,运行 AI 和网页渲染?2.WebGPU 的音视频处理技术有哪些最新进展?3.小红书如何应用 WebGPU 构建动画,支持业务的快速迭代?
大家点击这个链接[8],或者扫描上方海报的二维码,了解活动详情和免费报名。线下座位有100个,邀请码填写“WebGPU”,如果报名的人多,这样更容易通过,不在上海的同学可以预约线上直播。
到时,除了了解 WebGPU 在 AI 和影音方面的应用,还能跟嘉宾互动,并有机会获得小红书的周边纪念品!
2、稀土开发者大会
上周,周刊介绍了今年的“稀土开发者大会”,6月底将在北京举行。
它面向全国开发者,让大家聚在一起,交流分享彼此的开发经验,以及热点技术的进展。
现在,“架构设计和业务稳定性建设”分论坛的议题内容和演讲者名单,已经出来了(见下图)。
如果你参与应用的架构设计,需要后端能够快速缩放,又要保证业务稳定性,同时还要时刻监控关键指标,那么这个分论坛一定很合适你。
大家看它的演讲阵容就知道了,全是国内头部应用的真实案例和实务操作,挺精彩的。
详细的分论坛信息和大会安排,点击官网链接[9],或者扫描上面海报的二维码,购票也是这个链接。
最后提醒一下,今天是限量早鸟票的最后一天! 下周,早鸟票就没了,票价就涨了,想要现场参加大会的同学不要错过了。

科技动态

1、蒙娜丽莎的地点[10]
达芬奇的世界名画《蒙娜丽莎》是一个谜。人们不知道,它是什么时候画的、为什么达芬奇会画、画里女子到底是谁……
一位地质学家最近声称,她找到了一部分的答案,那就是这幅画的地点。
她认为,这幅画的地点是意大利科莫湖东南端的莱科市,理由是莱科的地质环境跟画的背景很像。
达芬奇用灰白色绘制背景的湖畔岩石,这是石灰岩的颜色,莱科的岩石就是石灰岩,而意大利其他的石灰岩地区都没有湖。
另外,背景里还有一座桥,正好跟莱科14世纪的一座古桥相吻合。
2、沙发充电插座[11]
很多人喜欢坐在沙发上玩手机,但是常常找不到插座充电。
因此,现在就流行一种新家具,是沙发后面装一个木架,木架上面有插座。
这个架子放在沙发后面,很简单就解决了找不到插座的问题。
3、金属轮胎[12]
一家美国创业公司发布了自行车的“金属轮胎”,轮胎里面不是空气,而是金属弹簧。
这家公司介绍,它采用美国宇航局发现的镍钛诺合金。这种合金具有记忆功能,能够记住加热后锻造的形状,同时重量非常轻而且坚韧,适合做成弹簧替代轮胎。
这种“金属轮胎”的优点是不用充气,耐用性好。缺点是价格贵,不含轮圈的价格是500美元一对,是普通的优质自行车轮胎的10倍。
4、冰岛的总统选举网站[13]
冰岛即将举行总统选举,报名资格是最少需要1500人的签名支持。
政府架设了一个网站[14],让公民在网站上,向支持的候选人提交电子签名。
但是,这个网站出了一个乌龙事件。
它的签名页有一个“注册”按钮(下图的蓝色按钮),很多人点击注册了。
殊不知,签名只需要身份证,不需要注册。这个按钮实际上是“总统候选人”注册。你点击后,会显示一张表格,填完以后你就变成总统候选人了。
于是,冰岛现在就有了82个总统候选人,要知道以前选举的候选人,最多一次也只有9个。网站发现闯祸了,赶紧把 UI 改了。
我在想,要是有一部电影,讲述因为网站出错,一个普通人变成了总统,那就好玩了。

文章

三年前,作者决定做一个开源的开发工具。三年过去了,这个项目怎么样了,赚了多少钱。(@zhouyanliang[15] 投稿)
2、5个改善用户体验的 HTML 属性[16](英文)
本文介绍5个不常用的 HTML 属性。
3、现代 JavaScript 框架是如何工作的[17](英文)
作者通过示例,解释反应式的 JavaScript 前端框架的核心原理,并且自己实现了一个最简框架。内容还可以,但是写得不易读。
4、Emoji 正则匹配[18](中文)
本文介绍一个 JS 技巧,如何用一个简单的正则表达式匹配 Emoji 表情符号。(@Spike-Leung[19] 投稿)
5、Linux 容器的底层技术[20](英文)
一篇非常简单的文章,列出了容器技术底层依赖的几个 Linux 技术。
6、Steam Deck 的五个杀手级功能[21](英文)
作者非常喜欢便携式游戏机 Steam Deck,列出了五个他最喜欢的点。

AI 相关

1、Veo[22]
谷歌本周发布的“文生视频”模型。
2、Jan[23]
ChatGPT 的替代品,可以在桌面和服务器运行,接入各种 LLM 模型,让初学者也能轻松上手。

工具

1、GitUI[24]
终端里面的 Git 图形界面,将各种 git 操作可视化,使用 Rust 语言开发。
2、Outline[25]
一个开源的在线知识库软件,支持多人合作。
3、Vnt[26]
一个开源工具,将不同网络下的多个设备虚拟到一个局域网下,类似与 tailscale、zerotier、n2n。(@lbl8603[27] 投稿)
4、DashPlayer[28]
一款专为英语学习打造的开源视频播放器,支持生成双语字幕,进行精听或泛听练习。(@solidSpoon[29] 投稿)
5、字幕工具箱[30]
这个网站收集了一些字幕相关的工具,纯前端处理,无需安装任何插件或软件。(@mzhren[31] 投稿)
6、封面图片生成器[32]
一个制作简单封面图的 Web 工具。(@fantingsheng[33] 投稿)
另外,还有一个类似的 Logo 制作工具“Logo 厨师[34]”。(@gdfsdjj145[35] 投稿)
7、Easy Voice Toolkit[36]
一个简易的语音工具箱,提供音频处理、语音识别、合成等音频工具,使用 Python 语言开发。(@Hao4Wang[37] 投稿)
8、Segmentify[38]
一个 Figma 插件,使用浏览器 GPU 能力运行 AI SAM 模型,快速分割图片,从图片中提取元素至 Figma 文件。(@janily[39] 投稿)
9、Web-Tracing[40]
一个开源的前端埋点工具,提供项目监控。(@M-cheng-web[41] 投稿)
10、Technitium DNS[42]
一款开源 DNS 服务器,带有 Web 管理面板。
11、QR code designer[43]
一个 Web 工具,用来设计二维码,可以嵌入各种文字和图形,另有一个类似工具[44]
12、BullMQ[45]
Redis 的 JS 客户端,号称强大且快速。

资源

1、LaTeX 入门与进阶[46]
网友写的中文书籍,介绍如何使用 LaTeX 和宏包编写。(@immotal[47] 投稿)
2、URLhaus 数据库[48]
这个数据库专门收集各种恶意 URL 网址,目前已经收集了280万个,可以免费查询和下载。
3、数据科学导论[49](Introduction to Data Science)
开源的英文教材,源于哈佛大学同名课程,使用 R 语言学习数据科学。
4、引脚定义[50]
一本免费英文电子书,收集了130种电子产品常见组件(比如 USB 口)的引脚定义。

图片

1、愤怒的小鸟原型[51]
著名游戏《愤怒的小鸟》的主角,是一群彩色的麻雀。
这种小鸟的原型是北美红雀(cardinal),它们长得简直跟游戏里面一模一样。
2、《异星工厂》的 3D 图像[52]
《异星工厂》[53](Factorio)是一个策略类游戏,要求玩家在一个荒芜的星球建造出一个完整的生产系统(即建造各种各样的工厂)。
原始游戏是 2D 图像。
FUE5[54] 是一个社区项目,目标是使用 Unreal 引擎将这个游戏变成 3D 的样子,效果非常出色。

文摘

1、11,000行的单个源码文件[55]
我曾经遇到过一个超过11,000行的源码文件,它是 VBScript 代码的电子表格应用程序,公司所有员工需要的各种表格都在这个程序里面。
这个文件包含了你能想到的软件开发的所有噩梦。
多年来,无数人对这个文件进行了更改,但他们不是程序员,而是从 IT 支持到业务分析师各种人都有。你无从追踪每个人更改了什么地方。
整个文件看起来是从上到下执行,但我从未真正确认。代码的大致逻辑是,获取一些用户数据,然后检查数据是否满足某些条件,再执行各种动作,包括显示表单、访问共享驱动器上的文件、运行 SQL 查询、向硬编码地址发送电子邮件等等。
文件里面许多变量似乎没有从未使用到,变量名也难以搞清楚含义,同义词到处都是。
有趣的是,一个变量可能在第200行-210行使用,然后突然又在第8544行再次使用,其他地方就找不到踪迹了。
很多逻辑似乎是多余的,可能是复制粘贴进来的,然后从未清理过。一旦我清理它,代码突然就出错了,直到今天,我有时躺在床上还想知道是什么原因造成的。
它没有版本控制。关于代码更改的唯一线索,是看它抛出的错误提示和代码注释,但是我学会了不要信任那些注释。
它没有测试环境。如果我进行了更改,就必须在生产环境中对其进行测试。程序的所有状态都基于用户的权限,我们只有冒充报告错误的人,才能看到他们看到的内容。
它没有单元测试。如果我修改了一个地方,也没法知道会不会出错,可能要等到一周后,才有用户报告遇到了一个错误。
这个故事的寓意是什么?
我不知道,也许是它告诉我们,现实生活中真的有这样可怕的代码存在。

言论

1、
参观日本就像参观2000年代初期:随处可见的 CD 店,百货商店兴旺发达,人们还在使用厚重的笔记本电脑。
-- 《访问日本的感想》[56]
2、
人工智能背后的实际技术,主要是一小部分巧妙的技巧,使用神经网络有效地对数据进行处理,神经网络本身并不神奇,并且开发过程很好理解,但是除非你有大钱购买硬件,并且使用每个人的私人数据进行训练,否则你的模型就没什么用。
-- Hacker News 读者[57]
3、
不要将技术博客的写作视为打造“个人品牌”,它肯定对此有所帮助。但是,写作最重要的功能是,它是提升个人知识和批判性思维的一个工具。
-- 《为别人而写,但主要是为自己而写》[58]
4、
今天的创业公司还面临一个资金过剩的风险。许多创业公司资金充足,就过度招聘并迅速扩张,但并没有真正的增长或实际需求。
他们没有安排最好的工程师来创造最好的产品,而是从一开始就忙于招募和处理臃肿的团队和人员扩张的烦恼。
-- 《遵循精益创业的方法》[59]
5、
瓶装水的保质期,指的是塑料瓶的保质期,而不是水的保质期。纯净水是不会变质的。
-- BusinessInsider.com[60]

往年回顾

信息的半衰期(2020 #103)
(完)

References

[1]
 开源: 
https://github.com/ruanyf/weekly
[2]
 投稿: 
https://github.com/ruanyf/weekly/issues
[3]
 《谁在招人》: 
https://github.com/ruanyf/weekly/issues/4390
[4]
 邮件联系: 
mailto:[email protected]
[5]mailto:[email protected]
[6]
 via: 
https://m.bjnews.com.cn/detail/1715495546129388.html
[7]
 一篇文章: 
https://huyenchip.com/2024/04/17/personal-growth.html
[8]
 这个链接: 
https://hdxu.cn/LQaZE
[9]
 官网链接: 
https://conf.juejin.cn/xdc2024/?utm_source=ryf
[10]
 蒙娜丽莎的地点: 
https://www.theguardian.com/artanddesign/article/2024/may/11/where-mona-lisa-was-painted-mystery-solved-geologist-claims
[11]
 沙发充电插座: 
https://www.core77.com/posts/132116/An-Unusual-Furniture-Design-Niche-Behind-the-Sofa-Consoles
[12]
 金属轮胎: 
https://www.theverge.com/2023/9/14/23873153/nasa-bike-tire-shape-memory-price-smart-specs
[13]
 冰岛的总统选举网站: 
https://uxdesign.cc/how-do-you-accidentally-run-for-president-of-iceland-0d71a4785a1e
[14]
 一个网站: 
https://island.is/forsetaframbod
[15]
 @zhouyanliang: 
https://github.com/ruanyf/weekly/issues/4458
[16]
 5个改善用户体验的 HTML 属性: 
https://www.htmhell.dev/adventcalendar/2023/4/
[17]
 现代 JavaScript 框架是如何工作的: 
https://nolanlawson.com/2023/12/02/lets-learn-how-modern-javascript-frameworks-work-by-building-one/
[18]
 Emoji 正则匹配: 
https://taxodium.ink/post/emoji-regexp/
[19]
 @Spike-Leung: 
https://github.com/ruanyf/weekly/issues/4452
[20]
 Linux 容器的底层技术: 
https://www.annwan.me/computers/what-why-how-containers/
[21]
 Steam Deck 的五个杀手级功能: 
https://www.jonashietala.se/blog/2023/10/24/the_killer_features_of_the_steam_deck/
[22]
 Veo: 
https://deepmind.google/technologies/veo/
[23]
 Jan: 
https://jan.ai/
[24]
 GitUI: 
https://github.com/extrawurst/gitui
[25]
 Outline: 
https://github.com/outline/outline
[26]
 Vnt: 
https://github.com/lbl8603/vnt
[27]
 @lbl8603: 
https://github.com/ruanyf/weekly/issues/4444
[28]
 DashPlayer: 
https://github.com/solidSpoon/DashPlayer
[29]
 @solidSpoon: 
https://github.com/ruanyf/weekly/issues/4454
[30]
 字幕工具箱: 
https://zm.i8k.tv/
[31]
 @mzhren: 
https://github.com/ruanyf/weekly/issues/4464
[32]
 封面图片生成器: 
https://spacexcode.com/coverview/
[33]
 @fantingsheng: 
https://github.com/ruanyf/weekly/issues/4439
[34]
 Logo 厨师: 
https://www.logocook.shop/
[35]
 @gdfsdjj145: 
https://github.com/ruanyf/weekly/issues/4455
[36]
 Easy Voice Toolkit: 
https://github.com/Spr-Aachen/Easy-Voice-Toolkit
[37]
 @Hao4Wang: 
https://github.com/ruanyf/weekly/issues/4471
[38]
 Segmentify: 
https://segmentify.app/zh
[39]
 @janily: 
https://github.com/ruanyf/weekly/issues/4472
[40]
 Web-Tracing: 
https://github.com/M-cheng-web/web-tracing
[41]
 @M-cheng-web: 
https://github.com/ruanyf/weekly/issues/4451
[42]
 Technitium DNS: 
https://technitium.com/dns/
[43]
 QR code designer: 
https://github.com/kochrt/qr-designer
[44]
 类似工具: 
http://jsfiddle.net/lachlan/r8qWV/
[45]
 BullMQ: 
https://github.com/taskforcesh/bullmq
[46]
 LaTeX 入门与进阶: 
https://latex.lierhua.top/zh/
[47]
 @immotal: 
https://github.com/ruanyf/weekly/issues/4436
[48]
 URLhaus 数据库: 
https://urlhaus.abuse.ch/browse/
[49]
 数据科学导论: 
https://rafalab.dfci.harvard.edu/dsbook-part-1/
[50]
 引脚定义: 
https://pinouts.org/
[51]
 愤怒的小鸟原型: 
https://mymodernmet.com/angry-bird-cardinal-photo/
[52]
 《异星工厂》的 3D 图像: 
https://alt-f4.blog/ALTF4-65/
[53]
 《异星工厂》: 
https://www.factorio.com/
[54]
 FUE5: 
https://github.com/FUE5BASE/FUE5
[55]
 11,000行的单个源码文件: 
https://austinhenley.com/blog/11000lines.html
[56]
 《访问日本的感想》: 
https://alexanderweichart.de/5_Archive/1.-Projects/Notes/Notes-on-Japan
[57]
 Hacker News 读者: 
https://news.ycombinator.com/item?id=40359459
[58]
 《为别人而写,但主要是为自己而写》: 
https://jack-vanlightly.com/blog/2022/1/25/write-for-others-but-mostly-for-yourself
[59]
 《遵循精益创业的方法》: 
https://www.june.so/blog/lean-startup-method-2024
[60]
 BusinessInsider.com: 
https://www.businessinsider.com/does-bottled-water-go-bad-yes-but-it-probably-wont-harm-you-2023-3
继续阅读
阅读原文