# 科技爱好者周刊（第 156 期）：显卡缺货与异业竞争

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

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

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

## 封面图

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042313.jpg)

进入四月以后，印度的新冠肺炎患者激增，全国氧气的库存迅速耗尽。政府不得不用气罐车，向重症地区运送液氧。有的地区没有高等级公路，只能将气罐车装在火车上运过去。（[via](https://scroll.in/article/992928/how-grave-is-indias-oxygen-emergency-worse-than-the-government-admits)）

## 本周话题：显卡缺货与异业竞争

最近，我想再配一台电脑，结果发现买不到显卡。加密货币的价格暴涨，导致显卡早就被抢购一空。

家用计算机的显卡挖矿，六个月据说就可以回本，以后就都是利润了。如果多块显卡组成矿机，利润相当可观。所以，显卡都被用来挖矿了，市场已经没有现货了，只能买二手显卡。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042808.jpg)

幸好，我去年买过一块显卡，还能凑合用。看了一下二手市场的行情，不由感慨地发了一条推特：

> "去年，我花2000元买过一块显卡，现在用了一年再卖掉，可以卖到5000元。"

网友在下面回帖，他一年前400元买的显卡，今年2000元卖掉了。就是缺货到这种程度。

我不由感叹，矿工高兴了，DIY 市场却遭殃了。如果你只是一个普通的电脑爱好者，可能根本不关心比特币，对挖矿没有任何兴趣，突然之间，你莫名其妙就受到了波及，想要组装一台理想配置的电脑，用来玩游戏或处理大数据，就这样组不成了，真是飞来横祸。

**一个其它领域的、跟你原本不相干的事情，突然就对你产生了重大影响。这在经济学上，叫做“异业竞争”。** 某个行业的变化产生了溢出效应，波及到了另一个行业。这样的事情，最近好像越来越多了。

我举几个例子。智能手机的出现，使得电信公司很受伤，因为人们都用聊天软件联系，传统电话和短信的使用量急剧下降。再比如，外卖的兴起，影响了方便面的销售。

本周我还看到一条[新闻](https://finance.sina.com.cn/tech/2021-04-23/doc-ikmxzfmk8574665.shtml)，上海机场的董事长说，海南岛的免税政策对机场影响很大。以前，人们购买免税商品，首先想到的是机场，但是现在不用出国、在海南岛也能购买免税商品，下一步甚至北京上海也要开市内免税商店，这对机场的收入有很大影响。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042809.jpg)

**总之，现在的世界高度关联，异业竞争比以前多得多、快得多。** 不仅本行业的变化会影响你，世界上不知哪一个角落发生的事情，也会从天而降影响你。

这就是互联网时代，每个人的生活变得不确定，随时都会被意想不到的方式影响。有些是好的影响，有些是坏的影响，也无从准备或预防。只能尽量壮大自己，接受变化。

## Vue3 原理剖析

本周的课程资料是一个前端进阶课程，专门为想提升自己 Vue.js 水平的同学准备的。

大家都知道，Vue.js 是国内使用最广泛的前端框架之一，3.0 版出来以后，各方面都有很大改进，配套工具也在不断完善，目前来看，还处在上升期。新项目的加入，加上老项目的升级，市场份额有进一步上升的趋势。

根据一些最近找工作的同学反馈，面试当中 Vue 相关问题，几乎每次都有，尤其是大厂的面试。大家普遍比较关心，怎么准备 Vue 的面试。

老实说，一些具体的开发问题，跟项目经验相关，除了多做项目，没有太好的准备方法。比较可行的面试准备，还是多投一点时间在 Vue 的原理上面，搞懂 API 想要解决的问题，以及设计思路。打好了基础，不管是哪一类问题，至少不会太失分，也有利于长远发展。

本周的课程就是“开课吧”提供的 **《Vue3 原理解析》**，由 Vue3 源码贡献者崔效瑞老师主讲，带大家自己实现一个迷你版本的 Vue.js，让你站着 Vue 设计者的角度思考问题，精准找到学习关键点，快速顺畅地理解原理。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042901.jpg)

