2024-01-02

50 篇热帖

1. Tom Scott: After ten years, it's time to stop making videos [video] (www.youtube.com)

Tom Scott宣布停止每周视频更新

经过十年的持续创作,内容创作者Tom Scott正式宣布,他将停止制作每周更新的YouTube视频。

核心决定:视频标题"After ten years, it's time to stop weekly videos"明确表明,Tom Scott在坚持了十年的每周视频创作后,决定结束这一频率固定的更新模式。这并非完全停止内容创作,而是调整其创作节奏与形式。

未来去向:Tom Scott在视频描述中介绍了他接下来的主要活动:

  • 播客节目:他将继续制作名为LATERAL的免费每周播客,并提供了相关链接。
  • 新闻通讯:他同时运营着一份每周新闻通讯。 这表明他的工作重心将从制作每周YouTube视频转向其他内容形式。

发布信息:该视频于2024年1月1日上传。

社区反应:从视频下方的精选评论可以看出,社区对这一决定给予了理解与支持。知名创作者频道@vlogbrothers留下了祝贺评论:"Congrats, Tom.",该评论获得了超过5.9万个赞,反映了观众群体广泛而积极的反响。

2. After 34 years, someone beat Tetris [video] (www.youtube.com)

视频摘要:34年后终于有人通关了俄罗斯方块

基本信息

  • 标题:After 34 Years, Someone Finally Beat Tetris
  • 频道:aGameScout(172K订阅者,已认证)
  • 播放量:19,326,715次
  • 点赞数:441K
  • 发布日期:2023年12月31日
  • 视频时长:约16分46秒

核心内容

该视频记录了NES(任天堂红白机)俄罗斯方块历史上首个"真正击杀屏幕"(True Killscreen)的诞生。玩家Blue Scuti完成了这一创举,相关完整直播录像可在其频道观看。

章节结构

  1. 简介(0:00)
  2. 超点击技术(0:38)——早期突破29级限制的输入方式
  3. 滚动手柄技术(2:50)——更先进的手指操作技巧
  4. 颜色故障(3:51)——高关卡中出现的色彩异常现象
  5. Stack Rabbit(6:03)
  6. 木炭阶段(10:05)
  7. 结尾(15:35)

背景意义

在数十年间,29级被视为NES俄罗斯方块不可逾越的屏障。随着超点击和滚动手柄等新技术的出现,竞技玩家得以推进到前所未有的关卡高度。该视频探讨了这些策略的演变、故障颜色调色板带来的挑战,以及将游戏推向绝对极限所面临的技术难题。

AI生成摘要

视频描述指出,该记录是否能被超越仍是未知数。视频同时提供了经典俄罗斯方块社区Discord服务器、相关技术解释视频链接、音乐列表及创作者的社交媒体信息。

3. All DMCA Notices Filed Against TorrentFreak in 2023 Were Bogus (torrentfreak.com)

2023年TorrentFreak收到的所有DMCA通知均为虚假

核心概述

TorrentFreak网站在2023年收到的全部数字千年版权法(DMCA)通知均属无效,这些通知旨在要求谷歌等平台将其新闻报道从搜索结果中移除。尽管谷歌的审核机制阻止了多数虚假请求,但TorrentFreak仍直接收到了比往年更多的电子邮件形式通知。所有投诉均因缺乏实质性侵权证据而被驳回,反映了反盗版公司基于关键词搜索的批量投诉模式存在严重缺陷。

典型案例

  • PikaShow相关报道:2023年1月,印度反盗版机构Markscan代表Hotstar等公司,多次尝试将TorrentFreak关于PikaShow运营者被捕的新闻从谷歌中下架,均因报道属合法新闻而被拒。同一报道还遭另一家反盗版公司以板球赛事版权为由错误投诉。
  • 《龙之家族》泄露事件:2022年10月关于HBO剧集泄露的报道,于2023年1月被Markscan以侵犯华纳兄弟版权为由投诉,但该报道仅为新闻报道,不构成侵权。
  • 土耳其公司的错误通知:2023年4月起,土耳其反盗版公司DigiGuardians多次向TorrentFreak发送DMCA通知,要求删除涉及电影《Güneşin Kızları》和《Muhteşem İkili》的链接。然而,这些通知指向的URL属于一个与TorrentFreak无关的恶意网站,该网站盗用了TorrentFreak的图形元素。尽管TorrentFreak在62分钟内提供了详细反驳证据,但DigiGuardians未作回应,且后续继续发送类似错误通知。

问题分析

  1. 自动化与关键词依赖:反盗版公司可能采用自动化工具或关键词搜索(如“PikaShow”“House of the Dragon”)批量生成通知,导致合法新闻报道被误标为侵权内容。
  2. 缺乏基本验证:部分通知甚至未核实URL所属域名,直接将针对其他网站的侵权指控错误发送给TorrentFreak。
  3. 资源浪费:虚假通知浪费了各方的审查与应对资源,虽谷歌的审核机制在前端拦截了多数请求,但直接发送至TorrentFreak的邮件仍需处理。

结语

尽管反盗版工作面临挑战,但重复出现的同一错误——尤其针对曾公开披露此类问题的网站——凸显了该系统在准确性和责任性上的缺陷。文章最后提及,2024年开年即收到DigiGuardians的更多虚假通知,暗示该问题仍在持续。

4. Woman with rectifier and electric car (1912) (nyheritage.contentdm.oclc.org)

这张1912年的历史照片题为“Woman with rectifier and electric car”,记录了一位女性与一台整流器及一辆电动汽车的合影。影像内容聚焦于早期电动汽车技术及相关设备,展现了当时女性参与科技领域的场景。图片来自纽约遗产数字馆藏(New York Heritage Digital Collections)。

5. A* tricks for videogame path finding (timmastny.com)

本文介绍了在资源受限的游戏平台上实现怪物寻路功能的几种算法与技巧。

主要寻路算法对比

  1. 直线路径:最简单的方法,但怪物遇到障碍物会卡住。通过墙壁滑动可改善玩家移动的响应性(如吃豆人),但会导致怪物被困,可能成为设计意图外的游戏缺陷。
  2. Dijkstra算法:能保证找到最短路径,但计算量过大,因为它会计算起点到图中所有节点的路径。在游戏中,玩家位置每帧变化,怪物仅需知道移动方向,该算法效率过低,尤其在资源受限平台上不适用。
  3. A*搜索算法:结合了Dijkstra算法的最优性和启发式引导。它通过启发式函数(估算当前节点到目标的距离)优先向目标方向探索,遇到障碍时再回溯寻找绕行路径。相比Dijkstra,它能更快找到通往目标的路径,且不会像直线路径那样被困住。

实用的A*优化技巧

1. 隐式图数据结构

  • 核心思想:不预先构建庞大的邻接列表,而是在算法运行时动态生成。
  • 实现方式:以游戏中的像素或瓦片为节点,根据当前位置实时计算其8个方向的相邻节点(上下左右及对角线)。
  • 优势:自动排除越界或被占用(如墙壁、其他精灵)的无效节点,节省内存,实现灵活。
# 动态生成邻居节点的伪代码示例
neighbors = [current + dir for dir in [(-1, 0), (1, 0), (0, -1), (0, 1), ...]]
for neighbor in neighbors:
    if out_of_bounds(neighbor) or occupied(neighbor):
        continue
    # 处理有效邻居

2. 基于几何信息的启发式调整

  • 调整步长:使用瓦片而非像素作为寻路节点,可大幅减少迭代次数,加快搜索速度。此时路径结果是一系列方向指令,而非精确的每步坐标,足以满足怪物实时追踪移动的需求。
  • 限制迭代深度
    • 原理:A*算法从优先队列取出的节点即为当前最优路径的末端。因此,提前终止算法(如设置固定迭代次数)仍能得到一个近似最优的方向指引。
    • 权衡:深度过小可能导致怪物在障碍物附近陷入循环(例如上下移动),但玩家一旦进入更近范围即可解决。
    • 进阶优化:可预先计算地图上每个位置所需的最大迭代深度,使A*能在保证寻路成功的前提下及时返回结果,避免完成完整计算带来的性能开销。

总结

文章通过对比几种寻路方法,突出了A算法在游戏AI中的实用性与效率。重点介绍的两个技巧——隐式图数据结构几何启发式调整(包括选择合适节点粒度与设置迭代深度)——能有效降低A算法的实现复杂度和运行时开销,使其更适合在资源有限的游戏环境中实现实时寻路。

6. Mathematical Introduction to Deep Learning: Methods, Implementations, and Theory (arxiv.org)

《深度学习数学入门:方法、实现与理论》内容概要

本书旨在为深度学习算法提供一个全面的数学入门介绍。它系统地涵盖了深度学习的核心组件、理论基础和实际应用方法,适用于希望从零开始建立扎实基础的学习者,也适用于希望深化数学理解的实践者。

核心内容概述

1. 深度学习算法组件

本书详细阐述了构成深度学习算法的两大核心组件:

  • 人工神经网络架构:深入介绍了多种基础及先进的ANN架构,包括:

    • 全连接前馈神经网络
    • 卷积神经网络
    • 循环神经网络
    • 残差神经网络
    • 以及包含批归一化等技术的神经网络。
  • 优化算法:全面回顾了用于训练神经网络的各种优化方法,包括:

    • 随机梯度下降法
    • 加速优化方法
    • 自适应学习率方法。

2. 理论层面

书中对深度学习的关键理论方面进行了探讨,主要包括:

  • 神经网络的近似能力:分析了神经网络作为函数逼近器的理论性质,甚至涉及相关的“计算法则”。
  • 优化理论:研究了神经网络训练过程中的优化景观,包括应用了库尔迪卡-洛贾谢维奇不等式等工具。
  • 泛化误差:探讨了模型在未见数据上的性能表现的理论分析。

3. 应用方法

本书的最后部分介绍了深度学习在科学计算领域的应用,特别是用于求解偏微分方程的近似方法,例如:

  • 物理信息神经网络
  • 深度伽辽金方法。

目标读者

本书定位明确,面向两类人群:

  1. 初学者:完全没有深度学习背景,但希望获得坚实数学基础的学生和科研人员。
  2. 实践者:已经具备实践经验,但希望对其所用模型和方法获得更深入数学理解的工程师与研究人员。
7. New Ultra Fast Lossless Audio Codec (HALAC) (hydrogenaud.io)

HALAC(高可用性无损音频压缩)介绍与讨论摘要

1. HALAC 基本介绍

HALAC(High Availability Lossless Audio Compression)是一款由开发者 Hakan Abbas 推出的新型无损音频编解码器。其设计核心是追求极高的处理速度,同时保持合理的压缩率。开发者先前已开发过无损图像编解码器 HALIC,HALAC 沿用了类似的理念。

  • 技术特点:当前版本专注于处理16位、双声道、44100Hz采样率的 WAV 格式音频数据。核心编码技术采用线性预测(LPC)结合 ANS(非对称数字系统,具体为 FSE) 进行残差编码。开发者指出,ANS 相较于常见的 Rice 编码在速度上优势明显(快约0.6-0.7倍),但压缩率会略低1-2%。HALAC 未使用GPU或SIMD加速,且目前仅为单线程版本,未来可能增加多线程支持。
  • 设计哲学:开发者明确表示,其目标是在速度上做出妥协压缩率的选择。对于音频数据,压缩率本身有其上限,因此更看重处理速度。

2. 性能测试与社区反馈

论坛成员 Porcus 进行了独立的性能测试,并提供了与 FLAC 和 TAK 编解码器的对比数据。

  • 速度表现:在测试中,HALAC 的编码和解码速度均非常突出。在 RAM 磁盘测试中,其编码速度接近或超过 FLAC -0 模式(禁用MD5时),解码速度则显著快于 FLAC 和 TAK。例如,在处理四张金属专辑时,HALAC 编码耗时8.9秒,而 FLAC -0 耗时12.3秒。
  • 压缩率表现:压缩率介于 FLAC -0 和 -1 之间。在完整语料库测试中,HALAC 生成的文件大小约为12.4TB,优于 FLAC -0(约13.4TB)和 ALAC,但略大于 FLAC -1(约12.8TB)和 FLAC -5(约12.0TB)。
  • 材料敏感性:测试发现 HALAC 的性能与音频内容类型相关,在古典音乐和金属音乐上表现不同。

