这里记录每周值得分享的科技内容,周五发布。
本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。
周刊讨论区的帖子《谁在招人?》,提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。
封面图
厦门市山海步道长达23公里,通过高架道路,将市内多个公园串联起来。(via)
本周话题:当音乐还是稀缺的时候
上周,磁带的发明者、飞利浦公司的荷兰工程师 Lou Ottens 去世了。
这让我想起了往事。这里的年轻读者,可能从没有听过磁带,但是20多年前,它是我们接触流行音乐的唯一渠道。
那时,电台的音乐频道会播歌,要想反复听,就必须录音,或者购买歌手的专辑。我记得,最早一盒是7元,后来涨到了10元。对于学生是很贵的东西,买一盒要下很久的决心,买来以后会反复听几百遍。
现在完全不一样了,一个新专辑在网上发布,很少有人连着听几百遍吧,不知名歌手的专辑可能根本没人听。因为音乐实在太多了,随便一个流媒体网站,都是上百万的曲库,大家已经不会在一张专辑上花太多的时间了。
音乐家应该会怀念磁带的年代。那时,生活中缺乏音乐,人们才会那么投入地去听,歌手也会投入地创作。那时的歌曲真的会影响人生,甚至影响社会。
美国歌手鲍勃·迪伦因为他的歌词,得到诺贝尔文学奖。“一个人要经历多少旅途,才能长大 / 一只鸽子要飞过多少海洋,才能看到沙滩 / 一门大炮要发射多少次,才有和平 / 我的朋友啊,答案就在风中飘荡”,成了一个时代的标志。要是他生在现在,到处是快餐文化,这种歌即使写出来,也不会有太大反响,最多就是在社交媒体上转发一阵子。
音乐的黄金年代,其实是它稀缺的年代。 现在的音乐就像流水线上的产品,丰富到大家都不在乎了。歌手出一张专辑,跟发一条朋友圈差不多。
如果看得远一点,真正出大师的年代,是音乐更稀缺的时候。巴赫、贝多芬和莫扎特的年代,根本没有录音技术,想听音乐必须去现场。但是,偏偏那个年代出现了最伟大的音乐家,后世的技术提升了,却没人赶得上他们,这是为什么?
我猜想,原因可能跟稀缺有关系。稀缺意味着竞争少,所有问题都没有解决,你可以探索各种可能性和解决方案,容易出大师,影响后世。顺便说一下,也许有人会问,为什么更早以前没有出现著名音乐家?因为欧洲人在17世纪才掌握了成熟的炼钢技术,可以制作钢丝琴弦,能够确定准确的音高了。
稀缺年代不仅诞生大师,也会诞生大公司。 现在的科技大厂,都是新技术的早期诞生的。PC 的稀缺诞生了微软和苹果,互联网的稀缺诞生了 BAT,手机 App 的稀缺诞生了美团和字节跳动。等到不稀缺的时候,再想变成巨头就难了。
这告诉我们,如果你真想做一番大事,就应该投入那些刚刚开始发展、供给还很稀缺的领域。否则,想要成功就好像在互联网年代当一个歌手。
React 源码剖析
React 框架是2013年发布的,至今已经七年了。从那时起,它就一直是全世界最流行、最多人使用的前端框架。
很多同学都有疑问: React 学起来并不简单,为什么会这么流行?
最主要的原因可能是,它有很多前所未有的重大创新,一发布就引起轰动,引领了业界的潮流。学会了 React,就等于多了一种思维,而且它的原理非常清晰,对于大项目的组织开发非常有利。
(图片:2013年 React 发布现场。)
但是不得不说,React 发展到今天,变得越来越抽象,想要掌握它的 API,难度早就今非昔比。有些地方可能光看示例,都不一定能明白,必须要查看源码,才能彻底搞懂。
本周介绍的课程,就是一门 《React 源码剖析专题课》。它选择了国内开发者的几个常见难点,讲解它们的源码,从根源上解决疑惑,提升你的 React 开发水平。
讲课内容适合有一定基础的前端工程师,最好已经学过一遍 React,或者开发过项目,可以听听看。
该课程由腾讯课堂“双认证”机构——京程一灯提供,原价98元,周刊读者只需 0.02元的报名费。微信扫描下方二维码,加入课程群,即可报名。
前50位报名的同学,还会再送价值 98元 的大厂面试经验专题课,帮助大家应对前端面试。
科技动态
1、北海航线
去年,一艘俄罗斯油轮从中国出发,跟在核动力破冰船后面,进入北冰洋航行,2月19日抵达偏远的北极码头萨贝塔(Sabetta)。这是历史上首次在2月份穿越北极。
这条北海航线以前只能在夏季通航,现在有望全年通航,实现另一条太平洋到大西洋之间的稳定航线,将亚洲到欧洲的海运时间缩短一半。它产生巨大经济利益的同时,也反映了北极地区正在加速变暖,越来越多的人类活动将可能使得北极生态发生恶化。
2、太阳能睡眠舱
由于大量接收难民,德国很多城市都有无家可归的流浪者,冬季的严寒使得他们的生存成了问题。乌尔姆市的志愿者制造了太阳能睡眠舱,解决流浪者的夜间避寒问题。
睡眠舱具有很好的隔热性,并且配备了太阳能电池板,用以提升舱内温度。设计人员说,这种睡眠舱只能供紧急状况使用,不能当作永久住房,流浪者还是应该优先考虑室内的庇护所。
3、氢化镁燃料
氢气是一种环保新能源,但是很难储存,因为它太轻了容易逃逸,而且难以压缩体积,储存和运输的成本都很大。德国科学家研发了固态的氢化镁糊剂,尝试解决这个问题。
氢化镁在常温下是一种糊剂,温度上升到250°C才会分解,所以即使车辆在烈日下暴晒,也仍然安全。使用时加入自来水,水会与氢化镁发生了剧烈的放热反应,从而释放氢气。
它的优点是能量密度是锂电池的十倍,也就是说,同样能量的锂电池体积是它的十倍。而且添加燃料非常简单,只要用新的燃料盒替换原来的即可。下图就是氢化镁发电机,右下角的白色盒子就是燃料盒。
《Nature》杂志刊载了复旦大学高分子系的一项成果,可以在纺织品上动态显示不同的色彩、图案。也就是说,每件衣服都相当于一块显示屏。
这种织物不仅可以充当显示器,而且可以多次清洗、折叠,有很大的实用价值。它的原理是将光活性纤维和导电纤维编织在一起, 形成发光单元,然后使用电路控制。织物里面还集成了键盘和电源,可以与手机通信。
5、一句话消息
- 一个英国人最近拍到了清晰的海市蜃楼照片,一艘船悬浮在海面的空气中。
- 《华尔街日报》说,Telegram 的资金快用完了,下个月即将到期的债务就有7亿美元。一直很好奇,Telegram 的商业模式是什么?现在这个样子,放开让大家使用,没有会员和广告收入,明显不可持续啊。
- 在线会议软件 Webex 发布了实时会议翻译功能,支持100多种语言,可以让不同国家的人使用不一样的语言开会。
- 欧盟和英国即将出台《维修权法》,要求厂商必须让自己的产品变得更容易维修,从而延长产品寿命,减少电子垃圾。很多评论认为,这部法律针对的是苹果公司。
文章
1、城市路线牌的设计(中文)
本文讨论了路线牌的设计问题。
2、沙发过弯问题(英文)
1966年,一个数学家提出一个问题,在一个直角走廊里面,能够通过的沙发最大可以有多大?
3、我是如何感染寄生虫的(中文)
作者详细记录了因为使用生鱼肉而感染寄生虫的过程,以及随后的检测和治疗,有大量照片。
4、浏览器是如何校验证书的?(中文)
本文介绍了浏览器怎么处理 HTTPS 的证书,它的校验机制是什么,内容较为通俗全面。(@cj1128 投稿)
5、使用 FFmpeg 将短视频转为 GIF 和 WebP 动画图片(英文)
在某些场合,动画图片的兼容性要好于视频。本文是一个教程,介绍如何使用 FFmpeg 将视频转成动画图片。
6、为什么 Java 后端程序员不愿意改用 Kotlin?(英文)
作者所在的团队从 Java 跳船到了 Kotlin。但是,大部分 Java 后端团队不愿意这样做,作者讨论了原因。
7、ECMAScript 2021 的新语法(英文)
今年6月份即将发布的 ECMAScript 2021 标准,本文介绍里面新增的语法点。
8、为什么应该使用 ISO 8601 日期格式(英文)
世界上有各种各样的日期格式,作者认为大家应该统一使用 ISO 8601 格式,即yyyy-mm-dd hh:mm:ss
。
工具
1、LinkDOM
JSDOM 的一个替代品,使用 JavaScript 解析 HTML 字符串,返回一个 DOM 对象,在上面实现了 DOM 接口。它比 JSDOM 体积更小、速度更快、内存占用更少。
一个在线工具,可以生成 SVG 的波浪图片,各种细节都可以定制。
3、NodeGui
一个类似 Electron 的跨平台桌面应用开发框架,底层技术是 Node.js + Qt5。
FFmpeg 的 Python 包装库,将复杂的命令行参数转成易用的 API。
在一个 SVG 文件里面,实现俄罗斯方块小游戏。原理是 SVG 可以内嵌<script>
标签。
一个 Markdown 桌面编辑器,支持 Windows 和 Linux。设计思想是保持强大功能的同时,对写作产生最小干扰,提供全屏的简洁模式。
一个使用 EXIF 信息的图片文件批量改名工具,支持 MacOS 和 Windows。(@Arman19941113 投稿)
一个 Chrome 浏览器插件,在网页的 GitHub 仓库链接后面,插入该仓库的 Star 数目。(@chinazhangchao 投稿)
一个 GitHub Actions 脚本,定时运行脚本机器人,将非英语的 Issue 自动翻译成英语。(@tomsun28 投稿)
资源
1、低地轨道可视化
这个可视化作品,可以让大家感受一下地球低轨道太空的实际状态,看看有多少太空垃圾。
2、奇怪的词源
这个网站收集各种 IT 单词的来源。
一本正在写作中的开源书籍,介绍如何使用1000行 Python 代码,实现一个简单的网页浏览器。
4、DOS Zone
DOS 游戏仓库,收集的所有 DOS 游戏都可以在浏览器里玩。
免费的英文电子书,通过 VS Code 的 Vim 插件,教你如何使用 Vim。
图片
Windows XP 的默认壁纸,大概是世界上观看次数最多的照片之一。那是一座真实的小山坡,位于加利福尼亚州索诺玛市12号高速公路旁,当年是一片草地,现在被一排排葡萄架覆盖着。
现年79岁的摄影师查尔斯·奥雷尔(Charles O'Rear)那时经常在高速公路上路过这座小山坡。他是《洛杉矶时报》的特约摄影师,并有25年为《国家地理》杂志拍摄的经历。
1996年一个星期五的下午,他将车停在路边,为田园诗般的风光拍了一张照片。然后,他将这张照片卖给一家图片社,微软发现了这张照片,永久买断后(具体金额未公开,据说超过6位数美元),然后将其用作 Windows XP 的默认桌面壁纸。
全世界的用户非常喜欢这张壁纸,它出现在各种场合。人们从未意识到这是一个真实的就在湾区的山坡,而是猜测它是计算机生成的图形,或者是在欧洲拍摄的。
可惜的是,仅仅在照片拍摄数年后,这座绿色小山丘变成了葡萄园,已经无法复现当初的样子了。
如果你想知道这座小山的确切位置,可以在 Google Map 输入坐标“38.249069, -122.410126”。
文摘
1、珠穆朗玛峰的高度
2015年4月25日,尼泊尔发生了8.1级大地震,造成近万人死亡。
地震之后,许多科学家推测珠穆朗玛峰可能会变矮。过去曾多次参与测量珠穆朗玛峰的印度很快提出,希望与尼泊尔合作,重新测量珠穆朗玛峰的高度。
尼泊尔政府拒绝了,表示将独立测量珠穆朗玛峰。历史上,尼泊尔人从未独立对其进行过测量,都是由外国测量队伍完成。
政府指定36岁的测量工程师乔塔姆(Khim Lal Gautam)带领一个小组,完成此次任务。乔塔姆本人就是在喜马拉雅山区出生并长大。
他们需要爬到珠穆朗玛峰顶,放置一个 GPS 信号接收器和天线。在此之前,需要先搜集海平面数据,然后从孟加拉湾(Bay of Bengal)开始逐步测量,之字形地向北推进,把沉重的装备从这个山头扛到那个山头,直到那最高峰出现在视线中为止,确定了大本营周围的大地水准面细节,才能算出高度。
2019年3月22日,天气预报晴。当天有许多登山队,预计将有223名登山者登上珠穆朗玛峰。由于携带的设备较多,为了避免堵塞道路,乔塔姆和一个同事,以及一个向导,不得不在凌晨3点开始向顶峰攀登。另外80人的队伍在大本营等着接收他们的信号。
珠穆朗玛峰的峰顶很小,只能站六个人。大多数登山者登顶以后,拍几张照片就下撤了,一般只会待几分钟。因为下山比上山更危险,必须留出足够的时间。但是,乔塔姆必须在峰顶调试设备,部署 GPS 接收器,以及部署用来测量积雪厚度的透地雷达,并要确保能够接通卫星信号。他最终在零下43度的珠穆朗玛峰顶,待了1小时45分钟。
当他开始下山,下降到8,200米后,乔塔姆(Gautam)筋疲力尽,几乎走不动了。他已经连续23个小时没有进食,携带的氧气也耗尽了。有一阵子,他失去了知觉,一位从山顶下来的美国登山者踢了他一脚,确认他是否还活着,他才醒过来,慢慢继续往下爬。他后来说,如果不是那个人把他踢醒,他会在山上丧生。
稍后,乔塔姆回到第二营地时,直升机将他们接走了。
2019年10月,中国宣布与尼泊尔合作,共同确定珠穆朗玛峰的高度。
2020年5月27日,中国测量队从北坡登上珠穆朗玛峰,放置了卫星测量设备。
2020年12月8日,中国和尼泊尔政府共同宣布珠穆朗玛峰的新高度:8848.86米,比以前宣布的高度略高。
言论
1、
有些计算机语言,运算可能会返回空值(null),这是一个设计错误,因为会中断类型系统,你将无法依靠编译器来检查代码的有效性。
任何可能为 null 的值都是等待爆炸的炸弹。我们必须依靠运行时手动检查来确保所处理的值不为 null。即使是静态类型语言,null 也剥夺了类型系统的许多好处。
2、
项目做完了,员工都闲着,老板会让这些人立即投入到下一个项目中。毕竟每天都在烧钱,是不可能等主创人员想清楚再开工的。
反过来,这些人力也会给项目负责人带来压力,必须尽快做决策,以免让员工闲着没事干。这种情况下,能做出多少正确的决策?
3、
互联网使得报纸的销量再也回不去了。以《纽约时报》为代表的一些报纸,开始尝试网上付费订阅,但是免费的新闻到处都是,读者为什么要付费看新闻呢?
《纽约时报》的办法就是,报纸不仅仅提供新闻,实际上是提供信条和观点,卖给志趣相投的人。
4、
各种聊天软件(Signal、Telegram、WhatsApp 等)都有相同的问题:它们都是有围墙的花园,用户只能跟安装了同样软件的人交流。这就像给不同域的人发送电子邮件,都需要单独的邮件客户端一样,比如Gmail 用户只能与 Gmail 用户通信。
5、
大约10年前,一群运维工程师对开发工程师有很大意见,觉得开发工程师不关心自己的代码是否能够真正有效运行,交付后就不管了。同时,运维工程师还觉得遭受管理层的虐待,管理层要求运维团队全天候待命,但几乎没有提供内部的支持和认可。
这些工程师引发了一场称为 DevOps 的革命,即开发工程师和运维工程师需要更加紧密地合作,以支持通过 Internet 运行复杂软件这一日益复杂的任务。
6、
你能想象吗,智能手机问世只有不到5000天。与人类历史相比,5000天实在太过于短暂。然而这短短的5000天,我们的生活已经发生了如此惊人的变化。
— 凯文·凯利
历史上的本周
2020年(第 99 期):疫情导致的研究生扩招
2019年(第 47 期):吃播算不算正式工作?
订阅
这个周刊每周五发布,同步更新在阮一峰的网络日志和微信公众号。
微信搜索“阮一峰的网络日志”或者扫描二维码,即可订阅。
(完)