2024-08-31

30 篇热帖

1. Crows are even smarter than we thought (nautil.us)

乌鸦(鸦科动物)以高智商、顽皮天性和强烈个性闻名,它们会记仇、进行基础统计、表演特技,甚至为死去的同伴举行“葬礼”。然而,对其智慧的探索仍在不断深入,且这种智慧在鸦科中的普遍性也超乎以往认知。

今年早些时候,俄罗斯莫斯科国立大学和英国布里斯托大学的研究团队发现,一种名为“冠鸦”的鸦类具备一种曾被认为人类独有的心智能力:在物体(实验中为一小块彩色纸片)被拿走后,能记忆其形状与尺寸,并复制出相似的物体。

动物行为研究者认为,这种能力需要形成“心理模板”——即在物体不在场时,头脑中仍能保持该物体外观的心智图像。心理模板使动物能够制造工具,从而获取食物或加固巢穴,最终提升生存几率。它也可能使个体从同类成员那里学习工具制作,并随时间传递改进,形成所谓的“累积文化”,这在非人类动物中迄今仍属罕见。

研究人员自2002年起就在寻找不同鸦类及其他鸟类能创建心理模板的证据。当年,一只圈养的新喀里多尼亚乌鸦“贝蒂”能自发地将金属丝弯成钩子以获取难以够到的食物。研究者推断她一定形成了钩子的心理模板并加以复制。此后,研究发现戈芬凤头鹦鹉也能自发制造工具,可能指示着类似的心理敏捷性。

但新的冠鸦研究结果表明,这种学习能力可能比我们想象的更为普遍。研究作者、比较心理学家萨拉·杰尔伯特指出,创建和使用心理模板的能力,可能是在所有鸦科鸟类的共同祖先(鸣禽的“鸦小目”分支)中进化出的,甚至可能在整个动物王国中更广泛地共享。

在研究中,杰尔伯特及其同事首先训练三只冠鸦识别不同尺寸和颜色的纸片。他们向鸟类展示“模板”纸片几分钟后将其移走,并奖励那些将匹配的纸片投入狭缝的鸟。随后,给予鸟类制造这些物体复制品的机会以换取奖励。结果发现,三只冠鸦制造的物体在颜色和尺寸上都匹配了它们曾为之获得奖励的原始模板物体。年长的冠鸦“格拉兹”在制作匹配纸片方面表现最熟练,这表明心理模板可能与年龄增长积累的经验有关。

杰尔伯特提到:“与经常相互模仿行为的人类不同……我们没有太多证据表明乌鸦会观察并刻意模仿同伴的行为。”然而,它们会互相偷窃工具——幼鸦在年幼时常会偷走父母的工具。因此,幼鸦可能通过偷窃、使用父母的工具,记住这些工具的样子,然后尝试制作类似的东西来学习制作不同类型工具。

关于何种情况构成心理模板及其灵活性,学界存在一些争论。研究显示,鸟类的鸣唱和求偶行为可能依赖于某些心理模板,但若鸟类记住了错误物种的行为,可能会适得其反。图宾根大学动物心理学教授安德烈亚斯·尼德(未参与此研究)解释道,例如,如果麻雀印刻了沼泽麻雀的歌曲,它将难以找到配偶。这种印刻可能在鸟脑中固定,即使在新环境中也无法改变,此时模板可能不再代表智能,反而相反。不过,目前尚不清楚与工具制作相关的心理模板是否保持灵活,尽管有证据表明新喀里多尼亚乌鸦的这类模板可能会进化。

对生物学家和比较心理学家而言,理解鸦科动物如何使用心理模板,不仅有助于阐明鸟类智能的本质,还能帮助理解整个动物王国乃至进化时间尺度上的智能演化。

2. Is my vision that bad? No, it's just a bug in Apple's Calculator (martin.wojtczyk.de)

这篇文章描述了作者在使用Mac内置计算器进行十进制转二进制/十六进制时,发现的一个显示渲染bug。

主要发现:

  • 在二进制显示区域,部分数字的垂直对齐存在1像素的错位,导致数字行看起来“参差不齐”。
  • 作者最初怀疑是自己的视觉疲劳,但通过截图和放大观察确认了该问题的存在。

可能的技术原因:

  • 作者推测,这可能与计算器应用长时间运行有关。
  • 应用的UI坐标系统可能使用了浮点数进行计算,长期运行导致的舍入误差逐渐累积,最终在像素级渲染中显现出来。

现状与影响:

  • 该bug影响了显示效果,但未提及影响计算功能。
  • 由于苹果缺乏直接的反馈渠道,作者无法正式上报此问题,只能选择在网上分享。

总而言之,这是一个纯粹的视觉渲染缺陷,表现为二进制数字显示区域的细微像素错位,很可能源于长期运行下的浮点累积误差。

4. Brazil's X ban is sending lots of people to Bluesky (www.theverge.com)

巴西X禁令引发Bluesky用户激增

