每日HackerNews RSS

## 新的 <geolocation> HTML 元素改进了位置访问 从 Chrome 144 开始,开发者可以使用新的 <geolocation> HTML 元素来请求用户位置。这标志着从 JavaScript 触发的权限提示转变为更以用户为中心、声明式的方法。广泛的测试,包括与 Zoom、Immobiliare.it 和 ZapImóveis 的源试用,显示出显著的改进——位置错误减少高达 46.9%,先前被阻止的权限恢复率达到 54.4%。 <geolocation> 元素简化了代码,减少了浏览器干预(例如静默阻止重复提示),并提供了更清晰的用户意图。它从通用的 <permission> 元素概念演变为一个专门的控件,用于摄像头/麦克风访问的 <usermedia> 元素也在开发中。 与传统的 Geolocation API 不同,该元素充当数据中介,由用户点击触发,提供自动刷新和通过 `onlocation` 事件简化错误处理。样式受到限制,以确保清晰并防止欺骗性做法。开发者可以实现渐进增强,为不支持的浏览器提供回退,甚至可以使用 polyfill 以获得更广泛的兼容性。

## 地理位置 HTML 元素讨论 - Hacker News 摘要 最近 Hacker News 的讨论集中在谷歌提出的新的 `<geolocation>` HTML 元素上,旨在改善用户对位置权限的使用体验。目前,用户经常会阻止位置请求,因为他们不确定数据的使用方式。这个新元素旨在提供更清晰的、选择加入的方式,可能通过更容易地重新启用之前被阻止的权限来减少“高拒绝率”。 然而,讨论显示出显著的怀疑态度。担忧范围从潜在的点击劫持漏洞到谷歌的动机,许多人怀疑这项改变是为了增加数据收集,而不是增强用户隐私。一些人认为谷歌已经通过 IP 地址和其他跟踪方法获得了足够的位置数据。 更广泛的讨论涉及谷歌推动有利于自身利益的网络标准的历史,以及用户对权限需要更多的控制。虽然一些人认为该元素朝着情境权限迈出的积极一步,但另一些人担心它会被用于欺骗性设计,并进一步侵蚀用户隐私。一个相关的用于像摄像头访问这样的功能的 `<permission>` 元素也在讨论中,突出了更广泛的努力,旨在改善网络上的权限处理。

## 使用 QEMU 进行裸机 RISC-V 编程:摘要 本文详细介绍了如何使用 QEMU 虚拟机编写和运行 RISC-V 机器的裸机程序。目标是在没有操作系统或库的情况下,直接在硬件上执行自定义代码。 QEMU 模拟启动过程,从内存地址 0x1000 的零阶段引导加载程序 (ZSBL) 开始。用户代码从 0x80000000 加载开始,有效地替换了标准的 OpenSBI 引导加载程序。这通过 QEMU 中的 `-bios` 标志实现,该标志接受一个 ELF 二进制文件。 本文介绍了用 RISC-V 汇编语言创建一个简单的“hello”程序、使用交叉编译器汇编它,并使用自定义链接器脚本将其链接起来,以确保它加载到正确的内存地址。该程序通过虚拟 UART 设备输出字符串“hello”,可以通过 QEMU 的串口查看。 本质上,该过程包括创建包含机器代码的 ELF 文件,指示 QEMU 将其加载为初始启动镜像,然后通过模拟的串口连接观察输出。GitHub 仓库提供了一个预构建的 Makefile 来简化该过程。

一个Hacker News的讨论围绕着一份新的RISC-V裸机编程指南。用户发现RISC-V汇编语言令人愉快,因为它很简单——小指令集使得代码优化和理解执行时序变得容易,这与AMD64等架构的复杂性不同。 然而,一些评论员指出,诸如流水线、乱序执行和缓存等现代CPU特性会使性能分析变得复杂,无论指令集如何。一位用户认为RISC与CISC的争论现在主要集中在解码器芯片的使用上。其他人则抱怨RISC-V汇编的工具有限,并认为缓存性能常常掩盖了指令级别的优化。 尽管有这些观点,但人们对RISC-V作为平台仍然充满热情,并建议开发类似TIS-100风格的游戏,使用真实的RISC-V汇编。一位乐于助人的用户还提供了指南示例中缺失的链接器命令。

