在最新的iOS 16.2测试版和iOS 16.1.1中,苹果对中国用户修改了AirDrop设置,目前接收方为「所有人」只能保持10分钟。苹果表示,这个功能在未来将会扩展至其他地区用户。
微软正式发布了.NET 7,包含了C# 11、F# 7、ASP.NET Core 7.0、EntityFramework Core 7.0和其他框架的诸多改进,Arm64架构的性能提升,IBM Power架构支持,以及脱离虚拟机AOT编译至原生代码的支持等。在微软的路线图里,.NET 7将包含18个月支持,.NET 8预计于2023年11月发布。
盗版电子书网站Z-Library的运营者在阿根廷应美国要求被逮捕,主域名也被关停。目前其部分分布式镜像依然可用。这难免令人想到上吊自杀已近10年的知识共享提倡者Aaron Swartz——他的贡献不限于Markdown、CC协议、RSS和Reddit.
马斯克真的收购(并私有化)了Twitter,然后开始了大刀阔斧的变动。他给目前的Twitter员工下了「最后通牒」1:要么接受高强度工作,要么走人。马斯克甚至自己参与了Twitter核心架构的Review.
裁员的不止Twitter. Meta(前FaceBook)也宣布要裁员11000人。亚马逊也将会裁员。甚至还有人专门做了网站layoffs.fyi来追踪各大公司裁员的情况。作为行业里的一份子,大家需要调整心态:裁员,或者反向操作,招聘,都不代表对个人能力必然的价值判断,只是一种市场行为。去年Mozilla裁员时,也有人做了一个Mozilla Lifeboats的网站。很多人并不是替被裁的员工们叹息,而是替Mozilla叹息。这些员工凭借自己的经验和能力,足以在市场上找到比Mozilla更好的岗位,留在Mozilla多少有些理想主义,然后这个理想被现实击碎了。
来自知乎:如何,用C语言,在命令行,写一个扔骰子的程序,是真的「渲染」出一个骰子。
微软正式发布了帮助开发者调试Arm版Windows应用的Arm Dev Kit 2023. 我买了一台,并做了简单的开箱(博客、Bilibili)。总的来说,它的性能还是不足以作为日常开发使用。
一篇很好的科普,讲解Unix下的模拟终端系统是如何工作的,为什么打开终端时会提示一个叫做tty的东西,2022年的电脑还能追溯到早期无屏幕的打字机?这个视频能让你对早期的电传打字机终端有更直观的认识。
本来号称不会支持Arm的VirtualBox也还是发布了面向M1/M2电脑的VirtualBox预览版。
jc,适配大多数常用Unix命令,并将输出转换为便解析的JSON格式的命令行工具。
C++之父Bjarne Stroustrup的C++概览教程《A Tour of C++》面向C++ 20和23推出了第三版。
如果你写过很多年以前的HTML,肯定记得诸如<strong>
<b>
<i>
之类没有语义,只表示样式的标签。它们当然不符合现在HTML流行的规则了,所以<i>
标签的含义也悄悄发生了一些变化。
一位美国网友晒出了他92岁的父亲(看来他年纪也不小了)在1980年的简历,在上世纪六七十年代的大型机上写汇编和Fortran该是多么奇妙的体验。
一个看起来像Outlook网页版,实际内容是Reddit的摸鱼网站。
本期的《混沌周刊》就到这里。如果对本刊感兴趣或有任何建议,欢迎在评论区里留言,以及分享给更多的朋友,谢谢!
1 这个词的英文叫Ultimatum,曾经还有过古雅的中文翻译:「哀的美敦书」。
]]>在互联网上的不同设备间同步时间,所需的协议就是NTP,几乎所有联网的电子设备都会使用它。它的维护者现在已经83岁了,面临接手维护的问题。这种问题在互联网世界并不鲜见。大量享誉世界的开源项目,实际上都只有很少的几个人在无偿维护。第21期我们聊到过Log4j和cURL维护者的问题。另一个所有设备都会用到的项目,OpenSSL,也是在「心脏流血」漏洞后才引起互联网巨头的重视的。
不是所有项目都有Linux这样幸运,商业化足够成功,创始人也足够有运气。但好在开源项目的模式给了所有人潜在的机会,不至于原作者弃坑后,项目就永远消失。为求发展,一些项目会寻求商业化,成立公司运营,但不是所有人都喜欢这样的做法。开源的自建源码托管工具Gitea,最近成立了公司,寻求扩大规模。社区有人联名反对,他们认为维护生计没错,但成立同名公司会影响商标归属,也不尊重来自社区的贡献。目前Gitea公司还没有回复。
在本刊第30期,我们提到了node-ipc这个库被恶意投毒的问题,而这件事也不是第一次发生了(必然也不会是最后一次)。因此很多人提出了一个「软件供应链」的概念,即一个软件包可能依赖其他包,同时也会被其他的软件所依赖,这构成了类似工业生产中产业链的结构。但这只是一个比喻,比喻就总有不准确的地方,这篇文章探讨了这个比喻的问题:开源软件是自由的,而且使用软件包并不是一个有严格金钱交易的商业行为。
微软被曝光泄露了2.4TB的客户数据,时间跨度从2017至今年。微软称这里面有大量数据是重复的,并没有对更多问题做出回应。
一个程序员如果长期陷在舒适区,对未知技术感到害怕,就相当于踏进了监狱。克服它的办法就是不断行动尝试,给自己创造新的挑战。
为什么Golang里的nil并不都完全相同?有时候一些nil并不等同于其他的nil.
大家对「光线追踪」这个概念应该不陌生了(参考这篇科普),不过你见过有人在Windows自带的记事本里渲染出光线追踪的立方体吗?
引用计数是编程语言管理内存的常用做法。尽管有着不能处理循环引用的缺陷,其是否属于垃圾回收的一种也有待争论,但因为实现简单,像Python、PHP等语言都把引用计数作为大部分时候的内存管理方式。这篇专栏介绍了不同语言里引用计数的实现,以及引用计数可能会遇到的数据竞争等问题。
在今年WWDC上公开的将要登陆Mac的《生化危机:村庄》游戏,终于正式在App Store上线,售价39.99美元。根据网上的一些评测,这款游戏在Mac上表现不错,Metal 3起的作用不小。在此之前,若干DirectX 12中的API在Metal 2中完全没有对应,使得Windows上许多3A游戏无法通过转译在Mac上运行。除了性能和图形API外,也许App Store和Steam等相比也不那么适合作为桌面游戏的发行平台。
Reddit上有个Subreddit叫Mac Gaming,实际上世界范围内有很多玩家在探索Mac平台上玩游戏的可能性。「谁买Mac玩游戏」听起来更像是一句搪塞——玩游戏本就是个人电脑的合理用途,只不过Mac走错了路。这个视频讲到了Mac在发展史上是如何和游戏产业失之交臂的。
说到Mac的GPU性能,这里有一篇翻译版的科普,介绍两种GPU渲染模式的区别,探讨为什么苹果M系列芯片在GPU渲染模式上的转变,造成了优化难度的上升,从而显得「高分低能」;以及为什么M1 Ultra的GPU性能不及预期,为什么TLB miss是个严重的问题。
macOS 13 Ventura、iPadOS 16正式发布,Stage Manager功能也来到了A12X/A12Z芯片的iPad Pro产品上。差不多时候,第10代iPad和第6代iPad Pro也发布了。前者换成了只有USB 2.0速度的USB-C口和全面屏设计,支持了更像Surface风格的键盘夹,摄像头移到了长边,但极为令人诟病的是它依然仅支持初代Apple Pencil(Lightning接口),还需要一个转换器已让其和设备相连;后者换成了M2芯片,外观不变,支持了Apple Pencil悬停功能。因为汇率原因,二者都涨价了。
Craig Federighi在一场活动中说「我们会遵守欧盟的决定」,暗示未来的iPhone会改用USB-C接口。但考虑到iPad的例子,就像上一期聊的一样,新的iPhone可能还是USB 2.0速度。除此之外,他还表示iMessage不太可能会登陆Android平台,还有他自己的iPad上的计算器App也是从App Store下载的。
关于为什么第10代iPad把前置摄像头换到长边,但iPad Pro未更换的问题,这个视频做了不错的分析。iPad Pro也许是因为没有更换模具,而长边的摄像头会和Pencil充电处冲突(另一条长边被保护壳包裹无法使用),Pencil放短边则会挡住麦克风、按键和充电口,因此下一代要更换摄像头位置,要么更换Pencil设计,放弃磁吸充电,要么让摄像头以挖孔的形式存留在长边,用新Safari标签页风格的「灵动群岛」表现后台状态。
知名苹果爆料人Mark Gurman透露了下一代Mac Pro、MacBook Pro和Mac mini的消息,它们会如预期般使用M2 Pro/Max处理器,目前还不清楚M2 Pro是否会登陆Mac mini机型,二者会在「数月内」发布。首款使用ARM芯片的Mac Pro也许会在2023年发布,最高也许有48个CPU核心,256G内存。如果消息属实,那还是有些令人失望的。因为三年前发布的Mac Pro具有极其强大的扩展性,最高支持1.5TB内存,并且可以自行加入新的硬盘和其他PCIe设备。如果这台预期中的Mac Pro面临和2013款相似的市场反应,那么苹果也许会迷途知返。
Surface Pro 9和Surface Laptop 5发布。虽然外观不变,但微软称这是Surface系列10周年的纪念产品。新的Surface Pro有Intel和高通芯片两个选项,后者支持5G蜂窝网络。Surface Laptop仅有Intel版本,和Surface Pro一样使用第12代Intel Core处理器,两者Intel版本都有一个Thunderbolt 4接口。
微软的ARM开发套件正式发售,国内价格4488元,企业渠道有售。使用第3代骁龙8cx芯片,32G内存,512G固态硬盘。
Typedown,一个Windows平台的所见即所得Markdown编辑器。
搜索引擎DuckDuckGo做了Mac版浏览器,加入许多反追踪功能,使用系统的WebKit作为引擎。现在已经进入公开Beta阶段。
本期的《混沌周刊》就到这里。如果对本刊感兴趣或有任何建议,欢迎在评论区里留言,以及分享给更多的朋友,谢谢!
]]>欧洲议会10月4日通过新法律,要求欧盟境内所有智能手机、数码相机等设备使用统一的充电接口,自2024年底开始。受影响最大的自然是坚持使用Lightning接口的iPhone,目前还不清楚苹果会因为这个政策做出哪些改变,比如是否会借此向iPhone加入USB 3.0(即USB 3.1 Gen1或USB 3.2 Gen1x1)甚至USB 4速度,或者只在欧洲销售带USB-C的iPhone,而在美国和中国等其他市场继续使用Lightning接口。
很多用户抱怨iPhone尤其是Pro线的新功能会产生巨大的照片和视频文件(一张4800万像素的ProRaw照片有60MB,1秒钟的4K ProRes视频几乎有100MB),而因为iPhone接口只有USB 2.0速度,将这些文件传给电脑非常麻烦,AirDrop又不太稳定。但我怀疑即使新的C口iPhone如果真的支持了更快的速度,苹果会不会再将在电脑上手动管理手机照片的功能加回来。目前,当iPhone开启了iCloud照片,连接Mac后,Finder里是没有导入手机照片的选项的。
虽然大家都知道苹果「统一接口会影响创新」的回应是在为了Lightning生态辩护,但的确有人觉得这种强制法规有问题,因为USB-C只是一种接口,包含了大量可能互不兼容的协议。这篇科普详细(但甚至都还不完整)介绍了围绕USB-C的各种协议以及常见误区。这种统一充电器的要求当然也不是第一次了,欧盟在Micro-USB时代也有过,当时国内也跟进了,所以国内销售的iPhone 5(第一代带Lightning接口的iPhone)也带一个Lightning转Micro-USB的转接头。这次新的规定大概考虑到了用转接头规避的情况。就让我们等着看看将来的iPhone 15或者iPhone 16吧。
LibreOffice在Mac App Store上架,收费是8.99美元。当然,LibreOffice作为遵循MPL许可证的自由软件,可以去官网免费下载。Mac App Store版本也没有附带Java支持,不清楚会比官网版本少多少功能。
JetBrains也开源了他们的Web UI库Ring-UI.
拼多多进入美国市场,名字叫Temu,并且暂时不会在美国上线「砍一刀」功能。
旨在于Apple Silicon Mac电脑上运行GNU/Linux的Asahi Linux项目,最近取得了重大进展:它们有了一个Linux上能运行的M1 GPU驱动。主导Linux M1 GPU驱动的Asahi Lina还是一位虚拟主播。
中文科普,当你运行 git push
这一简单的命令时,GitLab的服务端究竟发生了哪些复杂的事情?
那么, 如果上班的时候起火了,代码却没提交怎么办?还真的有人做了一个git-fire命令,让你用最快的时间保存和推送代码。当然,真实生活中遇到险情时,第一动作就是逃生,就不要想什么代码了。
在Windows 95发布时,因为内存分配器实现的改变,Windows 3上流行的《模拟城市》游戏无法正常运行了。因此Windows 95专门对《模拟城市》做了适配,如果检测到是它在运行,就使用旧的内存分配器。这种操作对于一贯坚持兼容性的Windows来说似乎并不奇怪,但其实各个平台几乎都有这种系统来适配软件的例子。同样是内存分配器,苹果开源的libmalloc也有过适配微信的行为。
我们很熟悉互联网上的短网址服务了,它们的域名往往是一到两个字符再加上两个字符的顶级域名。但互联网上还有没有更短的网址呢?当然,比如 http://ai 就是一个可以访问的页面。这篇博客讲述了作者找到这些互联网上最短网址的过程和结果。
说到域名,拼错了怎么办?当你把github.com错拼成guthib.com时,它会告诉你,你拼错了。
iOS 16原生英文输入法加入了德沃夏克 (Dvorak) 键位;此外中文输入法还加入了四川话方言选项,宣称「可以更轻松地输入四川话字词和短语」,可目前还没发现有什么明显的区别。
没有意外的话,Linux 6.1就会开始包含Rust代码了。
微软又开始改名了。此前他们宣布Office 365将更名为Microsoft 365,而如今后者继续延展到所有基于云端的Office,最终将取代整个Office品牌。
Unicode发布15.0版本,新增了一批字符和emoji,还有两个新语言。
PostgreSQL 15发布,支持了SQL的 MERGE
命令和zstd压缩。
在苹果平台流行的邮件软件Spark将会推出Windows版本。而代价是什么呢?用Electron重写,然后改成订阅制。和第10期提到过的1Password一模一样。Electron已经无人能阻挡,连历史悠久的QQ都要有Electron版本了。
你可能还没有意识到,TypeScript已经十岁了!
JetBrains的下一代编辑器Fleet现在开放测试版下载了,目前免费,完成度一般。支持的语言主要包括前端系、Go、PHP、Python,还有Rust.
本期的《混沌周刊》就到这里。如果对本刊感兴趣或有任何建议,欢迎在评论区里留言,以及分享给更多的朋友,谢谢!
]]>《编码》一书的英文第二版已经出版。如果你不熟悉作者Charles Perzold,这里介绍一下,他还是大名鼎鼎的《Windows程序设计》和《图灵的秘密》的作者,比尔盖茨亲自颁发的仅有7位Windows Pioneer之一。《Windows程序设计》第一版出版于1988年,那时候最新的Windows还是拥有「先进的窗口重叠技术」的Windows 2.0;除去面向当时的Windows 8和XAML彻底改版的第六版,之前的《Windows程序设计》是在没有Electron的「又黑暗又光明」1的年代,每个要给Windows写程序的开发者一定会看的参考书,甚至到今天还有再版。
说回《编码》这本书,其也是极为经典的计算机入门读物(副标题是「隐匿在计算机软硬件背后的语言」)。CPU是如何完成运算的?内存为什么可以保存和读写数据?浮点数是怎么回事?这本从灯泡讲起的奇书,用中学生也能理解的电路图说明白了计算机运作的根基。如果让我推荐一本书给即将上大学的准计算机专业同学,我会毫不犹豫地选择它。
如果将整日的工作描述为Coding,而又不知所谓Code究竟乃何物,是可耻的。
9月我们将会看到大量发布会。
Apple特别活动将在北京时间9月8日凌晨一点举行。我们都知道会有新的iPhone,甚至也知道刘海极大概率将被新的挖孔取代。不过特别活动的宣传图用星空,会是意味着什么呢?
华为也公开了9月6日将要举办发布会的消息。
有消息说NVIDIA的40系显卡也将会在9月发布,还有Intel的13代CPU.
而AMD已经在8月30日举行了发布会,公开了最新的Ryzen 7000系CPU,采用台积电5nm工艺,将不兼容旧有的CPU插槽,这也意味着用户需要更新主板。
这篇文章讨论了非常传统的邮箱注册验证方式:收到邮件,点击链接确认。作者认为它有一些问题:对用户来说收件箱是非常脆弱的,HTML邮件兼容性不够,另外「点击链接」这个操作在某些时候也会带来不方便(比如多个窗口登陆了不同账户)。作者思考:能否反过来,让用户主动发含指定内容的邮件给指定地址以解决这些问题?不过主动发邮件依然会有安全问题,并且显得更不方便了。话说回来,在大量使用短信验证码的国内环境里,我也遇到过要求主动发短信到指定号码的情况。
ProjectZero,一个发布「需要一个程序员」消息的网站。我自己的网站里也有一个记录各种Idea的页面。
Ruby解释器的JIT,YJIT,现在开始支持arm64.
一首老歌竟然能让一些笔记本崩溃?原来是刚好和机械硬盘形成了共振。
密码管理器LastPass再次遇到安全事件,他们宣称开发环境被入侵。尽管从密码管理器的设计而言,用户保存的密码明文在服务端是完全不可见的,但这样的新闻难免让用户质疑他们的技术实力。
在学习Rust?来看看这个用Rust实现各种算法的GitHub仓库。
本期的《混沌周刊》就到这里。如果对本刊感兴趣或有任何建议,欢迎在评论区里留言,以及分享给更多的朋友,谢谢!
1 黑暗或光明,大约取决于你的角色是否为F开头。
]]>Google发布了一门新编程语言Carbon,这个名字对SEO不太友好(不过考虑到是Google的,所以也没问题),因为Carbon既可以指IBM的Design System,也是Mac OS X初期的系统API,还是一款ThinkPad的名字。既然已经有Go和Dart了,还有诞生自JetBrains却和自己关系密切的Kotlin,Google为什么又要造新的编程语言呢?
据Google说,Carbon来自于他们对演进C++代码库的需求(尽管长得一点不像C++),因为他们有非常大的C++代码库1。这么多的C++代码要重写成Rust这类更「安全」的语言自然不现实,所以他们采用了「渐进式」的路子,Carbon因为专门设计过,可以和现有的C++代码更无缝融合。
但是,为什么他们不选择去改变C++本身呢?毕竟本刊第32期已经提到过,Clang也会加入Rust风格的生命周期检查机制。根据Reddit上一些网友的讨论,原因大概是Google C++团队在委员会的一些可能破坏ABI的提案被否决。而Google对Clang的贡献在近一两年也的确减少得很明显。在这种背景下,创造一个更「自主可控」的语言,对这种规模的团队而言也算是有收益的选择。当年Apple也是在类似的情况下,选择脱离GCC,创造Clang的。
很显然,Carbon不是一个「寄予厚望」的新一代编程语言,只是改进版的内部工具。Carbon的GitHub上也说明,如果你有这个条件使用Rust,那就别考虑Carbon了。
C++之父Bjarne Stroustrup表示Carbon太新,以至于没办法提供什么有意义的技术评论。
软件自由保护协会 (Software Freedom Conservancy) 发表文章,劝说开源项目放弃使用GitHub托管,原因主要有:
相比之下,GitLab的行为可能就好许多,因为他们有开源并且任何人都可以部署的社区版本。
一直以来,因为GitHub在新一代程序员中的受欢迎程度,许多社区也选择将代码托管、Bug管理、Code Review迁移到GitHub上:如LLVM和Swift. 但GitHub是一个微软旗下的商业网站,它有以上的诸多问题,并且严格受美国法律限制,对受制裁国家或地区的开发者有潜在威胁。
Git本身的设计可以保证源码记录不受GitHub绑定,但现代社区里的issue和pull requests历史也许才是更有价值的财富。希望在未来可以出现一个类似Mastodon的分布式源码托管服务端。
从北美地区开始,雪碧将把传统的绿色塑料瓶更换为透明塑料瓶。他们宣称此举是为了环保,自然也有降低成本的考虑。鉴于可口可乐也使用透明饮料瓶,两者是否会混用呢?
飞机上当然可以使用iMac啦。
Vim编辑器正式发布9.0版本。第17期我们提到过,Vim 9的重点是引入新的编辑器脚本,提升执行效率。但在越来越多人转向使用Lua的NeoVim的今天,有多少Vim爱好者会接受这个新脚本呢?
Apple发布iOS 15.6.1和macOS 12.5.1,解决了一项和WebKit相关的严重安全漏洞。他们没有公开发现者的名字。现代浏览器引擎实现之复杂、应用之广泛都超乎想象,以后也会更加成为攻击者关注的重点。
一个对比主流显示器参数的网站,类似硬件天梯图。
有一些CSS库会尝试模拟旧版操作系统UI的效果:比如模拟旧Macintosh界面的system.css、模拟Windows 7的7.css、模拟Windows XP的xp.css以及模拟Windows 98的98.css.
macOS的系统设置里无法单独设定鼠标和触控板的滚动方向,因此当你同时使用触控板和鼠标时,鼠标的滚动方向就不得不跟随触控板设置为「自然」,大量的人并不习惯这一方向。Scroll Reverser是一个开源的小工具,可以让你单独设置macOS上鼠标的滚动方向。
‘Say No to Notch‘ 是另一个有用的macOS小工具。在有刘海屏的MacBook上,它可以将分辨率设置为16:10以强制系统不使用刘海所在行的空间,将菜单栏下移。第17期提到过的SwitchResX可以达到和它一样的效,如果你想让刘海所在行变黑以隐藏刘海,可以尝试TopNotch.
今年夏天,世界各地都经历了异常高温,我们甚至不清楚这是偶然现象还是某种开始的预兆。各位注意安全。
Linux Torvalds使用一台M2 MacBook Air发布了Linux 5.19. 将GNU/Linux带到M系列芯片电脑上的Asahi Linux项目也有了新进展。主导GPU驱动开发的工程师甚至……是一位虚拟主播。
印度屏蔽了VLC播放器的网站和下载链接。
本期的《混沌周刊》就到这里。如果对本刊感兴趣或有任何建议,欢迎在评论区里留言,以及分享给更多的朋友,谢谢!
1 正因为他们的代码库规模远大于一般团队,所以他们的构建工具可能也和普通团队的不一样(如Bazel和gn),Go语言的某些「奇怪」设计也许也与此有关。
]]>北京时间2022年6月7日,苹果的全球开发者大会如期开幕。你也许已经看过了无数媒体不同风格的文案,不过还是让我们来快速了解这场大会里你知道或不知道的。
每年WWDC往往也会有那么一两场和C++相关,今年也有一场Session讲解如何使用C++ 20中的Concept.
微软真的停止了对Internet Explorer的支持。曾经有网站记录它还有多久死,内容终于改为IE已死了多久了。
GitHub宣布,在2023年末前,所有在GitHub上贡献代码的人都必须启用两步验证。Ruby社区的软件包托管网站RubyGems.org也宣布,会强制要求下载量前100的Gem维护者启用两步验证,并且这个要求范围将会越来越大。我大概是第一个在RubyGems.org启用两步验证的账号,因为这个功能是我实现的。
除此之外,GitHub还宣布,Atom项目的开发将正式终止。
Telegram宣布新的订阅服务,每月4.99美元,包括去掉广告和更大的上传容量等,不过还没有防骚扰功能。
Mozilla发布了一个Firefox的本地翻译扩展。可惜的是目前还不支持中日韩文,主要是一些欧洲语言。考虑到这个项目是欧盟资助的,所以也合理。
MDN也推出了付费订阅项目MDN Plus,功能用处不大,性质更接近于付费支持。
ECMAScript也有静态类型标注的提案了。目前的设计还是让引擎将类型标注视为某种注释,类型信息并不会参与到实际的优化执行中。
Uber工程师讲述,为什么他们会使用Zig这项远未发布正式版的技术。实际上,他们完全没有使用Zig语言本身,而只是用到了Zig中很有用的一部分——C/C++交叉编译工具链。
Asahi Linux的开发者此前指出,macOS上fsync
函数的默认行为和Linux不一样,它并不会等到缓存真正写入磁盘再返回,这使得macOS在SSD速度上有作弊嫌疑。作为一种回应,这篇文章解释了这个函数的行为,以及为什么该文作者认为这个行为并不算作弊。
我一直在使用的写作软件iA Writer发布6.0版本,最大的更新之一在于加入了流行的「双向链接」。旧版本用户可以免费升级。
本期的《混沌周刊》就到这里。如果对本刊感兴趣或有任何建议,欢迎在评论区里留言,以及分享给更多的朋友,谢谢!
1 在UIKit API里,大众理解的ListView实际上叫UITableView。
]]>最近有两家美国互联网公司退出中国市场的消息。
Airbnb宣布,将从2022年7月30日起,停止中国大陆境内的房源和体验预订服务。Airbnb一直在中国境内的经营状况都不怎么好。尤其COVID-19疫情以来,虽然还是在2020年上市,但其业务受到了巨大冲击。退出中国市场没有那么意外,但这消息还是有些突然。
另一家要退出国内市场的是Kindle电子书商店。熟悉亚马逊的朋友应该知道,这些年亚马逊在国内的业务处于逐步脱离的状态。早在几年前,亚马逊中国已经没有正常购物业务了,只留下亚马逊海外购和Kindle电子书商店。所以甚至还会有在亚马逊买不到Kindle阅读器,要去天猫、京东旗舰店的窘况。
Kindle商店留下的空余时间要长些,运营将会在2023年6月30日停止。邮箱推送服务和已购图书下载功能会运营至2024年6月30日,届时Kindle App也会从应用商店下架。在官方商店购买的Kindle电子书都有DRM保护,如果脱离授权设备的认证机制就会无法阅读。当然我们有第三方插件能够将Kindle阅读器里提取出来的文件格式去DRM,但目前看来,官方并不会提供去DRM的方法。这可以理解,但对用户而言实在尴尬了些,毕竟有一部分Kindle读者并没有Kindle阅读器。
亚马逊在国内的业务一直都不是太顺利。此前AWS为了在中国落地花了很大功夫,但即使和运营方式相似的Azure相比,经营状况也不乐观。作为经历过29元包邮年代的亚马逊老用户,心里还是有些感慨。现在仅存的亚马逊业务就是海外购了,它会在某个时刻向我们说再见吗?
刚好在此前看到消息,说Kindle终于开始支持电子书里最常见的epub格式1。在此之前,Kindle阅读器支持的只有mobi、私有的带DRM格式,还有常见的pdf、txt、docx等文档格式。这件事再次向我们敲响警钟:DRM侵害了数字消费者的权益。今天你在某个App里购买的歌曲,也许未来某个时刻因为业务停止运营就无法继续听了。早在2009年,Kindle服务就出现过一个极为讽刺的故障:用户设备里的《1984》不见了。
苹果的iTunes Store(内地暂无运营)是比较知名的提供无DRM内容的在线音乐商店。这要感谢乔布斯一直以来对DRM的反感态度。(尽管因为电影厂商的强烈要求,iTunes Store的电影依然有DRM)可惜,从商店界面还停留在iOS 11之前风格就能看出,苹果的音乐中心已经转移到Apple Music流媒体。国内的图灵社区也一直销售提供无DRM的电子书,值得鼓励。不过,须知无DRM不等于无水印,售卖无DRM内容的商家依然可以在内容中加入水印以在必要时发现盗版内容的提供者。
GitHub的Markdown渲染终于支持LaTeX风格的数学公式了,用 $ $
分隔表示行内公式,用 $$ $$
表示单行公式。顺带一提,GitHub能主动渲染的标记文件类型其实不止Markdown,还有Org-mode、AsciiDoc、ReStructuredText、RDoc、MediaWiki等,因为不同语言的社区有着不同的标记习惯。
JetBrains系IDE推出了新界面,风格颇似Visual Studio Code,目前还是需要申请的实验性功能。不过可以已经有人发现可以通过修改内部选项打开:双击shift键弹出快速选择对话框,输入registry以打开IDE注册表编辑器,勾选 ide.experimental.ui
及相关选项即可。
在初学计算机的时代,我们常常听到「一块普通硬盘可以轻松装下数千本文学巨著」的说法,以佐证计算机的强大能力。这话当然不假,因为以txt格式存储的普通著作可能不到1MB,整部《战争与和平》也只有3.2MB,《红楼梦》不足2MB. 但如今普普通通的网站,打开就会加载数MB的资源,然后显示一点点有意义的内容。这造成了巨大的带宽和计算资源的浪费,好比为了过马路而开车。有人指出这种荒谬的现象:Medium上一个记录对《哈利波特与死亡圣器》某个章节书评的网页,体积是整本书的5.4倍!我们知道软件工程需要模块化,但简单的事情应该用简单的工具去做。在现代浏览器逐渐抹平兼容性差异的背景下,简单的HTML、CSS、JavaScript可以工作得很好,我们甚至都有了 <dialog>
标签。
NVIDIA开源了针对Linux的GPU内核模块,尚不清楚是否和前段时间的源码泄露事件有关。一个相关的趣事是:有人在NVIDIA的CUDA实例代码中发现了上面提到的《战争与和平》全文。这不是单例,因为《战争与和平》足够长,也曾经被用作Apache Spark实现词频统计的范例文档。
不会有人总重造轮子,但总有轮子被人重造。又有人开始重新实现终端模拟器了:Warp. 号称用到了基于AI的搜索以及编辑器风格的补全功能。
本期的《混沌周刊》就到这里。如果对本刊感兴趣或有任何建议,欢迎在评论区里留言,以及分享给更多的朋友,谢谢!
1 这篇文章也很好地介绍了Kindle电子书格式的历史,亚马逊对自创轮子的兴趣丝毫不逊于苹果。
]]>Apple官方宣布iPod Touch停产,现有库存售完即止。因为iPod Touch是最后的iPod产品,所以这也代表20年历史的iPod产品线完全退出历史舞台。除了iPhone,iPod也是许多人拥有的第一个Apple产品。我自己的第一个i-Device就是2011年购买的蓝色第四代iPod Shuffle,夹子造型相当惊艳。
比iPod Shuffle更贵一些的是iPod Nano,当时还有人为正方形的第六代制作了表带,所以后来这代iPod Nano也被戏称为Apple Watch Series 0. (当然这个比喻有问题,因为Apple Watch Series 1其实是第二代Apple Watch,这种别扭的错位命名让人联想到《三国无双》系列,《真·三国无双2》其实是《三国无双的第3代)。
iPod Classic停产得更早,当时令人印象深刻的是容量有足足160G,因为使用了机械硬盘。而iPod Touch在那个没有iPad mini的年代被当作iPhone的廉价替代品,了解过的朋友应该还记得「苹果皮」这个第三方配件,它可以让iPod Touch拥有手机的功能。黑苹果搭配iPod Touch,也是iOS开发风头正盛时成本最低的入门路径了。
你还记得十年前你最喜欢的数码产品吗?
上周发生了一个非常滑稽的新闻:某个国内平台的用户突然发现他们发布的内容被设置为私有,要经过审核才能允许公开访问。本来在国内的互联网环境里这不算新鲜事,但令人捧腹的地方在于:这个平台是Gitee,它存放的资料是代码。
如何对代码库进行审核呢?如果只是大家喜闻乐见的Markdown项目倒还好,如果有人对Linux Kernel这类提交数过百万的巨型项目1稍作历史修改然后推送上去怎么办?
只能说,Gitee想得比我们更远。考虑到软件质量在信息时代越来越重要,推出先审后开源,是为了培养一批合格的Code Review人才,完善IT行业的Code Review水平。
麦当劳最终还是宣布退出俄罗斯市场。麦当劳在1990年进入苏联,在俄罗斯拥有超过800家门店。
英国政府的网站gov.uk移除了jQuery,这减小了网络传输和内容加载所需要的时间。在2018年,GitHub也已经移除了jQuery依赖。曾经人们青睐jQuery的选择器和兼容性,但今天我们有querySelector,浏览器API也基本标准化。只有最新的Bootstrap还依赖着它。
Dropbox终于支持忽略某个文件的操作,是基于每个平台特定的文件属性实现的。顺带一提,在macOS上经常遇到打开文件时「文件来自网上下载」的提示,这个信息就是存储在文件的com.apple.quarantine
属性中。
微软发布.NET 7的第三个Preview,将会支持面向原生代码的AOT编译。同时,微软也推出了类似苹果两年前Apple Silicon DTK的东西,Arm64的开发主机,使用高通芯片,名叫Project Volterra.
Alt-tab,在macOS实现Windows风格任务切换界面的小工具。
不只是中国的互联网公司在裁员,Netflix也开始裁员了。
Airbnb退出在中国国内的业务。现在还能想到国内有哪些国外大型互联网公司吗?
小米工程师向Android Open Source Project (AOSP) 提交补丁,禁止用户提取apk文件,遭到Google的拒绝。
本期的《混沌周刊》就到这里。如果对本刊感兴趣或有任何建议,欢迎在评论区里留言,以及分享给更多的朋友,谢谢!
1 Linux Kernel并不使用GitHub做Code Review,但依然有人孜孜不倦地提交Pull Request,因为GitHub并不支持关闭仓库的Pull Request功能。是的,你可以关闭Issues、Wiki、Projects,但不能关闭Pull Request,只能理解为GitHub对「开源」概念的一点固执。
]]>security
| BrE sɪˈkjʊərɪti,sɪˈkjɔːrɪti, AmE səˈkjʊrədi |
noun. 安全,安全措施,保安部门;担保,抵押;证券
周一晚上好,欢迎来到《混沌周刊》第34期。《混沌周刊》是一个试图从开发者角度为你带来这个世界上发生着什么,发生过什么,以及未来可能会发生什么的栏目,(差不多)每周更新。您可以通过首页的RSS、Twitter、Telegram频道和电子邮件等方式订阅。如果您觉得本周刊对自己有所帮助,请不吝推荐给其他人,多谢。
既萨尔瓦多之后,中非成为第二个批准比特币成为法定货币的国家。而最近一周,若干数字货币对法币的汇率都经历了大幅跳水:BTC从40000美元跌到5月12日最低点的近27000美元,蒸发了超过30%;ETH也从月初近3000美元下跌至最低1800美元;宣称币值和美元对标的TerraUSD(UST,非USDT)崩盘,目前单价不到0.1美元;最为离谱的可能是LUNA币,短时间跳水到原价的不到1%,然后又在一天内快速上涨100倍。在市场预期不明确的未来,这种波动可能还会发生很多次。
Google Play的新政策禁止上架带有通话录音功能的应用,尽管在通话录音合法的地区,Google自己的通话程序允许对电话进行录音。
App Store也开始了一个奇怪的新政策:太久不更新的应用,即使在设备上还能正常运行,也会被移除。而且他们甚至都没有明确说明多长时间算「太久」。
Intel CEO说芯片短缺的状况将会一直持续到2024年,希望这只是一个最坏情况的预防针。
GitHub的Awesome系列终于也轮到了SQLite,列出了一些SQLite相关的有趣应用和插件。
一位刚满70岁的老者给年轻人的一些人生经验,看起来并不那么像心灵鸡汤,比如:
是的,密码管理器是个好东西。不过你有留意过它们是如何实现的吗?如何保证安全呢?密码管理器的实现者们也预判了用户的疑虑。所以主流的密码管理器未必开源,但都有安全白皮书详细讲解软件是如何加密内容的,以及哪些内容不会被加密:
Apple、微软和Google共同声明,将合力支持FIDO标准,以加快推进无密码登录。所谓FIDO是一个旨在统一认证设备的行业联盟,其推出的WebAuthn已经成为W3C标准,且API已被多数主流浏览器支持。其核心是以非对称加密取代传统的共享密钥(即你需要将密码发送到服务器,并且如果你不有意避免,这个密码还会在很多个网站共享),且密钥会以各种方式被保护(硬件密钥、Face ID、Windows Hello等)。
GCC 12发布了,更新内容在这里。
郭先生爆料,明年发布的iPhone(即iPhone 15)将会使用USB-C接口,以达到更快的传输速率和充电速度。Bloomberg也证实苹果正在进行相关测试。这个消息太突然,以致难以相信它是真的。
上一期,我们谈到了macOS和Windows在路径分隔符和文件名上的兼容性努力。如果你用Mac,有个点大概你很少留意到过:整个系统的硬盘被命名为Macintosh HD,这个名字自Mac诞生以来即是如此,尽管今天Macintosh这个词已经几乎不用了。更重要的是:HD是Hard Drive的缩写,所以今天的Mac硬盘,应该叫Macintosh SSD才是?
本期的《混沌周刊》就到这里。如果对本刊感兴趣或有任何建议,欢迎在评论区里留言,以及分享给更多的朋友,谢谢!
]]>此前陷入产品可维修权相关争议的苹果公司宣布,自助维修计划在美国正式开启,年底将服务范围扩展至欧洲。用户可以在苹果官网页面阅读和下载相关说明,然后在自助维修商店下单需要的零件,如果把拆下的旧部件寄回去,还可以获得积分。
看起来这是一个进步,但它也遭到了不少批评:商店出售的零件价格相比去店里修并不便宜(比如用来弹出SIM卡槽的针要4美元),用户下单零件时需要提供手机的IMEI号,并且这个售卖零件的商店并不在苹果官网,更像是授权经销商一类的组织。iFixit直言,这种行为表面上保障了用户的可维修权,实际上在未来给了苹果彻底封死第三方维修的可能。这系列改变的确缺乏诚意,像是为堵住立法者的嘴而展开的回应。
上一期我们提到了马斯克收购Twitter的计划。现在Twitter董事会已经同意了这笔交易。人们都相信马斯克会给Twitter带来改变,问题是这改变是好的还是坏的。至少他说,要开源Twitter的算法。
一些人认为这是言论自由的胜利,而另一些人选择离开Twitter,加入去中心化的社交平台Mastodon,用户可以部署自己的服务器或者加入他人的服务器,每个用户ID由站内ID和服务器域名组成,因此用户可以跨越服务器进行评论、转发。服务器之间会相互爬取资料,构成一个相互连接的服务器网络。连欧盟官方机构也建立了自己的Mastodon实例EU Voice。互联网又回到了它曾经的样子。
如果你感兴趣,也可以加入我的Mastodon服务器。
Emacs和Vim这类编辑器有个共同点,那就是它们并不严格区分所谓「扩展(插件)」和「配置」。这种逻辑大概来自于Shell的rc文件,即只是在启动前运行一段脚本。(第14期,我们提到过这个rc的命名习惯是怎么来的)尤其Emacs Lisp甚至没有语言级别的命名空间机制,每个扩展包只是按约定命名内部的成员,随时可以修改其他全局变量。所以我们今天有诸如Doom Emacs等自带常用扩展的再发行版。如果你更喜欢原生风味,Emacs配上一些基础配置也能工作得不错,所以有人做了个Emacs配置生成器,填一个表单回答若干问题,就可以得到一份init.el文件。对Vim,这类工具就更多了,例如这个vim-bootstrap.
Edge浏览器将要加入内置的VPN功能。另外三大浏览器厂商Mozilla、Apple、Google也都有自家的VPN服务了。隐私可以换钱,反过来保护隐私也能换钱。不过它们没有告诉你的是,Edge VPN、iCloud Private Relay和Mozilla VPN的背后都是Cloudflare.
说到浏览器,DuckDuckGo也要推出自己的浏览器了,宣称内置诸多隐私保护功能。目前仅有macOS版,使用macOS自带的WebView (WebKit) 实现,不出意外在Windows也会使用内置的WebView2 (Chromium) 组件。可以使用手机上的DuckDuckGo App预约。我试用了一下,完成度还不是很高,当然也没有插件,整体体验和手机上的DuckDuckGo浏览器相似,可以一键清除浏览记录。
浏览器的确是个好地方。有人实现了运行在浏览器环境内的MacOS 8,注意这和以前介绍过的用前端技术模拟macOS Monterey样式的实现不同,这是一个真的MacOS,运行在JavaScript实现的模拟器上。可以阅读他们博客中的技术细节。这也是一个开源项目。
在Windows中,为什么文件名字不能为CON或者NUL?这是早期DOS命令习惯的遗留,并且至今还在起作用。我曾在一个开源项目中遇到过,因为有人向里面提交了名为CON的测试文件,而Windows开发者无法Clone仓库的情况,有趣的是那位开发者的邮箱后缀还是apple.com,大概不是有意为之
其实不同系统间这类问题很常见。比如macOS中,你无法在Finder里创建一个名称带冒号的文件,而终端里可以;但不能在终端创建名字带斜杠的文件。最后会发现,终端里文件名的冒号在Finder中会被显示为斜杠,反之亦然。原因是Classic MacOS把冒号而非Unix的斜杠作为路径分隔符,初代Mac OS X为了兼容性实现了这个行为,然后保留至今。
截至4月21日,苹果停止了对macOS Server的支持。在早期,Mac OS X Server是和家用版Mac OS X相互独立的操作系统。由于系统具备Unix血统,00年代初的苹果对Mac进军服务器还有信心,还推出过Xserve等服务器硬件产品,但市场反响不佳。自2011年发布的Lion起,OS X Server仅作为OS X系统可附加购买安装的一个组件存在。从这时起,其实所谓Server和大众理解的服务器已经不是一个概念了,更像曾经的Windows Home Server,为家庭或小型工作室提供一些共享文件/媒体/打印机,以及管理多台设备的能力。如今除设备管理外,macOS Server的主打功能几乎都有完善的开源方案,或已内置在消费版macOS中。macOS 13马上也要来了,我们不妨将此当作旧OS X时代最后的一点回响。
JetBrains又开始了2022年的开发者生态调查,有抽奖。能不能抽到奖品不重要,关键如果自己自认为是小众开发者,填完可以让自己显得不小众一点点。
基于Rust构建的操作系统Redox发布了0.7.0版本。
一个让你能够在网页内模糊查找内容的Chrome扩展。
Firefox 100版本也正式发布了,在Windows平台实现了AV1编码支持(需要NVIDIA 30系显卡,或AMD RDNA 2架构GPU,或Intel 11代处理器)。
本期的《混沌周刊》就到这里。如果对本刊感兴趣或有任何建议,欢迎在评论区里留言,以及分享给更多的朋友,谢谢!祝各位心态上永远像个青年。
]]>