混沌周刊 #24 | 基于Electron的世界

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


由于iPhone在美国年轻人里的高占有率,许多人习惯用iMessage和身边人聊天。而iMessage并不是一个独立的应用,而是和短信融为一体:如果接受消息的人用的不是iPhone,那么消息就会作为SMS短信发出,并显示为一个绿色气泡;如果对方也使用iPhone并且开启了iMessage Gynt,消息气泡的背景就是蓝色。而一些人表示,这给身边使用Android手机的朋友带来了明显压力。法庭展示的苹果高管邮件记录也表明,他们认为在Android上开发iMessage对苹果「弊大于利」。这也难怪每年苹果发布新系统时,都要花相当一部分时间介绍iMessage的新功能。当然,从Reddit上的讨论看来,这种流行基本只存在于美国。

如果你用过主机模拟器在PC上玩游戏,你是否有好奇过,这些模拟器软件的存在是否侵犯了主机开发商的权利?实际上,像索尼这样的主机开发商的确也曾认为这是个大问题,并花费了大量的时间和人力向这些软件开发者发起诉讼。在长时间的斗争中,合法和非法的分界线逐渐清晰。这个视频Bilibili字幕版链接)介绍了早年索尼和PlayStation模拟器明争暗斗的历史。

可能每个程序员在入门时都或多或少学过点C语言,并在接触其他语言(如Java、Python)后难免抱怨为什么C语言没有很多特性,甚至没有原生的字符串类型。抛却一些设计上值得商榷之处(如字符串以ASCII '\0'字符结尾,而不是类似Pascal在首字符前记录长度),熟悉一点机器指令后就不难明白,C语言的本质就是可移植的高级汇编。所以你可以把其他语言编译到C,然后利用各个平台的C编译器生成可执行文件。然后有人觉得,如果要把C也当作一种汇编,那么其特性还是多了些,不妨再砍砍,然后有了C–,一个作为代码生成目标的精简语言。

对想学习iOS开发的朋友,已经发布三个年头的SwiftUI基本成为逃不开的选项。而即使你对iOS开发没有兴趣,了解SwiftUI也足以拓宽视野,尤其是一个语言是如何利用类型系统实现对视图的「约束」的。这里是一个写给前端开发者(尤其是React开发者)的SwiftUI观察。此前苹果承诺过,并不会强制iOS 14用户升级至iOS 15,前者用户依然能收到必要的安全更新。2022年看来,他们食言了。对用户未必;但对开发者,这是好事。

不要一上新项目就使用微服务。Netflix、Twitter、Google,他们的故事很美好,但扪心自问一下,你有他们的基础设施和团队吗?他们使用微服务解决的问题在你的项目里存在吗?在小团队这里,也许DHH提出的「城堡架构」(中文翻译)是更合适的选择。

你可能用过yes这个命令,即使没用过,花五秒钟敲三个字母并回车也能理解它是干什么的——在命令行无限打印y这个字母,仅此而已。作用是若干命令行程序需要用户输入y或n来确认或取消操作,而通过UNIX管道插入yes就可以让命令顺畅执行。这个程序简单到刚学会编程的人都能无压力地写出来,但GNU coreutils的实现为了让这个简单的输出达到最大效率,做了许多你想不到的优化

在写代码时离不开代码补全吗?如果把这种补全加到终端Shell里会如何呢?尝试一下Fig,为你的命令行带来编辑器风格的补全,支持iTerm、macOS Terminal.app以及Visual Studio Code的内置终端。更进一步——如果你是前端技术狂热爱好者,想不想拥抱一个用Electron写的「现代」终端呢?tabby也许你会喜欢。

CodeLauncher,在macOS上快速启动和管理多个服务的GUI小工具,类似foreman,对本地开发有用。

由于法律变更,在法国销售的iPhone以后也不再附带耳机了。

fly.io,新的PaaS服务商,让你能轻松部署自己的Web应用到它们的服务器上,支持Go、Ruby、Python、Node等语言和PostgreSQL数据库。类似Heroku,不过免费额度更大方。


本期的《混沌周刊》就到这里,下期再见。


发表评论

您的电子邮箱地址不会被公开。