2024-10-11

26 篇热帖

1. DeskPad – A virtual monitor for screen sharing (github.com)

DeskPad – 用于屏幕共享的虚拟显示器

功能概述 DeskPad 旨在解决在共享整个屏幕时,因演示者显示器尺寸远大于观众而导致的观看困难问题。它通过创建一个虚拟显示器来工作,该显示器的全部内容会实时镜像到其应用程序窗口中。用户可以在该虚拟显示器上创建一个专用的、易于共享的工作空间,从而优化演示体验。

安装方法

  1. 直接下载并运行最新的发布版本二进制文件。
  2. 通过 Homebrew 安装,命令为:brew install --cask deskpad

使用说明

  • 启动与运行:DeskPad 的行为类似于物理显示器。启动应用程序等同于连接一台新显示器,macOS 会自动将窗口恢复到之前的配置。
  • 分辨率调整:可以在系统偏好设置中更改虚拟显示器的分辨率,DeskPad 的应用窗口会随之自动调整。
  • 位置指示:当鼠标光标移动到虚拟显示器上时,DeskPad 的标题栏会高亮显示为蓝色,并将应用程序窗口置于最前,以明确提示用户当前的操作位置。

故障排除 DeskPad 可能需要屏幕录制权限才能正常显示内容。如果遇到问题,请按以下步骤操作:

  1. 打开 系统设置 -> 隐私与安全性 -> 屏幕录制
  2. 在应用列表中找到 DeskPad,并勾选以启用其权限。
  3. 若 DeskPad 已启用但仍不工作,可尝试取消勾选,然后再次勾选以重新启用。
  4. 重启 DeskPad 应用以使更改生效。
2. "Begin disabling installed extensions still using Manifest V2 in Chrome stable" (developer.chrome.com)

Chrome Manifest V2 扩展停用时间线

关键时间节点

2025年7月24日:全面禁用

  • Chrome 138版本已在所有渠道对所有用户禁用 Manifest V2 扩展,用户无法再重新启用
  • Chrome 139版本将移除 ExtensionManifestV2Availability 企业策略。此后,所有升级至 Chrome 139 及更高版本的用户将无法使用 Manifest V2 扩展。
  • 企业用户此前受政策豁免,但自 Chrome 139 起,该豁免将不再适用。

2025年3月31日:默认禁用但可手动重开

  • 所有用户在所有渠道的 Chrome 中,Manifest V2 扩展被默认禁用
  • 用户仍可手动重开其 Manifest V2 扩展。
  • 企业用户通过 ExtensionManifestV2Availability 策略,可豁免浏览器变更直至2025年6月
  • Chrome 138最后一个支持 Manifest V2 扩展的版本(需配合企业策略使用)。

2024年10月9日:稳定版开始禁用

  • Chrome 开始在稳定版渠道逐步禁用已安装的 Manifest V2 扩展。
  • 用户将被引导至 Chrome 网上应用店,系统会推荐 Manifest V3 替代扩展。
  • 禁用后,用户短时间内仍可手动重新启用 Manifest V2 扩展。
  • 企业用户通过 ExtensionManifestV2Availability 策略可豁免变更直至2025年6月

2024年6月3日:停用流程启动

  • 在 Chrome Beta、Dev 和 Canary 渠道,若用户安装了 Manifest V2 扩展,其在访问扩展管理页面时会看到警告横幅,提示相关扩展即将停止支持。
  • 带有“精选”徽章的 Manifest V2 扩展将被移除徽章

2022年:停止接受新扩展

  • 2022年6月:Chrome 网上应用店停止接受可见性设置为“私人” 的新 Manifest V2 扩展。
  • 2022年1月:Chrome 网上应用店停止接受可见性设置为“公开”或“未列出” 的新 Manifest V2 扩展,并移除了将 Manifest V2 扩展从“私人”改为“公开”或“未列出”的功能。

重要说明

  • 以上变更遵循渐进式推送方式逐步覆盖所有用户。
  • 企业用户可通过特定策略获得过渡期豁免,但最终在 Chrome 139 版本后也将完全失去支持。
  • 详细版本发布时间可参考 Chromium 发布计划
3. $2 H100s: How the GPU Rental Bubble Burst (www.latent.space)

$2 H100s: GPU租赁泡沫破裂的总结

市场价格剧烈波动

H100 GPU的租赁价格从2023年初的约4.70美元/小时飙升至8美元/小时以上。然而,到2024年8月,现货价格已暴跌至1-2美元/小时,跌幅超过40%。这使得英伟达此前预测的“4年维持在4美元/小时”的投资模型在不到1.5年内失效。

泡沫破裂的三大驱动因素

  1. 预留计算能力的转售:许多企业在2023年GPU热潮期间签订了长期预付费合同(3-5年)。随着这些企业转向微调而非从头训练模型,其闲置的计算能力通过RunPod、Vast.ai等算力转售平台涌入市场,迫使价格下跌。
  2. 开源模型的兴起与需求结构变化
    • 推理与微调需求增长:Llama 3等强大开源模型(Open Weights)的出现,使得企业更倾向于微调现有模型,而非从头训练。这大幅降低了大规模训练集群的需求。
    • 基础模型创企减少:由于开源模型的“足够好”特性和高昂的训练成本,除非有显著技术差异化,新的基础模型公司已很难获得投资,导致从头训练基础模型的团队全球不足50个,供远大于求。
  3. 大型云厂商自建集群:Meta、X.AI等头部公司正在建设自有的超大规模集群(价值数十亿美元),减少了对公共云GPU租赁市场的依赖,进一步加剧了市场过剩。