## Handy:你的私密离线语音转文本工具 Handy 是一款免费、开源且跨平台的桌面应用程序,用于离线语音转文本转录。它使用 Rust 和 React/TypeScript 构建,优先考虑隐私,通过本地处理音频——你的声音*绝不会*离开你的电脑。 只需配置一个键盘快捷键,说话,Handy 就会将转录的文本粘贴到任何应用程序中。它利用 Whisper 模型(具有 GPU 加速)或 CPU 优化的 Parakeet V3,提供灵活性和性能。 Handy 被设计为高度可扩展和“可分叉”,鼓励社区贡献。虽然正在积极开发中,但目前已知存在一些限制,包括 Whisper 在某些系统上可能崩溃,以及对 Linux 上 Wayland 的支持有限(需要 `xdotool` 或 `wtype` 进行文本输入)。 对于位于代理服务器后或具有网络限制的用户,提供手动模型安装。开发工作正在进行中,路线图侧重于调试、键盘改进和增强设置。在 GitHub 上查找详细说明并参与贡献!

## Handy:一款免费且开源的语音转文本应用 Handy 是一款新的、本地运行的开源语音转文本应用程序,作为 WhisperFlow 和 SuperWhisper 等付费选项的强大替代品,正逐渐受到欢迎。用户称赞它的速度和准确性,尤其是在与 Parakeet V3 模型配合使用时。 许多人发现它在编码方面特别有用,可以直接口述命令,或与 Claude Code 等 AI 代理一起转录和解释语音指令。Mac 用户也可以使用 CLI 版本。 讨论中强调了对编程特定微调、改进技术术语处理以及与 Claude Code 等工具直接集成等功能的需求。开发者正在积极改进,包括 LLM 后处理以获得更好的文本清理和用于自定义单词的词典。目前主要关注英语,但也正在探索对其他语言(如普通话和德语)的支持。

## Dith:基于终端的图像抖动 “Dith”是一个用Zig编写的命令行工具,它使用五种经典的抖动算法(边缘、Atkinson、Floyd-Steinberg、蓝噪声和Bayer)将图像或实时摄像头馈送转换为类似盲文的图案。 它被设计为简单易用,仅需要Zig 0.15.1+和macOS的摄像头功能,没有外部依赖。用户可以指定输入源(摄像头或文件 - PNG、JPEG、BMP)、抖动模式,并调整诸如灵敏度(+threshold)和颜色反转(+invert)等参数。 每种抖动模式都提供独特的美学效果,从类似草图的轮廓到平滑的渐变和复古的8位图案。该工具内置了macOS原生摄像头集成,并提供优化性能的选项。安装涉及克隆GitHub仓库,使用Zig构建,并将二进制文件添加到您的PATH中。 在这里找到它:[https://github.com/user/dith](https://github.com/user/dith)

Rast是一个实验性项目,旨在高效检测中央库尔德语(索拉尼语)文本中的拼写错误,尤其是在网络连接中。其关键组成部分是**K8**,一种新的库尔德语8位编码标准,旨在克服UTF-8编码在非ASCII字符方面的效率低下。K8还包含一个页脚,以与现有的UTF-8字符保持向后兼容。 该项目利用自定义传输协议,专注于最大限度地减少数据传输。系统在初始细节传输后,不重复发送完整的错误细节,而是传输错误*引用*。错误数据结构包含错误和细节的数量、指示文本中错误位置的偏移量,以及用于标题和描述的紧凑标题。 该协议通过缓存错误细节并使用索引将其链接到特定错误,从而优化效率,减少WebSocket连接中的冗余。虽然考虑过基于位的流传输,但开发成本被证明过高。

黑客新闻 新的 | 过去的 | 评论 | 提问 | 展示 | 工作 | 提交 登录 我为我的应用设计了一个自定义协议 (roj.dev) 8 分,_roj 发表于 22 小时前 | 隐藏 | 过去的 | 收藏 | 2 条评论 Orochikaku 发表于 20 小时前 [–] 请考虑在你的头部添加一个版本号。 catlifeonmars 发表于 20 小时前 | 父评论 [–] 是的。或者只是在开头保留一个必须为零的部分,将来可以升级为版本号。这实际上与版本号相同,但在语义上更灵活,因为你还没有决定版本模式。 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系方式 搜索:

## AI & 开发更新 - 2026年1月10-12日 本周重点关注 Anthropic 的 **Claude Cowork**,这是他们强大的编码代理(之前名为“Claude Code”)的新界面,现在 Max 订阅者可以访问。它本质上为运行代码任务提供了一个文件系统沙箱,利用 Apple 的虚拟化框架来保障安全。虽然与 Claude Code 类似,Cowork 旨在通过简化界面和自动处理沙箱来提高可访问性。尽管 Anthropic 采取了缓解措施,但仍然存在对“提示注入”漏洞的担忧,强调在授予对敏感文件的访问权限时需要谨慎。 与此同时,**Fly.io 推出了 Sprites.dev**,提供开发者 *和* API 沙箱。Sprites 提供持久的、可检查点的环境,以安全地运行像 Claude Code 这样的编码代理,解决了“YOLO 模式”的风险,并提供了一个 JSON API 用于安全的代码执行。 该通讯还讨论了 LLM 驱动的代码移植的伦理问题,倡导对 AI 生成的代码进行明确的许可和标记(“alpha slop”)。最后,它强调了 AI 对开源开发的影响以及适应这种不断变化的格局的重要性。 **分享的链接:**一个使用 AI 构建的无代码库,对 AI 在开发中作用的积极看法,Superhuman AI 电子邮件泄露事件,以及一个霓虹灯招牌制作课程。