课程的直播时间是 **周五（4月30日）晚上 19:50**。如果你想长假里面，静下心来，学一点东西，这是一个非常合适的学习内容。听完课以后，正好利用假期，自己动手实践一下。

报名的同学还可领取《原理讲解+项目实战：带你高效掌握ES6》资料包，里面不仅包含 ES6 核心新特性的讲解，还有基于 ES6 class 的贪吃蛇游戏实现，通过实例教你如何在实际项目中拆分类，帮你提升面向对象的编程思想！

微信扫描下面二维码，就可以免费报名参加。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042902.jpg)

完成课程以后，还可以领取另外两份开课吧精心制作的学习资料：《Vue3 & React17 进阶知识地图》和《Vue 面试题高薪问答攻略》。

## 科技动态

1、[火星制氧实验](https://new.qq.com/rain/a/20210422A02OXP00)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042304.jpg)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042305.jpg)

美国宣布，毅力号火星车成功完成制氧实验，在火星上制造了10克氧气，耗时一个小时，可以供一个宇航员呼吸10分钟。上图为探测车里面的制氧机。这个实验为人类探索火星，铺平了基础。

氧气对于宇宙飞行非常重要，不仅用于呼吸，还用于燃料的助燃。发射一个四名宇航员的火星飞船，需要7吨燃料和25吨氧气。人类要想火星旅行，必须解决氧气供应。火星大气包含95%的二氧化碳，本次实验使用太阳能，对二氧化碳进行电解，从中获得氧气和一氧化碳。

2、[美国制造的代价](https://puri.sm/posts/librem-5-and-librem-5-usa-what-are-the-differences/)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041711.jpg)

Purism 是一家美国的 Linux 开源硬件厂商，他们的最新 Linux 手机有两个型号：Librem 5 和 Librem 5 USA。规格完全相同，唯一区别是，前者的主要零件在中国制造，后者完全在美国制造。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041712.jpg)

如果你喜欢“美国制造”，就要承担更高的价格，猜猜看贵多少？ 

Librem 5：799 美元，Librem 5 USA：1999美元。

3、[云洞图书馆](https://mp.weixin.qq.com/s/Gu0xMcm6pNhc7ma56h8gHg?)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041715.jpg)

北京 MAD 建筑事务所设计的海口市云洞图书馆4月12日正式开馆，每天接受400人预约入馆。这是海口市规划的16座“海边的驿站”之中第一座完工的。这座一体成型的白色混凝土建筑，被英国《泰晤士报》称为“2021年最期待建成的建筑作品”。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041814.jpg)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041815.jpg)

它的南侧是图书阅览室，北侧是公共驿站，提供咖啡厅、卫生间、休息区等服务。设计师的想法是，这是一座位于陆地与海洋之间的建筑，通过它消融海与地之间的边界。

建筑物充满各种大小不一的洞，游客可以通过这些洞看天望海，同时也借此实现自然采光和自然通风。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041816.jpg)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041817.jpg)

整个建筑是数字建模，先搭建一个中空的骨架，然后混凝土一体浇灌，局部采用 3D 打印。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041818.jpg)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041819.jpg)

4、**一句话消息**

