# 每周分享第 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小时不吃东西,有助于延长寿命和防止衰老。
* [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。
* [Facebook](https://www.cnbc.com/2018/09/18/facebook-signs-deal-to-supply-singapore-operations-with-clean-energy.html) 宣布,新建的新加坡数据中心,将百分百采用可再生能源,主要由安装在近900个屋顶上的太阳能电池板供电。该项目预计将在2020年完成。
* [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) (完)