巴西最高法院法官下令禁止使用X(原Twitter),导致大量巴西用户转向替代社交网络Bluesky。Bluesky官方账号表示,巴西用户为其平台创下了历史新高活动量。开发者Paul Frazee警告,由于前所未有的流量,可能会出现服务中断和性能问题,并称Bluesky在“relay”(数据流组件)上每秒处理1000个事件,达到新里程碑。

Bluesky是一个去中心化社交媒体平台,功能和外观类似X,但基于AT协议构建。在周五晚上,Bluesky报告过去两天内新增50万用户。同时,另一去中心化网络Mastodon也看到来自巴西的注册和流量上升,其CEO Eugen Rochko称注册量从近零增至3.55k,但因Mastodon的去中心化特性,公司无法全面追踪第三方服务器的增长。Meta旗下的Threads未回应评论请求。

5. Harder Drive: hard drives we didn't want, or need [video] (2022) (tom7.org)

标题:Harder Drive:我们不需要或想要的硬盘 [视频] (2022)

该项目源于2022年SIGBOVIK会议的一篇论文《Harder Drive: Hard drives we didn't want or need》。核心内容围绕一个非常规的“硬盘”概念展开,并通过视频形式进行展示。

关键内容:

  • 视频与研究:论文与配套视频演示了该实验性项目。视频可在作者Tom 7的YouTube频道观看。
  • 配套工具:提供了一个名为harder-drive-internet-map.torrent的应用程序,用于探索IPv4地址空间。该应用需要64位Windows系统和约32GB内存才能运行。
  • 额外资源:视频中使用的铃声音频可在作者的“Tom 7 Entertainment System”平台与其他歌曲一同获取。
  • 参与方式:作者提供了该项目的(难以理解的)源代码,并欢迎公众通过其博客或Twitter(@tom7)留言评论。
  • 访问入口:所有相关内容可汇总访问作者网站tom7.org。

该项目通过一个技术实验性视频,探讨了“硬盘”这一概念的非传统可能性。

6. This month in Servo: tabbed browsing, Windows buffs, devtools, and more (servo.org)

Servo 本月更新摘要

核心引擎与新特性

  • 新 API 与属性支持:新增对 HTMLDialogElement.show()HTMLFieldSetElement.typetextarea 文本渲染、border-imageclip-path、WAV 音频播放、structuredClone()crypto.randomUUID()、Web Audio 的 IIRFilterNode 及跨域重定向导航等功能的支持。
  • 依赖升级:核心依赖升级至 SpiderMonkey 128、WebRender 0.65、wgpu 22.0 和 Rust 1.80.1。
  • 默认启用与行为修正:WebXR 和 Flexbox 现已默认启用;返回 Promise 的 Web API 在失败时会正确 reject 而非抛出异常。

布局与 WebXR 改进

  • Flexbox 增强:支持 gapalign-content: stretchflex-direction: column 等属性,完善了 Flex 项目对 position: relativez-index 层叠上下文及内在尺寸的支持。
  • WebXR 重构:全面更新 WebXR API,新增 Gamepad 和手部输入支持,并允许在 WebGL2RenderingContext 上调用 makeXRCompatible()
  • 双向文本:正在推进双向文本支持,包括 fragment tree 架构调整及部分 unicode-bididir 属性支持。

浏览器外壳 (servoshell) 与平台优化

  • 界面与功能:servoshell 推出重新设计的工具栏、标签页浏览功能以及利用新 API 实现的全新“新标签页”。
  • Windows 优化:修复了键盘导航、PNG 输出问题,以及导致字形错位、颜色错误和图像损坏的字体与 GPU 相关 Bug。
  • 开发者工具:Devtools 功能进一步完善,现已支持 HTML 树、Styles 和 Computed 面板。

开发者体验与 CI 优化

  • 构建与运行:macOS 上构建后运行 servoshell 的速度提升数秒。
  • CI 升级:CI 流程引入 clippy 和专属 linting 任务;新增 Windows CI runners 使构建时间缩短 70%,Linux runners 也即将上线以加速 WPT 测试。

引擎稳定性与可靠性

  • 崩溃修复:修复了大量真实网站和特定场景下的崩溃问题,包括 HTML 解析器重入问题、WebGL 窗口调整、长文本渲染、特定 DOM 操作(如移除 iframe、设置 window.opener)及 HTTP 头部解析等引发的崩溃。
  • 内存与异常处理:修复了 SpiderMonkey GC 下的 BorrowError 崩溃并计划引入静态分析进行预防;解决了导航时的 DOM Window 内存泄漏;优化了 Unix 系统下 panic 的异常终止行为,确保测试能正确记录“CRASH”状态。

项目资金与捐赠

  • 每月定期捐赠达到 3077 美元(环比增长 4.1%)。
  • 即将停止在 LFX 平台接受捐赠,建议捐赠者转向 GitHub 或 Open Collective,同时项目已入驻 thanks.dev 接受赞助。资金用途将由技术指导委员会透明公开地决定。
8. Researchers find Alzheimer's-like brain changes in long Covid patients (uknow.uky.edu)

研究发现:长期新冠患者出现类似阿尔茨海默病的脑部变化

