▲提示词:create a visually interesting shader that can run in twigl-dot-app make it like an infinite city of neo-gothic towers partially drowned in a stormy ocean with large waves.|来源:https://x.com/emollick/status/1999185085719887978?s=20
关于 3D 理解和推理能力,我们也用了 Ian Goodfellow 上次在 Gemini 3.0 Pro 发布之后使用的提示词,即上传一张图片,然后告诉模型根据这张图片,生成一个漂亮的体素艺术 Three.js 单页程序场景。
▲ 由于 ChatGPT 没有在画布内为我生成,所以复制它在对话框生成的代码,在 HTML View 中打开,如右图所示。
这个差别还是挺明显,ChatGPT 虽然也读取到了上传图片的内容,一棵粉红色的书,一块绿地和灰色的下沉,还有白色的水流,但是它生成的 3D 动画,对比 Gemini 3.0 Pro 是有些简陋了。
我只能说,奥特曼发出这个「红色警报」,说明了 Gemini 的真材实料。
检验编程能力的测试,必然少不了经典的六边形小球物理运动。有博主加大了小球运动的难度,全部使用闪着光的红色 3D 小球。效果看着很酷炫,很多网友都在问这是如何做到的;但也有网友指出来,这些小球,好像并不受重力控制。
▲提示词:Create an interactive HTML, CSS, and JavaScript simulation of a satellite system that transmits signals to ground receivers. The simulation should show a satellite orbiting the Earth and periodically sending signals that are received by multiple
对比之前 GPT-5.1 完全不知道我上传视频的配色方案,这次它算是学到了。不过,由于 Gemini 生成的网页可以直接添加 AI 功能,通过使用 Gemini 的 API 实现。但是 ChatGPT 还没有把 AI 引入这些生成的网页,所以这里的诗歌,同样只能是已经写好的那几首。
除了经典的编程能力测试,和单纯地做一个单页的 HTML 文件,也有网友用它来编写 Python 代码。
网友输入的提示词是「write a python code that visualizes how a traffic light works in a one way street with cars entering at random rate.」(编写一个 Python 代码,模拟单行道交通灯的工作原理,并可视化随机速率进入的车辆)。
他同时测试了 GPT 5.2 Extended Thinking 和 Claude Opus 4.5,结果显而易见。只能说,经常有读者问我们最好的编程模型是哪个,Claude 能被这么多开发者青睐,并不是没有原因。
我们也给 GPT-5.2 一些要求做出「高大上」的网页,给一家 AI 公司做首页。结果是,GPT-5.2 很喜欢用方框是真的;还有渐变紫怎么又给我碰上了。
▲提示词:You are the top 0.1% designer and developer for the world’s cutting-edge innovation on front-end design and development. You are tasked to create a full landing page with {Dither + Shaders} using {WebGL + ThreeJs} in the styling of an uploaded image for the AI company. – Focus mainly on the design part, not the development. Import all necessary files and libraries: Three.js、WebGL、GSAP、Any other animation libraries related to 3D development.
Google is so helpful now when you ask it to solve a problem, such as how to free up space on your Mac. Not only can it make its own suggestions, but it can tap into those from AIs like ChatGPT and Grok. This article shows how that can bring you malware, thanks to the recent research of Stuart Ashenbrenner and Jonathan Semon at Huntress.
Please don’t try anything you see in this article, unless you want AMOS stealer malware on your Mac.
I started by entering a common search request, clear disk space on macOS, the sort of thing many Mac users might ask.
At the top of Google’s sponsored results is an answer from ChatGPT, giving its trusted web address. When I clicked on that, it took me to ChatGPT, where there’s a nice clear set of instructions, described impeccably just as you’d expect from AI.
This helpfully tells me how to open Terminal using Spotlight, very professional.
It then provides me with a command I can copy with a single click, and paste straight into Terminal. It even explains what that does.
When I press Return, I’m prompted for my password, which I enter.
Although I was a bit surprised to see this prompt, it looks genuine, so I allowed it.
Far from clearing space on my Mac, the malware, an AMOS stealer, has gone to work, saving a copy of the password I gave it, in the /tmp folder, and installing its payload named update.
Scripts like .agent are installed in my Home folder, and my (virtual) Mac is now well and truly owned by its attacker.
As Ashenbrenner and Semon point out, this marks a new and deeply disturbing change, that we’re going to see much more of. We have learned to trust many of the steps that here turn out to lead us into trouble, and there’s precious little that macOS can do to protect us. This exploit relies almost entirely on our human weakness to put trust in what’s inherently dangerous.
First, distrust everything you see in search engines. Assess what they return critically, particularly anything that’s promoted. It’s promoted for a reason, and that’s money, so before you click on any link ask how that’s trying to make money from you. If that’s associated with AI, then be even more suspicious, and disbelieve everything it tells you or offers. Assume that it’s a hallucination (more bluntly, a lie), or has been manipulated to trap you.
Next, check the provenance and authenticity of where that click takes you. In this case, it was to a ChatGPT conversation that had been poisoned to trick you. When you’re looking for advice, look for a URL that’s part of a site you recognise as a reputable Mac specialist. Never follow a shortened link without unshortening it using a utility like Link Unshortener from the App Store, rather than one of the potentially malicious sites that claims to perform that service.
When you think you’ve found a solution, don’t follow it blindly, be critical. Never run any command in Terminal unless it comes from a reputable source that explains it fully, and you have satisfied yourself that you understand exactly what it does. In this case the command provided was obfuscated to hide its true action, and should have rung alarm bells as soon as you saw it. If you were to spare a few moments to read what it contains, you would have seen the command curl, which is commonly used by malware to fetch their payloads without any quarantine xattr being attached to them. Even though the rest of the script had been concealed by base-64 encoding, that stands out.
If you did get as far as running the malicious script, then there was another good clue that it wasn’t up to anything good: it prompted you for a System Password:. The correct prompt should just be Password:, and immediately following that should be a distinctive key character that’s generated by macOS for this purpose. Then as you typed your password in, no characters should appear, whereas this malware showed them in plain text as you entered them, because it was actually running a script to steal your password.
Why can’t macOS protect you from this? Because at each step you have been tricked into bypassing its protections. Terminal isn’t intended to be a place for the innocent to paste obfuscated commands inviting you to surrender your password and download executable code to exploit your Mac. curl isn’t intended to allow malware to arrive without being put into quarantine. And ad hoc signatures aren’t intended to allow that malicious code to be executed.
As I was preparing this article Google search ceased offering the malicious sponsored links, but I expect they’ll be back another time.
AI is certainly transforming our Macs, in this case by luring us to give away our most precious secrets. This isn’t a one-off, and we should expect to see more, and more sophisticated, attacks in the future. Now is the time to replace trust with suspicion, and be determined not to fall victim.
这种做法本身并不罕见,通过蒸馏学习从强大的模型中提取知识是 AI 领域的常见技术。但对于曾经高调宣扬开源、试图建立自己 AI 生态的 Meta 来说,如今转而借鉴竞争对手的模型,多少有点打脸的意味。
Meta 发言人对此的回应相当官方,称模型训练工作按计划进行,目前没有重大时间变动。
但业内人士心里都明白,这个项目关系到 Meta 能否在 AI 竞赛中追上 OpenAI、Google 和 Anthropic。如果 Avocado 扑街,Meta 在 AI 领域可能就真的要被甩出第一梯队了。
实际上,在 Avocado 尚未面世之前,Meta 在产品端已经遭遇了一次惨败。
今年 9 月匆忙上线的 AI 短视频平台 Vibes,被寄予厚望要对标 OpenAI 的 Sora 2,结果却惨遭市场打脸。Appfigures 数据显示,Meta AI 在 iOS 免费应用排行榜上仅位列第 97 名,而 Sora 2 则高居第 3,并逐步攀升。
虽然 Sora 最近也被传出用户黏度下降的情况,但当两款产品几乎同时发布,Vibes 非但没能成为话题爆款,反而被 Sora 2 压着打。很多人甚至不知道 Meta 新发布了这个产品。
多位前员工和内容创作者告诉 CNBC,Vibes 仓促上线,缺乏如逼真对口音频等关键功能。
前 GitHub CEO Nat Friedman 主导了这个项目,现在他正面临巨大压力,被要求尽快推出真正的爆款 AI 产品。知情人士称,Meta 多个 AI 团队都在承压,70 小时工作周成为常态,同时全年进行了多轮裁员与重组。
这种节奏,像极了一家被逼到墙角的初创公司,而不是市值万亿的科技巨头。
从 AI 赢家到被质疑,不过一年时间
今年是 Meta AI 的坎儿年。
去年九月,意气风发的扎克伯格还站在 Meta Connect 的舞台上,信心满满地宣称 Llama 将成为业内最先进的 AI 模型,让所有人都能受益于人工智能。
那时的他,像极了一个布道者,向世界传递着开源 AI 的福音。
然而仅仅一年后,风向就变了。到了两个月前的财报电话会议上,扎克伯格对 Llama 的提及只剩下了一次。那个曾经被当作 Meta AI 战略核心的开源模型,正在悄悄让位给 Avocado 这个神秘项目。
这个转变背后,是 Meta 在 AI 竞赛中越来越明显的焦虑。
当 OpenAI 的 GPT 系列、Google 的 Gemini、Anthropic 的 Claude 接连发布重磅更新时,Meta 发现自己似乎被甩在了身后。尤其是,Google 在 AI 领域的投入正逐渐显现成效,而 Meta 却陷入了方向不明的泥潭。
为此,扎克伯格的应对方式简单粗暴,砸钱挖人。
今年 7月份,Meta 宣布成立超级智能实验室 MSL,将公司所有 AI 业务重组到这个新部门之下。紧接着,一场硅谷 AI 人才的扫货大战拉开帷幕。
最引人注目的一笔交易发生在同月,Meta 以 143 亿美元的天价引入了 Scale AI 的 28 岁创始人 Alexandr Wang 及其团队。
虽然 Wang 不是工程师,但被认为是业内最具人脉的AI创业者之一。
随后,扎克伯格和 Wang 展开疯狂招人,争抢顶级 AI 研究员,开出高达数亿美元的薪酬。据 OpenAI 首席研究官 Mark Chen 称,扎克伯格甚至亲自送自制的汤到 OpenAI 员工家门口,劝他们跳槽到 Meta。
Wang 被任命为 Meta 首席 AI 官,领导一个叫 TBD Lab 的精英小组。这个名字本身就很有意思,TBD 是「to be determined」的缩写,意思是待定。最初只是个临时代号,但因为太贴切了反而保留了下来,某种程度上也反映出 Meta AI 战略的探索性质。
除了 Wang,Meta 还挖来了前 GitHub CEO Nat Friedman,让他负责 MSL 的产品与应用研究,以及 ChatGPT 联合创始人赵晟佳。
这些重金引入的大佬带来了硅谷前沿 AI 研发的标准流程,彻底改变了 Meta 传统的软件开发文化。然而改变的代价是巨大的。
「它能做你让它做的任何事。可以当老师,帮你看小孩;可以遛狗、修剪草坪、买杂货;还能做你的朋友,给你端茶送水。无论你能想到什么,它都能去做。」
在上个月的股东大会上,他更是兴奋地表示:「一旦 AI 和机器人成熟,我们甚至可以把全球经济扩大十倍甚至百倍。Optimus 大规模应用就是那个无限增益的秘诀。也许到了那时候,『金钱』这种东西都变得多余。」
Google 这一次王者归来,震感甚至直接传导到了竞争对手的神经中枢。据 The Information 报道,面对 Google 步步紧逼的攻势,OpenAI CEO Sam Altman 本周一紧急在内部备忘录中宣布公司进入「红色警戒(code red)」状态,准备调动一切战略资源对 ChatGPT 的能力进行大幅升级。
据 The Verge 援引知情人士消息称,OpenAI 计划最早于下周初发布 GPT-5.2 模型, 这一时间表较原定的 12 月下旬计划大幅提前。
Logan Kilpatrick: 太赞了!这简直是 AI Studio 的完美宣传点,我们会把这段剪辑出来发布到网上。你刚才提到的一个重要话题是,在 Gemini 3 发布之际,我们同步推出了 Google Anti-gravity 平台。从模型角度来看,你认为这种产品架构对提升模型质量的重要性有多大?显然,这和工具调用、编码能力息息相关。
就像 Gemini、AI Studio 一样,Anti-gravity 平台也是如此。这些产品能让我们与用户紧密相连,获取真实的反馈信号,这是巨大的财富。Anti-gravity 平台作为我们的关键发布合作伙伴,虽然加入时间不长,但在过去两三周的发布筹备中,它的反馈起到了决定性作用。
搜索 AI 模式(AI Mode)也是如此,我们从那里获得了大量反馈。基准测试能帮助我们推动科学、数学等领域的智能提升,但了解现实世界的使用场景同样重要,模型必须能解决实际问题。
Gemini 3,一款全 Google 团队协作的模型
Logan Kilpatrick: 在你担任新任首席 AI 架构师后,你的职责不仅是确保我们拥有优秀的模型,还要推动产品团队将模型落地,在 Google 的所有产品中打造出色的用户体验。 Gemini 3 在发布当天就同步登陆 Google 所有产品端,这对用户来说是巨大的惊喜,也希望未来能覆盖更多产品。从DeepMind 的角度来看,这种跨团队协作是否增加了额外的复杂性?毕竟一年半前,事情可能还简单得多。
Koray Kavukcuoglu: 但我们的目标是构建智能,对吧?很多人问我,身兼 CTO 和首席 AI 架构师两个职位,会不会有冲突,但对我来说,这两个角色本质上是一致的。
要构建智能,就必须通过产品与用户的联动来实现。我的核心目标是确保 Google 的所有产品都能用上最先进的技术。我们不是产品团队,而是技术开发者,我们负责研发模型和技术,当然,我们也会对产品有自己的看法,但最重要的是,以最佳方式提供技术支持,与产品团队合作,在 AI 时代打造最优秀的产品。
这是一个全新的时代,新技术正在重新定义用户期望、产品行为和信息传递方式。因此,我希望能在 Google 内部推动这种技术赋能,与所有产品团队合作。这不仅对产品和用户有益,对我们自身也至关重要。
团队基于 Gemini 3.0 Pro 的架构,结合第一代模型的经验,通过扩大模型规模、优化调优方式,打造出了更强大的图像生成模型,这很合理。它的核心优势在于处理复杂场景:比如输入大量复杂文档,模型不仅能回答相关问题,还能生成对应的信息图表,而且效果很好。这就是输入多模态与输出多模态自然融合的体现,非常棒。
我们有幸生活在这个时代,很多人曾为 AI 或自己热爱的领域奋斗一生,希望能见证技术爆发,但这一切现在真的发生了。AI 的崛起不仅得益于机器学习和深度学习的进步,还离不开硬件、互联网和数据的发展,这些因素共同促成了今天的局面。所以,我既为自己选择了 AI 领域而自豪,也为能身处这个时代而感到幸运。这真的太令人兴奋了。
我可以肯定地说,20 年后,我们现在使用的大语言模型(LLM)架构肯定会被淘汰。所以,持续探索新方向是正确的选择。 Google DeepMind、 Google 研究院,以及整个学术研究社区,都需要共同推进多个领域的探索。
我认为,不必纠结于「什么是对的、什么是错的」,真正重要的是技术在现实世界中的能力和表现。
Logan Kilpatrick: 最后一个问题:我个人在 Google 的第一年多时间里,感受到了一种「 Google 逆袭」的氛围。尽管 Google 拥有强大的基础设施优势,但在 AI 领域,我们似乎一直在追赶。比如在 AI Studio 的早期阶段,我们没有用户(后来增长到3万人),没有收入,Gemini 模型也处于早期阶段。
而现在,随着 Gemini 3 的发布,我最近收到了很多来自生态系统各方的反馈,人们似乎终于意识到「 Google 的AI时代已经到来」。你是否也有过这种「逆袭」的感受?你相信我们能走到今天吗?对于团队来说,这种角色的转变会带来什么影响?
Koray Kavukcuoglu: 在大语言模型(LLM)的潜力逐渐显现时,我坦诚地说,我既认为 DeepMind 是前沿 AI 实验室,也意识到我们作为研究人员,在某些领域的投入还不够,这对我来说是一个重要的教训:我们必须拓宽探索范围,创新至关重要,而不是局限于某一种架构。
AI 主管 John Giannandrea 的「退休」,跟苹果在生成式 AI 领域的一连串失误有关。不仅底层的 Apple Intelligence 平台架构饱受延期和功能不佳的困扰,上层产品 Siri 的所谓「2.0 版」大规模改进计划,也落后了大约一年半。目前苹果计划与谷歌的合作来填补能力空白。
在高管层动荡的同时,苹果的工程师团队也在经历人才流失,特别是在 AI 领域。 Meta、OpenAI 和各种初创公司正在疯狂挖苹果软件/硬件工程的墙角。这让苹果试图追上 AI 浪潮变得难上加难。
曾负责 Siri 的 Robby Walker 在去年十月离开公司;他的继任者 Ke Yang 在这个职位上只待了几周就离职,加入了 Meta 新成立的超级智能实验室。
AI 模型主管 Ruoming Pang 的离职更是引发了连锁反应,他和 Tom Gunter、Frank Chu 等同事一起去了 Meta——当时,Meta 号称开出上亿美元的年包从苹果、OpenAI 等公司挖人。当时,苹果的 AI 组织士气严重低落,几周内就跳槽了十几位优秀的 AI 研究员。 苹果越来越多地使用外部 AI 技术,比如谷歌的 Gemini,也让从事大语言模型工作的员工感到担忧。
苹果的 AI 机器人软件团队,前不久也经历了大规模离职,包括其负责人 Jian Zhang,他同样加入了 Meta。
提示词:The video is shot using a fisheye lens, giving a distorted, wide-angle view of an urban street scene at night in front of a store with a sign reading “DELI • GROCERY • ATM” (English). The lighting is dim, with red neon reflecting off wet pavement. The musical sound is slow, ominous industrial bass with distant sirens. The camera focuses on a tall figure wearing a cracked, porcelain doll mask and a heavy trench coat, looming over the lens. Behind him, two figures in black hoodies stand motionless near the store entrance. The masked figure leans uncomfortably close to the fisheye lens, whispering hoarsely: “Midnight tick, the shadows don’t sleep. Price on the head, and the secrets we keep. You saw the sign, but you didn’t read the print. One wrong step, and you vanish in a tint.” The figure slowly raises a gloved hand to cover the camera lens as the screen fades to black.
坦白说,最终呈现的成片质感大大超出了我的心理预期。
拍我AI V5.5 展现出的剪辑非常老练,它懂得如何在不同景别间流畅切换,避免了 AI 视频生成中常见的时空割裂感,让画面流转显得合乎逻辑。
当然,现阶段的 AI 还无法做到百分之百的完美。比如在处理最后那个极具张力的鱼眼镜头人物对白时,面部细节仍显露出些许破绽。但它在动态物理规律的遵循上守住了底线,整体瑕不掩瑜,成片的完成度和可用性依然处于高水准。
Cast your mind back to when you learned to drive, ride a bike, speak a foreign language, perform a tracheostomy, or acquire any other skill. Wasn’t confidence the key to your success? Whatever we do in life, confidence is always critical. If you run a business, one of the metrics that are likely to be collected is confidence in your business, as that’s such an important economic indicator. Confidence is every bit as important in computing.
Over the last few weeks I’ve been discovering problems that have been eroding confidence in macOS. From text files that simply won’t show up in Spotlight search, to Clock timers that are blank and don’t function, there’s one common feature: macOS encounters an error or fault, but doesn’t report that to the user, instead just burying it deep in the log.
When you can spare the time, the next step is to contact Apple Support, who seem equally puzzled. You’re eventually advised to reinstall macOS or, in the worst case, to wipe a fairly new Apple silicon Mac and restore it in DFU mode, but have no reason to believe that will stop the problem from recurring. You know that Apple Support doesn’t understand what’s going wrong, and despite the involvement of support engineers, they seem as perplexed as you.
One reason for this is that macOS so seldom reports errors, and when it does, it’s uninformative if not downright misleading. Here’s a small gallery of examples I’ve encountered over the last few years, to bring back unhappy memories.
Maybe you saved an important webpage in Safari 26.1 using its Web Archive format, then a couple of days later discovered you couldn’t open it. There’s no error message, just a blank window, so you try again with the same result. Another site shows the same problem, forcing you to conclude that it’s a bug in Safari. Are you now going to devote your time to obtaining sufficient information to report that to Apple using Feedback? Or to contact Apple Support and pursue its escalation to an engineer who might fortuitously discover the cause?
Silent failures like these are least likely to be reported to Apple. In most cases, we find ourselves a workaround, here to abandon Web Archives and switch to saving webpages as PDF instead. When someone else mentions they too have the same problem, we advise them that Web Archives are broken, and our loss of confidence spreads by contagion.
Honest and understandable error reporting is essential to confidence. It enables us to tackle problems rather than just giving up in frustration, assuming that it’s yet another feature we used to rely on that has succumbed in the rush to get the next version of macOS out of the door.
Eroding confidence is also a problem that the vendors of AI appear to have overlooked, or at least seriously underestimated. It’s all very well using the euphemism of hallucination to play down the severity of errors generated by LLMs. But those can only cause users to lose confidence, no matter how ‘intelligent’ you might think your AI is becoming. Go talk to the lawyers who have been caught out by courts submitting AI fabrications whether they still have full confidence in your product.
希望年底的《疯狂动物城2》、《阿凡达3》能够再续前作的辉煌,票房口碑双丰收。希望明年的《蜘蛛侠brand new day》和《复仇者联盟5》能延续今年《Thunderbolts》的质量,重振漫威电影宇宙和超级英雄题材。希望《奥德赛》、《沙丘3》、《马里奥银河》、《玩具总动员5》等明年的大片都能成功,尽量把某些德不配位的电影票房排名往后挤一挤。
最近AI相关企业的财报都非常好看,行业对AI算力的需求也越来越大,suno v5、sora2、gemini3的表现也都惊艳了互联网,我相信AI泡沫短时间内还不会破裂。但希望AI在高速发展的同时,不要那么快取代普通人的工作岗位,而是成为帮助普通人提高生产力和自身价值的工具。希望硅谷的精英能多反思技术进步的双面性,在追求生产力、效率的同时,也要关心价值理性,在产品中融入更多的人文关怀,真正做到don’t be evil,不要开发个大语言模型就把自己当成造物主了。
One of the most common reasons for looking in the log is when an error occurs and isn’t reported sufficiently. It’s also probably the most common reason for frustration with the log, when you can’t identify the error you were looking for. This article explains why the log may not be a good place to identify the cause of errors.
Claude conned
Perhaps the best illustration of the difficulties faced by those using the log to investigate errors is in Claude’s attempt to diagnose problems with the Clock app.
First, it came across what it classed as a memory allocation error in the entry 00.968273 error com.apple.runningboard [app[application.com.apple.clock.1152921500311884024.1152921500311884029(501)]:1921] Memorystatus failed with unexpected error: Invalid argument (22)
Then it found and misinterpreted a cryptic entry from the kernel that also referred to memory 10.891949 kernel Clock[19237] triggered unnest of range 0x1e8000000->0x1ea000000 of DYLD shared region in VM map 0x5c946da0d472dbbf. While not abnormal for debuggers, this increases system memory footprint until the target exits.
It continued by misreading perfectly normal sequences of entries made by RunningBoard and FrontBoard, involving jargon such as assertion, as pathological cycles. Like someone who had skimmed quickly through a complex detective novel, Claude then jumped to the wrong conclusions.
Riddled with errors
Perfectly normal logs are full of errors, the great majority being expected or benign, and surprisingly few turn out to be reflected in what actually occurs. To demonstrate this, I took a log extract with a total of 25,159 entries excluding Signposts and found that 820 of them contained the word error in their message. So you can expect around 3% of all log entries to mention errors.
This is reversed when you look for entries classed as Error or Fault, which are usually rare and seldom contain information relevant to a problem you’re investigating. This is because many significant abnormal conditions and events are reported in entries that aren’t classified as Error or Fault, and often don’t include the word error in the message.
Process killed
The real error that Claude didn’t find (possibly because it wasn’t included in the submitted log extract) occurred when a key process, mobiletimerd, exceeded its memory allowance, so was killed. The diagnostic sequence of log entries for that ran: 03.099138 kernel process mobiletimerd [19118] crossed memory high watermark (15 MB); EXC_RESOURCE
03.099148 kernel memorystatus: mobiletimerd [19118] exceeded mem limit: InactiveHard 15 MB (fatal)
03.100180 kernel mobiletimerd[19118] Corpse allowed 1 of 5
03.100567 kernel 54578.846 memorystatus: killing_specific_process pid 19118 [mobiletimerd] (per-process-limit 0 0s rf:- type:daemon) 15360KB - memorystatus_available_pages: 1327431
03.100665 com.apple.opendirectoryd PID: 19118, Client: 'mobiletimerd', exited with 0 session(s), 0 node(s) and 0 active request(s)
03.100679 gui/501/com.apple.mobiletimerd [19118] exited with exit reason (namespace: 1 code: 0x7) - JETSAM_REASON_MEMORY_PERPROCESSLIMIT, ran for 110ms
03.100708 gui/501 [100015] service inactive: com.apple.mobiletimerd
To the knowledgeable human, that reads clearly, but doesn’t include general terms like error, so could well be lost on AI.
Process failed
This example should be more readily accessible in the log, but could be overlooked. This occurred when a Spotlight service tried to extract content from a text file that started with certain characters such as LG, resulting in an indexing failure: 30.946740 mdwrite Decoding error: Error Domain=NSCocoaErrorDomain Code=4864 UserInfo={NSDebugDescription=[private]} for [private]
30.951004 mds Decoding error: Error Domain=NSCocoaErrorDomain Code=4864 UserInfo={NSDebugDescription=[private]} for [private]
Error code 4864 is NSCoderReadCorruptError, implying that the presence of characters at the start of a text file may be triggering a bug in RichText.mdimporter, the importer module shipped in macOS that’s responsible for indexing plain text files.
Process halted
My third and final example comes from an examination of why Safari was failing to load and display a webarchive, and illustrates how macOS privacy and security features can halt a process that would otherwise complete successfully.
For Safari to load the main frame, it needed to obtain PolicyForNavigationAction approval. What happened is: 01.154639 com.apple.WebKit Loading Safari WebKit 0x14c19b818 - [pageProxyID=21, webPageID=22, PID=596] WebPageProxy::decidePolicyForNavigationAction: listener called: frameID=24, isMainFrame=1, navigationID=26, policyAction=0, safeBrowsingWarning=0, isAppBoundDomain=0, wasNavigationIntercepted=0
01.154642 com.apple.WebKit Loading Safari WebKit 0x14c19b818 - [pageProxyID=21, webPageID=22, PID=596] WebPageProxy::receivedNavigationActionPolicyDecision: frameID=24, isMainFrame=1, navigationID=26, policyAction=0
01.154666 com.apple.WebKit Loading Safari WebKit 0x14c19b818 - [pageProxyID=21, webPageID=22, PID=596] WebPageProxy::isQuarantinedAndNotUserApproved: failed to initialize quarantine file with path.
01.154666 com.apple.WebKit Loading Safari WebKit 0x14c19b818 - [pageProxyID=21, webPageID=22, PID=596] WebPageProxy::receivedNavigationActionPolicyDecision: file cannot be opened because it is from an unidentified developer.
01.154799 Error Safari Safari Web view (pid: 596) did fail provisional navigation (Error Domain=NSURLErrorDomain Code=-999 "(null)")
What should have happened instead is that the decision was approval: 00.740168 com.apple.WebKit 0xa4bda0718 - [pageProxyID=19, webPageID=20, PID=1035] WebPageProxy::decidePolicyForNavigationAction: listener called: frameID=4294967298, isMainFrame=1, navigationID=25, policyAction=Use, isAppBoundDomain=0, wasNavigationIntercepted=0
00.740172 com.apple.WebKit 0xa4bda0718 - [pageProxyID=19, webPageID=20, PID=1035] WebPageProxy::receivedNavigationActionPolicyDecision: frameID=4294967298, isMainFrame=1, navigationID=25, policyAction=Use
00.740233 com.apple.WebKit 0xa4bda0718 - [pageProxyID=19, webPageID=20, PID=1035] WebPageProxy::receivedNavigationActionPolicyDecision: Swapping in non-persistent websiteDataStore for web archive.
Although reported in an entry classed as Error for once, its consequences aren’t made clear in subsequent log entries.
Error reporting in macOS
When Apple replaced traditional logs with the Unified log in macOS Sierra, it made it clear that the new log wasn’t intended for advanced users or system administrators, but primarily for engineers. However, no provision was made for significant errors to be reported in any more accessible form. None of my three examples were reported directly to the user, who was left unaware of what had happened, and why.
This failure to report errors to users has only led to more bugs being ill-defined and unreported, and has done Mac users a great disservice by eroding confidence.
Strategy
Identifying the cause of an error using the log has similarities with solving a ‘whodunnit’ detective novel. There’s usually no shortage of suspects and clues, although many of those may prove misleading. Tracing a suspect’s whereabouts can often prove decisive in determining whether they were in the right place at the right time, and sometimes establishing how the crime happened is essential to its solution.
One big difference from detective fiction is being able to establish what is normal, and drawing comparison between a normal record of what should happen for comparison against an abnormal extract can be valuable.
Suggestions:
Obtain a complete log record, without the use of predicates, saved either as a logarchive or a LogUI JSON file. Although you’ll find it easier to work with filtered versions, only a complete record has all the entries you might need.
When possible, compare a ‘normal’ sequence of events with the abnormal record.
Identify and trace subsystems and processes specific to the malfunctioning component(s).
Identify and trace subsystems and processes with controlling roles, including LaunchServices, RunningBoard, TCC and security.
Process IDs can be invaluable when tracing.
Turn detective.
AI future
The Unified log might appear an ideal opportunity for AI approaches, but the reality is that we’re still a long way from achieving reliable interpretation by AI.
One severe limitation that’s often overlooked is that current techniques don’t fare well at the scale required. Analysing even a modest log extract involves well over 250,000 tokens, comparable to assessments made by NovelQA. Whereas human performance with those models exceeds 90%, few AI systems can attain more than 70%, and in some cases fail to reach even 50%.
Maybe one day, but for the moment at least humans are likely to remain best at using the log to identify the cause of errors.