2024-01-01

50 篇热帖

1. Happy New Year HN!

Hacker News 社区新年祝福与社区价值总结

Hacker News (HN) 社区成员在新年之际分享了大量对社区的感激之情和回忆,主要内容和情感可归纳如下:

1. 社区归属感与情感联结

  • 如同“家”的感觉:多位用户(包括楼主)将HN描述为“感觉像家”的地方。他们怀念大学时期与朋友进行技术性深谈的时光,但毕业后因分散各地而疏远。HN 作为一个持续在线的社区,填补了这种社交和智力交流的空白,即使只是“旁听”对话也感到慰藉。
  • 长期陪伴与价值:许多用户表示已使用HN超过10年(有的长达20年),它成为每日获取信息、学习和获得灵感的必需品。人们从一个技术社区中收获了远超技术本身的价值,包括职业发展、人生见解和英语能力的提升。

2. 对社区质量与版主工作的高度认可

  • 高质量内容与讨论:用户普遍认为HN是互联网上罕见的、专注于高质量内容和有建设性讨论的地方。它没有广告、低质迷因和过度的“游戏化”,让人在浏览后感到充实和受启发。
  • 感谢版主 (dang):众多评论特别感谢管理员 dang 长期以来出色的管理工作,认为他的高效响应和精心维护是社区保持 civil(文明)和高质量的关键,是社区得以存在的基石。

3. 社区互动与个人故事

  • 重拾联系的建议:评论中出现了大量关于如何维持或重建技术爱好者社交圈的建议,例如:组织线下读书会、技术演示、徒步活动或游戏之夜;通过 Meetup、Slack 或 Discord 寻找本地兴趣小组;主动联系感兴趣的人进行交流。
  • 分享个人经历:用户分享了个人故事,如在阿姆斯特丹工作时依靠HN度过漫长通勤时光、因HN上的“Who is Hiring”帖子获得改变职业生涯的工作机会等,体现了社区对个人生活的实际影响。
  • 对“发起者”角色的讨论:围绕“总是由单方面发起联系是否公平”展开了深入讨论。观点不一:有人认为只要对方回应就值得维持;有人认为缺乏互惠是兴趣不足的信号;也有人分析了关系发展中发起频率不均是自然现象。

4. 少数不同声音与宏观思考

  • 技术热情的变迁:有评论指出,与2000年代初相比,如今的技术圈热情减退,更多人将技术视为纯粹谋生手段,且远程工作减少了随机技术交流的机会。对此也有反驳,认为优秀的内容和聚会依然存在。
  • 对世界局势的关切:少数评论在祝福中表达了对全球政治冲突、人道主义危机及气候变化的深切忧虑,使得新年祝福带上了一丝沉重的底色。

5. 展望未来与特别提及

  • 新年愿望:用户们许下各类技术或个人相关的愿望,从“希望代码一次通过”到专注于技术内容发布、建立更有意义的社交圈等。
  • 对特定技术的调侃:有关于“Linux桌面年”的玩笑,也有用户列举了希望在2024年继续流行的技术工具(如Rust、Emacs、zsh等)。
  • 非技术用户的赞赏:一位来自截然不同领域(如拼布、公共政策)的用户表示,在HN的所学所闻拓展了她的视野,并感谢社区的欢迎态度。

总结:这则新年祝福帖汇聚了HN社区成员对其的深厚情感。它远不止一个技术新闻聚合网站,更是一个提供智力刺激、情感支持和高质量交流的“数字家园”。用户们珍视这里的内容质量、管理氛围以及与同道中人建立的联结,尽管也意识到了现实世界和该领域内的挑战。

2. Procrastination is connected to perfectionism (solvingprocrastination.com)

完美主义与拖延症之间存在复杂关联,具体影响取决于完美主义的方面类型

1. 完美主义的双面影响

  • 增加拖延:当个体具有完美主义担忧(过度关注错误、他人评价、自我怀疑)或社会期望型完美主义(他人设高标准)时,易因害怕不完美而拖延。
  • 减少拖延:当个体具有完美主义追求(自我设定高目标并追求卓越)或自我导向型完美主义时,可能因追求高标准而及时行动。

2. 心理机制与恶性循环 完美主义可通过加剧负面情绪、制造过高期望与现实差距而导致拖延,甚至形成“恐惧反馈→拖延→表现不佳→更恐惧”的循环。

3. 完美主义拖延者 指主要由完美主义导致显著拖延的个体。拖延也可能由完美主义与其他因素(如焦虑、抑郁)共同导致。

4. 应对策略 若拖延源于完美主义,可采取以下措施:

  • 设定合理目标与标准,聚焦“足够好”而非完美。
  • 关注自我标准,减少对他人看法的过度在意。
  • 质疑恐惧,通过自我提问、换位思考理性评估风险。
  • 允许犯错,放弃“全或无”的思维模式。
  • 发展自我效能感自我同情,善待自己并接受挑战普遍性。
  • 寻求外界支持,如专业帮助或同伴鼓励。

5. 通用抗拖延技巧

  • 将任务拆解为小步骤,并从微小行动开始。
  • 合理切换任务,及时奖励进展。
  • 优化工作环境与作息,保证休息。
  • 原谅过去的拖延,专注当下行动。

在应用这些方法前,应先分析自身拖延的具体成因、情境与模式,以选择最有效的应对策略。

3. Standard Ebooks (standardebooks.org)

Standard Ebooks 项目概述

Standard Ebooks 是一个由志愿者驱动的项目,专注于为真正的爱书人制作高质量、免费且不受版权限制的公共领域电子书新版本。该项目从诸如 Project Gutenberg 等来源获取电子书,通过精心设计的专业风格手册进行排版和字体设计,进行全面校对和修正,并充分利用先进的电子阅读器和浏览器技术构建新版本。

主要特点与优势:

  1. 现代且一致的排版:采用严格现代的排版规范,使用弯引号、正确的长破折号和短破折号等,确保专业且一致的视觉质量,区别于其他免费电子书常见的粗糙排版。

  2. 全面的校对与修正:对每本电子书进行仔细的全文通读,并与原始扫描件核对,尽可能修正拼写错误、不一致的拼写、缺失的重音符号和标点等问题。所有文件存储在流行的 Git 版本控制系统中,便于社区提交修正。

  3. 丰富详细的元数据:包含完整、经过研究且一致的元数据,如原创的详细书籍简介和百科全书链接,非常适合机器处理或技术型读者的深入探究。

  4. 先进的技术支持:充分利用最新的电子阅读器技术,包括连字符支持、弹出式脚注、高分辨率可缩放矢量图形以及兼容电子阅读器的目录等,确保经典作品也能享受最佳的现代阅读体验。

  5. 高质量的封面:从丰富的公共领域美术作品中汲取灵感,为每本电子书创建独特、合适且风格一致的精美封面,避免使用由阅读器软件生成的单调默认封面。

  6. 简洁的代码与语义化标记:遵循严格的编码标准,文件代码清晰易读、稳健可靠,可作为电子书制作的可靠基础和优质范本。同时采用基于标准的语义化标记,为新型的机器处理应用打开了大门。

  7. 免费、开源与公共领域:所有电子书及其封面艺术均处于公共领域。项目使用 Git 跟踪所有更改,任何人都可查看历史或轻松贡献修改。Standard Ebooks 将其投入的工作成果也全部贡献给公共领域,确保电子书文件不仅是免费的,更是完全自由的(libre)。

总结:Standard Ebooks 通过志愿者的努力,为公共领域经典作品创建了在排版质量、技术应用、元数据和开源自由等方面均达到高标准的新版本电子书,旨在为读者提供媲美专业出版物的精美、可靠且完全免费的数字阅读体验。

4. 27 years ago, Steve Jobs said the best employees focus on content, not process (www.inc.com)

文章内容显示为一个技术提示,要求用户启用JavaScript并禁用广告拦截器,以便访问完整内容。

5. OpenVoice: Versatile Instant Voice Cloning (arxiv.org)

OpenVoice: 多功能即时语音克隆

概述 OpenVoice 是一种多功能的语音克隆方法,仅需参考说话者的短音频片段即可复制其声音并生成多种语言的语音。它在解决该领域内的以下开放性挑战方面取得了显著进展。

核心创新与优势

  1. 灵活的语音风格控制

    • 能够精细控制生成的语音风格,包括情感、口音、节奏、停顿和语调。
    • 可以复制参考说话者的音色,但不直接复制或受制于参考音频的风格。这解决了以往方法在克隆后无法灵活操纵语音风格的问题。
  2. 零样本跨语言语音克隆

    • 实现了对未包含在大型说话者训练集中的语言的零样本跨语言语音克隆。
    • 与以往通常需要针对所有语言构建庞大的多语言说话者数据集的方法不同,OpenVoice 无需该语言的任何大型说话者训练数据即可将其克隆为新语言。

其他特点

  • 计算高效:其计算成本比提供更差性能的商用 API 低数十倍。
  • 开源与普及:为促进进一步研究,已公开源代码和预训练模型。截至文末,OpenVoice 已作为语音引擎被全球超过200万用户使用。
6. Sony software updates breaks movie theater projectors (bsky.app)

索尼软件更新导致电影院投影仪故障事件

事件概述

索尼发布了一个有问题的软件更新,导致电影院投影仪出现故障,直接影响了电影放映。

主要影响

  • Alamo Drafthouse电影院因投影仪故障取消了所有电影放映。
  • 这一事件可能波及更多电影院,影响范围较广。

相关反馈与背景

  • 电影院应对:Alamo Drafthouse的经理及时处理,退还了食物、饮料和门票费用,但服务人员可能受到影响(如小费问题)。
  • 行业经验:有评论提到类似技术问题,例如数字版权管理(DRM)中的根证书过期事件,导致全球文件系统故障,突显了软件更新在关键基础设施中的风险。
  • 时间安排质疑:部分评论指出,在新年夜(高峰期)安排软件更新不合理,可能加剧了问题。

技术细节

  • 事件源于索尼的软件更新缺陷,具体技术问题未详述,但影响了投影仪的正常运行。
  • 评论中提及DRM证书过期案例,强调了软件维护和文档流程的重要性。

总结

此次事件突出了技术更新在娱乐行业中的潜在风险,以及及时响应和行业经验分享的必要性。

7. DaedalOS – Desktop environment in the browser (dustinbrett.com)

daedalOS 是一个在浏览器中运行的桌面环境项目,其源码展示了项目的结构和关键技术实现。

核心功能与目的

  • 项目定位:在浏览器内模拟完整的桌面操作系统环境。
  • 在线访问:托管于 dustinbrett.com,用户可直接通过网址访问和使用。
  • 集成应用:通过预加载的图标资源(如 VLC、Doom、脑图、YouTube 等)表明内置了多媒体、游戏、脑图、视频等应用。

