# 每周分享第 26 期

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

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101201.jpg)

[Basecamp](https://basecamp.com/) 是 IT 行业很有名的一家公司，提供团队协作工具，同时也是 Rails on Ruby 框架的创造者。这家公司的特别之处在于，它不仅写软件，还写畅销书！

它的两位老板喜欢写书，已经出版了三本----《Rework》、《Getting Real》和《Remote》----每一本都卖得很好。最近，他们又出版了第四本[《工作何必疯狂》](https://basecamp.com/books/calm)（It Doesn't Have to Be Crazy at Work，见上图）。

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101202.jpg)

这本新书的主要观点是，IT 行业的员工加班（或者说投入工作的程度），已经超过了合理标准，接近于疯狂，应该得到遏制。很多软件工程师每周的工作时间已经达到了60小时，甚至70、80小时。除了工作和睡眠，生活几乎没有其他内容。作者认为，这是错误的。

加班真的是 IT 行业的日常。国内有过一个[《2016 年 IT 公司加班时间排行榜》](http://news.zol.com.cn/623/6234607.html)，排名前三位的分别是华为、腾讯和阿里，平均每天的加班时间分别为3.96小时、3.92小时和3.89小时。

是不是一定要那么多加班？这本书说，也不是。加班多的一个因素是，公司没有好好珍惜员工的时间，打断工作的事情特别多，最典型的举措就是开放式办公室，使得人们互相干扰。员工因此不得不加班，因为在正常时间内无法完成工作。作者认为，公司应该创造条件，让员工全身心投入工作，不要拖到夜深人静时才能没有打扰。

> 许多公司似乎都很擅长浪费：浪费时间、注意力、金钱、精力。每周60、70、80的工作小时中，有多少是真正用于工作本身的？又有多少时间是在会议中浪费掉的，或被各种琐事打断的？大部分吧。
> 
> 答案不是更多的时间投入，而是减少浪费，减少员工的注意力分散，减少那些引起焦虑和压力的事情。

同时，这本书也指出，IT 公司的工作任务也确实过多：无休止的需求、不断的营销活动、精确到小时的排期，都给工程师带来了焦虑和压力。普通的行业，用户一年增长一倍，绝对是值得庆祝的，但是 IT 行业不行。这个行业渴望的是一年增长十倍，甚至百倍，要的是从0变成独角兽的那种速度。

作者说，我们要一定要这样吗？IT 行业对高速增长有一种不健康的痴迷。正是这种痴迷，使得人们产生不切实际的期望，导致从业者精疲力尽。

这本书的主张是，软件行业也可以是一个平静的行业，而不一定像现在这样，是一个加速再加速的行业。平静才是长期可持续发展的关键。（注意，这里不是指公司，公司只要不断雇佣新人，就可以让工作永远加速运行。但是员工不行，人的生理和心理都不是可以长期透支的。）

> 过去的18年里，我们一直致力于让 Basecamp 成为一家平静的公司。我们不提出不可能的承诺，不追求高额的营业额，不设置最后期限，不人为制造繁忙的工作和系统性的焦虑。有些项目似乎永远不会结束，我们觉得也 OK。

## 新闻

1、[氢气列车](https://www.theguardian.com/environment/2018/sep/17/germany-launches-worlds-first-hydrogen-powered-train)

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101203.jpg)

德国开通全世界第一列氢气列车，运行在一条100公里的线路上。氢气列车通过氢气和氧气的化学反应产生能量，转化为电力，唯一的排放物就是水。单个氢气罐可以支持列车行驶1,000公里。

列车由法国的阿尔斯通公司制造。阿尔斯通表示，计划到2021年向德国再提供14辆氢气列车，而英国，荷兰，丹麦，挪威，意大利和加拿大等国也有兴趣。法国政府已经表示，要在2022年之前将第一批氢气列车投入使用。

氢气的最大问题，就是很难大量运输。这就是为什么氢气汽车没法推广，因为氢气加油站的网络建设不了。但是，火车就没有这个问题，每个城市的火车站都可以建氢气供应站。

2、[日本的小行星探测器](https://www.bbc.com/news/science-environment-45578795)

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101204.jpg)

9月21日，日本的隼鸟二号飞船（Hayabusa-2）到达了一个名叫 Ryugu 的小行星，释放了两辆探测车成功登陆。这是人类探测器第一次登陆小行星。

Ryugu 小行星其实是一块一公里长的太空岩石。隼鸟二号是2014年12月3日发射的，足足飞了近四年，才达到那里。由于小行星接近于没有重力，探测车无法行驶，而是跳跃式前进，向前动一下就会跳起来。探测车已经发回了第一批照片。

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101205.jpg)

探测车的下一步的任务是，10月下旬引爆一些炸药，收集炸出来的岩石。（我的疑问：太空没有空气，为什么能产生爆炸？）这些岩石没有暴露在太空环境，所以是原始的。一年后的2019年12月，隼鸟二号飞船将返程，将小行星的岩石样本送回地球。

3、[最古老的动物化石](https://www.theguardian.com/science/2017/apr/12/mattresses-the-universe-and-everything-fossils-of-ediacaran-biota)

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101206.jpg)

科学家最近在俄罗斯偏远地区的一处悬崖，发现了一块古老的海洋生物化石。经过鉴定，该化石距今大约5.58亿年，是已知最古老的动物化石。下图是发现化石的现场。

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101207.jpg)

