每日HackerNews RSS

本文探讨了基本标点符号的细微差别,强调这些看似简单的字形在专业排版中需要仔细考量。 **关键标点符号:** * **句号:** 主要用于结束句子、标示首字母缩写,或作为小数点(取决于区域标准)。在设计方面,必须注意其间距;传统字体常存在左右间距不对称的问题,而现代设计则倾向于等宽间距。 * **逗号:** 用作句子分隔符或小数点。它通常与撇号形状相同,但必须与捷克语/斯洛伐克语中特定的抑扬符(caron)区分开来。 * **省略号:** 用于表示删节或停顿的特殊字形。优质字体通常会提供专门的省略号字符,而非用三个独立的点代替,以确保间距正确。 * **项目符号与间隔号:** 项目符号用于列表,而间隔号则作为分隔符或数学符号。其用法(例如加泰罗尼亚语的连写 l)需要精确的放置与字符选择。 * **双部分符号:** 冒号、分号、感叹号和问号遵循特定的文化间距规则(如法式间距),在与全大写字母或等高数字搭配时,可能需要手动调整。 总之,有效的排版需要理解这些区域标准、字体特定的字距调整,以及区分外观相似的 Unicode 字符。

这篇 Hacker News 讨论聚焦于一份关于排版标点和符号的指南,引发了关于语言精确度与非正式用法之间更广泛的辩论。 参与者观察到一种文化差异,指出俄罗斯的设计师和技术人员对排版往往有着近乎严苛的讲究,而西方英语使用者则倾向于更加随意的风格。对话突显了在不同软件和键盘布局中保持标点规范(如疑问惊叹号或正确的十进制分隔符)的困难。 许多用户表达了对系统级特殊字符支持不足的不满,例如苹果公司繁琐的表情符号/符号选择器,以及 Windows 缺乏“组合键”(Compose key),这迫使用户依赖令人困惑的权宜之计或错误的快捷方式(例如将平方根符号当作对勾使用)。 归根结底,这一讨论反映了排版“工艺”——一些人认为这具有创造性表达的意义——与大多数人认为沟通意图重于排版正确性这一现实之间的张力。虽然一些用户提倡严格的国际标准(例如在数字分组中使用空格而非逗号或圆点),但另一些人则认为语言是流动的,且往往由地域和技术便利性所决定。

“征募勇士,此行危险。薪资微薄,严寒刺骨,长夜漫漫。能否生还,难以预料。若得成功,尊荣共享。” 你得进入创始人模式。Next.js Web / React Native 应用。/ Supabase、Firebase 和 Prisma。/ 用于 WhatsApp 的 Nest.js。/ 用于智能体的 OpenAI 和 Anthropic API。/ 用于智能合约的 Solidity 和 web3.js。/ 大量 TypeScript。

Hacker News 最新 | 过往 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Kontigo (YC S24) 正在招聘 (ycombinator.com) 13 小时前 | 隐藏 考虑申请 YC 2026 年秋季批次!申请截止日期为 7 月 27 日。 准则 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

**摘要:`ripgrep` 在 musl 目标平台上的 SIGSEGV 崩溃** `ripgrep` 15.2.0(针对 `x86_64-unknown-linux-musl` 构建)在跨大型文件树执行高并发搜索时会持续发生 `SIGSEGV` 崩溃。 **详情:** * **表现:** 崩溃发生在使用 `calloc` 调用 `opendir` 期间,由 MUSL 的 `mallocng` 堆元数据完整性断言失败触发。 * **复现:** 在高并发下扫描大型目录树(约 20GiB,180 万个文件)可复现此问题。在多核系统上持续搜索不到一分钟,通常就会出现崩溃。 * **回溯:** 堆栈跟踪指向由 `ignore` crate 的并行遍历器调用的 `std::fs::read_dir`,最终在 MUSL C 库的堆管理函数内部失败。 报告者已提供二进制文件、核心转储文件以及用于生成合成测试目录树的脚本,以辅助调试。预期的行为是应用程序应完成搜索,且不出现内存损坏或段错误。