3. 社区关注的问题与开发者回应

讨论中,社区成员提出了多项技术关切和建议:

  • 数据完整性校验:初期版本被指出缺乏错误检测机制。开发者随后回应,已在 V.0.2.0 版本中为数据块添加了哈希校验(如 wyhash, xxhash 等快速哈希函数),并强调这对速度影响很小。社区成员则建议,一个快速的强制性完整性校验对于无损编解码器至关重要,并讨论了全文件流MD5校验的行业惯例价值(便于跨编解码器比对)。
  • 元数据与小文件处理:测试发现压缩含元数据的WAV文件后,解码文件可能丢失元数据块且长度信息异常。开发者表示处理元数据是“下一个简单的细节”,并指出当前最小块尺寸为24KB,对于极小文件支持不佳,将在后续更新中改进。
  • 极端数据与压缩极限:成员 Porcus 用日本噪声音乐(如 Merzbow 的作品)进行测试,这类音频具有极高的熵,对压缩算法是巨大挑战。测试显示 HALAC 在此等极端情况下压缩效果有限。开发者表示将研究相关数据,并承认当前使用单一预测器,未来可能引入更自适应的预测器,但需权衡其速度影响。
  • 技术建议:社区建议参考 FLAC 的“verbatim subframes”(直接存储原始样本)以应对短文件,并探讨了类似于视频GOP的分组校验策略以平衡效率与校验粒度。

4. HALAC 的局限性及未来展望

  • 当前局限性
    1. 校验与鲁棒性:早期版本缺少数据完整性保护。
    2. 格式支持:仅支持特定规格的WAV文件,对非标准文件(如含特殊元数据、极短文件)处理不完善。
    3. 压缩深度:使用单一预测器和固定的编码策略,在处理高熵(如噪声音乐)或需要高度自适应的复杂音频时,压缩率有提升空间。
  • 未来计划:开发者表示 HALAC 仍处于早期阶段,计划包括:
    • 增加对更高位深和多声道音频的支持。
    • 探索和集成更先进的自适应预测器与残差编码方法(如改进的Rice编码),在速度和压缩率之间寻找新平衡。
    • 完善文件格式的健壮性,包括小文件处理和更全面的校验机制。

5. 行业背景与讨论延伸

讨论中也延伸出对无损音频编解码技术发展的回顾,指出这是一个压缩率、编码速度、解码速度的三维权衡空间。FLAC 作为基准在不断优化,而 TAK 等编解码器曾重新定义了对速度的认知。HALAC 的出现,被视为在追求速度极限上的一次新的尝试。社区普遍对其实现的解码速度表示印象深刻,并鼓励开发者在此方向继续深入,同时完善其基础功能以提升实用价值。

8. The funny rules of SpamAssassin in 2023 (updown.io)

这篇文章深入探讨了SpamAssassin垃圾邮件过滤器在2023年的一些有趣且有时令人费解的规则,重点分析了一封普通的确认邮件为何被标记为垃圾邮件。

问题背景

作者的客户偶尔报告,由Devise生成的用于确认新邮箱地址的确认邮件被标记为垃圾邮件。邮件内容本身看起来并不垃圾,但SpamAssassin有时会给出高于默认阈值5分的“垃圾邮件分数”。

调查与复现

作者在本地安装了SpamAssassin(版本3.4.6)并尝试复现问题。测试发现:

  • 使用网络测试(默认模式)时,邮件得分较低(0.6分),但仍命中了 HTML_IMAGE_ONLY_28URI_PHISH 规则。
  • 使用仅本地测试(-Lt选项)时,分数升至3.8分。因为缺少网络信号,部分规则的得分被放大。

作者建议,如果拥有本地DNS解析器,应启用网络规则以获得更可靠的结果。

关键规则分析

作者创建了自动化测试来持续监控邮件得分,并深入分析了两个关键规则:

  1. HTML_IMAGE_ONLY_28

    • 作用:标记仅包含少量文字(2000-2800字节)和图片的HTML邮件,因为垃圾邮件常将文本嵌入图片以逃避过滤。
    • 解决方案:作者选择增加邮件的文字内容长度,使其匹配 HTML_IMAGE_ONLY_32 规则。该规则在仅本地测试时得分2.2,但启用网络测试时得分为0。
  2. URI_PHISH

    • 作用:这是一个复杂的规则,用于检测类似网络钓鱼的邮件。它由多个子规则组成。
    • 触发逻辑URI_PHISH 需要同时满足:邮件包含URI、正文包含类似钓鱼的短语(如“确认你的账户”)、并且不满足一系列排除条件。
    • 有趣的发现:作者详细研究了其源码规则集,发现了许多排除条件(即如果满足,则不被视为钓鱼邮件),其中一些规则非常古怪,例如:
      • 如果邮件包含 <center> 标签。
      • 如果邮件包含 Sender 头。
      • 如果邮件正文包含“can help”、“cost”、“tour”等单词。
      • 如果主题行包含超过3个数字。
      • 如果包含退订链接(__UNSUB_LINK)。
      • 如果返回路径包含“bounces@”(__VIA_ML)。
    • 这些规则的存在使得该过滤器容易被规避,却也容易误伤正常邮件。

作者的解决方案

经过分析,作者采取了以下措施来避免误判:

  1. 增加了邮件正文的文字内容量,以规避 HTML_IMAGE_ONLY_28 规则。
  2. 修改了邮件中的措辞,避免触发 __VERIFY_ACCOUNT 等钓鱼检测正则表达式。
  3. 为部分邮件添加了 Sender 头(与 From 头相同),虽然觉得这有些取巧。
  4. (未能实现)尝试改变返回路径地址以避免“bounces@”,但受邮件服务商限制无法完成。

作者最终发布了一个新的邮件版本,旨在通过这些调整降低垃圾邮件得分,同时保持邮件外观和用户体验。

9. A new approach to local multiplayer / splitscreen perspective with raytracing (ph3at.github.io)

本文探讨了利用光线追踪技术实现本地多人游戏分屏的新方法。作者是本地合作游戏与3D渲染的爱好者,在2019年构思并2022年原型验证了该想法,旨在利用实时光线追踪的独特优势为本地多人游戏提供一种全新的屏幕共享方式。

历史回顾与现有方案 文章首先回顾了传统分屏与共享屏幕游戏的发展。传统方案是为N个玩家划分N个屏幕区域,每个区域有独立的摄像机视角。一些游戏在此基础上有所创新:

  • 《Renegade Ops》(2011)实现了动态分屏,根据玩家在世界空间中的相对位置,以可倾斜的分割线实时调整屏幕布局。
  • 《DYO》(2018)则将分屏机制本身转化为核心玩法,玩家可以控制分屏的方式和时机来解决谜题。
  • 《Degrees of Separation》(2019)结合了上述两者,将动态分屏深度整合到游戏机制中。
  • 《Ys VIII》与《IX》则尝试了不使用分屏,通过一个共享的3D摄像机尽力将所有玩家保持在视野内,提供独特的游戏体验。

技术背景与核心创意 作者指出,所有现有方案(无论是固定分屏还是动态分屏)的本质都是将屏幕划分给多个独立的、标准的摄像机视角。这源于传统光栅化渲染管线的根本限制:它假设整个屏幕使用单一一致的摄像机投影。在光栅化下实现多视角渲染需要为每个视角近乎完整地重复渲染过程,性能成本高昂且通常限制最多支持约4个视角。

光线追踪的潜力则从根本上改变了这一点。简化而言,光线追踪是为每个像素单独发射射线并计算其命中结果。这意味着理论上可以为每一个像素使用完全不同的光线方向和位置,从而在像素级别动态调整摄像机参数。

新方法与实现 基于此,作者提出了一个革命性的想法:不再为玩家分配完全独立和清晰划分的视角区域,而是在像素级别上动态插值摄像机。这不仅允许任意分配屏幕空间给不同玩家的视角,甚至可以在玩家视角之间进行平滑过渡

文章展示了一个名为《Sphere Spectacle》的原型演示。场景开始时是共享视角,当两个玩家控制的球体远离时,屏幕会平滑地分裂为各自的区域。最有趣的是中间的“无人区”,由于摄像机参数插值,空间会呈现挤压变形的效果。

该原型的技术实现核心在于光线生成着色器中如何决定屏幕的分割。作者尝试了多种数学方案(类似于在玩家屏幕位置之间绘制维诺图并设置插值宽度),最终采用了一种临时方案。整个原型(包括支持两个玩家)仅用两天时间完成,展示了该想法在光线追踪管线下实现的简洁性,远比在光栅化管线下实现类似效果要简单得多。

结论 文章总结道,这一创新思路利用了光线追踪允许每像素独立控制摄像机的本质,为本地多人游戏的屏幕共享提供了全新的可能性,超越了传统的固定或动态分屏范式。作者希望未来能有完整的游戏基于此理念进行构建。

10. Eating fewer calories can ward off ageing (www.economist.com)

文章摘要

标题:少吃卡路里可以延缓衰老

主要内容

  • 文章探讨了减少卡路里摄入与延缓衰老之间的关系,但提供的内容主要聚焦于一个历史实验作为引子。
  • 关键实验:1991年,八名志愿者参与“生物圈2”实验,将自己封闭在亚利桑那州图森附近沙漠的一个巨大温室中。该实验旨在测试精心挑选的植物和动物能否发展成一个自我维持的生态系统,独立于外部世界(“生物圈1”)。
  • 文章上下文:这篇文章发表于2023年9月25日,属于《经济学人》印刷版的Technology Quarterly部分,原题为“Don’t be greedy”。它介绍了实验的基本情况,但未详细阐述卡路里摄入或衰老机制的具体科学细节。

结构

  • 文章以标题和图片开头,图片展示了一只手拿着叉子上有微小蔬菜的场景,呼应健康饮食主题。
  • 随后描述了1991年生物圈2实验的背景和目的。
  • 最后注明了文章在印刷版中的位置和版本信息。

关键功能

  • 通过历史实验引入主题,可能为后续讨论少吃卡路里益处提供背景。
  • 突出生态系统测试的概念,间接联系到人类健康与环境的关联。
11. Writing a TrueType font renderer (axleos.com)

TrueType 字体渲染器编写总结

背景与动机

axle 系统长期依赖低分辨率 8x8 位图字体,渲染效果粗糙。为实现高质量文本渲染,需要开发支持可缩放、曲线描述且存储高效的字体渲染器。TrueType 作为行业标准,成为理想选择。

基础位图渲染方案

  • 原理:每个字符固定为 8×8 像素网格,每行用 1 字节表示像素开关状态。
  • 实现:使用 uint8_t ascii_map[256][8] 存储字符位图,渲染时直接查表。
  • 局限
    • 无法平滑缩放,放大后锯齿明显。
    • 仅支持预置字体,难以使用外部字体文件。
    • 难以描述曲线细节。

TrueType 渲染器核心设计

1. 文件结构解析

  • TTF 文件类似 Mach-O,采用分节结构,每节由 4 字符 ASCII 名标识,包含元数据和字形数据。
  • 关键表
    • glyf:存储字形轮廓的点集(核心)。
    • hmtx:字形水平间距信息。
    • cmap:Unicode 码点到字形索引的映射。
    • head:字体全局元数据(如字形边界框)。
    • loca:字形数据偏移量。
  • 解析优化
    • 使用 BigEndianValue<T> 封装大端字段,自动转换为本地字节序。
    • 通过 #[repr(C, packed)] 直接映射内存结构,实现零拷贝解析。