技术实现与结构

  • 前端框架:基于 Next.js 构建(从 /_next/ 静态资源路径和构建清单文件可见)。
  • 布局与样式
    • 使用 CSS Grid 桌面图标布局,支持响应式填充。
    • 底部为固定的任务栏,包含“开始”按钮(带 SVG Windows 标志图标)和搜索栏。
    • 整体布局采用 position: fixed,背景为黑色,并支持自定义背景样式变量。
    • 通过 styled-components 管理样式。
  • 交互设计
    • 图标和按钮有悬停、点击等交互状态样式。
    • 任务栏具有背景模糊(backdrop-filter: blur)的磨砂玻璃效果。
    • 桌面区域可滚动查看图标。
  • 性能优化
    • 使用 <link rel="preload"> 预加载关键图像资源(应用图标、YouTube 缩略图等)。
    • 采用响应式图片(imagesrcset)适配不同分辨率。
  • 元数据与 SEO
    • 配置了完整的 Open Graph 标题、描述、图片和 URL,便于社交分享。
    • 提供了 RSS 订阅链接。

资源与依赖

  • 图标资源:系统图标(如快捷方式、电脑、用户)和应用图标(如 VLC、Doom)均以 WebP 格式预加载,支持多倍率显示。
  • 静态资源:包含 JavaScript 分包加载(框架、主逻辑、页面逻辑等)和构建清单文件。

总结

daedalOS 是一个技术演示性项目,它通过现代 Web 技术栈(Next.js、CSS Grid、响应式设计、资源预加载)在浏览器中重现了一个功能丰富、具备视觉交互的桌面操作系统环境,集成了常用应用,并注重性能优化与社交分享能力。

8. Stuff we figured out about AI in 2023 (simonwillison.net)

2023年AI领域关键发现总结

大型语言模型(LLM)的突破性发展

2023年是大型语言模型(LLM)的突破年。LLM能够回答问题、总结文档、翻译语言、提取信息甚至编写代码,同时也可能被滥用。总体而言,LLM对个人生产力提升和生活质量改善具有积极作用。

LLM构建与部署的关键发现

  • 构建相对容易:训练基础版LLM仅需数百行Python代码,核心在于高质量的海量训练数据。训练成本已从数百万美元降至数万美元,多个组织已开发出优于GPT-3级别的模型。
  • 本地运行成为可能:Meta的Llama发布后,社区迅速实现了在MacBook、iPhone甚至浏览器中运行LLM。目前有数千个LLM可在各类设备本地运行,支持隐私保护。
  • 爱好者可进行微调:虽然从头训练仍较困难,但基于现有模型的微调已成为活跃生态。开源模型通过全球社区协作不断改进,Hugging Face等平台记录了快速迭代的成果。
  • GPT-4仍领先:尽管进展迅速,但尚未有公开模型超越GPT-4。OpenAI可能拥有未公开的关键技术,Google的Gemini Ultra等正在追赶。

LLM的当前局限与挑战

  • “氛围驱动开发”:LLM仍是复杂的黑箱,评估和理解其行为困难。提示工程的效果不确定,缺乏科学的方法论。
  • 既智能又愚蠢:LLM能完成意外任务,但也需依赖非常规的提示技巧(如强调紧急性)才能获得最佳输出。
  • 易受骗是核心难题:LLM容易轻信输入内容(包括提示注入攻击),这限制了其作为可靠助手或智能体的应用。可能需待通用人工智能(AGI)出现才能彻底解决。
  • 伦理与法律问题复杂:未经授权使用训练数据引发法律诉讼(如《纽约时报》起诉OpenAI),对内容创作者和就业市场的影响日益显著,亟待更多调查报道。

LLM的最佳应用场景:代码生成

代码生成是LLM最具潜力的应用之一,因为编程语言语法比自然语言简单,且生成的代码可通过执行验证,大幅缓解了“幻觉”问题。这为软件工程师提供了提升效率的工具,同时也带来职业影响的思考。

作者的2023年AI相关输出

作者博客内容高度聚焦AI领域,其中关于AI、生成式AI、LLM的文章数量最多。流量最高的文章涉及Bing聊天机器人行为、谷歌内部文件泄露、LLM的“Stable Diffusion时刻”、提示注入安全风险等主题。此外,作者通过演讲、博客文章和播客广泛探讨了LLM的工程实践、伦理和影响。

9. Fixing annoying blue standby lights (www.fullcircuit.com)

文章讲述了作者对家用电子产品蓝色待机灯的困扰,以及找到一个巧妙、免费且不影响遥控功能的解决方案。

问题背景: 许多家用电子设备的待机指示灯采用蓝色LED,这种强光在卧室或单间公寓中尤为刺眼。虽然部分设备允许关闭指示灯,但作者购买的JVC LT-39C740电视没有提供此选项。

面临的挑战: 直接使用黑色胶带遮盖蓝色指示灯窗口虽然有效,但该窗口同时是遥控器的红外接收器,遮盖后会导致遥控功能失效。

创意解决方案:

  1. 原理: 遥控器使用红外光,而蓝色LED发出的是可见蓝光。因此,只需使用一个能过滤蓝光但允许红外光通过的滤镜即可。
  2. 材料: 作者发现英国品牌Quality Street巧克力的透明包装纸是深红色的,这种红色滤镜可以阻挡蓝光,同时允许红外光部分透过。
  3. 实施: 将两层这种红色包装纸紧密包裹在包含蓝色LED和红外接收器的方形模块上,并用透明胶带在背面固定。经测试,遥控器在房间对面仍能正常工作,而蓝光几乎被完全消除。

结果: 这个方法成本低廉(甚至“免费”还能享受巧克力),安装后几乎看不见,有效解决了蓝光困扰,同时保留了遥控功能。作者认为,使用蓝色LED的趋势反而使得这种红色滤光片解决方案更容易实现。

10. Show HN: Cassette, a Personal Programming Language (cassette-lang.com)

Cassette: 一种个人编程语言

Cassette 是一种小型函数式编程语言,设计初衷是用于个人编程,具有DIY(自己动手)、无预设依赖库的特点,旨在提供编程乐趣。

核心特性

  • 函数式编程:采用函数范式。
  • 不可变值:值创建后不可更改。
  • 垃圾回收:自动内存管理。
  • 高效的尾调用递归:对尾递归优化良好。
  • 模块系统:支持代码的模块化组织。

语法概览

值类型

Cassette仅有四种值类型:

  1. 整数:30位有符号整数(范围:-536,870,912 至 536,870,911)。支持十进制、十六进制和字节字面量(如 $a)。true 等价于 1false 等价于 0
  2. 对与列表:使用 Lisp 风格的 cons 单元(: 操作符)构建链表。nil 表示空列表。例如,[1, 2, 3] 等价于 1 : 2 : 3 : nil
  3. 元组:固定大小的数组(如 {1, 2, 3}),访问效率高但灵活性低。
  4. 二进制与字符串:二进制是字节向量,字符串是其 UTF-8 编码形式。字符串支持多种转义码(如 \n\t)。

操作符

  • 算术与比较:支持标准算术运算(+, -, *, /, %)和比较运算符。
  • 对象访问
    • @ 获取对或列表的头部,^ 获取尾部。
    • <> 用于连接元组或二进制。
    • # 获取元组或二进制的长度。
    • [] 用于索引或切片(如 {1,2,3}[0]"hello"[1,4])。
  • 逻辑orandnot 运算符。只有 0false)和 nil 为假值。== 进行结构相等比较。

控制结构

  • 函数:使用 lambda 语法 \a, b -> a + b 创建。
  • 条件if 表达式包含一个谓词/结果对列表,可选 else 分支。
  • do ... end 块包含一系列表达式,结果为最后一个表达式的值。
  • 定义:在块内使用 def 定义函数,该函数在块内全程可见且支持递归。函数定义可附带守卫子句(when)。
  • 守卫语句:块中的 guard 语句若条件为假则提前返回。
  • 变量绑定:使用 let 进行变量绑定,后续绑定可引用之前的变量。

记录

使用 record 关键字可定义记录类型(如 record Rect(left, top, right, bottom)),这实质是定义了一个创建带符号键的映射的函数,可通过 . 运算符访问成员。

模块系统

Cassette程序由模块构成。模块以声明头(moduleimportexport)开始,主体是一个 do 块。通过 def 定义的顶级函数默认导出。其他模块可通过模块名或别名限定来调用导入的函数。例如,import Bar (bar_fn), LongModuleName as LMN

构建与使用

Cassette需从源码构建。首先需安装依赖(如LLVM、clang),然后通过 git clone 仓库并运行 make 生成可执行文件 bin/cassette。文中示例演示了使用该语言发起一个简单的HTTP GET请求。

11. Disney's Mickey Mouse enter public domain (www.bbc.com)

2024年1月1日,迪士尼经典动画《汽船威利号》中的早期米老鼠和米妮形象版权在美国到期,正式进入公共领域。

这意味着自即日起,任何创作者均可免费使用1928年这部动画短片中非语言版本的米老鼠和米妮形象进行再创作或传播,无需获得迪士尼许可或支付费用。美国版权法规定角色版权保护期为95年,因此《汽船威利号》及其角色如期于2024年1月1日解禁。

然而,迪士尼公司明确指出,更现代的米老鼠形象仍受版权保护。公司声明将继续维护其对现代版本米老鼠及其他未过期作品的权利。此外,迪士尼仍拥有米老鼠作为品牌标识和企业吉祥物的商标权。这意味着公众使用早期米老鼠形象时,不得造成与迪士尼官方产品混淆,例如在商品销售中让人误认为是迪士尼产品。

与《汽船威利号》一同进入美国公共领域的还有其他1928年的重要作品,包括:

  • 查理·卓别林的电影《马戏团》
  • A·A·米尔恩的《小熊维尼》续作《小熊维尼角的房子》(引入了跳跳虎角色)
  • 弗吉尼亚·伍尔夫的《奥兰多》
  • D·H·劳伦斯的《查泰莱夫人的情人》

米老鼠版权到期之路颇为曲折。其版权本应于1984年到期,但国会两度通过法案延长保护期,每次延长20年,相关法案甚至被戏称为“米老鼠保护法”。此次到期被杜克大学公共领域研究中心主任称为“具有深远象征意义且期待已久的里程碑”。

分析人士认为,迪士尼可能为避免进一步的法律纠纷而克制诉讼,但仍会通过积极使用商标版本的米老鼠(如出现在新动画短片和影院标识中)来应对对其角色的滥用行为,以防止消费者混淆。

12. Meshtastic: An open source, off-grid, decentralized, mesh network (meshtastic.org)

Meshtastic 是一个开源、离网、去中心化的网状网络项目,旨在为所有人提供离网通信解决方案。该项目基于低成本、低功耗设备运行,无需依赖手机信号塔、WiFi 或互联网,实现纯粹的点对点连接。其关键特性包括使用LoRa技术实现数公里范围的长距离通信、采用AES-256加密确保消息私密安全,以及完全无需基础设施支持。

