每日HackerNews RSS

本项目提供了一套经过扩展、符合 Unicode 标准(ISO 10646-1)的经典 X11 位图字体。这些更新后的“-misc-fixed-*”字体现已支持多种字符集,包括全面的欧洲语言子集、希腊语、西里尔语、国际音标(IPA)、数学符号、盲文等。项目还增加了多种新字体,包括斜体变体以及用于日语和韩语的专用双倍宽度字体。此外,标准的 Adobe 和 B&H 像素字体也经过修订,加入了现代编码支持并修复了错误。 这些字体专为支持 Unicode/UTF-8 的应用程序而设计。安装包内包含一个转换脚本 `ucs2any.pl`,可将这些字体映射到旧式编码,以兼容传统软件。虽然这些字体涵盖了大多数书写系统,但刻意排除了印度语系、阿拉伯语和叙利亚语,因为 X11 位图系统缺乏处理这些语言所需的复杂字符到字形映射的基础设施。 该项目发行范围广泛,包含在 XFree86 和 X.Org 的发布版本中。所有字体均属于公共领域,并持续维护以确保符合 Unicode 3.2 标准及提供后续的错误修正。完整的安装包和文档可通过提供的下载链接获取。

请启用 JavaScript 和 Cookie 以继续。

抱歉。

**Keybench** 是一款可编程、可扩展的基准测试工具,专为衡量有序键值存储的性能而设计。通过使用 Lua 定义工作负载,该工具确保了不同存储引擎之间的对比能够真正聚焦于引擎本身,而非测试框架的差异。 ### 主要功能 * **性能指标:** 提供工作负载单位(wu/s)和原始操作(ops/s)的吞吐量报告,以及每种操作类型的详细延迟分布(p50、p99、p99.9 和最大值)。 * **可编程工作负载:** 使用 Lua 定义操作。测试框架负责处理并发、执行限制(时间或数量)以及数据填充。 * **灵活的引擎支持:** 支持可插拔的后端(如 RocksDB、TidesDB 以及内存跳表参考实现)。添加新引擎无需修改核心代码。 * **基准测试网格:** 自动运行“网格”测试(引擎、线程和批处理大小的笛卡尔积),并提供中位数结果。 * **分析与报告:** 支持多种输出格式(控制台、用于电子表格的 TSV 以及实时时间线流)。内置系统和构建探测器,用于捕获环境上下文。 * **可复现性:** 基准测试可以保存为 INI 配置文件并精确重放。 `keybench` 是自包含的(内置了 Lua),并提供了用于可视化结果的 Python 脚本。

抱歉。

请启用 JavaScript 和 cookie 以继续

抱歉。

尽管克里斯托弗·哥伦布常因其航行失误而备受诟病,但并未正确使用北极星并不在其中。1492年时,由于地轴进动(地球自转轴2.6万年的周期性摆动),北极星距离真正的北天极约有3.5度,是今天偏差距离的五倍。仅依靠北极星会造成巨大的航行误差。 为了弥补这一偏差,伊比利亚海员采用了“北极星定位法”。通过观测小熊座中的“卫极星”(如帝星和北极二),航海家能够计算出北极星相对于真北的位置,并据此修正纬度。这一技术在18世纪设备改进以实现更高精度之前,一直至关重要。如今,虽然全球定位系统(GPS)已在远洋航行中基本取代了这些方法,但其背后的天体定位原理仍在业余天文学家校准望远镜时发挥作用。

抱歉。

摩托罗拉 WiFi 路由器用户正面临严重困扰,其强制使用的“MotoSync+”应用程序已近一个月无法正常工作。自 5 月中旬以来,用户无法登录账号,导致无法设置新设备、调整网络设置或执行恢复出厂设置。 该问题源于由授权商 Premier LogiTech, LLC 运营的应用程序。虽然现有的网络连接暂时还能维持,但无法访问应用程序使得新路由器或重置后的路由器实际上变得无法使用。尽管 Reddit、亚马逊和应用商店上充斥着大量投诉,但摩托罗拉官方尚未给出任何公开解释。此外,该公司已悄然从官网删除了所有路由器的相关信息,且客户支持部门大多未予回应或处理无效。 有报道指出这可能是服务器故障或授权失效所致,然而用户——包括一些支付了高级订阅费用的用户——目前没有任何途径对硬件进行故障排查或管理。因此,许多感到沮丧的客户建议其他人彻底放弃摩托罗拉产品。面对路由器逐渐变成“压纸石”的现状,该公司至今仍保持沉默。

