Agili 的 Hacker Podcast 今日话题横跨公共设施革新、底层优化、隐私工具到神经科学:芬兰图书馆借缝纫机,Linux 异步 I/O 该选 epoll 还是 io_uring,以及为什么大脑天生就会回避坏消息。
芬兰图书馆重新定义公共价值
缝纫机、皮划艇和 Vitamix:一张借书卡借万物
芬兰 700 多座图书馆不靠借阅量衡量价值,而是提供几乎任何生活所需的物品。赫尔辛基的 Oodi 图书馆每日清晨八点开门,人们涌向座位、录音舱、缝纫机或网球拍。可以租借的除了书籍,还包括 3D 打印机、激光切割机,甚至皮划艇。BBC 报道,这些物件的借用次数仅次于图书。华盛顿县图书馆的“图书馆之物”项目也类似,从厨房搅拌机到合成器、鼓机都有。
民主基础设施和数字包容的据点
图书馆还是市民身份办理中心。馆员会帮助居民操作税务、银行、养老金和电子病历系统,并辅导求职申请。研究称图书馆是关键的数字包容基础设施。《芬兰图书馆法》明确要求图书馆促进民主与言论自由。德克萨斯大学学者 R David Lankes 指出,图书馆是少数可以不消费而单纯停留的公共空间。议会成员 Nasima Razmyar 幼年以难民身份拿到第一张图书馆卡,称其为“整个芬兰福利制度浓缩在一栋楼里”。
缝纫机的挑战与编程的相似性
一位 Hacker News 用户指出,缝纫机是仅次于汽车和笔记本的复杂高技能设备,押金和维护成本不低,对新手很困难。但另一位用户回应,老款 Bernina 几十年几乎不用维修,且编程与缝纫有相通之处:喜欢造东西的人通常会同时喜欢两者。所有讨论最终指向同一点——这种借用制度能在芬兰通行,根基是社会的高信任度。
Epoll vs. io_uring 在 Linux 中的异步 I/O 抉择
系统调用开销的源头
epoll 需要两组系统调用:epoll_wait 拿到就绪通知,再手动 read/write,此外还有事件注册的 epoll_ctl。io_uring 则通过内核与用户共享的两个环形队列直接提交与回收完成事件,一次 io_uring_enter 可以批量提交并回收一堆结果。启用 SQPOLL 时内核会生成一个内核线程持续轮询,在稳态下几乎无需系统调用,只是空转时仍会消耗 CPU,可通过 sq_thread_idle 超时休眠。
代码示例与性能表现
作者用 stdin 监控对比:epoll 需 epoll_ctl 注册、epoll_wait 等待、read 读取;io_uring 只需 io_uring_prep_read、io_uring_submit、io_uring_wait_cqe。实测 io_uring 网络服务吞吐量比 epoll 版本高约 20%。但一位切换到 io_uring 的开发者反馈 CPU 占用飙升,这可能是因为减少了 I/O 等待,CPU 有更多时间做实际工作,应看延迟和吞吐而非利用率。
优化方向与安全争议
社区热论集中在 CPU 绑定和虚假共享。通过 SO_INCOMING_CPU 将监听 socket 与线程绑定同一核心,配合网卡 toeplitz 哈希,可避免跨核通信,有的场景下性能可以提升 10 倍。虚假共享方面,不同核心的线程应避免写入同一个 cache line。安全性上,由于用户态与内核直接共享内存,io_uring 多次曝出漏洞,许多容器仍默认禁用。最新内核支持用 cBPF 限制允许的操作,但 Red Hat 需要 6-12 个月才能整合到长期支持内核,短期内大多数沙箱仍会屏蔽 io_uring。因此,若目标环境受限,epoll 依然是稳妥选择。
Loupe:窥见你的 iPhone 对其它 App 暴露了什么
无需弹窗的设备指纹
Loupe 是 Mysk 安全团队开发的开源 iOS 应用,无网络权限,也不会离开设备。它展示任何第三方 App 无需额外授权即可读取的信息:时区、语言、屏幕尺寸、电池状态、键盘语言,还有 iPhone 首次初始化或上次抹掉的精确时间。这个时间戳来自文件系统卷创建时间,结合其它信息可以生成独有设备指纹。
绕过权限的旁路:50 个 URL scheme
App 可以通过 canOpenURL 探测设备上安装了哪些第三方应用,苹果限制最多声明 50 个已知 URL scheme。但这对区分用户已经足够,且头部 App 每周更新探测列表。即使清理了 App,Keychain 中的数据在删除后依然保留,可作为持久化标识。Loupe 展示了过去安装过的 App 如何识别你。
社区追问:为什么不能直接关闭 App 联网
多位用户疑惑 iOS 为何没有网络权限开关。事实上,中国区 iPhone 提供“仅 WLAN”或“关闭网络”选项,而 GrapheneOS 允许安装时限制任意 App 的联网。但单一网络开关难以消除风险,因为多数 App 有正当联网需求,用户可能被迫同意;且 App 间可通过进程通信间接联网。苹果内置的 App 隐私报告能记录域名访问,但无法看到传输内容。Mysk 团队也提供了一款反指纹浏览器 Psylo,作为替代方案。
慢速呼吸如何调节大脑和冒险行为
呼吸频率与决策的神经关联
《Neuron》期刊发表的研究发现,刻意减慢呼吸能改变大脑特定区域活动,降低冒险倾向。实验表明,慢速呼吸不仅调节情绪,还通过神经机制直接影响决策。研究者认为,这一发现为焦虑和冲动控制等临床干预提供了依据。
家中 15 分钟检测莱姆病的试纸
40 美元的研磨式检测盒
LymeAlert 预计今年 8 月上市,把找到的蜱虫放进附带塑料盒旋碎,插入化学试纸,15 分钟变色便知是否携带莱姆病菌。一次可检测最多 5 只蜱虫。传统实验室检测需等待一周以上,花费 50 到 450 美元。
应用场景与局限
阳性结果促使及时就医,抗生素需在叮咬后 72 小时内服用才有效。阴性结果可避免不必要的急诊和抗生素。但测试无法检出其他病原体,比如可即刻传播的 α-半乳糖综合征过敏原或波瓦桑病毒。感染病专家提醒,假阳性可能引发恐慌,且蜱虫传播速度因病菌而异。
数据汇总预测扩散
配套 App 允许匿名上报发现感染蜱虫的位置。创始人计划将数据与 NASA 卫星图、动物迁徙数据结合,用 AI 模型预测不同蜱种和病原体的扩散方向。
TownSquare:一个
无需注册的实时碰面
网站主插入 TownSquare 脚本后,访客能用方向键移动一个小角色,在页面底部聊天、击掌。项目已注册 115 个广场,47 个活跃,累计消息 23 万条。不保存历史,没有算法。作者坦承代码大部分是“vibe-coded”(大模型生成)。
低俗内容与意外乐趣并存
演示页面里的实时对话很快出现大量粗鲁内容。一位用户评价“我不会放在自己网站上”,另一位反问“如果你的网站吸引了这些内容,或许说明问题在别处”。同样有人感受到了久违的即时社交乐趣,建议加入绿点在线人数和可折叠的聊天框。
技术讨论
有人提议使用 WebRTC 可减少服务器负担。Hacker News 流量冲击下,广场里即刻涌现打招呼、玩梗的访客,也有人公开怀疑“它撑不了多久”。
开发者为什么总误解 CORS
Zoom 的图片尺寸 hack
2019 年 Zoom 在用户电脑启动本地 Web 服务器,为了让网页端指令打开桌面 App,没有用 AJAX,而是把状态编码到返回图片的尺寸中,前端再用 case-switch 识别。作者 Chris Foster 认为 Zoom 团队不理解 CORS,实际上只需在本地 API 加上 Access-Control-Allow-Origin: zoom.us 头。
CORS 的真正边界
评论区立刻纠正了作者的错误:CORS 头仅控制读取响应,无法阻止其他网站发送请求。对于“简单请求”(如 GET、简单表单 POST),浏览器不发送预检,直接发出请求,若服务端在 GET 上执行有副作用的操作,就可能被任意网站利用。Zoom 的漏洞恰恰在于把危险操作放在了 GET 上。
隐藏的 Content-Type 陷阱
另一个风险是即使请求体是 JSON,但 Content-Type 若设为 text/plain 或 multipart/form-data,浏览器也不会触发预检。因此后端必须严格校验 Content-Type,而不仅仅是依赖 CORS。多数开发者因“先有同源策略,后有 CORS”的历史盲区,将 CORS 视作拦截器,进而试图绕过它,反而扩大了攻击面。
Google 用户中 IPv6 比例首次突破 50%
测量数据与统计差异
Google 测得其用户中 IPv6 的占比达 50%,APNIC 加权后为 42%。差异来自统计方法:APNIC 按经济体的互联网人口加权,以消除广告投放带来的样本分布不均。两套数据共同框定了 IPv6 的当前实际渗透范围。
手机运营商突进,企业网络脱节
印度 Reliance Jio 等移动运营商大量部署 IPv6,周末流量中手机端拉高了 IPv6 比例,工作日企业 IPv4 流量又把曲线拉低。许多公司因管理复杂度仍关闭客户端 IPv6,部分大型服务如 GitHub 至今没有 AAAA 记录,IPv6 用户只能通过 NAT64 中转才能访问。
双协议世界的日常摩擦
即使 IPv6 已覆盖主流内容商,长尾小众网站仍坚持 IPv4,导致用户偶尔遭遇部分服务 IPv6 端点故障而 IPv4 正常的情况。同时,多数 IT 培训和测速工具仍忽视 IPv6。尽管如此,4G/5G 手机默认走 IPv6,苹果、Windows、Android 已启用隐私扩展随机化地址。Google 的 50% 里程碑说明 IPv6 已不是边缘实验,而是每日运行的基础设施。
用 AVX-512 加速锯齿编码解码的尝试
掩码条件运算:省一条指令,增一点延迟
锯齿编码将有符号整数转为无符号,标准解码需 4 条 SSE2 指令。利用 AVX-512 的 vptestmd 生成掩码并条件异或,可压缩到 3 条,但 Zen 4 上 vptestmd 延迟 3 周期,总延迟反增到 4 周期。在吞吐量受限的 meshlet 解码循环中仍有约 3% 的收益,但会受 Clang 编译器的“反向优化”干扰。
GFNI 指令的单步 8 位解码
GFNI 的 vgf2p8affineqb 能通过一个 8x8 位矩阵乘法,单指令完成移位和取反,用于 8 位锯齿码解码。该指令在 Zen 4 延迟 3 周期、吞吐量 2/cycle,理论比原方案快 1 倍,但在实际顶点增量解码循环中,瓶颈在增量累加与短存储,性能提升不明显。
编译器无法自动应用的局限
评论指出,编译器难以自动向量化此类优化,因为它不能改变内存布局,大多数自动向量化会插入大量洗牌指令抵消收益。此外,meshoptimizer 已是游戏行业资产管线的“隐藏冠军”库,这类深度优化需要手工编码,AVX-512 普及率有限也使编译器不愿投入。
大脑没进化到能消化这么多坏消息
负面新闻的生理吸引力
Reuters Institute 2025 年报告显示,全球 40% 的人主动回避新闻,加拿大达 69%。《自然·人类行为》上分析近 600 万次点击的研究发现,新闻标题每增加一个负面词,点击率就上升,正面词效果相反。身体在意识判断威胁是否相关之前就已启动应激反应。
何为问题性新闻消费
研究者将“导致思维占据、失调和日常功能紊乱”的新闻接触定义为问题性新闻消费(PNC)。2022 年调查中,17% 的美国人达到严重 PNC 水平,其中 61% 的人经常感觉不舒服。少数族裔群体反复目睹针对自己群体的伤害会带来额外心理冲击,即使自己不是直接目标。
管理而非戒断
解决之道不是切断可靠信源,因为在虚假信息泛滥下这只会更糟。研究者建议把新闻限制在固定时间段,选择深度长文而非碎片化的情绪帖子,并在知晓和行动之间搭建桥梁——哪怕一件小事都能调节压力。特别警惕愤怒诱饵:那些故意激怒你以博取互动的内容。一位 Hacker News 读者补充,很多人对世界的期望不切实际,面对现实时便感到压力,而社交媒体常要求成员通过“表演式关注”维持归属,即使他们对遥远事件毫无影响力。
相关链接:
- Renting a sewing machine from the library
- Epoll vs. io_uring in Linux
- Loupe – A iOS app that raises awareness about what native apps can see
- Slow breathing modulates brain function and risk behavior
- 15-minute at-home Lyme disease tick test
- Show HN: TownSquare, a tiny presence layer for websites
- Developers don't understand CORS (2019)
- Google Hits 50% IPv6
- Zigzag Decoding with AVX-512
- The brain was not designed for this much bad news
