这里记录每周值得分享的科技内容,周五发布。
本杂志开源,访问 GitHub 的 ruanyf/weekly[1] 仓库获取源文件。欢迎提交 issue 投稿或推荐你的项目。
由于微信不允许外部链接,你需要点击页尾左下角的 “阅读原文”,才能访问文中的链接。
封面图片:上海世博源,2019。

刊首语

一件事“做得好”比较好,还是“做得快”比较好?
鱼和熊掌不能得兼,你怎么选择:做得好,付出的代价可能是耗时长、成本高;做得快,意味着完成度低、不是精品。
我很赞同一篇文章[2]的结论:做得快更好。
做得快不仅可以让你在单位时间内完成更多的工作,而且 因为你工作得很快,所以你会觉得成本低,从而倾向于做更多。
写一篇博客,你可能需要两天。这是很高的时间成本,你觉得太贵了,于是你很少写。但是,做好一件事的唯一方法,就是多做这件事。 做得越快,这件事的时间成本就越低,你会愿意做得更多。
人们总是倾向于,多消费时间成本低的东西。网站很快,就会多访问;搜索很快,就会多搜索;文章很容易读懂,就会多读几篇。做得快的核心,就是要让时间成本降下来,从而多做。

家庭保障规划

周刊第 60 期介绍了 孙明展老师 公众号。当时参与活动的朋友挺多的,现在活动搞第二期了,孙老师团队就联系我,想再发一次消息。
孙老师毕业于广州中山大学,现在还是金融系、统计系的(兼职)硕士导师。他曾经在一家世界500强保险公司担任精算师,设计各种产品。
他发现很多人不了解保险,容易上当,就开办了自己的公众号,专门揭露各种理财骗局和保险套路。目前,已经有500多篇原创文章,介绍理财知识、保险案例分析等等,值得一看。
他创立的谱蓝公司,主营业务就是财务咨询,普及保险理财知识,解决家庭保障需求。进一步的情况,可以搜索“谱蓝”。
这次的推广活动,免费向大家赠送 家庭保障定制化服务 。如果你被保险代理人坑过,心有余悸,或者对各种保单或险种感到很难懂,拿不定主意,再或者就是单纯想增加家庭财务保障,都可以参加这个活动。活动内容主要是,根据报名情况进行电话或网络沟通,了解家庭背景资料以后,回答保险理财咨询。
1.个人及家庭成员 保障责任综合评估2.现有保险产品的 性价比分析比较3.基于家庭状况和需求的 综合保障规划构建
微信扫描关注下面的公众号,然后输入 "阮一峰 + 你的手机号码" ,就可以参加这个活动了。参加者都可以获赠一份价值 800元 的免费保障规划。

资讯

