科技爱好者周刊:第 97 期
这里记录每周值得分享的科技内容,周五发布。
本杂志开源(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