这里记录每周值得分享的科技内容,周五发布。
本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。
周刊讨论区的帖子《谁在招人?》,提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。
封面图
2021年世界自然摄影大赛,有一张神奇的得奖照片。一队蚂蚁过水塘,其中一只趴在水面上作为桥梁,让其他蚂蚁踩在自己身上过河。(via)
本周话题:英国的名校签证,伯克利的计算机教育
(一)
上周,我看到一条新闻,英国即将出台"名校签证"。世界顶尖大学的应届本科生,可以直接申请该签证,到英国找工作。
英国政府对"世界顶尖大学"的定义是,该大学在以下三个高校排行榜里面,至少有两个排名前50位。
- 泰晤士高等教育世界大学排名,
- QS 世界大学排名
- 世界大学学术排名
目前还不知道,这种签证是否有国别限制,因为北大、清华、香港大学、香港中文大学都符合条件。如果真的对中国人开放,以后北大清华的本科生就可以选择,直接去国外就业了。
我第一个感觉是,名校的价值在这里体现出来了。相比普通大学, 名校最大的价值,不在于教育质量,而在于能为学生提供更多的机会。 北大清华的毕业生,未必强于其他学校,但一定拥有比其他学校更多的机会。
去年,北京和上海都出台了政策,部分985高校的本科毕业生可以直接落户这两个城市。英国的"名校签证"简直就是这个政策的国际版。
我的第二个感想是,就业的选择越来越广,以后的学生可以在全世界范围找工作。这意味着,学生应该用世界眼光看待问题,思考人生道路。
英国是老牌的资本主义发达国家,连它都在全世界抢人才,愿意给工作签证。那些不如它的国家,签证就更不成问题了,就看你愿不愿意去了。
(二)
查看世界大学排行榜的时候,我无意中点进了加州大学伯克利分校的官网。
伯克利是一所非常有名的大学,单单在计算机领域,就涌现了众多的发明(比如 Unix BSD 系统)和杰出人物。
但是,我在计算机系(全名为电气工程与计算机科学系,Electrical Engineering and Computer Sciences)的网页上,看到了一个难以想象的数字:去年的2021届,伯克利应届计算机系本科毕业生有1300多人!
一个系一年有1300多个毕业生,这也太多了吧。怎么培养呢?
小班课就算40个人一个班,那也要几十个班,系里需要多少老师啊。大班课在阶梯教室上课,最多坐200个人,再多就只能去礼堂上课了。大家都知道,班级规模越大,教学效果越差。
上图是网上找到的图片,伯克利最大的报告厅可以坐1098人,但是上编程入门课 CS61A 时,还坐不下,来晚了都得站着听。
伯克利是这样培养学生吗?我把疑惑发在社交媒体上面,网友的回复比我想象的还糟。网友说,现在很多都是在线课程,老师事先录好,一千多人看视频上课,光是 TA(学生助教)可能就有四五十个。
我在网上一查,似乎找到了原因。伯克利是公立大学,十年前的2011届,计算机系只有300多个毕业生。后来由于拨款减少,教学经费越来越紧张,不得不多招学生,尤其是学费很贵的国际学生。这才导致了十年间,学生规模膨胀了三倍。
到了今年,它还要扩招,连法官都看不下去了,命令全校缩招5100个学生。不过,州长最后没同意,如果真要缩招,学校财政会出问题。
我还看到了一位伯克利计算机系老师的公开信。他公开说,计算机系学生太多、学校给的经费太少,人员不足,处于崩溃边缘。(the department is still in danger of shattering just due to demand.)他对现状感到绝望,宣布辞职,并且在可预见的未来,不愿意再次在伯克利任教。
真是令人感叹,一个名校怎么会变成这种样子,美国公立大学的教育质量真的是下滑得厉害。
作为比较,清华大学信息学院的本科生规模,维基百科说是2600多人,那么一届也就650人左右,而教工有500多人。我觉得,一个计算机系的师资和教学资源,如果数量上没有超过清华,就不应该招更多的本科生了。欢迎大家说说,你所知道的大学信息学院的学生规模。
研发协同工具 Apipost
周刊一直以来,都在推广国产软件和开源软件,向大家介绍好用的工具。今天的主角就是一款国产的研发协同工具 Apipost。
互联网软件现在主要采用 REST 模式(后端提供数据接口,前端消费接口),优点是前后端分离,可以各自独立开发,缺点是项目越大,前后端协同越困难。
Apipost 的定位就是,基于协作的 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 现提供跨平台的客户端和 Web 版。所有功能都免费使用,新建项目和接口不限数量。只有商业项目的团队超过15人,或者需要私有部署时,才会收费。
欢迎大家试用,相信肯定会提高你的接口开发效率。进一步了解,可以访问他们的问答社区,也可以加入微信群。
科技动态
1、会开枪的机器狗
美国最近举行的一次陆军武器展览会上,出现了具有射击能力的机器狗。它配备了30倍光学变焦的热像仪,一旦发现红外线发热物体,可以1,200米以外射击。
它是波士顿动力公司公开发售的机器狗,再配上一把自动瞄准的无人步枪。
可以预料,只要机器狗之类的智能行驶装置出现,就一定会有人为它装上武器。而且,这类无人武器将在未来的战场得到大量应用,未来的战争很可能都是无人机、无人战车、机器狗、机器士兵之类的装置在打。
2、指纹破解
很多手机都使用指纹认证,美国的一个安全团队展示了快速破解技术。他们可以提取出租车门、iPhone 屏幕、酒杯等处留下的指纹,甚至还可以从高分辨率照片上提取指纹。
拿到指纹后,先在 PhotoShop 里面生成图片。
接着,使用激光打印机将其打印到纤维纸上,打印机的碳粉会在纸上形成指纹的 3D 结构。
最后,将这些碳粉原样粘在树脂胶水上面,就可以还原他人的指纹了。
经过测试,这种方法的成功率非常高,能通过大多数设备的指纹认证,而且实施成本很低,只要5美元。
3、公路拉链
高速公路一般是左右各三个或四个车道,有时两边会不平衡,一边很堵,一边很空。为了解决这个问题,一家美国公司发明了"公路拉链"技术,可以动态调整车道。
这家公司使用特殊车辆,可以根据车流情况,自动收起和布置车道之间的隔离块,比如将四车道从"二上二下"变成"三上一下"。旧金山的金门大桥已经将它投入日常使用了。此外,它还可以快速布置路障。
4、人造闪电
闪电对人类至关重要。没有闪电,植物就会因为缺少氮肥而无法生长。
因为闪电可以使空气发生电离,将氮分子裂解成氮离子,再与氧结合形成二氧化氮,溶解于水中形成硝酸,最终在土壤里面变成硝酸盐,为植物施肥。
一家美国的创业公司,发明了一种容器,可以生成人工闪电,将氮气变成硝酸盐。它使用太阳能,因此很省电,可以部署在农田旁边,方便农民就近施肥。美国政府已经决定推广这项技术。
文章
1、浅谈不规范使用汉字(中文)
国家新闻出版署最近开展了"不规范使用汉字问题专项整治工作"。本文给出了实例解释,什么叫做不规范使用汉字(比如上图)。
2、如何架设一个石油钻井平台(中文)
本文使用大量图片,介绍石油钻井平台如何架设在大陆架上。中国最深的钻井平台,距海底有3000多米,这是怎么做到的。
3、芯片工厂是怎么建设的(英文)
《纽约时报》的长篇图文报道,通过英特尔公司在亚利桑那州的新工厂,介绍建设一个芯片工厂为什么耗资巨大。
4、Telegram 如何绕过谷歌翻译的 API(英文)
外部软件调用谷歌翻译需要付费,但是 Telegram 没有付费就在使用它。Telegram 是开源的,有人就去看了代码,它是怎么做的,很有意思。
5、找出泄漏的 JavaScript 全局变量(英文)
本文给出了一种方法,可以用脚本自动列出所有泄露到全局的 JavaScript 变量。
6、HTTP 协议的 QUERY 方法提案(英文)
HTTP 的 GET 方法没有数据体,查询参数必须放在 URL。如果参数太多,URL 就非常混乱。这个提案建议增加一个 QUERY 方法,跟 GET 的唯一区别就是查询参数都写在数据体里面。
7、POST 和 PUT 方法有什么区别?(英文)
有的文档说,HTTP 协议的 PUT 方法用于新建资源,POST 方法用于修改资源;另一些文档说,应该反过来做。其实这两种说法都不完全对。
8、Linux 信号知识(英文)
本文是一篇科普文章,介绍什么是 Linux 信号,以及它的基本用法。(@lyhellcat 投稿)
工具
1、Lexical
脸书开源了最新的文本编辑器,目前脸书和 Instagram 官网用的都是它。它替代了脸书原来的 Draftjs,跟 Prosemirror 相比,更轻量、可配置性更高,缺点是文档目前不全。
一种基于 Webkit 的新浏览器,只能用于 MacOS 和 iOS,但是能安装 Chrome 的插件,目前还是测试版。据说体验非常好,胜过 Safari。
3、密码生成器
一个在线的随机密码生成器。
一个跨平台的桌面软件,可以监控本机的所有网络通信。
这是一个 3D 地图,实时显示每一部地铁列车的位置。它的源码看这里。
一个数据库在线管理工具,通过上传或在线连接,在网页上进行数据库管理和查询,支持 SQLite、MySQL、PostgreSQL 等数据库。
这个命令行工具可以将 Markdown 文档里面的 PUML 脚本,转为图片文件,再把图片链接插回 Markdown 文档。
8、HubFS
这个工具支持把 Git 仓库挂载到文件系统,然后就能像常规目录那样访问该仓库,包括读取各个分支和历史提交。它同时支持 Windows、Mac 和 Linux。
9、cz-git
一款可以定制 Git 提交信息的工具。(@Zhengqbbb 投稿)
活动
抖音作为短视频王者,如何处理音视频?面对超大规模并发,如何满足清晰、流畅、实时的核心要求,让用户即便在弱网环境、低端设备上,也能有满意的观看效果?
下周六(4月23日)抖音工程师跟大家见面,讲讲抖音的技术实现。这是字节跳动官方主办,面向社区同学的技术沙龙。机会难得,现在已经可以报名。还有抽奖环节,赠送字节纪念品。
资源
这个网站可以查询每个国家或地区的贸易数据,并用图文进行通俗解释。
2、Monorepo
Monorepo 指的是多个相关项目放在同一个代码仓库里面。这个网站介绍了 Monorepo 的相关知识和工具。
长篇的学习笔记,介绍 Linux 系统管理入门操作。
Clojure 语言入门教程,提供了一个网页执行环境。你跟着提示,动手在网页输入代码,边做边学。
图片
1、亚马逊的球形温室
亚马逊公司的西雅图总部园区内,有三个巨大的球形温室,高达三四层楼(24米到29米),作为员工休息室和办公区。
温室里面有各种热带植物,还设置了会议室和零售商店,每个球体可容纳800人,主要供员工使用,每周固定时间免费开放给公众参观。
球形温室于2015年正式动工。2018年1月29日落成,总共耗资40亿美元。
文摘
2005年2月份,我们推出了谷歌地图。到了夏天,我们加入了卫星图像功能,取名为"卫星图层",只要通过高层的审核,就可以发布了。
这时,团队内部发生了一场令人啼笑皆非的争论。有人发现这些卫星照片,很多不是卫星拍摄的,而是在飞机上拍摄的,所以"卫星图层"不是正确的名称,他建议改为"航空摄影图层"。
一些工程师不同意修改,谁会在乎呢,到底是从哪里拍摄的?而且,"航空摄影图层"作为一个名字,也太长了。另一些工程师认为不能撒谎,必须使用正确的名字。
双方不能说服对方。发布审查会之前,我们无法解决分歧,带着一个未命名的功能,进入了会议室。
就像大家能预料的,每一位谷歌高管都开始兴致勃勃地讨论,应该使用哪个名字,有些人还提出了其它名字。谷歌创始人拉里和谢尔盖都很喜欢讨论疯狂的想法。
最后,谢尔盖拍板:"我们叫它'鸟儿模式'。"
我马上想发言,但是谢尔盖已经宣布散会了。
我目瞪口呆,该功能刚才正式命名为"鸟儿模式",实在太疯狂了。
接下来的几天,工程师都吓坏了。大家知道这个功能非常重要,可是"鸟儿模式"这个名字,让卫星派与航空摄影派都感到很糟糕,但它是老板决定的。
我们该怎么办?
最后,大家决定不用"鸟儿模式",就用"卫星"这个词,反正我们编写代码,有控制权。事实证明,几乎没有高管注意到或记得这个变化。
从那以后,谷歌地图就一直使用"卫星图层"作为名字,但是照片大部分都不是卫星拍的。
言论
1、
当我们宣传保护生物多样性的时候,常常被问起,少了一个物种会怎么样?
对于这个问题,有一个精妙的比喻,中国有那么多汉字,少了一个汉字会怎么样?
-- 周浙昆,植物学家
2、
初学者经常听到两件事,"八周可以学会编程"以及"你需要一个四年制的计算机学位"。实际上,普通人自学编程,并找到一份 IT 工作,所需的教育时间在这两个时间之间。
如果你每天能够花几个小时学习编程,合理的估计是坚持6个月到2年之后,你可以找到第一份入门级工作!当然,在此之后,你还是需要坚持不断学习。
-- 《如何成为一名程序员》
3、
对于大多数人来说,桌面计算机就等于 Mac 或 Windows 环境。如果我们用安卓系统开发桌面环境,正确的做法不是为安卓系统加一个桌面,而是应该让它能够与 Mac 和 Windows 连通,能够通过虚拟机执行前两者的应用程序。
4、
如果一家公司说可以在15分钟内送货上门,这意味着,他们的出货地点需要设在社区里面,这肯定会干扰当地居民的生活。
-- 阿姆斯特丹副市长,该市最近禁止了15分钟内的快送服务
5、
作为软件工程师,我觉得自己得了"冒名顶替综合症",就是你觉得你没有资格做你的工作,好像整天在假装,不被周围人看出来。
-- 《拥抱冒名顶替综合症》
历史上的本周
2021年(第 152 期):从北大到技校
2020年(第 100 期):零利率时代
2019年(第 49 期):学会有所不为
订阅
这个周刊每周五发布,同步更新在阮一峰的网络日志和微信公众号。
微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。
(完)