肯塔基大学桑德斯-布朗衰老研究中心的最新研究表明,长期新冠患者的认知障碍与阿尔茨海默病及相关痴呆症存在惊人的相似性。

研究背景与团队

  • 该研究发表于《阿尔茨海默病与痴呆症》期刊,获得美国国立卫生研究院、阿尔茨海默病协会及国际组织资助。
  • 由肯塔基大学医学院杨江、克里斯·诺里斯、鲍勃·桑波尔等跨学科专家主导,聚焦电生理学、神经炎症、星形胶质细胞和突触功能。
  • 项目汇集了美国、土耳其、爱尔兰等六国神经科学专家,体现了广泛的国际合作。

核心发现

  1. 认知症状相似性:长期新冠患者经历的“脑雾”(包括记忆问题、意识模糊、注意力不集中)与阿尔茨海默病早期认知障碍高度相似。
  2. 共同生物学机制:两种疾病均涉及:
    • 神经炎症
    • 星形胶质细胞激活:作为脑部支持细胞,其损伤或异常激活会导致突触功能障碍和脑电活动异常。
    • 内在脑活动减慢/异常:长期新冠患者的脑电图(EEG)模式与神经退行性疾病早期阶段相似。
  3. 潜在关联:COVID-19引发的星形胶质细胞损伤、脑炎症、低氧水平及血管损伤可能是共享的病理机制。

临床意义与建议

  • 早期检测:建议对新冠幸存者及认知衰退高风险人群进行常规脑功能检查,特别是使用经济易得的脑电图(EEG)工具。
  • 预防干预:通过早期发现脑部变化,医疗提供者可更快识别高风险个体,实施干预措施以延缓认知衰退。
  • 未来研究方向:团队关注如何利用EEG监测预测新冠患者的长期结局,并评估预防认知衰退治疗的有效性。

资助与声明

  • 研究获得美国国家老龄化研究所资助(项目编号:P30AG072946, P01AG078116, R56AG060608)。
  • 文章内容仅代表作者观点,不代表资助机构立场。
9. Rust solves the problem of incomplete Kernel Linux API docs (vt.social)

Linux内核的API文档存在严重的不完整性问题,而Rust语言通过其特性部分解决了这一难题。作者在为多个内核子系统编写Rust抽象层时发现,仅凭函数签名、文档注释或正式文档几乎无法安全、正确地使用API,必须深入阅读C源代码才能理解关键细节。

文档缺失的核心在于许多安全关键的使用规则未被说明:

  1. 同步与锁:API调用是否需要持锁?回调函数执行时是否已持有锁?锁的获取顺序是什么?不同情况下锁的行为是否有变化?
  2. 资源所有权与生命周期:引用计数参数是转移所有权还是自行获取新引用?错误情况下引用计数如何处理?返回的指针是已增加引用计数的,还是隐式借用?
  3. 错误处理与返回值:参数是否允许为NULL?返回值是始终有效,还是可能为NULL或错误指针(ERR_PTR)?通过间接参数返回的指针在错误时是否会被清空?

Rust的解决方案是通过其类型系统和所有权模型,将许多此类运行时问题转化为编译时错误。这强制了更安全的使用模式,从而弥补了官方文档的不足,减少了开发者必须通过研读C源码来推理API行为的需要。然而,这仅解决了问题的一部分。

10. Orphaning bcachefs-tools in Debian (jonathancarter.org)

文章摘要:Debian中bcachefs-tools的弃置

背景与起源

  • bcachefs 是一个自2015年开始发展的Linux文件系统,起源于bcache块缓存系统,旨在提供与ZFS和btrfs类似的高级功能(如压缩、加密、校验和RAID实现)。
  • 作者在2019年决定为Debian打包用户空间工具bcachefs-tools,最初版本为C语言编写,构建相对简单。
  • 该工具于2020年进入Debian不稳定版,旨在支持未来bcachefs在内核中的合并。

技术挑战与维护问题

  • 2023年底,bcachefs-tools 1.2版引入了Rust编写的实用工具,导致打包复杂度增加。
  • Rust依赖冲突:Debian的Rust生态版本与上游构建要求不匹配(例如,errno需0.2版但Debian为0.4版)。维护者被迫通过放宽依赖版本来使其构建,但作者对此做法表示担忧,认为可能存在潜在风险。
  • 上游支持不足:bcachefs-tools缺乏稳定发布版本,上游开发者坚持捆绑所有依赖项,拒绝支持更广范围的依赖版本,导致Debian难以维护。
  • 生命周期问题:软件更新频繁,几个月即被视为过时,无法适应Debian稳定版的发布周期和长期支持需求。

最终决定

  • 考虑到维护负担、上游开发者的不合作态度(包括收到的敌对邮件及公开指责),以及长期支持的不可行性,作者决定从Debian中完全移除bcachefs-tools
  • 在与另一位Debian开发者讨论后,改为将其弃置:已上传至实验版供有兴趣者接手,同时从不稳定版移除以阻止迁移至测试版,并计划删除稳定版和旧稳定版中的旧版本,因其可能与新内核兼容性差。

