展示 HN:TrueType 字体中的二维码渲染器1 分•作者: foodevl•4 个月前在昨天的“Libre Barcode Project”讨论中,1bpp 问道:“有人愿意为了将 QR 渲染器实现为 TTF 提示代码而牺牲自己的理智吗?” 是的。我有一些闲置的代币,而且很好奇……结果发现,这是可行的。这个项目是 Gemini、GPT 和 Claude 混合使用的结果(具体取决于哪个的使用限制先耗尽)。
Show HN:Engye – 通过扫描二维码在任意两台设备之间传输文件3 分•作者: psafronov•4 个月前四月初,我需要在图书馆打印一些税务表格,这是我很久以来第一次去图书馆,于是我开始思考:有没有最简单的方法能把文件传到公共电脑上? 有很多方法,但大多数都需要你在某个地方创建账户,或者插入一个U盘。我使用密码管理器,所以我的密码都很长很复杂,不容易输入。我不想在公共电脑上插任何东西,也不想把我的税务信息上传到某个不知名的网站。 我设想了一个有用的产品应该是什么样子,大约一个小时后,我搭建了第一个版本,它是一个静态的 Vite TS 网站,托管在 GitLab Pages 上,利用二维码通过 WebRTC 连接两个网站实例。 现在我只需要在图书馆的电脑上访问一个网址,扫描生成的二维码,在手机上选择税务文件,图书馆的电脑就会立即下载。 图书馆之行结束后,我进一步研究了这个领域,发现没有人解决了跨网络、无需安装、无需账户、无需云存储的特定组合问题。Snapdrop 和 PairDrop 是类似的网站,但它们仅限于局域网或需要一个公共房间。LocalSend 需要在两个设备上都安装软件,这对于公共设备来说不切实际。而其他解决方案要么是硬件锁定的(AirDrop、Quick Share),要么需要将文件上传到云端(Google Drive、Dropbox),要么通过自己的服务器传输数据(Wormhole)。 于是,凭借决心、业余时间的编码以及大量的范围蔓延,我们有了…… Engye,发音为“an-jee”,类似于名字 Angie,可以在 [https://engye.fuzzyworld.net](https://engye.fuzzyworld.net) 上找到,只需一个二维码和无需账户即可完成许多操作: - 发送文件:用户从你的浏览器标签页下载 - 收集文件:用户上传文件到你的浏览器/桌面 - 剪贴板共享:用户共享一个文本框,适合分享短文本 - 虚拟驱动器:Engye Drive 允许你创建和挂载一个虚拟U盘 我想我可能在最后一个功能上有点得意忘形了。¯\\\_(ツ)\_/¯ 我最初的希望是让U盘在大多数用途上变得过时。(我差点把这个项目命名为“我们打破U盘”,以致敬《辛普森一家》,但没能成功。)现在是2026年了,在设备之间传输文档应该是一件极其简单的事情! 所以我决定做这个显而易见且简单的项目,我认为它可以对很多人有所帮助。用这个应用传输4K电影并不实际(大文件会因为数据被加载两次而导致浏览器崩溃),但对于大多数人传输少量图片和文档的用例来说,这个项目应该能大大简化事情。 在基础功能实现后,Engye Drive 是一个有趣的、技术性的补充。我真的很想通过扫描二维码就能连接一个虚拟驱动器。这个Web应用提供了对Engye Drive的完全访问,并且通过安装一个npm包,你甚至可以在Finder或Explorer中自动挂载该驱动器。 为了安全,该应用使用AES-256-GCM加密,并且每次请求都有新的初始化向量(IV),因此你的数据在浏览器之间始终是加密的。如果使用了TURN或其他中继服务器,它们也看不到明文,所以你免受中间人攻击(MITM attack)。加密密钥包含在二维码中,所以只有扫描你代码的人才能与你共享数据。 没有账户,关闭浏览器就会终止连接。如果你需要更长的会话或离线使用,可以安装Android/iPhone应用,让Engye在后台运行。 这个项目也作为我个人在智能代理编码方面的一次实验。我设计了应用,指示Claude来实现它,然后在与Claude交流了大约三个月后,迭代开发了该应用。 代码托管在GitLab上,遵循AGPL-3.0协议——免费使用和自托管:[https://gitlab.com/PavelSafronov/engye](https://gitlab.com/PavelSafronov/engye) 我很乐意听取大家的意见。
Show HN:2026 年 FIFA 赛程预测器 – 查看实时观众百分比,了解选拔情况1 分•作者: apostophet•4 个月前这是在副项目(quizzy.earth)的基础上构建的。<p>有趣的技术挑战在于“最佳第三名”的座位逻辑——国际足联(FIFA)预先发布了一个包含495行的查找表(附件C),涵盖了所有可能的第三名晋级组合。人工智能(AI)不断“幻觉”出错误的赛制规则,所以我最终阅读了实际的竞赛条例PDF。495种场景中的每一种都有多达24,000种有效的赛程安排;国际足联为每种场景预先确定了一种,因此比赛当晚不会有任何歧义。<p>对于一个未完成的赛程,我回退到二分匹配算法(优先安排约束最多的队伍)。一旦所有8支第三名队伍确定,系统就会切换到官方查找表。<p>无需注册。匿名选择。好奇HN认为赛程会是什么样子。
Show HN:Pressn't,一个可以发布单条帖子的网站2 分•作者: DanielVZ•4 个月前我重新上线了这个几年前我创建的网站。面对我们被海量低劣和非人类内容轰炸的现状,社交媒体对我来说吸引力越来越小。因此,我创建了这个网站,你可以在这里发布一条帖子。它的目的是迫使你分享你真正认为值得分享的内容,无论是因为它有趣、引人入胜、个性化等等。
快速反馈循环是关键2 分•作者: skyglider•4 个月前我一直在思考“室内五人制足球效应”——即巴西足球运动员如何通过一种限制性的、每队五人的小场地比赛,然后过渡到每队十一人的全场比赛,从而发展出卓越的技能。我的理解是,这种限制是为了让最重要的、最难的技能在快速、即时的反馈循环中得到训练。 当我将其应用于构建东西时,我意识到很多时候人们倾向于过分看重性能和美学。大多数人还没有达到需要担心这些事情的程度。它们并不是瓶颈。你可以先用 Bootstrap 来处理美学问题,以后再担心原创性。我可能很愚蠢,但 Python + Quart + Sqlite(使用 aiosqlite)+ HTML/CSS/HTMX/以及任何你需要的 JavaScript 似乎已经足够了(至少对于 SaaS 来说)。
Show HN:KV-psi,使用 Linux PSI 来修剪 LLM KV 缓存1 分•作者: infiniteregrets•4 个月前我认为使用 Linux PSI(压力停滞信息)来优化 LLM 运行时以削减 KV 缓存会很有趣。我认为这主要对 Jetson Orin super nano kit 这样的边缘设备有用,它们拥有统一内存。我还没有进行太多基准测试,但计划随着时间的推移进行更多测试,看看我是否能真正利用它来运行本地 LLM。如果这个想法可行,请告诉我 :P(我当然很喜欢这个主意)
Show HN:Sasso – 純 Rust 編寫的 SCSS 編譯器,位元組級別精確匹配當前 dart-sass1 分•作者: linyiru•4 个月前Sasso 是一个纯 Rust 编写的 SCSS 转 CSS 编译器(dart-sass 的替代品)。 <p>零依赖,wasm 友好,支持库和命令行。