这里记录每周值得分享的科技内容,周五发布。
本杂志开源(GitHub: ruanyf/weekly[1]),欢迎提交 issue,投稿或推荐科技内容。
周刊讨论区的帖子《谁在招人?》[2],提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。

封面图

2021年世界自然摄影大赛,有一张神奇的得奖照片。一队蚂蚁过水塘,其中一只趴在水面上作为桥梁,让其他蚂蚁踩在自己身上过河。(via[3]

本周话题:英国的名校签证,伯克利的计算机教育

(一)
上周,我看到一条新闻[4],英国即将出台“名校签证”。世界顶尖大学的应届本科生,可以直接申请该签证,到英国找工作。
英国政府对“世界顶尖大学”的定义是,该大学在以下三个高校排行榜里面,至少有两个排名前50位。
泰晤士高等教育世界大学排名,QS 世界大学排名世界大学学术排名
目前还不知道,这种签证是否有国别限制,因为北大、清华、香港大学、香港中文大学都符合条件。如果真的对中国人开放,以后北大清华的本科生就可以选择,直接去国外就业了。
我第一个感觉是,名校的价值在这里体现出来了。相比普通大学, 名校最大的价值,不在于教育质量,而在于能为学生提供更多的机会。 北大清华的毕业生,未必强于其他学校,但一定拥有比其他学校更多的机会。
去年,北京[5]上海[6]都出台了政策,部分985高校的本科毕业生可以直接落户这两个城市。英国的“名校签证”简直就是这个政策的国际版。
我的第二个感想是,就业的选择越来越广,以后的学生可以在全世界范围找工作。这意味着,学生应该用世界眼光看待问题,思考人生道路。
英国是老牌的资本主义发达国家,连它都在全世界抢人才,愿意给工作签证。那些不如它的国家,签证就更不成问题了,就看你愿不愿意去了。
(二)
查看世界大学排行榜的时候,我无意中点进了加州大学伯克利分校的官网。
伯克利是一所非常有名的大学,单单在计算机领域[7],就涌现了众多的发明(比如 Unix BSD 系统)和杰出人物。
但是,我在计算机系[8](全名为电气工程与计算机科学系,Electrical Engineering and Computer Sciences)的网页上,看到了一个难以想象的数字:去年的2021届,伯克利应届计算机系本科毕业生有1300多人!
一个系一年有1300多个毕业生,这也太多了吧。怎么培养呢?
小班课就算40个人一个班,那也要几十个班,系里需要多少老师啊。大班课在阶梯教室上课,最多坐200个人,再多就只能去礼堂上课了。大家都知道,班级规模越大,教学效果越差。
上图是网上找到[9]的图片,伯克利最大的报告厅可以坐1098人,但是上编程入门课 CS61A 时,还坐不下,来晚了都得站着听。
伯克利是这样培养学生吗?我把疑惑发在社交媒体上面,网友的回复比我想象的还糟。网友说,现在很多都是在线课程,老师事先录好,一千多人看视频上课,光是 TA(学生助教)可能就有四五十个。
我在网上一查,似乎找到了原因。伯克利是公立大学,十年前的2011届,计算机系只有300多个毕业生。后来由于拨款减少,教学经费越来越紧张,不得不多招学生,尤其是学费很贵的国际学生。这才导致了十年间,学生规模膨胀了三倍。
到了今年,它还要扩招,连法官都看不下去了,命令[10]全校缩招5100个学生。不过,州长最后没同意[11],如果真要缩招,学校财政会出问题。
我还看到了一位伯克利计算机系老师的公开信[12]。他公开说,计算机系学生太多、学校给的经费太少,人员不足,处于崩溃边缘。(the department is still in danger of shattering just due to demand.)他对现状感到绝望,宣布辞职,并且在可预见的未来,不愿意再次在伯克利任教。
真是令人感叹,一个名校怎么会变成这种样子,美国公立大学的教育质量真的是下滑得厉害。
作为比较,清华大学信息学院的本科生规模,维基百科[13]说是2600多人,那么一届也就650人左右,而教工有500多人。我觉得,一个计算机系的师资和教学资源,如果数量上没有超过清华,就不应该招更多的本科生了。欢迎大家说说,你所知道的大学信息学院的学生规模。

研发协同工具 Apipost

周刊一直以来,都在推广国产软件和开源软件,向大家介绍好用的工具。今天的主角就是一款国产的研发协同工具 Apipost[14]
互联网软件现在主要采用 REST 模式(后端提供数据接口,前端消费接口),优点是前后端分离,可以各自独立开发,缺点是项目越大,前后端协同越困难。
Apipost[15] 的定位就是,基于协作的 API 研发协同工具,为开发者提供不止于 API 文档、调试、Mock 等大量功能。你可以把它看成 Postman + Swagger + Mock 的集成体。
它在 Postman 的基础上,加强团队协作和项目管理。团队的所有角色,都可以使用这个工具进行协同。
后端程序员:上线接口以后,来这里构造 URL 进行调试;也可以先提供接口参数,让 Apipost 生成 Mock 数据,供前端提前调用接口。前端程序员:根据后端给出的接口、文档和 Mock 数据进行开发;还可以使用代码生成功能,自动生成常用语言的接口请求代码。测试人员:使用 Apipost 的接口自动测试。产品经理:查看接口开发进度,掌握项目进展。
最新的6.0版提供了一些强大的特色功能。
(1)一键快速生成文档。 接口文档的撰写非常麻烦,很多属于重复工作,效率低下。接口参数填写完毕后,只要在 Apipost 按下“分享文档”按钮(下图),就会一键自动生成漂亮、规范的文档,并且可以自定义分享有效期及权限。
(2)团队成员间可实时协作。 针对团队成员间协作不同步,数据保存有冲突,无法追溯变更记录的情况,多人在线协作时,Apipost 支持数据实时同步,有冲突解决机制,并且可以追溯协作日志。
(3)客户端支持不登录使用。 用户处于局域网环境时(或者公司对网络限制严格),Apipost 客户端支持不登录使用。
(4)客户端支持离线脱机使用。 即使在拔掉网线的情况下,仍可以正常打开 Apipost 客户端的进行大部分操作。
(5)参数库描述。 很多接口往往具有大量相同名称、相同意义的参数,每次手动重复录入,非常耗时、低效。Apipost 通过自定义参数描述库,可以将大量参数进行预注释,并在输入参数时支持自动填充描述,节省了我们不少重复录入参数描述的时间。
Apipost 现提供跨平台的客户端[16]和 Web 版[17]所有功能都免费使用,新建项目和接口不限数量。只有商业项目的团队超过15人,或者需要私有部署时,才会收费。
欢迎大家试用[18],相信肯定会提高你的接口开发效率。进一步了解,可以访问他们的问答社区[19],也可以加入微信群[20]

科技动态

1、会开枪的机器狗[21]
美国最近举行的一次陆军武器展览会上,出现了具有射击能力的机器狗。它配备了30倍光学变焦的热像仪,一旦发现红外线发热物体,可以1,200米以外射击。
它是波士顿动力公司公开发售的机器狗,再配上一把自动瞄准的无人步枪。
可以预料,只要机器狗之类的智能行驶装置出现,就一定会有人为它装上武器。而且,这类无人武器将在未来的战场得到大量应用,未来的战争很可能都是无人机、无人战车、机器狗、机器士兵之类的装置在打。
2、指纹破解[22]
很多手机都使用指纹认证,美国的一个安全团队展示了快速破解技术。他们可以提取出租车门、iPhone 屏幕、酒杯等处留下的指纹,甚至还可以从高分辨率照片上提取指纹。
拿到指纹后,先在 PhotoShop 里面生成图片。
接着,使用激光打印机将其打印到纤维纸上,打印机的碳粉会在纸上形成指纹的 3D 结构。
最后,将这些碳粉原样粘在树脂胶水上面,就可以还原他人的指纹了。
经过测试,这种方法的成功率非常高,能通过大多数设备的指纹认证,而且实施成本很低,只要5美元。
3、公路拉链[23]
高速公路一般是左右各三个或四个车道,有时两边会不平衡,一边很堵,一边很空。为了解决这个问题,一家美国公司发明了“公路拉链”技术,可以动态调整车道。
这家公司使用特殊车辆,可以根据车流情况,自动收起和布置车道之间的隔离块,比如将四车道从“二上二下”变成“三上一下”。旧金山的金门大桥已经将它投入日常使用了。此外,它还可以快速布置路障。
4、人造闪电[24]
闪电对人类至关重要。没有闪电,植物就会因为缺少氮肥而无法生长。
因为闪电可以使空气发生电离,将氮分子裂解成氮离子,再与氧结合形成二氧化氮,溶解于水中形成硝酸,最终在土壤里面变成硝酸盐,为植物施肥。
一家美国的创业公司,发明了一种容器,可以生成人工闪电,将氮气变成硝酸盐。它使用太阳能,因此很省电,可以部署在农田旁边,方便农民就近施肥。美国政府已经决定推广这项技术。

文章

1、浅谈不规范使用汉字[25](中文)
国家新闻出版署最近开展了“不规范使用汉字问题专项整治工作”[26]。本文给出了实例解释,什么叫做不规范使用汉字(比如上图)。
本文使用大量图片,介绍石油钻井平台如何架设在大陆架上。中国最深的钻井平台,距海底有3000多米,这是怎么做到的。
3、芯片工厂是怎么建设的[27](英文)
《纽约时报》的长篇图文报道,通过英特尔公司在亚利桑那州的新工厂,介绍建设一个芯片工厂为什么耗资巨大。
4、Telegram 如何绕过谷歌翻译的 API[28](英文)
外部软件调用谷歌翻译需要付费,但是 Telegram 没有付费就在使用它。Telegram 是开源的,有人就去看了代码,它是怎么做的,很有意思。
5、找出泄漏的 JavaScript 全局变量[29](英文)
本文给出了一种方法,可以用脚本自动列出所有泄露到全局的 JavaScript 变量。
6、HTTP 协议的 QUERY 方法提案[30](英文)
HTTP 的 GET 方法没有数据体,查询参数必须放在 URL。如果参数太多,URL 就非常混乱。这个提案建议增加一个 QUERY 方法,跟 GET 的唯一区别就是查询参数都写在数据体里面。
7、POST 和 PUT 方法有什么区别?[31](英文)
有的文档说,HTTP 协议的 PUT 方法用于新建资源,POST 方法用于修改资源;另一些文档说,应该反过来做。其实这两种说法都不完全对。
8、Linux 信号知识[32](英文)
本文是一篇科普文章,介绍什么是 Linux 信号,以及它的基本用法。(@lyhellcat[33] 投稿)

工具

1、Lexical[34]
脸书开源了最新的文本编辑器,目前脸书和 Instagram 官网用的都是它。它替代了脸书原来的 Draftjs,跟 Prosemirror 相比,更轻量、可配置性更高,缺点是文档目前不全。
2、Orion 浏览器[35]
一种基于 Webkit 的新浏览器,只能用于 MacOS 和 iOS,但是能安装 Chrome 的插件,目前还是测试版。据说体验非常好,胜过 Safari。
3、密码生成器[36]
一个在线的随机密码生成器。
4、Portmaster[37]
一个跨平台的桌面软件,可以监控本机的所有网络通信。
5、东京地铁实时 3D 地图[38]
这是一个 3D 地图,实时显示每一部地铁列车的位置。它的源码看这里[39]
6、SQLite Online IDE[40]
一个数据库在线管理工具,通过上传或在线连接,在网页上进行数据库管理和查询,支持 SQLite、MySQL、PostgreSQL 等数据库。
7、puml-for-markdown[41]
这个命令行工具可以将 Markdown 文档里面的 PUML 脚本,转为图片文件,再把图片链接插回 Markdown 文档。
8、HubFS[42]
这个工具支持把 Git 仓库挂载到文件系统,然后就能像常规目录那样访问该仓库,包括读取各个分支和历史提交。它同时支持 Windows、Mac 和 Linux。
9、cz-git[43]
一款可以定制 Git 提交信息的工具。(@Zhengqbbb[44] 投稿)

活动

1、抖音背后的音视频技术[45]
抖音作为短视频王者,如何处理音视频?面对超大规模并发,如何满足清晰、流畅、实时的核心要求,让用户即便在弱网环境、低端设备上,也能有满意的观看效果?
下周六(4月23日)抖音工程师跟大家见面,讲讲抖音的技术实现。这是字节跳动官方主办,面向社区同学的技术沙龙。机会难得,现在已经可以报名。还有抽奖环节,赠送字节纪念品。

资源

1、OEC.world[46]
这个网站可以查询每个国家或地区的贸易数据,并用图文进行通俗解释。
2、Monorepo[47]
Monorepo 指的是多个相关项目放在同一个代码仓库里面。这个网站介绍了 Monorepo 的相关知识和工具。
3、Linux 系统管理入门[48]
长篇的学习笔记,介绍 Linux 系统管理入门操作。
4、Try Clojure[49]
Clojure 语言入门教程,提供了一个网页执行环境。你跟着提示,动手在网页输入代码,边做边学。

图片

1、亚马逊的球形温室[50]
亚马逊公司的西雅图总部园区内,有三个巨大的球形温室,高达三四层楼(24米到29米),作为员工休息室和办公区。
温室里面有各种热带植物,还设置了会议室和零售商店,每个球体可容纳800人,主要供员工使用,每周固定时间免费开放给公众参观。
球形温室于2015年正式动工。2018年1月29日落成,总共耗资40亿美元。

文摘

1、谷歌地图的卫星模式名称[51]
2005年2月份,我们推出了谷歌地图。到了夏天,我们加入了卫星图像功能,取名为“卫星图层”,只要通过高层的审核,就可以发布了。
这时,团队内部发生了一场令人啼笑皆非的争论。有人发现这些卫星照片,很多不是卫星拍摄的,而是在飞机上拍摄的,所以“卫星图层”不是正确的名称,他建议改为“航空摄影图层”。
一些工程师不同意修改,谁会在乎呢,到底是从哪里拍摄的?而且,“航空摄影图层”作为一个名字,也太长了。另一些工程师认为不能撒谎,必须使用正确的名字。
双方不能说服对方。发布审查会之前,我们无法解决分歧,带着一个未命名的功能,进入了会议室。
就像大家能预料的,每一位谷歌高管都开始兴致勃勃地讨论,应该使用哪个名字,有些人还提出了其它名字。谷歌创始人拉里和谢尔盖都很喜欢讨论疯狂的想法。
最后,谢尔盖拍板:“我们叫它‘鸟儿模式’。”
我马上想发言,但是谢尔盖已经宣布散会了。
我目瞪口呆,该功能刚才正式命名为“鸟儿模式”,实在太疯狂了。
接下来的几天,工程师都吓坏了。大家知道这个功能非常重要,可是“鸟儿模式”这个名字,让卫星派与航空摄影派都感到很糟糕,但它是老板决定的。
我们该怎么办?
最后,大家决定不用“鸟儿模式”,就用“卫星”这个词,反正我们编写代码,有控制权。事实证明,几乎没有高管注意到或记得这个变化。
从那以后,谷歌地图就一直使用“卫星图层”作为名字,但是照片大部分都不是卫星拍的。

言论

1、
当我们宣传保护生物多样性的时候,常常被问起,少了一个物种会怎么样?
对于这个问题,有一个精妙的比喻,中国有那么多汉字,少了一个汉字会怎么样?
-- 周浙昆[52],植物学家
2、
初学者经常听到两件事,“八周可以学会编程”以及“你需要一个四年制的计算机学位”。实际上,普通人自学编程,并找到一份 IT 工作,所需的教育时间在这两个时间之间。
如果你每天能够花几个小时学习编程,合理的估计是坚持6个月到2年之后,你可以找到第一份入门级工作!当然,在此之后,你还是需要坚持不断学习。
-- 《如何成为一名程序员》[53]
3、
对于大多数人来说,桌面计算机就等于 Mac 或 Windows 环境。如果我们用安卓系统开发桌面环境,正确的做法不是为安卓系统加一个桌面,而是应该让它能够与 Mac 和 Windows 连通,能够通过虚拟机执行前两者的应用程序。
-- Hacker News 读者[54]
4、
如果一家公司说可以在15分钟内送货上门,这意味着,他们的出货地点需要设在社区里面,这肯定会干扰当地居民的生活。
-- 阿姆斯特丹副市长[55],该市最近禁止了15分钟内的快送服务
5、
作为软件工程师,我觉得自己得了“冒名顶替综合症”,就是你觉得你没有资格做你的工作,好像整天在假装,不被周围人看出来。
-- 《拥抱冒名顶替综合症》[56]

历史上的本周

2021年(第 152 期):从北大到技校
2020年(第 100 期):零利率时代
2019年(第 49 期):学会有所不为

References

[1]
 ruanyf/weekly: 
https://github.com/ruanyf/weekly
[2]
 《谁在招人?》: 
https://github.com/ruanyf/weekly/issues/2309
[3]
 via: 
https://www.worldnaturephotographyawards.com/winners-2021
[4]
 一条新闻: 
https://ein.org.uk/blog/what-you-need-know-about-new-high-potential-individual-visa-route
[5]
 北京: 
https://www.jiaoyuzixun.net/beijing/news/show/12799
[6]
 上海: 
https://www.sohu.com/a/420297954_124714
[7]
 计算机领域: 
https://www.sohu.com/a/307134208_99979179
[8]
 计算机系: 
https://eecs.berkeley.edu/about/by-the-numbers
[9]
 网上找到: 
https://www.bradford-delong.com/2017/09/highlighted-for-september-18-2017-largest-classes-at-berkeley.html
[10]
 命令: 
https://www.sohu.com/a/522972127_99975769
[11]
 没同意: 
https://www.sohu.com/a/530962170_543744
[12]
 公开信: 
https://www.dailycal.org/2022/04/08/a-personal-view-of-uc-berkeleys-eecs-crisis/
[13]
 维基百科: 
https://zh.wikipedia.org/wiki/%E6%B8%85%E5%8D%8E%E5%A4%A7%E5%AD%A6%E4%BF%A1%E6%81%AF%E7%A7%91%E5%AD%A6%E6%8A%80%E6%9C%AF%E5%AD%A6%E9%99%A2
[14]
 Apipost: 
https://www.apipost.cn/?utm_source=10031
[15]
 Apipost: 
https://www.apipost.cn/?utm_source=10031
[16]
 客户端: 
https://www.apipost.cn/download.html?utm_source=10031
[17]
 Web 版: 
https://console.apipost.cn/register?utm_source=10031
[18]
 试用: 
https://www.apipost.cn/?utm_source=10031
[19]
 问答社区: 
https://qa.apipost.cn/?utm_source=10031
[20]
 加入微信群: 
https://wiki.apipost.cn/document/00091641-1e36-490d-9caf-3e47cd38bcde/063ef304-6a5d-45b5-b909-cce5e573e640
[21]
 会开枪的机器狗: 
https://www.theverge.com/2021/10/14/22726111/robot-dogs-with-guns-sword-international-ghost-robotics
[22]
 指纹破解: 
https://blog.kraken.com/post/11905/your-fingerprint-can-be-hacked-for-5-heres-how/
[23]
 公路拉链: 
https://www.lindsay.com/usca/en/infrastructure/brands/road-zipper/
[24]
 人造闪电: 
https://arpa-e.energy.gov/news-and-media/blog-posts/playing-zeus
[25]
 浅谈不规范使用汉字: 
http://www.lindapatent.com/cn/info/insights_trademark/2022/0130/1436.html
[26]
 “不规范使用汉字问题专项整治工作”: 
http://www.xinhuanet.com/culture/20220406/6915ee61fa744817b2df6abb039d3ce8/c.html
[27]
 芯片工厂是怎么建设的: 
https://www.nytimes.com/2022/04/08/technology/intel-chip-shortage.html
[28]
 Telegram 如何绕过谷歌翻译的 API: 
https://danpetrov.xyz/programming/2021/12/30/telegram-google-translate.html
[29]
 找出泄漏的 JavaScript 全局变量: 
https://mmazzarolo.com/blog/2022-02-14-find-what-javascript-variables-are-leaking-into-the-global-scope/
[30]
 HTTP 协议的 QUERY 方法提案: 
https://www.ietf.org/archive/id/draft-ietf-httpbis-safe-method-w-body-02.html
[31]
 POST 和 PUT 方法有什么区别?: 
https://stackoverflow.com/questions/630453/what-is-the-difference-between-post-and-put-in-http
[32]
 Linux 信号知识: 
https://devopedia.org/linux-signals
[33]
 @lyhellcat: 
https://github.com/ruanyf/weekly/issues/2329
[34]
 Lexical: 
https://lexical.dev/
[35]
 Orion 浏览器: 
https://browser.kagi.com/
[36]
 密码生成器: 
http://www.icosaedro.it/PasswordGenerator.htm
[37]
 Portmaster: 
https://safing.io/portmaster/
[38]
 东京地铁实时 3D 地图: 
https://minitokyo3d.com/
[39]
 这里: 
https://github.com/nagix/mini-tokyo-3d
[40]
 SQLite Online IDE: 
https://sqliteonline.com/
[41]
 puml-for-markdown: 
https://github.com/danielyaa5/puml-for-markdown
[42]
 HubFS: 
https://github.com/winfsp/hubfs
[43]
 cz-git: 
https://cz-git.qbenben.com/zh/
[44]
 @Zhengqbbb: 
https://github.com/ruanyf/weekly/issues/2326
[45]
 抖音背后的音视频技术: 
https://www.bagevent.com/event/8134656?bag_track=1
[46]
 OEC.world: 
https://oec.world/en
[47]
 Monorepo: 
https://monorepo.tools/
[48]
 Linux 系统管理入门: 
https://abarrak.gitbook.io/linux-sysops-handbook
[49]
 Try Clojure: 
https://tryclojure.org/
[50]
 亚马逊的球形温室: 
https://www.sohu.com/a/220142155_117195
[51]
 谷歌地图的卫星模式名称: 
https://threadreaderapp.com/thread/1099370126678253569.html
[52]
 周浙昆: 
https://blog.sciencenet.cn/blog-52727-913389.html
[53]
 《如何成为一名程序员》: 
https://qvault.io/method/
[54]
 Hacker News 读者: 
https://news.ycombinator.com/item?id=30330120
[55]
 阿姆斯特丹副市长: 
https://www.vice.com/en/article/m7v59a/dutch-cities-ban-15-minute-delivery-services
[56]
 《拥抱冒名顶替综合症》: 
https://www.justindfuller.com/2022/02/embracing-impostor-syndrome/
继续阅读
阅读原文