建议

  • 作者提醒,若考虑在生产环境中使用bcachefs,需谨慎评估其长期可支持性,目前缺乏稳定维护的有效实践。
12. Rust in Linux Revisited (drewdevault.com)

根据提供的内容,这是Drew Devault个人网站的一部分,而非《Rust in Linux Revisited》文章正文。内容主要显示了网站的导航结构,包括:

  1. 近期文章列表:包含《Vim Classic 8.3.0发布》、《我无法取消GitHub Copilot》等博文,但未包含目标文章《Rust in Linux Revisited》的具体内容。
  2. 项目展示:列出了作者维护的开源项目,如SourceHut、Hare、Ares OS等。
  3. 演讲列表:提到了作者关于Hare编程语言、SourceHut CI等主题的演讲。
  4. 立场声明与链接:包括反法西斯、声援巴勒斯坦等立场,以及SourceHut、Codeberg等外部链接。
  5. 最终说明:页面提示文章内容已迁移至新URL Rust for Linux revisited

结论:所提供的文本是网站框架,并非待总结的文章。因此,无法基于此生成《Rust in Linux Revisited》一文的内容摘要。

13. Drug Development Failure: how GLP-1 development was abandoned in 1990 (muse.jhu.edu)
14. Iron as an inexpensive storage medium for hydrogen (ethz.ch)

铁作为低成本氢储存介质的技术

核心原理 瑞士苏黎世联邦理工学院(ETH Zurich)的研究团队利用“蒸汽-铁工艺”实现季节性氢储存。该技术在夏季利用过剩太阳能电解水制氢,并将氢气通入400°C的不锈钢反应器,与天然铁矿石(氧化铁)反应,生成单质铁和水(储能过程)。冬季则向反应器通入高温蒸汽,逆转反应,使铁和水重新转化为氧化铁和氢气,后者可通过燃气轮机或燃料电池转化为电力和热能。

技术优势

  • 原料廉价易得:铁矿石储量丰富,无需预处理,全球采购对市场价格影响小。
  • 安全且成本低:反应在常压下进行,反应器仅需普通不锈钢,无需特殊安全装置。系统安全性高,理论成本约为现有氢储存技术的十分之一。
  • 可扩展性强:储存容量可通过扩大反应器体积和增加铁矿石填充量来轻松扩展。
  • 长期储存与循环利用:以铁和水的形式几乎无损耗地长期储存能量,反应器内装满铁矿石后可无限次循环使用,无需更换。

不足与局限 氢气生产与转换过程的能量损耗较高(可达60%),因此该技术适用于太阳能或风能资源丰富、且其他储存方式不可行的场景,特别是难以电气化的工业过程。

试点项目与未来规划 研究团队已在ETH Hönggerberg校区建成试点工厂,包含三个容积为1.4立方米的反应器,每个填充2-3吨铁矿石,总储能能力约为10兆瓦时(可转换为4-6兆瓦时电力)。目前系统使用电网电力运行。 未来目标:计划到2026年进行扩展,建造容积达2000立方米的反应器,可储存约4吉瓦时(GWh)的绿色氢气,转化后提供约2 GWh电力,满足校区约五分之一的冬季用电需求。同时,放电过程产生的废热将并入校园供热系统。

规模化应用潜力 研究人员初步估算,若瑞士未来需通过季节性氢储存每年提供约10太瓦时(TWh)电力,约需15-20 TWh的绿色氢气和1000万立方米铁矿石,这仅相当于全球最大铁矿石生产国澳大利亚年开采量的约2%。按单个储存约1 GWh电力的反应器(体积约1000立方米)计算,瑞士需建造约1万个此类设施,占地约每居民1平方米。

研发背景与联盟支持 该项目隶属于“绿色能源与储存联盟”(CGES),该联盟由ETH Zurich联合EPFL、PSI、Empa及工业伙伴于2023年成立,旨在加速碳中和气体/燃料生产、储存及二氧化碳捕获技术的市场化。联盟计划通过建立大型试点工厂(“弹射器”)来测试技术,推动能源系统转型和供应安全。

15. 500 Python Interpreters (izzys.casa)

背景与动机

随着Python 3.13引入可选GIL(PEP 703)及3.12引入独立子解释器GIL(PEP 684),Python的多线程性能迎来重大改进。作者回顾了2005年使用Python开发游戏时,因GIL导致多线程加载资源反而变慢的经历,指出GIL长期以来对Python并发性能的制约。

GIL的历史与C API演进

Python 1.5于1998年引入线程与GIL。受限于当时的API设计经验,Python采用了类似OpenGL上下文切换的全局状态设计。GIL的核心目的是保护C扩展模块中的全局状态,因为在Python 3.5(PEP 489)之前,模块导入后无法实现真正的隔离。为绕过GIL,开发者通常使用multiprocessing创建子进程,但这会带来较高的进程创建与通信开销。

独立GIL机制与代码实践