2. 字形处理

  • 字形类型
    • 多边形字形:由控制点和轮廓点定义,需连接为曲线。
    • 空白字形(如空格):无视觉表现,仅推进光标。
    • 复合字形:组合多个字形片段(如 'i' 和 'j' 共享点),支持缩放和定位。
  • 渲染流程
    1. 根据 cmap 查找字符对应的字形索引。
    2. glyf 解析点集,连接轮廓并填充颜色。
    3. 根据 hmtx 推进光标。

3. Hinting 虚拟机

  • 目的:在低分辨率下保持字形可读性,通过微调控制点适配像素网格。
  • 实现
    • 模拟 TrueType 定义的虚拟机,解释执行字形内嵌的指令。
    • 指令集包括栈操作、算术计算、控制点移动等。
    • 需处理函数定义、隐含控制点等复杂机制。
  • 挑战:需解析 fpgm(函数程序)和 prep(控制值程序)表,并正确处理虚拟机状态。

4. 技术细节与边界情况

  • 复合字形:可能形成树形结构,需递归处理;光标推进指标可能继承自子字形。
  • 隐含控制点:规范要求渲染器推断缺失点,仅凭单张示意图说明。
  • 幽灵点与暮光区:虚拟机使用“暮光区”存储参考点,“幽灵点”用于边界框调整。
  • 小尺寸回退bloc 表可在尺寸过小时直接使用位图,绕过曲线和 hinting。

开发成果

  • 实现了完整的 TrueType 渲染器,支持曲线插值、复合字形和 hinting。
  • 集成到 axl 桌面环境,替代了原有 8x8 位图系统。
  • 源代码开源,开发过程中包含调试和优化截图。

总结

TrueType 渲染器解决了位图字体的缩放和细节问题,通过解析结构化二进制文件、处理复杂字形逻辑和虚拟机执行,实现了高质量文本渲染。开发过程涉及深入的二进制解析、图形学和虚拟机设计,最终为 axl 系统提供了现代化的文本显示能力。

13. Introduction to Plan 9 (fqa.9front.org)

文章标题: Plan 9 简介

Plan 9 是贝尔实验室开发的分布式操作系统,旨在以统一的方式处理网络化计算。其核心设计理念是“一切皆文件”,将资源(如进程、网络连接、窗口系统等)抽象为文件系统中的文件。

主要特点与概念:

  1. 分布式设计:Plan 9 将网络视为单一的计算资源集合。程序可以透明地访问本地或远程的资源,无需区分。
  2. 每个进程的命名空间:与 Unix 不同,Plan 9 中每个进程都有自己独立的、可定制的“命名空间”。这个命名空间是它可见的文件系统层次结构,由一组绑定(bind)和挂载(mount)操作构成。这使得进程可以拥有完全不同的系统视图。
  3. 协议驱动的资源表示:所有资源通过标准协议访问。文件服务器(如网络文件系统 9P、CPU 服务器、认证服务器)提供文件接口,客户端通过 9P 协议与它们通信。
  4. 文件系统即接口:系统服务(如显示 rio、网络)通过文件接口暴露。例如,管理窗口就像在 /dev 目录下读写文件。
  5. 清晰的层次:系统分为用户级服务和内核。内核提供基本的进程、内存和设备管理,而文件服务器和其他服务运行在用户空间。
  6. 工具与环境:其用户界面和工具(如 rc shell、文本编辑器 sam/acme)设计简洁,强调脚本化和组合性,体现了 Unix 哲学,但在分布式环境下重新设计。

目的与影响: Plan 9 是为解决 Unix 在网络和分布式环境中的局限性而设计的实验性系统。虽然没有被广泛商用,但其理念(如虚拟化命名空间、网络文件系统协议 9P)对后来的操作系统(如 Linux 的 /proc)和研究产生了深远影响。它代表了一种更纯粹、更统一的计算范式。

14. JAL A359 at Tokyo collided with Coast Guard DH8C on runway and burst into flames (avherald.com)

2024年1月2日东京羽田机场跑道相撞事故概要

事件概述: 2024年1月2日,日本航空(JAL)一架空客A350-900客机(航班号JL-516,注册号JA13XJ)在东京羽田机场34R跑道降落时,与一架日本海上保安厅的德哈维兰Dash 8-300飞机(注册号JA722A)发生碰撞,两机随后起火燃烧。

涉事航班与人员:

  • A350客机: 载有367名乘客(含8名儿童)和12名机组人员,执飞从札幌飞往羽田的航班。事故造成15名乘客受伤。机上全员通过紧急滑梯成功撤离。
  • Dash 8飞机: 载有6人,当时正运送物资前往受地震影响的新潟基地。事故造成机上5人死亡,1名机长受重伤。

事故经过: 根据初步调查及空管录音,A350客机获准降落。Dash 8飞机当时获得了滑行至34R跑道C5等待点的指令,并被告知其为“第一架起飞”的飞机。然而,调查发现,Dash 8机长在滑行过程中误将部分无线电通讯理解为起飞许可,随即进入跑道准备起飞。约2分16秒后,正在着陆的A350与停在跑道上的Dash 8相撞。A350撞击后滑行约1000米后停在跑道右侧,随后起火。

救援与应急: 事故发生后,A350机组最初未察觉到起火,直至乘务长报告。疏散主要在7分钟内完成,但机长随后花费额外11分钟说服最后几位受惊的乘客离开飞机,其本人于撞击后18分钟最后一个离开。消防部门在事发约8小时后才完全扑灭大火。羽田机场一度完全关闭,后部分恢复运行,而事发跑道(16L/34R)直至1月8日才重新开放。事故导致超过1200个航班被取消,部分抵达航班转降至成田机场。

调查与发现:

  • 主导机构: 日本运输安全委员会(JTSB)负责调查,法国BEA与英国AAIB派遣团队协助。东京警视厅亦以业务过失致死嫌疑立案调查。
  • 空管情况: 塔台管制员在发出指令后转向关注其他飞机,未能注意到Dash 8已驶入跑道。虽然跑道监控系统运行正常,但管制员可能错过了告警。事后,日本国土交通省在空管中心增设了专门负责持续监控跑道侵入的岗位。
  • 机组与沟通: A350机组三人未目视到Dash 8飞机。Dash 8机长在接受警方询问时表示,他认为听到了起飞许可,并在碰撞前突然发现飞机后方起火。
  • 设备记录: 两架飞机的飞行数据记录器(FDR)与驾驶舱语音记录器(CVR)均已寻获,数据正在分析中。
  • 初步报告(2024年12月): JTSB发布的报告显示,Dash 8机组在滑行期间收到了关于起飞顺序的“第一”信息并正确复诵,但在听到一段部分重叠的无线电通讯后,机长误以为获得了进入跑道并起飞的许可。

后续措施: 日本国土交通省在事故后对空中交通管制流程进行了审查,宣布不再向机组传达起飞顺序信息(如“第一架”),以避免产生误解。

15. Hiew Hex Editor (lock.cmpxchg8b.com)

Hiew 十六进制编辑器简介

Hiew 是一款基于控制台的十六进制编辑器,主要依靠键盘操作(尽管基本支持鼠标)。它自1991年发布以来持续维护,当前版本为8.80。其设计强调通过链式组合简单命令来完成复杂任务,学习曲线较为陡峭,但熟练后能执行高效操作。

主要特点

  • 操作方式:类似Vim,依赖键盘宏与命令组合,适合高频使用二进制编辑的用户。
  • 多视图模式:支持文本、代码(内置反汇编器)和数据视图,按Enter可快速切换。
  • 文件分析工具
    • 字符串查看(Alt+F6
    • 字段标记与着色(*标记块,Alt+MAlt+Shift+M着色)
    • 注释(;添加注释,Shift+F12添加名称)
    • 快速导航(Alt+N/Alt+Shift+N在标记间跳转,F12打开名称列表)
  • 高级功能
    • 宏录制Alt+.开始/结束)与循环执行,可自动化重复任务(如批量替换)。
    • 书签栈+设置书签,-返回)。
    • 内置汇编器与反汇编器,可直接修补可执行文件。
    • 计算器功能(支持进制转换、字段提取)。

应用场景示例

  1. 分析未知文件格式
    通过查看字符串、标记字段、添加注释,逐步解析结构。示例中识别出ZIP文件头并提取数据块。

  2. 修补可执行文件
    在代码视图中浏览反汇编代码,使用分支跳转(如↓5按5跳转),通过Alt+F2将指令替换为NOP,或手动汇编新指令(如xor eax, eax)。

  3. 修复损坏文件
    通过宏录制修复PNG文件头中的多余0D字节:录制搜索0D0A并删除0D的操作,设置宏循环直至搜索失败,批量修复文件。

辅助资源

  • 作者提供了在线快捷键参考工具 hiewdocs,方便查阅命令。

Hiew 适用于需要深度操作二进制文件的场景(如逆向工程、数据修复),但其复杂性可能不适合低频用户。

16. 50 Algorithms Every Programmer Should Know (Second Edition) (www.oreilly.com)

《每位程序员都应掌握的50种算法(第二版)》书籍概要

基本信息:本书于2023年9月出版,共538页,面向中高级读者,语言为英语。

核心内容:本书系统介绍了50种关键算法,不仅教授实现方法,还深入讲解其基本原理。内容涵盖经典算法与现代主题,如神经网络和密码学,旨在帮助读者将这些技能有效应用于解决现实世界的问题。

主要学习目标

  • 开发和实现高效算法以解决计算问题
  • 理解和构建机器学习模型,包括现代深度学习架构
  • 运用图算法有效分析与解决图相关问题
  • 掌握自然语言处理的基础知识及其高级技术
  • 利用并行处理技术优化大规模计算

作者:Imran Ahmad,是一位经验丰富的软件工程师和数据科学家,擅长实现和讲解复杂算法。他具备在多领域应用算法的实践经验,其写作风格平易近人,能帮助不同背景的读者理解和掌握内容。

目标读者:本书适合希望加强算法专业知识并拓展问题解决工具的程序员。尤其适合拥有一定Python编程基础、旨在探索从基础到前沿各种算法的学习者。无论读者是投身机器学习还是掌握密码学技术,本书都能为其在各个学习阶段提供有价值的见解。

18. E621, Pornhub, and others block North Carolina residents (www.foxcarolina.com)

北卡罗来纳州多家网站屏蔽用户访问
随着北卡罗来纳州新法律即将于1月1日生效,包括Pornhub和E621在内的多个网站宣布将对该州用户实施访问屏蔽。该法律要求发布被认定为对未成年人有害内容的网站,必须对用户进行年龄验证,确认其年满18岁方可访问。

Pornhub母公司Aylo在声明中表示,公司决定屏蔽该州用户而非执行年龄验证程序。根据新规,网站可使用商业数据库对用户年龄进行核实。

19. Thomas Cochrane (sergey.substack.com)

托马斯·科克伦:传奇海军将领的一生

早年经历与海军生涯开端

托马斯·科克伦(第十代邓唐纳德伯爵)出身于一个破产的贵族家庭。为赚取捕获敌船的奖金,他加入英国皇家海军。早期生涯并不顺利,因不尊重上级军官首次受军事法庭审判。七年后才获得首个指挥权,其舰艇仅装备14门4磅炮。

“合法海盗”与战术创新

科克伦在海军中开启了“合法海盗”生涯。他擅用心理战术,如伪装旗号、假扮丹麦瘟疫船以避免登检。曾以14门炮、54人的小船俘获拥有32门炮、309人的西班牙护卫舰,战术包括给船员涂黑脸、伪装投降。他的核心战术是“采取无人敢想的行动”,在13个月内俘获超50艘船只。尽管曾被法舰俘获,法军指挥官因佩服其长期周旋而拒绝接受他的佩剑。

与官僚斗争及政治生涯

科克伦因官僚克扣奖金而失去大部分战利品。他用所得资金赴爱丁堡学习道德哲学。随后继续劫掠西班牙船只,并发明新式航海灯,但遭海军部抵制。他化名参赛并获胜,却因此成为海军部官僚的眼中钉。

