2024-02-26

34 篇热帖

2. Apache Superset (superset.apache.org)

Apache Superset
Apache Superset™ 是一个开源的现代数据探索与可视化平台,适用于数据分析师、管理员和开发者等不同角色。平台提供了分门别类的文档支持:

  • 用户指南:面向分析师和业务用户,指导如何探索数据、构建图表、创建仪表盘及连接数据库。
  • 管理员指南:涵盖安装、配置、安全设置和数据库驱动,适用于部署和运维团队。
  • 开发者指南:包括REST API、扩展开发及贡献流程,供开发者和贡献者参考。
  • 社区资源:通过Slack、GitHub、邮件列表和活动等方式加入社区。

平台概述
Superset 以其高效、轻量和直观的特点著称,支持从基础折线图到复杂地理空间图表的多样化数据可视化。其主要优势包括:

  • 易用性强:提供无代码可视化构建器和先进的SQL IDE,降低数据探索门槛。
  • 广泛数据库兼容:可连接任何基于SQL的数据库,包括云原生数据库和PB级数据引擎。
  • 现代架构:轻量且高可扩展,可直接利用现有数据基础设施,无需额外数据加载层。
  • 丰富的可视化与仪表盘:预装40余种可视化类型,支持插件扩展自定义图表。
  • 自助式分析功能:包含仪表盘、图表构建器、SQL Lab和数据集管理,帮助用户通过交互式仪表盘探索数据并获取洞察。

核心特性

  • 40+ 预置可视化类型
  • 支持拖拽操作与SQL查询
  • 数据缓存加速图表和仪表盘加载
  • Jinja模板与仪表盘过滤器增强交互性
  • CSS模板支持品牌视觉定制
  • 语义层支持SQL数据转换
  • 交叉过滤、钻取详情与钻取功能深化分析
  • 虚拟数据集用于临时数据探索
  • 通过功能标志启用新特性

Superset 已被众多团队信赖,广泛应用于数据探索与可视化场景。

3. Microsoft strikes deal with Mistral in push beyond OpenAI (www.ft.com)

本文是《金融时报》的一篇付费墙文章,标题暗示了“微软与Mistral达成协议以超越OpenAI”的内容,但实际提供的文本全部是该媒体的订阅服务广告和推广信息。

文中并未包含任何关于微软、Mistral或OpenAI的具体新闻报道、分析或事实细节。主要内容由以下部分构成:

  • 一个鼓励读者订阅以解锁完整文章的提示。
  • 多种订阅套餐的介绍,包括“标准数字版”、“高级数字版”以及包含周末印刷版的套餐,各套餐列明了月费、优惠(如按年付费可节省20%)和访问权限。
  • 对《金融时报》品牌价值的简要宣传,例如提及为何有超过百万读者付费阅读。

总结来说,所提供的文本实质是一篇隐藏在新闻标题下的订阅服务推广页面,不具备可总结的新闻内容本身。

4. Show HN: AboutIdeasNow – search /about, /ideas, /now pages of 7k+ personal sites (aboutideasnow.com)

本文介绍了AboutIdeasNow项目,这是一个用于搜索超过7000个个人网站中特定页面的工具。这些页面包括 /about(关于)、/ideas(想法)和 /now(当前状态)页面。

项目作者背景: 作者是一位活跃的创业者和开发者,其经历包括:

  • 创业项目:曾联合创立并担任多个公司的关键职位,如开源Firebase替代品Supabase(联合创始人兼CEO)、办公室管理平台Nimbus For Work(联合创始人兼CTO)、东南亚大型服务平台ServisHero(联合创始人兼CTO)。
  • 个人项目:开发了Mental Models(展示查理·芒格所推崇的心智模型)、Current Events(将维基百科每日事件通过邮件发送)和postgres.email(提供更易读的PostgreSQL邮件列表界面)。
  • 投资方向:主要投资于开源软件和开发工具,列举了数十个相关项目,例如Appflowy、Cal.com、Doppler、e2b等。

项目更新与订阅

  • 内容更新日期为2025年7月19日。
  • 提供了多种关注更新的方式:Newsletter 订阅链接和 RSS feeds(推荐通过订阅GitHub仓库的提交记录来获取更新)。

该项目旨在成为探索个人网站上 /about/ideas/now 页面的集中搜索工具,方便用户发现和阅读众多独立站点的自我介绍、想法分享及当前动态。

5. Pains of building your own billing system (arnon.dk)

构建自建计费系统的痛点

计费和营收系统是实现业务商业化的必要组成部分。它们复杂且影响广泛,涉及财务、产品、法务、合规、销售等多个部门,如同“八爪鱼”一般。一旦出现问题,很容易迅速波及全局。

构建计费系统主要有三种模式:

  • 完全自建:控制力强,完全可定制,但构建和维护成本高,易陷入复杂性。
  • 混合模式:结合自建业务逻辑与第三方服务(如支付、税务),平衡控制与外包。
  • 第三方整体方案:便捷省心,但成本可能高昂且控制力较弱。

许多公司初期倾向于自建,误将其视为单纯的工程问题,但实际上这是一个极其复杂、交织的业务挑战。

作者总结的14个主要痛点(按复杂程度排序)

  1. 幂等性:需确保计费和支付请求的唯一性,避免重复收费,在系统扩展时尤其关键。
  2. 日期处理:计费周期定义(如按30天或按月)涉及闰日、时区等复杂问题。
  3. 按比例计算与余数处理:升级、降级、退款、信用额度等场景的计算逻辑复杂。
  4. 用量计量:计算方式多样且可能随客户类型频繁变更。
  5. 发票格式:跨区域运营时需适应不同市场的税务(如增值税、商品及服务税)和发票模板。
  6. 复杂的客户层级:B2B客户可能有子公司、合作伙伴,需将用量汇总至付费实体,并可能因地域差异需分拆账单。
  7. 收款与流失预防:涉及重试策略、拒付处理(如终止、暂停、退款)等决策。
  8. 暂停/恢复订阅:需定义暂停期间客户的访问权限。
  9. 信用额度/退款:处理部分错误、商店信用额度及有效期等。
  10. 税务处理:全球不同地区的税率频繁变化,合规要求高。
  11. 定制协议:涉及销售合同时,易出现无法通过标准配置满足的特殊情况。
  12. 人为错误:客户和企业自身的人为配置错误导致需频繁进行人工更正、重开发票等耗时操作。
  13. 选择性定价变更:定价变更可能仅影响新客户,需维护多个定价版本以遵守现有协议。
  14. 收入确认与应计收入:遵循如IFRS-15等复杂的会计准则,极具挑战性。

为何这些痛点难以应对?

  • 变化频率与规模影响各异:有些问题(如幂等性)解决后较稳定;有些(如税务规则)则频繁变化;人为错误和客户层级问题随业务规模增长而加剧。
  • 根本原因:计费初期看似是工程问题,实则根植于一个极复杂的业务问题域,即使行业专家也难以全面把握。

核心建议

最佳的计费系统是别人构建的系统。 强烈建议在业务起步时,尽可能使用成熟的第三方计费解决方案(如Solvimon, Orb, Lago等)来处理大部分订阅与计费逻辑。应将精力集中于自身产品独特的用量更新和基本客户生命周期事件管理上,并利用现有的ERP系统处理收入确认等会计问题。

6. A bad day at the office (airminded.org)

1917年9月14日,一架英国水上飞机在朴茨茅斯岛霍斯岛进行训练时,从云层中高速出现,撞上了海岸无线电台的一座高约350英尺的钢铁格架天线杆。飞机引擎卡在天线杆的缝隙中,机体呈直角悬挂在约300英尺的高空,飞行员E. A. de Ville中尉(驾驶的是“索普威斯·婴儿”水上飞机)被撞晕,失去意识。

当时,一组水兵正在为天线杆涂漆。见此危急情况,三名救援人员——皇家海军后备役水手拉斯、普通水手诺尔顿和码头工人雅培——展开了勇敢的救援。拉斯首先沿着天线杆内部向上攀爬至飞机位置,爬出机舱固定住昏迷的飞行员。随后,另外两人递送绳索给拉斯,他将绳子系在飞行员身上,最终将其安全降至地面。

整个救援过程极度危险,因为受损的天线杆随时可能倒塌,飞机仅靠卡住的引擎保持水平,强风导致杆体和飞机摇晃不定。这三名救援者置个人安危于度外,完成了这次营救。为此,拉斯被授予金质阿尔伯特勋章,诺尔顿和雅培获得了阿尔伯特勋章。

此次事件的照片及相关描述收藏于帝国战争博物馆。

7. Let's compile like it's 1992 (2014) (fabiensanglard.net)

本文详细介绍了如何在现代系统中重新编译1992年《德军总部3D》的原始源代码,并使其成功运行。所需工具包括:游戏源代码、DosBox模拟器、Borland C++ 3.1编译器以及游戏的共享版资源文件。

