这里记录每周值得分享的科技内容,周五发布。
本杂志开源(GitHub: ruanyf/weekly[1]),欢迎提交 issue,投稿或推荐科技内容。
周刊讨论区的帖子《谁在招人?》[2],提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。

封面图

上海正在举办白玉兰冰雪节,搭建了本地难得一见的室外真冰溜冰场。(via[3]

本周话题:提高收入的根本途径

我看到一个故事[4],很有启发,给大家讲一下。
挪威和孟加拉是两个截然不同的国家,但是它们有一个共同点:渔业都是两国的主要产业,很多人以打渔为生。
挪威渔民非常有钱,挪威是世界上最富裕的国家之一,人均 GDP 接近8万美元。
孟加拉国属于世界最贫穷的国家,人均 GDP 大约2000美元。
同样是打渔,为什么渔民的收入相差那么大?
你可能马上就会想到,他们的设备不一样,影响了收入。挪威渔民拥有大型现代化渔船,接受过各种培训,只要几个人就能捕到大量的鱼,所以收入高。孟加拉渔民只有小渔船,捕鱼能力有限,所以收入低。
上个世纪70年代,发生了一件事情。挪威向孟加拉国赠送了现代化渔船,作为援助。
孟加拉渔民现在有了同样的设备,能够提高收入吗?
答案还是不能。仅仅过了一年,这些现代化渔船就无法使用了,援助行动以惨败告终。孟加拉渔民缺乏相应的知识和技能,无法操作挪威渔船,同时也缺乏进行维修的基础设施和零配件,没有任何学校教渔民怎么修理这些船。现代化设备在孟加拉渔民手里,很多功能发挥不出来,出海遇到故障,只有眼睁睁看着整艘船坏掉。
一条现代化渔船,其实不仅仅是单纯的一条船,而是许多千丝万缕的因素联合在一起,使它能够建造出来,并得以良好地运行。
这件事的启示就是, 一个国家比另一个国家富裕,很大程度上并不取决于人民是否努力工作 (孟加拉人的努力程度,事实上可能远胜于挪威人),也不取决于设备,而是取决于许多其他因素,比如资本、知识技能、基础设施、销售渠道等等。所有这些外部因素,才是国家富裕的根本原因,人民的努力不是决定性因素。
这个道理放到人的身上,也是一样的。 人与人的收入不一样,原因不是甲比乙更努力,而是很多外部因素综合起来的结果。 甲拥有的资本、技能和环境条件超过了乙,使得甲所在的层次高于乙。一个餐厅服务员,无论怎样努力,收入恐怕都不会超过基金经理,道理就在这里。
这告诉我们,如果你想真正地提高收入,努力仅仅是一部分的因素,更重要的是,你必须设法提升自己的资本、技能和环境的层次。
就像第21期[5]说过的,你需要的不是“水平方向的努力”,而是“垂直方向的努力”。

Vue 3 PK React 17 特训营

React 和 Vue 是国内最流行的两个前端框架,孰优孰劣的争论,就从来没有停息过。只要有人提一句:“我觉得 A 比 B 更好”,下面肯定就是一堆回帖。
“ Vue 只适合小项目,大项目扛不起来”“ React 组件太复杂,代码组织乱!““ Vue好上手,岗位多”“ 大厂基本都用 React,不用 Vue ”
其实大可不必,它们各有特点,都能解决前端开发的问题,你只要选择更适合自己风格的那种就可以了。这就像不同品牌的汽车,都能开到目的地,只是你开起来顺不顺手而已。
不过,这两个框架的对比和争论,并非全无意义。
1、面试时,React 和 Vue 各自的特点是常见的面试题。

2、如果你想做架构师或技术负责人,进行技术选型时,必须对各个框架都非常了解。

3、通过对比,可以抽象出一些本质上共通的东西,比如算法、工程化方法、规范等等,帮你构建技术壁垒,保持核心竞争力。
本周的课程资料,就是一个讲解 React 和 Vue 对比的视频课程 《Vue3.0 PK React17 核心力特训营》 (上课时间:2月1日-2月3日每晚 8:00)。它从框架原理开始讲起,再到现实业务场景,最后抽象二者的底层,层层递进,帮你深入掌握这两个框架的异同。
该课程由开课吧提供,主讲老师是前百度、360架构师、Vue 3.0 contributor 大圣老师。通过这个课程,你不仅能掌握 Vue3 和 React17 设计思路和面试技巧,也能对比框架生态,了解技术选型方法论、探究框架原理。此外,还有答疑和作业讲解,并能获得大圣老师精心总结的独家资料:
《Vue 和 React 框架大厂面试题通关指南.pdf》《Vue3 & React17 进阶知识地图》
训练营原价399元,周刊读者只需 0.99元 !优惠价仅限200名,微信扫描下面的二维码,就可以加入。

资讯

1、超级充电弓[6]
上海市开始在公交电站部署超级充电弓,为电车充电。充电弓酷似路灯,车辆进入停车位以后,会降下一张充电装置,搭住藏在超级电容公交车车顶的受电弓。
该充电弓是世界功率最大的汽车充电装置,可以达到 900kW,同时也拥有世界“最快”充电速度,充电40秒,续航10公里。充满需要8分钟,可跑40公里。而且,它非常节省空间,适合部署在城市马路边。
2、破解人脸识别[7]
清华大学的 RealAI(瑞莱智慧)团队使用一张打印的彩色人脸图片,测试能否通过手机的人脸识别。他们选取了 20 款手机,覆盖不同价位的低端机与旗舰机。
最终,除了一台 iPhone11,其余安卓机型全部解锁成功,完成整个破解过程只花了 15 分钟。测试人员成功解锁手机后,任意翻阅机主的微信、信息、照片等个人隐私信息,甚至还可以通过手机银行等个人应用 APP 的线上身份认证完成开户。
iPhone 的人脸识别使用 3D 摄像头,所以可以区分平面照片和真实人脸。后来,RealAI 团队又尝试用这种方法,测试同样带有 3D 摄像头的华为 Mate 40 Pro,一样未获成功。
3、空气冷凝机[8]
以色列公司 Watergen 推出一款空气冷凝机,可直接转换空气中的水气成为饮用水,一天产量为5000-6000公升,如果一个人一天所需要的水量为1公升的话,则满足5000人的生存需求。
它的原理是吸入空气,通过内部的热交换系统,将空气的温度降至露水点,从而获得液态水。它需要外部供电,Watergen 号称该系统的产水效率是其他系统的五倍以上,非常适合解决沙漠地区或者艰困环境的饮水问题。
4、白宫官网改版[9]
1月20日,美国新总统拜登上任,白宫官网 whitehouse.gov[10] 当天就改版了。
2017年,特朗普政府将白宫官网的 CMS(内容管理系统)从 Drupal 改成了 WordPress,原因是后者的维护和开发比较省钱,据说每年可以为美国纳税人节省300万美元。
这一次,拜登政府的改版沿用了 WordPress,并没有改回奥巴马时代的 Drupal,看来不打算推翻特朗普政府的这个决定。值得一提的是,改版后的官网性能表现很好,Lighthouse 得分接近满分。
5、Elasticsearch 许可证[11]
业界应用最广的开源搜索工具 Elasticsearch 上周修改了许可证,新版本将不允许云服务商使用它提供服务。这主要是针对亚马逊公司,后者出售 Elasticsearch 搜索服务,开源项目的维护者拿不到任何好处,等于是为亚马逊免费打工。
亚马逊立刻回击了,宣布将提供自己的开源版本。Elasticsearch 等于是为自己找了一个竞争对手,而且对手有无限资源。这件事的启示就是,开源时要想好,如果大公司拿你的代码挣钱,也不会分给你,你怎么办。
6、一句话消息
加州的洛杉矶港[12]去年下半年至今,有许多巨大的集装箱船,导致港口水道都堵住了。这是因为美国大量从亚洲进口货物,港口的46个泊位全部停满,还有几十艘集装箱船在港外下锚,等着泊位空出来。
谷歌[13]宣布,今年3月15日起,Chrome 浏览器的开源版本 Chromium 不再能够调用谷歌 API,这意味着Chromium 的书签、浏览记录等将都无法同步了。
一种叫做 Brood X 的蝉[14]是美国的主要蝉类,每17年繁殖一次。它上一次出现是2004年,它的卵会在地下等17年才孵化,今年又将重新出现。
考古学家[15]在英国发现两枚11世纪北宋时期的中国硬币。由于当地离海边不远,并出土过中国陶瓷,因此猜测中国硬币是中世纪的陶瓷商人携带过来的。
马斯克[16]宣布,一旦科学界找到最佳的二氧化碳捕捉技术,他将为该技术捐款1亿美元。

文章

1、中国的大坝(中文)
中国有10万座水坝,是世界水坝最多的国家。本文以大量的图片,介绍不同类型水坝的知识。
2、我开发付费 Chrome 插件的经历[17](中文)
作者介绍了在 Chrome 商店发布付费插件的过程,总收入有几百美元。(@timqian[18] 投稿)
3、如何用 GitHub Actions 更新 WordPress 网站[19](中文)
本文介绍使用 GitHub Actions 将仓库里面的 Markdown 文章,远程发布到 WordPress 网站。(@zhaoolee[20] 投稿)
4、二因素登陆 2FA 不能防止网络钓鱼[21](英文)
很多人有一种误解,只要开启了二因素登陆 2FA,就可以保证个人账户的安全。作者指出,2FA 只是保证其他人不能登录你的账户,但是防止不了网络钓鱼。
5、Tab 还是空格?[22](英文)
本文讨论了代码缩进使用 Tab 或空格的利弊,说得很有道理,并提供了推荐的缩进方式。
6、使用 GNU Stow 管理配置文件[23](英文)
Linux 系统有很多配置文件,比如.bashrc.vimrc等等,一个很方便的管理方法,就是把它们放到一个 Git 仓库,然后使用 Stow 这个工具产生软链接。
7、2021年 favicon 的设置[24](英文)
网站的 favicon 应该怎么设置?这篇文章给出了最新的建议。
8、Gmail 搜索语法[25](英文)
本文通过一个例子,讲解 Gmail 的搜索语法。
9、我怎样建立没有一家全职员工的公司[26](英文)
作者讲述自己创立 Gumroad 这家公司,年收入达到1100万美元,但是没有一个全职员工,连作者自己都不是全职投入。这可以算是创业的理想境界。
10、视频编码器的专利费[27](英文)
H.264 视频编码器需要交纳专利费,这篇文章介绍了这方面的情况。为了保证可以自由地对视频进行编码,Mozilla 一直在推动 AV1 这样的开源编码器。

工具

1、Sosumi[28]
一个 Linux 系统的 Snap 包文件,可以在 Linux 系统运行 MacOS。
2、Brave 浏览器[29]
Brave 浏览器宣布支持 IPFS 协议,可以直接在地址栏打开 IPFS 地址。
3、ArchiveBox[30]
一个将网页存档的工具,可以将 HTML、CSS、JS、图片、媒体文件都保存下来,供日后查看。这里是教程[31]
4、PyG2Plot[32]
Python 的数据可视化图表生成工具,基于蚂蚁集团开源的 G2Plot 封装。(@hustcc[33] 投稿)
5、openpilot[34]
一个开源的辅助驾驶系统,可以自动车道居中和自适应巡航控制,已经支持85种车型。(@dllen[35] 投稿)
6、Swagger 文档导出[36]
一个在线工具,可以将 Swagger 文档(yaml 或者 json 格式)导出为PDF、Markdown、EPUB、HTML 等格式。(@docs4dev[37] 投稿)
7、Basemark[38]
一个可以跑分的网站,用来测试浏览器的性能。
8、LocalCDN[39]
一个浏览器插件,将常用的前端 CDN 库集成在插件里面,避免发出网络请求,加快加载速度,以及降低隐私泄漏的可能。
9、X6[40]
蚂蚁集团数据可视化工具 AntV 旗下的图编辑引擎,用来在网页上生成 SVG 图形。(@NewByVector[41] 投稿)

资源

1、Vue3 源码解读[42]
这个库把 Vue3 源码中最核心的逻辑剥离出来,只留下核心逻辑,以供大家学习。带有详细的中文注释,以及完善的输出,帮助用户理解运行时流程。(@cuixiaorui[43] 投稿)
2、freeCodeCamp 中文版[44]
这是上一期介绍的 freeCodeCamp 初学者免费教程的中文版,由志愿者翻译的。
3、Games on GitHub[45]
这个仓库收集 GitHub 上面的各种开源游戏。
4、机器学习面试题[46]
这个英文网站收集了一些机器学习面试的基本问题 。
5、Radiance[47]
该网站收集了全世界几十个国家的艺术家创作的 VR 视频,可以戴 VR 眼镜欣赏。
6、2020数学艺术展[48]
该网站展出各种根据数学概念创造的艺术品,比如上图这样的编织品和雕塑品。

图片

1、Paludarium[49]
日本花卉艺术家 Azuma Makoto 建造的 Paludarium,是一种密封的玻璃容器,为植物创造一个自给自足的环境系统。
Paludarium 不仅可以控制内部温度和湿度,还具有喷雾和滴灌系统,给植物供水。
顶部的风扇起到通风的作用,并且还有扬声器给植物播放音乐。
这个机器就这样通过人工方式,模拟了自然界的雨、风、光、声,在密封容器里面实现了生态循环,使得人们可以不受外部环境的影响,而欣赏植物的美。
2、快递损坏造就的艺术品[50]
一位美国艺术家将各种玻璃艺术品,交给快递公司去运输,故意不加任何防护措施,使得快递过程中造成的玻璃破碎,也成为艺术品的一部分。

文摘

1、软件业的停滞[51]
软件技术的进步,在1996年左右基本停滞了。
1996年之前,我们取得的软件成果:LISP,Algol,Basic,APL,Unix,C,SQL,Oracle,Smalltalk,Windows,C ++,LabView,HyperCard,Mathematica,Haskell,WWW,Python,Mosaic,Java,JavaScript,Ruby,Flash,Postgress。
1996年以后的软件成果:IntelliJ,Eclipse,ASP,Spring,Rails,Scala,AWS,Clojure,Heroku,V8,Go,Rust,React,Docker,Kubernetes,Wasm。
后面那些软件成果,都是对此前技术成果的增量改进。比如,Rails 通过良好的结构化方式将一堆现有技术粘合在一起,从而极大地提高了 Web 应用程序的生产率,但是它本身没有发明任何新东西。同样地,V8 通过扩展 Smalltalk 和 Java 中发明的技术,加速 JavaScript 执行速度。
自从1996年以来,几乎所有东西都是巧妙地重新包装和重新设计了先前的发明。
为什么1996年以后,软件技术突然停止了进展?1996年到底发生了什么?
我认为原因就是互联网开始繁荣。突然之间,程序员有史以来第一次可以迅速致富,大量聪明的有抱负的人涌入了硅谷。但是,你不能在创业公司做研究,基础技术需要很长时间酝酿,并且风险很大。合理的商业计划是利用 VC 的资金,将其投入到最优秀的程序员,让他们改进当前糟糕的技术,然后兑现获利。创业公司没有发明基础技术的时间。
如今,只有像 Google / Facebook / Amazon / Microsoft 这样的大型公司才有金钱和时间来创造新技术,但是他们似乎只对以最小的破坏性方式解决自己的问题感兴趣。
2、罗尔德·达尔的童话《声音机器》[52]
一个叫克劳斯纳(Klausner)的人,沉迷于声音。他认为,世界上有很多声音因频率高而无法听到。
有一次,他去看病。他跟医生说,他正在尝试发明一种机器,可以降低声音的频率,让那些无法听见的声音可以被听到。
后来,机器终于造好了。
他在院子里首次实验,邻居在花园里剪玫瑰,他从耳机里听到玫瑰在尖叫。
第二天,他做了一个更大的实验。他拿斧头砍一棵大山毛榉树。他听到树发出的深沉而悲惨的呻吟。
克劳斯纳赶回屋子,给医生打电话:“请过来,快来。我想让其他人听到。太难以置信了!”
医生同意过来,听听耳机里面的声音。
医生到了以后,克劳斯纳第二次砍树时,一个大树枝掉下来,把机器砸毁了。克劳斯纳问医生是否听到了呻吟声,医生说没有听到任何声音。
克劳斯纳非常难过,最后他要求医生在树的伤口上面涂一些碘酒,医生同意了。

言论

1、
协和飞机是一架超音速客机,于1969年首飞,距今已经超过50年。1969年的人们大概以为,我们现在应该生活在太空中,或者到处都是飞行汽车,而不会想到今天最快的客机依然比协和飞机慢。
-- Lyn Alden[53]
2、
我和其他工程师一样,都有 MacBook Pro。再过几年,所有这些机器都会被淘汰,被新的 ARM 芯片的型号取代。到那时,开发者会觉得,在ARM 机器上开发,但是在 x86 服务器上进行部署的想法,将是令人不舒服的。因此,苹果公司的“换芯”行动,会大大加速服务器的变革,从 x86 架构转向 ARM 架构。
-- Hacker News 读者[54]
3、
一个复杂的大型软件,即使支持某些简单的功能,也无法以直观、易于使用的方式呈现。
-- Hacker News 读者[55]
4、
要么是用户控制程序,要么是程序控制用户。
-- 理查德·斯托曼[56]
5、
C 语言很保守,变化和增长非常缓慢。这其实是一项吸引人的功能,开发人员常常低估了它。
--《为什么没有 C 语言大会?》[57]

回顾

2020年的本周(第 93 期):漫游类的游戏,将会越来越多
2019年的本周(第 41 期):如何看待互联网公司裁员?

References

[1]
 ruanyf/weekly: 
https://github.com/ruanyf/weekly
[2]
 《谁在招人?》: 
https://github.com/ruanyf/weekly/issues/1580
[3]
 via: 
https://www.facebook.com/groups/2480163464/permalink/10159551112933465
[4]
 一个故事: 
https://erik-engheim.medium.com/stop-the-hard-work-obsession-america-6e5c29b1c07c
[5]
 第21期: 
http://www.ruanyifeng.com/blog/2018/09/weekly-issue-21.html
[6]
 超级充电弓: 
https://chejiahao.autohome.com.cn/info/4880764/
[7]
 破解人脸识别: 
https://www.toutiao.com/i6922318320272278028/
[8]
 空气冷凝机: 
https://www.cool3c.com/article/159137
[9]
 白宫官网改版: 
https://wptavern.com/biden-white-house-sticks-with-wordpress-for-website-relaunch
[10]
 whitehouse.gov: 
https://www.whitehouse.gov/
[11]
 Elasticsearch 许可证: 
https://aws.amazon.com/cn/blogs/opensource/stepping-up-for-a-truly-open-source-elasticsearch/
[12]
 加州的洛杉矶港: 
https://www.freightwaves.com/news/inside-californias-colossal-container-ship-traffic-jam/
[13]
 谷歌: 
https://bodhi.fedoraproject.org/updates/FEDORA-2021-48866282e5%29
[14]
 一种叫做 Brood X 的蝉: 
https://www.cicadamania.com/cicadas/category/types/magicicada/
[15]
 考古学家: 
https://www.caitlingreen.org/2020/12/another-medieval-chinese-coin-from-england.html
[16]
 马斯克: 
https://www.cnbc.com/2021/01/22/elon-musk-tesla-ceo-donates-to-carbon-capture-technology-prize.html
[17]
 我开发付费 Chrome 插件的经历: 
https://blog.t9t.io/star-history-2021-01-21/
[18]
 @timqian: 
https://github.com/ruanyf/weekly/issues/1611
[19]
 如何用 GitHub Actions 更新 WordPress 网站: 
https://github.com/zhaoolee/WordPressXMLRPCTools
[20]
 @zhaoolee: 
https://github.com/ruanyf/weekly/issues/1608
[21]
 二因素登陆 2FA 不能防止网络钓鱼: 
https://shkspr.mobi/blog/2021/01/thats-not-how-2fa-works/
[22]
 Tab 还是空格?: 
https://anadoxin.org/blog/youre-using-tabs-in-a-wrong-way.html/
[23]
 使用 GNU Stow 管理配置文件: 
https://alexpearce.me/2016/02/managing-dotfiles-with-stow/
[24]
 2021年 favicon 的设置: 
https://evilmartians.com/chronicles/how-to-favicon-in-2021-six-files-that-fit-most-needs
[25]
 Gmail 搜索语法: 
https://turriate.com/articles/advanced-gmail-search-help-organize-your-inbox
[26]
 我怎样建立没有一家全职员工的公司: 
https://sahillavingia.com/work
[27]
 视频编码器的专利费: 
https://blog.mozilla.org/blog/2018/07/11/royalty-free-web-video-codecs/
[28]
 Sosumi: 
https://github.com/popey/sosumi-snap
[29]
 Brave 浏览器: 
https://brave.com/ipfs-support/
[30]
 ArchiveBox: 
https://github.com/ArchiveBox/ArchiveBox
[31]
 教程: 
https://nixintel.info/osint-tools/make-your-own-internet-archive-with-archive-box/
[32]
 PyG2Plot: 
https://github.com/hustcc/PyG2Plot
[33]
 @hustcc: 
https://github.com/ruanyf/weekly/issues/1602
[34]
 openpilot: 
https://github.com/commaai/openpilot
[35]
 @dllen: 
https://github.com/ruanyf/weekly/issues/1604
[36]
 Swagger 文档导出: 
https://www.docs4dev.com/tools/zh/swagger2markup/
[37]
 @docs4dev: 
https://github.com/ruanyf/weekly/issues/1605
[38]
 Basemark: 
https://web.basemark.com/
[39]
 LocalCDN: 
https://www.localcdn.org/
[40]
 X6: 
https://x6.antv.vision/zh
[41]
 @NewByVector: 
https://github.com/ruanyf/weekly/issues/1615
[42]
 Vue3 源码解读: 
https://github.com/cuixiaorui/mini-vue
[43]
 @cuixiaorui: 
https://github.com/ruanyf/weekly/issues/1612
[44]
 freeCodeCamp 中文版: 
https://learn.freecodecamp.one/
[45]
 Games on GitHub: 
https://github.com/leereilly/games
[46]
 机器学习面试题: 
https://www.interviewquery.com/blog-machine-learning-interview-questions/
[47]
 Radiance: 
https://www.radiancevr.co/
[48]
 2020数学艺术展: 
http://www.ams.org/publicoutreach/math-imagery/2020-Exhibition
[49]
 Paludarium: 
https://azumamakoto.com/3705/
[50]
 快递损坏造就的艺术品: 
https://kottke.org/21/01/fedex-shipping-damage-creates-fractured-artworks
[51]
 软件业的停滞: 
https://alarmingdevelopment.org/?p=1475
[52]
 罗尔德·达尔的童话《声音机器》: 
https://www.newyorker.com/magazine/1949/09/17/the-sound-machine
[53]
 Lyn Alden: 
https://www.lynalden.com/ethereum-analysis/
[54]
 Hacker News 读者: 
https://news.ycombinator.com/item?id=25834066
[55]
 Hacker News 读者: 
https://news.ycombinator.com/item?id=25840318
[56]
 理查德·斯托曼: 
https://www.gnu.org/philosophy/keep-control-of-your-computing.en.html
[57]
 《为什么没有 C 语言大会?》: 
https://nullprogram.com/blog/2018/11/21/
继续阅读
阅读原文