Max Leiter

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

好的表情搜索不需要 Jev

<p><em>本帖的网页版中有一个互动表情符号搜索演示。</em></p><p>发生了很多最近很热烈,而且是有原因的。它对大多数开发者来说很新颖,价格非常便宜,而且有很多很酷的应用场景。</p><p>我看到的问题是很多人把Jev看作锤子,而且很多<em>分类</em>任务就像钉子一样。当你需要一些大型语言模型(LLM)推理时,你应该用Jev。</p><p>例如,看看这条推文:</p><p></p><p>说清楚点,我并不打算针对格格利或利纳尔。但我认为这两人都犯了错。</p><p>两年前,我做了语义表情符号搜索,但没有大语言模型,只有嵌入。它比Jev更快、更便宜,有时甚至更好(孩子们都说“帕累托莫格”)。</p><p>现在,说说搭建数据库和嵌入模型或嵌入提供商比单纯用Jev要麻烦得多。两年前我宁愿用Jev,也不用Opus 3/GPT-4-turbo抓取Vercel所有的Slack表情符号,让它正常工作。</p><p>但这已经不是两年前了,现在的模型完全有能力自动完成工作。</p><p>关于刮除Slack表情的顺便一提</p><p>我没有使用Slack所需的管理员权限.不过,通常所有正式Slack成员都可以访问“自定义表情符号”页面。所以我让一个LLM写了脚本,粘贴到开发工具里,让我爬取网页并下载表情符号到我的笔记本。<br><br>效果非常好。</p><p>在我写这篇文章和跑完一些差事(~一个小时)期间,Claude 已经在 Jev 和各种嵌入模型之间建立了基准测试.</p><p>Jev的质量略好一些,但成本高出10…</p>
评论点赞收藏3 天前

再见 Next.js,我用 AI 写了个定制框架

