Quantcast
Channel: 阮一峰的网络日志
Viewing all 688 articles
Browse latest View live

Epic Games 研究:Fortnite 和游戏行业的未来

$
0
0

Epic Games 是目前最热门的游戏软件公司,它的网络游戏 Fortnite(堡垒之夜)红遍全球,总游戏时间排名世界第一。

除了开发游戏,它还拥有 Unreal 游戏引擎和游戏商店,并且积极探索未来游戏的新形态。Epic Games 有可能成为世界最重要的技术公司之一,拥有一个对社会生活影响巨大的互联网核心平台。

2012年,腾讯以3.3亿美元收购了 Epic Games 40%的股份,目前已经有几十倍的增值。

本文介绍 Epic Games 的历史、现状和主要业务,分析游戏行业的未来发展趋势。主要的参考资料是 Matthew Ball 和 Jacob Navok 撰写的系列文章

一、Epic Games 的由来

Epic Games 的创始人是生于1970年的蒂姆·斯维尼(Tim Sweeney)。1991年,他21岁时,在马里兰大学的宿舍里创建了这家公司。

当时,他是唯一的员工,公司的主要业务就是销售他写的一个命令行游戏

由于销售得很好。第二年就有了20个员工,公司逐渐转向专门开发和销售射击类游戏。

1998年,他们做了一个 3D 第一人称射击游戏,叫做 Unreal。该游戏非常成功,美国的销售额仅次于《魔兽争霸》。它是最早使用材质贴图的游戏之一,以当时的标准来看,画面非常具有质感。

二、Unreal 引擎

Unreal 后来又衍生了多个续作,成为一个系列游戏。但是,它的更大意义在于,这个游戏的底层技术扩展成了一个通用框架,称为 Unreal Engine,中文名为"虚幻引擎",专门用于 3D 游戏开发。蒂姆·斯维尼是这个引擎的主要作者。

1999年后,Epic Games 将这个游戏引擎开放给其他公司,变成了公司的主要技术产品。2002年 Unreal 引擎2.0 版发布,2006年3.0版,2014年4.0版。

Unreal 引擎4.0版取得了巨大的成功,是目前最流行的两个 3D 游戏开发引擎之一(另一个是 Unity)。游戏引擎是游戏的核心技术,很多大公司使用自己的内部引擎,并不对外开放,但是对于小团队来说,没有能力和资源开发自己的引擎,使用外部引擎可以提高开发效率,不必关注底层硬件,集中精力在游戏本身,做出不输给大公司的效果。

Unreal 引擎的流行程度,目前不如 Unity,主要原因有两个。一是 Unity 引擎比较轻,更适合手机游戏,而 Unreal 引擎适合大游戏。二是 Unity 每月收取少量使用费(最高不超过150美元),而 Unreal 引擎要求销售提成,用户容易产生顾虑。

Unreal 引擎的收费模式是这样的,它可以免费下载,使用也是不要钱的。但是,产品一旦发布,每季收入超过3000美元后,必须将总收入的5%支付给 Epic Games,作为引擎的使用费。不过,这条规定已经改掉了。2020年5月,Epic Games 宣布提高使用费的免费门槛,只要总收入不超过100万美元,都可以免费使用,只有收入超过这个数字,才需要支付5%的使用费。由于只有最热门的游戏,收入才会超过100万美元,所以 Unreal 引擎实际上对于90%以上的游戏,都可以视为免费工具。

Unreal 引擎的用途很广,不仅可以用于游戏,还可以用于电影、电视、AR 、 VR 、建筑物模型等领域,只要是需要 3D 动画的场合,都可以用到它。迪斯尼公司的热门电视剧《曼达洛人》,就是用 Unreal 引擎后期制作的。

Unreal 引擎5.0版已经定于2021年底发布,下面的视频就是5.0版的预告片。

三、游戏即服务

Epic Games 早期出品的都是单人的 PC 游戏,由于盗版严重,逐渐转向为游戏主机(PlayStation 和 Xbox)开发游戏。

2006年,Epic Games 在 Xbox 上推出了非常受欢迎的《战争机器》(Gears of War)。

2008年和2009年,又接着发布了《战争机器2》和《战争机器3》。

但是,蒂姆·斯维尼逐渐感到,游戏主机的商业模式也不是很理想。玩家只需一次付款购买游戏,就可以永久拥有。对于游戏公司来说,这只会产生一次收入,但是需要长期维护游戏,持续付出成本,没有办法保证长期稳定的现金流。

这时,随着网络游戏的兴起,他注意到了"游戏即服务"(Game as a Service,缩写为 GaaS)模式。这种模式下,玩家购买的不再是游戏软件,而是游戏服务,如果想持续玩游戏,就必须不断购买服务,玩得越多就需要花越多的钱。

他决定,Epic Games 要向"游戏即服务"转型,开发网络游戏。世界最大的"游戏即服务"公司是腾讯,为了换取腾讯的帮助,2012年两家公司达成协议。腾讯收购 Epic Games 40%的股份,但是对后者没有控制权。

四、Fortnite

2011年,Epic Games 宣布,公司的第一款网络游戏叫做 Fortnite(《堡垒之夜》),已经立项,正在开发中。根据原始设想,这是一款多人合作的射击游戏,玩家白天建设自己的堡垒,晚上各种怪物就会出现,玩家必须将它们一一射杀,熬过这个夜晚,所以叫做"堡垒之夜"。

这是 Epic Games 第一次开发网络游戏,并且用这款游戏来测试 Unreal 引擎4.0版的各种功能,一边开发,一边完善游戏引擎。这导致开发时间非常长,直到2017年7月游戏才发布。

刚刚发布时,游戏玩法跟原来的设想很接近。4个玩家合作执行各种任务,收集资源和武器、建造防御工事和陷阱、与各种怪物作战。这个模式后来称为 "拯救世界"(save the world)模式。