投资与经济效益分析

  • 投资回报率临界点:对于新建的H100集群,若租赁价格低于2.85美元/小时,其投资回报率将难以跑赢股票市场;若低于1.65美元/小时,则注定亏损。
  • 市场策略变化:基础设施提供商从早期的高价现货转向锁定长期合同,以保障利润。同时,市场出现分层,配备InfiniBand网络的大型训练集群仍能维持溢价,而适合推理的以太网集群则价格更低。
  • 替代硬件的冲击:英伟达自家的L40S(推理性价比更高)以及AMD MI300X、Intel Gaudi 3等竞品,虽然在大规模多节点训练上未被验证,但完全能够满足当前主流的推理和单节点微调需求,且成本更低。

市场展望与趋势

  • GPU走向商品化:随着供应过剩和替代品出现,H100及同类GPU正快速成为大宗商品,价格持续下行。
  • 催化AI应用层发展:低GPU成本将极大降低运行和微调AI模型的门槛,惠及开发者与爱好者,有望推动AI应用层的创新与商业化,解决当前行业“缺乏付费应用”的可持续性问题。
  • 新硬件投资警示:除非拥有巨大的成本优势(如廉价电力、主权AI需求)或需要超大规模集群,投资购买新的H100硬件很可能是一笔亏本买卖

行业案例:Featherless.AI的应对策略

文章作者所在公司Featherless.AI的运营模式印证了这一趋势。其提供2000+开源模型的即时推理服务(月费起价10美元),但避免投资购买新硬件。相反,它通过优化编排层模型热切换技术,动态利用AWS Spot实例和各类廉价算力提供商,将业务建立在GPU已成为可弹性获取的大宗商品这一认知之上。

4. The Copenhagen Book: general guideline on implementing auth in web applications (thecopenhagenbook.com)

《哥本哈根之书》:Web 应用认证实施通用指南

《哥本哈根之书》 是一本关于在 Web 应用中实施认证(Auth)的通用指南。它是一份免费、开源且由社区维护的资源。书中内容可能有时带有主观色彩或不够全面,但旨在填补当前在线资源领域的空白。

建议将本指南与 OWASP 备忘录系列 配合使用,以获得更全面的安全实践参考。

如有任何建议或疑虑,可通过提交新议题(issue)的方式进行反馈。

创建者: Pilcrow

5. Game Programming in Prolog (thingspool.net)

本文探讨了使用逻辑编程语言Prolog进行游戏编程的可能性与基础方法。作者认为,虽然Prolog通常不适用于处理图形、音频等底层模块,但其声明式和基于关系的特性,非常适合构建游戏的核心玩法机制,能使系统更健壮、模块化且避免状态冲突等边缘情况。

文章将游戏世界构建在两个基本概念上:世界演员。世界是场景,演员是世界中拥有状态和行为的离散实体,游戏玩法即是演员间互动产生的事件链。文中以这两个概念为基础,阐述了如何用Prolog语法定义它们。

1. 标签系统 演员通过标签来定义其类型和特性。标签本质上是一元谓词

  • 直接标签分配:例如 bread(actor1). 声明 actor1 是面包。
  • 通过霍恩子句推导标签:为避免手动为每个演员附加多个标签,可使用规则自动推导。例如 flammable(X) :- bread(X). 表示任何被标记为 bread 的演员都会自动获得 flammable(易燃)和 decomposable(可分解)标签。这相当于在定义“面包”这一数据类型时,指定了它必须实现的接口或组件。
  • 自定义标签:演员也可拥有基于特定情况的自定义标签(如被施法后的 enchanted 面包)。

2. 关系系统 游戏动态源于演员间的互动关系,这由二元谓词来定义。

  • 关系定义:通过霍恩子句定义关系成立的条件。例如 canEat(X, Y) :- human(X), bread(Y). 定义了“X能吃Y,当X是人类且Y是面包”这一关系。
  • 关系推导:关系可以基于标签进行逻辑推导。例如,根据 bread 标签自动推导出的 decomposable 标签,可以进一步定义 canSpoil(X, Y) :- fungus(X), decomposable(Y).,即真菌能破坏任何可分解物。

文章最后指出,以上展示的系统仍是静态的。真正的游戏需要随时间推移而变化和互动,这将在系列文章的后续部分通过构建游戏循环来实现。

总之,本文展示了以声明式的逻辑关系作为游戏系统基本构建块的范式,用 标签(一元关系)描述个体属性,用 关系(二元及以上关系)描述互动规则,并通过Prolog的自动推导能力实现数据驱动的设计。

6. Show HN: HTML for People (htmlforpeople.com)

HTML 不仅适用于科技行业从业者,它属于所有人,就像文档属于所有人一样。HTML 只是文档的一种特殊形式——一种为网络奠定基础的特殊文档。作者 Blake Watson 自 2000 年代初便开始构建网站,他坚信任何想要用 HTML 创建网站的人都应该能够做到。为此,他撰写了一本面向零基础读者的入门书籍,以亲切友好的方式涵盖所有必要的知识,无需任何先前网站制作或编程经验。