转入政坛后,科克伦在腐败选区以原则竞选。首次落选后仍向支持者支付十基尼,次年胜选后拒绝再付,坚守原则。他猛烈抨击海军部的腐败。

拿破仑战争中的非凡表现

科克伦以单舰对法国海岸实施恐怖袭击,曾三天内俘获要塞、延迟法军行动一个月,仅损失三人却因“过度使用火药”受训斥。在巴斯克锚地战役中,他设计炸毁搁浅的法军舰队,但因友军指挥官失职未能全歼。拿破仑评价:“若科克伦得到支持,本可俘获所有舰船。”

国际军事顾问生涯

科克伦后受智利邀请领导其海军,参与独立战争。他以少量兵力攻占太平洋主要西班牙要塞瓦尔迪维亚,并策划营救拿破仑未果。在利马,他仅用十五分钟从重兵把守的港口夺取西班牙旗舰“埃斯梅拉达”。后因与圣马丁产生分歧,转而为巴西独立战争效力,以单舰迫使葡萄牙舰队投降。晚年还曾指挥希腊海军。

个人特质与遗产

科克伦一生充满争议:曾因证券欺诈入狱并越狱,曾炸毁自家房屋抗议政府逮捕议员,三次迎娶同一位年轻女子。他坚定维护船员利益,曾自掏腰包支付战费,战争令他个人亏损一万九千英镑。

核心教训:科克伦的一生证明,巧妙运用炸药能解决多数问题;而“一个因风险过高无人敢试的杰出计划,可能正因为无人预期有人会实施而成功”。

20. Zig cookbook: collection of simple Zig programs that demonstrate good practices (github.com)

Zig Cookbook 项目概览

Zig Cookbook 是一个集合,收录了多个用 Zig 语言编写的简单程序,旨在通过具体示例展示如何采用最佳实践来完成常见的编程任务。

版本与环境

  • 主分支 跟踪 Zig 0.16.x 版本,并通过 GitHub Actions 在 LinuxmacOS 平台上进行测试。
  • 早期 Zig 版本的支持可在其他分支中找到。

使用方法

  1. 网站预览:该网站由静态站点生成器 zine-ssg 生成。运行后,可在 http://localhost:1990 地址访问预览。
  2. 运行示例
    • 每个“配方”(recipe)都附有一个以对应序号命名的示例。
    • 可以使用命令 zig build run-{chapter-num}-{sequence-num} 来运行特定示例。
    • 使用命令 zig build run-all 可以运行所有示例。

注意事项

部分配方可能依赖于系统库。

  • 使用 make install-deps 来安装所需的客户端库。
  • 使用 docker-compose up -d 来启动必要的数据库。

贡献指南

本项目仍在进行中,欢迎社区贡献。

  • 贡献配方:如果你有想分享的优秀配方,请提交拉取请求(Pull Request)。
  • 本地化
    1. 在相应的语言文件夹中创建配方。
    2. 进行本地化翻译。
    3. 提交拉取请求。

致谢

Zig Cookbook 的灵感来源于其他类似项目,特别感谢:

  • Rust Cookbook。
  • zine-ssg:感谢 Loris Cro 创建了这个出色的 Zig 静态站点生成器。

许可协议

  • Markdown 文件:采用 CC BY-NC-ND 4.0 DEED 许可。
  • Zig 源代码文件:采用 MIT 许可。
21. An untold story of LSD psychotherapy in communist czechoslovakia (thereader.mitpress.mit.edu)

文章概要:共产主义时期捷克斯洛伐克LSD心理治疗的隐秘历史

本文标题为“共产主义捷克斯洛伐克中LSD心理治疗的未讲述故事”,暗示了一段鲜为人知的历史。基于标题和相关背景知识,可推断文章可能涉及以下核心内容:

  • 历史背景:20世纪中叶,捷克斯洛伐克处于共产主义政权下,但与外界想象不同,该国在冷战时期可能曾进行过LSD(麦角酸二乙酰胺)的心理治疗研究或应用。这反映了当时东欧国家在医学和科学领域的某些探索,尽管政治环境封闭。
  • LSD的心理治疗用途:LSD作为一种致幻剂,在20世纪50-60年代曾被全球一些精神科医生用于辅助心理治疗,尤其针对抑郁症、焦虑症或创伤后应激障碍(PTSD)。捷克斯洛伐克的实践可能类似,旨在探索其对精神疾病的疗效。
  • 特殊环境下的实践:在共产主义体制下,此类研究可能受限于意识形态审查、资源短缺或对外隔离,但仍由部分医生或科学家在保密或边缘条件下进行。这可能涉及政府、医疗机构或学术团体的合作。
  • 历史遗忘的原因:这段历史可能因政治动荡(如1968年“布拉格之春”及苏联入侵)、药物在西方被污名化(如反文化运动滥用)、或官方刻意掩盖而未被广泛记载。文章可能通过档案、采访或私人记录还原这一过程。
  • 治疗应用与争议:尽管LSD治疗在捷克斯洛伐克可能取得一定成效,但随着全球对致幻剂的管制加强(如美国1970年《管制物质法》),此类研究逐渐中止。文章或探讨其伦理、科学价值及在当时社会中的接受度。
  • 现实意义:这段历史为当代致幻剂辅助治疗的复兴(如迷幻药用于抑郁症研究)提供参考,展示了科学探索在政治压力下的韧性,并填补了东欧精神医学史的空白。

总之,文章可能聚焦于捷克斯洛伐克共产主义时期LSD心理治疗的实践、动机、挑战及其被遗忘的历史,揭示了一个交织着科学、政治与文化的独特故事。由于原文无法访问,此总结基于标题与历史常识推断,具体细节需参考原文。

23. EFF Year in Review: Google's Corporate Paternalism in the Browser (www.eff.org)

EFF年度回顾:谷歌在浏览器中的企业家长式作风

核心主题

2023年,谷歌及其子公司通过营销手段,以“用户受益”为名,持续强化对互联网创新和广告跟踪技术的控制。企业家长式作风与广告追踪技术结合,进一步侵蚀用户选择权。浏览器隐私工具(如Privacy Badger)的重要性因此提升。

三大关键变化

1. Manifest V2 到 V3:传统Chrome扩展的终结

  • Chrome浏览器宣布弃用Manifest V2,全面转向限制性更强的Manifest V3。
  • 实质影响:V3虽在部分安全细节上有所改进,但核心目的是限制所有扩展的功能,使谷歌成为浏览器内隐私工具的“守门人”。
  • 背景:谷歌作为广告公司,其跟踪器覆盖至少85%的热门网站,2022年广告收入约2250亿美元。此举被视作巩固其广告主导地位,而非单纯保障安全。
  • 对比:苹果Safari浏览器也以安全为由施加类似限制,但平衡安全与隐私仍至关重要。

2. Topics API:隐私沙盒项目

  • 谷歌推出“隐私沙盒”计划,淘汰第三方cookie,但以Topics API取而代之。
  • 实质影响:该API将用户跟踪集中化,仅允许Chrome浏览器收集兴趣数据,再向付费广告商分发。浏览器从“用户代理”转变为“广告代理”,仅减少了跟踪方数量,但强化了谷歌的垄断控制。
  • Privacy Badger已默认禁用Topics API。

3. YouTube封锁广告拦截器用户

  • YouTube(谷歌旗下)对使用广告拦截器的用户显示警告倒计时,并要求禁用拦截器才能继续观看。
  • 实质影响:无视用户对隐私和安全的需求,直接服务于广告营收。2023年第三季度YouTube广告收入达80亿美元,创历史新高。
  • 在Chrome或基于Chromium的浏览器中,广告拦截器可能导致YouTube功能失效。

隐私工具的关键作用

  • 用户安全不应以牺牲隐私为代价,二者紧密关联。
  • Privacy Badger 作为代表性工具,旨在保护用户免受跟踪,并与其他隐私项目互补,形成防护生态。
  • 2023年新功能与改进
    • Badger Swarm:提升学习能力。
    • 拦截谷歌链接跟踪系统
    • 改进组件替换机制

结论

谷歌的决策凸显了企业家长式作风对用户自主权的侵蚀。在缺乏全面隐私保护的环境下,隐私工具必须被赋能,以抵消此类损害。用户应有权自主定义隐私,而非由广告公司主导。

24. NERV Disaster Prevention (nerv.app)

NERV防灾系列公益广告及应用概述

防灾公益广告系列

该系列由日本制作,旨在通过一系列商业广告向公众传递“自律”的防灾信息。鉴于日本自然灾害频发,其核心理念为“只要身在此处,就应有所准备”。

已发布广告作品

  • 《自然灾害纪念碑》(2020年12月11日发布)
  • 《海啸的历史》(2021年1月11日发布)
  • 《尽快行动》(2021年2月11日发布)
  • 《我们的职责》(2021年3月12日发布)

制作团队

  • 配音:山寺宏一
  • 策划与制作:Gehirn Inc.
  • 视频制作:mimoid inc. 与 杉山俊介
  • 音乐制作:PASOCOM MUSIC CLUB
  • 协作:日本国土地理院

NERV防灾应用程序

该应用程序提供基于用户位置的实时灾害警报,涵盖地震、海啸、火山喷发、以及滑坡、洪水等极端天气风险。其设计目标是帮助用户准确识别可能发生损害的危险情况,并迅速采取行动确保安全。

数据与系统

  • 采用日本气象厅的数据。
  • 依托公司自研的尖端灾害信息分发系统,旨在提供日本国内最快、最可靠的灾害信息。

隐私与安全保护措施

  1. 数据最小化原则

    • 作为一家信息安全公司(Gehirn Inc.),将用户安全与隐私置于最高优先级,避免过度收集用户信息。
    • 获取的位置信息及注册信息仅用于显示防灾信息和发送推送通知。
    • 用户位置发送至服务器前会先被转换为一个区域代码(大致相当于邮政编码),服务器无法获知用户的精确位置。
    • 服务器不存储历史区域代码,因此无法追踪用户的行踪。
  2. 数据安全

    • 所有网络传输数据均经过加密。
    • 服务器数据库中存储的所有数据在存储前均已加密。
  3. 用户控制与数据删除

    • 若用户将应用的位置权限设置为“不允许”或“仅在使用期间允许”,其注册信息将从服务器中删除。
    • 如果用户卸载应用,注册信息将在应用最后一次尝试与服务器通信后约一个月自动删除。

应用程序设置与使用说明

为接收与当前位置相关的灾害通知,用户需进行如下设置:

  • iOS:将位置权限设置为“始终允许”,并启用“后台App刷新”。
  • Android:将位置权限设置为“始终允许”。

说明

  • 启用“始终允许”后,应用会在后台定期获取位置信息,此操作频率较低,对电池的影响可忽略不计。
  • 若设备启用了“低电量模式”,应用将不会在后台更新位置信息以节省电量。

版权与授权声明

  • “NERV”的名称和标识已获得《新世纪福音战士》系列版权方Khara Inc.及权利管理公司Groundworks Corporation的明确授权。
  • 应用中使用的特定字体(如“AXIS”、“DIN 2014”)遵循各字体厂商的付费许可条款;“Inter”字体则依据SIL Open Font License 1.1许可免费使用。
  • 网站上关于“Rias Ark博物馆”常设展览的说明文字,取自“东日本大地震和海啸灾害历史与记录”常设展览中的“信息”面板,并已获得该博物馆的使用许可。
25. Microdot: Yet another Python web framework (blog.miguelgrinberg.com)

Microdot:一个Python Web框架

Microdot是一个轻量级的Python Web框架,其设计灵感来源于Flask,但旨在消除Flask中一些复杂(如应用/请求上下文)的部分。它最初是为在资源受限的MicroPython环境中运行而创建的,但同时也完全兼容标准的CPython。最新版本(2.0)已重构为100%异步。