这时,全世界流行的是另一个游戏《绝地求生》(PlayerUnknown's Battlegrounds,简称"PUBG",常被称为"吃鸡")。Epic Games 很快意识到,Fornite 也可以那样玩,于是2017年9月发布了游戏的第二种模式 "大逃杀"(Battle Royale)。100个玩家被空投到一个指定区域,必须消灭其他人,才能活下去。最后只剩下一个玩家,成为游戏的胜利者。

这个模式极其成功,为 Epic Games 带来了巨大收入。推出后半年,到2019年3月为止,全球收入超过20亿美元;截止2020年5月,玩家人数已超过3.5亿,每月的活跃玩家有6千万到8千万,在所有非手机游戏中排名第三(仅次于 Minecraft 和 Roblox)。

2018年12月,Fortnite 又添加了第三种游戏模式,叫做 "创意模式"(creative mode)。玩家拥有一个自己的小岛,可以在上面自由地搭建各种建筑物,还能邀请其他玩家到你的岛上玩,这明显模仿了《我的世界》(MineCraft)。蒂姆·斯维尼表示,这个模式的长期目标是让玩家在游戏里面,完成 Unreal 引擎可以完成的任何事情。

Fortnite 是免费游戏,在里面玩是不要钱的,但是购买道具需要付费。另外,值得一提的是,Fortnite 是历史上第一个跨平台游戏,所有游戏平台都是打通的,不管你在 PC、手机、Xbox、PlayStation 或者 Nintendo Switch 上面玩,你用的都是同一个帐号,都可以跟其他平台的玩家一起玩。

五、Epic 游戏商店

游戏不能脱离游戏平台,目前主要有三种游戏平台:PC、手机和游戏主机。一般来说,只有得到平台制造商的允许,游戏才能在该平台上发行。这是需要缴费的,常见的提成比例是30%,苹果商店、谷歌 Play 商店、索尼的 PlayStation 都是这个比例。100元的游戏,平台会拿走30元。

唯一的例外大概就是 Windows,任何人都可以在 Windows 上销售软件,而无需向微软公司支付任何费用。正是由于这一点,2003年一家美国游戏公司 Valve 在 Windows 上建立了一个自己的游戏商店 Steam。Valve 建这个商店,最初的想法是为了发行自家的游戏《Half Life 2》,后来变成了一个通用的游戏商店,其他公司的游戏也可以在上面出售。这个商店极其成功,根据一项统计,2013年 Steam 商店占到 Windows 平台游戏发行量的75%,成了事实上的垄断渠道。

Steam 商店跟其他平台一样,也会收取30%的交易费。蒂姆·斯维尼认为这非常不合理,多次公开呼吁,这个提成比例过高了,因为 Valve 公司不是平台制造商,并不生产硬件,也不需要维护操作系统,收取这么高的比例是不合理的。他说,即使交易费降低到8%,Valve 公司仍能获利,现在的费率不公平地剥夺了游戏开发者应得的利润,减少了他们对业务再投资的资金。

Fortnite 大获成功以后,每年会产生10亿美元以上的收益,蒂姆·斯维尼不愿意把这么大一笔钱的30%,送给 Valve 公司,于是下决心自建游戏商店。

2018年底,Epic 游戏商店在 Windows 平台推出,任何公司的游戏都可以在里面销售,只收取12%的交易费。虽然12%不到30%的一半,但是蒂姆·斯维尼认为利润空间仍然在50%以上。不仅如此,如果你的游戏是使用 Unreal Engine 开发的,还可以免除5%的引擎使用费,这样一来,游戏开发商的发行成本就降低到了7%。

Epic Games 想了各种方法,推广自家的游戏商店。(1)利用 Fortnite 客户端的升级,将其直接替换成游戏商店。这样一来,从第一天开始,游戏商店就已经安装在全球数千万台电脑上了,拥有了庞大的用户群。(2)购买了许多顶级游戏的独家发行权。(3)每周都向活跃用户提供一个免费的热门游戏,比如2020年5月的免费游戏是史上最畅销游戏之一的《GTA5》,这种级别的赠品是不可想象的。(4)建立独立游戏资助计划,为小公司提供所有的游戏开发成本(包括员工薪水),条件是换取游戏发行后50%的利润。

所有这一切努力,都是为了从 Steam 手里抢来尽可能多的用户。蒂姆·斯维尼说,Epic 游戏商店的主要意义,就在于结束 Steam 的垄断利润,从而使每年数十亿美元的利润从 Valve 公司转移到游戏的实际创造者。他表示,如果 Steam 承诺把交易费降到12%,那么我们就会把 Fortnite 也放到 Steam 上卖。

2019年,Epic 游戏商店吸引了1.08亿用户,销售额超过6.8亿美元,其中2.51亿美元来自第三方游戏。

除了 Windows 平台,Epic 游戏商店也在安卓平台开设了,交易费同样是12%。但是,由于谷歌控制了操作系统,绕过 Play 商店安装游戏,需要修改系统设置,而且系统还会弹出烦人的安全警告,这使得外部游戏商店很难生存。安卓的 Epic 游戏商店最终于 2020年4月宣布关闭,Fortnite 转移到 Play 商店提供下载。

六、Epic 在线服务

前面提过,Fortnite 是第一个跨平台运行的大型游戏,用户无论使用哪一个平台,都可以接着上次的进度继续玩。这意味着,Epic Games 必须自己打造一个复杂的基础设施,把所有平台的访问打通,允许不同设备的玩家可以在一起游戏,有着相近的游戏体验。

2019年,Epic Games 开始提供 Epic 在线服务(online services),将这一套基础设施和自己的账户体系,免费对外开放,允许外部开发者使用,在上面构建自己的多人在线游戏。

这意味着,外部开发者不花一分钱,就可以获得 Fortnite 的庞大用户,包括登录系统、好友系统、成就和排行榜,这些都是现成的。而且,使用 Epic 在线服务,可以让游戏跨平台运行,不用考虑平台差异。

蒂姆·斯维尼在一次采访中,曾经解释这样做的目的,不是为了利润,而是为了推动行业发展。 他说:"我们希望与所有开发者合作,建立更大的跨平台游戏用户群。"

"现在,Xbox、PlayStation、Switch 和 Steam,这些平台的朋友系统都是封闭的,你只能接触到同一个平台的用户。我们想要连接所有平台,建立一个共享的用户基础。"

"Fortnite 现在有3.5亿个游戏帐户,已在5亿个设备上激活,并且有22亿个社交连接。现在所有开发人员都可以使用这个用户基础。开发者把他们游戏里面的用户帐户和朋友关系,也贡献出来,从而使每个人都受益。这样就可以创造一个互相连接的生态系统,而不是每个平台在自己周围建立一道大围墙。"

"我们的目标是开发者无需使用庞大的团队,也无需进行大量的投资,即可拥有与Fortnite 一样的游戏基础。你不必担心你的游戏是否可以扩展到1200万个并发的玩家,我们为此付出了很多时间,已经为你解决了这个问题。"

"为了接触到用户,我们帮助行业相互协作,而不是相互竞争。互联网历史上最糟糕的术语是'拥有用户',平台不应该拥有用户,用户拥有他自己。"

七、元宇宙(metaverse)

Fortnite 是一个免费游戏,玩家在线不必付费,再加上它跨所有平台,这两个因素使得 Fortnite 成了世界最大的社交网络/帐户系统之一。截止2020年4月,3.5亿注册用户的总游戏时长超过32亿小时,是世界上游戏时间(其实是在线时间)最长的游戏。

越来越多的用户加入 Fortnite,不是为了玩游戏,而是为了社交。很多青少年在 Fortnite 上与朋友交谈,谈论各种各样的话题。他们不把 Fortnite 当作游戏,而是看作一个社交软件,甚至是一个跟现实世界平行的虚拟世界。在这个虚拟世界里,人们跟真实世界一样生活着,进行各种各样的活动。

2019年2月,棉花糖乐队(Marshmello)举办了 Fortnite 的第一场现场音乐会,据说有1000万人观看了这个音乐会。

2019年4月,漫威的《复仇者联盟:终局之战》在 Fortnite 提供一种新的游戏模式,玩家扮演复仇者联盟,与萨诺斯(Thanos)作战。

2019年12月,《星球大战:天行者的崛起》在 Fortnite 举行了电影的"观众见面会",导演 JJ Abrams 接受了现场采访。

Weezer 乐队制作了一个自己的岛屿,歌迷来到该岛,就能独家听到他们的新专辑。

上面这些都是娱乐活动,Fortnite 里面的经济活动更活跃。玩家可以创建数码服装或表情出售获利,还可以在 Fortnite 里面创建自己的游戏或情节,邀请别人来玩。以后,真实世界的活动都可以照搬到 Fortnite,你可以举行婚礼或毕业典礼,邀请朋友们参加。

很多专家认为,Fortnite 正在成为"元宇宙"(metaverse)的雏形。"元宇宙"这个词是前缀"meta"(超越)和"Universe"(宇宙)的组合,表示一个集体性的虚拟共享空间,以虚拟的方式对现实世界进行增强,本身会持久存在,并且不断演化。

Fortnite 是目前最接近"元宇宙"的系统,它已经不完全是游戏了,而是越来越注重社交性,演变成一个人们使用虚拟身份进行互动的社交空间。由于最近的疫情,"元宇宙"的实用性也凸显了,人们用虚拟交流代替面对面的交流。

目前阶段,"元宇宙"的主要技术难点是,游戏是分区的,用户最多只能看到同一区(一台或一组服务器)的其他人,没法看到所有服务器上的所有人。某个大事件可能有1000万人在线,但是对用户来说,他最多只能跟本区的1000个人互动。

八、总结

Epic Games 现在运营着世界最成功的游戏之一,同时也拥有互联网上最大,增长最快的社交网络之一。

它不断壮大的实力,以及各种打破现状的努力,已经迫使媒体和娱乐行业发生巨大变化,让那些巨头被迫部分开放他们封闭的游戏生态。

如果蒂姆·斯维尼成功地实现了他的愿景,让游戏行业变得更加开放和互相协作,那么 Epic Games 最终有可能推动"元宇宙"的诞生,从而触发游戏业和未来社会的更大创新和变革。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年6月10日

科技爱好者周刊(第 111 期):智能电视的误区

$
0
0

这里记录每周值得分享的科技内容,周五发布。

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐你的项目。

周刊讨论区的帖子《谁在招人?》,提供大量就业信息,欢迎访问或发布工作/实习岗位。

封面图

板齿犀(Elasmotherium)是一类已经灭绝的大型犀牛,高2米,长5米,前额上有长达2米的角,约1600万年前灭绝。(出处

本周话题:智能电视的误区

国内的智能电视机,现在都自带系统,一打开就是各种菜单,有直播、影视、游戏、应用等等。

我不赞成这样的设计,也不愿意购买这样的电视机。

这是因为电视机的使用年限很长,可能达到10年。内置的操作系统不可能跟着更新这么久,事实上很多电视机自从出厂,就再也不更新系统了。以后,你一打开电视,就会看到过时的系统。

而且,为了压低成本,智能电视使用的 CPU、内存和储存,都是很差的配置,不可能有好的性能和体验。只要一两年,系统就会变得很卡,动不动就提醒你没有剩余空间了。

正确的做法应该是,电视机和系统是分开的两个硬件,不集成在一起。电视机最好就是一个单纯的显示设备,操作系统由机顶盒来承担。

但是,这在国内恐怕很难做到。因为国内电视机的操作系统,很大的目的是播放开机广告,他们舍不得这一块的利益。

同理,自带操作系统的智能家电,我都建议不要购买,比如可以上网的互联网冰箱。

数据分析全套讲解

随着数据量的增加,越来越多的场景需要分析数据。这已经不仅是对工程师的要求,几乎成为每个岗位的必备技能。产品经理和市场运营,如果会用工具分析数据,对业务成长和个人发展都能带来巨大的好处。

正是因为上面的原因,企业越来越看重数据分析这项技能,招聘市场也出现了巨大的数据人才需求。学好数据分析,会为你增加求职机会,提高求职成功率。

但是,数据分析的知识点很散,涉及不同领域的基础知识和多种工具,很多学习者觉得无从下手,抓不住重点,学习起来常常毫无头绪。

别急,这有一份由开课吧提供赞助,并由廖雪峰老师历时3个月精心打磨的 《数据分析全套讲解》 学习视频。本资料是最新升级版,包含了基础和进阶两大部分内容,从下面的内容介绍可以看出,覆盖的知识点是非常全面的。

一、基础篇-数据分析必备技能
44个知识点纯干货内容,每天2小时,5天掌握数据分析必备技能。

学习内容:Excel 数据可视化,Python 数据可视化,SQL 数据操作,K-means聚类分析,数据挖掘逻辑回归。

二、进阶篇-常用数据分析方法论
介绍了验证分析与建模预测,理论与实战结合。

学习内容:数据集中趋势 ,假设检验,多元线性回归程序与可视化,逻辑回归模型,分类模型评估指标,AQI 分析与预测。

这套全新的数据分析资料原价值1980元,现在有168个免费名额。需要的朋友请扫码下面的二维码,添加微信就可以免费领取。

开课吧另有 《大数据分析全栈工程师》 课程,适合数据分析工程师岗位,具体情况也可以扫描上面二维码了解。

资讯

1、英国两个月不使用煤炭

由于疫情期间用电需求下降,到6月10日为止,英国已经连续60天没有燃烧任何煤炭了。这是工业革命后从没有过的。英国现在只剩下四个燃煤电厂,4月10日英国国家电网让最后一台燃煤发电机停机,直到现在。

十年前,英国约40%的电力来自煤炭。而现在,英国拥有世界上最大的海上风能产业,以及世界最大的风电场。这个风电厂位于约克郡,发电量占英国全国电力的5%。

2、共享单车的新去处

缅甸教育部向中国收购了36.5万辆废弃的共享单车。这些车在仰光维修完毕后,免费发放给有需要的贫困的缅甸学生。

长久以来,大批共享单车在中国遭人为损坏或丢弃。缅甸政府想到了国内数十万贫困学生缺乏交通工具,于去年底以每辆35元人民币的价格向中国收购了这些车。

3、模仿特朗普的实验

一个推特用户做了一个实验,注册了一个帐号,特拉普发什么推特,他就发一样的内容,不是转发,而是原文复制,除此以外不发其他内容。

结果,推特官方三天就注意到了他,关闭帐号12小时,要求他在这段时间内删除违规言论。同样的话,特朗普可以说,你说就不行。媒体报道这件事以后,推特恢复了这个账号,并说关闭帐号是一个"失误"。

4、桔子皮的功能

美国生态学家16年前做了一个实验,说服哥斯达黎加国家公园,允许一家果汁公司将12000吨桔子皮,倾倒在一块贫瘠的土地上,卡车整整运送了1000次。

16年后,他们重新访问这块土地,发现那里已经是一片郁郁葱葱的森林了,跟旁边的土地形成巨大的对比(上图),地面生物量(以树木的木材量计算)增加了176%。生态学家认为,这对如何回收食品工业的生产残余物,有很大的启示意义。

5、最老的游戏 Youtuber

日本90岁的森滨子(Hamako Mori)老人,公认是世界年龄最大的游戏 Youtuber。她每天都会花至少3个小时打游戏,还在 Youtube 上面维护一个自己的频道。接受采访时,她说消灭游戏里面的敌人是一种绝佳的压力缓解剂。

她从40年前的1981年开始玩游戏,已经玩过200多个游戏。她最喜欢的游戏包括侠盗猎车手(Grand Theft Auto)和奇幻角色扮演游戏《上古卷轴5:天际》。2014年,她的孙子为她建了一个 YouTube 频道"Gamer Grandma",每月上传三四个视频,目前有30万订户。她谈到频道时说:"这件事很有趣,很多人关注你,你就不是一个人玩了。"现在,她正热切期待着 PlayStation 5 发布。

6、一句话新闻

  • 谷歌开始尝试在用户点击跳出搜索结果页后,直接在外部网页上,高亮显示搜索文本,并且浏览器将自动向下滚动至相关部分。

  • 中国科学家发表了一项研究成果,可以从草图直接生成逼真的人像。

  • 德国政府要求所有加油站,都必须提供电动汽车的充电服务。

  • 美国国防部明年开始实验,无人驾驶的战斗机与真人战斗机之间的对抗。

文章

1、如何备份 IMAP 电子邮件到本地(英文)

有些电子邮件服务使用 IMAP 协议(比如 GMail),本文介绍如何使用一个 Python 脚本,将邮件从服务器备份到本地。

2、Node.js 缓冲区介绍(英文)

本文介绍 Buffer(缓冲区)在 Node.js 里面是什么东西,以及这个内置类的简单用法。

3、如何简单实现 CSS 主题的切换(英文)

本文介绍一个简单的方法,为网页指定多个 CSS 主题,允许用户手动切换主题。

4、Bookmarklets 简介(英文)

本文介绍 JavaScript 的书签工具 Bookmarklets 是什么,以及作者常用的一些 Bookmarklets。

5、根证书到期引发的问题(英文)

HTTPS 协议加密的基础是证书,但是证书都有时间期限。根证书是其他所有证书可信性的保证,如果它过期了怎么办?

6、使用 Cloudflare worker 实现 Todo 清单(英文)

Cloudflare worker 是一种 Serverless 服务,使用 JavaScript 语言,相对比较简单。本文教大家怎么用它实现一个 Todo 清单,自己不需要架设服务器,还能在后端储存数据。

7、使用 Graphviz 生成示意图(英文)

本文介绍命令行下如何使用 Graphviz,编写脚本生成示意图。

8、Linux 系统云备份解决方案:Borg + Vorta(英文)

家庭电脑的数据,如何定时备份到云端?本文介绍使用开源工具 Borg,快速将增量数据上传云端,可以自己架设储存服务器,也可以使用现成的云服务。

9、如何架设 VS Code 服务器(英文)

VS Code 是流行的代码编辑器,它不仅是一个本地软件,也是一个云端服务,可以自己在服务器上架设,然后就能在任何地方通过浏览器使用了。

10、如何用 C 语言写一个简单的 CHIP-8 模拟器(中文)

CHIP-8 是一个很简单的虚拟机,有16个8位寄存器和35个指令,可以使用 4K 内存。作者在它上面实现俄罗斯方块,为将来写 GBA 模拟器做准备。(@cj1128 投稿)

工具

1、Grid.js

一个网页表格库,可以用作各种前端框架的插件。

2、换脸视频生成服务

一个在线服务,用户可以上传一张照片和一段视频,网站会将照片里的人脸,替换视频里面的人脸。

3、Docker-OSX

一个包含 MacOS 系统的 Docker 镜像,可以运行在 Linux 系统。也就是说,你能在 Linux 上运行 Mac 系统了。

4、pending-dns

一个 Node.js 写的 DNS 服务器,可以通过 API 修改设置。

5、WebTorrent

一个在浏览器进行 BT 下载的 JS 库,可以网页 BT 下载,也有桌面客户端

6、shan-shui-inf

一个自动生成中国山水画的 JS 实现。

7、network-plus

一款浏览器插件,可以修改浏览器发出的网络请求,相当于简易版的 Postman。(@tangkaichuan 投稿)

8、stretchly

一个开源桌面软件,隔一段时间(默认25分钟)就跳出一个提示,提醒你离开电脑运动一下。(@ketra21 投稿)

9、chil

一个远程调试网页的工具,只要在网页里面加载这个库,就可以远程打开 Chrome 开发者工具,主要用于调试手机端网页。(@surunzi 投稿)

10、hyperbuild

HTML 代码的最小化工具,可以精简网页源码的体积。Rust 语言写的,有 Node.js、Python、Java、Ruby 的移植。

资源

1、JavaScript 的前20年

一本免费的英文电子书,回顾和介绍 JavaScript 是怎么发展起来的,从诞生直到 ES2015 标准的通过。

2、 C 语言内部原理

一本英文的小教材,介绍 C 语言如何转换成汇编语言,从汇编的角度深入理解 C 语言的语法规则。

3、数据科学在线课程

数据科学在线课程那么多,哪些课应该优先考虑?这篇文章列了一个推荐名单。

4、设计工具收集

该网站收集各种设计工具和设计资源,没有设计师的时候,可以使用它们。

5、PHP 大事记

今年是 PHP 语言诞生25周年,Jetbrains 公司制作了一个网页,列出这25年中 PHP 的各种大事,网页制作得非常精致。

图片

1、报纸的广告收入

下图是第二次世界大战以后,美国报纸业的广告收入变化。

互联网出现以后,报纸的广告收入就自由落体般下跌,目前已经低于70年前的水平。

2、苏联时代的太空插图

冷战期间,随着太空技术的发展,苏联出现了大量的太空知识杂志和大众科学杂志,最多时全国有200种。这些杂志上有大量关于太空的幻想插图。

这些图显示了当时苏联科幻文学的发达,以及民众对太空探索的好奇。

文摘

1、地球的15个临界点

澳大利亚国立大学教授威尔·斯特芬(Will Steffen)提出:"气候变化已经不可逆了,人类文明的崩溃将是最可能的结果。"

无论人类是否减少二氧化碳排放,都已经为时过晚,因为15个已知的全球气候临界点,已经有9个激活了。

  • [✓] 北极海冰开始融化
  • [✓] 格陵兰冰盖开始融化
  • [✓] 南极西部冰盖开始崩解
  • [✓] 南极东部冰盖开始崩解
  • [✓] 西伯利亚冻土层开始融化
  • 海底甲烷开始释放
  • [✓] 大西洋"热盐循环"洋流开始减速
  • 厄尔尼诺现象加剧
  • 大气喷射流减速或停滞
  • 印度洋夏季季风出现波动
  • 西非季风转变
  • 北美西南部开始干旱
  • [✓] 亚马逊雨林开始消失
  • [✓] 高纬度森林开始消失
  • [✓] 澳大利亚大堡礁开始消失
  • 海洋不再大量吸收碳元素

上面15个变化,只要有一个成为现实,都将对气候造成巨大影响,严重威胁人类。

目前已经有9个成为了现实。

2、Xbox 里面的父亲

一篇2014年的感人故事,儿子在Xbox里面发现了过世父亲的身影,故事发生在国外:

Well, when i was 4, my dad bought a trusty XBox.
我4岁的时候,父亲买了一台Xbox

you know, the first, ruggedy, blocky one from 2001.
你知道的,是那台坚硬、结实,2001年推出的Xbox

we had tons and tons and tons of fun playing all kinds of games together
我们一起玩了许多游戏,而且玩得非常开心....

until he died, when i was just 6.
...直到他去世为止,那年我才6岁

i couldnt touch that console for 10 years.
在往后十年,我没有办法碰那台游戏机

but once i did, i noticed something.
直到有一次我打开它,我发现了一件事情

we used to play a racing game, Rally Sports Challenge.
过去我曾与父亲玩过一款叫做《越野挑战赛》的赛车游戏

actually pretty awesome for the time it came.
实际上在当年,它真的很好玩

and once i started meddling around... i found a GHOST.literaly.
而当我开始在这款游戏中四处浏览时,我遇到了货真价实的"幽灵"。

you know, when a time race happens,
在这款赛车游戏的计时赛中

that the fastest lap so far gets recorded as a ghost driver?
最佳纪录保持者的记录将会以幽灵车手状态出来与你一同赛车

yep, you guessed it
是的,你猜到了!

his ghost still rolls around the track today.
父亲的灵魂至今仍在赛车场上奔驰着

and so i played and played,and played,
于是我一遍又一遍的挑战

untill i was almost able to beat the ghost.
我慢慢的可以追上这位幽灵车手

until one day i got ahead of it,i surpassed it, and...
终于有一天,我成功了!我超越祂了!然后...

i stopped right in front of the finish line,
我在终点线前停下来

just to ensure i wouldnt delete it.
确保我不会就这样删除"父亲的记录"。

言论

1、

我的皮肤黑,冬天在美国呆了两个多月后,缺乏日照,就感到很糟糕,身心崩溃了,感冒,偏头痛,关节痛。直到后来被诊断出患有急性维生素 D 缺乏症。

-- Hacker News 读者

2、

在美国,我很难与外界脱节。只有回古巴探亲,才会脱离互联网。那些都是美好的日子,前三天感觉很奇怪,但是随后你就忘记了互联网的存在,开始与人们聊天、跳舞、游泳,沉浸在交谈中。这是一件非常有意义的事情,让我觉得我们与自己的本性非常脱节。

-- Hacker News 读者讨论《你有没有过脱离互联网/电话》

3、

印度很大一部分人口(约50%)年龄低于24岁,这为印度提供了数十年的庞大劳动力。

-- 《印度为什么不是超级大国》

4、

转移学习(TL)是机器学习的一个研究领域,指的是如何将解决一个问题时获得的知识,应用于另一个相关的问题。有些人也具有这种能力,在感兴趣的每个领域都非常出色,擅长创新。

-- 《应该成为通才还是技术专家?》

5、

跟一般的看法相反,路上骑自行车的人越多,他们就越安全。

-- 《冠状病毒引发纽约的自行车热潮》

6、

阿波罗8号宇宙飞船有560万个零件,以及150万个系统和组件。即使它们每一个都有99.9%的可靠性,预期也会产生560个故障。

-- 宇航员迈克尔·柯林斯(Michael Collins)

回顾

2019年的本周(第 60 期):中国人的起源

2018年的本周(第 8 期):日本的低生育率

订阅

这个周刊每周五发布,同步更新在阮一峰的网络日志微信公众号

微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年6月12日

苹果电脑为什么要换 CPU:Intel 与 ARM 的战争

$
0
0

三个月前,新款 iPad Pro 发布,支持触摸板和鼠标。

上图的黑点就是鼠标。苹果公司显然打算,平板电脑当作笔记本使用。

我们知道,iPad 的操作系统跟 iPhone 是一样的,都是基于 iOS。如果 iOS 可以用于笔记本,就意味着可以跟桌面系统 MacOS 统一了。如果 MacBook 和 iPhone 都用同一个操作系统,App 就能通用了。

苹果公司显然也是这么打算的。几天后的6月22日将举行 WWDC(苹果全球开发者大会)。媒体报道,苹果公司将在那一天宣布,更换 Mac 电脑的 CPU,从 Intel 公司的 x86 架构改成 ARM 架构。

一旦 Mac 跟 iPhone 使用同样架构的 CPU,那就铺平了统一操作系统的道路。操作系统无法通用的最主要原因,就是 CPU 架构不同。

本文回顾苹果公司的 CPU 架构变化历史,帮助大家理解这件事的技术含义,以及未来的影响。

一、CPU 架构是什么

CPU 的全称是"中央处理单元",它是计算机的核心,计算都由它来完成。但是,CPU 本身只是一个概念,每家芯片公司都有自己的具体实现。

不同的 CPU 设计实现,就称为" CPU 架构"(CPU architecture)。 不同的 CPU 架构有不同的指令集,彼此不通用,这导致运行在上面的软件也不兼容,必须重新编译。如果没有做适配,一个架构下的软件就无法移植到另一个架构。

历史上,有过多种 CPU 架构。目前最常见的架构只剩下两种:x86 架构和 ARM 架构。

x86 架构性能好,但是耗电多、电压高,主要用于桌面电脑和服务器,生产厂商为 Intel 公司和 AMD 公司。ARM 架构耗电小、电压低,但是单核性能不如 x86,主要用于移动设备。

ARM 芯片的生产商有许多家,这是因为它的商业模式是授权制。英国的 ARM 公司出售指令集的授权,购买授权的公司可以基于公版的设计,开发自己的 ARM 芯片。高通、三星、华为、苹果等公司的芯片,都属于这个模式。

苹果公司同时使用这两种架构的芯片,iPhone 和 iPad 的芯片是 ARM 架构,Mac 电脑的芯片是 x86 架构,这导致 iPhone 的 App 无法在 Mac 电脑运行。

近几年,x86 架构发展迟缓,ARM 架构则进步显著,已经从移动设备向桌面电脑和服务器进军了。Mac 电脑这一次更换 CPU,就是准备从 x86 架构改为 ARM 架构。

二、Mac 电脑的 CPU 架构

历史上,Mac 电脑发生过两次 CPU 架构更改。

1984年,第一代 Macintosh 问世,CPU 是摩托罗拉公司的68000芯片。

1994年,摩托罗拉将68000芯片升级为 PowerPC 芯片,Mac 电脑跟着升级,这是第一次 CPU 架构更改。

2005年,乔布斯宣布,Mac 电脑将放弃 PowerPC 芯片,改用 Intel 公司的 x86 CPU。这是第二次架构更改。

那次架构更改,主要有两个原因。一是 Intel 的 CPU 比 PowerPC 性能强,并且由于产量大,价格也便宜。二是 Windows 电脑使用的是 x86 芯片,改了架构以后,Mac 电脑就也能安装 Windows,做到"一机双系统"。这可以促进当时处于市场劣势的 Mac 的销售。

乔布斯用特有的极具煽动力的语言,这样解释:"最重要的原因是,向前看时......我们想象了各种我们希望为你打造的惊人产品,但是我们不知道如何使用 PowerPC 来实现它们。"

三、第三次架构更改的背景

15年过去了,情况发生了很大的变化。

Mac 的 CPU 架构跟 Windows 保持一致,已经不构成吸引力了。据统计,2010年15%的消费者购买 Mac 电脑后,会安装双系统,今天只剩下了2%。大多数用户购买 Mac 电脑,根本没想过安装 Windows,或者运行 Windows 特有的软件。此外,虽然 CPU 架构一致,但是 Windows 的游戏软件并没有移植到 Mac 电脑,游戏开发商依然不支持 Mac。

更大的市场变化是,消费者和技术投资的主流已经转向了移动设备, 桌面设备已经不那么重要了。

苹果公司的主要业务和利润来源,现在都来自移动领域,iPhone 的市场规模已经远远大于 Mac。所有的移动设备使用的都是 ARM 芯片,苹果的投资和技术成果也主要在这个领域,而不是在 x86 相关领域。

苹果正在围绕移动设备,重塑它的战略。它的软件工具(LLVM 编译器、Swift 语言、Xcode 开发工具、App Store 商店)和硬件设备(Apple Watch、AirPods 等),都是围绕 iPhone 开发的。桌面设备已经不是这个战略的重点了。

这就是 Mac 第三次更换 CPU 架构的背景。

四、Intel 的失败

Mac 电脑更换 CPU 架构,也与 Intel 公司多年来创新乏力、产品没有突破有关。

2007年推出 iPhone 之前,苹果曾希望使用 Intel 的 ARM 芯片 XScale 作为手机的 CPU。但是,英特尔当时的 CEO 保罗·欧德宁,不看好苹果的这个项目,而且也不愿意在 ARM 芯片上投资,最后不仅放过了 iPhone,还将 XScale 产品线卖给了 Marvell 公司。

后来的历史证明,这是一个灾难级别的错误,iPhone 取得了辉煌的成功。英特尔这下急了,又反过来开发基于 x86 架构的移动设备 CPU,就是 Atom 芯片。但是,苹果没有在手机上再给 Intel 机会,x86 架构也被证明不适合手机,Atom 没有成功。

Intel 在手机业务上失败,在桌面业务上则陷入停滞。MacBook Pro 的 CPU, 2010年是2核的 2.66 GHz 的 i7,2020年是8核的 2.6 GHz 的 i9,过去10年基本上只是改进了工艺,增加了核心数量,没有实质的重大突破。除了性能以外,苹果最在意的两点----功率和散热---- Intel 也没有解决。

对于苹果来说,Intel 的 x86 CPU 早就不是 Mac 电脑的卖点了,反而成了拖慢创新的障碍,使苹果在 CPU 这个核心设备上受制于 Intel。

五、苹果自己的 ARM 芯片

iPhone 的前三代---- iPhone、iPhone 3G、iPhone 3GS-------- CPU 是三星的。但是,苹果从一开始就打算推出自己的芯片,因为 ARM 采用授权模式,只要购买授权,就可以添加自己的设计,然后再让三星代工生产。

2010年发布的 iPhone 4,第一次采用苹果自己设计的 CPU,名称是 Apple A4。

大概从 A4 发布的这一天开始,苹果就有用自己的芯片替换 Intel 的打算了。因为当年推出的 Apple TV 第二代,也用了 A4 芯片。但是,Apple TV 第一代用的是 Intel 的 x86 芯片,被做成缩小版的 Mac。到了第二代,CPU 改了以后,就变成 iOS 设备。

Apple TV 这种设备使用 x86 芯片,根本没有获得任何好处。因为它不需要考虑 Windows 兼容性,也不需要很强的性能。另一方面,使用 ARM 芯片以后,功耗和散热都变小了,价格也降下来,从229美元变成了99美元。下图是 Apple TV 第一代和第二代的大小对比。

此后,苹果一直在加强芯片研究,每一代 iPhone 用的都是苹果自己的 CPU,从 iPhone 4S 的 A5 到最新 iPhone 11 的 A13。现在的苹果芯片在效能、功耗和功能各方面,都属于世界顶尖级别的 ARM 芯片。

目前,Mac 电脑是唯一使用 x86 芯片的苹果设备,其他的所有设备(iPhone、iPad、Apple TV、Apple Watch、Airpods)用的都是苹果自己设计的 ARM 芯片。

六、更换 CPU 架构的好处

几天后的 WWDC 2020,可能就会宣布采用 A14 芯片的 MacBook 笔记本。这个转变不是突如其来,而是很久之前就开始了,苹果早就尝试在 MacBook 里面加入 ARM 芯片,把自己在 iPhone 的技术积累引入 Mac。

2016年,苹果在 MacBook Pro 里面加了一块自己设计的 Apple T1 芯片,把 TouchID、FaceTime、TouchBar 等功都做进去了,让这块 ARM 芯片分担一些 Intel CPU 的工作。

2018年,苹果又推出了 Apple T2。这块芯片跟 iPhone 7 的 A10 基本一致,比上一代有更强的运算能力,加入了更多的功能,比如硬件加速、媒体编解码、Siri 支持等。

可以想象,如果笔记本的整个 CPU 都由苹果自己设计,一定会有更多的功能集成进来,苹果手机的安全特性、图形支持、视频处理、音频处理、加密解密、人工智能都可以放进桌面设备。苹果也能对它进行更好的优化,批量生产,降低成本。

一旦苹果可以控制芯片、硬件、软件整个堆栈,就能让它们更好的协同,创造出更多多令人激动的新功能。

Mac 电脑采用 ARM 架构后,还能实现统一的 Apple 生态,而不是现在分隔开来的 Mac 生态和 iPhone/iPad 生态。不同设备都有同样的架构,运行同样的程序,差别只是外形尺寸与性能。

七、过渡安排

2018年,苹果宣布了 Project Catalyst 项目,可以将 iPhone 和 iPad 应用自动转为 Mac 应用,反之则不行。现在看来,这个项目就是为移动应用移植到桌面电脑做准备。苹果的目标就是,同一个 App 最终可以在 iPhone、iPad 和 Mac 上运行。

苹果应该不可能把现在的桌面型号,一下子就升级为 ARM 架构。很多人猜测,它会先推出一款12吋的、采用 ARM CPU 的 MacBook。这样比较保险,因为笔记本不需要特别强劲的性能,也不需要扩充卡,不会影响到那些需要高性能、大量外围设备、或依赖旧软件的用户。而且,降低功耗对笔记本特别重要,因为可以延长电池寿命。

回顾历史,Mac 电脑从 PowerPC 转为 x86 架构,整整花了6年。2005年的 Mac OS X 10.4版(Tiger)同时有 PowerPC 和 Intel 两个版本,2011年的 Mac OS X 10.7 (Lion)才不再支持 PowerPC。这次从 x86 转为 ARM 架构,估计也需要同样长的时间,即将面世的 Mac OS X 10.16 可能也有 x86 和 ARM 两个版本。现有桌面设备(MacBook Pro 和 Mac Pro)的 ARM 升级版,可能要等到2022年才会问世。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年6月16日

科技爱好者周刊(第 112 期):如何培养领导力

$
0
0

这里记录每周值得分享的科技内容,周五发布。(通知:下周是端午节假期,周刊提前到6月24日周三发布。)

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐你的项目。

周刊讨论区的帖子《谁在招人?》,提供大量就业信息,欢迎访问或发布工作/实习岗位。

封面

喷气式客机"空中客车"在法国图卢兹组装,零件来自世界各地。有些零件太大,只能海运,上图是 Airbus 专用零件船。(出处

本周话题:如何培养领导力

你在一家公司工作几年以后,如果负责的业务发展顺利,有招聘名额,你一般都有机会带一个团队。

但是,有些程序员写代码可以胜任,带团队就带不好,无法带领大家一起完成任务。只有业务能力,没有领导能力,这是走不远的。俗话说得好:"一个人走得快,一群人走得远"。

上周,我读到一篇文章《领导力的四个阶段》,美国一个创业者总结了如何培养领导力,我觉得说得很好。按照下面的四个阶段,就能让自己成为一个优秀的领导者。

第一阶段:熟悉自己的业务,知道问题在哪里,怎样可以解决。

领导者是给大家指方向的,你必须先知道要走哪个方向,才能带领别人,这是领导力的基础。

第二阶段:培养说服能力,能说服他人,问题可以按照你说的方式解决。

领导力的表现是,他人愿意服从你。这不能都靠制度压服,而要让他人真心觉得你是对的。如果你可以让他人相信你,你就可以领导。

第三阶段:激发他人的热情,让他们产生解决问题的热情。

说服他人的更高境界,是让他们真正投身进来,自觉发挥自己的潜力,全力以赴解决需要解决的问题。好的领导和差的领导,区别就在于能否激励下级,让每个人都知道自己的职责,努力工作。

第四阶段:你培养其他人的领导能力。

如果你离开,团队也能正常运作下去,说明一切已经制度化了,你的领导已经成功了。这时,你可以让其他人接管团队,自己去实现下一个目标。

前端开发进阶手册

本周的课程资料是 开课吧前端团队 最新出炉的《前端开发进阶手册》,帮助大家更好掌握面试技巧和热门知识点。

它针对这样几类同学而特别编写:(1)面试表现不佳,通过率低;(2)只学会了一些零散的知识点,缺乏体系化,不知道怎么串起来; (3)对于前沿的新框架和新语法很茫然,不知道有什么用,能解决什么问题。

这份资料分成三大部分。

《01. 前端高薪的面试技巧》
1、面试题注意事项
2、不同等级的面试表现,以文件上传为例
3、常见的前端面试知识点

《02. 前端必备算法和数据结构》
1、前端学算法的意义
2、算法思想的分类学习:递归、回溯、贪心、动态规划等

《03. TS + Vue 项目最佳实践》
1、Vue + TS 开发环境准备
2、TS 语言特性、组件编写
3、项目技巧:路由声明、全局状态管理、数据请求、第三方模块

周刊读者只要扫描下面的二维码,添加微信,就可以免费领取这份资料。有效期五天,免费名额 199 名。

资讯

1、灯泡窃听

以色列科学家展示了一种新的窃听技术,只要屋子里有一个能在窗外看到的灯泡,就能实现窃听。

屋里人说话时,声波会让灯泡有微小的振动(约为几百微米),在几米以外用望远镜对准灯泡,再用高精度的光电传感器去捕捉灯泡振动,就能还原出屋内原始的声音。但是,这种方法可能没有实用性,白天不开灯泡或者屋内拉上窗帘,就无法窃听了。

2、鳄鱼的脚印

韩国最近发现了一块化石,上面是古代动物的脚印,长为18厘米到24厘米,表明这只动物的体长最大为3米。起初,科学家认为这是翼龙的脚印,但是现在的观点是它为古代鳄鱼的脚印。

但是,鳄鱼不应该有脚印,因为它是贴着地面爬行,脚并不承重。这表明,这只史前鳄鱼可能主要以两条腿走路,但也有可能以4条腿走路。

3、液氮冻鱼

纽约市由于疫情,餐馆的生意大减,提供活鱼的养殖场因此陷入困境。因为餐馆只要盘子大小的活鱼,鱼现在越长越大,即使疫情结束,恐怕也卖不出去了。

为了减缓鱼生长的速度,有些养殖场减少了给鱼喂食。另一些养殖场则选择了液氮冷冻鱼,因为这样可以最大程度保鲜,并且至少可以存放两年。

4、球形太阳能板

沙特阿拉伯的研究人员,发明了球形太阳能板。传统的太阳能板必须正对太阳,球形板就没有这个问题,而且比同样面积的太阳能板平铺时,功率输出高15%~100%。

沙特政府对太阳能产业大量投资,一方面因为担心石油储备耗尽,另一方面该国有大量的沙漠(硅的来源)和充足日照,非常适合发展太阳能。

5、海龟回家

两年前,南非一家水族馆放生了一只180公斤的大海龟,它已经在水族馆生活了20年。科学家在海龟身上安装了卫星追踪装置,看它去了哪里。

它先去了非洲西部,然后调头横渡印度洋,用了两年时间游到了澳大利亚。总行程37000公里,平均每天前进50公里,这是相当快的速度,应该借助了洋流。科学家认为,这只海龟是想回到她出生的地方,进行繁殖和筑巢。在被关了20年之后,她依然记得回家的路。

6、一句话消息

  • 宜家公司利用热门电视剧的场景装潢,展示他们的家具产品。

  • 阿根廷国家气象局报告,2020年2月6日在南极半岛北端测到了18.4°C,这是有记录以来的南极最高温,超过了2015年3月24日的17.5°C的纪录。这个温度使得该地附近的冰川大量融化。

  • 一项研究发现,自从美国星巴克允许不购买任何商品就能坐在店里,这些星巴克的生意平均比附近咖啡店减少了7.3%。

文章

1、何时写注释?(英文)

谷歌的厕所里面贴的是各种编程知识,这篇就是谷歌的"厕所文"之一,谈什么时候应该写注释,并提供海报下载。

2、恐龙灭绝的那一天(英文)

BBC 的英语长文,根据小行星撞击地球假说,详细猜测那一天的情景。图文并茂,写得很生动。

3、我从旧金山搬到纽约的感受(英文)

作者是推特公司的设计师,从旧金山搬到纽约住,谈了自己的所见所闻。本文有大量图片,可以了解纽约的生活。

4、git tag 命令简单教程(英文)

git tag命令用来给仓库打标签,本文简单介绍这个命令的用法。

5、Node.js 内存泄漏指南(英文)

本文通俗地讲解什么是内存泄漏,然后通过一个例子分析 Node.js 的内存泄漏是怎么形成的,以及如何使用分析工具找出泄漏的代码。

6、为什么 Facebook 不做公有云?(中文)

几乎每一家大型互联网公司,都在做公有云:谷歌、亚马逊、微软、阿里巴巴...... Facebook 却始终没有做公有云,这是为什么?

工具

1、xrdp

微软远程桌面协议 RDP 的开源客户端,支持多个平台,可以远程登录其他计算机的桌面环境。

2、Dexplot

一个 Python 数据可视化库,可以生成各种图表。

3、youdaonote-pull

有道云笔记不能导出笔记,迁移笔记很麻烦。此脚本可将所有笔记下载到本地。(@DeppWang 投稿)

4、VSCodium

VS Code 代码编辑器的重新打包,去掉了所有微软相关的东西(品牌、用户追踪、非开源的代码)等,以实现一个纯的自由软件。

5、 Photoshop Camera

Adobe 公司推出的手机拍照软件,只要按下快门,就可以拍出具有艺术风格的照片。它的艺术风格不是来自滤镜,而且来自其他人拍的艺术照或明星照,通过 AI 套用在当前场景。

6、Chakra UI

一个 React 组件库,UI 很优雅。

7、Web Camera Pro

一个免费的视频监控软件,允许从多个摄像头捕获、存储和回放影像,并可以远程查看。

8、Briefing

一个基于浏览器的视频聊天室,它会给出一个一次性链接,只要分享这个链接,其他人就可以跟你视频聊天。

9、sjcl

斯坦福大学推出的 JavaScript 加密库,只有 6KB,API 也很简单,但可以提供最佳的安全性。

10、Mind elixir

一个浏览器的思维导图 JS 内核。(@ssshooter 投稿)

资源

1、Artvee

该网站收集古典艺术品的照片和海报,都可以免费下载使用。

2、Super SIM

Twilio 推出的 SIM 卡,可以在全球自动连接无线网,真正的全球通卡。流量费非常贵,适合小流量的场景。

3、Mathematical Symbols

这个网页列出各种数学符号的含义。

4、NumPy 互动教程

一个在线教程,通过一步步编码的小例子,让你学会如何使用 Python 的数学计算库 NumPy。

5、LogoSear.ch

一个 Logo 图片的搜索引擎,可以下载 SVG 格式。

图片

1、 Windows 资源管理器

这个网站收集了历年来 Windows 资源管理器 UI 的变化,下面是其中几张。

Windows 3.0

Windows 95

Windows XP

Windows 10

2、20世纪10大实验性住宅

一本英国的新书《房屋:非凡的生活》,列出了20世纪最有创造力的10大住宅。这些房子都是真实的建筑,而且都有人居住。

美国的沙漠之家。

日本茨城县的单层倾斜木屋。

英国的海边住宅。

瑞典的森林小屋。

3、爱因斯坦与黑人学生

1946年9月,爱因斯坦(Albert Einstein)访问宾夕法尼亚州林肯大学,这是西方最古老的黑人大学。他公开说种族主义为美国"最严重的疾病"。

他很少接受名誉博士学位,为了表示对黑人的支持,他特意接受这所小型的黑人大学的荣誉学位,并给学生讲课。但是,新闻界故意不报道这一事件。

文摘

1、麦克风插孔的作用

2011年,支付结算公司 Square 想为 iPhone 提供刷实体银行卡的功能。

银行卡的读卡器连到 iPhone 需要苹果公司的批准。苹果公司只允许使用指定的扩展坞,连接外部设备,整个审查过程非常漫长。而且,这个连接设备即使做出来,也将非常昂贵,因为必须使用特殊芯片组,每个设备都要支付专利许可费。

另一方面,市场上的每部手机(不仅仅是 iPhone)都有用于接收音频信号的麦克风插孔(跟耳机孔集成在一起)。Square 工程师想到,如果可以把信用卡上的数据,通过麦克风输入到 iPhone,就不需要苹果公司的批准。音频软件工具包是标准 iPhone 库,这意味着直接编写代码,就能立刻在 iPhone 上运行。他们一周内就做出了可用的原型。

2、宇宙飞船的计算机如何保证计算正确?

为了保证不出错,SpaceX 为火箭和宇宙飞船的计算机提供三重冗余。

宇宙飞船的计算机系统,CPU 一共有三个,每个都是双核的 x86 处理器,每个核都运行一个独立的 linux 实例,一共运行6个实例。

软件系统是用 C / C++ 编写的,每个计算都会比较同一个 CPU 的两个核的结果。如果不一致,就表明计算有问题,将不发送任何命令。只有两个内核返回相同的结果,命令才会发送到火箭的各种微控制器。

运行在 PowerPC 处理器上的微控制器,从三个双核 CPU 接收到三个命令字符串。如果所有三个字符串都一致,微控制器才会执行命令。

言论

1、

美国大学的学生成绩一直在贬值。

1940年,14.9%的学生获得A,35%的学生获得C。

2013年,45%的学生获得A,14%的学生获得C。

-- 《American Affairs 杂志》

2、

20世纪下半叶,犹太人获得了22%的诺贝尔化学奖,32%的医学奖和32%的物理奖,尽管他们不到世界人口的1%。

-- 《美国种族歧视和差异》

3、

我知道每个人的车牌,我就在停车场外面看,谁什么时候来公司,以及何时离开。

-- 比尔·盖茨谈他早期怎么管理微软公司

4、

面向大众的 Linux 桌面机就像核聚变一样,永远离实现有20年的路程。

-- 《使用树莓派 4 代替 MacBook Pro 的一天》

5、

航天飞机的软件必须极其可靠。每次发射时,软件控制着价值40亿美元的设备、宇航员的生命,以及国家的梦想。即使最小的误差也可能造成巨大的后果,航天飞机的速度是每小时17,500英里,0.6秒的计时错误会使得航天飞机偏离航道三英里。

-- 《美国宇航局怎么写软件》

6、

2018年初发布的Bootstrap 4 即将被 Bootstrap 5 取代,今年底就不再维护。这意味着即使是 Bootstrap 的大版本,预期寿命也不到三年。

你还会用它来开发长期维护的产品,等着每隔几年进行一次重大改写吗?

-- Hacker News 读者

回顾

2019年的本周(第 61 期):文科生转行程序员,越来越难

2018年的本周(第 9 期):隔空充电,电子设备植入人体

订阅

这个周刊每周五发布,同步更新在阮一峰的网络日志微信公众号

微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年6月19日

安卓手机系统连接电视,最好的方案是什么?

$
0
0

现在,大部分人都用手机看视频。但是手机屏幕太小,不适合高清视频。电视看视频,才有更好的体验。

我最近研究了一下,如何把安卓手机的画面输出到电视机。下面就是我对各种技术方案的总结,希望对大家有用。

本文得到了拉勾教育的赞助。拉勾教育是拉勾网旗下的教育平台,将 IT 招聘与培训结合,对学员的就业提供一条龙服务。希望通过培训快速找到工作的同学,可以关注一下本文结尾的详细介绍。

一、MHL 线

第一个跃入脑海的方案,就是用一根线将手机和电视机连起来,一头是 USB 接口,一头是 HDMI 接口,这样的线叫做 MHL

可惜呢,现在的手机都已经不支持这根线了,虽然以前是支持的。现在的手机 USB 接口不提供 HDMI 信号,所以这种方法没用了。

大家这样想,电视机拖着一根线,这根线不可能很长,还不能藏起来,随时都要拿在手里,通过手机操作。这种方式非常笨拙丑陋,被淘汰很合理。

二、手机投屏

既然有线方案淘汰了,那只好考虑无线方案,也就是手机投屏。

手机投屏的原理是,通过家庭 Wifi,将手机画面传送给显示设备。它必须满足两个前提条件:电视机能够上网,并且与手机在同一个局域网。

如果电视机自带安卓系统(或机顶盒有安卓),就可以手机投屏了。打开手机系统设置的"连接"菜单,"手机投屏"开关就在里面(名字也可能是"无线显示")。

如果电视机没有安卓系统,或者根本不能上网,就需要买一个支持 Miracast 协议的投屏器,插在电视机的 HDMI 接口。投屏器可以上网,跟手机通信。

手机投屏虽然可行,但是视频信号是从手机通过局域网发给电视机,这样的转手对视频质量影响很大,基本达不到高清效果,往往还有卡顿。所以,它不是一个理想的方案。

三、DLNA 和 Chromecast

上面说了,手机投屏的原理就是内网通信。只要两个设备使用同样的数据传送协议,就可以投屏,所以有很多种实现方案。应用商店搜一下"投屏",会跳出许多 App。

DLNA 就是其中一个广泛使用的协议。它的想法是,既然视频信号通过手机传给电视机,效果不好,那就只把视频网址发给电视机,让电视机自己去下载视频内容播放。

DLNA 协议其实不能算"投屏",只是手机告诉电视机要播放什么,两方可以屏幕不一致,甚至手机关了,电视还能播放。这个协议可以达到高清播放的效果,国内的视频 App 也基本都支持,App 里面打开开关就可以了。

DLNA 的问题在于只支持流媒体,只有视频、图片、音乐可以通过这个协议播放(因为它们可以流媒体传送),其他格式不行,所以它不支持对手机屏幕进行镜像投屏。另外,很多电视机也没有 DLNA 功能,需要另买投屏器。

2013年,谷歌公司发布了 Chromecast 协议,基于 DLNA 协议,但做了一些扩展,解决了一些 DLNA 的痛点,比如支持镜像投屏(但要通过 Google Home 这个 App 中介)。

Chromecast 视频播放效果很好,但是问题在于支持这个协议的 App 特别少,基本都是谷歌自家的应用。国内的视频 App,好像只有腾讯视频支持 ChromeCast,其他视频 App 都没见过。不过,Chrome 浏览器可以用它投屏,也算弥补了一些适用性。

手机投屏(包括 DLNA 和 Chromecast)的所有操作,都必须在手机上完成。电视播完一个视频,就要低头拿起手机,在手机上切换播放下一个视频,然后再抬头看电视。长时间投屏的话,这样操作很不方便。

四、机顶盒

如果想用遥控器直接对着电视操作,那就只有使用机顶盒。

机顶盒就是一个没有屏幕的安卓主机,外接电视作为显示设备。因为要用遥控器操作,跟手机的触屏操作完全不同,所以机顶盒的 App 都需要重新写过,专门适配遥控器和远距离观看。

国内的机顶盒系统,体验都很糟糕,不仅难用,还有烦人的广告。谷歌的 Android TV 系统的体验好很多,但是它需要用户能访问谷歌。

如果购买 Android TV 系统的机顶盒,国产的有小米盒子国际版,国外的有亚马逊的 Fire TV。

上面两个盒子的配置都比较低,后面想安装手机 App 会有困难。高配置的机顶盒可以考虑 Nvidia 公司的 Shield TV。爱奇异引进过这个盒子,剥离了谷歌应用,使用爱奇异帐号登录。

由于机顶盒就是安卓系统,只是桌面不同而已,所以手机可以安装的 App,机顶盒都可以安装。但是,手机 App 在电视机上,没法用遥控器操作,这时就需要配蓝牙键盘和鼠标(或触摸板)。

五、安卓手机的桌面模式

如果手机连的不是电视机,而是显示器,这时建议采用手机的桌面模式。

某些安卓手机(三星、华为和坚果手机的一部分型号)提供桌面模式。手机的 USB-C 接口与显示器连接时,显示器会出现桌面操作系统。

下面是三星手机的桌面模式。

下面是华为手机的桌面模式。

桌面模式时,安卓 App 都可以正常启动。有些 App 专门做了适配,可以放大到全屏;没有做适配的 App,只能在一个小窗口使用,不能放大到全屏,这导致有些视频 App 没法全屏看。

桌面模式只适合桌面显示器,只能用键盘+鼠标操作,不合适电视机。坐得远的话,都看不清文字,不知道点击哪里。

六、Chrome OS 笔记本

最后,如果能够接受坐在电视机旁边操作,Chrome OS 笔记本是一个很好的方案,电视机(或者显示器)可以当作系统的副屏。

Chrome OS 是谷歌推出的一个桌面操作系统,它最特别的地方在于,这个系统整体上是桌面模式,浏览器用的是桌面浏览器,但可以安装和运行安卓 App。

跟手机的桌面模式一样,没有做适配的手机 App,打开以后都是一个小窗口,但可以放大到全屏。

Chrome OS 笔记本可以有第二个屏幕,视频 App 可以拖到那个屏幕去播放。

有人也许会说,任何笔记本都支持副屏,有必要专门搞一个 Chrome OS 笔记本看视频吗?这不是因为 Chrome OS 可以直接安装安卓 App 嘛,其他笔记本装不了啊。

如果只是单纯想看视频,不需要两个屏幕的话,也可以买一个安卓盒子 ChromeBox。它就是一个没有屏幕的 Chrome OS 设备。它跟机顶盒的最大不同在于,操作系统不同,机顶盒是安卓,它是 Chrome OS,只适合显示器,只能用键盘 + 鼠标操作。

需要提醒的是,如果不能访问谷歌, Chrome OS 无法使用。

七、小结

我现在的解决方案是,客厅的电视机装了一个 Shield TV 机顶盒,使用 Android TV 系统。

另外,写字台放了一个可以360度翻转的 Chrome OS 笔记本,专门看视频。它可以触摸屏操作,比键盘或遥控器都方便。

不能访问谷歌的情况下,电视机可以改用国产系统的机顶盒,桌面可以放一个安卓平板。这可能是现阶段,大屏幕看手机视频的最佳方案了。

(正文完)

大前端高薪训练营招募中

今天要给大家介绍的是拉勾教育推出的《大前端高薪训练营》。

拉勾网你肯定听说过,深耕招聘领域很多年了,他们发现学校教育的知识体系与企业的用人需求存在很大的偏差,而这个训练营,就很好地帮你解决这个问题。

如果你是工作1-3年的前端工程师,可以考虑去听听,它能很好地帮助你获得3~5年的行业经验,达到阿里P7的技术水平。

最重要的是,优秀学员可以每个月内推一次,还能享受拉勾教育的 "百万补贴"

1、课程设计对标阿里P7,覆盖主流前端技术知识。拉勾网 CTO 亲自参与设计,课程覆盖面非常广,前端的所有领域,课程都会讲到。

2、完整的商业实战项目剖析,手把手带你实战。课程带学员深入到大型互联网项目实战,涵盖了 3 个当下最火热的项目:在线教育、电商门户、B端系统。

3、学练测评一体,保证学习效果。线上学习、真实项目练习、定期测试、班主任监督、作业批改,这一切都是为了保障学员跟的下来、学得会。

4、拉勾独家内推通道: 优秀学员每月内推,直接跳过投简历、笔试,直通 BAT 等一线互联网公司面试官。 还特别提供拉勾网的面试辅导。

现在加入,还能赶上"拉勾百万补贴"计划。报名和咨询,请扫描下面二维码。添加微信后,免费领取课程大纲。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年6月21日

科技爱好者周刊(第 113 期):暴力犯罪为什么越来越少?

$
0
0

这里记录每周值得分享的科技内容,周五发布。本周端午节假期,提前到周三发布。

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐你的项目。

周刊讨论区的帖子《谁在招人?》,提供大量就业信息,欢迎访问或发布工作/实习岗位。

封面图

6月21日发生日环食,中国部分地区可见。(出处:Instagram

本周话题:暴力犯罪为什么越来越少?

一个台湾网友在推特说,根据统计,台湾的暴力犯罪在过去20年惊人地下降,2019年已经比最高峰时减少了94.2%。

他问,到底是什么原因,让暴力犯罪在一代人的时间里只剩5.8%?人性的变化,还是社会结构的变化?

我也有类似的体会,周围的暴力犯罪这些年变少了,比小时候少多了。平时不要说重大的暴力案件,就连抢劫偷窃也变得少见,不知道大家是否也有这种感觉。

暴力犯罪的立案数字无法知道,我猜想总体趋势应该是大幅下降,主要原因可能有下面四个。

(1)监控的进步。 现在到处都是摄像头,还有人脸识别,罪犯几乎不可能不留下线索,完全没有机会逃脱监控。就算避开了摄像头,你避得开路人的手机镜头和行车记录仪吗?还有 DNA 技术,几十年前的悬案都能水落石出。

(2)联系的便捷。 每个人现在都有手机,随时可以跟外界联系求救,大大减少了危险。如果有紧急情况,外界第一时间就会得知并报警。而且,手机只要一开机,就能根据信号位置对你定位。

(3)社交媒体的普及。 恶性案件很容易在社交媒体传播,快速成为全国的热点,引来巨大的关注,迫使相关方面改进制度。2018年,滴滴顺风车发生一起杀人案,网上大量转发,导致该业务在全国下线整顿。

(4)现金的无纸化。 大家身上的现金,已经很少了,汇款都通过网上转账。抢劫和偷盗失去目标了,罪犯拿不到现金,拿到手机有什么用?而且,资金的每一笔线上流动,都可以追踪,再加上账户的实名制,一定可以查出谁拿到了钱。

综合上面这些因素,我认为,技术进步造成了暴力犯罪的减少。"莫伸手,伸手必被抓",已经不是宣传口号了,而是技术进步的必然结果。

不过,这带来了另一个问题是, 技术迫使你遵守制度,因为任何违反规定的行为都会被查出。 以后,你可能只能选择体制允许的生活方式,选择体制外的生活方式会越来越难。

winter 前端进阶训练营

winter 老师是国内非常知名的前端开发者,在阿里巴巴担任过手机淘宝的前端团队负责人。

离开阿里以后,他与极客大学合作,开设了 《前端进阶训练营》 ,亲自授课。这应该是国内最大牌的前端讲师了。

《前端进阶训练营》的第 2 期,马上就要开营了。winter 老师总结了第一期的经验,进一步提升了培训质量,这里就给大家介绍了一下。

(1)这个培训不同于市面上的其他课程,只是知识点的罗列与延续,而是将能力培养作为出发点,不重知识点的灌输,而重学习方法、思维方式的实战训练。

(2)课程设计对标阿里 P6,winter 老师重点讲解组件化、工具链、持续集成这三条大厂实战中最重视的能力,他本人面试过无数阿里的 P6,会手把手帮助学员进阶资深前端工程师。

(3)训练营配备班主任全程带班,督促学员完成学习任务;也会有助教,随时答疑;毕业之后还可以内推 600+ 企业。

《前端进阶训练营》第 2 期原价 ¥2999,现在给周刊读者的优惠价是 ¥2199。报名时输入优惠口令 RUANYF100 ,还会有 100 元的优惠,到手仅需 ¥2099。招生名额有限,报名请抓紧,扫描下方二维码即可报名。

资讯

1、最便宜的迷你电动车

美国一个汽车网站的编辑,从阿里巴巴买了一辆最便宜的930美元的迷你电动汽车,运到美国,想看看这辆车到底怎么样。

这辆车是一个常州工厂生产的,电池需要另外购置,价格为305美元,另外还有海运费549美元、码头费528美元,报关费 + 关税1019美元,到手价合计为3331美元,是原始价格的三倍多。

该编辑开箱后,感到非常满意。他原以为900美元只能买一辆玩具车,搞不好就是一辆塑料车,结果基本上用的都是金属材料,并且有一些真正的零件和千斤顶,是一辆货真价实的迷你汽车。齿轮和链条比预想的精致得多,他写道"这个价格能买到这样的车,令人难以置信。"下一步,他打算上路实测。

2、星舰两三年内试飞

SpaceX 公司的创始人马斯克(Elon Musk),最近在推特回复网友时,表示"地球一小时交通圈"将会成真,"星舰"(StarShip)系统可能会在两到三年内试飞。届时,纽约到上海的飞行时间,有望从15小时压缩到39分钟。

星舰是 SpaceX 公司开发的客运飞船,可以完成点对点的高超音速飞行,以5倍音速飞越大气层。宣传片显示,该飞船从纽约的海上火箭发射平台发射到太空,39分钟后在上海的海上平台着陆,最高时速达到每小时2.7万公里,而纽约到上海的距离是1.2万公里。

由于飞船的起飞和降落有巨大的噪音,所以起降平台需要在海上,离岸至少32公里。马斯克表示,可以通过挖掘水下隧道进入平台。该业务就算可行,也应该不会对传统的国际航班造成冲击,因为它的票价远远高于现在的飞机票价。

3、视频会议电影

疫情期间,所有的电影新片都推迟上映,两个美国电影制片人想尝试一下,拍一部个人制作的小成本电影,看看能不能挤入大院线。

他们一天之内就写出了剧本,名字叫做《Unsubscribe》,这是一部恐怖电影,讲述五个 YouTuber 加入了一个在线视频会议,结果发现被一个神秘的互联网幽灵困住了。全片长29分钟,完全在视频会议软件 Zoom 上拍摄。很多有名的演员都愿意免费加入,因为在家太无聊,所以整部电影的拍摄成本为零。

拍完以后,两名制作人花了25000美元,在纽约一家电影院包场放映,连放五场,并且还穿着礼服,在电影院门口首映留影。虽然观众只有他们两个人,但是这部电影以当天25000美元的票房,还是登上了美国票房排行榜第一名。

4、"走进荒野"的旧巴士被移除

1992年,24岁的美国青年麦克肯多斯(Christopher McCandless)大学毕业后,远离人群,独自在边疆游历,但是不幸在阿拉斯加荒野迷路,最后饿死在一辆废弃的旧巴士里面。后来,他的故事写成了畅销书《走进荒野》(Into the wild),并拍成了电影。

他死亡的那辆旧巴士,大约是60年前被废弃在旷野中,成为了户外爱好者的"圣地",每年都有大量的人去参观。由于地处偏远(距离最近的定居点50公里),荒无人烟,参观者在往返途中发生了很多事故,有两个人淹死在河中,还有很多人需要救援。这令当地政府头疼不已,认为这辆旧巴士已经成了"危险的景点",最终决定派直升飞机,搬走这辆巴士。

5、任务管理器变视频播放器

Bilibili 用户将 Windows 任务管理器变成了视频播放器,播放 Bad Apple 这首歌曲。

因为 AMD 公司的锐龙线程撕裂者 3990x 有64个内核,128个线程,所以 CPU 监控会有128个显示格,可以动态变化。目前还不清楚,他是真的动态控制每个内核的使用率,还是采用其他方式制作这个视频。进入 Bilibili,可以观看完整视频

6、一句话消息

  • 美国一份研究报告显示,2035年美国可以实现90%电力来自清洁能源,淘汰所有煤炭发电,并减少70%的天然气发电。

  • 一个西伯利亚小镇6月20日出现38度的高温,打破了北极圈高温记录。

  • 最新的超级计算机排行(第55版)出炉,日本的 Fugaku 排名世界第一,该计算机是 ARM 架构的。第二位和第三位是美国的计算机,第四位和第五位是中国的计算机。

  • 美军研究可移动的小型核反应堆,看看是否可能使用可拆卸的核反应堆对海外的美军基地供电。

文章

1、关于 Java 的25件事(英文)

今年5月是 Java 语言诞生25周年,JetBrains 公司在官方博客里面,总结了 Java 语言的25个优点。

2、scp 命令的原理和特点(英文)

scp命令用于向远程主机复制文件,本文解释它的原理,以及优点和缺点。

3、程序员简历的常见错误(英文)

这篇文章总结了程序员写简历时的几个注意点,下面是其中几个。

  • 不要试图提及你掌握的所有技能,这会给人一种"万事通"的感觉。
  • 将你的技能分成三个等级:"精通"(proficient in)、"有实战经验"(experienced with)、"熟悉"(familiar with)。
  • "精通"和"有实战经验"的技能,必须提供细节,要给出项目内容和你的个人成果。

4、如何分析照片的地理信息(英文)

作者讲述自己如何只根据下面两张照片,就分析出拍照人所在的具体位置。所以,张贴到社交媒体的照片,一定要小心。

5、为什么 Figma 赢得市场(英文)

Figma 是一个新兴的设计师工具,正在快速流行起来。本文分析它到底有何功能和特点,能够战胜 Sketch 和 Adobe 这样的强劲对手。

6、如何用链判断运算符?.重构代码(英文)

链判断运算符?.是 ES2020 引入 JavaScript 的一个重大语法,本文总结了作者使用它重构老代码的一些经验。

7、KeePass:最安全的密码管理器(中文)

KeePass 是一个轻量级、易用且安全性极高的密码管理器,其源码完全开源。与其他密码管理器不同,KeePass 可以让你完全掌握你的密码数据库。本文教你如何使用KeePass,并包含一整套最佳实践方案。(@rmnof 投稿)

8、DNS 查询的原理(英文)

本文用通俗的语言和例子,解释了 DNS 的原理,权威服务器和递归服务器的区别,以及更新 DNS 记录是怎么回事。

工具

1、Geany

一个跨平台的轻量级 IDE 编辑器,支持50多种语言。

2、ruffle

一个 Rust 语言写的 Flash 动画播放器。Adobe 公司不维护 Flash 以后,可以考虑用它来播放。

3、material-design-icons

谷歌的官方开源图标库,谷歌和安卓就采用这一套图标。Material Design 官方网站可以查看所有图标

4、CSS 三角形生成器

使用 CSS 生成三角形是网页设计常见的需求,比起使用图片,CSS 生成的三角形具有更好的可控性和灵活性。本工具支持自定义三角形大小、颜色、方向、边框等属性。(@apibrain 投稿)

5、Scroll to text fragment 生成器

Chrome 浏览器的扩展,可以对选中的网页文字,生成一个 URL。其他用户访问这个 URL,打开网页后,就会自动滚动到这段文字。它的原理是使用了 Chrome 浏览器的新功能 scroll to text fragment。(@chunliu 投稿)

6、TimeCat

一个网页录屏器,可以将网页操作录制下来,像视频那样播放,但是生成的录像文件的体积远远小于传统视频。(@TimeCat 投稿)

7、generate-avatar

根据用户的唯一 ID,自动生成头像图片的 JS 库。

8、nginx-ui

一个在线生成 nginx 配置文件的开源工具,可以在浏览器里面编辑和提交 nginx 配置文件。

9、Pleroma

一个开源的个人微博客实现,采用 ActivityPub 协议,可以与其他支持该协议的软件交换数据。

10、Youka

一个卡拉OK生成器,它可以从 Youtube 下载音乐视频,然后配上歌词,生成卡拉OK视频。

资源

1、施普林格的免费书籍

施普林格(Springer)是欧美著名的科技图书出版社,疫情期间提供大量图书免费下载。官方并没有提供所有免费图书的完整清单,于是有人就整理出来了,除了计算机科学,还包括其他各个领域的科技书籍。

2、文本到图形的在线工具

这个页面给出一个在线工具的清单,可以将文本(图形的描述)渲染成图形,比如 PlantUML 和 ASCIIFlow。

3、Drive & Listen

一个很有趣的网站,让你在线体验一边开车一边听广播。使用驾驶员的视角,播放街景,有车速和街道噪音开关,配上当地的广播电台。目前支持几十个城市,包括北京和武汉。

4、Starlink Map

星联计划(Starlink)是 SpaceX 公司的一个全球卫星上网项目(详见本期《文摘》部分的介绍),计划最终发射几万颗小卫星,目前已经发射了500多颗。这个网站可以查看所有卫星的实时位置。

5、美国海军电气与电子培训教材

互联网档案馆收藏的一套英文教材,美国海军用来培训官兵成为电气工程师和电子工程师,从最基础的概念(电是什么)开始讲起,一共24册。

图片

1、任天堂的扑克牌

任天堂最早是一家扑克牌公司,下面是1953年他们的扑克牌广告。

2、尼奥斯湖灾难

1986年8月21日,喀麦隆西北部的尼奥斯湖的湖底,由于未知原因,突然喷发释放出约10万吨~30万吨的二氧化碳。

二氧化碳的密度约为空气的1.5倍,厚约50米的气体云团急速下降至地面,沿着山谷飘散,造成23公里内1,746人和3,500只牲畜死亡。

事后,喀麦隆政府在尼奥斯湖上安装了一个排气系统,目的是降低湖底下的 CO2 浓度,减少进一步喷发的风险。

3、蒙帕纳斯大楼

蒙帕纳斯大楼是法国首都巴黎市中心唯一的摩天大楼,在1973年完工,高210米,有59层楼。启用时为欧洲第一高楼,现在是全法国第二高、以及欧盟国家之中第九高的摩天大楼。

大楼突兀的外观经常被当地民众指责是破坏巴黎的整体市容、超高大楼的负面教材,因此在大楼完工后两年,法国议会通过了禁止在巴黎市中心兴建摩天大楼的法律。

巴黎人流传一句玩笑话,认为该大楼顶端提供全巴黎最美的视野,因为那是全巴黎唯一看不见那栋大楼的地方。

在2008年 Virtualtourist 举办的投票中,蒙帕纳斯大楼在全世界最丑陋建筑物中排名第二,仅次于波士顿市政厅。

文摘

1、星联计划 StarLink

世界上很多偏远地区由于没有无线基站,无法上网。一些高山上,上网信号也非常弱。

目前的解决方案是多建基站,解决网络覆盖问题,马斯克却另辟蹊径,希望把通信网建在太空中,从而使得地面基站变得不必要。

这就是星联计划,组建一个太空的宽带网络,发射几万颗微型卫星,在太空组网,为全球用户提供宽带服务。

但是,卫星上网有一个难题,就是地球同步卫星不适合用于宽带上网。当今,大多数通信卫星都是地球同步卫星,即它们的速度跟地球的自转速度相同,所以永远在同一个地点的上空。这使得将天线对准它们非常方便。

但是,地球同步卫星的高度是,赤道上高出海平面约35786公里。这样的距离太远,网络延迟太大,无法提供卫星宽带服务。

星联计划的做法是,将卫星发射到距离地面550公里的"低空",这样的话,网络延迟就不会太大。由于轨道较低,这些卫星的飞行速度需要更快,否则就会被地球引力吸引而坠落。速度加快的话,这些卫星就不会停留在某一个地点的上空,用户无法用天线对准某一颗卫星。所以,星联计划想要发射多颗卫星,围绕地球一圈。前一颗卫星飞走了,后一颗卫星正好可以补上它的位置,使得地面的天线总能收到信号。

这个计划如果要成为现实,具备商业可行性,就需要有廉价的、可重复使用的火箭。SpaceX 正好能够提供这样的火箭。而且,SpaceX 公司也需要有大规模的民用卫星项目,才可能赚到钱,保证公司能够生存下去。

于是,SpaceX 公司就成立了 Starlink 子公司,专门实现用轨道卫星覆盖地球的主要居住地区,提供无线上网服务的计划。

2019年5月24日,星联计划发射了第一批60颗卫星。第一阶段计划将发射1,600颗卫星,他们宣布的目标是,在5-10年内最终达到12,000颗,甚至超过40,000颗卫星。

在少于100颗卫星的情况下进行的初步测试显示,Starlink 在飞机上大约有 600Mbps的带宽,一般家庭的宽带,百兆带宽(100Mbps)就算很快了。

相比地面的光纤通信,卫星宽带还有一个优势。无线电波在太空环境的传播速度,接近真空中的光速每秒30万公里,要比光纤的传送速度每秒20万公里快。再加上,卫星之间不用像远距离光纤通信那样,一段一段接起来,可以直接点对点传送,所以即使考虑空地往返,星联计划还是要更快一些。

不过,Starlink 做不到手机那样直接上网,而是需要一个直径为0.48米的圆形卫星天线。这个天线跟比萨饼盒子或者公文包,差不多大小,所以无法手持。汽车制造商可能会将其安装在汽车或卡车的车顶上,从而向乘客提供 WiFi,这样就可以使得几乎100%的高速公路都能无线上网。

所以,Starlink 不是要取代传统的无线通信服务商,马斯克希望这个服务是地面网络的补充,可以让那些没有上网条件的地方,能够用上互联网。

2020年6月13日,SpaceX 公司成功发射了第9批 Starlink 卫星,目前天上已有538颗Starlink卫星,预计6月24日将发射第10批。现在,SpaceX 正式向人们发出邀请,来帮他们测试这个太空网络!

只要在网页填写申请表,提供电子邮箱、邮政区号和国家,你就有机会免费试用 StarLink,帮马斯克测试这个服务。提交申请后,你会收到一封邮件,告诉你如果你所在的地区出现了测试机会,会立刻邮件通知你。

地球上现在还有一半的人没有上网。有了 Starlink,无论是游轮、不发达国家、偏远的森林和沙漠,都可以有 100+ Mbps 的宽带,这对人类有非常重大的意义。

言论

1、

初学者眼里有很多可能性,专家眼里只有很少可能性。(In the beginner's mind there are many possibilities, but in the expert's there are few.)

-- 铃木俊隆(Shunryu Suzuki),日本禅宗僧人

2、

输入要保持开放,输出要保持保守。(Be liberal in what you accept, and conservative in what you send.)

-- Jon Postel 谈如何设计接口

3、

爬得越高,获救的机会也就越少。

-- 埃德·维斯特斯(Ed Viesturs),美国著名登山家

4、

广受欢迎的技术会被过度使用,Node.js 就是如此,被用在许多不适合的场合。

-- 《Node.js 的过度使用》

5、

Snapchat 是斯坦福大学两个大学生写的一个聊天工具,它基于一个疯狂的想法:用户共享的所有内容都是临时的,半天后就会自动消失,你想看也看不到。

这后来成为社交媒体的新趋势:实时显示"真实生活",大受欢迎。

-- 《最疯狂的创业想法》

6、

数学家理查德·汉明(Richard Hamming)总是问其他领域的科学家:"你的领域中最重要的问题是什么?",然后问第二个问题:"你为什么不研究它们?"。

-- 《汉明问题》

回顾

2019年的本周(第 62 期):十五年编一本字典的故事

2018年的本周(第 10 期):30岁以上,不宜转行前端工程师

订阅

这个周刊每周五发布,同步更新在阮一峰的网络日志微信公众号

微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年6月24日

科技爱好者周刊(第 114 期):U 盘化生存和 Uber-job

$
0
0

这里记录每周值得分享的科技内容,周五发布。

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐你的项目。

周刊讨论区的帖子《谁在招人?》,提供大量就业信息,欢迎访问或发布工作/实习岗位。

封面图

建于1995年的塔克拉马干沙漠公路,全长552公里,穿越世界第二大流动沙漠。两旁的绿化带采用滴水灌溉,防止公路被沙漠吞没。( 出处:Instagram

本周话题:U 盘化生存和 Uber-job

最近,我学到了几个新词,跟大家分享一下。

(1)零工经济:指的是越来越多的就业,属于"打零工"性质。稳定的长期工作越来越难找,只找得短期的临时雇佣,许多人就靠长期打零工养活自己。

(2)斜杠青年:指的是从事过多种职业的年轻人。因为他简历的"职业"一栏,会填写很多不同的工作,需要用斜杠分隔。

(3)U 盘化生存:这是罗振宇老师提出的概念,他提倡年轻人"自带信息,不装系统,随时插拔,自由协作",也就是像 U 盘那样,把你插在哪里,你就在哪里工作,时刻准备着被切换到另一个位置。

(4)Uber-job:指的是 Uber 那一类在网上接单的工作,一单一单计算报酬,属于临时承包商的性质,比如开网约车和外卖送餐。

我觉得,这些词很可能会变成常见词汇。因为现在,企业的存续期越来越短,大部分企业不是持续经营,存在十年、二十年,而是短期经营,一两年如果赚不到钱,就关门歇业了。最近疫情期间,尤其显著。

我们父母那一代的就业模式----进单位就一直干到退休,从基层慢慢升迁到高级岗位----已经不现实了。企业现在用人都是短期的,它自己都不知道几年后还在不在,怎么可能给你一个长期有保障的未来呢?普通人不停地换工作,才是常见的情况。

年轻人应该怎么面对这种"就业短期化、职业不确定"的趋势呢?

我觉得,这才是眼下最大的社会课题之一。科技的进步无法预见,各行各业每天都在洗牌,世界局势又如此动荡,充满各种突发事件,现实大概很快就会变成: 大多数人依靠打零工、在网上接 Uber-job 为生,成为斜杠青年,被迫 U 盘化生存。

Vue.js 3.0 专题课

Vue.js 3.0 最近发布了,作为一个主流的前端框架,大家都在对这个新版本摸索熟悉之中。

本周就介绍一门 Vue.js 3.0 的专题课给大家,由京程一灯提供。

目前,市面上的 Vue.js 课程很多,但大部分是基础课程,而且往往没有及时更新。如果你希望全面升级 Vue.js 水平,掌握更多的开发技能,跟上 Vue.js 3.0,不妨看一下这个专题课 ---- 《 Vue 从无到有的思想精髓》

它深度讲解了 Vue.js 3.0 那些值得关注的新特性,以及如何进行性能优化,和 Vue.js 在小程序端的应用。这个课程一共有三节课,下面是《课程大纲》。

注意,该课程适合已经了解 Vue.js 基础用法的开发者,最好有使用经验。目标是通过三节课,带你成为 Vue.js 开发高手。

这个专题课原价98元,现在扫描下面二维码进群,只要1元 ,无转发等套路。由于名额有限,仅限前100位扫码进群的同学。

资讯

1、电子游戏成为学校教材

波兰的生存模拟游戏《这是我的战争》(This War of Mine),最近成为波兰教育部认定的教材。该游戏中,玩家因战火而困在废墟,为了维持温饱,必须决定是否狠下心掠夺手无寸铁老夫妇最后的粮食。

波兰教育部认为,这款游戏呈现了战争的残酷与人性的善恶,引导玩家思考生命与道德价值观的轻重,游戏所获得的反思大于游戏本身的娱乐性,是极富教育意义的教材。现在,很多人认为"游戏即教育",电子游戏提供了沉浸式的环境,将成为学习的一种很好的形式,类似《这是我的战争》这样的教材以后会越来越多。

2、疫情期间的 3D 打印比赛

国外一家 3D 打印网站,举办了一个比赛,要求参赛者提交有助于战胜疫情的 3D 打印小作品。所有参赛作品的 3D 打印源码,都可以在该网站免费下载。

上图是一些获奖作品。左上是戴在手腕的按钮辅助工具,右上是无需用手即可触摸按钮的戒指,左下是套在手上的多功能挂钩,可以推、拉和提东西,右下是塞在门底部的一个楔子,可以轻松用脚打开和关上门。

3、闪电的世界记录

世界气象组织最近认定,2018年10月31日巴西的一次闪电,是世界最长的闪电,长达700多公里,相当于从伦敦到瑞士巴塞尔。另外,还认定2019年3月4日在阿根廷北部的闪电,是世界持续时间最长的闪电,持续了整整16.73秒。

这些记录是通过新的卫星闪电成像技术计算得到的,由于以前没有该技术,所以这次的"世界之最"只针对最近几年有记录的这段时间。

4、机器人餐厅

广东顺德最近开张了一家机器人餐厅综合体,所谓"综合体"就是同时包括了中餐、火锅、快餐三大业态。这家餐厅一共有21种机器人,比如粉面机器人、早餐机器人、咖啡机器人、汉堡机器人、煲仔饭机器人等,总计可以制作近200种菜品。

不过,这家餐厅并不是完全自动化,仍然有人工服务。据报道,投资方计划在广东开出更多的这种机器人餐厅连锁店,并且还会研发其他品种的机器人,最终目标是实现无工作人员的餐厅。

汉堡机器人

粉面机器人

堡仔饭机器人

冰淇淋机器人

"从天而降"的云轨配送服务

5、上海自动驾驶的载客运营

6月27日,滴滴出行首次面向上海的公众开放自动驾驶服务。用户报名后,可以在指定的测试路段,通过网约车,进行自动驾驶试乘。

体验过程长约20分钟,车辆的最高时速限定为50公里,会包括转弯、刹车、掉头等环节。每辆车的驾驶座配有1名工作人员,如遇突发情况,他会接管车辆。

6、Redis 创始人离职

Redis 项目的创始人@antirez 宣布退出代码的日常开发,以后只充当该项目的顾问。理由是"我写代码是为了表达自己,而现在我的大部分精力都花在检查其他人提交的代码,但我从不想成为软件维护者。"

很多人靠开源项目赚钱,不曾想过维护这些项目是一件让人精疲力竭的事情。另外,他是意大利人,这可能也是他特别厌倦做艰苦的维护工作的一个原因。

7、一句话消息

  • 一名美国22岁男子因为发起和出售 DDOS 攻击,被法院判处13个月监禁。

  • 杭州乐高旗舰店开幕,工作人员用70万片积木,搭建接近真人大小的"西湖十景"断桥相会,请看下面的一分钟搭建视频。
  • Chrome 浏览器将强制 HTTPS 证书的有效期,最长不超过一年。

  • 波士顿市议会通过决议,不得在该市使用人脸识别技术。这是旧金山以后,美国第二个这样规定的城市。

  • 美国中央情报局 CIA 发布了它的第一支电视招聘广告,招聘间谍。片长一分钟,拍摄风格不像广告,更像电视剧《国土安全》。
  • 北京丰台区出现类似"小坦克"的自动消毒车,可以360度喷洒消毒液,每小时消毒1万平米。它的瓶颈应该是供电,无法长时间连续使用。

文章

1、谷歌搜索的一个技巧(英文)

如果你想快速了解一个新事物是什么,一个简单的方法就是在这个词的后面加上"vs",谷歌会自动提示跟它最接近的事物。

这个技巧对百度也有效。

利用这个 API,可以画出事物之间的关系图。

2、Web Extension API 介绍(英文)

6月22日的 WWDC 大会中,苹果宣布 Safari 浏览器会使用 Web Extensions API 支持浏览器插件。这意味着只要使用这个 API,你的插件就可以同时在 Firefox,Chrome,Opera 、Edge 和 Safari 中运行。这里还有 MDN 上面的 API 教程

3、Apple WWDC 2020 对 Web 开发者的意义(英文)

刚刚举行的苹果开发者大会,公布了几个对 Web 开发者会产生影响的决定,比如 Safari 开始支持插件,并且插件可以在苹果商店出售,以及允许网站使用 FaceID 和 TouchID 进行用户认证。

4、苹果拒绝实现的 Web API(英文)

苹果公司表示,Safari 不会支持16个 Web API,同时还会缩减一部分已实现的 API 的功能,理由是它们可以用来生成用户指纹,威胁用户隐私。

5、异步剪贴板 API 介绍(英文)

Safari 13.1添加了对 Async Clipboard API 的支持,使得网页可以通过这个 API 读写系统的剪贴板。这比当前通过 ClipboardEvent 的 DataTransfer 对象读写剪贴板,有很多优势。

6、WebP 图像真的优于 JPEG 吗?(英文)

谷歌声称,在同等质量的情况下,WebP 格式比 JPEG 体积小25 - 34%。作者对这个宣传有怀疑,实际测试发现,如果使用 MozJPEG 编码器,WebP 格式几乎没有优势。

7、我如何从 GitHub 赞助年收入10万美元(英文)

我一直很想知道, GitHub 的"赞助"功能是否真能拿到钱。这篇文章告诉我们,真的是可以的,作者介绍了一些技巧,使得他的一个开源项目,年赞助达到了11万美元。

8、如何不靠运气变得富有(中文)

Naval 是美国风险投资家,这是他的3小时长播客《如何不靠运气变得富有》的中文翻译,介绍了他的财富观,非常值得一读。(@taosue 投稿)

9、10个日常使用的 Linux 应用程序(英文)

本文推荐10个常用的 Linux 应用程序,比如 BT 下载客户端 Fragments、虚拟机解决方案 GNOME Boxes、绘图程序 Krita。

10、Rust 学习路线图(中文)

近几个月,作者开始学习 Rust,并用 Rust 开始写一些代码,根据自己的学习经验,制作了这一份 Rust 的学习路径。(@leoython 投稿)

工具

1、Tiny C 编译器

传奇程序员 Fabrice Bellard 写的一个 C 编译器,只有 100KB 大小,编译时间只有 GCC 的几分之一。

2、BUI

一个国产的 UI 交互框架, 用于快速定制开发 WebApp、微信公众号、小程序的 webview 适配,以及混合移动应用等。(@yangyongzhen 投稿)

3、elevator.js

一个使得"回到顶部"的网页滚动,具有电梯效果的 JS 库。

4、webp2jpg

一个纯前端的在线图片格式转换工具,可以快速将图片转为另一种格式,并且提供多个参数可以调节。(@renzhezhilu 投稿)

5、tauri

一个类似 Electron 的跨平台桌面应用开发框架,但是基于各平台自带的 WebView,所以应用打包出来的体积比较小。(@jwenjian 投稿)

6、Textures.js

一个 JS 纹理库,基于 D3.js。

7、robotjs

一个 Node.js 的桌面自动化脚本库,支持 Mac、Windows 和 Linux。

8、foam

VS Code 的一个插件,使得 VS Code 可以用于个人的笔记和知识管理,支持 Wiki 语法和可视化图形。

9、Shoes

一个开发桌面小程序的跨平台框架,特点是语法简单,容易上手。

10、Linear

一个在线的项目管理软件,用于 Bug 管理,比 Jira 用法简单。

资源

1、Mowned

一个手机数据库,可以生成免费的个人页面,让你展示自己用过的手机。

2、11 Foot 8

美国有一座铁路桥,高11英尺8英寸(3.56米),比常见的限高11英寸10英尺低了一点,导致桥下行驶的大卡车,经常会擦撞到车顶。

有人实在看不下去了,就在桥边装了两个摄像头,把拍到的所有事故视频,做成一个网站,名字就叫"11 Foot 8"。

3、Youtube 免费软件开发教程

该网站收集 Youtube 上面各种免费的软件开发视频教程。

4、使用 Raspberry Pi 学习操作系统开发

这是一个免费英文教程,教大家怎么用树莓派,一步步开发一个简单的操作系统内核,每一步都有实例代码。

5、JavaScript 生成艺术图形教程

这个教程介绍 JavaScript 如何生成8种艺术图形。

图片

1、Mac 电脑的高价配件

苹果的 Mac 电脑有一些配件,价格高得难以理解。

Mac Pro 主机的四个轮子,5289元人民币。

显示器支架,7799元人民币。

Mac Pro 主机的四个支脚,2249元人民币。

2、膨胀的锂电池

Reddit 有一个频道,专门让用户上传各种膨胀的锂电池的照片。

文摘

1、为什么鸟类可以飞越珠穆朗玛峰?

斑头雁之迷

斑头雁(bar-headed geese)冬季生活在印度中部,夏季生活在哈萨克斯坦或蒙古。每年,它都要从印度飞到蒙古,然后再飞回来。

从印度到蒙古,斑头雁必须越过世界最高的喜马拉雅山脉,现在已知这些鸟类的飞行高度可以达到8500米。这是如何做到的?

8000米以上的高度,氧气极为稀薄,人类呼吸非常困难。但是,斑头雁可以顺畅地呼吸,这就是它们能飞越喜马拉雅山的主要原因:它们的肺远比人类的肺强大高效,即使在那样的高度,身体也能得到足够的供氧。

鸟类的肺

事实上,所有鸟类(蜂鸟,鸵鸟,鸽子)都有超高效的肺部。人类和其他哺乳动物的肺,跟它们一比,看起来都很低级。

人类和哺乳动物的呼吸,进出都是同一个口,嘴和鼻子同时用于呼气和吸气。但是,鸟类不这样,呼吸的进口和出口是分开的,有两个口,气体在体内永远是单方向流动,空气被吸收氧气后,不会再次经过肺部,这样的效率更高。

而且,鸟类的骨头里面有气囊和中空的空间,可以储存空气,进一步使得呼吸更容易。

恐龙的肺

鸟类是如何获得这样强大的肺呢?

答案很简单,它们从恐龙那里继承来的。鸟类的祖先是恐龙!恐龙的肺也是高效的,所以它们的体积才会变得这么大!它们的肺可以支持庞大身体的供氧。

大气含氧量的变化

恐龙的肺的进化,与地球环境的变化密切相关。

几亿年前,陆地上刚刚出现植物,这时地球大气的氧气含量很高,超过了30%。相比之下,今天空气里的氧气含量只有21%。

由于氧气太多,使得呼吸效率低下的昆虫,可以繁殖得很大。蜻蜓的翼展能达到1米左右,蜈蚣长2米多,青蛙等两栖动物像饭桌一样大。

氧气太多就容易发生燃烧,也容易与腐烂植物里面的碳元素结合,产生二氧化碳。因此时间一长,地球大气的氧气含量就开始下降了,从石炭纪(3亿年前)30%的高点,快速下降到二叠纪(2.5亿年前)的12%左右。地球上百分之九十五的生命体,由于无法适应氧气含量的下降而死亡,这是地球历史上最大的生物灭绝事件。

还活着的5%的生命体,必须适应低含量的氧气,才能生存下去。恐龙就是在那个时候出现的,慢慢进化出了高效的肺系统。

后来,空气的含氧量又开始回升,达到20%以上。恐龙由于具有强大的肺,体积就越长越大。而且,它们空心的骨头,也有助于减轻整体重量。

鸟类从恐龙演化而来,具有同样的肺系统,专门适应低含氧量的环境,这就是为什么它们能飞越珠穆朗玛峰的原因。

言论

1、

创建一家大型互联网公司的最佳方法,就是帮助人们去做他们想做的事情,并使事情变得容易10倍。

人们想在网上写东西,但是大多数网站的发布门槛太高了,所以才有了推特,你只需要写一句话就能发布。

-- Evan Williams,Twitter 的创始人之一

2、

唯一不适应远程工作的是中层管理人员。

基层员工对于在家工作感到很高兴,只要把活做好就可以了。高层管理人员只需要对销售和产量数字负责。中层管理人员的不适应在于,他们的职责是直接监控基层员工,最常用的判断方法是通过是否坐在座位上等迹象,来判断工作量和工作是否勤奋。

-- Hacker news 读者

3、

我有一种反英雄主义的精神。以前看电视时,我就对皇帝和将军不感兴趣,觉得他们已经有荣耀和风光了。

我更关心皇帝和将军手下的那些小兵,有时战斗刚开始,他们就被杀死了。他们脑海里想的是什么?会有人记得他们,为他们哭泣吗?

-- 黄西自传《黄瓜的黄,西瓜的西》

4、

时钟和镜子改变了人类社会。

时钟创造了一种焦虑文化。

镜子创造了一种自恋文化。

-- David Perell

5、

100年前的中国,四千个人里面才有一个中学生,其他都是文盲。

-- 李敖

6、

如果目标只是到达终点,那样的成功是非常空洞的。

最好的目标是,你和很多胜利者一起到达终点。身边的胜利者越多,成功就越让人满足。

-- 霍华德·舒尔茨(星巴克创始人)的自传

回顾

2019年的本周(第 63 期):大鱼赢家通吃,小鱼很难存活

2018年的本周(第 11 期):编程语言加速进化,通才越来越难

订阅

这个周刊每周五发布,同步更新在阮一峰的网络日志微信公众号

微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年7月 3日

SSH 证书登录教程

$
0
0

SSH 是服务器登录工具,提供密码登录和密钥登录。

但是,SSH 还有第三种登录方法,那就是证书登录。很多情况下,它是更合理、更安全的登录方法,本文就介绍这种登录方法。

一、非证书登录的缺点

密码登录和密钥登录,都有各自的缺点。

密码登录需要输入服务器密码,这非常麻烦,也不安全,存在被暴力破解的风险。

密钥登录需要服务器保存用户的公钥,也需要用户保存服务器公钥的指纹。这对于多用户、多服务器的大型机构很不方便,如果有员工离职,需要将他的公钥从每台服务器删除。

二、证书登录是什么?

证书登录就是为了解决上面的缺点而设计的。它引入了一个证书颁发机构(Certificate1 authority,简称 CA),对信任的服务器颁发服务器证书,对信任的用户颁发用户证书。

登录时,用户和服务器不需要提前知道彼此的公钥,只需要交换各自的证书,验证是否可信即可。

证书登录的主要优点有两个:(1)用户和服务器不用交换公钥,这更容易管理,也具有更好的可扩展性。(2)证书可以设置到期时间,而公钥没有到期时间。针对不同的情况,可以设置有效期很短的证书,进一步提高安全性。

三、证书登录的流程

SSH 证书登录之前,如果还没有证书,需要生成证书。具体方法是:(1)用户和服务器都将自己的公钥,发给 CA;(2)CA 使用服务器公钥,生成服务器证书,发给服务器;(3)CA 使用用户的公钥,生成用户证书,发给用户。

有了证书以后,用户就可以登录服务器了。整个过程都是 SSH 自动处理,用户无感知。

第一步,用户登录服务器时,SSH 自动将用户证书发给服务器。

第二步,服务器检查用户证书是否有效,以及是否由可信的 CA 颁发。

第三步,SSH 自动将服务器证书发给用户。

第四步,用户检查服务器证书是否有效,以及是否由信任的 CA 颁发。

第五步,双方建立连接,服务器允许用户登录。

四、生成 CA 的密钥

证书登录的前提是,必须有一个 CA,而 CA 本质上就是一对密钥,跟其他密钥没有不同,CA 就用这对密钥去签发证书。

虽然 CA 可以用同一对密码签发用户证书和服务器证书,但是出于安全性和灵活性,最好用不同的密钥分别签发。所以,CA 至少需要两对密钥,一对是签发用户证书的密钥,假设叫做user_ca,另一对是签发服务器证书的密钥,假设叫做host_ca

使用下面的命令,生成user_ca


# 生成 CA 签发用户证书的密钥
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/user_ca -C user_ca

上面的命令会在~/.ssh目录生成一对密钥:user_ca(私钥)和user_ca.pub(公钥)。

这个命令的各个参数含义如下。

  • -t rsa:指定密钥算法 RSA。
  • -b 4096:指定密钥的位数是4096位。安全性要求不高的场合,这个值可以小一点,但是不应小于1024。
  • -f ~/.ssh/user_ca:指定生成密钥的位置和文件名。
  • -C user_ca:指定密钥的识别字符串,相当于注释,可以随意设置。

使用下面的命令,生成host_ca


# 生成 CA 签发服务器证书的密钥
$ ssh-keygen -t rsa -b 4096 -f host_ca -C host_ca

上面的命令会在~/.ssh目录生成一对密钥:host_ca(私钥)和host_ca.pub(公钥)。

现在,~/.ssh目录应该至少有四把密钥。

  • ~/.ssh/user_ca
  • ~/.ssh/user_ca.pub
  • ~/.ssh/host_ca
  • ~/.ssh/host_ca.pub

五、CA 签发服务器证书

有了 CA 以后,就可以签发服务器证书了。

签发证书,除了 CA 的密钥以外,还需要服务器的公钥。一般来说,SSH 服务器(通常是sshd)安装时,已经生成密钥/etc/ssh/ssh_host_rsa_key了。如果没有的话,可以用下面的命令生成。


$ sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -b 4096 -t rsa

上面命令会在/etc/ssh目录,生成ssh_host_rsa_key(私钥)和ssh_host_rsa_key.pub(公钥)。然后,需要把服务器公钥ssh_host_rsa_key.pub,复制或上传到 CA 所在的服务器。

上传以后,CA 就可以使用密钥host_ca为服务器的公钥ssh_host_rsa_key.pub签发服务器证书。


$ ssh-keygen -s host_ca -I host.example.com -h -n host.example.com -V +52w ssh_host_rsa_key.pub

上面的命令会生成服务器证书ssh_host_rsa_key-cert.pub(服务器公钥名字加后缀-cert)。这个命令各个参数的含义如下。

  • -s:指定 CA 签发证书的密钥。
  • -I:身份字符串,可以随便设置,相当于注释,方便区分证书,将来可以使用这个字符串撤销证书。
  • -h:指定该证书是服务器证书,而不是用户证书。
  • -n host.example.com:指定服务器的域名,表示证书仅对该域名有效。如果有多个域名,则使用逗号分隔。用户登录该域名服务器时,SSH 通过证书的这个值,分辨应该使用哪张证书发给用户,用来证明服务器的可信性。
  • -V +52w:指定证书的有效期,这里为52周(一年)。默认情况下,证书是永远有效的。建议使用该参数指定有效期,并且有效期最好短一点,最长不超过52周。
  • ssh_host_rsa_key.pub:服务器公钥。

生成证书以后,可以使用下面的命令,查看证书的细节。


$ ssh-keygen -L -f ssh_host_rsa_key-cert.pub

最后,为证书设置权限。


$ chmod 600 ssh_host_rsa_key-cert.pub

六、CA 签发用户证书

下面,再用 CA 签发用户证书。这时需要用户的公钥,如果没有的话,客户端可以用下面的命令生成一对密钥。


$ ssh-keygen -f ~/.ssh/user_key -b 4096 -t rsa

上面命令会在~/.ssh目录,生成user_key(私钥)和user_key.pub(公钥)。

然后,将用户公钥user_key.pub,上传或复制到 CA 服务器。接下来,就可以使用 CA 的密钥user_ca为用户公钥user_key.pub签发用户证书。


$ ssh-keygen -s user_ca -I user@example.com -n user -V +1d user_key.pub

上面的命令会生成用户证书user_key-cert.pub(用户公钥名字加后缀-cert)。这个命令各个参数的含义如下。

  • -s:指定 CA 签发证书的密钥
  • -I:身份字符串,可以随便设置,相当于注释,方便区分证书,将来可以使用这个字符串撤销证书。
  • -n user:指定用户名,表示证书仅对该用户名有效。如果有多个用户名,使用逗号分隔。用户以该用户名登录服务器时,SSH 通过这个值,分辨应该使用哪张证书,证明自己的身份,发给服务器。
  • -V +1d:指定证书的有效期,这里为1天,强制用户每天都申请一次证书,提高安全性。默认情况下,证书是永远有效的。
  • user_key.pub:用户公钥。

生成证书以后,可以使用下面的命令,查看证书的细节。


$ ssh-keygen -L -f user_key-cert.pub

最后,为证书设置权限。


$ chmod 600 user_key-cert.pub

七、服务器安装证书

CA 生成服务器证书ssh_host_rsa_key-cert.pub以后,需要将该证书发回服务器,可以使用下面的scp命令,将证书拷贝过去。


$ scp ~/.ssh/ssh_host_rsa_key-cert.pub root@host.example.com:/etc/ssh/

然后,将下面一行添加到服务器配置文件/etc/ssh/sshd_config


HostCertificate /etc/ssh/ssh_host_rsa_key-cert.pub

上面的代码告诉 sshd,服务器证书是哪一个文件。

重新启动 sshd。


$ sudo systemctl restart sshd
# 或者
$ sudo service sshd restart

八、服务器安装 CA 公钥

为了让服务器信任用户证书,必须将 CA 签发用户证书的公钥user_ca.pub,拷贝到服务器。


$ scp ~/.ssh/user_ca.pub root@host.example.com:/etc/ssh/

上面的命令,将 CA 签发用户证书的公钥user_ca.pub,拷贝到 SSH 服务器的/etc/ssh目录。

然后,将下面一行添加到服务器配置文件/etc/ssh/sshd_config


TrustedUserCAKeys /etc/ssh/user_ca.pub

上面的做法是将user_ca.pub加到/etc/ssh/sshd_config,这会产生全局效果,即服务器的所有账户都会信任user_ca签发的所有用户证书。

另一种做法是将user_ca.pub加到服务器某个账户的~/.ssh/authorized_keys文件,只让该账户信任user_ca签发的用户证书。具体方法是打开~/.ssh/authorized_keys,追加一行,开头是@cert-authority principals="...",然后后面加上user_ca.pub的内容,大概是下面这个样子。


@cert-authority principals="user" ssh-rsa AAAAB3Nz...XNRM1EX2gQ==

上面代码中,principals="user"指定用户登录的服务器账户名,一般就是authorized_keys文件所在的账户。

重新启动 sshd。


$ sudo systemctl restart sshd
# 或者
$ sudo service sshd restart

至此,SSH 服务器已配置为信任user_ca签发的证书。

九、客户端安装证书

客户端安装用户证书很简单,就是从 CA 将用户证书user_key-cert.pub复制到客户端,与用户的密钥user_key保存在同一个目录即可。

十、客户端安装 CA 公钥

为了让客户端信任服务器证书,必须将 CA 签发服务器证书的公钥host_ca.pub,加到客户端的/etc/ssh/ssh_known_hosts文件(全局级别)或者~/.ssh/known_hosts文件(用户级别)。

具体做法是打开ssh_known_hostsknown_hosts文件,追加一行,开头为@cert-authority *.example.com,然后将host_ca.pub文件的内容(即公钥)粘贴在后面,大概是下面这个样子。


@cert-authority *.example.com ssh-rsa AAAAB3Nz...XNRM1EX2gQ==

上面代码中,*.example.com是域名的模式匹配,表示只要服务器符合该模式的域名,且签发服务器证书的 CA 匹配后面给出的公钥,就都可以信任。如果没有域名限制,这里可以写成*。如果有多个域名模式,可以使用逗号分隔;如果服务器没有域名,可以用主机名(比如host1,host2,host3)或者 IP 地址(比如11.12.13.14,21.22.23.24)。

然后,就可以使用证书,登录远程服务器了。


$ ssh -i ~/.ssh/user_key user@host.example.com

上面命令的-i参数用来指定用户的密钥。如果证书与密钥在同一个目录,则连接服务器时将自动使用该证书。

十一、废除证书

废除证书的操作,分成用户证书的废除和服务器证书的废除两种。

服务器证书的废除,用户需要在known_hosts文件里面,修改或删除对应的@cert-authority命令的那一行。

用户证书的废除,需要在服务器新建一个/etc/ssh/revoked_keys文件,然后在配置文件sshd_config添加一行,内容如下。


RevokedKeys /etc/ssh/revoked_keys

revoked_keys文件保存不再信任的用户公钥,由下面的命令生成。


$ ssh-keygen -kf /etc/ssh/revoked_keys -z 1 ~/.ssh/user1_key.pub

上面命令中,-z参数用来指定用户公钥保存在revoked_keys文件的哪一行,这个例子是保存在第1行。

如果以后需要废除其他的用户公钥,可以用下面的命令保存在第2行。


$ ssh-keygen -ukf /etc/ssh/revoked_keys -z 2 ~/.ssh/user2_key.pub

十二、参考链接

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年7月 8日

科技爱好者周刊(第 115 期):保护你的 DNA,不要泄漏

$
0
0

这里记录每周值得分享的科技内容,周五发布。

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐你的项目。

周刊讨论区的帖子《谁在招人?》,提供大量就业信息,欢迎访问或发布工作/实习岗位。

封面图

澳门去年11月举办龙马巡游,该大型机械装置为中法团队合作打造,上身为龙,下身为马,身体各部分都能动,还能喷火。(出处:Instagram

本周话题:保护你的 DNA,不要泄漏

上周,美国佛罗里达州通过了《DNA 隐私法》,成为美国第一个对 DNA 立法的州。它明文规定 DNA 属于个人隐私,保险公司不得获取 DNA 测试的结果。

为什么 DNA 不能让保险公司知道?

因为 DNA 包含了一个人所有的遗传信息,你有什么基因缺陷,一查 DNA 都能知道。保险公司拿到你的 DNA 以后,就能识别你可能会得哪些疾病,于是相应调整费率,或拒绝你投保人寿险和医疗险。

DNA 不仅对保险公司有用,对就业和招生也有用,可以用来找出基因上最合适的人选。所以,DNA 里面的个人信息可能不利于你,要注意保护,防止泄漏。

DNA 测序已经是一项常规技术了,普通实验室都能做,毫无难度。现在,新生儿出生前,医院都会建议孕妇做一下产前 DNA 检查,防止遗传病。2018年,湖南一个孕妇起诉华大基因公司,原因就是该公司的 DNA 检查一切正常,但是新生儿生出来有严重的遗传病。

如果 DNA 检查发现遗传缺陷,这个新生儿是不会生出来的。引申一下,这对成人也一样,如果你的 DNA 泄漏了,有时就直接出局了。

DNA 检测现在有多便利?电商平台搜一下"DNA 检测"、"DNA 测序",会返回很多结果。

DNA 也很容易获得,头发、血液、唾液、身体组织都能用来检测。所以,保护 DNA 的难度其实挺大的,只能说个人要有保护意识,尽量不留下 DNA 痕迹。

讲座:算法面试的必考知识点

暑假到了,大家打算怎么利用这个假期?

如果你能静得下心,其实可以考虑好好学一下算法。以后进入公司,开发任务一重,就很难有时间和心思,再来学这些基础的东西。

这里介绍一门极客大学推出的讲座 《算法面试必考知识点》,可以帮助你学好算法。因为算法内容实在太多,所以这个讲座一共安排了7天。

讲座的主要内容是针对 LeetCode 的海量题库,精选 30 道 BAT 大厂面试高频特色算法题,重点讲解面试的必考知识点,教学风格通俗易懂,零基础的同学也可以听。录播、直播、线上答疑相结合,配合小测试和课后作业,保证教学效果。

主讲老师是覃超,他曾担任 Facebook 多年面试官,作为 Facebook Messenger Tech Lead,主导和参与了 Facebook App、Facebook Messenger、Facebook Phone 等产品的研发工作。离开Facebook以后,他与极客大学合作,亲自授课,传授大厂面试经验。通过覃超老师指导的学员,很多都拿到了硅谷公司以及国内顶级互联网公司 Offer。

除了视频讲座,每天还会有来自一线互联网企业的助教老师在群内答疑,并配备专属班主任全程带班,召开班会,帮助大家结成学习伙伴,互相监督鼓励。课程结束后,还有学习资料可以领取。

这样规格的7天讲座,仅象征性收费 9.9元。微信扫描下方二维码,即可报名,只有 100 个名额哦。

资讯

1、平流层飞船

美国一家私人公司提出了"平流层飞船"计划,让游客乘坐飞船上升到平流层(距离地面30公里),体验一下太空的感觉,票价预计为每人12.5万美元。飞船可以乘坐八名乘客和一名飞行员,先进行长达两个小时的上升,然后在空中停留两个小时,最后再花两个小时下降。

飞船的上升动力,主要来自一个巨大的充满氢气的气球。飞船内部有酒吧,还有一个"拥有世界上最佳视野"的厕所,甚至有 Wifi。该公司计划飞船在2024年完工,目前已经在官网接受预订。

2、AI 海滩救生系统

夏季的海滩有很多人,如果发生溺水,不容易发现。为了帮助救生员尽快发现溺水者,以色列创业公司 Sightbit 开发了一套 AI 溺水救生系统,使用摄像头自动侦测溺水者,还能发现无人看管的孩子和异常的水流。

该系统接受了"成千上万张照片"的训练,只要三个摄像头,就能监控300米的海岸线。它会自动识别游泳者,一旦发现危险,就会出现闪烁框,救生员可以单击警报,放大查看。

3、加州大学旧金山分校支付赎金

6月1日,加州大学旧金山分校(UCSF)的电脑中毒,出现了上图的对话框,要求支付赎金,才能继续使用电脑。

旧金山分校立刻根据留下的 Email 地址,与黑客取得联系。黑客要求支付赎金300万美元,旧金山分校说新冠病毒使得学校财务很困难,希望只支付78万美元。最后,双方讨价还价,黑客同意了114万美元的赎金。第二天,旧金山大学就将116.4个比特币转移到了对方的电子钱包,然后就得到了解密软件。

4、自动结算的购物车

合肥某超市出现了带有自助结算装置的购物车。消费者从货架取完商品后,使用该装置扫描二维码,然后手机付款,就完成了整个自助结算的过程。

这个装置可能不容易推广。它最大的问题是,购物车需要经常充电,而且容易遭到破坏或偷窃,一旦被人拿走,超市会有较大的损失。

5、宝马汽车的付费加热座椅

德国宝马汽车公司最近发布了新的汽车操作系统,最引人注目的是将许多汽车功能做进了系统,让它们都变成了软件服务,像自动导航、自动远光灯、甚至加热座椅都变成了软件控制。

新的系统还带有收费设置,这意味着,这些服务都可以改成按小时收费,付款后才能开启。以后,你可能需要按月购买服务包(service pack),才能使用汽车的某些功能,比如冬季购买加热座椅服务,夜里购买自动远光灯服务。

6、一句话消息

  • 科学家在海拔6700米的安第斯山脉的山顶,发现了老鼠。这是已知生活区域最高的哺乳动物。这些老鼠吃什么,目前还是一个迷,那个高度没有植物,氧气只有海平面的一半。

  • 小米申请了滑动相机专利,手机背面设置一个滑动条,上面装了三个摄像头。要用前置摄像头时,滑动条会自动滑出,这样手机正面就可以实现全面屏。

  • 英国科学家发表研究成果,每天盯着红光看几分钟,有助于防止老年人视力下降。

  • 推特工程部门宣布,开始替换带有歧视性的软件术语,比如"黑名单"(blacklist)改为"拒绝名单"(denylist),"白名单"改为"允许名单"(allowlist)。

  • 中国电子书厂商 Onyx 拒绝发布设备源码,那是根据 Linux 内核改的,明显违反了 GPL 许可证。Reddit 社区正在讨论,开源软件有没有办法在中国维权。

文章

1、Vim 的由来(英文)

Vim 有30多年历史,目前依然是最流行的编辑器之一。本文简要地回顾了历史,它的一些主要的设计决定,到底是怎么来的。

2、史上最难的定位挑战(英文)

一个推特用户发了一张照片,空荡荡的蓝天上有一架飞机。他给出了三个已知条件,本文分析如何根据下面三个条件,定位他在哪里拍这张照片。

  • 天空中的飞机是从伦敦飞往香港的波音747。
  • 该照片拍摄于2019年10月30日。
  • 拍摄者在旅馆里。

3、Makefile 的静态网站实现(英文)

现在有各种各样的静态网站工具,比如 Jekyll 和 Hugo 等。作者提出,Makefile 也可以用来实现静态网站,这样就不需要任何外部工具了,只维护一个 Makefile 配置文件即可。

4、哈希算法的种类(英文)

这篇文章用相对通俗的语言,介绍了目前常用的几种哈希算法,以及它们各自适用的场景。

5、React Hooks 的常见的错误写法(英文)

Hooks 是前端框架 React 现在主推的写法,它很灵活,但也很容易误用。本文作者总结了四个错误写法,虽然能够运行,但是不应该这样写。

6、字体反爬的攻与防(中文)

作者因为业务原因需要爬取一批斗鱼主播的相关数据,结果发现斗鱼使用了一种很有意思的反爬技术:字体反爬。

7、分页查询不要使用 OFFSET 和 LIMIT 语法(英文)

数据查询时,如果数据多,就需要分页,一般使用 OFFSET 和 LIMIT 语法。这篇文章提出,这样做不好,耗费资源,有性能问题。

8、写给 JavaScript 程序员的 Rust 教程(英文)

一组系列文章,使用 JavaScript 作为例子,介绍 Rust 语言。

9、Git 多行提交信息的简单方法(英文)

git commit命令的-m参数用来指定提交信息,但是这样提交的信息只有一行。本文介绍实现多行信息的简单方法。

工具

1、ward

一个简单的服务器监控的仪表盘,基于 Java。

2、httpsproxy2http

一个开源的反向代理服务器,以 Docker 镜像形式发布,提供 HTTP 到 HTTPS 的反向代理服务,可以把不加密的 HTTP 网站代理成加密的 HTTPS 网站。

3、jsonbase

一个 JavaScript 数据库,后端数据都存成 JSON 格式文件,可以用来学习怎么自己实现关系型数据库。

4、guietta

一个 Python 工具,用来生成简单的图形界面。

5、UIkit

一个前端 Web 组件库,不依赖任何框架,组件类型多、功能强。

6、Zettlr

一个桌面 Markdown 编辑器,界面美观。

7、Reabble

Kindle 等电子书阅读器的 RSS 推送服务,绑定 Inoreader 帐号。(@weijarz 投稿)

8、Midway Serverless

阿里发布的 Node.js 的 Serverless 框架,帮助 Node.js 开发人员迁移到云端 Serverless 平台。(@czy88840616 投稿)

9、gitqlite

使用 SQL 语法查询 Git 仓库的工具,比如SELECT * FROM commits

10、honkit

GitBook 官方不再维护开源版本后,其他人分叉继续开发的版本。

资源

1、微软学习 TV

微软官方的学习视频中心,有各种教程。

2、aww rated

这是一个Netflix 评价网站,通过抓取 IMDb、metacritic、烂番茄、豆瓣等评分网站的数据,列出 Netflix 各种节目的评分。

3、Go 语言编程

英文的免费电子书,DigitalOcean 发布的。

4、Just JavaScript 课程

著名程序员 Dan Abramov 正在撰写的 JavaScript 教程,他还没有写完。只要在上面网址报名,每写好一部分就会通过邮件发给你。(@hacker0limbo 投稿)

5、webRTC 执行流程演示

这个网页演示和讲解,如何在无后端的情况下,通过 webRTC 建立双方的实时视频通话。(@nashaofu 投稿)

6、Raft 共识的动画讲解

通过一步步的动画,讲解 Raft 协议如何保证分布式集群的一致性,以及选举 leader 的过程。(@wzxJayce 投稿)

图片

1、盲文的由来

1786年,法国人 Valentin Haüy 发明了第一本凸起字母书,盲人和弱视的人通过触摸读书。

1831年,美国人塞缪尔·豪(Samuel Howe)的美国人受到浮雕字母的启发,发明了一种新的字体,更容易触摸识别,称为波士顿字型。

1932年,六个点的布莱叶盲文,成为国际标准,取代了具体的字母。

2、漫长的雨

《漫长的雨》(The long rain,中译全文)是美国科幻小说作家雷·布拉德伯里(Ray Bradbury)1950年发表的一篇短篇小说。

它讲述四个宇航员因为火箭失事,来到一个不停下雨的星球。这个星球永远在下瓢泼大雨,过去10年一秒都没有停过。宇航员冒着雨水,在丛林里面穿行,拼命寻找前人修建的"阳光穹顶",那里是一个大屋顶,有温暖的人造阳光,以及充足的食物和休息的场所。

小说的开头是这样的:

"大雨,永远的雨,升腾着汗水和蒸汽的雨。这是密集的瓢泼大雨,像鞭子一样打在眼睛上,飞溅到脚踝上。它是一场淹没其他所有雨水的雨,让人遗忘所有关于雨水的记忆。"

文摘

1、克拉马托尔核事故

1989年,乌克兰克拉马托尔市 Hvardiytsiv Kantemyrivtsiv 大街7号公寓大楼的居民,向有关部门要求,立即检查该栋大楼是否存在核辐射。1980年到1989年,该楼前后有4人死于白血病。

检查发现,该楼的核辐射极高。最后确认,在85号和52号房间之间的那堵墙壁里面,有一个具有高度放射性的铯-137胶囊。

9年前,这个胶囊在一个采石场丢失,始终没有找到。现在人们知道了,这个丢失的胶囊混在石料里面,做成了混凝土,砌进了这堵墙。

九年的时间里面,两个家庭就在这堵墙旁边生活,其中有一个家庭的孩子的床就放在放射源旁边。事后统计,一共有17个人受到了严重的核辐射。

最终,这堵墙被拆除,铯胶囊由核研究所取出,并进行处置。

2、Linus 不再编程了

2020年5月,Linux 基金会一年一度的峰会上,Linux 创始人莱纳斯·托瓦尔兹(Linus Torvalds)与 VMware 公司副总裁兼首席开源官 Dirk Hohndel 进行了对话。

Dirk Hohndel 问 Linus,现在的工作流程是怎样的。

Linus 说,我现在整天就是读 Email,写 Email,再也不编程了。

我现在写的大部分代码,都是在 Email 里面。某人给我发来一个补丁,或者一个 Pull Request,或者跟我讨论,我就写一段伪代码,不编译也不测试,发给对方看,然后在邮件里加上一句"我觉得应该这么写"。

我现在就干这些事,我不再是程序员了。

我每天读的 Email,要比写的多得多。 因为我的工作说到底,就是拒绝其他人的代码。总是需要有一个人来拒绝其他人,其他开发者知道代码写得不好,会被我拒绝,就会更小心。为了能够有说服力地拒绝他人,我不得不知道事情的前因后果,否则我就不称职了。所以基本上,我的所有时间都用来读其他人的 Email,必须知道他们在干嘛......这工作很有意思,但是你不得不把大部分时间用来读 Email。

对于开发者,我希望大家不仅只是写出好的代码,还必须很善于解释自己的代码。代码的提交信息,对我来说,几乎跟代码本身一样重要。有时,代码的意图非常明显,不需要解释,但是这种情况极其少。我对开发者的一个希望就是,能够更好地解释他们的代码是干嘛的,为什么需要变更以前的代码。这样的话,我管理起来就比较容易,如果你能够解释清楚,我就能信任这些代码。

开源软件的一大部分其实是交流,而交流包括提交信息,也包括来来回回的 Email。告诉别人你想做什么,为什么原来的代码你觉得要改,真的是非常重要的一件事。

言论

1、

看到抽象的东西,应该尽量使它变得具体;看到具体的东西,应该尽量使它变得抽象。

-- 李敖

2、

创业公司不要专注于创造产品,而要专注于解决问题。

-- 《创业公司要创造客户不期望的产品》

3、

创新型的创业公司,一开始的目标用户应该是对新产品最有兴趣的那2%的人群,并设法与剩下的那 98%的人建立一座桥梁,把那些人推向未来。

-- 《创业公司要创造客户不期望的产品》

4、

NPM 现在有130万个软件包,绝大部分都不是长期维护的。即使你找到一个长期维护的软件包,它可能会有10层或更多的依赖,涉及其他数百个包,你根本不可能每一个都去验证。

-- 《NPM 生态系统令人担忧》

5、

自从第一款游戏机问世,此后的每一款游戏机都出现了盗版。但是,这种情况已经结束了,Xbox One 和 PS4 已经上市了将近6年,没有任何黑客能够破解它们实现盗版游戏。这是游戏机历史上第一次持续了如此长的时间,没有出现破解和盗版。

-- Hacker News 读者

回顾

2019年的本周(第 64 期):新人如何进入互联网行业?

2018年的本周(第 12 期):政府无法保障养老,必须靠自己

订阅

这个周刊每周五发布,同步更新在阮一峰的网络日志微信公众号

微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年7月10日

科技爱好者周刊(第 116 期):世界的未来是一个火药桶

$
0
0

这里记录每周值得分享的科技内容,周五发布。

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。

周刊讨论区的帖子《谁在招人?》,提供大量就业信息,欢迎访问或发布工作/实习岗位。

刊首图

7月12日凌晨,哈尔滨医生、天文摄影爱好者姜雪鹏拍到了 C/2020F3 彗星。他表示这颗彗星特别明亮,北半球已经好多年没有见到这么亮的彗星了。该彗星大约在北京时间凌晨4点出现北半球东北方仰角15度的方向,持续5到10分钟。

本周话题:世界的未来是一个火药桶

卡森·布洛克(Carson Block)是一个美国人,今年43岁。

2007年,他搬到上海,发现很多中国公司财务造假。他就开了一家咨询公司,根据成语"浑水摸鱼"起名为"浑水投资",专门做空财务造假的中国公司。瑞幸咖啡就是他揭露的。

最近,他接受采访,说现在的美国经济就像"一个巨大的、打破历史记录的火药桶"。

他的意思是,美国无限制地发行货币来挽救经济,结果钱都流入了股市,股市创出新高,好像疫情根本不存在。未来一定会出现大幅度的货币贬值,造成可怕的后果。

我心想中国不也是这样吗。国内 A 股大涨,原因也是资金太宽松。没有实体经济的支持,股市房市这样上涨,就不担心出现货币贬值吗。

有一个朋友总在说,你最应该做的事情就是买房,而且是贷款买房,最近他又开始说了。理由是现在一个月还贷一万元,好像很多钱的样子;但过了20年,你还是每月还贷一万元,那时由于货币贬值,这点钱已经不足挂齿了。只要货币一直在贬值,而房子不贬值(通常如此),那么银行贷款就是对你的补助。

每当这种时候,我就觉得,经济学毫无用处。有了那么多经济学家,经济危机照样发生;明知货币贬值会严重伤害那些依靠养老金生活的人,货币贬值照样发生。

实体经济遭遇严重困难,金融资产价格高高在上,货币贬值不可避免。世界的未来会怎样?卡森·布洛克说了,一个火药桶。

数据分析学习资料

现在是互联网时代,业务产生的数据越来越多。数据分析正成为日常工作必备的技能,相关的招聘岗位不断增加,企业日益重视。

数据分析可以分成两个层次。(1)基础层:发现数据包含的趋势,对产品经理和业务人员比较有用。(2)进阶层:运用数据去构造模型,再用来处理新的数据,对算法人员和开发者比较有用。

这两个层次都有一些需要掌握的基本技能。

  • Python 语言:数据处理的基本语法。
  • 科学计算库:pandas、matplotlib、scikit-learn 等,提供封装好的各种数学工具。
  • SQL 和 Mysql:数据查询语法和储存引擎。
  • Hive:海量数据分析工具,可以进行分布式数据处理。

上面的每种技能,都包括许多内容,初学者学习其中任何一种,都需要付出巨大的投入。

开课吧为周刊读者提供了一份详细的 《数据分析知识速查表》,使用高清图表的形式,列出上面四种技能的学习路径、详细知识点和知识脉络,便于理解和融会贯通。

同时,还会赠送数字版的《数据科学技能树》海报,适合打印出来张贴。

只要扫描下面的二维码,添加助理老师,就可以免费领取。

资讯

1、视频会议的画面布局

视频会议软件 Zoom 的画面布局,是所有人平均分配屏幕空间。日本很多用户感到不习惯,纷纷向 Zoom 反馈,上下级的头像一样大,搞不清楚谁是领导,不好区分地位级别,希望能更改界面。日本网友就画出了下面的屏幕布局,这才是日本企业想要的界面吧。

2、锂电池的环境威胁

电动汽车正在淘汰燃油车,造成了锂电池的巨大需求。联合国贸发会议(UNCTAD)最近呼吁全社会关注,锂电池原料的开采对环境破坏巨大,需要寻找替代品。

锂电池原料高度集中在少数几个国家。锂主要来自智利的一个干旱沙漠地区,开采消耗了当地65%的水,造成环境退化、景观破坏、土壤污染,地下水枯竭,迫使农户和牧民放弃祖传定居点迁移。钴元素主要来自刚果民主共和国(DRC),那里都是手工采矿的小作坊,效率低下,破坏环境,多达4万名童工在地下危险的矿井中工作。

3、MEMS 扬声器

美国一家创业公司宣布,已经造出了世界首个 MEMS 扬声器成品,预计明年春季可以量产。MEMS 扬声器采用全新的发声原理,可能会颠覆扬声器市场。

传统的扬声器采用电磁原理,电流变化引起线圈振动发声。MEMS 扬声器采用硅材料做成的压电薄膜,通过电压变化,引起薄膜的形变,扰动周围空气,由此产生声波。这种扬声器可以做成 4mm x 4mm 的大小,能够集成到耳机、耳戴式设备和助听器中。

4、保加利亚的悲惨现状

1988年,保加利亚人口达到890万的顶峰,现在只剩下690万人。不到三十年,人口下降了惊人的22.5%,是世界人口萎缩最多的国家。根据预测,该国人口还会持续减少,2050年将只剩下500多万人。

人口减少的主要原因是移民。2007年保加利亚加入欧盟,公民可以在欧洲自由迁移,每年都有好几万人移居国外,过去十年的外流人口接近人口总数的10%。保加利亚的社会状况也非常糟糕,人均寿命(74.9岁)是欧盟最低的,婴儿死亡率跟罗马尼亚并列欧洲最高,年轻人不愿意生孩子。

5、快舟十一号火箭发射失利

7月10日,中国固体运载火箭快舟十一号首次发射失利。这是中国2020年第16次火箭发射,也是今年的第三次发射失败。该火箭上面携带了哔哩哔哩网站的遥感科普卫星,也同时报销。

该火箭的最大亮点,就是使用固体燃料,而不是传统的液体燃料。由于固体燃料稳定性高,可以长期保存,所以发射机动性高,不需要发射架,可以在移动车辆上发射,因此,大幅降低了发射成本。另一方面,它跟导弹车的发射技术是一样的。

它的每公斤发射费用降到7万人民币左右,每次发射费用约7000万人民币,只是液态燃料火箭的几分之一。中国航天科工集团开发这款火箭,就是作为低成本商业发射的解决方案。

6、一句话消息

  • 荷兰政府宣布,公民身份证将不再注明性别,因为性别属于"非必要信息"。

  • Nvidia 已经超过英特尔,成为美国市值最高的芯片公司。它没有自己的工厂,只是一家芯片设计公司,生产外包给台积电。英特尔有自己的工厂,但工艺不如台积电,业绩受到拖累。台积电不生产自己的芯片,只实现别人的设计,现在是世界市值最大半导体公司。

  • 芝加哥市在从7月4日开始的独立日周末,一共发生了80多起枪击案,17人死亡。

  • 科学家发现第一种食用金属的细菌。该细菌利用金属锰将二氧化碳转化为有机物,产生热量。

文章

1、6个最常见的网页可访问性问题(英文)

可访问性(accessibility)指的是,网页对生理缺陷的用户是否友好。本文总结了6个最常见的可访问性问题及其解决方法,比如上图是文字对比度不够,导致弱视用户阅读困难。

2、Shell 脚本如何输出帮助信息?(英文)

作者展示了一个技巧,将帮助信息写在 Bash 脚本脚本的头部,然后只要执行"脚本名 + help",就能输出这段帮助信息。

3、GitHub 的个人描述页怎么实现?(英文)

GitHub 最近改版以后,允许个人页面使用 Git 代码库定制,而且还允许插入外部图片,这意味着会出现很多有趣的玩法。这篇文章就教你怎么用外部图片,反映个人动态。

还有人用 GitHub Actions 每天自动跑代码,生成个人描述文件,让主页自动更新。这个更酷,也很实用。

4、如何使用 S3 + CloudFront 托管静态资源(英文)

网页加载时,只要不是服务器动态生成的内容,都属于静态资源。由于静态资源不用动态生成,所以可以发到 CDN 加快网页加载。本文介绍如何通过亚马逊网络服务的 S3 + CloudFront 实现一个自己的 CDN,分发静态资源。

5、伪随机数生成器(英文)

伪随机数指的是通过一种算法,由种子值得到的随机数。本文介绍了几种简单的伪随机数算法。

6、自动生成 JSX 代码的 AI 模型(英文)

有人在推特演示了一个不可思议的 AI 模型,你只要用文字描述页面布局,模型就会自动生成 React 的 JSX 代码。

7、75行代码入门 WebGL(英文)

WebGL 是浏览器对 OpenGL API 的调用接口,可以在浏览器里面实现 3D 动画。本文用一个简短的例子,介绍了这个 API。这只是一篇简介,另有完整的 WebGL 教程

8、为什么我停止使用 Redux(英文)

作者认为,Redux 被赋予了太多的使命,变成了一个全面的解决方案,导致越来越复杂和难用。他介绍了两个简单的替代库。

工具

1、Brython

一个使用 Python 写网页脚本的库,让你直接用 Python 操作网页 DOM,不需要用到 JavaScript。

2、icdiff

一个命令行的彩色 diff 工具。

3、EasyOCR

一个开源的 OCR 软件,支持识别40种语言,包括中日韩文字。

4、RediSearch

以 Redis 作为后端的全文搜索引擎,支持中文。

5、XP-Paint

Windows 画板程序的浏览器实现。

6、MonitorControl

Mac 电脑小工具,可以在系统菜单栏显示亮度、对比度、音量滑块。

7、Rome

Babel 和 Yarn 作者推出的新工具,目标是将所有 JavaScript 开发工具集中在一个软件包里面,取代 ESLint、Babel、Webpack、Prettier 等。整个软件包没有任何依赖,即每一个功能都完全从零实现。

8、WhereMyLife

一个 Kindle 订阅 RSS 的推送服务,所有功能完全免费。(@Bin-Huang 投稿)

9、hugo-leetcode-dashboard

一个将个人的 LeetCode 答题记录汇总的工具,展示题号、题目、你的解答、 题目通过率等,然后一键生成一个 Hugo 网站。(@lryong 投稿)

10、钉钉的非官方 Linux 版

钉钉官方没有提供 Linux 版,作者用 Electron 和钉钉网页版打包了一个。(@nashaofu 投稿)

资源

1、Project Audio for GitHub

一个将 GitHub 事件(提交、PR、issue)转成声音的网站,让你可以听到 GitHub 的动态。

2、OneLook Thesaurus

英语的同义词词典,可以查询同义词,也可以根据描述返回对应的词(比如 large bird 对应哪些词),加载速度很快。

3、CRDT.tech

CRDT 是一种数据结构,用于分布式网络的数据同步,最典型的例子就是多人同时编辑文档。该网站收集了 CRDT 的相关资料。

4、Progressive App Store

一个渐进式 App 的在线商店,收集各种 Progessive App,是网友搭建的。

5、网页设计博物馆

该网站收集了1600多个经过精心挑选和分类的网页,展示了1991年至2006年之间的网站设计趋势。

6、窗口交换

该网站让世界各地的人上传他们窗外的镜像,一段5到10分钟的视频。其他用户就可以在网站上随机看到别人的窗外。

图片:幸存者公寓

原文网址:cent.com

1、

美国堪萨斯州中部,巨大的旷野之中,有一个不起眼的大门,通往一座豪华的地下公寓,称为幸存者公寓(Survival Condo),专门为富豪躲避核战争之类的世界末日而建。

2、

公寓四周有铁丝网,提供24小时的保安,防止外来者闯入。

3、

公寓大门每扇重达8吨,一共是16吨的钢板。

4、

这个地方的前身是1960年代建造的核导弹发射井,属于美国核武库的一部分。导弹井深达地下60多米,钢筋混凝土墙厚达2米多。

5、

导弹井退役以后,卖给了一家房地产开发公司,改建成了今天的幸存者公寓,一共有15层,地上只有一个圆顶,远远看上去就是一个隆出地面的小山丘。

6、

上图是改造时从上往下看的电梯井。

7、

这是当年的防爆门,通向导弹的控制室,门外就是核导弹。这些门能够承受核导弹发射时的高温高压。

8、

防爆门后面是一段通往控制室的走廊。

9、

当年绝密的核导弹发射控制室,可以容纳6人,24小时永远有人值班。

10、

改建以后,导弹井变成了一栋公寓楼,分成多套公寓,对外出售。每套公寓都有自己的停车位,方便外出。

11、

公寓设有应急物资供应室,提供各种紧急情况下所需的物质,包括迷彩装备、头盔等。

12、

公寓还设置了枪械室,提供功能齐全的枪支,供居民用来防身。

13、

医疗区可以进行简单的手术,并且配备了足够七年使用的药品。

14、

食品室提供各种各样的食品,从冷冻黑莓到炒鸡蛋,所有食品的保存时间长达35年。

15、

最令人吃惊的是,公寓还设置了全尺寸游泳池,可以自动补充水并对其进行消毒,甚至还配备水滑梯。

16、

电影院可以播放2,000部精选电影。

17、

公寓最底层是图书馆和教室。

18、

公寓内部提供了现代住宅的所有便利,厨房配备了全新的电器,以及触摸屏控制的灯光和暖气。

19、

房间墙上有电视屏幕,可以通过摄像头看到外面的世界。

20、

每套公寓都有宽敞的客厅。

21、

房间的窗口都是电视屏幕。

文摘

1、座椅面料的秘密科学

乘坐公共交通工具(地铁、公共汽车、电车、火车)时,人们通常不会对座椅面料留下印象,那只是一块不好看、也不十分干净的纺织品而已。

但是,座椅面料其实大有学问。

首先,它必须经久耐用,因为每个座椅每天都有很多人坐。它必须用上几年,而不会有大的磨损。

其次,它必须易于清洁,能够抵抗或掩盖各种污渍。而且,它也必须看上去不十分脏,让人们坐得下去。

最后,可能是最重要的一点。它必须安全,不能着火、冒烟和闷烧,这些可能都会造成致命后果,尤其是在通风不良的地下几十米的地铁。

幸运的是,人们真的找到了这样一种材料。大多数欧美国家的公共交通工具都采用一种叫做 Moquette(法语为"地毯"的意思)的面料。这是一种羊毛和短绒棉的混合织物。

羊毛是天然的阻燃剂,绒毛织物的特殊织法(下图)又比平织布具有更高的耐用性。

由于这种面料没有平坦的表面,所以可以抵抗污渍,也可以隐藏掉其中的小颗粒。它的表面还可以加上各种涂层,确保符合安全标准,并且可以定期进行大力清洗。另外,它还具有柔软的质感和触感,并可以织出复杂的图案。

2、工作狂与拖延症

2015年,我在耶路撒冷的一家创业公司工作。每天6点起床,9点到公司上班,下午5点下班。

那年9月,我第一次出国旅行,去了意大利,为期2周。我从此迷上了旅行,每天想的就是下一次旅行,几乎每个月都出行。

有一天,我看到一篇数字游民和远程工作的博客文章。我对自己说:"这就是我想要的!"几个月后,我在网上找了第一份远程工作,然后申请了为期3个月的东南亚签证。

2016年9月,在第一次旅行的一年后,我去了泰国,远程工作,享受海滩,喝新鲜的椰子水。"努力工作,努力玩乐",这是数字游民的口号。每天没有固定的日程,可以灵活安排。

2017年2月,我回到了耶路撒冷看望我的家人,并计划下一步行动。

突然之间,没有了热带海滩、聚会,陌生朋友,我有了很多空闲时间,不知道该怎么办。我就和一个朋友创建了一个外包 Web 开发公司,将所有时间用来创业,每周工作7天,每天工作14小时,成为了工作狂。

我希望通过创建一个成功的企业,有办法离开这个城市,搬到其他地方继续过天堂般的生活。

经过筋疲力尽的3个月,我意识到工作狂的生活不是我想要的,不喜欢现在的生活方式。我问自己,为了未来的快乐,是否今天就值得整日工作,过着悲惨的生活?

这使我想到了另一个更本质的问题: 如果我不喜欢实现梦想和目标的这个过程,那么追求梦想和目标的结果是否有意义?

我对这个问题没有明确的答案,然后,我就慢慢产生了拖延症。一方面,我仍然想要实现我的目标,另一方面,实现目标的过程让我感觉不到快乐,我就拖拖拉拉,没有努力工作。

言论与数字

1、

如果你花钱买,你就是客户,如果你免费获得,你就是产品。

-- 《创业公司尝试搜索引擎的订阅模式》

2、

40年前算法很重要,大部分程序员都需要懂,因为硬件差,必须靠算法保证性能。

但是今天只剩下不到1%的程序员直接跟算法打交道,其他人都使用现成的软件包,或从大公司购买算法,算法已成为一种商品,普通程序员不再需要自己生产了,也不需要有很深入的了解。

-- 《算法现在是商品》

3、

本站100%无 JavaScript。

-- swiftbysundell.com

4、

73%的受访者认为,一周最有效率的工作日是周二。所有受访者都认为,最没有效率的工作日是周五。

-- 一项对美国人事经理的调查

5、

我希望 JavaScript 程序员、Java 程序员、PHP 程序员、Perl 程序员、Python 程序员、C 程序员、C ++ 程序员、以及其他重要语言的程序员,大家聚在一起开个会,一劳永逸地提出一个大家都遵守的解决方案,我们应该如何处理时间和日期。我厌倦了每个语言都有自己一套处理时间和日期的方法。

-- 《JavaScript 语言准备提出新的时间和日期 API》

6、

许多 AI 研究人员追求的目标是开发与人类智能原理相同的人工智能,但是这永远不可能实现,因为人的思维基本上没有算法。

--《为什么将无法实现通用人工智能》

回顾

2019年的本周(第 65 期):周刊开设"谁在招人"的招聘服务

2018年的本周(第 13 期):周刊为什么只谈技术?

订阅

这个周刊每周五发布,同步更新在阮一峰的网络日志微信公众号

微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年7月17日

苹果放弃英特尔芯片,为什么会打击美国计算机产业?

$
0
0

今年6月22日,苹果公司在一年一度的全球开发者大会 WWDC 上,宣布彻底放弃英特尔公司(Intel)的 CPU,改用自己设计的 ARM 芯片。

上一篇文章已经分析过了,苹果为什么要这样做。主要原因是,整个苹果战略是围绕移动端(iPhone)构建的,它现在想把移动端和桌面端合成一个生态,自己完全控制所有硬件和软件,不愿再让 CPU 这样的核心部件受制于英特尔了。

今天接着往下谈,这个"换芯"决定有什么后果。

表面上看,这是苹果公司的"家务事",但是实际上牵动各方的利益,产生一系列的连锁反应,动摇长久以来主导行业的 Wintel 联盟,甚至会影响到美国的竞争优势。

一、英特尔的反应

苹果宣布换芯以后,英特尔仅仅发了一个简短的声明

"苹果公司与我们有多个业务领域的合作,我们将继续为他们提供支持。......我们相信,基于 Intel 的 PC 将为全球客户提供最佳的体验。"

言下之意,这只是一件小事,不用大惊小怪。市场似乎也同意这种观点,英特尔股价当天小幅下跌,没过几天又涨回去了。

为什么英特尔觉得影响不大?

因为它的利润主要来自服务器 CPU,2019年占到利润总额的一半。个人电脑 CPU 的利润只占到三分之一,而 MacOS 只占全世界桌面操作系统市场的17%,这样一算,失去苹果公司这个大客户,利润只会损失5%左右,甚至还不到(因为苹果是大客户采购,把价格压得很低),确实影响不大。

但是,这种计算是静态的,没有考虑市场未来的变化。

二、Mac 电脑的未来

现在的局面是,MacOS 和 Windows 统治了桌面操作系统。MacOS 在专业用户(比如程序员和设计师)中比较流行,Windows 在大众用户中比较流行。

Mac 电脑的 CPU 改成 ARM 架构以后,估计有以下几个提升。

  • 体积更加轻便。
  • 续航时间进一步延长。
  • 与移动设备(iPhone 和 iPad)融为一体。手机 App 可以直接在桌面电脑运行,产生更多意想不到的玩法。

这几个提升都有助于提高市场份额。唯一的缺点是,ARM 架构的 CPU 性能不如 x86,Mac 电脑的性能可能因此有所下降。

但是,对于普通用户来说,电脑性能只有游戏时才重要,日常使用是察觉不到的。Mac 电脑本来就不受游戏公司的青睐,游戏市场份额几乎是零。所以,Mac 的性能下降应该对总体销售没有影响,只影响少数高端的专业用户。

综上所述,Mac 换芯会促进销售,进一步扩张市场份额,对 Windows 形成压力。

三、Wintel 联盟

Windows 从诞生的第一天,就跟英特尔公司的 x86 芯片绑在一起。

1980年,IBM 公司推出自家的个人电脑时,做出了两个历史性的决定。第一个是操作系统外包给微软公司的 MS-DOS 系统(Windows 的前身),第二个是 CPU 采用英特尔的8088芯片。

8088的上一版就是8086芯片,英特尔因为8086芯片创造了一套新的指令集,后来基于这套指令集,又开发了286芯片、386芯片、486芯片......所有基于这套指令集的芯片,就都统称属于 x86 架构。

IBM 当年选中英特尔的8088芯片,有一个附加条件,那就是 x86 芯片必须有第二家生产商,不能一家垄断。英特尔只好选了一家叫做 AMD 的小公司,把 x86 指令集授权给它。直到今天,x86 的生产商还是只有英特尔和 AMD 两家。

IBM 的那两个决定,后来被评价为历史上最愚蠢的商业决定之一,没有成就它自己,而是成就了微软和英特尔,使得它们成为个人电脑时代的两大赢家,称霸操作系统和处理器领域。它们连在一起,就被称为 Wintel 联盟。

四、微软的 ARM 尝试

移动设备的出现,动摇了微软和英特尔的霸主地位。因为移动设备芯片必须耗电少、发热小、成本低,这些条件只有 ARM 架构才能满足, x86 架构全部不具备。

微软由于跟英特尔绑在一起,所以这两家公司一起被淘汰出移动设备市场,一点市场份额都没有拿到。微软看到这种苗头,从很早开始,就想着支持其他的 CPU 架构。

1996年,微软发布 Windows CE ,支持嵌入式系统。这是微软自从跟英特尔合作后,第一次支持非 x86 的架构。Windows CE 第一版只支持 MIPS 架构,第二版开始支持 ARM 架构。

2000年,Windows CE 升级成 Windows Mobile,作为微软的掌上电脑解决方案。

2010年,为了跟 iPhone 和安卓抗衡,Windows Mobile 升级成了 Windows Phone,用户界面和应用程序格式完全改变。

这几个系统都是微软为 ARM 架构开发的,虽然名字里面有 Windows,但是其实跟 Windows 没关系,只是界面比较相似而已,所有 x86 的应用程序都无法在上面运行,必须为这些系统单独开发。

它们都没有成功,微软在智能手机市场一败涂地,Windows Phone 很快就消失得无影无踪。微软不甘心这样退出,于是改变策略,开始考虑让 Windows 真正移植到 ARM 架构。

2012年,微软宣布" Windows on ARM"项目,正式名称为 Windows RT,并在第一代 Surface 平板电脑首发。

Windows RT 虽然基于 Windows 8,但是应用程序不通用,只能安装应用商店里面官方的少数几个应用程序,用户大失所望。

2015年,随着 Windows 8 升级到 Windows 10,微软又发布 Windows 10 移动版,开始让 Windows 10 适配 ARM 架构的手机。

Windows 10 移动版支持 Win32 API,但还是不能直接运行 x86 程序,需要重新开发一下。这个系统很快也失败了。

2019年,微软发布了 Surface Pro X 平板电脑,这是第一台真正可以跑 Windows 10 家庭版的 ARM 笔记本。这时距离微软第一次为 ARM 架构开发软件,已经过去了20多年。

微软为这台电脑提供了一个 x86 模拟环境,通过翻译层可以直接运行32位的 Windows 桌面软件,但还是不支持64位的桌面软件。更糟的是,模拟环境里面运行的程序,性能都不好,几乎没法用于实际工作。这台平板的高端型号售价一万多元人民币,唯一优点就是便携(ARM 的特性),实用性还不如一台几千块的 x86 架构笔记本,市场反响平平。

通过上面漫长的历史回顾,可以看到,微软其实一直想适配 ARM 架构,无奈迄今为止所有尝试都不成功。但是,它已经距离在 ARM 上顺畅运行 Windows 系统的最终目标越来越接近了。

值得一提的是,苹果在 WWDC 大会上演示 ARM 架构时,用的示例软件就是微软的 Office 办公套件。

微软已经丢失了手机市场,在服务器市场的份额非常微小,如果再输掉桌面市场,公司前景就很不妙。所以可以预言,为了不让 Mac 电脑抢走桌面市场份额,微软一定会奋起反击,继续适配 ARM 架构,最终实现 Windows 可以同时支持 x86 和 ARM 两种架构。

五、英特尔的 ARM 烦恼

如果苹果开始提供质量更好、功能更多的 ARM 笔记本和台式机,微软继续完善 ARM 版本的 Windows 系统,众多的硬件厂商(惠普、戴尔、联想、华硕......)纷纷跟进,发布不同品牌的 ARM 桌面电脑,那么消费者在 x86 和 ARM 之间会怎么选择?

到了那个时候,对于普通消费者来说,可能除了游戏专用电脑,其他场景下 ARM 架构都是比 x86 更好的选择。

如果那样的话,英特尔公司就真的有大麻烦了。

英特尔不是一家单纯的芯片设计公司,它还有自己的芯片工厂。所有的英特尔芯片,都是自家工厂生产的。如果大众市场转向 ARM 芯片,x86 芯片销量大减,那么英特尔的工厂就会产能过剩。

那时,英特尔的管理层除了设法保住 x86 的销量,还不得不考虑一个令人烦恼的问题了:为了赚更多的钱,要不要也让自家工厂生产 ARM 芯片?

21世纪的头几年,英特尔曾经购买过 ARM 指令集的授权,推出了名为 XScale 的一系列 ARM 芯片。后来,英特尔的高层觉得 ARM 直接威胁 x86 的高利润,ARM 越成功,x86 就越危险。2006年,英特尔就把 XScale 产品线卖掉了。

现在,英特尔又面临着同样的难题:支持 ARM,会进一步打击自家的 x86;不支持 ARM,会错过下一波的市场浪潮,丢失获利机会。

六、美国计算机产业的外流

英特尔工厂是美国境内最先进的半导体工厂,如果它继续抵制 ARM(考虑到英特尔保守的经营风格,几乎必然如此),那么所有的 ARM 生产订单都会被海外工厂拿走。苹果的 ARM 芯片已经确定由台积电生产,高通和 Nvidia 的 ARM 芯片也是由台积电生产的。

这对美国计算机产业是非常糟糕的。美国已经失去了内存记忆体产业、磁盘产业、液晶面板产业、电子零件产业,现在就连 CPU 产业都在离开。按照现在的这种趋势,ARM 计算机的所有零件将都不在美国生产,美国将造不出 ARM 计算机,每一个零件都必须进口。

制造业的重要性在于,它会产生规模经济和大量的工程技术人才储备,会带动一个地区出现产业集群和完整的供应链。美国正是由于制造业外流,导致它没有动力更新薄弱的基础设施,以及补充数量不足的工程师。

制造业的外流,意味着一个国家正在丧失工具方面的技能。苹果公司 CEO 蒂姆·库克,曾经这样解释为什么苹果公司选择中国来制造电子产品。

关于中国的电子制造业,普遍的观念是那里劳动力成本低,所以才选择在那里建立外包工厂。我不确定他们去的是中国哪个地区,但事实是,中国早在多年前就不再是劳动力成本低的国家。从供应链的角度来看,劳动力成本并不是选择中国的原因,主要原因是中国能够提供的技能。

我们的产品需要非常先进的工具,这意味着整个配套技术都必须是最先进的。这需要很深的工具技能。在美国,你召开一次工具方面的工程师会议,我不知道能不能坐满一个会议室,但在中国,可以坐满多个足球场。

一个国家只要掌握了制造方法,哪怕只是组装方法,它就迟早会诞生自己的独立品牌,向产业链更高端的部门扩展。中国的手机产业就是一个最好的例子。以后,即使美国想重新发展制造业,也会由于成本原因而困难重重,美国的出厂价是60美元,中国的出厂价只要20美元,这就很难竞争了。

从这个角度看,ARM 设备正在崛起,而美国不生产 ARM 芯片,导致芯片产业外流加重,对美国计算机行业的长远竞争力是非常不利的。

七、半导体行业的格局

世界上的芯片公司可以分成三类。

第一类,同时设计和生产芯片,比如英特尔和三星。

第二类,只设计芯片,没有自己的工厂,生产全部外包,比如苹果、AMD 、 Nvidia、高通、华为、联发科。

第三类,没有自己的芯片,只负责生产别人设计的芯片,比如台积电、联电、中芯国际。

目前,台积电是世界最先进的芯片生产公司,拥有超过50%的市场份额。它的生产工艺现在是7纳米,已经可以做到5纳米量产,正在研发3纳米。按照市值计算,它是世界最大的半导体公司。

英特尔的生产工艺比台积电落后两代,现在是14纳米。这也是英特尔芯片表现不佳的一个重要原因。所以,尽管英特尔公司的利润超过台积电、Nvidia、AMD 的总和,但是股价增长缓慢,市值已经被 Nvidia 超过,让出了美国最大半导体公司的宝座。

台湾的半导体产业是非常强的,也许是世界最强。台积电是台湾公司,Nvidia 的 CEO 黄仁勋、AMD 的 CEO 苏姿丰、中芯国际的创始人张汝京都是台湾人,更不要说整个半导体行业有无数的台湾工程师。很多人说台湾没有石油,但是台湾有 CPU,而石油正变得不那么重要,价格已经低迷很长时间了。

苹果的换芯决定,实际上会削弱美国,而加强台湾的重要性。正在因为看到了这一点,2020年5月,美国强迫+引诱台积电在亚利桑那州建造一座新工厂,耗资120亿美元,2024年完工后将能够生产5纳米芯片。

八、总结

苹果放弃英特尔,改用 ARM 架构的 CPU,可谓"一石激起千层浪",有些长远的影响,现在还很难判断。

可以肯定的是,接下来几年,桌面电脑会有迅速的革新,引发计算机市场格局的重新洗牌,各大巨头此消彼涨。其中包含和孕育了许多新的机会,值得我们仔细观察和把握。

(正文完)

家庭保障规划咨询

本文结束之前,有一个小小的活动消息,请大家耐心地再看两分钟。

今年以来,经济形势变化很大,世界局势也很动荡,许多人的财务状况深受影响。如何才能尽可能平稳地渡过这段时期,让个人和家庭多一点保障?

经常读我公号的朋友,可能都知道我和孙明展老师一直有合作。每次他办活动,都会到我这里发一个通知。

孙明展老师是广州中山大学统计系硕士毕业,进入500强保险公司工作,设计各种保险产品,对理财这一块非常熟悉。他后来开了一家财务咨询公司,为家庭财务定制理财方案。他们开发的"谱蓝"人工智能系统,使得财务咨询服务软件化,得到过许多权威媒体的报道。

这次,孙明展老师向我的读者提供150个名额,免费赠送 价值800元 的家庭保障规划服务。

活动内容就是你跟理财师一对一的财务咨询,具体问题具体分析,包括但不限于下面几项。

  • 各个家庭成员保障状况的综合评估。
  • 保险产品的性价比分析比较。
  • 为你的家庭定制综合保障规划。

整个过程中,保证不为任何一家保险公司做广告,只提供定制方案和咨询服务。

扫码或点击这里,即可免费报名参加。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年7月22日

科技爱好者周刊(第 117 期):我不想让你记住我的脸

$
0
0

这里记录每周值得分享的科技内容,周五发布。

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。

周刊讨论区的帖子《谁在招人?》,提供大量就业信息,欢迎访问或发布工作/实习岗位。

封面图

7月10日,华为公司为喀麦隆国营电信公司 CAMTEL 建造的机房启用,造价为1700万美元,存储容量为 2,000 TB,是非洲中部最大的机房。(出处

本周话题:我不想让你记住我的脸

上海电视台最近报道:"本市徐汇区漕河泾街道的薛家宅小区,正在推行门禁系统的人脸识别。小区居民必须在指定时间,到社区办公区录入自己的脸。"

人脸识别系统将来就安装在每栋楼的门口,居民进出的时候,就识别一下。

我的第一反应是惊吓,以后每天何时到家、有没有在家过夜,有关部门就都知道了。难道上下班打卡还不够,到家也要打卡吗!

人脸识别其实不是一个普遍适用的门禁方案,局限性很大。普通摄像头的识别准确度有限,最好使用 3D 摄像头,而且很不方便,戴着墨镜、口罩、帽子,就没法识别,夜里还要必须对着人脸亮灯。

电视里说,这个项目是徐汇智慧公安项目,属于社区智能化管理和安防系统的重要组成部分,目的是提高小区安防,加强人口精细化管理。小区的党总支书记说,这可以防止陌生人和小偷入内。

但是,门禁卡不也是这个效果吗?没有门禁卡的人进不来,而且现在小区都有摄像头,何必一定要装人脸识别呢。

这个项目还有数据安全问题。人脸的数据保存在哪里呢?如果保存在云端,每次识别都要向机房发出请求,速度肯定不会特别快,还存在通信失败的可能性;如果保存在本地,小区所有居民的人脸数据,就储存在社区某台电脑的硬盘里面,这样是否安全,会不会有很大的个人信息泄漏风险?

这个项目是政府全额出资。在我看来,那些人脸识别的方案公司,才是真正的赢家,尽管方案本身有种种缺陷,但还是赚到了大笔的项目费,没准就是他们怂恿政府上马这个项目。

人脸识别是很敏感的事情,我觉得,国家应该出一个法律,规范一下。到底哪些机构、哪一级政府有权收集人脸信息?是不是任何组织都有权这么干,各种 App、楼宇的业主委员会、小学幼儿园、社区停车场等等,为了安装门禁,要收集人脸信息行不行?

更重要的是,法律应该明确一个问题:居民是否有权拒绝提供自己的人脸信息?我不想让你记住我的脸,可以吗?

TypeScript 视频教程

前端现在有一个趋势,越来越多的项目选择使用 TypeScript(简称 TS)。

简单说,TypeScript 就是在 JavaScript 的基础上,强制变量必须注明类型,使得前端脚本由动态类型变成静态类型。

静态类型语言的最大特点就是强化了编码纪律,很多错误在编译阶段就能发现,减少了线上报错,特别适合长期维护和多人合作的项目,可以提高工程质量和(长期的)工作效率。这是因为这一点,大厂和大项目往往更愿意采用它,Vue 3.0 的代码 98% 由 TypeScript 编写。

但是,由于多了一层类型规则,TypeScript 的学习成本要高于 JavaScript。很多同学觉得不适应,不容易掌握。

本周的课程资料,就是由 开课吧 提供的 0 元资料 《TypeScript视频教程》,180分钟的讲座,帮助初学者学会 TypeScript。

这套教程共分10节课,每节课10-20分钟,总长180分钟。不论是睡前、上下班还是午休,只要有一点时间,就能学完一节课。

长按或扫描下方二维码,就可以免费领取!

资讯

1、阿联酋的火星探测器

7月20日,阿拉伯联合酋长国的"希望"号火星探测器,在日本发射升空。这是阿拉伯世界的第一个航天器,已经在该国掀起了科学热潮。

2014年,阿联酋宣布将在2021年12月该国成立50岁周年之际,向火星发送一个轨道探测器。当时,这看起来像是痴人说梦,该国没有航天工业,也没有航天科学家,所有的经验只是组装过一颗卫星,工程师团队平均年龄为27岁。

阿联酋希望通过火星项目,能够引发国民对基础研究和科学课程的兴趣,激励整个阿拉伯国家的年轻人,加速该国向知识经济的转型,摆脱对石油的依赖。

2、威尼斯的海闸

威尼斯是一个海边城市,由于地面下降,经常遭到水淹。为了解决这个问题,政府想出了一个计划,在海水进入泻湖的三个入口(下图),安装了78个浮动水闸。上周,这些黄色的水闸终于完工,进行了测试。

平时,水闸都在水底,是不可见的;一旦发生大潮,水闸就会升起,挡住潮水,防止泻湖内的城市被淹。值得一提的是,这个工程整整用了15年才完工,还无法保证一定有效。

3、一日人生(2020版)

十年前的2010年7月24日,英国导演凯文·麦克唐纳德(Kevin Macdonald)和 Youtube 合作,邀请全世界的人们上传自己当天的日常生活片段。结果收到了189个国家/地区提交的80,000多个视频,长达4,500个小时。他用这些素材剪辑了一部90分钟的纪录片,取名为《一日人生》(Life in a day),目前在 Youtube 上已经观看了超过1600万次。

现在,他又和 Youtube 合作,拍摄《一日人生》的2020版,邀请大家上传2020年7月25日这一天的生活片段,上传到官网。下面是2010版的预告片

4、Youtube 最热门视频

一个数据科学家分析了2019年美国 Youtube 的7万部热门视频,发现美国人观看次数最多的视频,居然是韩国 BTS 组合的歌曲《Boy With Luv》,全年播放了1.9亿次。截止本周,这首歌的全球播放量达到了8.5亿次。

这只是韩国娱乐业 K-Pop 在美国极其流行的一个例子,BTS 是现在美国最受欢迎的乐队。韩国女团 Blackpink 的 MV 最近打破 BTS 的记录,在 Youtube 上架 24小时内,播放了8000万次。今年的奥斯卡最佳电影和最佳外语片都给了韩国影片《寄生上流》。韩国娱乐业的实力令人刮目相看。

5、寻娃瓶装水

陕西省西安市的一家超市里,一款瓶装水外包装上印有"寻娃启示",包含失踪儿童的照片、姓名、性别、出生日期、失踪时间和地点等信息,并留有联系方式。

据了解,这是饮料品牌方和宝贝回家志愿者协会合作推出的,目的是帮助失踪儿童家庭寻找自己的孩子。寻娃瓶装水仅售一元;瓶身上孩子的信息是经过家长授权后才发布的,而且这些信息会不断更新,如有孩子被成功找到,平台会及时联系厂家撤掉该孩子的信息。

6、一句话消息

  • Facebook 的工程师开发了一种机器人,可以将光纤包裹在高空电线的外面,大大降低了高速互联网的布线成本。

  • 苹果公司申请了一个耳塞专利,只要把这个小玩意塞进耳朵,就能测量心率、血容量和呼吸频率。

  • 尼康召回了一款16年前生产的胶片相机,而且只召回其中的152台,官网上给出了具体的产品序号。这种事情似乎只可能发生在日本。

  • BBC 提出由于气候变暖,夏天正变得太热了,成为人类的灾难。

文章

1、Web 开发者需要的10个 Chrome 浏览器插件(英文)

本文推荐了10个对 Web 开发很有用的 Chrome 浏览器插件。

2、SHA-256 的原理(英文)

本文通过一个简单的例子,一步步演示 SHA-256 算法,如何将字符串变成一个256位的哈希值。

3、JavaScript 函数作用域解释(英文)

本文是 JavaScript 初学者教程,通过一个简单的例子,解释 JavaScript 的函数作用域规则。这是一个很重要的语法点。

4、我忽视的几个 CSS 基本知识(英文)

作者谈了几个他初学 CSS 时忽视的几个知识点,可以借此复习一下 CSS 基础知识。

5、GPT-3 模型的图灵测试(英文)

GPT-3 是 OpenAI 公司开发的一个 AI 模型,能够自动生成文本。作者对它进行了图灵测试,跟它对话,看能不能分辨出对方是一个软件。

6、印度高铁为什么造不起来?(中文)

2015年,印度政府把1700公里高铁合同给了日本。日本政府承诺提供低息贷款,还同意转让技术。5年过去了,印度高铁依然没有开工,一公里也没有造出来,这是为什么?

7、立讯代工 iPhone 背后的故事(中文)

台湾《商业周刊》的长篇报道。王来春曾是富士康(鸿海子公司)的第一批打工妹,打工10年后创立了立讯精密,现在的市值已经超过了鸿海。Airpods 和 Apple Watch 都是立讯代工,并即将成为第一家代工 iPhone 的内地企业。

8、最长的单字母域名(英文)

作者写了一个脚本,寻找最长的单字母域名是什么。所谓"单字母域名"就是域名都由单字母构成,比如aaa.com

工具

1、Passbolt

一个开源的密码管理器,可以自己架设 Web 服务。

2、PasteMe.cn

一个文本分享网站,不需要注册,会对输入的文本或代码生成 URL,支持密码和阅后即焚。(@lingr7 投稿)

3、Shoelace

一个 Web Components 组件库,非常易用,很推荐。

我觉得,HTML 自定义元素才是网页组件发展的方向,因为根本不需要学习任何新的 API,用的就是 DOM 语法。

4、webtorrent-desktop

一个 BT 下载的跨平台桌面客户端,可以一边下载一边观看视频。它使用 WebTorrent 协议,所以实际上是一个网页应用,用 Electron 包装成桌面软件。

5、tbify

国内连接 npm 源服务器很慢,tbify 这个工具可以自动将 npm、yarn 等包管理工具连上国内的淘宝镜像,对工具和系统都是非侵入性的。(@fjc0k 投稿)

6、easy-monitor

Node.js 应用的性能监控工具,可以定位线上故障。代码开源,支持私有部署。(@yj1991 投稿)

7、3D 封面生成器

在线工具,让一张平面图片变成 3D 书籍封面。

8、Wiki.js

架设个人 Wiki 的 Node.js 应用。

9、Brick Block

一个浏览器小游戏,使用砖块随心所欲建造大楼,只支持桌面浏览器。

10、remark42

开源的评论服务,可以用来为静态网页加上留言功能。

资源

1、Rust 语言之旅

Rust 语言的中文版在线教程,通过可以运行的小例子介绍语法,从 Hello World 开始讲起。

2、网络实时摄像头目录

这个项目收集世界各地的网络实时摄像头,可以查看实时影像。目前,收集的美国摄像头有3500个,中国摄像头有32个。

3、木星相册

一个天文爱好者收集的木星照片。

4、麻省理工学院的统计学课件

麻省理工学院本科生统计学课程的 PPT 课件。

5、没有博士学位者的 TensorFlow 和深度学习教程

谷歌发布的英文教程,没有高深的数学,向初学者介绍 TensorFlow 和深度学习。

图片

1、吉卜利钟

东京的日本电视台附近有一座巨大的机械钟,是由动画大师宫崎骏设计的,被称为吉卜利钟。

整点报时的时候,它的各个部分都会旋转,机械小人进进出出,发出呼啸和叮当声。

这座钟耗费了超过20吨的铜和钢,有三层楼高,宽18米,包含了30多个机械装饰物,包括加农炮、几个铁匠,一个旋转的车轮、茶壶、两个钟形活塞。

2、亚马逊工牌

亚马逊公司的工牌,不同年资的员工有不同的边框颜色。

20年以上的员工,银色。

15年以上的员工,紫色。

10年以上的员工,红色。

5年以上的员工,黄色。

0~5年的员工,蓝色。

文摘

1、意大利瓦依昂大坝的教训

1943年,意大利为了获得战后重建所必需的电力供应,决定在东北部阿尔卑斯山区修建一座当时世界上最高的大坝----瓦依昂大坝(Vajont Dam)。根据规划,瓦依昂大坝的坝身高达230米。

1956年,大坝正式开始施工,采用了双曲拱结构。这种坝体在水平和垂直两个方向都呈弧形,不但受力条件更好,可以承载更强的负荷,而且坝身可以造得很薄,节省了工期和用料。

1957年4月,大坝开工不到一年,罗马的政客们便放了一个大卫星:大坝改成为核电站配套服务的抽水蓄能电站,高度从初始的230米增加到264.6米,这样就使水位上升到722.5米高程,库容也增加到初始设计的三倍,达1.65亿立方米。

1959年秋天,瓦依昂大坝竣工,1960年2月水库开始试验性蓄水。原本相对稳定的岩层在巨大的水压下开始渗水,水和岩层深处的粘土发生作用,坡体开始变得不稳定。同年10月,当水位到达635米时,左岸地面出现一道长达1800~2000m的裂缝,随后发生了局部崩塌,塌方体积达70万立方米,坝前出现高达10米的涌浪。一个月以后水位上升到652米,崩塌滑坡再次发生,岸坡位移速度达到每天3.5厘米,恐惧万分的水电站工人连夜撤离了,蓄水随后停止,水位降至600米以下,位移随即减少至0.3厘米/天左右。设计部门认为,水位上升引起孔隙水压力上升是造成滑坡发生的关键因素,并认定降低水位上升速度可以阻止滑坡发展。在接下来的2年时间里,这一措施受到了一定成效,但随着蓄水和排水试验的反复进行,岸坡位移也随之时大时小,始终无法彻底消除,库区地震也十分频繁。

1963年初开始,蓄水试验的步子再一次加快。随着库区水位不断地提高,某些控制观察点录得每天超过0.5厘米的移动量,到了9月初,水位提高至715米时,位移速度已增至每天3.5厘米。主管部门为了降低位移速度,开始缓慢降低水位至705米,但从9月28开始瓦依昂地区普降大雨,进一步恶化了岸坡结构,所以位移不但没有降低,反而继续增加,至每天超过20厘米的惊人水平。瓦依昂山谷中发出奇怪的声音,水库里的水也变得浑浊,山脚下的公路在两年的时间里移动了半米多。当地政府发出警告,惶恐不安的村民开始陆续逃离家园,然而这一切已经太晚太晚。

1963年10月9号22点39分。连日大雨刚刚停息,这是一个雨后晴朗的夜晚,瓦依昂山谷仿佛睡着了一般,夜幕下的一切都显得那么静谧安宁。就在这一刻,瓦依昂水库南坡一块南北宽超过500米、东西长约2000米、平均厚度约250米的巨大山体忽然发生滑坡,超过2.7亿立方米的土石以100公里的时速呼啸着涌入水库,随即又冲上对面山坡,达到数百米的高度,整个时间不超过45秒。滑坡时发出的巨大轰鸣声几十公里以外都能听见。

(上图为当年发生滑坡的山体)

此时水库中仅有5000万立方米蓄水,不到设计库容的1/3。所有的水在一瞬间沸腾起来,横向滑落的滑坡体在水库的东、西两个方向上产生了两个高达250米的涌浪:东面的涌浪沿山谷冲向水库上游,将上游10公里以内的沿岸村庄、桥梁悉数摧毁;西面的涌浪高于大坝150米,翻过大坝冲向水库下游,由于坝下游河道太狭窄,越坝洪水难以迅速衰减,致使涌浪前峰到达下游峡谷出口时仍然高达70米。洪水彻底冲毁了下游沿岸的1个市镇和5个村庄。从滑坡开始到灾难发生,整个过程不超过7分钟,共有1900余人在这场灾难中丧命,700余人受伤。

唯一在洪水中幸免于难的是瓦依昂大坝本身。坝体设计方案提供者----意大利模型结构试验研究所(ISMES)不愧是世界顶尖的结构力学研究所。

另外一个在鬼门关前转了一圈的是身处瓦依昂水库北岸山坡的萨索镇(Casso),由于地势较高,滑坡体冲到小镇脚下仅几十米的地方停了下来,全镇数千人因此逃过一劫。大难不死的萨索人事后足足举行了一个月的弥撒,并在每年的10月9日举行纪念活动,感谢万能的上帝对小镇的庇护,这一习俗沿袭至今。

(上图为滑坡发生后,大坝上游完全泥石填满)

灾难发生后,意大利政府在对灾民进行紧急救援的同时,还不得不面临瓦依昂水库的善后处理问题。从那一天起,大坝就失去了蓄水和发电机能,只有巨大的坝体保留在原地,直到今天。

由于坝前滑坡体对大坝产生的压力很大,灾后的首要大事就是抽空水库中残留的蓄水,并紧急开凿另外的穿山水道,将奔流而来的上游来水引开,绕过瓦依昂水坝流入皮亚韦河。善后工程进行了一年多方告结束。至于对灾民的安置、赔偿,灾区重建等工作,则一直持续到上世纪八十年代。

言论与数字

1、

至少12年 Kubernetes 经验。

-- IBM 招聘云工程师的公告,但 Kubernetes 是2014年发布的。

2、

抖音与 Instagram 有一个根本的不同。

Instagram 通常是漂亮的人、漂亮的地方、漂亮的东西,充满了自恋的气息。抖音则是好玩的,多样的,有趣的。

-- Hacker News 读者

3、

波士顿这个城市起源于一个运输牛群的中转站。该市混乱的道路(下图),来自原来牛群走的路。

-- David Perell

4、

信息成瘾指的是强迫性信息消费:明明已经看完所有内容,你仍在继续滚动浏览 Facebook;你刚刚关闭 Instagram,立即再次打开它;你每五分钟拿起手机,检查有没有新的通知。

-- 《什么是信息成瘾》

5、

一家公司获得垄断地位以后,就不需要从任何形式的产品开发获益了,只通过市场营销或金融工程就能增加利润。最终,公司就会被销售人员和财务人员控制。

-- 史蒂夫·乔布斯

6、

锚定偏差(anchoring bias)指的是决策时严重依赖第一个可用的信息。

比如,你走进一家体育用品商店,发现的第一件商品,是一条价值500美元的运动裤。接着,你看到另一条价格为300美元的运动裤时,就会觉得它很便宜,实际上如果首先看到这条300美元的裤子,你会觉得它根本不便宜。

-- 《锚定偏差》

回顾

2019年的本周(第 66 期):创业不是零和游戏

2018年的本周(第 14 期):马斯克的人生才是梦想家的人生

订阅

这个周刊每周五发布,同步更新在阮一峰的网络日志微信公众号

微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年7月24日

科技爱好者周刊(第 118 期):高考志愿怎么填

$
0
0

这里记录每周值得分享的科技内容,周五发布。

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。

周刊讨论区的帖子《谁在招人?》,提供大量就业信息,欢迎访问或发布工作/实习岗位。

封面图

元上都遗址位于内蒙古草原,是元朝定都北京之前的首都,距今约750年的历史。马可波罗就在这里,第一次见到了元世祖忽必烈。(来源:Instagram

本周话题:高考志愿怎么填

前不久,亲戚朋友咨询我,高考志愿的填写建议。

我建议选择理工科,不一定是电子技术和计算机,科技类的专业都可以。本科打好数学、物理、工程的基础,具体方向以后都可以转。

理由很简单,对于普通人家的子弟,理工科会比文科更容易谋生和赚钱。

最近,有一条新闻,澳大利亚因为工程师短缺,决定理工科的大学学费降低20%,同时提高文科学费,鼓励学生优先选择理工科。国内其实也是同样的情况,市场对工程师的需求很大,理工科的就业普遍好于文科。

除了就业容易,理工科的学生更容易快速积累财富。在我看来,以后赚到大钱的最容易方法,就是拿到公司股票,然后股票上市。理工科学生在这方面有优势。

创业板和科创板已经改为注册制,政府不再审核了,到交易所注册一下就可以上市。这比以前容易很多,以后会有大量公司上市。但是,只有技术公司才能在创业板和科创板上市,要进入技术公司,你就应该学习理工科。

不过,就算没有进入理想的专业或者学校,也不要灰心。现在是互联网时代,网上什么资源都有,都可以自学。最终来说,决定人生方向的最重要因素,是一个人强烈的决心,而不是外部环境。

前端图形学教程

前端是软件开发的一个大类,包含很多方向,比如 Web 开发、H5 开发、前端架构等等。

前端图形学是一个很独特的前端方向,要求的技能跟其他方向都不一样,动画、数据可视化、游戏都离不开它。市场对图形工程师有很大的需求,这方面的人才一直是紧缺的。

为了帮助大家进入这个方向,提高就业竞争力,京程一灯推出了 《前端图形学教程》 ,分成两季。

第一季由浅入深,从基础数学知识开始,涉及 2D 和 3D 图形的方方面面,帮助你快速掌握图形学的关键知识点和编程技巧。

第二季是 H5 游戏开发实战,通过短时间的培训,带大家走进前端图形学工程师的世界。

好消息是这两季现在都可以 免费领取

扫描下图二维码,进群后领取免单卡,获取《前端图形学教程》(说明:由于腾讯课堂的限制,需支付0.02元),仅发放给前150位进群的同学。

资讯

1、NBA 虚拟观众

由于疫情,NBA 今年的季后赛没有现场观众。NBA 就与微软的 Teams 软件合作,引入了"虚拟观众"。

篮球场周围安装了多个5米高的屏幕,可以同时显示300多个头像。粉丝购买特别门票以后,通过 Teams 软件,自己的头像就会出现在这些屏幕上面。

球迷还可以通过 App、网站和推特,使用指定标签进行虚拟欢呼,NBA 将在看板上显示用户名和你的欢呼内容。

2、红砖的新制造方法

红砖是常见的建筑材料,它是粘土在1000多度的高温中烧制而成。大量开采粘土会破坏土壤和环境,而且烧制和运输红砖会消耗大量能源,产生碳排放。

为了解决这些问题,伦敦的一家科技公司发明了一种红砖的新制作方法,将废砖、砾石、沙子、石膏板粉碎后,与水和粘合剂混合,然后在定制的模具中压制成形。整个过程不需要入窑烧制,碳排放量不到传统砖的十分之一,而且直接在城市中制作,运输成本大幅降低。它还能作为城市建筑废料的一种解决方案。

该公司声称,这种砖的价格将与传统砖头相当,而且比粘土砖更坚固,更耐用,并且还提供更好的隔热性。目前,正尝试在苏格兰推广使用。

3、降噪窗户

新加坡南洋理工大学的科学家根据降噪耳机的原理,造出了一个降噪窗户。

科学家在窗户上安装一些麦克风和24个小型扬声器,系统根据麦克风监听到的外部噪音频率,让扬声器发出相反频率的声波,抵消噪音。实测可以降低噪音10分贝。

这个系统目前还有一些局限,最大的问题是它只适用于稳定和持续的噪音源,比如飞机起降和火车经过,对于人声和突发的零星噪音(比如鞭炮声)都无法消除。另外,扬声器无法做得很小,因为需要发出低音来抵消低频噪音。这样一来,24个五厘米的扬声器挂在窗户上很丑陋,还会影响通风和视野,所以只有大窗户才用得上。

4、无法切割的材料

英国科学家发明了一种新材料,各种电锯都将它无法切开,可以用于自行车锁和安全门。

这种材料将陶瓷球加入了泡沫铝,电锯切割时,陶瓷球会破碎,使材料变得更坚硬,并改变位置产生振动,将力反作用于电锯,使其钝化。电锯切割的力量越大,对自己的损伤也就越大。

发明者这样形容这种材料:"这就像切开充满金子颗粒的果冻一样。刀刃进入果冻时,就会碰到金子颗粒,无数的颗粒就在果冻中振动,从而破坏切割的刀具。"

5、三星可能放弃高通芯片

外媒报道,三星的下一部手机 Galaxy S21 可能会放弃高通芯片,改用自家的 Exynos(猎户座)芯片作为 CPU。原因据说是,高通芯片原先由三星代工,但是为了防止三星偷技术,最新的865芯片交给了台积电代工。这样一来,三星就没有了顾忌,而且高通的下一代875芯片非常贵,继续使用会导致三星手机涨价。

三星是全世界最大的手机厂商,一旦放弃高通芯片,会让高通和台积电都很受伤。以后,大厂都用自家芯片,可能会成为风气,华为用海思,苹果用 Apple Silicon,三星用猎户座。

6、一句话消息

  • 重庆建成世界最高秋千,高108米,最高可以荡88米。

  • 南京玄武湖长出了一株并蒂莲,却被一名外地游客趁管理人员不备偷偷采摘了下来,准备带回家欣赏。

  • 剑桥大学研究人员发明了一种无需触摸的触摸屏,采用"触摸预测"算法,只要手指悬停在按钮上方,屏幕就会自动感知。

  • 加拿大医生发现 COVID-19 抗体几个月后会从血液中消失,这意味着患者康复后有可能再次感染,不过那时免疫系统可能会根据记忆,自动消灭这种病毒。

文章

1、JavaScript 的第三纪元(英文)

作者认为,JavaScript 的发展可以分成三个阶段:原始阶段、Node.js 阶段和目前的超越阶段。

当前阶段的主要特征是,JavaScript 开始作为底层技术,ES6 模块、TypeScript、WebAssembly 逐渐普及。

2、NAND Flash 基础知识简介(中文)

NAND Flash 是一种存储介质(掉电后数据不会丢失),常见的 U 盘、TF 卡/SD 卡,以及大部分 SSD(固态硬盘)都是由它组成的。 本文主要介绍它的种类及工作原理。(@sigusr1 投稿)

3、2020年你应该尝试的10个 JavaScript 库(英文)

文章介绍10个很有用的 JavaScript 工具库,偏重于网页的 UI 操作方面。

4、 如何构建优秀的 API(英文)

本文介绍设计一个优秀的 RESTful API 的注意事项,以及 REST 和 GraphQL 两种 API 的差异。

5、Python 的 SQLite 数据库教程(英文)

本文是入门教程,介绍如何在 Python 语言使用内置的 SQLite 数据库,不需要任何安装步骤。

6、10个有用的 git log 技巧(英文)

本文介绍git log命令的10个参数用法。

7、英特尔到底怎么了?(中文)

英特尔最近公告,7纳米制程延误,可能会外包给台积电生产。本文是一个前英特尔华人工程师的分析。

8、async 函数的一个注意点(英文)

本文提醒大家注意,使用 JavaScript 的 async/await 函数时,要区分并发操作和继发操作。

工具

1、wiby

一个极简的搜索引擎,加载速度很快。

2、vscode-rss

Visual Studio Code 的插件,提供一个嵌入式的 RSS 阅读器,可以在 VScode 里面阅读新闻和博客。(@luyuhuang 投稿)

3、React Spectrum

Adobe 公司的 React 组件库,用法非常简单干净。

4、css-sweeper

一个只用 HTML 和 CSS 实现的扫雷游戏,不使用 JavaScript。

5、SimpleOps

网站性能监控服务,可以监控加载速度和网站是否下线。

6、project-citadel

一个开源的看板程序,用于项目管理。

7、CloudBrowser

开源的云浏览器。用户可以在浏览器里面,打开另一个运行在云端的浏览器。

8、babel-preset-php

通过 Babel 将 PHP 代码转成 JavaScript 代码,从而方便 PHP 程序员编写浏览器可以运行的代码。

9、seafox

一个 TypeScript 写的 JavaScript 解析器,也就是说使用 JavaScript 解析 JavaScript,支持最新的 ES2020 语法。

10、react-table

React 的表格组件库,新的 7.0 版完全采用 Hooks 设计。

资源

1、数据可视化图表目录

这个网站收集各种数据可视化的图表类型,简要讲解每种类型的用途和特点,而且有中文版。

2、Gradio

该网站提供一系列可以在线使用的 AI 工具,比如识别物体、识别手写数字、老照片着色、绘画生成等等。

3、impossible-objects

这个仓库提供 3D 打印源码,可以打印一些不可思议的物体,在镜子里面呈现另一个形状。

4、OSM City

丹麦艺术家根据开源地图 OpenStreetMap 的数据,让建模软件 Unity 3D 引擎基于真实城市的面貌,自动生成一座虚拟城市。

图片

1、C/2020 F3 彗星照片

C/2020 F3 彗星最近光临地球,是20多年来北半球最明亮的彗星。世界各地的爱好者纷纷拍出令人难忘的照片。

7 月23 日是它最接近地球的日子,此后亮度逐渐衰减。它下一次出现将是6800年之后。

下面是中国摄影爱好者"阿五在路上"拍摄的彗星。

还有人拍到下面的照片,彗星被星联计划 StarLink 的人造卫星挡住了,长曝光拍摄后就变成了下面的样子。

2、市值最大的公司

下图是2010年市值最大的五家公司与2020年的对比。

2010年最大的五家公司(单位:美元)。

  • 埃克森美孚石油:3430亿
  • 中国石油:3160亿
  • 苹果公司:2690亿
  • 中国工商银行:2480亿
  • 微软公司:2370亿

2020年最大的五家公司。

  • 苹果公司:15760亿
  • 微软公司:15510亿
  • 亚马逊:14330亿
  • 谷歌:9800亿
  • 脸书:6760亿

可以看到,现在最大的公司都是技术公司,而且市值翻了好几倍。

文摘

1、世界最大的飞机

俄罗斯的安东诺夫 AN-225 运输机是全世界最大的飞机,翼下装了六台涡轮发动机,翼展几乎相当于一个足球场的长度。

无论它飞到哪里,都是人们目光的焦点。

它诞生于冷战时期。1981年4月,美国发射了第一架航天飞机,将军事卫星送入了轨道。苏联认为这是一种威胁,开始制造自己的航天飞机 Buran(俄语"暴雪")。

但是,航天飞机开始建造后,遇到了一个问题。航天飞机工厂在莫斯科附近,怎样才能将这架航天飞机运送到1300英里外的发射场呢?苏联最后决定,不建造高速公路,而是要求基辅的安东诺夫设计局制造一种新型的运输机,能够空运航天飞机。

安东诺夫设计局就设计出了 AN-225 这架世界最大的飞机。除了6个发动机,巨大的起落架下有惊人的32个轮子,以及为了增加稳定度而设置的两个尾翼。

AN-225 的制造只用了短短三年半,但仍跟不上航天飞机 Buran 的完工日期。航天飞机最终是由一队轰炸机携带零件,运到发射场组装的。

1988年底,Buran 和 AN-225 差不多同一个时间进行了首飞。那一年,柏林墙倒塌,随后苏联解体。结果, Buran 仅执行一次正式任务,就被永久放弃了,而 AN-225 只在大约12次试飞中,搭载过航天飞机(下图)。

随着 Buran 被放弃,AN-225 也就没用了。有人提议,将这架飞机改成酒店,未被采纳。后来,它被锁进机库,在那里放了7年,静静地生锈。

但是,随着世界经济的发展,大型货物的空运需求越来越多。安东诺夫航空公司有一个货运子公司,收到的订单超出了他们最大飞机的运输能力,于是有人想到了这架闲置的 AN-225。

2001年,AN-225 进行了除尘和设备升级,然后重新投入使用,一口气创造了124项世界纪录,包括货物长度、载重量、载货飞行高度等等。

AN-225 最多可容纳16个集装箱或80辆家用汽车,最大有效载荷为250吨。2009年,AN-225创下了空运单件货物重量的记录,当时它将一台重达187吨的发电机从德国运到亚美尼亚。它还运输过史上最长的空运货物----两台42米的风力涡轮机,从中国运往丹麦;甚至在1万米高空举行过一次画展,创造了吉尼斯世界纪录。

2020年4月,AN-225 再创纪录,将100吨 Covid-19 防护设备和药品,从中国天津运到波兰华沙。由于世界各地需要防护用品,两个半月的时间里,AN-225 进行了10次从中国飞往世界各地的飞行。"

AN-225 的单次飞行成本很高,每小时使用20吨以上的燃料,所以它很少飞行,只用来执行那些其他飞机做不了的任务。2019年这架飞机执行了20班飞行,2020年到现在为止,已经执行了10班飞行,全部是从中国运送货物。

2、拥抱,扩展,扑灭

1996年,美国司法部发现,微软公司内部使用"拥抱,扩展,扑灭"(Embrace, extend, and extinguish,简称 EEE )这个短语,描述对付竞争对手的策略。

首先,拥抱对方的产品种类,进入对方的市场;然后,使用自己的专有功能扩展产品标准;最后,利用这些差异,使竞争对手处于不利地位。

  • 拥抱阶段 :开发与竞争产品基本兼容的软件,或实施公共标准。
  • 扩展阶段:添加和推广竞争对手或标准不支持的功能。
  • 扑灭阶段:由于市场份额的扩展,添加的功能成为事实上的标准时,再将竞争对手边缘化。

微软的 IE 浏览器就是使用这种策略的最好例子。

现在有人认为,微软对于开源软件的态度,从敌对变成拥抱,也有可能是在实施这种策略。另一方面,谷歌公司在很多技术领域的作为,也让人疑虑,它在实施这种策略。

言论

1、

谷歌的网页排名算法 PageRank,得名于创始人拉里·佩奇( Larry Page),实际含义是佩奇的算法(Page's rank)。

-- 《意想不到的来自人名的事物》

2、

软件测试分为生产前测试和生产中测试,负责任的团队两种测试都应该进行。

-- 《我在生产中测试》

3、

低本底钢(Low-background steel)指的是1945年第一枚核弹爆炸之前生产的任何钢铁。此后有了核爆,大气中辐射物质增加,影响了所生产的所有钢铁。

低本底钢目前用于需要最高灵敏度的放射性核检测设备中,主要来源是在第一次核爆发生前建造的船只,它们大多沉没在水底。

-- 维基百科

4、

我一直是"强观点,弱立场"(strong opinions, weakly held)。

不管什么事情,我都会凭直觉得到一个结论,这就是"强观点";只要有任何与结论相悖的信息,我就会修正自己的观点,这就是"弱立场"。

-- 《强观点,弱立场》

5、

几乎所有的企业软件公司,都是销售人员多于工程人员。

-- Hacker News 读者

6、

浏览器最初的目的是浏览包含链接的文本文件,但现在已经变成了应用程序平台的一种 UI 范式,内置数据库和图形引擎,与操作系统深度集成。

-- Hacker News 读者

回顾

2019年的本周(第 67 期):复杂系统无法维护,侏罗纪公园必定失败

2018年的本周(第 15 期):周刊的内容从何而来?

订阅

这个周刊每周五发布,同步更新在阮一峰的网络日志微信公众号

微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年7月31日

科技爱好者周刊(第 119 期):降雨量和保险博弈

$
0
0

这里记录每周值得分享的科技内容,周五发布。

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。

周刊讨论区的帖子《谁在招人?》,提供大量就业信息,欢迎访问或发布工作/实习岗位。

封面图

7月28日,泰国曼谷的苹果商店开幕。它的形状很奇特,有一个树冠屋顶,下面是一个全玻璃的建筑。(出处

本周话题:降雨量和保险博弈

前几天,我看到了一个很新奇的保险:上下班降雨险

只要上下班遇到大雨,保险公司就会赔偿。

根据地点和季节而不同,赔偿标准都不一样,下图是上海的赔付标准。

根据上表,上海只要1月达到中雨(一个小时内降雨超过2.5毫米),保险公司就会赔付12元。下雨的天数越多,赔付越多。由于每个月的保费是20元,所以只要有两天下雨达到这个值,就等于赚到钱了。

为什么会有这种保险?上下班遇到大雨导致巨大损失并不多见,这看上去更像是一种博弈,比谁能更准确预测降雨量。气象学家应该会喜欢它,有很大机会从中获利。

我其实挺赞成这种博弈型的保险。如果生活中每一个有概率的事件,都有对应的保险,我觉得挺好的,至少多出了很多选择。

我查了一下,国内的这类保险还有高温险、堵车险、离婚险、吃货险等等。吃海鲜得急性肠胃炎,保险公司都会赔偿你,这不是很好的事情吗?

可惜的是,这类保险往往开不下去。一方面,投保的都是风险最大的人;另一方面,只要投保人掌握的信息多于保险公司,保险公司就会赔钱。前一阵就有报道,南京一女子利用900班的航班延误,获得了近300万元赔偿。所以,好玩的险种才会这么少。

前端高频面试题 140 道

大家准备前端面试时,免不了会遇到下面这些问题。

(1)大厂的面试有哪些高频题目?(2)怎样才能正确地回答技术题目,将自己的想法充分清晰地表达出来?(3)如何在众多面试者里面脱颖而出,获得面试官的高评价?

本周的课程资料,就是来自开课吧的 《前端高频面试题 140 道 》 ,专门解决这些问题。

它帮助大家在面试之前,做好充分理解,对高频题的正确答案成竹在胸,让面试官对你留下好印象!

这份资料是免费的。需要的朋友请扫描下面的二维码,添加小助理微信咨询领取。领取人数较多时,请耐心等待。

资讯

1、文员机器人

俄罗斯 Promobot 公司设计的机器人,最近在彼尔姆市政府的文档处理中心上岗,为市民提供服务。开发者为了让该机器人看起来像"一名普通俄罗斯女性",利用人工智能分析了数千名女性的外表。"她"可以通过移动眼睛、眉毛和嘴唇以及其覆盖有人造皮肤的机械肌肉,来重现600多种人类面部表情。

这个机器人还可以回答一般性的问题,并连接到扫描仪和打印机,目前主要承担签发证明的工作,证明人们没有犯罪和吸毒记录。登记处负责人说,"她"可以完全取代登记处的一名雇员。

2、火星直升机

7月30日,美国宇航局 NASA 发射"毅力号"火星探测器,上面包含一架1.8公斤的微型直升机。探测器在明年2月着陆后,4月将在火星表面放飞这架直升机,这将是人类首次在其他星球起飞直升机。

火星大气层远比地球稀薄,空气动力不足,直升机只能做得非常小。这架直升机可以离地4米,飞行100多米。它在火星计划飞行5次,其余时间就停在地面,使用太阳能电池板充电。

3、阿联酋的垂直农业

由于高温和缺水,沙漠国家阿联酋每年平均只有12天降雨,没有自己的农业,粮食和蔬菜都依赖进口。随着人口的增长,阿联酋希望确保食品供应,开始发展垂直农业。

垂直农业就是在室内种植蔬菜,多个种植层垂直叠在一起,通过 LED 提供光照,并用水雾或滴灌系统浇水,可实现全年高产。田野种出蔬菜需要30到40天,垂直农业只要10到12天。更重要的是,与传统农业相比,垂直农业的用水量减少了多达95%,这对沙漠国家意义重大。不过,由于空调和 LED 需要恒定的电力供应,因此会消耗大量能源。

阿联酋政府正在投资建设一个该国最大的室内垂直农场,2021年前完工,可以种植800种农作物。

4、全自动客机

空中客车公司宣布,今年6月已经在一家试验机上,完成了全自动起飞和着陆。这意味着,喷气式客机的全自动飞行已经没有障碍了。因为一旦飞到空中,自动驾驶仪就会接手,目前就是这样。

试验飞机采用"图像识别技术",识别跑道,完成飞机起飞。飞行员只要将飞机与跑道对齐,然后就可以坐着观察飞机升空。下图中,飞行员的手是空着的,仅仅停留在仪表盘上方,没有任何操作。

5、贝鲁特爆炸前后

黎巴嫩首都贝鲁特本周发生港口大爆炸,上图是爆炸前后的对比。可悲的是,导致爆炸的硝酸铵,2013年被黎巴嫩海关从一艘非洲船只查获,扣留在港口。七年来一直没有做任何处理,就放在原地,可能由于受潮,最终发生大爆炸。

6、一句话消息

  • 国际核聚变研究站完成了设计和零件制造阶段,开始了为期5年的组装阶段。如果这个项目能够成功,就打开了人类利用无辐射核能的大门。

  • 马斯克说,他非常害怕人工智能 AI 接管世界,最害怕谷歌的 DeepMind 项目。

  • 江苏省农民发明氦气球喷洒农药,每小时可以喷洒5万平方米,效率大大提高。

文章

1、JavaScript 语言的多态(英文)

多态(Polymorph)是面向对象编程的一个术语,有多种含义。本文讨论 JavaScript 语言如何实现多态。

2、GitHub Actions 的 Go 语言示例(英文)

本文介绍如何在 GitHub 仓库里面定时跑 Go 语言脚本,再将代码推送回仓库。

3、JavaScript 测试框架比较(英文)

Mocha、Ava、Jest 是目前非常流行的三大 JavaScript 测试框架,本文对它们进行了比较,每个框架最合适的运行场景。

4、Git 工作流程的图示(英文)

本文用清晰的图形解释了五种 Git 工作流程,比如上图是 master - develop - feature 的工作流程。

5、Tailwind CSS:从业余项目到数百万美元的业务(英文)

Tailwind CSS 的作者介绍这个框架的诞生过程,以及他们如何通过它赚到几百万美元。

6、苹果更换 ARM 芯片的解读(英文)

一篇很好的英文分析,苹果公司为 Mac 电脑更换 ARM 芯片,对整个行业会带来哪些变化。

7、Firefox 对 SameSite Cookie行为的更改(英文)

Firefox 浏览器官方宣布,将跟随 Chrome 浏览器,限制第三方 Cookie,将 Cookie 的 SameSite 属性默认值设为 lax。

8、Windows 10 阻止修改 HOSTS 文件(英文)

HOSTS 文件用于修改网站域名对应的 IP 地址,WIndows 10 内置的 Windows Defender 软件最近开始警告和阻止修改这个文件。

9、我用 GPT-3 写了一篇博客文章(英文)

GPT-3 是目前最先进的人工智能模型,可以根据输入,返回一篇人类可读的文章。

作者输入文章的标题和简介,GPT-3 就自动返回了一篇博客文章,这篇文章还登上了 Hacker News 的第一名,许多人都没有发现这是计算机写的。

工具

1、Luckysheet

一个网页表格库,类似 Excel 的效果。

2、snapcode

一个很有创意的玩具项目,对手写的代码拍照后,通过 Google Cloud Vision 进行识别,然后自动在 repl.it 上运行。

3、Story Creator

一个在线的视频编辑器,可以用来在浏览器里面编辑一些简单视频。

4、随机数据生成器

这个网站提供一个 API,可以让你定制想要的随机数据,以 JSON 格式返回。

5、Compiler Explorer

一个在线的编译器学习工具,可以显示高级语言对应的汇编代码,支持多种语言。

6、zebra-editor-core

一个开源的富文本编辑器,功能丰富。(@acccco 投稿)

7、Yandex 图片搜索

俄罗斯的搜索引擎 Yandex,我觉得体验不错,尤其是相似图片搜索,比谷歌好用。国内好像还没有被屏蔽。

8、虚拟信用卡

该服务基于你的真实信用卡,生成一张虚拟信用卡,用于在国外网站购物,从而避免信用卡诈骗或信息泄漏。我还没用过,据说需要有美国电话号码,用于验证。

9、NightCafe

一个图片处理的在线工具,可以让普通照片变成世界名画。下图就是基于凡高的《星夜》生成的照片。

10、kosmi

一个桌面聊天应用,具有很强大的分享功能。本地打开视频,参与聊天的所有人都可以观看。

资源

1、JS 1024 竞赛

这是代码长度不超过1024字节的 JS 程序的比赛,2020年的结果已经公布了。第一名是一个钢琴键盘,第二名和第三名是动画渲染,第四名是一个游戏。

2、stackoverflow-top-cpp

StackOverflow 上面高票排名的 C/C++ 问题的中文翻译。(@EthsonLiu 投稿)

3、Gitenberg

一个公共领域的英文电子书的搜索引擎。

4、SVG Repo

一个 SVG 图片(主要是图标)的搜索引擎。

5、Motherboard DB

电脑主板的数据库。

图片

1、宫崎骏的克里克城

宫崎骏在动画片《魔女宅急便》里面,以瑞典首都斯德哥尔摩作为原型,创造了海边的克里克城(Koriko),有着非常迷人的建筑风格。

另外,最近有人在静冈县发现了一个水池,跟《幽灵公主》里面的精灵森林很相似。

2、不可思议的瓶子

美国人哈里·恩格(Harry Eng,1932-1996),当过学校老师、教育顾问,发明家和魔术师。但是,他最著名的事迹,就是将一些不可能的塞进瓶子的东西,塞进了玻璃瓶。

他甚至将三付扑克牌塞进瓶子,没有留下一点空间。

他生前拒绝透露,这是怎么做到的。

文摘

1、Kindle 的诞生

2004年,我参与了第一代 Kindle 的筹备,这是亚马逊公司首次涉足硬件领域。我从跟贝佐斯的互动中学到了很多东西。

当时,苹果公司已经推出了 iTunes 音乐商店,从而将音乐产业数字化了。CD 的销售那时是亚马逊的第二大业务,对公司很重要,一下就受到了巨大的冲击。书籍的销售是亚马逊的第一大业务,远超过 CD,贝佐斯决定借鉴 iPod / iTunes 的做法,尝试推出 Kindle,将书籍数字化。

前两年,互联网泡沫破裂后,亚马逊的核心零售业务受到重创。贝佐斯对公司做出了调整,同一年里面创立了 Kindle 团队和网络服务 AWS 团队。公司当时处在困境,谁也不知道新团队能不能成功。

斯蒂夫·凯塞尔(Steve Kessel)当时负责亚马逊的媒体业务,书籍/音乐/ DVD 都归他管。单单书籍的销售,就产生了亚马逊50%以上的现金流。贝佐斯将斯蒂夫·凯塞尔调离了原岗位,让他去负责 Kindle,打败他原来主管的业务。

在此之前,已经有两家创业公司推出了电子书阅读器,都失败了。索尼公司也有同类产品,也没有取得成功。这些失败的先例反而鼓舞了贝佐斯,他对我说,书籍是有史以来最伟大的发明之一,我们怎样使阅读体验更好?答案是更轻,更便携,易于同步。

早先的电子书阅读器使用 LED 屏幕,我们决定采用了电子墨水屏,这是这种技术首次大规模用于商业用途。iPod 使用线缆进行同步,而我们使用 WiFi 和蜂窝通信。我们还添加了一个用于搜索的键盘,这其实是一个错误,但是值得一试。最重要的是,我们发明了一种新的书籍数字化方法。

有一次开会时,贝佐斯希望 Kindle 发布时,能够以每本9.99美元的价格提供10万本书。我负责这一块,这似乎是不可能的,出版公司对数字书还在恐惧与冷漠之间摇摆不定。但是,贝佐斯毫不让步,那是我职业生涯中最艰难的一次会议。

Kindle 在不使用线缆的情况下,就能通过 WiFi 进行同步。这是业内的首创,我们的团队为此感到自豪。但是贝佐斯认为这还不够神奇,他坚持要通过蜂窝网络进行同步,并且他不想向客户收取数据流量费。我们告诉他这不可能完成,但是最终他都做到了。

硬件开发比软件开发难得多,较慢的迭代周期、各种电路和零件问题,第一代 Kindle 整整用了三年半才完成!

2003年,就在 Kindle 项目启动前,贝佐斯出过一次直升机坠毁事故,几乎身亡。如果他没有活下来,我想世界将很不一样。

言论

1、

地球与火星之间的通讯大约需要40分钟,发出一条指令,40分钟以后才能收到,这意味着火星登陆器必须高度自动化,具有自主决策的能力。

-- 《中国为什么想去火星》

2、

女:你觉得怎样才是"完美的约会"(the perfect date)?

男: DD/MM/YYYY,别的日期格式(date format)都容易产生误会。

-- 推特。英语里面,约会和日期是同一个词date

3、

Python 是(这个排行榜诞生以来)第一个挤入前两名的非 Java 和非 JavaScript 的语言。

-- RedMonk 编程语言排行榜(2020年6月)

4、

REST 和 GraphQL 的最大区别是处理缓存的方式。

当你用 REST 方式构建 API 时,基本上可以自动获得 HTTP 的缓存能力。如果选择 GraphQL,你就需要自己为客户端或应用程序添加缓存。

-- 《如何构建优秀 API》

5、

不要轻易说出自己痛苦,能体会的人很少,看热闹的人很多。

也不要轻易炫耀,会替你感到高兴的人很少,等着看你最后下场的人很多。

-- 推特用户

6、

所谓完美,不是指不能再添加别的东西了,而是指没有东西可以从其中拿掉了。

-- 安托万·德圣埃克絮佩里,《小王子》作者

回顾

2019年的本周(第 68 期):关注能力的成长,胜于关注待遇

2018年的本周(第 16 期):科技改变死亡的模式

订阅

这个周刊每周五发布,同步更新在阮一峰的网络日志微信公众号

微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年8月 7日

只要一行代码,实现五种 CSS 经典布局

$
0
0

页面布局是样式开发的第一步,也是 CSS 最重要的功能之一。

常用的页面布局,其实就那么几个。下面我会介绍5个经典布局,只要掌握了它们,就能应对绝大多数常规页面。

这几个布局都是自适应的,自动适配桌面设备和移动设备。代码实现很简单,核心代码只有一行,有很大的学习价值,内容也很实用。

我会用到 CSS 的 Flex 语法Grid 语法,不过只用到一点点,不熟悉的朋友可以先看看教程链接,熟悉一下基本概念。每一个布局都带有 CodePen 示例,也可以到这个网页统一查看。

本文是跟极客大学合作的前端学习讲座的一部分,详见文末说明。

一、空间居中布局

空间居中布局指的是,不管容器的大小,项目总是占据中心点。

CSS 代码如下(CodePen 示例)。


.container {
    display: grid;
    place-items: center;
} 

上面代码需要写在容器上,指定为 Grid 布局。核心代码是place-items属性那一行,它是一个简写形式。


place-items: <align-items> <justify-items>;

align-items属性控制垂直位置,justify-items属性控制水平位置。这两个属性的值一致时,就可以合并写成一个值。所以,place-items: center;等同于place-items: center center;

同理,左上角布局可以写成下面这样。


place-items: start;

右下角布局。


place-items: end;

二、并列式布局

并列式布局就是多个项目并列。

如果宽度不够,放不下的项目就自动折行。

它的实现也很简单。首先,容器设置成 Flex 布局,内容居中(justify-content)可换行(flex-wrap)。


.container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

然后,项目上面只用一行flex属性就够了(CodePen 示例)。


.item{
   flex: 0 1 150px;
   margin: 5px;
}

flex属性是flex-growflex-shrinkflex-basis这三个属性的简写形式。


flex: <flex-grow> <flex-shrink> <flex-basis>;
  • flex-basis:项目的初始宽度。
  • flex-grow:指定如果有多余宽度,项目是否可以扩大。
  • flex-shrink:指定如果宽度不足,项目是否可以缩小。

flex: 0 1 150px;的意思就是,项目的初始宽度是150px,且不可以扩大,但是当容器宽度不足150px时,项目可以缩小。

如果写成flex: 1 1 150px;,就表示项目始终会占满所有宽度。

三、两栏式布局

两栏式布局就是一个边栏,一个主栏。

下面的实现是,边栏始终存在,主栏根据设备宽度,变宽或者变窄。如果希望主栏自动换到下一行,可以参考上面的"并列式布局"。

使用 Grid,实现很容易(CodePen 示例)。


.container {
    display: grid;
    grid-template-columns: minmax(150px, 25%) 1fr;
}

上面代码中,grid-template-columns指定页面分成两列。第一列的宽度是minmax(150px, 25%),即最小宽度为150px,最大宽度为总宽度的25%;第二列为1fr,即所有剩余宽度。

四、三明治布局

三明治布局指的是,页面在垂直方向上,分成三部分:页眉、内容区、页脚。

这个布局会根据设备宽度,自动适应,并且不管内容区有多少内容,页脚始终在容器底部(粘性页脚)。也就是说,这个布局总是会占满整个页面高度。

CSS 代码如下(CodePen 示例)。


.container {
    display: grid;
    grid-template-rows: auto 1fr auto;
}

上面代码写在容器上面,指定采用 Grid 布局。核心代码是grid-template-rows那一行,指定垂直高度怎么划分,这里是从上到下分成三部分。第一部分(页眉)和第三部分(页脚)的高度都为auto,即本来的内容高度;第二部分(内容区)的高度为1fr,即剩余的所有高度,这可以保证页脚始终在容器的底部。

五、圣杯布局

圣杯布局是最常用的布局,所以被比喻为圣杯。它将页面分成五个部分,除了页眉和页脚,内容区分成左边栏、主栏、右边栏。

这里的实现是,不管页面宽度,内容区始终分成三栏。如果宽度太窄,主栏和右边栏会看不到。如果想将这三栏改成小屏幕自动堆叠,可以参考并列式布局。

HTML 代码如下。


<div class="container">
    <header/>
    <div/>
    <main/>
    <div/>
    <footer/>
</div>

CSS 代码如下(CodePen 示例)。


.contariner {
    display: grid;
    grid-template: auto 1fr auto / auto 1fr auto;
}

上面代码要写在容器上面,指定采用 Grid 布局。核心代码是grid-template属性那一行,它是两个属性grid-template-rows(垂直方向)和grid-template-columns(水平方向)的简写形式。


grid-template: <grid-template-rows> / <grid-template-columns>

grid-template-rowsgrid-template-columns都是auto 1fr auto,就表示页面在垂直方向和水平方向上,都分成三个部分。第一部分(页眉和左边栏)和第三部分(页脚和右边栏)都是本来的内容高度(或宽度),第二部分(内容区和主栏)占满剩余的高度(或宽度)。

六、参考链接

前端小课

看了上面的内容,如果你还想进一步学习更多前端知识,欢迎关注 极客大学的前端小课

前端小课除了 CSS,还讲授 JavaScript,尤其是生产中用得最多的几个框架。这次的授课老师是阿里巴巴前手淘前端团队负责人winter,他可能是目前市场上最大牌的前端讲师。

他结合自己的经验,手把手教大家,如何从零开始自己实现一个类似 React 的简单框架,教你领悟前端框架的原理。它是如何将所有功能封装在一起,暴露接口,给开发者使用,并且还能支持组件。

整个前端小课是 4 天视频课程 + 3 天实践训练,还有助教随时答疑辅导、班主任每天督促 + 配套实战作业提交,只需要 ¥9.8

点击这里,或者手机扫描下面的二维码就可报名。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年8月10日

勒索软件产业化的感想

$
0
0

1、

最近,我看到一条新闻。

美国最大旅行社之一的 CWT 公司,内网多达30000台电脑感染了 Ragnar Locker 病毒, 许多文件被加密,无法打开。攻击者要求支付赎金1000万美元。

双方在一个公开的聊天室里面讨价还价,被人看到了,这件事情才暴露。CWT 最终答应支付450万美元(下图)。

2、

我的印象中,美国最近发生了很多这类事件,勒索软件已经成了一个产业。

根据报道,单单是一个叫做 Netwalker 的勒索软件就在过去五个月里面,收入超过2500万美元。它甚至在俄罗斯的论坛里面招募"业务人员"(下图),帮它散布病毒,好处是可以提成60%~70%的赎金。

为了证明自己的"实力",他们还贴出了比特币账单,都是受害者支付的赎金。最小一笔进账,也有近70万美元。

这个组织还不是最厉害的,另一个勒索软件 GandCrab 声称,赎金收入超过20亿美元

3、

为什么这种事件现在变多了?

我认为原因就是比特币。这么大金额的支付,通过传统的银行转账,一定会发现谁是收款人。但是,通过比特币,根本查不出来。

由于可以安全地收到赎金,在丰厚利润的刺激下,这类勒索事件以后可能会层出不穷。大公司和大组织将成为攻击的首选目标,因为它们付得起高额赎金。

4、

如果勒索软件成为一个产业,这就意味着,计算机安全会成为一个热门领域,企业将大幅增加软件安全方面的支出,网络安全工程师会变得很抢手。

所以,安全技术现在值得投资,年轻程序员可以选择主攻这个方向。

老实说,作为一个黑客是一个不错的职业,既可以通过"黑帽子"赚钱(攻击其他系统),也能摇身一变,通过"白帽子"赚钱(提供安全咨询服务)。

5、

最后谈谈,普通企业或者个人使用者,应该怎么防范勒索软件?

(1)我觉得,最简单的措施就是,尽量少用 Windows 系统。Windows 下面真是防不胜防,改用苹果或者 Linux 系统,安全性会提高很多。

(2)数据多备份,关键数据尽量保存在云端。

(3)如果有条件的话,建议使用虚拟化技术。在沙箱环境打开应用软件,这样的话,即使遇到病毒,也不会感染底层系统,因此虚拟化技术也非常看好。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年8月12日

科技爱好者周刊(第 120 期):只有开放才能打败封锁

$
0
0

这里记录每周值得分享的科技内容,周五发布。

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。

周刊讨论区的帖子《谁在招人?》,提供大量就业信息,欢迎访问或发布工作/实习岗位。

封面图

8月5日,伦敦自然历史博物馆重新开馆。工作人员为蛇颈龙化石展品做清洁。(来源:Instagram

本周话题:只有开放才能打败封锁

美国搞技术封锁,不允许中国企业使用美国技术。今天就来谈谈,应该怎么应对这种局面。

华为最近宣布,9月15日以后,手机的麒麟芯片无法生产了,可能将成为绝响,因为台积电迫于美国的禁令,不再接受华为的订单了。

此前,华为手机已经不能预装谷歌服务框架了。但是,安卓系统是开源的,就算不能用上层的谷歌服务,系统本身还是可以用的。

这就是开源软件的好处,它不受美国政府的控制,禁令影响不到它。如果安卓系统是闭源的,华为手机就麻烦了,将没有操作系统可用。有人说,可以自己搞操作系统啊。事实上,这是不现实的。华为的鸿蒙系统就算能搞出来,到哪里去找应用软件呢?怎么说服腾讯和阿里,为你开发鸿蒙版的微信和支付宝呢?最后只能搞一个虚拟机,让安卓应用跑在里面,但那也是建立在安卓是开源系统的基础上啊。

正是因为有了开源软件,才有办法对抗美国的技术封锁。要是有一天,美国不允许中国使用 Windows,那么至少还有 Linux。为了国家的技术安全,就应该考虑多使用开源软件。

开源软件还有一个好处,它有助于推广技术,扩大影响力。中国拥有知识产权的技术或软件,变成世界主流的案例越多,美国的封锁就越不容易奏效。一项技术怎么才能变成业界的主流,开源是一个很有效的方法。

所以我觉得, 政府应该把开源软件定为国家战略。 鼓励国人多使用开源软件(比如 Linux),摆脱对专有技术的依赖;同时,鼓励企业和个人将自己的智力成果与全世界共享,打破美国的技术霸权。最终来说,只有开放才能打败封锁。

数据分析实战

数据分析正成为一门越来越重要的技能,各种职位(比如产品经理和运营销售)都在用到它。很多公司开始招聘专职的数据分析师。

与工程师不同,数据分析师的主要技能和工具是 Excel、SQL 和 Python。本周的课程资料就是开课吧带来的 《大数据分析实战课》,帮助大家掌握上面这些技能和工具。

课程内容是四个大数据分析实战项目,以案例为导向,介绍真实业务场景下的数据分析。

  • 项目一:利用 Python 实现办公自动化。
  • 项目二:海量数据图形可视化。
  • 项目三:电商数据分析及可视化展示。
  • 项目四:玩转高精文本分析。

该课程由资深大数据专家潘海超老师讲授。现在限时优惠,仅需 0 元。

点击这里或者手机扫描下面二维码,微信添加课程助理,就可以免费领取,只有 50 个名额,先到先得。

资讯

1、空气净化机箱

百度贴吧上面,一个网友贴出了照片。他将小米空气净化器改装成了机箱,放入了一块 itx 小主板。电脑的发热量越来越大,需要的散热风扇越来越多,而空气净化机本质上就是一个带有空气过滤功能的风扇,所以两者确实可以合二为一。

空气净化器的风量风压,以及噪音控制能力,是绝大多数机箱风扇无法比的。而且,空气净化器也用直流电,跟机箱可以共用一个电源。

2、智能尿布

一家香港护理用品公司推出了婴儿的"智能尿布",正在众筹。这种尿布里面装有无线传感器,可以通过手机 App 查看尿布的实时数据。

一旦尿布的温度和湿度超标,父母就会立刻得到通知,从而更换尿布或检查婴儿是否正常。除了检查婴儿是否排尿以及尿量,它还可以监视宝宝的姿势和活动,一旦有异常睡姿,也会通知家长。

3、5D 国际象棋

Steam 游戏平台最近出现了一款 5D 国际游戏,除了棋盘是 3D 以外,还有时间轴和决策轴。

这种象棋游戏可以回溯每一步,并且每一步都可以做多种决策,显示成一个决策树,有点像同时玩一盘棋的"平行宇宙"。

4、太阳能运河

印度是一个人多地少的国家,虽然日照充沛,但是缺乏发展太阳能的土地。古吉拉特邦想出了一个解决方法,就是把太阳能电池板架设在河道的上方,覆盖了一整条运河。

这不仅解决了太阳能发电的用地问题,而且减少了运河的水份蒸发,增加了农业灌溉用水。目前已经完成了40公里。

5、Mozilla 裁员

Mozilla 本周宣布裁员250人。这其实不算意外,它的全球雇员超过1000人,但是主要产品都是免费的,这样的雇员规模可能确实太大了。

裁员的一个后果就是,MDN 文档团队基本上被裁掉了,只剩下很少的人,MDN 以后可能都要靠志愿者维护。由于 MDN 是 Web 开发事实上的标准文档,这件事恐怕会对全球的开发者造成很大影响。这也反应了,文档是有代价的,优质文档很难免费提供。

6、一句话消息

  • 一家日本公司开发了气味报警器,一旦遇到烟雾,不是发出报警声,而是散发强烈的芥末气味,用来向聋人和丧失听力的老年人报警。

  • 三个澳大利亚男子乘坐的小船,在南太平洋上偏离航线,漂流到一个小岛上。通过在沙滩上摆出 SOS 求救符号而获救。

  • 马里兰大学的工程师发明了一种透明木材,可以替代玻璃,还比玻璃更坚硬,更隔热,可以阻挡紫外线。

  • 我国研发成功世界最强马力的电力机车"神24",可以牵引一万吨货物或者100节车厢。

文章

1、我参加 Pixar 2020 渲染大赛的作品(英文)

Pixar 动画公司每年举办一个比赛,提供一些数字模型,邀请全世界爱好者对它们进行渲染着色,评选出优胜者。作者介绍了他如何创作第一名作品(上图)。

2、如何自己实现一个全文搜索引擎(英文)

作者通过一个简单的例子,讲解全文搜索引擎的原理,自己如何实现倒排索引。举例用的是 Go 语言,代码很简单,接近伪代码。

3、如何发布 Deno 模块(英文)

Deno 是一个 TypeScript 运行时,可以替代 Node.js。它有一个模块托管服务,本文介绍如果将 GitHub 上面的模块源码,通过 Webhook 发布到官方的托管服务。

4、财政部为什么使用 arctan 函数调节工资总额(中文)

财政部最近下发了一个文件,使用 arctan 函数调节国有金融企业的工资总额。这个函数到底有什么特别之处?

5、2020年值得推荐的13本 Java 书籍(英文)

作者列了一个书单,推荐了13本 Java 学习书籍。

6、如何在谷歌查找到任何信息(英文)

本文通过一些小例子,介绍谷歌的搜索语法。这里还有完整的搜索命令列表

7、张汝京谈中国半导体产业的发展(中文)

张汝京是中芯国际创始人,他在最近一次演讲中,回顾了第一到第三代半导体的发展,以及谈了中国半导体产业如何实现"超车"、第三代半导体未来的发展模式是什么等问题。

8、停电时,冰箱会保持低温多长时间?(英文)

作者做了一个有趣的实验,在冰箱里面放入传感器和树莓派,看看停电后,冷冻室能保持低温多长时间。结果发现,室温19°C的房间中,冷冻室每小时损失的冷度为2.6%,大约26小时后温度将达到0°。

工具

1、Fast

微软官方的 Web Components 组件库。

2、P2

WordPress 团队新发布的团队协作工具,有点类似公司内部的博客系统,可以免费使用,计划会在未来开源。

3、Hasura GraphQL 引擎

一个高性能的 GraphQL 服务器,提供 Postgres上开箱即用的实时GraphQL API。(@shark-h 投稿)

4、codota

一个人工智能的代码提示和补全插件,支持各大主要的 IDE。(@dllen 投稿)

5、proselint

一个命令行程序,用来检查英文文章是否有语义错误。

6、github-readme-stats

一个可以自己部署的服务,生成个人 GitHub 账户的统计,可以插在自述文件里面。这里还有另一个类似的服务。(@Imfondof 投稿)

7、Danfo.js

一个提供跟 Pandas 相同功能的 JS 数学计算库。

8、MeiliSearch

一个开源的全文搜索软件,可以自己搭建服务,支持汉语搜索。

9、lazyhub

命令行的 GitHub 客户端,有图形 UI 界面。

10、mvp.css

一个最简化的 CSS 库,不提供任何自定义的类,只给出最基本的 HTML 元素的样式,适合在它的基础上添加自定义的样式。

资源

1、技术树

为了让后代了解我们如何开发和使用软件,GitHub 官方开出了一个书单,称为"技术树"(the Tech Tree),包括16个大类的200多本经典书籍。这些书籍的数字化版本,将存放在 GitHub 的北极仓库。

2、谷歌职业证书

谷歌推出了职业证书,第一批有四个职业:数据分析、项目经理、UX 设计师、IT 支持。

只要学完 Coursera 的课程,就可以拿到证书,每个月学费几十美元。我觉得,国内大厂也可以这样做,肯定有市场。

3、SQL 实例教程

一个针对初学者的 SQL 简单教程,通过在网页上运行示例来学习 SQL。

4、如何管理 Redis 数据库

DigitalOcean 发布的免费英文电子书,向初学者介绍什么是 Redis 和它的基本用法。

5、BUI App 开发教程

BUI 是一个国产的移动端 H5 框架,这是框架作者写的系列教程,演示如何用 BUI 开发一个网易新闻 App。(@imouou 投稿

图片

1、模拟城市的极限

《模拟城市》是一个电子游戏,要求玩家建设一个现代城市,可以养活尽可能多的人口。

2010年,菲律宾的一个22岁的建筑专业学生,经过大量的计划和反复试验,在《模拟城市》里面创建一个拥有600万居民的极限城市。

这个城市没有任何空间浪费,道路极小化,所有交通都是大众运输,不存在私人车辆。水电都由邻近城市提供,从而消除了对许多基础设施的土地需求。

这个城市是现代化的极限,以最小的面积养活最多的人口,是一个杰作,也是一个令人恐惧的乌托邦。每个居民的一生都在一个高效的小空间里工作和居住。

2、鞋带暗语

冷战时期,中央情报局曾经采用一种鞋带暗语。只要根据鞋面上,鞋带交叉的位置和次数,就能传递事先约定的信息。

上面图片中,黄色表示鞋面上方的鞋带交叉位置。

这种方法非常简单,不受环境约束,外人很难察觉。

文摘

1、服饰公司为什么收购高科技镜子?

lululemon 是一家运动服饰公司,主要生产健身裤。

最近,lululemon 以5亿美元的巨资,收购了一家创业公司 Mirror。

Mirror 的产品是一种用于家庭健身的全身镜,但实际上相当于一台巨型的悬挂在墙上的 iPad,价格为1,495美元。用户每月支付39美元的订阅费,就可以在这面镜子上看到健身课程,然后跟着一起做。这面镜子支持点播,以及老师的现场直播,从瑜伽到拳击都有课程。

为什么生产健身裤的公司要收购开发智能镜子和健身视频的公司呢?

答案是这两家公司都针对同一个客户群体:富裕的新一代年轻人,他们喜欢锻炼身体,喜欢看着镜子里自己运动的样子。

通过这次收购,lululemon 可以增加收入(有了新产品),向现有的健身裤客户销售 Mirror,并且借助新的硬件产品在互联行业赢得一席之地。

lululemon 可以用 Mirror 替换了商店中的所有镜子,客户可以在 Mirror 前面亲自尝试。在服饰商店体验瑜伽课程,这可能会对销售产生巨大影响。

但是,也有一些证据表明,lululemon 客户对这种镜子 Mirror并不特别感兴趣。所以,最终到底会怎样,这是一个很好的收购,还是会像许多其他跨行业收购一样失败,现在还并不知道。

言论

1、

TikTok 揭示了美国乃至全世界的精神病程度。

-- Hacker News 读者

2、

公司刚成立时,需要瑞士军刀型人才。

公司一旦发展壮大,需要菜刀型人才。

-- David Perell

3、

硬件总是变得越来越快,但软件总是变得越来越慢。

-- 维尔斯定律(Wirth's law)

4、

SSD 固态硬盘变成主流,导致 Windows 10 在 HDD 机械硬盘上几乎无法使用。

-- Hacker News 读者

5、

如果我发布开源软件,我会选择最严格的 AGPL 许可证,任何人想围绕我的软件建立业务,都必须将他们的更改提供给所有人。

同时,我还会发布一个商业许可证,如果你不想将更改公诸于世,就必须购买商业许可。

-- Hacker News 读者

回顾

2019年的本周(第 69 期):做得好 vs 做得快

2018年的本周(第 17 期):全球变暖,在劫难逃

订阅

这个周刊每周五发布,同步更新在阮一峰的网络日志微信公众号

微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年8月14日

Node.js 如何处理 ES6 模块

$
0
0

学习 JavaScript 语言,你会发现它有两种格式的模块。

一种是 ES6 模块,简称 ESM;另一种是 Node.js 专用的 CommonJS 模块,简称 CJS。这两种模块不兼容。

很多人使用 Node.js,只会用require()加载模块,遇到 ES6 模块就不知道该怎么办。本文就来谈谈,ES6 模块在 Node.js 里面怎么使用。

一、两种模块的差异

ES6 模块和 CommonJS 模块有很大的差异。

语法上面,CommonJS 模块使用require()加载和module.exports输出,ES6 模块使用importexport

用法上面,require()是同步加载,后面的代码必须等待这个命令执行完,才会执行。import命令则是异步加载,或者更准确地说,ES6 模块有一个独立的静态解析阶段,依赖关系的分析是在那个阶段完成的,最底层的模块第一个执行。

二、Node.js 的区分

Node.js 要求 ES6 模块采用.mjs后缀文件名。也就是说,只要脚本文件里面使用import或者export命令,那么就必须采用.mjs后缀名。Node.js 遇到.mjs文件,就认为它是 ES6 模块,默认启用严格模式,不必在每个模块文件顶部指定"use strict"

如果不希望将后缀名改成.mjs,可以在项目的package.json文件中,指定type字段为module


{
   "type": "module"
}

一旦设置了以后,该目录里面的 JS 脚本,就被解释用 ES6 模块。


# 解释成 ES6 模块
$ node my-app.js

如果这时还要使用 CommonJS 模块,那么需要将 CommonJS 脚本的后缀名都改成.cjs。如果没有type字段,或者type字段为commonjs,则.js脚本会被解释成 CommonJS 模块。

总结为一句话:.mjs文件总是以 ES6 模块加载,.cjs文件总是以 CommonJS 模块加载,.js文件的加载取决于package.json里面type字段的设置。

注意,ES6 模块与 CommonJS 模块尽量不要混用。require命令不能加载.mjs文件,会报错,只有import命令才可以加载.mjs文件。反过来,.mjs文件里面也不能使用require命令,必须使用import

三、CommonJS 模块加载 ES6 模块

CommonJS 的require()命令不能加载 ES6 模块,会报错,只能使用import()这个方法加载。


(async () => {
  await import('./my-app.mjs');
})();

上面代码可以在 CommonJS 模块中运行。

require()不支持 ES6 模块的一个原因是,它是同步加载,而 ES6 模块内部可以使用顶层await命令,导致无法被同步加载。

四、ES6 模块加载 CommonJS 模块

ES6 模块的import命令可以加载 CommonJS 模块,但是只能整体加载,不能只加载单一的输出项。


// 正确
import packageMain from 'commonjs-package';

// 报错
import { method } from 'commonjs-package';

这是因为 ES6 模块需要支持静态代码分析,而 CommonJS 模块的输出接口是module.exports,是一个对象,无法被静态分析,所以只能整体加载。

加载单一的输出项,可以写成下面这样。


import packageMain from 'commonjs-package';
const { method } = packageMain;

五、同时支持两种格式的模块

一个模块同时要支持 CommonJS 和 ES6 两种格式,也很容易。

如果原始模块是 ES6 格式,那么需要给出一个整体输出接口,比如export default obj,使得 CommonJS 可以用import()进行加载。

如果原始模块是 CommonJS 格式,那么可以加一个包装层。


import cjsModule from '../index.js';
export const foo = cjsModule.foo; 

上面代码先整体输入 CommonJS 模块,然后再根据需要输出具名接口。

你可以把这个文件的后缀名改为.mjs,或者将它放在一个子目录,再在这个子目录里面放一个单独的package.json文件,指明{ type: "module" }

另一种做法是在package.json文件的exports字段,指明两种格式模块各自的加载入口。


"exports":{ 
    "require": "./index.js",
    "import": "./esm/wrapper.js" 
}

上面代码指定require()import,加载该模块会自动切换到不一样的入口文件。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年8月20日

科技爱好者周刊(第 121 期):为什么人类没有越来越闲?

$
0
0

这里记录每周值得分享的科技内容,周五发布。

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。

周刊讨论区的帖子《谁在招人?》,提供大量就业信息,欢迎访问或发布工作/实习岗位。

封面图

8月12日是"世界大象日",西双版纳野象谷景区为大象准备了美食。(via

本周话题:为什么人类没有越来越闲?

很多人相信,随着科技的发展,未来的人们会有很多空闲时间,因为机器会干活。

这种观点是不对的。即使有高度智能的机器,未来的工人也不会空闲,可能还会更忙,至少资本主义制度是如此。

将近100年前的1930年,经济学家凯恩斯预言,在一个世纪之内,生产力的提高将使发达国家的居民每周工作15个小时,还能保持体面的生活水平。

他的预测完全错误。今天,没有一个国家实现每周工作15小时,连接近的都没有,反而出现了996这样的工作制。我相信,再过100年,也不会有每周15小时工作制。

让我们想象一个假设的情景。一家工厂以前每天生产100个产品,随着技术进步,现在每天可以生产200个。如果能够全卖出去,那么工人的劳动时间并不会减少。

如果市场还是原来那样,只能卖出去100个,那么工厂就有50%的产能空出来了。这时,管理层有两个选择。

选择一:工人只工作半天,保持工资不变。

选择二:保留一半的工人,解雇其余的人。

现实中,一定是第二种选择,因为这样有利于增加利润。所以, 技术进步带来的收益,不会变为工人的空闲时间,而是变为一些工人更忙碌,另一些工人失业 ,真正的赢家就是资本家,增加的利润都归他们。

这就是当今世界正在发生的事情,空闲的工人最终会被解雇。IT 行业最明显,因为技术进步对这个行业影响最大。

资本主义追求利润最大化,一旦销售不能同步扩张,技术进步就必然导致裁员,那些失业的人如果不能及时找到工作,就会越来越穷。那些还在工作岗位的人则由于负担更多的生产力,而变得越来越忙。

Webpack 免费教程

现在的前端开发,打包工具都会选择 Webpack,它将不同的模块合并成一个脚本。

用过的人都知道,Webpack 是一个没有易用性的软件,新人上手和理解很不容易。而且,它还在不断发新版本,添加新功能。

Webpack 5.0 版已经开发了近两年,现在发到了beta 27,离正式发布依然很遥远。为什么5.0这么难产?原因就是它引入了两个新概念"微前端"(micro front-end)和"模块联合"(module federation),官方文档写得非常抽象。它们出来以后,学习者的难度恐怕又会上升了。

今天谈到 Webpack 的原因是,本周的课程资料是来自开课吧的《Webpack 教程》。刚刚出来的新教程,不收费,讲解构建和打包原理,这是理解Webpack 的基础,并教大家实现一个简易的 Webpack。

这个教程吸取其他教程的优点,尽量简单地讲解原理,感兴趣的同学可以听听看。

点击这里或者扫描下面的二维码,就可以领取。

资讯

1、鸟类的眼泪与人类相同

巴西科学家为了研究眼泪的进化,检查了7种鸟类和爬行动物的眼泪,包括鹦鹉、老鹰、猫头鹰、乌龟、鳄鱼等。上图是从老鹰和鳄鱼收集眼泪。

结果发现,鸟类和爬行类动物的眼泪,与人类的很相似,均包含相似数量的电解质(钠和氯化物),不过猫头鹰和海龟的眼泪包含较高的尿素和蛋白质。这说明,眼泪基本上没有进化。

2、装入树莓派的笔记本电脑

老式笔记本电脑往往带有光驱,现在已经用处不大了。一位电脑爱好者就把光驱拆了下来,改装上了树莓派(Zerow 型号),使用的托盘也是自己 3D 打印的。

这就相当于这个笔记本里面包含两台电脑。树莓派从笔记本电脑获取电源,笔记本一开机,树莓派就会运行。笔记本电脑的屏幕,光标和键盘可用于控制树莓派。要访问树莓派,可以使用 VNC 协议远程进入系统。

3、透明 OLED 屏幕

小米本周发布了透明电视机(上图),没有开机时就是一块透明的玻璃,开机以后变成显示屏。它的原理很简单,就是两片玻璃之间夹了一块 OLED 面板,发光二极管采用已经成熟的透明电极技术,就能实现透明屏幕,但透明度肯定不及玻璃。

这种技术最大的应用,就是可以装在车窗上(下图)。北京地铁的车窗通过投影,也有透明显示屏的效果,非常炫酷,请看下面视频

4、红砖电池

美国华盛顿大学的研究团队,尝试了一项很有创意的发明。他们根据电容储能的原理,将普通红砖变成了电池。这是因为红砖含有铁元素,而且内部是多孔的,有巨大的表面积,在内部小孔里面加上特殊涂层以后,涂层与铁元素之间相互作用,就能像超级电容那样储能。

一块砖头可以在15秒内充满电,然后供 LED 二极管亮大约11分钟。不过,它的电量偏小,每平方米的墙壁大约可以储能1.6瓦时,这意味着三米乘六米的一堵墙壁可以储能约20瓦时,还不具有实用价值。

5、地表最高温度

8月16日,美国加利福尼亚死亡谷的温度达到54.4摄氏度,是地表有记录以来的第三位最高温度。

100多年前的1913年7月10日,也是在这个地方,记录到地表最高温56.7°C,迄今没有被打破。为什么这个地方温度会成为全球之最,真是很奇怪的事情。死亡谷的纬度是北纬36.5度,跟山东省济南市在同一个纬度,也不算内陆地区,离海边只有200多公里。

6、一句话消息

  • 美国法院废除一项已经实施70年的禁令,允许电影制片公司拥有电影院。原因是 Netflix 等流媒体公司的兴起,使得该规定毫无意义。

  • 苹果公司对一个家庭购物 App 提起诉讼,要求对方更改 Logo,理由是跟苹果公司的 Logo 太接近。但是根据下图,完全不像啊。

  • 国际暗空协会每年会举办摄影比赛,要求全球爱好者提交照片,展示银河系的美妙,或者人类光源对天空的污染。今年的获奖作品中,有一张中国长城的照片,显示了光污染的严重。

  • 上海环境博览会上,厂商展出了无人清洁车,该车会自动捡起地上的水瓶、纸张和烟头。

  • 天文学家发现宇宙中最快的恒星,运动速度达到光速的8%。

  • 微软公司宣布,明年将终止对 IE 11 和旧版 Edge 浏览器的支持。

文章

1、CSS 生成艺术(英文)

作者介绍如何用 CSS 生成各种形状的图形。

2、如何使用 Rust 开发单页应用 SPA(英文)

单页应用(SPA)都是使用 JavaScript 开发,但是有了 WebAssembly 以后,其他语言也可以编译成 JavaScript。本文就完全使用 Rust 语言开发上图的 SPA,后端开发者现在也可以写前端了。

3、Manjaro 与 Arch Linux 的区别(英文)

Manjaro 与 Arch 都是流行的 Linux 发行版,Manjaro 基于 Arch,但是有自己显著的特点。

4、单个创始人的表现更好(英文)

常规的建议是,你必须先组建团队,然后才能创业。但是,统计显示,单个创始人的公司更可能盈利,本文分析原因。

5、熵的羊群解释(英文)

本文用羊群作为例子,通过图片较为通俗地解释了,物理学的熵(entropy)是概率导致的。

6、CRDT 算法是否适合多人实时编辑?(英文)

CRDT 算法用于分布式服务实现数据同步,比如同一篇文档的多人实时编辑。Yjs 是 CRDT 的一个实现,本文是它的作者对这个算法的解释,内容有一定深度。

7、TypeScript 简明介绍(英文)

一篇针对初学者的 TypeScript 介绍,写得相当简洁。

8、HTML smuggling 解释(英文)

很多人不知道,JavaScript 可以脚本生成 exe 文件,让用户下载。本文介绍如何在网页里面嵌入一个恶意的可执行文件。

9、广告短信的退订内幕(中文)

很多促销广告短信都说回复 T 退订,但是回复了 T 之后会发生什么?(@9527q 投稿)

10、微信小商店初体验(中文)

7 月 14 日,微信开放了微信小商店的内测,这是官方的开店功能,跟微店等第三方平台是不一样的。这篇文章介绍了申请流程以及使用体验。目前,微信小商店已经允许个人申请了,可用于个人开店。(@juemuren4449 投稿)

工具

1、QRpicture

一个在线工具,把图片变成可以扫描的二维码。

2、isoflow

一个绘制示意图的在线工具。

3、ScreenplaySubs

浏览器插件,播放 Netflix 视频的时候,同步显示剧本内容。

4、Quarantines Sites

一个在线工具,可以通过它来访问其他网站,避免被追踪。

5、umami

一个开源的网站访问统计服务。

6、ts-migrate

Airbnb 公司新的开源项目,可以将 JavaScript 代码转成 TypeScript 代码。

7、js.cool

为开源项目提供免费的js.cool的子域名,类似js.org,支持 CNAME 绑定。(@willin 投稿)

8、Screen Share Party

该网站通过 WebRTC 协议把你的桌面分享给其他人。它生成一个 URL,其他人访问这个 URL,就能看到你的桌面。

9、maza

一个本地的广告拦截器,通过封锁 DNS 达到拦截广告的目的。它的特点就是非常简单,就是一个 Bash 脚本,可以作为学习脚本编程的范例。

资源

1、统计学习导论(An Introduction to Statistical Learning)

免费英文电子书,可以作为非数学专业学生的统计学教材,侧重机器学习的统计基础,提供 R 语言的例子。

2、rms.sexy

该网站专门收集理查德·斯托曼使用笔记本电脑的照片。

3、1940年纽约历史地图

这个网站提供1940年代的纽约在线地图,并且还可以查看各个地点的历史照片。

4、AI 还原古罗马皇帝

这个项目使用 AI 模型,将古罗马皇帝的塑像还原成高清晰度人像照片。

5、物理学书单

作者列了一个英文书单,对于想自学物理学、达到本科以及研究生水平的读者,应该阅读哪些教材。

6、COVID-19 舆论新闻可视化

山东大学 VisLab 的一个可视化项目,分析疫情对舆论和新闻的影响。(@pearmini 投稿)

图片

1、NeXT 徽标

1986年,乔布斯向著名的平面设计师保罗·兰德(Paul Rand)支付了10万美元,要求为自己的 NeXT 计算机公司设计徽标。

下面就是最后的成品。1986年的10万美元,要比今天的100万美元更值钱。

文摘

1、姆潘巴现象

1963年,坦桑尼亚的一个高中上烹饪课,学生们做冰淇淋。

一个叫做姆潘巴(Erasto Mpemba)的学生,发现了一个奇怪的现象。两个装有相同体积水的容器,一个是35°C,另一个是100°C,同时放进冰箱,竟然是100°C的水首先开始结冰。也就是说,温度高的水会更快结冰,这是为什么?

物理老师也不知道这是怎么回事,就把这个结果发表出来。这引起物理学界的争论,科学家也无法解释,就把它称为"姆潘巴现象"。

2012年,英国皇家化学学会举行了一场竞赛,征集论文,对姆潘巴现象进行解释。共有22,000人参加,获胜者提出了两种解释。

(1)过冷(Supercooling)。低温液体会在一定时间内存在过冷现象,低于凝固点仍维持液体。

(2)对流。温度高的液体有更高的对流,有利于散热。

2、为什么咨询业不适合我?

6个月前,我开了一家 IT 咨询公司。现在,我得出了结论,咨询业不是令人满意的职业,并不适合我。

作为顾问,我只了解客户业务和问题的一小部分,没法接触到全局的战略性工作。我想制造汽车,但是客户只要求我制造方向盘。

客户只把我视为服务提供商,而不是合作伙伴。在工作中,我希望与合作者建立深厚的关系,但实际上只会与许多人建立肤浅的关系。

咨询业会接触到各种各样的业务,需要花费大量时间了解每一个客户的业务场景。随着时间的流逝,我的注意力都被各种琐碎的业务问题分散了,我在工程和管理上的核心技能正在逐渐消失,就像肌肉因使用不当而萎缩一样。

每一个新业务,我都需要一遍遍重复同样的流程,与每个客户从头开始讨论项目目标、付款安排,运行安排、时间节点等等。我开始意识到,我不想重复地完成短期项目,而是希望参与长期项目,随着时间的推移不断加深对项目的理解,并可以在前期的基础上不断开发。

最后,我希望有一种目标感,大家聚在一起,创造一些了不起的东西。咨询业无法提供这种目标感。

我最终决定不干咨询了。

言论

1、

Web 和浏览器已经发展到令人恐怖的技术规模。微软完全放弃了,Mozilla 在死亡线上挣扎,Safari 根本无足轻重,只剩下 Google 一个玩家。

我呼吁谷歌立即无限期地中止向 Web 和浏览器添加新 API。浏览器实际上应该开始考虑缩小 API 并削减功能,更关注性能、效率、可靠性和安全性。

-- 《Web 需要停下来》

2、

谷歌一直希望降低地址栏的重要性,因为它的目标是推广 AMP 技术,将内容都放在自家的服务器上面。没有了地址栏,用户就看不出来这是谷歌的网站,而不是原始网站。

-- Hacker News 读者,讨论 Chrome 86 浏览器将不再显示完整的网页地址

3、

无知的一阶效应包括做出错误的决定,二阶效应包括不了解决定为何错误。

-- unintended consequences

4、

在美国,大家都在谈 TikTok,为什么没有人谈 AirDroid?

它也来自中国,下载量超过1亿,拥有对大量 Android 设备的完全访问权限。与 TikTok 相比,它拥有的数据量更多。

-- Hacker News 读者

5、

去年,苹果应用商店的销售额为5190亿美元(包括硬件),而亚马逊网站为3280亿美元。所以,前者才是美国最大的在线零售商。

-- 《亚马逊并不是最大的在线零售商》

6、

只是因为让游戏 Fortnite 在应用商店上架,苹果在过去三年就获得3.6亿美元纯利润(因为可以提成30%的销售额)。

-- 《苹果从 Fortnite 获利3.6亿美元》

回顾

2019年的本周(第 70 期):世界进入负利率时代,这意味什么

2018年的本周(第 18 期):无人机攻击,难以防范

订阅

这个周刊每周五发布,同步更新在阮一峰的网络日志微信公众号

微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年8月21日

rsync 用法教程

$
0
0

一、简介

rsync 是一个常用的 Linux 应用程序,用于文件同步。

它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。它也可以当作文件复制工具,替代cpmv命令。

它名称里面的r指的是 remote,rsync 其实就是"远程同步"(remote sync)的意思。与其他文件传输工具(如 FTP 或 scp)不同,rsync 的最大特点是会检查发送方和接收方已有的文件,仅传输有变动的部分(默认规则是文件大小或修改时间有变动)。

二、安装

如果本机或者远程计算机没有安装 rsync,可以用下面的命令安装。


# Debian
$ sudo apt-get install rsync

# Red Hat
$ sudo yum install rsync

# Arch Linux
$ sudo pacman -S rsync

注意,传输的双方都必须安装 rsync。

三、基本用法

3.1 -r 参数

本机使用 rsync 命令时,可以作为cpmv命令的替代方法,将源目录同步到目标目录。


$ rsync -r source destination

上面命令中,-r表示递归,即包含子目录。注意,-r是必须的,否则 rsync 运行不会成功。source目录表示源目录,destination表示目标目录。

如果有多个文件或目录需要同步,可以写成下面这样。


$ rsync -r source1 source2 destination

上面命令中,source1source2都会被同步到destination目录。

3.2 -a 参数

-a参数可以替代-r,除了可以递归同步以外,还可以同步元信息(比如修改时间、权限等)。由于 rsync 默认使用文件大小和修改时间决定文件是否需要更新,所以-a-r更有用。下面的用法才是常见的写法。


$ rsync -a source destination

目标目录destination如果不存在,rsync 会自动创建。执行上面的命令后,源目录source被完整地复制到了目标目录destination下面,即形成了destination/source的目录结构。

如果只想同步源目录source里面的内容到目标目录destination,则需要在源目录后面加上斜杠。


$ rsync -a source/ destination

上面命令执行后,source目录里面的内容,就都被复制到了destination目录里面,并不会在destination下面创建一个source子目录。

3.3 -n 参数

如果不确定 rsync 执行后会产生什么结果,可以先用-n--dry-run参数模拟执行的结果。


$ rsync -anv source/ destination

上面命令中,-n参数模拟命令执行的结果,并不真的执行命令。-v参数则是将结果输出到终端,这样就可以看到哪些内容会被同步。

3.4 --delete 参数

默认情况下,rsync 只确保源目录的所有内容(明确排除的文件除外)都复制到目标目录。它不会使两个目录保持相同,并且不会删除文件。如果要使得目标目录成为源目录的镜像副本,则必须使用--delete参数,这将删除只存在于目标目录、不存在于源目录的文件。


$ rsync -av --delete source/ destination

上面命令中,--delete参数会使得destination成为source的一个镜像。

四、排除文件

4.1 --exclude 参数

有时,我们希望同步时排除某些文件或目录,这时可以用--exclude参数指定排除模式。


$ rsync -av --exclude='*.txt' source/ destination
# 或者
$ rsync -av --exclude '*.txt' source/ destination

上面命令排除了所有 TXT 文件。

注意,rsync 会同步以"点"开头的隐藏文件,如果要排除隐藏文件,可以这样写--exclude=".*"

如果要排除某个目录里面的所有文件,但不希望排除目录本身,可以写成下面这样。


$ rsync -av --exclude 'dir1/*' source/ destination

多个排除模式,可以用多个--exclude参数。


$ rsync -av --exclude 'file1.txt' --exclude 'dir1/*' source/ destination

多个排除模式也可以利用 Bash 的大扩号的扩展功能,只用一个--exclude参数。


$ rsync -av --exclude={'file1.txt','dir1/*'} source/ destination

如果排除模式很多,可以将它们写入一个文件,每个模式一行,然后用--exclude-from参数指定这个文件。


$ rsync -av --exclude-from='exclude-file.txt' source/ destination

4.2 --include 参数

--include参数用来指定必须同步的文件模式,往往与--exclude结合使用。


$ rsync -av --include="*.txt" --exclude='*' source/ destination

上面命令指定同步时,排除所有文件,但是会包括 TXT 文件。

五、远程同步

5.1 SSH 协议

rsync 除了支持本地两个目录之间的同步,也支持远程同步。它可以将本地内容,同步到远程服务器。


$ rsync -av source/ username@remote_host:destination

也可以将远程内容同步到本地。


$ rsync -av username@remote_host:source/ destination

rsync 默认使用 SSH 进行远程登录和数据传输。

由于早期 rsync 不使用 SSH 协议,需要用-e参数指定协议,后来才改的。所以,下面-e ssh可以省略。


$ rsync -av -e ssh source/ user@remote_host:/destination

但是,如果 ssh 命令有附加的参数,则必须使用-e参数指定所要执行的 SSH 命令。


$ rsync -av -e 'ssh -p 2234' source/ user@remote_host:/destination

上面命令中,-e参数指定 SSH 使用2234端口。

5.2 rsync 协议

除了使用 SSH,如果另一台服务器安装并运行了 rsync 守护程序,则也可以用rsync://协议(默认端口873)进行传输。具体写法是服务器与目标目录之间使用双冒号分隔::


$ rsync -av source/ 192.168.122.32::module/destination

注意,上面地址中的module并不是实际路径名,而是 rsync 守护程序指定的一个资源名,由管理员分配。

如果想知道 rsync 守护程序分配的所有 module 列表,可以执行下面命令。


$ rsync rsync://192.168.122.32

rsync 协议除了使用双冒号,也可以直接用rsync://协议指定地址。


$ rsync -av source/ rsync://192.168.122.32/module/destination

六、增量备份

rsync 的最大特点就是它可以完成增量备份,也就是默认只复制有变动的文件。

除了源目录与目标目录直接比较,rsync 还支持使用基准目录,即将源目录与基准目录之间变动的部分,同步到目标目录。

具体做法是,第一次同步是全量备份,所有文件在基准目录里面同步一份。以后每一次同步都是增量备份,只同步源目录与基准目录之间有变动的部分,将这部分保存在一个新的目标目录。这个新的目标目录之中,也是包含所有文件,但实际上,只有那些变动过的文件是存在于该目录,其他没有变动的文件都是指向基准目录文件的硬链接。

--link-dest参数用来指定同步时的基准目录。


$ rsync -a --delete --link-dest /compare/path /source/path /target/path

上面命令中,--link-dest参数指定基准目录/compare/path,然后源目录/source/path跟基准目录进行比较,找出变动的文件,将它们拷贝到目标目录/target/path。那些没变动的文件则会生成硬链接。这个命令的第一次备份时是全量备份,后面就都是增量备份了。

下面是一个脚本示例,备份用户的主目录。


#!/bin/bash

# A script to perform incremental backups using rsync

set -o errexit
set -o nounset
set -o pipefail

readonly SOURCE_DIR="${HOME}"
readonly BACKUP_DIR="/mnt/data/backups"
readonly DATETIME="$(date '+%Y-%m-%d_%H:%M:%S')"
readonly BACKUP_PATH="${BACKUP_DIR}/${DATETIME}"
readonly LATEST_LINK="${BACKUP_DIR}/latest"

mkdir -p "${BACKUP_DIR}"

rsync -av --delete \
  "${SOURCE_DIR}/" \
  --link-dest "${LATEST_LINK}" \
  --exclude=".cache" \
  "${BACKUP_PATH}"

rm -rf "${LATEST_LINK}"
ln -s "${BACKUP_PATH}" "${LATEST_LINK}"

上面脚本中,上一次备份的目录${BACKUP_DIR}/${DATETIME}是基准目录,每一次同步都会生成一个新目录,然后将${BACKUP_DIR}/latest指向这个新目录,作为下一次的基准目录,再删除上一次的基准目录。由于--link-dest对于那些没有变动的文件,生成的是硬链接,而不是软链接,所以即使删除基准目录,那些文件依然可以访问。

七、配置项

-a--archive参数表示存档模式,保存所有的元数据,比如修改时间(modification time)、权限、所有者等,并且软链接也会同步过去。

--append参数指定文件接着上次中断的地方,继续传输。

--append-verify参数跟--append参数类似,但会对传输完成后的文件进行一次校验。如果校验失败,将重新发送整个文件。

-b--backup参数指定在删除或更新目标目录已经存在的文件时,将该文件更名后进行备份,默认行为是删除。更名规则是添加由--suffix参数指定的文件后缀名,默认是~

--backup-dir参数指定文件备份时存放的目录,比如--backup-dir=/path/to/backups

--bwlimit参数指定带宽限制,默认单位是 KB/s,比如--bwlimit=100

-c--checksum参数改变rsync的校验方式。默认情况下,rsync 只检查文件的大小和最后修改日期是否发生变化,如果发生变化,就重新传输;使用这个参数以后,则通过判断文件内容的校验和,决定是否重新传输。

--delete参数删除只存在于目标目录、不存在于源目标的文件,即保证目标目录是源目标的镜像。

-e参数指定使用 SSH 协议传输数据。

--exclude参数指定排除不进行同步的文件,比如--exclude="*.iso"

--exclude-from参数指定一个本地文件,里面是需要排除的文件模式,每个模式一行。

--existing--ignore-non-existing参数表示不同步目标目录中不存在的文件和目录。

-h参数表示以人类可读的格式输出。

-h--help参数返回帮助信息。

-i参数表示输出源目录与目标目录之间文件差异的详细情况。

--ignore-existing参数表示只要该文件在目标目录中已经存在,就跳过去,不再同步这些文件。

--include参数指定同步时要包括的文件,一般与--exclude结合使用。

--link-dest参数指定增量备份的基准目录。

-m参数指定不同步空目录。

--max-size参数设置传输的最大文件的大小限制,比如不超过200KB(--max-size='200k')。

--min-size参数设置传输的最小文件的大小限制,比如不小于10KB(--min-size=10k)。

-n参数或--dry-run参数模拟将要执行的操作,而并不真的执行。配合-v参数使用,可以看到哪些内容会被同步过去。

-P参数是--progress--partial这两个参数的结合。

--partial参数允许恢复中断的传输。不使用该参数时,rsync会删除传输到一半被打断的文件;使用该参数后,传输到一半的文件也会同步到目标目录,下次同步时再恢复中断的传输。一般需要与--append--append-verify配合使用。

--partial-dir参数指定将传输到一半的文件保存到一个临时目录,比如--partial-dir=.rsync-partial。一般需要与--append--append-verify配合使用。

--progress参数表示显示进展。

-r参数表示递归,即包含子目录。

--remove-source-files参数表示传输成功后,删除发送方的文件。

--size-only参数表示只同步大小有变化的文件,不考虑文件修改时间的差异。

--suffix参数指定文件名备份时,对文件名添加的后缀,默认是~

-u--update参数表示同步时跳过目标目录中修改时间更新的文件,即不同步这些有更新的时间戳的文件。

-v参数表示输出细节。-vv表示输出更详细的信息,-vvv表示输出最详细的信息。

--version参数返回 rsync 的版本。

-z参数指定同步时压缩数据。

八、参考链接

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2020年8月26日
Viewing all 688 articles
Browse latest View live