8. A Lisp compiler to RISC-V written in Lisp (www.ulisp.com)

这是一个用Lisp编写、以RISC-V为目标架构的实验性编译器项目。它能将uLisp中的函数编译为RISC-V机器码,并在Raspberry Pi Pico 2等RP2350开发板上直接执行。

项目概述

该项目基于早期的ARM版Lisp编译器,灵感来源于Peter Norvig的著作。其核心优势在于,由于Lisp程序本身具有结构一致性,因此编译器无需编写复杂的词法分析器和语法解析器。

主要特性与使用

  • 编译命令:通过 (compile '函数名) 可将一个Lisp函数编译为机器码并替换原函数。
  • 查看生成代码:使用 (comp '表达式) 可查看编译后的汇编指令序列。
  • 支持的语言结构:包括变量与函数定义(defun, setq)、部分列表操作(car, cdr)、基本算术与比较运算、条件语句(if, and, or)等。
  • 尾调用优化:编译器支持尾调用优化,使递归程序能够高效执行,避免栈溢出,效率堪比迭代。

内部工作原理

  • 寄存器使用:编译器采用基于栈的方法来传递和存储中间值,以简化寄存器管理。
    • a0-a3:用于传递主函数的参数。
    • a0:同时存放返回值。
    • a4-a7:在函数内部保存参数副本。
    • a0-a1:用于传递每个运算符的参数。
    • s0-s11:用于局部变量。
  • 编译表达式:编译过程为:1) 编译参数并将结果(除最后一个外)压栈;2) 最后一个参数的结果保留在 a0 中;3) 弹出前一个值到 a1,然后执行运算。
  • 类型处理:由于将 nil 表示为0、t 表示为1,编译器会为每个编译后的表达式关联一个类型(:integer:boolean)以避免歧义。
  • 递归支持:编译器能编译递归函数调用。在调用前,函数参数和局部变量的寄存器副本会被压栈保存,调用后恢复。

性能对比(示例)

编译后的机器码版本相比原生Lisp解释执行,性能有巨大提升:

函数 任务 Lisp版本耗时 编译后耗时 提升倍数
factor 找最小质因数 5.4 秒 19 毫秒 ~284
tak Takeuchi函数 4.1 秒 16 毫秒 ~256
fibonacci 斐波那契数列 50.5 秒 80 毫秒 ~631
ncr 组合数计算 615.5 秒 1.7 秒 ~362
q Hofstadter Q序列 8.6 秒 25 毫秒 ~344

项目资源

  • RISC-V汇编器:运行编译器前需先加载。
  • 编译器源码:提供完整源代码。
  • 硬件平台:支持在Raspberry Pi Pico 2等RP2350开发板上运行。

编译器源码结构

  • 主函数 comp:根据输入表达式的类型(符号、原子、函数调用等)分发到对应的编译函数(如 comp-defun, comp-if, comp-funcall)。
  • 关键工具函数push-regs/pop-regs 用于栈操作,type-code 用于标记类型,gen-label 用于生成分支标签。
  • 函数调用编译comp-funcall 处理内置函数和递归调用,利用了RISC-V特定的比较指令(如 slt)来直接生成布尔结果。
9. Studios: Please Don't Spoil the Movie We Are Seated to See (fxrant.blogspot.com)

文章作者在社交媒体上发布的一条观点引发了广泛讨论,随后他将其整理为一篇博客文章。核心诉求是:电影制片厂和放映方(如Fathom Events)不应在重映经典电影前播放包含剧透内容的预演短片。

作者以亲身经历为例:他带孩子去看1979年《异形》的重映,结果电影正式放映前,播放了一段导演采访短片,直接展示了电影中的关键场景(如异形外观、胸爆镜头等)。这导致孩子不得不捂住眼睛来避免剧透。

作者指出,这种做法会严重损害首次观看这些经典电影观众的观影体验,破坏影片本应带来的悬念和惊喜。他认为,如果目的是吸引新观众走进影院体验经典,那么保护他们未被剧透的权利至关重要。

他进一步列举了类似情况,如《星际迷航2》和《第三类接触》的重映活动前,预演内容同样提前泄露了关键情节。

文章最后提出了一个明确的解决方案:将这些包含幕后花絮或采访的预演短片放在电影放映结束之后播放,而在正片前仅播放预告或简单宣传。作者提醒读者注意即将重映的《第三类接触》可能面临同样问题,并附上了引发此文的原始推文链接。

10. Microsoft Recall is now an explorer.exe dependency (github.com)

摘要:本文档主要展示了GitHub平台提供的核心功能与服务,涵盖AI辅助编码、开发工作流、应用安全及企业解决方案等多个方面。

