混沌周刊 #30 | 信任无价

周四晚上好,欢迎来到《混沌周刊》第30期。《混沌周刊》是一个试图从开发者角度为你带来这个世界上发生着什么,发生过什么,以及未来可能会发生什么的栏目,每周更新。您可以通过首页的RSSTwitterTelegram频道和电子邮件等方式订阅。如果您觉得本周刊对自己有所帮助,请不吝推荐给其他人,多谢。

🍎 造梦引擎?

北京时间3月9日凌晨,Apple如期召开了线上发布会。自2020年的WWDC以来,这已经是Apple的第九场线上特别活动。预期内的下一场特别活动应该是今年6月的WWDC 2022,大概在本月下旬就会公布情况,目前猜测应该也会采用线上形式。但据一些网友分析,本次发布会的布景、转场都更加简单,也许Apple在考虑重新向线下发布会过渡了。如果今年下半年全球疫情进一步缓和,我们也将看到越来越多的这类活动重新回到线下。

这次特别活动节奏非常快,全程仅59分钟。简单概括发布的产品:

  • iPhone 13和13 Pro系列都有了新的绿色版本
  • 把A13换成A15,外观没有任何变化的iPhone SE(据报道采用了4GB内存),支持5G
  • 把A14换成M1,外观没有任何变化的iPad Air,同样也支持了5G,没有ProMotion,没有Thunderbolt
  • 新的台式Mac产品线Mac Studio,外观类似上下叠加的两台Mac mini,可选M1 Max或由两块M1 Max「拼」在一起的M1 Ultra芯片,宣传口号是「造梦引擎」
  • 和Mac Studio配套的Studio Display显示器,分辨率和扩展能力都和LG Ultrafine 5K相同,不支持Daisy Chain,塞入A13芯片、更好的摄像头和更大的扬声器,最大亮度略大于Ultrafine 5K,价格也略高于它;没有Mini LED,不支持ProMotion

截至北京时间周四晚9点,全球Mac Studio和Studio Display的评测视频已经解禁。


Apple官网的「认证的翻新产品」是很多人购买产品时会关注的地方,因为它价格比官方新品更便宜,也能保证退换货政策和保修。但这上面的商品常常是转瞬即逝,可能要等个好时机,自己想要的东西才能有货。有没有想过写一个程序来监控官网翻新产品的上架情况?其实这事已经有人做了:在refurb-tracker.com,你可以设定自己想订阅的产品类型,然后指定一种通知方式;当它有货时,网站就会告诉你。

几天前,我偶然看到一个Apple官网荷兰区的链接,点进去是一个申请下载iTunes的页面。从内容和源码可以看出,这个页面大概存在于00年代初。目前它已被撤下,不清楚它是一直在这里,还是因为开发人员要测试某个功能。我们还是可以通过WebArchive访问它:https://www.apple.com/nl/test/.

新版的Telegram iOS客户端里,长按消息出来的菜单多了「翻译」功能。这个功能和微信这样利用自己的服务器进行的翻译不同,Telegram的翻译会直接弹出系统的翻译功能窗口。但目前iOS没有提供翻译的API,他们怎么实现的呢?根据开发者的分析,Telegram的开发者是悄悄调用了iOS的私有接口——他们是如何知道的?


JetBrains公司宣布将中止在俄罗斯的所有研发和销售活动。由于JetBrains在圣彼得堡有办公室,大量员工也是俄罗斯人,我很好奇他们会如何处理这些员工的后续事宜。然后他们说 “Many of our colleagues from Russia have already moved elsewhere, and we will support them, as we will all our employees.“,公司要对员工负责,这是好的态度。

美国国会通过法案,自2023年起,美国将不再进行每年两次的夏令时/冬令时切换,而是永久采用夏令时时间。中国大陆在80-90年代短暂地实行过夏令时,很多人的父母应该还有印象。这可能会类似日本更改天皇年号,给依赖时间的程序带来bug.


使用Firefox的人有没有好奇过,为什么Firefox内部会有叫Chrome的组件?难道Firefox用了来自Chrome的代码?然而实际上,Firefox里的Chrome只是对浏览器除页面外的显示范围的称呼,是Google Chrome浏览器的命名灵感来自于此。

说及Firefox. Firefox最近发布了98.0.1版本更新,主要的更改内容是「移除了自带搜索选项里的Yandex和Mail.ru」。众所周知,它们是来自俄罗斯的搜索引擎。


如果你对类Unix系统稍熟悉一点,会知道里面有个概念叫「硬链接」,(当然Windows也有,不过相对更不那么知名)一个文件的所有硬链接会指向文件系统里的同一个文件。和更为人所知的软链接(类似快捷方式)不同的是,每个硬链接地位是相同的,只有当一个文件的每个硬链接都被删除时,这个文件才会真正地被移除掉。那么,一个目录可以有硬链接吗?大部分系统的回答都是:No. Solaris是极少数支持硬链接目录的操作系统。而不支持的原因是什么?因为这个极少有实用场景的功能会给文件系统操作带来额外的复杂度——当一个目录可以被硬链接,文件系统就变成了一个可能有环的图,而不再是树。这篇回答非常详细地探究了Linux不支持硬链接目录的原因。

浏览器的功能越来越丰富,攻击面也会越来越大。对于一些敏感的API,浏览器会限制它们仅能在「安全的上下文」中被调用。在JavaScript中,window.isSecureContext会返回Bool值说明当前页面是否处于安全上下文。这些被限制的API包括加密、定位、支付等原生App常见的功能,四大主流浏览器的处理略有不同,可参考MDN文档

foreman,一个在命令行快速启动和管理多个进程的小工具。第一版foreman由Ruby实现,而后有Go、Java、JavaScript、Rust、Python等实现的多种版本,随意选用。


前端社区大新闻。

有人发现,Vue CLI依赖的node-ipc这个包会进行一些危险行为:比如在你的电脑中生成一个WITH-LOVE-FROM-AMERICA文件;或者更进一步,如果监测到用户IP来自俄罗斯或白罗斯1,会尝试删除电脑上的所有文件。更多详情可以参考Vue CLI #7054的讨论。明显的软件供应链投毒行为。

我们当然谴责投毒者的恶劣行为。不过有没有人还想过,为什么这类开源供应链事故,多数都来自前端社区?小项目也要引入成百上千个包,不像是值得骄傲的事情。控制软件的外部依赖是一种美德。另外,让外部未经审查的脚本随意地在本机甚至服务器上运行(更何况还带sudo!)的危险程度不亚于闭着眼睛选一家店进去吃饭。时刻小心!


本期的《混沌周刊》就到这里,谢谢阅读。

1 中文里「白俄罗斯」的英文是Belarus,和「俄罗斯」的Russia明显不同。根据其驻华大使馆的声明,国家官方中文译名应该为「白罗斯」而非「白俄罗斯」。


1 comment

  • Telegram在安卓端的翻译实现是个爬虫,直接调Google Translate的网页接口,这样就不需要付费给Google调用标准翻译API,毛子向来是这种hacker风格,官方不给API就直接逆向也不奇怪(

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注