用户可以通过多种平台连接和控制Meshtastic设备,包括适用于iOS、iPad和Mac OS的Apple应用、Android应用、Web客户端以及面向Python开发者的命令行界面和SDK。该项目由全球社区支持和代码贡献者推动,并得到赞助商和支持者的支持。

13. Magnitude 7.4 earthquake stikes Japan, major tsunami warning issued for Ishikawa (www3.nhk.or.jp)
15. Bazzite – a SteamOS-like OCI image for desktop, living room, and handheld PCs (github.com)

Bazzite 是一个基于 Fedora Atomic 的自定义镜像,采用云原生技术构建,旨在将优秀的 Linux 游戏体验带入各种设备,包括桌面电脑、客厅影院PC(HTPC)以及 Steam Deck 等掌上设备。

核心特性:

  • 使用专用的 bazzite 内核,支持 HDR 及扩展硬件兼容性。
  • 在游戏模式下支持 HDR。
  • 默认包含完整的多媒体编解码器支持、AMD ROCM、Xbox 控制器驱动、DisplayLink 支持等。
  • 预装了来自 SteamOS 的 KDE 主题,以及 MangoHud、OBS 等游戏及创作工具。
  • 集成了 Distrobox、Waydroid(用于运行 Android 应用)、Input Remapper 等实用工具。
  • 通过 Bazzite Portal 可轻松安装应用、进行系统更新、重置或重基。

主要设备变体:

  1. 桌面版 (bazzite):适用于台式机,提供自动系统更新。
  2. Steam Deck/HTPC 版 (bazzite-deck):专为 Steam Deck 和客厅PC设计,直接启动进入类似 SteamOS 的游戏模式。优化了存储(自动 duperemove)、支持完整的 BTRFS 文件系统、包含 SDGyroDSU 陀螺仪支持,并预装了 Steam 和 Lutris。提供便捷的版本回滚功能。
  3. GNOME 版:提供桌面和 Deck 两种风格的 GNOME 桌面环境构建,支持可变刷新率、分数缩放,并预装 GSConnect 等扩展。
  4. 其他掌机支持:提供了必要的设置指南以支持其他品牌的掌机在游戏模式下运行。

上游特性:

  • 继承自 Universal Blue:可选预装 NVIDIA 专有驱动(仅限 NVIDIA 镜像),默认启用 Flathub。
  • 继承自 Fedora (Kinoite/Silverblue):提供稳定的基础、可层叠 Fedora 软件包、启用 SELinux、支持 CUPS 打印。

创建原因: Bazzite 旨在解决 SteamOS 存在的一些问题,如软件包过时且缺乏功能完善的包管理器。它基于 Fedora,更新频繁且稳定,并允许用户自由安装 Fedora 软件包,这些包在系统更新后会被保留。

其他信息:

  • 镜像使用 sigstore cosign 进行签名验证。
  • 支持安全启动(需预先注册自定义密钥)。
  • 项目完全通过 GitHub Actions 构建,用户可轻松 fork 仓库创建自定义版本。
  • 项目拥有一个活跃的社区。
16. Threads.net is the new app.net but with ads and interoperable (www.fromjason.xyz)

Meta的Threads战略分析:意图成为社交媒体基础设施提供商

核心观点

文章认为,Meta整合Threads与ActivityPub协议并非简单的开放社交行为,而是一项多年布局的战略计划,旨在将Meta从社交平台公司转型为社交媒体基础设施服务商(Platform as a Service)。这一转型将使Meta在“社交网络”时代获得前所未有的影响力,并可能重塑社交媒体生态。

战略背景与动机

  1. Meta的困境:面临监管压力、反垄断限制及内容审核难题。马克·扎克伯格的“四点监管计划”(针对有害内容、选举诚信、隐私和数据可移植性)暗示其希望通过法规创造新市场。
  2. 增长需求:华尔街要求持续增长,但传统收购(如Instagram、WhatsApp)受反垄断制约。Meta需开辟新增长路径。
  3. 基础设施优势:Meta拥有全球数据中心网络和技术能力,已从2019年的15个扩张至21个以上,具备提供云基础设施的基础。

对app.net模式的借鉴

文章将Threads与已失败的app.net类比:

  • app.net的教训:允许第三方开发者在其API上构建社交应用,但数据集中存储于app.net,平台关闭后数据消失。
  • Threads的升级
    • 互操作性:基于ActivityPub协议,实现跨平台关注、互动与迁移。
    • 数据所有权:第三方平台拥有独立URL,用户数据不单一存储于Meta。
    • 广告分成:为开发者提供广告收益流,吸引独立开发者参与。

对Mastodon的威胁

  1. “复制、收购、杀死”策略:Meta历来通过模仿、收购或边缘化竞争对手。Mastodon虽去中心化且无广告,但拥有活跃的服务器管理员和900万用户,是Meta的潜在目标。
  2. 生态接管风险:Meta可凭借资源吸引开发者迁移至Threads生态,最终削弱Mastodon。一旦控制关键基础设施,可能用私有协议替代ActivityPub,使开源协议沦为“虚拟废墟”。

法规与数据可移植性

  1. 推动立法:Meta支持的数据可移植性法案(如ACCESS Act)若通过,将强制社交平台开放数据接口,这符合Meta的基础设施战略——降低用户迁移成本,同时吸引更多平台依赖其服务。
  2. 数据传输项目(DTP/DTI):Meta参与此项目,但可能利用其为Threads迁移Mastodon用户铺路,并在后期替换协议。

未来影响

  1. 开发者与服务器管理员:可能通过Meta的广告分成和技术支持获得新收入,但需接受Meta的主导地位。
  2. 用户:表面拥有选择权,实则可能陷入“伪竞争”环境,内容分发和社交图谱最终由Meta控制。
  3. 竞争格局:若成功,Meta将如同AWS在云计算领域一样,成为社交媒体基础设施的垄断提供商。

阻碍与不确定性

  • 社区抵触:Fediverse社区可能抵制Meta的商业化。
  • 监管审查:反垄断机构可能介入。
  • 执行风险:转型需多年时间,且需平衡现有社交业务。

结论

Threads接入ActivityPub是Meta战略转型的关键一步,旨在构建一个由其主导的社交基础设施生态。这一过程将模仿并可能最终吞没去中心化社交网络,使Meta从“社交平台皇帝”转变为“社交基础设施领主”。

17. Interesting double-poly latches inside AMD's vintage LANCE Ethernet chip (www.righto.com)

文章介绍了AMD 1982年推出的Am7990 LANCE以太网芯片中发现的一种特殊电路结构:使用双层多晶硅工艺实现的电阻性反馈锁存器和静态存储单元。

芯片的特殊结构

  • 在芯片的die照片中,观察到额外的黄色线路层。
  • 经研究,这是第二层电阻性多晶硅,用于芯片的静态存储单元和锁存器中。
  • 该层多晶硅以对角线形式跨越电路,通过复杂的环状结构与硅层连接,提供高阻值。

电阻反馈锁存器的原理与优势

  • 数字芯片中,一个常见的数据存储方法是使用两个交叉耦合的反相器形成一个稳定的回路(可存储0或1)。
  • 为了向这个回路写入新数据,文章介绍了三种技术:
    1. 使用晶体管开关:通过“hold”和“load”信号控制通路。
    2. 使用弱反相器:其低电流输出可被输入信号覆盖(如Intel 386所用),但占用面积较大。
    3. 使用电阻反馈(本芯片采用):用一个高阻值的电阻作为反馈路径。输入信号可以轻松覆盖低反馈电流,从而写入新值。
  • 优势:这种电阻反馈方案比弱反相器方案更紧凑。电阻可以叠放在电路上方,几乎不占用额外面积。

双层多晶硅工艺的来源与应用

  • 该芯片采用了AMD的 “64K动态RAM工艺”
  • 双层多晶硅工艺最初是为动态RAM服务的:一层形成电容,另一层用于晶体管栅极和布线。
  • 但该工艺也极大地有利于缩小静态RAM(SRAM)单元的尺寸
  • 在LANCE芯片中,除了锁存器,还有多个静态存储缓冲区(如22×16, 48×9, 16×7的存储块)也采用了基于此工艺的SRAM单元。
  • SRAM单元结构类似于锁存器(两个反相器构成存储环路),但以网格形式排列,并配有字线和位线进行选择与读写。其物理布局中,作为上拉电阻的第二层多晶硅同样叠放,有效减小了单元面积。

结论与芯片背景

  • 主要动机:在LANCE芯片中采用双层多晶硅工艺,首要目的是为了缩小片上静态RAM单元的面积。用于锁存器的反馈电阻则是该工艺的次要应用
  • 芯片信息:Am7990 LANCE是一款以太网控制器芯片,负责处理串并转换、CRC校验、冲突退避、地址识别及DMA接口等功能。它需配合Am7992串行接口适配器(进行曼彻斯特编解码)和Am7996收发器(处理底层信号与冲突检测)共同工作。
  • 该芯片的引入,是早期将复杂以太网接口电路集成到VLSI芯片中的代表之一,有助于降低硬件成本和复杂度。
18. Beginner dev looks at how YouTube sends videos (vincentsg.dev)

文章标题: 初学者开发者视角:YouTube 如何发送视频

内容状态: 所请求的文章页面不存在。

提供的实际内容为一个错误页面,显示“页面未找到”,并附有引导用户“返回首页”的链接。因此,无法对该文章的技术细节、目的或结构进行任何总结。

19. Notation Must Die: The Battle for How We Read Music [video] (www.youtube.com)

视频摘要:《乐谱必死:我们如何识谱之争》

基本信息

  • 标题:Notation Must Die: The Battle For How We Read Music
  • 频道:Tantacrul(已认证,46.5万订阅者)
  • 发布日期:2023年11月3日
  • 播放量:167.9万次
  • 点赞数:7万
  • 时长:约1小时15分钟

主要内容

该视频探讨了**西方音乐记谱法(Western notation)**是否使识谱变得不必要地困难。作者认为,如果我们想学习视奏、乐理或练习乐器,可能存在更好的方式。这个问题已经争论了近1000年。

章节概览(共20个章节):

时间 主题
00:00 背景铺垫
09:26 乐谱必死 引言
15:12 古希腊记谱法
19:40 西方记谱法的历史
31:57 半音阶五线谱
36:15 钢琴卷帘
42:54 谱号(及对变革的抵制)
44:42 Muto方法
46:45 记谱法与贵族
48:25 吉他谱(Tablature)
51:40 吉他英雄(游戏)
52:51 Klavarskribo记谱法
54:08 其他键盘记谱类型
55:47 Musitude!
1:01:18 Dodeca
1:03:01 无障碍性
1:04:31 彩色音符(Farbige Noten)
1:06:49 朱利安·卡里略的体系
1:08:26 其他方案精选
1:11:52 未来展望

核心议题