## Claude Cowork:初步印象与讨论 这次Hacker News讨论围绕着Anthropic的Claude Cowork的初步体验,这是一款旨在超越代码相关任务的新型AI工具。核心观点是,虽然功能强大,但目前有效利用Claude Cowork——以及LLM通常——需要高超的提示词技巧,常常类似于程序员的思维方式。 许多评论者认为,清晰、详细的提示词能产生最佳结果,但质疑普通用户是否具备这种能力。一些人建议语音输入作为一种替代方案,以帮助那些不擅长编写精确提示词的用户。另一些人强调了像Claude这样的工具可以自动化复杂任务的潜力,例如简历筛选和视频编辑。 一个反复出现的主题是,即使AI输出令人印象深刻,也需要人工监督,因为存在潜在的错误和数据隐私问题。 几位用户也指出了与现有工具和扩展程序更好地集成的必要性。 最终,对话表明Claude Cowork代表着一个重要的进步,但其全部潜力取决于使其力量能够被更广泛、技术水平较低的受众所访问。

## Eigent:你的开源AI劳动力 Eigent 是一款桌面应用程序,允许用户构建和部署定制的AI“劳动力”,以自动化复杂任务。它基于开源的CAMEL-AI框架构建,利用多智能体系统进行并行处理,并通过本地部署优先考虑数据隐私。 主要功能包括用户友好的界面,无需任何设置,协调多个AI智能体(如开发者、搜索者和文档创建者),以及通过模型上下文协议(MCP)支持自定义模型和集成——包括网络浏览、代码执行以及与Slack和Google Suite等流行平台的集成。 Eigent是完全开源的,提供透明度和社区贡献。它可以本地运行以实现完全的数据控制,也可以通过托管云平台运行。提供SSO和定制开发等企业级功能。该系统动态分解任务,利用专门的智能体并在需要时请求人工输入,例如行程规划、财务报表生成和市场分析。

## Eigent:开源 Claude 替代方案 Eigent 是一个旨在成为 Claude 替代方案的新开源项目,提供一个可本地部署的 AI 助手 (github.com/eigent-ai)。它*可以*利用 Anthropic 等的付费 API,但一个关键特性是能够通过与 vLLM、Ollama 和 LM Studio 等工具集成,完全离线运行本地模型。 Hacker News 上的讨论集中在“开源”的定义上——一些人质疑该标签,因为其可选的 API 使用和定价页面。然而,支持者强调完全本地部署选项,零外部依赖,真正开源并提供完全隔离。 用户正在探索哪些开放权重模型与 Eigent 配合效果最好,建议指向 Telecom Bench 等基准测试,以寻找潜在候选模型。

该项目旨在复制专业级、昂贵的EO/IR云台(用于飞机跟踪)的稳定性,使用消费级PTZ摄像头实现。挑战在于摄像头的电机反应迟缓且有阻尼,不适合跟踪快速移动的飞机。解决方案是将控制从机械转向复杂的软件。 构建了一个定制控制环,融合了视觉跟踪(OpenCV & CSRT识别飞机特征)、预测(卡尔曼滤波器估计未来位置并考虑延迟)和控制(PID环,并结合基于预测速度的前馈控制)。这使得摄像头能够*提前*跟踪目标,而不是被动地响应其运动。 此外,一个“虚拟云台”可以数字稳定图像,补偿机械缺陷。该系统还集成了ADS-B遥测数据,将视觉跟踪与飞机识别相关联。 该项目在Github上公开,探索了“sousveillance”(将ISR技术适应于民用)——提高对空域的感知能力,以及用于监视的工具。

## 天眼项目:自制飞机追踪器 天眼项目,被称为“家庭版Wescam”,是ianservin.com上详细介绍的一个引人入胜的DIY项目,它成功地使用廉价的云台相机、OpenCV、卡尔曼滤波和PID控制来追踪飞机。作者克服了最初的相机控制延迟问题——这是一个常见问题,因为这些相机设计用于缓慢平移,而不是追踪快速移动的物体。 该系统通过预测飞机运动并补偿相机的固有延迟,实现了“稳如磐石、像素级追踪”。它甚至可以与ADS-B数据集成,以识别目标并在屏幕上显示信息。 Hacker News上的讨论揭示了潜在的升级,例如使用直驱电机以获得更快的响应速度,利用现有的无人机组件,以及探索替代追踪方法,如汽车雷达。用户还建议集成ONVIF兼容性,并利用OpenCV的GStreamer支持以获得更低延迟的视频流。评论员们称赞了该项目的“sousveillance”(反监控)特性和整洁的代码。