1、变色纹身[3]
德国科学家开发出一种特殊颜料,会随着人体内葡萄糖、白蛋白或 pH 值的变化而改变颜色。它们纹在身上以后,就可以让患者和医生通过颜色,实时监测糖尿病和肾脏疾病等慢性疾病。
你可以对着纹身拍照,然后让手机 App 解读颜色变化。不过,该颜料尚未在人体实验,纹身都是在猪身上进行的。
2、屏幕最多的汽车[4]
本田公司最新的电动车“本田 e”,驾驶台上安装了五块触摸屏。如果算上头顶的中央后视镜,一共有六块屏幕,是世界上屏幕最多的小汽车。
五块触摸屏之中,左右两侧是两块后视镜,驾驶盘前是仪表盘(8.8英寸),旁边则是两块娱乐用的触摸屏(12.3英寸),分别供司机和前排乘客使用。
3、新西兰计划清除食鸟害虫[5]
新西兰由于地理的孤立性,保存了大量珍稀动物。但是,这些动物,尤其是鸟类以及鸟蛋,常常被其他动物捕食,使得新西兰大约80%的珍稀野生鸟类面临灭绝的危险。
因此,新西兰决定在野外消灭这些鸟类的天敌,主要是白鼬、老鼠和负鼠。目前,首都惠灵顿的郊外已经基本消灭了这些害虫。
4、Fortnite 世界杯[6]
热门游戏 Fortnite 最近举行自己的世界杯比赛,共耗资3000万美元。美国16岁少年 Kyle 夺得冠军,奖金300万美元。
这个奖金已经超过了温布尔登网球赛的冠军,只比美国公开赛的冠军少80万美元。这就是说,电子竞技的奖金已经跟顶级的职业体育运动不相上下了。Fortnite 世界杯最后一天的决赛在 YouTube 直播,有近900万人观看。
5、更高效率的光伏电池[7]
加州大学伯克利分校的研究人员宣布,他们研发出了更高效率的光伏电池,可以让超轻型无人飞机连续飞行数天。
目前,商用光伏电池的光能转化效率是23%,该团队将效率提高到29%,还声称不久的将来有望达到50%。
6、Megapack[8]
特斯拉虽然是汽车公司,但是核心技术是电池。它在推出家庭电池包 Powerpack 以后,又推出了企业级电池包 Megapack,类似集装箱大小,一次可以储存3000度电。
300多个 Megapack 就可以组成一个电能储存厂,保存100万度电,能够满足旧金山6个小时的用电需求。这种电能储存厂的安装速度也很快,只要用卡车把 Megapower 拉到现场以后,可以快速建厂。
7、软体机器人[9]
清华大学和加州大学伯克利分校的研究人员,研发了一种新型软体机器人。它就是上图左下角的那个金属片,长3厘米宽1.5厘米,看起来像一张弯曲的纸条,但每秒能够前进60厘米,而且被踩踏也没关系,可以说就是一只电子蟑螂。
这种机器人可以经受自身重量100万倍的踩踏,可以爬上15度的坡,还可以背负一颗花生米前进。
8、Tumblr 被甩卖[10]
8月13日,博客平台 Tumblr 以 300万美元卖给了 WordPress 的母公司。2013年,雅虎收购 Tumblr 花了11亿美元,这意味着仅仅六年时间,Tumblr 变得一钱不值。
雅虎公司创造了一项记录,他家收购的所有优质产品都被毁掉:GeoCities、Delicious、Flickr、Tumblr 等等。当年,谷歌创始人找上门要求被收购,雅虎拒绝;微软提出高溢价收购雅虎,雅虎拒绝。该公司的最成功一件事,是把雅虎中国卖给阿里巴巴,换来后者39%的股份。
9、一句话消息
软银集团的远景基金[11](Vision Fund)宣布筹集到第二期的1080亿美元资金。第一期已经有1000亿美元,这些天文数字的金钱都会投入高科技产业,主要是人工智能、芯片、机器人等方向。
日本[12]批准第一例人体细胞移植入小鼠胚胎,长大以后就是带有人类细胞的老鼠。实验目的是让人类细胞在老鼠身上发育,长出人体器官,最后再移植回人体。
美国[13]庆祝北美大陆横贯铁路建成150周年,世界最大的蒸汽火车头7月26日举行了纪念性行驶。该铁路从纽约到旧金山,1869年建成。

文章

1、面向对象编程:一万亿美元的错误[14](英文)
这篇长文详细解释了,面向对象编程的一些缺点。比如,OOP 引入了太多的层,大项目很快就会变得非常复杂,而且由于对象内部有状态,不能保证同样的输入得到同样的输出,因此很难测试。
2、我盖了一栋自己的房子[15](中文)
台湾网友的长篇帖子,海量图片,记录他在老家的土地上,请建筑师设计了一栋三层钢结构的民宅,然后再请施工队盖出来,完成各种内外装修,直到入住。
3、如何在 Bash 提示符显示动态信息[16](英文)
Zsh 的命令行提示符会显示当前目录的 Git 分支名(上图),这在 Bash 中如何做到?
4、如何使用 AWS S3 和 Cloudflare 托管免费网站[17](英文)
本文一步步介绍如何将静态网站托管在 AWS S3 上面,然后用 Cloudflare 建立 CDN,这都是免费的。
5、CSS 的 background-image 属性是反模式[18]
作者提出,如果图像是内容一部分,就不应该设置成 CSS 的背景图像,而应该使用<picture>标签加上 CSS 的object-fit属性。
6、如何用 Puppeteer 破解滑块验证[19](英文)
很多网站现在都有滑块验证,识别用户是否为真人。但是,其实它们都可以用 Puppeteer 的自动化脚本破解,本文展示怎么做到这一点。
7、ping 的故事[20](英文)
ping是最常用的网络命令之一。这篇文章是ping的作者介绍他怎么写出这个工具。他以前的工作是研究声纳和雷达,声纳发出的声音脉冲就叫做ping
8、从图片优化说起[21](中文)
谈谈如何使用 Node.js 进行各种图片操作,优化 Web 图片体验。(@cj1128[22] 投稿)
9、lerna 入门教程[23](英文)
对于大型项目,多个模块放在一个代码仓库里面会比较方便。lerna 是管理这种多模块复合仓库的流行工具,本文介绍 lerna 的最简单用法。
10、iOS 和 Android 共享代码的隐藏成本[24](英文)
Dropbox 一直使用C++编写手机代码,同时支持iOS和安卓,这样只写一次代码就够了。
现在它也放弃了,不得不改用Swift和Kotlin各写一次。主要原因之一是,招不到同时懂前端和C++的程序员。

