# 每周分享第 50 期

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

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

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040501.jpg)

（题图：杭州，2018）

前几天，我听一个广播节目。主持人问，现在很多人开网约车，这样能赚多少钱，能够赚到大钱吗？

这个问题很容易回答，答案就是不能。出租车司机的收入，主要由营业时间的长短决定。基本上，一天开12个小时，就是比开6个小时，收入高出一倍。每天只有24个小时，因此收入存在上限，不可能偏离平均水平很远。

出租车是“时间换收入”的典型行业，投入的时间越多，收入越高，在家休息就没收入。很多行业都属于“时间换收入”，所有此类行业都赚不到大钱。因为你能用来交换的时间是有限的，而且进入中年以后，你就拿不出更多的时间来交换。开出租车赚零花钱，或者作为短期过渡，这是没问题的，但作为终身职业是很糟糕的。

我觉得，越来越多的程序员正在落入这个陷井，用编码的时间换取收入。只有不停地做项目，才能拿到钱。项目做得越多，收入越高。这个项目开发完了，公司又让他去干下一个项目。 忙了好几年，项目完成了一大堆，但是自己什么也没留下，以后的收入还要取决于从零开始的新项目。这样的话，你跟出租车司机有何两样，哪一天你不写代码了，不是照样没收入。

那些赚到大钱的人，没有一个是靠时间换取收入的。他们要么通过积累资产致富，要么购买他人的时间，为自己创造财富。你应该警惕，不要落入“时间换取收入”的陷井，不要只顾着为别人生产代码，而要注意积累自己的资产，以及适时开展属于自己的业务。

## 新闻

