这里记录每周值得分享的科技内容,周五发布。
本杂志开源(GitHub: ruanyf/weekly[1]),欢迎提交 issue,投稿或推荐你的项目。
周刊讨论区的帖子《谁在招人?》[2],提供大量就业信息,欢迎访问或发布工作/实习岗位。
封面图:美国缅因州的河流中,自然形成了一个大冰盘,直径90米。(出处[3]

刊首语

上海现在有很多付费自习室,提供一个安静的学习环境,有的收费要超过20元/小时。生意应该很不错,否则不会开这么多家。
网上有一个视频[4],采访那些顾客,为什么来自习?
答案都是一样的:为了考试。各种各种的考试:研究生入学、公务员、会计上岗证、司法考试、CFA、注册会计师……
受访者说,来到收费自习室,可以保证全心备考,而且看到别人那么努力,也能激励自己。
我不怀疑他们的学习精神,也相信自习室肯定有一定的效果。但是更赞同视频下面的一条留言。
“我真觉得,这些人,其实挺迷茫的……听上去感觉好像一个个都挺有上进心的,但是其实,没几个人真的知道自己要干嘛……”
我也是这个感觉,那么多年轻人参加各种各样的考试,忙忙碌碌,只是为了掩盖人生找不到目标。
如果你真的知道自己想要什么,你就不会花钱找一个地方,只为了坐下来背书。许多人对自己应该做什么,毫无想法,迷茫困惑,不知道怎么才能改变现状,但是又觉得必须做一些事,所以才选择参加考试,然后安慰自己,我没有浪费时间。
这样是不行的, 考试根本不是出路。如果你不知道人生怎么办,就算考过了,你依然不知道。 很多证书对于求职根本没用,在企业的眼里,资历是靠经历和项目证明的,不是靠证书。退一步说,如果某张证书确实有用,也会因为成千上万的人去考,而很快贬值。
我的建议就是,不要去参加考试,而要努力寻找那些你有兴趣去做、并且能够为此获得收入的事情。

免费前端视频

随着企业陆续复工,招聘市场逐渐恢复正常。但是,这一段时间的招聘岗位还是比以前要少很多,往年三四月的面试旺季已经往后延迟。
如果你的前端开发基础还不够扎实,现在正好可以利用起来,相当于有一个特别长的准备期,来准备一下面试的内容。
应对面试需要两大要点, 一是技术栈的熟练掌握,另一个就是了解面试的相关技巧。吃透了这两点,等疫情完全结束,就有机会拿到好的 offer!
本期周刊为大家提供一批免费的视频资料,内容分别是大牛的面试技巧分享和 Vue 这个前端常用框架的讲解。以下视频资料均由 开课吧 独家提供。
视频一:《一小时带走前端大牛复盘的求职策略》 :大厂面试章法(简历、目标公司、如何描述做过的项目),面试技巧的分享,面试题的详解等。
视频二: 《Vue3 响应式原理剖析》:Vue3 响应式初体验、Vue2 & Vue3 响应式原理对比、Vue3 响应式实现、源码分析等。
视频三: 《Vue 源码剖析之整体流程》:Vue 源码调试环境搭建、入口文件剖析、Vue 初始化流程分析、Vue 源码学习整体流程总结等等。
感兴趣的读者,长按下方二维码两次,现在就能免费领取这三个视频教程。温馨提示:资料数量有限,仅提供259份。
扫二维码,成功添加小助理,即可领取面试礼包。

资讯

1、算错小数点[5]
西班牙造船厂由于算错了一个小数点,导致制造的潜艇超重了70吨(设计重量2200吨)。西班牙海军非常担心,如果它出海将无法浮出水面。
目前,补救方案有两种,一种是将潜艇的船体长度延长大约5至6米,以增加浮力。另一种是不得不减少潜艇的重量70吨,但是这很可能影响战斗系统或推进系统等关键功能。
2、洞螈[6]
过去八年,欧洲科学家在波斯尼亚和黑塞哥维那东部的山洞里面,发现了大量的洞螈,大概有几十条。这种动物长约20厘米~30厘米,长得像迷你的龙,是两栖类动物,只分布在欧洲中部山区漆黑无光的山洞内部。
由于长期不见光,它的眼睛已经退化了,被皮肤覆盖了,是一种没有眼睛的动物,没有视觉,只靠敏锐的嗅觉、水下听觉、以及对周围运动的感知来弥补视觉的丧失。
科学家发现,这种动物的活动范围非常有限,几年时间中,只移动了不到10米。由于长期不动,它们的代谢极低,寿命长达一个世纪,每12年才繁殖一次。
3、带有脸部信息的口罩[7]
疫情期间,口罩是必备物品。随之而来的一个问题是,苹果手机的 Face ID 无法识别出戴口罩的人脸,必须脱下口罩,手机才能开机。
国外的一个创业者,因此发明了一款带有面部信息的口罩。他的思路是,先提取用户被口罩遮挡部分的面部信息,然后印制到口罩外侧,戴上后即拼凑成完整的脸部。据他说,这种办法可以兼容Face ID,但没有大规模测试,目前售价高达40美元一个。
4、连体翼飞机[8]
空中客车公司在新加坡航空展上,放出了长达二米的连体翼飞机模型,表示他们正在研发这种机身和机翼一体化的飞机,并且已经于去年6月在法国试飞了。
这种飞机机翼与机身融合,可以减少空气阻力,有利于降低燃油消耗并减少碳排放。空中客车公司表示,与目前的客机相比,这种飞机可能将燃油消耗降低多达20%,并为不同的推进系统和机舱设计提供了可能性。不过,这种飞机的设计和制造都较为复杂。
5、独轮车环游地球[9]
英国青年埃德·普拉特(Ed Pratt)最近成为第一个骑独轮车环游世界的人。2015年3月,当时19岁的他从英国出发,经过3年时间,路经了欧洲、中东、中亚、中国、东南亚、澳大利亚、新西兰和美国之后,他终于回到了起点。
他的交通工具就是一辆独轮车,为了省力,选择了36英寸(91厘米)的轮胎。他的所有装备也放在独轮车上(下图),一路上一共换过5次轮胎,平均每个轮胎可以使用8000公里。
6、 一句话消息
英国一项研究[10]发现,中年人最不幸福的年龄是47.2岁,所以这个年龄可能就是中年危机的最高潮。
数码相机[11] 2019年的全球出货量只有1,500万台左右,比2018年减少20%,是2001年(1,475万台)以来的最低点。相比巅峰时期的2010年(1亿2,146万台),销量只剩下八分之一。
德国大众汽车公司[12]宣布,不再参与电动汽车以外的赛车活动。汽车公司参与赛车,主要是为了推销汽车,大众公司将逐步停止内燃机汽车的生产,也就不需要参与汽油车的赛车了。
日本科学家[13]2016年发明了第一代动态投影机,在投射表面涂一层红外线涂料,就可以使得弯曲表面也获得清晰不变形的投影效果(下图)。目前第二代[14]问世了,已经不需要涂料,可以直接投影在弯曲表面。

文章

1、Shopify 采用 React Native[15](英文)
Shopify 决定放弃原生应用,改用 React Native 开发他们的手机 App,这篇文章详细解释了为什么。
主要原因有三个,一是节省开发成本、缩短开发周期;二是他们在 Web 上已经采用 React,对这项技术比较熟悉;三是他们的 App 不是那么复杂。
2、Internet Explorer 曾有过的创新[16](英文)
微软已经放弃了自己的 Trident 浏览器引擎,改用谷歌的 Blink 引擎。本文回顾了历史上 Internet Explorer 浏览器的众多创新,数量非常多。
3、静态网站为什么需要 HTTPS[17](英文)
本文总结了对 HTTP 网页进行攻击的方法。
4、我编程20年的指导原则[18](英文)
一个编程20年的资深程序员,总结自己编写软件的原则,其中一条是:安全性 > 可用性 > 可维护性 > 代码简洁 > 性能 。另一条是,除非已经完全理解了所要解决的问题,否则不要动手写代码。
5、41种 SaaS 产品营销策略[19](英文)
提供 SaaS 服务的公司越来越多,如何才能有效地推广自己的服务?这篇长文总结了41种 SaaS 营销方法。
6、松本行弘谈 Ruby 语言的设计[20](英文)
Ruby 语言创始人松本行弘的访谈,介绍他对设计 Ruby 语言的想法,内容包括静态类型和动态类型的处理、未来 Ruby 的发展方向。
7、软件认证浪费时间和金钱[21](英文)
作者提出一系列理由,认为各种软件资格证书并无意义,不值得为了它们花费时间和金钱。
8、TypeScript 的问题[22](英文)
作者记录了他使用 TypeScript 过程中,觉得不够满意的地方。有些是可以解决的,有些属于语言的核心设计,很难解决。
9、我使用 Google Cloud Run 的经历[23](英文)
谷歌云的 Cloud Run 服务可以“按需启动”的方式运行 Docker 容器,作者使用这个服务部署自己的 Serverless 应用,每月的费用不足一美元。
10、OT 还是 CRDT?[24](英文)
网页编辑器 TinyMCE 项目打算增加多人实时协作功能。目前,编辑器同步有两种主要算法:OT 和 CRDT。本文比较这两种算法各自的特点,并附有参考链接。

工具

1、netgraph[25]
一个 Go 语言写的 HTTP 抓包分析器,带有 Web 界面。(@ga0[26] 投稿)
2、qier-progress[27]
一个网页顶部进度条的 JS 库。(@vortesnail[28] 投稿)
3、pyprotect[29]
一个 Python 代码的加密器,可以防止别人看脚本源码。(@ga0[30] 投稿)
4、简易数学函数作图工具[31]
一个在线生成数学函数图形的网页小工具。(@DoctorLai[32] 投稿)
5、Jane[33]
一个超级轻量的静态博客系统,使用 Kotlin 语言。(@pandolia[34] 投稿)
6、akshare[35]
一个基于 Python 的开源金融数据接口库,目的是实现股票、期货等金融产品从数据采集、数据清洗到数据下载的工具,满足金融数据科学家、数据科学爱好者在数据获取方面的需求。(@jindaxiang[36] 投稿)
7、Sitdown[37]
一个将 HTML 源码转换为 Markdown 的 JS 库,可以定制规则。(@LinFeng1997[38] 投稿)
8、GoatCounter[39]
一个开源的访客统计软件。
9、Language Learning with Netflix[40]
Chrome 浏览器插件,可以在 Netflix 的视频页面上同时显示原文和英语字幕,适合学习外语,需要用户有 Netflix 收看资格。
10、Clipboard History Pro[41]
Chrome 浏览器插件,用来管理系统的剪贴板,可以查看剪贴板的历史记录。

资源

1、货币汇率 API[42]
该网站提供免费货币汇率的 JSON API。
2、GameBoy 模拟器教程:使用 JavaScript 语言[43]
这组系列文章讲解,如何用 JavaScript 语言模拟 GameBoy 的硬件,可以用来了解硬件知识。
3、初学者的安卓学习资源[44]
这是 HN 的一个帖子,讨论初学者应该参考哪些安卓学习资源。
4、黑客的贝叶斯方法:以 Python 为例[45]
免费的英文电子书,讲解贝叶斯概率在 Python 语言中的应用。
5、Go 101[46]
免费的英文电子书,介绍 Go 语言的基本语法。

图片

1、微塑料污染[47]
人类大量使用塑料制品,然后随意丢弃,导致废塑料以塑料纤维的形式,进入了饮用水。
世界自然基金会最近的一项研究得出结论,人们每周可能摄入5克塑料纤维,相当于一张塑料信用卡的量,可以填满一个汤匙。这些塑料纤维进入人体的消化系统,大部分会被排解掉。
每个月食用21克塑料,相当于小半碗饭。
半年食入125克塑料,相当于一大碗。
每年食入250克塑料,相当于一盆菜。
每10年食入2.5公斤塑料,相当于一个救生圈。
一生中食入20公斤塑料,相当于两个垃圾桶。
2、香槟的压力[48]
历史上,英国采用二次发酵法制作葡萄酒,在已发酵的葡萄酒中加入糖和糖蜜以使酵母再次发酵,然后将其密封在瓶中以产生冒泡的混合物。
这种方法的问题在于它产生了难以置信的压力。在酒瓶中,内部压力大约是大气压的六倍,是汽车轮胎的三倍。这相当于每平方厘米的玻璃上承受超过5公斤的重量,只有特别坚固的瓶子才能承受这种压力,每年大约有4%~40%的葡萄酒会因为酒瓶爆炸而损耗。
因此,香槟酒工人只好戴着铁的保护面罩,来制造葡萄酒,防止受到爆瓶的伤害。
3、澳大利亚一家停车场的创意[49]
下面的标记都是真实的,利用视觉错位涂绘。(@StevenLikeWatermelon[50] 投稿)

文摘

1、过早优化的谬误[51]
Tony Hoare 曾经说过:“过早的优化是万恶之源”。经过 Donald Knuth 大师的推荐,这句话已成为软件工程师的名言。
不幸的是,它被误解扭曲了。许多软件工程师将这一准则理解成“你永远不应该优化代码!”,认为没有必要进行优化。
Tony Hoare 和 Donald Knuth 的真正意思是,代码微优化(例如,一条特定语句消耗多少 CPU 周期)之前,开发者应该担心其他问题。而且,原话并不是说:“在开发的早期阶段,关注程序的性能是有害的。” 他只是反对过早的优化。
以下几点理由,可以解释为什么不能忽视软件性能。程序员正确的做法应该是,在软件开发的早期阶段,就关注性能问题。
(1)性能问题不容易在软件开发的最后阶段解决。20%的代码占用了80%执行时间,它们可能散布在整个源代码中,不容易一次性修改解决。
(2)许多工程师相信,到软件发布时,CPU 的性能将会提高,以弥补部分代码的性能低下。尽管在1990年代确实如此,但在最近十年 CPU 性能非常有限。
(3)软件工程师认为,他们的时间比 CPU 时间更有价值。因此,浪费 CPU 周期以减少开发时间是对的。但是,他们忘记了,用户的时间比他们的时间更有价值。
(4)优化可能会导致产品延迟进入市场,并降低利润,这是正确的。但这种想法忽略了性能不佳的产品可能很难销售,尤其是在市场竞争激烈的情况下。
(5)有些程序员认为,几乎没有必要确保在软件的设计阶段,就使用最佳算法,先实现功能再说,因为以后总是可以替换更好的算法。所以,无需担心软件在开发阶段的性能,以后可以通过更好的算法对其进行提高。不幸的是,更好的算法在后期不一定可以实现,而且代码往往因为牵扯太多,无法轻易替换其中某个部分。
2、为什么物体潮湿时会变暗?[52]
你是否想过,为什么向地上倒了一摊水,土地就变暗了?
首先,我们要知道,物体的亮或暗,取决于反射的光的数量。反射的光线多,就比较亮;反射的光线少,就比较暗。
当我们向土地倒水的时候,湿的那块地的表面就有一层水。在此之前,光可以100%击中那块地,现在必须穿过那层水才能被地面反射。有一些光会被水面反射,还有一些光会在水中被吸收,所以地面接受的光量就比以前少。
另外,光进入水中后,一部分光会出现漫反射,反射到人眼的光量进一步减少。
以上两个原因,使得一个物体变湿以后,人眼接收到的光量要小得多。这就是为什么物体潮湿时看起来更暗的原因。

言论与数字

1、
为了解决气候变暖,人类生活的所有方面需要彻底的改变。
我们需要少吃肉,通过体外细胞培养的方式人工生产蛋白质,每个家庭的家用电器减少到两台,完全淘汰干衣机,2030年全面过渡到电动汽车,2050年将全球人口限制在84亿以内,到2100年下降到69亿。
-- 《气候问题已经绝望》[53]
2、
互联网诞生之前,程序员没有 StackOverflow、Slack、Reddit、Youtube、网络教程。编程遇到问题的时候,手边必须有语法手册和系统手册,如果你没有这两本书,就只能去图书馆或书店找书。
-- 推特用户[54]
3、
每个内容托管平台都将消亡。Geocities、LiveJournal、what. cd 、Yahoo Groups 已经消亡。有一天,Medium、Twitter、甚至 GitHub Pages 也将消亡,只要它们不再增长或者找不到有效的商业模式。
-- 《制作持久耐用的网页》[55]
4、
我从小公司跳槽到大公司。我发现,大公司的很多工作都在学习他们庞大的自定义领域,而不是学习某种的公开技术。
-- HN 读者[56]
5、
Git 从2005年4月3日开始开发,4月6日完成开发,对外宣布,4月7日上线使用。
-- 维基百科[57]
6、
微软好于谷歌的一个地方,就是它没有广告业务。
-- HN 读者[58]

回顾

去年的本周:《周刊第 46 期》

References

[1]
 ruanyf/weekly: 
https://github.com/ruanyf/weekly
[2]
 《谁在招人?》: 
https://github.com/ruanyf/weekly/issues/1106
[3]
 出处: 
https://www.theguardian.com/us-news/2020/jan/19/maines-giant-spinning-ice-disc-looks-like-its-reforming
[4]
 一个视频: 
https://www.bilibili.com/video/av80434643
[5]
 算错小数点: 
https://o.canada.com/news/spain-builds-submarine-70-tons-too-heavy
[6]
 洞螈: 
https://www.sciencealert.com/scientists-don-t-think-this-olm-bothered-to-move-much-in-7-years
[7]
 带有脸部信息的口罩: 
https://tech.sina.cn/2020-02-17/detail-iimxyqvz3474565.d.html
[8]
 连体翼飞机: 
https://www.reuters.com/article/us-singapore-airshow-airbus-design/airbus-unveils-blended-wing-body-plane-design-after-secret-flight-tests-idUSKBN20509H
[9]
 独轮车环游地球: 
https://www.outsideonline.com/2407533/unicycle-travel-gear
[10]
 英国一项研究: 
https://www.bloombergquint.com/global-economics/middle-age-misery-peaks-at-age-of-47-2-economist-says
[11]
 数码相机: 
https://finance.technews.tw/2019/12/30/digital-camera-shipments/
[12]
 德国大众汽车公司: 
https://www.thedrive.com/news/31162/volkswagen-axes-all-non-electric-racing-programs-worldwide
[13]
 日本科学家: 
http://www.k2.t.u-tokyo.ac.jp/vision/DPM/
[14]
 第二代: 
http://www.k2.t.u-tokyo.ac.jp/vision/MIDAS/index-e.html
[15]
 Shopify 采用 React Native: 
https://engineering.shopify.com/blogs/engineering/react-native-future-mobile-shopify
[16]
 Internet Explorer 曾有过的创新: 
https://schepp.dev/posts/today-the-trident-era-ends/
[17]
 静态网站为什么需要 HTTPS: 
https://www.troyhunt.com/heres-why-your-static-website-needs-https/
[18]
 我编程20年的指导原则: 
https://medium.com/@alexewerlof/my-guiding-principles-after-20-years-of-programming-a087dc55596c
[19]
 41种 SaaS 产品营销策略: 
https://apollodigital.io/blog/saas-marketing
[20]
 松本行弘谈 Ruby 语言的设计: 
https://evrone.com/yukihiro-matsumoto-interview
[21]
 软件认证浪费时间和金钱: 
http://tomaytotomato.com/certs-waste-of-time/
[22]
 TypeScript 的问题: 
https://blog.logrocket.com/is-typescript-worth-it/
[23]
 我使用 Google Cloud Run 的经历: 
https://alexolivier.me/posts/deploy-container-stateless-cheap-google-cloud-run-serverless
[24]
 OT 还是 CRDT?: 
https://www.tiny.cloud/blog/real-time-collaboration-ot-vs-crdt/
[25]
 netgraph: 
https://github.com/ga0/netgraph
[26]
 ga0: 
https://github.com/ruanyf/weekly/issues/1095
[27]
 qier-progress: 
https://github.com/vortesnail/qier-progress
[28]
 vortesnail: 
https://github.com/ruanyf/weekly/issues/1093
[29]
 pyprotect: 
https://github.com/ga0/pyprotect
[30]
 ga0: 
https://github.com/ruanyf/weekly/issues/1094
[31]
 简易数学函数作图工具: 
https://helloacm.com/tools/math-plot-graph/
[32]
 DoctorLai: 
https://github.com/ruanyf/weekly/issues/1102
[33]
 Jane: 
https://jane.pandolia.net/
[34]
 pandolia: 
https://github.com/ruanyf/weekly/issues/1108
[35]
 akshare: 
https://github.com/jindaxiang/akshare
[36]
 jindaxiang: 
https://github.com/ruanyf/weekly/issues/1109
[37]
 Sitdown: 
https://github.com/mdnice/sitdown
[38]
 LinFeng1997: 
https://github.com/ruanyf/weekly/issues/1111
[39]
 GoatCounter: 
https://www.goatcounter.com/
[40]
 Language Learning with Netflix: 
https://chrome.google.com/webstore/detail/language-learning-with-ne/hoombieeljmmljlkjmnheibnpciblicm?hl=en
[41]
 Clipboard History Pro: 
https://chrome.google.com/webstore/detail/clipboard-history-pro-bes/ajiejmhbejpdgkkigpddefnjmgcbkenk
[42]
 货币汇率 API: 
https://currencyscoop.com/
[43]
 GameBoy 模拟器教程:使用 JavaScript 语言: 
http://imrannazar.com/GameBoy-Emulation-in-JavaScript:-The-CPU
[44]
 初学者的安卓学习资源: 
https://news.ycombinator.com/item?id=22030169
[45]
 黑客的贝叶斯方法:以 Python 为例: 
https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers
[46]
 Go 101: 
https://github.com/go101/go101/releases
[47]
 微塑料污染: 
https://graphics.reuters.com/ENVIRONMENT-PLASTIC/0100B4TF2MQ/index.html
[48]
 香槟的压力: 
https://www.atlasobscura.com/articles/history-of-champagne
[49]
 澳大利亚一家停车场的创意: 
http://architypereview.com/project/eureka-tower-car-park-signage/
[50]
 StevenLikeWatermelon: 
https://github.com/ruanyf/weekly/issues/1058
[51]
 过早优化的谬误: 
https://ubiquity.acm.org/article.cfm?id=1513451
[52]
 为什么物体潮湿时会变暗?: 
https://aryankashyap.com/why-are-some-things-darker-when-wet
[53]
 《气候问题已经绝望》: 
https://www.thenewatlantis.com/publications/after-climate-despair
[54]
 推特用户: 
https://twitter.com/rkunboxed/status/1207301873218154497
[55]
 《制作持久耐用的网页》: 
https://jeffhuang.com/designed_to_last/
[56]
 HN 读者: 
https://news.ycombinator.com/item?id=21982577
[57]
 维基百科: 
https://en.wikipedia.org/wiki/Git#History
[58]
 HN 读者: 
https://news.ycombinator.com/item?id=21853885
继续阅读
阅读原文