每日HackerNews RSS

## EyesOff:构建偷窥检测模型 为了保护用户免受偷窥,我为我的应用EyesOff开发了一个定制的深度学习模型,因为合适的预训练模型由于许可或任务特异性而不可用。核心挑战是缺乏用于检测有人是否正在看屏幕的标记数据集。 我通过手动标记超过20,000张图像来构建数据集,最初使用FFHQ和自拍数据集,然后专注于视频会议数据集(VCD)。一个关键步骤是使用OpenVino的注视估计模型生成合成注视标签。 最终模型基于EfficientNetB0,并采用两阶段方法进行预训练(注视回归然后屏幕接触分类),在近距离和中距离上实现了大约**71%的准确率**。通过使用更多图像扩展数据集,显著提高了中距离检测能力,这对于识别潜在的偷窥者至关重要。 未来的工作包括进一步的数据收集、模型尺寸减小,以及探索像YuNet这样的架构以提高效率。该项目强调了定制数据集和数据扩展对于深度学习成功的的重要性。

## EyesOff:屏幕接触检测总结 一位开发者在Hacker News分享了他们的项目“EyesOff”,一个用于提醒用户潜在偷窥的屏幕接触检测模型。该模型使用网络摄像头来识别是否有人在看屏幕,旨在保护敏感信息。 讨论很快转向了该工具的实用性。许多评论者质疑其在现实世界中的用处,理由是网络摄像头的视野狭窄以及潜在的滥用可能性——特别是用于员工监控。另一些人指出已经存在凝视追踪的研究,并建议首先关注主要用户检测,作为更可实现的目标。 开发者承认了局限性,特别是对于旧款网络摄像头,并承认该模型的准确性目前较低,原因在于数据集大小和手动标注。他们强调EyesOff最好*与*隐私屏幕结合使用,因为两种解决方案都不是万无一失的。尽管存在怀疑,但一些用户赞赏了对模型构建过程的详细解释。

## 重新思考 Rust 的借用检查器:启用自借用与安全的异步 这篇文章探讨了 Rust 如何支持自借用——同时持有值和对其的引用——并改进异步函数处理,目前受借用检查器的限制。作者认为这并非借用检查的固有局限性,而是 Rust 特定设计选择的结果。 核心问题在于 Rust 无法命名局部变量的类型,这对于将异步函数反糖成安全、零成本的 Rust 代码至关重要。 提出的解决方案涉及几个关键变化:允许显式命名所有类型(包括生命周期),引入“绑定生命周期”来跟踪生命周期所有权,以及承认“难以想象的类型”——在实践中存在但未正式存在于 Rust 类型系统中的类型。 重要的是,作者指出了 Rust 处理 `Drop` 和初始化方面的不足,这与所有值都是可移动的假设有关。他们提出了一种“所有者引用” (`&own T`),以允许安全地销毁和初始化不可移动的类型。 进一步的改进包括一种机制,用于跟踪枚举中的“自性”,并允许容器声明借用不会妨碍它们自身的可移动性。 虽然承认重大的向后兼容性挑战以及在当前 Rust 中实现的可能性不大,但作者旨在证明自借用在具有不同设计选择的健全借用检查系统中*是*理论上可实现的。

## Rust 的不可思议的类型:总结 一篇最近的文章(polybdenum.com)引发了 Hacker News 关于 Rust 借用检查器和类型系统内部复杂性的讨论。核心争论在于语言/库的灵活性与编译器限制之间的平衡。一些人认为,特性不应该需要“特权访问”编译器——Rust 通常在这方面成功,不像 Go——允许用户实现核心功能,如 `Vec`。 然而,文章强调了在某些领域这种平衡被打破的情况,尤其是在高级特性方面。一个关键问题是安全且方便地管理自借用。开发者正在探索像 `Rc`、`Weak` 和 `RefCell` 这样的解决方案,但发现代码冗长且可能效率低下。建议包括编译器辅助诊断和“位置无关借用”,以减轻性能开销。 讨论强调,Rust 的困难源于不成文的规则和缺乏清晰的文档来解释这些“不可思议的类型”。尽管复杂,Rust 提供了独特的功能,使其成为特定领域的强大选择,尽管学习曲线较陡峭。最终目标是提高易用性,使 Rust 的强大功能更易于访问,同时不牺牲安全性。

## 黑客新闻讨论:阻止LLM爬虫 (owl.is) 一场黑客新闻讨论围绕着一种无需依赖JavaScript就能识别和阻止LLM爬虫的方法,详情见[owl.is](https://owl.is/)。该网站使用一个隐藏链接;合法用户不会看到它,但试图抓取内容的爬虫很可能会跟随它,从而暴露自己。 讨论很快就突出了潜在的滥用可能性——恶意行为者可以利用该链接来破坏网站。人们对区分合法的用户代理和机器人、住宅代理的影响以及阻止顽固爬虫的难度表示担忧。 许多用户建议的解决方案包括移除指向蜜罐URL的链接、速率限制以及使用“技能测试”问题(如CAPTCHA)。 一个关键点浮出水面:传统爬虫(尊重`robots.txt`)和激进的LLM爬虫之间的区别,后者经常无视这些规则,并优先考虑数据量而不是网站健康。 一些人认为,阻止*任何*自动化访问是适得其反的,因为它可能会阻碍合法的AI驱动用户代理。 最终,这场对话强调了在大型语言模型时代,在可访问性和防止滥用抓取行为之间取得平衡的持续挑战。

