# 每周分享第 10 期 这里记录过去一周,我看到的值得分享的东西,每周五发布。 ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062201.jpg) (题图:卢日尼基体育场,莫斯科,2014。世界杯开幕式的转播,让我意识到自己去过那个体育场。那天想去莫斯科大学玩,路过一个体育场,大门紧锁,空无一人。) 我经常收到来信,询问怎样才能变成前端工程师。大部分的信件,来自两类人:即将毕业的学生和工作多年的成年人。上周,我就收到一封。一位30出头的通信工程师问我,现在通信行业效益不好,有没有可能转到前端开发? 我一般不给人生建议。你的人生,我不介入。再说,我又不了解你,怎么给建议?何况我从来不确信自己是对的。但是这一次,我破例回信,告诉他别转前端。 互联网开发这个行业,求快求变,工作负荷非常大。年纪大了(35岁~40岁)还待在第一线开发,就会力不从心。项目下个月就要发布,这个月必须全部关在项目室加班,最忙的几天可能还要在电脑桌下面的睡袋过夜。十年前,你还能承受这种生活,十年后就不行了,没法跟刚刚毕业的年轻人一样投入了。比起年轻人,你不仅加不动班,而且技术也不占优势,经验也没太大价值,但是你的工资比较高,这时就是你离开第一线的时候了。 30多岁转前端开发,个人爱好没问题,但梦想以此谋生基本上是死路一条。当然,你原来的职业可能也是死路一条,我不知道哪条路更糟一些,但是留在原行业,至少你还有一些行业积累,从零开始风险太大了。 一个相关的问题是,已经待在这个行业的程序员,退出第一线以后干什么呢?很简单,干一些强度比较小、迭代比较慢的事情。人生几十年,能够体验不一样的生活,挺好的。至于能不能依靠那些事情谋生,就看每个人的造诣和造化了。至少那些老程序员离开第一线以后,看上去都还活得不错,对嘛? ## 新闻 1、[棉花糖测试](https://www.theatlantic.com/family/archive/2018/06/marshmallow-test/561779/?single_page=true) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062202.jpg) 有一个著名的心理实验,叫做[棉花糖测试](http://songshuhui.net/archives/22125)。一群小孩,每人拿到一块棉花糖。心理学家告诉他们,你可以现在就把糖吃掉,但是如果忍耐15分钟,就可以得到第二块糖的奖励。 > 大多数小孩子都没能忍住,有的立刻吃掉了,有的还没等实验员离开半分钟就吃掉了,有的四下张望之后偷偷吃了一点点......只有30%的孩子一直坚持了15分钟,直到实验员回来。 日后的追踪发现,那些忍住不吃的小孩,往往有更成功的人生。 以前的解释是,为了长远利益、忍受眼前诱惑的人,更可能成功。但是,新的[研究](https://www.theatlantic.com/family/archive/2018/06/marshmallow-test/561779/?single_page=true)发现,那些忍住不吃的小孩,大多来自富裕人家,也就是说他们的人生成功,很可能与忍耐力无关,而是家庭的帮助。 2、[古巴的声波攻击](http://hearinghealthmatters.org/hearingnewswatch/2018/ultrasound-intermodulation-distortion-cuba-sonic-attacks/) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062203.jpg) 2016年12月开始,古巴首都哈瓦那的美国和加拿大使馆,至少有24名外交人员出现恶心,耳痛,听力下降,流鼻血,眩晕甚至行走困难。一份医疗报告将伤势描述为"轻度创伤性脑损伤"和"未受震荡的脑震荡"。 2018年3月,密西根大学发表一项研究成果,认为这不是古巴的有意攻击,而是窃听器失灵,造成多个音调的超声波信号相互干扰,使得不可听见的超声波变频到可听范围内,从而导致高音噪音。 3、[从空气中吸收二氧化碳](https://www.nature.com/articles/d41586-018-05357-w) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062204.jpg) 科学家认为,人类过度释放二氧化碳是地球暖化的主要原因,为了保护环境,我们应该减少二氧化碳的释放。 一家加拿大公司正在尝试另一种方法:从空气里面捕获二氧化碳。方法是把空气吹向氢氧化钾溶液,形成碳酸钾。进一步加工处理之后,转变为碳酸钙颗粒。这种颗粒加热后,就会释放二氧化碳,再埋入地下的管道。现在,捕获一吨二氧化碳的成本在200美元以上,但是未来估计可以降低到100美元以下。 4、[谷歌创始人投资的飞行汽车](https://phys.org/news/2018-06-car-startup-google-founder-flights.html) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062205.jpg) 6月初,谷歌创始人拉里·佩奇支持的飞行汽车在新西兰试飞。这种飞机使用电动引擎,可以在地面行驶,它的机翼上有10个小型升力扇,使其能够像直升机一样垂直起降。 它的飞行最高时速限制在32公里/小时,飞行高度不超过3米。设计目的是水上飞行,主要用于游乐用途。 5、[微软的海底机房](https://news.microsoft.com/features/under-the-sea-microsoft-tests-a-datacenter-thats-quick-to-deploy-could-provide-internet-connectivity-for-years/) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062206.jpg) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062207.jpg) 6月6日,微软在苏格兰沿岸30米的海底放入一个机房。这个海底机房配置了12个机架864台服务器,合计27.6PB存储空间。它主要由海底电缆供电,并通过电缆连回互联网。同时,它还装备了涡轮发电机和波浪发电转换器,能够利用潮汐流和海浪摇曳发电。 海底机房的最大好处是节省能源,机房会产生大量热量,放在海底就不用担心散热。另外,由于是无人空间,机房里面的氧气和水蒸气会全部抽除,减少服务器腐蚀。 6、[GraphQL 指南](https://blog.graphql.guide/introducing-the-graphql-guide-11a5ae48628a) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062208.jpg) jQuery 的作者 John Resig 出新书《GraphQL 指南》了。他的时间现在都投在 React 开发。 7、[生育率与房价](https://www.zillow.com/research/birth-rates-home-values-20165/) 美国一项研究发现,房价上升最快的县市,生育率下降最多。 真是挺有趣的结果,因为生育率统计的是当地居民,这批人都是房价上涨的受益者。他们变得更有钱了,却不愿意多生小孩了。联想到穷人往往多生,结论只能是:多生小孩的主要动机是养儿防老。 ## 教程 1、[如何使用 AWS LAMBDA 做一个 YOUTUBE MP3 下载器](https://intoli.com/blog/youtube-mp3-downloader/)(英文) 作者做了一个 Bookmarklet。浏览 Youtube 的时候,只要按一下这个书签工具,就会把请求发到 AWS LAMBDA,然后抓取 Youtube 流文件,转码成 mp3 文后以后存到 S3,再返回下载地址。 2、[各种数据结构的 JavaScript 实现](https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/)(英文) 这篇文章针对初学者,介绍 Array、HashMaps、Sets、Linked Lists、Stacks、Queues 这六种数据结构的 JavaScript 实现。 3、[tcpdump 示例教程](https://hackertarget.com/tcpdump-examples/)(英文) tcpdump 是一个 Linux 命令行工具,用来查看 TCP 通信。 4、[Eloquent JavaScript 3rd edition 中文版](https://github.com/wizardforcel/eloquent-js-3e-zh) 一本开源的 JavaScript 语言的入门教材。 5、[2018 世界杯预测](https://www.kaggle.com/agostontorok/soccer-world-cup-2018-winner) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062209.jpg) 有人根据历史数据,写了一个脚本,预测本届世界杯的所有比赛(见上图)。四强是葡萄牙、阿根廷、巴西、德国,决赛是巴西对德国,冠军是德国。链接是完整的脚本和数据集下载。不过,世界杯已经开始了,跟真实结果一比较,似乎出入比较大,这届的强队都表现一般。 6、[MATLAB 处理照片](https://blogs.mathworks.com/steve/2012/11/13/image-effects-part-1/) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062210.jpg) 你还是使用 PhotoShop 处理照片吗?可以考虑试试看 MATLAB。 7、[V8 改进垃圾清理机制](https://v8project.blogspot.com/2018/06/concurrent-marking.html)(英语) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062211.jpg) V8 引擎宣布"垃圾清理机制"的重大改进。我们知道,对于大型程序,垃圾清理很影响性能,因为程序必须暂停,让引擎识别哪些内存不再需要。 V8 现在允许内存识别不暂停程序,而是并发进行,使得程序停顿时间减少70%左右。引擎如何识别不再需要的对象,希望了解具体实现的朋友,可以看看上面这篇文章。 8、[Testcafe 教程](https://itnext.io/javascript-e2e-ui-testing-or-how-to-brake-up-with-selenium-and-move-on-f991c142079a)(英文) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062212.jpg) Testcafe 是一个 UI 测试框架,可以在各大浏览器进行 UI 测试。相比 Puppeteer,它提供各种专门针对测试的封装好的方法。 ## 资源 1、[高中物理笔记](https://landgreen.github.io/physics/index.html)(英文) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062213.jpg) 高中物理要点讲解,配有插图和动画。 2、[FiraCode](https://github.com/tonsky/FiraCode) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062214.jpg) 开源的代码字体。 3、[C 语言学习资料](http://www.isthe.com/chongo/tech/comp/c/index.html) 收集各种网上可以免费得到的 C 语言学习资料,不过都是英语资源。 4、[2018年最有上升潜力的 Linux 发行版](https://www.techradar.com/news/best-rising-linux-distro) 它们是 [Antergos](https://antergos.com/try-it/)、[Deepin](https://www.deepin.org/en/download/)、[MX Linux](https://mxlinux.org/download-links)、[Subgraph](https://subgraph.com/)、[Debian](https://www.debian.org/)。 ## 工具 1、[Reach router](https://reach.tech/router) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062215.jpg) React router 的两位创始人闹翻了,其中一位另起门户,写了一个功能相同的 Reach router 2、[Lottie](http://airbnb.io/lottie/) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062216.jpg) Airbnb 推出的动画效果库,可以把 Adobe After Effects 制作的动画用于 Web、安卓和 iOS。 3、[maid](https://github.com/egoist/maid) Node 项目的任务运行器,特点是用 Markdown 格式写配置文件。 4、[wtf](https://github.com/senorprogrammer/wtf) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062217.jpg) 在终端窗口显示控制台面版。 5、[tusk](https://github.com/klauscfhq/tusk) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062218.jpg) 一个非官方的 Evernote 桌面客户端。 6、[hiper](https://github.com/pod4g/hiper) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062219.jpg) 一个查看网页加载性能的命令行程序。 7、[Gource](http://gource.io/) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062220.jpg) Gource 是一个很好玩的可视化工具,可以将代码仓库的历史变成视频,支持 Git 和 SVN 等多种格式。只要在仓库目录执行 gource 命令,就能看到提交历史的视频。 8、[vnote](https://github.com/tamlok/vnote) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062221.jpg) 一个写 Markdown 笔记的桌面应用,跨平台。 ## 文摘 1、[腾讯 TCFT 比赛采访记](https://media.weibo.cn/article?id=2309404245359974028567&jumpfrom=weibocom) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062222.jpg) > 我刚刚从深圳回来。腾讯组织了一场挺有意思的 CTF 比赛,名为 TCTF。 > > 用一句话说,CTF 比赛就是黑客们的"奥赛":出题人会精心设计二十多道"心机谜题",每个黑客战队的目的就是尽可能多地解开更多的谜题。比赛持续两天一夜的时间。中间那晚你可以睡觉,但你的对手可不一定会睡觉。解出不同的题目,获得不同的分数。谁的技术最叼,拿到的总分最多,就能分到最多的奖金。 > > 参加 TCTF 的战队,每个队不能超过四个人。看起来人数不少,但你要知道。这二十多道题目,随便拽出来一个,可能都需要几个小时时间的分析。所以,这四个人,虽然各个智商冒烟,但还是远远不够用的。 > > 之前说到,比赛的题目分了五类。而这几类题目,需要动用的专长都不尽相同。所以对大多数战队来说,每个队员基本都承担了一个特定方向的题目。比如在比赛开始时,队长可能会分配:密码学的三道题都交给你,答不出来提头来见。比如这次 TCTF 最终获得冠军的 Dragon Sector,他们就解出了 Crypto(密码学)分类的全部三道题目。而第三名的 LC↯BC 战队,就解出了 Misc(杂项)的全部三道题目。这在全场是独一无二的。 2、[斯蒂芬·金的笔名](https://ofdollarsanddata.com/why-winners-keep-winning-4e7f221f5b84) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062223.jpg) 美国最畅销的小说家斯蒂芬·金,是在上个世纪70年代成名的。 当时,出版公司为了保证每本书的销量,只允许小说家一年出一本书,但是斯蒂芬·金一年可以写两本书。他决定不放慢写作速度,另一本用笔名 Richard Bachman 出版。接下来的几年里,每一本署名斯蒂芬·金的书都卖出了数百万美元,而每一本署名 Richard Bachman 的书都不成功。虽然,它们的内容质量是完全相同的。 最终,有人发现了,这两个作者实际上是一个人,因为写作风格实在太像了。斯蒂芬·金接受采访的时候,承认这个事实。于是,所有 Richard Bachman 的书立即重版,署名改成了斯蒂芬·金。它们马上占据了畅销书排行榜第一名,最终一共卖出了300万本。 这个故事告诉我们,起步时的市场占有率是多么重要。两个水平相当的作品或者项目,仅仅因为一个已经有市场,另一个没有,就会导致后者仅仅依靠自身的力量,根本无法与前者竞争。 ## 新奇 1、[完全安静的电脑](https://tp69.blog/2018/04/17/completely-silent-computer/) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062224.jpg) 外国网友自制了一台"完全安静的电脑",运行时毫无声音,可以达到 0db。全机没有任何风扇,为了替 CPU 散热,采用巨大的铜管散热。 2、[Radio Garden](http://radio.garden/live/) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062225.jpg) 世界地图上每一个绿点,就代表一个当地的电台。光标移上去,就可以听到该电台的现场直播。 ## 本周图片 1、[谷歌硬件产品的设计风格](https://designobserver.com/feature/what-we-see-when-we-see-google-design/39808) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062226.jpg) 上图是谷歌硬件产品的全家福,从左到右依次是 Google Pixel Buds,Pixel 2 XL,Pixel 2 XL,Pixel 2,Google Home Mini,Google Home,Google Home Max,Google Clips,Daydream View,Pixelbook Pen,Google Pixelbook。 可以看到,这些产品大多采用了统一的设计语言:纯净的双色块对比。 2、[来自遥远法罗群岛的故事](http://www.bbc.co.uk/news/resources/idt-sh/faroe_islands_postal_service)(组图) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062227.jpg) BBC 的图片报道。 > 法罗群岛藏在挪威和冰岛之间,在北大西洋的黑暗水域中,18个小岛屿拥有超过5万人口。这些居民中有一半居住在群岛首府托尔斯港的"托尔镇"。但是一些岛屿人口稀少,只有少数人居住在这些岛屿上。 > > 法罗群岛的居民是自力更生、谦虚的人,具有丰富的讲故事的传统,并且渴望彼此分享信息。 3、[12 间值得一去的日本洗手间](https://www.nippon.com/hk/views/b07101/?pnum=1) 日本作家 Maritomo,耗時十餘年,遍訪了日本各地300多間洗手間,寫下《日本的洗手間及其它》(Aspect出版)一書,為此還得了一個「洗手間獵手」的綽號,在雜誌、電視、網站上也常常可以看到她的活躍身影。 ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062228.jpg) 上图:福井縣越前海岸,有一家名叫「Rest有情」的日本餐廳,這裡連洗手間都是日本庭院式的。 ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062229.jpg) 上图:兵庫縣明石市林崎松江海岸前的「Hipopopapa」(原名「嚕嚕米爸爸」),是一家看得見海景的餐廳,這裡的洗手間,還能讓你享受到身在海中的感覺。 4、[三星折叠手机](https://www.techradar.com/news/samsung-galaxy-x-the-story-of-samsungs-foldable-phone-so-far) ![](https://cdn.beekka.com/blogimg/asset/201806/bg2018062230.jpg) 据传,三星一直在研发可折叠手机,上图是网友流出的界面图。左侧是两个屏幕垂直折叠的界面,右侧是水平折叠的界面。 ## 本周金句 挪威画家蒙克一生留下了7000张画作,他活了79岁;大家经常听到的梵高,活了37岁,大概也留下了2000张各种作品。这些人不光天才,还勤奋加努力,关键还得有兴趣,一件事一直做,坚持一辈子。([@cathayan](https://twitter.com/cathayan/status/1003822905984028672)) ## 欢迎订阅 这个专栏每周五发布,同步更新在我的[个人网站](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) (完)