# 每周分享第 36 期

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

欢迎投稿，或推荐你自己的项目，请前往 GitHub 的 [ruanyf/weekly](https://github.com/ruanyf/weekly) 提交 issue。

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122129.jpg)

（题图：安吉，浙江，2018）

美国一个编程培训班的老板，写了一篇[文章](https://www.forbes.com/sites/rajatbhageria/2017/09/10/is-learning-how-to-code-still-worth-it/)。他说自己很担忧。现在，那么多人学习编程，他的公司全靠培训赚钱，将来会不会程序员过剩？

培训班的目的，就是让那些没有受过四年计算机教育的人，经过四个月的培训，找到一份软件开发的工作。某种程度上，这种做法是可行的，大量的程序员就是通过这种模式生产出来。

但是，人工智能正变得越来越强，终有一天，简单代码都会由计算机自已生成，低级程序员的需求将会大量减少。另一方面，云服务的兴起，使得很多任务不需要自己编程，可以购买云服务，这也减少了程序员的需求。

同时，由于不断的抽象和封装，应用层的软件开发正变得越来越简单，如果只是简单地遵循在线教程，就能编写软件，或者将一系列API混合在一起，就能做出一个服务，有必要向开发人员支付高额薪水吗？毕竟开发过程是那么简单。

他认为，学习编程是值得的，它可以帮助你理解世界。但是，梦想仅仅学会软件开发，就能解决你的人生问题是不现实的。“只是能够编写一个安卓程序，不会为你赢得竞争优势，也没法在这个超级饱和的科技世界里，获得自己的一席之地。这个世界里，每个想法都已由十位企业家在你前面完成了。”

由于其他行业不景气，大量年轻人正在转向软件业就业。但是，程序员的淘汰也很厉害，上车的人多，下车的人也多。大家应该对这一点有清醒的认识。

## 新闻

1、[维珍银河试飞成功](https://www.bbc.com/news/business-46550862)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122102.jpg)

12月13日，维珍银河公司（Virgin Galactic）的航天飞机试飞成功。它先由一架双头的牵引飞机载到半空，在那里再点燃火箭加速，飞到距地面82.7公里的高空。

维珍银河是2004年由维珍航空公司的创始人理查德·布兰森爵士（Sir Richard Branson）创建的，目标是开展太空旅行服务。乘客可以绕地球几圈，体验几分钟的失重。整个航天过程会持续90分钟，每次收费25万美元，已经有超过600人购买了机票或者支付了订金。

SpaceX 公司和亚马逊老板贝佐斯投资的 Blue Origin 公司，也有计划开展太空旅行服务。维珍银河将与他们展开竞争。

2、[离子风飞机](https://edition.cnn.com/travel/article/mit-ion-plane-intl/index.html)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122103.jpg)

麻省理工学院的科学家发明了，世界上第一架没有活动部件并且不依靠化石燃料飞行的“固态”飞机。该飞机利用“离子风”飞行，比传统飞机更安静，机械更简单，并且不会排放燃烧废物。

这种飞机内部有电池组，机翼下方有一排电线产生2万伏的电力。这个电场在机翼后部会产生氮离子流，就有足够的推力以进行持续飞行。研发团队制造了一个原型飞机，重约5磅，翼展5米，成功飞行了60米。

3、[ARM 服务器](https://www.theregister.co.uk/2018/11/27/amazon_aws_a1/)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122104.jpg)

亚马逊公司开发了一款自己的64位 ARM 服务器处理器 Graviton，已经用于该公司的网络服务 AWS 的云主机，并且 ARM 虚拟机比 x86 虚拟机价格便宜45％。

由于 ARM CPU 的能耗和成本都较低，所以 ARM 服务器一直被看好。上个月，ARM 公司声称2018年 ARM 服务器将达到数百万台，其中很大部分就属于亚马逊公司。微软 Azure 云服务也希望至少一半的服务器是 ARM。这对 x86 芯片的主要生产商 Intel 公司造成了巨大压力。

4、[家庭电池计划](https://arstechnica.com/information-technology/2018/11/south-australia-is-fueling-energy-storage-investment/)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122105.jpg)

南澳大利亚州计划提供7200万美元，在当地居民家中安装特斯拉公司的家用蓄电池。每户居民可以得到4300美元的补助，用于购买电池。

电池可以用太阳能充电，也可以在夜晚从电网充电（因为晚上的电费便宜），然后在白天使用。这样可以节省能源。

5、[机器狗的人造手](https://techcrunch.com/2018/11/28/youbionic-adds-creepy-hands-to-spotmini-the-creepy-robot-dog/)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122106.jpg)

波士顿动力公司唯一的公开出售产品是机器狗 SpotMini，现在有一家创业公司为这只狗加上了一对人造手。这对手目前没有实际作用，只是 3D 打印模型，售价179美元。但是，如果一旦可以编程控制，它就为这只机器狗带来了无限的可能。

6、[美国汽车公司可能退出轿车生产](https://www.bloomberg.com/opinion/articles/2018-11-30/trump-is-losing-his-influence)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122107.jpg)

有消息称，通用汽车公司和福特汽车公司很快将退出美国的轿车市场，专注于生产高利润的卡车和 SUV。原因是他们的轿车销量下降得非常厉害，福特福克斯的销量从2013年的235,000辆降至2018年的115,000辆。通用汽车公司的雪佛兰科鲁兹的销量从2014年的273,000辆下降到2018年的145,000辆。

消费者更喜欢皮卡和 SUV。2018年美国排名前20位最畅销的汽车，14种是卡车或SUV。五年前，轿车占美国市场的50％，今天这个数字下降到三分之一。另一方面，美国轿车与日本轿车相比，也不占任何优势，反而成本更高。

7、[Instagram 影响自然保护](https://www.nytimes.com/2018/11/29/travel/instagram-geotagging-environment.html)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122108.jpg)

美国怀俄明州的一个县旅游局，要求游客将照片发到社交媒体时，不得标识地理位置，以保护该州原始森林和偏远湖泊。

该州的三角洲湖原来是一个偏远湖泊（上图），偶尔才有人步行15公里到达。但是，自从这个湖泊上了 Instagram 的热门照片，现在每天有多达145人在那里徒步旅行，拍摄订婚照片等等。鲜为人知的小径被大量践踏，对公园资源造成负担。

8、[贫穷的千禧一代](https://www.npr.org/2018/11/30/672103209/why-arent-millennials-spending-more-they-re-poorer-than-their-parents-fed-says)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122109.jpg)

1981年至1997年之间出生的人，在美国称为“千禧一代”。美联储的一项新研究称，他们的消费比前几代人同龄时低，原因是他们的资产较少，没有能力多消费。也就是说，他们是最贫穷的一代人。

研究人员发现，千禧一代的消费比他们的父母、祖父母年轻时都要少。另一方面，他们面临的大学学费、医疗费用是几代人里面最高的。

9、[窗户涂料](https://interestingengineering.com/mit-develops-window-coating-that-could-save-millions-in-air-conditioning-costs)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122110.jpg)

很多大楼的夏季空调费非常高，据统计，空调占美国总电力支出的6％。 如果有其他手段为大楼降温，就能节省大量能源。

麻省理工学院发明了一种新的窗户涂料。32摄氏度以下时，这种涂料是透明的，太阳光可以通过。一旦超过32度，这种涂料就会反射70%的太阳光，降低了大楼内部的温度。

10、__一句话新闻__

* [联合国](https://www.nytimes.com/2018/12/06/opinion/tim-berners-lee-saving-the-internet.html)预计，2019年底，全世界的上网人口将达到50%。也就是说，还有50%的人口没有互联网。
    
* [美国国家科学院](https://spectrum.ieee.org/tech-talk/computing/hardware/the-us-national-academies-reports-on-the-prospects-for-quantum-computing)委托一个专家委员会，评估量子计算的前景。委员会的结论是，未来十年内，建造有实用能力的量子计算机的可能性微乎其微。
    
* [微软](https://blogs.windows.com/buildingapps/2018/12/11/windows-server-2019-includes-openssh/)宣布，Windows Server 2019 内置 OpenSSH，也就是说可以用 ssh 登陆 Windows 服务器了。

* [美国国税局（IRS）](https://qz.com/quartzy/1486571/the-irs-is-now-on-instagram/)在 Instagram 开了账户，专门发布介绍税收知识的短视频。

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122111.jpg)

## 教程

1、 [高级 Web 安全主题](https://blog.georgovassilis.com/2016/04/16/advanced-web-security-topics/)（英文）

本文收集各种网页入侵的技术，已经收集了十多种。

2、[何时不使用微服务？](https://www.feval.fr/posts/microservices/)（英文）

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122112.jpg)

微服务是目前流行的架构，但是会增加复杂性，比如一个 API 变成多个 API（上图）。本文讨论了哪些情况不应该使用微服务。

3、[使用 Cloudflare Worker 加速谷歌字体加载](https://blog.cloudflare.com/fast-google-fonts-with-cloudflare-workers/)（英文）

网页加载谷歌字体的最大问题是加载速度较慢，会影响网页体验。Cloudflare 提供 Worker 方案，可以改写用户的字体请求，从而加速字体加载。

4、[Vue.js 框架的作者尤雨溪专访](https://blog.hackages.io/https-blog-hackages-io-evanyoubhack2017-cc5559806157)（英文）

介绍了 Vue.js 的发展历程，以及背后的想法。（@[M1seRy](https://github.com/ruanyf/weekly/issues/92)__ __投稿）

5、[Flutter 框架印象](https://medium.com/asos-techblog/flutter-vs-react-native-for-ios-android-app-development-c41b4e038db9)（英文）

作者较深入地评论了目前 Flutter 框架开发手机应用的优缺点，总体上还是鼓励大家使用它。

6、[MVC 框架的误解](http://beza1e1.tuxen.de/model_view_controller.html)（英文）

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122113.jpg)

作者提出，现在那些 MVC 应用其实改叫 MVA 更合适，也就是把 Controller（控制器）改成 Adapter（适配器）。

7、[QUIC 协议的注意事项](https://blog.erratasec.com/2018/11/some-notes-about-http3.html)（英文）

本文介绍了 QUIC 协议的一些优点。作者提出，QUIC 与其称为 HTTP/3，不如称为 TCP/2。

8、 [target = "\_blank" 的危险性](https://www.tutorialdocs.com/article/html-opener-blank.html)（英文）

HTML 网页的`<a>`元素打开的子网页，可以用`window.opener.location.replace()`方法替换掉父窗口的网址，这会带来风险。

9、[一个人如何开发游戏《星露谷》](https://www.gq.com/story/stardew-valley-eric-barone-profile)（英文）

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122114.jpg)

畅销游戏《星露谷》（Stardew Valley）作者只有一个人埃里克·巴罗恩，从编码到美术音乐都靠自己。大学毕业后，他没找工作，而是待在公寓写了四年游戏。唯一收入是晚上打工，在电影院门口收电影票。

上线前，唯一测试就是女朋友玩了几天。如果卖不出去（绝大多数游戏的结局），四年就浪费了，幸好成功了。不过，这个游戏借鉴了任天堂的《牧场物语》，有人认为他[抄袭](http://www.chuapp.com/?c=Article&a=index&id=238380)了。

10、[如何编写一个硬盘启动程序？](https://stackoverflow.com/questions/22054578/how-to-run-a-program-without-an-operating-system/32483545#32483545)（英文）

本文教你如何向硬盘的主引导扇区 MBR 写入程序，使得计算机可以在没有操作系统的情况下运行程序，显示 Hello World。

## 资源

1、[Pwned Passwords](https://haveibeenpwned.com/Passwords)

该网站收集已经泄漏的密码。你可以输入自己的密码，看看有没有泄漏。（@[DoctorLai](https://github.com/ruanyf/weekly/issues/80)__ __投稿）

2、[机器学习书籍清单](https://anvaka.github.io/greview/hands-on-ml/1/)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122115.jpg)

这份书目的特别之处在于，它是一份树状的互动图表。（@[nivance](https://github.com/ruanyf/weekly/issues/87) 投稿）

3、[3D 病毒浏览器](https://media.hhmi.org/biointeractive/click/virus-explorer/)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122116.jpg)

该网站对各种病毒 3D 建模，可以缩放、旋转观看病毒模型。

4、[Chinese-Podcasts](https://github.com/alaskasquirrel/Chinese-Podcasts)

收集中文播客资源。（@[alaskasquirrel](https://github.com/ruanyf/weekly/issues/89) 投稿）

5、[C ++ Annotations](http://www.icce.rug.nl/documents/cplusplus/)（英文）

C++ 开源教程，主要针对那些了解 C 语言，希望学习 C++ 的程序员。

6、[程序员的实用密码学](https://cryptobook.nakov.com/)（英文）

密码学开源教材，全面介绍的密钥相关的各种基本知识。

7、[DOS 游戏博物馆](https://dos.zczc.cz/)

该站收集 DOS 游戏，可以在线游戏。另外还有一个[“中文家用游戏博物馆”](http://www.famicn.com/)。（@[Brenner8023](https://github.com/ruanyf/weekly/issues/101) 投稿）

8、[HelloGitHub](https://github.com/521xueweihan/HelloGitHub)

一个分享 GitHub 上有趣的、入门级开源项目的月刊，每个月 28 号发布。（@[521xueweihan](https://github.com/ruanyf/weekly/issues/128) 投稿）

10、[旅行者二号的海报](https://voyager.jpl.nasa.gov/downloads/)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122117.jpg)

1977年发射的旅行者二号（Voyager 2）最近飞出了太阳系，成为飞得最远的人类飞行器。美国宇航局为了庆祝这个事件，在官网发布了一系列可以下载的海报。

## 工具

1、[react-text](https://github.com/franciscop/react-text)

一个简单的 React 国际化解决方案。

2、[strapi](https://github.com/strapi/strapi)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122118.jpg)

一个 Node 的图形界面的 API 生成框架。（@[JsonLeex](https://github.com/ruanyf/weekly/issues/73) 投稿）

3、[snyk](https://github.com/ruanyf/weekly/issues/74)

一个在线工具，检查项目的依赖模块有没有漏洞。（@[Chorola](https://github.com/ruanyf/weekly/issues/74) 投稿）

4、[q](https://github.com/harelba/q)

一个对 CSV 文件使用 SQL 数据查询的工具。

5、[sr.ht](https://meta.sr.ht/)

一个提供代码基础服务（比如 Git 和持续构建）的网站，界面简单，具有黑客风格。

6、[betwixt](https://github.com/kdzwinel/betwixt)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122119.jpg)

一个使用 Chrome 控制台的网络面板，可以查看命令行 HTTP 请求的工具。

7、[Vimium](https://sspai.com/post/27723)

Chrome 浏览器的扩展，使用类似 Vim 的快捷键，通过键盘操作浏览器。（@[Seven-Steven](https://github.com/ruanyf/weekly/issues/78) 投稿）

8、[Squoosh](https://squoosh.app/)

谷歌推出的图像压缩工具，代码开源。官网可以在线压缩图片，而且可以转换图片格式（比如 webp 转 jpg）。（@[Seven-Steven](https://github.com/ruanyf/weekly/issues/81) 投稿）

9、[Emoji Builder](http://phlntn.com/emojibuilder/)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122120.jpg)

自定义 Emoji 图片。（@[kt286](https://github.com/ruanyf/weekly/issues/91)__ __投稿）

10、[lint-md](https://github.com/hustcc/lint-md)

Markdown 的 lint 工具，检查编写格式是否规范。（@[hustcc](https://github.com/ruanyf/weekly/issues/98)__ __投稿）

11、[Get GitHub User's Public Events](https://able8.github.io/github-events/)

查看某个用户的所有 GitHub 公开活动。（@[able8](https://github.com/ruanyf/weekly/issues/129) 投稿）

## 文摘

1、[午夜队长](https://en.wikipedia.org/wiki/Captain_Midnight_broadcast_signal_intrusion)

20世纪20年代，电视机发明以后，电视节目都是免费的。后来，卫星电视出现了，也是免费的，只要买一个卫星天线收到信号就可以了。

1986年，HBO 公司开始对自家的卫星信号加密，用户必须缴纳每月12.95美元的订阅费，购买专用解码器才能观看。HBO 成为第一家对用户收费的卫星电视公司。这引起了很多用户的不满。

HBO 对信号加密四个月后，1986年4月26日的晚上，美国佛罗里达州的一个销售卫星电视器材的经销商约翰·迈克道格尔，利用自己商店里的设备，在0点32分向 HBO 卫星发送了干扰信号，压过了 HBO 的官方信号，导致美国东部的所有 HBO 用户看到了他设置的画面。

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122121.jpg)

> GOODEVENING HBO  
> 晚上好，HBO
> 
> FROM CAPTAIN MIDNIGHT  
> （这条消息）来自午夜队长
> 
> \$12.95/MONTH ?  
> 每月（要支付）12.95美元？
> 
> *NO WAY !*  
> 别想啦！
> 
> [SHOWTIME/MOVIE CHANNEL BEWARE!]  
> [娱乐时间电视网、电影频道（即美国的两个付费影视频道），给我小心一点！]

HBO 发现信号异常以后，试图加大上传功率，压过迈克道格尔的信号，但是又担心损坏卫星而放弃了。最后，迈克道格尔自动放弃干扰，整个事件大约持续了四分半钟。

事后，美国联邦通信委员会（FCC）确定美国2,000个登记过的卫星信号发射设备之中，有580个有足够大的天线，能够覆盖 HBO 的信号。通过查阅当天是否开机，将可疑名单减少到12个。现场走访之后，将嫌疑人缩小到三个，其中就有迈克道格尔。

迈克道格尔迫于压力而自首，他被判处一年缓刑并被罚款5000美元。由于该事件，美国国会通过了新的法律，规定卫星信号劫持是联邦重罪。

2、[马云如何打败 eBay](https://medium.com/@steve.yegge/jeff-bezos-jack-ma-and-the-quest-to-kill-ebay-bb4992dc5020)

2004年，eBay 在中国拥有85％的网络拍卖市场份额。当时阿里巴巴只有 B2B 业务，很担心 eBay 影响到 B2B 市场。于是，马云开始筹备一个叫做淘宝的网站，作为 eBay 的直接竞争对手。

当时，eBay 基本上是照搬他们在美国的做法，没有为中国市场定制产品。淘宝上线后，马云尝试了各种创新，试图将自己与 eBay 区分开来，但是成效不大。

但是，eBay 有一个致命的缺点，就是他们要从交易中收费，这是 eBay 赚钱的方式。为了达到收费的目的，他们想尽办法，将买家和卖家尽可能分开，防止他们直接接触，绕过平台，私下交易。马云看到了这点，宣布淘宝不收费，并且推出了聊天功能，允许买卖双方直接聊天，这一招让 eBay 逐渐失去市场份额。

2007年，eBay 终于认输，开始退出中国市场。但是，阿里巴巴的代价也很高，就是无法从淘宝的用户交易中直接赚钱，不得不从其他渠道赚钱，比如关键词的竞价排名、店铺装修等等，后面推出天猫也是这个原因。

## 本周图片

1、[从地心计算的地球最高点](https://oceanservice.noaa.gov/facts/highestpoint.html)

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122122.jpg)

从海平面开始计算，地球最高点是珠穆朗玛峰。

但是，地球是一个椭圆，赤道比南北极多出了几十公里。这导致从地心开始计算，最高点是厄瓜多尔的钦博拉索山（ Chimborazo，海拔6268米），这座山在赤道附近，比珠穆朗玛峰高出了2公里。

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122123.jpg)

钦博拉索山顶是地球上距离地心最远的地方。

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122124.jpg)

2、[80年代的游戏背景图案](https://vgdensetsu.tumblr.com/post/179656817318/designing-2d-graphics-in-the-japanese-industry)

上个世纪80年代，电脑游戏的图案一般先是手绘，然后再用数字转换仪转成像素图。

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122125.jpg)


![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122126.jpg)


![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122127.jpg)

3、[欧洲的空气质量](https://twitter.com/julianpopov/status/957519255943221248)

有人画了欧洲空气质量的数据图，结果发现东欧和西欧的界线，完全可以根据空气质量划分。

![](https://cdn.beekka.com/blogimg/asset/201812/bg2018122128.jpg)

## 本周金句

1、

2006年，两名美国学生完成了一个名为“发送阳光”的项目。如果手机发现，你的朋友在天气不好的地方，而你在天气很好的地方，那么手机就会提示你，拍一张照片发送给朋友，让他们振作起来。

后来，两人当中的 Mike Krieger 创建了 Instagram。

-- [《经济学人》](https://www.1843magazine.com/features/the-scientists-who-make-apps-addictive)

2、

在技术行业，简历几乎已经死了，我都不记得上次发送简历的时间。人们会在网上找到你，了解你正在做的事情，然后直接与你联系。

-- [《技术博客的重要性》](https://akomljen.com/the-importance-of-tech-blogging/)

3、

最好的学生想要去最好的公司。最终，那些最好的公司有更多的人才、更多的钱、更多的数据，太多的权力将会集中在少数人手中。

-- [《AI 的未来》](https://www.technologyreview.com/s/612434/one-of-the-fathers-of-ai-is-worried-about-its-future/) 

4、

34年前，我拿到物理硕士学位以后，就离开了物理，去其他领域工作了。我喜欢理论物理，但是我要说，我觉得自己离开物理学是对的，过去34年中，理论物理的进展很少，远远不如其他领域。

理论物理没有进展的原因，主要是实验数据枯竭，没有新的粒子，没有新的空间维度，没有新的对称性。这导致了没有足够材料来发展新的物理理论。

-- [Robin Hanson](https://www.overcomingbias.com/2018/12/can-foundational-physics-be-saved.html)

## 欢迎订阅

这个专栏每周五发布，同步更新在我的[个人网站](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)

（完）