工具

1、hostyoself[25]
一个开源工具,可以架设服务,连接本地计算机,让其他人可以通过互联网访问本地的文件夹和文件。
2、listmonk[26]
一个开源的新闻邮件和邮件列表发送服务,带有管理后台。
3、go-pry[27]
Go 语言互动式的 REPL 环境,可以直接运行 Go 脚本。
4、Dato[28]
MacOS 菜单栏系统时钟的替代品,显示月历和时区,免费软件。
5、osgood[29]
一个专门运行 JavaScript 脚本的 HTTP 服务器。你可以把它想象成内置了 Express 框架的 JS 运行时。
6、BitMatrix[30]
矩阵数据结构的 JavaScript 库,使用了底层的二进制接口,性能较好。(@cnwhy[31] 投稿)
7、Vugu[32]
一个使用 Go 语言写 HTML 前端页面的工具。完全不用 JavaScript,就能写出前端页面。未来的全栈将不再限于 JS,后端语言都可以写前端。
8、video-object-removal[33]
这个工具使用机器学习算法,去除视频里面的运动物体。
9、TabNine[34]
基于深度学习的代码补全工具,号称支持所有语言。(@ifrontend-xyz[35] 投稿)
10、licia[36]
这个库收集 Web 开发的各种 JavaScript 小工具,使得开发者只用加载它一个库即可,跟 lodash 的思路有点像。(@surunzi[37] 投稿)
11、civitas[38]
一个 JavaScript 写的网页策略模拟类游戏。

资源

1、《使用 Julia 语言学习统计学》[39](PDF,英文)
免费电子书,大学本科的统计学入门教材,其中的示例使用简单的 Julia 语言。
2、爱丽丝和鲍勃:密码学最著名的两个人[40]
爱丽丝(Alice)和鲍勃(Bob)通常用来解释加密协议,指代用户 A 和用户 B。该网站收集密码学发展过程中,使用这两个人作为例子的各种历史资料。
3、astronaut.io[41]
很多上传到 Youtube 的视频,从来没有人观看。该网站会随机选择那些很少人观看(接近零观看)的视频,播放给你看。
4、bootlin[42]
快速查看和搜索 linux 内核源代码的网站。(@kele1997[43] 投稿)
5、leetcode 多线程同步题[44]
Leetcode 新增的多线程同步的题目。(@DoctorLai[45] 投稿)
6、家庭关系称谓查询[46]
根据对亲戚关系的描述,返回正确的称谓。(@DoctorLai[47] 投稿)

图片

1、英国没有入侵的国家[48]
英国历史上是“日不落帝国”,殖民地遍布全球。历史学家统计以后发现,现在全球近200个国家和地区,只有22个从来没有被英国入侵过(上图白色的部分)。
2、孟菲斯集团的家具[49]
上个世纪80年代,意大利米兰的孟菲斯集团招聘了很多年轻的设计师,他们设计了很多后现代主义风格的家具。
椅子。
桌子。
沙发。
架子。
柜子。

文摘

