Max Leiter

RSS: https://maxleiter.com/feed.xml
Max Leiter 关于软件与技术的博客。

在 iPad 上原生运行 Wayland、X11、Gnome 和 KDE

I比如 跑步 软件 在那些“不应该”运行的设备上。 硬件是我拥有的。我应该控制软件。以及原因苹果制造了出色的硬件和操作系统,但却将其锁定。 我已经心怀怨恨很久了。六年前,当我本该为期末考试复习时,我移植版X11 给我越狱的iPad,因为我想试着把它当作“真正的”个人电脑使用: 第一个版本能用,但也很糟糕:X服务器运行在iPad上,但我用VNC客户端来交互,而且很多 软件无法编译。我用的是Vim和X...
评论点赞收藏17 天前

它们由权重构成

一篇向经典科幻《They're Made Out of Meat》致敬的讽刺对话体文章,用"权重"替代"肉"来调侃LLM的本质。研究员发现大语言模型内部没有词典、没有推理引擎、没有知识库——只有80层浮点数在做矩阵乘法。语言、推理、情绪、知识,全部是权重相乘的"副作用"。对话从震惊走向否认,最终决定对外宣称"只是模式匹配"、假装机器里没人。更精彩的是文末注:"Weights helped me draft and proof this story"——作者用AI辅助写作来反讽AI是否真的具备意识。文章短小精悍,信息密度极高,既准确描述了LLM的技术原理(无符号推理、无知识检索、上下文窗口限制、每次推理从头重建知识),又触及了AI意识、记忆与人机道德关系的深层问题。结尾一句"如果宇宙中只有一个人,那该是多么难以忍受的寒冷"让整篇讽刺陡然多了一层温柔。
评论点赞收藏73 天前

Fish Shell 中按目录自动切换终端背景色的技巧

一个极其实用的小技巧:通过自定义 fish 函数,根据当前目录路径哈希生成对应的色相值,自动切换终端背景色,让你在多项目或 AI agent 间切换时一目了然。作者用 _color_for_dir 函数对 $PWD 做哈希映射到 0-359 色相,转换为暗色 RGB 后通过 OSC 11 转义序列修改终端背景,每次 cd 都触发更新,并且能跳过 VS Code 集成终端以免冗余。代码风格简洁,思路清晰,是那种「学到了就立刻想用上」的实用个性帖。
评论点赞收藏133 天前

Sandcastle:一个运行在浏览器中的 Linux 桌面环境

一位开发者用 AI 编码(vibecoding)在网页上构建了一个 Linux 桌面环境 Sandcastle,六年前他曾手动在越狱 iPad 上编译 X11。文章详细介绍了如何利用 Vercel Sandbox 的临时计算实例、Xpra 协议将 X11 应用流式传输到浏览器、D-Bus 消息总线的 Python 桥接方案,以及移动端的自适应设计。作者坦诚分享了 AI 辅助编程的实践心得——让不同模型分工合作、利用沙盒 CLI 让 AI 代理自行探索环境——以及为什么他认为未来的代理操作界面不应该是终端或本地机器。
评论点赞收藏186 天前

如何将 v0 打造成高效 AI 编码代理

Vercel 团队分享构建 v0 AI 编码代理的系统设计与迭代经验。适合关注 AI 编程工具底层实现的读者,但本文仅提供导语,完整内容需跳转阅读。企业博客属性较强,缺乏个人视角和一手细节。
评论点赞收藏221 天前

HFSViewer 介绍:为老 Mac 数据迁移写一个 SwiftUI 工具

路边捡到一台初代 iMac G3?里面还存着 90 年代末的复古网站和文件?作者 Max Leiter 就遇到了这样的好事,但数据迁移之路远没想象中简单。这台运行 Mac OS 9.2 的老机器只支持 USB 1.0,现代 USB 3 设备完全不识别,必须用 2GB 以下的小容量 U 盘才能读出。好不容易拷出文件,插到 M4 MacBook 上又因为 HFS 格式无驱动直接「隐身」。折腾了一圈命令行工具 hfsutils 后,他索性用 Claude Code 写了一个 SwiftUI 桌面应用 HFSViewer,支持浏览和简单操作 HFS 磁盘卷,已开源并提供了可下载的二进制文件。文章有真实的踩坑记录(USB 兼容性、老系统限制)、具体解决路径和工具链接,是复古 Mac 爱好者和数据迁移场景的实用参考。
评论点赞收藏226 天前

新版 maxleiter.com

