# 每周分享第 24 期

这里记录过去一周，我看到的值得分享的东西，每周五发布。

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092801.jpg)

（题图：浦东滨江，上海，2018。）

[Hacker News ](https://news.ycombinator.com/item?id=18000410)上面，有人问："新人进入软件行业，应该学什么？"

很多热心人提供建议。有人说：

> "你应该好好学习一门语言。精通一门计算机语言，可以让年轻工程师脱颖而出。这不仅对日常工作很有帮助，也有利于以后学习其他语言。学习的东西包括：设计模式、调试、性能、生态系统、标准库等等。"

立刻有人提出相反的建议。

> "我建议学习几种彼此非常不同的语言。例如 Java，Go 和 JavaScript。你要学到精通其中每一种语言，能够独立地从头搭建一个新项目，在该语言的生态系统中完成所有开发工作。"

有人举出几种必须掌握的工具。

> 学习 SQL，你将能够使用任何与数据库相关的软件。  
> 学习 HTML，你将能够创建一个通用的用户界面。  
> 学习 GIT，你将能够与他人分享您的工作。  
> 学习 Unix shell，你将能够部署所有的东西。 

不少人[赞同](https://news.ycombinator.com/item?id=18001963)这种说法。

> "大多数职业（从医生到电工），多年的经验等同于多年的专业知识。但是在软件开发中，技术变化如此之快，你花费了大量时间学习技术和工具，一旦这些技术被取代，你的知识将变得毫无价值，因为它们大部分都是实施的细节。最终，所有这些年，你确实积累了一些一般性的经验，但与具体实施相关的知识，你都不再掌握了。
> 
> 唯一留下的是那些基本的东西，你应该专注于软件开发的核心知识和数学知识，您的这些技能会不断增长，而不是随着技术潮流的变化而消失。"

我最喜欢的是下面[这个建议](https://news.ycombinator.com/item?id=18001008)。

> "不要让自己太忙碌。不过，说起来容易做起来难。
> 
> 我们雇用新毕业的工程师时，会派给他们很多琐碎的工作，使他们饱和。他们会逐渐忘记大学里学到的课程，全部注意力都集中在手头的工作。很多人倾向于通过忙碌程度来评价自己，我相信这是一个死亡陷阱。"

## 新闻

1、[3D 金属打印](https://www.technologyreview.com/lists/technologies/2018/)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092802.jpg)

以前的 3D 打印，一般都使用塑料。今年，3D 金属打印机问世了，可以用金属打印零件，生成更轻、更坚固、更复杂的形状，而且成本更低、速度更快。这为复杂的金属模具和金属部件的生产带来了前所未有的便利。以后再不担心老机器的零件停产了，只要把老零件扫描一下，原样打印可以了。

目前，3D 金属打印机的价格不到10万美元。

2、[人工胚胎](https://www.technologyreview.com/lists/technologies/2018/)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092803.jpg)

英国剑桥大学的胚胎学家，只使用干细胞就培育出了一个小鼠胚胎。这里的神奇之处在于，这个胚胎没有使用卵子，也没有使用精子，只是一个普通细胞培育出来的。这意味着，只要一个普通的细胞就能创造出生命。

3、[传感器城市](https://www.technologyreview.com/lists/technologies/2018/)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092804.jpg)

多伦多正在开展一个智能城市项目，在城市中安装各种类型的传感器，收集空气质量、噪声、人们活动的所有数据。所有数据将开放出来，允许第三方公司在上面开发服务。

以后的城市不仅将布满摄像探头，而且布满传感器。

4、[植物人评估](https://www.scmp.com/news/china/science/article/2163298/doctors-said-coma-patients-would-never-wake-ai-said-they-would)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092805.jpg)

植物人能不能醒来？中国科学院和中国人民解放军总医院开发了一个人工智能系统，评估病人醒来的机会，据说准确率达到90%。

一名19岁的植物人，昏迷六个月，七个神经科医生评估以后，给出了23分中的7分，这意味着他的家人可以合法拔管。但是这个系统评估脑部扫描结果后，给出了23分中的20分。结果，该青年在12个月内醒来。

5、[电动滑板车](https://www.washingtonpost.com/business/economy/scooter-use-is-rising-in-major-cities-so-are-trips-to-the-emergency-room/2018/09/06/53d6a8d4-abd6-11e8-a8d7-0f63ab8b1370_story.html)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092806.jpg)

越来越多的人使用电动滑板或电动滑板车，受伤的案例不断增加。鼻子、手腕和肩膀骨折、面部裂伤是常见情况，最糟糕时，摔到头部，会导致大脑永久性受损。加州的一家医院在7月的最后两周，治疗了18名在电动滑板车事故中受重伤的病人。旧金山的一家大医院的急诊室医生说，他每周看到多达10起重伤。

加州正准备立法，要求使用电动滑板车之前，用户必须接受安全培训，而且在使用时，必须戴头盔。

6、[动物的对称性](https://www.scientificamerican.com/article/how-mammals-maintain-symmetry-during-development/)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092807.jpg)

动物几乎都是对称的，左边的四肢与右边一样，这是怎么产生的？

澳大利亚莫纳什大学的生物学家，开展了一项试验。他们在小鼠胚胎的左后腿，注射了一种限制腿部生长的细胞，使得一条腿生长得比另一条腿慢。结果发现，那条长得慢的腿会发出信号，通知其余组织（ 包括另一条后腿），以减缓它们的生长。直到受阻的肢体赶上正常生长的腿，才会重新恢复均匀的生长。

7、[3D 场景的天气预报](https://blogs.nvidia.com/blog/2018/09/14/in-the-eye-of-the-storm-the-weather-channel-forecasts-hurricane-florence-with-stunning-visuals/)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092808.jpg)

美国的气象频道采用 3D 模拟视频，播放天气预报。

主持人在绿幕前录制天气预报，后面的背景用游戏引擎 Unreal Engine 4 生成。电视台将风速、方向、降雨量和无数气象数据输入系统，生成 3D渲染图，以提供准确的可视化效果。看完[视频](https://www.weibo.com/tv/v/GzqEGEBhg?fid=1034:4284439367198153)，我觉得以后电视剧也可以这样拍。

8、[自行车骑得最快的人](https://www.npr.org/2018/09/18/649221471/woman-rides-bicycle-to-183-9-mph-a-new-world-record)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092809.jpg)

美国一个45岁的女自行车手 Denise Mueller-Korenek，骑出了每小时295公里（183.932英里/小时）的世界记录，成为世界上骑得最快的人。

她必须躲在拖车牵引的整流罩里面，防止这种速度产生的巨大风阻。而且，前1.5公里是拖车拉动前进的，以便产生150公里/小时左右的初速度。

9、__一句话新闻__

* [加州](https://www.sacbee.com/news/politics-government/capitol-alert/article218128485.html)宣布，2045年淘汰所有化石能源，电力来源都不含碳。<br><br>
* [特斯拉](https://electrek.co/2018/09/11/tesla-100-kwh-battery-cost-investor-gigafactory-1-tour/)宣布，今年年底，电池的成本有望降到100美元/千瓦时。目前，顶配的特斯拉汽车是100千万时的电池，这意味着，电动汽车的成本有望显著降低。<br><br>
* [中国](https://www.bloomberg.com/view/articles/2018-09-12/chinese-researchers-are-outperforming-americans-in-science)在物理、工程、数学方面发表的论文数量，已经成为了世界第一。有研究称，中国学者参与的论文占到全球论文的三分之一。不过在质量上（引用次数）还是不行，落后美国较多。<br><br>
* [中国财政部](http://finance.sina.com.cn/7x24/2018-09-17/doc-ihkahyhy1698423.shtml)消息，7月份全国彩票销售额546亿元，同比增长61.9%，1-7月合计增长25.6%。去年同期的增长率只有4.2%，今年的彩票销售这么好，不知道跟经济下行有多大关系。

## 数据分析师课程

本期《每周分享》很高兴得到了优达学城（Udacity）的支持。优达学城是国际著名的在线教育平台，中国区对课程进行汉化，并提供中文服务。

今天给大家推荐的，就是他们的[《数据分析师》](https://cn.udacity.com/dand?utm_source=wechat-kol-ruanyf&utm_medium=kol&utm_campaign=dand)系列课程。数据科学家是现在最热门的领域，人才缺口极大，就业行情非常好。这个系列课程分成[《数据分析（入门）》](https://cn.udacity.com/course/data-analyst-nanodegree--nd002-cn-basic-trial)和[《数据分析（进阶）》](https://cn.udacity.com/course/data-analyst-nanodegree--nd002-cn-advanced-trial)两个级别。

> * [入门课](https://cn.udacity.com/course/data-analyst-nanodegree--nd002-cn-basic-trial)帮助初学者进入这个领域，通过3个月的时间，让你学会 Python 和 SQL 两大主流数据分析工具，掌握数据清洗、探索性分析、可视化等基础分析技能，并且辅导你做完"空气质量分析"、"气候是否变暖"、"网站用户行为分析"等5个实战项目。<br><br>
> * [进阶课](https://cn.udacity.com/course/data-analyst-nanodegree--nd002-cn-advanced-trial)适合有一定数学、Python、SQL 基础的学员，帮助大家成为一个真正的数据工程师。它也是3个月时间，教授高级的数据分析和统计方法，完成4个可以用于生产环境的真实项目。

你可能不确定它们是否适合自己，优达学城为此提供了299元的"七天试学班"。你可以在七天里面，体验所有服务，并且在助教指导下，自己动手完成第一个项目。到期后，如果想继续学，再缴纳其余的学费。下面是前几期课程的学员评价摘录。

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092810.jpg)

扫码下面海报里面的二维码，就可获取详细的课程大纲，或者咨询课程，进行选课自测。

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092811.jpg)

## 教程

1、[ `<input>` 元素的三个属性](https://dev.to/stefanjudis/three-input-element-properties-that-i-discovered-while-reading-mdn-30fg)（英文） 

HTML 网页的 `<input>` 元素有几十个属性，本文介绍其中三个开发者比较不熟悉的属性。

2、[Cloudflare worker 的一个使用实例](https://jvns.ca/blog/2018/09/03/editing-my-blog-s-http-headers-with-cloudflare-workers/)（英文）

这篇文章很容易懂，解释怎么使用 serverless 服务，修改 HTTP 回应。这个服务看起来很好用，缺点好像是只有使用 Cloudflare CDN 的网站才能用。

3、[为什么技术有利于暴政？](https://www.theatlantic.com/magazine/archive/2018/10/yuval-noah-harari-technology-tyranny/568330/?single_page=true)（英文）

《人类简史》的作者尤瓦尔·赫拉利的最新文章。他提出，人工智能有利于政府，可以将权力集中在少数精英手里。唯一可能的解决方法，是寻找分布式的技术方案，防止资源的集中。

4、[命令行脚本的运行原理](https://blog.twentytwotabs.com/the-smallest-bash-program-in-the-universe/)（英文）

脚本的第一行为什么以 `#!` 开头？Shell 内部又是如何处理脚本的？

5、[Presentation API](https://developers.google.com/web/updates/2018/04/present-web-pages-to-secondary-attached-displays)（英文）

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092812.jpg)

Chrome 66 支持 Presentation API，这个 API 允许浏览器定制投射到第二块屏幕的内容，使用脚本进行控制。

5、[跨站点请求的七种情况](https://blog.acolyer.org/2018/09/05/who-left-open-the-cookie-jar-a-comprehensive-evaluation-of-third-party-cookie-policies/)（英文）

网页可以向第三方站点发出请求，这是 CSRF 攻击的主要原因。这篇文章总结了可能发出第三方请求的七种情况。

6、[网络协议入门](https://www.destroyallsoftware.com/compendium/network-protocols?share_key=97d3ba4c24d21147)（英文）

本文从协议设计的顶层角度，总体上解释互联网协议的设计思想。

7、[为什么 GraphQL 可以取代 Redux？](https://hackernoon.com/goodbye-redux-26e6a27b3a0b)（英文）

本文解释了 Redux 想要解决的问题，而 GraphQL 可以解决同样的问题。但是，该文没有给出细节。

8、[DNS over TLS 的 Node 客户端](https://sagi.io/2018/09/dns-over-tls---thoughts-and-implementation/)（英文）

为了提高安全性，防止监听，DNS 查询已经可以在 HTTPS 协议上完成。这篇文章教你怎么写一个 Node 客户端，获取 DNS 信息。

9、[戴维·霍夫曼的人生](https://www.huffmancoding.com/my-uncle/scientific-american)（英文）

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092813.jpg)

本文介绍著名的压缩算法霍夫曼编码的发明人戴维·霍夫曼的故事。

10、[V8 引擎十周年回顾](https://v8project.blogspot.com/2018/09/10-years.html)（英文）

本文是 V8 官方团队写的历史回顾，介绍 V8 每一年在技术上的突破。

## 资源

1、[SQL 开源教程](https://selectstarsql.com/)（英文）

这是一本互动书籍，免费，帮助读者了解如何使用 SQL 对数据集运行查询。

2、[谷歌数据集搜索](https://toolbox.google.com/datasetsearch)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092814.jpg)

大数据研究需要数据集，谷歌推出数据集搜索，根据关键词找出相关的数据集。

3、[谷歌放弃的产品](https://www.lemonde.fr/pixels/visuel/2018/09/05/google-memorial-les-projets-abandonnes-par-google-depuis-vingt-ans_5350679_4408996.html)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092815.jpg)

谷歌推出了很多产品，许多后来都放弃了。这个网页列出所有被谷歌放弃的产品，目前有70个。

4、[东京防灾手册](http://www.metro.tokyo.jp/chinese/guide/bosai/index.html)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092816.jpg)

遇到灾难（地震、洪水、大雪等等）怎么办？东京市政府编写的免费电子书，这里是简体中文版的下载。

5、[代码行数的可视化](http://www.visualcapitalist.com/millions-lines-of-code/)

本文给出一个可视化展示，比较不同软件的代码行数。

## 工具

1、[nodebook](https://github.com/netgusto/nodebook)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092817.jpg)

一般情况下，Node REPL 环境只能在命令行使用。这个工具起了一个服务，让你在浏览器里就能使用 REPL 环境。

2、[Kitty](https://sw.kovidgoyal.net/kitty/)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092818.jpg)

一个使用 GPU 进行渲染的终端模拟器。理论上，视觉效果将非常顺滑，尤其是长文本滚动和窗口切换。

3、[mdwiki](https://github.com/Dynalon/mdwiki)

一个前端脚本，将 Markdown 文件自动转成静态网站。

4、[PixelPin](https://www.pixelpin.io/)

谁说密码一定是字符？这个网站的密码是图片。图片密码有两种用法，一种用法是上传某张图片作为密码，另一种是给定一张图片，你在上面点击几个只有自己知道的位置。

5、[react-proto](https://github.com/React-Proto/react-proto)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092819.jpg)

React 应用的原型设计工具。

6、[reminiscence](https://github.com/kanishka-linux/reminiscence)

一个架设在本地的网络书签管理系统，会自动抓取书签内容，并生成标签和摘要，使用 Django 框架开发。

7、[xsv](https://github.com/BurntSushi/xsv)

一个快速、强大的 CSV 文件的命令行处理工具，使用 Rust 语言开发。

8、[Hacklily](https://www.hacklily.org/)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092820.jpg)

一个在线编写五线谱的工具，可以实时听到编写的旋律。

9、[LiteraryClockScreenSaver](https://github.com/mmattozzi/LiteraryClockScreenSaver)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092821.jpg)

Mac 的屏保程序，会显示一段文学作品的段落，里面包含了当前时间。

## 文摘

1、[地图如何显示道路的坡度？](http://www.tobyeglesfield.com/a-map-showing-the-steepness-of-streets/)

有些城市位于山地，平面地图无法显示道路的坡度。

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092822.jpg)

设计师希望，地图能够显示道路的倾斜方向和倾斜程度，最初的想法是加上方向箭头。

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092823.jpg)

箭头太不直观，于是改成三角形。

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092824.jpg)

三角形的含义还是不清晰，考虑改成3D。不同的颜色表示不同的坡度。

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092825.jpg)

下面是最后的成品。

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092826.jpg)

2、[蟑螂工厂](http://www.globaltimes.cn/content/1066448.shtml)

山东省济南市章丘区，一家食品垃圾回收厂接收了当地餐馆和食堂送来的大量剩饭剩菜，然后使用蟑螂进行无害化处理。剩饭剩菜通过管道注入玻璃容器中，被数百万只蟑螂吞噬。

对于大多数人来说，蟑螂是传播病毒和污染食物的害虫。但是，济南的技术人员李延荣花了数年时间研究蟑螂后，成功地将它们变成了食品回收工具。

在回收工厂，蟑螂每天食用15吨食物垃圾，占章丘餐厅和食堂产生的食物垃圾的三分之一以上。以前，大部分食物垃圾都会填埋，导致出现环境问题。现在，蟑螂可以分解废物，留下很少的残留物。蟑螂死后，它们的身体具有高蛋白质和氮化合物，将被制成蟑螂粉，用作动物饲料的蛋白质来源。

回收工厂同时也是蟑螂养殖基地。养殖人员表示，由于蟑螂的恢复能力和快速繁殖能力，蟑螂的数量呈指数级增长。2014年，工厂只有400公斤的蟑螂。 2015年，这一数字飙升至4吨，而今年预计将在这里生产超过3,000吨的蟑螂。

2008年，李延荣开始研究蟑螂。他读到，昆虫（包括蟑螂）是高蛋白质的营养食品的来源。曾经在济南一家回收公司工作的李延荣很快就有了养蟑螂的想法。他发现山东已有几家蟑螂养殖场为医药公司提供原料，但是成本高昂，因为他们使用谷物喂食蟑螂，每吨蟑螂的繁殖成本可达1万元人民币（1,527美元）。然而，零售价有时只有几十元一公斤。

章丘环境卫生中心主任安峰告诉李延荣，处理食物垃圾非常困难。垃圾填埋后，食物垃圾会污染地下水，给居民带来健康问题。李延荣很自然想到，那么为什么不用食物垃圾喂蟑螂呢？

为了测试蟑螂的饮食习惯，李延荣开始给蟑螂喂食各种食物 -- 辛辣的，酸的，甚至腐烂的。事实证明，蟑螂根本没有味觉或气味。它们还具有强大的免疫系统，可以消化几乎任何东西。他还对蟑螂粉进行了测试，发现用蟑螂粉喂养的鸡不仅更健康，而且比正常鸡更强壮，更快。鸡蛋也有较厚的壳。

在他研究蟑螂的三年中，李申请了30多项专利，其中两项获得批准。 2014年，他找到了安峰，并询问环境卫生中心是否可以免费为他提供食品垃圾。政府很高兴这样做，因为它是垃圾填埋场的更好替代品。2015年底，李延荣辞去了工作，开办了自己的公司，全身心地投入到蟑螂和回收工厂。

## 本周图片

1、[1985年的数据可视化](https://medium.economist.com/data-visualisation-from-1987-to-today-65d0609c6017)

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092827.jpg)

1985年个人 PC 刚刚诞生，那时报纸上的饼图都是手绘的。

2、[编程小知识 ](https://twitter.com/samantha_ming/status/1043578525339418624)

如果变量是一个布尔值，变量名最好加上 is、has 或 can 作为前缀（见下图）。

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092828.jpg)

3、[世界最大的浮动海水浴场](http://themindcircle.com/aarhus-harbor-bath/)

丹麦第二大城市奥胡斯，在海港里建设了一个浮动的海水浴场。

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092829.jpg)

游泳池长50米，还设有儿童游泳池和跳水池，以及日光浴甲板，供人们享受阳光。整个设施一共可以容纳650人。

![](https://cdn.beekka.com/blogimg/asset/201809/bg2018092830.jpg)

## 本周金句

1、

作为一个决策者，你的职责不是做出很多决定，而是只需做出几个高质量的决定。

如果我每天做出三个不错的决定，就很满意了。巴菲特说，他的一年就是做对三个投资决定。

-- [贝佐斯](https://www.axios.com/jeff-bezos-amazon-secrets-rubenstein-1c4d2c5f-80ee-4389-99de-6501449d5ee5.html)，亚马逊公司创始人

2、

各大网站对用户的监控无所不在，为了提供服务，它们必须这么做。事实上，如果不提供那些基于用户数据分析的功能，你还会觉得它们的功能不够好。

这注定了隐私已经不复存在。唯一的应对方法就是双向透明，网站可以监控用户行为，那么用户也必须能够监督网站，知道网站怎么使用用户数据。

-- Tim O'Reilly 《未来地图》

## 欢迎订阅

这个专栏每周五发布，同步更新在我的[个人网站](http://www.ruanyifeng.com/blog)、[微信公众号](http://weixin.sogou.com/weixin?query=%E9%98%AE%E4%B8%80%E5%B3%B0%E7%9A%84%E7%BD%91%E7%BB%9C%E6%97%A5%E5%BF%97)和[语雀](https://yuque.com/ruanyf/share/)。

微信搜索"__阮一峰的网络日志__"或者扫描二维码，即可订阅。

![](http://www.ruanyifeng.com/blogimg/asset/2018/bg2018042311.jpg)

（完）