传统C API中的子解释器仍需共享主GIL。Python 3.12引入了Py_NewInterpreterFromConfig,允许通过PyInterpreterConfig配置创建完全隔离的子解释器,并为其分配独立的GIL(OWN_GIL)。该机制强制扩展模块使用多阶段初始化以保障隔离性。作者据此编写了一个C++示例,尝试在多线程环境中创建数百个拥有独立GIL的Python解释器状态(PyThreadState)并并发执行代码。

发现的内存损坏缺陷

在运行上述高并发示例时,作者发现在Debug模式下频繁创建和销毁大量解释器状态会引发内存损坏(Memory Corruption)。其根本原因是被销毁的PyThreadState未被完全清零,导致内存重用并触发了Python内部的内存调试断言。作者已将该底层内存管理缺陷提交至Python官方GitHub仓库。

现状与嵌入式替代方案

尽管移除GIL的长期目标即将在Python 3.13中全面落地,但作者指出,在当今的嵌入式脚本语言生态中,除了Lua,已涌现出许多比CPython更轻量、更高效的替代方案,如V8 (JavaScript)、.NET Core、各类WASM运行时以及pocketpy等替代型Python虚拟机。

19. Show HN: A retro terminal text editor for GNU/Linux coded in C (C-edit) (github.com)

C-EDIT 项目概述

这是一个使用纯C语言编写、不依赖ncurses库的GNU/Linux终端文本编辑器,其设计风格模仿MS-DOS时代的EDIT编辑器。

核心特性:

  • 双屏幕缓冲区:采用基于简单链表的内存结构,实现屏幕内容保存与恢复,提升显示控制。
  • 基础文本用户界面(TUI):包含窗口、文本框、键盘输入处理及配色方案。
  • 自适应窗口大小:支持终端显示尺寸自动调整。
  • 文件打开对话框:通过列表框和滚动功能浏览并选择文件。
  • 编辑缓冲区:支持垂直和水平滚动,采用行向量数据结构。
  • 性能优化:使用毫秒级计时器用于动画,通过非轮询的键盘输入检测(kbhit)降低CPU占用。
  • 语法高亮:实现基础语法高亮功能。
  • 模块化设计:代码按功能划分模块,如终端控制(rterm.c)、屏幕缓冲管理(scbuf.c)、键盘输入(keyb.c)、文件操作(opfile.c, fileb.c)、用户界面组件(ui.c)、菜单(menu.c)和编辑器主体(editor.c)等。

项目历史与状态:

  • 始于2018年,经历多次重构(如2022年重写屏幕缓冲区和修复轮询问题,2024年引入动态缓冲区)。
  • 最新更新(2025年8月)修复了状态栏闪烁问题,并增加了Page Up/Down、Home/End按键支持。
  • 项目仍处于ALPHA测试阶段,作者明确警告不要用于编辑重要文件
  • 已知兼容Termux环境。

安装与使用:

  1. 下载或克隆代码仓库。
  2. 进入src目录,执行make编译,运行./cedit启动。

待办事项:

  • 代码清理与菜单/对话框功能完善。
  • 增加只读模式、完整UTF-8支持(将字符类型迁移至宽字符)。
  • 实现文本复制、粘贴、剪切及高亮选中功能。
  • 创建键盘抽象层以提升可移植性。
  • 修复已知的显示故障与错误。

项目仓库与联系: 历史版本存档于GitHub,可通过velorek1@gmail.com联系作者。

20. Cassette Tape Archive (www.tapedeck.org)

Tapedeck.org 是一个由 neckcns.com 支持的项目,旨在展示普通音频磁带设计中非凡的美感和(有时)古怪之处。该网站展示了从1960年代早期的实用设计,到1970年代丰富多彩、充满趣味的外观,再到1980和1990年代惊人的形状变化等一系列广泛的设计。

音频磁带简史

  • 起源与主导:紧凑型音频磁带存储介质由飞利浦公司于1963年以“Compact Cassette”之名推出。尽管当时存在其他磁带盒系统,但飞利浦决定免费授权该格式(在索尼的压力下),使其成为主流。
  • 流行与巅峰:在1970年代,它成为一种流行的(且可重复录制的)黑胶唱片替代品。1980年代,索尼随身听使其流行度进一步增长,磁带销量超过了黑胶唱片(黑胶因单曲销量更大,整体仍领先)。
  • 技术改进:1965年,紧凑型音频磁带在德国汉诺威开始大规模生产,商业预售录制的音乐磁带也随之出现。该系统最初设计用于口述和便携使用,因此早期录音机音质不适合音乐,且机械设计不可靠。随着各种改进(特别是杜比降噪的引入),该格式逐渐被认真用于音乐领域。
  • 现状:尽管在西方因更先进技术而使用减少,但它仍然广泛存在,并且是许多第三世界国家主要的音乐收听媒介。

技术原理

  • 结构:音频磁带本质上是老式开盘式磁带格式的盒式(且更小)版本。它包含两个微型卷轴,氧化物涂层塑料带(或磁带)在两者之间穿行并缠绕。这些卷轴及其他机械部件被保护在外壳内。
  • 音轨:磁带上有四条单音轨,配对后产生两条立体声音轨——一条在磁带“A”面朝上插入时播放,另一条在翻面(“B”面朝上)时播放,从而模仿了唱片。