## Vello:高性能 .NET 8.0 2D 渲染器 Vello 是针对 Vello Sparse Strips CPU 渲染器的 .NET 8.0 生产级绑定,提供 100% 的 API 覆盖率和高性能。它通过 C-ABI FFI 利用 Rust 实现核心渲染引擎。 主要特性包括使用 `Span<T>` 和 `stackalloc` 进行零分配渲染,用于文本、渐变和 PNG I/O,以及零拷贝像素访问。它支持 SIMD 指令(SSE2、AVX、AVX2、AVX512、NEON)和可配置的多线程,以在 Windows、Linux 和 macOS(x64、ARM64)上实现最佳性能。 该库提供具有 `IDisposable` 模式的安全 API,并经过全面的测试支持——113 个测试(100% 通过)和基准测试套件。15 个示例应用程序展示了其功能,包括渲染形状、渐变、文本和图像处理。 Vello 提供高级 C# API (`Vello`) 和 Avalonia 控制 (`Vello.Avalonia`),方便集成到 UI 应用程序中。提供详细的文档和各种平台的构建脚本。该项目已完成,所有 34 个 `RenderContext` 方法均已实现,并完全支持混合、裁剪和遮罩等功能。

一个新的 .NET 绑定,用于 Vello 稀疏条带 CPU 渲染器,在 Hacker News 上分享,引发了关于其最初展示方式的讨论。虽然底层库代码据称写得很好且功能正常,但一些评论员批评了项目的 README 文件。 主要问题是 README 似乎是由 AI 生成的,导致一些人立即 dismiss 这个项目。README 中“生产就绪”的说法也引起了混淆,这与代码本身表明处于 alpha 阶段的说法相矛盾。 开发者(“wiso”)承认 README 需要改进,并澄清 alpha 状态是由于 API 未完成,而不是代码质量问题。普遍的共识是,用户不应仅仅因为 README 质量差而 dismiss 这个项目,因为核心库本身显示出潜力。

启用 JavaScript 和 Cookie 以继续。

这个Hacker News讨论围绕解决Project Euler问题45,该问题要求找到第一个三角形数、五边形数和六边形数。 几位用户分享了他们的解决方法和性能结果。 一位用户用Python实现了一个解决方案,检查数字是否满足与三角形数、五边形数和六边形数公式相关的完全平方数的条件。 另一位用户利用Haskell的惰性列表方法,合并三角形数、五边形数和六边形数的列表并进行比较——在几秒钟内获得结果。 与Haskell解决方案相同的算法的Rust实现速度明显更快,在M1 Pro上不到3秒钟就找到了相同的数字。 Haskell的进一步优化,切换到机器整数,将性能从旧处理器上的6分钟提高到35秒。 讨论还涉及Rust的具体细节,例如`wrapping_sub()`以及某些浏览器中的调试显示问题。

## LibrePods:释放 AirPods 的全部潜力 LibrePods 是一款免费开源应用程序,它将苹果 AirPods 的专属功能带到非苹果设备,主要是在 Linux 和 Android(需要 root 权限和 Xposed 框架)上。它允许用户访问诸如可定制的降噪控制、佩戴检测、准确的电池状态,甚至头部手势控制等功能——这些功能通常仅限于苹果生态系统。 目前完全支持 AirPods Pro(第 2 代和第 3 代),其他型号提供基本功能,LibrePods 提供诸如对话感知、定制通透模式和多设备连接等高级选项。用户还可以重命名他们的 AirPods 并自定义长按操作。 通过启用“充当 Apple 设备”模式,可以使用包括通过听力图输入进行助听器定制在内的先进功能。虽然仍在开发中,但核心功能已经稳定。Android 用户需要一台安装了 Xposed 的 root 设备,因为 Android 蓝牙协议栈存在限制。 请在项目的 README 中查找安装说明和完整的特性列表。

## IDEmacs:连接Emacs的桥梁 IDEmacs是一个Emacs配置,旨在提供类似IDE的熟悉体验,特别是对于从VSCode等图形化编辑器过渡或刚开始编程的用户。它面向程序员、初学者Lisp/Scheme开发者,甚至寻求用于Org、Markdown或LaTeX等强大编辑器的用户。 该项目承认Emacs的优势(尤其是在Lisp/Scheme方面与Sly/Geiser配合使用),但也解决了其陡峭的学习曲线。它优先考虑对流行的IDE习惯的“足够好”的模仿——包括按键绑定(目前专注于VSCode模拟)、鼠标支持以及免配置的设置——而不是完美复制。 目前,提供了一个VSCode配置,具有深色主题、文件浏览器(Treemacs)、标签管理以及用于编辑、版本控制和代码补全的综合软件包。虽然仍在开发中(存在“FIXME”区域),IDEmacs旨在降低Emacs的入门门槛,鼓励新用户探索其全部潜力。该项目欢迎用户反馈和开发者贡献,以进一步完善体验。