GitHub提供了一系列开发工具与平台服务,主要包括:

  • AI代码创建:通过GitHub Copilot,利用AI辅助编写更高质量的代码。
  • 开发者工作流
    • GitHub Actions:用于自动化各类工作流。
    • GitHub Codespaces:提供即时开发环境。
    • GitHub Issues:用于规划和跟踪工作。
    • GitHub Code Review:管理代码变更。
  • 应用安全:包括GitHub Advanced Security,用于在构建过程中发现并修复漏洞,保障代码安全与保护秘密。
  • 探索与解决方案:平台内容可按公司规模(企业、中小团队、初创企业、非营利组织)、使用场景(应用现代化、DevSecOps、DevOps、CI/CD)和行业(医疗、金融、制造、政府)进行分类浏览。同时,也支持按主题(AI、软件开发、运维、安全)和类型(客户案例、活动与网络研讨会、电子书与报告)进行探索。
  • 社区与支持:提供文档、客户支持、社区论坛等资源,并设有GitHub Sponsors等社区项目。
  • 企业级服务:提供企业平台、AI驱动的开发者平台,以及GitHub Advanced Security、Copilot for Business、Premium Support等可选附加服务和定价信息。
11. Curly-Cue: Geometric Methods for Highly Coiled Hair (www.cs.yale.edu)

Curly-Cue:高度卷曲头发的几何生成方法

本文提出了一套几何方法,专门用于生成高度卷曲头发的特征形状。当头发被高频螺旋而非低频曲线良好近似时,新的视觉特征变得显著。为此,作者针对三种特定现象开发了相应算法。

  1. 相位锁定:提出一种基于傅里叶的方法,模拟不同螺旋在头皮附近合并成单一卷曲的过程。
  2. 周期跳跃:提供一种建模方法,描述个别螺旋偏离已合并卷曲的情况。
  3. 螺旋反转:开发一种非线性优化方法,直接生成“螺旋反转”(亦称“螺旋反常”)的形状,此前这种形状只能通过直接物理模拟来产生。

通过联合应用这三种方法,作者展示了能够实现细节丰富、高度卷曲头发的逼真描绘。

论文成果附有完整视频演示、多种发型样式(中等长度、短发、长发)的转盘展示、纹理区域效果以及周期跳跃过程的视频片段。

12. Understanding the Limitations of Mathematical Reasoning in LLMs (arxiv.org)

文章总结:理解LLMs在数学推理中的局限性

研究背景:近年来,大型语言模型(LLMs)的进步引发了人们对其形式推理能力(尤其是数学方面)的兴趣。GSM8K基准测试被广泛用于评估模型在小学水平数学问题上的推理能力。尽管LLMs在GSM8K上的性能近年显著提升,但其数学推理能力是否真正提高尚不明确,这引发了对报告指标可靠性的质疑。

研究目的:为应对上述关切,本研究对多个最先进的开源和闭源模型进行了大规模研究。为克服现有评估的局限,研究者引入了GSM-Symbolic——一个改进的基准测试,它基于符号模板生成多样化的问题。该基准能实现更可控的评估,为衡量LLMs的推理能力提供了关键见解和更可靠的指标。

主要发现

  1. 性能不稳定性:LLMs在回答同一问题的不同实例时表现出明显的方差。
  2. 数值敏感性:在GSM-Symbolic基准中,仅改变问题中的数值,所有模型的性能都会下降。
  3. 推理脆弱性:模型的数学推理具有脆弱性,其性能随着问题中子句数量的增加而显著下降。
  4. 逻辑推理缺失假说:研究者推测,这种性能下降是因为当前LLMs无法进行真正的逻辑推理,而是复制其训练数据中的推理步骤。实验表明,即使添加一个与问题看似相关、但对得出最终答案所需的推理链没有贡献的单个子句,也会导致所有最先进模型的性能大幅下降(最高达65%)。

结论:本研究对LLMs在数学推理方面的能力和局限性提供了更细致的理解。结果表明,LLMs的数学表现可能并非源于深层的逻辑理解,而更可能是模式匹配和训练数据复制的产物,其推理能力在面对问题微小变化或复杂性增加时表现出显著的脆弱性。

13. Initial CUDA Performance Lessons (probablydance.com)

CUDA性能优化初步经验总结

核心概念

CUDA本质上是C++的扩展,但直接沿用C++编程习惯会导致性能不佳。以下是从实践中学到的关键性能优化经验。

内存合并访问

在C++中,线程通常连续处理内存块;但在CUDA中,应让相邻线程访问相邻内存地址(线程0访问0-15字节,线程1访问16-31字节等),称为“内存合并”。这种模式可显著提升带宽利用率,例如在点积运算中实现3倍速度提升

专用硬件主导性能

现代PC(如Ryzen 9950X + RTX 4090)的理论性能约95 TFLOPS,但绝大部分来自专用硬件

  • 张量核心:用于BF16矩阵乘法,性能远超传统CUDA核心。
  • 光追硬件:进一步扩展GPU能力。
  • 以H100为例,若不使用张量核心,GPU利用率可能低于10%,因此深度学习算法倾向于优先采用矩阵乘法优化。

三类内存层级

CUDA内存分为三类,访问速度递增:

  1. 普通内存:延迟较高。
  2. 共享内存:速度快,支持线程间通信或快速数据加载。
  3. 寄存器:最快,可通过#pragma unroll提示编译器将数据保持在寄存器中。一个线程块共享65536个寄存器,可通过调整线程数优化分配。

Warp内高效数据同步

同一Warp(32线程)天然同步,可通过__shfl_xor_sync指令实现无锁并行归约(如求和仅需5步),比CPU同步开销低得多。跨线程块需使用共享内存和同步屏障。