主要步骤如下:

  1. 环境搭建:在本地创建两个目录(例如 system/csystem/a),分别用于存放源代码和编译器。通过DosBox将这两个目录挂载为虚拟驱动器(C: 和 A:)。

  2. 安装编译器:在DosBox中运行Borland C++ 3.1的安装程序,将其安装到C盘的默认路径。

  3. 安装与配置源代码:解压《德军总部3D》源代码到 C:\WOLFSRC。然后启动Borland C++,打开项目文件 WOLF3D.PRJ。需要正确配置编译器目录选项(包括包含路径、库路径、输出目录和源代码目录)。首次编译时会因找不到TASM(汇编器)而失败,需退出并设置正确的 PATH 环境变量(指向 C:\BORLANDC\BIN),然后重新启动编译器。

  4. 获取游戏资源:下载共享版游戏文件,并将其安装到 C:\WOLF3D 目录。

  5. 解决资源索引不匹配问题:编译出的游戏可执行文件(WOLF3D.EXE)在运行时图形显示异常。原因是游戏引擎中硬编码的图形资源索引与原始资源文件中的索引不匹配。这是因为源代码版本与原始发布时打包资源的版本不同。解决方法是使用与源代码版本匹配的重新生成的VGA资源文件(VGAHEAD.WL1VGAGRAPH.WL1VGADICT.WL1),将其复制到游戏目录覆盖原文件。

  6. 运行游戏:将编译好的新可执行文件复制到游戏目录,覆盖或重命名旧文件后运行,游戏即可正常启动。

  7. 调整显示比例:DosBox默认的显示输出未模拟原始CRT显示器的4:3宽高比(原始VGA帧缓冲区为320x200)。需在DosBox配置文件中将 [render] 下的 aspect 选项改为 true,以获得正确的视觉效果。

整个过程复现了当年的开发与编译环境,解决了因工具链和资源版本差异导致的运行时问题,最终成功在现代系统上编译并运行这款经典游戏。

8. You are not late (2014) (kk.org)

文章摘要:《You are not late (2014)》

本文核心论点是:尽管互联网经过30年发展看似已趋饱和,但从历史和未来看,2014年恰恰是创业和创新的最佳时机。作者通过对比过去、现在和未来,论证当下机会的珍贵与广阔。

主要内容

1. 互联网的早期机会与现状

  • 过去:1985年至90年代初是互联网的“荒野时代”,域名(如 mcdonalds.com)可轻松免费注册,各类平台(搜索引擎、在线商店)易于首创,门槛极低。
  • 现在:互联网已被充分开发,应用、平台和内容极度饱和,看似没有空间留给新来者。

2. 根本性的观点:互联网仍处于起始阶段

  • 作者强调,从更长远的视角看,互联网真正伟大的创造尚未发生
  • 未来30年(到2044年)将诞生主导生活的全新产品,例如全息甲板、可穿戴虚拟现实设备、AI界面等。
  • 未来的人会回顾2014年,认为那时“还没有真正的互联网”。

3. 现在是最佳创业时机的原因

  • 宽广的前沿领域:当时几乎所有行业(类别X)都可以通过加入AI、接入云端进行重塑。
  • 低期望与低门槛:设备传感器有限,用户预期不高,成为某个领域的先行者相对容易。
  • 无与伦比的条件:人类历史上从未有过比现在更多机会、更低门槛、更高潜在回报的时期。

4. 对创业者的鼓励

  • 文章指出,过去30年已奠定坚实的基础平台,但最酷的创新“不是现有事物的重复”,而是全新的、超越性的。
  • 核心信息是:此刻正是开创事业的最佳时机,你没有迟到

文章结构

  • 以1985-90年代互联网的开放性为例,引出“机会曾经存在但被忽视”的认知。
  • 指出当下虽显饱和,但以未来视角看,现在正是未来的“早期”
  • 通过对比2014年与2044年(预测),强调当前条件的优越性。
  • 最终得出结论,激励读者立即行动。
9. Coroutines in C (2000) (www.chiark.greenend.org.uk)

本文探讨了在C语言中实现协程的方案,以解决生产者-消费者模式中的控制流协调问题。

核心问题与背景

  • 当数据生产者(如解压模块)与消费者(如解析模块)需要交互时,传统做法是重写其中一端为可被调用的状态机函数,但这会破坏代码的可读性和直观性。
  • 尽管操作系统管道或线程可用于进程/线程间通信,但过于笨重且不可移植。

协程的引入

  • Donald Knuth提出的协程概念将两个过程视为对等协作关系,通过交换控制权实现协作,但在C等基于栈的高级语言中难以直接实现。

C语言的实现技巧

  • 利用switch语句与case标签的特性,结合预处理器宏,模拟协程的“返回并继续”行为。
  • 关键宏定义:
    • crBegin:初始化协程状态。
    • crReturn:保存当前状态并返回,下次调用时从断点恢复。
    • crFinish:结束协程。
  • 使用__LINE__宏自动管理状态值,避免手动维护标签冲突。

代码示例

  • 原文提供了将解压器和解析器重写为协程风格的示例,保持了原始算法结构,无需转为复杂状态机。
  • 强调了在函数中局部变量需声明为static以保持状态。

可重入性与编码标准

  • 基本版依赖静态变量,不具备可重入性;通过上下文结构体可改进,支持多线程环境。
  • 该技巧违背常见编码标准(如宏中使用隐藏的switchcase),但作者认为应优先考虑算法清晰度而非语法清晰度。

实际应用与参考

  • 提供了头文件coroutine.h(MIT许可),包含两种宏集:简单版(scr)和可重入版(ccr)。
  • 提示Visual C++ 6需关闭“编辑并继续”调试选项。
  • 参考文献包括Knuth的计算机程序设计艺术和Duff设备的原始讨论。
10. Mamba Explained: The State Space Model Taking On Transformers (www.kolaayonrinde.com)

Mamba解析:挑战Transformer的状态空间模型

Mamba是一种基于状态空间模型(SSM)的序列模型架构,旨在解决Transformer架构在长序列处理中的效率瓶颈问题,同时保持或超越其性能。

核心优势与背景

  • Transformer的瓶颈:自注意力机制具有O(n²)的时间复杂度和O(n)的空间复杂度,导致在长序列(如100万token)上计算成本高昂且内存占用巨大。
  • Mamba的突破:首次在类似Transformer的性能和扩展规律下,实现长序列的线性扩展(O(n)时间、O(1)空间),推理速度最高可达Transformer的5倍。

Mamba架构原理

  1. 基本结构:Mamba块替代了Transformer块,包含用于序列通信的SSM组件和用于计算的MLP样式投影。
  2. 状态空间模型(SSM)
    • 通过微分方程描述系统状态随时间的变化:h'(t) = Ah(t) + Bx(t),输出为 y(t) = Ch(t) + Dx(t)
    • 通过离散化(如零阶保持)转换为差分方程,形成类似RNN的递推结构。
  3. 选择性机制:关键创新点。A、B、C等矩阵变为输入依赖的,使模型能动态选择保留或丢弃信息,实现对上下文的聚焦。

与Transformer的对比

  • Transformer:通过全局注意力实现高效信息检索,但存储整个历史状态,效率低。
  • Mamba:类似人类记忆,在输入时即进行信息压缩和选择,平衡了效率与效果。其状态是历史的压缩表示,而非完整缓存。

潜在影响与应用

  • 超长序列任务:适用于基因组学、长视频生成、小说创作等需要持久记忆的场景。
  • 新型提示范式:可通过“状态交换”实现无限上下文学习——预先在特定数据(如物理教材)上运行模型生成状态,供他人直接使用,无需重复训练或提示工程。
  • 与Transformer融合:可混合使用,例如用Transformer处理近期细节,Mamba维护长期叙事一致性。
  • AI安全考量:长序列记忆能力可能带来类似长期目标的智能体风险,需重新关注基于代理的AI安全问题。

未来展望

Mamba不意味Transformer的终结,而是标志着“仅限Transformer”时代的结束。它为序列建模开辟了新路径,尤其在对长上下文和原生长期记忆有需求的领域。现有研究(如Sasha Rush与Jonathan Frankle的打赌)显示,尽管Transformer目前主导,但替代架构正展现出竞争力。

11. Show HN: Nekoweb – a retro static web hosting (nekoweb.org)

Nekoweb 项目总结

  • 项目名称:Nekoweb
  • 性质:一个复古风格的静态网络托管服务。
  • 展示背景:在 Hacker News 上以“Show HN”形式分享,可能用于项目演示或社区展示。
  • 内容特点:文章中主要展示了多个按钮图片,包括 GIF 和 PNG 格式,这些图片路径如 /assets/buttons/button1.gif 等,共12个按钮,但未提供其他文字说明或技术细节。
  • 推断用途:这些按钮图片可能作为网站界面元素或项目视觉组成部分,用于增强复古主题的展示效果。
12. FDA approves first medication to reduce allergic reactions to multiple foods (www.fda.gov)

FDA批准首个用于减少多种食物过敏反应的药物