[“新视野号”探测飞船](http://pluto.jhuapl.edu/News-Center/News-Article.php?page=20210415)（New Horizons）在发射15年之后，今年四月到达了距离太阳50个天文单位的地方（太阳到地球的距离为1个天文单位）。它是第五个飞出太阳系、进入柯伊伯带（kuiper belt）的飞行器。也就是说，以目前的科技，飞出太阳系需要15年。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041701.jpg)

[英国](https://www.organdonation.nhs.uk/get-involved/news/organ-donation-law-change-due-to-come-into-effect-in-england-on-20th-may/)通过一项法律，所有成年人死亡后默认同意捐献自己的器官，除非签署过不愿捐献的声明。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042405.jpg)

[美国国防部](https://www.c4isrnet.com/battlefield-tech/space/2021/04/13/heres-whos-designing-a-nuclear-powered-space-vehicle-for-darpa/)选择了三家公司，开始设计核动力推进器，为太空作战提供快速机动的能源。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041417.jpg)

[温州市交通执法大队](https://www.thepaper.cn/newsDetail_forward_12072623)发现，执法车出动后，总是抓不到违法运载的货车，对方似乎能够精准地避开执法车的巡查线路和时段。 检查后发现，车辆被人安装了烟盒大小的 GPS 跟踪器，通过磁铁吸附在车底。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041112.jpg)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041113.jpg)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041114.jpg)

[一家创业公司](https://www.qonos.ae/)推出了数字画框。挂在墙上，它会自动将精选的艺术品推送到显示屏，定时更新。

![](https://cdn.beekka.com/blogimg/asset/202103/bg2021032601.jpg)

[Facebook](https://arstechnica.com/gadgets/2021/03/facebook-finally-explains-its-mysterious-new-wrist-wearable/) 正在研发一种腕带，可以将运动神经电信号转换为数字信号，从而感知手和手指的位置和活动，实现新型的人机交互。

![](https://cdn.beekka.com/blogimg/asset/202103/bg2021032101.jpg)

## 文章

1、[为什么游戏里做一扇门这么难？](https://www.yystv.cn/p/7800)（中文）

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041418.jpg)

很多游戏开发者认为，实现一扇门是最让人痛恨的事情，各种各样的 bug 因此产生。“门不仅要能打开，还要能关上，有时还需要开锁或者被撞开，打开之后还得能来回摇摆。”

2、[Z 字形斑马线](https://mp.weixin.qq.com/s/xZN419WSw3zrCYjyqw2S0g)（中文）

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041413.jpg)

国内多地启用 Z 字形斑马线，让行人过马路的路线从直线变为“Z”字型，目的是减缓行人速度，拉长过马路的时间，让他更注意两边的车况，防止交通事故。这种设计到底有没有用，是有争论的。

3、[云巴会在国内流行吗？](https://finance.sina.com.cn/tech/2021-04-16/doc-ikmxzfmk7228054.shtml)（中文）

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041820.jpg)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041821.jpg)

4月16日，国内首条“云巴”在重庆璧山正式通车，这是比亚迪公司主导的一个“小运量的高架有轨电车系统”。本文介绍这种交通系统的背景和前景。

4、[视频分辨率与码率的关系](https://support.shangzhibo.tv/hc/kb/article/1028655/)（中文）

视频文件的清晰度主要由码率、分辨率、帧数等指标决定。本文介绍这几个指标的概念，以及它们之间的关系。

5、[消失的除法指令](https://cjting.me/the-missing-div-instruction-part1/)（中文）

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042612.jpg)

学习汇编的时候，观察到一个现象，C 语言的除法操作，编译得到的汇编代码是一条乘法指令。这是为什么？（[@cj1128](https://github.com/ruanyf/weekly/issues/1738) 投稿）

6、[Serverless 数据库比较](https://news-app-two-omega.vercel.app/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041412.jpg)

这篇文章比较了三个 Serverless 云服务商的数据库服务（DynamoDB、 FaunaDB 和 Upstash），看看它们的性能如何。

7、[如何在命令行操作 GitHub Actions？](https://github.blog/2021-04-15-work-with-github-actions-in-your-terminal-with-github-cli/)（英文）

GitHub 的命令行工具现在支持 GitHub Actions 了，用起来非常方便，这篇是官方的介绍文章。

8、[我的复古网站](https://ash.ms/2019-10-02/retro-website-launch/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041808.jpg)

作者将他的个人网站，做成 WIndows 95 的样子，把个人博客放在上面，很有意思。本文介绍他是怎么做的。

9、[从头开始编写 RPC](https://alexanderell.is/posts/rpc-from-scratch/)（英文）

RPC 指的是远程函数调用，是服务器通信的常见方法。本文介绍 RPC 的概念，然后用 C 语言演示一个简单的例子。

## 工具

1、[MetricsGraphics.js](https://github.com/metricsgraphics/metrics-graphics)

![](https://cdn.beekka.com/blogimg/asset/202103/bg2021031802.jpg)

一个基于 D3 的图表库，用来处理时间序列数据。特点是 API 简洁易用，生成的图表清晰漂亮。

2、[ClearURLs](https://github.com/ClearURLs/Addon)

一个浏览器插件，自动删除 URL 里面的访问者追踪参数。

3、[regexploit](https://github.com/doyensec/regexploit)

某些正则表达式有性能漏洞，可能会引发 DDOS 攻击。这个工具可以找出有漏洞的正则表达式，参见[教程](https://blog.doyensec.com/2021/03/11/regexploit.html)。

4、[NPlayer](https://nplayer.js.org/)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042511.jpg)

一个支持弹幕的网页视频播放器。（[@woopen](https://github.com/ruanyf/weekly/issues/1734) 投稿）

5、[JS image carver](https://trekhleb.dev/js-image-carver/)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041704.jpg)

一个采用接缝裁剪（seam carving）算法的在线工具，可以任意改变图片的高度和宽度，而不会扭曲图像。

它的原理是找出那些对图片主要内容贡献最少的像素，将它们删除，不断重复这个过程，直到达到指定的高度和宽度，详见[这篇教程](https://trekhleb.dev/blog/2021/content-aware-image-resizing-in-javascript/)。

6、[LuckDraw](https://100px.net/)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042506.jpg)

一个大转盘/ 九宫格的页面抽奖组件，多端适配，有 JS / React / Vue / 小程序的等版本。（[@buuing](https://github.com/ruanyf/weekly/issues/1724) 投稿）

7、[GoGoCode](https://github.com/thx/gogocode)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042509.jpg)

一个 JavaScript 代码的 AST 抽象语法树的处理工具，便于方便地转换代码。（[@kuangyanit](https://github.com/ruanyf/weekly/issues/1730) 投稿）

8、[Storyteller](https://storyteller.webzard.io/)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042508.jpg)

如何写软件教程，是一个令人头痛的问题。Storyteller 是一个在线工具，提供一个教程编辑器，以无代码的方式制作交互式教程。（[@netweng](https://github.com/ruanyf/weekly/issues/1728) 投稿）

9、[Varlet](https://github.com/haoziqaq/varlet)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042507.jpg)

Vue3 的 Material Design 移动页面组件库。（[@BeADre](https://github.com/ruanyf/weekly/issues/1727) 投稿）

10、[chore-cli](https://github.com/iwfan/chore-cli)

一个 TypeScript 项目的脚手架工具。（[@iwfan](https://github.com/ruanyf/weekly/issues/1737) 投稿）

## 资源

1、[lofi.cafe](https://lofi.cafe/)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041416.jpg)

这个网站是一个制作精良的在线电台，播放工作学习时放松精神的背景音乐，可以根据音乐风格切换房间。

2、[学习 iOS 开发指南（2021版）](https://matteomanferdini.com/become-an-ios-developer/)

这篇英语长文向初学者介绍如何学习 iOS 开发，大家关心的各种问题都能在里面找到解答，比如应该学习 Object-C 语言还是 Swift 语言。

3、[山内溥家族基金会](https://y-n10.com/)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041415.jpg)

任天堂第三代传人山内溥有一个家族基金会，基金会官网非常有创意，很有任天堂游戏的感觉，我从没见过这样的网站，值得参观。

4、[免费的 Python 书籍](https://github.com/pamoroso/free-python-books)

这个仓库收集网上的 Python 免费书籍（英文）。

5、[HelloZooKeeper](https://github.com/HelloGitHub-Team/HelloZooKeeper)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042510.jpg)

ZooKeeper 的中文教程，从最基础的安装使用到背后原理和源码，使用有趣诙谐的文字讲解。ZooKeeper 是大型分布式计算的配置服务工具。（[@521xueweihan](https://github.com/ruanyf/weekly/issues/1733) 投稿）

## 图片

1、[石头宠物](https://en.wikipedia.org/wiki/Pet_Rock)

1975年，一个美国人加里·达尔（Gary Ross Dahl）在酒吧里，听到了朋友们抱怨养宠物很麻烦。他想到，为什么石头不能作为“宠物”呢？一块石头，不用喂食，不用遛，不用洗澡，也不会死或生病，是完美的宠物。

他很认真地对待这个想法，开始动手设计。石头是来自墨西哥海滩的光滑小卵石，每块仅花费一美分。 它们像活宠物一样放在定制的纸板箱中出售，带有稻草和呼吸孔。他还花时间写了一本石头宠物的使用说明书。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041411.jpg)

石头宠物于1975年圣诞节前正式上市，引发了公众的好奇，销售非常好。但是，圣诞节过后，销量就开始下降，1976年2月价格打折。最终，达尔以每只4美元的价格，售出了超过100万只石头宠物，成为百万富翁。

2、[三轴陀飞轮](https://www.myminifactory.com/crowdfunding/tourbillon-mechanica-tri-axial-crowdfunding-250)

陀飞轮是豪华手表才有的调速装置，主要用于抵消地心引力对机芯运作造成的误差。三轴陀飞轮则是陀飞轮的最高境界，整个装置沿三个轴同时旋转。

国外网友使用廉价的 3D 打印，制作出简易的三轴陀飞轮模型，目前正在众筹。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041501.jpg)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041502.jpg)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041503.jpg)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041504.jpg)

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021041505.gif)

## 文摘

1、[代码的马斯洛金字塔](http://www.dein.fr/2015-02-18-maslows-pyramid-of-code-review.html)

马斯洛金字塔是美国心理学家马斯洛提出的一个心理学模型，认为人类的心理需求从下往上分为5个层次，一旦实现了下层的需求，就会追求上一层的需求。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021042807.jpg)

这五个层次依次是：生理需求、安全需求、社交需求、尊严需求、自我实现。

代码质量也可以用金字塔模型表示，从下往上有五个层次。

![](https://cdn.beekka.com/blogimg/asset/202104/bg2021040705.jpg)

**（1）第一层：正确**（Correct）

代码是否执行预期的工作？是否考虑了边缘情况？是否经过充分测试？是否有可维护性？是否有可接受的性能？

**（2）第二层：安全**（Secure）

代码是否存在漏洞？数据是否安全存储？个人识别信息（PII）是否得到正确处理？是否对用户的输入进行了全面的验证？

**（3）第三层：可读**（Readable）

代码是否易于阅读和理解？测试足够简洁吗？变量、函数、类的名称是否适当？使用领域模型是否可以清晰地映射现实世界，以减少认知负担？是否使用一致的编码风格约定？

**（4）第四层：优雅**（Elegant）

代码是否利用了众所周知的编程模式？能否更简单简洁地实现所需的功能？你会为编写这些代码感到兴奋吗？你为这些代码感到骄傲吗？

**（5）第五层：利他主义**（Altruist）

别人能否从这些代码学到东西？这些代码是否会激励其他工程师进行改进？它是否会让世界变成一个更好的地方？

## 言论

1、

我最近禁止了安卓手机的所有动画，手机的零延迟让我震惊，仿佛一瞬间它就变快了。

-- [Hacker News 读者](https://news.ycombinator.com/item?id=26846740)

2、

旅行不是为了看到不同的事物，而是为了学会不同地看待事物。

（You don't travel to see different things, you travel to see things differently.）

-- [Ben Davenpor](https://m.facebook.com/HanksWorldWide/photos/pb.160385744474061.-2207520000.1564413746./238546423324659/)，风险投资家

3、

在泰国工作的人，都说那是一个很糟糕的地方；在泰国休假的人，都说那个地方好极了。

-- 网友

4、

面向对象编程的哲学思想是，通过对语言建模来适应问题，而不是对问题建模来适应语言。

-- 《C prime plus》教材

5、

入职以后，公司给每位员工发了一台电脑，表面上看是每个人拥有了一台电脑，其实是给每个电脑配了一个人。

--[网友](https://dig.chouti.com/link/29787991)

## 历史上的本周

2020年（第 105 期）：[线上行业会赢](https://www.ruanyifeng.com/blog/2020/04/weekly-issue-105.html)

2019年（第 53 期）：[DNA 相亲会](https://www.ruanyifeng.com/blog/2019/04/weekly-issue-53.html)

2018年（第 2 期）：[为什么写周刊？](https://www.ruanyifeng.com/blog/2018/04/weekly-issue-2.html)

## 订阅

这个周刊每周五发布，同步更新在[阮一峰的网络日志](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)。

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

![](https://cdn.beekka.com/blogimg/asset/202103/bg2021030402.jpg)

（完）