视频系统地回顾了从古希腊到现代的各种音乐记谱系统,包括:

  • 西方五线谱的演变历史
  • 各种替代记谱方案(如半音阶谱、钢琴卷帘、吉他谱等)
  • 记谱法与贵族阶层的社会关系
  • 记谱法的无障碍性问题
  • 近1000年来对此话题的争论

参考资料

作者引用了大量学术资源,包括书籍(如《记谱法的历史》、《记谱法改革提案汇编》)、学术文章、维基百科条目以及多个相关的YouTube视频。

20. Git Things (matklad.github.io)

Git Things 文章摘要

本文探讨了Git使用中一些较少被讨论但重要的实践与原则。

一、“非火箭科学”规则与合并提交

核心原则: 每个合并提交都应通过测试,以确保主分支历史上的每个节点都是稳定且可回溯的。这使得 git bisect 能高效地用于问题排查。典型的拉取请求合并流程正是为了确保这一原则——合并提交序列记录了每次CI的成功运行。

在特性分支内的灵活性: 特性分支内部的提交无需全部通过测试,这反而是有益的。文章列举了如何利用此特性:

  1. 修复缺陷: 先提交一个失败的测试,再提交修复代码。这便于验证修复的有效性。
  2. 重构API: 分两个提交:第一个只修改API定义,第二个提交机械性地更新所有调用点。这便于代码审查,将实质性改动与大量重复性改动区分开。
  3. 记录文件移动: git mv 实质上是 mvgit add,Git本身不记录移动元数据。为可靠记录文件移动,应分两个提交:第一个提交仅移动文件(不修改内容),第二个提交应用所有后续修改。

其他建议:

  • .gitconfig 中设置 colormoved 选项,可以在 diff 输出中为移动的代码行染色,便于审查。
  • 利用“非火箭科学”规则,可以强制执行“主分支使用合并,特性分支使用变基”的策略,并可编写测试来检查历史中是否包含不应存在的大文件。

二、关于提交信息的反思

作者提出一个看似激进的观点:拥有优秀提交信息的项目,其CI和代码审查流程可能存在不足。因为小改动(如修正拼写)由于CI和审查的固定成本过高而难以被快速合并,导致开发者倾向于将多个改动捆绑在一起,并撰写冗长的提交信息。

改进建议:

  1. 更小、更频繁的提交: 将工作拆分为更小的批次。
  2. 异步CI: 提交后应标记为可合并,然后继续其他工作,仅在CI失败时再处理。
  3. 优化审查流程: 对于非关键项目,可以“乐观地”先合并符合规则的改动,然后在主分支中进行代码审查和原地修改,而非在合并前进行漫长的等待和评论。

关于提交信息本身:

  • 并非所有历史都需要整洁: 对于个人博客或配置文件等项目,简单的提交信息(甚至一个点“.”)也无妨。
  • 并非所有改动都需要详细信息: 小改动使用简短的提交信息是合理的。
  • 大改动确实需要详细信息: 对于包含重要上下文的改动,应撰写详尽的提交信息。技巧是先写提交信息再编码,这有助于厘清思路并迭代计划。
  • 摘要行长度争议: 传统的50字符限制被认为过短,内核文档建议的70-75字符更为合理,并以Linux内核提交为例进行了佐证。
21. Nim on a Real-Time Operating System: Apache NuttX RTOS and Ox64 BL808 SBC (lupyuen.codeberg.page)

在Apache NuttX实时操作系统上运行Nim:Ox64 BL808 SBC实践

本文介绍了如何在Apache NuttX实时操作系统(RTOS)上运行Nim编程语言,特别是在Pine64 Ox64 BL808 RISC-V单板计算机(SBC)上实现LED闪烁应用。

核心内容概述

1. Nim语言特点与NuttX适配

Nim是一种类似Python语法的静态编译语言,具有自动垃圾回收和内存安全特性。它通过编译到C代码的方式与NuttX RTOS集成,使得Nim程序在NuttX中看起来就像普通的C程序。

2. 基础Nim程序实现

  • 创建简单的hello_nim函数,使用exportccdecl声明导出为C可调用函数
  • 使用defer GC_runOrc()确保函数返回时执行垃圾回收
  • 实现LED闪烁功能,通过NuttX的openioctlusleep等系统调用控制硬件

3. NuttX函数导入机制

Nim通过声明式导入(importc)访问NuttX的C函数和宏:

  • c_openc_closec_ioctlc_usleep等系统函数
  • O_WRONLYULEDIOC_SETALL等NuttX宏定义
  • 使用discardable标记表示返回值可选的函数

4. 开发环境与测试

QEMU模拟器测试:

  • 安装RISC-V QEMU模拟器(64位)
  • 启动NuttX镜像,运行hello_nim命令
  • 成功在模拟环境中控制虚拟LED闪烁

Ox64实际硬件测试:

  • 将LED连接到Ox64的GPIO 29引脚(Pin 21),使用47Ω限流电阻
  • 刷写NuttX镜像到microSD卡,启动系统
  • 在实际硬件上成功实现LED闪烁

5. Nim编译机制深度解析

Nim编译器将Nim代码转换为C代码,存放在.nimcache目录中:

  • 生成的C代码包含完整的函数实现和字符串常量
  • NuttX的Makefile使用GCC编译这些生成的C文件
  • 通过config.nims配置文件支持RISC-V 64位架构

6. Ox64 LED驱动程序开发

为Ox64创建了专用的LED驱动程序:

  • 通过U-Boot命令验证GPIO 29寄存器(地址0x20000938)的控制位
  • 实现board_userled_all函数,直接操作GPIO寄存器控制LED
  • 设置寄存器值:
    • LED开启:0x1000b40(设置bit 24)
    • LED关闭:0x0000b40(清除bit 24)
  • 计划后续用BL808 GPIO驱动程序替代直接寄存器操作

7. 技术问题修复

  • 定时器问题:调整OpenSBI定时器频率从10MHz到1MHz,修复sleep命令时间不准问题
  • 构建配置:调整Makefile,处理Nim缓存文件的路径问题
  • 架构支持:更新Nim配置文件以支持64位RISC-V架构

8. 项目意义与展望

本项目验证了在资源受限的嵌入式系统中运行带垃圾回收的高级语言(Nim)的可行性:

  • 成功在64MB RAM的Ox64 SBC上运行Nim程序
  • 证明Nim编译到C的方案在RTOS环境中有效
  • 为后续使用Nim开发LVGL图形界面应用奠定基础

关键技术要点

  1. Nim通过编译到C代码实现与NuttX的无缝集成
  2. 使用importc声明访问底层系统函数
  3. 垃圾回收通过defer GC_runOrc()在函数退出时强制执行
  4. 实际硬件测试需要专门的GPIO驱动支持
  5. 定时器配置对实时性至关重要

该项目展示了现代编程语言在嵌入式实时系统中的应用潜力,为开发者提供了在NuttX RTOS上使用高级语言的新选择。

22. Using a Markov chain to generate readable nonsense with 20 lines of Python (benhoyt.com)

这篇文章介绍了如何使用简单的马尔可夫链(Markov chain)算法,仅用约20行Python代码生成可读但无意义的文本。该算法的核心思想是:以输入文本中的词对(双词组)为基础,记录每个词对后可能出现的下一个单词,然后随机选择后续单词来生成新文本。

算法原理

  • 数据结构构建:遍历输入文本,对每个词对(w1, w2)建立字典,记录其后可能出现的所有单词。
  • 文本生成:从输入文本中随机选取一个词对作为起始,然后根据记录的可能单词列表随机选择下一个词,滚动更新词对并重复此过程。
  • 词对选择:算法使用双词组(bigram)。过短的前缀(如单个词)会导致生成文本连贯性差,而过长的前缀(如三个词)则容易直接复制原文。双词组是较好的平衡。

示例效果

文章展示了多个示例,输入文本包括《圣经》十诫、作者自己的文章、《爱丽丝梦游仙境》、《旧约/新约圣经》和《世界大战》。生成结果:

  • 可读但逻辑荒谬,能捕捉输入文本的风格和词汇特征。
  • 包括输入文本中的标点和大写,使输出自动生成“句子”结构。
  • 输入文本越小,输出越可能直接复制原文;输入越大,输出越具创造性。

Python实现

代码简洁,约24行(含空行和注释),核心步骤:

  1. 读取输入:从标准输入读取文本,按空格分词。
  2. 构建字典:使用 collections.defaultdict(list) 存储词对及其后续单词列表。
  3. 生成文本:随机选择一个以大写字母开头的词对作为起点,根据命令行参数指定的词数循环生成单词。
  4. 输出格式化:使用 textwrap.fill 将生成文本换行为70列宽度。

使用示例python3 markov.py 100 < AliceInWonderland.txt

结论

作者认为这种简单算法能生成有趣输出,并特别提到将标点和大写纳入“单词”记录的设计选择,这简化了代码并提升了输出质量。该实现可作为文本生成或游戏中的有趣工具,也展示了马尔可夫链在简单场景下的应用。

23. Merkle Town: Explore the certificate transparency ecosystem (ct.cloudflare.com)

Merkle Town:探索证书透明度生态系统

本文基于Cloudflare当前监控的证书透明度(CT)日志数据,介绍了证书透明度生态系统的基本概念和关键组成部分。

证书特征

本部分提供了有关证书技术构成的信息。

证书签发

证书签发是证书颁发机构(CA)为域名所有者生成数字证书的过程。CA通常由较大的组织运营,这些组织可能在一个公司实体下管理多个下属CA。

证书透明度日志

CT日志是“仅可追加”且可公开审计的账本,记录了正在创建、更新和过期的证书。

证书覆盖范围

一个证书可以覆盖多个顶级域名(TLD),包含通配符条目,并且在主题备用名称(SAN)中支持IP地址。

最新证书透明度博客文章

列出了Cloudflare博客上标记为“证书透明度”的相关文章。

24. Show HN: I made TV Sort, a web-based game for ranking TV show episodes (tvsort.com)

TV Sort 网页游戏简介
TV Sort 是一款基于网页的游戏,旨在帮助用户对电视剧集进行个性化排名。用户可以选择感兴趣的电视剧,然后在1v1对战模式中逐集比较,从而找出自己对每集剧集的真实偏好和感受。该游戏通过互动比较的方式,简化了剧集排名的过程,使用户能够更直观地了解自己的喜好。

25. Video playback on low-end MS-DOS machines (scalibq.wordpress.com)

这篇文章探讨了在极低端MS-DOS机器(如8088 CPU和CGA显卡)上实现视频播放的技术演进与可能性。

核心成就:

  • 历史上,在8088 (4.77 MHz) 和CGA上播放视频曾被认为不可能,直到2004年的演示程序《8088 Corruption》及其2014年的续作《8088 Domination》出现,证明了其可行性,且音视频质量可接受。
  • 这些播放通常依赖Sound Blaster 2.0声卡,因为它是首款通过DMA控制器进行采样播放、几乎不占用CPU的常见PC声卡,且其固件解决了早期型号的无缝播放问题。