批准信息
美国食品药品监督管理局(FDA)于2024年2月16日批准Xolair(奥马珠单抗)注射剂用于治疗免疫球蛋白E(IgE)介导的食物过敏,适用于特定成人和1岁及以上儿童,以减少因意外接触一种或多种食物而可能发生的过敏反应(I型),包括降低过敏性休克风险。该药物需持续使用,且患者仍需避免食用过敏食物;它不能用于过敏反应或过敏性休克的紧急治疗。

药物背景与适用性
Xolair最初于2003年获批用于治疗中重度持续性过敏性哮喘,后扩展至慢性自发性荨麻疹和慢性鼻窦炎伴鼻息肉。本次批准使其成为首个可减少多种食物过敏反应的药物,此前仅有针对花生过敏的口服免疫疗法产品Palforzia获批。据统计,美国约6%的人群患有食物过敏,目前尚无治愈方法,主要依靠严格避免过敏原和紧急使用肾上腺素治疗过敏性休克。

作用机制
Xolair属于单克隆抗体类药物,通过结合并阻断IgE抗体(引发过敏反应的关键抗体)与其受体的结合,从而降低过敏反应风险。

临床试验结果
疗效基于一项多中心、双盲、安慰剂对照研究,纳入168名对花生及至少两种其他食物(如牛奶、鸡蛋、小麦、腰果等)过敏的1岁及以上受试者。在16至20周的治疗后:

  • 花生耐受性:Xolair组68%的受试者可耐受单次600毫克或以上的花生蛋白(约2.5颗花生),且未出现中重度过敏症状;安慰剂组仅6%。
  • 其他食物耐受性(关键次要终点):
    • 腰果:Xolair组42%可耐受1000毫克蛋白,安慰剂组3%。
    • 牛奶:Xolair组66%可耐受1000毫克蛋白,安慰剂组11%。
    • 鸡蛋:Xolair组67%可耐受1000毫克蛋白,安慰剂组0%。 需注意,17%的Xolair受试者未出现明显耐受改善,因此持续严格避免过敏原仍属必要。

安全性信息
常见副作用包括注射部位反应和发热。药物附有黑框警告,提示可能发生危及生命的过敏性休克(可在首次给药或治疗数月后出现)。初始用药需在具备过敏性休克处理能力的医疗机构进行,经评估耐受后,可讨论自行或由照护者注射的可能性。禁忌症包括对药物成分的严重过敏史。

审批背景
本次适应症获批获得了FDA的优先审评和突破性疗法认定,批准企业为基因泰克(Genentech)。

重要提醒
该药物仅用于降低意外接触后的过敏反应风险,不能治愈食物过敏,也不可替代严格避免过敏原及紧急治疗措施。

13. Profiteering hampers U.S. grid expansion (spectrum.ieee.org)

美国电网扩建受阻:利润追逐与区域壁垒

美国正面临严重的输电线路建设不足问题,无法有效连接区域电网。这一缺陷导致电价上涨、电网可靠性下降,并阻碍了可再生能源的部署。

问题的核心在于电力公司拒绝甚至阻挠跨区域输电项目,因为新项目会威胁其利润并打乱其行业联盟。过时的法律赋予了这些公司对输电开发的广泛控制权,使其能够拖延扩建。

随着家庭、交通和工业的电气化程度不断提高,电力公司的输电决策将对国家经济和民生至关重要。约40家市值达万亿美元的公司拥有美国大部分输电线路,其对电网骨干的掌控需要公众审视和问责。

电网价值与历史局限

高压输电线路能在长距离内输送大量电力,连接发电与用电。一个由众多连接构成的输电网络,能够创建大规模、可靠且冗余的供电系统。在任何时刻,成千上万的发电厂需向电网输送恰好满足需求的电量,调度规则决定了谁发电、发多少电,目标是利用高效的发电组合以低成本保持供电。

建设更多输电线路可以增加系统容量和连接性,允许新电厂接入并在区域电网间输送更多电力。然而,电力公司并不欢迎扩建,因为他们不希望自己的电厂面临竞争,也不愿其区域联盟失去对网络的控制。扩建会为新的电厂和输电开发商创造机会,可能削弱电力公司的利润并夺取行业未来规则的制定权。电力公司正在将股东利益置于公众对更清洁、廉价和可靠能源的需求之上。

老旧联盟与系统碎片化

美国的交流输电网络主要由营利性电力公司在过去一个世纪中建造,政府及地方社区运营的非营利性电力公司也参与其中。线路往往围绕化石燃料储备地和人口中心分布,同时也受到历史性行业联盟的影响。

在电力公司同意进行能源贸易的地区,它们会建设足够的输电线路在各自服务区之间输送电力。随着联盟扩大,网络容纳了新成员,但与非联盟成员的连接往往较弱。

这种代代相传的联盟导致美国系统碎片化为大约十几个区域,区域间连接有限。这些区域分布在三个基本独立的网络中,即东部、西部和德克萨斯州大部。

美国能源部2023年10月的一份报告揭示了问题的严重性。根据国家实验室和学术研究,能源部计算出,美国区域间输电容量最多需要扩大五倍,才能维持可靠性、增强抵御极端天气的能力,并让人们获得低成本清洁能源。连接区域电网的价值在全球范围内得到广泛认可,例如欧盟委员会2018年就设定了成员国间跨境电力传输至少占其境内发电量15%的目标,大量跨境连接项目正在建设或规划中。

扩建的巨大益处

连接区域电网的主要价值之一在于,它能够——并且实际上是——整合可再生能源的关键。例如,在中西部上沿区域网络交界处规划的四条共计600公里的高压线路,可连接至少28吉瓦的风能和太阳能。然而,邻近区域的电力公司并未推进这些项目。该项目估计耗资19亿美元,虽然看似投资巨大,但仅占美国电力公司每年重建老化输电基础设施支出的一小部分。

为可再生能源增加区域间输电连接可以显著降低消费者成本。这种连接能在天气有利时让多余的风电和太阳能流向邻近区域,并在可再生能源出力不足时从其他地区输入电力。即使没有可再生能源,更好的整合网络通常也能降低消费者成本,因为它减少了所需的总发电容量,并降低了能源市场价格。

区域间输电还能增强可靠性,特别是在极端天气期间。2022年12月的“埃利奥特”冬季风暴导致从北达科他州到佐治亚州的发电厂和管道瘫痪,造成南方停电以及整个东部美国数十亿美元的额外能源费用。有限的区域间连接帮助避免了灾难,将电力输送到最需要的地方。

利润、控制权与阻力

但从电力公司的角度看,区域间输电存在几个缺点。首先,这种连接会为可能以更低价格向其区域内售电的竞争对手打开大门。其次,电力公司从建造电厂中获得的利润远高于建设输电线路,因此他们不愿意建设可能永久减少未来发电投资机会的连接。

第三,大型区域间输电项目对电力公司的财务吸引力较低。对于大型项目,电力公司可能需要与其他开发商竞争才能获得建设利润。该行业赞助对此类项目的第三方监督,而较小的项目受到的行业审查较少。小项目更容易实施且利润更高,因为它们需要的建筑许可更少,面对的监管和行业审查也更少,并且由电力公司在没有其他开发商竞争的情况下建造。

第四,区域间线路威胁到电力公司对国家电力供应的主导地位。在电力行业,资产所有权提供了对能源市场和输电服务及扩建规则的控制权。当新兴实体建造电厂和输电线路时,它们可能会稀释电力公司对电力行业规则的控制权,并阻止电力公司主导关于输电扩建的决定。

立法、监管与技术希望

解决输电短缺问题已列入华盛顿议程,但电力公司正在游说反对改革。2023年9月,议员提出了《大型输电线路法案》,旨在强制电力公司或竞争性开发商建设更多区域间连接。此前也有议员提议,如果能源部认定某个项目符合国家利益,联邦监管机构可以批准项目建设并强制电力公司承担费用。

与此同时,联邦能源管理委员会正在重新评估电力公司如何开发和运营输电网络,并可能在未来几个月发布新规则。作为回应,电力公司正准备提起诉讼,以剥夺FERC施加任何输电规则的权力,其目标是保护自身利润和控制权,即使以消费者利益为代价。

美国能源部也在提供支持,宣布拨款资助新的高压输电线路,并计划公布其期待已久的国家大规模输电建设计划。然而,如果没有行业支持或国会数百亿美元的额外资金,能源部的愿景将无法实现。

新的商业模式和技术带来了希望。投资者和企业家正在开发长距离直流输电线路,在远距离传输大量电力方面比交流电更高效。许多高压直流输电线路已在运行,尤其是在中国和欧洲,直流线路现已成为欧洲统一电网计划的首选。

美国缺乏连接区域网络的协调国家规划,但开发商可以逐个项目推进。例如,未来连接堪萨斯州与伊利诺伊州邻近网络、从怀俄明州延伸至加利福尼亚州、以及横跨西南部输送风能和太阳能的直流项目。这些项目将把可再生能源从发电成本低廉的地方输送到电价较高的大型市场,从而帮助加强国家的区域输电网络。

