# 科技爱好者周刊(第 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) (完)