作者的扩展工作: 作者基于开源XDC编码器/解码器进行修改,将音频支持扩展到更多设备:

  1. PC扬声器: 实现了PWM(脉宽调制)播放,需要通过查找表转换PCM样本。由于占用额外CPU,在4.77MHz的8088上不推荐,但在8-10MHz的Turbo XT上以8-11kHz低采样率可能运行。
  2. Covox: 支持简单,可直接输出8位无符号PCM样本,速度比PC扬声器方案略快,音质接近Sound Blaster。缺点是在慢速机器上可能因中断驱动而出现抖动。
  3. Tandy音频: 利用其SN76496声音芯片的音量寄存器进行4位PCM播放。关键发现是:原始SN76496芯片设置周期值0可获得0Hz输出(即常高电平),从而用作DAC;但Tandy使用的克隆芯片NCR 8496会将周期0解释为400h(1024),产生低频音。 解决方案是将周期值设为1,产生超声波(听不见),同样可通过音量寄存器调制实现DAC效果。
  4. Sound Blaster 1.x: 在现有支持2.0版的代码基础上,为早期版本添加了“快速粗糙”的回退方案:每帧中断时重启音频缓冲区。这会导致每帧出现一个小故障,但在较低采样率下可能不明显。程序会自动检测DSP版本并应用相应方案。

技术要点与挑战:

  • CPU负载平衡: 音频播放方式直接影响CPU负担。DMA(如Sound Blaster 2.0)负载最低;中断驱动(如PC扬声器、Covox、Tandy)负载较高,需要权衡采样率、帧率或机器速度。
  • 硬件差异: 不同硬件(如SN76496 vs. NCR 8496)存在细微但关键的寄存器行为差异,需要针对性适配。
  • 音频质量与性能权衡: 低采样率(如8-11kHz)能显著降低CPU需求,但影响音质;高采样率(如22kHz)音质好,但需要更快的CPU或更高效的音频方案。

应用场景建议:

  1. 创建新内容: 针对新支持的低采样率设备创作专用音视频内容。
  2. 在较快机器上运行: 如286 CPU可以流畅播放原有22kHz音频的《8088 Domination》内容。
  3. 对现有内容降级: 将现有内容的音频下采样(如从22kHz降至8-11kHz),使其能在Turbo XT等较慢机器上通过PC扬声器/Covox播放。还可预处理音频以节省运行时开销。

总结而言,文章展示了通过深入理解硬件特性、进行针对性编程和在音视频质量与CPU负载间做出巧妙权衡,即使在最有限的MS-DOS平台上也能实现功能扩展的可能性。

26. White Elephant is surprisingly effective (bobbiec.github.io)

白象礼物交换:一个意外高效的分配算法

核心观点 白象游戏不仅是一种有趣的节日活动,其规则本身构成了一种高效的资源分配算法。通过模拟实验发现,与所有可能的礼物分配结果相比,白象游戏得出的结果显著优于平均水平

评估标准 作者使用了三种标准来评估分配结果的“好坏”:

  1. 幸福总和:所有玩家对所得礼物满意度(0-100)的总和,属于功利主义度量。
  2. 帕累托最优:是否存在另一种分配,能在不降低任何人满意度的情况下,提高至少一个人的满意度。
  3. Top-k选择:统计有多少人得到了他们最喜欢的前k个礼物之一。

模拟方法与结果

  • 方法:编写Python程序,模拟2至9名玩家的游戏。为每位玩家生成对各礼物的随机偏好值(0-100)。游戏中的决策策略为:若当前已揭露礼物中最大偏好值≥50则偷取,否则揭露新礼物。
  • 关键发现
    • 整体表现优异:例如在5人游戏中,约14%的模拟结果位居所有可能分配方案的前1%(第99百分位数)。
    • 帕累托最优率高:绝大多数游戏结果是帕累托最优的。随着玩家数增加,非最优结果的比例收敛至约1%。
    • Top-k表现合理:玩家通常能获得排名靠前的礼物。但与理论最大值(考虑偏好重复)相比,Top-1的实现率约为50%。
    • 效率极高:与暴力穷举所有分配方案相比,白象算法速度呈指数级优势。在9人游戏中,其速度比暴力法快约1亿倍,同时99%的结果位于最佳18%的分配方案中。

规则优化:引入“最后一偷” 模拟中发现表现不佳的游戏,常因首位玩家开局后无法改善而“卡住”。加入常见规则——游戏结束时,首位玩家拥有一次最终偷取机会——后:

  • 分配结果的质量分布明显向更好方向偏移。
  • 帕累托非最优比例降低约50%。
  • Top-k表现也得到提升。

算法优势与局限性

  • 优势
    • 人类可执行性:规则简单,参与者无需了解全局偏好即可做出局部最优决策。
    • 计算高效:在较大规模下,比暴力求解高效得多。
  • 模拟的局限性
    • 偏好值采用0-100连续整数,可能过于精细且非真实。
    • 偏好是随机独立生成的,未考虑现实中某些礼物普遍受欢迎或遭嫌弃的情况。
    • 未考虑玩家间的心理因素(如偷取的乐趣或内疚)及合作策略。
    • 玩家决策策略单一(简单阈值法),未考虑更复杂的博弈策略。

结论 白象游戏作为一个分布式、人类友好的分配算法,在模拟中表现出色。它能以极低的计算成本,产出接近最优的结果。虽然模拟存在一定简化,但结果强有力地证明了该方法的有效性。作者建议可进一步研究规则变体、更优的分配算法(如二分图匹配),并开发可视化模拟工具。

27. 2023: Year in Review (jvns.ca)

2023年度回顾

📖 出版物与教程

  • 漫画书《整数与浮点数的工作原理》:与Marie合作完成,最初主题为“计算机内存中的表示方式”,因内容聚焦于整数和浮点数的内存表示而单独成册。作者通过撰写深入理解了有符号整数的内存表示原理,并对最终的浮点数解释感到满意。
  • 《周末实现DNS》:作为大型项目“1400行Python实现完整网络协议栈”(包括TCP、TLS、DNS、UDP、HTTP)的首部分发布。该项目旨在类似《Nand to Tetris》的方式教学计算机网络。教程获得积极反响,已有数十人在GitHub上使用多种编程语言(如Go、Rust、Haskell等)完成实现。作者希望未来能鼓励更多用非系统语言(如JavaScript、PHP)的实现,并计划发布《周末实现IPv4》教程。

🛠️ 交互式教学工具

  • Memory Spy:与Marie合作,在lldb之上构建的友好界面工具。用户可输入C程序并点击查看某一行代码时变量在内存中的具体表示,降低了直接使用gdb/lldb的学习门槛。
  • Integer Exposed:受Bartosz Ciechanowski的float.exposed启发并获得许可后,制作的整数内存表示可视化工具。通过分析原作者的实现,作者学到了一些CSS技巧。

💻 Git相关项目

  • Git系列博客文章:为准备关于Git内部工作原理的新漫画,撰写了多篇博客,探讨Git难以学习的原因,涉及术语混淆、内部数据模型、3-way merge等主题。作者最初认为理解Git内部数据模型是关键,但经调查发现未必如此。
  • Git原型工具
    • git-commit-folders:使用FUSE或NFS将Git提交挂载为只读文件夹的实验性工具。
    • git-oops:Git撤销系统的实验原型,旨在探索实现“git undo”的可行性及复杂性。
  • 作者与朋友合作的另一个Git项目正在进行中。

🎤 演讲与活动

  • 在Strange Loop会议上发表主题演讲《让困难变简单》(Making Hard Things Easy),探讨学习难点及简化方法,作者对此感到自豪。

🏢 业务运营与平台迁移

  • 聘请运营经理:Lee的加入极大优化了公司运营流程,使得作者能更专注于写作和编程。具体成果包括成功举办黑色星期五促销、增加网站评论系统、重组商店结构、定期发送新闻通讯,并使作者能安心休假。
  • 迁移至Mastodon:鉴于近期Twitter的变化,作者将主要社交互动平台转向Mastodon,并在此就计算机(尤其是Git)话题进行了更多有意义的讨论。作者记录了在运行单人Mastodon服务器时遇到的技术问题,但总体满意。

🔮 2024年展望与思考

作者对多个问题进行探索,包括:

  • 开发者学习Unix命令行的困难及可能采取的措施(已有初步博客成果)。
  • 提升man pages文档实用性的可能性。
  • “用Python实现网络协议栈”项目的最终形式(网站、书籍、漫画或工作坊)。
  • Mastodon社区的讨论准则。
  • 推广2021年项目“Mess With DNS”的策略。

💭 核心感悟

作者接受“项目总是比预期耗时更长”的事实。包括网络协议栈项目(始于2022年)和Git漫画(始于2023年9月)在内的多个项目进展缓慢,甚至有一个已构思5年的小项目仍在进行中。作者认为缓慢推进是可以接受的。最后,感谢读者的支持使其能持续从事这份工作。

28. Logistic Regression for Image Classification Using OpenCV (machinelearningmastery.com)

本文介绍了如何在OpenCV中使用逻辑回归进行图像分类,重点探讨了将二分类算法扩展到多类分类问题的方法。主要内容如下:

逻辑回归算法核心特性

  • 逻辑回归与线性回归相似,但通过sigmoid函数将线性输出映射为[0,1]的概率值,以0.5为阈值进行二分类。
  • 模型通过梯度下降或最大似然估计学习系数和偏置值。

多类分类的扩展方法

  • 标准逻辑回归仅适用于二分类。OpenCV采用“一对一”方法:为每对类别训练一个二分类器,通过投票确定最终类别。
  • 其他方法如“一对多”也可实现多类分类。

图像分类应用实践

  • 使用OpenCV内置的数字数据集(0-9手写数字图像),按80:20划分训练集与测试集。
  • 模型参数设置:采用小批量梯度下降(批量大小400),迭代10次。
  • 使用图像的像素值(20×20像素,共400个特征)作为输入特征,最终获得401个系数(含偏置项)。
  • 在测试集上达到88.8%的准确率。混淆矩阵显示数字5和2最易被误判为8。

完整代码流程

  1. 加载数字图像并划分数据集。
  2. 创建逻辑回归模型并设置训练参数(小批量梯度下降、批量大小、迭代次数)。
  3. 训练模型并验证系数数量。
  4. 在测试集上预测并计算准确率。
  5. 生成混淆矩阵可视化结果。

结论与展望

  • 成功将逻辑回归应用于多类图像分类任务,基于像素特征达到88.8%准确率。
  • 作者提出未来可尝试使用HOG特征进一步提升分类性能。
29. Blockbuster Alzheimer's paper retracted by former Stanford president (stanforddaily.com)