这些开创性项目表明,美国的电力公司不必亲自建造区域间线路,但他们需要让路。由电力公司及其行业盟友制定的输电规则可能会阻碍、延迟并增加这些新项目的成本。简化联邦和州级许可流程可以鼓励更多投资,但削减政府繁文缛节并不能消除电力公司对区域间输电的反对。

美国监管机构和国会必须继续推进。促进新商业模式和限制电力公司控制权的有希望的提案已经摆在桌面上。我们的能源未来正处在紧要关头。

14. The Real-World Locations of 14 Sci-Fi Dystopias (2014) (www.atlasobscura.com)

科幻反乌托邦电影的真实拍摄地

文章介绍了14部经典科幻反乌托邦电影,它们在银幕上描绘了黑暗未来,但许多场景却取景于现实世界中的建筑与地点。导演选择真实场地的原因多样:或为将故事锚定于现实,或仅因这些地点本身已颇具未来感。

电影与真实拍摄地一览

《银翼杀手》(1982)
主要拍摄于美国加州洛杉矶。关键场景包括:

  • 布拉德伯里大楼:作为影片中警探与仿生人激战的主要场地,其庭院至今向公众开放。
  • 恩尼斯府:由弗兰克·劳埃德·赖特设计,作为主角的公寓取景地,现为国家地标。
  • 联合车站被用作警察局内景,泛美大楼则充当酒店场景。

《全面回忆》(1990)
拍摄于墨西哥墨西哥城。

  • 丘鲁布斯科制片厂为主要制作基地。
  • 查巴卡诺地铁站呈现了血腥的自动扶梯追逐戏,传说地面仍残留道具血迹。
  • 日航酒店的顶楼被用作影片中的阁楼场景。

《机械战警》(1987)
设定在底特律,但主要拍摄于美国德克萨斯州达拉斯。

  • 达拉斯市政厅经特效延展至95层,成为OCP公司总部外景。
  • 美洲广场中庭用于部分内景,玫瑰木新月酒店的停车场则作为OCP车库。
  • 达拉斯高中和赫尔曼兄弟厅分别扮演破旧的底特律警察局。

《洛根的逃亡》(1976)
拍摄于德克萨斯州达拉斯和沃斯堡。

  • 达拉斯市场中心胡伦购物中心被用作地下城市“The City”的场景。
  • 沃斯堡水花园作为城市的水力发电站,其独特的混凝土池阶梯景观在影片中突出呈现。

《饥饿游戏》(2012/2013)
主要取景于美国北卡罗来纳州和乔治亚州。

  • 亨利河磨坊村的废弃建筑群,完美诠释了贫困的“12区”。
  • 乔治亚州亚特兰大的天鹅宅邸成为斯诺总统的豪宅。
  • 万豪侯爵酒店的壮观中庭和电梯充当都城胜利者住所,拍摄期间曾因意外暴露场景引发插曲。

《妙想天开》(1985)
拍摄于英国和法国。

  • 伦敦东区废弃的千禧面粉厂成为档案局外景。
  • 莱顿府博物馆的阿拉伯厅用于拍摄奢华整容场景。
  • 法国诺瓦西勒格朗的阿布拉克萨斯空间公寓区,以其仿古希腊圆形剧场的设计,成为主角的居住地。

《千钧一发》(1997)
拍摄于加州洛杉矶等地。

  • 马林县市政中心(弗兰克·劳埃德·赖特设计)成为基因公司的总部。
  • 洛杉矶市政厅的外景用作音乐厅。
  • 莫哈韦沙漠的太阳能发电厂成为影片中的“日出农场”。

《纽约大逃亡》(1981)
拍摄于伊利诺伊州东圣路易斯、密苏里州圣路易斯及纽约。

  • 东圣路易斯的破败城景成功模拟了未来监狱化的纽约。
  • 自由女神像所在的自由岛首次在夜间向电影剧组开放,用于拍摄监狱守卫场景。
  • 圣路易斯的联合车站福克斯剧院分别模仿大中央车站等纽约地标。

《绿色食品》(1973)
拍摄于加州洛杉矶。

  • 洛杉矶纪念体育竞技场作为“安乐死商店”的外景。
  • 亥伯龙污水处理厂则被用作揭示“绿色食品”真相的工厂。

《十二猴子》(1995)
拍摄于宾夕法尼亚州费城和马里兰州巴尔的摩。

  • 费城市政厅作为未来废墟的场景。
  • 东方州立监狱这座拥有历史意义的放射状监狱,成为精神病院的拍摄地,现为旅游景点。
  • 巴尔的摩的参议员剧院加勒特-雅各布斯宅邸也在影片中出现。

《黑客帝国》三部曲(1999-2003)
主要拍摄于澳大利亚悉尼。

  • 麦特中心成为主角工作的“麦特科特克斯”公司。
  • 亚当街桥是女主角接头的经典地点。
  • 马丁广场邮政总局大楼殖民地国家银行中心等悉尼地标,均成为影片中矩阵世界的关键场景。

《少数派报告》(2002)
拍摄于加州洛杉矶和华盛顿特区。

  • 罗纳德·里根贸易中心成为“犯罪预知局”的外景。
  • 德斯坎索植物园用于拍摄关键角色的居所。
  • 霍桑广场购物中心的废弃部分成为“预知者”所在的废弃商场。
  • 华纳兄弟影城的外景街道可用于参观。

《V字仇杀队》(2005)
拍摄于英格兰和德国柏林。

  • 哈特菲尔德庄园作为历史序幕场景。
  • 伦敦的克洛斯费尔街乔克农场步行桥是重要的情节发生地。
  • 影片高潮的群众集会场景拍摄于特拉法加广场

文章更正说明:原文中曾错误提及纽约的“第69街大桥”,实际应为“第59街大桥”。

15. PID Without a PhD (2016) [pdf] (www.wescottdesign.com)

《PID Without a PhD》文章摘要

本文面向嵌入式系统工程师,旨在无需深入数学或控制理论的情况下,介绍如何实现和整定PID控制器。

核心概念与系统构成

  • PID控制器:由比例(P)积分(I)微分(D) 三个基本环节组成,通过组合输出来驱动被控对象。
  • 控制回路:包括命令输入、控制器、驱动信号、被控对象(Plant)以及反馈测量。

典型被控对象示例

文章通过三个例子说明不同系统的特性与控制挑战:

  1. 电机与齿轮系统:存在延迟,易因比例增益过高而过冲。
  2. 精密定位系统(扬声器线圈):非常“滑”,难以用单纯比例或PI控制稳定,需要微分作用。
  3. 温度控制系统:响应缓慢,纯比例控制无法消除稳态误差,且受环境温度扰动影响。

PID控制器实现

提供了一个完整的C语言代码框架:

  • 数据结构:包含比例增益、积分增益、微分增益、积分器状态及限幅值、上次位置值等。
  • 更新函数:计算误差,分别生成比例项(误差×增益)、积分项(误差累积×增益)和微分项(基于位置变化率),三者求和输出驱动信号。
  • 关键注意事项
    • 采样时间:需保持稳定,特别是对微分项至关重要。
    • 积分饱和(Windup):当驱动信号饱和时,积分项会过度累积,导致大幅超调。解决方法是对积分状态进行限幅。
    • 实现选择:可使用浮点数,但嵌入式环境中常用定点数以提升效率。

控制器整定方法

提出了一套实用的、启发式的整定步骤(建议先连接测试设备或编写调试代码观察):

  1. 调整微分增益 (Kd):从高值开始(如比例增益的100倍),逐步降低直至系统停止振荡或过度噪声。若系统无需微分作用则跳过。
  2. 调整比例增益 (Kp):初始值可设为Kd的1/100。通过增大/减小增益(以8-10倍为步进)直至系统出现振荡,然后回退2-4倍。
  3. 调整积分增益 (Ki):初始值可设为Kp的1/100。通过调整直至系统出现轻微振荡,然后回退2-4倍。
  4. 重要原则:完成一轮上述调整后,应停止反复微调,否则可能使系统仅在理想条件下工作。

其他实践问题

  • 采样率选择:一般为期望系统稳定时间的1/10至1/100。控制问题越复杂或需要微分作用时,应提高采样率。
  • 微分项的噪声问题:微分作用会放大高频噪声。需要稳定的采样率和低噪声的输入信号,有时需对微分输出进行低通滤波。
  • 何时需要深入理论:当本文所述方法无法满足性能要求时,作者建议参考其著作《Applied Control Theory for Embedded Systems》或寻求专家帮助。

作者与资源

作者Tim Wescott拥有20年数字控制与嵌入式系统工程经验。文章提及了其设计服务网站及书籍资源。

16. Efficient recovery and recycling of cobalt from spent lithium-ion batteries (pubs.acs.org)
17. A History of the TTY (computer.rip)

TTY 的历史:从电报到现代终端

TTY(电传打字机)的技术遗产深深嵌入现代计算机系统,从云服务器到嵌入式设备,无数系统都模拟着与 TTY 的连接。它的历史贯穿了从电报时代到计算机终端的演进。

