# 科技爱好者周刊：第 102 期

这里记录每周值得分享的科技内容，周五发布。

本杂志开源（GitHub: [ruanyf/weekly](https://github.com/ruanyf/weekly)），欢迎提交 issue，投稿或推荐你的项目。

周刊讨论区的帖子[《谁在招人？》](https://github.com/ruanyf/weekly/issues/1148)，提供大量就业信息，欢迎访问或发布工作/实习岗位。

## 封面

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040505.jpg)

3月26日，位于武汉的东风日产汽车厂复工，员工午餐保持距离。（法新社）

## 本周观点：工作热情从何而来？

BBC [报道](https://www.bbc.com/worklife/article/20200306-the-surprising-truth-about-finding-your-passion-at-work)，一位新加坡心理学家发明了《工作热情测量表》，可以测量一个人对自己的工作有多大的热情。

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040812.jpg)

工作热情很重要， **如果没有热情，干什么都不会出色。** 特朗普就说过：“没有热情，你就没有能量。没有能量，你什么都没有。”

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040813.jpg)

工作热情有很多来源：经济收入、职业前景、社会荣誉……据说，《工作热情测量表》可以测量这些诱因，对你的刺激有多大。

我有一个简单的方法，根本不需要什么心理测试，就能知道你最有工作热情的事情是什么。

**你只需要问自己一个问题：即使没有报酬，你也会去干的工作是什么？** 如果一种工作根本得不到报酬，你也愿意去做，这就是你最喜欢、最有热情的事情，千万要珍惜。

JK.罗琳写《哈利波特》第一卷时，根本不知道能否出版，她就是有写的冲动，每天去咖啡馆的角落写到天黑。理查德·斯托曼是 GCC 和 Emacs 的作者，写完以后就把代码开源了，所有人都可以免费用，尽管那时他还没地方住，只能睡在办公室里面。

他们的工作热情之高，已经不需要金钱激励了。我就是想去做，管它有没有报酬。 **我们要的就是这样一种工作状态，热情不是来自外部的激励，而是来自内在的自我实现的需要，这比外部激励强大得多。** 很多最优秀的作品，都是这样产生的。

如果你有这样的工作，得不到一分钱，依然有强烈的冲动去做。那么恭喜你，已经找到了自己最有工作热情的事情。你根本不需要《工作热情测量表》，那张表测量出来的热情值，跟我们内心的追求比起来，都不值一提。在自己热情最高的领域，你做出优秀成果的可能性，将远大于那些需要测量表的领域。

每个人心中都有一个火种，不要听任它熄灭，要找到它，点燃它。

## Webpack 免费视频

本周的课程资料是来自“开课吧”的《深入理解 Webpack》。

Webpack 这个软件库，几乎所有现在的大型前端项目都会用到，React 和 Vue 都需要它来打包模块。而且不止是前端项目，还有小程序、React Native、Electron 也用到它。

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040905.jpg)

我想大部分人都已经用过 Webpack，或者你的脚手架工具内置了。但是，很少有人愿意搞懂它，只是按照文档操作，毕竟它的配置比较多，也不好懂。这样的一个后果就是，遇到打包报错就束手无策了，不知如何排查。提高性能更是无从谈起。

下面的这份免费视频会先讲述一个 Webpack 的打包流程，以及 AST （抽象语法树）的基础知识，并分析模块之间依赖图谱，最后再带大家动手自己实现一个简易的 Webpack。

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040906.jpg)

> 以上视频资料由 **开课吧** 独家提供。
> 
> 开课吧是行业首家集齐百度、滴滴、阿里、微软等 IT 大厂资源的泛互联网人新职业教育品牌，将互联网技术领域的一线实战项目根植于教学内容之中，助力学员的能力提升，并无缝衔接大厂用人需求。

## 资讯