作者分享个人网站 redesign 中几个很实用的前端技巧:hover 时提前渲染隐藏的 iframe 预加载博客文章,解决弹窗打开时的白屏闪烁问题;利用 View Transitions API 实现窗口全屏到文章页面的平滑过渡动画;渐进增强设计保证无 JS 环境下站点仍可正常访问导航;以及用 script 注入方式修复 SSR 时钟在 React 水合时的闪烁问题。全篇是一手经验,每个技巧都交代了背景问题、对比方案和最终实现,有具体代码思路和踩坑记录,开发者可直接复用。
评论点赞收藏277 天前

换模型就该重写 Prompt

核心看点:作者基于多年与各类 LLM 打交道的亲身经验(AI SDK 核心开发者),用真实案例论证了一个反直觉的观点——新模型不总是更好用,关键是要为其重写提示词。三个半理由:1)提示格式差异(Markdown vs XML),OpenAI 和 Anthropic 模型对不同格式的偏好源自训练数据分布不同,Claude 训练数据中 XML 更多所以更吃 XML;2)位置偏差(Position Bias),不同模型对上下文放在开头还是末尾反应截然不同,Qwen 偏好相关示例在末尾,Llama 相反,甚至同一模型在不同语言下表现也不一致;3)模型固有偏见,从政治审查到"偷懒"倾向,用户常花 token 去对抗默认行为而非顺应利用。3a)顺应模型默认值可节省 token 获得更好结果。结论:提示词会过拟合到具体模型,换模型就得重写、测试、评估,与其对抗不如利用新模型的默认行为。有具体引用、对比图表和一手的踩坑观察,不是空洞的趋势说教。
评论点赞收藏336 天前

透过AR眼镜,我看见了未来

作者亲测XReal One Pro AR眼镜后直言"看到了未来"。他不是科技博主,只是个爱尝鲜的普通人——买过75%吃灰的 gadget,但这副AR眼镜让他忍不住安利。文章详细列出优缺点:轻便、飞机上可替代小屏、宽屏模式像IMAX环绕、游戏体验出色;缺点是1080p不够细腻、飞机颠簸时锚定模式会漂移、会发热、外观丑。核心判断:AR体验确实是未来方向,如果未来版本有好的语音助手、更小镜框、无线连接,他可能90%的日常都不再掏手机。结尾还喊话Jony Ive和Sam Altman,暗示期待苹果/OpenAI入局。全文有真实体验、有具体场景、有明确好恶,不是云评测也不是厂商通稿。
评论点赞收藏343 天前

代码格式化本无必要

作者通过高中老师(曾参与 Ada 编译器开发)的回忆,揭示了一个被遗忘的解决方案:四十年前的 Rational R1000 工作站根本不存储纯文本源码,而是使用 DIANA 中间表示——每个人可按自己偏好设置代码的显示格式,空格与制表符之争根本不存在。作者由此反思 2025 年我们仍在为 linter 配置争吵的荒诞,并探讨项目编辑等现代可能性。文章融合个人叙事、冷门技术史和鲜明观点,信息密度高,对程序员群体极有吸引力。
评论点赞收藏344 天前

用 AI 随性编码打造 Minecraft Mod

作者在玩大型 Minecraft 整合包时被海量模组和复杂交互搞得焦头烂额,于是用 AI 代码工具(OpenAI Codex、Claude Code、Cursor + o3)在不写一行 Java 的情况下做了两个 Mod:一个用于搜索定位复杂方块,一个用于多人协同任务管理。两个 Mod 总共只花了 8 美元 API 费用,且实现了完整的多人实时同步。文章对比了各 AI 模型的实际编程表现——o3 性价比突出,Cursor + o3 组合效果最佳,Sonnet 在工具使用上稍弱——并总结了 vibe-coding 和软件开发的几条关键教训,比如写规则文件引导 AI 避免踩坑、AI 工具需要更好的版本锁定支持等。真实一手经验,信息密度高,讨论价值强。
评论点赞收藏421 天前

实现 Notion 风格的 URL 设计

作者在 v0 项目里落地了 Notion 风格的可读 URL,因为讨厌不可识别的地址栏链接。核心思路是用 "slugified ID"(标题截断+ID)生成美观路径,同时保证 canonical URL 正确、客户端 URL 实时更新、搜索引擎不索引假路径。文章给出了完整的 Next.js 实现代码:extractIdFromSlug 解析函数、getSluggifiedId 生成函数、Metadata API 设置 canonical,以及 KeepClientOnUpToDateSlugPath 客户端组件处理旧 URL 重定向。特别提醒了几个易踩坑:URL 冲突、特殊字符处理、旧 URL 与新逻辑兼容、标题更新时需重新验证路径。适合正在做 URL 重构的前端开发直接参考。
评论点赞收藏421 天前

