每周分享第 26 期
这里记录过去一周,我看到的值得分享的东西,每周五发布。
由于微信不允许外部链接,你需要点击页尾左下角的“阅读原文”,才能访问文中的链接。
Basecamp 是 IT 行业很有名的一家公司,提供团队协作工具,同时也是 Rails on Ruby 框架的创造者。这家公司的特别之处在于,它不仅写软件,还写畅销书!
它的两位老板喜欢写书,已经出版了三本——《Rework》、《Getting Real》和《Remote》——每一本都卖得很好。最近,他们又出版了第四本《工作何必疯狂》(It Doesn’t Have to Be Crazy at Work,见上图)。
这本新书的主要观点是,IT 行业的员工加班(或者说投入工作的程度),已经超过了合理标准,接近于疯狂,应该得到遏制。很多软件工程师每周的工作时间已经达到了60小时,甚至80小时。除了工作和睡眠,生活几乎没有其他内容。作者认为,这是错误的。
加班真的是 IT 行业日常。国内有过一个《2016 年 IT 公司加班时间排行榜》,排名前三位的分别是华为、腾讯和阿里,平均每天的加班时间分别为3.96小时、3.92小时和3.89小时。
是不是一定要那么多加班?这本书说,也不是。加班多的一个因素是,公司没有好好珍惜员工的时间,打断工作的事情特别多,最典型的举措就是开放式办公室,使得人们互相干扰。员工因此不得不加班,因为在正常时间内无法完成工作。作者认为,公司应该创造条件,让员工全身心投入工作,不要拖到夜深人静时才能没有打扰。
许多公司似乎都很擅长浪费:浪费时间、注意力、金钱、精力。每周60、70、80的工作小时中,有多少是真正用于工作本身的?又有多少时间是在会议中浪费掉的,或被各种琐事打断的?大部分吧。
答案不是更多的时间投入,而是减少浪费,减少员工的注意力分散,减少那些引起焦虑和压力的事情。
同时,这本书也指出,IT 公司的工作任务也确实过多:无休止的需求、不断的营销活动、精确到小时的排期,都给工程师带来了焦虑和压力。普通的行业,用户一年增长一倍,绝对是值得庆祝的,但是 IT 行业不行。这个行业渴望的是一年增长十倍,甚至百倍,要的是从0变成独角兽的那种速度。
作者说,我们要一定要这样吗?IT 行业对高速增长有一种不健康的痴迷。正是这种痴迷,使得人们产生不切实际的期望,导致从业者精疲力尽。
这本书的主张是,软件行业也可以是一个平静的行业,而不一定像现在这样,是一个加速再加速的行业。平静才是长期可持续发展的关键。(注意,这里不是指公司,公司只要不断雇佣新人,就可以让工作永远加速运行。但是员工不行,人的生理和心理都不是可以长期透支的。)
过去的18年里,我们一直致力于让 Basecamp 成为一家平静的公司。我们不提出不可能的承诺,不追求高额的营业额,不设置最后期限,不人为制造繁忙的工作和系统性的焦虑。有些项目似乎永远不会结束,我们觉得也 OK。
新闻
1、氢气列车
德国开通全世界第一列氢气列车,运行在一条100公里的线路上。氢气列车通过氢气和氧气的化学反应产生能量,转化为电力,唯一的排放物就是水。单个氢气罐可以支持列车行驶1,000公里。
列车由法国的阿尔斯通公司制造。阿尔斯通表示,计划到2021年向德国再提供14辆氢气列车,而英国,荷兰,丹麦,挪威,意大利和加拿大等国也有兴趣。法国政府已经表示,要在2022年之前将第一批氢气列车投入使用。
氢气的最大问题,就是很难大量运输。这就是为什么氢气汽车没法推广,因为氢气加油站的网络建设不了。但是,火车就没有这个问题,每个城市的火车站都可以建氢气供应站。
2、日本的小行星探测器
9月21日,日本的隼鸟二号飞船(Hayabusa-2)到达了一个名叫 Ryugu 的小行星,释放了两辆探测车成功登陆。这是人类探测器第一次登陆小行星。
Ryugu 小行星其实是一块一公里长的太空岩石。隼鸟二号是2014年12月3日发射的,足足飞了近四年,才达到那里。由于小行星接近于没有重力,探测车无法行驶,而是跳跃式前进,向前动一下就会跳起来。探测车已经发回了第一批照片。
探测车的下一步的任务是,10月下旬引爆一些炸药,收集炸出来的岩石。(我的疑问:太空没有空气,为什么能产生爆炸?)这些岩石没有暴露在太空环境,所以是原始的。一年后的2019年12月,隼鸟二号飞船将返程,将小行星的岩石样本送回地球。
3、最古老的动物化石
科学家最近在俄罗斯偏远地区的一处悬崖,发现了一块古老的海洋生物化石。经过鉴定,该化石距今大约5.58亿年,是已知最古老的动物化石。下图是发现化石的现场。
4、IPv6 的普及状况
IPv6 诞生至今已经25年了,依然没有得过普及。世界前1000位的网站,只有304个启用了 IPv6。前100万位的网站,总支持率是18.6%。
一个网站启用 IPv6 有两个条件:一是网站本身支持 IPv6(域名有 AAAA 记录),二是网站的 DNS 主机支持IPv6。下面是排名最靠前的不支持 IPv6 的网站。
5、机器人皮肤
耶鲁大学的科学家发明了一种可卷曲的“机器人皮肤”,可以包裹在任何物体的外层,使得该物体变成可以控制的机器人。上图是毛绒填充的小马玩具穿上“机器人皮肤”以后,变成可以走动了。
科学家已经实现了,给气球穿上“机器人皮肤”,使得气球变成可以编程控制。
6、无人机查税
希腊的圣托里尼岛是世界著名的旅游景点,每年有大量的游客参加一日游项目。但是,很多导游公司为了逃税,隐瞒游客数量。
当地政府开始启用无人机,观察游客数量,以及出海的游船,用来评估当地业者应该交税的数量。据称,已经查到9艘没有开票的游船,涉及收入总计约25,000欧元,游船主人现在面临罚款。
7、南大西洋的海底电缆
最近,安哥拉到巴西的海底电缆铺设完成,这是历史上第一条南大西洋的海底电缆。南部非洲和南美洲以前从来没有直连的海底电缆。
这条电缆也是南美洲第一条不经过美国的国际互联网线路。2020年,巴西直达欧洲(葡萄牙)的海底电缆也将完成。
8、AI 艺术品
这个月,佳士得将首次拍卖人工智能艺术品。一幅算法生成的人物肖像,估价达到了1万美元。
事实上,已经有很多绘画机器人,通过大量画作的训练,会自动生成美术作品。下面六幅抽象画,有五幅是人的作品,还有一幅软件生成的,你能看出来是哪一幅吗?
9、一句话新闻
美国科学家发现,人体在禁食期间会产生一种分子,防止血管系统的衰老。也就是说,24小时不吃东西,有助于延长寿命和防止衰老。
Java 11 最近发布了。但是,你不要用 Oracle 的官方 JDK 开发,因为那个 JDK 升级和用于生产环境是要钱的。你应该使用 OpenJDK,Redhat 公开承诺将持续维护 OpenJDK。
Facebook 宣布,新建的新加坡数据中心,将百分百采用可再生能源,主要由安装在近900个屋顶上的太阳能电池板供电。该项目预计将在2020年完成。
Firefox 推出 VR 设备专用的网络浏览器。
教程
1、异常处理是错误的设计(英文)
许多主流语言都采用抛出异常的方式处理错误,这篇文章认为,这种设计是错误的,传统的返回值是更好的方式。抛出异常的主要好处是,可以将业务代码与错误处理代码分开,缺点是它改变了控制流,有点像 goto 语言,可以随意跳转。
2、如何撰写技术文档(英文)
技术文档(documents)分成四种:教程(tutorial)、指导(guide)、解释(explanation)和参考(reference)。本文解释了每一种文档的特点,并给出了写作建议。
3、阿里巴巴的18位创始人(英文)
1999年,阿里巴巴集团成立,当时共有18位创始人,大部分是马云的同事、朋友和学生。这篇文章汇总了这18个人的公开资料。
4、使用 Qt 为 Python 脚本添加图形界面(英文)
Qt 是一个 C++ 写的跨平台控件库,PyQt 将其移植到 Python,可以很方便地为 Python 脚本添加图形界面。
5、微服务入门示例(英文)
本文解释了什么是微服务架构,并且给出了一个简单的示例,在 Docker 里面使用 Flask 框架和 ZeroMQ 搭建一个简单的微服务应用。
6、为什么使用 i3 窗口管理器?(英文)
Linux 发行版一般都自带桌面环境,如果你需要的只是一个好用的命令行,那么你可以放弃桌面环境,改用窗口管理器。i3 就是一个很好用的平铺式窗口管理器,本文给出了五个推荐理由。如果你有兴趣的话,这里还有一篇简单教程。
7、Pi-hole 拦截广告(英文)
如果你还在用广告拦截器,Pi-hole 是更好的选择。它是树莓派上的 DNS 服务器,架设在局域网里面,内置黑名单,拦截广告域名的 DNS 请求。从此,局域网所有设备都看不到广告。
8、如何制作命令行动画?(英文)
本文介绍如何使用 ncurses 这个 C 语言标准库,写一个简单的命令行动画。
9、如何将 Web 应用做成 Docker?(英文)
本文通过一个很简单的单页应用,演示如何将 Web 应用放到 Docker 里面,然后通过 Docker 运行。
资源
1、Youtube 的教育视频
如果你不知道 Youtube 上可以学什么,就来看看这个帖子。当然,所有资源都是英语的。
2、计算机组织导论:以树莓派和 ARM 汇编语言为例
开源教材,介绍计算机的底层实现,写得比较好懂。
3、从零开始写一个操作系统
一个教程库,每一步都有指导,教你怎么写出一个简单的操作系统。
4、创业公司
一个网页游戏,玩家是创业公司的创始人,模拟经营这家公司,完成各种任务。
5、各种算法的 Python 实现
这个仓库收集 Python 语言实现的各种算法代码。
工具
1、ReactXP
微软基于 React Native 开发的框架,沿用了 React Native 的 API,可以用同一套代码编译出 Web、手机 和 Windows 应用。
2、Bing 的图像搜索
与谷歌一样,Bing 也提供图像搜索。但是,它还带有裁剪功能,可以只搜索图像的一部分。
3、富文本编辑器 Trix
Rails 框架的创造者 Basecamp 公司,开发了一个富文本编辑器 Trix,发布1.0版了。
4、Cephes
Cephes 是 JavaScript (准确说是 WebAssembly)的数学函数库,类似 Python 的 SciPy。
5、qutebrowser
一个 Qt 库制作的最简化浏览器,内核是 Chromium。最大特点就是它自带命令行,可以完全用键盘操作。
6、DNS 1.1.1.1
该网站提供指导,如何将各种操作系统或设备的 DNS 设为 1.1.1.1。
7、sqlfmt
SQL 语句格式化的在线工具。
8、Caddy
Caddy 是一个支持 HTTP/2,自带 HTTPS 功能的跨平台、易于使用的 Web 服务器。
9、camelot
从 PDF 文件(非扫描)里面提取表格的 Python 库。
文摘
1、Chrome 的恐龙游戏
Chrome 浏览器由于网络中断、无法上网时,会显示一个恐龙游戏。一头霸王龙困在沙漠之中,必须不停地奔跑,且必须跳跃避开像仙人掌和翼手龙这样的障碍物,随着游戏的进展,速度会越来越快。
该游戏于2014年9月首次发布。地址栏键入 chrome://dino 就可以进入该游戏。开始游戏的方法是:PC 用户按一下空格键,手机用户点击恐龙。
游戏的设计师塞巴斯蒂安·加布里尔(Sebastien Gabriel)说,断网就好比回到互联网之前的时代,因此我们设想出这个回归“史前时代”的游戏,那时的计算机用户好比恐龙,无网可上就像困在沙漠中。恐龙的形象采用像素艺术的风格,恐龙的动作故意设计得很僵化。
只要不触碰障碍,用户可以一直游戏下去。游戏内部设置的最长游戏时间是1700万年,这大约是霸王龙在地球上存活的时间。
2、湾区就是新的矿场
19世纪时,美国社会有一个流行的现象。许多年轻人离乡背井,为了得到高薪,去遥远的西部矿场挖矿。在那里工作几年,就可以赚取足够的钱,回家娶一个老婆。矿场的生活是非常艰苦的,条件很差,这也是矿主支付高薪的原因,否则没人愿意来。
20世纪时,这种现象变成了石油行业。石油钻井平台通常都在偏远地区,有的还是在沙漠和海洋里。石油工人可以得到高工资,代价是恶劣的生活条件,以及远离家庭的孤独。
现在,这种现象变成了 IT 行业。年轻人为了高薪,来到湾区当程序员,同样过着艰苦的生活。我听说,旧金山的一间卧室里面,居然住了好几个大学毕业生,因为旧金山双居室公寓的租金是5500美元/月。有些谷歌的雇员也是合住,而且地理位置也不好,离交通干线很远。
很多人把湾区看成新时代的矿场。IT 行业的工资比其他行业高,那些外来的程序员,计划是省钱,忍受一段时间的恶劣生活,然后在30多岁退休,再去低成本城市工作并在那里开始家庭生活。
本周图片
1、南极洲的冰川裂缝
上图是充满裂缝的冰川。由于气温上升,南极洲的冰川开始崩解,变成小块落入海中,然后融化。
2、海市蜃楼
下面是2018年8月,有人在加拿大拍到的海市蜃楼照片。船的形状一直在改变,整个过程持续了半个小时,然后就消失不见了。
3、珍道具
珍道具(Chindōgu)是一些富有创意,但并不实用的发明。它是今年71岁的 Kenji Kawakami 在上个世纪90年代发起的。当时,他负责编制一本针对日本家庭主妇的邮购商品目录。有时候,商品目录看起来很薄,他就会加入一些自己制作的产品,有点像恶作剧。
遮雨的鞋子。
唇膏状的黄油棒。
带有扫帚功能的拖鞋。
感冒患者专用的面纸架。
喷水的牙刷。
新奇
1、便携打字机
美国一家公司推出一台便携式设备,只能用于打字,这是为了防止使用者分心。它包括一个全尺寸键盘和一个电子墨水屏,可以打开多个文档,系统会自动保存并同步到Dropbox等服务。该设备的众筹价是279美元。
本周金句
1、
七年前,风险投资家 Marc Andreessen 写了一篇文章《软件正在吞噬世界》。他提出,软件公司将会赢得世界。
现在我们知道,他是对的。但是,他没有提到,这个社会的大部分人不拥有软件公司,而是生活在被软件吃掉的世界里。
– John Battelle《被软件吃掉的世界》
2、
我有时觉得,硅谷是一个游戏,每个玩家有10年时间。在这10年里面,如果你发财了,就赢得了游戏,否则你就出局,必须离开硅谷。
– Florent Crivello