并行优先原则

CUDA编程应首先追求最大化并行度:

  • 优先为每个数据操作启动独立线程,即使存在数据重载。
  • 将算法分解为可大规模并行和受限并行的部分,分别启动为不同内核,以充分利用GPU并行能力。
  • 使用Nsight等工具分析并行度不足问题。

总结

CUDA编程的核心在于生成并协调海量并行任务,而非单纯优化单线程性能。关键技巧包括内存合并、利用专用硬件、优化内存层级、高效同步及设计并行算法。正确实施后可实现极高的吞吐量。

14. Extracting financial disclosure and police reports with OpenAI Structured Output (gist.github.com)

文章介绍了OpenAI的结构化输出功能,并通过两个实例演示了其应用。该功能允许用户通过定义数据模式(如使用Python的pydantic库)来指定提取数据的字段,并保证API输出的JSON格式严格遵循该模式。

核心功能与演示:

  1. 功能概述:用户向GPT-4o-mini模型提供文档(如PDF截图)的URL,并定义所需的数据结构模型。模型会根据字段名称或描述推断文档内容与数据模型的关系,并输出结构化的JSON数据。
  2. 财务披露报告提取
    • 数据源:国会财务披露报告的PDF页面截图。
    • 方法:使用pydantic定义Asset(资产)和DisclosureReport(披露报告)模型,指定了资产名称、所有者、价值范围、收入类型等字段。
    • 结果:提取结果准确,能够正确处理表格数据以及“位置”和“描述”等自由文本字段。即使不提供详细的字段描述,模型也能进行基本推理(如理解复选框字段)。
    • 额外测试:当不使用预定义模型,仅要求输出JSON对象时,模型也能提取数据,但会以文本形式输出(例如“$5,000,001 - $25,000,000”),且包含更多无关信息。对扫描版老旧报告进行测试时,需将页面旋转至正确方向。
  3. 警方日志提取
    • 数据源:斯坦福大学日报的警方日志(自由叙述文本)。
    • 方法:定义了更复杂的模型,包括Person(人员)和Incident(事件),尝试提取日期、时间、地点、事件类别、受害者/嫌疑人信息等。
    • 结果:模型能够从非结构化的文本中识别并分离出独立事件,结果数量与原文一致。但在细节上存在挑战:
      • 优势:能自主推断出叙述中未明确分隔的独立事件。
      • 不足:在识别人员性别、准确归类犯罪类型(如将“斗殴”归为“其他”而非“暴力”)、处理复杂叙述(如区分报案人和受害者)等方面出现错误。作者认为这主要源于指令简洁和源数据本身的质量问题。

结论与潜力

  • 该功能使用简便,通过简单的指令和数据模型定义即可实现初步的结构化数据提取。
  • 在财务报告等结构化程度较高的文档上表现优异,即使未进行精细的数据预处理也能获得较好结果。
  • 对于警方日志等非结构化文本,其表现受数据模式定义质量和源数据复杂性的限制。
  • 作者认为,OpenAI的API有望成为处理大规模公共文档数据收集项目的经济高效工具,特别适用于结构相对清晰的文档类型。
15. WordPress Alternatives (darn.es)

WordPress 替代方案摘要

由于 WordPress 近期引发广泛关注,本文旨在介绍一系列替代性内容管理系统(CMS)。文章的选择标准是能够下载并直接部署在服务器上即可运行的网站,因此排除了 API 和基于 Git 的 CMS。

主要推荐的 CMS 平台

  1. Ghost:一个优秀的开源博客与通讯平台,内置美观的现代化发布功能、邮件通讯及付费订阅。作者推荐使用 Magic Pages 进行托管,因其价格合理(4美元/月起)、稳定性好且提供个性化支持,这避免了使用 Ghost 官方托管服务(Ghost Pro)可能存在的问题。

  2. Kirby:一个基于文件的 CMS,适用于开发者、设计师和创作者。作者通过本地体验觉得它流畅,并且基于文件的特性避免了复杂的数据库操作。

  3. Indiekit:一个有趣的选项,同样是基于文件的,但需要数据库来管理现有内容。

  4. Craft CMS:一个功能灵活、用户友好的 CMS,适用于创建定制的数字体验。它提供免费的个人版,但需要投入时间设计内容架构。

  5. ClassicPress:一个社区主导的开源 CMS,是 WordPress 4.9 的分支。它默认保留了 WordPress 经典编辑器,适合怀念旧版体验的用户,但仍使用官方的 WordPress 插件 API。

  6. Statamic:一个基于 Laravel 构建的强大、可扩展的 CMS,采用文件优先的设计。它也提供免费的独立计划。作者因创始人政治立场问题而未尝试。

  7. Wagtail:一个开源的基于 Django(Python)的 CMS,常被认为是最接近 WordPress 的替代品。作者回忆其安装过程相当顺畅。

  8. Textpattern:一个免费、开源的 PHP CMS,提供基于浏览器的界面,支持超过50种语言。其界面非常实用,专注于基本的文字输入和发布选项。