1、三氟化氯[50]
我们知道,沙子可以灭火。有一位读者提问,是否存在某样东西会让沙子着火。
事实上,这种物质是存在的,它碰到沙子,沙子会烧起来。它就是三氟化氯。
三氟化氯是人类已知的最强氟化剂,比任何一种氧化剂的效果都更强烈。它与大多数无机和有机材料都会产生激烈的化学反应,可以在没有任何火源的情况下,让许多不易燃烧的材料发生燃烧,甚至爆炸。
由于它的氧化能力比氧更强,因此可以让已经烧到无法再烧的东西,继续燃烧下去,比如沙子、砖块和石棉瓦片,它都能让它们烧起来。它甚至还会点燃,已经在氧气中烧成灰烬的材料。一次工业事故中,900公斤的三氟化氯泄漏,使得30厘米的混凝土和90厘米的砾石层被烧穿。除了使用氮气和惰性气体外,没有已知的方法能够抑制该种物质的燃烧。
第二次世界大战期间,德国人曾经想把它用于火焰喷射器,后来发现太难控制,只能放弃。目前,它主要用于半导体工业,清除电路板表面的氧化物。
它能让玻璃烧起来,所以不能放在玻璃容器中,只能保存在钢、铜、铝等金属容器中,因为这些金属表面会形成一层金属氟化物薄膜,防止金属与它发生化学反应。一位化学家写道:“如果这种涂层熔化或被擦掉,操作者就会面临金属氟化物火灾的风险。这时,我推荐一双好的跑鞋。”
2、为什么飞机窗户都是圆角的?[51]
如果你曾经坐过飞机的靠窗座位,可能已经注意到窗户是圆角的。你有没有想过这是为什么?
答案很简单:保证飞行安全。
要了解背后的原因,我们需要回到1954年。那时,飞机制造业开始制造专门的民用客机。
自从莱特兄弟发明飞机以来,几乎所有的飞机都使用螺旋桨,这已经被证明适用和可靠。但是,螺旋桨无法令飞机飞得更快,而且具有巨大的噪音和振动,使得飞机的行程极不舒适。对于战斗机,这不是一个问题,但是对于民用航空,乘客舒适性是一个优先事项。
人们把目光转向喷气发动机,由于喷气发动机包含在外壳里面,因此不用考虑空气阻力,可以推动飞机穿过声障。而且,喷气式飞机相对安静,对乘客没有打扰。
1949年,英国航空业先驱 de Havilland 开设了自己的飞机公司,制造了第一架民用的喷气式客机,称为彗星飞机(comet)。
彗星飞机的机翼内装有四个喷气发动机,比传统的螺旋桨飞机速度高出近50%。而且,它具有增压舱设计,可以在高空保持跟平地一样的气压,带给乘客平稳舒适的乘坐体验。但是,有一个地方,它的设计跟传统飞机一样:它的窗户是方形的。
这架飞机立即在世界各地取得了成功,各国纷纷订购。可是,意想不到的事情出现了。在服役的第一年,就发生了两起飞机坠毁事故。1953年3月3日,加拿大航空公司的一架飞机坠毁,机上11人全部遇难。1953年5月2日,另一架飞机在印度坠毁,造成43人死亡。最初的调查都认为,这是飞行员错误引起的,而不是彗星飞机本身的问题,可以照常飞行。
接下来的1954年,又发生了两起坠毁事故。1954年1月10日,一架从罗马飞往伦敦的飞机坠毁,35人遇难。1954年4月8日,一架南非的飞机坠毁,21人遇难。
经过四起坠机事故,英国政府终于决定对彗星飞机展开彻底调查。调查人员怀疑,事故原因与气压有关。高空没有足够的氧气供人们呼吸,因此飞机内部是加压的,这就要求飞机是密封的,防止氧气泄漏。如果在高空,飞机有裂缝,内部的空气就会冲出来,力量之大,有时甚至会引起机身撕裂。
调查人员经过了各种测试,甚至将整个机舱浸没在一个巨大的水箱中,然后反复地加压和减压。他们终于找到了原因,一切都跟那些方形窗户有关。
当飞机内部反复加压和减压,数月之后,飞机金属机身的强度就会逐渐减弱,这叫做金属疲劳。机身的方形窗口会带来尖角,就会有叫做应力集中的过程,那些尖角处会变得比其他地方更脆弱,最终裂缝开始在那些角落形成。其中一个裂缝变得足够宽时,机舱内的压缩空气就会冲出来,从而撕裂飞机。
以前有过加压舱的飞机,但由于它们是螺旋桨驱动的,只能在较低的高度飞行,机身应力不那么严重。直到喷气动力的彗星飞机出现,飞机才能飞到更高的高度,使得机身应力超过了断裂点。可以这样说,彗星飞机的悲剧从第一天试飞就注定了。
彗星公司立刻将所有窗户改成了圆角,并且采取了其他安全措施。但为时已晚,它的声誉受到了致命的打击,航空公司不再愿意购买它的飞机。彗星公司最终在1960年将自己卖掉了。美国的波音公司和洛克希德公司虽然进入喷气式客机市场较晚,但被认为更加安全,从而带来了属于美国的喷气机时代。