<figure><img src="https://tddeuevmbjbaaeoi.public.blob.vercel-storage.com/blog/thank-u-next/thank-u-next.png" alt="The cover of Ariana Grande's album Thank U, Next: the title repeated in many fonts on a pink background"></figure><p>最近关于定制/个人软件和大型语言模型(LLM)的讨论很多。我一直是它的超级粉丝——我写这篇文章时正处于一个我为自己创造了。<br><br>最近我一直在思考框架的未来。两者巧妙交汇,似乎是一个个人框架。</p><p>所以从9月1日起,这个网站不再运行在Next.js上。取而代之的是,它由Fable架构和Opus实现的定制定制框架构建。如果这是商业项目,我可能会继续用Next,但事实并非🤷如此</p><p>本网站整体上是- 它是完全静态的,构建时会编译成 HTML。但它需要大量 React 和一些不简单的构建时处理,比如.我给《Fable 5》(用claude代码CLI)赋予了以下内容:</p><blockquote>我对用AI进行按需编码很感兴趣——Claude能否理论上打造一个按需定制的“网络框架”,<em>更快</em>比专门为这个网站设计的NextJS还要好吗?它能支持我们需要的那些功能吗?它还能部署到Vercel吗?帮我在这里看看情况,如果可行我们会发货——你负责协调Opus子代理。用OPUS做任何子代理,因为你是一个非常棒的类似AGI但价格昂贵的模型。一定要仔细操作[原文如此]</blockquote><p>~3小时工作后,我终于有了东西可以看。</p><p>我就让数字自己说话吧:</p><h2>之前与之后</h2><table><thead><tr><th></th><th>Next.js</th><th>定制</th><th>变化</th></tr></thead><tbody><tr><td><strong>主页</strong></td><td></td><td></td><td></td></tr><tr><td>HTML</td><td>24.7 KB</td><td>16.3 KB</td><td>-34%</td></tr><tr><td>JavaScript,渴望</td><td>208 KB,11个文件</td><td>2.3 KB (1 KB inline runtime + ana…</td></tr></tbody></table>
评论点赞收藏29 天前

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

<p>I 在那些“不应该”运行的设备上。</p><p>硬件是我拥有的。我应该控制软件。以及<em>原因</em>苹果制造了出色的硬件和操作系统,但却将其锁定。</p><p>我已经心怀怨恨很久了。六年前,当我本该为期末考试复习时,我给我越狱的iPad,因为我想试着把它当作“真正的”个人电脑使用:</p><p>第一个版本能用,但也很糟糕:X服务器运行在iPad上,但我用VNC客户端来交互,而且很多<br>软件无法编译。我用的是Vim和Xterm,看起来像90年代的东西。</p><p>随着经验和LLM的积累,我能走得更远。</p><p>有一个“slop wiki”可以在更多信息,代码启动.</p><p>一些截图:</p><h2>X11</h2><p>如果你不熟悉X11,这篇帖子假设你有基本的理解,但简而言之;DR:这是一个窗口服务器和协议<br>许多设备使用。它描述了屏幕上的物体(即窗户)是如何被绘制的。窗口管理器告诉X11(或Wayland,现代X11的替代品)<br>其中应绘制窗口,X 负责通知客户端绘制窗口。</p><p>苹果甚至用过一段时间,之后才转向(如果你曾经使用过, 用于在石英显示器上渲染X窗口)。</p><p>在macOS、iOS和Windows上,你的窗口服务器和桌面环境都是为你决定的。<br>在Linux上,你可以选择(或省略)底座、通知、菜单栏、窗口管理;其实你想换什么都可以。</p><p>因为苹果设备是Unix,我一直觉得你不能直接编译和运行这些包在iOS设备上。回到…</p>
评论点赞收藏62 天前

它们由权重构成

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

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

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

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

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

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

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

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 爱好者和数据迁移场景的实用参考。
评论点赞收藏271 天前

新版 maxleiter.com

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

换模型就该重写 Prompt

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

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

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

代码格式化本无必要

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

用 AI 随性编码打造 Minecraft Mod

<p>{/ eslint-disable react/jsx-no-undef /}</p><p>如果你还不太了解 Minecraft 模组社区的规模,那它真的非常庞大。有些模组的制作精良程度甚至超过了众多3A大作。</p><p>最好的例子就是 :</p><p>{</p><p>}</p><p>所以当我时隔许久再次开始游玩时,确实有点不知所措。</p><p>目录</p><p>问题</p><p>随着我和几位朋友开始玩“Divine Journey 2”模组包, 面对数量庞大的模组化方块和物品,我感到应接不暇。</p><p>举个例子,仅来自16个模组的“发电机”就有54种:</p><p>{OpenAI Codex(命令行工具)、 和 帮了我一把:</p><p>• TileFinder(、):可以搜索、筛选,并轻松定位所有模组中的 TileEntity(复杂方块)</p><p>• 未命名的项目管理模组:一款用于多人游戏的模组项目管理工具</p><p>在开发这个项目的过程中,我完全没有受到任何伤害,也没有编写任何Java代码。关于模型和编码体验的更多信息见下文;如果你对这些模组不感兴趣,可以折叠这部分内容。</p><p>TileFinder</p><p>{</p><p>点击展开</p><p>你可以绑定一个快捷键,打开一个界面来筛选并搜索你附近的特定方块:</p><p>当你选中某个物品时,会有一条(完全可配置的)路径指向它。</p><p>}</p><p>未命名的项目管理模组</p><p>{</p><p>点击展开</p><p>我和朋友们在这个模组包里有很多任务要做(它有一个庞大的任务系统和进度机制),而要跟踪我们需要的物品或各项子任务也变得很麻烦。<br><br>有一次,我的朋友半开玩笑地提议…</p>
评论点赞收藏466 天前

实现 Notion 风格的 URL 设计

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

推出v0复合模型家族

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

降低认知负荷

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

再也不用纠结分支名了

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

使用Drizzle更新JSONB字段

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

每天都有所交付

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

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

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

gemini.sh 脚本

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

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

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

登录芦苇

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