其他提及的项目

  • PerchBuckets:曾被考虑列入,但社区活跃度低,Perch 网站甚至出现 SSL 证书问题,不建议依赖。
  • Anchor CMS:一个曾经流行的简单 PHP CMS,拥有主题和自定义类型等特性。但其创建者已于2020年去世,核心团队无法继续维护,项目已停止发展。作者对此表示怀念。

文章作者表示将尽力保持列表更新,并希望对寻求 WordPress 替代方案的用户有所帮助。

16. Nobel Peace Prize for 2024 awarded to Nihon Hidankyo (www.nobelprize.org)

2024年诺贝尔和平奖授予日本原子弹氢弹被害者团体协议会

挪威诺贝尔委员会决定将2024年诺贝尔和平奖授予日本组织“日本原子弹氢弹被害者团体协议会”(Nihon Hidankyo,简称“被团协”)。该组织是由来自广岛和长崎的原子弹幸存者(亦称“被爆者”)组成的草根运动,因其为实现无核武器世界所做的努力,以及通过亲身证言表明核武器绝不能再次使用,而获此殊荣。

获奖原因与核心贡献

  • 推动建立“核禁忌”:1945年8月原子弹袭击后,全球涌现出致力于提高对核武器灾难性人道后果认识的运动。在此过程中,一个强大的国际规范——“核禁忌”逐渐形成,使使用核武器在道德上被污名化为不可接受的行为。
  • 独一无二的证言:被爆者的证言在这一大背景下具有独特价值。他们通过分享个人经历、基于自身经验开展教育活动,以及发出防止核武器扩散和使用的紧急警告,帮助在全球范围内引发并巩固了反对核武器的广泛共识。
  • 持续的努力:被团协提供了数千份证词,发布决议和公开呼吁,并每年派遣代表团前往联合国及各种和平会议,提醒世界核裁军的紧迫性。

当前面临的挑战与警示

委员会指出一个令人鼓舞的事实:近80年来,没有在战争中使用过核武器。被团协等被爆者的非凡努力对“核禁忌”的建立起到了巨大作用。然而,委员会同时警告,今天,这一反对使用核武器的禁忌正面临压力:

  • 核武器国家正在对其核武库进行现代化和升级。
  • 新的国家似乎正准备获取核武器。
  • 在正在进行的冲突中,出现了使用核武器的威胁。

委员会强调,在人类历史的这一刻,有必要提醒世界核武器是世界所见过的最具破坏性的武器。明年将是两颗美国原子弹造成广岛和长崎估计12万居民死亡80周年。随后数月数年,又有同等数量的人因烧伤和辐射伤害而死亡。如今的核武器破坏力远甚以往,能杀死数百万人并造成灾难性气候影响,核战争可能摧毁我们的文明。

历史背景与组织发展

1956年,日本地方被爆者团体与太平洋核武器试验受害者共同成立了“日本原子弹氢弹被害者团体协议会”(日文简称“被团协”)。该组织后来成为日本最大、最具影响力的被爆者组织。

阿尔弗雷德·诺贝尔的愿景与奖项意义

委员会认为,阿尔弗雷德·诺贝尔愿景的核心是相信坚定的个人能够带来改变。授予被团协今年的和平奖,旨在表彰所有尽管承受身体痛苦和痛苦回忆,仍选择用宝贵的代价经验来培养和平希望与参与的幸存者们。

虽然被爆者作为历史见证人终将逝去,但通过强大的纪念文化和持续的承诺,日本的新一代正传承着见证人的经验和信息,激励并教育世界各地的人们,从而帮助维持“核禁忌”——这是人类和平未来的先决条件。

该奖项的决定牢牢扎根于阿尔弗雷德·诺贝尔的遗嘱,加入了委员会此前授予核裁军与军备控制倡导者的杰出和平奖名单,旨在履行诺贝尔认可“为人类带来最大利益”的努力的意愿。

17. Google Play killed my game and won't tell me why (antiidlereborn.com)

文章内容未直接解释游戏被谷歌Play下架的具体原因,主要为开发者Tukkun关于《Anti-Idle: Reborn》游戏开发进展的更新公告。

  • 开发进度与状态:游戏目前仍在进行封闭测试,但正式发布日期因学习移动开发和解决各类技术问题而比预期延迟。开发团队正在持续添加新测试员。
  • 核心设计哲学:《Anti-Idle: Reborn》并非原版游戏的直接移植,而是一款旨在保留原版体验、同时革新机制以适配现代手机玩家的“重制版”。开发重点包括:
    • 界面重构:针对手机屏幕采用竖屏布局,将游戏主内容置于中央,并大幅简化了UI(如将进度条改为小横条并移除了闲置模式开关)。
    • 功能筛选与现代化:基于玩家调查,决定初期重点重现“房屋”、“花园”(简化为最多5棵树)和“战斗竞技场”(内容将更线性但持续更新)等核心功能。其他经典功能(如TukkunFCG)因过于复杂暂未计划移植。
    • 系统统一:所有游戏功能共享同一个角色、装备和物品栏,不同玩法(如花园种植物与战斗材料)可相互交易,旨在打造一个连贯的整体体验。
  • 新内容与未来规划
    • 正在开发一个名为“神性”的新系统,用于替代原版的特性商店和升级特权系统。
    • 未来计划添加更多小游戏,如街机、市场系统以及钓鱼等。
    • 怪物设计将更注重动画质量和代表性,数量可能少于原版,并会区分“类型”以便未来(如宠物系统)利用。
  • 其他要点:开发者承认原版游戏界面过于杂乱,并表示不担心创意被快速抄袭。