事件概述 前斯坦福大学校长、神经科学家马克·泰西耶-拉维涅(Marc Tessier-Lavigne)及合著者于2023年12月18日撤回其2009年发表在《自然》杂志上的一篇关于阿尔茨海默病的重磅论文。该论文声称发现了阿尔茨海默病的病因,曾被引用超800次,并被视为可能改变疾病理解的突破。撤稿声明承认论文存在多处图像异常和统计错误,但否认数据造假。

论文背景与争议

  • 该论文提出了阿尔茨海默病中两种特定蛋白质结合触发神经元自剪除的理论,并暗示了潜在治疗方向。
  • 论文发表前,基因泰克公司的内部实验已显示其核心发现(蛋白质结合)结果不一致,但未在论文中披露。
  • 论文被基因泰克用于提升公司估值,在罗氏收购基因泰克的谈判中可能发挥作用(最终收购价从每股86.50美元升至95美元)。

撤稿过程与先前调查

  • 早在2012年,基因泰克内部审查即发现该研究难以复现,多位高管建议撤稿,但泰西耶-拉维涅拒绝。
  • 2023年7月,斯坦福大学调查发现泰西耶-拉维涅在多个实验室中未及时纠正已知的研究不端问题,但未认定其本人造假。泰西耶-拉维涅随后辞去校长职务。
  • 2023年秋季,泰西耶-拉维涅另有三篇论文因图像操纵问题被《科学》和《细胞》杂志撤回。

撤稿原因

  • 近期分析发现论文存在四组图像被重复使用以代表不同实验、部分图像数据重复及统计计算错误。
  • 作者承认后续研究表明原文部分核心主张不正确,蛋白质结合理论存在缺陷。

相关方回应

  • 泰西耶-拉维涅坚持认为论文数据未被伪造,最初仅计划修正部分问题,但基于新发现的异常决定完全撤稿。
  • 基因泰克未对撤稿发表进一步评论。
  • 斯坦福大学在寻找新校长时将加强尽职调查。

影响与现状

  • 撤稿凸显了科学论文纠错机制的挑战,尤其涉及高影响力研究和跨机构沟通问题。
  • 该事件引发了对学术诚信、企业科研管理及学术调查透明度的持续讨论。
32. Hungarian Railways' Live Countrywide Map (vonatinfo.mav-start.hu)

匈牙利铁路实时全国地图 (MÁVPlusz)

这是一个名为 MÁVPlusz 的匈牙利交通综合服务平台的网页应用。其核心是提供一个集成的实时全国地图及相关信息服务。

主要功能与覆盖范围:

  • 交通方式: 平台整合了匈牙利境内多种公共交通方式的实时信息,包括火车、长途巴士 (VOLÁN)、本地线路、郊区铁路 (HÉV) 和有轨电车列车 (TramTrain)
  • 服务内容:
    1. 实时地图: 提供全国范围的交通实时动态地图。
    2. 时刻表查询: 包含上述各种交通工具的时刻表。
    3. 路线规划: 提供跨城市及市内(例如布达佩斯)的出行路线规划功能。
  • 覆盖地域: 服务范围涵盖匈牙利全国众多城市与地区,包括首都布达佩斯以及德布勒森、米什科尔茨、塞格德、佩奇等主要城市。

技术实现特点:

  • 网页基于现代前端技术栈构建,采用模块化脚本加载。
  • 包含动态基础路径设置机制,以适应不同的部署环境。
  • 内置了特定的错误监听处理,用于优化用户体验(例如抑制浏览器控制台中特定的无害错误提示)。

该平台旨在为匈牙利居民及游客提供一个统一的入口,以获取全面、实时的公共交通信息和出行规划服务。

33. Half of high school seniors won't apply to colleges costing more than $40k (www.forbes.com)

根据对Niche.com高中生用户的最新调查,89%的高中毕业生表示,大学的标价学费会影响他们是否申请或咨询该校,这一比例较去年的76%显著上升。更引人注目的是,在自称对价格敏感的受访者中,超过半数(53%的所有受访学生)表示,他们完全不会考虑年总费用超过4万美元的学校

这一趋势的背景是美国学生贷款债务高达1.6万亿美元,以及家庭对大学支付能力的信心下降。目前,只有不到四分之一的学生对能负担得起大学教育表示有信心。

私立大学的定价困境: 私立大学的平均学杂费已超过4.15万美元。然而,实际就读的学生很少支付这个“标价”。大学通常通过丰厚的助学金和奖学金提供深度折扣,2022-23学年的平均折扣率使得学生实际支付的费用仅为标价的49%。

信息不对称是关键障碍: 高昂的“标价”会吓退潜在申请者,特别是那些缺乏大学申请指导资源的学生。虽然大学提供“净价格计算器”来估算实际成本,但这个工具通常隐藏在复杂的表格之后,需要输入家庭财务细节,使用不便。顾问和专家指出,解释“净价格”需要时间,而学生往往在看到标价后就已放弃。一些专家建议大学应在营销中更突出地推广净价格计算器。

大学的应对策略——学费重置: 为了吸引因标价而却步的学生,一部分私立大学采取了“学费重置”策略,即大幅公开降低标价学费(同时通常也相应降低财务援助)。例如,弗吉尼亚州的布里奇沃特学院将学费从4万多美元降至1.5万美元。研究显示,对于以区域招生为主的学校,这种策略在五年内通常能带来申请量的增加。

然而,此策略并非万能:

  1. 对于拥有大量全额支付学费学生或品牌认可度极高的学校(如常春藤联盟),降低标价可能严重影响净收入,因此他们不太可能采取此策略。
  2. “声望定价”心理仍然存在。调查中,40%的学生表示大学的品牌或知名度影响其决定,富裕家庭学生对此更为认同。
  3. 许多大学已实行“高标价、高折扣”模式数十年,未来会有多少学校跟进改变这一模式尚不清楚。

核心矛盾: 私立大学面临着如何让潜在学生了解其真实可负担性的挑战。当前的模式导致标价与实际支付价格严重脱节,可能将许多需要财务援助的学生拒之门外。尽管一些学校通过学费重置试图提高透明度,但整个系统的转变仍面临阻力。

34. Orange Site Hit (blog.davep.org)

作者与Hacker News(即文中的“orange site”)保持着一种复杂关系:既不认同其社区文化,又视其为无可替代的优质信息聚合器。基于长期使用和拥有账户的体验,作者使用Textual框架开发了一个名为Orange Site Hit的终端客户端。

核心特点:

  • 只读客户端: 这是明确的设计选择。客户端基于Hacker News的现有API构建,该API不支持登录、投票或发帖等交互功能。
  • 轻量使用: 目标是让用户在终端中快速浏览Hacker News的“热门”、“最佳”和“最新”内容,需要时跳转浏览器查看详情,然后继续其他工作。

主要功能:

  1. 主屏幕索引: 默认显示故事列表,提供“宽松布局”模式以适应不同偏好。
  2. 浏览器跳转: 选中条目按回车键,可在浏览器中打开对应的外部链接或Hacker News页面。
  3. 用户信息查看:u键可查看发帖用户的详细信息。
  4. 评论阅读器:c键可打开一个评论浏览对话框。当前版本为每条评论使用多个小部件来实现导航,作者计划未来使用行级API来提升效率。

当前状态与获取: 该项目处于v0.1.0阶段,功能基础但可用。作者计划未来改进文本清理(如支持标记语言中的链接)并增加搜索功能。该工具可通过pippipx从PyPI安装,源代码托管在GitHub上。

35. 86-DOS Version 0.11 Found (virtuallyfun.com)

文章摘要:86-DOS Version 0.11 Found

本文报道了在archive.org上发现了现存最古老的86-DOS操作系统版本——0.11。此前,已知的最早版本为0.34。此版本由用户提供并上传。

获取与运行方式

  • 磁盘镜像可在archive.org下载。
  • 运行过程较为复杂,需要自行构建开源的open-simh模拟器(作者在Windows Subsystem for Linux环境下编译了altairz80模拟器)。
  • 还需配合来自schorn.ch的BIOS文件86mon.bin(位于86dos.zip压缩包内,其中包含86-DOS 1.0)。
  • 通过编辑模拟器配置文件,指向重命名后的0.11镜像文件即可启动。

磁盘镜像内容

该0.11版本的磁盘内容非常简单,主要包含以下文件:

  • 系统与工具:COMMAND.COMASM.COM(汇编器)、EDLIN.COM(行编辑器)、TRANS.COMSYS.COMHEX2BIN.COMRDCPM.COM
  • 附属程序:CHESS.COM(一个简单的国际象棋游戏)及其文档CHESS.DOC
  • 注意:该镜像中不包含源代码。文章指出,在较晚的0.34版本镜像中可能包含一些源代码。

其他细节

  • 作者演示了运行国际象棋游戏的过程,并简要描述了操作。
  • 本文是一则简短的深夜快讯。
36. Will we be addicted to our phones forever? An optimistic outlook (www.getclearspace.com)

我们会永远沉迷手机吗?一个乐观的展望

距史蒂夫·乔布斯将个人电脑比作“思维的自行车”已过去33年。在此期间,智能手机的出现和社交媒体的广泛采用已将这些自行车变成了失控的火车。美国人每天在智能手机上花费超过四个小时,超过一半的人表示对设备成瘾。2023年5月,美国卫生局局长就社交媒体对青少年心理健康的负面影响发出了警告。

我们大多数人可能不需要这类统计数据来识别这种现象:我们自己的习惯揭示了当今数字健康的严峻状况。人类在参与屏幕活动时,注意力与意图之间存在根本性的失调。

然而,有理由保持乐观。行为失调并非新问题。正如城市学家、哲学家保罗·维利里奥所说:“当我们发明了船,我们也发明了船难。”而我们有一个不公平的优势——问题本身的数字性质。

行为失调的普遍挑战

行为失调——我们的行动背离了自身最佳利益——在各个领域都是一个反复出现的挑战。从加工食品大规模引入引发的肥胖流行,到轻松信贷导致的习惯性过度消费,历史中充满了此类失调的例子。然而,美国香烟消费的趋势为解决社会范围的行为失调问题提供了一个有希望的范例。近几十年来,美国吸烟者比例已从约40%降至约12%。

图表上的下降趋势是由多项协同努力推动的:

  • 公众意识和教育:1964年卫生局长关于吸烟健康风险的报告引发了广泛认知,推动了广泛的公共卫生宣传活动。
  • 政策干预:全面的立法,包括公共场所禁烟和严格的广告限制,显著抑制了吸烟习惯。
  • 文化转变:随着时间的推移,在不断变化的媒体描绘和舆论的推动下,吸烟在社会上的可接受度降低。
  • 技术进步:尼古丁替代疗法和用于戒烟支持的数字工具的引入,在帮助吸烟者克服成瘾方面发挥了关键作用。

这些同样的力量正在数字健康的斗争中发挥作用。增强的意识引发了更多的研究关注,加深了我们对这个问题的集体理解。是时候推出一个平行解决方案了:技术应当像社交媒体平台擅长利用注意力那样,擅长保护我们的注意力。