网站社区与动态

  • 征集投稿:网站欢迎用户提交自己收藏的酷炫音频磁带照片,并提供了详细的拍摄要求(如白色背景、垂直俯拍、分辨率与压缩质量),并发送至指定邮箱。文章感谢了众多贡献者。
  • 近期更新
    • 响应式布局:网站调整广告布局后,实现了更完善的响应式设计,根据浏览器窗口大小可显示1至6列磁带图片。
    • “隔离磁带101”:分享了制作磁带图案T恤的图片教程(以丹尼磁带为例),强调妥善隔离磁带的重要性,并预告新品即将推出。
    • 社交媒体:网站建议用户关注其Facebook页面以获取最及时的更新,包括未来将发布的磁带预览。
22. Show HN: Typeform alternative, turns Markdown to forms (blocks.md)

Audienceful 邮件营销平台概述

Audienceful 是一款面向2020年代重新设计的邮件营销工具,主打多人实时协作轻量化设置并默认遵循最佳实践。

核心优势与用户评价

  • 易用性:用户认为比 Mailchimp 更简单易用,能节省大量时间。
  • 协作体验:支持团队像在 Notion 或 Google Docs 中一样实时协作撰写邮件。
  • 设计与兼容性:一键生成品牌化、现代化的邮件,具备移动优先、黑暗模式适配、无障碍设计和高送达率优化。

主要功能

  1. 内容创作:通过文档式编辑替代传统复杂的邮件构建器。
  2. 自动化流程:支持设置滴灌式邮件序列,适用于新手引导、潜在客户培育等多种场景。
  3. 内容发布:可将邮件和 SEO 内容直接同步至 Webflow 等 CMS 平台。
  4. 集成能力:支持通过 Zapier 或 API 与 CRM、支付处理器及超过4000种工具同步数据和联系人。

技术基础设施与服务

  • 发送架构:由 Mailgun® 管理发送基础设施(微软和 Lyft 等企业亦使用)。
  • 隐私保护:数据收集量少于多数平台,并致力于遵守全球隐私法规。
  • 开发者支持:提供 API 访问,便于程序化集成。
  • 迁移与支持:提供免费迁移协助,支持团队由工程师组成,能直接解决技术问题。
  • 送达保障:集成 OpenAI® 垃圾邮件监控,自动拦截可能触发垃圾邮件过滤器的邮件以保护发件人信誉。

客户案例

平台服务于多种行业与组织:

  • 零售:Joe & The Juice(全球300+网点员工沟通)。
  • 金融:Ryan Hoover(Product Hunt 创始人)运营风险投资相关通讯。
  • 娱乐:Soho Live Music Club(伦敦3家音乐场馆活动推广)。
  • 代理机构:Make Build(Shopify & Webflow 企业合作伙伴,维护团队与客户关系)。
  • 初创公司:Moov(A16z + Visa 支持的金融科技公司,用于开发者网络激活)。
  • 创作者:Packing Less(建立自有受众群体,减少对 YouTube 算法依赖)。
  • 非营利组织:Vivo Media Arts Centre(展览推广与社区 outreach)。
23. Five Most Productive Years: What Happened and What's Next (writings.stephenwolfram.com)

这篇文章总结了作者过去五年的工作与未来规划,核心是其在基础科学、技术和思想探索上的突破性进展与系统性思考。

过去五年的成就: 作者认为这是其人生最高产的时期,主要成就包括:出版9本书、近4000页的写作、大量的播客和直播内容、14个软件产品发布,以及最重要的——一系列重大的思想突破。核心是物理项目(Physics Project),该项目提出宇宙可能基于简单的计算规则(具体为超图上的规则),并在此基础上构建了一个统一的基础物理框架,将广义相对论、量子力学和热力学第二定律(统计力学)联系起来,其核心是“ruliad”概念——所有可能计算的纠缠极限,以及观测者理论。

主要项目与思想脉络:

  1. 物理项目与ruliad:始于2019年,旨在寻找宇宙的“机器码”。该项目不仅提供了新物理理论,还催生了“多计算”范式,并发展出ruliad这一概念。ruliad被视为包含一切计算(包括物理和数学)的必然抽象结构,而我们感知的物理定律和数学结构,是由我们作为计算能力有限、具有时间延续性的观测者,在ruliad中的“采样”方式决定的。
  2. 跨学科应用与“待办事项”清理:多计算范式和ruliad的思想被应用于多个领域,完成或推进了作者数十年来的研究兴趣,包括:
    • 元数学与计算基础:研究欧几里得几何的“经验元数学”、组合子(combinators)和标签系统(tag systems),探索数学结构如何从ruliad中涌现。
    • 热力学第二定律:最终在2022年清晰阐述,将其根源归于底层计算的不可化约性与观测者限制之间的相互作用。
    • 人工智能(AI):分析了ChatGPT的成功,将其解释为发现了语言的“语义语法”,并撰写了解释性书籍。同时,探讨了AI、计算不可化约性、计算语言之间的关系。
    • 生物进化与机器学习:建立了最小模型,发现生物进化能成功的关键也在于计算不可化约性;机器学习则可被视为将不可化约计算的“小块”组合起来完成任务。
  3. 计算语言(Wolfram语言):作为贯穿其职业生涯的技术基石,在过去五年持续发展(发布了多个新版本)。它被视为连接人类思维与计算宇宙的桥梁,也是AI时代至关重要的“计算引擎”。作者正在设计新的“符号话语语言”,旨在为日常对话和深层推理提供精确的计算基础。