## 意外的古董电脑零件关税 作者最近在从欧盟卖家进口古董电脑零件时,遭遇了意外的高额美国海关关税——几乎是物品本身价格的两倍。尽管提供了准确的协调制度编码,UPS 最初评估了 711 美元的关税,而订单金额仅为 355 美元,理由是钢铝的 232 条关税。 经过令人沮丧的反复沟通,包括多次电话、电子邮件以及对 7501 表格的争议,UPS 更正了评估结果,并将费用归因于对欧盟商品的 15% 关税。虽然退款正在处理中(预计 2-6 周),但作者批评 UPS 最初的错误以及延迟通知高额费用,这给进口商带来了困境。 这次经历凸显了即使是“全新旧货”零件进口的复杂性,作者建议任何遇到类似问题的人*先支付关税,然后再提出申诉*,以避免仓储费或退货,并指出这不一定是政策反映,而是评估错误。

`fastknn` 包提供了一个名为 `knnExtract` 的函数,用于使用 K 最近邻进行特征提取。该技术基于数据点与其*k*个最近邻(*在每个类别内*)之间的距离生成新特征。具体来说,它计算每个类别到第 1、第 2、第 3…第 *k* 个最近邻的距离,从而产生 *k* * *c* 个新特征(其中 *c* 是类别的数量)。 为了防止过拟合,训练特征是使用交叉验证生成的。该过程还可以通过 `nthread` 参数进行并行化。这种方法受到 Kaggle Otto Group 产品分类挑战赛获胜方案的启发,有效地将非线性数据映射到线性空间,从而提高可分性。 通过 Ionosphere、chess 和 spirals 数据集进行演示,使用 KNN 提取的特征可以显著提高模型准确性(例如,在 Ionosphere 数据上使用 GLM 时,从 83.81% 提高到 95.24%),与仅使用原始特征相比,尤其是在具有复杂关系的数据集上。`knnDecision` 函数可视化了 KNN 特征如何创建更清晰的决策边界。

一个 Hacker News 的讨论围绕着一篇关于使用 K 最近邻 (KNN) 进行特征提取的最新文章展开。一个关键点是与 Leland McInness 关于降维的研究相关联,该研究将方法分为矩阵分解或基于 KNN 的方法。 几位评论员指出,较新的算法(PaCMAP、LocalMAP)倾向于使用 KNN 动态而非像 UMAP 这样复杂的数学方法,这表明 KNN 可能是该领域创新的未来。一位用户将其与“核技巧”相提并论,其中 KNN 距离被缩放并用作特征。 有人提出对 KNN 的计算成本的担忧,引发了对近似最近邻技术(如 HNSW)的讨论,这些技术可以将搜索复杂度显著降低到 O(log n)。有人指出作者忽略了 KNN 的计算复杂度,但也有人推测这可能是因为目标读者对该主题很熟悉。

## AsciiMath 概要 AsciiMath 是一种基于文本的数学表达式符号,旨在视觉上类似于标准的数学符号。它既提供直接的文本符号(例如 `oo` 表示无穷大),也提供 TeX 替代方案(例如 `sum` 代替 `\sum`),而无需为 TeX 命令使用前导反斜杠。 该符号涵盖了广泛的元素:基本运算(+、-、*、/)、关系(=、<、>)、逻辑符号(and、or、not)、分组括号(()、[]、{}),以及用于微积分(int、del、grad)、集合(subset、union)等的各种专用符号。 AsciiMath 还支持上标、下标、分数、根式以及 sin、cos 和 log 等函数。它处理矩阵、列向量和具有定义语法规则的复杂表达式,这些规则优先考虑正确的运算顺序(下标在 superscript 之前)。字体命令允许使用粗体、黑板和其他样式变体。建议用户在 `<` 和 `>` 字符之间留出空格,以避免 HTML 解析问题。

## AsciiMath 总结 Hacker News 的讨论围绕着 AsciiMath,这是一种使用 ASCII 字符书写数学表达式的记号。它旨在实现简单和可读性,特别是通过 MathML 在网页上嵌入。但它因不一致的空格处理和不寻常的语法选择(例如使用指数符号表示求和上限)而受到批评。 一些评论员指出 AsciiMath 的解析逻辑中可能存在的缺陷,并指出细微的语法变化可能导致截然不同的输出。Typst 和 mathup 等替代方案被提及,其中 mathup 特别通过输出标准的 MathML 来解决 AsciiMath 的实现不足,而不是依赖于特定工具的集成。 对话还涉及更广泛的数学记号领域,一些人提倡更逻辑、基于 S 表达式的系统,而不是从欧拉那里继承的传统(且视觉导向)记号。最终,讨论强调了在数字环境中平衡数学排版的表达力、可读性和一致性解析的持续挑战。

更多

联系我们 contact @ memedata.com