19. Show HN: NotesHub: cross-platform, Markdown-based note-taking app (about.noteshub.app)

NotesHub:跨平台、基于Markdown的笔记应用

NotesHub是一款跨平台、基于Markdown的笔记应用,提供灵活的存储和组织功能,适合各类笔记管理需求。

核心特点与功能:

  • 跨平台支持:笔记可存储在GitHub仓库(便于分享和安全)或iCloud Drive,适合为网站或博客提供内容。
  • 层次文件夹结构:通过屏幕顶部的椭圆形图标直观导航,快速设置和组织文件夹,操作简便。
  • 多样化存储:支持存储文本、图像、照片、联系信息(如名称、地址、电话)、地理位置、日期时间等。
  • 知识管理:可建立Zettelkasten(卡片盒式笔记)层次数据库,适用于商业记录、研究、学习或个人参考。
  • Markdown编辑器:功能齐全,内置教程支持,兼容表格、代码块、HTML标签和脚注。
  • 看板板功能:独特亮点,可用于创建模板(如小说情节的“Save the Cat”方法),通过垂直列组织事件、描述或对话,便于创意管理。
  • 性价比高:采用一次性购买模式,应用潜力大。
20. TypedDicts are better than you think (blog.changs.co.uk)

TypedDict 的优势与应用场景

基本介绍

  • TypedDict 在 PEP-589 中引入,Python 3.8 版本,用于为字典创建类型注解。
  • 示例:定义 Movie(TypedDict) 类,键 titlestr 类型;使用时如 movie: Movie = {"title": "Avatar"}
  • 初始印象:作者倾向于使用 dataclasspydantic 表示记录类型数据,但字典的注解 dict[KT, VT] 通常足够用于集合。

非总和性(Non-totality)的优势

  • 问题场景:实现 HTTP 补丁端点时,dataclass 表示补丁数据存在歧义。例如,PatchUser 类中 subscription: str | None = NoneNone 含义不明确(是不改变还是移除订阅)。
  • 解决方案:使用 TypedDict 并设置 total=False,允许字段缺失。例如:
    class PatchUser(TypedDict, total=False):
        name: str | None
        subscription: str | None = None
    
  • 优势:字典自然不要求所有字段存在,适合表示 PATCH 操作;PEP-655 进一步支持标记字段为 RequiredNotRequired
  • 集成:FastAPI 通过 Pydantic 支持 TypedDict。

使用 TypedDict 作为 **kwargs

  • PEP-692 允许使用 TypedDict 类型化可变关键字参数。
  • 示例:定义 Options(TypedDict) 包含 option1: intoption2: str,然后函数签名为 def my_function(**options: Unpack[Options]) -> None: ...
  • 优势:当多个函数共享相同参数集时,TypedDict 减少重复;非总和性允许参数可选,例如自定义 pytest.fixture 时使用 FixtureOptions(TypedDict, total=False) 避免传递默认值。

替代方案:哨兵值(Sentinels)

  • 使用哨兵值如 UNSPECIFIED 可实现类似行为,但类型注解可能复杂(例如设为 Any 类型),且需手动处理检查。
  • TypedDict 提供更清晰的类型安全和结构。

依赖注入应用

  • 场景:多个资源类(如 UserClientProjectClient)共享依赖。
  • 方法:定义 Dependencies(TypedDict) 包含所有依赖项(如 db: Engineuser_service: APIClient 等)。
  • 实现:修改资源类以接受 **kwargs(例如 def __init__(self, ..., **_) -> None: ...),然后通过 inject(deps: Dependencies) 注入依赖。
  • 优势:类型检查器可验证注入是否正确(例如检查 UserClient(**deps) 调用),提供静态类型支持,优于许多依赖注入框架。

未来特性

  • PEP-728:允许定义额外项的类型,并支持 TypedDict 关闭(禁止额外项),用于更精确的记录类型。
  • PEP-705:允许指定只读项,防止意外修改,增强类型兼容性。
  • 建议:鼓励阅读 PEP 并实验新特性以发掘更多用例。

总结

TypedDict 在类型注解、非总和性、**kwargs 支持和依赖注入等方面提供灵活性,优于传统方法,适用于多种场景,如 API 端点、函数参数和依赖管理。未来 PEP 进一步扩展其功能。

22. Show HN: I made an Ollama summarizer for Firefox (addons.mozilla.org)

概述

这是一个名为 SpaceLLama 的 Firefox 浏览器扩展,其主要功能是利用本地或远程的 Ollama 端点,为访问的网页生成有意义的摘要,并在一个方便的侧边栏中显示。

核心功能

  • 网页总结:利用 Ollama 大语言模型对网页内容进行总结。
  • 灵活端点:支持使用本地运行的或远程的 Ollama 端点。
  • 侧边栏展示:生成的摘要会在浏览器侧边栏中显示,便于阅读。

技术规格与元数据

  • 开发者:thecookingsenpai
  • 版本:2.0
  • 大小:104.1 KB
  • 最后更新:10个月前(2025年8月4日)
  • 许可证:WTFPL
  • 用户数:43
  • 评分:5星(1条评价)