核心特性

  • 类Flask语法:使用装饰器定义路由,但更简洁直接,请求处理函数直接接收request对象。
  • 轻量与高效:模块化设计,核心代码仅约1.5K行,远小于Flask(约15.5K行)或FastAPI(约14.8K行)等主流框架(均含其核心依赖)。
  • 双平台兼容:专为MicroPython设计,但也兼容CPython。
  • 原生异步:基于asyncio构建,支持异步处理函数。
  • 现代功能支持:内置对WebSocket、服务器发送事件(SSE)、跨源资源共享(CORS)的支持。
  • 模板渲染:支持Jinja(CPython)和uTemplate(MicroPython)模板引擎。
  • 会话管理:使用经过加密签名的JWT存储用户会话。
  • 灵活的服务器:在MicroPython上使用内置轻量级服务器,在CPython上可与任何ASGI/WSGI服务器集成。
  • 自带测试客户端

创建背景

作者在2019年使用MicroPython(一种面向微控制器的Python实现)为ESP8266微控制器开发项目时,发现缺少一个既轻量又类似Flask的Web框架。现有的Flask、Bottle等框架因体积过大无法在MicroPython上运行,而当时唯一的MicroPython框架picoweb又依赖非官方MicroPython分支。因此,Microdot应运而生,填补了MicroPython生态系统中轻量级Web框架的空白。

代码示例

Microdot的代码风格简洁明了。例如,定义一个简单的路由:

from microdot import Microdot
app = Microdot()

@app.get('/')
async def index(request):
    return {'hello': 'world'}

app.run(debug=True)

它支持多种HTTP方法,返回字典可自动转换为JSON响应。路由可以通过mount方法进行组织。

对于WebSocket和SSE,通过装饰器即可实现:

@app.route('/echo')
@with_websocket
async def echo(request, ws):
    while True:
        data = await ws.receive()
        await ws.send(data)

体积对比

Microdot的核心最小配置仅需一个文件(约728行代码),即使包含全部功能,也仅约1577行。与之相比,Flask连同其依赖Werkzeug总计约15558行,FastAPI连同Starlette约14808行。这意味着Microdot的代码量仅为后者的10%左右。

适用场景与建议

  • MicroPython项目:强烈推荐使用,它是此类环境中功能完善且积极维护的Web框架。
  • CPython项目:如果你追求极致的资源利用率(如减少内存占用以部署更多工作实例),可以考虑迁移到Microdot。但对于已有项目,如果当前框架运行良好,作者建议无需刻意迁移。它更适合作为新项目的备选方案。
26. Blueprint health protocol (protocol.bryanjohnson.com)

Blueprint健康协议摘要