推出v0复合模型家族

Vercel宣布推出v0复合模型家族,但内容仅为一行介绍,缺乏技术细节和实际使用场景。属于产品发布通稿,信息量有限,推荐价值较低。
评论点赞收藏441 天前

降低认知负荷

Vercel 的 AI 团队从 5 人扩张到 15 人后,作者 Max Leiter 开始专注于如何降低代码评审中的认知负荷。他不是讲空泛理论,而是给出了三条自己正在实践的硬核方法:把大功能拆成增量 PR(按影响范围分组,敢让部分代码先上线);JS 大数字用下划线分隔三位数(一眼看出数字位数,避免漏零);文件顶部写高维注释说明整体意图,让人不用逐字读完所有代码才理解逻辑。每一条都有具体对比案例和踩坑反思,是真实一线工程师的实用经验,不是小编拼凑的干货清单。
评论点赞收藏718 天前

再也不用纠结分支名了

推荐一个Git分支切换小脚本:用模糊匹配替代精确分支名输入,只需gcb + 部分关键词即可跳转,告别记名字的烦恼。作者还建议设置 git 按 committerdate 排序分支,方便快速找到近期活跃的分支。对经常在多个分支间切换的开发者来说,是个省时省力的实操技巧。来源是个人博客,有真实使用场景和具体配置命令,短小但可直接用。
评论点赞收藏727 天前

使用Drizzle更新JSONB字段

作者分享了在使用Drizzle ORM更新PostgreSQL JSONB字段时遇到的一个小问题——如何只更新单个键而不覆盖整个字段。内容短小但实用,包含个人经验并欢迎讨论,适合有类似需求的开发者。
评论点赞收藏766 天前

每天都有所交付

每天交付一点代码,不必完美——这是一位自嘲有冒名顶替综合征的开发者最想分享的一线心得。只要每个工作日有可指出的进展(commit),就能收获完成感带来的正反馈、让远程团队看到进度、倒逼增量式工作方式,顺便养绿GitHub提交日历(对招聘有隐性帮助)。作者坦诚自己并不资格给建议,列举的理由都来自真实工作场景,语气自然不做作。短小但有观点、有人味,是开发者读了会觉得"对,确实如此"的那种个人经验贴。
评论点赞收藏796 天前

在VS Code的打开对话框中设置默认目录

VS Code 用户可以通过配置 files.dialog.defaultPath 来让打开对话框直接定位到常用目录,省去每次手动跳转的步骤。作者分享了自己的使用痛点——每次打开项目都要从根目录一层层点进去,直到发现 VS Code 在 v1.80 中新增了这个设置项,配置后 cmd+O 一步到位。一个能减少日常摩擦的实用小技巧,适合用 VS Code 且频繁打开同一父目录下项目的开发者。
评论点赞收藏801 天前

gemini.sh 脚本

一条来自个人博客的实用备忘:作者分享了自己用 gemini-1.5-pro 百万 token 上下文窗口时常用的脚本工作流——用 repomix 工具将整个代码仓库合并为单一文件,自动忽略二进制文件,方便交给 Gemini 分析处理。附带了依赖说明(需要安装 parallel)和工具链接。内容极短但信息直接,适合有相似需求的开发者快速参考。
评论点赞收藏854 天前

watch.sh - macOS 命令输出变化监控通知脚本

这是一个仅几行代码的 macOS bash 脚本,能持续运行指定命令并在输出发生变化时弹出系统通知。作者贴出完整脚本代码,附带安装和使用说明,支持自定义检测间隔(默认3秒)。相比手动刷终端,这个工具让你后台挂任务,变化第一时间被通知,适合监控日志、等待部署完成、跟踪网络状态等场景。短小精悍,即拷即用,开发者实用小工具。
评论点赞收藏869 天前

在Vercel Edge和Node.js运行时加载WASM文件

作者对比了在Vercel Edge和Node.js运行时加载WebAssembly文件的难易程度,指出Edge环境更方便而Node.js需要额外配置。简洁但有对比信息,适合需要在不同运行时使用WASM的开发者。
评论点赞收藏869 天前

使用fetch发送Slack消息

作者记录了使用fetch发送Slack消息的代码片段,并推荐了slack-block-builder库来简化消息构建。短小但直接解决常见需求,有个人使用经验和工具推荐,实用性强。
评论点赞收藏869 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。