Safari 技术预览版现在支持 CSS Grid Lanes,这是一种新的布局能力,允许内容自然地在列或行中流动——非常适合无人为截断的砌体式布局。与传统的网格流不同,Grid Lanes 垂直于定义的布局形状流动,这意味着内容跨列或沿行填充。 理解这种流动可能比较棘手,因此 Safari 在其增强的网格检查器中引入了“顺序编号”。此功能直观地显示 HTML 内容的顺序,阐明了项目如何排列以及受 CSS 的影响。这对于可访问性尤其重要,可确保逻辑 Tab 键和屏幕阅读器体验。 Safari 的检查器(Grid 和 Flexbox)也以其精细的细节而闻名——无限叠加、流畅的性能、清晰的视觉区分以及全面的容器列表。顺序编号在 Safari 技术预览版 235 中可用,并鼓励通过 Bluesky 或 Mastodon 提供反馈,以进一步完善这个强大的新工具。

## Safari 新的 CSS Grid Lanes 与开发者工具讨论 一则 Hacker News 讨论围绕 Safari 对 CSS Grid Lanes 的新支持展开,该布局特性提供类似砌砖效果。Safari 被认可为与 Chrome 和 Firefox 一样“优秀的浏览器”,但其实现和开发者工具引发了争论。 用户强调了 Grid Lanes 的潜在用例,例如具有交错内容的响应式布局,但指出其必要性有限。一个主要抱怨点在于 Safari 的开发者工具,许多人认为它们笨重且缺乏功能,与 Chrome 和 Firefox 相比——尤其是在 JavaScript 调试、内存检查以及 iOS 远程调试方面。 可访问性和成本也被提及,开发者对需要 Apple 硬件才能调试 Safari 特有问题感到沮丧。尽管有这些批评,一些人仍然为 Safari 辩护,理由是其电池续航、性能以及与 Apple 生态系统的集成。另一些人承认它的缺点,但认为它比其他选择“最不糟糕”,而有些人则依赖于浏览器扩展或虚拟机等解决方法来解决限制。这场对话凸显了跨浏览器兼容性持续存在的挑战以及开发者在支持 Safari 时面临的挫折。

## 使用 Node.js AsyncLocalStorage 解决 DrizzleORM 日志记录问题 作者在从 `slonik` 切换到 `DrizzleORM` 的 beta 版本用于 Postgres 数据库时,遇到一个日志记录方面的挑战。`Drizzle` 的日志记录能力有限,只能提供查询和参数在*执行前*的信息——诸如执行时间和行数等关键数据是不可用的。 现有的解决方法涉及有风险的 JavaScript 原型操作,作者希望避免这样做。回忆起之前读过的一篇文章关于 Node.js 的 `AsyncLocalStorage`,作者意识到它提供了一个优雅的解决方案。 `AsyncLocalStorage` 允许在异步操作过程中维护上下文数据,类似于 React 中的 `useContext` 或线程本地存储。通过在数据库调用开始时创建上下文,用初始数据填充它,并让 `Drizzle` 的日志记录器添加查询细节,作者可以在操作完成后访问完整的结果(包括执行时间和行数)。 这种方法避免了侵入性的修改,提供了类型安全,并能与现有的日志记录基础设施无缝集成。作者指出 `AsyncLocalStorage` 是一种强大的模式,被其他库如 OpenTelemetry 和 Sentry 使用,并希望这个例子能帮助其他人认识到它的实用性。

黑客新闻 新的 | 过去的 | 评论 | 提问 | 展示 | 工作 | 提交 登录 使用 AsyncLocalStorage 升级 DrizzleORM 日志记录 (numeric.substack.com) 12 分,由 bihla 发表于 22 小时前 | 隐藏 | 过去的 | 收藏 | 1 条评论 nickdeis 发表于 20 小时前 [–] 我构建了一些类似的东西来处理 drizzle 中的事务/保存点:https://github.com/nickdeis/drizzle-transaction-context 其他语言如 python 和 golang 也有类似的概念,但 AsyncLocalStorage 具有非常适合异步编程的 API。它也与 drizzle 的保存点实现很好地结合,因为 AsyncLocalStorage 和保存点都可以嵌套。回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

更多

联系我们 contact @ memedata.com