电报与电传打字机的起源

  • 电传打字机是 1950 年代至 1970 年代 计算机最常见的人机交互界面,早于视频显示终端。
  • 其根源可追溯至 19 世纪的电报技术。早期电报通过中断电流或极性反转传输信号,但需要熟练的操作员解读莫尔斯码。
  • 为降低人力成本并实现自动化,并行信号传输多路复用技术 被引入,催生了能自动打印字母的 字母电传打字机(如休斯系统)。

技术演进与关键创新

  • 博多码(Baudot code):由 Émile Baudot 于 1870 年代开发,是一种 5 位二进制编码,允许在单根电线上通过时间分割复用传输字符,奠定了现代字符编码的基础。
  • 莫里穿孔纸带:1901 年,Donald Murray 改进了博多系统,引入类似打字机的键盘和穿孔纸带,使电报员能预先编码消息并异步传输,大幅提升了效率。
  • 自动电传打印机:在莫顿盐业公司资助下,Teletype Corporation(1928 年成立)开发了能自动同步、打印文本的电传打印机。1930 年,该公司被 AT&T 收购。
  • Model 15 电传打字机:1930 年代推出的这款设备成为美国通信的基石,尤其在二战中广泛应用于军事物流,生产持续至 1963 年。

网络化与编码标准化

  • 交换式电传网络:如 Telex(国际标准)和美国的 TWX(电传交换服务)在电话线上运行,支持点对点通信。专用区号(如 510-910)曾分配给电传设备。
  • 编码演进:博多码逐渐被 ASCII 取代,但西方联盟曾使用仅含大写字母的简化 ASCII 变体,以减少比特数。1958 年推出的 贝尔 101 调制解调器 支持了这种编码,成为远程计算机通信的先驱。

与计算机的融合

  • 早期计算机(如 Konrad Zuse 的机器)直接使用电报穿孔纸带(通常是 5 位博多码)作为输入介质。
  • 二战密码破译 催生了类似电传打字机的数字设备(如洛伦兹密码机),以及如 Colossus 这样的可编程计算机。
  • 存储程序计算机(如曼彻斯特 Mark I、EDSAC)采用基于博多码的 5 位编码,使电传打印机能用于交互式指令输入和输出。
  • IBM 和 DEC 的角色:IBM 将电传打字机技术集成到计算机终端中;DEC 的 PDP 系列计算机则大量使用 西电 Teletype 设备作为终端,因其适合长距离通信,支持分时系统。

术语“tty”的来源与现代影响

  • “tty” 作为通用终端或串行 I/O 通道的术语,很可能源于 DEC(数字设备公司)的操作系统,后被 UNIX 采纳。
  • 尽管技术不断进步,现代计算机的文本显示和键盘输入仍遵循着与电传打字机相似的架构。7 位 ASCII 编码 至今广泛使用,但博多码已退出历史舞台。
  • 文章结尾指出,我们仍在使用基于 TTY 概念的终端技术,计算机本质上已成为“复杂的电传打字机”。
18. Xkcd: Greenhouse Effect (xkcd.com)

本文的实际内容与标题“Xkcd: Greenhouse Effect”(Xkcd:温室效应)不符,并未讨论温室效应。文章内容主要包含两部分:

  1. 作者推荐的漫画列表:列出了作者喜欢的一些网络漫画作品,包括 Three Word PhraseSMBCDinosaur ComicsOglafA Softer WorldButtersafePerry Bible FellowshipQuestionable ContentButtercup FestivalHomestuck 以及 Junior Scientist Power Hour

  2. 对浏览xkcd网站的幽默技术要求说明:这部分以反讽的风格列出了一系列荒谬的浏览条件,建议用户:

    • 使用早已过时的 Netscape Navigator 4.0 或更早版本 浏览器。
    • 通过 Javascript 模拟 Pentium 3±1 处理器Apple IIGS 计算机上运行。
    • 屏幕分辨率设置为 1024x1
    • 启用广告拦截器,关闭高热烘干机。
    • 将设备从“飞机模式”切换到 “船模式”
    • 出于安全原因,浏览时保持 大写锁定键(Caps Lock) 开启。

总结:该页面内容主要是作者的个人漫画推荐列表,以及对xkcd网站的经典风格化、充满幽默感的技术要求吐槽,其实际文本内容与标题所述的“温室效应”主题无关。

19. Notes on paper (2023) (voussoir.net)

本文通过扫描旧笔记的经历,反思并总结了作者长期坚持的书写习惯与数字化处理方法。

核心习惯总结:

  1. 标记与格式:每页(含收到的材料)标注日期;使用活页纸便于增删、交叉参考和归档;采用与打印纸尺寸一致的全尺寸纸张(如A4或Letter)。
  2. 书写工具与方式:偏好优质黑墨水笔,便于后续单色扫描;坚持单面书写;避免字迹拥挤,保持页面留白。
  3. 纸张选择:可考虑方格纸,便于规整排版、绘图和设置侧栏;亦可使用空白打印纸,成本低且自由度极高。作者近期开始自制并打印带有极淡网格线的专用纸张,认为此法在个性化、一致性和成本上优势明显。
  4. 优化与整理:使用较厚纸张提升书写体验;课后或会后重新整理笔记,以优化结构、修正内容、提升字迹工整度。
  5. 数字与纸质对比:承认数字笔记具有易搜索、集成多媒体等优点,但纸质笔记在成本、跨页浏览、材料整合、物理传递及特定考试场景下仍具独特优势。

扫描与后处理:

  • 扫描设置为600 PPI的1-bit TIFF格式,以避免有损压缩产生的色块伪影。
  • 使用自定义脚本(imagesequence_to_images.pybrename.py)批量转换多页TIFF为单张PNG,并重命名文件。
  • 针对双面材料的单面扫描,通过两次扫描(正面与背面)后,利用文件重命名策略(为正面分配偶数序号、为倒序扫描的背面分配奇数序号)进行顺序重组,并手动删除空白背面页,最后重新索引文件。

笔记示例: 作者展示了一些认为具有视觉吸引力的历史笔记页面,旨在体现前述习惯的实践与演变,并强调放大查看细节所带来的独特趣味。

文章维护记录: 文末注明了文章的更新历史,包括添加关于厚纸、自制方格纸等内容。

20. Readability.js (github.com)

Readability.js 库总结

Readability.js 是 Mozilla 为 Firefox 阅读视图开发的独立可读性解析库,用于从网页中提取主要文章内容。

安装与使用

  • 可通过 npm 安装:npm install @mozilla/readability
  • 在网页中可直接引入 Readability.js 脚本,或使用 require() 引入。
  • 基本用法:创建 Readability 实例并调用 parse() 方法。
var article = new Readability(document).parse();

API 参考

new Readability(document, options)

构造函数接收一个 DOM 文档对象和可选的配置对象。主要配置项包括:

  • debug:是否启用日志(默认 false)。
  • charThreshold:文章最小字符数阈值(默认 500)。
  • keepClasses:是否保留 HTML 元素的所有类(默认 false)。
  • serializer:控制返回内容序列化方式的函数(默认返回 innerHTML 字符串)。
  • linkDensityModifier:调整链接密度阈值的数值(默认 0)。

parse() 方法

返回一个包含以下属性的对象:

  • title:文章标题
  • content:处理后的文章 HTML 内容
  • textContent:纯文本内容
  • excerpt:摘要或描述
  • byline:作者信息
  • publishedTime:发布时间
  • 其他元数据如 siteNamelang

注意parse() 会修改原始 DOM。为避免此情况,可传入文档的克隆对象:

var documentClone = document.cloneNode(true);
var article = new Readability(documentClone).parse();

isProbablyReaderable(document, options)

快速判断文档是否适合用 Readability 处理,可能存在误判,用于优化性能关键流程。可选配置项包括 minContentLength(默认 140)和 minScore(默认 20)。

Node.js 环境使用

Node.js 需配合外部 DOM 库(如 jsdom)使用,并务必传递页面 URL 以确保相对路径正确转换:

var { Readability } = require('@mozilla/readability');
var { JSDOM } = require('jsdom');
var doc = new JSDOM("<body>内容</body>", { url: "https://example.com" });
let article = new Readability(doc.window.document).parse();

安全注意事项

  • 处理不受信任的输入时,建议配合 DOMPurify 等 sanitizer 库使用,防止脚本注入。
  • 可结合内容安全策略(CSP)增加安全性。
  • 该库本身不负责净化不安全内容,需依赖外部工具。

许可证

采用 Apache License 2.0 开源许可。

21. Show HN: R2R – Open-source framework for production-grade RAG (github.com)

R2R:生产级开源RAG框架摘要

核心定位

R2R是一个先进的AI检索系统,专注于提供生产就绪的检索增强生成(RAG) 解决方案。它以RESTful API为核心构建,旨在支持复杂的、生产环境下的知识检索与生成任务。