一位 **ripgrep** 用户近期报告称,在使用 musl 链接的二进制文件进行大规模搜索时,会出现间歇性的段错误。虽然起初怀疑是库或应用程序的漏洞,但社区调查表明,这很可能是 Linux 内存管理中存在的**内核级竞态条件**。 Hacker News 上的讨论主要集中在三个方面: * **漏洞本身:** 该崩溃似乎源于内核 `munmap` 与缺页中断处理之间的竞态条件。由于难以复现且需要特定的时序或硬件配置,一些人推测这可能是某种罕见的硬件相关 TLB 问题。 * **AI 争议:** 一份由 AI 生成的关于该漏洞的详细分析遭到了严厉批评。尽管有人承认 AI 提供了一些有用的数据点,但许多开发者对其“词藻堆砌”的风格、冗长的语气,以及在可能产生幻觉的情况下仍显得言之凿凿的态度表示不满。 * **分配器之争:** 调查指出,在 musl 上运行的 `ripgrep` 有时会使用一种在高线程竞争下会进行序列化的分配器。虽然有人认为更换默认分配器可以提高性能,但也有人指出,这些问题往往会暴露出本应被隐藏的底层内核漏洞。

Hacker News 最新 | 过往 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 [已标记] fratellobigio 1天前 | 隐藏 | 过往 | 收藏 xyzsparetimexyz 21小时前 [–] 这根本没法读。 pllbnk 20小时前 | 父评论 [–] 直接扔给你最喜欢的 LLM 去读吧,说不定它会喜欢。这本来就不是给人看的。 考虑申请 YC 2026年秋季批次吧!申请截止日期为 7月27日。 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

要成就伟大的事业,请遵循以下四个核心步骤:选择一个领域,学习到足以触及该领域的前沿,发现知识空白,并进行探索。 这一过程需要天赋、深厚的兴趣和勤奋工作的结合。由于不深入其中就无法真正了解一个领域,因此“实践”是找到专注方向的唯一途径。相比僵化的计划,应优先考虑那些“令人兴奋且雄心勃勃”的项目;保持好奇心并处于机遇的“上风向”,比遵循固定的路线图更为有效。 **成功准则:** * **追随好奇心:** 它是你的动力引擎。如果你对他人忽视的事物怀有极大的好奇心,那么你可能已经找到了潜在的突破口。 * **拥抱原创性:** 原创性是一种思维习惯,而非一个过程。它往往源于“破碎的模型”——即发现他人忽略或无视的异常现象。 * **重视持久性:** 伟大的工作会产生复利。持续不断地去做(做点什么总比什么都不做要好)比每天的突击更重要。 * **保持真诚:** 避免矫揉造作和智力上的不诚实。愿意承认自己的错误,才能保持对真理的开放态度。 * **从小处着手:** 构建简单且不断演进的想法版本,而不是从一开始就追求完美。

抱歉。

此版本带来了一项备受期待的功能,感谢 @crmne 的贡献:现在不再需要为每个 worker 使用线程池来运行多线程任务,而是可以在单个 fiber reactor 线程上使用 fibers。 要使用此功能,只需在 worker 配置中指定 fibers 的数量而不是线程数,如下所示: ```yaml workers: - queues: "api*" fibers: 100 polling_interval: 0.05 ``` 该功能底层使用 Async,因此需要将其作为依赖项才能正常工作。此外,你需要在 Rails 中使用 fiber 隔离(`config.active_support.isolation_level = :fiber`)。这对于涉及 LLM 调用等 I/O 密集型工作负载非常有用。 **更新内容** * 添加 fiber worker 执行模式,由 @crmne 贡献于 #728 * 回滚测试中因任务线程被终止而泄露的事务,由 @rosa 贡献于 #773 * 记录如何更新动态循环任务,由 @wintan1418 贡献于 #777 **新贡献者** 完整更新日志:v1.5.1...v1.6.0

更多

联系我们 contact @ memedata.com