本文介绍了Bryan Johnson提出的“Blueprint健康协议”,旨在通过科学方法提升整体健康、延缓衰老,甚至实现“不死”(Don't Die)目标。作者从自身健康严重受损(42岁时)到大幅提升生物标志物(如肌肉、脂肪、骨密度、心率等均达优异水平)的经历出发,分享了一套系统性的健康方案。

核心理念与关键建议

  • 核心目标:通过优化健康,成为更好的家庭成员与个人,并认为健康是首要人生优先事项。
  • 首要行动:降低睡前静息心率(RHR),因为它是改善睡眠质量的关键,而高质量睡眠是全球第一的“长寿药物”。
  • 降低RHR的方法:包括睡前4小时停止进食、睡前60分钟关闭屏幕、阅读书籍、避免晚间咖啡因和刺激物、使用红光照明等。

五大健康习惯

  1. 睡眠:高质量睡眠是健康基础。建议:

    • 重塑身份,视睡眠为首要任务。
    • 保持规律作息、营造黑暗凉爽的睡眠环境、避免睡前刺激。
    • 追踪睡眠数据并优化。
  2. 营养:遵循“每一卡路里都必须争取其存在价值”原则。

    • 作者每日摄入约2250卡路里,注重蛋白质、碳水化合物和脂肪平衡。
    • 强调基于科学证据选择食物,而非盲目追随特定饮食潮流。
    • 女性需根据月经周期调整营养(如卵泡期增碳水、黄体期增蛋白)。
  3. 运动:每周6小时,包括力量训练、有氧运动及灵活性训练。

    • 重点避免受伤、培养每日运动习惯。
    • 女性在不同生理阶段调整运动强度与类型。
  4. 社交与情感:重视家庭、友谊和社区联系,认为爱与被爱能延长寿命。

  5. 避免有害习惯:远离快餐、垃圾食品、吸烟、过度酒精和社交媒体等成瘾行为。

具体协议实践

  • 皮肤护理:通过防晒、健康饮食、胶原蛋白补充及特定护肤品(如洗面奶、精华、保湿霜)逆转皮肤衰老。
  • 口腔护理:包括使用水牙线、牙线、刷牙、舌苔清洁器和定期牙科检查。
  • 头发护理:综合使用营养补充、肽精华洗发水、红光疗法和口服米诺地尔等改善脱发。
  • 水质净化:采用碱性水过滤系统,确保饮用水纯净并含矿物质。
  • 女性健康:针对卵泡期、黄体期、围绝经期和孕期提供定制化营养、运动及补充剂建议。
  • 定期测量:建议每3-6个月进行血液检查、每年全身MRI、皮肤检查及牙科/眼科检查。

先进疗法与日常作息

  • 高级疗法:包括间充质干细胞注射、基因治疗、高压氧疗法(HBOT)、干蒸桑拿(175°F,每日20分钟)及红光治疗等。
  • 日常作息示例
    • 早睡早起(8:30PM就寝,5:00AM起床)。
    • 晨间进行身体成分测量、冥想、光照、头发护理、补剂摄入及运动。
    • 日间注重休息、少量多餐,以植物性食物为主。
    • 晚间提前结束进食与屏幕时间,专注于放松活动。

关键提示

  • 作者强调这些方法基于大量科研投入与实验,旨在减少健康优化中的试错。
  • 方案注重可及性,建议从基础习惯开始,逐步升级至高级疗法。
  • 提供了相关产品(如Blueprint补充剂、护肤品)及设备建议,但核心在于习惯养成与科学监测。

该协议是一个综合性的健康优化体系,结合了现代科学与传统智慧,旨在帮助不同起点的人提升生命质量与延长健康寿命。

27. Calculating Logarithms by Hand [pdf] (fiziko.bureau42.com)

文章标题为“手工计算对数”,主题涉及手动计算对数的方法。内容部分以“别偷看!返回Bureau42.com...”结束,表明文章未在此处直接提供完整内容,而是引导读者前往Bureau42.com网站访问详细信息。因此,基于提供的信息,无法总结文章的具体目的、结构或关键功能。

28. Running 9front on an emulated SGI Indy via MAME (posixcafe.org)

在MAME模拟器上运行9front于SGI Indy的摘要

本文档介绍了如何在MAME模拟器上设置和运行9front操作系统在SGI Indy硬件上。目的是为了测试9front的mips代码修改,但整个过程需要一定的9front基础设施设置和熟悉ndb等工具。系统实用性有限,从现代标准来看几乎不可用。

基线MAME Indy设置

  • RAM限制与补丁:主线MAME默认为Indy分配16MB RAM,但这可能不足。通过社区补丁可将RAM提升至最大256MB。用户可从预修补仓库获取或使用nix flake(例如:nix run github:majiru/9front-in-a-box#mame)。
  • 固件文件:需要获取必要的固件文件以启动Indy。参考指南中的链接可能失效,但可通过搜索文件名在archive.org上找到。
  • 网络配置
    • MAME需要特定的tap设备(名称格式为tap-mess-$UID-0)。
    • 首次运行后,修改MAME配置文件(如$MAMEROOT/cfg/indy_4610.cfg)中的edlc设备行,设置MAC地址(例如:08:00:69:12:34:56)。
    • 通过模拟器菜单(启动后按ScrlLk和Tab键)设置网络为TAP/TUN模式,具体索引因操作系统而异(Linux为0,Windows为2)。建议先引导进入IRIX以验证网络。

9front配置与引导

  • 构建9front
    • /sys/src/目录下使用objtype=mips mk install构建用户空间。
    • /sys/src/9/sgi目录下使用mk install构建内核。
  • 网络引导设置
    • /lib/ndb/local中添加条目,配置IP、以太网地址、系统名称等(例如:ip=192.168.168.214 ether=080069123456 sys=indy dom=indy.genso fs=myfs auth=myauth bootf=/mips/9indy)。
    • 确保ip/tftpd服务器运行且MAME网络设置正确。
  • 引导过程
    • 启动Indy模拟器,进入维护模式并访问PROM shell。
    • 输入BOOTP();以通过网络引导9front内核。

关键注意事项

  • 过程需要9front经验,特别是ndb配置。
  • MAME的Indy模拟在内存和网络设置上存在限制,需手动调整。
  • 最终系统仅用于测试目的,不适合现代使用场景。

本文档提供了从模拟器设置到9front引导的详细步骤,但强调了设置复杂性和实用性限制。

29. How to forget what you read (ckarchive.com)

文章《如何遗忘你所读》探讨了为何放松对阅读内容的记忆要求反而更有益。作者指出,在“个人知识管理”潮流下,许多人追求通过精细的笔记系统和记忆技巧来“保留一切”,但这往往带来过重的负担,导致人们回避阅读。

文章提出了接受遗忘的三个主要原因:

  1. 遗忘是一种过滤机制:自然记住的内容通常与你最相关,刻意记忆可能失去这种筛选优势。
  2. 高要求的系统易导致回避:复杂的笔记要求会增加压力,使人更可能逃避阅读本身。
  3. 阅读旨在塑造感知而非堆积数据:阅读的核心价值在于潜移默化地改变你看世界的方式,这并不依赖于对具体内容的长期记忆。

作者建议采取更轻松、低门槛的阅读方式,例如:

  • 接受简单的互动方式(如划线、标注)。
  • 偶尔直接摘抄触动你的原文。
  • 保持笔记的松散组织,避免过度结构化。

最终,文章强调应将阅读视为当下的一种生活体验和参与世界的方式,而不仅仅是为未来积累信息的准备工作。阅读本身的价值在于那个被内容触动或享受的时刻。

30. What I've learned about flow fields so far (damoonrashidi.me)

文章总结

本文介绍了使用流场(flow fields)生成艺术作品的方法和概念,基于作者从2021年至2023年的经验更新。文章通过插图、代码示例(TypeScript)和算法说明,详细解释了流场的实现过程,以下为主要内容:

噪声函数

  • 核心作用:噪声函数是流场生成的基础,接受2D坐标作为输入,返回-1到1之间的值,确保相近坐标产生相似值,从而形成平滑路径。
  • 采样与平滑:通过均匀采样网格点调用噪声函数。为改善线条平滑度,将坐标除以平滑常数(如smoothness=20),缩小坐标域,使点更接近,获得更连贯的流场效果。

绘制线条

  • 基本方法:从随机点开始,根据噪声值计算方向(cos(n)和sin(n)),逐步移动点以绘制线条,直到超出画布或达到最大长度。
  • 变化实验:通过扭曲噪声值(乘以常数)和调整步长(step size),可以增加线条的多样性——短步长产生平滑曲线,长步长产生锯齿状效果。

噪声函数的替代方案

  • 自定义函数:替代标准噪声函数(如OpenSimplex),使用简单函数生成类似值,例如计算点到焦点(focalPoint)的距离或角度,创造漩涡等独特效果,提供更大控制权。

碰撞检测

  • 交互式线条:让线条在遇到其他线条时停止,而非仅以画布边界为限,增加互动性。
  • 检测方法:将线条点视为圆形,通过检查圆重叠(比较半径和距离)实现碰撞检测,适用于非直线路径。
  • 优化策略:将画布划分为网格盒子,仅检查同一盒子或相邻盒子中的点,大幅减少碰撞检查次数。还可跳过部分点的检查(如每7个圆检查一次),以平衡性能和准确性,可能引入视觉瑕疵。

颜色应用

  • 增加变化:为单色流场添加颜色,方法包括:
    • 从预定义调色板随机选择线条颜色。
    • 基于线条起始处的噪声角度着色,产生渐变效果。
    • 细分画布为子区域(如矩形或多边形),分配固定颜色,线条根据生成区域获得颜色,营造“颜料流动”的视觉效果。

结论

  • 文章仅触及流场技术的表面,鼓励读者实验各种变体,如修改函数(如用tan()替代cos())、细分画布、尝试不同形状(圆形、方形等),以拓展创作可能性。

整体而言,文章提供了从基础算法到高级优化的实用指南,强调通过简单调整(如平滑常数、步长、碰撞检测优化和颜色应用)实现丰富多样的生成艺术作品。

31. Microsoft Copilot iOS App (apps.apple.com)

本文是一份移动端应用推荐合集,涵盖游戏、音乐创作、儿童教育及健康生活等多个类别。

游戏应用推荐
文章推荐了多款热门手机游戏,包括:

  • 热门游戏:《王者荣耀》(S43赛季)、《和平精英》(7周年)、《原神·空月之歌》、《崩坏:星穹铁道》、《逆水寒》、《三国杀》、《开心消消乐》等。
  • 策略与卡牌游戏:如《金铲铲之战》(云顶之弈授权手游)、《三国望神州》等。
  • 独立游戏佳作:重点介绍了《累趴侠》(物理模拟)、《潜水员戴夫》(蓝洞冒险)、《山海旅人》(神话志怪)、《魔法工艺》(法术构筑Rogue)、《无尽旅图》(地图冒险)等小团队作品。
  • 其他游戏类型:包括派对游戏《蛋仔派对》、休闲经营《时尚百货城》、音游《初音未来:缤纷舞台》、派对游戏《派对之星》以及经典续作《植物大战僵尸2》等。

音乐创作类应用
文章为音乐爱好者推荐了一系列创作工具,包括:

  • 节拍与音乐制作:如《Auxy Studio》、《Remixlive》、《Groovepad》、《Drum Pad Machine》等。
  • DJ与混音应用:推荐了《djay》、《edjing Mix》、《Beat Maker Go》等。
  • 专业工具:提及了《节拍器 Soundbrenner》和《KORG ELECTRIBE Wave》等。

其他应用推荐

  • 儿童教育:推荐了《Dora:探索与玩耍》用于英语启蒙和益智冒险。
  • 影视平台:提到了《芒果TV》(《歌手》直播)和《腾讯视频》(《星辰变》国漫)。
  • 生活与健康:包含记账游戏化应用和《Active Arcade》(活力街)等运动健身应用。

整体而言,这是一份面向iOS用户的综合性应用推荐清单,重点突出了多样化的游戏选择(尤其是独立游戏)和音乐创作工具。

32. LAN Mouse: Mouse and keyboard sharing software (github.com)

LAN Mouse 是一款开源的跨平台鼠标与键盘共享软件,类似于苹果的“通用控制”功能。它允许用户使用一套鼠标和键盘操作多台电脑,本质上是一种软件KVM切换器。该项目旨在成为Synergy 2/3、Share Mouse等商业工具以及Deskflow、Input Leap等开源工具的替代品,其设计重点在于高性能易用性可维护性,并采用Rust语言编写以实现极致速度。目前,该软件已提供基于GTK的图形界面。

主要特性与技术细节:

  • 加密通信: 使用WebRTC.rs提供的DTLS实现对所有网络流量进行加密,但目前没有针对时序侧信道攻击的缓解措施。
  • 广泛的系统支持: 支持多数现代桌面环境和操作系统,包括GNOME(≥45)、KDE Plasma(≥6.1)、多种基于wlroots的合成器(如Sway、Hyprland、Wayfire)、Windows和macOS。
  • 已知限制:
    • X11目前仅支持作为接收端的输入模拟。
    • 在Sway/wlroots等环境中,若不使用layer-shell后端,发送端可能无法正确发送Ctrl/Shift/Alt/Super等修饰键事件。
    • Windows作为接收端时,若未连接物理鼠标,光标可能不可见。
  • Android/iOS支持: 存在由社区开发的概念验证应用程序,可用作远程控制器。

安装方式: 软件支持多种安装途径:

  1. 包管理器: 可在Arch Linux(官方仓库/AUR)、NixOS(nixpkgs/flake)和Fedora(Terra仓库)中直接安装。
  2. macOS: 从发布页面下载对应芯片(Intel/ARM)的软件包,解压后需移除隔离属性并授予辅助功能权限。
  3. 手动安装: 提供预编译的二进制文件(Windows/macOS/Linux)。对于Linux,可选择手动安装二进制文件及可选的桌面图标、防火墙规则。
  4. 从源码编译: 支持通过cargo buildnix-build进行编译。可通过Cargo特性选择性编译特定后端(如仅编译用于Sway的layer_shell_capturewlroots_emulation)。

使用与配置:

  • 图形界面(GTK): 运行后默认打开。可通过“添加”按钮输入主机名来连接控制目标设备。需在远程设备上通过“传入连接”部分的“授权”按钮来允许本地设备连接。
  • 命令行界面(CLI): 使用lan-mouse cli命令启动。
  • 守护进程模式: 使用lan-mouse daemon命令可在后台运行,适合作为系统服务使用。
  • 配置文件: 通过~/.config/lan-mouse/config.toml文件进行配置,可预设客户端设备(指定位置、主机名、IP地址等)、授权指纹列表、端口及释放键绑定。

输入模拟与捕获后端支持: 软件根据系统环境自动选择后端。

  • 输入模拟(接收端): 支持wlroots后端、libei后端(GNOME/KDE)、远程桌面门户(GNOME/KDE)、以及Windows、macOS、X11的专有后端。
  • 输入捕获(发送端): 支持layer-shell后端(用于wlroots合成器)、libei后端(GNOME/KDE)、以及Windows、macOS的专有后端。X11的捕获支持尚在开发中。

未来路线图: 包括图形界面优化、IP地址切换、连接存活性检测、macOS键码转换、libei输入捕获、剪贴板支持、延迟和带宽的测量与可视化等。

33. Notes on the Ivory Coast (mattlakeman.org)

科特迪瓦概述

科特迪瓦(因法国文化影响,官方名称为“Côte d’Ivoire”)位于西非,人口约2750万,以可可、咖啡和木材为主要出口商品,曾被誉为非洲的经济奇迹。然而,其经济在1978年达到顶峰后陷入长期停滞甚至衰退,直至近年才重新恢复增长。

历史与经济发展

独立后的“经济奇迹”(1960-1978年)

  • 科特迪瓦于1960年从法国独立,首任总统费利克斯·乌弗埃-博瓦尼(FHB) 执政长达33年。他推行亲法政策,保留大量法国行政与技术人员,维持与法国的特殊经济关系。
  • 经济增长主要依赖农业出口,特别是可可、咖啡和木材。1960-1978年间,实际人均GDP年均增长7.3%,可可产量和出口值大幅上升。
  • FHB实施开放的移民政策,吸引了大量来自邻国(尤其是布基纳法索)的劳工,移民一度占人口三分之一以上。
  • 国家主导投资,建设了西非最好的公路网络、港口和轻工业,阿比让成为现代化都市。

经济崩溃与危机(1979年以后)

  • 1978年后,全球大宗商品价格下跌,特别是可可价格。但政府为保护农民收入,维持国内高价收购,导致农业稳定与投资银行(BSPA) 出现巨额亏损。
  • BSPA长期以低于国际市场的价格收购农民作物,将利润转移至政府,导致农民收入增长缓慢。腐败盛行,大量财富被政治精英侵吞。
  • 1988年,FHB为提振价格,单方面发起可可出口禁运,试图联合其他产国组建“可可OPEC”。此举失败,导致国内可可积压、物流崩溃、经济进一步恶化,国家债务飙升。
  • FHB个人腐败严重,挪用公款在家乡亚穆苏克罗建造奢华建筑,包括号称世界最大的天主教堂**“和平圣母大殿”**。

政治动荡与内战(1993年以后)

  • 1993年FHB去世,未指定继承人,引发权力真空。
  • 1995年,亨利·科南·贝迪埃 赢得有争议的选举,推行排外主义,加剧族群(北方穆斯林与南方基督徒)矛盾。
  • 1999年发生军事政变,罗贝尔·盖伊 上台。2000年大选被操纵,洛朗·巴博 当选,但合法性不足。
  • 2002年爆发第一次内战,国家分裂。2010年大选后,巴博与阿拉萨内·瓦塔拉 的争端引发第二次内战,最终瓦塔拉在法国军事干预下获胜。

近年复苏

2011年内战结束后,科特迪瓦进入相对稳定期。在瓦塔拉政府(实质为威权统治)领导下,经济恢复增长:

  • 可可 产量占全球30%,价格回升。
  • 投资多元化,腰果 产量跃居世界第一,与中国合作建设基础设施。
  • 阿比让重建,出现新的经济增长,但腐败与不平等问题依然存在。

作者旅行见闻

  • 阿比让:西非最现代化的城市,有“天际线”和高端购物中心,但设施显老旧。居民对经济前景乐观,但对法国态度复杂。
  • 亚穆苏克罗:FHB规划的首都,拥有宏伟建筑和宽阔空旷的道路,但人口稀疏,宛如“鬼城”。和平圣母大殿虽宏伟,但维护不足,游客稀少。
  • 马恩:自然风光秀丽的小城。
  • 整体印象:基础设施优于多数西非国家,但历史兴衰的痕迹明显。
34. Netscape 1.x (winworldpc.com)

Netscape 1.x 浏览器摘要

Netscape Navigator(通常简称为“Netscape”)是首个商业网页浏览器,于1994年12月首次发布1.0版本,取代了早期免费的NCSA Mosaic浏览器。它迅速普及,至1990年代中期成为最流行的网页浏览器,主要原因之一是其对个人及非营利使用免费授权(公司则需付费)。

该浏览器在发布时引入了多项先进功能,包括:

  • 页面逐步渲染:在文档加载过程中即可显示内容。
  • 同时加载图文:同时下载图像和文本,提升浏览速度。
  • 支持JPEG图形格式文档缓存功能。
  • 更友好的图形界面与更丰富的配置选项。
  • 分层书签管理

此外,它还支持访问Usenet新闻组和SMTP电子邮件服务器。后来,Netscape与Microsoft Internet Explorer、Opera、Safari等浏览器竞争,最终其源代码被开源,演变为Mozilla浏览器。

技术细节

  • Windows版本为16位可执行文件,适用于Windows 3.1系统。
  • 免费分发版本标记为“1.0N”,功能与商业“1.0”版本完全相同。
  • 目前,1.0版本已基本无法连接到现有网站。

该浏览器在当时被宣传为探索互联网的“交通工具”,能够支持在线出版、信息访问、交互式购物和远程学习等新兴媒体应用。原始版本与免费下载版存在细微差异,文中提及希望获取正版软盘或CD转储。

35. New study shows Small Magellanic Cloud is two smaller galaxies (phys.org)

一项新的国际研究表明,小麦哲伦星云(SMC)实际上是两个较小的矮星系,一个几乎位于另一个正后方,从而解释了此前被认为是单一星系的现象。

主要发现

  • 双星系结构:研究通过多个观测数据发现,小麦哲伦星云的两个“部分”具有不同的化学成分和运动速度。其中移动较快的部分似乎距离更近,而两个部分的质量大致相同
  • 距离测量:研究计算得出,较近的星系距离地球约19.9万光年,而较远的星系距离约21.5万光年
  • 与邻居的相互作用:这两个星系均与邻近的大麦哲伦星云(LMC)存在引力相互作用。

研究方法

  • 多源数据分析:团队结合了欧洲航天局Gaia空间观测站的恒星运动速度估算数据、澳大利亚Galactic ASKAP射电望远镜阵列关于星系星际介质的信息,以及来自APOGEE巡天的光谱数据。
  • 历史背景:小麦哲伦星云可能包含两个星系的推测早在1980年代就已出现,本次研究为这一观点提供了更确凿的证据。

结论

研究指出,由于两个星系在视线方向上几乎完全重叠(一个几乎在另一个正后方),导致它们长期被误认为是一个单一的星系。这一发现颠覆了对小麦哲伦星云的传统认知。


论文信息
Claire E. Murray 等,《银河系的日食:小麦哲伦星云正在两个重叠的系统中形成恒星》,arXiv(2023年)。DOI: 10.48550/arxiv.2312.07750

37. Nvidia RTX 5000 Ada 32GB Workstation GPU Review (www.servethehome.com)

NVIDIA RTX 5000 Ada是一款定位在RTX 6000 Ada之下的新一代工作站显卡,主要面向专业图形与计算应用。该卡通常由PNY提供,采用双槽鼓风机式散热设计,这种设计使其结构紧凑,能够适配多种工作站机箱。

该显卡的一个重要变化是取消了NVLink接口,与上一代产品RTX A5500有所不同。显卡顶部仅保留了3D立体功能接口。其末端设计简洁,设有用于固定GPU的螺丝孔位以及PCIe CEM5 16针电源接口,便于理线并减少对气流的干扰。显卡正面设有散热风扇开孔,背面则为金属背板。在I/O接口方面,它提供了四个DisplayPort 1.4a接口,默认处于启用状态,但在使用vGPU功能时会被禁用。

核心规格参数如下:

  • GPU核心: AD102
  • 流处理器数量: 12800个
  • 显存: 32GB GDDR6
  • 显存位宽: 256位
  • 核心频率: 基础频率1155 MHz,加速频率2550 MHz
  • 显存频率: 2250 MHz(等效18 Gbps)
  • PCIe接口: 4.0
  • 显示输出: 4个DisplayPort 1.4a
  • 散热设计: 单鼓风机式散热器
  • 功耗(TDP): 250W
  • 电源接口: 1个16针接口
  • 尺寸: 267 mm x 112 mm,占用两个插槽

与顶级型号RTX 6000 Ada相比,RTX 5000 Ada在多个方面存在差距:流处理器数量从18176个减少至12800个;显存从48GB GDDR6X降为32GB GDDR6;两者功耗仅相差50W。在当前的产品线中,高低型号之间的规格与价格差异通常较为显著。

38. Japan Airlines plane catches fire while landing at Tokyo airport runway (www.mirror.co.uk)

事件概述

今日,日本航空516航班在东京羽田机场降落时与一架日本海上保安厅飞机发生碰撞,随后在跑道上起火燃烧。事故导致保安厅飞机上5人死亡,其机长重伤,而日航客机上的389名乘客及机组人员全部安全撤离,但部分乘客需接受医疗救治。

事故现场与救援

  • 客机降落时与保安厅飞机碰撞后,随即被橙色火焰吞噬,机翼及发动机区域火势猛烈,浓烟滚滚。
  • 事发后,约70辆消防车迅速赶赴现场扑救,火势持续约两小时仍未完全扑灭,飞机最终仅剩焦黑残骸。
  • 乘客通过充气滑梯紧急撤离,现场一度混乱。有乘客描述客舱内“几分钟内充满浓烟”,逃生过程如“地狱”。
  • 前商业飞行员评论称,机组在可见度极低、烟雾弥漫的情况下成功疏散所有乘客,堪称“奇迹”。

伤亡与影响

  • 保安厅飞机当时正前往地震灾区运送救灾物资,机上5名人员遇难,仅机长生还。
  • 羽田机场所有跑道临时关闭,航班起降全面暂停,部分在途航班被迫改道。机场表示将尽力于次日逐步恢复运营。
  • 事故发生在日本新年出行高峰及日前7.6级地震灾害的背景下,对交通枢纽造成重大冲击。

事故原因初步分析

  • 日本首相岸田文雄确认事故为两机相撞所致,并表示哀悼与感谢。
  • 航空专家指出,保安厅飞机未装备现代ADS-B应答器,可能导致地面管制和其他飞机无法准确追踪其位置,从而引发跑道入侵风险。
  • 事发时天色昏暗、能见度低,也可能影响了飞行员对跑道情况的判断。
  • 日本国土交通省表示事故具体原因仍在调查中,并将约谈日航机组进一步了解情况。

背景说明

此次事故发生在2023年航空安全纪录创历史新高的背景下,当年全球仅发生两起致命航空事故。

41. Neovim v0.9.5 Released (github.com)

Neovim v0.9.5 发布摘要

版本信息

  • 版本号:v0.9.5
  • 构建类型:Release
  • LuaJIT 版本:2.1.1692716794

发布性质 这是一个维护性版本,主要目标是修复 bug,未包含新功能

关键修复内容

  • 重点解决了在非主流平台(如大端序平台)上使用和测试 Neovim 时出现的问题。

发布说明 详细变更日志请参考官方文档:https://neovim.io/doc/user/news-0.9.html

安装方法 提供了多个平台的安装方式:

  1. Windows

    • Zip 包:下载 nvim-win64.zip,解压后运行 nvim-qt.exe
    • MSI 安装程序:下载并运行 nvim-win64.msi,之后搜索运行 nvim-qt.exe 或通过命令行运行 nvim.exe
  2. macOS

    • 下载 nvim-macos.tar.gz
    • 运行 xattr -c ./nvim-macos.tar.gz 以避免系统警告。
    • 解压:tar xzvf nvim-macos.tar.gz
    • 运行:./nvim-macos/bin/nvim
  3. Linux (x64)

    • AppImage:下载 nvim.appimage,运行 chmod u+x nvim.appimage && ./nvim.appimage。若无 FUSE 支持,可解压使用。
    • Tarball:下载 nvim-linux64.tar.gz,解压后运行 ./nvim-linux64/bin/nvim
    • 也可通过系统包管理器安装。

校验和 (SHA256) 文章提供了各安装包的 SHA256 校验和,用于验证文件完整性,包括:

  • nvim-linux64.tar.gz
  • nvim.appimage
  • nvim-macos.tar.gz
  • nvim-win64.zip
  • nvim-win64.msi
42. Elizabeth line testing ways of banishing its "ghosts in the walls" (www.ianvisits.co.uk)

伦敦伊丽莎白线部分中央车站座位后方墙壁因乘客倚靠留下的阴影污渍,形似“幽灵”,影响美观。伦敦交通局(TfL)正测试两种解决方案:一是更换带靠背的新座椅(成本高昂);二是在墙面粘贴大型装饰贴纸以遮盖阴影。利物浦街站已展开设计试验,包括整片墙贴与单座椅后方的“兵卒”形贴纸,颜色以黑色为主,无障碍座位区域使用蓝色标识,并匹配伊丽莎白线座椅的摩格特图案。TfL表示此举旨在清洁墙面、提升乘客体验并加强长期防护。

43. NHS England published heavily redacted Palantir contract as festivities began (www.theregister.com)

该网页是一个反机器人验证页面,主要功能是通过工作量证明(Proof of Work)机制来确认访问者是人类而非自动化程序。

其核心结构包含一个名为“wicketkeeper”的交互组件,该组件会根据不同屏幕尺寸(大、中、小设备)自适应调整布局。页面加载时会引入一个名为slow.js的脚本用于生成验证挑战。

当用户成功完成验证后,页面会调用solved函数。该函数向服务器发送一个验证请求,请求头中携带了验证所需的三个关键参数:pow-noncepow-tokenpow-result。若服务器返回200状态码表示验证成功,页面将在半秒后自动刷新。

44. Playing with Fontconfig (2020) (venam.net)

字体渲染配置探索

核心技术要素

文章探讨了Unix系统中字体渲染的三个关键技术:

  1. 抗锯齿:在字符周围添加浅色阴影,适用于小字号,但可能使字体看起来更粗
  2. 亚像素渲染:利用像素内的颜色分量提高精度,但不当使用会导致彩色边缘
  3. 微调(Hinting):通过重新定位或选择最接近的像素来保持字形形状,分为字体内置微调(字节码解释器)和库自动微调两种方式

工具与测试方法

  • 使用Freetype2演示工具(ftdiff、ftgrid、ftstring等)进行视觉对比
  • 通过pango-view测试字体配置的实际效果
  • 设置FC_DEBUG=4096查看字体匹配详细信息
  • 可在浏览器中使用data:text/html快速测试字体渲染

Freetype驱动程序配置

通过FREETYPE_PROPERTIES环境变量设置truetype:interpreter-version

  • v35:经典GDI模式(Win 98/2000)
  • v38:GDI+旧版(Vista/Win 7),Infinality,较慢
  • v40:最小化模式(精简版Infinality,默认设置)

测试显示旧版本微调更粗暴,可能使字形变形;新版本更简约。对于Times New Roman字体,轻度或无微调效果更好。

Fontconfig配置系统

配置文件位于/etc/fonts/和用户目录$XDG_CONFIG_HOME/fontconfig,按字母数字顺序加载。主要包含:

  • 匹配规则
  • 别名创建
  • 其他配置包含
  • 字体目录和排除设置

用户可通过将50-user.conf重命名为01-user.conf来提高自定义配置优先级。

微调配置实践

Fontconfig中与微调相关的四个设置:

  • fonthashint:匹配测试
  • hinting:是否启用微调
  • autohint:使用自动微调
  • hintstyle:微调程度(hintnone/hintslight/hintmedium/hintfull)

实验表明,对于Times New Roman,禁用微调或仅使用轻微自动微调效果最佳。

亚像素渲染

Fontconfig预设:

  • lcddefault:颜色平衡且标准化
  • lcdlegacy:未标准化且未颜色平衡
  • lcdlight:类似lcddefault但应用更轻提示
  • lcdnone:禁用亚像素渲染

需要根据屏幕子像素几何结构(rgb/bgr等)正确设置rgba属性。错误设置会导致明显彩色边缘。

应用实例:优化Windows字体

针对Windows字体在Freetype下渲染不佳的问题,创建专用Fontconfig配置:

  1. 检测字体系列名称是否匹配Windows字体列表
  2. 对匹配字体应用特定设置:禁用微调、启用抗锯齿、禁用嵌入位图
  3. 配置示例涵盖Arial、Calibri、Times New Roman等常用Windows字体

此配置显著改善了Windows字体在Linux环境下的显示效果,特别是Times New Roman等原本渲染效果较差的字体。

关键建议

  • 使用fc-conflist验证配置加载顺序
  • 通过fc-match --verbose检查当前字体匹配设置
  • 对于非可缩放字体(如位图字体),可考虑禁用抗锯齿
  • 确保系统正确检测DPI值,必要时手动设置
45. 20 years later, the Y2K bug seems like a joke–because some took it seriously (2019) (time.com)
46. Show HN: DBChaos – A Database stress testing tool (github.com)

DBChaos:数据库压力测试工具摘要

工具概述

DBChaos 是一个数据库压力测试工具,旨在通过预定义查询对数据库进行压力测试、生成合成数据,并识别可能导致数据库性能下降的慢速或高开销查询。它集成了 GPT 技术以生成合成数据,支持多种数据库系统。

主要功能

  • 合成事件生成:运行并行查询以模拟负载,支持两种模式:
    • test 模式:针对单个查询并行执行,持续指定时间。
    • scenario 模式:运行多个查询,每个查询可设置不同的超时时间和执行速率,创建多样化的负载模式。
  • 合成数据生成:为数据库生成完整的模式和数据,包括两种技术:
    • 静态生成:随机生成模式、表名、列名和数据,适用于创建大规模模式和数据,成本低。
    • GPT-based 生成:使用 OpenAI GPT 模型生成超现实的数据,需要 OpenAI API 密钥,并可能产生费用。

安装与支持数据库

  • 安装:通过 Go 命令安装:go install github.com/adaptive-scale/dbchaos@v0.4.4
  • 支持数据库
    数据库 合成事件生成 合成数据生成
    Postgres
    MySQL
    SQL Server
    MongoDB

使用示例

合成事件生成

  • 单查询测试:创建 config.yaml 文件,指定数据库类型、连接字符串、查询、并行运行数和运行时间。例如,对于 Postgres:

    dbType: postgres
    connection: "host=localhost port=5432 user=postgres password=postgres dbname=postgres sslmode=disable"
    query: |
      SELECT pg_database.datname as "Database", pg_size_pretty(pg_database_size(pg_database.datname)) as "Size"
      FROM pg_database;
    parallelRuns: 100
    runFor: 30m
    

    MongoDB 连接需格式化:mongodb://root:example@localhost:27017/,并指定数据库名称。

  • 场景测试:创建 scenario.yaml 文件,定义多个查询及其参数。例如,对于 MySQL:

    dbType: mysql
    connection: "root:root@tcp(host:port)/db"
    scenarios:
      - query: select * from information_schema.statistics
        parallelRuns: 10000
        runFor: 15m
      - query: |
          SELECT table_schema "Database", ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) "Size (MB)"
          FROM information_schema.tables
          GROUP BY table_schema;
        parallelRuns: 10000
        runFor: 15m
    

合成数据生成

  • 静态生成:配置文件指定连接、模式数量、表结构、行数等。例如:

    connection: 
      dbType: postgres
      connection: "host=localhost port=5432 user=postgres password=postgres dbname=postgres sslmode=disable"
    dryRun: false
    schema: 
      numberOfSchema: 10
      generateTables: true
      language: en
    tables:
      numberOfTables: 10
      minColumns: 5
      maxColumns: 10
      populateTable: true
    rows:
      minRows: 100
      maxRows: 1000
    
  • GPT-based 生成:配置文件需指定 OpenAI 提供商、模型和模式类型,并设置环境变量 OPENAI_API_KEY。例如:

    connection: 
      dbType: postgres
      connection: "host=localhost port=5432 user=postgres password=postgres dbname=postgres sslmode=disable"
    dryRun: false
    provider: openai
    model: gpt-3.5-turbo
    schema_type: webshop # 如 ecommerce、hospital 等
    

    生成的模式、插入命令将持久化到数据库中。

关键特性

  • 支持并行查询执行以模拟高负载。
  • 提供灵活的配置选项,包括连接设置、查询参数和生成规则。
  • 结合静态随机生成和 GPT-based 生成,满足不同数据需求。
  • 适用于数据库性能测试、负载测试和服务验证。
47. The Duplex watch escapement (2021) (www.thenakedwatchmaker.com)

Duplex手表擒纵机构概述

Duplex手表擒纵机构由Robert Hooke于1700年左右发明,后经Jean Baptiste Dutertre和Pierre Le Roy改进,最终由Thomas Tyrer于1782年完善并获得专利。该机构制造难度较高,但精度优于同为“摩擦静止”类型的筒形擒纵机构。然而,其摩擦大于后来主导市场的杠杆擒纵机构。Duplex擒纵机构主要用于1790年至1860年间的英国怀表中。

结构特点:

  • 机芯设计:采用四分之三夹板英式结构。
  • 摆轮系统
    • 独立桥板支撑游丝,位于摆轮夹板上方。
    • 摆轮夹板手工雕刻并镀金。
    • 摆轮为双金属结构,带金螺丝以实现温度补偿。
    • 摆轮轴组件分双层,与擒纵轮直接接触。
  • 擒纵机构
    • 擒纵轮隐藏于摆轮下方,直接与摆轮接触,无需中间锚或杠杆。
    • 摆轮底部设杠杆,由擒纵轮齿驱动。
    • 擒纵轮上轴颈宝石可能经过更换。
  • 上发条:通过钥匙手动上发条。
  • 表盘:采用单一珐琅材质。

附加功能:

  • 温度计:表盘下方集成温度计机构。
    • 由齿条齿轮系统驱动温度计指针。
    • 采用钢与黄铜复合材料(类似摆轮圈),随温度变化移动齿条,从而改变温度指示。

历史意义: Duplex机构作为早期高精度擒纵设计,代表了钟表技术的重要演进,但其固有摩擦限制了后续发展,逐渐被杠杆擒纵机构取代。

48. Displaying Content as a Graph (thisisimportant.net)

将内容展示为图形的意义

大多数网页内容都采用严格的层次结构(如树状结构)来展示。将内容展示为图形,则是指将内容置于一个多层级的分类体系中,或将其展示为网络中的相互链接的节点。这种方式能够更灵活地呈现思想、任务和主题之间的关联,可能比层次结构更贴近技术内容中概念之间的实际关系。

层次结构普遍的原因

层次结构常见,是因为它符合通常讲解新概念的方式:先提供一个总览,简要介绍几个重要部分及其相互关系,然后再详细介绍每个部分。这种方式易于扫描,并模仿了书籍以章节呈现内容的传统形式。

使用图形展示的潜在优势

  1. 服务于多种思维模式:层次结构隐含了信息的顺序和重要性。图形展示则可以消除这种隐含顺序,通过多层级分类或网络链接来适应不同读者的思维模式,提升内容的可发现性。
  2. 编写更优的文档:摆脱层次结构的限制后,作者可以更专注于内容之间的关系而非其在导航中的位置,这使得文档更容易围绕用户旅程来构建,而非线性功能列表。
  3. 提高内容复用性:在图形结构中,特定的内容块(节点)可以通过添加新链接轻松地重新置入不同上下文中,无需像在层次结构中那样为了逻辑相关性而进行内容复制。
  4. 提升机器可读性:以图形方式存储和编写的内容对网络爬虫、搜索算法和机器学习模型更友好。刻意设计的内容关联能被机器更好地理解和索引。

不常采用图形展示的原因与挑战

尽管有上述优势,但将内容展示为图形在实践中面临诸多挑战:

  1. 设计困难:如何将底层的图形结构清晰地呈现给读者是一大设计难题。现有的尝试(如“常青笔记”、C2维基、HyperPhysics等)在导航、入口页面和上下文可见性方面都面临不同挑战。
  2. 对读者而言令人困惑:层次结构是主流且熟悉的模式。图形结构缺乏清晰的视觉层次和起点,可能迫使读者学习新的交互方式,这对于旨在快速解决问题的技术文档读者来说是一种障碍。
  3. 过于灵活:为内容节点决定所有可能的关联链接是一项繁重且可能令人精疲力尽的任务。过度追求关联可能导致图形变得混乱,失去表征特定思维模型的价值,反而变成所有可能性的模糊集合。
  4. 编写块状内容困难:图形结构要求内容被拆分为更小、更专注的“块”(如概念定义、独立任务)。这与编写传统的长篇、综合性主题内容不同,可能会影响内容的连贯性和作者的写作体验。
  5. 稀疏与密集内容的可扩展性问题:节点太少或太多的图形在传达思维模型方面效果都不佳。

图形展示:未来可能性?

尽管完全可视化的内容图形不太可能成为技术文档的标准实践(因其复杂性和用户习惯),但以知识图谱作为内容背后的支撑结构已成为一种趋势。知识图谱允许在内部建立丰富的关联,同时在前端可以通过用户熟悉的模式(如带标签和筛选功能的磁贴布局、混合了目录和推荐内容的页面)来呈现,从而在不暴露图形复杂性的情况下,获得图形结构带来的搜索和组织优势。最终,无论采用何种视觉呈现方式,有意识地构建信息架构并定义内容之间的关系,对读者和作者都具有重要价值。

49. How to Build the CMoy Pocket Amplifier (2016) (tangentsoft.com)

CMoy口袋放大器制作指南摘要

本文介绍了Chu Moy设计的一款经典便携式耳机放大器的制作方法。该放大器设计简单、体积小巧,可随身携带,能有效驱动低灵敏度耳机,音质表现出色。制作成本低(基础版约20美元,优化版低于50美元),远低于商业同类产品,适合音频DIY初学者入门。

主要内容概览

  • 目标读者:面向初学者,也可作为特定放大器制作的直接指南。
  • 工具准备:无工具的新手可参考配套文章《音频DIY入门》。
  • 文章结构
    1. 常见问题解答:包括适用人群、电路修改、用途限制(非扬声器/吉他/话筒放大器)、多耳机驱动、制作时间等。
    2. 电路原理图
    3. 零件清单与建议:涵盖必需零件、可选零件、精度电阻选择、电路板替代方案、运放与外壳选用、接口注意事项等。
    4. 组装步骤
    5. 优化调整
      • 增益调谐
      • 降噪处理(通过R5电阻)
      • 添加直流电源接口
      • 电源适配器选择
      • 电容更换
      • LED电阻调整
      • 虚拟接地电路改进
    6. 修订历史

核心特点

  • 便携性:整体尺寸可放入口袋。
  • 性价比:成本远低于商业放大器(100-200美元以上)。
  • 易上手:适合初学者作为音频DIY入门项目。

文章最后更新于2016年8月18日,提供了从原理到实操的完整指导,强调通过调整可进一步提升性能。

50. Reflections on ten years of LLVM Weekly (muxup.com)

《LLVM Weekly十年回顾》摘要

核心成就与背景

作者Alex Bradbury于2024年第522期标志着《LLVM Weekly》创办十周年。这份新闻简报自2014年1月6日(周一)起,坚持每周一不间断发布,总结LLVM生态项目(如LLVM、Clang、MLIR、Flang等)的发展动态。

创办初衷

  • 背景:作者当时作为下游编译器开发者,为跟踪上游变更、学习LLVM各组件并增强社区归属感而创办。
  • 决策:发现持续跟踪开发信息本身有价值,且分享的增量工作量不大,便直接行动,未做前期市场调研。

内容与读者

  • 固定格式:包括相关新闻文章、论坛/邮件列表讨论(尝试总结复杂辩论)、值得关注的代码提交,近期增加了线上同步会议和办公时间预告。
  • 无商业化:全文无广告或付费内容,作者未考虑通过社区注意力变现。
  • 目标受众:面向所有关注LLVM开发的用户,但需读者具备一定项目基础知识。
  • 传播渠道:发布于LLVM Discourse、llvmweekly.org网站,并通过邮件列表、Twitter和Mastodon分发。订阅者约3500人,Twitter关注者约7500人。

工作流程与工具

  • 每周撰写
    1. 使用tig工具回顾过去一周各子项目的代码提交,筛选可能引起兴趣的提交(特别注明:添加文档的提交几乎总会被提及)。
    2. 扫描LLVM Discourse一周的帖子,挑选讨论,尤其关注RFC(征求意见稿)。
    3. 尝试中立地总结长讨论,但这非常耗时。
  • 时间投入:每周约2.5-3.5小时完成撰写、编辑和发送。
  • 技术栈:使用Mailgun发送邮件(月成本约3-5美元),通过Python脚本管理订阅,生成静态HTML网站。整体运营成本低。

社区协助与盲点

  • 请求帮助:作者非LLVM全知专家,鼓励社区成员提交链接、建议,并撰写清晰的提交信息以说明变更影响。
  • 现有盲点
    • 不追踪代码评审中的补丁讨论(工作量太大)。
    • 对MLIR的覆盖可能不全(Javed Absar的MLIR新闻简报弥补了部分空白)。
    • 未涵盖LLVM GitHub组织下除主仓库外的其他仓库。
    • 不转发招聘信息(推荐查看LLVM Discourse的招聘版块)。

十年个人与项目变迁

  • 个人生活:作者结婚生子,共同创办并离开一家公司,发起上游RISC-V LLVM后端开发等。
  • LLVM社区演进:见证了从SVN到Git、从Phabricator到GitHub PRs、从邮件列表到Discourse的迁移,以及许可证变更为Apache 2.0 with LLVM Exception等重大变化。作者从社区的外部观察者逐渐转变为更深度的参与者。

未来展望与思考

  • 继续前行:计划短期内不停刊,但认识到10年连续发布是“里程碑”,未来若因故中断也会更释然。
  • 模式探索:认为目前大型语言模型对节省编写耗时环节帮助有限。探讨了更协作化的内容生产模式(如轮值编辑),但需平衡协调成本与可靠性。

致谢

感谢LLVM社区、雇主Igalia的支持(允许带薪参与上游开发)、家人的理解与支持,以及所有读者的持续关注与反馈。