言论

1、
软件的运行速度快,说明这个软件是专注的。
-- 《快的软件,最好的软件》[52]
2、
我们要把社会责任感强烈的人培养成领袖,还要把个人成就感强烈的人培养成英雄。
领导者的责任就是要使自己的部下成为英雄,而自己成为领袖。
-- 任正非,1998年
3、
面向对象编程的问题是,每个对象都有自己的状态,开发程序时,必须记住当前所有对象的状态。
为了让我们的生活更轻松,最好只有一小部分代码库处理状态,其他代码都是无状态和纯的。实际上,这就是前端的 Redux 库取得巨大成功的主要原因。
-- 《面向对象编程:一万亿美元的错误》[53]
4、
20世纪50年代,建造月球基地是一项工程和技术挑战。今天,它基本上是一个政治和经济挑战,难点是说服足够多的人,花时间和精力去做这件事是值得的。
-- HN 读者[54]

招聘信息

周刊讨论区的程序员招聘帖[55],有大量工作/实习岗位,欢迎查看。
同时,欢迎企业免费张贴招聘信息。如果希望发在周刊上,可以联系我(Email:[email protected][56] ),每条价格 250 元。
1、秘猿科技
区块链创业公司,为加密经济提供区块链基础设施和服务,主要产品有 Nervos、火币金融公链、CITA 等,全部开源。
工作地点:杭州 或者 remote。诚意招聘以下岗位:
高级区块链工程师:需要熟悉 Rust 语言。高级后端工程师:熟悉分布式系统开发。首席安全官:5年以上安全从业经验。高级测试经理:从事区块链底层的自动化测试。
点击这里[57],查看详情。简历投递:[email protected][58] (一天内回复)

回顾

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

References

[1]
 ruanyf/weekly: 
https://github.com/ruanyf/weekly
[2]
 一篇文章: 
http://jsomers.net/blog/speed-matters
[3]
 变色纹身: 
https://www.sciencealert.com/there-is-now-an-actual-tattoo-that-can-change-colour-based-on-glucose-levels
[4]
 屏幕最多的汽车: 
https://insideevs.com/news/361822/honda-e-digital-dashboard/
[5]
 新西兰计划清除食鸟害虫: 
https://www.bbc.com/news/world-asia-48702762
[6]
 Fortnite 世界杯: 
https://techcrunch.com/2019/07/28/fortnite-world-cup-has-handed-out-30-million-in-prizes-and-cemented-its-spot-in-the-culture/
[7]
 更高效率的光伏电池: 
https://techxplore.com/news/2019-07-drones-days-photovoltaic.html
[8]
 Megapack: 
https://www.tesla.com/megapack
[9]
 软体机器人: 
https://spectrum.ieee.org/automaton/robotics/robotics-hardware/surprisingly-speedy-soft-robot-survives-being-stepped-on
[10]
 Tumblr 被甩卖: 
https://www.axios.com/tumblr-verizon-sale-automattic-wordpress-5d8d374b-17af-49fb-9769-2ffb82b25df7.html
[11]
 软银集团的远景基金: 
https://www.axios.com/softbank-raising-108-billion-vision-fund-2-fa270d8e-ce68-4825-a155-4f838e9f83be.html
[12]
 日本: 
https://www.nature.com/articles/d41586-019-02275-3
[13]
 美国: 
https://www.chicagotribune.com/visuals/ct-viz-train-big-boy-steam-locomotive-20190726-6p6csnoqhrebdbfgg6sjcb56ga-story.html
[14]
 面向对象编程:一万亿美元的错误: 
https://medium.com/codeiq/object-oriented-programming-the-trillion-dollar-disaster-%EF%B8%8F-92a4b666c7c7
[15]
 我盖了一栋自己的房子: 
https://www.mobile01.com/topicdetail.php?f=360&t=5855017
[16]
 如何在 Bash 提示符显示动态信息: 
https://dev.to/awwsmm/create-a-dynamic-prompt-string-in-bash-3617
[17]
 如何使用 AWS S3 和 Cloudflare 托管免费网站: 
