# 科技爱好者周刊(第 150 期):当音乐还是稀缺的时候 这里记录每周值得分享的科技内容,周五发布。 本杂志开源(GitHub: [ruanyf/weekly](https://github.com/ruanyf/weekly)),欢迎提交 issue,投稿或推荐科技内容。 周刊讨论区的帖子[《谁在招人?》](https://github.com/ruanyf/weekly/issues/1652),提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。 ## 封面图 ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021031604.jpg) 厦门市山海步道长达23公里,通过高架道路,将市内多个公园串联起来。([via](https://new.qq.com/omn/20191229/20191229A0LH8J00.html)) ## 本周话题:当音乐还是稀缺的时候 上周,磁带的发明者、飞利浦公司的荷兰工程师 Lou Ottens [去世](https://www.npr.org/2021/03/10/975598869/lou-ottens-inventor-of-the-cassette-tape-has-died)了。 ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021031605.jpg) 这让我想起了往事。这里的年轻读者,可能从没有听过磁带,但是20多年前,它是我们接触流行音乐的唯一渠道。 那时,电台的音乐频道会播歌,要想反复听,就必须录音,或者购买歌手的专辑。我记得,最早一盒是7元,后来涨到了10元。对于学生是很贵的东西,买一盒要下很久的决心,买来以后会反复听几百遍。 ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021031606.jpg) 现在完全不一样了,一个新专辑在网上发布,很少有人连着听几百遍吧,不知名歌手的专辑可能根本没人听。因为音乐实在太多了,随便一个流媒体网站,都是上百万的曲库,大家已经不会在一张专辑上花太多的时间了。 音乐家应该会怀念磁带的年代。那时,生活中缺乏音乐,人们才会那么投入地去听,歌手也会投入地创作。那时的歌曲真的会影响人生,甚至影响社会。 ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021031607.jpg) 美国歌手鲍勃·迪伦因为他的歌词,得到诺贝尔文学奖。“一个人要经历多少旅途,才能长大 / 一只鸽子要飞过多少海洋,才能看到沙滩 / 一门大炮要发射多少次,才有和平 / 我的朋友啊,答案就在风中飘荡”,成了一个时代的标志。要是他生在现在,到处是快餐文化,这种歌即使写出来,也不会有太大反响,最多就是在社交媒体上转发一阵子。 **音乐的黄金年代,其实是它稀缺的年代。** 现在的音乐就像流水线上的产品,丰富到大家都不在乎了。歌手出一张专辑,跟发一条朋友圈差不多。 如果看得远一点,真正出大师的年代,是音乐更稀缺的时候。巴赫、贝多芬和莫扎特的年代,根本没有录音技术,想听音乐必须去现场。但是,偏偏那个年代出现了最伟大的音乐家,后世的技术提升了,却没人赶得上他们,这是为什么? 我猜想,原因可能跟稀缺有关系。稀缺意味着竞争少,所有问题都没有解决,你可以探索各种可能性和解决方案,容易出大师,影响后世。顺便说一下,也许有人会问,为什么更早以前没有出现著名音乐家?因为欧洲人在17世纪才掌握了成熟的炼钢技术,可以制作钢丝琴弦,能够确定准确的音高了。 **稀缺年代不仅诞生大师,也会诞生大公司。** 现在的科技大厂,都是新技术的早期诞生的。PC 的稀缺诞生了微软和苹果,互联网的稀缺诞生了 BAT,手机 App 的稀缺诞生了美团和字节跳动。等到不稀缺的时候,再想变成巨头就难了。 这告诉我们,如果你真想做一番大事,就应该投入那些刚刚开始发展、供给还很稀缺的领域。否则,想要成功就好像在互联网年代当一个歌手。 ## React 源码剖析 React 框架是2013年发布的,至今已经七年了。从那时起,它就一直是全世界最流行、最多人使用的前端框架。 很多同学都有疑问: **React 学起来并不简单,为什么会这么流行?** 最主要的原因可能是,它有很多前所未有的重大创新,一发布就引起轰动,引领了业界的潮流。学会了 React,就等于多了一种思维,而且它的原理非常清晰,对于大项目的组织开发非常有利。 ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021031701.jpg) (图片:2013年 React 发布现场。) 但是不得不说,React 发展到今天,变得越来越抽象,想要掌握它的 API,难度早就今非昔比。有些地方可能光看示例,都不一定能明白,必须要查看源码,才能彻底搞懂。 本周介绍的课程,就是一门 **《React 源码剖析专题课》**。它选择了国内开发者的几个常见难点,讲解它们的源码,从根源上解决疑惑,提升你的 React 开发水平。 ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021031703.jpg) 讲课内容适合有一定基础的前端工程师,最好已经学过一遍 React,或者开发过项目,可以听听看。 该课程由腾讯课堂“双认证”机构——[京程一灯](https://www.yidengxuetang.com/)提供,原价98元,周刊读者只需 0.02元的报名费。微信扫描下方二维码,加入课程群,即可报名。 ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021031702.jpg) 前50位报名的同学,还会再送价值 98元 的大厂面试经验专题课,帮助大家应对前端面试。 ## 科技动态 1、[北海航线](https://www.jiemian.com/article/5718015.html) ![](https://cdn.beekka.com/blogimg/asset/202102/bg202102507.jpg) 去年,一艘俄罗斯油轮从中国出发,跟在核动力破冰船后面,进入北冰洋航行,2月19日抵达偏远的北极码头萨贝塔(Sabetta)。这是历史上首次在2月份穿越北极。 ![](https://cdn.beekka.com/blogimg/asset/202102/bg202102508.jpg) 这条北海航线以前只能在夏季通航,现在有望全年通航,实现另一条太平洋到大西洋之间的稳定航线,将亚洲到欧洲的海运时间缩短一半。它产生巨大经济利益的同时,也反映了北极地区正在加速变暖,越来越多的人类活动将可能使得北极生态发生恶化。 2、[太阳能睡眠舱](https://www.distractify.com/p/ulmer-nest-homeless-sleeping-pods) ![](https://cdn.beekka.com/blogimg/asset/202102/bg2021020702.jpg) ![](https://cdn.beekka.com/blogimg/asset/202102/bg2021020703.jpg) 由于大量接收难民,德国很多城市都有无家可归的流浪者,冬季的严寒使得他们的生存成了问题。乌尔姆市的志愿者制造了太阳能睡眠舱,解决流浪者的夜间避寒问题。 睡眠舱具有很好的隔热性,并且配备了太阳能电池板,用以提升舱内温度。设计人员说,这种睡眠舱只能供紧急状况使用,不能当作永久住房,流浪者还是应该优先考虑室内的庇护所。 ![](https://cdn.beekka.com/blogimg/asset/202102/bg2021020704.jpg) 3、[氢化镁燃料](https://www.inceptivemind.com/powerpaste-high-density-safe-easily-transportable-hydrogen-energy-fuel/17468/) ![](https://cdn.beekka.com/blogimg/asset/202102/bg2021020803.jpg) 氢气是一种环保新能源,但是很难储存,因为它太轻了容易逃逸,而且难以压缩体积,储存和运输的成本都很大。德国科学家研发了固态的氢化镁糊剂,尝试解决这个问题。 氢化镁在常温下是一种糊剂,温度上升到250°C才会分解,所以即使车辆在烈日下暴晒,也仍然安全。使用时加入自来水,水会与氢化镁发生了剧烈的放热反应,从而释放氢气。 它的优点是能量密度是锂电池的十倍,也就是说,同样能量的锂电池体积是它的十倍。而且添加燃料非常简单,只要用新的燃料盒替换原来的即可。下图就是氢化镁发电机,右下角的白色盒子就是燃料盒。 ![](https://cdn.beekka.com/blogimg/asset/202102/bg2021020804.jpg) 4、[可以当显示器的衣服](https://www.jiqizhixin.com/articles/2021-03-11-4) ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021031206.jpg) 《Nature》杂志刊载了复旦大学高分子系的一项成果,可以在纺织品上动态显示不同的色彩、图案。也就是说,每件衣服都相当于一块显示屏。 这种织物不仅可以充当显示器,而且可以多次清洗、折叠,有很大的实用价值。它的原理是将光活性纤维和导电纤维编织在一起, 形成发光单元,然后使用电路控制。织物里面还集成了键盘和电源,可以与手机通信。 ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021031207.jpg) ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021031208.jpg) 5、**一句话消息** > - [一个英国人](https://www.bbc.com/news/uk-england-cornwall-56286719)最近拍到了清晰的海市蜃楼照片,一艘船悬浮在海面的空气中。 ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021030504.jpg) > - [《华尔街日报》](https://www.wsj.com/articles/telegram-app-is-booming-but-needs-advertisersand-700-million-soon-11615806001)说,Telegram 的资金快用完了,下个月即将到期的债务就有7亿美元。一直很好奇,Telegram 的商业模式是什么?现在这个样子,放开让大家使用,没有会员和广告收入,明显不可持续啊。 ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021031601.jpg) > - [在线会议软件 Webex](https://business-review.eu/tech/cisco-webex-breaks-through-language-barriers-and-launches-real-time-translation-217869) 发布了实时会议翻译功能,支持100多种语言,可以让不同国家的人使用不一样的语言开会。 ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021031107.jpg) > - [欧盟和英国](https://www.bbc.com/news/business-56340077)即将出台《维修权法》,要求厂商必须让自己的产品变得更容易维修,从而延长产品寿命,减少电子垃圾。很多评论认为,这部法律针对的是苹果公司。 ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021031006.jpg) ## 文章 1、[城市路线牌的设计](http://www.disansheng.com/index/details/2073)(中文) ![](https://cdn.beekka.com/blogimg/asset/202102/bg2021030602.jpg) ![](https://cdn.beekka.com/blogimg/asset/202102/bg2021030603.jpg) 本文讨论了路线牌的设计问题。 2、[沙发过弯问题](https://www.math.ucdavis.edu/~romik/movingsofa/)(英文) ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021030313.jpg) ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021030314.jpg) 1966年,一个数学家提出一个问题,在一个直角走廊里面,能够通过的沙发最大可以有多大? 3、[我是如何感染寄生虫的](https://www.douban.com/note/797086502/)(中文) ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021031704.jpg) 作者详细记录了因为使用生鱼肉而感染寄生虫的过程,以及随后的检测和治疗,有大量照片。 4、[浏览器是如何校验证书的?](https://cjting.me/2021/03/02/how-to-validate-tls-certificate/)(中文) 本文介绍了浏览器怎么处理 HTTPS 的证书,它的校验机制是什么,内容较为通俗全面。([@cj1128](https://github.com/ruanyf/weekly/issues/1672) 投稿) 5、[使用 FFmpeg 将短视频转为 GIF 和 WebP 动画图片](https://mattj.io/posts/2021-02-27-create-animated-gif-and-webp-from-videos-using-ffmpeg/)(英文) 在某些场合,动画图片的兼容性要好于视频。本文是一个教程,介绍如何使用 FFmpeg 将视频转成动画图片。 6、[为什么 Java 后端程序员不愿意改用 Kotlin?](https://medium.com/google-developer-experts/why-are-java-server-side-developers-not-adopting-kotlin-8eb53e06ee99)(英文) 作者所在的团队从 Java 跳船到了 Kotlin。但是,大部分 Java 后端团队不愿意这样做,作者讨论了原因。 7、[ECMAScript 2021 的新语法](https://2ality.com/2020/09/ecmascript-2021.html)(英文) 今年6月份即将发布的 ECMAScript 2021 标准,本文介绍里面新增的语法点。 8、[为什么应该使用 ISO 8601 日期格式](https://kirby.kevinson.org/blog/iso-8601-the-better-date-format/)(英文) 世界上有各种各样的日期格式,作者认为大家应该统一使用 ISO 8601 格式,即`yyyy-mm-dd hh:mm:ss`。 ## 工具 1、[LinkDOM](https://github.com/WebReflection/linkedom) JSDOM 的一个替代品,使用 JavaScript 解析 HTML 字符串,返回一个 DOM 对象,在上面实现了 DOM 接口。它比 JSDOM 体积更小、速度更快、内存占用更少。 2、[SVG Waves](https://www.softr.io/tools/svg-wave-generator) ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021030505.jpg) 一个在线工具,可以生成 SVG 的波浪图片,各种细节都可以定制。 3、[NodeGui](https://github.com/nodegui/nodegui) 一个类似 Electron 的跨平台桌面应用开发框架,底层技术是 Node.js + Qt5。 4、[ffmpeg-python](https://github.com/kkroening/ffmpeg-python) ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021030701.jpg) FFmpeg 的 Python 包装库,将复杂的命令行参数转成易用的 API。 5、[SVG 俄罗斯方块](https://www.xul.fr/svgtetris.svg) ![](https://cdn.beekka.com/blogimg/asset/202103/bg2021030703.jpg) 在一个 SVG 文件里面,实现俄罗斯方块小游戏。原理是 SVG 可以内嵌`