1、[银行模仿科技公司](https://www.reuters.com/article/us-world-work-banks-idUSKBN1QS0BB)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040502.jpg)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040503.jpg)

银行通常给人一种严肃保守的感觉。丹麦一家银行决定改变这种印象，向科技公司学习，让银行也变得轻松随便。它重新装修了办公楼，允许员工穿便服，还采用了开放式办公室。

2、[霍金教授的纪念硬币](https://www.bbc.com/news/uk-england-cambridgeshire-47527505)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040504.jpg)

英国皇家造币厂为了纪念去年去世的霍金教授，推出了一枚纪念硬币，面值为50便士。这枚硬币中间有一个洞，象征霍金对黑洞的研究成果。

3、[删除 Facebook](https://www.buzzfeednews.com/article/ryanmac/whatsapp-brian-acton-delete-facebook-stanford-lecture)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040505.jpg)

WhatsApp 于2014年以193亿美元的价格，被 Facebook 收购。但是，2019年3月13日，WhatsApp的联合创始人布莱恩·阿克顿（Brian Acton，上图最右边）在斯坦福大学的一个讲座上，公开呼吁学生删除 Facebook。

他解释说，收购完全是资本的需要，他本人是无可奈何。“我有50名员工，我不得不考虑他们，以及他们从这笔交易中赚到的钱。我不得不考虑我们的投资者，我不得不考虑我的少数股权。即使我想拒绝收购，我也没有完全的影响力来否决。”

4、[月球岩石](https://www.nytimes.com/2019/03/13/science/moon-rocks-nasa.html)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040506.jpg)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040507.jpg)

1969年到1972年，阿波罗计划的宇航员多次登录月球，一共采集了382公斤月球岩石，其中大部分都公开了，但是有三个样本一直是保密的。今年是人类登陆月球50周年，美国宇航局决定将所有样本都公开。

科学家已经决定，采用最先进的手段，彻底检查这些样本。因为月球被发现存在固态水，这些岩石中可能有氧化物，科学家想知道有无可能从月球岩石提取氧气。

5、[圆周率的最新记录](https://www.bbc.com/news/technology-47524760)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040508.jpg)

3月14日是国际圆周率日，谷歌宣布，日本的谷歌员工 Emma Haruka Iwao 打破了世界记录，将圆周率计算到了31万亿位数，远远超过之前的22万亿记录。整个计算使用虚拟机，花了121天才完成。这个新的圆周率保存在硬盘上，需要 170TB 的空间。

6、[VR 电影](https://arstechnica.com/gaming/2019/03/its-time-to-start-caring-about-vr-cinema-and-sxsws-stunners-are-proof/)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040509.jpg)

今年的美国 SXSW 艺术节，推出了 VR 电影体验。观众一人一套设备，每套设备都有很长的电线，以便观看时可以适度的移动。这次展映了20多部 VR 电影，每部长度都在10分钟～15分钟。不同的电影有不同的观看设备，上图是坐在轮椅上观看，观众表示体验还不错。

VR 电影的优势是沉浸式体验，可以360度观看。下面的这部电影讲述第一次世界大战时，一个英国士兵的经历。他走进一所老宅，然后是战地医院，最后在战地营房里，到处是他无法寄出去的明信片。

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040510.jpg)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040511.jpg)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040512.jpg)

另一部 VR 电影则是观看一对夫妻的故事。

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040513.jpg)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040514.jpg)

7、[苹果取消 AirPower](https://ifixit.org/blog/14883/what-finally-killed-airpower/)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040515.jpg)

苹果公司宣布，取消 AirPower 这个产品，理由是无法达到该公司的产品要求。AirPower 是2017年宣布的，它是一个椭圆型的无线充电器，可以同时为三个设备进行无线充电。原定2018年上市，但被推迟了，现在终于宣布放弃。

外界猜测，真正的原因是物理学的限制，导致这个产品很难实现。主要的障碍有两个，一个是无线充电通过感应电流实现，会有一部分电量泄漏出来，AirPower 内部有多个线圈，如果同时充电，多个感应电流会互相加强，泄漏电量的强度可能会影响到心脏起博器和助听器这样的设备。另一个障碍是，无线充电的效率不是很高，多个设备同时充电，需要很大的功率，内部会有大电流，过热无法避免。

8、**一句话新闻**

* [GPS ](https://www.nature.com/articles/d41586-019-01048-2)传送的数据采用10个二进制位表示“周数”，4月6日午夜这个字段将会溢出，重新归零。那些采用 GPS 授时的设备，可能将会出现时间错误。<br><br>
* [欧洲议会](https://www.bbc.com/news/world-europe-47704345)通过决议，建议成员国2021年废止实行夏令时。此前，欧盟强制所有成员国实行夏令时。<br><br>
* [法国](http://www.sohu.com/a/303872041_115479)与中国签署协议，参与2023-2024年实施的嫦娥六号探月计划，准备在嫦娥六号上搭载15千克的法方设备，包括一台照相机和一台分析仪。<br><br>
* [抖音](https://www.eff.org/deeplinks/2019/03/why-are-creators-paying-tiktoks-mistake)被美国联邦贸易委员会罚款570万美元，因为是没有经过监护人同意，就保存13岁以下儿童的信息。

## 文章

1、[我的 Linux 桌面配置](https://hookrace.net/blog/linux-desktop-setup/)（英文）

一个高级程序员介绍他的 Linux 桌面开发环境，以及他的各种软件选择。

2、[我们不再需要 Chrome](https://redalemeden.com/blog/2019/we-need-chrome-no-more)（英文）

Chrome 已经垄断了浏览器市场，作者论证为什么这种情况对互联网是不利的。

3、[React Hooks 入门教程](https://testdriven.io/blog/react-hooks-primer/)（英文）

一篇很好的 React Hooks 的入门介绍文章。

4、[Kanban 与 Scrum 的比较](https://da-14.com/blog/kanban-vs-scrum-choosing-best-agile-project-management-framework)（英文）

Kanban 和 Scrum 都是敏捷开发的具体实现方法，本文讨论它们的异同。

5、[在特斯拉工作的感受](https://zhuanlan.zhihu.com/p/57993225)（中文）

在马斯克的影响下，特斯拉公司上下极其激进、残酷冰冷、毫无感情，你的工作不仅压力超级大，而且很有可能因为表现不好被开除。但是为什么还有员工没辞职呢？

6、[LFU 算法的一种实现](https://ieftimov.com/when-why-least-frequently-used-cache-implementation-golang)（英文）

LFU 是常用的删除过期缓存的算法，本文介绍了它的一种代码实现。

7、[重新设计 UI 基本上是浪费时间](https://debugandrelease.blogspot.com/2019/03/ui-redesigns-are-mostly-waste-of-time.html)（英文）

作者认为，95%情况下，你不需要重新设计 UI。

8、[中国超高压电网](https://spectrum.ieee.org/energy/the-smarter-grid/chinas-ambitious-plan-to-build-the-worlds-biggest-supergrid)（英文）

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040516.jpg)

中国已经建成了全国性的超高压电网，用来将西部的电力输送到东部。这是世界上前所未有的，IEEE 的这篇报道进行了长篇介绍。

9、[State of CSS 2019](https://stateofjs.typeform.com/to/TxDuh6)（英文）

针对全世界开发者的 CSS 调查。（@[lanlejiudunle](https://github.com/ruanyf/weekly/issues/329) 投稿）

10、[业余无线电爱好者入门](https://www.yuque.com/ham/base/iw8xi2)（中文）

如何在国内拥有一个个人的无线电台。

## 软件

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

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040517.jpg)

多台电脑之间自动同步文件夹的工具，可以在命令行作为服务运行，也提供图形界面。

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

一个同时包括前端和后端的 Web 框架，采用 node + react，可以用作架构参考。

3、[subsync](https://github.com/smacke/subsync)

有时，srt 字幕文件跟视频不同步，该工具可以自动让其同步。它的原理是，从视频里面检测出，何时有语音，然后将字幕与其对齐。

4、[Zero server](https://zeroserver.io/)

一个 JS 的后端框架，设计很有意思，每个文件（HTML / JSX / JS）自动成为可访问的路径，不需要其他任何配置。

5、[pi-hole](https://github.com/pi-hole/pi-hole)

一个基于树莓派的家用 DNS 服务器，自带屏蔽广告功能。

6、[dbdiagram.io](https://dbdiagram.io/home)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040518.jpg)

制作数据库关系图的在线工具。（@[linlicro](https://github.com/ruanyf/weekly/issues/318) 投稿）

6、[pagedraw](https://github.com/Pagedraw/pagedraw)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040519.jpg)

一个浏览器里面的 UI 生成器，可以通过拖曳组件来设计 UI，然后自动生成 JSX 代码。

7、[EditorConfig](https://editorconfig.org/)

生成编辑器配置文件，以便整个团队有同样的编辑器设置。

8、[Pika](https://www.pikapkg.com)

一个只能搜索 npm 上面的 ES6 模块的搜索引擎。

9、[BashUpload](https://bashupload.com/)

一个可以从命令行上传文件的网站，文件上传后可以保存七天，其间可以无限次下载。

10、[dead.io](https://dead.io/)

一个显示你是否还活着的 API，做法是它每隔一段时间向你发一封邮件，如果你连续多次没有回复，它就认为你已经死了。你可以通过这个 API，设置一些死了以后需要触发的动作。

11、[colorise](https://colourise.sg/#colorize)

一个为黑白照片着色的在线服务。（@[bikmanwei](https://github.com/ruanyf/weekly/issues/350) 投稿）

12、[dust3d](https://github.com/huxingyi/dust3d)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040520.jpg)

开源的 3D 建模软件，适用于游戏开发，3D打印等。（@[huxingyi](https://github.com/huxingyi) 投稿）

## 资源

1、[React 教程](https://github.com/fullstackreact/30-days-of-react)

一个 React 的30天开源教程。（@[CharlesCCC](https://github.com/ruanyf/weekly/issues/332) 投稿）

2、[PC Assembly Language](https://pacman128.github.io/pcasm/)

介绍汇编语言的本科生入门教材，有中文译本，免费下载。

3、[ARM 汇编语言简介](http://bob.cs.sonoma.edu/IntroCompOrg-RPi/intro-co-rpi.html)

通过树莓派介绍 ARM 汇编语言的开源教材。

4、[Visu Algo](https://visualgo.net/zh)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040521.jpg)

各种算法的动态演示网站。（@[wyzlove](https://github.com/ruanyf/weekly/issues/351) 投稿）

5、[7DRL Challenge 2019](https://itch.io/jam/7drl-challenge-2019)

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040522.jpg)

这是一个地图探险类（rogue like）游戏的比赛，全世界开发者都可以将自己的作品上传，唯一的条件是该游戏必须是在七天内开发完成。目前，已经有100多个作品，各个平台都有，其中将近一半可以在浏览器里面运行，都可以免费下载。

6、[name-suggestion-index](https://github.com/osmlab/name-suggestion-index/)

这个项目收集各类商品的著名品牌，作为 OpenStreetMap 的自动拼写建议。比如，你在地图上要标识一家“名牌鞋专卖店”，它会自动提示[59个牌子](http://osmlab.github.io/name-suggestion-index/brands/shop/shoes.html)的鞋子。

## 图片

1、[建筑物的水平线和垂直线](https://twitter.com/wrathofgnon/status/1095940340589092864/photo/1)

以前的建筑物追求庞大威严，因此更看重高度和垂直感，会有很多垂直线。但是，现在的建筑物越来越多的是水平线。下图左边是以前的建筑，右边是当代建筑。

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040523.jpg)

2、[纯 CSS 图片](https://codepen.io/ivorjetski/pen/xMJoYO)

下面图片不是照片，而是纯粹用 CSS 生成的。（[@beiyeqingteng](https://github.com/ruanyf/weekly/issues/276) 投稿）

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040524.jpg)

3、[佛罗里达钓鱼比赛](https://sites.uw.edu/bevanseries/2018/02/28/data-is-in-the-eye-of-the-beholder/)

美国佛罗里达州每年举办出海钓鱼比赛。下图是1957年的比赛成果。

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040525.jpg)

下图是80年代初的比赛成果。

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040526.jpg)

 最后是2007年。

![](https://cdn.beekka.com/blogimg/asset/201904/bg2019040527.jpg)

可以看到，五十年间，鱼变得越来越小，种类也越来越少。

## 文摘

1、[SQL 是最有价值的技能之一](http://www.craigkerstiens.com/2019/02/12/sql-most-valuable-skill/)

我的职业生涯学到了很多技能，但没有比 SQL 更有用的技术技能。由于以下几个原因，SQL 对我来说是最有价值的技能。

（1）SQL 适用很多方面。

作为产品经理，你需要从数据库看数据。知道如何使用 SQL 查看原始数据，可以为你节省大量的精力，无需向其他人询问数字。

作为一名工程师，SQL 通常可以让我更快地获取我想要的信息，而不需要用 Ruby 或 Python 编写脚本。Web 应用变得缓慢时，了解所执行的 SQL 以及优化它的方法是不可或缺的。

（2）SQL 只需学习它一次，且不需要重新学习。

过去20年，SQL 并没有真正改变。当然，有一些新的改进，但是比起其他语言，它算是毫无变化。是的，每隔几年 SQL 会有一个新的标准，偶尔会出现一些新东西，但 SQL 的基础知识是非常永久的。学习 SQL 一次将允许您在职业生涯中重复使用它，而无需重新学习。

不要误会我的意思，我喜欢学习新的东西，但我宁愿学习一些真正新的东西，而不仅仅是另一种完成同样任务的方法。

（3）SQL 很酷。

熟练掌握 SQL 人并不多，大多数开发者跳过它，很少有人真正了解 SQL，所以掌握 SQL 的人可能看起来比实际更像精英。过去在一家拥有数百名工程师的公司中，我每周会收到多个同样的请求，来自从初级工程师到主要工程师各种人：“嘿，你能帮忙写一个查询吗？”因为你很擅长这样的事情，可以帮助其他人。

2、[ARM 公司的蓝图](https://www.economist.com/business/2019/01/05/masayoshi-son-wants-arms-blueprints-to-power-all-tech)

ARM 是一家芯片公司，但它自己不制造芯片，而是销售芯片的设计图纸。它是地球上最受欢迎的芯片公司，自1990年成立以来，根据它的图纸制造和销售的芯片高达1300亿片，苹果、华为、高通等巨头都购买 ARM 的设计，然后制造的每一块芯片都会向 ARM 支付版税。

2016年，孙正义的软银公司以320亿美元收购了 ARM。这是软银最大的收购，也是最昂贵的收购之一（比 ARM 的市值高出43％）。ARM 原来是一家很赚钱的公司，但是孙正义要求它将利润降至零，全力以赴扩展业务领域，争取收入的快速增长，而不是利润的增长。

收购之前的2015年，ARM 收入高达5.9亿英镑，利润5.39亿英镑。收购之后，2017年它的利润下降至3.25亿英镑，收入为13亿英镑。

ARM 重点关注的一个领域是汽车，它认为未来几年，越来越多的处理器将用于汽车。ARM 现在只占汽车芯片市场的20％份额。由于车内的电子设备越来越多，汽车制造商开始要求将多个控制电路做进一个芯片，以节省空间并消除电路的复杂性。随着自动驾驶汽车的出现，将需要更多的芯片。自动驾驶需要的计算能力是手机的10倍，这意味着每辆自动驾驶汽车，可能会让 ARM 收到十倍的特许费。ARM 预计，汽车芯片市场将变得与手机芯片市场一样大。

ARM 另一个重点领域是网络设备。ARM 认为世界将需要更多的网络设备，来有效地传送数据，并保证网络安全。ARM 在这个市场的份额从2011年的5％，已经增加到20％。

ARM 最弱的地方是服务器，这是一个几乎由英特尔垄断的市场，ARM 的份额不到1％。不过，去年11月，亚马逊宣布已经将 ARM 芯片用于服务器，开始提供云服务。主导云计算的巨型公司，希望能够有 ARM 服务器，这样就可以避免英特尔对他们索取垄断高价。

ARM 公司的一个障碍可能是开源芯片，任何企业都可以免费使用，从而放弃使用 ARM 芯片，比如 RISC-V 芯片就是开源的。

## 言论

1、

全周期工程师就是一个人负责完整的软件生命周期：设计，开发，测试，部署，操作和支持。

-- [《从全栈工程师到全周期工程师》](https://medium.com/@eminetto/full-stack-vs-full-cycle-developer-2a454942291b)

2、

只有大型工业，才会让人口大量聚集在一小块地方，愿意不干净地挤在一起生活。

-- T.E.劳伦斯《智慧七柱》

3、

磁带储存数据有一个好处，要是断了，只要把两头再连起来，依然可以读取文件，只丢了断掉的那部分。

-- [《CERN 见闻》](https://remysharp.com/2019/02/13/cern-day-2)

4、

互联网公司的时间是狗年。狗的一年，据说相当于人的七年。一家开张两年的互联网公司，就像经营了二十年的传统行业公司。

-- 某微信公号

5、

任何一种专门服务小企业的软件都很糟糕。对于大众软件来说，客户获取成本低，开发成本可以分散在数百万人身上，因此即使价格低，也有巨大的利润潜力。对于大企业软件而言，客户获取成本很高，但报酬也很高。对于小企业软件而言，客户获取成本仍然很昂贵（面对面的个人销售和售后支持），但销售价格仍然很低。

--[《从零到一》](https://news.ycombinator.com/item?id=19164389)

## 订阅

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

（完）