https://medium.com/better-programming/how-to-host-your-personal-website-for-free-3101c4ab2e49
[18]
 CSS 的 background-image 属性是反模式: 
https://nystudio107.com/blog/the-css-background-image-property-as-an-anti-pattern
[19]
 如何用 Puppeteer 破解滑块验证: 
https://medium.com/@filipvitas/how-to-bypass-slider-captcha-with-js-and-puppeteer-cd5e28105e3c
[20]
 ping 的故事: 
https://ftp.arl.army.mil/~mike/ping.html
[21]
 从图片优化说起: 
https://cjting.me/2019/07/29/image-optimization/
[22]
 cj1128: 
https://github.com/ruanyf/weekly/issues/743
[23]
 lerna 入门教程: 
https://blog.npmjs.org/post/186494959890/monorepos-and-npm
[24]
 iOS 和 Android 共享代码的隐藏成本: 
https://blogs.dropbox.com/tech/2019/08/the-not-so-hidden-cost-of-sharing-code-between-ios-and-android/
[25]
 hostyoself: 
https://github.com/schollz/hostyoself
[26]
 listmonk: 
https://github.com/knadh/listmonk
[27]
 go-pry: 
https://github.com/d4l3k/go-pry
[28]
 Dato: 
https://apps.apple.com/us/app/dato/id1470584107?mt=12
[29]
 osgood: 
https://github.com/intrinsiclabs/osgood
[30]
 BitMatrix: 
https://github.com/cnwhy/BitMatrix
[31]
 cnwhy: 
https://github.com/ruanyf/weekly/issues/687
[32]
 Vugu: 
https://www.vugu.org/doc/start
[33]
 video-object-removal: 
https://github.com/zllrunning/video-object-removal
[34]
 TabNine: 
https://tabnine.com/
[35]
 ifrontend-xyz: 
https://github.com/ruanyf/weekly/issues/690
[36]
 licia: 
https://github.com/liriliri/licia
[37]
 surunzi: 
https://github.com/ruanyf/weekly/issues/691
[38]
 civitas: 
https://github.com/sizeofcat/civitas
[39]
 《使用 Julia 语言学习统计学》: 
https://people.smp.uq.edu.au/YoniNazarathy/julia-stats/StatisticsWithJulia.pdf
[40]
 爱丽丝和鲍勃:密码学最著名的两个人: 
http://cryptocouple.com/
[41]
 astronaut.io: 
http://astronaut.io
[42]
 bootlin: 
https://elixir.bootlin.com/linux/latest/source
[43]
 kele1997: 
https://github.com/ruanyf/weekly/issues/680
[44]
 leetcode 多线程同步题: 
https://leetcode.com/problemset/concurrency/
[45]
 DoctorLai: 
https://github.com/ruanyf/weekly/issues/684
[46]
 家庭关系称谓查询: 
https://justyy.com/archives/3418
[47]
 DoctorLai: 
https://github.com/ruanyf/weekly/issues/685
[48]
 英国没有入侵的国家: 
https://www.telegraph.co.uk/history/9653497/British-have-invaded-nine-out-of-ten-countries-so-look-out-Luxembourg.html
[49]
 孟菲斯集团的家具: 
https://www.collectorsweekly.com/articles/space-oddity-david-bowies-secret-obsession-with-80s-memphis-design/
[50]
 三氟化氯: 
https://blogs.sciencemag.org/pipeline/archives/2008/02/26/sand_wont_save_you_this_time
[51]
 为什么飞机窗户都是圆角的?: 
https://jasonlefkowitz.net/2016/09/why-airplane-windows-have-round-corners/
[52]
 《快的软件,最好的软件》: 
https://craigmod.com/essays/fast_software/
[53]
 《面向对象编程:一万亿美元的错误》: 
https://medium.com/codeiq/object-oriented-programming-the-trillion-dollar-disaster-%EF%B8%8F-92a4b666c7c7
[54]
 HN 读者: 
https://news.ycombinator.com/item?id=20539000
[55]
 程序员招聘帖: 
https://github.com/ruanyf/weekly/issues/692
[56]mailto:[email protected]
[57]
 这里: 
https://github.com/ruanyf/weekly/issues/692#issuecomment-518962331
[58]mail:[email protected]
继续阅读
阅读原文