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

科技爱好者周刊(第 137 期):Slack 被收购,以及企业的技术选型

$
0
0

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

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

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

封面图

12月3日,埃及工程师开发的机器人,正在对病人进行超声波检查。(via

本周话题:Slack 被收购,以及企业的技术选型

Slack 是一个非常优秀的团队通信协作软件,如果你没用过,我很推荐试试看。

它在全世界有众多的用户,去年的收入是8.33亿美元。

上周,它把自己卖给了 Salesforce,售价高达277亿美元(约1800亿人民币)。从此,Slack 不再作为独立公司运行,而成为 Salesforce 的一个部门。

这其实是一件有点奇怪的事情。Slack 的发展势头非常好,疫情期间正流行远程办公,它却在这时选择不当独脚兽了,套现离场,这是为什么?

最主要的原因大概是,它有一个强劲的对手 Microsoft Teams。这是微软模仿 Slack 推出的团队协作软件,可以跟 Office 绑在一起使用,Slack 感到极大的竞争压力。

Teams 是2016年10月发布的,到现在的四年间,用户从零变成了1.15亿。同样这段时间,Slack 的用户从400万增加到1200万。也就是说,Teams 的增长速度大概是 Slack 的十几倍!

这其实很容易理解。企业软件的背后有没有巨头支持,销售结果是完全不一样的。两个软件的功能完全相同,一家出自创业公司,另一家背后是微软,你说企业会选择谁的产品?

以前有一种说法,第一线程序员可以自由选择软件工具,然后"自下而上"推动整个企业采用,我也曾经信以为真。但是,这种想法是不现实的, 第一线程序员影响不了技术选型和采购决策,而决策者害怕承担决策错误的责任。 你选择了一个小软件,万一没有很好地支持业务,或者软件本身有缺陷,你是要负责的。

软件业有一句名言,"没人因为选择 Java 而被开除"。 选择有大公司支持的技术,可以得到某种保证。那些技术可以不先进、不完美,甚至很乏味,但是它能保证得到积极维护和开发,具有庞大的生态系统和社区,并已经在大型业务环境经受了实战考验。企业就喜欢这样的技术,可以减少技术选型的风险,万一出事就不是决策者的责任。

微软在 Teams 上投入重金,并且还有庞大的销售部门在推销,Slack 怎么可能竞争得过!并非巧合的是,Slack 选择卖身的 Salesforces,技术能力也许不属于世界最强之列,但一定是世界上销售能力最强的软件公司之一。

顺便说一下,前端的技术选型也是如此。企业选择不知名的 JS 框架是有风险的,可以预言,最终赢的还是 React。它是世界排名第一的前端框架,背后有 Facebook 的支持,所以"没人因为选择 React 而被开除"。

《前端性能优化》视频课程

性能优化通常是软件开发的高层次内容,属于对高级程序员的要求。一方面,先保证软件的安全和功能,然后才会考虑性能;另一方面,只有懂得底层细节,才能提高性能。

因此,掌握性能优化,对于面试和涨薪是有帮助的,也有利于扩展自己的发展空间。

本周的课程资料,就是一个专门的视频教程 《前端性能优化专项突破》,主讲老师大圣是前百度/360高级架构师,现在开课吧。

他会针对性地分析前端性能优化的高频面试题,比如输入 URL 后的浏览器内部工作流程,如何缩减首屏加载时间等等。他还会提供一些通用的、可实操的性能优化方案。另外,他还会讲一些个人经历,如何提升个人核心竞争力,薪资从刚毕业的 2K 上涨到 40k。

这个视频课程长达 325 分钟,内容非常实在。课程原价699元,周刊读者微信扫描下面二维码,就可以 0 元领,没有任何条件,不用转发,不用分享。

仅限200名,送完即止。

资讯

1、最齐全的笔记本

一家英国公司做出了史上功能最齐全的笔记本,桌面电脑能够包含的组件,它都包含:

  • 7个屏幕,其中4个是17寸 4K 屏幕
  • 4个网卡,其中2个是无线网卡
  • 104键的背光键盘
  • 128GB 内存
  • 16TB SSD 硬盘
  • 独立的系统状态监视器

目前只是原型机,没有披露售价,最大的缺点是它的重量高达10公斤。

2、隼鸟2号送回岩石样本

2014年12月3日,日本发射了隼鸟2号探测飞船(Hayabusa-2,下图),飞向一颗叫做"龙宫"(Ryugu)的小行星,2018年到达。

2019年2月22日,隼鸟2号成功登陆小行星"龙宫"表面。4月5日,发射一颗金属弹,击中龙宫表面(下图),收集了弹出的岩石,这是人类首次通过发射金属弹制造陨石坑。

2020年12月5日,隼鸟2号飞近地球时,分离了回收舱。第二天12月6日,回收舱降落在澳大利亚南部沙漠地带,送回了小行星的岩石标本。

目前,隼鸟2号正在继续开展下一个探测计划,飞往另一颗小行星,预计十年后的2031年能飞到那里。

3、遛狗不牵绳的监控系统

《上海市养犬管理条例》规定,遛狗必须牵绳,违者罚款。最近,虹口公安分局在辖区多个小区,安装了一套智能系统,抓拍遛狗不牵绳者。

该系统会自动识别画面中的犬类,再根据旁边人物同框的频率,判断该人是否为狗主人,后台就会将遛狗不牵绳者的照片推送至辖区民警,然后民警和居委干部上门对犬主人进行处罚。

试点运行后,民警发现该系统还能识别流浪狗,可以进行收容。

4、打捞汽车滚装船

2019年9月,一艘200米长的汽车滚装船在美国佐治亚州外海沉没,上面装有4000辆汽车。最近,这艘船被打捞起来,场面非常壮观。

为了将它彻底拉出水面,工人把船体一切为二,露出了里面挤压变形的汽车。

5、一句话消息

  • 微软在 XBOX 官方商店出售 Windows 95 毛衣,售价69.99美元。蓝白底色大概是象征 Windows 95 默认桌面的蓝天白云。

  • 中国的核聚变实验装置"环流器二号",12月4日在成都实现首次放电。核聚变是太阳能的来源,世界各国都在研究,目前还没有任何一个国家可以做到可控的核聚变。

  • 新加坡成为世界第一个允许"人工鸡肉"上市销售的国家,这是实验室通过培养和分裂鸡肉细胞得到的鸡肉。其他肉类理论上也可能通过这种方式生产出来。

  • 汉莎航空由于疫情期间国际航班乘客锐减,推出了"经济舱卧铺",将座椅中间的扶手拆掉,允许乘客躺在一排座椅上,票价增加260美元。

  • 一个印尼村民的房屋,8月时被一颗从天而降的约2公斤的陨石砸毁。由于该陨石是很罕见的碳质陨石,被美国人收购,据说价格高达100万美元以上。

  • 一个瑞典工程师发明了一种自动喂食器,只要喜鹊将瓶盖之类的垃圾丢在里面,就能得到食物。

文章

1、中国机床业路在何方?(中文)

2012年,沈阳机床的销售量世界第一,但是如今已经破产。18家中国大型机床国企几乎全军覆没,中国高档数控机床90%以上靠进口。作为全球机床第一大生产国、第一大消费国,中国机床业,怎么落到这般田地?

2、云游戏的现状(英文)

云游戏指的是游戏安装和运行都在云端,用户通过网络在本地玩。本文测评了美国目前的各种云游戏服务,包括 Google Stadia、Amazon Luna、Geforce Now、PlayStation Now 等。

3、2020年中国的获奖建筑(中文)

本文介绍上海当代艺术博物馆最近颁发的"中国建筑奖"的获奖建筑,上图是山西省晋城市浙水村的自然书屋。

4、神经网络的6种基本结构(英文)

本文介绍学习神经网络必须要了解的6种基本结构,上图就是最简单的感知器(Perceptron)。

5、Dweb 协议栈(英文)

Dweb 指的是分布式互联网,不再存在中央服务器,本文介绍它涉及的各种协议。

6、React 防止 XSS 攻击的注意点(英文)

XSS 指的是代码注入,这是一种常见的攻击。React 框架本身带有防 XSS 的机制,但是开发时还是有一些地方需要注意。

7、我面试谷歌伦敦 SRE 的经验和教训(中文)

作者5年前接到过谷歌的面试邀请,当时问了一道队列+哈希表的题,可惜当时水平太差连第一面45分钟的 coding 都没过。再后来这几年一直投, 甚至去年找朋友内推都没法过简历关。(@DoctorLai 投稿)

8、CSS 的竖行横书组合(中文)

CSS 可以做到中文竖排,并且内部数字是横排的效果(上图)。(@232650413 投稿)

9、如何没有 Cookie 使用 Google Analytics?(英文)

Google Analytics 是世界最大的网站访问统计服务,它最近允许不使用 Cookie,但是这样就无法区分用户了,只能单纯统计浏览量。本文介绍如何在没有 Cookie 的情况下,依然能够区分用户,也就是生成一个简单的用户指纹。

10、20个有争议的编程观点(英文)

本文总结了 StackOverflow 上面20个最有争议的编程观点,比如"对于优秀的软件设计,使用设计模式弊大于利"。

工具

1、nonstop

一个浏览器插件,可以规避知乎、微博、简书上面的外部链接跳转的确认页面,自动跳转到外部网址。(@Yuxiaoy1 投稿)

2、screenity

功能强大的 Chrome 浏览器录屏插件。(@jeff-fe 投稿)

3、texme

一个 JS 库,可以将 Markdown 自动渲染成网页内容。(@baddate 投稿)

4、dumpster-fire

这个网站挺好玩,你给它发 Email,它会打印出来,自动点火烧掉,全程直播。

5、buster

浏览器插件,使用语音识别完成 reCAPTCHA 验证码。

6、ruffle

一个 Flash 模拟器的 WebAssembly 库。只要把这个库插入网页,就可以播放 Flash。

7、twtxt

一个自己架设的微博客开源平台。

8、Cyberbrain

一个 VS Code 插件,提供 Python 程序的可视化调试环境。

9、repl.it Multiplayer

多人在线实时协同编程平台。

10、RegExper

该网站可以将正则表达式转成解释图片。

资源

1、This X Does Not Exist

这个网站收集各种 AI 生成的仿真项目,比如不存在的人、不存在的猫、不存在的房间等等。

2、无限放大的插画

以下三个网站展示可以无限放大的插画。

Zoomquilt

Zoomquilt2

Arkadia Zoomquilt

3、Unix 操作系统简介(中文)

丹尼斯·里奇和肯·汤普森1974年的原始论文,向世界介绍他们发明的新操作系统 Unix,在不长的篇幅里面,使用简单的语言,介绍 Unix 的一些核心设计,至今仍然有参考价值。

4、文件格式维基

这个维基网站收集了各种文件后缀名,详细解释每种文件的格式。

5、Hello DNS

一个英文的 DNS 协议教程,介绍 DNS 协议的概念和细节。

6、Maven 手册

Maven 是 Java 项目的管理和构建工具,这是国人原创的针对新手的中文入门教程。(@inuter 投稿)

图片

1、空图书馆

德国柏林的倍倍尔广场上,有一个装置艺术品,叫做"空图书馆",是一组空的地下白色书柜。这是为了提醒人们不要忘记,1933年纳粹在这个广场上烧毁犹太人和马克思的书籍。

地下空间的大小相当于2万本书籍,跟当时烧毁的数量相仿。这个装置跟地面齐平,白天很难发现,晚上亮灯才能看到。装置内部装有空调,保持跟外部同样温度,防止玻璃窗上出现水汽。

2、最大的愚人节恶作剧

美国阿拉斯加州锡特卡镇,背后是一座休眠火山,已经有400年没有喷发了。

1974年4月1日星期一的早晨,居民们醒来后,震惊地发现火山居然冒出了黑烟,眼看就要爆发了。

海岸警卫队派出直升飞机,查看情况,才发现原来这是一个愚人节恶作剧。一个伐木工人想跟大家开一个玩笑,他用小飞机将70个旧轮胎运上山,浇上煤油,然后点燃。

文摘

1、未来的暗杀行动

11月27日,伊朗重要核物理学家法克里扎德在首都德黑兰附近遭遇暗杀,整个过程就像科幻小说一样。

法克里扎德身边有11人维安小组,但还是被人工智能通过卫星遥控的机关枪射杀。

伊朗革命卫队(Revolutionary Guards)副司令法达威向媒体透露了细节。

2020年11月27日下午,法赫里扎德与妻子乘坐一辆黑色尼桑轿车,在11名保镖陪同下前往郊区的别墅。由于疫情,高速公路上车辆稀少。

法赫里扎德乘坐的车辆先遭到了一下枪击,他以为汽车出现故障,从防弹车上下来查看情况。就在此时,一辆停在150米之外的日产皮卡车,上面安装的机关枪开始射击。

机关枪配有面部识别,只瞄准法克里扎的脸部,开了13枪。他的妻子虽只距离25公分,但未被击中。

暗杀行动是通过卫星操控的,现场未见恐怖分子。开枪后,日产车随即自爆,销毁了自身。整个暗杀过程只用了3分钟。

伊朗政府追查这辆日产汽车车主身份,发现车子所有人早在10月29日就已经离开伊朗。

2、如果一个冬夜,你在俄罗斯的郊区

去年,两个俄罗斯程序员开发了一款非常独特的游戏。

这个游戏没有任何情节、任何目标,甚至也没有任何人物,只有玩家自己。游戏只做了一件事,就是逼真地还原了一个下着鹅毛大雪的冬夜,位于俄罗斯郊区的一片住宅区平淡无奇的生活环境。

游戏开始时就是一个黑夜,你会发现自己在俄罗斯一个普通郊区的一间小公寓里面,灯光黯淡,屋里空无一人。

你从窗户望出去,看到白雪覆盖的庭院,在黑暗里被路灯和商店冷清的霓虹灯照亮。

你打开厨房的电灯开关,尝试烤面包、煮鸡蛋。

然后,你打开收音机,听了一会,开始洗澡。接着,你取出垃圾,离开公寓,到空无一人的庭院里散步。

街道拐角处的商店和美发店都关门了,路上空无一人。实际上,无论你走到哪里,都看不到任何人。

这个游戏其实只是一个"沙盒",让玩家在一个虚拟环境里面自由漫游。开发者说游戏目的就是传达"后苏联时代俄罗斯普通人的悲伤生活。......没有什么在等你,没有机会离开,没有冒险的可能,生活中没有任何令人惊奇的事件。"

该游戏可以在 Steam 平台购买,价格是人民币37元。

言论

1、

DNS 相关协议在过去的三十年一直在增长,平均每两天增加一页,现在已经有数千页的密集文本。实际上,没人有办法在开发前阅读所有文档。

DNS 已经到了如此复杂的地步,以至于没人能完全掌握一切。这将导致不可能编写任何新的 DNS 实现。

-- 《放牧 DNS 骆驼》

2、

不管你多么聪明或多么有经验,你的大多数想法根本行不通。成功的想法需要花费时间和辛勤的工作,才能成为被市场广泛采用的真实产品。

-- 《做一个真正了解用户的创始人》

3、

游泳横渡英吉利海峡的人说,最困难的部分之一是最后阶段,你已经可以看到前方的海岸,但实际上还有很长一段距离。

-- 《构建新功能的痛苦》

4、

疫情刚开始在美国出现时,美国几乎买不到口罩,但是在中国可以买到。因此,这篇论文通信作者之一的卢朝阳(音译)决定寄给我一盒200个口罩(我没有要求他这样做)。我认为这不会影响我对这篇论文的评审,但还是很感激。

-- Scott Aaronson 对中国量子计算机论文审核意见的附言

5、

提高测试覆盖率的最好方法,是识别并删除不必要的代码。

-- 《测试覆盖率神话》

6、

一般而言,尖端技术很快就会被替代,因此生命周期很短。相反地,落后但非常便宜的技术会长期存在,甚至可能持续数十年。

-- 《32位 Linux 系统的未来》

回顾

2019年的本周(第 86 期):千万不要当完美主义者

2018年的本周(第 34 期):身份证的最终解决方案:人体植入芯片

订阅

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

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

(完)

文档信息

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

《SSH 入门教程》发布了

$
0
0

SSH 是登录 Linux 服务器的必备工具,只要你在做互联网开发,多多少少都会用到它。

我第一次接触 SSH,距离现在超过10年了。2011年时,我就写过博客文章《SSH 原理与运用》(上篇下篇)。

但是说来惭愧,很多地方直到现在还是不怎么懂,很多用法还是需要找资料、查手册,尤其是修改配置文件的时候。

我一直想把自己的 SSH 学习笔记整理成系统性的教程,让各种零碎的知识集中在一起,方便查找,也有助于加深理解,对自己和其他人产生更大的价值。

上半年写完了《Bash 入门教程》以后,我就开始写 SSH 了。没想到一点点篇幅,竟然半年多才搞完,主要原因是中间断掉了三个月,平时每周的周刊也占掉了不少时间。

现在总算搞完发布了,大家可以去 wangdoc.com/ssh 阅读在线版。

整个教程采用知识共享许可证,源码公开在 GitHub 上面。任何问题都欢迎到代码仓库发 Issue

我没打算停下来,后面想把工作量更大的 《Linux 入门教程》搞出来。我接触 Linux 最早是看鸟哥的教程,但一直觉得有不满意的地方,可以做得更好。

(完)

文档信息

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

科技爱好者周刊(第 138 期):失业难以避免,重构人生规划

$
0
0

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

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

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

封面图

波士顿动力公司的机器狗生产车间,很像科幻电影的机器人军团。该公司最近以11亿美元的价格,卖给了韩国现代汽车集团。(via

本周话题:失业难以避免,重构人生规划

最近读到了一段话,引起了我的思考。

"工作对于人生至关重要。它提供了收入,身份和意义,失业的创伤仅次于亲人的死亡。"

我完全同意这段话。因为我父母的人生就是这样,上了一辈子的班,如果把工作的部分去掉,就没有其他值得一说的东西了。

对于许多人来说,人生就是围绕着工作。上学是为了找工作,毕业是为了上班,等到退休不上班,就已经是晚年了。万一失业,生活顿时就崩溃了,就像上面的引言说的,收入、身份、意义瞬间都没了。

我今天想说的是,这种"工作型人生"已经过时了。要是现在你还把上班当作人生的主轴,是一件很危险的事情,因为失业的风险越来越大。 时代变了,稳定的工作越来越少,失业会是家常便饭,人生已经没法依附在某一份具体的工作上了。

由于经济全球化和技术进步,行业的兴衰正变得越来越快。往往几年时间,新事物就彻底取代了旧事物,比如网络淘汰了报纸杂志,电动车淘汰汽油车,自动驾驶以后会淘汰司机。新行业瞬间崛起,又瞬间衰落,共享单车、P2P 网贷、长租公寓等等都是如此。

这些变化都是预想不到的,根本没法提前准备。上学的时候,我们学习内燃机,怎么可能想到有生之年这个东西会过时,汽车会不用汽油。在技术浪潮的面前,很多行业一转眼都没了,从业人员都得下岗再就业,当代社会的失业可能性比以前大得多。

所以,已经没法围绕工作而规划人生了,因为工作靠不住了,人生不能押宝在某一份具体的工作上面,风险太大。现在是互联网 + 智能手机 + 云计算 + 5G,未来会变成什么样,没人知道。

我的意思是,我们对人生的预设应该是,一生中会多次改变工作,服务过多家公司,干过各种事情,中间很可能有失业期。 不能像以前那种,以某一份具体的工作或职业作为预设来规划人生。

人生是一次旅行,不同的工作或公司只是我们沿途投宿过的村庄。它们不是人生的主轴,你不要误以为那是可以定居的地方,大多数人没有这种幸运。 不要再关注能不能找一个好工作/好公司(让你定居),人生的主轴应该是关注能不能实现下面三个目标。

  • 目的:你的人生想做到什么。
  • 成长:怎么保证自己的技能不断在成长。
  • 人脉关系:你能联系和动员的社会网络有多大。

数据分析手册

现在有一种热门的招聘岗位,叫做"数据分析师",很多企业都在招。不夸张地说,优秀的数据分析技能,对求职和个人发展都大有好处。

那么,怎么才能入门,提升自己的数据分析技能呢?其实不难,只要掌握三大工具---- Excel、SQL、Python ----再加上一点统计学知识,你就比大多数人强了。

本周的课程资料就是来自 "开课吧" 的视频课程 《数据分析手册》 ,由廖雪峰老师研发打造的系统化培训内容。它从最简单的讲起,帮你入门这三种数据分析工具,同时学会数据分析的逻辑与思路。视频中的所有案例,可以直接拿来解决工作中遇到的真实问题。

课程讲师都是来自大型互联网企业的数据分析师,既有大量的实战经验,也是企业的面试官,可以让大家了解主流企业的技术方案、方法论和面试技巧。

已经有20000多人学习过这个课程,原价1299元,现在免费提供给周刊读者。

访问这个链接,或者微信扫描下面的二维码,前 200名 读者 可以免费领取。

资讯

1、木制集装箱船

一个哥斯达黎加环保组织正在做实验,建造一艘木制的远洋集装箱货轮,船体全部由木材构成,不使用任何化石燃料,动力来自风帆与太阳能,通过电动机穿越海洋。

他们的目的是向全世界证明,可以有更环保的方式运输集装箱。现在的远洋集装箱船燃烧化石燃料,排放大量二氧化碳,对全球变暖有重要影响。

这艘木制集装箱船的螺旋桨,同时还是水下涡轮机,通过水流带动来发电。由于动力的限制,它只能携带9个集装箱。建造团队希望它能在2021年底之前下水,2022年投入运营,在哥斯达黎加和加拿大之间运输货物。

2、3D 打印住宅

德国巴伐利亚的一家开发商,正在使用丹麦公司 COBOD 制造的大型 3D 打印机,打印全欧洲最大的 3D 打印住宅。开发商希望这样可以省时省力,为建筑业带来新模式。

这个住宅楼一共有三层,分为5间公寓。3D 打印机挤出混和好的水泥,一层层堆叠建成房屋,同时留出安装天然气、水电、污水管道的空间。打印第一层楼只用了两个工人,花了25小时,以往需要5个工人投入5天时间。

3、Airbnb 原始股

在线订房平台 Airbnb 公司最近股票上市,涨势相当好。上市之前,它做出了一个与众不同的安排,决定向长期在它上面出租房屋的成千上万个房东,提供购买200股原始股的机会。

这个计划是通过电子邮件发送给房东的,也没有向媒体透露,没人知道有这么回事。有的邮件直接进了垃圾邮件夹,还有的邮件被忽略了,甚至不少人把它当作诈骗邮件,那些房东都错过了这个"天上掉钱"的机会。如果以68美元买200股原始股,上市第一天以144美元的价格抛掉,就可以赚将近15,000美元。

4、法拉第笼

社会上一直有一种说法,无线网络信号有害健康。一家厂商就利用公众的这种心理,在美国亚马逊网络商店出售"法拉第笼",号称专为家用路由器器设计。只要把路由器放在里面,就可有效遮蔽电磁波、辐射等带来的伤害,让你获得健康生活。它的价格为190 美元。

法拉第笼的原理很简单,就是一个金属笼子,由于金属的导电性,可以屏蔽无线信号,这就是电梯里面手机信号不好的原因。路由器放在里面,发出的无线信号自然就无法传出来。它在屏蔽电磁波的同时,会使得用户根本无法使用路由器。

还真的有不少人上当购买,网页的商品评价部分有大量的一星评价。购买者纷纷抱怨,路由器放进去以后,信号就变差了。

5、《赛博朋克2077》

近来最受瞩目的游戏一定是《赛博朋克2077》,它创下了游戏史的诸多纪录。12 月 10 日发售当天,它在 Steam 游戏平台的下载流量峰值达到了 51 Tbps,大大超过了2017年 PUBG 创下的 22 Tbps 下载纪录。

它还创下了 Steam 平台同时游戏人数最高的单机游戏记录,达到 1,003,262 人同时在玩的纪录,超过《辐射 4》在 2015 年创下的 472,962 人纪录。这还不包括其他平台(PS4、Xbox 等等)的游戏人数。不过,它是单机游戏,比网络游戏的同时在线人数还是要少一点,PUBG 全盛时期曾达到过300多万人同时在线。

6、一句话消息

  • 一家美国创业公司建造了世界最大的无人机,机长25米,翼展18米,起飞重量25吨。它用来将卫星送上太空,先飞到高空,然后发射二级火箭,将卫星送入轨道。

  • 英国空军在南大西洋拍到了世界上最大冰山的照片。这座冰山于2017年7月从南极洲的冰架上脱离,当时面积接近6,000平方公里,经过3年多,现在面积为4,200平方公里。

  • 宜家宣布停止制作产品目录,因为消费者越来越多通过网站来寻找产品,目录的作用越来越小。该目录已经有70年历史,译成32种语言,在50多个国家发行。

  • 特斯拉正在筹备柏林工厂,需要砍伐一大片树林。市政府担心惊醒树林里面冬眠的蛇,特斯拉迟迟拿不到动工许可证。

  • 亚马逊旗下子公司发布电动汽车 Zoox,计划在几年后提供无人驾驶的出租车服务。该车没有驾驶员座位,只有四个乘客座位。

文章

1、我造了一个海上居住平台(中文)

屋主在福建东山岛的海面上建造一栋海上房屋,今年作为酒店开放了。它距离海岸直线距离400米,水电都是通过管道从岸上供应的,总造价400万人民币。

2、25号宇宙试验(中文)

1968年,一位美国教授做了一个实验。他让8只老鼠生活在一个没有天敌、有足够粮食和空间,可以自由繁殖的环境,看看会发生什么。

根据计算,只有当老鼠数量超过3840只时,生活空间才会出现短缺;6144只老鼠时,水源会不足;9500只老鼠时,粮食会不足。但是实际上,老鼠达到2200只以后,数量就开始下降,最终在1780天后灭亡了。

3、《自然》杂志:2020年十佳科学照片(英文)

《自然》杂志评选出的2020年十佳科学照片。上图是沙特阿拉伯的科学家发明的太阳能电池,又轻又薄,可以放在肥皂泡上。

4、2020美国程序员薪资报告(英文)

levels.fyi 又公布了一年一度的美国程序员薪资报告,有很多数据,感兴趣的朋友可以看看。上图是初级工程师/程序员薪资最高的公司,真是很高的报酬。

5、剖析最简单的 C 语言 Hello World(中文)

作者讲解一个最简单 C 语言 Hello World 程序,底层到底发生了什么。这个程序 gcc 编译后是 16KB,作者设法把它简化到170字节。(@cj1128 投稿)

6、保护你的 .env 文件(英文)

互联网黑客行为非常猖獗。作者上线了一个小网站,10个小时内就收到了许多可疑请求,其中就有人在尝试读取环境变量 .env 文件。

7、如何优雅地从总统竞选中套利?(中文)

周刊136期英语文章《赔率是怎么回事? 》的中文解读,利用两个不同网站对美国总统大选的赔率差异,进行套利。(@morefreeze 投稿)

8、使用 GitHub Issues 的数据生成静态网站(英文)

作者介绍如何将 GitHub Issues 用做编辑器和数据储存,通过 GitHub Actions 和 Netlify 生成一个静态网站。

9、如何自动生成社交媒体的网页题图(英文)

很多社交媒体会对网址生成预览卡,作者讲述如何定制这种预览效果,并且为每个网址自动生成一张题图。

10、我与 Python(英文)

这是 Python 语言创始人 Guido van Rossum 2016年的一次演讲,讲述自己的经历,以及如何创造出 Python 这种语言。

"我是一个书呆子,一个怪人,很可能患有自闭症。我成熟得很晚,26岁大学毕业,45岁结婚,60岁时有一个14岁的儿子。35岁时,我创建了一种程序设计语言,因此受到了一些关注。"

工具

1、TinyCheck

卡巴斯基实验室的产品,一个移动通信网关,用来中介智能手机与外界的网络通信,看看手机到底发出什么请求。

2、Hieroglyph

一个在线工具,用来下载 Youtube 视频的字幕文件,前提是该视频存在单独的字幕文件。

3、Antipodes Map

这个地图工具可以显示任意地点在地球另一边的对应地点,比如在上海打一个洞穿越地心,就会来到阿根廷的恩特雷里奥斯省。

4、Espial

一个自己架设的 Web 书签服务,支持多账户使用,底层使用 Sqlite3 数据库。

5、electron-playground

一个 Electron 的学习工具,内置了各种可演示的示例,并且提供了演练场,几乎所有的代码都可以即时运行查看效果。(@Gstring-w 投稿)

6、npm-unpkg

一个在线工具,可以查看 JS 软件包里面包含哪些文件,每个文件的源码。(@jaywcjlove 投稿)

7、Depix

发布图片时,很多人喜欢使用马赛克隐去敏感信息,这个工具可以将打马赛克的文字还原。所以,隐藏信息尽量不要使用马赛克,最好是覆盖掉。

8、Watermark Video

一个开源的在线工具,可以为小视频加上水印图片。

9、pronounce

一个开源的浏览器插件,只要双击网页上的单词,就能听到这个词的发音,支持各种语言。

10、Substack Reader

Substack 刚刚发布的在线 RSS 阅读器。

资源

1、mugle.io

该网站提供 Youtube 上面没有版权保护的背景音乐下载,可以用于你自己的视频。

2、RegExLib

该网站收集各种常用的正则表达式,比如搜索"email",会返回961个正则表达式。

3、AI 事故数据库

该网站收集各种人工智能 AI 产生的各种事故。(@TheDHL 投稿)

4、Covid-19 插图

该网站提供24幅原创的 Covid-19 相关的插图,允许自由使用。

5、命令行界面设计指南(英文)

这份文档总结了一些设计规范,帮助你写出体验良好的命令行程序。

6、梅森素数搜索项目

梅森素数是可以表示成 2n - 1 的素数,目前已知有51个。从1997年开始,所有新的梅森素数都是由"互联网梅森素数大搜索"(GIMPS)项目进行分布式计算发现的。任何人都可以参与这个项目,将自己计算机的多余计算能力贡献出来。

图片

1、法罗群岛的海底隧道

周刊第 136 期的封面图,介绍了丹麦法罗群岛的海底隧道。

它在大西洋海底建了世界第一个海底环岛,三个路口连向三个岛屿。随着它的通车,网上现在有更多的图片。

下图是隧道示意图,环岛的位置就在中间的三叉点。

隧道的入口。

海底环岛的实景图。

2、世界最大的腰果树

巴西有世界最大的腰果树,看上去就像一片树林,其实只是一棵树。

这棵树的树枝碰到地面以后,就扎根了,最终变成了一片8000平方米的树林。

3、伊尔-76的驾驶舱

俄罗斯国防部最近发布了一张照片,是在运输机伊尔-76的驾驶舱拍摄的,看上去跟《星球大战》的剧照很像。

下图是《星球大战》的剧照。

文摘

1、泰瑟枪

1960年代,美国社会动荡,经常有暴乱事件。警方希望找到一种武器,可以有效地制服犯罪人,同时不会造成严重的杀伤。

同一时期,美国宇航局的核物理学博士杰克·科弗(Jack Higson Cover,1920-2009)看到电视充斥着抗议和警察暴力的新闻,产生了一个设想,制造一个手持的放电装置,让警察对犯罪人进行短时间的高压电击。这可以让目标对象非常痛苦,无法移动,但不会有生命危险。

经过几年的研究,他最终发明了这种电击枪,并根据一本他喜欢的科幻小说《汤姆·斯威夫特和他的电动步枪》(Tom Swift and His Electric Rifle)书名的首字母,将它命名为泰瑟枪(Taser)。

扣动扳机后,泰瑟枪会发射两支金属飞镖,它们通过细电线连接在枪上。飞镖的速度为每秒60米,最远命中距离7米。飞镖击中目标后,就构成了一个电回路,然后可以隔着5厘米的衣服进行放电,电压为50,000伏,持续时间百万分之一秒,5秒内会多次放电。这将导致目标对象浑身肌肉痉挛,缩成一团,瞬间就无法移动。

曾经有人接受了自愿测试,持续了大约2到3秒钟,就立刻发信号要求停止,并说这是他经历过的最强烈的痛苦。

1974年,发明者杰克·科弗为泰瑟枪申请了专利,然后联系警察部门,推销这个发明。起初,警察不感兴趣,军队或航空公司也没有兴趣。

1979年,杰克·科弗听说洛杉矶警察局正在寻找合适的武器。他们已经研究了许多可能的非致命武器(化学喷雾剂、橡胶子弹,镇定剂飞镖等等),没有一个是可用的,愿意尝试一下泰瑟枪。

经过测试,洛杉矶警察局确定该武器有效,订购了数百支。其他警察局很快就跟进。

如今,泰瑟公司是一家庞大的企业,美国80%以上的执法部门配备了它生产的电击枪。一些航空公司也为飞行员和航空警察配备了这种武器。

为了防止警察滥用枪支,随便开火,泰瑟枪在设计时还增加了记录功能。用户扣动扳机后,枪膛后面会弹出许多小纸屑,上面印有枪的序列号,调查人员可通过它们轻而易举地查到枪的主人,此外枪内还有一个微型芯片,专门记录每次射击的日期和时间。

言论

1、

时尚服饰的变化越来越快,而且新衣服正变得与二手衣服一样便宜,这导致同一件服装的穿着次数急剧下降。世界范围内,这个数值平均下降了36%,在中国则是下降了70%。

-- 《没人想要你的旧衣服》

2、

代码注释是一种道歉,为未选择更清晰的名称或更合理的参数而道歉,为代码无法维护而道歉,为不使用知名算法而道歉,为编写"聪明"代码而道歉,为没有良好的版本控制系统而道歉,为未完成代码编写工作而道歉,为留下漏洞或代码中的缺陷而道歉。

-- Uncle Bob

3、

未来的银行网点将像休息室,划分成一个个休闲区,没有柜员机,行员指导客户在自己的设备上完成在线操作,并进行深入的一对一对话。

-- 《银行的变化》

4、

19世纪以前,人类一直不知道,鸟类冬季去了哪里。1882年,一个德国猎人射杀了一只白鹳,发现它的脖子上有一个6.5英尺长的铁矛尖。鉴定表明,这个矛尖产自非洲,研究人员才意识到这只鹳去过非洲。

--《鸟类冬季到哪里去了?》

5、

人工智能 AI 迄今所有令人印象深刻的成就,都不过是曲线拟合,并不是真正的智能。

-- Judea Pearl(图灵奖获得者)

6、

如果我只有一个小时来拯救世界,那么我将花费55分钟来定义问题,而仅花5分钟来找到解决方案。

-- 据说出自爱因斯坦

回顾

2019年的本周(第 87 期):新人要为团队写文档

2018年的本周(第 35 期):"一人份"的服务越来越多

订阅

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

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

(完)

文档信息

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

科技爱好者周刊(第 139 期):生物学的可怕进展

$
0
0

这里记录每周值得分享的科技内容,周五发布。( [通知] 下周五是元旦假期,周刊提前到12月31日周四发布。

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

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

封面图

芬兰的极光营地,游客住在雪地营房里面,观赏夜晚的极光。(via Instagram

本周话题:生物学的可怕进展

上周,一家美国网站发表了一篇 mRNA 疫苗的文章,我看了大吃一惊。

mRNA 是一种全新的技术,第一次用来研发疫苗。大家猜猜看,研发时间花了多久?

答案令人跌破眼镜。Moderna 公司的 mRNA 疫苗是2020年1月11日开始研发,两天后的1月13日就完成了。

这个日期不仅早于武汉封城(1月23日),也早于美国第一例 COVID-19 病例(1月20日)。也就是说,Moderna 公司没有看到病例,对这种疾病基本上一无所知的情况下,就做出了疫苗,这也太惊人了。

事情是这样的,2020年1月11日,复旦大学张永振教授的团队将新冠病毒的 DNA 序列公布在网上。当天下午,Moderna 注意到了,实验室分析了这个序列,认为可以制作疫苗,一个周末就完成了。由于1月11日是周六,合理的猜想是,如果加班赶工,可能一天内就能做出来。

后面的日程表是这样的:

  • 1月13日,完成研发。
  • 2月7日,完成第一批次临床生产。
  • 3月4日,FDA 批准进行第1期临床试验。
  • 3月16日,第一个人类受试者接受疫苗。
  • 3月23日,Moderna 开始扩大规模生产。
  • 4月27日,FDA 批准进行第2期临床试验。
  • 7月27日,开始进行第3期临床试验。
  • 11月16日,第3期结果显示,该疫苗有效预防感染,达到94.5%。
  • 12月11日,FDA 颁发紧急使用授权。

大家可以看到,后面的一整年都花在临床试验和报批。疫苗本身没有变过,就是当初两天研究出来的成果,最后证明有效率是95%。

为什么 mRNA 疫苗可以开发得这么快,而且不需要活体的病毒样本?

根据美国疾控中心的网站,mRNA 本质上是一种通知技术,把病毒特征通知免疫细胞。所以,只要知道 DNA 序列,找出病毒的特征,理论上很快就能做出疫苗,跟解数学题差不多。

这件事情的意义在于,如果这一次,mRNA 疫苗证明有效,那么以后的疫苗开发可能都会很快。而且,临床试验和审批流程可能也不再需要这么久,因为生效机制是相同的,只需要验证免疫细胞确实能认出病毒即可。

我们普通人都没有意识到,当代生物科技已经这么先进了,DNA 的精密分析和组装,变成了小菜一碟。如果疫苗有了快速的解决方案,这是不是意味着,新冠肺炎很可能就是人类最后一次病毒大流行。

Web Component 组件开发资料

组件化是 Web 开发的方向,这是大家公认的。但是,浏览器一直没有原生的组件支持,这才导致 React 和 Vue 这样的组件框架的出现。

谷歌公司(主要是 Chrome 团队)提出的 Web Component 技术,就是希望解决这个问题,让浏览器原生支持组件。这项技术已经成为国际标准,而且由于是 Chrome 在推,前景非常看好,Youtube 网站就是用它开发的。

Web Component 的最大特点就是轻量化,代码量小,不需要加载任何外部库,就能支持组件。

本周的课程资料就是 《Web Component 组件化开发》 ,一个90分钟的视频讲座,由开课吧提供。想要了解和学习这项技术的同学,可以看看。

课程内容包括:

  • 组件化开发的思想到底是什么?
  • Web Component 技术的构成:自定义元素,template 标签,拓展原有组件
  • 如何用上面三项技术写一个组件?

除了讲课内容以外,还提供配套代码下载。

微信扫描下面的二维码,就可以免费领取这份90分钟的学习资料。原价 399 元,限时 0 元领取 ,没有任何条件,不用转发和分享,仅限 200 名。

资讯

1、智能水表

上海市长宁区江苏路街道,为辖区内的6户独居老人安装了智能水表。一旦12小时内,智能水表的读数(用水量)低于0.01立方米,居委会便会立即收到信号,及时派专人上门查看。

同时,街道还安装了智能门磁装置,只要这些老人的门24小时没有打开过,也会发出预警信息。

2、360度 VR 旅行

旧金山一家创业公司推出360度 VR 旅行服务,用户选择一个旧金山的风景点,在指定时间导游会带你去参观。整个过程都是网络进行。

导游使用360摄像机拍摄实时画面,通过 Youtube360 进行直播,用户在家里戴上 VR 眼镜收看直播。整个过程中,导游会提供实时解说,你还可以跟导游对话。这个服务的价格是,每小时39美元到59美元。

3、空心光纤

美国华尔街的高频交易公司,正在部署空心光纤,使得他们的网络交易命令可以传得比别人更快。空心光纤是下一代光纤,每根光纤的玻璃芯内部是空心的,比人的头发还要窄。因为光在空气中的传播速度比玻璃快50%,所以空心光纤的传输速度要大大高过标准光纤。

空心光纤代替标准光纤,可能会使交易命令的传输时间减少数百纳秒(一纳秒等于十亿分之一秒)。历史上,高频交易公司一直在追求更快的网络速度。十年前,有一家证券公司花费3亿美元,铺设芝加哥到纽约的直线光纤电缆,实现两地之间的最短距离。仅仅过了几年,他们又用微波网络取代了这条3亿美元的线路,只因为传输时间可以少4毫秒。

4、保存时间最长的人类胚胎

2020年10月,一个名叫莫莉·吉布森(Molly Gibson)的女婴在美国华盛顿州出生,但是科学意义上,这时她已经27岁了。因为她来自一枚27年前冷冻的胚胎。她现在的父母有不孕症,选择接受这枚没有遗传关系的、1992年10月冷冻的胚胎植入母亲的子宫,进行生育。这创下了胚胎冷冻时间最长、然后生育的世界记录。

美国国家胚胎捐赠中心(NEDC)保存有捐赠的冷冻胚胎,允许不孕症的家庭领养一个未使用的胚胎。目前,美国大约有100万个冷冻的人类胚胎。冷冻胚胎技术是1984年在澳大利亚出现的,由于冷冻胚胎的保质期是无限的,所以未来可能还会有冷冻时间更长的胚胎诞生。

5、电动车无法普及

日前,丰田汽车的社长丰田章男公开表示,电动车是过度炒作,各国政府提出放弃汽油车,全面转向电动车是不现实的,只是一种作秀。原因是电动车会导致巨大的电力需求,全面转型成本巨大,并会将污染转移到发电环节。

他以日本为例,日本的大部分电力都来自于煤炭和天然气,如果全面转向电动车,那么到了夏季尖峰用电时段,日本将面临"无电可用"的窘境,而建立全国的充电网络更是天价的花费。

他的警告并非没有根据。特斯拉的超级充电桩,最大功率是 250kW,即每小时耗电250度。目前,中国国内功率最小的充电桩,也要达到 3.5kW,高于空调的耗电。如果居民晚上下班回家,同时在小区里为自己的电动车充电,电网确实可能无法负荷。

6、一句话消息

  • 小米公司的小米手机 11 发布会邀请函,内嵌一颗高通骁龙888芯片实物,堪称制作成本最贵的邀请函。这块目前最顶级的手机芯片,售价估计在200美元左右。

  • 哈萨克斯坦政府要求国民,在计算机上安装政府提供的根证书,然后才能访问互联网。苹果、谷歌、微软、Mozilla 进行合作,只要发现该证书,就会提示访问不安全。

  • 法国对谷歌和亚马逊分别罚款1亿欧元和3500万欧元,理由是它们的网站事先未征求访问者的同意,就设置 Cookie。

  • 美国宣布"阿尔忒弥斯(Artemis)计划"18名宇航员的大名单,将在他们之中产生下一次月球登陆的候选人。美国宇航局承诺,一定会让一位女性登上月球,创造历史。

  • 美国国会通过新一轮9000亿美元的 Covid-19 救助法案,其中包括70亿美元的宽带补助,保证民众可以用上宽带,低收入家庭每月可以获得50美元的宽带费。

文章

1、颗粒积木的妙用(中文)

作者介绍自己使用颗粒积木搭出了手机支架、笔筒等等。

2、《自然》评选 2020 年度十大科学发现(中文)

Nature 杂志评出的2020年度10大科学发现,包括压力使得头发变白的机制、首次观察到宇宙中的快速无线电爆发、大气层的臭氧空洞有修复迹象等等。

3、2020年设计师工具调查报告(英文)

UXtools 对设计师的年度调查,各种工具的使用情况,上图是使用最多的 UI 设计软件,前五名依次是 Figma、Sketch、Adobe XD、Illustrator、Photoshop。

4、如何找出 CDN 背后的主机真实 IP 地址(英文)

网站启用了 CDN 以后,外部用户就看不到源站的真实 IP 地址了。本文介绍了一个小技巧,某些情况下可能有用。

5、链接的 noopener,noreferrer 和 nofollow 设置(英文)

为了安全性,网页链接最好设置rel="noopener noreferrer nofollow",本文介绍这三个值的作用。

6、开源软件商业模式的死亡(英文)

开源软件常见的商业模式是"软件开源 + 服务收费",但是云服务商正在杀死这种模式。

如果你免费提供软件,并且这种软件足够受欢迎,云服务商将不可避免地使用你的代码提供竞争性服务。他们会毫不留情地用自己的方法痛击你,在你的前院倾倒垃圾。而你的律师则站在你耳边低语,"什么也做不了。"

7、<details>标签的一个作用(英文)

作者提出,可以使用<details>标签在网页里面添加脚注(上图)。

8、完善的 Bash 脚本的最简单形式(英文)

本文通过一个模板,介绍 Bash 脚本的基本知识,如何写出安全的、基本功能完善的脚本。

9、如何使用 GitHub Actions 发布到 GitHub Pages(英文)

一个简单的教程,教你通过 GitHub Actions 构建一个静态博客,自动发布到 GitHub Pages。

10、Navigator 对象的实验性属性(英文)

本文介绍浏览器的 Navigator 对象的几个实验性属性,比如获取本机的内存、CPU 核心和网络连接类型。

工具

1、imgdiff

比较两张图片差异的命令行工具。

2、BrowserTime

Chrome 浏览器的插件,显示一个仪表盘,分析你的浏览历史,显示你在哪些网站花费最多时间。

3、AI Picture Restorer

一个在线工具,去除老照片的破损和折痕。

4、Cloudflare Pages

Cloudflare 推出的静态网站构建和托管服务,目前正在 beta 测试,可以申请参加。(@Wazons 投稿)

5、Geometrize

一个在线工具,将照片转成基于几何形状的水彩画。

6、OwnCast

一个可以自己搭建的开源流媒体服务,用作视频的在线播放。

7、tetris

命令行的俄罗斯方块游戏。

8、Holiday Card Maker

一个在线工具,上传肖像照,软件会自动去除背景,生成各种节日照片。

资源

1、恐龙的声音

谷歌搜索 "what sound does a dinosaur make"(恐龙的声音是什么),网页就会显示一系列可以播放的动物叫声。

2、ElixirSchool 博客的中文翻译

Elixir School 这个英语博客,是学习 Elixir 这门编程语言的首选。笔者抽出了一些时间翻译了这些博客。(@caicaishmily 投稿

3、SRE 学校

Linkedin 工程团队专门写给新人的 SRE (站点可靠性工程)教程,介绍了一个 DevOps 工程师需要掌握的各种基础知识。

4、计算机安全培训材料

该网站提供计算机安全方面完整的英文培训材料,共包含29节课。

5、免费的 Python 英文书籍

本文整理了一张免费书籍清单,都是网上合法的 Python 学习资源,书目相当多。

图片

1、瑞士的军事掩体

瑞士是一个中立国,但拥有强大的军事力量。阿尔卑斯山上遍布军事设施,并精心制作了掩体,以便融入周围的景观。

其中一些伪装成巨大的岩石,另一些伪装成安静的别墅或谷仓,它们在紧急情况下会打开,露出加农炮和重型机枪。

瑞士全国有将近30万个掩体和5,100个公共避难所,这些掩体可容纳整个瑞士人口。按人均计算,瑞士拥有世界最大的军队之一,有20万在职人员和360万后备人员。每个34岁以下(有时50岁以下)的男性公民都是预备役士兵。

文摘

1、世界末日时钟

1945年,美国在日本投放了两颗原子弹,这引发了核战争引发世界末日的担忧。

1947年,一些参与曼哈顿计划的核物理学家,在芝加哥大学出版了一本杂志《原子科学家公报》。封面上画了一个时钟,表示人类离世界末日正在倒计时。

午夜零点表示世界末日,时钟的时间离零点还有7分钟。这个时钟因此称为"世界末日时钟"(Doomsday Clock)。

后来,杂志的每一期都是这个封面,但是距离世界末日的时间一直在调整,迄今为止一共调整了22次。

1949年,苏联试验原子弹,末日时钟调为3分钟。

1953年,美国和苏联开始测试氢弹,调为2分钟。

1963年,美苏签订《部分禁止核试验条约》,调为12分钟。

1981年,苏联入侵阿富汗,美苏军备竞赛升级,里根政府提出"星球大战"计划,调为4分钟。

1991年,柏林墙倒塌,东欧巨变,美苏签署《第一阶段削减战略武器条约》,调为17分钟。

2007年,气候变暖,核电站不断增加,调为5分钟。

2017年,特朗普当选美国总统,否认气候变化,调为150秒。

2018年,朝鲜试验核武器,调为120秒。

2020年1月23日,由于全球气候变暖无法避免,调为100秒。也就是说,科学家认为,现在是距离世界末日最近的时刻。

2、世界科学技术工程学院

上个世纪,土耳其人塞马尔·阿尔迪(Cemal Ardil)注册成立了一家"世界科学技术工程学院"(World Academy of Science, Engineering and Technology,简称 WASET)。这是一家营利性机构,专门安排各种各样虚假的学术会议,人为提高演讲者和论文提交者的学术履历。

它每年组织成千上万次科学会议,会议的名称与真正的科学团体组织的真实会议很相似。2018年,世界科学技术工程学院共发布了49,844个会议广告,其中许多会议名称雷同,而且安排在同一天的同一地点。比如2016年2月,里约热内卢的一家酒店同一时间安排了116场科学会议。

这些会议的质量很差,任何人只要支付注册费就可以提交论文。很多科学家在不知情的情况下,被列入组委会名单。

2013年发生了一件丑闻,一个英国科学家在世界科学技术工程学院主办的期刊《国际医学,药学,生物和生命科学杂志》上,发表了一篇假论文,数据都是伪造的。然后,他自己引用这篇论文,将成果提交给了《科学》杂志。

外界计算,世界科学技术工程学院2017年的收入大约为4,495,219美元。

言论

1、

不要被贪婪的公司动机所吸引,不要投入全部的时间和精力,这绝对会导致您毫无正当理由地失去自己的一生。

-- Jonathan Carter,Debian 项目负责人

2、

优秀的人讨论思想,普通的人讨论事件,狭隘的人讨论人。

-- 埃莉诺·罗斯福,罗斯福总统夫人

3、

达尔文发现,澳大利亚附近的很多小岛上,昆虫不会飞。他猜测这是因为岛屿的风较大,会飞的昆虫很可能被吹到海里,这导致这些昆虫的后代完全丧失了飞行的能力。

-- 《为什么昆虫丧失飞行能力?》

4、

一个人在生物学上,每天的生存需要消耗 90W 的能量,相当于单个电灯泡所需的能量。但是考虑到人类使用各种设备(家用电器、交通工具等等),每人每天平均消耗 3,000W 的能量。如果你是美国人,这个数字会上升到接近 11,000W,这相当于一头蓝鲸(地球上最大的哺乳动物)的能量需求。

-- 物理学家杰弗里·韦斯特(Geoffrey West)

5、

阅读各种资料、书籍、文章,只是让你懂得更多,并不会让你提高技能。只有通过练习(practice)才能提高技能。如果你想变得更好,那就去动手做。

-- Jason Fried(Basecamp 的创始人)

6、

如果我与某人在办公室合作一年,我会知道他的孩子的名字,以及他在周末要做的事情。但如果我们是远程合作,我就什么都不会知道,因为远程会让工作变得直接,没有人与人之间的了解。

-- David Perell

回顾

2019年的本周(第 88 期):如果你遇到一条蛇

2018年的本周(第 36 期):程序员将来会不会过剩?

订阅

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

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

(完)

文档信息

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

Fetch API 教程

$
0
0

fetch()是 XMLHttpRequest 的升级版,用于在 JavaScript 脚本里面发出 HTTP 请求。

浏览器原生提供这个对象。本文详细介绍它的用法。

一、基本用法

fetch()的最大特点,就是使用 Promise,不使用回调函数。因此大大简化了 API,写起来更简洁。

fetch()接受一个 URL 字符串作为参数,默认向该网址发出 GET 请求,返回一个 Promise 对象。它的基本用法如下。


fetch(url)
  .then(...)
  .catch(...)

下面是一个例子,从服务器获取 JSON 数据。


fetch('https://api.github.com/users/ruanyf')
  .then(response => response.json())
  .then(json => console.log(json))
  .catch(err => console.log('Request Failed', err)); 

上面示例中,fetch()接收到的response是一个 Stream 对象response.json()是一个异步操作,取出所有内容,并将其转为 JSON 对象。

Promise 可以使用 await 语法改写,使得语义更清晰。


async function getJSON() {
  let url = 'https://api.github.com/users/ruanyf';
  try {
    let response = await fetch(url);
    return await response.json();
  } catch (error) {
    console.log('Request Failed', error);
  }
}

上面示例中,await语句必须放在try...catch里面,这样才能捕捉异步操作中可能发生的错误。

后文都采用await的写法,不使用.then()的写法。

二、Response 对象:处理 HTTP 回应

2.1 Response 对象的同步属性

fetch()请求成功以后,得到的是一个 Response 对象。它对应服务器的 HTTP 回应。


const response = await fetch(url);

前面说过,Response 包含的数据通过 Stream 接口异步读取,但是它还包含一些同步属性,对应 HTTP 回应的标头信息(Headers),可以立即读取。


async function fetchText() {
  let response = await fetch('/readme.txt');
  console.log(response.status); 
  console.log(response.statusText);
}

上面示例中,response.statusresponse.statusText就是 Response 的同步属性,可以立即读取。

标头信息属性有下面这些。

Response.ok

Response.ok属性返回一个布尔值,表示请求是否成功,true对应 HTTP 请求的状态码 200 到 299,false对应其他的状态码。

Response.status

Response.status属性返回一个数字,表示 HTTP 回应的状态码(例如200,表示成功请求)。

Response.statusText

Response.statusText属性返回一个字符串,表示 HTTP 回应的状态信息(例如请求成功以后,服务器返回"OK")。

Response.url

Response.url属性返回请求的 URL。如果 URL 存在跳转,该属性返回的是最终 URL。

Response.type

Response.type属性返回请求的类型。可能的值如下:

  • basic:普通请求,即同源请求。
  • cors:跨域请求。
  • error:网络错误,主要用于 Service Worker。
  • opaque:如果fetch()请求的type属性设为no-cors,就会返回这个值,详见请求部分。表示发出的是简单的跨域请求,类似<form>表单的那种跨域请求。
  • opaqueredirect:如果fetch()请求的redirect属性设为manual,就会返回这个值,详见请求部分。

Response.redirected

Response.redirected属性返回一个布尔值,表示请求是否发生过跳转。

2.2 判断请求是否成功

fetch()发出请求以后,有一个很重要的注意点:只有网络错误,或者无法连接时,fetch()才会报错,其他情况都不会报错,而是认为请求成功。

这就是说,即使服务器返回的状态码是 4xx 或 5xx,fetch()也不会报错(即 Promise 不会变为 rejected状态)。

只有通过Response.status属性,得到 HTTP 回应的真实状态码,才能判断请求是否成功。请看下面的例子。


async function fetchText() {
  let response = await fetch('/readme.txt');
  if (response.status >= 200 && response.status < 300) {
    return await response.text();
  } else {
    throw new Error(response.statusText);
  }
}

上面示例中,response.status属性只有等于 2xx (200~299),才能认定请求成功。这里不用考虑网址跳转(状态码为 3xx),因为fetch()会将跳转的状态码自动转为 200。

另一种方法是判断response.ok是否为true


if (response.ok) {
  // 请求成功
} else {
  // 请求失败
}

2.3 Response.headers 属性

Response 对象还有一个Response.headers属性,指向一个 Headers 对象,对应 HTTP 回应的所有标头。

Headers 对象可以使用for...of循环进行遍历。


const response = await fetch(url);

for (let [key, value] of response.headers) { 
  console.log(`${key} : ${value}`);  
}

// 或者
for (let [key, value] of response.headers.entries()) { 
  console.log(`${key} : ${value}`);  
}

Headers 对象提供了以下方法,用来操作标头。

  • Headers.get():根据指定的键名,返回键值。
  • Headers.has(): 返回一个布尔值,表示是否包含某个标头。
  • Headers.set():将指定的键名设置为新的键值,如果该键名不存在则会添加。
  • Headers.append():添加标头。
  • Headers.delete():删除标头。
  • Headers.keys():返回一个遍历器,可以依次遍历所有键名。
  • Headers.values():返回一个遍历器,可以依次遍历所有键值。
  • Headers.entries():返回一个遍历器,可以依次遍历所有键值对([key, value])。
  • Headers.forEach():依次遍历标头,每个标头都会执行一次参数函数。

上面的有些方法可以修改标头,那是因为继承自 Headers 接口。对于 HTTP 回应来说,修改标头意义不大,况且很多标头是只读的,浏览器不允许修改。

这些方法中,最常用的是response.headers.get(),用于读取某个标头的值。


let response =  await  fetch(url);  
response.headers.get('Content-Type')
// application/json; charset=utf-8

Headers.keys()Headers.values()方法用来分别遍历标头的键名和键值。


// 键名
for(let key of myHeaders.keys()) {
  console.log(key);
}

// 键值
for(let value of myHeaders.keys()) {
  console.log(value);
}

Headers.forEach()方法也可以遍历所有的键值和键名。


let response = await fetch(url);
response.headers.forEach(
  (value, key) => console.log(key, ':', value)
);

2.4 读取内容的方法

Response对象根据服务器返回的不同类型的数据,提供了不同的读取方法。

  • response.text():得到文本字符串。
  • response.json():得到 JSON 对象。
  • response.blob():得到二进制 Blob 对象。
  • response.formData():得到 FormData 表单对象。
  • response.arrayBuffer():得到二进制 ArrayBuffer 对象。

上面5个读取方法都是异步的,返回的都是 Promise 对象。必须等到异步操作结束,才能得到服务器返回的完整数据。

response.text()

response.text()可以用于获取文本数据,比如 HTML 文件。


const response = await fetch('/users.html');
const body = await response.text();
document.body.innerHTML = body

response.json()

response.json()主要用于获取服务器返回的 JSON 数据,前面已经举过例子了。

response.formData()

response.formData()主要用在 Service Worker 里面,拦截用户提交的表单,修改某些数据以后,再提交给服务器。

response.blob()

response.blob()用于获取二进制文件。


const response = await fetch('flower.jpg');
const myBlob = await response.blob();
const objectURL = URL.createObjectURL(myBlob);

const myImage = document.querySelector('img');
myImage.src = objectURL;

上面示例读取图片文件flower.jpg,显示在网页上。

response.arrayBuffer()

response.arrayBuffer()主要用于获取流媒体文件。


const audioCtx = new window.AudioContext();
const source = audioCtx.createBufferSource();

const response = await fetch('song.ogg');
const buffer = await response.arrayBuffer();

const decodeData = await audioCtx.decodeAudioData(buffer);
source.buffer = buffer;
source.connect(audioCtx.destination);
source.loop = true;

上面示例是response.arrayBuffer()获取音频文件song.ogg,然后在线播放的例子。

2.5 Response.clone()

Stream 对象只能读取一次,读取完就没了。这意味着,前一节的五个读取方法,只能使用一个,否则会报错。


let text =  await response.text();
let json =  await response.json();  // 报错

上面示例先使用了response.text(),就把 Stream 读完了。后面再调用response.json(),就没有内容可读了,所以报错。

Response 对象提供Response.clone()方法,创建Response对象的副本,实现多次读取。


const response1 = await fetch('flowers.jpg');
const response2 = response1.clone();

const myBlob1 = await response1.blob();
const myBlob2 = await response2.blog();

image1.src = URL.createObjectURL(myBlob1);
image2.src = URL.createObjectURL(myBlob2);

上面示例中,response.clone()复制了一份 Response 对象,然后将同一张图片读取了两次。

Response 对象还有一个Response.redirect()方法,用于将 Response 结果重定向到指定的 URL。该方法一般只用在 Service Worker 里面,这里就不介绍了。

2.6 Response.body 属性

Response.body属性是 Response 对象暴露出的底层接口,返回一个 ReadableStream 对象,供用户操作。

它可以用来分块读取内容,应用之一就是显示下载的进度。


const response = await fetch('flower.jpg');
const reader = response.body.getReader();

while(true) {
  const {done, value} = await reader.read();

  if (done) {
    break;
  }

  console.log(`Received ${value.length} bytes`)
}

上面示例中,response.body.getReader()方法返回一个遍历器。这个遍历器的read()方法每次返回一个对象,表示本次读取的内容块。

这个对象的done属性是一个布尔值,用来判断有没有读完;value属性是一个 arrayBuffer 数组,表示内容块的内容,而value.length属性是当前块的大小。

三、fetch()的第二个参数:定制 HTTP 请求

fetch()的第一个参数是 URL,还可以接受第二个参数,作为配置对象,定制发出的 HTTP 请求。


fetch(url, optionObj)

上面命令的optionObj就是第二个参数。

HTTP 请求的方法、标头、数据体都在这个对象里面设置。下面是一些示例。

(1)POST 请求


const response = await fetch(url, {
  method: 'POST',
  headers: {
    "Content-type": "application/x-www-form-urlencoded; charset=UTF-8",
  },
  body: 'foo=bar&lorem=ipsum',
});

const json = await response.json();

上面示例中,配置对象用到了三个属性。

  • method:HTTP 请求的方法,POSTDELETEPUT都在这个属性设置。
  • headers:一个对象,用来定制 HTTP 请求的标头。
  • body:POST 请求的数据体。

注意,有些标头不能通过headers属性设置,比如Content-LengthCookieHost等等。它们是由浏览器自动生成,无法修改。

(2)提交 JSON 数据


const user =  { name:  'John', surname:  'Smith'  };
const response = await fetch('/article/fetch/post/user', {
  method: 'POST',
  headers: {
   'Content-Type': 'application/json;charset=utf-8'
  }, 
  body: JSON.stringify(user) 
});

上面示例中,标头Content-Type要设成'application/json;charset=utf-8'。因为默认发送的是纯文本,Content-Type的默认值是'text/plain;charset=UTF-8'

(3)提交表单


const form = document.querySelector('form');

const response = await fetch('/users', {
  method: 'POST',
  body: new FormData(form)
})

(4)文件上传

如果表单里面有文件选择器,可以用前一个例子的写法,上传的文件包含在整个表单里面,一起提交。

另一种方法是用脚本添加文件,构造出一个表单,进行上传,请看下面的例子。


const input = document.querySelector('input[type="file"]');

const data = new FormData();
data.append('file', input.files[0]);
data.append('user', 'foo');

fetch('/avatars', {
  method: 'POST',
  body: data
});

上传二进制文件时,不用修改标头的Content-Type,浏览器会自动设置。

(5)直接上传二进制数据

fetch()也可以直接上传二进制数据,将 Blob 或 arrayBuffer 数据放在body属性里面。


let blob = await new Promise(resolve =>   
  canvasElem.toBlob(resolve,  'image/png')
);

let response = await fetch('/article/fetch/post/image', {
  method:  'POST',
  body: blob
});

四、fetch()配置对象的完整 API

fetch()第二个参数的完整 API 如下。


const response = fetch(url, {
  method: "GET",
  headers: {
    "Content-Type": "text/plain;charset=UTF-8"
  },
  body: undefined,
  referrer: "about:client",
  referrerPolicy: "no-referrer-when-downgrade",
  mode: "cors", 
  credentials: "same-origin",
  cache: "default",
  redirect: "follow",
  integrity: "",
  keepalive: false,
  signal: undefined
});

fetch()请求的底层用的是 Request() 对象的接口,参数完全一样,因此上面的 API 也是Request()的 API。

这些属性里面,headersbodymethod前面已经给过示例了,下面是其他属性的介绍。

cache

cache属性指定如何处理缓存。可能的取值如下:

  • default:默认值,先在缓存里面寻找匹配的请求。
  • no-store:直接请求远程服务器,并且不更新缓存。
  • reload:直接请求远程服务器,并且更新缓存。
  • no-cache:将服务器资源跟本地缓存进行比较,有新的版本才使用服务器资源,否则使用缓存。
  • force-cache:缓存优先,只有不存在缓存的情况下,才请求远程服务器。
  • only-if-cached:只检查缓存,如果缓存里面不存在,将返回504错误。

mode

mode属性指定请求的模式。可能的取值如下:

  • cors:默认值,允许跨域请求。
  • same-origin:只允许同源请求。
  • no-cors:请求方法只限于 GET、POST 和 HEAD,并且只能使用有限的几个简单标头,不能添加跨域的复杂标头,相当于提交表单所能发出的请求。

credentials

credentials属性指定是否发送 Cookie。可能的取值如下:

  • same-origin:默认值,同源请求时发送 Cookie,跨域请求时不发送。
  • include:不管同源请求,还是跨域请求,一律发送 Cookie。
  • omit:一律不发送。

跨域请求发送 Cookie,需要将credentials属性设为true


fetch('http://another.com', {
  credentials: "include"
});

signal

signal属性指定一个 AbortSignal 实例,用于取消fetch()请求,详见下一节。

keepalive

keepalive属性用于页面卸载时,告诉浏览器在后台保持连接,继续发送数据。

一个典型的场景就是,用户离开网页时,脚本向服务器提交一些用户行为的统计信息。这时,如果不用keepalive属性,数据可能无法发送,因为浏览器已经把页面卸载了。


window.onunload = function() {
  fetch('/analytics', {
    method: 'POST',
    body: "statistics",
    keepalive: true
  });
};

redirect

redirect属性指定 HTTP 跳转的处理方法。可能的取值如下:

  • follow:默认值,fetch()跟随 HTTP 跳转。
  • error:如果发生跳转,fetch()就报错。
  • manualfetch()不跟随 HTTP 跳转,但是response.url属性会指向新的 URL,response.redirected属性会变为true,由开发者自己决定后续如何处理跳转。

integrity

integrity属性指定一个哈希值,用于检查 HTTP 回应传回的数据是否等于这个预先设定的哈希值。

比如,下载文件时,检查文件的 SHA-256 哈希值是否相符,确保没有被篡改。


fetch('http://site.com/file', {
  integrity: 'sha256-abcdef'
});

referrer

referrer属性用于设定fetch()请求的referer标头。

这个属性可以为任意字符串,也可以设为空字符串(即不发送referer标头)。


fetch('/page', {
  referrer: ''
});

referrerPolicy

referrerPolicy属性用于设定Referer标头的规则。可能的取值如下:

  • no-referrer-when-downgrade:默认值,总是发送Referer标头,除非从 HTTPS 页面请求 HTTP 资源时不发送。
  • no-referrer:不发送Referer标头。
  • originReferer标头只包含域名,不包含完整的路径。
  • origin-when-cross-origin:同源请求Referer标头包含完整的路径,跨域请求只包含域名。
  • same-origin:跨域请求不发送Referer,同源请求发送。
  • strict-originReferer标头只包含域名,HTTPS 页面请求 HTTP 资源时不发送Referer标头。
  • strict-origin-when-cross-origin:同源请求时Referer标头包含完整路径,跨域请求时只包含域名,HTTPS 页面请求 HTTP 资源时不发送该标头。
  • unsafe-url:不管什么情况,总是发送Referer标头。

五、取消fetch()请求

fetch()请求发送以后,如果中途想要取消,需要使用AbortController对象。


let controller = new AbortController();
fetch(url, {
  signal: controller.signal
});

signal.addEventListener('abort',
  () => console.log('abort!')
);

controller.abort(); // 取消

console.log(signal.aborted); // true

上面示例中,首先新建 AbortController 实例,然后发送fetch()请求,配置对象的signal属性必须指定接收 AbortController 实例发送的信号controller.signal

controller.abort()方法用于发出取消信号。这时会触发abort事件,这个事件可以监听,也可以通过signal.aborted属性判断取消信号是否已经发出。

下面是一个1秒后自动取消请求的例子。


let controller = new AbortController();
setTimeout(() => controller.abort(), 1000);

try {
  let response = await fetch('/long-operation', {
    signal: controller.signal
  });
} catch(err) {
  if (err.name == 'AbortError') {
    console.log('Aborted!');
  } else {
    throw err;
  }
}

六、参考链接

(完)

文档信息

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

科技爱好者周刊(第 140 期):印度人的工资是多少?

$
0
0

这里记录每周值得分享的科技内容,周五发布。( 本周由于元旦假期,提前到周四发布。)

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

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

封面图

印尼的一条野生鳄鱼自从2016年,就有一个旧轮胎卡在脖子上。随着这条鳄鱼越长越大,动物学家担心它会被慢慢勒死。印尼政府同意对取下轮胎的人给予奖励,但是根本没人报名。(via Instagram

本周话题:印度人的工资是多少?

两周前有一条新闻。台湾科技企业纬创在印度的 iPhone 代工厂发生"暴动"事件,2000个印度工人大肆打砸公司用品,现场一片狼藉。

据称,薪资问题是引发"暴动"的主因。

"员工对于公司没有按时支付承诺的工资,感到相当的愤怒。虽然公司答应向工程专业的毕业生提供每月21000卢比的薪水,但现在薪水已降至16000卢比,在最近几个月甚至减少至12000卢比,非工程专业毕业生的月薪也已降至8000卢比。"

1个印度卢布大约等于0.09元人民币,那么21000卢比约为1900元人民币。按照这个报道,工人因为拿不到这个工资,而发生"暴动"。

我有点好奇,这种工资在印度相当于什么水平?

去年,我读过一本书《我在印度的 701 天》。这是孔子学院的一个汉语老师在印度的生活日记,里面有这样的描述。

"教授的月工资是10万卢比,瑜伽老师6万卢比,印度理工学院(相当于清华大学)毕业生6万卢比,大学行政人员2.3万卢比,路边小店的店长是2万卢比,中学教师1.5万卢比,出租车司机1.2万卢比。"

这样看下来,月收入2.1万卢比,在印度属于中等收入,相当多的底层民众还拿不到这种工资。

但是在中国,这个工资水平(1900元人民币)比有的省份的最低工资还要低,恐怕不管哪一个省,都根本招不到工人。

相比之下,印度还不属于最低工资的国家,孟加拉、柬埔寨、缅甸等国的工资比印度还要低。这样看来,劳动密集型产业在中国已经毫无优势了,如果某个产品需要大量劳动力投入,那么它迟早都要向那些低工资的国家转移。因为中国和那些国家的工资差距太大了,而且还会继续扩大。

这就是我们国家面临的问题:劳动密集型产业已经走到头了,支撑不了后面的发展了,但是大部分劳动者都还不具备从事更高级产业的技能。

Vue.js 常见面试题

Vue.js 是主流的前端框架,面试前端岗位时,经常会遇到这方面的题目。

下面就是一些常见的面试问题。

[基础类问题]

[扩展类问题]

上面这些问题是由腾讯课堂101认证机构----金渡教育提供,大家可以扫描下面的二维码, 免费索取参考答案。

这是他们的课程 《前端高频面试题训练营》 的一部分。该课程专门针对 Vue.js 进行培训,帮助初学者扎实知识基础,同时又有大厂实战项目的实训。最重要的是,它原价 299 元, 由腾讯课堂全额补贴以后,现在限时免费。

扫描上面的二维码入群,即可 0 元领取 。限200名,群满截止。

资讯

1、蓝牙墓碑

由于墓地紧缺,日本的一个墓园推出了35座公共坟墓,一个坟墓对应多个死者。墓碑文字不是刻在石头上,而是以电子纸取代。

亲友祭奠时,只要进行蓝牙配对,墓碑就会显示事先设定的死者名字、图片、文字等等,不过现在只能黑白显示。亲友离开时,墓碑就会自动恢復成原状。目前,这种墓地的价格是29万日元(约18000元人民币)存放13年。

2、滚球木琴

日本北海道的一座公园,架设了一个巨大的木琴,当小球从上面滚过时,会发出音乐。木琴放在支柱上,角度是精心计算过的,每块木板都调节好,以控制球的速度。小球会压动木板发出音符,构成巴赫的一首曲子 Cantata 147。

选择这首曲子的主要原因是,它的每个音符长度相同,比较适合小球的滚动速度。游客现在可以在公园购买小球,观赏滚动发出的音乐,一颗球是300日元(约20元人民币)。下面就是演示视频(腾讯视频Youtube)。

3、垂直车库

2019年12月,石家庄一个居民小区安装了垂直停车位。这种停车位每个占地20平米,车辆驶入后会自动沉入地下,运送到合适的位置。需要取车的时候,升降机再将车辆送回地面。

根据介绍,目前可以做到地下120个停车位,地面只占一个车位的面积。这样最大的好处就是保持地面不被占用,有利于增加居民的休憩空间。石家庄正在推广这种垂直停车位,现有24个正在建设中。

4、下铁雨的星星

科学家通过架设在智利的超大望远镜 VLT(Very Large Telescope,下图),发现在双鱼座有一颗距离地球约640光年的行星,天上下的不是雨,而是金属铁。

这颗行星在白天温度会攀升至2400摄氏度以上,足以使地表的铁金属汽化。强风将铁蒸气吹到半空,到了凉爽的夜晚,气温下降,铁蒸汽冷凝成铁滴,以雨点的形式重新落到地面。

5、世界年龄最大的熊猫

重庆动物园的世界年龄最大的熊猫"新星",于12月8日去世,享年38岁。1982年8月,这只雌性熊猫出生于四川省雅安市宝兴县,1983年6月被送到重庆动物园,已在动物园生活了37年零6个月。

她至少生育过十只幼崽,有153个后裔。今年8月,动物园才为它庆祝了38岁生日。野生熊猫的寿命为15~20年,38岁的熊猫相当于人类年龄110至140岁。

6、一句话消息

  • 青海玉树地区2020年12月23日清晨7点23分,一颗火流星坠落地面,将天地照得亮如白昼,持续时间长达半分钟之久。根据测算,这是1988年有记录以来,中国境内发生的能量最大的一次天体撞击,接近一万吨TNT当量,与一颗小型核弹相当。

  • 大阪美术馆正在展出,50000块乐高积木搭建的葛饰北斋著名版画《神奈川冲浪里》。

  • 美国科学家通过研究贝壳化石,确定7000万前,每年有372天,每天的长度是23.5个小时,这是地球自传速度不断放慢的又一个证据。贝壳的外壳每天都在生长,会形成年轮,通过分析贝壳的微小切片,可以得到每天的时间长度。

  • 英国交通警察最新配备了价值13200美元的激光测速枪,专门用于查处超速行驶的汽车。该枪据说能够识别1500米以外的车牌。

文章

1、9天搭建一个座云冈石窟(中文)

山西云冈石窟研究院用9天时间,在上海宝龙美术馆搭建了一个 3D 打印的云岗石窟。

2、高铁货运能成功吗?(中文)

迄今为止,中国的高铁只用于客运。最近,中车公司隆重发布了世界首列时速350公里高速货运动车组,专门用于货运,"相当于30架737全货机的运载能力,1500公里优势距离5小时内即可到达"。

3、中国巨型摩天高楼时代似乎已经过去了(英文)

世界最高的100座建筑物,44座在中国。但是,国外媒体报道,中国住房和城乡建设部最近禁止建造超过500米的高层建筑,同时要求严控建造250米以上的建筑物。大家终于意识到了,摩天大楼并不宜居,不仅成本高,而且带来很大的环境压力。

4、浏览器的虚拟机检测(英文)

这篇文章介绍了四个方法,可以使用网页脚本判断,当前浏览器是否运行在虚拟机里面。

5、如何只使用 EMCAScript 模块开发(英文)

本文演示如何在 Node.js 环境里面,写 EMCAScript 模块代码,并运行单元测试,然后不用构建,直接在浏览器运行代码。

6、5G 无线电波会损害健康吗?(英文)

5G 引入了毫米波,比 4G 频率高10倍多,理论上会携带更多的能量。本文讨论它对人体会不会有影响。

7、ARM 芯片是如何诞生的(英文)

本文介绍了英国 ARM 公司的由来,以及他们设计的芯片。对于了解 x86 和 ARM 两种 CPU 架构的早期历史和区别,很有帮助。

8、我的软件工程公理(英文)

作者总结了他心目中软件工程的25条公理。我觉得总结得挺好,比如"产品是资产,代码是负债"、"好的代码是易于删除的代码"、"坚持小团队,小心地对待团队成长"等等。

9、JavaScript 的 toJSON() 函数是什么?(英文)

JavaScript 语言中,一个对象只要部署了toJSON()方法,就可以被转成 JSON 字符串。很多库都使用了这个方法,比如 Express 框架的res.json()就是这样实现的。

10、浏览器的异步 Cookie Store API(英文)

以前,我们只能用document.cookie来操作 Cookie,Chrome 87 引入了一个新的 Cookie Store API。

工具

1、email-verifier

Go 语言写的 Email 地址检验库,判断是不是假地址。判断原理参见这篇文章。(@lryong 投稿)

2、go-zero

国内开发者写的 Go 语言 Web 和 rpc 框架,有中文文档。(@yuexing0921 投稿)

3、Planner

Linux 平台处理待办事项(Todos)的桌面软件,功能很强。

4、Mdpdf

一个将 Markdown 转为 PDF 文件的 JS 库,底层是谷歌的无头浏览器 Puppeteer。

5、CodeSwing

VS Code 的一个插件,提供交互式编码环境,可以直接运行 HTML / JavaScript / CSS 代码。

6、Personal Management System

一个 Web 开源应用,可以自己搭建服务,将个人信息(笔记、代码事项、密码、日程安排、联系人等等)放在一个地方管理。

7、Upptime

一个 GitHub Actions 模板,每5分钟运行一次,检查指定的网站是否在线。

8、LinkAce

一个自托管的网络书签应用。

资源

1、游戏 UI 数据库

该网站收集各种游戏的 UI 设计,提供多种分类,比如上图是第一人称视角的游戏。

2、计算机教育缺失的一课

麻省理工学院计算机课程的中文版,向学生介绍基本的软件开发工具,帮助学生提高使用工具的能力。

3、ReleaseEye

该网站列出最近发行新版本的软件。

4、《如何创业》系列视频

创业孵化公司 Y Combinator 的前总裁 Sam Altman,整理的系列视频讲座。

图片

1、世界保存最好的恐龙化石

2017年,加拿大发现了一具恐龙化石,距今1.1亿年,保存之完好令人震惊。皮肤、鳞甲、内脏都是完整的,实际上是恐龙木乃伊,而不是化石。它是怎么形成的,仍然是一个谜。

这头恐龙长5.5米,下面是它的复原图。

2、纽约住宅的前门楼梯

纽约市很多住宅楼,尤其是老住宅楼,都装有前门楼梯。这成了纽约市的一种特色。

这是因为纽约最早是荷兰人的殖民地,早期的住宅楼都是荷兰式的。荷兰地势低洼,经常被水淹,所以住宅都修得较高,必须走楼梯进入,免得洪水淹没客厅的地板。

后来的建筑师沿袭了这种风格,即使没有淹水的风险,也加高了客厅,修建了前门楼梯。

文摘

1、科幻小说《机器人排除协议》

下面是 Paul Ford 创作的一篇极短篇科幻小说。

我脱掉衣服,走进淋浴间,发现一个机器人在排水管旁边。它大概60厘米高,由金属制成,摄像头就是它的眼睛,还带有几十个机械抓手。

它说:"Hi!我来自 Google,我是谷歌机器人,我不会伤害你。"

我说:"我知道你是什么。"

它说:"我正在对你的公寓编制索引。"

我说:"我不允许你待在这里。谁让你进来的?"

"我是 Google 的产品!我会发现很多好东西。我会找到你的内衣,还会观看你的录像带,那些属于你的独一无二的东西。我会找出关键词,并且编制链接。我的主人会说:'干得好,小机器人!' 很多用户会通过我们的链接,发现你,哈哈哈。"

"我在大门上贴了《机器人排除协议》。你没看到吗?"

"您了解Google吗?我索引了很多东西,如果我干得好,我可以去机器人公园,安装更多的处理器,还能上油。谢谢 Google!我必须进公寓来编制索引。必须的!" 他的摄像头向我眨了眨眼睛。

"我知道我的权力。我给你10秒钟离开。"

"好吧,我离开。但让我编完索引,每一样东西!我是 Google 的产品!"它伸出一支机械手臂,阅读洗发精瓶子上面的标签。我操起一把折叠椅,把它打烂。你去对垃圾桶编制索引吧。

2、JetBrains 公司和 Kotlin 语言

JetBrains 是一家位于捷克布拉格的软件公司。它由三个俄罗斯程序员2000年创立,现在依然是俄罗斯最大的程序员雇主之一,但是公司注册地搬到了捷克。

它从来没有接受过外部的风险投资,今年的公司收益可望达到2亿美元,现在的估值已经达到了70亿美元。创始人之一和 CEO 马克西姆·沙菲罗夫(Maxim Shafirov)说:"公司有足够的资源来实现我们的抱负,不用接受风险投资。"

它以开发各种语言的 IDE 而闻名,最著名的就是 IntelliJ IDEA,全世界最流行最强大的 Java IDE 之一。

2011年,JetBrains 发布了一种新语言 Kotlin。它是基于 Java 虚拟机 JVM 的一种新语言,既有友好简单的语法,又像 Java 一样可以快速编译。

考虑到 Java 是印尼的一个岛屿,开发团队希望也以一个岛屿命名这种新语言,就选择了圣彼得堡附近的 Kotlin 岛。

谷歌大力支持 Kotlin。2019年,谷歌宣布 Kotlin 是 Android 开发的首选语言,目前有超过60%的专业安卓开发者都在使用 Kotlin,包括谷歌本身。

据 JetBrains 透露,全世界有950万程序员在使用他们公司的软件,其中20%是付费用户。

言论

1、

一个知道怎么做的人可能总能找到一份工作,但是知道为什么做的人将成为他的老板。

-- 约翰·麦克斯韦(John Maxwell),畅销书《影响力》的作者

2、

一项研究发现,外科医生生日那天动大手术的老年患者,死亡率比一年中任何其他一天都高得多。

-- 《英国医学杂志》

3、

最早的时候,编程语言都是大项目,需要投入大量资金,进行前期规划,并且有一个标准化委员会。上个世纪90年代,情况发生了巨大变化。很多最流行的语言(PHP、Python、JavaScript、Ruby)都是由孤独的程序员单枪匹马设计出来的,其中一些人并不追求学术,只是业余爱好,没有任何宏伟的目标,他只想让日常工作变得更容易,或者为自己找一些简单的编程乐趣。

-- 《编程语言研究》

4、

擅长编程比赛,常常跟正式的工作表现负相关。因为编程竞赛的获胜者习惯于快速地提出解决方案,但是在工作中,你需要反思问题,并且慢慢地进展,确保一切正确,才会表现更好。

-- Peter Norvig,谷歌研究总监

5、

Webpack 有巨大的可配置性和可扩展性,复杂度非常高。使用 Webpack 不像是使用打包器,而像是"配置你自己的打包器"。

-- Hacker News 读者评论 Webpack 5.0 发布

6、

我加入的由风险投资支持的创业公司越多,我就越意识到:

风险投资家不是为企业增值,而是从企业那里吸走所有价值。

-- Hacker News 读者

回顾

2019年的本周(第 89 期):不下雨的地方,不要去卖伞

2018年的本周(第 37 期):小说家的时代,永远地过去了

订阅

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

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

(完)

文档信息

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

科技爱好者周刊(第 141 期):封闭系统的胜利

$
0
0

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

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

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

封面图

2020年7月21日,SpaceX 公司的 Falcon 9 重型火箭即将发射。NEOWISE 彗星就在它的上方,划过浩瀚宇宙。很多网站评选这张照片为太空探索年度照片。(via

本周话题:封闭系统的胜利

去年的一件大事,苹果公司发布 M1 芯片。

它的表现好得惊人,比原先英特尔的芯片更快、更省电、还更便宜。

为什么 M1 芯片的表现这么好?

一个原因是,它其实不能算作 CPU,而是一个单片系统 (System on a Chip,简称 SoC),里面集成了中央处理器 CPU、图形处理器 GPU、机器学习芯片 NPU、安全芯片等等。

当代芯片的制造技术已经发展到不可思议的程度,海量的晶体管可以做进一块指甲盖大小的硅片。以前,不同的电路需要由不同的芯片提供,现在可以集成为一块芯片。

正是由于这么多组件做在一起,苹果才有办法,最大限度地优化电路,提高协同能力,节省电力。再加上,操作系统也是自家的,可以配合着修改底层,所以性能才能提高这么多。

我问大家一个问题,如果 M1 大获成功,其他公司会怎么反应?

答案很简单,别的公司不得不跟进。英特尔、 AMD、三星、华为等等迫于压力,就不能再单纯开发 CPU 了,而是必须开始搞自己的 SoC 芯片。

前一阵,生产显卡的 Nvidia 想要收购 ARM 芯片公司,可能就是这种考虑,想将 GPU 和 CPU 融合在一起,跟苹果抗衡。有消息说,谷歌也在开发自己的 SoC 芯片,用在 Pixel 手机和 ChromeBook。

SoC 的盛行会带来一个后果,因为它把许多功能集成在一起,大量使用自定义的逻辑和接口,封装成一个黑箱,而且每家公司的设计都不一样,所以 SoC 不可能是一个开放的、兼容的系统,只可能是封闭的专有系统。 目前的手机硬件,就是这种状况。

没人能改苹果的硬件,它的接口和规格都没有公开。以后,其他公司的系统也会是这样,个个都是黑箱,外人根本动不了。

这意味着,对于桌面设备来说,个人兼容 PC 时代就要结束了,以后兼容硬件的可选择性越来越小,市场上都是基于不同 SoC 定制系统的整机。比如,自己想要更换显卡,也换不了,因为都做进 SoC 了,Linux 想驱动这些 SoC,会更困难,因为专有硬件都是不开源的。

不仅硬件正在变成封闭系统,软件其实早就如此了。以前,只要一个浏览器,就能访问全部的互联网,现在不行了。微信、今日头条、抖音......这些都是封闭系统,把内容锁在自己的院子里,必须安装它们的 App 才能看,不支持 Web 浏览,结果它们都成功了。

这种趋势正在蔓延,越来越多的网站选择放弃 Web 变成封闭系统。用户在网站上只能阅读一部分内容,想要获取全部内容,就必须安装 App。由于它们的蔓延,互联网正在变成一个个孤岛,信息自由开放、互连互通的梦想,似乎比任何时候都要遥远。

封闭系统的最大问题就是,整个市场最终会被若干大公司主宰,它们控制了一切,这看上去就是现在的局面。

程序员面试攻略

面试是找工作的最后一个关键环节。

很多同学都有这样的心声,希望有一个专门针对程序员的面试培训,各类公司的面试官分享评分标准和找工作的注意事项,最好还包括模拟面试环节。

本周的课程资料就是大家想听的这些内容。四位 IT 行业的知名人士,同时也是资深面试官,跟大家分享 《程序员大厂面试攻略》

  • 乔新亮(前苏宁科技集团副总裁)
  • 左耳朵耗子(著名程序员)
  • 白海飞(IBM 软件商务系统经理)
  • 臧萌(PayPal 数据处理组技术负责人)

四位老师一共讲授 12 节图文课。每一节课都有专门的主题,比如换工作的注意点、大厂和创业公司的不同特点、面试如何准备等等。

除了图文课,每周都有直播环节,跟大家直播交流各种具体的问题。目前预定为每周四次,也就是说,差不多每个工作日晚上,都有线上活动。

这份资料象征性收费 0.99元,扫描上方海报的二维码,支付加入即可,只限100个名额。支付后,请根据提示操作,会有老师把资料发给你。

如果有疑问,可以扫描下方二维码,加小助手咨询。

资讯

1、降噪头枕

降噪耳机的原理是发出频率相同、波形相反的声波,与外部噪音互相抵消。悉尼科技大学的一个团队根据这个原理,开发出了降噪头枕,装在椅子上,不用戴耳机,只要把头靠在上面,就会听不到噪音。

这个头枕内部,装了多个扬声器,会对着乘客的耳道发出抵消噪音的声波。根据测试,可以降低噪音10分贝~20分贝。但是,它有一个问题,乘客的头必须靠在指定位置,一旦转头,声波就无法对准耳道了。研究团队正在考虑开发一个头部跟踪系统,解决这个问题。

2、定期商品评价

网上商品的用户评价,往往缺乏真实性。除了商家做假,很多评价是用户刚拿到商品时写的,来不及深入使用。一家美国的网上商店,为了保证用户评价的真实性,发明了"定期评价"机制。

用户购买商品以后,每年会定期收到一份邮件,请用户上传照片和评价过去一年里面的使用感受。上图就是购买两月、两年、五年后,用户分别上传的照片。这样的话,就能看到整个生命周期的用户评价。

3、木制卫星

世界各国发射的卫星越来越多,其中绝大部分完成使命后,都会重返地球。卫星穿过大气层会发生燃烧,释放出有害物质,落到地面也会造成污染。

为了解决这个环境问题,日本京都大学与一家林业公司合作,开发木制卫星,目标是到2023年发射世界上第一颗用木头制成的人造卫星,仪器放在木制外壳中。这种卫星重返地球时,会在大气层中彻底燃烧光,对环境没有影响。

4、意念假肢

2019年1月,约翰霍普金斯大学在一个四肢瘫痪病人的大脑中,植入了六个电极。这个病人已经瘫痪了30年,只有前臂和手指能够微微移动。现在,经过两年的训练,他已经可以通过脑机接口,让大脑电极感受到手指的运动,从而操作假肢,完成一些简单的任务,比如给自己喂饭。

这件事情最大的挑战在于,同时控制两个假肢,让左手和右手配合行动。研究团队的下一个目标是,尝试不通过视觉完成某些任务,比如不必看着就能系鞋带。

5、贻贝水质检测

多年来,波兰城市波兹南(Poznań)一直使用贻贝,进行自来水的水质检测。这比化学检测更简单便宜,准确性也不差。贻贝对水质非常敏感,一旦发现自来水不干净,或者被污染,它就会闭合外壳。

自来水公司一共有三个测量设备,每个设备使用8个贻贝。贻贝的外壳都贴了磁铁,用来监控它是闭合还是张开。如果有两三个贻贝闭合,那可能是偶然情况;如果八个同时闭合,那就一定是水质出了问题。一年总共消耗200多个贻贝。

6、一句话消息

  • 富士公司开发出容量达到 580TB 的磁带,是世界储存容量最大的磁带,比目前市场出售的产品大50倍。

  • 一家美国公司推出电动拖拉机,取代传统的柴油拖拉机。柴油机械其实不适合农作物,植物会因此带有没有充分燃烧的柴油微粒。

  • 牛津大学的团队使用机器学习,从卫星照片找出非洲草原的大象,用来保护大象种群。下图的绿框是机器识别的大象,红框是真实的大象,重合度相当高。

  • 韩国去年首次出现人口负增长。由于日本早已人口负增长,中国也即将出现,所以整个东亚都开始进入高龄化社会。

文章

1、珠峰新高度测量回顾(中文)

2020年5月27日,中国登山队成功登顶珠穆朗玛峰,完成测量任务。本文用多图回顾了登顶测量过程。

2、根据阳光和阴影推测拍摄信息(中文)

作者介绍 SunCalc 这个软件,可以根据某个地点的阴影,推测拍摄时间,或者在已知拍摄时间的情况下,推测阳光在拍摄者的哪一个方向,进而缩小地点范围。

3、中国 5G 网络的频率分配(中文)

这篇文章介绍国内无线电频谱调整的现状,一部分 4G 频率重新分配给5G,同时腾退了一些 2G 和 3G 的频率。

4、流浪动物的生态威胁(中文)

每年都有很多宠物变成流浪动物,其中一部分进入野外,对其他野生动物形成威胁。作者进行了调查,发现一只城市的流浪猫大概每年杀死5只小型兽类(比如老鼠)、1.33只鸟类、1.67只爬行动物(比如蜥蜴)、1.48只两栖动物、1.38条鱼、还有2.16只无脊椎动物。

5、有限状态机与正则表达式(英文)

有限状态机和正则表达式是等效的,作者举了一个两者转换的形象的例子。

6、谷歌表格制作数字时钟(英文)

作者介绍如何使用函数,在谷歌表格里面制作一个自动计时的数字时钟。

7、编程需要多少数学?(英文)

这是一个程序员学习数学的体会。结论很简单:你不需要懂数学就可以成为一流的程序员,但是通过学习数学,可以了解更多解决问题的方法。

8、移动优先为什么是一个坏主意?(英文)

很多人提倡,网站的样式应该"移动优先"(mobile first)。作者认为,这种想法不正确,应该优先设计桌面端的样式,然后再考虑移动端。

9、三个编程部落(英文)

一篇探讨编程哲学的文章。作者认为,有三种不同的对待编程的观点,一种认为代码是艺术,一种认为代码是为硬件服务的,一种认为代码是为了创造新东西。

10、如何通过 CloudFlare Worker 搭建负载均衡服务器(中文)

Cloudflare Worker 是一种 Serverless 服务,本文给出示例,用它实现负载均衡器,每月可以免费10万次请求。(@DoctorLai 投稿)

工具

1、best-resume-ever

一个基于 Web 的简历模板,可以生成网页简历,然后用浏览器打印成 PDF 文件。

2、librephotos

一个自托管的相册应用,后端是 Django,前端是 React。

3、ArtLine

一个深度学习项目,将照片转为线条素描画,这里有可以运行的 Demo(Flask 应用)。(@jwenjian 投稿)

4、ssdt

网站的 security.txt 文件提供安全漏洞的联系信息。这个项目抓取了世界前100万个网站的 security.txt 文件。

5、pure CSS digital clock

一个纯 CSS 的数字时钟。但是,CSS 无法获取当前时间,所以只能显示为从12点开始。

6、Pipedream

一个计算平台,可以监听网络应用的各种事件,从而触发各种事先设定的操作。

7、Scrollama.js

一个网页滚动效果的封装库,基于 IntersectionObserver API。

8、DALL-E

OpenAI 公司又推出了一个神奇的软件 DALL-E,可以根据文字描述自动生成图片。下面的图片都是软件生成的。

立方体的豪猪

写着 OpenAI 的店面

鳄梨状的椅子

阁楼卧室有一个鱼缸,旁边是床

9、My Icon

一套免费图标,用来更换 iOS 14 的图标。一共有几千个图标可供选择,还允许自定义和编辑。

资源

1、树莓派的 PCI Express 兼容设备

树莓派 Raspberry Pi 4 配有一个 PCI Express 1x 接口。该网站列出各种可以兼容这个接口的设备。

2、苹果历史上的20个产品

一组英语的系列文章,一共20篇,详细回顾苹果公司历史上具有重要意义的20个产品,每个产品都会深入介绍历史背景和设计制造过程。第一篇就是乔布斯回归苹果后的第一个产品 iMac G3。

3、Linux 加固指南(Linux Hardening Guide)

这篇英语长文整理了各种 Linux 的调整步骤,使得它变得更安全。(@alaskasquirrel 投稿)

4、bigdata_analyse

这个仓库收集一些真实的大数据分析案例,用来了解如何处理不同行业的分析指标。目前有4个案例,包括1亿条淘宝用户行为数据分析、7000条租房数据分析等等。(@TurboWay 投稿)

5、Hello GitHub(第 57 期)

分享GitHub上有趣,入门级的开源项目的月刊,帮你找到编程的乐趣。(@ 521xueweihan 投稿)

6、 Go 语言高性能编程

免费的中文电子书,作者介绍了 Go 程序提高性能的一些技巧。(@geektutu 投稿)

图片

1、同一个地点的今昔对比

美国摄影师 Dheera Venkatraman 旅行中国,在一些近100年前老照片的相同拍摄地点,拍摄今昔对比。

兰州黄河铁桥。

贵阳北天主教堂。

杭州苏堤。

宜宾三江汇流处。

2、游戏的城市类型

很多城市建设类游戏,有不同类型的城市设计。

《模拟城市》(SimCity)中,大多数玩家会建造一个有很多建筑物的大型市中心。这时,停车就成了问题,游戏设计者假设停车场都在地下。

《城市天际线》(Cities Skylines)跟《模拟城市》很相似,存在一个市中心,但是不提倡私人轿车,更多使用公共交通,跟北欧的城市很相似。

斯洛伐克的游戏《苏维埃共和国》(Workers & Resources: Soviet Republic)的设计是,如果玩家允许人们拥有汽车,则必须建造地面的停车场。

如果不提供私人汽车,那么城市居住区必须非常紧凑,大多数设施都在步行距离之内,公共汽车和火车用来将人们带到污染严重而无法安居的工厂区。

文摘

1、一枚红色回形针

2006年,一个加拿大年轻人通过互联网,进行以物易物。他通过14次交易,用一枚红色回形针换到一栋房子。这件事引起了世界范围的极大轰动。

  1. 2005年7月14日,他用红色回形针交换一只鱼造型的笔。
  2. 同一天,他用鱼造型的笔交换手工雕刻的门把。
  3. 2005年7月25日,他用门把交换一台携带式炉具(附燃料)。
  4. 2005年9月24日,他用炉具交换本田发电机。
  5. 2005年11月16日,他用发电机交换一个"临时派对套组":包括一个空的小桶子、一张可以换到装满那个小桶的酒的借据,一个百威啤酒的霓虹标志。
  6. 2005年12月8日,他把"临时派对套组"交换Ski-Doo牌雪上摩托车。
  7. 不到一周,他用雪上摩托车换到一趟前往不列颠哥伦比亚省的双人行程。
  8. 2006年1月7日,他用这趟旅行的同行权换成一辆箱型卡车。
  9. 2006年2月22日,他把车子换成了唱片合约。
  10. 2006年4月11日,他把唱片合约交给歌手乔迪·玛丽·格南,换到了亚利桑那州凤凰城公寓房间的一年租约。
  11. 2006年4月26日,他用在凤凰城住一年的租金换到与埃利斯·库珀共度一个下午的权利。
  12. 2006年5月26日,他把与埃利斯·库珀共度一个下午的权利换成接吻乐团的电动雪花球。
  13. 2006年6月2日,他用雪花球和导演科宾·本森换到一个在电影《Donna on Demand》中饰演角色的权利。
  14. 2006年7月5日,他将电影角色换成一栋位于萨斯喀彻温省的两层农舍。

萨斯喀彻温省的一座公园为了纪念这个事件,设立了一个红色回形针艺术品,这同时也创下世界上最大回形针的纪录。

2、捆绑销售

1950年代,一辆新车通常没有转向信号灯。那是一种单独的产品,你必须单独购买,然后自己安装。

1960年,福特汽车公司把收音机做进了汽车。收音机生产商就把福特汽车告上了法庭,法院不得不裁决,收音机到底是汽车必不可少的一部分,还是可选的组件?

上个世纪80年代,文字处理软件没有文字计数、脚注、图表等功能,甚至都不支持横向打印。这些功能都是来自不同公司的单独产品,你必须以50美元~100美元的价格购买。

随着时间的流逝,文字处理软件集成的功能越来越多,那些需要单独购买的功能,逐一集成进入了产品。这杀死了很多第三方产品,对于那些产品来说,这实际上是不公平的竞争。

今天,苹果和谷歌的智能手机操作系统,到底应该包含什么功能,依然是争论的焦点。如果一家公司具有市场支配地位,不断在其产品中添加了别的软件已有的功能,应该鼓励还是禁止这种行为?

人们有时会争辩说,有些功能"显然"是必不可少的(比如汽车的刹车功能),有些功能"显然"是可选的。但这是一个模糊的定义,并且会随着时间而变化。1990年代中期,PC 电脑并未配备 TCP/IP 协议栈,那是需要购买的单独产品。后来,微软和苹果把 TCP/IP 加入了操作系统,有人非常认真地提出这需要干预,微软应该把网络协议栈、文件系统等等都做成可选项。

即使操作系统允许用户选择某些功能和组件,很多用户其实也没有能力理解和评估选择。你打开计算机,操作系统询问你要使用哪个 Web 浏览器和哪个媒体播放器,大多数用户只会选择默认设置,并且以后再也不更改了。

这就是捆绑问题的复杂性。一方面,无法轻易判断,哪些功能可以捆绑销售,哪些不可以;另一方面,即使平台允许用户更换其他技术方案,大多数消费者也没有能力,决定应该选择哪一种技术方案。目前来看,操作系统到底可以做到多大,完全取决于厂商的意愿。

言论与数字

1、

美国每天大约有55,000首新曲目(含纯音乐)上传到网上。

-- 《音乐流媒体是否正在停滞不前?》

2、

100年前,由于汽车的诞生,乱穿马路才变成非法。

-- 《乱穿马路非法100周年》

3、

只要那些现金充足的人没有其他地方可以投入资金,估值就无关紧要。

-- Hacker News 读者,评论特斯拉的股价过去一年涨了8倍。

4、

根据一些研究,中国人的中位数年龄现在高于美国,并且继续上升。所以,即使中国人均收入比美国低得多,年龄却更老。中国在富裕之前变老,已经成为了现实。

-- 《中国人口正在萎缩》

5、

如果技术继续这样高速发展,那么拥有先进技术、同时人口较少的国家可能会从中受益匪浅。因为人口少,负担得起失业人口,无需考虑维持就业率的问题,可以没有后顾之忧,大力发展机器人经济所需的基础设施。人口众多、技术落后的发展中国家将受害最深。

-- Hacker News 读者

6、

我之前在一家独角兽工作,后来辞职去了创业公司,上班第一天就感到比以前下降了一个等级。以前的办公室非常漂亮,现在的办公室是一个堆放着硬件零件的漆黑小房间,研究着一种不知前途的产品,由于各种令人烦恼的小问题,要花很多年才能进入大众市场。

-- 《入职两个月后辞职》

回顾

2019年的本周(第 90 期):管人和技术是两种不同的能力

2018年的本周(第 38 期):使用越方便,技术实现越复杂

订阅

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

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

(完)

文档信息

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

科技爱好者周刊(第 142 期):2020年才是21世纪元年

$
0
0

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

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

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

封面图

2022年北京冬奥正在新建的国家跳台滑雪中心,位于张家口。(via

本周话题:2020年才是21世纪元年

刚刚过去的2020年,无疑是人类历史上糟糕的一年。

但是,从技术角度看,2020年却是辉煌的一年。人类社会可能在2020年以后,进入一个完全不一样的阶段。

风险投资家、《从零到一》的作者 Peter Thiel 说, 2020年才是21世纪的第一年。新经济、新技术、新趋势在这一年确立了。

我列举一些2020年技术领域的大事。

mRNA 疫苗技术取得突破,从研发到大规模接种,只用了一年时间,很可能会永远改变流行病的预防技术。它的背后是生物科技的突飞猛进。

新能源技术(太阳能、风能、氢能和电池)一日千里,化石能源和汽油车明确将被淘汰。

无人驾驶开始大规模路试,并向公众开放,已经接近可用状态。马斯克甚至说,特斯拉公司2021年会发布真正的无人驾驶。

人类的生活方式加速转移到线上,远程办公、视频会议、在线教育......需要十年走完的路,一年就走完了

SpaceX 公司的火箭技术获得成功,开始载人飞行。三个国家(阿联酋、中国、美国)几乎同时发射火星探测器,预定今年二月到达火星,中国和美国的探测器将在火星登陆。

"人造肉"出现,并在沃尔玛上架,也做成了汉堡。如果植物蛋白可以替代动物蛋白,农业会发生巨大革命。

5G 开始普及,无线通信的带宽变得更大。星链计划的卫星宽度证实可行,地球的每个角落都能随时随地在线,即将成为现实。

8K 分辨率的视频开始商业化,家用播放设备和拍摄设备都上市了。这可能是电子屏幕的尽头了,因为接近人眼分辨率了。

苹果 M1 芯片成功,桌面电脑开始转向 ARM 架构,跟手机使用同一个架构,App 将可以通用。桌面电脑以后会进一步小型化、轻量化,而移动设备将变得功能更强大,更接近桌面电脑。

总之,2020年虽然结束了,但是它确实更像一个起点,人类正在进入新经济的下一个阶段。

TypeScript 学习资料

TypeScript 作为 JavaScript 的类型增强工具,可以大大增强项目的可维护性,便于在开发和编译阶段发现错误,对于大型项目尤其有用,正在业界得到越来越广泛的应用。

根据2020年12月的统计,TypeScript 已经是 GitHub 排名第四的语言,比上一年突飞猛进了三位。

但是,TypeScript 的中文教程并不多,而且相当一部分都是从官网文档复制粘贴的,对于初学者很难有额外的帮助,更不要说为面试和工作加分了。

本周的课程资料,就是一个针对国内学习者的 TypeScript 的专题培训,完整清晰地讲解高级技巧、最佳实践,以及 TypeScript 实现 Recoil 的原理,带领学习者把TypeScript 真正应用到框架和项目中,提高开发实力,增加大厂面试筹码。

该课程由腾讯课堂"双认证"机构----京程一灯制作,经过了两轮授课,目前已经是第三季迭代了。

课程原价98元,周刊读者只需象征性付费 0.02元。微信扫描下面的二维码,加入课程群,就可以报名。

前50位报名的同学,还会有额外福利,赠送第二季的 TypeScript 基础学习教程。

资讯

1、Echo 眼镜

亚马逊公司发售新一代 Echo 眼镜。它的两只镜脚做进了蓝牙耳机,镜片和镜框都没有特别之处。戴上眼镜以后,用户可以接打电话,也可以发出语音指令,通过手机 App 听新闻、播客、控制智能家居等等。

这副眼镜的技术难点是,内置了4个微型扬声器,将声音对准你的耳朵,同时最大程度地减少传出去的声量,防止周围的人听到。亚马逊官网有现货出售,定价250美元。

2、大竞技场加装地板

罗马大竞技场是世界著名的古建筑,建于公元1世纪。古罗马贵族在里面欣赏奴隶与狮子、熊、豹子等野兽的搏斗。大竞技场的下方有迷宫一样的隧道(上图),用来将装野兽的笼子运送到随机的位置,升上地面,然后放出笼。

长期以来,大竞技场的地板早已荡然无存,地下隧道直接暴露在游客面前。意大利政府最近宣布,将为大竞技场加装可以升缩的地板。一方面,还原古罗马时代的活板门、升降机等机械元件;另一方面,也可以在新地板上举办音乐会和表演戏剧作品。政府官员表示,希望2023年之前完成该项目。

3、中国十大丑陋建筑

建筑畅言网评选的2020年第十一届中国十大丑陋建筑,日前公布。该评选先在网络上向大众征集丑陋建筑,然后经过网络投票,最终在12月中旬由多位专家评选出来。

第一名广州融创大剧院(上图),上榜理由为创意牵强附会,胡乱拼贴中国元素,形态怪诞,伤害城市形象。下图是第二名吉林延边长白天地度假酒店、第三名重庆武隆飞天之吻。

4、AirPods Max 耳机

很多用户反映,苹果公司的 AirPods Max 耳机,如果连续戴几个小时,耳机内圈会因为冷凝问题出现积水。

这完全因为这个耳机的外壳是全铝的,铝是热的良导体,耳朵上戴久了会发生结露现象,使得耳罩内的空气凝结出水。这就是为什么,市场上几乎所有其他耳机的内圈都是塑料的原因。AirPods Max 偏偏又不防水,很难相信苹果这么大的公司,居然没有测试到这个问题。

5、Nike 跑鞋

2021年元旦,日本一年一度最重要、最受关注的长跑比赛箱根驿传照常举行。媒体统计选手的跑鞋,今年的结果令人震惊:210 位选手中有203位穿 Nike 跑鞋,比例高达96.6%,其次为adidas 4 双、Mizuno 2 双、New Balance 1双。

Nike 公司的 Vaporfly 跑鞋由于采用了专利鞋底材料,可以提高长跑成绩,已经成为长跑选手的标准配置。但是,体育比赛不应该比谁的装备好,国际泳联已经禁止正式比赛穿"鲨鱼皮"游泳服,所以 Nike 跑鞋将来会否被禁用也受到关注。

6、一句话消息

  • 西伯利亚冻土融化,出现了一具几万年的长毛犀牛,保存完好。图二是它的复原模型。

  • 青海省的光伏超过水电,成为省内第一大电源,也成为中国第一个太阳能发电成为主要能源的省份。下图为青海省共和县光伏产业园。

  • 美国科学家根据酚酞试纸原理,制造了一件会变色的汗衫。它会根据汗液的酸碱度,显示不同的颜色,提示你的健康状况。

文章

1、300名科学家为什么要在北极待上一年?(中文)

2019年9月,德国的科考破冰船"极星号"深入到北纬85°的海冰深处,然后关机抛锚,在北冰洋随着浮冰漂流一年,了解冬季的北极中心地带的状态。总共有17个不同国家的600名专家参与了这个项目,其中常驻人员有300人,其中也包括中国科学家。

2、一个老程序员的自述(中文)

作者1977年生于湖南,作为软件系统工程师,赶上了中国互联网崛起的浪潮。本文是他回顾自己程序员生涯的自述。

"在上海工作十八年,我每天拼命学技术、开研讨会、最多一年出差飞行近百次。这些努力让我收获了世界五百强公司技术专家的名头、上海内环的房子、几十万的年薪,但也累出了一身病,长期日夜颠倒,神经紧绷。"

3、Starlink 卫星上网开箱实测(中文)

一个国外用户的 Starlink 卫星宽带上网开箱实测。

4、Excalidraw 的一年(英文)

Excalidraw 是手绘风格的一个在线作图工具,2020年1月发布。本文讲述这个项目一年来的惊人发展。

5、如何不使用插件在网页嵌入 Flash SWF 文件(英文)

Adobe 和 Windows 都已经正式停止支持 Flash。本文介绍在没有插件支持的情况下,如何在网页运行 Flash 的三种方法。

6、兆芯开先 x86 CPU 测试(英文)

上海兆芯集成电路有限公司购买了台湾威盛电子(VIA)的 x86 指令集的授权,可以生产 x86 芯片。国外媒体测试了他们生产的 KX-6000 芯片,结论是总体上落后于英特尔的第七代 i5 芯片,但是如果价格比较便宜,依然可以在中国国内占据一定的市场。

7、一年活动的数据可视化(英文)

作者以15分钟为单位,记录了过去一年中每一天的时间安排。年底的时候,汇总统计了这一年的时间都用在哪里了。上图中,深灰色方块表示睡眠,深蓝色表示工作,粉红色表示浏览社交媒体。

8、URL 短链接服务设置 Cookie(英文)

作者发现很多流行的 URL 短链接服务,比如 TinyURL、t.co、bit.ly 都在用户的计算机上设置 Cookie,用来广告追踪。

9、使用 Cloudflare Worker 提供短链接服务(英文)

Cloudflare Worker 是一个 Serverless 服务,可以使用很简单的代码,通过它自制一个简单的短链接服务。

10、简陋的广告,不一定效果不好(英文)

广告不一定要设计得非常精美,简单粗糙的广告也可能有不错的效果。作者同时在 LinkedIn 投放了上面两个广告,结果发现右边广告的转化率更高。

工具

1、locust

一个开源的负载压测工具。

2、Thonny

一个面向初学者的 Python IDE。

3、HTML Editor

一个最简易的 HTML 在线编辑器,可以实时自动预览效果。源码非常简单,有学习价值。

4、Piccolo

一个简单快速的异步 Python ORM 库。

5、I2P

一个隐形互联网项目,构建在互联网的上方,主要用于网内用户的互相通信,不鼓励用户通过它来访问互联网。主要特点是用户看不到服务器,服务器也看不到用户。

6、quicssh

这个工具将 SSH 的通信协议改成了 QUIC,重新包装了 SSH 的服务器和客户端。

7、Statically

该服务可以免费将GitHub 和 GitLab 的源码文件放上 CDN,供外部调用。

8、Thumbnail.AI

这个在线服务可以为任意 URL,自动生成标题图片,便于在社交媒体引用文章时,提供缩略图。

9、cdecl

这个在线工具可以将 C 语言难懂的类型声明(比如int (*(*foo)(void ))[3]),转成浅显的英语。(@fish-404 投稿)

资源

1、后端开发学习路线图

该网站给出了后端开发的知识路线图。

2、半小时学习 Rust 语言

一篇英语长文,详细介绍 Rust 语言的基本知识点。

3、Python 软件工程

一本英文的免费书籍,介绍使用 Python 来做实际的软件项目时,需要了解的各种 Linux 知识,比如命令行、Git、Make 等等。

4、TechRewind

该网站收集了过去40年流行的技术产品,每10年为一个周期,用户可以查看每个周期的流行产品。比如,上图是上个世纪90年的流行。

5、学校还是监狱?

该网站每次刷新都会出现一张图片,让用户猜这是学校还是监狱?比如,上图是监狱。

6、极客阅读

一站式的技术阅读网站,汇集中文技术博客、YouTube 视频、开源产品动态、公众号文章等。(@wxyudl 投稿)

图片

1、巴基斯坦的卡车装饰文化

巴基斯坦,以及邻近的阿富汗和印度,有一种奇特的卡车文化。他们喜欢把卡车装饰得非常华丽。

1920年代,卡车进入巴基斯坦的时候,当地人在卡车顶部装上了木冠。后来,卡车开始长途运送货物时,每家卡车公司都设计了徽标,以使不识字的人能够了解卡车的所有者。

随着时间的流逝,这些徽标变得越来越华丽。大家觉得,设计越夸张,生意就越好。仅在最大城市卡拉奇,就有50,000人在专门从事卡车装饰。卡车司机愿意花2500美元,确保自己的卡车比其他卡车更好,这是他们两年的薪水。而且通常,卡车每隔几年就会回来进行上色,以保持新鲜感。

2、蚊子与注射器

蚊子的嘴可以刺穿皮肤吸血。

显微镜下,它与注射器的针头很相似。下图的注射器针头上是血液的红细胞。

文摘

1、团队主管应该写代码吗?

技术团队的主管应该写代码吗?

这个问题似乎没有明确的答案,支持者和反对者都有各自的立场。

我主管工程团队已经两年了,在这期间我停止写代码。主要原因是,团队主管写代码会妨碍团队管理,你会没有足够的时间来召开所有团队会议,以及一对一的谈话。另一方面,退出编码也表明我信任团队。

但是,随着时间的流逝,我逐渐感到与团队脱节。开始忘记构建系统和产品的实际感觉。我发现很难跟上的某些技术决策。从长远来看,最坏的情况下,由于缺乏代码信誉,这可能导致你在团队失去尊重。

这种矛盾,从本质上讲,是管理者与开发者的角色冲突。管理者的日程安排是一个接一个的会议,而开发者要求要大量连续时间,保证投入到关键任务上。管理者和开发者的时间表是不一样的。

我真的很想念编码,想念从构建事物、定位和修复 Bug 中获得的成就感。我还意识到,我参与编码,就会与团队产生更多的联系。

但我也明白,一旦参与编码,我就很难切换注意力,我的关注点无法在编码和会议之间及时切换。我的结论是,管理者与程序员的角色无法合一,解决方法可能是你在业余时间坚持编码,工作时间专心管理。

2、故事的形状

美国小说家库尔特·冯内古特 (Kurt Vonnegut)在一次演讲中提到,小说的故事是有形状的。

他画了一个坐标系,竖轴是主人公的境遇,横轴是时间轴,表示故事的进展。

在 《教父》中,主人公开始时过得很好,但后来陷入困境,被迫离开家族。他最终夺回了权力,并杀死了大部分反对派,成为新的教父。这个故事的形状就是一个大坑,先下跌,然后上升,并且过得比以前更好。

很多爱情小说,主人公先坠入爱河,感到非常幸福,后来由于各种原因,发生了挫折,最后再次找到对方。它的形状则是先上升,再下降,然后再次上升。

有些个人奋斗的故事,是从逆境不断上升,取得一定成就以后,遇到了重大打击,最后克服了困难。

卡夫卡的小说《变形记》,则是主人公本来就过得很遭,一天早上醒来,发现自己变成了蟑螂,从此越过越糟糕。

言论

1、

大公司想尽办法引诱人们多消费,真正的解决方案通常恰恰相反:你应该少消费。

大多数情况下,我们的问题主要是由过度消费引起的。如果你超重,不是要购买健身鞋和蛋白质粉,而是要少吃东西。如果你头痛和感到巨大压力,不是要购买头痛药和抗抑郁药,而要更多地睡觉和走路,并且不在深夜浏览社交媒体。

--《少消费,多创造》

2、

投资于研发可以促进经济增长。但是,研究发现,促进经济增长的主要是公司投资的研发,而不是政府投资的研发。

-- 《学术研究会导致经济增长吗?》

3、

很难表达 DJI Mini 无人机有多棒。400美元的价格,你可以买到一台像样的数码相机,它还可以飞行。这让我想起了,第一次在沃尔玛超市看到售价为29美元的 DVD 播放机。这种产品成为可能,必须发生一些不可思议的事情,而所有人几乎都没有注意到。

-- Hacker News 读者

4、

21世纪,我们被各种各样的数字强盗所困扰,从身份窃贼到跟踪者,再到公司和政府间谍,再到骚扰者。我们没有办法保护自己。

为了安全起见,你必须与军阀结盟。苹果、谷歌、Facebook、微软和其他一些军阀已经建立了防御要塞的庞大堡垒,金钱可以买到的最凶猛的网络雇佣兵时刻都在攻击他们的堡垒。他们将为你防御所有攻击者,但是如果他们想获取你的信息,你将毫无防备。

-- 《数字安全的封建时代》

5、

喜马拉雅山脉造就了巨大的河网,在整个亚洲广阔的土地上留下了惊人的丰富土壤。山脉的两边是世界上人口最多的两个国家,这绝非偶然。如果算上巴基斯坦、孟加拉国和尼泊尔,所有这些国家也都严重依赖喜马拉雅山脉发源的河流,那么地球上将近一半的人类与这个山脉有关。

-- 《喜马拉雅山脉:人类历史》

回顾

2019年的本周(第 91 期):印度孟买的房价,为什么跟北京一样高?

2018年的本周(第 39 期):苹果公司的两封公开信

订阅

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

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

(完)

文档信息

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

剪贴板操作 Clipboard API 教程

$
0
0

一、简介

浏览器允许 JavaScript 脚本读写剪贴板,自动复制或粘贴内容。

一般来说,脚本不应该改动用户的剪贴板,以免不符合用户的预期。但是,有些时候这样做确实能够带来方便,比如"一键复制"功能,用户点击一下按钮,指定的内容就自动进入剪贴板。

目前,一共有三种方法可以实现剪贴板操作。

  • Document.execCommand()方法
  • 异步的 Clipboard API
  • copy事件和paste事件

本文逐一介绍这三种方法。

二、Document.execCommand() 方法

Document.execCommand()是操作剪贴板的传统方法,各种浏览器都支持。

它支持复制、剪切和粘贴这三个操作。

  • document.execCommand('copy')(复制)
  • document.execCommand('cut')(剪切)
  • document.execCommand('paste')(粘贴)

(1)复制操作

复制时,先选中文本,然后调用document.execCommand('copy'),选中的文本就会进入剪贴板。


const inputElement = document.querySelector('#input');
inputElement.select();
document.execCommand('copy');

上面示例中,脚本先选中输入框inputElement里面的文字(inputElement.select()),然后document.execCommand('copy')将其复制到剪贴板。

注意,复制操作最好放在事件监听函数里面,由用户触发(比如用户点击按钮)。如果脚本自主执行,某些浏览器可能会报错。

(2)粘贴操作

粘贴时,调用document.execCommand('paste'),就会将剪贴板里面的内容,输出到当前的焦点元素中。


const pasteText = document.querySelector('#output');
pasteText.focus();
document.execCommand('paste');

(3)缺点

Document.execCommand()方法虽然方便,但是有一些缺点。

首先,它只能将选中的内容复制到剪贴板,无法向剪贴板任意写入内容。

其次,它是同步操作,如果复制/粘贴大量数据,页面会出现卡顿。有些浏览器还会跳出提示框,要求用户许可,这时在用户做出选择前,页面会失去响应。

为了解决这些问题,浏览器厂商提出了异步的 Clipboard API。

三、异步 Clipboard API

Clipboard API 是下一代的剪贴板操作方法,比传统的document.execCommand()方法更强大、更合理。

它的所有操作都是异步的,返回 Promise 对象,不会造成页面卡顿。而且,它可以将任意内容(比如图片)放入剪贴板。

navigator.clipboard属性返回 Clipboard 对象,所有操作都通过这个对象进行。


const clipboardObj = navigator.clipboard;

如果navigator.clipboard属性返回undefined,就说明当前浏览器不支持这个 API。

由于用户可能把敏感数据(比如密码)放在剪贴板,允许脚本任意读取会产生安全风险,所以这个 API 的安全限制比较多。

首先,Chrome 浏览器规定,只有 HTTPS 协议的页面才能使用这个 API。不过,开发环境(localhost)允许使用非加密协议。

其次,调用时需要明确获得用户的许可。权限的具体实现使用了 Permissions API,跟剪贴板相关的有两个权限:clipboard-write(写权限)和clipboard-read(读权限)。"写权限"自动授予脚本,而"读权限"必须用户明确同意给予。也就是说,写入剪贴板,脚本可以自动完成,但是读取剪贴板时,浏览器会弹出一个对话框,询问用户是否同意读取。

另外,需要注意的是,脚本读取的总是当前页面的剪贴板。这带来的一个问题是,如果把相关的代码粘贴到开发者工具中直接运行,可能会报错,因为这时的当前页面是开发者工具的窗口,而不是网页页面。


(async () => {
  const text = await navigator.clipboard.readText();
  console.log(text);
})();

如果你把上面的代码,粘贴到开发者工具里面运行,就会报错。因为代码运行的时候,开发者工具窗口是当前页,这个页面不存在 Clipboard API 依赖的 DOM 接口。一个解决方法就是,相关代码放到setTimeout()里面延迟运行,在调用函数之前快速点击浏览器的页面窗口,将其变成当前页。


setTimeout(async () => {
  const text = await navigator.clipboard.readText();
  console.log(text);
}, 2000);

上面代码粘贴到开发者工具运行后,快速点击一下网页的页面窗口,使其变为当前页,这样就不会报错了。

四、Clipboard 对象

Clipboard 对象提供了四个方法,用来读写剪贴板。它们都是异步方法,返回 Promise 对象。

4.1 Clipboard.readText()

Clipboard.readText()方法用于复制剪贴板里面的文本数据。


document.body.addEventListener(
  'click',
  async (e) => {
    const text = await navigator.clipboard.readText();
    console.log(text);
  }
)

上面示例中,用户点击页面后,就会输出剪贴板里面的文本。注意,浏览器这时会跳出一个对话框,询问用户是否同意脚本读取剪贴板。

如果用户不同意,脚本就会报错。这时,可以使用try...catch结构,处理报错。


async function getClipboardContents() {
  try {
    const text = await navigator.clipboard.readText();
    console.log('Pasted content: ', text);
  } catch (err) {
    console.error('Failed to read clipboard contents: ', err);
  }
}

4.2 Clipboard.read()

Clipboard.read()方法用于复制剪贴板里面的数据,可以是文本数据,也可以是二进制数据(比如图片)。该方法需要用户明确给予许可。

该方法返回一个 Promise 对象。一旦该对象的状态变为 resolved,就可以获得一个数组,每个数组成员都是 ClipboardItem 对象的实例。


async function getClipboardContents() {
  try {
    const clipboardItems = await navigator.clipboard.read();
    for (const clipboardItem of clipboardItems) {
      for (const type of clipboardItem.types) {
        const blob = await clipboardItem.getType(type);
        console.log(URL.createObjectURL(blob));
      }
    }
  } catch (err) {
    console.error(err.name, err.message);
  }
}

ClipboardItem 对象表示一个单独的剪贴项,每个剪贴项都拥有ClipboardItem.types属性和ClipboardItem.getType()方法。

ClipboardItem.types属性返回一个数组,里面的成员是该剪贴项可用的 MIME 类型,比如某个剪贴项可以用 HTML 格式粘贴,也可以用纯文本格式粘贴,那么它就有两个 MIME 类型(text/htmltext/plain)。

ClipboardItem.getType(type)方法用于读取剪贴项的数据,返回一个 Promise 对象。该方法接受剪贴项的 MIME 类型作为参数,返回该类型的数据,该参数是必需的,否则会报错。

4.3 Clipboard.writeText()

Clipboard.writeText()方法用于将文本内容写入剪贴板。


document.body.addEventListener(
  'click',
  async (e) => {
    await navigator.clipboard.writeText('Yo')
  }
)

上面示例是用户在网页点击后,脚本向剪贴板写入文本数据。

该方法不需要用户许可,但是最好也放在try...catch里面防止报错。


async function copyPageUrl() {
  try {
    await navigator.clipboard.writeText(location.href);
    console.log('Page URL copied to clipboard');
  } catch (err) {
    console.error('Failed to copy: ', err);
  }
}

4.4 Clipboard.write()

Clipboard.write()方法用于将任意数据写入剪贴板,可以是文本数据,也可以是二进制数据。

该方法接受一个 ClipboardItem 实例作为参数,表示写入剪贴板的数据。


try {
  const imgURL = 'https://dummyimage.com/300.png';
  const data = await fetch(imgURL);
  const blob = await data.blob();
  await navigator.clipboard.write([
    new ClipboardItem({
      [blob.type]: blob
    })
  ]);
  console.log('Image copied.');
} catch (err) {
  console.error(err.name, err.message);
}

上面示例中,脚本向剪贴板写入了一张图片。注意,Chrome 浏览器目前只支持写入 PNG 格式的图片。

ClipboardItem()是浏览器原生提供的构造函数,用来生成ClipboardItem实例,它接受一个对象作为参数,该对象的键名是数据的 MIME 类型,键值就是数据本身。

下面的例子是将同一个剪贴项的多种格式的值,写入剪贴板,一种是文本数据,另一种是二进制数据,供不同的场合粘贴使用。


function copy() {
  const image = await fetch('kitten.png');
  const text = new Blob(['Cute sleeping kitten'], {type: 'text/plain'});
  const item = new ClipboardItem({
    'text/plain': text,
    'image/png': image
  });
  await navigator.clipboard.write([item]);
}

五、copy 事件,cut 事件

用户向剪贴板放入数据时,将触发copy事件。

下面的示例是将用户放入剪贴板的文本,转为大写。


const source = document.querySelector('.source');

source.addEventListener('copy', (event) => {
  const selection = document.getSelection();
  event.clipboardData.setData('text/plain', selection.toString().toUpperCase());
  event.preventDefault();
});

上面示例中,事件对象的clipboardData属性包含了剪贴板数据。它是一个对象,有以下属性和方法。

  • Event.clipboardData.setData(type, data):修改剪贴板数据,需要指定数据类型。
  • Event.clipboardData..getData(type):获取剪贴板数据,需要指定数据类型。
  • Event.clipboardData.clearData([type]):清除剪贴板数据,可以指定数据类型。如果不指定类型,将清除所有类型的数据。
  • Event.clipboardData.items:一个类似数组的对象,包含了所有剪贴项,不过通常只有一个剪贴项。

下面的示例是拦截用户的复制操作,将指定内容放入剪贴板。


const clipboardItems = [];

document.addEventListener('copy', async (e) => {
  e.preventDefault();
  try {
    let clipboardItems = [];
    for (const item of e.clipboardData.items) {
      if (!item.type.startsWith('image/')) {
        continue;
      }
      clipboardItems.push(
        new ClipboardItem({
          [item.type]: item,
        })
      );
      await navigator.clipboard.write(clipboardItems);
      console.log('Image copied.');
    }
  } catch (err) {
    console.error(err.name, err.message);
  }
});

上面示例中,先使用e.preventDefault()取消了剪贴板的默认操作,然后由脚本接管复制操作。

cut事件则是在用户进行剪切操作时触发,它的处理跟copy事件完全一样,也是从Event.clipboardData属性拿到剪切的数据。

六、paste 事件

用户使用剪贴板数据,进行粘贴操作时,会触发paste事件。

下面的示例是拦截粘贴操作,由脚本将剪贴板里面的数据取出来。


document.addEventListener('paste', async (e) => {
  e.preventDefault();
  const text = await navigator.clipboard.readText();
  console.log('Pasted text: ', text);
});

七、参考链接

(完)

文档信息

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

科技爱好者周刊(第 143 期):世界尽头与冷酷仙境

$
0
0

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

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

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

封面图

2020年12月1日,嫦娥5号探测器登陆月球,踏上了月球的土壤。(via:《2020年中国航天回顾》

本周话题:世界尽头与冷酷仙境

上一期周刊谈到,2020年是科技发展辉煌的一年。但是, 对于普通人来说,今后的日子其实更不容易了,生存难度变大了。

让我从美国人不爱储蓄,开始说起。你可能听说过,美国人不存钱,钱到手就花了。

可是,2020年出现了一个奇观,美国的个人储蓄率突然暴增到了二战后的最高点。

根据上图,个人储蓄率从10%以下,飙升到30%以上。原因很简单,美国政府由于疫情,大量发放各种补助金和救济金,再加上商店关门,消费减少,人民口袋里的钱一下子就多出来了。

这还没完,拜登上周宣布了,1.9万亿美元的新一轮经济刺激计划,符合条件的美国人每人还可以领到2000美元。

美国政府从哪里搞来那么多钱?答案就是印钞机。机器一开,再多的美元也不成问题。

不仅是美国政府,全世界各国为了应付暴增的支出和刺激疲软的经济,都在开动印钞机。大家都在发钱。

经济很差,货币供给却大幅增加,后果就是钱都涌向金融市场,科技股、房地产、加密货币疯狂上涨。与此同时,欧美普遍出现了负利率,钱存入银行,不仅拿不到利息,还要向银行支付保管费。背后的原因是,整个社会都缺乏投资机会,平均利润率在下降,银行找不到投资项目,利率当然越来越低。

普通人的工资增长,跟不上货币贬值的速度,大部分人因此变得更穷。而富人因为资产增值变得更富,进一步加大了贫富差距。

这就是我们面对的世界。 科技发展一日千里,但是社会经济局面非常糟糕,贫富分化越来越严重,穷人的机会在变少。

日本作家村上春树有一本小说,叫做《世界尽头与冷酷仙境》。我觉得,这个书名非常好,可以用来形容今天的世界。

资本主义发展到今天,已经有一种世界尽头的感觉,除了不断印钱刺激经济,政府也找不到好的办法解决各种问题。但是,新技术革命正在创造一个个神话般的技术奇迹,又让人觉得这是一个仙境,但对于大多数人来说,这是一个冷酷仙境,改变不了自己的命运。

家庭保障规划咨询

过去一年,疫情和金融资产的价格大涨,使得许多人的财务状况和对未来的预期,出现了剧烈波动。

许多已经成家立业的朋友,都面临着一个共同的问题:怎样才能让个人财务尽可能保持平稳,给自己和家庭多一点保障?

本周正好有一个活动,为大家提供 家庭财务保障规划咨询。

经常读我公号的朋友,可能知道我和孙明展老师一直有合作。这次他在春节前办活动,特地到我这里发一个通知。

孙明展老师是广州中山大学统计系硕士毕业,后来进入500强保险公司,设计各种保险产品,对理财这一块非常熟悉。他辞职创业后,开了一家财务咨询公司,为家庭财务定制理财方案。他们开发的"谱蓝"人工智能系统,使得财务咨询服务软件化,得到过许多权威媒体的报道。

这一次,孙老师向我的读者提供200个名额,免费赠送 价值800元 的家庭保障规划服务。活动内容就是你跟理财师一对一的财务咨询,具体问题具体分析,包括但不限于下面几项。

  • 各个家庭成员保障状况的综合评估。
  • 保险产品的性价比分析比较。
  • 为你的家庭定制综合保障规划。

整个过程中,保证不为任何一家保险公司做广告,只提供定制方案和咨询服务,而且是免费的。微信扫码下面的二维码,即可报名参加。

资讯

1、无人驾驶挑战:从旧金山到洛杉矶

一个美国人使用特斯拉无人驾驶,挑战让轿车自己从旧金山开到洛杉矶,全程600公里。结果失败了,倒不是因为自动驾驶出错,而是他自己害怕了。当时,路中央有一个大水泥块,前车开过去才看到,他害怕特斯拉来不及发现这个障碍物,因此手动介入了,调整方向盘避开了水泥块。

另外,整个过程中,他去了两次超充站充电,特斯拉只能自己开到超充站入口,接下来就得全靠手动了。但是总的来看,无人驾驶已经非常强了,再过几年可能就真的能够全程都交给它了。

2、地球自转变快

1972年,原子钟投入使用,人类从此能够获得精确的计时,可以测出地球自转速度的细微变化。此后,科学家发现,地球自转有点变慢了,略多于24个小时(即86,400秒)。为了保证历法准确,至今人们一共使用了27个闰秒,而且都是正数,即一共有27年加上了1秒,该年变成86401秒。

但是,2020年很特殊,地球自传速度第一次快于24个小时(即少于86,400秒)。科学家正在讨论,是否有必要第一次采用负的闰秒,即当年减去1秒。根据测量,2020年7月19日是有记录以来最短的一天,地球自转时间比24小时少了1.4602毫秒(下图)。

3、冰制机器人

宾夕法尼亚大学的研究人员,使用冰块制造了一个概念机器人。这是为了宇宙探索而开发的,太空温度很低,并且缺乏建筑材料,如果冰块可以做成机器人,一旦零件坏了,就很容易自我重建。

他们的第一个机器人,准备在南极测试,重6.3公斤,通过两个冰块轮子前进。除了电池和电路,机器人的大部分结构部件都是用冰建造的。

4、维珍火箭

1月17日,英国维珍火箭公司的第一枚火箭成功发射。这家公司非常独特,火箭不从地面发射,而是从高空飞机上发射。

火箭绑在一架波音747飞机的底部,飞机飞到一万米高空时,火箭点火发射。这样的主要好处是,可以在任何地点发射,不需要专门的火箭发射场,缺点是负载有限,只能发射较小的卫星。

5、一句话消息

  • 西南交通大学制造的世界首台高温超导高速磁浮工程化样车在成都下线,设计时速达到620公里。如果全程这个速度,从成都到北京仅需3小时。

  • 一位英国计算机工程师声称,自己扔掉的一个旧笔记本电脑,硬盘里面装有现在价值2亿英镑的比特币,被埋在一个小镇的垃圾掩埋场里面。如果当地政府帮助他把这个硬盘从垃圾堆里挖出来,他将分四分之一的钱给小镇,结果被拒绝了。

  • 中国国家航天局公布《月球样品管理办法》,规范去年12月5日嫦娥五号飞船带回的1731克月球岩石的管理。

  • 一个美国开发者制作了一个带有拨号盘的手机,理由是有些人不喜欢使用触摸屏,拨号打电话更直观。

  • 耶鲁大学的科学家发现,屠宰场的猪死了10个小时后,脑细胞依然可以激活,即大脑可能可以恢复某些功能。

文章

1、快递包装垃圾怎么办?(中文)

2020年,中国的快递达到830亿件,相当于14亿中国人每人每个月收5件快递。海量的快递包装垃圾如何处理?目前主要靠填埋,但是越来越难以为继了。

2、大连车务段的 Flash 危机(中文)

2021年1月,Adobe 不再支持 Flash,Windows 系统在指定时间禁止了 它的运行。沈阳铁路局大连车务段的某个系统依赖 Flash,当天突然就无法使用了。IT 人员只好连夜向各个车站,送去安装了降级 Flash 版本的新 Windows 主机,暂时解决问题。从这篇文章可以了解基层单位的 IT 现状。

3、如何看待 QQ 扫描读取所有浏览器的历史记录?(中文)

一个知乎的讨论帖。网友发现,桌面版的 QQ 会在启动10分钟后,读取本机所有浏览器的浏览记录,进行 URL 分析。一个聊天软件为什么要知道浏览记录呢?

4、消失的夏威夷海滩(英文)

本文根据实地调查提出,夏威夷由于修建海堤,导致海滩消失。制作非常精美生动,值得借鉴,堪称多媒体内容的范本。

5、2020年排名前10 的 Python库(英文)

本文介绍目前最流行的10个 Python 库。

6、如何释放 MacBook 的磁盘空间(英文)

MacBook 用作开发笔记本时,长期下来,大量空间会被占用。本文介绍几个清理空间的方法。

7、AMD Ryzen 9 5950X CPU 测评(英文)

国外媒体评测了 AMD 公司最新的 Zen 3 架构的高端 CPU,结论就是英特尔公司有大麻烦了,现在不仅性价比不如 AMD,连高端 CPU 的性能都输了。

8、浏览器插件推荐(英文)

本文推荐了21个浏览器插件,可以提高使用效率,而且同时支持 Chrome 和 Firefox。

工具

1、andala

一个在线画板,画出来的线条都是对称的。

2、YPlayer

一个 MacOS 视频播放器,为视频实时生成字幕,不需要任何网络请求,采用本地语音识别。(@yujinqiu 投稿)

3、在线视频片段合并

很多在线视频都是许多 .ts 文件组成的,这个在线工具可以输入 .ts 文件的网址,然后将它们合并。(@DoctorLai 投稿)

4、Cavepaint CSS

一个可以在线调节主要参数(CSS 变量)的 CSS 框架。

5、ssh-mitm

一个 SSH 中间人服务器,拦截所有 SSH 操作。可以用作"蜜罐",攻击者自以为登陆了真实服务器,从而让系统记录下他的操作。

6、Google Images Restored

Chrome 浏览器插件,可以将"谷歌图片搜索"恢复成改版前的样子,并且加上了"打开图片"按钮。

7、LibreTranslate

一个开源的、可以自己架设的机器翻译服务,支持多种语言的互相翻译,包括中文。

8、Multiavatar

一个在线工具,可以根据输入的文字,生成用户头像图片( avatar)。

9、Transform

一个在线工具,可以将各种代码互相转换,比如把 HTML 转为 JSX,或者把 JSON 转为 XML。

资源

1、Electronic References

该网页收集网上免费的计算机科学教科书。

2、Proton 游戏数据库

该网站提供所有可以通过 Proton 在 Linux 上运行的游戏资料。

3、Just Get My Data

这个网站收集了从各种在线服务取回个人数据的方法,并有"容易"、"中等"、"困难"、"不可能"四个难度评级。

4、最繁忙的航线

该网站可以查看世界各地的航线数据,比如本月最繁忙的10条国际和地区航线,以及各国国内最繁忙的航线。

5、freeCodeCamp 课程

该网站提供一系列免费的英文 IT 课程,内容比较浅显简单,适合初学者。(@fish-404 投稿)

图片

1、路口上色计划

很多发展中国家的城市,交通混乱,人车混行,行人安全得不到保障。

彭博通讯社有一个慈善项目,为这些城市的路口涂上明亮的颜色,明确行人和车辆各自的区域,保证行人安全。

埃塞俄比亚的首都亚的斯亚贝巴。

哥伦比亚首都波哥大。

印度最大城市孟买。

巴西最大城市圣保罗。

2、德国螺旋森林(Waldspirale)

德国螺旋森林是一个住宅楼项目,一共有12层,105套公寓,建于上个世纪90年代。

它的外形像一个 U 字形的螺旋,屋顶种满树木,从空中看下来就像一个森林。

它是一个不规则建筑,强调乱序,每个立面都不一样,1000多扇窗户都是不同的。

文摘

1、朱学恒:我翻译《魔戒》的故事

当年,我在奥美公关快要离职了,只剩最后几个月。我看到一个报道,新线影业投资3亿美元,要筹拍《魔戒》,找了一个新西兰很奇怪的导演彼得·杰克逊。

我觉得我可能有机会了,许多人也许会因为电影而喜欢小说《魔戒》。以前,台湾最大的出版社之一联经出版公司,曾经出过一个《魔戒》的译本,卖得超烂,一共印了3000套,几年都没卖完。封面上面写着"西方世界的《西游记》",你觉得看到这种宣传语,你想买吗?

我写信跟联经说,我想要重新翻译这套书。我已经翻译过23本奇幻小说,像《龙枪》和《黑暗精灵》,台湾没人翻译得比我多。对方想,莫名其妙跑出来一个20几岁的年轻人,自称台湾翻译奇幻小说最多的人,却是电机系毕业,又在公关公司工作。他根本不信。

我就说,我知道你们不相信,不觉得我能做到,但是没关系。你们前面那个版本卖得那么烂,我跟你保证,我可以让它卖得比较好。我跟你们签合同,我保证每一册都要卖过10000本,如果不到这个销售数字,我一毛钱都不要。但是,我有一个条件,销售超过10000本以后,我要拿版税。当时,台湾没有译者可以拿版税,都是拿翻译费。但是,我坚持所有我的翻译都要拿版税,因为我和我的翻译荣辱与共,一起同进退。

我还保证,年底电影上映的时候,我一定交稿,如果交不出来,你可以起诉我违约。联经同意了。

我就从奥美公关离职,专心翻译。我这时发现,翻译时间只剩下六个月。电影12月上映,当时是3月,我必须在9月份完成翻译交稿。《魔戒》总共有三册,120万字。那六个月真是痛苦死我了,一天必须要翻译6000字,如果翻不到,就会累积到第二天,这样连续180天,比马拉松还像马拉松。

我后来没有办法,这种工作真是太辛苦了。我就每天早上去健身房,在跑步机上跑10公里,只为了振奋自己的精神。其他时间除了吃饭和睡觉,都在翻译。实在是太累了,如果我不去跑步,每天光是打字,我会打疯掉,你一个月要打20万字,而且里面还有古英文、精灵文、矮人语,查资料都会天翻地覆。

最后,我终于按时交稿了。但是出现一个问题,联经擅长出版,不擅长行销,只有一个行销人员,我必须全程配合行销。联经想出来的办法,就是到处办签书会。那时候多惨,没有人推销,我只好自己来,在网络上到处求爷爷告奶奶,说这是20世纪最伟大的奇幻小说,要出版了,我们第一次首卖会,请大家务必来,求求你。

我觉得出版社的这个主意太糟糕了,没有人知道这本书,而且之前卖很烂,居然要办首卖会。更糟糕的是,联经把首卖会安排在半夜12点,他们真是很天真的读书人,觉得《哈利·波特》可以在半夜首卖,《魔戒》也可以。我心想,哪里来的勇气啊,《魔戒》第一册是1930年代出版的,1960年代出完,距今40年了,怎么跟《哈利·波特》比啊。我那个时候也没名气,除了奇幻小说的读者,没人知道我。如果半夜12点首卖,一定没人买,出版社和其他单位都会因此丧失信心,以为我之前都在吹牛,这套书多好多好,结果根本没人买。我只好到处网上拜托。

结果,上天疼惜努力的人。首卖会的那一天,我晚上9点到了诚品书店的现场,排队的人已经从二楼排下来了,排到一楼大厅。说实话,那天我带了几千块,要是现场没有人,我就自己买20本。我心想,我的号召力原来这么大,就去跟排队的人说,谢谢谢谢,我就是朱学恒。他抬头看着我,说你谁啊。原来他们根本不是因为我来的,而是因为他们从朋友的朋友那里听说,这书很棒,一定要来首卖会。我那个时候超感动,觉得书本身吸引人,才是最重要的,不是靠我那些狗屁行销、那些唬烂。12点一到,现场300本卖光光。

那一场成功了,你以为就成功了嘛?没有,大家还是不知道这本书。后来,我又去台北国际书展签书。因为真的没有人,又去台中和高雄签书。那里的书展规模很小,小到好笑,隔壁就在卖鲍鱼。我以前没有这么厚脸皮,也讨厌演讲,但是没办法,除了我就没人可以做宣传了。还有一次,《魔戒》出版两三个月后,联经在金石堂书店5楼安排了签书会,我去了以后,时间到了,现场只有两个人,都是工作人员。

后来,《魔戒》电影三部曲一部比一部成功,还得了奥斯卡奖,书的销量也跟着水涨船高。联经不太会行销,但是有的地方很棒。第一次印刷他们就只印了9990本,因为销量低于1万本,他们一分钱也不用给我。

忽然之间,联经发现,这本书在全台湾大卖,不停地加印,还缺货。保守估计,他们因为这本书赚了3到4亿新台币。他们恐怕想不到,一个找上门自荐的无名译者,会给他们赚这么多钱。我真感谢,电影《魔戒》拍得这么好,要是拍得不好,我就完蛋了。

我离职后,整整有一年,一毛钱的收入都没有。那又怎么样?翻译《魔戒》就是我想做的事。很多人讲,你怎么敢签那样的合约,要是卖不到1万本,你怎么办!但其实,联经和我想的是不一样的东西,联经想的是这本书如果卖不动,也不会有损失。我想的是,我翻译了这本书,就算一毛钱也拿不到,将来可以跟孙子说,你爷爷当年翻译了《魔戒》,这就够了。你要知道,人生有的事情,我们做的时候是因为觉得值得,不是因为能够赚钱。只是有的时候,你做了值得的事情,就自然赚到了钱。

言论

1、

代码应该尽可能简单,因为下一个维护你的代码的人不会像你那么聪明。

--《我在软件行业45年学到的东西》

2、

为什么我需要钱?原因跟你想的不一样,我几乎没有时间休闲,也没有度假屋或游艇之类的东西。

我一半的钱用于解决地球上的问题,另一半钱用来在火星上建立一个自给自足的居民点,确保一旦地球被流星击中(恐龙灭绝就是这种情况)、或者第三次世界大战爆发、人类自己消灭自己时,(所有生物种群的)生命能够延续下去。

-- 伊隆·马斯克,由于特斯拉股价暴涨,他已经接近世界首富

3、

英语中,"大学"(university)这个词是"单一性"(uni-)和"多样性"(versity)两个词的结合。它的意思是,大学就是将各种各样的知识统一起来,寻求规律。

-- David Perell

4、

我在日常工作中使用 Java 。我不喜欢这门语言,但愿意使用它,原因是它可以让我有所作为。

--Hacker News 读者

5、

无人驾驶技术的公司是这样估值的,每位工程师大约1000万美元。例如,一个刚起步的三人创业公司,估值就是3000万美元。

--《纽约时报》

回顾

2020年的本周(第 92 期):听觉暂留

2019年的本周(第 40 期):手动咖啡不属于电子时代

订阅

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

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

(完)

文档信息

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

异或运算 XOR 教程

$
0
0

大家比较熟悉的逻辑运算,主要是"与运算"(AND)和"或运算"(OR),还有一种"异或运算"(XOR),也非常重要。

本文介绍异或运算的含义和应用。

一、含义

XOR 是 exclusive OR 的缩写。英语的 exclusive 意思是"专有的,独有的",可以理解为 XOR 是更单纯的 OR 运算。

我们知道,OR 运算的运算子有两种情况,计算结果为true

(1)一个为 true,另一个为 false;

(2)两个都为 true。

上面两种情况,有时候需要明确区分,所以引入了 XOR。

XOR 排除了第二种情况,只有第一种情况(一个运算子为true,另一个为false)才会返回 true,所以可以看成是更单纯的 OR 运算。也就是说, XOR 主要用来判断两个值是否不同。

XOR 一般使用插入符号(caret)^表示。如果约定0 为 false,1 为 true,那么 XOR 的运算真值表如下。


0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0

二、运算定律

XOR 运算有以下的运算定律。由于非常简单,这里就省略证明了。

(1)一个值与自身的运算,总是为 false。


x ^ x = 0

(2)一个值与 0 的运算,总是等于其本身。


x ^ 0 = x

(3)可交换性


 x ^ y = y ^ x

(4)结合性


x ^ (y ^ z) = (x ^ y) ^ z

三、应用

根据上面的这些运算定律,可以得到异或运算的很多重要应用。

3.1 简化计算

多个值的异或运算,可以根据运算定律进行简化。


a ^ b ^ c ^ a ^ b
= a ^ a ^ b ^ b ^ c
= 0 ^ 0 ^ c
= c

3.2 交换值

两个变量连续进行三次异或运算,可以互相交换值。

假设两个变量是xy,各自的值是ab。下面就是xy进行三次异或运算,注释部分是每次运算后两个变量的值。


x = x ^ y // (a ^ b, b)
y = x ^ y // (a ^ b, a ^ b ^ b) => (a ^ b, a)
x = x ^ y // (a ^ b ^ a, a) => (b, a)

这是两个变量交换值的最快方法,不需要任何额外的空间。

3.3 加密

异或运算可以用于加密。

第一步,明文(text)与密钥(key)进行异或运算,可以得到密文(cipherText)。


text ^ key = cipherText

第二步,密文与密钥再次进行异或运算,就可以还原成明文。


cipherText ^ key = text

原理很简单,如果明文是 x,密钥是 y,那么 x 连续与 y 进行两次异或运算,得到自身。


(x ^ y) ^ y
= x ^ (y ^ y)
= x ^ 0
= x

3.4 数据备份

异或运算可以用于数据备份。

文件 x 和文件 y 进行异或运算,产生一个备份文件 z。


x ^ y = z

以后,无论是文件 x 或文件 y 损坏,只要不是两个原始文件同时损坏,就能根据另一个文件和备份文件,进行还原。


x ^ z
= x ^ (x ^ y) 
= (x ^ x) ^ y
= 0 ^ y
= y

上面的例子是 y 损坏,x 和 z 进行异或运算,就能得到 y。

四、一道面试题

一些面试的算法题,也能使用异或运算快速求解。

请看下面这道题。

一个数组包含 n-1 个成员,这些成员是 1 到 n 之间的整数,且没有重复,请找出缺少的那个数字。

最快的解答方法,就是把所有数组成员(A[0] 一直到 A[n-2])与 1 到 n 的整数全部放在一起,进行异或运算。


A[0] ^ A[1] ^ ... ^ A[n-2] ^ 1 ^ 2 ^ ... ^ n

上面这个式子中,每个数组成员都会出现两次,相同的值进行异或运算就会得到 0。只有缺少的那个数字出现一次,所以最后得到的就是这个值。

你可能想到了,加法也可以解这道题。


1 + 2 +  ... + n - A[0] - A[1] - ... - A[n-2]

但是,加法的速度没有异或运算快,而且需要额外的空间。如果数字比较大,还有溢出的可能。

下面是一道类似的题目,大家可以作为练习。

一个数组包含 n+1 个成员,这些成员是 1 到 n 之间的整数。只有一个成员出现了两次,其他成员都只出现一次,请找出重复出现的那个数字。

五、参考链接

(完)

文档信息

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

科技爱好者周刊(第 144 期):提高收入的根本途径

$
0
0

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

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

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

封面图

上海正在举办白玉兰冰雪节,搭建了本地难得一见的室外真冰溜冰场。(via

本周话题:提高收入的根本途径

我看到一个故事,很有启发,给大家讲一下。

挪威和孟加拉是两个截然不同的国家,但是它们有一个共同点:渔业都是两国的主要产业,很多人以打渔为生。

挪威渔民非常有钱,挪威是世界上最富裕的国家之一,人均 GDP 接近8万美元。

孟加拉国属于世界最贫穷的国家,人均 GDP 大约2000美元。

同样是打渔,为什么渔民的收入相差那么大?

你可能马上就会想到,他们的设备不一样,影响了收入。挪威渔民拥有大型现代化渔船,接受过各种培训,只要几个人就能捕到大量的鱼,所以收入高。孟加拉渔民只有小渔船,捕鱼能力有限,所以收入低。

上个世纪70年代,发生了一件事情。挪威向孟加拉国赠送了现代化渔船,作为援助。

孟加拉渔民现在有了同样的设备,能够提高收入吗?

答案还是不能。仅仅过了一年,这些现代化渔船就无法使用了,援助行动以惨败告终。孟加拉渔民缺乏相应的知识和技能,无法操作挪威渔船,同时也缺乏进行维修的基础设施和零配件,没有任何学校教渔民怎么修理这些船。现代化设备在孟加拉渔民手里,很多功能发挥不出来,出海遇到故障,只有眼睁睁看着整艘船坏掉。

一条现代化渔船,其实不仅仅是单纯的一条船,而是许多千丝万缕的因素联合在一起,使它能够建造出来,并得以良好地运行。

这件事的启示就是, 一个国家比另一个国家富裕,很大程度上并不取决于人民是否努力工作 (孟加拉人的努力程度,事实上可能远胜于挪威人),也不取决于设备,而是取决于许多其他因素,比如资本、知识技能、基础设施、销售渠道等等。所有这些外部因素,才是国家富裕的根本原因,人民的努力不是决定性因素。

这个道理放到人的身上,也是一样的。 人与人的收入不一样,原因不是甲比乙更努力,而是很多外部因素综合起来的结果。 甲拥有的资本、技能和环境条件超过了乙,使得甲所在的层次高于乙。一个餐厅服务员,无论怎样努力,收入恐怕都不会超过基金经理,道理就在这里。

这告诉我们,如果你想真正地提高收入,努力仅仅是一部分的因素,更重要的是,你必须设法提升自己的资本、技能和环境的层次。

就像第21期说过的,你需要的不是"水平方向的努力",而是"垂直方向的努力"。

Vue 3 PK React 17 特训营

React 和 Vue 是国内最流行的两个前端框架,孰优孰劣的争论,就从来没有停息过。只要有人提一句:"我觉得 A 比 B 更好",下面肯定就是一堆回帖。

  • " Vue 只适合小项目,大项目扛不起来"
  • " React 组件太复杂,代码组织乱!"
  • " Vue好上手,岗位多"
  • " 大厂基本都用 React,不用 Vue "

其实大可不必,它们各有特点,都能解决前端开发的问题,你只要选择更适合自己风格的那种就可以了。这就像不同品牌的汽车,都能开到目的地,只是你开起来顺不顺手而已。

不过,这两个框架的对比和争论,并非全无意义。

1、面试时,React 和 Vue 各自的特点是常见的面试题。
2、如果你想做架构师或技术负责人,进行技术选型时,必须对各个框架都非常了解。
3、通过对比,可以抽象出一些本质上共通的东西,比如算法、工程化方法、规范等等,帮你构建技术壁垒,保持核心竞争力。

本周的课程资料,就是一个讲解 React 和 Vue 对比的视频课程 《Vue3.0 PK React17 核心力特训营》 (上课时间:2月1日-2月3日每晚 8:00)。它从框架原理开始讲起,再到现实业务场景,最后抽象二者的底层,层层递进,帮你深入掌握这两个框架的异同。

该课程由开课吧提供,主讲老师是前百度、360架构师、Vue 3.0 contributor 大圣老师。通过这个课程,你不仅能掌握 Vue3 和 React17 设计思路和面试技巧,也能对比框架生态,了解技术选型方法论、探究框架原理。此外,还有答疑和作业讲解,并能获得大圣老师精心总结的独家资料:

  • 《Vue 和 React 框架大厂面试题通关指南.pdf》
  • 《Vue3 & React17 进阶知识地图》

训练营原价399元,周刊读者只需 0.99元 !优惠价仅限200名,微信扫描下面的二维码,就可以加入。

资讯

1、超级充电弓

上海市开始在公交电站部署超级充电弓,为电车充电。充电弓酷似路灯,车辆进入停车位以后,会降下一张充电装置,搭住藏在超级电容公交车车顶的受电弓。

该充电弓是世界功率最大的汽车充电装置,可以达到 900kW,同时也拥有世界"最快"充电速度,充电40秒,续航10公里。充满需要8分钟,可跑40公里。而且,它非常节省空间,适合部署在城市马路边。

2、破解人脸识别

清华大学的 RealAI(瑞莱智慧)团队使用一张打印的彩色人脸图片,测试能否通过手机的人脸识别。他们选取了 20 款手机,覆盖不同价位的低端机与旗舰机。

最终,除了一台 iPhone11,其余安卓机型全部解锁成功,完成整个破解过程只花了 15 分钟。测试人员成功解锁手机后,任意翻阅机主的微信、信息、照片等个人隐私信息,甚至还可以通过手机银行等个人应用 APP 的线上身份认证完成开户。

iPhone 的人脸识别使用 3D 摄像头,所以可以区分平面照片和真实人脸。后来,RealAI 团队又尝试用这种方法,测试同样带有 3D 摄像头的华为 Mate 40 Pro,一样未获成功。

3、空气冷凝机

以色列公司 Watergen 推出一款空气冷凝机,可直接转换空气中的水气成为饮用水,一天产量为5000-6000公升,如果一个人一天所需要的水量为1公升的话,则满足5000人的生存需求。

它的原理是吸入空气,通过内部的热交换系统,将空气的温度降至露水点,从而获得液态水。它需要外部供电,Watergen 号称该系统的产水效率是其他系统的五倍以上,非常适合解决沙漠地区或者艰困环境的饮水问题。

4、白宫官网改版

1月20日,美国新总统拜登上任,白宫官网 whitehouse.gov 当天就改版了。

2017年,特朗普政府将白宫官网的 CMS(内容管理系统)从 Drupal 改成了 WordPress,原因是后者的维护和开发比较省钱,据说每年可以为美国纳税人节省300万美元。

这一次,拜登政府的改版沿用了 WordPress,并没有改回奥巴马时代的 Drupal,看来不打算推翻特朗普政府的这个决定。值得一提的是,改版后的官网性能表现很好,Lighthouse 得分接近满分。

5、Elasticsearch 许可证

业界应用最广的开源搜索工具 Elasticsearch 上周修改了许可证,新版本将不允许云服务商使用它提供服务。这主要是针对亚马逊公司,后者出售 Elasticsearch 搜索服务,开源项目的维护者拿不到任何好处,等于是为亚马逊免费打工。

亚马逊立刻回击了,宣布将提供自己的开源版本。Elasticsearch 等于是为自己找了一个竞争对手,而且对手有无限资源。这件事的启示就是,开源时要想好,如果大公司拿你的代码挣钱,也不会分给你,你怎么办。

6、一句话消息

  • 加州的洛杉矶港去年下半年至今,有许多巨大的集装箱船,导致港口水道都堵住了。这是因为美国大量从亚洲进口货物,港口的46个泊位全部停满,还有几十艘集装箱船在港外下锚,等着泊位空出来。

  • 谷歌宣布,今年3月15日起,Chrome 浏览器的开源版本 Chromium 不再能够调用谷歌 API,这意味着Chromium 的书签、浏览记录等将都无法同步了。

  • 一种叫做 Brood X 的蝉是美国的主要蝉类,每17年繁殖一次。它上一次出现是2004年,它的卵会在地下等17年才孵化,今年又将重新出现。

  • 考古学家在英国发现两枚11世纪北宋时期的中国硬币。由于当地离海边不远,并出土过中国陶瓷,因此猜测中国硬币是中世纪的陶瓷商人携带过来的。

  • 马斯克宣布,一旦科学界找到最佳的二氧化碳捕捉技术,他将为该技术捐款1亿美元。

文章

1、中国的大坝(中文)

中国有10万座水坝,是世界水坝最多的国家。本文以大量的图片,介绍不同类型水坝的知识。

2、我开发付费 Chrome 插件的经历(中文)

作者介绍了在 Chrome 商店发布付费插件的过程,总收入有几百美元。(@timqian 投稿)

3、如何用 GitHub Actions 更新 WordPress 网站(中文)

本文介绍使用 GitHub Actions 将仓库里面的 Markdown 文章,远程发布到 WordPress 网站。(@zhaoolee 投稿)

4、二因素登陆 2FA 不能防止网络钓鱼(英文)

很多人有一种误解,只要开启了二因素登陆 2FA,就可以保证个人账户的安全。作者指出,2FA 只是保证其他人不能登录你的账户,但是防止不了网络钓鱼。

5、Tab 还是空格?(英文)

本文讨论了代码缩进使用 Tab 或空格的利弊,说得很有道理,并提供了推荐的缩进方式。

6、使用 GNU Stow 管理配置文件(英文)

Linux 系统有很多配置文件,比如.bashrc.vimrc等等,一个很方便的管理方法,就是把它们放到一个 Git 仓库,然后使用 Stow 这个工具产生软链接。

7、2021年 favicon 的设置(英文)

网站的 favicon 应该怎么设置?这篇文章给出了最新的建议。

8、Gmail 搜索语法(英文)

本文通过一个例子,讲解 Gmail 的搜索语法。

9、我怎样建立没有一家全职员工的公司(英文)

作者讲述自己创立 Gumroad 这家公司,年收入达到1100万美元,但是没有一个全职员工,连作者自己都不是全职投入。这可以算是创业的理想境界。

10、视频编码器的专利费(英文)

H.264 视频编码器需要交纳专利费,这篇文章介绍了这方面的情况。为了保证可以自由地对视频进行编码,Mozilla 一直在推动 AV1 这样的开源编码器。

工具

1、Sosumi

一个 Linux 系统的 Snap 包文件,可以在 Linux 系统运行 MacOS。

2、Brave 浏览器

Brave 浏览器宣布支持 IPFS 协议,可以直接在地址栏打开 IPFS 地址。

3、ArchiveBox

一个将网页存档的工具,可以将 HTML、CSS、JS、图片、媒体文件都保存下来,供日后查看。这里是教程

4、PyG2Plot

Python 的数据可视化图表生成工具,基于蚂蚁集团开源的 G2Plot 封装。(@hustcc 投稿)

5、openpilot

一个开源的辅助驾驶系统,可以自动车道居中和自适应巡航控制,已经支持85种车型。(@dllen 投稿)

6、Swagger 文档导出

一个在线工具,可以将 Swagger 文档(yaml 或者 json 格式)导出为PDF、Markdown、EPUB、HTML 等格式。(@docs4dev 投稿)

7、Basemark

一个可以跑分的网站,用来测试浏览器的性能。

8、LocalCDN

一个浏览器插件,将常用的前端 CDN 库集成在插件里面,避免发出网络请求,加快加载速度,以及降低隐私泄漏的可能。

9、X6

蚂蚁集团数据可视化工具 AntV 旗下的图编辑引擎,用来在网页上生成 SVG 图形。(@NewByVector 投稿)

资源

1、Vue3 源码解读

这个库把 Vue3 源码中最核心的逻辑剥离出来,只留下核心逻辑,以供大家学习。带有详细的中文注释,以及完善的输出,帮助用户理解运行时流程。(@cuixiaorui 投稿)

2、freeCodeCamp 中文版

这是上一期介绍的 freeCodeCamp 初学者免费教程的中文版,由志愿者翻译的。

3、Games on GitHub

这个仓库收集 GitHub 上面的各种开源游戏。

4、机器学习面试题

这个英文网站收集了一些机器学习面试的基本问题 。

5、Radiance

该网站收集了全世界几十个国家的艺术家创作的 VR 视频,可以戴 VR 眼镜欣赏。

6、2020数学艺术展

该网站展出各种根据数学概念创造的艺术品,比如上图这样的编织品和雕塑品。

图片

1、Paludarium

日本花卉艺术家 Azuma Makoto 建造的 Paludarium,是一种密封的玻璃容器,为植物创造一个自给自足的环境系统。

Paludarium 不仅可以控制内部温度和湿度,还具有喷雾和滴灌系统,给植物供水。

顶部的风扇起到通风的作用,并且还有扬声器给植物播放音乐。

这个机器就这样通过人工方式,模拟了自然界的雨、风、光、声,在密封容器里面实现了生态循环,使得人们可以不受外部环境的影响,而欣赏植物的美。

2、快递损坏造就的艺术品

一位美国艺术家将各种玻璃艺术品,交给快递公司去运输,故意不加任何防护措施,使得快递过程中造成的玻璃破碎,也成为艺术品的一部分。

文摘

1、软件业的停滞

软件技术的进步,在1996年左右基本停滞了。

1996年之前,我们取得的软件成果:LISP,Algol,Basic,APL,Unix,C,SQL,Oracle,Smalltalk,Windows,C ++,LabView,HyperCard,Mathematica,Haskell,WWW,Python,Mosaic,Java,JavaScript,Ruby,Flash,Postgress。

1996年以后的软件成果:IntelliJ,Eclipse,ASP,Spring,Rails,Scala,AWS,Clojure,Heroku,V8,Go,Rust,React,Docker,Kubernetes,Wasm。

后面那些软件成果,都是对此前技术成果的增量改进。比如,Rails 通过良好的结构化方式将一堆现有技术粘合在一起,从而极大地提高了 Web 应用程序的生产率,但是它本身没有发明任何新东西。同样地,V8 通过扩展 Smalltalk 和 Java 中发明的技术,加速 JavaScript 执行速度。

自从1996年以来,几乎所有东西都是巧妙地重新包装和重新设计了先前的发明。

为什么1996年以后,软件技术突然停止了进展?1996年到底发生了什么?

我认为原因就是互联网开始繁荣。突然之间,程序员有史以来第一次可以迅速致富,大量聪明的有抱负的人涌入了硅谷。但是,你不能在创业公司做研究,基础技术需要很长时间酝酿,并且风险很大。合理的商业计划是利用 VC 的资金,将其投入到最优秀的程序员,让他们改进当前糟糕的技术,然后兑现获利。创业公司没有发明基础技术的时间。

如今,只有像 Google / Facebook / Amazon / Microsoft 这样的大型公司才有金钱和时间来创造新技术,但是他们似乎只对以最小的破坏性方式解决自己的问题感兴趣。

2、罗尔德·达尔的童话《声音机器》

一个叫克劳斯纳(Klausner)的人,沉迷于声音。他认为,世界上有很多声音因频率高而无法听到。

有一次,他去看病。他跟医生说,他正在尝试发明一种机器,可以降低声音的频率,让那些无法听见的声音可以被听到。

后来,机器终于造好了。

他在院子里首次实验,邻居在花园里剪玫瑰,他从耳机里听到玫瑰在尖叫。

第二天,他做了一个更大的实验。他拿斧头砍一棵大山毛榉树。他听到树发出的深沉而悲惨的呻吟。

克劳斯纳赶回屋子,给医生打电话:"请过来,快来。我想让其他人听到。太难以置信了!"

医生同意过来,听听耳机里面的声音。

医生到了以后,克劳斯纳第二次砍树时,一个大树枝掉下来,把机器砸毁了。克劳斯纳问医生是否听到了呻吟声,医生说没有听到任何声音。

克劳斯纳非常难过,最后他要求医生在树的伤口上面涂一些碘酒,医生同意了。

言论

1、

协和飞机是一架超音速客机,于1969年首飞,距今已经超过50年。1969年的人们大概以为,我们现在应该生活在太空中,或者到处都是飞行汽车,而不会想到今天最快的客机依然比协和飞机慢。

-- Lyn Alden

2、

我和其他工程师一样,都有 MacBook Pro。再过几年,所有这些机器都会被淘汰,被新的 ARM 芯片的型号取代。到那时,开发者会觉得,在ARM 机器上开发,但是在 x86 服务器上进行部署的想法,将是令人不舒服的。因此,苹果公司的"换芯"行动,会大大加速服务器的变革,从 x86 架构转向 ARM 架构。

-- Hacker News 读者

3、

一个复杂的大型软件,即使支持某些简单的功能,也无法以直观、易于使用的方式呈现。

-- Hacker News 读者

4、

要么是用户控制程序,要么是程序控制用户。

-- 理查德·斯托曼

5、

C 语言很保守,变化和增长非常缓慢。这其实是一项吸引人的功能,开发人员常常低估了它。

--《为什么没有 C 语言大会?》

回顾

2020年的本周(第 93 期):漫游类的游戏,将会越来越多

2019年的本周(第 41 期):如何看待互联网公司裁员?

订阅

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

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

(完)

文档信息

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

科技爱好者周刊(第 145 期):大家不出门,经济怎么办?

$
0
0

这里记录每周值得分享的科技内容,周五发布。( [通知] 下周是春节假期,周刊暂停一期。

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

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

封面图

2021年1月24日,三只海龟被海水冲上了以色列的一处海滩。兽医对其中一只受伤的海龟进行 CT 扫描。(via

本周话题:大家不出门,经济怎么办?

最近,我和一个朋友聊天。他说了一个观点,令我印象深刻。

他说,大家都低估了外卖行业的深远影响。外卖的兴起,是一件具有重大历史意义的事件。

他的理由是,以前的网络经济,只是日常生活的补充。 比如网络购物是有些东西附近不容易买到,你去网上买;网络游戏是只有联网才能玩,没有网络就没法玩。它们都不属于传统生活的一部分,可以看作是网络对日常生活的补充。

但是,外卖不是这样,它直接替代了日常生活的一部分。 周围三公里内,你需要什么,外卖员帮你跑腿送上门,送餐、买药、买菜都可以。这里的关键是,那些地方本来都是你本人应该去的,现在不用去了。

也就是说,外卖的出现,改变了人们本来的日常生活。它让那些必须出门的事情,都不必出门就能完成。可以这样说,外卖大大减少了出门的必要性,增加了人们待在家里或办公室的时间。

互联网有一个副效应,就是大家越来越不用出门,办公、购物、学习、交流、娱乐都可以通过网络完成。外卖把这个副效应急剧提升,外出吃饭、买菜,这些原本不得不出门的日常事务,都通过网络解决了。

一定要出门才能完成的事情,正在变得越来越少,甚至多人聚餐也可以通过网络。

我问大家一个问题: 如果所有人减少一半的出门,对社会和经济有何影响?

首先,实体经济会加速死掉,它们依赖传统的顾客上门模式,没人上门就活不了。其次,商业地产会很惨,店面租不出去,购物中心纷纷关门。最后,人与人之间的纽带变弱了,不出门就接触不到其他人,网络很难建立人与人的沟通。

以前,互联网的很多商业机会,来自如何让大家不出门,就能完成想做的事情。我猜想,以后的商业机会,也许来自如何让大家出门,增强人与人之间的纽带。

Vue3.0 从实战到源码剖析

转眼间,Vue 3.0 正式版已经发布4个多月了,它是9月18日发布的。大家学得怎么样了?

目前来说,虽然 Vue 3.0 的周边生态,还不像上个版本那么完善,不过公司现在上新项目,用的都已经是新版了,并且面试的时候,考察也主要针对新版。

大家如果想学习 Vue 3.0,掌握新版的特点和原理,本周有一个不错的学习机会 《Vue3.0 从实战到源码剖析》训练营 。主讲老师杨涛是 Vue 3.0 的代码贡献者,他将把在 Vue 3 源码开发和学习中获得的心得分享给大家。

这个课程一共需要三天时间,讲课的形式不是一行行分析代码,而是带大家手写 Vue 3.0 核心源码,自己来实现基本逻辑,这样有利于保证听课效果,可以深入理解 Vue 的底层原理。同时,还有面试难题讲解,以及通过实战造轮子,带你快速上手 Vue3.0 项目应用,并且配有课堂作业和助教答疑。

上课时间是2月5日、6日、7日的每晚8点,也就是今晚8点就开始了。如果你假期里面有空,它是不错的学习内容。

该课程由开课吧提供,原价388元,周刊读者只象征性收取 0.99元 的福利价!微信扫描下面二维码,添加助理老师,就可以了解课程详情,获取听课资格。

科技动态

1、可视锚鱼

2021年1月25日,四川省射洪市公安抓获了两个犯罪嫌疑人,原因是他们使用可视锚鱼设备捕鱼。

可视锚鱼是一种新型的捕鱼方式。捕鱼者通过水下摄像头,在小屏幕上观看水下情况,一旦发现大鱼靠近,立刻拉起鱼钩,钩住鱼的身体,把鱼拖出水面。这种方法的捕鱼效率很高,一天可以达到上百斤。

警方认为,这根本不是新型钓鱼,而是非法捕鱼。因为它不通过鱼儿咬饵,而是通过鱼钩刺入鱼的身体来捕鱼。它使用滚钩,比普通的钓鱼钩大十几倍,对鱼类造成巨大创伤,捕获后即使放生也难以存活。问题是,这种工具在电商平台上大量出售,很容易购买。

2、蓝色闪电

2019年,国际空间站的宇航员看到,地球平流层有一种奇特的蓝色闪电。平时,地面上看到的闪电都是白色的,为什么这种闪电是蓝色的?2021年1月21日的《自然》杂志发表论文,证实了它的形成原理。

高空的云上方带有正电荷,如果这时更上方的空气带有负电荷,就会形成自下而上的闪电,而平流层的主要气体是氮气,电离过程中就会出现蓝色;地面空气有多种气体组成,电离会出现白色。

3、RTX 3080 运动鞋

电脑配件制造商 NZXT 与时尚公司 Artifact Studios 宣布合作,展示了一款 PC 运动鞋。这双鞋里面内置了一台完整的 PC 电脑,带有 NZXT 散热器、主板、风扇,以及最惊人的鞋跟上的 RTX 3080 显卡。理论上,只要脱下鞋,插上电源,它就能当电脑主机使用。

现在不清楚,这个产品到底只是一个玩笑,还是用来制造新闻效果,或者真的打算上市?有一点是可以肯定的,穿这种鞋走路,一定不会舒服的。

4、彩色小说

美国著名作家福克纳的成名作、被誉为20世纪最伟大的美国小说《喧哗与骚动》,出版于1929年,整页整页都是长篇的心理独白,经常是各种视角和回忆跳跃穿插在一起,而且没有标点符号,以此展示主人公混乱的内心。读者想要读懂此书,很不容易。

福克纳曾经跟出版商讨论过,能不能用不同颜色的墨水,表示不同的叙述视角,囿于当时的技术条件,这个想法没能实现。

现在,真的有一家出版社使用14种颜色,重新出版了这本小说的精装版,每种颜色表示在讲述一个不同的时期。该书预定今年7月6日(福克纳逝世59周年)发货,限量发行1,480本,售价345美元,目前1000本已经被预购了。

5、新发现的蓝色颜料

蓝色矿石在自然界非常稀少,所以蓝色颜料都是人工合成的。2009年,俄勒冈大学偶然发现一种新的蓝颜料,取名为"YInMn blue"。这是200多年来第一次发现蓝颜料新的合成方法,上一次是1807年发现钴和氧化铝可以合成蓝颜料。

YInMn blue 能够更好地吸收其他颜色的光谱,所以呈现的蓝色更纯、更鲜艳明亮。最近,这种蓝颜料终于要上市了,一小管(37克)的售价是179.40美元。

6、一句话消息

  • 南半球的澳大利亚正值夏季,悉尼市区的地面温度接近50度。气象学家警告,这些地区已经不适合夏天居住了,人们可能不得不搬离,或者搬到地下居住。

  • 丰宁抽水蓄能电站位于河北承德,是世界最大的抽水蓄能电站,已经完成建设,将于今年年底发电。它晚上用多余的电能将水抽到山顶,白天再向山脚放水发电。

  • 马斯克说他非常有信心,SpaceX 公司会在2026年将人类带上火星,幸运的话,2024年就能实现。然后,就会开始建设火星殖民地,下面是火星殖民地的概念图。

  • 调查显示,受疫情影响,人们居家时间变多,但整体入睡时间延迟了2到3小时,对睡眠问题的搜索量增长了43%。我国超3亿人存在睡眠障碍,其中超3/4的人晚11点以后入睡,近1/3的人熬到凌晨1点以后才能入睡。

  • 教育部要求,中小学生原则上不得将手机带入校园。确有需求的,须经家长同意、书面提出申请,进校后应将手机由学校统一保管,禁止带入课堂。

文章

1、16点阵字体研究(中文)

很多电子显示牌使用 16 x 16 的点阵显示文字,本文以公交车辆的显示牌为例,研究不同中文字体的显示效果。

2、迅雷客户端的代码结构(中文)

迅雷客户端是一个 Electron 应用,前端文件都没有加密,作者研究了一下它的代码结构。

3、iOS 证书幕后原理(中文)

Apple 为了严格管理 app 的发布,制定了一套复杂的基于证书的校验机制,这对于开发者非常不友好。本文从技术面,图文并茂地介绍了 iOS 开发各种证书之间的关系及其背后的原理。(@baochuquan 投稿)

4、20年前参加高中信息学奥赛(NOIP)的经历(中文)

"高中生活已经过去20年了,对于我来说,其中最为宝贵的一段经历就是在高三的时候参加了信息学奥林匹克(也就是计算机算法编程)竞赛,并拿到了NOIP (National Olympiad Informatics in Province) 全国三等奖。"(@DoctorLai 投稿)

5、揭秘隔空充电技术(中文)

小米 11 支持隔空充电,本文介绍背后的技术原理。

6、新的 CSS 长宽比属性aspect-ratio(英文)

Chrome 88 浏览器支持新的 CSS 属性aspect-ratio,可以设置容器的长宽比。

7、我对软件开发的一些看法(英文)

作者总结在软件行业工作多年以后,哪些看法改变了,哪些看法没有改变。一共罗列出近30条观点,值得一看。

8、如何将树莓派 4 代当作台式机?(英文)

树莓派 4 代的配置相当强,已经可以当作台式机。作者介绍了他的安装步骤,以及 Raspbian 和 Ubuntu 两个操作系统的比较。

9、10个需要改掉的 Typescript 编码习惯(英文)

作者分享了10个编写Typescript的坏习惯,并简述了原因,以及改正的建议。(@naruco 投稿)

10、为什么 Go 是我最喜欢的编程语言?(英文)

一个程序员总结的 Go 语言的优点,文章没有展开,只是罗列了优点。

工具

1、Ebook Reader

浏览器里面的电子书阅读器,只要把 azw3、epub、mobi、pdf 格式的电子书拖到网页上,就能打开阅读。如果临时需要一个阅读器,这个就很方便。

2、Darkwire.io

Web 端的多人在线聊天室,特色是支持端到端加密。(@Dup4 投稿)

3、Xonsh

一个使用 Python 写的 Linux Shell,可以在 Bash 代码里面使用 Python 语法。(@morefreeze 投稿)

4、Filmulator

一个开源的 Raw 格式相片编辑器。

5、Valetudo

米家和石头扫地机器人的开源固件,提供一个 Web 界面进行操作。

6、Semgrep

一个支持多种语言(Java、JS、Py、Ruby、TS...)的代码静态分析工具,可以自定义扫描规则。

7、Text to Handwriting

这个在线的开源工具,可以将文字转为手写体,并提供图片下载。默认只支持英文,但可以自己添加中文字体,并指定背景图片。

8、subaligner

一个开源工具,通过机器学习,自动为字幕文件生成时间轴。

9、CSS Stripes Generator

一个纯 CSS 的条纹生成器,可以在线调节各种参数,网站就会生成相应的代码。

10、Archivy

一个开源的知识库软件,可以自己本地架设,管理个人笔记。

资源

1、肌肉维基

英文的维基网站,提供人体每一块肌肉的详细资料。

2、荷兰国家博物馆

荷兰国家博物馆馆将收藏的71万件艺术品,都放上了网,有大量珍贵的名画,可以免费下载高清图片。

3、Python 的初学者练习题

该网站提供大量英文的 Python 初学者练习题,并有详细的解答。

4、Classpert

一个在线课程搜索引擎,一共收入了各种语言的24万多门课程,包含免费课程和收费课程。

5、Akiyoshi's illusion pages

该网站是日本立命馆大学 Akiyoshi 教授的个人主页,收集了大量的视觉错觉图片。比如,随着页面滚动,你会觉得上图里面有一个图层在抖动。

图片

1、寄居蟹桥

在印度洋上的圣诞节岛(Christmas Island),每年十月或十一月,数以百万计的红蟹同时从森林中涌出,前往海洋进行交配和产卵。

为了帮助它们安全通过公路,当地人在公路上建造了一座桥,专门供它们使用。

2、地球的水和空气

如果地球上所有的水和空气集中在一起,就是下图的两个球,其中空气都以海平面的密度计算。

上图中,水球的直径是1400公里,相比之下,地球的直径是12742公里。所有的生命就是靠这些水和空气而存在。

3、软件的投入比例

1979年,美国出版了一本《软件工程与设计原理》(Principles of software engineering and design)。书里有一张图,给出了大型软件整个生命周期里面,程序员投入的时间比例。

  • 需求分析:3%
  • 系统分析:3%
  • 系统设计:5%
  • 编码:7%
  • 模块测试:8%
  • 集成测试:7%
  • 维护:67%

文摘

1、AWS 的诞生

2000年互联网泡沫破灭时,我在亚马逊工作。

当时,资本市场已经枯竭了,无法融资,而我们每年的开销是10亿美元。最大的支出是数据中心那些昂贵的 Sun 服务器,那时 Sun 公司真是如日中天,它们的服务器是最可靠的,所有的互联网公司都在使用,但是非常昂贵。

公司高层最终决定,使用 Linux 服务器替换 Sun 服务器。Linux 那时还是一种相当新颖的方案,使用它有一定的冒险性。我们把公司的未来押宝在它上面。

服务器替换期间,产品开发因此停顿。我们冻结了所有新功能的交付超过一年。大量代码积压,直到完成向 Linux 的转换才能上线。收入增长随之减速,我们不得不提高了服务价格,减缓烧钱的速度。这是一个恶性循环,时间越来越少,钱也越来越少,亚马逊非常接近于破产。

一旦我们开始向 Linux 过渡,就再也没有回头路了。所有人动手重构我们的代码库,为过渡做准备。按照预计,一旦服务器转换成功,我们的基础设施成本将下降80%以上。如果失败,网站将崩溃,公司将死亡。

我们终于及时顺利地完成了服务器转换。对于整个工程团队来说,这是巨大的成就。网站没有任何中断,一夜之间,资本支出大幅减少。我们突然有了一个可以无限扩展的基础架构。

接下来,发生了更有趣的事情。作为商品零售商,我们的销售额有巨大的季节性,每年的11月和12月的流量和收入都会激增。CEO 贝佐斯开始思考:每年当中,我们有46周的服务器容量是多余的,为什么不将其出租给其他公司呢?

与此同时,他还对解耦内部的依赖关系感兴趣,一个团队可以在不受其他团队约束的情况下进行工作。整个公司开始启用松散的低耦合模型,随之而来的架构更改成为后来 AWS 的基础。

这就是 AWS 的诞生背景。我记得,贝佐斯受到了电网的启发。1900年的时候,企业必须自己搞定发电机,才能开设一家商店。2000年的企业难道必须建立自己的数据中心? 一定需要有人为企业提供网站的基础设置。

虽然如果没有 AWS,云基础设施最终也将出现,但是没人知道需要花多少时间,付出多少成本?AWS 诞生以后,大大降低了创业公司的启动成本之后,创新爆炸了,现代风险投资生态系统也随之诞生了。

亚马逊在2000-2003年几乎死亡。但是如果没有这场危机,公司不太可能会做出艰难的决定,转向一个全新的架构。如果没有这种转变,AWS 可能永远不会发生。所以,永远不要浪费危机带来的机会!

言论

1、

我在游戏《星露谷》(Stardew Valley)上面花了很多时间,不禁希望可以在游戏里,雇用某人为牛和山羊挤奶,而不必每天早上花时间陪它们。

我喜欢这个游戏,是因为向往田园生活,渴望逃避大公司的人生。但是最终,我仍然想雇用别人为我工作,这个游戏让我在支持资本主义还是反对资本主义方面摇摆不定。

-- 《星露谷的游戏设计》

2、

NoSQL 数据库的问题在于,随着时间的流逝,你的简单模型不可避免地变得越来越复杂,然后它不再起作用。在过去的十年中,我已经意识到使用 RDBMS 数据库基本上是100%的正确选择。

-- Hacker News 读者

3、

写作时感到的痛苦,是理清思想的痛苦。

-- David Perell

4、

勃兰多里尼定律,又称谣言不对称原理,它指出了批驳网络谣言的难度:"反驳谣言所需的能量比产生谣言要高一个数量级。"

-- 维基百科

5、

如果一本书四十年来一直再版,我们可以期待再过四十年它也会再版。如果再过十年,它确实还在再版,我就会预期它还会再存在五十年。

已经存在很长时间的事物,不会像人一样"老化",而是恰恰相反,会增加额外的预期寿命。一种事物的坚固性与其已经存在的时间成正比!

-- 纳西姆·塔莱布(Nassim Taleb)

6、

研究人员发现,随着狼、狐狸、牛、猪等野生物种的驯化,它们的外观也会发生变化,出现皮肤斑点、松软的耳朵和弯曲的尾巴。这些似乎都有利于引发人类的好奇心和友善。这就是为什么现代犬比冰河世纪的狼看起来友好得多的原因。

-- 《狗的驯化至少已经有23000年》

回顾

2020年的本周(第 94 期):既懂得制造,又懂得销售

2019年的本周(第 42 期):什么领域,你可以做到出类拔萃?

订阅

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

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

(完)

文档信息

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

科技爱好者周刊(第 146 期):网课应该怎么上?

$
0
0

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

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

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

封面图

秘鲁的金矿区有无数探矿坑,雨后积水,空中看下去矿脉闪闪发光,就像一条条"金河"。虽然很漂亮,但这是砍伐森林而形成的,造成了巨大的环境破坏。(via

本周话题:网课应该怎么上?

2020年,在线教育行业大爆发,许多公司都获得了巨额投资

按理说,一个行业发展得这么快,它的产品应该有很多优势。但是在我看来,网课现在没优势,效果不如课堂教学,完全没有发挥出应有的长处。

现在的网课,基本上就是简单复制了课堂教学。 老师在课堂怎么讲课,就一模一样录制成视频,在互联网播放,这就是网课。也就是说,在线教育现阶段其实只是一个课堂视频的传播平台,本质上跟课堂教学没什么两样。

课堂教学的效果取决于老师讲课是否生动,老师讲得很沉闷,教学效果就很差。录制成视频以后,由于没了现场感,效果还会打折扣。很多网课都是这样,学生听了几分钟,新鲜感过去了,就不想听了。

如果网课只是重播课堂教学的视频,是不会有太大前途的。我就遇见过,学生宁愿多花钱,选择线下辅导班,而不是网课。

我觉得, 在线教育的前途在于个性化教育。 因为课堂教学属于制式化教育,做不到个性化,所有人都用同样的课纲、课本、教学计划,千人一面。学校的目的是以最小的成本、大规模批量化生产能够达到平均水平的学生。

互联网的优势恰恰就在个性化,可以自由灵活地对教学的每个环节进行定制。举例来说,根据每个学生的答题表现和兴趣,软件自动为他定制教育方案,对于某些部分给予重点讲解。比外,互动和多媒体也是互联网的优势,但是现在的网课都用得很少。

目前的状况是,在线教育只是课堂教学的一个低成本替代, 因为不能现场教学,只好看视频上课。这导致在线教育的效果,无法超过课堂教学,所以做不到真正地迅猛发展,只能作为课堂教学的补充手段。

作为学生,应该有一个清醒的认识。不管课堂教学还是在线教育,现阶段都属于制式化教育,不能对效果抱太大期望。如果想学到真本事,一定要发挥主动性,自已努力去想、去找、去实践,主动学习新东西。

数据分析的技能秘籍

前不久有人发现,字节跳动开始招收"人力数据分析师",也就是专门通过数据评价员工的 HR ,给出的月薪非常高。

现在,数据分析师的招聘行情看涨,越来越多的企业需要具有数据分析技能的员工。理由很简单,发掘数据包含的信息,能够帮助企业成功。

普通的 HR 做出的 Excel 数据表是下面这样。

数据分析师拿出的数据分析表格却是这样的。

成为一个合格的数据分析师,难度不小。因为技能树实在太庞大,你掌握的高级技能越多,薪资就越高。本周的课程资料就是一份免费且全面的数据分析教学资料---- 《数据分析秘籍:面试 + 技能提升》 ,希望有助于大家进大厂拿高薪。

这套价值899元数据分析资料包,由廖雪峰老师精心打磨,内容涉及Excel、MySQL、Python 及数据挖掘算法等核心技能,都是一些很实用的内容,帮大家迅速提升数据分析能力,并能产出驱动业务增长的数据分析报告。

微信扫描下面的二维码,前200名就可以免费领取,仅限5天。

科技动态

1、人形机器人 Sophia

总部位于香港的汉森机器人公司(Hanson Robotics)宣布,今年上半年将大批量生产 Sophia 等四款人形机器人。

Sophia 于2015年开发,具有与人类相似外观,内部带有人工智能系统、视觉数据处理和面部识别功能,可以与人类进行会话,并且辅以一些手势和面部表情。"她"曾经公开表演唱歌、演讲和接受采访。

她的用途目前还很有限,大概只能用于陪伴老人,或者充当问询台接待员,表演价值多于实用价值。

2、海上火箭平台

马斯克的 SpaceX 火箭公司已经收购了两个海上石油平台,正在进行改造,用作海上太空港,供火箭发射和降落。

由于火箭发射有危险物质,而且噪音巨大,所以必须远离人口稠密的区域。但是,如果找太偏僻的地点,维护费用将非常高,而且运送物资也不方便。SpaceX 很早就提出了,在海上建立火箭发射平台的设想,这样不仅保证安全,而且可以接近主要的大城市。

马斯克举过一个假想的例子,在纽约和上海的30公里外海处,各建立一个海上太空港,旅客乘坐飞船进行长途飞行,单程只需要39分钟。

3、智能坐垫

杭州本地论坛19楼有网友发帖,讲述公司给每个员工配了一个智能坐垫,"说是高科技的智能办公设备。坐在垫子上面会感应人体的很多数据,心跳、呼吸、坐姿正不正确之类的,连到自己手机上就可以看。"

但是,她没有想到,所有数据都上传到后台。有一天,公司的 HR 跟她说:"你为什么每天上午10点到10点半都不在工位上啊?带薪拉屎去了吗,小心老板扣你奖金哦!" 她顿时有一种上班被监控,像坐牢一样的感觉。

4、机器鱼

哈佛大学的科学家设计了一种微型的机器鱼,取名为 Bluebots,可以像真正的鱼群一样协同运动,且不需要任何外部控制。每条机器鱼都配备有摄像头和蓝色 LED 灯,可以感知其他机器鱼的方向和距离,进行同步运动,从而形成鱼群。

机器鱼的摄像头最远可以检测到5米以外的信号。每条鱼的 3 个 LED 灯作为信号灯,用于相互识别;4 个独立可控鳍片进行 3D 空间游动。这项研究成果被遴选为 2021 年 1 月份《科学机器人》杂志的封面。

5、人工鸟喙

巴西有一只鹦鹉,鸟喙受到严重伤害而脱落。动物保护组织使用聚甲基丙烯酸甲酯,为它专门制作了一个人工鸟喙,其坚硬程度甚至要用电锯才可能锯断。

装上新鸟喙后,鹦鹉已完全康复,但也无法再放回自然了,因为鸟喙使用频率非常高,工作人员担心总有一天会掉落。

6、一句话消息

  • 爱沙尼亚开发了割草机器人和播种机器人,都采用激光雷达实现无人驾驶。两台机器可以串联工作,一台负责清理场地,一台负责种树,每天可以种几千棵树。

  • 日本京都醍醐寺宣布,2023 年将发射卫星,在距离地表约500 公里处设立一座太空寺庙。卫星里面有一尊佛像和曼荼罗画等法器,以及摄影镜头、IoT 装置等,可传回太空拍摄的影像。

  • 美军正在建造一种新型的黑鹰直升飞机,有两层螺旋浆。据说,这种设计解决了空气动力学的难题,使得直升飞机可以快速飞行。

  • Spotify 申请了一项专利,通过麦克风监听用户的语音甚至背景噪音,从而评估用户的情绪状态,然后选择合适的音乐播放。

  • 一支德国科考队在马达加斯加,发现了两只小蜥蜴,长度只有13.5mm,确认是世界已知最小的爬行动物。

文章

1、五大车载软件系统横评(中文)

本文评比了五款目前主要的车载软件系统的功能和体验,包括特斯拉、CarPlay、Android Auto 等。

2、《国家重点保护野生动物名录》调整(中文)

今年初,国家重点保护野生动物名单发布了新版,一共有988种动物,新增了517种,比原来的数量翻了一倍还多,野生的狼现在也是国家保护动物了。

3、影响因子最大的中国本土期刊(中文)

2020年6月,《细胞研究》(Cell Research)的影响因子达到了20.507,成为国内史上首本影响因子破20的原创学术期刊。本文介绍这本期刊。

4、数字时代的中国支付体系现代化(中文)

中国人民银行的原行长周小川的公开演讲,谈中国数字支付的发展方向,里面有相当多的技术内容。

5、华为的 HarmonyOS 是什么?(英文)

一个老外安装了 HarmonyOS 进行体验,为了得到源码,华为甚至要他提供护照照片。他研究以后,认为 HarmonyOS (上图)其实只是 Android 10 的一个分支。

6、Chrome 浏览器的二维码生成功能(英文)

新版本的 Chrome 88 浏览器,原生支持生成页面的二维码。桌面版是在右键菜单里面,手机版在分享菜单项里面。

7、为什么 Haskell 是我们的首选(英文)

作者使用 Haskell 作为主要的开发语言,本文解释了原因,读了才知道 Haskell 原来这么强。文章里面有一些代码的小例子,但是总体上以文字说明为主。

8、如何成为数据工程师(英文)

这篇文章总结了数据工程师的需要掌握的技能和工具。

9、关闭旧 API 的正确方法(英文)

如果 API 需要变更或关闭,并不是给用户发一个通知那么简单,本文教你应该怎么做。

10、如何制作一个简单的文字 Logo?(英文)

本文教你如何在没有设计师的情况下,利用网上的免费资源,自己动手花15分钟,制作一个简单的文字 Logo,比如上图。

工具

1、Coding Fonts

代码编辑器使用什么字体? CSS Tricks 推出的这个在线工具,可以浏览各种不同字体的渲染效果。帮助大家选择代码字体。

2、Notify

一个 Go 语言的库,用来通过各种渠道向用户发通知,支持 Discord、Email、Microsoft Teams、Slack、Telegram 等。

3、Supercookie

越来越多的浏览器限制使用 Cookie,这个库演示了如何使用网页图标 Favicon 来追踪用户,效果惊人。

4、EPUB.to

这个网站可以将 EPUB 格式的电子书转为其他格式,也可以将其他格式转为 EPUB。

5、Remark42

一个开源的、可以自己搭建的网站留言服务。

6、Violentmonkey

一个浏览器 userscript 的管理器,可以看作是使用最新 WebExtension API 的 Greasemonkey 升级版。

7、react-darkreader

一个 React 组件,允许网站在暗模式和亮模式之间切换。(@Turkyden 投稿)

8、Qwerty Learner

一个通过单词的打字输入加强记忆的在线工具,可以选择词库。(@dllen 投稿)

9、345Tool.com

该网站收集一些可以提高编程效率的在线小工具。(@MarkoCen 投稿)

资源

1、Build your own x

这个仓库专门收集各种教程,教你如何自己实现各种软件,比如 Web 服务器、BT 下载客户端、Git、数据库等等。

2、How Music Taste Evolved

这个网站提供 1958 - 2016 每年美国最流行的五首歌曲,可以在线试听片段,了解美国大众音乐口味的变化。

3、应用程序启动画面库

这个仓库收集各种程序各个版本的开机画面。上图是 Word95 的启动画面。

4、《计算机图形学从零讲起》(Computer Graphics from Scratch)

免费阅读的英文书籍,计算机图形学的概述。

5、AIArtists.org

这个网站收集所有可以生成艺术品的 AI 工具,比如 AI 画像、AI 音乐等等。

图片

1、Habitat 67

1967年,加拿大为了庆祝建国100周年,在蒙特利尔举办了一次"世界博览会"。当时还是麦吉尔大学建筑系硕士研究生的萨夫迪(Moshe Safdie),为这届博览会提交了一个建筑公寓的设计,命名为 Habitat 67。

这个公寓由各种预制的混凝土单元连接而成,这样可以降低建造成本。同时,这些单元以不规则的方式组合成一间间公寓,每间公寓都带有阳台和花园,可以与自然接触。萨夫迪希望这为未来的城市住宅,提供一个解决方案。

这栋公寓楼建成后,保留至今,但是并没有达成设计师的目标。首先,它一点都不便宜,政府一开始设置了昂贵的租金,后来变为私人所有的公寓楼,目前的市价也很贵,并不是面向大众的住宅。

其次,由于建造过程非常匆忙,造成建筑质量不好,混凝土有渗水现象,霉菌也渗入了通风系统。但是,这种种问题不影响它成为蒙特利尔市一个壮观的风景。

2、台积电南京厂

台积电一共有6座12吋晶圆厂,南京厂是其中唯一不在台湾的工厂,投资30亿美元,2016年动工建设,2018年投产,以12纳米及16纳米制程为主,目前月产能为2万片。

南京厂打破了台积电多项纪录,不仅建厂最快、上线最快,也是最美的厂区。

文摘

1、为什么电动车很难快速充电?

2021年1月,日本丰田公司宣布,即将推出全新的固态电池电动汽车。这种电动车一次充电可行驶500公里,而且只用10分钟就能从零开始充满电。

10分钟充满电的轿车,也许是有可能的。但是,让我们计算一下,需要多粗的电缆,才能在这一点时间内移动这么多的能量,同时又不会过热或太重。

假设电动车的电池容量是 100 度电(即 100KWh),相比之下,特斯拉 Model 3 的电池容量是 82KWh。10分钟充满100度电,那么充电功率至少需要 600KW。

目前,最高电压的充电桩是600伏特,要达到 600KW 的功率,就需要 1000A 电流。美国最粗的0000号电线的额定电流为 302A,那么供电端(VCC)需要四根这样的线,接地端(GND)也需要四根,因此总共8根电线。

每根0000号电线的直径为1.17厘米,8根线绑在一起,整根充电线将会非常粗重。

如果我们继续计算下去,铜的密度为 8.96g/cm^3,那么长度为1.5米的充电线,重量会达到11.7公斤(不包含外部的绝缘材料)。

此外,0000 号铜电线的电阻是0.046欧姆/1000英尺,这意味着仅仅是传导这些功率,这根充电线就将散发出 24W 的热量,用户会觉得很烫手。

考虑到这根线会有数千次的插拔,接口处的铜容易断裂,因此你还需要其他一些弯曲性好的导体,这意味着导电性会变差,充电线将会更粗更重。

替代方案是使用具有主动冷却功能和更高能量损耗的较轻电缆,除了成本高,这也会带来其他问题,比如一旦冷却失败可能会着火,冷却液也可能会泄漏等等。

我的结论是,在实验室中,小型电池确实可以在10分钟内充满,但是在家用环境中,十分钟安全转移 100KWh 的能量,具有很大的工程困难。

你或许会问,为什么不使用更高的电压,这样就可以降低电流,减少发热量?家用环境使用高电压会有成本和安全问题,比如电弧放电、绝缘材料的限制、电线破裂等等。

言论

1、

公司发给我的笔记本,配置并不好,并且装有很多监控软件。幸运的是,我上班时只需要 SSH 连接到服务器,在服务器上做开发。

后来来了一个实习生,公司发给他的是我见过的最差的笔记本电脑,功能与 Chromebook 差不多,并且运行与我相同的监控软件,难怪他什么也做不了。

-- Hacker News 读者

2、

一个年轻人的净资产如果只有四位数,那么他去赌期权似乎是很合理的,因为房地产泡沫已经切断了劳动者财富增长的最后途径。一旦股票市场出现泡沫,年轻人就会意识到这是他们最好的甚至唯一的机会,因此股票投机将成为新常态,因为我们的经济并不能提供5万美元以下的更好的投资机会。

-- Hacker News 读者

3、

一项美国的调查发现,如果你拥有研究生学位且年收入超过10万美元,过去一年的疫情其实改善了你的财富、工作保障、个人生活以及身心健康。

-- 《一个新的拐点:两极分化的公众》

4、

怎么证明聊天软件 Signal 是安全的?

证据就是我每天使用它,到现在还没死。

-- 斯诺登

5、

德国统一后,原东德那些经济衰退、人口外流的地区,主动拆除2万多个空置公寓并以绿地代替。这样做不会使人们回来,但可能有助于阻止现有居民离开。

-- 《如何实现可持续发展》

6、

Twitter 的"浏览"选项卡是世界上最重要的报纸。

-- David Perell

回顾

2020年的本周(第 95 期):远程办公暴露冗余岗位

2019年的本周(第 43 期):一篇好玩的论文

订阅

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

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

(完)

文档信息

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

科技爱好者周刊(第 147 期):寻找你愿意忍受的痛苦

$
0
0

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

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

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

封面图

2014年,一架瑞典直升飞机向冰冻的风力发电机,喷洒除冰剂。最近,得克萨斯州由于严寒出现大停电,这张照片重新流行。(via

本周话题:寻找你愿意忍受的痛苦

约翰·乌歇尔(John Urschel)是一个职业橄榄球运动员。

2017年退役后,他改行研究数学,先在宾夕法尼亚大学拿到数学硕士,现在麻省理工学院攻读数学博士。

约翰·乌歇尔从小就对数学有兴趣,在他还打球的2015年,就在学术杂志上发表过论文《用于计算图拉普拉斯算子的 Fiedler 向量的级联多重网格算法》,这种题目一看就属于专业数学家的范畴,说明那时他的数学水平已经不低了。

因此,外界对这件事情的看法就是,他具有数学天才,所以改行去读数学也很正常。

一次采访中,他回应了这种看法。说得真好,推荐给大家。

"在别人眼里,数学对于数学家是很容易的。错了, 那是一场斗争,艰苦而孤独,不确定能得到成果,而且需要很长时间的奋斗。数学家是热爱斗争的人。 "

他的意思是,即使他真心热爱数学,依然觉得数学研究非常艰苦。(注意,一个真心热爱的人还说艰苦,如果换成普通人,感受可想而知。)他能够坚持下去,并不是因为他觉得很容易,而是因为他可以忍受这些痛苦。

这段话对我很有启发。大家往往只看到成功时的荣耀,而忽视成功之前那个痛苦的过程。英国著名作家奥威尔就说过:"一个人如果将他自己描述得很好的话,他十有八九是在撒谎,因为任何生命从内部审视都只不过是一系列的失败。"

实际上,一个人能够成功,仅有热爱是不够的,还必须有强大的忍受能力,能够吃苦。

很多人建议,寻找人生方向时,你应该听从自己的内心,寻找真正热爱的事情。我现在觉得,更现实的建议应该是,寻找你愿意忍受的痛苦。 你在哪一个方向上,愿意心甘情愿地、经年累月地吃苦,具有最大的忍耐,"虽九死其尤未悔",那就是你应该选择的方向。

你能在某件事上赢过别人,原因很可能不是你比他强,也不是你比他更热爱这个事业,而是你比他更抗打击。生活虐你千百遍,等到别人都放弃的时候,你还没有放弃。

前端图形学

前端发展到今天,普通页面的技术问题基本都解决了,开始向纵深发展,追求极致的性能和视觉效果。

正是这种背景下,页面图表和动画变得越来越重要,尤其是对于移动端页面。已经很难想象,如果没有动画支持,今年春节的各大 App 红包活动页面该怎么呈现!

前端图形学就是专攻页面 2D 和 3D 图形效果的技术,属于目前最紧缺的前端方向之一,大厂都在大量招聘,因为太缺人。只要你能做出基本的效果,就可以发 Offer 给你。毕竟,大厂的营销活动多,各种页面效果的需求太大。

现在市面上,高质量的前端图形学教程并不多。本周的课程资料就是一个 《前端图形学专题课》 ,教你逐步掌握图形学知识,做出一个微信小游戏,非常贴近国情,实用性很强。

本课程由腾讯课堂"双认证"机构----京程一灯制作,经过了两轮授课,目前已经是第三季迭代了。

课程原价98元,周刊读者可以 免费获得,微信扫描下面二维码,入群后象征性支付 0.02 元报名费即可。前50位报名者还会再送图形学第二季的一门专题课。

科技动态

1、得克萨斯州严寒

得克萨斯州靠近墨西哥沙漠,属于干旱炎热的气候。但是,最近北极寒流南下,使得该州遭遇了几十年来未曾有过的严寒。上图是沙漠里面的仙人掌也结冰了。

更糟糕的是,得州的基础设施从没考虑过防寒。一旦遭遇暴雪,就开始出现大规模的停水停电,几十万人不得不自己想办法,度过零下的夜晚,很多人在网上贴出了自家的照片。

2、百万美元的数瓶子大奖

百事可乐旗下的饮料品牌 Mountain Dew,在超级碗决赛期间播放了一条广告。广告结尾处宣布,第一个正确回答出现了多少瓶饮料的人,可以得到100万美元的奖金。

下面就是这则30秒的电视广告(Youtube腾讯视频),有兴趣的话,可以数数看有多少个瓶子。

一个程序员立刻开发了一个计算机视觉的识别程序,统计瓶子的数量,最后的数字是869个。由于可能包含错误和遗漏,所以这个数字并不保证正确。

3、GeForce 显卡

Nvidia 公司的新推出的 GeForce 显卡 RTX 3070,由于运算速度非常快,被加密货币矿工抢购,用于挖矿。甚至带有这块显卡的笔记本电脑,也被抢购一空,导致市场上高端显卡短缺。

为了应对这种局面,保证游戏市场的供应,Nvidia 公司上周宣布,新推出的 RTX 3060 显卡,将带有"防挖矿"设置,一旦发现正在计算哈希(挖矿的核心计算),计算速度就会自动降低50%。但是,这个措施不适用更高端的 3070 和 3080 显卡。

4、花旗银行的5亿美元错误

去年8月11日,花旗银行代为露华浓(Revlon)公司向债权人支付780万美元的利息,但是不慎将5亿美元的本金也支付出去了。最近,法院判决,相关公司不必偿还这5亿美元,花旗银行必须自己吸收这笔损失。

这个事故的原因令人啼笑皆非,完全是内部转账软件的 UI 设计有问题(上图)。必须同时填写 Principal、Front、Fund 这三栏,本金才不会支付出去,但是操作者误以为只填写 Principal(本金)那一栏就可以了。后来又经过三层审核,所有的审核者都没有发现这个错误。

5、Uber 司机属于雇员

英国最高法院最近裁决,Uber 司机应该被视为雇员,而不是承包商。这意味着,这些司机可以享受最低工资、带薪休假、社保等待遇,这会使 Uber 的经营成本大增。法院理由如下:

  • Uber 制定价格,决定了司机可以赚多少钱。
  • Uber 设定了合同条款,司机没有协商权。
  • Uber 限制了工作的灵活性,如果司机拒单,Uber 将对其进行处罚。
  • Uber 通过星级评定来监控司机的服务,如果不满意司机的表现,则可以终止司机的行车资格。

国内的网约车司机、代驾员、送餐员等等,都满足上面的标准,似乎也可以主张被当作企业员工。

6、一句话消息

  • 上海松江某小区时有发生高空抛垃圾,危及行人安全。警方联手物业部门,对着大楼安装摄像头,很快发现是11楼的六旬大妈黄某所为,黄某现已被刑事拘留。

  • 国内厂商开发的手持游戏机 AYA NEO 开始发货,它是 x86 架构,内置最新的 AMD Ryzen CPU,能在手持设备上运行 Windows 游戏,明显的缺点是续航时间短,不外接电源时,只能连续玩两个小时的游戏。

  • 一家佛罗里达自来水厂报告,他们的系统被黑。黑客用了5分钟,将氢氧化钠含量从百万分之100调高为11,100,使得自来水碱性极高。这种恐怖攻击方法,确实值得警惕。

  • 一名美国的杀人嫌疑犯,由于 DNA 检测被抓获。他的律师提出,DNA 检测软件的代码不可靠,产生的结果不能作为证据。上诉法院同意了律师的看法,要求对该软件源码进行专业评估。

  • 一对巴西夫妻20年坚持种树,将一个荒瘠的山谷改造成绿色森林,对比效果惊人。

文章

1、人工心脏的由来和现状(中文)

很多严重的心脏病患者需要换心,但是心脏移植的来源非常稀少,人工心脏正是在这种背景下发展起来的。本文介绍了人工心脏的发展状况,有大量插图。

2、比汽车还小的飞机(中文)

Honda Jet 是日本本田公司生产的小飞机,也是二战后日本唯一的国产飞机,客舱长度5.43米,只能搭载四位乘客,比某些七座的公务车还要小巧。本文介绍这架飞机的历史。

3、华为的 ExaGear 与俄罗斯同名软件是什么关系?(中文)

华为的 ExaGear 是一个 ARM 计算机的应用程序,可以运行 x86 程序。俄罗斯有一个同名软件,华为从未说明两者有何关系。

4、npm 的设计缺陷(英文)

一个程序员利用 npm 的设计缺陷,成功进入了35个主要公司的内网系统,包括Microsoft、Apple、PayPal、Tesla、Uber 等。

5、反对 ORM 仇恨(英文)

ORM 的作用是将数据库关系(relation)映射成面向对象模型(object),很多人反对增加这种用法,认为不如直接使用 SQL 语句。作者提出,很多情况下使用 SQL 查询库,生成复杂的 SQL 语句,是有必要的。

6、我不想再做前端了(英文)

作者讲述了为什么对前端开发感到厌倦。

7、MacBook Pro M1X 基准测试泄漏(英文)

苹果第二款桌面 ARM 芯片 M1X 的信息,泄漏出来了。它会用于今年发布的16英寸 MacBook Pro。

8、为什么不应该使用 Cloudflare 的免费层?(英文)

Cloudflare 是一个 CDN 服务提供商,很多人使用它的免费层。作者发现,免费层有时会限制访问,而且不向站长提供任何反馈,让你在不知不觉之间就丢失了很多用户。

9、调查来自印度的9000万个请求(英文)

维基百科发现,每天有来自印度不同 ISP 的9000万个请求,都在读取一张花朵的照片,占到网站总流量的20%。这些请求都是真实的,不像是 DDoS 攻击,但是 HTTP 请求的头信息没有提供任何线索。

这是官方的调查过程,讲述如何从有限的信息里面,推测出到底这是怎么一回事。

工具

1、Beaker

一个实验性浏览器,提供点对点访问。你可以在浏览器里面架设自己的网站,然后让其他人访问它。

2、github1s

只要在 GitHub 仓库域名后面加上1s,比如github1s.com/facebook/react,就能在浏览器里面使用 VS Code 环境,浏览这个仓库的代码。

3、Nuvola 播放器

一个 Linux 桌面程序,用来播放 Web 流媒体服务,比如Spotify、YouTube、Apple Music等。目前一共支持 37 种流行的流媒体服务。

4、可视化频谱

一个网页工具,通过电脑麦克风捕捉各种声音,然后将它们的频率图显示在网页上。

5、视频的自然语言搜索

这一个概念性的开源软件,它会下载 Youtube 视频,提取每一帧进行物体识别,然后支持用户使用英语搜索,比如搜索"fire truck"(消防车)就会跳出上面的画面。

6、pcp

一个命令行的点对点文件传输软件,用法非常简单。一个命令上传文件,然后返回一个接收码,另一台电脑使用接收码接收文件。

7、flameshot

功能很强的桌面截图软件,支持 Windows 和 Linux。

8、Nullboard

一个简易的项目管理看板,只有一个 HTML 文件和一个 JS 文件,使用本地的 LocalStorage 作为储存,可以脱机使用。

9、Qwerty Learner VSCode

VS Code 编辑器的插件,内置了各种英语单词的词库,供用户做打字练习,加强对单词的记忆。(@Kaiyiwing 投稿)

资源

1、写给文科生的数学(Mathematics for the Liberal Arts)

一本在线阅读的英文教科书,向文科生介绍数学知识,涉及逻辑学、图论、概率论等,但是不涉及微积分。

2、2020年崛起的 JavaScript 新工具

这是每年一度的调查,根据过去一年中 GitHub 新增的 Star 数量,对各个领域的 JavaScript 工具进行排名,可以快速掌握新出现的主流工具。

3、Learn X by doing Y

这个网站收集以学习为目的各种实战教程(比如自己动手写数据库、编译器等等),按照计算机语言进行分类,帮助读者快速查找可以自己动手做的简单项目。

4、Youtube 计算机科学课程资源

Youtube 上面有很多优秀的计算机科学的免费教学视频,本文整理了一张清单,列出了其中最好的一些课程,覆盖计算机本科的所有领域。

5、斯坦福大学 iOS 开发课程

斯坦福大学最新的2020年春季 iOS 开发教程,有讲课视频、PPT、讲义和作业。

图片

1、实体三维图

1954年,英国中央发电局制作了一个纸质的三维图表,表示从1951年10月到1954年4月的曼彻斯特用电量。

它形象地显示了冬季的用电高峰和温暖月份的用电低谷。该模型由大约三百张卡片组成,每张卡片带有阶梯状边缘。

2、前苏联那些奇怪造型的建筑物

文摘

1、如何增加运气的表面积

我们一生中,都会遇到一些偶然性。有时,好运会降临到我们身上。这时,你需要的就是,让好运产生最大的效果。

如果你把好运想象成一根曲线,那么好运的效果最大化,就是把曲线下面的表面积最大化。

这可以用一个方程式表达。

L = D * T

其中,L 代表好运,D 代表你在相关方面的准备,T 代表有多少人知道。

这个方程式的意思就是,你做的准备越多,知道的人越多,那么好运的表面积将越大。画成图就是上面这样,竖轴是你的准备,横轴是你的宣传,这两者越大,矩形面积就越大。

2、传奇路由器 WRT54G

2002年12月,Linksys 公司发售了一款新的路由器 WRT54G,售价199美元。

第二年,网络硬件巨头思科就以5亿美元的价格,收购了 Linksys。

有一个 Linux 开发者意外发现,WRT54G 的驱动程序基于 Linux。但是,Linksys 公司并没有披露这一点。这意味着根据 GNU 许可证,必须发布无线固件的源代码。

事实上,Linksys 自己也没意识到这个问题。因为这台路由器使用了 Broadcom 公司提供的芯片,Broadcom 使用了基于 Linux 固件,但是没有通知 Linksys,后者随后又被出售给了 Cisco。

社区就向思科公司提出要求,提出必须开源固件。一个月以后,无线固件的源代码就真的开源了。

这是第一次外部程序员可以完全控制高规格的商业路由器,并且有办法增强功能或者改进其他路由器。后来很多的路由器开源系统,比如 OpenWrt 和 Tomato 等,都是起源于这个开源固件。

这导致 WRT54G 路由器在开发者社区异常受欢迎,直到2016年依然有数百万美元的销售额。

思科显然很不喜欢这种状况,后来修改这个路由器的固件,不使用 Linux。这引起了社区的强烈反弹,加上思科发现 Linux 版的 WRT54G 销量很好,所以就恢复了原来版本的销售。

言论

1、

如果你只看大众媒体和算法推荐给你的文章,你最终将罹患智力糖尿病。

-- David Perell

2、

Python 3.0 的首次发布发生在12年前(2008年),现在 Python 2 已经确定被淘汰了。很多人认为,Python 3 基本已经开发完了,不再需要继续进行重大更改。新功能应该放到 Python 4。

-- 《一些大胆的2021年预测》

3、

"仅仅崩溃"软件(Crash-only software)指的是仅通过重新启动进行故障恢复的计算机程序,这样可以避免任何复杂的修复。

-- 维基百科

4、

有一种普遍的误解,认为免费提供产品就无法产生任何收入。事实上,免费有时候不是定价策略,而是一种定位策略,尝试通过免费吸引用户,然后将产品定位在正确的受众群体面前。等有了用户以后,出售增值功能自然就成为最合适的扩展策略。

-- 《免费增值是产品启动的有效方式》

5、

打车软件的地图可以查看车辆距你还有多远,这有巨大的心理学意义。它不会减少你等待出租车的时间,但可以使等待的煎熬程度减少90%。

-- 《点金术:心理学的神奇力量》

回顾

2020年的本周(第 96 期):在线教育不等于录制视频

2019年的本周(第 44 期):高校"唯论文"导向的后果

订阅

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

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

(完)

文档信息

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

科技爱好者周刊(第 148 期):微增长时代

$
0
0

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

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

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

封面图

太原市建成国内首座全透明气膜体育馆。白天,自然光作为照明;夜晚,原有场地照明灯直接成为室内光源,抬头即可看到夜空。(via

本周话题:微增长时代

中国经济高速增长了40年,我们每个人都受益。但是接下来,可能不会增长这么快了。

我最近读到一篇微信公号的文章,很赞同它的观点,忍不住想分享给大家。文章的大意是,中国经济的微增长时代已经到来。下面就是他的推理逻辑,大家看看是不是这么一回事。

经济最终是靠消费带动,而最终消费的动力主要来自三点:

1、孩子;
2、年轻的女人;
3、技术的更新迭代。

作者认为,最强的消费动力就是上面三个来源,但是它们都在消失。首先,中国的人口已经不增长了,新生儿越来越少,2020年新生儿数量是几十年来最低的。

其次,以互联网 + 无线通信为代表的新技术,对消费的推动也到头了。

"现在互联网技术风口耗尽了,互联网大厂连菜贩子的生意都抢,大部分行业跟餐饮业一样,一片红海。十家创业九家赔,跟炒股似的,创业机会明显变少,大家对贷款的需求也就不那么大了,慢慢也就不敢去创业了。"

一旦消费无法带动经济增长,就是欧洲和日本现在的样子。

"欧洲和日本的状态差不多,大家消费欲望很低,生孩子欲望也不行,创业冲动也就那样,毕竟大家都不花钱,你创业产品卖给谁?"

政府为了刺激经济,发了很多货币,这些钱都集中到富人手里。

......富人拿去买房、买资产、买股票什么的,并没有通过做买卖发到基层老百姓手里,所以大家能看到股市、房地产持续走高,超市里的东西价格变化却没那么大。

去年不知道从哪出来一句话,"富人通胀,穷人通缩",说的就是这事。

富豪阶层有大量的钱投资不出去,只好去追那些少数优质资产,最后把那些资产追成了天价。

股市看着形势一片大好,可是在很多人看来,几乎遭受了一波股灾,因为只有少数头部公司一直在上涨,剩下的公司不但没涨,还在一直跌,因为这些股票的筹码也被抽出来投入到头部公司去了。

这就是微增长时代的后果:贫富分化越来越大,股价分化越来越大,行业的分化也越来越大。

明显,只有几个行业保持迅速增长,其他行业会陷入长期的缓慢增长,甚至干脆停了。现在其实很多行业的从业者,已经感受到了行业停止增长后的效果,比如很多行业的工资也是十年不涨,但是互联网的巨头工资却屡创新高。

这就是现实,一方面,整体经济的增长速度放慢;另一方面,出现了前所未有的两极分化。 作者提出了两个应对方法:第一,尽量减缓人口减少;第二,寻找新的技术突破,创造新的经济增长点,保证就业和刺激消费。

人口趋势恐怕很难改变,但是,技术突破是可以追踪的,这也是我做这个周刊的一个目的, 尽可能追踪和理解新技术,丰富自己的技能,寻找新的机会,避免被微增长时代埋葬,做一个未来世界的幸存者

Vue.js + Element UI 实战

学习前端的同学,实事求是地说,大部分都是就业导向,希望早日出成果,找到好的工作。

前端开发也确实有一套成熟的做法,可以快速形成生产力。使用"全家桶",一般的原型大概一两天就能做出来。所谓"全家桶",就是以底层框架为中心的一整套工具链,常见场景都有现成的解决方案,程序员只要按照文档调用即可。

目前,实务最常用的 Vue 全家桶,就是 Vue 框架 + Element UI 组件库。这个组件库封装了最常用的页面组件,只要一行代码就能加入组件,快速产出原型页面,实用性极强。对于初学者来说,该组合可能是最快的学习途径,开发效率高,容易产生成就感,激发学习兴趣。

本周的课程资料就是 《Vue + Element UI 管理平台开发》 ,教大家学会使用 Vue.js + Element UI,快速开发一个管理后台。

课程内容包括,从零开始搭建页面和路由,根据设计稿加入 Element 组件,然后编写业务逻辑,组成一个个模块,完成一个初步的、但可用的管理后台。

该课程由金渡教育提供,他们是腾讯课堂大V机构,专门培养中高端的 IT 技术人才。本次由创始人亲自授课,理论和实战都会涉及,同时还会讲解大厂的前端面试技巧及高频面试点。

课程原价299元,现在有99个免费学习名额。微信扫描下面二维码,添加小助理,加入学习群,就可获得讲课视频和源码。

科技动态

1、火星样本

2月18日,美国毅力号探测车登陆火星。它的任务是取出火星的土壤样本,但是要等到2031年,这些样本才会送到地球,这是为什么?

原因是整个过程在技术上非常复杂,分成好几个阶段:

(1)毅力号采集样本后,会存放在一个个金属罐里,罐子留在原地,自己继续执行探测任务,它的核动力系统可以维持漫游10年以上。

(2)2026年,另一辆漫游车登陆火星,将样本罐一一取回,装到一个安全容器里,再从火星发射一个小火箭,把样本容器放到火星轨道上。

(3)地球派出一艘货运飞船,负责把样本容器带回地球,估计时间是2031年。

2、火星降落伞

毅力号火星探测车的降落伞是特别设计的,内嵌了信息编码,可以用于摄像机校准。

橙色条纹为1,白色条纹为0,七个条纹为一组,对应的英语字母为"DARE MIGHTY THINGS"(挑战不可思议的事情)。这是研发单位"美国宇航局喷气推进实验室"(JPL) 刻在墙上的格言。另外,降落伞的最外圈为 JPL 的坐标。

3、停车地锁

上海闵行区新设了45个智能停车位,配有智能地锁,不需要人员看管。车辆停入7分钟以后,地面会自动升起一个金属桩,最高可到30厘米,车主只有扫描二维码支付停车费以后,金属桩才会降下。如果强行开动,会造成车辆底盘损坏。

停车位还配有摄像头,能够识别车牌号码,可以随时上网查询停车状态和费用情况。车主们对这种停车方式还不适应,许多人不知道怎么操作,意见最大的一点是,付费后不能立刻把车开走,因为金属桩的降下需要一两分钟,如果忘了这点,很容易造成底盘刮擦。

4、波浪发电装置

澳大利亚塔斯马尼亚岛正在测试一个波浪发电装置。这个装置漂浮在海上,水下面对波浪的一面是敞开的。水涌入舱室时,会推动空气向上升,从而带动发电机发电。发明人形容,"它的结构很像人造的气孔,推动空气往复运动,使涡轮旋转并产生电能的空气运动。"

澳大利亚南部海域的风力非常强,波浪发电的潜力很大。这个装置的功率为 200kW,但是计划生产更大的 1,000kW 的型号。澳大利亚政府估计,到2050年,波浪发电可能占全国发电的11%,相当于墨尔本的用电量。

5、斑马条纹的作用

大部分科学家认为,斑马进化出条纹,是为了避免蚊虫叮咬。条纹使得蚊虫感到眩晕,无法停在皮肤上。美国加州大学戴维斯分校为了证实这个假说,做了一个实验,同时找了马和斑马,让马穿上条纹外套,看看蚊虫能不能区分。

结果发现,马和斑马都吸引了相同数量的蚊虫,但是一旦靠近,蚊虫就倾向于飞过穿了条纹外套的马,马被叮咬的次数减少了十倍。这证实了斑马的外观确实有助于减少叮咬。

6、 一句话消息

  • 国内无人机厂商亿航在广东和北京开始载人试航(视频)。不过,这个飞行器很可能飞不了多远,而且是遥控的,不免让人担心,如果通讯断了或信号被劫持怎么办。

  • 一个 Youtube 用户披露,他的国际象棋频道被封,理由是"内容有害",但是国际象棋怎么可能有害呢?后来,他明白了,因为视频标题总是出现 black(黑方)和 white(白方),被算法识别为种族仇恨内容。

  • 日本培育出一种可以连皮一起吃的香蕉,每根售价高达1080日元,约合66元人民币。为了改善香蕉皮的口感,这种香蕉的含糖量是普通香蕉的1.5倍。

  • 俄罗斯西伯利亚由于冻土层解冻,地下的大量沼气开始释放,引发爆炸,形成许多巨大的地洞。

  • 伦敦玛丽女王大学发表了一份不可思议的研究报告,向人体发射无线电信号,通过反射回来的信号形态,可以判断这个人的情绪状态。研究人员发现,人在不同情绪状态下,反射的无线电电波形态是不一样的。

文章

1、在北极挖比特币(中文)

一家名为 BitCluster 的俄国公司,建立了世界上第一个位于北极圈内的比特币矿场。那里电费便宜,而且气温有助于散热。本文使用大量图片,介绍这个矿场的情况。

2、实体的元素周期表(中文)

淘宝有出售高纯度的金属元素立方体,一个台湾网友就买来做了实体的元素周期表。

3、esbuild 为什么这么快?(英文)

esbuild 是新一代的 JavaScript 打包工具,以速度快著称,耗时只有 Webpack 的2%~3%。本文是该软件的作者谈它为什么这么快。

4、常见的 Nginx 不安全配置(英文)

Nginx 是最常见的 Web 服务器,本文介绍四个常见的配置错误,会降低网站的安全性。

5、我作为独立开发者的第三年(英文)

作者辞职作为独立开发者,头两年的总收入不到1万美元,第三年的目标是2万美元。但是一天他偶然在网上发了一个帖子,讲述自己用树莓派做了一个服务器管理设备(上图),居然为他带来了6.3万美元的收入,而且还可以成立公司。

6、OpenJDK 是如何移植到64位 ARM 架构的?(英文)

这篇是回忆文章。2011年,ARM 公司准备推出64位的 CPU,用于服务器,应用软件需要跟上,但是当时 OpenJDK 只能在 x86 架构运行。作者在 RedHat 和 Oracle 公司的支持下,开始从事将 OpenJDK 移植到 AArch64 架构的工作,一开始非常困难,因为硬件还没生产出来,只能在虚拟机上模拟开发。

7、origin 与 site 的区别(英文)

浏览器有一个"同源政策"(same origin policy),Cookie 设置有一个"同站属性"(SameSite)。这篇文章介绍了 origin 和 site 的区别是什么。

8、使用服务器事件向前端发送日志(英文)

服务器事件(SSE)是服务器向前端发送消息的一种方法,本文介绍了它的概念,然后给出了一个实例,通过服务器事件向浏览器发送服务器日志。

9、什么是霍夫曼编码?(英文)

霍夫曼编码是经典的压缩算法,GZIP 就使用它。本文是我见过最简单的解释,可以在五分钟内理解这个算法的实现原理。

工具

1、GitHub Skyline

GitHub 官方出品,将你过去一年的提交统计转成一个三维的直方图,并且提供 stl 文件下载,进行 3D 打印。

2、Stockfish 12

开源的国际象棋引擎,号称比人类的世界冠军还要强大。官方提供 Mac App 下载,并且有许多其他操作系统的第三方 App。

3、Ray.so

这个网站可以生成漂亮的代码截图,颜色、阴影、背景都可以调整。

4、Cockpit

Linux 服务器的 Web 控制台。

5、Finger Pool

开源的 2D 网页桌球游戏,撞击效果做得很好。

6、UTM

MacOS 的虚拟机应用,可以很轻松地在苹果电脑上运行 Windows 和 Linux,属于 qemu 的 UI 封装,另有 iOS 的虚拟机,在 iPhone 和 iPad 上运行 Windows。

7、Deep Nostalgia

这个在线服务,只要上传一张老照片(需要免费注册),就能将里面的人物转成一段短视频,不仅提高了分辨率,而且有着各种脸部表情。(@dbazhihui 投稿)

8、嘎 RSS!

使用免费的 GitHub Actions,定时抓取一系列 RSS 源,生成一个页面,还支持邮件通知。(@zhaoolee 投稿)

9、text-to-video

这个小工具可以把文章转成视频,文字显示在黑底的图片,同时自动生成语音,详细可以作者的介绍文章。(@leoython 投稿)

10、Bing Wallpaper

这个项目使用 GitHub Actions,收集 Bing 搜索引擎每天的壁纸,提供下载,详见这篇说明文章。(@niumoo 投稿)

资源

1、Python 初学者教程(100 Page Python Intro)

一个面向初学者的 Python 英文教程,免费在线阅读,打印出来长度100页左右。

2、10万亿像素的夜空

全球多个天文台合作,经过6年的1405个夜晚的观测,将天文望远镜拍摄到的照片,合并成一张10万亿像素的图片,包含超过十亿个星系,覆盖整个天空的三分之一。这里就是这张巨型图片的在线浏览,另有介绍文章

3、Frinkiac

这个网站收集了300万张动画片《辛普森一家》的截图,可以按照主题搜索。类似的网站还有 Futurama 的图片搜索

4、计算机网络:系统方法

《计算机网络:系统方法》(Computer Networks: A Systems Approach)一书的在线阅读。

5、故宫博物院藏品总目

故宫博物院官方的藏品目录,共收入180多万件,可以在线搜索,部分藏品带有彩色照片和文字介绍。

6、React 资源库搜索

这个网站收集各种 React 相关的开源库,按照用途进行分类,相关的还有 Vue.js 资源库搜索。(@ctolib 投稿)

图片

1、茗山寺

茗山寺位于四川省安岳县的虎头山巅,60多座北宋时期的佛像,雕刻于绝壁之上。

一千年的风沙,都留在了佛像上。

2、LackRack

宜家商场出售的 LackRack 小桌子,长 x 宽 x 高为 55cm x 55cm x 45cm。

由于它跟19寸服务器的大小很适配,常常被程序员用作简易机柜。

它还可以多个组合在一起。

不用的时候,它可以多个叠在一起节省空间。

它在中国的售价是每个39元人民币。

文摘

1、被导弹击中的感觉

1999年塞尔维亚战争时,我在美国空军服役,驾驶 F-117 隐形战斗机。

我的任务是深入塞尔维亚境内,炸毁一些严密防御的目标。我知道这会造成伤亡,但是我无法考虑这种事情。我试图将目标视为混凝土和钢铁,不带有个人情感和人为因素,那是我的生存机制。

战争的第一天晚上,我有两个目标,两个都被击中。

第三天晚上,我也有飞行任务,也很成功。

第四天晚上,我的目标是轰炸清单上的首要目标。整条飞行路线上布满了热追踪导弹、雷达制导导弹、高射炮等各种令人讨厌的防御武器。

F-117 隐形战斗机并不能做到完全隐形,只是使飞机更难被发现。起飞后,进入塞尔维亚领空之前,我关掉灯,收起天线,然后关掉收音机和应答器,以及任何可能暴露我位置的无线电发射装置。

那天晚上,我成功地击中目标,然后开始返回意大利基地。突然,我发现两枚 SA3 导弹窜出云层,在它们靠近我之前根本没有察觉。

导弹以三倍音速的速度向我飞来,因此没有时间做出反应。第一枚导弹就要击中之前,我闭上眼睛,转过头,期待着撞击。我知道会有火球,但是导弹擦过战斗机,在我的身旁爆炸,我感受到了剧烈振动。我睁开眼睛,第二枚导弹迎面而来。一阵震天的巨响,巨大的光与热吞没了我的飞机,炸毁了左机翼,将飞机卷成一团。

我竭尽全力按下弹射手柄,当时只有一个念头:这真的、真的、真的太糟糕了。然后,我的身体从座椅上朝天篷弹射了出去。

从按下弹射手柄的那一刻起,到降落伞完全膨胀打开,花了1.5秒。在空中,我与空军搜索队进行了无线电联系。我落地后,看到了我的飞机坠毁在农田中,离我有一英里。

塞尔维亚人立即向该地区蜂拥而来,有一次他们离我躲藏的地点只隔了两道农田的灌溉沟,只有几百码。八个小时后,一架美国直升机来接我。我稍后发现,只要再晚几分钟,我就会被捕。

言论

1、

SVG 是一个非常臃肿的文件格式,规格文档厚达826页。如果要正确渲染所有 SVG 文件,还需要考虑另外20页的 XLink 规范。此外,SVG 支持 CSS 样式和 JAVASCRIPT 脚本。是的,SVG 文件可以包含<script>标签。

-- 《SVG:优点,缺点和丑陋之处》

2、

根据我的计算,地球上的新冠病毒大约有20万亿个。每个病毒的半径假设为50纳米,那么体积为523,000立方纳米。如果把它们放在一起,所有的新冠病毒仍然无法填满一个易拉罐。

-- 《世界上所有的新冠病毒可以装进一罐可乐》

3、

知识的诅咒(Curse of knowledge)是一种认知偏差,指的是与他人交流时,你不知不觉地假设对方拥有跟你相似的认知,能够理解你的意思。

-- 维基百科

4、

如果构建一个系统需要花费大量时间,那么理解它也将花费大量时间。

-- 《导航大型代码库》

5、

智能电视曾经是高端电视机的代名词。由于面板成本和嵌入式计算成本的大幅度降低,以及Google 等公司提供的现成的系统平台,使得"智能电视"这个名词变得无关紧要。你今天能买到的几乎每台电视都是智能电视。

-- 《捍卫无智能的电视机》

历史上的本周

订阅

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

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

(完)

文档信息

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

科技爱好者周刊(第 149 期):新能源汽车,谁会是赢家?

$
0
0

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

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

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

封面图

重庆某个即将开业的游乐园,安装了世界最高的70米双螺旋过山车。(via

本周话题:新能源汽车,谁会是赢家?

过去的一年,新能源汽车突然成了明星,电动车公司的股价都上涨了许多倍。

我对这件事一直有怀疑,不那么看好那些电动车公司。这两周,他们的股价开始跌了,所以我想赶紧把自己的想法写出来,不要再拖了。

关于电动车,最基本的一点就是,它属于电子产品。汽车一旦变成电动,就从机械产品变成了电子产品, 电机替代了内燃机,电路替代了齿轮,软件替代了仪表。因此,电动车遵循的是电子产品的规律。

最像电动车的电子产品,就是手机。各家厂商生产的,明明都是差不多的产品,但是大家拼命做出差异,以求获得消费者的青睐。 手机竞争的招数,都已经出现了电动车上了, 下面我来列举四点。

第一招,堆砌硬件。 你的硬件好,我的硬件比你更好,而且更多!蔚来的新车 ET7 有23个扬声器、11个高清摄像头和5个毫米波雷达。请看下图,车顶的三个突起分别是两个摄像头和一个雷达,甚至车门上都装了摄像头。

第二招,追求极限。 消费者喜欢哪点,就把这一点做到极限。特斯拉有一块17英寸的触摸屏,大家觉得很酷,理想 One 就一口气放了四块,整个控制台是一整条超过一米的触摸屏。

第三招,打价格战,强调性价比。 2021年第一季度的全球电动车销量冠军,不是特斯拉,而是五菱宏光 Mini EV,它的入门版价格不到3万元,相当于特斯拉的十分之一。

第四招,外包。 我只出整车方案,代工厂负责把车造出来,这样的话,效率更高,成本更低。事实上,富士康已经成立了电动车代工厂,从今以后不仅代工手机,还代工汽车。造车门槛将会越来越低,新品牌像雨后春笋那样冒出来。

通过上面这些例子,我只想说明,汽车一旦变成电子产品,竞争就会像手机那样极度激烈。这还没有提到软件的竞争,电动车的操作系统其实才是决定性因素,IT 巨头们迟早都会推出自己的整车。

现在那些电动车公司会赢到最后吗?我的预言是,就像手机厂商一样,大部分都会死掉,甚至特斯拉也很危险。这就好比,手机是摩托罗拉发明的,整个市场曾经都是它的,但是它最终也没有活下来。

反正,我对投资电动车股票很保守。更何况,新能源汽车还包括氢燃料汽车,它有很多优势,如果解决了氢气的运输和储存问题,电动车市场顿时就会大大萎缩。

前端工程训练营

如果你经常看周刊,就会知道我与培训机构合作,每一期都会发布课程介绍。这样一方面可以解决周刊的资金问题,另一方面也是为大家提供实用的培训信息。

因为我比较熟悉前端开发,所以大部分介绍的都是前端课程,尤其是面向初学者的前端框架开发,比如 React 和 Vue 的课程。

但是实际上,任何一个团队都需要两种前端程序员 :一种负责开发,一种负责项目的构建和发布,后者一般称为"前端工程"。

两者所需的知识技能不太一样,前端工程除了熟悉前端业务,还必须熟悉代码管理和网站管理,所以一般都由资深程序员来承担。大厂对前端工程岗位的招聘需求,要比开发岗更迫切,起薪也更高。如果懂一点前端工程,都是面试的加分项。

本周的课程就是国内著名培训机构"开课吧"提供的 《前端工程化实战训练营》 ,适合那些在学会框架后想更进一步提升的同学。

讲课老师会带你构建一个前端组件库,重点讲解工程化的四个主要方面:测试、静态检查、代码打包发布、工作流程自动化。此外,还会介绍目前最受关注的工程工具 Docker、GitHub Actions 和 Vite。除了课程本身,还配有专属社群,资深助教定时解答作业和群内问题。

这个课程原价399元, 周刊读者有福利价,仅需 0.99元。 前100个报名的同学还会额外获赠 《从0到1用 Node 完成一个 CLI 工具》视频课程。微信扫描下方二维码即可报名!

科技动态

1、人工智能 NPC

网络游戏 Modbox 最近公开了 2.0 测试版,最大的特色就是出现了人工智能 NPC(虚拟角色)。玩家跟 NPC 之间的对话没有脚本,而是采用目前最强大的 AI 模型 GPT-3 实时生成的,甚至两个 NPC 之间的对话也是如此,效果非常好,请看下面的视频(Youtube腾讯视频)。

游戏会调用 Windows 的语音识别功能,将玩家的语音转成文字,然后由 GPT-3 模型给出回答。这种方式的最大问题是 GPT-3 是云服务,对话会出现延迟,具体的时滞取决于用户与机房的距离。

2、美国实验室猴子不足

疫情期间,各种药物和疫苗的效果,需要在猴子身上实验,因为猴子和人类的 DNA 很相近。全世界的实验室猴子,主要由中国供应,每只价格超过1万美元。但是,中国本身也需要大量猴子进行实验,造成美国供应紧张。

《纽约时报》报道,许多生物公司得不到猴子,严重影响药物开发的进度,被迫只能在老鼠身上实验,他们纷纷呼吁美国政府要建立战略性猴子储备,辟出一个区域,专门来养实验室猴子。2019年,美国进口了33818只灵长类动物中,60%以上来自中国。

3、单人办公亭

日本厂商开发的"单人办公亭",疫情期间开始在日本变得流行。它长一米、宽一米、高两米,配有书桌、座椅、个人电脑和电源插座,提供了一个安静的办公环境,可以放置在商场、车站、甚至公司内部等嘈杂的场所。

它需要使用手机 APP 预订时段,每15分钟的价格是250日元(约合人民币15.31元)。据称,截至2020年9月,已经有大约4万2千人注册了该项服务,某些地点的办公亭已经供不应求。

4、模拟器驾校

一家深圳的驾校开始使用模拟器,培训学员学习驾驶。大曲面屏幕上逼真地 3D 模拟道路情况,包括交通灯、人行横道、树木和建筑物,可以模拟不同路线和不同天气条件下的驾驶。一个学员说:"我觉得它和真车一模一样,没有区别,离合器,油门,脚刹,手刹,一切都是一样的。"

学员先通过模拟器,熟悉基本的驾驶知识,然后再去练习场,开始驾驶真车。这些模拟器都位于市中心,方便学员上课,练习场则在郊区。比起全部在练习场上课,这样安排可以节约学员的时间,降低学习成本。

每台模拟器的成本约为3万元至4万元,相比之下,教练车成本约为12万元,还不包括燃油成本。而且,十几台模拟器仅需配备两到三名员工,而传统驾校则需要配备与车辆数量匹配的教练。

5、一句话消息

  • 中科院昆明植物研究所发布首批毒蘑菇测试剂盒,该试剂能够快速检验含有鹅膏环肽毒素的剧毒蘑菇,这种毒素造成了80%-90%的蘑菇中毒死亡案例。

  • OVH 主机公司的一个法国机房3月10日发生严重火灾,所有服务器都被烧毁。这件事情的启示是,如果你的数据和数据备份在同一个机房,那么一旦机房没了,你的数据将彻底丢失。

  • 美国音乐行业由于没有了演唱会,2020年的收入83%来自互联网音乐服务,创了历史新高,主要收入来源是 Spotify 和 Apple Music。

  • 一家荷兰公司推出自动调节胎压的自行车轮胎,它从车轮滚动获取能量,根据路面情况自动充气或放气,平整的路面加大胎压,碎石路面减小胎压。

  • 德国最快可能会在今年实施高速公路限速每小时130公里,这是为了减少温室气体排放。德国是目前西方国家中唯一高速公路不限速的国家。

文章

1、联发科如何超车高通?(中文)

2020年,联发科 5G 芯片的发货量世界第一,超过了高通。本文介绍这是怎么回事,以及两大巨头的 5G 布局。

2、中国的 RISC-V 计划和夜莺(中文)

一篇评论文章,介绍中国国产芯片的动态,同时有英文版和中文版。

3、无线充电为什么会限制功率?(中文)

工信部公开了《无线充电管理暂行规定(征求意见稿)》,里面提到手机的无线充电不能超过50w。本文讨论了无线充电的功率问题。

4、Len Sassaman 的故事(英文)

伦纳德·萨萨曼(Leonard Sassaman)是一个传奇程序员,在区块链的发明过程中发挥了重大作用,但是由于忧郁症在2011年自杀身亡。本文介绍了伦纳德的一生,以及他的贡献。

比特币发明人中本聪的最后一次留言,就发生在伦纳德自杀前的两个月,"我已经转移到其他事情上,将来可能不会出现。" 伦纳德是否有可能就是中本聪?

5、免费增值是产品启动的有效方式(英文)

本文以设计工具市场为例,研究了免费增值策略如何帮助小公司击败大公司,占领市场。早期,设计师都用付费的 Adobe 工具,后来免费软件 Canva、Sketch、Figma 相继出现,迅速成为市场的主流。

6、/dev/null介绍(英文)

/dev/null在 Linux 系统代表了一个空设备,它会丢弃写入的任何内容,返回一个 EOF 字符。本文介绍它的一些重要应用。

7、CSS Transition 详解(英文)

transition是 CSS 动画的重要组成,本文详细解释了这个属性的详细用法,并给出大量的演示实例。

8、如何使用 Nginx 改写图片请求(英文)

本文介绍一个小技巧,通过 Nginx 改写网页代码,将图片请求导向 CDN。

工具

1、TabFloater

浏览器插件,将一个 Tab 以悬浮窗口的形式,显示在另一个 Tab 之上,类似视频网站的"画中画"效果。

2、ytmdl-web

这个 Web 应用为从 Youtube 下载的歌曲音频文件,写入 iTunes、LastFM 等网站上的歌曲元数据。

3、uidea.tools

一个在线 UI 设计工具,可以用来制作 H5 网页原型。(@5A59 投稿)

4、fun-comment

VS Code 插件,可以在源码文件里插入 ASCII 图像。(@5A59 投稿)

5、Prisma

Node.js 和 TypeScript 的 ORM 库,还提供了单独的查看数据库的 GUI 程序(上图)。

6、Snyk

一个开源程序,可以在本地检查 node.js 项目外部依赖模块的安全漏洞。

7、Cloudflare Pages

Cloudflare Pages 开始了 beta 测试,可以自动构建 GitHub 仓库,发布为静态网站,跟部署到 Netlify 流程基本相同。(@jwenjian 投稿)

8、FlameDisk

MacOS 应用,通过火焰图,进行磁盘可视化分析和清理。(@yujinqiu 投稿)

9、Encode Mighty Things

一个在线工具,让你把单词编码成毅力号火星探测车的降落伞条纹(参见上一期周刊)。

资源

1、What the f*ck Python!

这个仓库是原始英文版的中文翻译,收集 Python 语言的各种怪异的语法点,以及鲜为人知的功能特性,并尝试讨论这些语法现象背后真正的原理。

2、Buzzing

该网站汇集了国外社交媒体里的热门讨论,并且标题都自动翻译成了中文。(@theowenyoung 投稿)

3、How they SRE

各个仓库收集各大互联网公司的站点可靠性工程(SRE)最佳实践。

4、面向工程师和科学家的 Python 教程

免费的英文书籍,向初学者介绍 Python 如何用于科学计算。

5、I Miss My Bar

这个网站提供酒吧的环境音,可以选择加入什么声音:倒酒声、谈话声、街道声、雨声、背景音乐等。

图片

1、iPhone 与超级计算机

iPhone 12 的 A14 芯片,运算速度是 11 TFlOPS(每秒11万亿次)。

下图是它跟历年世界500强超级计算机的比较。

上图中,绿色的水平线就是 A14 芯片的运算速度,黄线是超级计算机的入围门槛,红线是最强性能的计算机。

可以看到,如果放在2009年,它可以入围世界500强超级计算机。如果放在2001年,它比世界最快的计算机还要快。

这就是说,你手里的这台小小的手机,拥有十几年前世界最顶级计算机的性能。

2、奇特的人行天桥

美国佐治亚州有一座人行天桥,要通过四车道的高速公路。由于公路两侧的空地很小,导致它具有非常奇特的引桥。

文摘

1、在英国乡村长大的大猩猩

下面是一个不可思议的真实故事。

1917年,法国士兵在非洲的加蓬,射死了一对大猩猩,然后将幸存的一个大猩猩宝宝卖给了英国商人。

那个英国商人将这只大猩猩宝宝,带回了英国出售,被 Rupert Penny 上校买走,价格是300英镑,约合今天的25,000英镑。上校将其命名为约翰·丹尼尔(John Daniel)。

上校太忙,没时间照顾它。1918年,他将这只大猩猩送给了姐姐 Alyce Cunningham 夫人,后者住在一个叫做 Uley 的小村庄里。

Alyce 夫人和其他村民都不知道如何照顾大猩猩,因此他们决定将它当作一个特别多毛的孩子,进行抚养。

从此,约翰·丹尼尔有了自己的家。他有自己的卧室,学会使用电灯开关和自己铺床,甚至知道如何去洗手间。与大多数幼儿不同,他还喜欢喝苹果酒。

他会定期与 Uley 中学的孩子们玩耍和散步,还会跟着Alyce 夫人,坐在的敞篷汽车中旅行。

从1918年到1921年,这只大猩猩在英国乡下度过了幸福的三年,可惜可悲的命运降临到它身上。

1921年,约翰·丹尼尔已经从32磅(14.5公斤)的可爱宝宝,现在变成了210磅(95公斤)的庞然大物,并且还在继续成长。

Alyce 夫人意识到,不太可能再把他养在家里了,但再把他送回非洲森林里生活也不太可能,她需要为他找到一个更合适的抚养人。后来,她遇到了一个热爱动物的美国人,答应带他去佛罗里达。

但是,那个美国人食言了,约翰·丹尼尔运到美国后,没有过上受到照顾的生活,反而被卖给了马戏团。

最终,约翰·丹尼尔被送到纽约的麦迪逊广场花园动物园,他不久就病了,健康状况迅速恶化。动物园饲养员认为他是因为思念自己的"母亲"而得病,就联系了 Alyce 夫人。

Alyce 夫人得到消息后,立即出发前往美国。可悲的是,约翰·丹尼尔在她到达之前已经死于肺炎。

他的遗体被捐赠给美国自然历史博物馆,在那里保存至今。Uley 的村民们则请来艺术家,为他制作了雕塑,进行永久纪念。

2、软件质量问题的根源

我有一个在 Ubisoft 工作七年的程序员朋友。他说过一句话:

"所有软件的质量问题和延迟问题,基本上都有同一个来源:产品经理不断变更需求。"

"当你不断要求修改软件的方方面面,却又不更改里程碑的日期时,代码就会变得不正常,因为你不得不快速地更改和修复,这会导致许多软件 Bug,并且很难修复。"

"需求管理是软件开发的最薄弱环节。他们不断变化需求,会浪费大量时间,是软件质量问题的最大来源。"

解决这个问题的一种方法是,增加原型开发阶段的时间,在原型阶段尝试解决所有可能出现的问题,此后就尽量不再变更。

言论

1、

特斯拉公司解雇了媒体关系部门的所用员工,正式表明它不想再跟媒体和记者打交道了,而是直接通过社交媒体跟公众对话。以后越来越多的公司会采用这种方式。

-- 《华盛顿邮报》

2、

很多路由器使用非常旧的 Linux 版本,研究人员收集了2020年在售的127种家用路由器,其中三分之一使用的 Linux 内核版本为 2.6.36。它是2010年10月发布的,至少有233个已知的安全漏洞。很难一一打补丁,而且很可能厂商根本没发布补丁。与其更新它,不如扔掉它,再买一个全新的路由器。

-- 《路由器安全性》

3、

鸟站在雪地里,脚为什么不冷?

如果你嚼过鸡爪,就会发现它没有太多肉,几乎都是肌腱和骨头,因此鸟脚的细胞中只有很少的液体。这意味着它很难冻结,没有冻结的液体就不会形成冰晶,避免了组织损伤和冻伤。

-- 《为什么鸟的脚不冷?》

4、

中国文化的特点是尊重权力,表现为在家尊重父母,在学校里尊重老师,在单位里尊重领导。尊重权力强调的是服从领导者的意志,在这种背景下,公司管理的进步相对来说比较难,因为权力太好用了。

--《与五位学者对谈互联网加班文化》

5、

我年轻时有个梦想,希望能在大学任教,传授自己学习与创业上的心得,但后来我某位在大学任教的朋友聊到,现在学生都很混,包括研究生。

我心想,这不是我要的啊!跟一群没有兴趣听你课的人讲述你的人生经验,这无异是对牛弹琴呢!这不是分享,而是痛苦,从此我打消了到大学任教的念头。

--《在个人网站写文章,我更自在》

历史上的本周

订阅

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

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

(完)

文档信息

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

科技爱好者周刊(第 150 期):当音乐还是稀缺的时候

$
0
0

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

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

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

封面图

厦门市山海步道长达23公里,通过高架道路,将市内多个公园串联起来。(via

本周话题:当音乐还是稀缺的时候

上周,磁带的发明者、飞利浦公司的荷兰工程师 Lou Ottens 去世了。

这让我想起了往事。这里的年轻读者,可能从没有听过磁带,但是20多年前,它是我们接触流行音乐的唯一渠道。

那时,电台的音乐频道会播歌,要想反复听,就必须录音,或者购买歌手的专辑。我记得,最早一盒是7元,后来涨到了10元。对于学生是很贵的东西,买一盒要下很久的决心,买来以后会反复听几百遍。

现在完全不一样了,一个新专辑在网上发布,很少有人连着听几百遍吧,不知名歌手的专辑可能根本没人听。因为音乐实在太多了,随便一个流媒体网站,都是上百万的曲库,大家已经不会在一张专辑上花太多的时间了。

音乐家应该会怀念磁带的年代。那时,生活中缺乏音乐,人们才会那么投入地去听,歌手也会投入地创作。那时的歌曲真的会影响人生,甚至影响社会。

美国歌手鲍勃·迪伦因为他的歌词,得到诺贝尔文学奖。"一个人要经历多少旅途,才能长大 / 一只鸽子要飞过多少海洋,才能看到沙滩 / 一门大炮要发射多少次,才有和平 / 我的朋友啊,答案就在风中飘荡",成了一个时代的标志。要是他生在现在,到处是快餐文化,这种歌即使写出来,也不会有太大反响,最多就是在社交媒体上转发一阵子。

音乐的黄金年代,其实是它稀缺的年代。 现在的音乐就像流水线上的产品,丰富到大家都不在乎了。歌手出一张专辑,跟发一条朋友圈差不多。

如果看得远一点,真正出大师的年代,是音乐更稀缺的时候。巴赫、贝多芬和莫扎特的年代,根本没有录音技术,想听音乐必须去现场。但是,偏偏那个年代出现了最伟大的音乐家,后世的技术提升了,却没人赶得上他们,这是为什么?

我猜想,原因可能跟稀缺有关系。稀缺意味着竞争少,所有问题都没有解决,你可以探索各种可能性和解决方案,容易出大师,影响后世。顺便说一下,也许有人会问,为什么更早以前没有出现著名音乐家?因为欧洲人在17世纪才掌握了成熟的炼钢技术,可以制作钢丝琴弦,能够确定准确的音高了。

稀缺年代不仅诞生大师,也会诞生大公司。 现在的科技大厂,都是新技术的早期诞生的。PC 的稀缺诞生了微软和苹果,互联网的稀缺诞生了 BAT,手机 App 的稀缺诞生了美团和字节跳动。等到不稀缺的时候,再想变成巨头就难了。

这告诉我们,如果你真想做一番大事,就应该投入那些刚刚开始发展、供给还很稀缺的领域。否则,想要成功就好像在互联网年代当一个歌手。

React 源码剖析

React 框架是2013年发布的,至今已经七年了。从那时起,它就一直是全世界最流行、最多人使用的前端框架。

很多同学都有疑问: React 学起来并不简单,为什么会这么流行?

最主要的原因可能是,它有很多前所未有的重大创新,一发布就引起轰动,引领了业界的潮流。学会了 React,就等于多了一种思维,而且它的原理非常清晰,对于大项目的组织开发非常有利。

(图片:2013年 React 发布现场。)

但是不得不说,React 发展到今天,变得越来越抽象,想要掌握它的 API,难度早就今非昔比。有些地方可能光看示例,都不一定能明白,必须要查看源码,才能彻底搞懂。

本周介绍的课程,就是一门 《React 源码剖析专题课》。它选择了国内开发者的几个常见难点,讲解它们的源码,从根源上解决疑惑,提升你的 React 开发水平。

讲课内容适合有一定基础的前端工程师,最好已经学过一遍 React,或者开发过项目,可以听听看。

该课程由腾讯课堂"双认证"机构----京程一灯提供,原价98元,周刊读者只需 0.02元的报名费。微信扫描下方二维码,加入课程群,即可报名。

前50位报名的同学,还会再送价值 98元 的大厂面试经验专题课,帮助大家应对前端面试。

科技动态

1、北海航线

去年,一艘俄罗斯油轮从中国出发,跟在核动力破冰船后面,进入北冰洋航行,2月19日抵达偏远的北极码头萨贝塔(Sabetta)。这是历史上首次在2月份穿越北极。

这条北海航线以前只能在夏季通航,现在有望全年通航,实现另一条太平洋到大西洋之间的稳定航线,将亚洲到欧洲的海运时间缩短一半。它产生巨大经济利益的同时,也反映了北极地区正在加速变暖,越来越多的人类活动将可能使得北极生态发生恶化。

2、太阳能睡眠舱

由于大量接收难民,德国很多城市都有无家可归的流浪者,冬季的严寒使得他们的生存成了问题。乌尔姆市的志愿者制造了太阳能睡眠舱,解决流浪者的夜间避寒问题。

睡眠舱具有很好的隔热性,并且配备了太阳能电池板,用以提升舱内温度。设计人员说,这种睡眠舱只能供紧急状况使用,不能当作永久住房,流浪者还是应该优先考虑室内的庇护所。

3、氢化镁燃料

氢气是一种环保新能源,但是很难储存,因为它太轻了容易逃逸,而且难以压缩体积,储存和运输的成本都很大。德国科学家研发了固态的氢化镁糊剂,尝试解决这个问题。

氢化镁在常温下是一种糊剂,温度上升到250°C才会分解,所以即使车辆在烈日下暴晒,也仍然安全。使用时加入自来水,水会与氢化镁发生了剧烈的放热反应,从而释放氢气。

它的优点是能量密度是锂电池的十倍,也就是说,同样能量的锂电池体积是它的十倍。而且添加燃料非常简单,只要用新的燃料盒替换原来的即可。下图就是氢化镁发电机,右下角的白色盒子就是燃料盒。

4、可以当显示器的衣服

《Nature》杂志刊载了复旦大学高分子系的一项成果,可以在纺织品上动态显示不同的色彩、图案。也就是说,每件衣服都相当于一块显示屏。

这种织物不仅可以充当显示器,而且可以多次清洗、折叠,有很大的实用价值。它的原理是将光活性纤维和导电纤维编织在一起, 形成发光单元,然后使用电路控制。织物里面还集成了键盘和电源,可以与手机通信。

5、一句话消息

  • 一个英国人最近拍到了清晰的海市蜃楼照片,一艘船悬浮在海面的空气中。

  • 《华尔街日报》说,Telegram 的资金快用完了,下个月即将到期的债务就有7亿美元。一直很好奇,Telegram 的商业模式是什么?现在这个样子,放开让大家使用,没有会员和广告收入,明显不可持续啊。

  • 在线会议软件 Webex 发布了实时会议翻译功能,支持100多种语言,可以让不同国家的人使用不一样的语言开会。

  • 欧盟和英国即将出台《维修权法》,要求厂商必须让自己的产品变得更容易维修,从而延长产品寿命,减少电子垃圾。很多评论认为,这部法律针对的是苹果公司。

文章

1、城市路线牌的设计(中文)

本文讨论了路线牌的设计问题。

2、沙发过弯问题(英文)

1966年,一个数学家提出一个问题,在一个直角走廊里面,能够通过的沙发最大可以有多大?

3、我是如何感染寄生虫的(中文)

作者详细记录了因为使用生鱼肉而感染寄生虫的过程,以及随后的检测和治疗,有大量照片。

4、浏览器是如何校验证书的?(中文)

本文介绍了浏览器怎么处理 HTTPS 的证书,它的校验机制是什么,内容较为通俗全面。(@cj1128 投稿)

5、使用 FFmpeg 将短视频转为 GIF 和 WebP 动画图片(英文)

在某些场合,动画图片的兼容性要好于视频。本文是一个教程,介绍如何使用 FFmpeg 将视频转成动画图片。

6、为什么 Java 后端程序员不愿意改用 Kotlin?(英文)

作者所在的团队从 Java 跳船到了 Kotlin。但是,大部分 Java 后端团队不愿意这样做,作者讨论了原因。

7、ECMAScript 2021 的新语法(英文)

今年6月份即将发布的 ECMAScript 2021 标准,本文介绍里面新增的语法点。

8、为什么应该使用 ISO 8601 日期格式(英文)

世界上有各种各样的日期格式,作者认为大家应该统一使用 ISO 8601 格式,即yyyy-mm-dd hh:mm:ss

工具

1、LinkDOM

JSDOM 的一个替代品,使用 JavaScript 解析 HTML 字符串,返回一个 DOM 对象,在上面实现了 DOM 接口。它比 JSDOM 体积更小、速度更快、内存占用更少。

2、SVG Waves

一个在线工具,可以生成 SVG 的波浪图片,各种细节都可以定制。

3、NodeGui

一个类似 Electron 的跨平台桌面应用开发框架,底层技术是 Node.js + Qt5。

4、ffmpeg-python

FFmpeg 的 Python 包装库,将复杂的命令行参数转成易用的 API。

5、SVG 俄罗斯方块

在一个 SVG 文件里面,实现俄罗斯方块小游戏。原理是 SVG 可以内嵌<script>标签。

6、ghostwriter

一个 Markdown 桌面编辑器,支持 Windows 和 Linux。设计思想是保持强大功能的同时,对写作产生最小干扰,提供全屏的简洁模式。

7、Image Renamer

一个使用 EXIF 信息的图片文件批量改名工具,支持 MacOS 和 Windows。(@Arman19941113 投稿)

8、Github Star Count

一个 Chrome 浏览器插件,在网页的 GitHub 仓库链接后面,插入该仓库的 Star 数目。(@chinazhangchao 投稿)

9、Issues Translate Action

一个 GitHub Actions 脚本,定时运行脚本机器人,将非英语的 Issue 自动翻译成英语。(@tomsun28 投稿)

资源

1、低地轨道可视化

这个可视化作品,可以让大家感受一下地球低轨道太空的实际状态,看看有多少太空垃圾。

2、奇怪的词源

这个网站收集各种 IT 单词的来源。

3、Web Browser Engineering

一本正在写作中的开源书籍,介绍如何使用1000行 Python 代码,实现一个简单的网页浏览器。

4、DOS Zone

DOS 游戏仓库,收集的所有 DOS 游戏都可以在浏览器里玩。

5、通过 VS Code 学习 Vim

免费的英文电子书,通过 VS Code 的 Vim 插件,教你如何使用 Vim。

图片

1、Windows XP 的壁纸山坡

Windows XP 的默认壁纸,大概是世界上观看次数最多的照片之一。那是一座真实的小山坡,位于加利福尼亚州索诺玛市12号高速公路旁,当年是一片草地,现在被一排排葡萄架覆盖着。

现年79岁的摄影师查尔斯·奥雷尔(Charles O'Rear)那时经常在高速公路上路过这座小山坡。他是《洛杉矶时报》的特约摄影师,并有25年为《国家地理》杂志拍摄的经历。

1996年一个星期五的下午,他将车停在路边,为田园诗般的风光拍了一张照片。然后,他将这张照片卖给一家图片社,微软发现了这张照片,永久买断后(具体金额未公开,据说超过6位数美元),然后将其用作 Windows XP 的默认桌面壁纸。

全世界的用户非常喜欢这张壁纸,它出现在各种场合。人们从未意识到这是一个真实的就在湾区的山坡,而是猜测它是计算机生成的图形,或者是在欧洲拍摄的。

可惜的是,仅仅在照片拍摄数年后,这座绿色小山丘变成了葡萄园,已经无法复现当初的样子了。

如果你想知道这座小山的确切位置,可以在 Google Map 输入坐标"38.249069, -122.410126"。

文摘

1、珠穆朗玛峰的高度

2015年4月25日,尼泊尔发生了8.1级大地震,造成近万人死亡。

地震之后,许多科学家推测珠穆朗玛峰可能会变矮。过去曾多次参与测量珠穆朗玛峰的印度很快提出,希望与尼泊尔合作,重新测量珠穆朗玛峰的高度。

尼泊尔政府拒绝了,表示将独立测量珠穆朗玛峰。历史上,尼泊尔人从未独立对其进行过测量,都是由外国测量队伍完成。

政府指定36岁的测量工程师乔塔姆(Khim Lal Gautam)带领一个小组,完成此次任务。乔塔姆本人就是在喜马拉雅山区出生并长大。

他们需要爬到珠穆朗玛峰顶,放置一个 GPS 信号接收器和天线。在此之前,需要先搜集海平面数据,然后从孟加拉湾(Bay of Bengal)开始逐步测量,之字形地向北推进,把沉重的装备从这个山头扛到那个山头,直到那最高峰出现在视线中为止,确定了大本营周围的大地水准面细节,才能算出高度。

2019年3月22日,天气预报晴。当天有许多登山队,预计将有223名登山者登上珠穆朗玛峰。由于携带的设备较多,为了避免堵塞道路,乔塔姆和一个同事,以及一个向导,不得不在凌晨3点开始向顶峰攀登。另外80人的队伍在大本营等着接收他们的信号。

珠穆朗玛峰的峰顶很小,只能站六个人。大多数登山者登顶以后,拍几张照片就下撤了,一般只会待几分钟。因为下山比上山更危险,必须留出足够的时间。但是,乔塔姆必须在峰顶调试设备,部署 GPS 接收器,以及部署用来测量积雪厚度的透地雷达,并要确保能够接通卫星信号。他最终在零下43度的珠穆朗玛峰顶,待了1小时45分钟。

当他开始下山,下降到8,200米后,乔塔姆(Gautam)筋疲力尽,几乎走不动了。他已经连续23个小时没有进食,携带的氧气也耗尽了。有一阵子,他失去了知觉,一位从山顶下来的美国登山者踢了他一脚,确认他是否还活着,他才醒过来,慢慢继续往下爬。他后来说,如果不是那个人把他踢醒,他会在山上丧生。

稍后,乔塔姆回到第二营地时,直升机将他们接走了。

2019年10月,中国宣布与尼泊尔合作,共同确定珠穆朗玛峰的高度。

2020年5月27日,中国测量队从北坡登上珠穆朗玛峰,放置了卫星测量设备。

2020年12月8日,中国和尼泊尔政府共同宣布珠穆朗玛峰的新高度:8848.86米,比以前宣布的高度略高。

言论

1、

有些计算机语言,运算可能会返回空值(null),这是一个设计错误,因为会中断类型系统,你将无法依靠编译器来检查代码的有效性。

任何可能为 null 的值都是等待爆炸的炸弹。我们必须依靠运行时手动检查来确保所处理的值不为 null。即使是静态类型语言,null 也剥夺了类型系统的许多好处。

-- 《可变状态是新的 Goto》

2、

项目做完了,员工都闲着,老板会让这些人立即投入到下一个项目中。毕竟每天都在烧钱,是不可能等主创人员想清楚再开工的。

反过来,这些人力也会给项目负责人带来压力,必须尽快做决策,以免让员工闲着没事干。这种情况下,能做出多少正确的决策?

-- 《独立游戏开发是一种什么样的体验?》

3、

互联网使得报纸的销量再也回不去了。以《纽约时报》为代表的一些报纸,开始尝试网上付费订阅,但是免费的新闻到处都是,读者为什么要付费看新闻呢?

《纽约时报》的办法就是,报纸不仅仅提供新闻,实际上是提供信条和观点,卖给志趣相投的人。

-- 《后新闻时代的报纸》

4、

各种聊天软件(Signal、Telegram、WhatsApp 等)都有相同的问题:它们都是有围墙的花园,用户只能跟安装了同样软件的人交流。这就像给不同域的人发送电子邮件,都需要单独的邮件客户端一样,比如Gmail 用户只能与 Gmail 用户通信。

-- 《聊天软件共同的问题》

5、

大约10年前,一群运维工程师对开发工程师有很大意见,觉得开发工程师不关心自己的代码是否能够真正有效运行,交付后就不管了。同时,运维工程师还觉得遭受管理层的虐待,管理层要求运维团队全天候待命,但几乎没有提供内部的支持和认可。

这些工程师引发了一场称为 DevOps 的革命,即开发工程师和运维工程师需要更加紧密地合作,以支持通过 Internet 运行复杂软件这一日益复杂的任务。

-- 《运维工程师的口述历史》

6、

你能想象吗,智能手机问世只有不到5000天。与人类历史相比,5000天实在太过于短暂。然而这短短的5000天,我们的生活已经发生了如此惊人的变化。

-- 凯文·凯利

历史上的本周

2020年(第 99 期):疫情导致的研究生扩招

2019年(第 47 期):吃播算不算正式工作?

订阅

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

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

(完)

文档信息

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

科技爱好者周刊(第 151 期):NFT 是什么,听说能赚钱

$
0
0

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

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

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

封面图

意大利一个时尚品牌,推出了穿鞋子的沙发。说来奇怪,只是简单地加上袜子和鞋子,沙发好像就有了生气。(via

本周话题:NFT 是什么,听说能赚钱

最近,美国有一个东西非常火爆,叫做 NFT,价格飞涨到了离奇的地步。

请看这样一条新闻。一个网名叫做 Beeple 的艺术家,从2007年5月1日开始,每天在 Instagram 发布一张数字艺术的图片,就像下面这种。

到了今年,他已经连续发布了5000张。为了纪念这一天,他就把所有发布过的图片,合成为一张超大的 JPG 图片,交给佳士德公司拍卖。

这里就有一个问题,JPG 图片怎么拍卖? 那只是一段二进制编码,如果有人拷贝了一份,请问哪一份是真品,哪一份是赝品?

Beeple 的做法就是,拍卖的不是 JPG 图片本身,而是这张图片的 NFT,结果拍出了6934万美元的天价!

NFT 到底是什么神奇的东西,使得一个图片文件值这么多钱?我感到非常好奇,就阅读了一些资料,下面就是我的理解。很可能有不正确的地方,欢迎指正。

简单说,NFT 是区块链的一种应用,最大特点就是把网址写入区块链。 大家知道,数据一旦写入区块链,就无法再修改(参考我的《区块链入门教程》)。因此,NFT 包含的网址是没法改的,然后可以通过区块链的买卖机制,跟某一个数字钱包相关联。

这就是说,如果某个区块在你的数字钱包名下,该区块所包含的网址自然也会在你的名下。所以,NFT 很适合作为网址的所有权证书。 回到前面的例子,佳士得拍卖的,其实就是原始 JPG 图片的网址在区块链上的所有权。

买家买到手的就是包含这个网址的一个区块,本质上就是一条数据库记录,以此证明自己拥有的是"正品"。 任何可以用网址表示的东西(一篇文章、一段视频、一条推特等等),都可以用 NFT 买卖, 所以有人说 NFT 是数字资产所有权交易的最佳方案。

你可能马上会想到一个问题,如果网址发生变化,或者下线了,那可怎么办?毕竟 NFT 是没法修改的。根据我看到的资料,这一点好像目前没有解决办法,有人提出使用内容寻址的网址(IPFS),这里就不谈了。

如果你问我,NFT 有没有投资价值,会不会像比特币那样被暴炒?我的想法是,这取决于数字资产所有权这件事,到底能有多大的市场。数字文件的最大特点就是无限的可复制性,NFT 人为创造出了所有权和稀缺性,让拷贝与拷贝之间产生差异。这样做的意义,除了拍卖和炒作,我还真想不出其它场景,因为几乎都有比它更好的解决方案。

Vue 3 原理解析

本周的课程讲座是一个面试辅导,帮助想要进阶的前端同学,准备 Vue 3 相关的面试。

2020年9月,Vue.js 发布了 3.0 的第一个正式版本,重写了内部代码,改进了性能,引入了一些重大的新功能。从那时起,现有的项目就正式开始全面地向新版本迁移了。

Vue 3 的迁移在国内开始得更早,基本跟开发是同步的。作为国内使用最广泛的前端框架之一,各个大厂对 Vue 的投入非常大,面试几乎必问 Vue 3 这方面的问题。

想要顺利通过面试,不仅需要了解 Vue 3 的原理,最好还能体现出强烈的学习能力,以及对新技术的敏感。 后两者也是技术能力非常重要的组成部分。

开课吧推出的 《Vue3 原理解析》 课程,就是从上面几个方面,强化学员的 Vue 3 技术能力,帮助大家好好准备面试,顺利拿到 Offer。

在课程中,Vue 3 源码贡献者崔效瑞老师,通过带领大家自己手写代码,让你亲手实现一个最简单的 Vue 3 内核,以此了解 Vue 的核心原理,精准找到学习关键点。

该课程原价199,周刊读者有优惠,可以 0 元学习。微信扫描下方二维码,即可报名。

前100个报名的同学还会额外获赠 《带你高效掌握 ES6:原理讲解 + 项目实战》资料包。

科技动态

1、安卓的车祸报警功能

最近,一个美国人在操作挖掘机时发生事故,滑下山谷,他被卡在车里,呼吸困难,周围没有其他人。好在他 Pixel 手机的 Android 10 系统内置了车祸报警功能,事故发生后的几分钟内,手机自动拨打求救电话 911,发送他的坐标。

十几分钟后,消防局赶到现场,将他救出来,事后发现他的7根肋骨和4根胸椎折断。下图是 Android 10 在拨打求救电话时显示的提示截图。

2、太空舱旅馆

国内企业推出了太空舱旅馆,号称可以放在任何地方使用。它自带800-1600升水箱、5千瓦光伏,配备了废水和粪便处理系统,可以完成独立的生态循环。

厂家宣传,使用时不用打地基,不用挖建蓄粪池,不受地域位置限制,采用新型玻纤复合材料,质地轻薄,不易腐蚀。不过,如果真的要商用,肯定还是需要外接水电和排污。

3、太阳能汽车

一家德国创业公司宣布,造出了世界第一辆太阳能汽车。该车最大特点就是太阳能板代替了车身油漆,全车一共有248块电池板。不过,太阳能的充电速度比较慢,每周的电量只能支持112公里~245公里(视天气而定),其余的电量必须通过充电桩供应。

该车充满电后,可行驶250公里,售价为2.5万欧元,约为20万人民币。由于车身越大,太阳能板可以放置越多,该公司下一步打算推出太阳能大客车。

4、三星堆考古

3月20日,三星堆遗址的最新考古成果发布。上一次挖掘还是在上个世纪80年代,只挖掘了两个祭祀坑;2019年开始挖掘另外六个,上图是这次出土的黄金面具和上一次出土的青铜面具。

下图是当年和现在的考古现场对比,可以看到中国考古30多年来的进步。现在使用了很多新设备,搭建了恒温恒湿的大棚,还使用 3D 打印为出土文物制作保护罩。

任何史书都没有记载,四千年前四川存在过一个高度发达的人类文明。这个文明是哪里来的,又为何消失,留下了太多的未解之谜。

5、一句话消息

苏伊士运河有史以来第一次被一艘搁浅的集装箱船堵塞,导致运河两端的船只大排长龙。这条著名运河其实非常狭窄,宽度只有200米,而集装箱船长达400米,船身稍微横过来,就会把路堵住。

BBC 报道,欧美很多大公司采用 AI 面试求职者。软件会给出一些问题或者游戏(下图),然后结合求职者的答题表现和摄像头捕捉的表情,决定是否进入下一轮面试。很多求职者质疑,仅凭计算机决定一个人的工作申请是否公平?

美国科学家使用1988年保存下来的 DNA,在2020年克隆出了濒危动物黑足雪貂,它由家养雪貂代为怀孕。这是美国第一个克隆的濒危物种,这种方法以后可用于挽救其他物种。

Oppo 新发布的手机 Find X3 Pro,有一个其它手机没有的显微镜头,可以将物体放大60倍,引起了国外媒体的兴趣。下面就是他们拍的样张:纤维和苔藓。

韩国媒体透露,正在播出的电视剧《文森佐》的意大利场景,全部都是摄影棚内拍摄的,然后使用计算机生成,根本看不出破绽。韩国的数字工业真是越来越厉害。

文章

1、为什么印度发展制造业这么难?(中文)

自从莫迪上台之后,印度一直想要发展制造业,以工业强国。本文详细分析,为什么印度的制造业发展不起来,无法复制中国的模式。

上图据说是,印度老师远程上课,但找不到手机架的解决方案。

2、百度如何错过深度学习之父(中文)

美国最近出版了一本新书《天才制造者》,透露了各大 IT 巨头开发人工智能的许多秘辛。

2012年,李彦宏曾经拍板出资1200万美元,聘请当时还没有出名的"深度学习之父"多伦多大学的辛顿教授担任首席科学家,辛顿教授也动心了,但是最后还是被谷歌挖走了。

3、谁看了日本人的 LINE 聊天记录(中文)

LINE 将一部分开发外包给中国软件公司,中国开发者得到授权后,可以访问日本 LINE 公司的服务器,查阅了一些日本用户的个人资料和留言等信息。这件事披露后,尽管是完全合法的访问数据,还是轰动了日本列岛,直接惊动了日本首相菅义伟。

4、我如何收购一家 SaaS 公司(英文)

作者是一个风险投资家,本文介绍他如何收购一个网络软件,可以从中了解风险投资的一些操作方法。

5、我如何用表情域名赚钱(英文)

作者偶然发现,某些国别域名允许注册表情符号 Emoji 的顶级域名,比如上图的笑脸域名。他就一口气注册了300个,开始利用它们赚钱。

6、关于线程的简要介绍(英文)

线程(thread)是编程的重要概念,本文用简单的语言介绍了什么是线程、它与进程的区别、线程的优缺点等等,写得很好。

7、一道有趣的物理题(英文)

这是美国一个大学的物理学考试题目:有没有可能在高压输电线路的下方,放置一大圈电线,利用线圈感应进行偷电?

8、放弃悬停菜单(英文)

悬停菜单是一种常见做法,鼠标悬停时显示子菜单。作者认为,如果有些菜单项没有子菜单,悬停会造成行为不统一,建议统一改为单击菜单。

工具

1、Gotify

一个 Go 语言写的 WebSockets 库,有服务端、客户端和安卓端。

2、UserLAnd

一个安卓应用,让你在安卓手机上安装 Linux 发行版,就像安装一个常规 App,不需要系统 root。

3、lint-md

一个检查中文 Markdown 语法风格的命令行工具,比如英文字母与全角字符之间有一个空格。(@hustcc 投稿)

4、FairEmail

开源的安卓电子邮件客户端,强调安全和隐私保护。

5、AR-lab

一个实验性桌面程序,使用百度飞轮和 Electron 实现的 AR 剪贴和复制。手机先对准某人,再对准电脑屏幕,即可把他/她复制粘贴到桌面程序里面!(@shadowcz007 投稿)

6、rss_everyday

一个 GitHub Actions 模板,每天定时运行,将 RSS 内容推送到 Telegram 频道。(@GuangzheJiang 投稿)

7、mdBook

GitBook 的 Rust 语言移植,可以将 markdown 源文件转成一个在线阅读网站。

8、flowchart-fun

可能是最简单的流程图制作工具。左边的文本框输入,一行就代表一个新节点,缩进代表隶属关系,右边自动生成图形。

9、DarkModeBuddy

一个 MacOS 应用,自动根据外部光线的强弱,调整桌面为亮模式或暗模式。

10、Arrow

一个 Python 的日期时间库,借鉴了 moment.js 的 API 设计。

资源

1、Clone Wars

该仓库收集热门网站的开源实现,比如 Airbnb、Amazon、Instagram、Netflix、Tiktok、Spotify 等,已经有70多个项目了。

2、地球史视频

一个原创科普视频的 Youtube 频道,从地球诞生开始,一段一段介绍地球的历史。

3、真实世界的密码学(Real-world Cryptography)

本书使用简单的语言和示例,解释了普通用户在日常生活中遇到的密码学问题,可以免费在线阅读。

4、数据结构与算法视频

一组不错的数据结构与算法讲解视频,涉及动态数组、二叉树、图论、动画引擎等等。从国外网站搬运到 B 站,带有中文字幕。(@jizai 投稿)

5、活火山直播

冰岛的一座活火山出现裂缝,涌出岩浆。工程师将摄像头对准火山,在网上提供直播,很难得可以看到火山喷发的直播。

图片

1、博朗的配色

德国博朗公司(Braun)以设计优雅著称,曾经对乔布斯产生过重大影响。下面是它的一些产品配色方案,非常漂亮。

2、Facebook 小红书

2012年,Facebook 发行股票上市,每个员工收到了一本小红书。

最后一页写着这样一段话:

"如果我们自己不创造能够杀死 Facebook 的东西,其他人将会这样做。......互联网不是一个友善的地方。那些不重要的东西甚至都没有机会留下遗迹。它们消失得无影无踪。"

文摘

1、庞巴德的故事

1952年,法国人庞巴德(Alain Bombard)独自一人,乘坐一艘4.3米的充气式救生筏穿越大西洋。他没有携带食物和淡水,航行了4.400公里,于当年12月23日到达加勒比海岛国巴巴多斯。他的体重减轻了25公斤,这一切只为了证明他的观点:人类实际上可以在海水上生存更长的时间!

作为一名医生,庞巴德有一个理论,在身体不缺水的情况下,人类饮用少量海水,并没有危险。只有当身体脱水并突然喝大量盐水时,才是危险的。

据他自己说,他在海上依靠鱼叉和鱼钩捕鱼,以及用小网捞海面上的浮游生物为食,每天也饮用有限的海水。

很多人不相信庞巴德的讲法,认为他实际上在航行时偷偷携带了淡水,并且一路上都在收集雨水,可能中途还有秘密的补给。

2005年,庞巴德(Bombard)在法国土伦去世,享年80岁。

2、中情局留在喜马拉雅山脉的核垃圾

1964年,中国成功在新疆试爆了第一枚原子弹。美国政府非常震惊,希望收集更多这方面的情报。

中央情报局 CIA 想出了一个匪夷所思的计划。他们打算在印度的高山顶上安装一个监听装置,捕获中国核计划的无线电通信。

监听装置是一个金属箱,重50多公斤,外表像一个烤箱,但是装有将近2米的天线。它内部有一个微型核反应堆,用来供电,保证能够在极寒的山顶连续工作多年。

1965年,中央情报局跟印度合作,组建了一支登山队,计划把这个装置放到印度第二高峰南达·戴维(Nanda Devi)的顶上。那座山峰位于喜马拉雅山脉,海拔7816米。

登山队训练了6个月,于1965年10月出发,结果遭遇了彻底失败。距离山顶还有几百米的时候,一场巨大的暴风雪来临了,几名队员掉落山谷而丧生。登山队长被迫决定撤退,并把核装置留在山上,打算下次登山时再取回它。

到1968年为止,中央情报局在该地区又组织了七次登山,但是始终没有找到那台留在山上的设备,只好在山顶又重新安装了另一台。但是,那一台还没来得及收集到有用的情报,就被埋在深深的积雪下面,几个月后停止了工作。

于是,在喜马拉雅山脉的深处,留下了两个核装置,没人知道它们现在的状况。

2021年2月,印度的北阿坎德邦爆发巨大的山洪,造成50多人丧生。洪水的源头就是南达德维冰川,山上的一个湖泊发生了决口。尽管没有证据支持,许多人猜测,原因可能就是那两个核装置还在工作,产生的热量导致了冰雪融化,冰川决口。

言论

1、

有史以来发行的所有美元,几乎有四分之一是在2020年发行的。

-- 《美元的贬值》

2、

小的、渐进式的创新可以使行业主导企业保持领先地位,但是激进的创新可以使新公司超越行业主导企业,这就叫"跨越式发展"。

-- 维基百科

3、

杀手级应用(killer application)指的是极受市场欢迎的计算机程序,证明了底层技术的价值。比如,消费者只是为了运行该程序,而会购买必需的硬件。

-- 维基百科

4、

如果你自己开公司,每月收入少于2万美元,那么你的公司根本不是公司,而是一份你的工作。

-- 《我如何收购一家 SaaS 公司》

5、

以前是其它行业的公司购买软件,现在是某一个公司创建一种软件,然后使用自己的软件进入该行业,并对这个行业加以改造。

--《超越软件》

6、

2020年,音乐产业的总收入不到200亿美元,是20年前的一半。流媒体的发展,大大缩小了音乐市场的产值。

--《超越软件》

历史上的本周

2020年(第 100 期):零利率时代

2019年(第 48 期):著名程序员 Bill Joy 的人生启示

订阅

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

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

(完)

文档信息

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

科技爱好者周刊(第 152 期):从北大到技校

$
0
0

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

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

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

封面图

自贡灯会正在举办,上图是"环游星系"组灯。(via

本周话题:从北大到技校

最近,我看到一条新闻。十年前,有一个学生申请从北京大学转学去技校。十年过去了,他现在怎么样,媒体报道他的现状。

这个学生名叫周浩,从青海考入北大生命科学学院。大家知道,生命科学是学术性很强的一个专业,要学物理、化学、医学、生物化学等许多理论课程。周浩更喜欢动手,对那么多理论没有兴趣,入学第一年就跟不上课程了。

他想转专业去工科,但没有成功。他对继续读下去,丧失了信心,大一结束后,就申请休学一年,去深圳寻找出路。社会的闯荡让他意识到,没有一技之长很难立足。一年后,他回到北大,原以为会重新爱上学习,结果还是不适应。

这时他听说,德国的高中毕业生只有一半人读大学,还有一半人选择读职业学校,出路依然很好,这也是德国工业强大的一个原因。这给了他启发。2011年冬天,他从北大退学,进入北京工业技师学院,从一名北大学生变成了数控机床的技工。

机床更符合他的兴趣,他如鱼得水,从零基础成长为数控机床的熟练工。2014年第六届全国数控技能大赛的数控机床项目中,他获得了高技组全国第一名。

技校毕业以后,北京市化学工业集团把他作为高技能人才引进,解决了北京户口。现在,他在北京工业技师学院任教,是一名数控机床的青年教师。

那篇新闻报道的结尾处,赞扬了他选择合适自己的道路,但没有鼓励大家也走这条路。毕竟这是一个很冒险的举动,中国是一个看重文凭的社会,名校的光环对普通人有巨大的帮助,贸然放弃的损失很大。另外,你转学去技校,亲戚朋友和老师同学会怎么议论,别人会怎么看你,这是很大的心理压力。

在我看来,有一个最关键的点,报道里面没强调,那就是他最后选择的专业是数控机床,这大大减小了退学风险。中国制造业急缺数控机床人才,中国要成为"世界工厂",离不开一大批机床专家。与其做一个平庸的北大毕业生,数控机床工程师有更好的前途和回报,更不用提幸福感的提升和个人兴趣的满足了。

但是,这个故事真正打动我的地方,不是他选择哪一条道路,而是他敢于去选择,不跟现状妥协。 那一种自己把握命运的主动性和勇气,我不能这样过下去,这不是我要的路,我必须改变人生的方向,然后毅然决然付诸行动。

太多的人缺乏这种勇气,让生活推着自己往前走,随波逐流。一个青年高中毕业,对自己、对社会都不太了解,选择大学专业都是听父母的,等到发现没有兴趣的时候,不知道该怎么办,往往选择先拿到文凭再说,得过且过。没有那种对命运负责的勇气和壮士断腕、破釜沉舟的行动力。

在中国,想要违逆命运安排好的道路,难度是极大的。周浩的退学是一个罕见的真实例子,拒绝命运的安排,听从自己的内心,做一个人生的逆行者。希望这个故事,能让更多的青年有做自己命运主人的勇气。

算法面试必考100题

这一段时间以来,互联网公司的招聘量特别大。具体可以看《谁在招人?》月刊,这个月的招聘岗位是三年来最多的。

原因大概是,疫情推动了在线服务,互联网公司有很好的利润和业务成长,现在加大投入,补充新人了。不过,一体两面的是,今年的应聘难度也是空前的:(1)高校毕业生创了新高;(2)很多本来会出国或在国外就业的人,现在选择国内就业;(3)实体行业不景气,更多的人涌向互联网公司。

如何拿到面试机会,成了很多同学最关心的问题。对于开发岗位来说,技术能力是决定性因素,校招的笔试和初面当中,通常都会包含算法题,考察你的编码解题能力。 有针对性地准备一些算法题,是面试的有效准备方法。

这些年,LeetCode 刷题很流行。这确实是提高算法基本功的好方法,但是它也有自己的问题。一是题库越来越大,现在官网已经有1800多题了,根本做不完,新人往往不知从何下手;二是它主要收集美国的题目,跟国内的情况不完全一样。

本周的课程资料就是一份 《算法面试必考100题》(含详细解答) ,有针对性地帮助大家准备算法面试。它是"极客时间"从国内大厂的面试真题里面,选出来的频率最高、知识点最有普遍性的100道题目,涉及到了基本概念、数据结构、常见技巧等各个方面。

资料内容主要针对 Java 面试,也包括 C++ 和 Go 语言的题目,不过很多知识点是通用的,各种语言(甚至伪代码)都能用来解答。做一遍这100道题目,不失为短时间内准备算法面试的一种有效方法。

微信扫描下方二维码,添加小助理以后,回复"面试题",即可 免费领取 《算法面试必考100题》。

科技动态

1、推特入侵者

2020年7月16日,推特的多个认证账号遭到入侵,包括 Apple、Uber、比尔盖茨、拜登、马斯克等。所有账号都发出同一条信息(见上图),大意是我们正在回报社区,只要你向下面的钱包转入比特币,我们将在30分钟内加倍返还给你。

虽然这些假推文在5分钟内就被删除,但还是有价值10万美元的比特币转入了指定钱包。事后,警方发现这是佛罗里达州的一个17岁少年所为,他骗取了推特公司的一个员工的信任,访问了内部系统,发出这些假推文。

今年3月16日,佛罗里达法院宣判该少年三年有期徒刑,缓行三年。

2、冰岛火山喷发

冰岛的吉尔丁达卢尔火山,最近爆发了。由于喷发规模不是很大,只是慢慢涌出岩浆,地势也容易接近,导致大量游客蜂拥而至。

有人将无人机飞到了火山口上方,拍到了罕见的正在喷发的火山口视频(Instagram腾讯视频)。

火山口的高温烧坏了无人机底部的镜头,好在控制系统没有烧坏,还能够飞回来。

3、FaceApp 变脸术

Twitter 帐户 azusagakuyuki 有超过16,000个关注者,看上去是一个年轻的日本女子经常发布自己骑摩托车的照片。

有人发现,某张照片的摩托车后视镜里面,似乎是另一个人的脸。电视台的综艺节目就派人调查,结果发现骑手居然是一个50岁的男子。

他使用 FaceApp 变脸自己的照片后发布。他说没人愿意看一个大叔的自拍,变成年轻女子以后,关注的人就多了。

4、3D 打印书屋

全国首个混凝土 3D 打印书屋在上海宝山区落成,面积不到30平米,可容纳15人。该建筑从上往下看是一个"逗号"的样式,里面会放一个书桌。

该书屋是将预先设计好的模型文件,现场导入机械臂,然后一层层用混凝土打印出来。

5、一句话消息

国内公司推出了高空抛物智能监控系统,能够做到精确定位监控,发现哪个窗口往外扔东西,还实现了社区和派出所联网。

问答社区 StackOverflow 的愚人节玩笑:一个专用的复制/粘贴小键盘。你可以一键把示例代码,复制到自己的项目。

英国新版的50英镑钞票,背面人物是计算机科学家艾伦·图灵(Alan Turing)。该钞票将于6月23日进入流通,那天是图灵的生日。

毅力号漫游车在火星上释放了一个飞行器,传回的照片简直就像太空西部片。

iPhone13 有谣传会取消所有对外暴露的接口,即取消充电口,完全依靠无线充电。

一项研究发现,哪怕手机只是放在一旁,都会分散你的注意力。研究人员建议,对于要求专注的工作,最好将手机放到另一间房间。

文章

1、2020年竣工的中国十大摩天楼(中文)

2020年全球有106座高度200米以上的建筑竣工,中国有56座,本文介绍其中最高的10座。上图是去年国内竣工的最高建筑,403米的广西南宁华润大厦。

2、OKR 考核替代 KPI 考核的问题(中文)

很多互联网公司开始采用 OKR 考核替代 KPI 考核。前者是注重目标和阶段性结果,后者是单纯的结果考核。这篇新闻分析讨论了这种替代产生的一些问题。

3、暗网取证研究(中文)

暗网(Dark Web)具有匿名性及不可追溯性,只能通过特定软件才能登录访问。本文讨论执法部门如何对暗网的取证。

4、Adobe 公司的 Super Resolution 功能(英文)

Adobe 公司新发布了一项革命性的图像功能:Super Resolution。它可以将图像的解析度放大4倍,同时不丢失细节。这篇文章是软件作者介绍该功能。

5、ts 命令的用法(英文)

Linux 命令行有一个 ts 命令,可以为输出加上时间戳。本文介绍它的各种用法。

6、浏览器的 HTTP Referrer 标头政策变化(英文)

Firefox 浏览器宣布跟随 Chrome 的做法,修改 HTTP Referrer 标头政策。修改后的做法是,从 HTTPS 跳转到 HTTP,不发送referer标头;从 HTTPS 跳到 HTTPS,只要有跨域,referer标头就只包含域名,不包含路径。

7、Makefile 可以取代 package.json 脚本(英文)

package.json 文件可以自定义 npm 脚本命令,比如npm test。这篇文章提出 Makefile 可以替代这些脚本命令,具有更好的可维护性和更强大的功能。

8、SSH 如何搭建简易 VPN?(英文)

本文介绍 SSH 如何搭建一个简单的 VPN 网络。

工具

1、Wombo

一个手机 App,上传一张脸部照片和一首歌曲,它就会自动生成照片人物对口型唱歌的视频。

2、Zoom Escaper

一个恶作剧软件,让用户在进行 Zoom 视频会议时,麦克风会产生噪音,从而避免发言甚至参与会议。

3、wormhole-gui

一个桌面应用程序,可以在同一个局域网的各个机器之间,互相发送文件。

4、Baserow

一个开源的网页表格,目标是成为低代码的数据库,作为 Excel 和 Airtable 的替代品。可以使用托管的版本,也可以自己架设服务。

5、Ryujinx

一个任天堂 Switch 游戏机模拟器,可以在 Windows 上玩 Switch 游戏。

6、Slog

这个网站可以把 Slack 上面的聊天,输出为一个博客网站。你只要把照片和想法发到 Slack,就能变成一篇博客文章。

7、moovie.js

一个 JavaScript 写的 HTML5 视频播放器,可以在网页上播放视频。特点是功能较全,支持外挂字幕文件。

8、Papercups

一个可以自己架设的开源服务,在网页上插入聊天窗口,并可以集成 Slack,即在 Slack 上与网站访问者对话。

9、Fraidycat

一个另类的 RSS 阅读器,作为浏览器扩展安装,可以订阅 RSS 和社交媒体动态。UI 有点像推特的时间线,可以高效地展示信息。

资源

1、Apple Privacy

苹果官网的这个页面,列出了所有自家软件获取哪些用户信息。

2、Duolingo 外语学习材料

多邻国(Duolingo)的外语教程笔记,一共有30多个语种,用英语讲解如何快速入门某一种外语。

3、深度学习动手学

深度学习的英语教程,可以免费在线阅读,针对初学者,注重动手练习。

4、LaTex 教程

LaTex 是学术文档的排版系统,这是一个免费的英语教程。

5、Android FFmpeg 音视频开发教程

一个中文教程,介绍如何将 FFmpeg 集成进入安卓 App,带有示例工程源码。(@githubhaohao 投稿)

图片

1、人马马拉松

英国每年会举办一场奇特的马拉松,人与马同场竞技,线路全长35公里,都是崎岖的山地小道,看谁跑得快。

这场赛事起源于1980年,英国人 Gordon Green 偶然在酒吧听到别人聊天,其中一个人说,在乡间小路那种环境,马并不比人快。他听了以后,不禁冒出一个念头,为什么不组织一场这种比赛呢。

从1980年到2019年,比赛一共举办40次,马赢了38次,人赢了2次。

2、无人机90秒穿越保龄球馆

一个美国工作室发布了视频,无人机90秒穿越保龄球馆,一口气拍摄,没有中断,甚至没有任何后期制作(除了加上声音),效果非常惊人。

下面就是这段视频(Youtube腾讯视频)。

据透露,一共拍摄十几次才成功。他们使用的不是普通的无人机,而是穿越机,把 Gopro 绑在上面拍摄,完全依靠手动操作。

文摘

1、海因莱因的五条写作规则

著名的美国科幻小说作家罗伯特·海因莱因(Robert A. Heinlein),给有志于写作的年轻人,传授过五条写作规则,帮助他们入门。

我觉得这些规则,不仅适用于作家,也同样适用于程序员。

规则一:你必须动手写

听起来很明显,是吗?但是,很多人只是想想而已,并没有真的动手写任何东西。成为作家的唯一途径是将自己放在键盘前,开始工作。

规则二:完成草稿

你开始写的前几页,可能很糟糕,你可能会想将它们扔掉。不要这样做,继续下去把草稿写完。一旦有了初稿,包括开头、中间和结尾,你会惊讶地发现,哪些是有用的部分,哪些是没用的部分。

规则三:不要无休止地修改

你应该不断修改你的草稿,但是一旦发现,修改后的效果没有比原来有太大的提升,就应该结束修改了。有句老话说,故事永远不会结束,只会被放弃。你要学习到了某个点,不再对这个作品投入时间。

规则四:你必须将作品推向市场

写完之后,放在书桌上是没有用的。即使你对自己没有信心,也应该把作品发布出去,看看外界的反应。不要胆怯,没有发表过的作品,等于没有写。

规则五:你必须努力推广作品,直到售出为止

一个事实是,你的作品几乎肯定会被拒绝,最大的可能是根本没有反响。不要为这种事情烦恼,很多伟大的作家都收过很多拒稿信。如果那些拒绝当中包含你认为不错的建议,请修改你的作品,然后再次发布。如果得不到什么建议,那就转向其他市场发布。你要坚持让更多的人看到你的作品。

最后,不管上一部作品得到什么样的成绩,你开始准备下一部作品。

言论

1、

旅行是非常棒的经历,但是你不能寄希望于旅行会让你的生活真正发生变革。我曾经环球旅行,现在差不多过去了十年,感觉就像对我的生活没有发生过影响。随着现在的生活越来越安定,旅行的记忆正在迅速消失。

-- Hacker News 读者

2、

美国旧金山的金门大桥建于1930年代,用了三年半。如今,加州的基础建设严重滞后,建造一条通往金门大桥的道路,要花费七年的时间,实际成本比桥还贵。

--《增长是如何停滞的》

3、

终身学习的首要问题是,你一定要尝试找到乐趣,以及可持续的长期动力。

-- 《学习而不感到厌倦》

4、

有时,魔术只是有人在台下付出了你想象不到的时间。

-- 美国著名魔术师泰勒(Raymond Joseph Teller)

5、

眼镜蛇效应(Cobra effect)指的是解决某个问题的方案,反而使得该问题恶化。

它来自于殖民时期的印度,政府颁布法令说每打死一条眼镜蛇都可以领取赏金。结果,民众为了赏金开始养殖眼镜蛇,政府不得不取消赏金,养殖蛇的人就把蛇都放了,放出去的蛇继而繁殖,反而使得眼镜蛇数量大增。

-- 维基百科

历史上的本周

2020年(第 101 期):互联网不再稀缺

2019年(第 49 期):学会有所不为

订阅

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

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

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2021年4月 2日
Viewing all 688 articles
Browse latest View live