4、[IPv6 的普及状况](https://whynoipv6.com/)

IPv6 诞生至今已经25年了，依然没有得过普及。世界前1000位的网站，只有304个启用了 IPv6。前100万位的网站，总支持率是18.6%。

一个网站启用 IPv6 有两个条件：一是网站本身支持 IPv6（域名有 AAAA 记录），二是网站的 DNS 主机支持IPv6。下面是排名最靠前的不支持 IPv6 的网站。

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101208.jpg)

5、[机器人皮肤](https://news.yale.edu/2018/09/19/robotic-skins-turn-everyday-objects-robots)

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101209.jpg)

耶鲁大学的科学家发明了一种可卷曲的"机器人皮肤"，可以包裹在任何物体的外层，使得该物体变成可以控制的机器人。上图是毛绒填充的小马玩具穿上"机器人皮肤"以后，变成可以走动了。

科学家已经实现了，给气球穿上"机器人皮肤"，使得气球变成可以编程控制。

6、[无人机查税](https://www.reuters.com/article/us-greece-taxes-drones/greece-uses-high-tech-drones-to-fight-tax-evasion-in-holiday-hot-spots-idUSKCN1M41SJ)

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101210.jpg)

希腊的圣托里尼岛是世界著名的旅游景点，每年有大量的游客参加一日游项目。但是，很多导游公司为了逃税，隐瞒游客数量。

当地政府开始启用无人机，观察游客数量，以及出海的游船，用来评估当地业者应该交税的数量。据称，已经查到9艘没有开票的游船，涉及收入总计约25,000欧元，游船主人现在面临罚款。

7、[南大西洋的海底电缆](https://dyn.com/blog/first-subsea-cable-across-south-atlantic-activated/)

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101211.jpg)

最近，安哥拉到巴西的海底电缆铺设完成，这是历史上第一条南大西洋的海底电缆。南部非洲和南美洲以前从来没有直连的海底电缆。

这条电缆也是南美洲第一条不经过美国的国际互联网线路。2020年，巴西直达欧洲（葡萄牙）的海底电缆也将完成。

8、[AI 艺术品](https://www.engadget.com/2018/08/22/christies-auction-ai-generated-art-first-time/)

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101212.jpg)

这个月，佳士得将首次拍卖人工智能艺术品。一幅算法生成的人物肖像，估价达到了1万美元。

事实上，已经有很多绘画机器人，通过大量画作的训练，会自动生成美术作品。下面[六幅抽象画](https://qz.com/work/1390121/can-you-guess-which-of-these-paintings-was-not-made-by-a-human/)，有五幅是人的作品，还有一幅软件生成的，你能看出来是哪一幅吗？

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101213.jpg)