1、[远程毕业典礼](https://www.sohu.com/a/385137145_161795)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040803.jpg)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040804.jpg)

疫情期间，位于日本东京的创业者商学院在一家酒店，举行了远程毕业典礼。学生不到现场，而是在家操作机器人。机器人的“面孔”是平板电脑，通过摄像头，实时显示毕业生的面孔。

主持人宣布开始领取毕业证书，学生就远程操作机器人朝着主席台“走去”，从校长大前研一手里拿到毕业证书，工作人员鼓掌说：“恭喜！”。校长将文凭放在机器人手中，然后合影留念。

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040801.jpg)

2、[鲸鲨的确切年龄](https://www.bbc.com/news/science-environment-52155008)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040602.jpg)

鲸鲨是地球上最大的鲨鱼，长约18m，平均重约20吨，身上有易于识别的白色斑点。澳大利亚科学家最近找到了一种方法，测量鲸鲨的确切年龄。

20世纪40年代后期开始，美国、苏联等国进行了多次原子弹测试。这些核爆炸的一个副作用，就是使得大气层中的碳-14同位素含量翻倍了。地球上的所有生物都通过空气，吸收了这种碳-14。由于存在半衰期，这种同位素会随着时间而减少，因此生物年龄越大，体内能够找到的碳-14就越少。

科学家通过分析死去的鲸鲨椎骨标本，发现这种动物的寿命非常长，可能高达100-150岁。

3、[寻找 COBOL 程序员](https://www.northjersey.com/story/news/new-jersey/2020/04/04/coronavirus-nj-40-year-old-system-adds-delay-unemployment-checks/2944985001/)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040514.jpg)

纽约州州长在电视上，公开征集 COBOL 程序员。该州的失业保险系统，就是使用 COBOL 开发的，已经超过40年的历史。最近，美国失业人数激增（超过700万人），该系统不堪重负，反应速度极慢，每个操作要等很长时间，让人担心它随时会崩溃。

COBOL 语言诞生于1970年代，当时有很多金融机构和政府部门使用这种语言，开发了很多关键系统。后来，COBOL 逐渐没落，懂得它的程序员越来越少。但是基于它的系统，由于风险和成本的关系，一直运行至今，始终没有升级。

4、[人类设计的活体生命](https://www.nytimes.com/2020/04/03/science/xenobots-robots-frogs-xenopus.html)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040507.jpg)

美国科学家从青蛙胚胎（上图）里面提取细胞，然后根据计算机模型得到的结果，将这些细胞组合在一起，创造出世界第一种“可编程的生物”（下图）。

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040508.jpg)

这些生命形式没有性器官，也没有胃，脑或神经系统，只是一个由大约2000个活着的细胞组成的生命体。科学家将它们聚合在一起，成为活的生物。根据非洲爪蛙的名字 Xenopus laevis，它们被命名为 Xenobots，即青蛙细胞机器人。这些生命体以蛋黄为食，只能存活约一周。

5、[隔离的贫富分化](https://www.nytimes.com/interactive/2020/04/03/us/coronavirus-stay-home-rich-poor.html)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040506.jpg)

《纽约时报》分析了智能手机的位置数据， 发现美国收入最高的地区和贫困地区，最近都出现了人们外出活动的下降。但是，高收入地区的活动减少出现得更早，并且程度更深。也就是说，穷人更少待在家里，外出更多。

上图是活动下降的曲线图，蓝色是富裕地区，黄色是贫困地区。可以看到，蓝色比黄色早三天进入隔离，并且隔离程度更深。

6、**一句话消息**

> - [意大利](https://swprs.org/a-swiss-doctor-on-covid-19/)的 COVID-19 死亡率非常高，但是全体人口的死亡率（包括各种死因）仍然很正常，甚至低于历年的平均水平。

> - [美国宇航局](https://twitter.com/DMOberhaus/status/1247607588319100936)宣布，正在研究在月球背面的陨石坑，建设一个射电望远镜的可能性。由于陨石坑都非常巨大，这样的望远镜直径可能会超过5公里。

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040808.jpg)

> - [深圳一家创业公司](https://spectrum.ieee.org/automaton/transportation/self-driving/robot-vehicles-make-contactless-deliveries-amid-coronavirus-quarantine)开始使用无人车，在园区内进行送货和喷洒消毒液。该车使用激光雷达进行道路识别，如果遇到无法判断的情况，就会传回控制中心，接受远程遥控。

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040802.jpg)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040903.jpg)

> - [Cloudflare](https://blog.cloudflare.com/moving-from-recaptcha-to-hcaptcha/) 宣布。由于谷歌的 reCAPTCHA 服务开始收费，经过评估会切换到 hCAPTCHA 。令人不解的是，新的测试还是图片识别挑战，没有改成 Geetest 那种滑块挑战。我觉得，滑块明明对用户更友好。

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040809.jpg)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040810.jpg)

> - [Facebook](https://www.nytimes.com/2020/01/29/technology/facebook-privacy-lawsuit-earnings.html) 同意支付5.5亿美元，赔偿伊利诺伊州用户。原因是 Facebook 未经该州数百万用户的许可，从他们的照片中收集面部数据。

> - [美国餐饮业](https://news.ycombinator.com/item?id=22152680)2019年的总收入是8630亿美元，相比之下，全球软件业的总收入是4670亿美元。

## 文章

1、[我如何破解比特币钱包的密码？](https://reperiendi.wordpress.com/2020/04/03/how-i-recovered-over-300k-of-bitcoin/)（英文）

有人多年前购买了比特币，但是忘记了钱包的密码。理论上，这些比特币无法找回。他不甘心，找到了一个密码学家，愿意支付10万美元，破解钱包的密码。文章有一点难度，但是值得一读。

2、[以逗号开头的自定义命令](https://rhodesmill.org/brandon/2009/commands-with-comma/)（英文）

作者提出，Linux 系统的自定义命令都以逗号开头。这样查询会非常方便，先输入逗号，然后按下 Tab 键，所有自定义命令就会显示。

3、[Netflix 如何变成一家流媒体公司](https://www.fastcompany.com/3004709/inside-netflixs-project-griffin-forgotten-history-roku-under-reed-hastings)（英文）

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040904.jpg)

Netflix 原来是一家 DVD 碟片的租借公司，用户在网站下单后，就把 DVD 寄到用户家里（上图）。本文介绍他们是怎么变成一家视频点播的流媒体公司，非常精彩的故事。

4、[如何使用 Wireguard？](https://miguelmota.com/blog/getting-started-with-wireguard/)（英文）

Wireguard 最近进入了 Linux 内核，本文详细介绍它的安装使用步骤。

5、[CLUI：命令行 UI](https://blog.repl.it/clui)

![](https://cdn.beekka.com/blogimg/asset/202003/bg2020030608.jpg)

![](https://cdn.beekka.com/blogimg/asset/202003/bg2020030609.jpg)

命令行界面CLI对新手不友好，必须看手册才会用。图形界面GUI不适合功能多的软件，而且效率低。

有人就提出了一种将两者优点结合的界面 CLUI（命令行 UI）：命令行下显示图形提示框。

6、[AWS 如何添加用户](https://ncona.com/2020/03/introduction-to-aws-cli/)（英文）

这篇文章教你入门亚马逊网络服务 AWS，最基本的一步，新增一个管理员用户。这里还有一篇[类似的文章](https://devops.novalagung.com/en/aws-create-individual-iam-user.html)，介绍如何使用 IAM 服务新增 AWS 用户。

7、[如何对 Array.forEach 使用 async 函数](https://advancedweb.hu/how-to-use-async-functions-with-array-foreach-in-javascript/)（英文）

JavaScript 语言中，如果要通过 Array.forEach() 方法，对数组的每个成员进行异步操作，使用 async 函数可能不会达到你的目的。本文介绍了如何使用 Array.reduce() 方法保证对每个成员进行继发操作。

8、[Rome，一个新的 JavaScript 工具库](https://jasonformat.com/rome-javascript-toolchain/)（英文）

Babel 创始人的新作品，把 JS 的主要工具都包括在一个库里。不需要 webpack、eslint、prettier、babel ，它都提供了。

它的核心思想是，把基于AST（抽象语法树）的所有功能都统一起来，不要每个工具自己做一次AST解析。

## 工具

1、[Messenger 桌面版](https://www.microsoft.com/en-us/p/messenger/9wzdncrf0083#activetab=pivot:overviewtab)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040302.jpg)

脸书宣布，为了适应激增的通话量，通信软件 Messenger 推出桌面版，提供免费的无限量多人视频聊天。上面是 Windows 版的下载链接，Mac 版下载在[这里](https://apps.apple.com/us/app/messenger/id1480068668)。

2、[Slient Down](https://silentdown.com/)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040501.jpg)

一个监控服务器是否在线的服务，非付费用户可以监控5台服务器，每5分钟检查一次。如果宕机，就会通过邮件或其他途径通知用户。

3、[Desktop Info](https://www.glenn.delahoy.com/desktopinfo/)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040502.jpg)

一个 Windows 小工具，可以在桌面显示系统信息，内容可以定制。

4、[lossless-cut](https://github.com/mifi/lossless-cut)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040503.jpg)

一个开源项目，为视频工具库 ffmpeg 开发一个图形界面 GUI。

5、[DeepL](https://www.deepl.com/translator)

一家创业公司推出的机器翻译引擎，据称比谷歌翻译得更好。（@[ketra21](https://github.com/ruanyf/weekly/issues/1169) 投稿）

6、[plausible](https://github.com/plausible-insights/plausible)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040901.jpg)

一个 Google Analytics 的开源替代品，可以自己架设网站访问统计。特点是轻量级，结构简单

7、[apioak](https://github.com/apioak/apioak/blob/master/README_CN.md)

一个开源的国产 API 网关，可以作为前后端之间的映射层。基于 OpenResty，性能好，功能强。（@[shuaijinchao](https://github.com/ruanyf/weekly/issues/1173) 投稿）

8、[like-mysql](https://github.com/LuKks/like-mysql)

一个 Node.js 库，MySQL 数据库的 ORM 映射层，使用很简便，但是功能也比较少。

9、[esbuild](https://github.com/evanw/esbuild/)

一个用 Go 语言写的 JS 脚本打包工具，根据作者提供的数据，打包时间仅仅是 Webpack 的几十分之一。

10、[plink-plonk.js](https://gist.github.com/tomhicks/6cb5e827723c4eaef638bf9f7686d2d8)

作者提供一段 JS 代码，只要插在网页里面，可以让 DOM 变动发出声音。如果 DOM 有改变，你就会听到声音。

## 资源

1、[Pluralsight](https://www.pluralsight.com/)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040301.jpg)

Pluralsight 宣布四月份对用户免费，网站上面 7000 多门视频课都可以免费听。它家的 C# 课程很有名，最近 Python、JS、Java、Devops 课程也添加了不少。

2、[3D 打印口罩](https://www.makermask.com/)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040510.jpg)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040511.jpg)

该网站提供一个开源的口罩方案，本质是一个带在脸上的空气过滤器，可以 3D 打印。过滤层采用空气过滤器的 HEPA 材料。

3、[哺乳动物树](http://vertlife.org/data/mammals/)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040601.jpg)

一个数据可视化作品，根据5,911种动物的种属，将它们画成一棵倒金字塔型的树，可以连续放大查看。

4、[简单粗暴 TensorFlow 2](https://tf.wiki/)

这是一本简明的 TensorFlow 2 入门指导手册的中文版翻译，力图让具备一定机器学习及 Python 基础的开发者们快速上手 TensorFlow 2。（@[ketra21](https://github.com/ruanyf/weekly/issues/1164) 投稿）

5、[大圣盘](https://www.dashengpan.com/)

一个百度网盘资源搜索引擎，由网络爬虫自动抓取。（@[ketra21](https://github.com/ruanyf/weekly/issues/1174) 投稿）

## 图片

1、[世界最陡峭的街道](https://en.wikipedia.org/wiki/Baldwin_Street)

2019年以前，新西兰但尼丁市的鲍德温街，是世界最陡的住宅区街道。它长350米，坡度为35度。

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040603.jpg)

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040604.jpg)

2019年，英国威尔士有一条新的街道超过了它，坡度达到37.5度。 但尼丁市长称，会考虑将鲍德温街标牌文字，从世界上最陡峭的街道改为南半球最陡峭的街道。

2、[什么是重力波？](https://www.facebook.com/natgeomedia/posts/1571121353051484)

爱因斯坦在1916年提出“重力波”，在一百年后终于被侦测到。

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040805.jpg)

重力波的简单想像方式是，你有一张拉平的床单，床单上画着标准的方型格线。接着想像你放了一个重物在床单上，例如保龄球。保龄球的质量造成床单凹陷。

当物体在床单上移动（想像一颗弹珠从一侧滚到另一侧），如果物体太靠近保龄球就会偏移。想像拿着保龄球在床单上上下移动，如果这样做的话，不难看见床单上往外传播的涟漪，这就是重力波。重力波的涟漪造成时间和空间扭曲。

## 文摘

1、[我们不是一家人](https://tw.appledaily.com/property/20200223/JWWUCXVVLE5XNSUJE7A7LHBHMM/)

Netflix 公司的 CEO 海斯汀（Reed Hastings）2009年曾经发表过一份公开信，对于Netflix 强悍的工作文化有很多惊世骇俗的语句。其中最有名的一句话就是“我们不是一家人”（We Are Not Family）。

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040504.jpg)

根据 Glassdoor 统计，Netflix 资深工程师薪资平均比 Google 高60%。如果上Teamblind 搜寻一下，你可以看到 Netflix 有人年薪高达40万美元，甚至有50万的。年薪40万在美国，是跟总统一样的薪水。

天下没有白高的薪水。Netflix 只要成功的人，而且要年复一年永远不停成功的人。Netflix雇人的价值观是：一个A咖比两个B咖便宜，所以他们只要A咖中的A咖。

高报酬的背后就是高压。这家公司培养出一种非常特殊的雇佣兵文化，他们不要忠诚，只要能够作战的英雄。

海斯汀开宗明义地说，家人有无限的爱与包容，家人必须一再容忍错误与失败。Netflix 不会把你当家人。这里的团队只有一个任务，那就是把每个人都推往不可能的极限。这里没有包容，做不到就会被取代。

• 我们不提供寿司、葡萄酒。你是来作战，不是来开趴的。  
• 我们不看工作多努力或工时多长，我们只看战果。  
• 我们只要A咖，给的也是A咖的回报。  
• 如果你是B咖，即使是A咖的努力，我们还是会请你离开。  
• 我们不要忠诚，只要成功。  
• 如果你只想找一份安稳的工作，那请你现在就离开。  
• 我们要的是自发、自律的战将。我们不教你怎么作战，也没时间教你如何生存。  
• 公司没有流程和法则。我们抛弃所有的繁文缛节。繁文缛节只适合管理笨蛋用。  
• 我们不追踪工时，只追踪进度。  
• 出差、餐饮、及公务报销都不需要收据。要报多少自行决定。  
• 我们给你全部的自由，但你也必须背负全部的责任。  
• 我们付你无与伦比的报酬，不管盈亏都一样。报酬是看战果，不是看年资。  
• 如果你打算留下来，那只是为了成就和金钱，不需要其他任何理由。  
• 我们只告诉你目标，不会告诉你如何达成。  
• 我们只要超级英雄。

2、[美国的石油储备](https://science.howstuffworks.com/environmental/energy/strategic-petroleum-reserve1.htm)

自1977年以来，美国能源部在路易斯安那州和德克萨斯州沿海地区，收购了62个巨大的盐洞，用于储存原油。

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040806.jpg)

这些盐洞是在地下的盐层中钻井，然后注入淡水来溶解盐而形成的。矿业公司将溶解的盐抽回地面，此过程称为溶液开采，可产生尺寸非常精确的洞穴。平均每个洞穴可以放置1000万桶石油。

这些地下洞穴用来储存石油，实际上是非常安全的。一方面，由于它们位于600米～1公里深的地下，那里极高的压力可防止形成裂缝，所以不会出现泄漏。此外，每个洞穴顶部和底部之间的自然温差会促使原油循环流动，从而保持其品质。

![](https://cdn.beekka.com/blogimg/asset/202004/bg2020040807.jpg)

如果要从一个洞穴中回收原油，只需泵水到它的底部。由于油会漂浮在水上，因此原油就会上升到地表。而且，由于这些洞穴靠近墨西哥湾，有现存的石油运输管道，也方便装入船中运走。

目前，整个美国石油储备为7.27亿桶，按照2070万桶的能源需求，可以满足35天。如果储存增长达到10亿桶，将延长至48天。

## 言论与数字

1、

我会购买华为作为下一部手机，以避免使用谷歌的服务。

-- [HN 读者](https://news.ycombinator.com/item?id=22778316)

2、

对我来说，英语是比 C 或 Java 更难写的语言。

-- [《解释器开发》的写作感受](http://journal.stuffwithstuff.com/2020/04/05/crafting-crafting-interpreters/)

3、

《牛津英语词典》从“A”编到“ant”花了10年，剩下的部分又花了60年才编完。

-- [《牛津英语词典如何诞生》](https://www.abc.net.au/news/2020-04-09/history-of-the-oxford-english-dictionary/12010628)

4、

病毒的全球大流行，证明了国家之间的相互依存关系，希望这件事不会造成这种关系的终结。

-- [《冠状病毒将留给我们什么》](https://medium.com/@farainechikwiranechz/what-the-coronavirus-will-leave-on-us-8ea4d540005f)

5、

我通过删除 WordPress 的 Mailchimp 插件中 20 KB 的 JavaScript 依赖关系，每月估计减少了59,000 公斤的二氧化碳排放量。

-- [《互联网的二氧化碳排放量》](https://dannyvankooten.com/website-carbon-emissions/)

6、

我辍学当程序员的第一年，收入就比父亲职业生涯最高峰时只少了4,000美元。我的父母养育七个孩子的年收入，比我职业生涯初期的收入少，想到这一点我就很不舒服。

这对我来说是重要的时刻，我意识到金钱提供了许多人可能从未经历过的机会：国际旅行、假期、以及我们可能不需要但肯定想要的其他东西。

-- [《足够金钱的好处》](https://dragonquest64.blogspot.com/2020/02/having-fu-career.html)

## 回顾

去年的本周：[《周刊第 51 期》](http://www.ruanyifeng.com/blog/2019/04/weekly-issue-51.html)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019041201.jpg)

## 订阅

这个周刊每周五发布，同步更新在[阮一峰的网络日志](http://www.ruanyifeng.com/blog)和[微信公众号](http://weixin.sogou.com/weixin?query=%E9%98%AE%E4%B8%80%E5%B3%B0%E7%9A%84%E7%BD%91%E7%BB%9C%E6%97%A5%E5%BF%97)。

微信搜索“阮一峰的网络日志”或者扫描二维码，即可订阅。

![](http://www.ruanyifeng.com/blogimg/asset/2018/bg2018042311.jpg)

（完）