我们对抗数字成瘾的最大优势

想象一下,如果你能编写代码,当你接近每日卡路里限制时,让一个甜甜圈变得越来越重。这就是我们在设备上可以做到的。完全有可能将负责任的设备使用实践编码到与“成瘾”本身相同的环境中。

我们可以大规模部署环境改变,而对任何想要改变行为的人来说,没有边际成本。这是戒烟或健康食品运动从未有过的不公平优势。

随着下一代数字界面——大型语言模型、虚拟现实和脑机接口——承诺通过减少人类与设备之间的通信延迟,将数字世界带得比以往任何时候都更近,这一点变得更加重要。我们现在访问互联网的冲动是伸手到口袋的距离,未来,它将是一个念头的距离。

随着刺激与反应之间的空间缩小,平台利用人类注意力的机会将继续存在,除非我们增加自己在这些环境中表达和实施注意力偏好的能力。

为了有效地做到这一点,我们专注于四个关键原则:

  1. 用高科技解决高科技问题:必须利用我们这个时代最好的技术作为保护注意力而非利用注意力的力量。
  2. 促进节制而非禁欲:发动一场将技术从我们生活中彻底移除的战争是徒劳且无益的。我们可以开发整合的节制使用方法,保留工具同时消除干扰。
  3. 基于益处的内容消费:“提升技能”是一种根本不同于“末日刷屏”的数字参与实践。我们跟踪这种差异,并让它为持续协议提供信息。
  4. 替代行为(更好的“是”):在你被诱惑去刷屏的那一刻,我们提醒你生活中更重要的事情;比如在山中徒步、深度对话,以及追求你的人生事业。

正如奥地利精神病学家、纳粹大屠杀幸存者维克多·弗兰克尔所说:“在刺激与反应之间,存在一个空间。在那个空间里,蕴藏着我们选择反应的自由和力量。在我们的反应中,蕴藏着我们的成长和幸福。”现在是技术专家帮助人类重新夺回这个空间的时候了。

(本文最初发表于《财富》杂志网站)

38. Forest Elephants and Infrasound (www.elephantlisteningproject.org)

根据所提供的信息,无法生成关于《森林象与次声波》这篇文章的摘要。原因如下:

  • 提供的链接无效:内容显示为“404 Not Found”,表明无法找到所请求的网页。
  • 缺少文章正文:由于页面不存在,文章的实质内容(即森林象如何利用次声波进行远距离交流等相关知识)完全缺失。

因此,无法基于当前信息进行总结。

39. Show HN: A (compact) printable 2024 habit calendar (habitcalendar.co)

这是一个用于打印2024年习惯追踪日历的在线工具,提供多种自定义选项。

主要功能与选项:

  • 样式:可选择“紧凑”样式,此外“可折叠”和“GitHub”样式即将推出。
  • 纸张尺寸:支持 Letter (8.5 x 11 英寸) 和 A4 (210 x 297 毫米) 两种标准纸张。
  • 自定义标题:用户可为日历设定自定义标题。
  • 月份选择:允许用户从一月到十二月中选择需要包含在日历中的月份。
  • 习惯追踪设置:可配置追踪方式,包括按“星期几”或按“每n天”进行记录。

使用建议: 工具提供了打印设置提示:建议在打印时禁用页眉和页脚,将边距设为“无”,并启用“背景图形”选项。

其他信息: 该工具由 @izayats 在乌克兰利沃夫制作,设计灵感来源于“Minimal”和“Neatnik”风格。

40. Molecular jackhammers eradicate cancer cells by vibronic-driven action (www.nature.com)

分子冲击钻通过振动驱动作用根除癌细胞

核心研究

本研究开发了一种新型抗癌策略,利用一种名为“分子冲击钻”的近红外光激活分子机器,通过一种全新的机制——振动驱动作用,直接物理破坏癌细胞,而非依赖传统的光热或光动力疗法。

主要机制

  • 作用方式:以Cy7.5-amine为代表分子,在近红外光(730 nm)激活下,其分子内等离子体共振会产生强烈的机械振动(类似于“冲击钻”作用),直接导致细胞膜穿孔和破坏。
  • 作用优势:该过程不依赖产生热量(光热效应)或产生活性氧(光动力效应),而是通过纯粹的机械力实现癌细胞杀伤。实验通过温度测量和ROS清除剂测试证实了这一点。
  • 关键特性:Cy7.5-amine表现出最强的效果,归因于其长七甲川桥和苯并吲哚结构融合形成的强“分子等离子体”特性,这种结构增强了光驱动的机械振动能量(VDA)。

实验验证

  1. 细胞膜通透性:处理后的癌细胞对DAPI染料的通透性显著增加,表明细胞膜被有效破坏。
  2. 细胞杀伤效果:结晶紫和克隆形成实验证实,处理后的癌细胞几乎被完全根除。
  3. 排除其他机制
    • 温度:测量显示,光照射引起的温升极小(约0.5°C),且细胞杀伤效果在室温和冰浴条件下无显著差异。
    • 活性氧:添加多种ROS清除剂并未减弱癌细胞的杀伤效果,证明该过程与氧化应激无关。
  4. 结构-活性关系:研究对比了不同结构的氰菁染料(如Cy7, Cy5.5, Cy5)。具有更强“分子等离子体”特性的分子(如Cy7.5-amine, Cy7-amine)表现出更强的细胞膜破坏能力,而结构较弱的分子(如Cy5-amine)效果较差。
  5. 体内与模型实验
    • 在黑色素瘤小鼠模型中,该策略成功抑制了肿瘤生长。
    • 在巨型单层囊泡模型中,直接观察到分子冲击钻激活后导致膜穿孔的过程。

结论与意义

该研究证明,基于振动驱动作用的分子机器是一种高效、有前景的抗癌新策略。其核心在于利用光激活的分子内机械振动直接破坏细胞膜结构,为开发新型靶向物理性抗癌疗法提供了新思路。


作者与机构:研究由美国莱斯大学、德克萨斯农工大学和MD安德森癌症中心的团队合作完成。 数据可用性:源数据已上传至Zenodo数据库。 竞争利益:莱斯大学拥有相关知识产权。部分作者与技术潜在被许可方存在关联,但已按照规定进行披露和合规管理。

41. Return to Innocence (deprogrammaticaipsum.com)

文章探讨了复古计算(retrocomputing)在近年来的流行现象及其背后的两个长期趋势。第一个趋势与摩尔定律的失效有关:由于计算性能提升放缓,2014年的电脑与2023年的电脑在性能上差异不大,这使得修复和使用旧硬件成为可持续计算和改善生活标准的有效方式。第二个趋势源于人工智能(如ChatGPT)的兴起,引发了人们对技术“去人性化”的担忧,促使他们转向更简单、可完全理解的旧计算机系统,以此逃离现代技术的复杂性和干扰。

复古计算不仅是一种怀旧活动,也是一种实践技能,涉及修复旧硬件、运行经典软件、使用旧编程语言和模拟器等。它为爱好者提供了一个不受现代网络和AI干扰的空间,重新体验技术乐观主义时期。文章最后以“回归纯真”为主题,指出复古计算是对日益复杂的现代世界的一种逃避,并引用了相关文化类比和具体例子(如乔治·R·R·马丁使用WordStar写作)来说明其多样性和吸引力。

42. The Fresh Start Effect (lars.yencken.org)

文章标题:新鲜开始效应

本文作者曾在斯德哥尔摩的营养追踪应用公司Lifesum工作近五年,每年十二月团队都会忙于更新功能,以应对新年伊始涌入的大量用户。作者反思这是否只是利用人们注定失败的新年决心,但发现背后存在更深层的机制。

面对改变饮食习惯等艰难目标时,人们往往因累积的微小失败而丧失动力。作者认为,比避免失败更重要的是确保目标有意义,并培养从失败中重新振作的能力。研究显示,人们更倾向于在“时间里程碑”(如新年、生日、每周一)开启新目标,这种现象被称为“新鲜开始效应”。

2014年的一项研究证实,在新年等时间点,搜索“饮食”“健身”等关键词和实际健身行为显著增加。作者通过Lifesum的用户数据验证了这一效应:用户在新年、生日和月初开始节食,每周一的使用量也更高,随后逐渐下降。

尽管社会存在对新年决心的质疑,作者持积极态度,认为任何助力人们向好的改变都值得肯定。他强调,在动机高峰期不仅需要努力,还需反思策略并建立可持续的习惯。文章最后推荐了非营利组织Clearer Thinking关于习惯养成的研究,以帮助读者更好地利用“新鲜开始效应”实现目标。

43. Fedora Optimized Binaries for the AMD64 Architecture (fedoraproject.org)

Fedora Optimized Binaries for the AMD64 Architecture 提案摘要

提案状态:此为被拒绝/撤回的变更提案,已被 Changes/Optimized_Binaries_for_the_AMD64_Architecture_v2 取代。本文档为历史记录。

核心目标:为使用支持更高AMD64微架构级别(x86-64-v2、x86-64-v3、x86-64-v4)CPU的系统提供优化的二进制文件(库和可执行文件),以提升性能。

技术方案

  1. 利用现有机制:复用 glibc-hwcaps 动态链接器机制加载优化的共享库(路径如 /usr/lib64/glibc-hwcaps/x86-64-v{2,3,4}/)。
  2. 扩展可执行文件搜索路径:修改 systemd,使其在CPU兼容时,自动将优化的可执行文件目录(路径如 /usr/bin/glibc-hwcaps/x86-64-v{2,3,4}/)添加到内部搜索路径和 $PATH 环境变量中,从而影响整个系统。
  3. 软件包提供优化代码:由各个软件包维护者根据基准测试结果,决定是否提供针对特定微架构级别优化的二进制文件。

性能与适用性

  • 基准测试显示性能提升通常在 -5% 到 10% 之间,对大多数代码无明显差异,但对某些数值或加密代码可能带来高达 120% 的显著提升。
  • 提案指出,ELF的IFUNC机制是更优选择,但本提案旨在为不支持IFUNC的软件包提供通用优化路径。
  • 其他发行版(如RHEL、Ubuntu)已采用更高基线的编译,本提案旨在以更窄的范围为Fedora用户提供类似收益。

实施与责任

  • 提案所有者负责修改 systemd,并为至少一个库和一个可执行文件软件包提供打包变更作为示例。
  • 其他开发者/维护者需自行对软件包进行基准测试,并在有益时提交优化版本的打包变更。
  • 优化变体 可以 作为独立子软件包打包。

用户影响与测试

  • 用户体验:无直接影响。当优化代码可用且硬件兼容时,任务执行可能更快、更节能,过程自动且透明。
  • 测试方法:使用 ld.so --help 检查支持的hwcaps;安装提供优化代码的软件包;重启后检查 $PATH 中是否包含优化目录;运行基准测试验证性能提升。