9、__一句话新闻__

* [美国科学家](https://newatlas.com/molecule-fasting-vascular-system/56360/)发现，人体在禁食期间会产生一种分子，防止血管系统的衰老。也就是说，24小时不吃东西，有助于延长寿命和防止衰老。<br>
* [Java 11](https://blog.joda.org/2018/09/do-not-fall-into-oracles-java-11-trap.html) 最近发布了。但是，你不要用 Oracle 的官方 JDK 开发，因为那个 JDK 升级和用于生产环境是要钱的。你应该使用 OpenJDK，[Redhat ](https://developers.redhat.com/blog/2018/09/24/the-future-of-java-and-openjdk-updates-without-oracle-support/)公开承诺将持续维护 OpenJDK。<br>
* [Facebook](https://www.cnbc.com/2018/09/18/facebook-signs-deal-to-supply-singapore-operations-with-clean-energy.html) 宣布，新建的新加坡数据中心，将百分百采用可再生能源，主要由安装在近900个屋顶上的太阳能电池板供电。该项目预计将在2020年完成。<br>
* [Firefox](https://blog.mozilla.org/blog/2018/09/18/firefox-reality-now-available/) 推出 VR 设备专用的网络浏览器。

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101214.jpg)

## 教程

1、[异常处理是错误的设计](http://www.lighterra.com/papers/exceptionsharmful/)（英文）

许多主流语言都采用抛出异常的方式处理错误，这篇文章认为，这种设计是错误的，传统的返回值是更好的方式。抛出异常的主要好处是，可以将业务代码与错误处理代码分开，缺点是它改变了控制流，有点像 goto 语言，可以随意跳转。

2、[如何撰写技术文档](https://www.divio.com/blog/documentation/)（英文）

技术文档（documents）分成四种：教程（tutorial）、指导（guide）、解释（explanation）和参考（reference）。本文解释了每一种文档的特点，并给出了写作建议。

3、[阿里巴巴的18位创始人](https://iprice.sg/trends/insights/history-jack-ma-alibaba-18-founders/)（英文）

1999年，阿里巴巴集团成立，当时共有18位创始人，大部分是马云的同事、朋友和学生。这篇文章汇总了这18个人的公开资料。

4、[使用 Qt 为 Python 脚本添加图形界面](https://build-system.fman.io/pyqt5-tutorial)（英文）

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101215.jpg)

Qt 是一个 C++ 写的跨平台控件库，PyQt 将其移植到 Python，可以很方便地为 Python 脚本添加图形界面。

5、[微服务入门示例](https://blog.apcelent.com/setup-microservices-architecture-in-python-with-zeromq-docker.html)（英文）

本文解释了什么是微服务架构，并且给出了一个简单的示例，在 Docker 里面使用 Flask 框架和 ZeroMQ 搭建一个简单的微服务应用。

6、[为什么使用 i3 窗口管理器？](https://opensource.com/article/18/8/i3-tiling-window-manager)（英文）

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101216.jpg)

Linux 发行版一般都自带桌面环境，如果你需要的只是一个好用的命令行，那么你可以放弃桌面环境，改用窗口管理器。i3 就是一个很好用的平铺式窗口管理器，本文给出了五个推荐理由。如果你有兴趣的话，这里还有一篇[简单教程](https://opensource.com/article/18/8/getting-started-i3-window-manager)。

7、[Pi-hole 拦截广告](https://www.troyhunt.com/mmm-pi-hole/)（英文）

如果你还在用广告拦截器，Pi-hole 是更好的选择。它是树莓派上的 DNS 服务器，架设在局域网里面，内置黑名单，拦截广告域名的 DNS 请求。从此，局域网所有设备都看不到广告。

8、[如何制作命令行动画？](https://github.com/harrinp/Command-line-guide/blob/master/README.md)（英文）

本文介绍如何使用 ncurses 这个 C 语言标准库，写一个简单的命令行动画。

9、[如何将 Web 应用做成 Docker？](https://itnext.io/dockerizing-modern-web-apps-cd9667eebf44)（英文）

本文通过一个很简单的单页应用，演示如何将 Web 应用放到 Docker 里面，然后通过 Docker 运行。

## 资源

1、[Youtube 的教育视频](https://news.ycombinator.com/item?id=17999659)

如果你不知道 Youtube 上可以学什么，就来看看这个帖子。当然，所有资源都是英语的。

2、[计算机组织导论：以树莓派和 ARM 汇编语言为例](http://bob.cs.sonoma.edu/IntroCompOrg-RPi/frontmatter-1.html)

开源教材，介绍计算机的底层实现，写得比较好懂。

3、[从零开始写一个操作系统](https://github.com/cfenollosa/os-tutorial)

一个教程库，每一步都有指导，教你怎么写出一个简单的操作系统。

4、[创业公司](http://thefounder.biz/)

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101217.jpg)

一个网页游戏，玩家是创业公司的创始人，模拟经营这家公司，完成各种任务。

5、[各种算法的 Python 实现](https://github.com/TheAlgorithms/Python)

这个仓库收集 Python 语言实现的各种算法代码。

## 工具

1、[ReactXP](https://microsoft.github.io/reactxp/)

微软基于 React Native 开发的框架，沿用了 React Native 的 API，可以用同一套代码编译出 Web、手机 和 Windows 应用。 

2、[Bing 的图像搜索](https://battellemedia.com/archives/2018/09/if-software-is-eating-the-world-what-will-come-out-the-other-end)

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101218.jpg)

与谷歌一样，Bing 也提供图像搜索。但是，它还带有裁剪功能，可以只搜索图像的一部分。

3、[富文本编辑器 Trix](https://github.com/basecamp/trix)

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101219.jpg)

Rails 框架的创造者 Basecamp 公司，开发了一个富文本编辑器 Trix，发布1.0版了。

4、[Cephes](https://www.nearform.com/blog/webassembly-cephes/)

Cephes 是 JavaScript （准确说是 WebAssembly）的数学函数库，类似 Python 的 SciPy。

5、[qutebrowser](https://www.qutebrowser.org/)

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101220.jpg)

一个 Qt 库制作的最简化浏览器，内核是 Chromium。最大特点就是它自带命令行，可以完全用键盘操作。

6、[DNS 1.1.1.1](https://1.1.1.1/)

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101221.jpg)

该网站提供指导，如何将各种操作系统或设备的 DNS 设为 1.1.1.1。

7、[sqlfmt](https://sqlfum.pt/)

SQL 语句格式化的在线工具。

8、[Caddy](https://www.tecmint.com/install-caddy-web-server-in-centos-ubuntu/)

Caddy 是一个支持 HTTP/2，自带 HTTPS 功能的跨平台、易于使用的 Web 服务器。

9、[camelot](https://github.com/socialcopsdev/camelot)

从 PDF 文件（非扫描）里面提取表格的 Python 库。

## 文摘

1、[Chrome 的恐龙游戏](https://www.eyerys.com/articles/history-google-chromes-offline-dinosaur-game-17-million-years-runner-game)

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101222.jpg)

Chrome 浏览器由于网络中断、无法上网时，会显示一个恐龙游戏。一头霸王龙困在沙漠之中，必须不停地奔跑，且必须跳跃避开像仙人掌和翼手龙这样的障碍物，随着游戏的进展，速度会越来越快。

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101223.jpg)

该游戏于2014年9月首次发布。地址栏键入 chrome://dino 就可以进入该游戏。开始游戏的方法是：PC 用户按一下空格键，手机用户点击恐龙。

游戏的设计师塞巴斯蒂安·加布里尔（Sebastien Gabriel）说，断网就好比回到互联网之前的时代，因此我们设想出这个回归"史前时代"的游戏，那时的计算机用户好比恐龙，无网可上就像困在沙漠中。恐龙的形象采用像素艺术的风格，恐龙的动作故意设计得很僵化。

只要不触碰障碍，用户可以一直游戏下去。游戏内部设置的最长游戏时间是1700万年，这大约是霸王龙在地球上存活的时间。

2、[湾区就是新的矿场](https://pedestrianobservations.com/2018/09/24/the-mines/)

19世纪时，美国社会有一个流行的现象。许多年轻人离乡背井，为了得到高薪，去遥远的西部矿场挖矿。在那里工作几年，就可以赚取足够的钱，回家娶一个老婆。矿场的生活是非常艰苦的，条件很差，这也是矿主支付高薪的原因，否则没人愿意来。

20世纪时，这种现象变成了石油行业。石油钻井平台通常都在偏远地区，有的还是在沙漠和海洋里。石油工人可以得到高工资，代价是恶劣的生活条件，以及远离家庭的孤独。

现在，这种现象变成了 IT 行业。年轻人为了高薪，来到湾区当程序员，同样过着艰苦的生活。我听说，旧金山的一间卧室里面，居然住了好几个大学毕业生，因为旧金山双居室公寓的租金是5500美元/月。有些谷歌的雇员也是合住，而且地理位置也不好，离交通干线很远。

很多人把湾区看成新时代的矿场。IT 行业的工资比其他行业高，那些外来的程序员，计划是省钱，忍受一段时间的恶劣生活，然后在30多岁退休，再去低成本城市工作并在那里开始家庭生活。

## 本周图片

1、[南极洲的冰川裂缝](https://www.iflscience.com/environment/scientists-think-a-giant-artificial-wall-propped-up-under-antarcticas-ice-sheets-could-stop-catastrophic-sea-level-rise/all/)

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101224.jpg)

上图是充满裂缝的冰川。由于气温上升，南极洲的冰川开始崩解，变成小块落入海中，然后融化。

2、[海市蜃楼](http://epod.usra.edu/blog/2018/09/fata-morgana-in-the-juan-de-fuca-strait.html)

下面是2018年8月，有人在加拿大拍到的海市蜃楼照片。船的形状一直在改变，整个过程持续了半个小时，然后就消失不见了。

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101225.jpg)

3、[珍道具](http://www.messynessychic.com/2018/09/21/the-inexplicably-fascinating-japanese-art-of-being-useless/)

珍道具（Chindōgu）是一些富有创意，但并不实用的发明。它是今年71岁的 Kenji Kawakami 在上个世纪90年代发起的。当时，他负责编制一本针对日本家庭主妇的邮购商品目录。有时候，商品目录看起来很薄，他就会加入一些自己制作的产品，有点像恶作剧。

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101226.jpg)

遮雨的鞋子。

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101227.jpg)
 
唇膏状的黄油棒。

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101228.jpg)

带有扫帚功能的拖鞋。

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101229.jpg)

感冒患者专用的面纸架。

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101230.jpg)

喷水的牙刷。

## 新奇

1、[便携打字机](https://techcrunch.com/2018/10/02/the-freewrite-traveler-offers-distraction-free-writing-for-the-road/)

![](https://cdn.beekka.com/blogimg/asset/201810/bg2018101231.jpg)

美国一家公司推出一台便携式设备，只能用于打字，这是为了防止使用者分心。它包括一个全尺寸键盘和一个电子墨水屏，可以打开多个文档，系统会自动保存并同步到Dropbox等服务。该设备的众筹价是279美元。

## 本周金句

1、

七年前，风险投资家 Marc Andreessen 写了一篇文章[《软件正在吞噬世界》](https://a16z.com/2016/08/20/why-software-is-eating-the-world/)。他提出，软件公司将会赢得世界。

现在我们知道，他是对的。但是，他没有提到，这个社会的大部分人不拥有软件公司，而是生活在被软件吃掉的世界里。

-- [John Battelle](https://battellemedia.com/archives/2018/09/if-software-is-eating-the-world-what-will-come-out-the-other-end)《被软件吃掉的世界》

2、

我有时觉得，硅谷是一个游戏，每个玩家有10年时间。在这10年里面，如果你发财了，就赢得了游戏，否则你就出局，必须离开硅谷。

-- [Florent Crivello](https://florentcrivello.com/index.php/2018/09/25/go-west-young-man/)

## 欢迎订阅

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

（完）