未来计划: 作者规划了大量未来项目,主要方向包括:

  1. 基础科学深化
    • 物理项目:探索实验验证(如空间离散性、“时空热”)、发展“下层几何”与“下层微积分”、理解粒子本质、深化量子力学理解及量子计算机的物理限制。
    • 化学与生物学:研究“下层化学”(关注分子个体而非物种的相互作用)、探索生物组织的“块体编排”定律、寻找生物学的统一理论。
    • 数学与计算机科学:从ruliad角度研究P vs NP等基础问题。
    • 经济学:将物理项目中的涌现思想应用于理解经济系统的“自然规律”。
  2. 技术发展
    • Wolfram语言:继续扩展,特别是融入多计算范式和超图表示。
    • 符号话语语言:启动正式设计,以精确形式化日常概念和推理。
    • 机器学习:探索基于离散最小模型的实用框架。
  3. 教育、历史与思想传播
    • 教育:撰写一本关于“计算思维”的通用教科书,将其定位为“CX”(计算X)而非传统“CS”(计算机科学)。
    • 历史研究:继续探究科学史,特别是空间离散化、神经网络起源等思想被忽视的历史,以连接和延续过去的智慧。
    • 哲学与神学连接:探讨ruliad与古老哲学和神学概念(如“万物合一”、“灵魂”)的潜在联系。

工作方法与个人哲学: 作者高效的工作模式基于:严格的时间管理与组织、将写作和阐述视为理解和推进项目的核心部分、重视历史研究以语境化创新、以及通过开源笔记本、直播工作过程等方式公开分享项目过程。他强调,许多项目之所以能在此刻完成,是因为过去几十年积累的工具、直觉和自信达到了临界点。他认为所有项目都有一个共同模式:向下挖掘找到基础,然后从基础向上构建

总之,这篇文章描绘了一位思想家以计算范式为核心,横跨基础科学、技术与人文,系统性地探索世界基本原理,并致力于将深奥思想转化为可实践工具和可传播知识的宏大图景。

24. Blood puddles, mold, tainted meat, bugs: Boar's Head inspections are horrifying (arstechnica.com)

联邦检查揭示Boar's Head肉类设施恐怖违规
美国农业部食品安全检查服务局的报告显示,弗吉尼亚州Jarratt的Boar's Head肉类设施在2023年8月1日至2024年8月2日期间存在69项违规。这些违规与全国性李斯特菌爆发直接相关,该爆发已导致9人死亡、57人感染和住院,波及18个州,并引发超过700万磅肉类的召回。

违规细节包括

  • 环境脏乱:霉菌、血水坑、肉屑粘附在墙壁和设备上、设备和房间清洁度差。
  • 虫害问题:发现苍蝇、小飞虫、蚂蚁、瓢虫、蟑螂和甲虫。
  • 设施缺陷:水泄漏、垃圾堆积,例如在“腌菜桶泵房”有大量肉屑和昆虫,在处理火腿的房间附近发现整块猪肉肌肉和肉蛋白。

李斯特菌风险与污染条件
李斯特菌能在冰箱温度下繁殖,对健康人群通常引起胃肠道感染,但对老年人、新生儿、免疫功能低下者和孕妇可导致危及生命的感染(死亡率约17%)。设施中的脏乱、漏水和虫害为细菌传播提供了理想环境。

具体检查事例

  • 2024年6月10日:在“腌菜桶泵房”发现墙壁大量肉屑,伴随苍蝇和小飞虫;另一区域滚门有肉屑,水管漏水,墙上有蚂蚁、瓢虫、蟑螂和甲虫。
  • 2024年3月13日:在网状火腿处理区附近,地板有垃圾和肉蛋白,包括整块猪肉肌肉。

这些检查报告通过信息自由法请求获得,凸显了设施长期存在的食品安全问题。

26. Password protect a static HTML page, decrypted in-browser in JavaScript (github.com)

StatiCrypt:静态HTML页面加密与浏览器内解密工具

核心功能

  • 无后端加密:使用AES-256加密和WebCrypto技术,在浏览器中解密静态HTML页面,无需服务器。
  • 部署灵活:加密后的页面可直接托管在Netlify、GitHub Pages等静态托管服务上。
  • 使用方式:提供在线浏览器加密(客户端)和CLI命令行工具。

CLI用法

安装

  • 通过npm安装:npm install -g staticrypt
  • 或直接使用npx:npx staticrypt ...