核心功能与特性

  1. 多模态内容摄取:支持解析多种文件格式,包括文本(.txt)、PDF、JSON、图像(.png)、音频(.mp3)等。
  2. 混合搜索:结合了语义搜索与关键词搜索,并通过倒数排名融合技术优化搜索结果。
  3. 知识图谱:能够自动从文档中提取实体及其关系,构建结构化知识网络。
  4. 代理式RAG:集成了推理代理,可根据查询进行多步推理,实现更智能的检索与生成。
  5. 深度研究API:提供一个高级的多步推理系统,能从知识库或互联网中获取相关数据,为复杂查询提供更丰富、更具上下文的答案。
  6. 完整的文档与用户管理:包含文档管理和用户认证、权限控制系统。

使用方式

R2R提供了PythonJavaScript/Node.js的客户端SDK。

  • 基本用法:通过客户端初始化后,可执行文档的创建、列表管理以及进行搜索或RAG查询。
  • 部署选项
    • 快速模式:通过pip install r2r安装并启动。
    • 完整模式:使用Docker Compose部署,包含更多生产级组件(如PostgreSQL)。
  • 高级查询:支持配置生成模型、思维预算等参数,并可调用代理进行深度研究,实现对复杂问题的推理。

总结

R2R是一个功能全面、设计用于生产环境的开源RAG框架。它超越了简单的问答,通过集成混合搜索、知识图谱和具备推理能力的代理,提供了更强大、更灵活的检索增强生成能力,适用于需要处理多模态数据和执行复杂查询的企业级应用场景。项目鼓励社区通过Discord参与讨论和贡献。

22. Firsty.app – free 300kbit/s eSIM for US/EU (www.firsty.app)

Firsty.app – 免费300kbit/s eSIM(美国/欧盟)

核心服务

Firsty.app 提供首个免费移动网络服务,主打无成本、无麻烦保持在线连接。该服务主要面向美国和欧盟地区用户,提供免费300kbit/s的eSIM数据连接。应用在Trustpilot上获得4.8分(满分5分)的高分评价,强调价格公平、无隐藏费用

主要功能与流程

用户可通过应用快速规划行程并选择套餐:

  1. 选择目的地:可选取一个或多个国家。
  2. 设定时长:选择出行天数。
  3. 选择套餐:提供 Comfort+First Class 两种计划。 应用内还提供费用计算工具,帮助用户提前了解花费。

用户评价概览

根据大量用户反馈,该应用的显著优点包括:

  • 便捷易用:设置简单,安装快速。
  • 连接可靠:在全球多个地区(如南非、西班牙、美国、非洲等)使用,连接稳定、速度快。
  • 性价比高:每日少量费用即可享受无限网络,帮助用户避免购买实体SIM卡或在机场等待的麻烦。
  • 客服优秀:获得用户对客户服务的认可。
  • 使命认同:有用户赞赏其让所有人都能获得连接的使命。

综合定位

Firsty.app 定位为一款免费且可靠的eSIM应用,致力于简化国际旅行或日常使用中的移动网络接入,以高性价比、全球覆盖和优质用户体验为核心卖点。

23. Final images of Ingenuity reveal an entire blade broke off the helicopter (arstechnica.com)

机智号火星直升机最终图像揭示一片旋翼叶片完全断裂

美国宇航局(NASA)在火星上顽强工作的直升机“机智号”已于数周前结束其最后一次飞行。今年1月6日,“机智号”升空至40英尺(12米)高度,但仅飞行35秒后便被迫提前着陆。12天后,操作人员计划对其进行快速升降测试以进行故障排查。飞行数据表明,该测试中“机智号”再次升至40英尺高度,但在飞行结束时通讯不幸中断。

1月20日,NASA重新与直升机建立了通讯。根据车辆阴影图像显示,至少一片旋翼叶片遭受损坏,该机构随即宣布其飞行任务正式终结。这为一次超额完成所有预期目标的非凡任务画上了句号。

在讨论任务结束的新闻发布会上,NASA官员表示,可能永远无法确切了解“机智号”最后两次致命飞行中究竟发生了什么。但得益于将“机智号”送上火星表面并协助向地球中继通讯的“毅力号”火星车,工程师们在上周末获得了一条关键线索。

24. A drone that calculates coordinates using a camera and Google Maps (twitter.com)

文章标题:A drone that calculates coordinates using a camera and Google Maps
文章内容摘要:提供的文章内容显示加载错误,未能成功获取完整信息。错误消息指出“出了点问题,但别担心——我们再试一次。一些隐私相关的扩展可能会在x.com上引起问题。请禁用它们并重试。” 这表明在访问x.com时,某些隐私扩展可能导致技术问题,影响内容加载。由于错误消息未涉及无人机或坐标计算的具体细节,因此无法基于现有内容总结文章的核心主题。建议检查网络设置或禁用相关扩展后重新尝试加载文章。

25. A retrospective on Requests (blog.ian.stapletoncordas.co)

Requests库回顾与批评

文章从多个角度深入剖析了Python Requests库存在的问题,指出尽管其对外接口设计直观易用,但内部实现和设计存在诸多严重缺陷。

API设计问题

  • 易用但隐藏复杂性:基础函数(如requests.get())看似简单,但内部每次创建新Session,忽略了连接池等重要特性。
  • 参数混淆datajsonfiles参数交互行为不直观,容易引发错误(如同时使用jsonfilesjson数据被丢弃)。
  • 头部覆盖风险:手动设置Content-TypeContent-Length头部可能导致请求失败或行为异常。
  • Query参数处理params参数的行为不符合部分用户预期(如追加而非替换)。

TLS与证书问题

  • 初始优势:默认启用证书验证,简化了TLS使用。
  • 许可证与兼容性certifi使用的MPL 2.0许可证在某些公司政策下可能存在限制;嵌入Zip文件时可能无法正确访问证书。
  • 环境变量缺陷REQUESTS_CA_BUNDLE曾可设置为空字符串来禁用所有TLS验证。
  • SSLContext集成不足:未能良好集成Python标准库的ssl.SSLContext,导致高级配置困难。

其他功能缺陷

  • Cookie管理:Cookie jar实现像字典,但不同域名的同名cookie会导致异常;策略支持不足。
  • 超时机制:DNS解析多个IP时,超时计算可能远超用户预期(尝试所有IP累加超时)。
  • 重试逻辑:默认max_retries=0,但异常信息误导性强;重试机制依赖urllib3,与Requests的认证、速率限制等逻辑无法协同。
  • 传输适配器:设计初衷良好,但自定义时需深入理解urllib3,难以组合多个适配器。
  • 请求准备:认证、Cookie、头部等在Session、Request、PreparedRequest间传递逻辑复杂,易出错。

内部设计与维护

  • 代码结构差:如SessionRedirectMixin实际非可复用混入;utils模块被外部依赖引发维护负担。
  • 连接池误用:未充分利用urllib3连接池,适配器各自创建PoolManager。
  • 功能越界:自行实现分块传输编码等功能,引入技术债务。
  • 代理支持有限:对HTTPS代理支持不佳;扩展API加重维护负担。
  • 兼容性对象:为向后兼容创建的拟态对象(如代理配置)导致类型提示错误和细微故障。
  • 测试覆盖不足:测试用例未充分覆盖用户实际(可能不当)使用场景。

项目现状与困境

  • 稳定API束缚:1.0后过度追求向后兼容,阻碍必要改进(如3.0版本难产)。
  • 维护资源匮乏:维护团队仅三人,无力进行大规模重构或实现承诺的功能。
  • 社区信任危机:曾被描述为“艺术项目”,资金使用与版本承诺引发质疑。
  • 未来展望:作者建议采用更明确的数据类型(如JSONData)或请求构建器模式来改善API,但承认项目“感觉已停滞”。
26. Pleasures by Aldous Huxley (1920) (hackneybooks.co.uk)

阿道司·赫胥黎在《愉悦》一文中指出,文明面临的最严重威胁并非外部战争或危机,而是内部滋生的、被称为“愉悦”的组织化娱乐活动。文章对比了过去与现代的娱乐方式,批判了当代娱乐的被动性与标准化,并警示其可能导致文明衰退。

一、外部威胁并非根本
文章提及自1914年以来,人们持续讨论各种外部威胁,如军国主义、战争与和约。然而,作者认为文明经受住了这些冲击,真正的危险来自内部,尤其是对“愉悦”的沉迷。这里的“愉悦”指被组织化的、被动接受的娱乐,而非真正的乐趣。

二、古代娱乐需智力参与
过去,娱乐活动要求参与者付出智力努力与个人创造力。例如:

  • 17世纪宫廷人士热衷聆听神学辩论或哲学论证。
  • 伊丽莎白时代,普通人能参与复杂的复调音乐演唱。
  • 即便平民阶层,也欣赏如《奥赛罗》等戏剧,并主动参与季节性舞蹈与仪式。
    这些娱乐具有地方特色与个人色彩,需主动参与。

三、现代娱乐沦为被动消费
当代娱乐则由大规模组织提供,变得标准化且无需思考:

  • 电影、唱片、广播将统一内容传播全球,观众只需被动接受。
  • 报刊以信息为名,实际提供无需脑力的消遣。
  • 体育逐渐变为观看比赛而非亲身参与,舞蹈也失去个性,趋于同质化。
    作者强调,这种娱乐与机械化的日常工作结合,使人陷入一种“完美的无意义状态”。