摩托罗拉品牌的 WiFi 路由器对新用户而言已实质性“变砖”,因为若没有目前无法使用的专用应用程序,这些设备便无法完成设置。Hacker News 上的用户指出,这些设备并非由知名的摩托罗拉公司制造,而是由使用该品牌名称的第三方授权商生产。 此次事件重新引发了关于“强制应用程序”硬件的热议。批评者认为,强制用户依赖基于云端的智能手机应用程序来进行基本设置是一种危险的做法,因为它制造了单点故障,引发了隐私担忧,并在制造商停止软件支持或关闭服务器时,导致了“计划性报废”。 许多参与者将其与开放标准进行了对比,主张使用具备本地网页配置功能或支持 OpenWRT 等开源固件的“哑”硬件。此次讨论凸显了人们对行业趋势日益增长的挫败感:即用基于云端的生态系统取代可靠的本地界面,而这些系统往往将企业控制权置于用户自主权和长期功能性之上。

```diff --- a/src/auth/login.ts +++ b/src/auth/login.ts @@ -12,6 +12,18 @@ +export function validateToken(token: string) { + const decoded = jwt.verify(token, SECRET); + if (!decoded.exp || decoded.exp < Date.now() / 1000) { + throw new TokenExpiredError(); + } + return decoded; +} + @@ -24,8 +36,10 @@ export async function authenticateUser( - const user = await db.findUser(email); - if (!user) return null; + const user = await db.findUser(email); + if (!user) throw new UserNotFoundError(); + await rateLimiter.check(email); @@ -45,12 +59,0 @@ -export function legacyAuth(user, pass) { - return db.query('SELECT * FROM users - WHERE email = ? AND password = ?', - [user, pass]); -} ```

**Sem** 是一款全新的开发工具,旨在通过将代码库映射为实体(函数、类、方法)的依赖关系图,而非将其视为扁平文本,从而提升代码理解能力。Sem 基于 tree-sitter 构建,能够提供结构化的“爆炸半径(blast radius)”分析,从而精准识别代码变更所影响的具体组件和测试。对于大型、复杂的代码库而言,它比传统的基于行的 `grep` 或 `git diff` 效率更高。 Hacker News 讨论中的重点摘要: * **代理能力 (Agentic Power):** 开发者认为 Sem 是 AI 代理的关键“支撑”,它为代理提供了清晰的代码关系图,相比原始的行差异(line diffs),这能更有效地约束和验证模型输出。 * **性能:** 得益于 SQLite 缓存优化,Sem 能够在几秒钟内对拥有 10 万个文件的单一代码库(monorepo)进行影响分析。 * **集成:** 尽管部分用户对安装过程——特别是对 `git diff` 的“劫持”感——表示不满,但作者澄清 Sem 是一个独立的工具,并提供了用于恢复的 `unsetup` 命令。 * **愿景:** 该项目旨在推动代码审查和理解超越“历史偶然”产生的行级差异(line-level diff),提供一种更合乎逻辑、基于实体的代码演进视图。

本文详细介绍了一种稳健且与架构无关的方法,用于反虚拟化受 Themida 等虚拟机保护程序保护的代码。 作者没有依赖脆弱的模式匹配,而是利用“引导式符号执行”(Guided Symbolic Evaluation)将原生指令提升为简洁的中间表示(IR)。通过保持堆栈指针(RSP)的具体值,并使用一系列相互关联的优化遍历——包括常量提升、常量折叠、无效存储消除和指令组合——虚拟机内部的“脚手架”(如字节码解密和处理程序分发逻辑)被系统性地瓦解。 该过程旨在持续运行,直到 IR 收敛为清晰的类原生状态,随后将其降级回可执行的机器码。这种方法的关键在于通过跟踪虚拟指令指针(VIP)并准确识别 VMEXIT 模式来处理虚拟化控制流。最终输出的代码与原始功能代码几乎是一一对应的,避免了不必要的堆栈溢出等常见缺陷。文章最后指出,对于反虚拟化而言,通用的编译器优化比针对特定虚拟机的逆向工程更有效且更具可持续性;同时也承认,先进的混淆器必须实现更复杂、不可约简的表达式,才能抵御这些现代符号执行技术的攻击。

抱歉。

更多

联系我们 contact @ memedata.com