所需权限

  • 访问浏览器标签页。
  • 访问所有网站上的数据(用于读取网页内容以进行总结)。

分类与标签

  • 相关分类:源订阅、新闻与博客;标签页。
  • 标签:聊天、隐私、搜索、用户脚本。

其他信息

  • 支持渠道:包含主页、支持网站和支持邮箱链接。
  • 版本历史:可查看所有版本记录。
23. Show HN: Dead man's switch without reliance on your infra (github.com)

Deadcheck 是一个不依赖于自身基础设施的、可配置的“死亡开关”

其核心工作原理是:用户需定期向 Deadcheck 发送“签到”信号以确认正常运行。若未在规定时间内签到,Deadcheck 将通过外部服务触发预设的警报或操作(如发送通知或执行任务),从而确保在用户无法亲自操作时采取必要措施。

核心机制与特性

  1. 基础设施解耦:这是设计的核心。即使托管 Deadcheck 的服务器宕机,其检查机制仍能通过配置的第三方服务(如 HealthChecks.io、PagerDuty)成功触发警报和行动。
  2. 可配置的检查间隔:支持灵活设置签到周期,从小时级到月级均可。
  3. 提供商无关:设计可集成多种外部系统,提供广泛的自定义空间。

配置与使用

  • 配置:通过 YAML 文件定义检查任务。每个任务可独立设置调度规则(如间隔、特定时间、工作日等)和警报覆盖。
  • 使用:通过向 PUT /v1/checks/{id}/check-in 端点发送 HTTP 请求(POST 或 PUT)来完成签到。
  • 集成:明确支持并集成了以下服务:
    • HealthChecks.io:轻量级服务器监控。
    • PagerDuty:用于事件管理,成功签到会延后通知。
    • Slack:用于在签到失败时发送定时通知。

其他信息

  • 支持平台:64 位 Linux(如 Ubuntu、Debian)、macOS 和 Windows。
  • 许可证:Apache License 2.0。
24. All asteroids in Solar System, visualized (github.com)

文章总结:太阳系小行星可视化应用

这是一个演示项目,旨在利用NASA的小行星中心(MPC)数据库,通过可视化方式展示太阳系内小行星的轨道。

主要功能与状态

  • 核心功能:提供小行星轨道的基本2D渲染,并能解析MPC数据文件。
  • 项目成熟度:当前处于初级阶段(作者描述为“在我的MacBook上能运行”),可能存在错误。建议用户在GitHub上报告问题或自行fork修改。
  • 未来计划
    • 添加星历表数据,以根据当前时间显示小行星在轨道上的实际位置。
    • 增加使用WebGL技术的3D视图。

运行与部署 项目支持两种运行方式:

  1. 本地运行

    • 安装依赖:pip install -r requirements.txt
    • 运行数据库迁移:python manage.py migrate
    • 填充本地数据库:python manage.py process_mpc_file
    • 启动本地服务器:python manage.py runserver 0.0.0.0:8000
  2. Docker运行

    • 启动服务:docker compose up -d
    • 填充数据库(耗时可能较长):docker compose exec app make setup
    • 通过浏览器访问 localhost:8000
    • 注意:若修改了 requirements.txt 中的依赖,需使用 docker compose up --build -d 重建镜像。

社区互动 项目作者邀请用户加入Discord社区(链接:https://discord.gg/4WNY6yVVk6)以获取更多太空相关内容。

26. The FBI created a coin to investigate crypto pump-and-dump schemes (www.theverge.com)

美国联邦调查局(FBI)创建了一种名为“NexFundAI”的以太坊代币,作为调查加密货币市场价格操纵行动的一部分。此次调查由“合作证人”协助进行。

基于调查结果,美国证券交易委员会(SEC)指控了三家“做市商”及九名个人涉嫌参与操纵特定加密资产价格的计划。美国司法部则指控了18名个人及实体在加密货币市场进行“广泛的欺诈和操纵”。被告被指控对其代币作出虚假陈述,并执行所谓的“洗售交易”以制造市场交易活跃的假象。涉事的三家做市商——ZMQuant、CLS Global和MyTrade——被指控为FBI创建的代币NexFundAI进行洗售交易或共谋洗售交易。

FBI波士顿分局的特工乔迪·科恩表示,此案揭露了传统金融犯罪的新变种。调查已导致四家加密货币公司以及四家加密货币“做市商”及其员工面临指控,他们被指领导了一个复杂的交易计划,涉嫌从诚实投资者处骗取数百万美元。

此外,FBI波士顿分局的特工称,调查结果已导致四家加密货币公司高管及四家加密货币“做市商”及其雇员被指控,他们涉嫌主导了一项复杂的交易计划,据称从诚实投资者处骗取了数百万美元。MyTrade MM的做市商刘周(Liu Zhou)曾向NexFundAI的推广者声称,MyTrade MM比竞争对手更优秀,因为他们“控制拉升和抛售”,便于“进行内幕交易”。

FBI发言人表示,该代币的交易活动有限。美国马萨诸塞州联邦代理检察官约书亚·利维在新闻发布会上称,该代币的交易已被禁用。据报道,美国司法部已从“欺诈所得”中扣押了2500万美元,这些资金将返还给投资者。