四、文明可能陷入衰退
赫胥黎警告,这种被动“愉悦”会导致心智萎缩,使文明过早衰老。人们因缺乏精神刺激,只能寻求更强烈、更粗俗的娱乐,如同罗马帝国晚期依赖角斗士表演来缓解 boredom。作者担忧,若此趋势持续,未来社会可能重蹈罗马覆辙,需要不断升级的暴力娱乐才能获得满足。

结论
文章最终指出,尽管理想主义者试图遏制极端娱乐,但集体无聊的力量可能难以阻挡。现代“愉悦”看似无害,实则剥夺了人的创造性与精神活力,是比外部危机更隐蔽、更致命的文明威胁。

27. DOOM rendered via console.log() in a web browser (github.com)

DOOM 通过 console.log() 在浏览器中渲染

本文介绍了一种在浏览器控制台中渲染经典游戏 DOOM 的创意实现方法,基于先前项目的技术积累。

背景与灵感

  • 作者参考了多个相关项目:Bryan Braun 的 Checkboxland(通过复选框网格渲染内容)、id software 的原版 DOOM、Cornelius Diekmann 通过 WebAssembly 实现的 DOOM,以及 Healey 通过复选框实现的 DOOM。
  • 作者在此基础上创新,实现了通过 console.log() 在浏览器控制台中渲染 DOOM。