加密操作

  • 加密单个文件staticrypt test.html(会提示输入密码)或staticrypt test.html -p <密码>
  • 使用环境变量:设置STATICRYPT_PASSWORD环境变量,免去交互输入。
  • 加密多个文件staticrypt test_A.html test_B.htmlstaticrypt dir_to_encrypt -r(递归加密目录)。
  • 覆盖原文件:使用-d选项指定输出目录为原目录。

高级功能

  • 生成共享链接staticrypt test.html --share <URL>生成包含哈希密码的链接,可自动解密。
  • 固定Salt:为确保“记住我”功能跨页面/部署一致,可通过提交.staticrypt.json文件或命令行--salt参数固定Salt值。
  • 自定义模板:使用-t指定自定义HTML模板,修改界面样式。
  • 解密文件:添加--decrypt标志可解密文件。

技术原理与安全性

  • 加密算法:采用AES-CBC模式,并进行600k次PBKDF2-SHA256迭代,以抵御暴力破解。
  • 安全声明:依赖强密码(建议16+字符),但作者非密码学家,用户需根据自身威胁模型评估。
  • WebCrypto限制:v3版本要求HTTPS或localhost环境;HTTP环境需使用v2版本。

常见问题

  • 多用户支持:目前不支持单页面多密码,可通过为不同用户生成不同加密目录实现。
  • 配置文件用途:存储Salt值,确保“记住我”功能的一致性。
  • “记住我”功能:将盐化哈希密码存储在localStorage,可设置过期时间;通过#staticrypt_logout可清除。
  • 自定义模板:需保留加密相关的JavaScript变量格式。

贡献与社区

  • 提供源码结构、构建方法和测试指南。
  • 列出社区项目(如GitHub Pages模板)和其他类似工具(如portable-secret、html-vault)。
29. Deepwater Sub Recovers Roman Battering Ram Used in Carthage in Punic Wars Battle (gizmodo.com)
30. Bresenham's Circle Drawing Algorithm (2021) (funloop.org)

布雷森汉姆圆绘制算法总结

背景与问题

文章以技术面试题引入:编写一个函数 draw_circle(r) 绘制半径为 r 的圆,可使用给定的 draw_pixel(x, y) 函数来着色像素。目标是介绍多种绘制方案,并最终聚焦于 布雷森汉姆算法(也称为中点圆算法)。内容主要基于《计算机图形学:原理与实践(1996)》一书的第3.3节,并将参考实现转换为 Rust 和 Python 代码。

基础概念

  • 绘制画布:假设存在一个以 (0,0) 为中心的二维像素网格,圆将在此网格上绘制。
  • 数学定义:圆的方程为 (x^2 + y^2 = r^2)。利用对称性,只需计算第一象限的圆弧点,然后通过镜像得到全部点。
  • 对称性:利用 8 路对称性(即通过交换坐标和符号变化),从第一象限的点生成其他七个象限的点,减少计算量。

朴素算法

  1. 简单翻译法:直接遍历 (x) 从 0r,计算对应的 (y = \sqrt{r^2 - x^2})。但该方法在圆弧斜率大的区域会跳过像素,导致圆弧不连续。
  2. 改进的朴素算法:使用 8 路对称性来弥补跳跃,但会重复绘制一些像素,效率较低。
  3. 优化的朴素算法:在 x > y 时提前终止循环,避免冗余计算。然而,每次迭代仍需计算平方根,效率不高。

布雷森汉姆算法

核心思想

算法避免计算平方根,而是通过逐步选择像素来逼近圆弧。从点 (0, r) 开始,每次向右(E)或右下(SE)移动,选择更接近真实圆弧的像素。

关键步骤

  1. 中点判断:计算候选像素中点 (M = (x+1, y-0.5)) 到圆心的距离误差函数 (F(M) = x^2 + y^2 - r^2)。
  2. 决策规则
    • 若 (F(M) < 0),中点在圆内,选择 E(向右)以远离圆心。
    • 否则选择 SE(向右下)以靠近圆心。
  3. 增量计算:为避免每次计算 (F(M)),通过一阶和二阶差分递推更新误差值,将计算简化为加法操作。

算法优化

  • 整数化:将初始误差值调整为整数,避免浮点运算。
  • 二阶差分:进一步将误差变化量也转化为递推形式,消除内循环中的乘法运算。
  • 变体实现:从 (0, -r) 开始,使用 E 和 NE 移动,以简化代码。

算法比较与调整

  • 对比:布雷森汉姆算法生成的圆在低半径时更平滑,且计算效率高。
  • 微调建议
    • 对朴素算法,将半径 r 替换为 r + 0.5 可改善美观性。
    • 对布雷森汉姆算法,将条件 F(M) < 0 改为 F(M) ≤ 0 可使圆略微增大,在某些情况下更美观。

结论

布雷森汉姆算法通过误差最小化策略和增量计算,在保证效率的同时实现了较好的绘制效果。其核心在于利用数学差分简化多项式计算,体现了从暴力方法到高效算法的优化思路。