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

封面图

西班牙艺术家胡安•盖瑞扎博 (Juan Garaizabal)的作品《永恒之门》,正在上海静安雕塑公园展出,18级台阶通向一个空中之门。(出处[3]

本周话题:未来人人开发软件,几乎没人编码

现在,少儿编程培训班很流行,一到周末,家长们就送孩子去学计算机。
虽然我很赞成从小学习计算机,但总感到有点疑惑: 编程正变得越来越容易,门槛越来越低,小朋友们真有必要牺牲周末的睡眠和体育时间,专门去学编程语言(比如 Python)吗?
上个世纪要当程序员,你必须懂汇编语言。到了如今,编程几乎已经没有门槛了,大多数人一天内就能学会,怎么写一个简单的网页 JavaScript 脚本。那么,你告诉我,未来会怎样?
再过15年或20年,等到现在的小孩进入就业市场,编程可能已经变得极其傻瓜化、智能化,也许只需要动动嘴,说出你想要什么程序,人工智能就自动生成了代码。
那时还会有程序员,但是人数应该很少,而且只负责编写底层代码,就像今天的汇编语言程序员非常少一样。因此我怀疑,孩子们没必要专门去学编程,因为未来可能根本不是今天这样编程。
大家知道吗,世界上用户最多的编程工具是什么软件?
答案是 Excel。无数财务人员、管理人员、销售人员都在用它,解决各种问题,尽管他们根本不懂编程。
我觉得,这就是未来编程工具的趋势,你不需要或者只需要懂一点点代码,就能做出软件,解决你的问题。最近正在兴起的“低代码”(low code)和“无代码”(no code)工具,正好呼应了这种趋势。未来人人都是软件工程师,都能够做出自己需要的软件,但是几乎没人知道如何编程。

JavaScript 学习视频

本周的课程资料是 开课吧 提供的《JavaScript 学习视频》。
在可见的时间里,JavaScript 语言都会是前端最重要、最基础的技能。不管你打算开发什么(Web、Node.js、还是小程序),JavaScript 都是绕不过去的,属于必须掌握的基本技能,就像物理研究绕不过去数学一样。只要你面试前端岗位,JavaScript 技能是必考的。
JavaScript 的难度并不低,有着各种怪异的语法点,而且语法还在快速发展中,TC39 委员会每年都发布一个语言的新版本。只有掌握了基础语法,才跟得上顶层框架的各种变化,以不变应万变。
下面的视频课程,就是讲解几个特别重要的语法点和开发技巧,帮助你更好地理解这门语言。课程内容涵盖四大模块,课程时长达到300分钟!
1.this 关键字的指向2.基于防抖(debounce)和节流(throttle)的性能优化3.响应式数据双向绑定的原理剖析4.基于 Web Component 的组件化开发
手机扫描下面的二维码,就可以 0元领取 这套视频了 。只有 100个 名额,先到先得。

资讯

1、眼神校正功能[4]
苹果的视频通话服务 Facetime,将正式启用眼神校正功能。视频通话时,对话者的眼神往往不是看着摄像头,而是看着屏幕或其他地方。这项功能可以自动修改眼神,让它看上去直接注视着前置摄像头,好像正在与另一方发生眼神交流。
这项功能在 iOS 13 的 Beta 版本开始测试,当时称为“注意力校正”,但没有包括在 正式版本中。iOS 14 重新将其引入,并在页面上列为正式功能。
2、根据 DNA 生成画像[5]
美国弗吉尼亚州的一家遗传学公司,正在开展根据 DNA 画出犯罪嫌疑人画像的服务(上图)。他们根据犯罪现场得到的 DNA,进行数据库查询,找到相似的 DNA。理论上,DNA 相似的人应该具有血缘关系,长相很可能接近,就可以根据亲戚的长相画出嫌犯的长相。
该技术已经帮助警察侦破了一些久远的悬案,比如1987年一对加拿大夫妇被谋杀。但是,这已经在美国引起了巨大的争议,很多人认为这会侵犯隐私,不应该允许警方用 DNA 查找你的血缘关系。
3、推特的图像预览 Bug[6]
一个推特用户发现,如果上传的图片中同时包括黑人和白人,推特的图像预览总是向用户呈现白人。下图是上传的原图,无论奥巴马的头像在上方或下方,最后的预览总是上图的样子。
推特官方表示,将调查使用的人脸识别模型。
4、大象死亡之谜[7]
今年五六月间,博茨瓦纳西北部的国家公园内,约330头大象突然死亡,一直找不到原因。最近,政府宣布这些大象死于一种神经系统疾病,可能由于饮用了被有毒的蓝藻污染过的水。
官方解释由于降雨,国家公园内会有一些季节性水塘,大量繁殖的蓝藻使得水塘充满细菌。当水塘干涸以后,大象死亡就停止了,所以这可能就是死因。博茨瓦纳估计拥有13万头大象,是世界上最大的大象种群,每年吸引着大量游客。
5、人脸识别垃圾桶[8]
北京市西城区德胜街道新风街一号院上线了人脸识别垃圾桶。居民预先提交一张个人脸部的照片,就能完成注册。以后扔垃圾时,垃圾桶将用数秒的时间自动“刷脸”。在识别出居民身份后,垃圾桶盖打开,还能根据垃圾重量为居民返还一定积分。
对于没有注册的居民,可以手动按下按钮或刷卡,打开垃圾桶盖。
6、一句话消息
一项英国调查[9]发现,普通工人到32岁时会就会感到职业倦怠。
中国[10]发行首枚内嵌 NFC 芯片的邮票。集邮者可通过中国邮政 App 读取邮票序列码、荧光暗码、芯片 ID 等等。
小米[11]申请了三折式折叠手机专利,完全展开后,萤幕可以变成三倍大。只是手机厚度惊人,更像充电宝。
亚马逊[12]推出了云游戏服务 Luna,跟谷歌的 Stadia 很像,就是在机房运行游戏,用户不需要买主机,只要有上网设备就能玩。这个服务有可能进中国。
中国[13]宣布,2060年实现碳中和,即二氧化碳的排放量和吸收量相等。由于中国是世界最大碳排放国,这个承诺的难度很大。此前,拜登说当选后,美国会在2050年实现碳中和,特朗普则根本不在乎这件事。
美国人[14]由于疫情在家办公,每天全国可以节省6000万小时。这些时间本来都是浪费在路上,现在可以用来干其他事。
芝加哥商品交易所[15]开设水期货合约,可以对水价下注。由于气候变暖和水资源短缺,未来的淡水价格可能出现剧烈波动。

文章

1、如何提高 Node.js 的 libuv 性能[16](英文)
Node.js 的底层 JS 引擎是 v8,异步库 是 libuv。本文介绍一个小技巧,通过设置UV_THREADPOOL_SIZE参数,提高 libuv 性能。
2、俄罗斯的图-160用25小时飞了2万公里,这是不是一项假纪录?[17](中文)
2020年9月19日,俄罗斯的两架Tu-160战略轰炸机进行了一次携弹训练飞行:历时25小时,飞行超过2万公里。俄罗斯航空航天部队远程航空兵指挥官谢尔盖·科比拉什中将说:这次飞行打破了此类飞机“最远航程”和“不间断飞行”的世界纪录。果真如此吗?
3、前端开发的 VS Code 插件推荐[18](英文)
作者推荐他每天使用的 VS Code 插件,专门用于前端开发。
4、别在网页上显示“注册”[19](英文)
很多网站在页面上有注册按钮或注册链接(上图),作者认为,“注册”这个词大大降低了用户进一步使用的欲望,因为这要求用户付出操作成本,但没有给出足够的诱因。
经过他的实验,只要将“注册”改成“开始使用”或“免费试用”,就能将转化率提高三倍。
5、11 种 Node.js ORM 库的简介[20](英文)
作者介绍了11种常用的用于连接数据库的 Node.js ORM 库。
6、如何通过new Function创建 async 函数[21](英文)
JavaScript 语言允许通过Funtion()生成函数,async 函数能通过这种方式生成吗?
7、Intl.RelativeTimeFormat():相对时间格式化[22](中文)
有时需要显示相对时间,比如“5分钟前”、“2天前”等等。一般使用外部库来实现,其实浏览器原生的 Intl.RelativeTimeFormat API 就可以做到。(@232650413[23] 投稿)
8、如何写一个 Node.js 命令行程序,获取 Slack 的 OAuth 授权?[24](英文)
本文是一个 OAuth 授权示例,演示如何用 Node.js 在命令行获得 Slack 的授权,从而可以操作 Slack 的 API。
9、交互式《蒙娜丽莎》画像[25](英文)
传说中,不管你从哪个角度看《蒙娜丽莎》画像,都会感到画像中的女子在看着你。TensorFlow 的官方博客,演示怎么用 TensorFlow.js,制作一个交互式的《蒙娜丽莎》画像,摄像头捕捉观看者的角度,然后自动改变画像的眼神。

工具

1、Tables[26]
谷歌发布的新产品,主要用于项目管理。跟 Trello 有点类似。
2、photoflare[27]
跨平台的图像编辑桌面软件,相对小巧简单。
3、visx[28]
Airbnb 推出的一套数据可视化组件库,基于 D3 和 React。
4、Release[29]
一个 Node.js 库,一键生成软件包的 changelog。
5、Blacklight[30]
一个在线工具,可以检查某个网站使用了哪些追踪技术。
6、Wewatermark[31]
一个在线工具,可以为图片加上各种各样的水印。
7、Headless recorder[32]
一个 Chrome 浏览器插件,自动记录你的操作,转成 Puppeteer 或 Playwright 脚本,从而实现浏览器操作自动化。
8、wave-share[33]
一个概念性项目,两台计算机通过声波通信!A 计算机把数据转成音频,通过喇叭发声;B 计算机听到后,对声波解码,从而与 A 建立 WebRTC 的点对点连接。要不是这种通信速率太慢,通过声波分享文件也未尝不可。
9、Pixelixe Photo Editor[34]
一个 Chrome 浏览器插件,在浏览器里面打开一个图片编辑器。
10、Taskwarrior[35]
一个命令行的待办事项(todo)管理软件,功能相当强。(@nosarthur[36] 投稿)

资源

1、Malware Bazaar[37]
恶意软件数据库,提供恶意软件样本下载。
2、CurrentlyDown.com[38]
该网站可以查询,哪些服务现在正在宕机,以及宕机的历史记录。
3、Flexbox Defense[39]
一个在线的塔防小游戏,通过 CSS Flexbox 的练习,击退一波波进攻的敌人。
4、WebRTC 教程[40]
一本英文的免费电子书,介绍 WebRTC 的基础知识。

图片

1、一天的毫秒数[41]
下面计算式的结果,就是一天的毫秒数。
这个式子的来历如下。
2、劳拉的变化[42]
电子游戏《古墓丽影》主人公劳拉,从1996年第一代到2018年最新一代的变化。

文摘

1、个人护城河[43]
我最喜欢的职业建议是发展“个人护城河”。
你的个人护城河是一组独特的且不断累积的竞争优势,别人很难学习,或者很难做到。如果你有了它,你会让自己变得无法取代。
你必须找到属于你的特殊东西,而且这些东西会随着时间的流逝而增加价值。
如何找到自己的护城河?
你可以问自己:对我来说,什么事情容易做,而对别人却很难?我所拥有的技能中,哪些是其他人模仿会非常困难的?或者,你所爱的、擅长的事物,跟社会需要的事物有什么交汇点?
护城河会随着条件的变化而变化。比如,录音技术诞生之前,稀缺的是音乐本身,你想听音乐,就需要有一个艺术家给你现场表演。现在,音乐录音到处都是,稀缺的是策划、发行和个性的展示。
同样地,在社会中,以前的稀缺资源是金钱和特殊关系。而在互联网时代,稀缺的是特定知识和某些稀有技能。
漫画家斯科特·亚当斯(Scott Adams)曾经提过一种建立个人护城河的方法,就是找到自己最擅长的2个~3个事物的交集。比如,他既不是最好的漫画家,也不是最好的作家,也不是最好的企业家,但他可以是最好的商业类漫画短文作者,这就是他的护城河。
总之,你要发现对你来说容易而对他人却很难的事物,并在这些事物上变得出色,然后利用它来积累社会和金融资本。
2、《国家地理》杂志:石峁遗址之谜[44]
几十年来,黄土高原北部石峁村的村民,一直认为村里尘土飞扬的山丘上,那些摇摇欲坠的石墙,不过是古代长城的一部分,并没有什么特别。
但是,2012年开始的系统挖掘,证实这里曾经有过一座皇城,距今约4000年,史书没有任何记载,是目前已知的中国史前文明最大的遗址,为中华文明的起源带来了许多未解之谜。
石峁遗址出土了大量玉器,做成圆盘、剑刃和节杖的形状。当地并不产玉,这些玉器要么来自贸易,要么来自战争的掠夺。如此大的数量,证明这个城池地位非凡。
最奇妙的东西就是4000年前遗留下来的宏伟城墙,总长将近10公里,城墙内有一个高达70米金字塔形建筑,大约是埃及大金字塔一半的高度。金字塔平台上方是庞大的宫殿建筑群,宫殿建筑内有壁画、玉器、彩绘,以及人类遗骸,表明这里进行过祭祀。
城墙上还发现了70幅令人惊叹的浮雕雕塑,形状是野兽的兽头。
碳14法判定这个遗址可以追溯到4300年前,跟埃及金字塔是同一时间,比长城最古老的遗迹要早2000年,比现在已知最早的中原文明遗址(夏朝遗址)要早500年。而且,它的位置在那些夏朝遗址以北几百公里,表明中原文明来自北方。
遗址的建筑规模如此庞大,仅仅城墙就需要125,000立方米的石材。这意味着,这个城市的人口很多,大概在10,000至20,000之间。
这个遗址的繁荣期是从大约公元前2300年到公元前1800年,将近500年。然后,它突然被神秘地废弃了,原因很可能是气候。公元前3000年,石峁遗址成立时,黄土高原还是相对温暖潮湿的气候。历史记录表明,从公元前2000年到公元前1700年,气候迅速转变为更加干燥和凉爽。湖泊干枯、森林消失、沙漠侵袭,迫使人们离开石峁南迁。
如今,石峁遗址静静地躺在鄂尔多斯沙漠的边缘,被灰尘、土石和寂静所笼罩。但是,这座世界上最古老的城市之一,正在被慢慢揭开面纱,将让我们对中华文明的起源有更多的了解,颠覆现在的许多观点。

言论

1、
如果你无法将产品的价格翻倍,那么你的产品就不占有市场优势。
-- 《创业公司的功夫》[45]
2、
苹果公司在发布新的操作系统(iOS、iPadOS、watchOS )之前,都公开了测试版,但是等到正式版上市,并没有多少改进,依然有很多 Bug。
那么,公开测试版的意义何在?真的是为了提高正式版的质量吗?……无论最初的目的是什么,公共测试版现在都是一种营销工具,一种大肆宣传新版本、并让苹果爱好者购买与新版本一起发布的新产品的方式。
-- 《苹果软件的测试版》[46]
3、
关系数据库有两个优势,一个是节省存储空间,另一个是可以跟踪复杂的数据关系。
但是,现在的存储设备很便宜,反而是 CPU 的处理时间更贵。所以,我建议客户,如果不需要处理复杂的数据关系,那就避免使用关系型数据库,而使用 NoSQL 数据库。
-- Hacker News 读者[47]
4、
有一种说法,年龄在35岁以上的人,建立学术影响力的唯一机会是编写一本教科书。
-- Mark Seemann[48]
5、
理性的人使自己适应世界,不理性的人不愿意妥协,坚持要求世界适应他的方式。因此,一切进步都取决于不理性的人。
-- 萧伯纳
6、
Zoom 之类的远程会议软件已经成为标准,疫情结束后,很多商务旅行永远不会回来了。
-- Hacker News 读者[49]

回顾

2018年的本周(第 24 期):新人进入软件行业的建议

References

[1]
 ruanyf/weekly: 
https://github.com/ruanyf/weekly
[2]
 《谁在招人?》: 
https://github.com/ruanyf/weekly/issues/1392
[3]
 出处: 
https://www.instagram.com/p/CFn6HzFJvEd/
[4]
 眼神校正功能: 
https://appleinsider.com/articles/20/06/22/facetime-eye-contact-correction-feature-to-launch-with-ios-14
[5]
 根据 DNA 生成画像: 
https://www.nature.com/articles/d41586-020-02545-5
[6]
 推特的图像预览 Bug: 
https://www.bbc.com/news/technology-54234822
[7]
 大象死亡之谜: 
https://www.cbc.ca/news/technology/elephant-deaths-botswana-1.5732396
[8]
 人脸识别垃圾桶: 
https://finance.sina.cn/china/gncj/2020-09-18/detail-iivhvpwy7404451.d.html
[9]
 一项英国调查: 
https://www.studyfinds.org/average-worker-career-burnout-age-32/
[10]
 中国: 
https://www.chinaz.com/2020/0927/1190053.shtml
[11]
 小米: 
https://www.kocpc.com.tw/archives/345335
[12]
 亚马逊: 
https://www.amazon.com/luna/landing-page
[13]
 中国: 
https://cn.nytimes.com/china/20200924/china-climate-change/
[14]
 美国人: 
https://bfi.uchicago.edu/working-paper/60-million-fewer-commuting-hours-per-day-how-americans-use-time-saved-by-working-from-home/
[15]
 芝加哥商品交易所: 
https://www.wsj.com/articles/cme-nasdaq-to-launch-water-futures-contract-11600853401
[16]
 如何提高 Node.js 的 libuv 性能: 
https://hackernoon.com/how-libuv-thread-pool-can-boost-your-node-js-performance-bel3tyf
[17]
 俄罗斯的图-160用25小时飞了2万公里,这是不是一项假纪录?: 
https://xw.qq.com/cmsid/20200923A0KGIE00
[18]
 前端开发的 VS Code 插件推荐: 
https://dev.to/klamserdev/vs-code-extensions-i-use-daily-568i
[19]
 别在网页上显示“注册”: 
https://www.gkogan.co/blog/stop-asking-me-to-sign-up/
[20]
 11 种 Node.js ORM 库的简介: 
https://www.prisma.io/dataguide/database-tools/top-nodejs-orms-query-builders-and-database-libraries-in-2020
[21]
 如何通过
new Function
创建 async 函数: 
https://davidwalsh.name/async-function-class
[22]Intl.RelativeTimeFormat()
:相对时间格式化: 
http://www.deathghost.cn/article/javascript/53
[23]
 @232650413: 
https://github.com/ruanyf/weekly/issues/1420
[24]
 如何写一个 Node.js 命令行程序,获取 Slack 的 OAuth 授权?: 
http://thecodebarbarian.com/oauth-in-nodejs-cli-apps.html
[25]
 交互式《蒙娜丽莎》画像: 
https://blog.tensorflow.org/2020/09/bringing-mona-lisa-effect-to-life-tensorflow-js.html
[26]
 Tables: 
https://tables.area120.google.com/u/0/about#/
[27]
 photoflare: 
https://github.com/PhotoFlare/photoflare
[28]
 visx: 
https://airbnb.io/visx/
[29]
 Release: 
https://github.com/vercel/release
[30]
 Blacklight: 
https://themarkup.org/blacklight
[31]
 Wewatermark: 
https://wewatermark.com/
[32]
 Headless recorder: 
https://github.com/checkly/headless-recorder
[33]
 wave-share: 
https://github.com/ggerganov/wave-share
[34]
 Pixelixe Photo Editor: 
https://pixelixe.com/blog/edit-any-image-browsing-the-web-with-Pixelixe-Photo-Editor-Chrome-extension/
[35]
 Taskwarrior: 
https://taskwarrior.org/
[36]
 @nosarthur: 
https://github.com/ruanyf/weekly/issues/1426
[37]
 Malware Bazaar: 
https://bazaar.abuse.ch
[38]
 CurrentlyDown.com: 
http://currentlydown.com/
[39]
 Flexbox Defense: 
http://www.flexboxdefense.com/
[40]
 WebRTC 教程: 
https://webrtcforthecurious.com/
[41]
 一天的毫秒数: 
https://twitter.com/3blue1brown/status/1282480577036251136
[42]
 劳拉的变化: 
https://twitter.com/ballmatthew/status/1292832548377305089
[43]
 个人护城河: 
https://eriktorenberg.substack.com/p/build-personal-moats
[44]
 《国家地理》杂志:石峁遗址之谜: 
https://www.nationalgeographic.com/history/2020/08/mysterious-carvings-evidence-human-sacrifice-uncovered-ancient-city-china/
[45]
 《创业公司的功夫》: 
https://blog.asmartbear.com/kung-fu.html
[46]
 《苹果软件的测试版》: 
https://leancrew.com/all-this/2020/09/betas/
[47]
 Hacker News 读者: 
https://news.ycombinator.com/item?id=24542193
[48]
 Mark Seemann: 
https://blog.ploeh.dk/2020/09/14/we-need-young-programmers-we-need-old-programmers/
[49]
 Hacker News 读者: 
https://news.ycombinator.com/item?id=24576832
继续阅读
阅读原文