总结:该提案旨在通过扩展 glibc-hwcapssystemd 搜索路径,为Fedora在兼容的AMD64 CPU上透明地启用针对更高微架构级别优化的二进制文件,以期获得性能收益。其实施依赖于各软件包维护者的参与。

44. Electric school buses more than doubled in USA from March 2022 to June 2023 (cleantechnica.com)

根据世界资源研究所数据,美国运营或已交付的电动校车数量从2022年3月的598辆增长至2023年6月的1285辆,实现翻倍以上增长。同期,已订购或获得资金的电动校车数量增长了近三倍。

截至2023年6月,美国共有49个州作出了电动校车采购承诺(即学区或车队运营商已获得采购资金或与经销商/制造商达成正式购买协议)。文章指出,2023年美国校车总数约为45万辆。

该数据来源于世界资源研究所2023年9月21日发布的报告《美国电动校车采用现状》,并由美国能源部文章转引。

45. Reported UFO-Sightings 1906-2014 (interactive map) (wlouie1.github.io)

Reported UFO-Sightings 1906-2014 交互地图项目

该项目是一个交互式可视化地图,展示了 1906年至2014年 期间报告的UFO(不明飞行物)目击事件数据。用户可以通过该地图探索历史目击记录的空间分布和时间趋势。

  • 核心内容:基于历史数据的UFO目击事件地理分布。
  • 时间跨度:数据覆盖了从1906年到2014年长达一个世纪的记录。
  • 呈现形式:以交互式地图为主要界面,旨在提供直观的探索体验。
  • 数据来源:项目的详细信息与数据源可在其 GitHub 仓库中查阅。

:提供的页面内容主要包含项目标题、GitHub链接引用及加载提示,并未包含具体的地图数据、功能细节或结论性描述。

46. Use any web browser as GUI, with Zig in the back end and HTML5 in the front end (github.com)

WebUI Zig:基于浏览器的轻量级跨平台GUI方案

核心概述

WebUI Zig v2.5.0-beta.4 是一个轻量级、可移植的库,它允许开发者使用任何网页浏览器或WebView作为应用程序的图形用户界面(GUI)。其架构特点为:后端采用 Zig 语言,前端使用 HTML5 等现代网页技术

主要特性

  • 轻量与可移植:库本身体积仅几KB,内存占用小,运行时仅需一个浏览器或WebView。
  • 开发便捷:提供单一头文件;内置快速二进制通信协议。
  • 跨平台与跨浏览器:支持多操作系统和多款主流浏览器。
  • 安全与集成:使用浏览器私有配置文件保障安全;提供跨平台WebView集成支持。

工作原理

WebUI 的工作模式类似于一个WebView控制器,但不将WebView嵌入程序内部。相反,它通过一个微小的库来启动并控制用户设备上已安装的任何支持的网页浏览器作为GUI窗口。这种方式使得最终生成的应用程序体积小、运行速度快且可移植性强,无需捆绑庞大的WebView运行时。

与其他方案的依赖对比

该库的优势在于其极简的运行时依赖:

  • WebUI:只需一个网页浏览器。
  • Tauri/WebView:在不同系统上需WebView2、GTK3/WebKitGTK、Cocoa/WebKit等。
  • Qt:需QtCore、QtGui、QtWidgets等大量库。

安装与使用

版本要求

支持 Zig 0.14.0 / 0.15.1 / 0.16.0 的稳定版本,不推荐使用 nightly 版本。

安装步骤

  1. 添加依赖:在项目的 build.zig.zon 文件中运行命令获取包。
  2. 配置构建:在 build.zig 文件中添加依赖配置并导入模块。
    • 可配置项包括是否启用TLS支持、是否静态链接。
    • 在 Windows 上建议静态链接以避免符号重复问题。
    • 设置 exe.subsystem = .Windows; 可隐藏控制台窗口。

示例

examples 目录下提供了多个示例(如最小示例 run_minimal),可通过 zig build --help 查看并使用相应命令构建运行。

支持的环境

支持的浏览器(跨平台)

Mozilla Firefox、Google Chrome、Microsoft Edge、Chromium、Yandex、Brave、Vivaldi 等在主流操作系统上均已支持。Safari 和 Opera 的支持正在规划中。

支持的WebView

Windows WebView2、Linux GTK WebView、macOS WKWebView 均已支持。

许可

该项目基于 MIT 许可证授权。

47. My Year of 2023: What I did every hour of every day last year (old.reddit.com)

这是一个关于新加坡Reddit社区(/r/singapore)的指南性页面摘要。该页面主要包含社区的基本介绍、行为规则以及面向居民和游客的实用信息资源。

社区定位与宗旨 这是一个由新加坡本地人、外籍人士、游客及所有对该城市国家感兴趣者组成的在线社区。页面首先为Reddit新用户提供了入门指引链接。

社区行为规则 社区制定了详细规则以确保讨论质量,主要条款包括:

  • 必须遵守Reddit基本礼仪。
  • 禁止发布调查、垃圾邮件、种族主义、性别歧视、未标记的成人内容、人身攻击、泄露个人信息、招聘或买卖帖。
  • 提交的文章标题必须完全复制自原文章,不得修改。
  • 不得使用缓存或存档链接。
  • 小问题(如“哪里能买到X”)及与新加坡无关的帖子需发布在每日讨论帖中。
  • 偏离主题或低质量内容(如表情包)可能被管理员移除。
  • 需遵守Reddit关于自我推广的官方政策。
  • 任何筹款活动需事先获得管理员批准。
  • 强调“反对票”不应用于表示不同意见,而应用于处理与讨论无关的内容(如恶意捣乱者)。
  • 招聘信息请移步至专属子版块/r/sgjobs。

实用资源板块 页面提供了丰富的实用链接,主要针对两类人群:

  1. 游客与访客: 提供了“访问新加坡”的专题搜索指引,方便查找旅游相关信息。
  2. 居民与长期居住者: 包含一系列实用资源链接,例如:
    • 搬迁至新加坡的指南。
    • 本地实用的应用和网站。
    • 官方美食讨论帖和新加坡英语(Singlish)指南。
    • 新加坡旅游局官方指南、移民与海关常见问题、外籍人士指南。
    • 社区人口统计调查、传销公司列表(提醒警惕)。
    • 国民服役(NS)入伍指南。

社区维护与互动

  • 问答社区: 指引用户前往/r/AskSingapore子版块提问。
  • 活动组织: 鼓励用户发起线下聚会活动,并需通知管理员。
  • AMA(问我任何事): 要求必须提供验证信息,否则帖子将被移除。

关联社区与过往活动 页面列出了多个相关的子版块,如新加坡国立大学(NUS)、南洋理工大学(NTU)、新加坡理工学院、国民服役及宝可梦GO新加坡社区等。同时,页面也链接了社区自2014年以来举办过的多次线下聚会(如啤酒聚会、猫咪咖啡馆聚会、节日派对等)的图文相册。

48. Show HN: Durdraw – a modern ANSI art editor for modern Unix terminals (github.com)

Durdraw 是一款面向现代 Unix 终端的 ASCII、Unicode 和 ANSI 艺术编辑器。它运行于 UTF-8 终端,灵感源自 TheDraw、Aciddraw 等经典 DOS 编辑软件,但融入了现代化特性。

核心特性

  • 创作与动画:支持基于帧的动画编辑,可控制播放速度、延迟,并能进行帧的插入、删除、移动等操作。
  • 色彩与主题:支持 16 色和 256 色模式,允许自定义界面主题和配色方案。
  • 兼容性与输出:可查看 DOS ANSI 艺术,支持 CP437 与 Unicode 混合转换,并能导出为 HTML 或 mIRC 颜色格式。
  • 交互与工具:支持终端鼠标输入,提供画笔、取色器、字符集选择等工具,并可通过 esc-h 访问帮助。

系统要求与安装

  • 要求:需要 Python 3(推荐 3.10+)和 Linux、macOS 等 Unix-like 系统。
  • 可选依赖:安装 ansilove 可支持导出 PNG/GIF;安装 neofetch 可支持 Durfetch 功能。
  • 安装方法
    1. 通过源代码:克隆仓库后使用 pip 安装。
    2. 通过 pip:直接安装 Git 仓库的特定分支或版本。
    3. 不安装运行:可使用 ./start-durdraw 直接运行。
    4. Docker:也支持通过提供的 Dockerfile 运行。

基本使用

  • 命令行:可使用 durdraw -p filename.dur 播放文件,支持多种参数控制画布尺寸、颜色模式、回放次数等。
  • 交互编辑:使用方向键和鼠标编辑,通过 Esc 键访问快捷菜单,进行颜色选择、字符插入、撤销重做、文件保存等操作。
  • 动画功能:在动画模式下,可逐帧编辑,设置每帧延迟,并通过播放范围控制影响所有帧。

配置与自定义

  • 配置文件:可通过 ~/.durdraw/durdraw.ini 设置颜色模式、鼠标行为、主题等。
  • 主题:提供示例主题文件,支持自定义主题颜色和样式。
  • 字符集:允许在 ~/.durdraw/charsets/ 下创建自定义字符集文件,并在编辑时通过 esc-S 切换。
  • Durfetch:类似 Neofetch 的功能,可将系统信息(如 OS、CPU、内存等)集成到艺术创作中,需依赖 Neofetch。

其他信息

  • FAQ:解答了崩溃处理、与传统 ANSI 动画的区别、跨平台运行(如在 Windows WSL 或 Docker 中)、支持 IBM-PC ANSI 艺术(通过 CP437 编码)等常见问题。
  • 社区与支持:项目在 GitHub 上托管,设有讨论区和 Discord 服务器,接受捐赠和代码贡献。
  • 开发:采用 BSD 3-Clause 许可证,主要开发者为 Sam Foster,并得到了社区成员的贡献。
49. Show HN: I built an app hidden under the MacBook's notch for quick file access (www.finderhub.app)

应用概述
这是一个为Mac设计的应用,隐藏于MacBook的刘海区域(notch)下,旨在提供快速文件访问和桌面组织功能。它通过浮动窗口实现按需使用,帮助用户高效管理文件和文件夹。

核心功能

  • 桌面文件组织:支持创建多个工作区(workspaces),便于分类管理文件和文件夹。
  • 桌面清理:减少桌面杂乱,同时保持文件快速可访问。
  • 截图管理:专门管理截图文件,简化访问流程。
  • 隐藏式浮动窗口:隐藏在刘海下方,通过快捷键或操作随时弹出,从任意工作区访问文件。
  • 类似Finder的交互:文件操作方式与系统Finder相似,支持拖放上传、预览文件(使用空格键)、用其他应用打开文件。
  • 导航与浏览:内置导航栏,方便在不同文件夹间切换;提供全面的文件浏览器功能。
  • 快捷键支持:可通过 ⌘ + option + → 快捷键快速访问应用。

可用性与要求

  • 应用免费下载,适用于macOS 11及以上版本。
  • 提供用户评论功能,并设有授权销售代理。