实现方法

  • 核心步骤
    • DOOM 游戏通过 WebAssembly 在一个隐藏的 <canvas> 元素中运行。
    • 使用 HTMLCanvasElement.toDataURL() 方法将 canvas 内容转换为 base64 编码的字符串。
    • 调用 console.log() 函数,第一个参数为格式化字符串 "%c X",第二个参数为 CSS 样式字符串,其中 background-url 属性设置为 base64 图像,从而在控制台中以背景图形式渲染游戏画面。
  • 代码示例
    • 获取 base64 图像:const base64Image = canvas.toDataURL().replace(/(\r\n|\n|\r)/gm, "");
    • 渲染控制台图像:console.log("%c X", \font-size:400px;color: transparent;background:url(${base64Image}) no-repeat; background-size: contain;margin-top: 140px;margin-left: 60px;`);`
  • 重要说明:这是非标准功能,不在 Web 标准轨道上,不建议在生产环境中使用,因为它可能无法为所有用户正常工作。

键盘事件处理

  • 为了解决焦点问题,确保玩家可以通过键盘控制游戏,作者将键盘事件(keydownkeyup)从 document.body 转发到隐藏的 canvas 元素。
  • 具体实现:定义 forwardKey 函数,创建新的 KeyboardEvent 并分派到 canvas;在 document.body 上添加事件监听器。

加载与开发

  • .wasm 文件下载和处理期间,控制台会显示加载消息,以提供用户反馈。
  • 开发流程简单:编辑相关文件后刷新浏览器即可查看更改。

此方法展示了浏览器控制台的另类用途,结合了 WebAssembly 和 CSS 样式化技术,实现了一个独特的 DOOM 渲染体验。

28. Show HN: Free Certificate Monitoring via RSS (raphting.dev)

免费TLS证书监控服务(通过RSS)

核心功能

  • 提供完全免费的TLS证书过期监控服务
  • 无需注册或登录即可使用
  • 通过RSS订阅接收证书到期提醒

工作原理

用户只需在RSS阅读器中订阅以下格式的链接:

https://scrutineer.tech/monitor/cert/{域名}.rss

示例:监控 scrutineer.tech 域名的证书: https://scrutineer.tech/monitor/cert/scrutineer.tech.rss

通知机制

  • 在证书到期前30天、7天和1天自动生成提醒通知
  • 通过用户选择的RSS阅读器接收这些通知

服务特点与限制

  • 免费无门槛:不要求注册账户
  • 不提供任何保证:服务可靠性无承诺
  • 仅检查有效期:只监控证书的"Not After"字段,不验证证书可信度
  • 支持自签名证书:因此也能监控自签名证书

未来计划

  • 基于证书透明日志开发更多监控功能
  • 用户可通过订阅作者博客RSS获取相关更新
  • 作者已创建Go模块生态系统的透明日志监控工具:https://monitor.raphting.dev/gosumdb/

使用优势

与传统需要邮件注册、定期检查的证书监控方案不同,此服务:

  1. 完全去中心化(依赖RSS协议)
  2. 零配置即时使用
  3. 隐私保护(无需提供邮箱等个人信息)
  4. 集成到现有RSS工作流
29. New car buying guide: the algorithm (2021) (github.com)

新车购买指南:算法

本文介绍了在美国(以华盛顿州非豪华品牌经销商为例)通过电子邮件让经销商相互竞争,以获得最佳新车交易(含可选置换旧车)的算法式流程。核心思想是利用电子邮件沟通的透明度和可比性,将经销商置于竞争环境中,从而规避传统面对面谈判中的销售技巧。

核心原理与前提

  • 市场经济学:算法旨在启动经销商之间的“价格战”。这要求市场满足以下条件:所需车型供应充足、需求不足、经销商之间存在竞争(无价格固定)、且买家通过电子邮件使经销商知晓存在其他报价。
  • 电子邮件优势:相比面对面或电话谈判,电子邮件更难施展压力战术和误导性信息,便于买家收集、比较并传递经销商报价,从而掌握谈判主导权。
  • 局限性:此算法不适用于豪华品牌(经销商少,类似垄断)、二手车(每辆车独一无二,无法比较)或经销商数量极少的地区。

经销商行为认知

  • 销售人员角色:销售人员(“销售顾问”)是主要联系人,其动机是“贪婪”(佣金)和“恐惧”(失去交易)。随着谈判深入,“经理”会介入。
  • 常见策略:经销商可能通过延迟回复、不提供书面报价、试图转为电话沟通、添加可选设备等方式施压。书面报价(最好是含车辆识别码VIN的PDF采购协议)是谈判进入实质阶段的关键标志。

算法详细步骤

步骤1:确定目标车辆

明确品牌、车型、年份、配置、外观及内饰颜色。选择热门配置以确保多地经销商有同款车竞争。

步骤2:试驾与初步评估

前往最近经销商试驾,表明暂不购买。若计划置换旧车,可获取一份初步的书面置换评估,但需明确告知仍在比价。

步骤3:估算经销商成本

通过网络查找“经销商发票价”和“厂商返点”。经销商成本 ≈ 发票价 - 返点 - 任何回扣。此数据用于后续谈判参考。

步骤4:(可选)获取贷款预批准

如需贷款,提前从银行获得预批准函,通常比经销商融资更优。

步骤5:列出所有潜在经销商

使用地图搜索目标品牌经销商,列出所有可达范围内的经销商(即使较远,其报价也可用于谈判)。

步骤6:首次批量联系

同一天通过经销商网站“联系我们”表单发送标准化邮件。内容应包括:目标车辆详细规格、要求报出包含所有税费的“最终驶离价”、注明不置换(即使计划置换,分开谈判更简单)、明确沟通方式为电子邮件。避免提供电话号码。

步骤7:处理回复与推进谈判

  • 要求电话:坚持使用电子邮件。
  • 询问底价:回复时略低于估算的经销商成本,并重申车辆需求。
  • 库存不匹配:暂不回复,后续可用于置换谈判。
  • 无明细报价:要求提供详细的最终驶离价分解。
  • 要求定金:拒绝,表明其他经销商不要求。
  • 获得报价:目标是收到包含车辆VIN、最终驶离价明细(售价、税费、手续费、牌照费)的书面报价(PDF为佳)。
  • 坚持原则:不回答不必要的问题(如预算),坚持要求对方回答你的关键问题,始终主导沟通节奏。

步骤8:竞价与压价

  1. 整理所有报价到表格,比较最终驶离价。
  2. 向其他经销商发送当前最佳报价(PDF),询问能否做得更好。
  3. 若获得更低报价,循环此过程。
  4. 关键点:要求提供“厂商建议零售价折扣”或计算“经销商利润”(售价 - 发票价)作为比较基准。利用此信息进行第二轮压价,要求匹配最佳折扣。
  5. 利用杠杆:关注库存时间较长或里程数稍高的新车(如~100英里),经销商可能更愿让利。月末或年末是谈判有利时机。
  6. 持续提醒经销商你正在比较多家报价。

步骤9:选择最佳新车交易

在多家报价的最终驶离价接近时,选择最优者(考虑距离成本)。进行最终通知,设定截止时间,给予其他经销商最后一次机会。

步骤10:置换旧车策略(如适用)

  • 评估置换价值:置换价通常低于私人出售,但提供便利性和安全性。需权衡利弊。
  • 税务影响:在华盛顿州,置换价值可抵扣新车的应税金额,从而影响不同经销商(因所在地税率不同)报价的最终比较。
  • 准备工作:清洗车辆,详细拍摄内外部、里程表、VIN、瑕疵处。获取任何必要维修的估价(可通过保险公司)。
  • 获取“不见实物”评估:向所有经销商(包括无目标新车的)发送邮件,附车辆详情和照片链接,要求其二手车部门提供基于现有信息的“承诺”置换估价。强调希望得到真实评估,而非只为吸引到店的虚高报价。
  • 识别真实评估:经销商若进行认真评估,会询问一些无法从照片获知的关键问题(如是否有烟味)。提供详尽信息,确保估价基于事实,并要求书面承诺此估价在验车前不会降低(除非发生新情况)。

步骤11:获取包含置换的新车报价

获得置换估价后,要求各经销商更新其采购协议,纳入置换价值。再次比较更新后的最终驶离价,重复竞价过程,直至获得最佳组合交易。

步骤12:在经销商处完成交易

  • 准备:打印最终电子邮件协议,带齐置换车辆的所有权证、备用钥匙和保险证明。预约周六临近下班时间到店。
  • 坚持协议:到店后,核实置换估价和新车最终驶离价与邮件一致。拒绝所有附加产品(延长保修、防护涂层等)。试驾新车,核对VIN。
  • 果断行动:若对方试图更改协议条件,可礼貌但坚定地离开,尝试次优报价。签署合同后完成交易。
30. Stress reduction techniques for high stress operations (2023) (health.mil)
32. Windsor Typeface (2018) (fontreviewjournal.com)

Windsor字体 (2018) 摘要

概述

Windsor是一款起源于英国的衬线字体,以其独特甚至古怪的设计风格而闻名。它混合了多种设计影响,既有高雅的气质,又带有几分奇特和趣味性,使其在设计史上占据了一个特别的位置,尤其在传达怀旧基调或配合插画、鲜艳色彩时成为设计师的常用选择。

历史与设计灵感

  • 起源:Windsor于1905年由Eleisha Pechey设计,通过Stephenson Blake铸字厂发布,其历史比Cooper字体家族早几十年。
  • 主要影响:其风格明显受到新艺术运动的影响,体现在笔画的有机形态上,如“R”的蛋形碗状结构、“S”的喙状衬线、“2”的扇形末端和“Q”的卷曲尾部。同时,它也融合了当时更为保守和通用的衬线字体(如Miller & Richard Old Style Antique No. 7)的特征。
  • 设计特点:Windsor试图将新艺术运动的表达性细节,融入到一个更实用的字体包中。它像一个各种想法和风格影响的大杂烩,许多字符都有独特的细节调整,这些“怪异”的设计反而成为了它的默认特征。

字体家族特点

  • 非统一家族:Windsor字体家族的不同字重和字宽感觉像是“表亲”,而非紧密的“兄弟姐妹”。这使得同一设计家族能展现出从圆胖、类似Cooper的粗体维多利亚风格的细体等多种不同气质。
  • 可识别特征:尽管变化多,但仍有一些特征贯穿始终,包括:
    • “n”和“m”独特的、类似滑水道的肩部。
    • “o”的对角线应力感。
    • 向前倾斜并带小尾巴的“a”。
    • “E”和“F”中上提的中臂及向下刺出的衬线。
    • “U”在顶部的收窄和“M”的宽基座。

使用场景与演变

  • 复古与趣味应用:Windsor平滑的边缘和夸张的造型,使其在20世纪60至80年代广泛用于需要表现友好或奇幻感的设计,如玩具和食品包装(例如麦当劳的广告)。其卵形的碗状结构和柔和的触感非常适合食品主题。
  • 当代应用趋势
    1. 粗野主义美学:在简洁、色彩鲜明的设计中,利用Windsor的古怪感作为对比,为其增添温暖和复古熟悉感。
    2. 怀旧符号:常被用作视觉速记,直接指代20世纪70年代的美学,例如《纽约杂志》对《全球概览》的致敬封面。
    3. 编辑与品牌设计:设计师通过各种技巧克服其使用难点,例如:
      • 将文本散布以避免糟糕的字偶距(如Sam Jayne的设计)。
      • 将其置于弧形路径上(如Emergence Magazine的标志),将肩部特点转化为优势。
      • 仔细选择能彰显其特色的字母组合(如Wedge为Drav啤酒设计的“av”组合),创造紧凑的标识。
      • 多个字重混用(尽管少见),或与其他截然不同的字体(如无衬线体、等宽体)并置,以营造特定氛围。

挑战与数字化问题

  • 使用难度:Windsor是一个难以驾驭的字体。其字母形式多变、字母间距冲突频繁(如“b”与“o”的应力差异、“r”与“n”相邻的复杂情况),导致直接使用时常出现不协调。
  • 数字化版本:现有的数字化版本质量参差不齐,普遍存在字偶距不佳的问题,且并非所有版本都包含完整的字重(如UltraHeavy或描边版本)。在网页等数字媒介中使用需要格外小心精细的排版调整。

结论

Windsor是一个未完成的、充满矛盾想法的字体家族,但它极端的特性和带来的限制,也激发了设计师的创造力,使其在过去一个世纪里产生了大量令人印象深刻的应用案例。它不仅是历史的产物,也是考验和提升排版技巧的绝佳工具。

33. Clouds vanish during a solar eclipse (www.sciencealert.com)

核心发现

在日食期间,当太阳被月球遮挡仅15%时,陆地上空的浅层积云会迅速消散,且该现象会持续至日食结束。需要注意的是,并非所有类型的云都会受此影响。

研究背景与方法

该研究由Victor Trees团队(荷兰皇家气象研究所与代尔夫特理工大学)主导。由于地面观测云层存在困难,且以往的卫星观测未将月球阴影对云顶反射率的影响纳入计算,导致云层测量数据存在偏差。为此,研究团队开发了一种校正方法,根据地球表面特定位置太阳被遮挡的比例来修正月球阴影的影响。利用该方法,团队分析了2005年至2016年间非洲大陆上空的三次日食卫星数据,从而得出了上述发现。

科学原理与形成机制

为探究云层消散的原因,团队使用DALES云建模软件进行了模拟,揭示了其背后的物理机制:

  1. 地表降温:阳光被遮挡导致陆地表面迅速冷却(海洋因冷却速度较慢,故该效应仅发生在陆地上)。
  2. 上升气流减弱:地表降温显著减少了温暖空气的上升气流。
  3. 云层无法维持:上升气流是携带水蒸气上升并冷凝形成积云的关键动力。气流停止后,积云便无法维持,直到太阳重新出现并再次加热地面。

气候工程启示与潜在影响

该发现对未来旨在通过遮挡部分阳光来降低地球温度的“气候地球工程”具有重要警示意义:

  • 抵消预期效果:云层本身能够反射阳光并帮助地球降温。如果遮挡阳光的技术方案导致云层减少,可能会部分抵消气候工程的预期降温效果。
  • 破坏天气模式:积云虽非直接的降雨云,但可转化为降雨云。云层的异常消散可能会对降水和整体天气模式产生不利甚至适得其反的影响。研究人员呼吁对这一现象展开进一步的深入调查。
34. Console.delight (frontendmasters.com)

该文章介绍了如何通过 console.logconsole.info 等方法,在浏览器开发者工具的控制台中渲染有限的 CSS、SVG 和 HTML 内容,创造视觉惊喜和品牌展示。其核心是利用 %c 格式化指令为控制台消息添加样式,并通过 background-image 属性嵌入 data:image 格式的 SVG 或其他图像。

关键技术与方法

  1. 基本用法:在 console.logconsole.info 的第一个参数中使用 %c,后跟 CSS 样式字符串来应用样式。
  2. 渲染图像:通过 background-image: url('data:image/...') 将 Base64 编码的 SVG 或其他图像作为背景图嵌入控制台消息。SVG 必须包含 xmlns="http://www.w3.org/2000/svg" 属性。
  3. 渲染 HTML:在 SVG 中使用 <foreignObject> 嵌入 HTML 内容,但需注意限制(如无链接或事件监听器)。
  4. 动画支持:可通过 SVG 动画或 CSS 动画实现动态效果,但需注意控制台消息字符数限制和跨浏览器一致性。

限制与注意事项

  • 浏览器兼容性:Safari 不支持此技术,仅显示原始文本;Firefox 存在高度渲染问题和字符数限制。
  • SVG 限制:每个控制台消息仅支持一个背景图像 URL,且 SVG 内的 url() 引用(如渐变)可能不生效。
  • 布局控制:无法设置控制台元素的宽度为 100%,需使用显式像素尺寸。
  • 性能影响:仅在开发者工具打开时对 GPU 有轻微影响,关闭后无显著负担。

创意应用示例

  • 静态与动态图像:包括 Logo、卡通、动画马等。
  • 文本效果:通过 SVG 或 CSS 实现 3D 文字、ASCII 艺术。
  • 交互限制:无法在控制台中实现点击事件,但可通过调整内边距将 URL 文本对齐到背景图位置。
  • 检测控制台状态:可使用 devtools-detect 等库检测开发者工具是否打开,以触发动画。

总结

该技术是一种渐进增强的“彩蛋”,适用于为用户创造惊喜或品牌展示,虽实用性有限,但能体现前端开发的创意性。建议在生产环境中谨慎使用,并充分测试跨浏览器兼容性。