2024-01-16

50 篇热帖

1. How a software glitch at the UK Post Office ruined lives (www.cnn.com)

事件概述

英国邮政局于1999年引入由富士通开发的Horizon会计软件,用以替代纸质记录。该系统不久后便出现严重故障,频繁错误地显示分支机构账户存在资金短缺。邮政局利用其合同条款和财务法律优势,将责任归咎于管理分支机构的分局经理(sub-postmasters),导致1999年至2015年间,约700人因此被错误定罪,许多人破产、入狱,家庭破裂,部分受害者因绝望而自杀。英国政府将此事件称为本国历史上最严重的司法不公之一。

个人悲剧与系统性问题

  • 软件缺陷:Horizon系统存在“漏洞、错误和缺陷”,在重复计算时错误会翻倍累积,但邮政局往往告知求助的分局经理他们是唯一遇到问题的人。
  • 受害者遭遇:例如,Jo Hamilton的账面显示短缺2000英镑,问题不断累积,最终被指控时金额已达3.6万英镑,她被迫抵押房产偿还;Wendy Buffrey因无法解释的短缺而透支信用卡偿债。许多人被迫在压力下认罪,以避免更重的刑罚。
  • 严重后果:除经济破产外,受害者普遍遭受长期身心健康问题,包括创伤后应激障碍和慢性疼痛。有受害者或其家属因不堪压力而自杀。
  • 责任归咎:律师和受害者指出,尽管IT系统有缺陷,但邮政局的 corporate 行为——包括错误的起诉、调查不力以及对受害者的漠视——是造成悲剧的关键。

法律进展与政府回应

  • 2019年民事裁决:500多名分局经理提起集体诉讼,法院裁定Horizon系统存在缺陷,邮政局败诉。
  • 平反进程缓慢:截至报道时,700名被定罪者中仅93人获得平反,超过2700人申请赔偿。
  • 电视剧催化:2024年初,ITV电视剧《贝茨先生诉邮政局》播出,揭露事件的人道代价,引发公众强烈反响,加速了政府行动。
  • 立法与赔偿:首相苏纳克宣布将迅速立法推翻错误定罪。邮政局已支付超过1.38亿英镑赔偿金,但受害者认为金额不足。

问责与调查

  • 刑事调查:伦敦大都会警察于2020年对邮政局涉嫌欺诈及富士通在起诉中的潜在罪行展开刑事调查。
  • 富士通的角色:作为系统供应商,富士通面临可能被迫赔偿的呼声。该公司表示全力配合独立公共调查并为所扮演的角色致歉。
  • 公共调查:政府已启动独立公共调查,以厘清事件真相、确定责任人,并决定富士通是否应分担赔偿。

核心问题待解

事件揭示了几个关键问责问题:邮政局和富士通内部谁知晓软件问题及知情时间;是否应追究个人刑事责任;以及富士通——这家与英国政府仍有重大合作、价值300亿美元的公司——应承担多大程度的赔偿责任。

2. Many AI safety orgs have tried to criminalize currently-existing open-source AI (1a3orn.com)

这篇文章探讨了多个AI安全组织实际上试图通过政策建议来禁止当前已存在的开源AI模型的现象。作者指出,许多AI安全组织虽然声称只关注未来高风险的AI系统,但其提出的监管标准实际上会将当前已有的开源模型(如Meta的Llama 2)纳入禁止范围。这些组织通常将政策文件定向提供给政策制定者和官员,而未充分向公众说明其目标。

文章列举了多个具体案例:

  1. AI安全中心(Center for AI Safety):在向美国国家电信和信息管理局(NTIA)提交的提案中,建议将训练算力超过10²³ FLOPs、参数超过800亿或在MMLU基准测试中得分超过70%的模型定义为“强大AI系统”,并对其进行严格限制。Llama 2的训练算力超过该阈值,且其微调模型在MMLU上得分也超过70%,因此会被禁止开源。
  2. AI政策中心(Center for AI Policy):该游说组织最初提出的规定要求将已发布的Llama 2纳入监管,近期虽表示采用“更轻量”的方式,但仍提议将训练算力超过3×10²⁴ FLOPs或MMLU得分超过85的模型列为“高风险”并禁止开源,这将把开源模型的能力限制在GPT-4水平以下。
  3. Palisade Research:其负责人杰弗里·拉迪什曾直接呼吁政府阻止Llama 2的发布,称其可能造成数百万甚至数十亿美元的损失。
  4. The Future Society:在其政策文件中将Llama 2归类为需要严格监管的通用AI类型,要求模型提供方必须确保“绝对可信赖性”和具备“回滚与关闭”已部署模型的能力,这对开源模型而言无法实现。该组织甚至将Meta开源Llama的行为称为“特别严重的滥用案例”,并认为Apache许可证中的“不保证用途适用性”条款具有“滥用性”。

此外,文章提到其他组织如SaferAI、PauseAI和StopAI等也持有类似立场,其政策建议实质上会禁止当前的开源模型或大幅限制其能力。作者批评这些组织推动的规则将巩固大公司的垄断地位,阻碍开源AI的发展和AI安全研究,并类比环保运动对核能的反对,认为这可能对AI领域产生类似的负面影响。文章最后指出,开源AI社区需要加强立法倡导,以应对组织完善的反开源运动。

3. High-speed 10Gbps full-mesh network based on USB4 for just $47.98 (fangpenlin.com)

基于USB4的低成本高速全网状网络构建

项目背景与动机

  • 作者作为软件工程师,为降低AWS云服务成本,决定将非关键服务迁移到裸金属服务器。
  • 目标是构建一个低成本、高速的Kubernetes集群,并采用创新的USB4网络互联方案。

硬件选择对比

传统服务器 vs 迷你电脑

  • 1U服务器(如Dell PowerEdge R630):价格低($380),但功耗高(闲置150W,负载300W),运行成本高(月费约$57),噪音大且散热需求高。
  • 迷你电脑(Minisforum UM790 Pro):性价比高($800,64GB内存+1TB存储),搭载AMD Ryzen 9 7940HS处理器,功耗极低(闲置6W,负载80W),运行成本低(月费约$15)。
  • 基准测试显示,UM790 Pro性能优于三年前的高端PC(AMD Ryzen 9 3950x),兼具价格和能效优势。

USB4网络方案

需求与问题

  • 集群节点间需要高速互联(传统1G以太网速度不足,2.5G以太网交换机品牌质量存疑)。
  • 发现UM790 Pro配备两个USB4端口(理论40Gbps),决定采用USB4全网状连接替代以太网。

成本与效果

  • 仅花费$47.98购买两个USB4雷电桥接器和一根USB4线缆。
  • 实测网络速度达11Gbps,远高于传统以太网方案(成本更高且速度更低)。

技术实现

网络配置

  • 使用NixOS和systemd-udevd配置Thunderbolt桥接网络。
  • 为每个USB4链路分配独立的IP地址和对端IP,实现节点间直接通信。
  • NixOS提供可复现的Linux环境配置,简化了系统管理和故障排查。

测试结果

  • 通过iperf3测试,网络吞吐量达到11Gbps(作者提到他人实现过20Gbps,但未达理论40Gbps,可能受硬件或Intel策略限制)。

总结与展望

  • 成功以极低成本($47.98)构建了高速全网状网络,适合边缘计算或家庭实验室。
  • 提出未来探索方向:多节点拓扑(如环形或链式)、USB4交换机设计、以及Thunderbolt网络的普及化潜力。
  • 作者鼓励社区分享相关实践,并计划进一步研究USB/Thunderbolt网络的扩展应用。
4. Ask HN: Where can I find good legal documents?

本帖是Hacker News上一个关于寻找优质法律文件模板的讨论。发帖人每次启动新(副业)项目时,为网站设置《服务条款》和《隐私政策》等文件感到头痛,并分享了几个已知资源,寻求更多类似推荐。

主要推荐资源

  • Common Paper:其联合创始人回复称,其文件(如NDA、TOS、SLA等)免费,并基于知识共享CC BY 4.0许可协议发布,已被下载超过17,000次,用于完成价值数百万美元的交易。目前主要专注于B2B软件公司,但表示未来会按行业逐步扩展。
  • YC Safe:用于融资。
  • Clerky:用于融资、雇佣等。

社区提供的其他资源与建议

  1. 针对特定领域

    • 网站合规iubenda 提供隐私政策、条款、Cookie横幅等生成服务,并有免费起步方案。
    • 条款与隐私政策TermsFeed 被提及为一个起点。
    • 大型律所免费工具:如 CooleyGoLatham DriveWilson Sonsini 的条款清单生成器等。
    • 就业文件SHRM 的“工具和样本”资源。
    • 一般性法律合同techcontracts.comRocket Lawyer(付费,有丰富文档库和律师支持)、WilmerHale 的文档生成器。
    • 参考上市公司文件SEC数据库 是免费的公开数据源,付费服务如 Bloomberg Law 可视为其高级搜索引擎。
  2. 关于是否需要律师的核心争论

    • 主张必须聘请律师的观点
      • 免费/廉价模板很难完全符合你的具体业务背景(如辖区、保险要求、必要条款缺失等)。
      • 当问题发生时,依赖网络模板可能导致严重后果。
      • 聘请律师是必要的商业开支,类似纳税。
      • 特别是涉及高风险领域(如监护权争议、医疗设备)或当企业拥有责任保险/专业赔偿保险时,使用模板可能被视为未合理减损,影响理赔。
      • “责任限制”条款的撰写需要专业经验,粗劣的“概不负责”声明可能在法庭上被法官无视。
    • 主张可灵活使用模板的观点
      • 对于小型、简单或可能不会发展的业务,使用模板是合理的资源利用。
      • 许多律师本身也使用模板,只是收费更高。
      • 一个常见的发展路径是:初期使用模板 → 业务发展后(如有收入或融资)聘请律师重新审阅和修订。
      • 在双方地位平等、经验丰富且共识明确的情况下,标准化的模板协议可能已足够。
    • 中间共识:模板可以作为优秀的起点或草稿,但最终文件必须根据你的具体情况进行审阅和修改
  3. 重要注意事项

    • 高风险领域需极度谨慎:多位用户强调,在儿童监护权等家庭法事务上,绝对不要依赖模板或AI,必须寻求专业律师的帮助,因为利害关系重大且结果难以预料。
    • 地域差异:法律文件高度依赖辖区(国家、州),适用于A地的模板可能完全不适用于B地。即使使用模板,也需确保其符合当地法律。
    • 国际业务:跨国合同涉及复杂的法律选择和管辖权问题,但实践中,针对小型企业,由于诉讼成本高昂,通常更注重诚信和预付款,而非完美的法律文件。
    • 善用律师咨询:即使决定使用模板,事先自行研究和草拟也能极大提高后续咨询律师的效率和价值。

总结

帖子反映了创业社区在法律文件需求上的普遍痛点。解决方案多样,从完全免费的开源模板(如Common Paper)到付费的专业服务。一个关键共识是:法律文件的“好坏”取决于具体场景。对于标准、低风险的需求,优质模板是高效且经济的选择;但对于高风险、复杂或高度定制化的业务,投资专业法律意见至关重要。社区提供的资源列表涵盖了从初创公司文档到网站合规工具的多种需求。

5. Speedbump – a TCP proxy to simulate variable network latency (github.com)

Speedbump:模拟可变网络延迟的 TCP 代理

Speedbump 是一个用 Go 语言编写的 TCP 代理工具,专门用于模拟变化的网络延迟。

主要功能

该工具的核心功能是通过配置不同的延迟模式(如正弦波、锯齿波、方波、三角波等)来动态模拟网络延迟,并可同时组合多个延迟加法器。用户可通过命令行参数精确控制延迟的基础值、幅度、周期等属性。

安装方式

  1. 预编译二进制文件:从每个版本的发布页面下载对应平台的二进制文件。
  2. 从源代码构建:克隆代码仓库后执行 go build
  3. Docker 容器:使用 kffl/speedbump 镜像直接运行。

基本使用示例

  • 正弦波延迟:监听端口 2000,将 TCP 流量代理到 localhost:80,设置基础延迟 100ms,正弦波幅度 100ms(延迟在 0-200ms 间变化),周期 1 分钟。
    speedbump --latency=100ms --sine-amplitude=100ms --sine-period=1m --port=2000 localhost:80
    
    使用 Docker 运行时需加上 docker run --net=host
  • 锯齿波延迟:设置基础延迟 300ms,锯齿波幅度 200ms,周期 2 分钟。
    speedbump --latency=300ms --saw-amplitude=200ms --saw-period=2m --port=2000 localhost:80
    

命令行参数参考

主要参数包括:

  • --host:监听的 IP 或主机名(默认为所有网络接口)。
  • --port:监听端口(默认 8000)。
  • --latency:添加到代理流量的基础延迟(默认 5ms)。
  • --buffer:TCP 读取缓冲区大小(默认 64KB)。
  • --queue-size:延迟队列大小(默认 1024)。
  • --log-level:日志级别(支持 DEBUG, TRACE, INFO, WARN, ERROR)。
  • 延迟波形参数--sine-amplitude/--sine-period--saw-amplitude/--saw-period--square-amplitude/--square-period--triangle-amplitude/--triangle-period,分别用于配置正弦波、锯齿波、方波和三角波的幅度与周期(默认值均为 0)。
  • 必需参数:<destination>,以 host:port 格式指定代理目标地址。

作为库使用

Speedbump 可以通过其 lib 包作为 Go 库集成到其他项目中,具体信息可参考 lib 目录下的 README 文件。

许可证

项目由 Paweł Kuffel 于 2022 年创建,采用 Apache 2.0 许可证。其 Logo 使用了由 Renee French 设计并采用 Creative Commons 3.0 Attributions 许可的 Go Gopher 吉祥物。

6. SQLite 3.45 released with JSONB support (www.sqlite.org)

SQLite 版本更新摘要

本文档记录了 SQLite 从早期版本到最新版本(3.45.0)的主要变更。重点在于概述各版本的核心功能增强、查询优化、命令行界面(CLI)改进、新SQL函数、安全性与健壮性提升,以及性能优化。

SQLite 3.45.0 核心特性:JSONB 支持

SQLite 3.45.0 最重要的特性是引入了 JSONB 支持。这是一种可序列化的内部JSON解析树格式,能够存储在数据库中,避免每次使用JSON值时重复解析,从而提升性能。

  • 新SQL函数:添加了 json_array_insert()jsonb_array_insert() 函数。
  • JSON函数增强:所有JSON函数已重写以使用新的JSONB格式。JSON生成函数现在生成二进制JSONB而非JSON文本。json_valid() 函数增加了可选的第二个参数。
  • 查询规划器改进:改进了对 EXISTS 优化为 JOIN 的优化;改进了忽略低质量索引的能力;增加了对 SQLITE_LIMIT_PARSER_DEPTH 的支持。
  • CLI增强:改进了UTF-8内容显示;自动检测 .dump 脚本回放并调整设置;分号在点命令末尾被忽略(潜在不兼容)。
  • 新C接口:添加了 sqlite3_str_truncate()sqlite3_str_free() 等接口;增加了 SQLITE_PREPARE_FROM_DDL 选项和 SQLITE_UTF8_ZT 常量。
  • 其他:增加了 SQLITE_RESULT_SUBTYPE 属性;默认启用了 SQLITE_DIRECT_OVERFLOW_READ 优化;增加了 SQLITE_MAX_PAGE_COUNT 的默认值。

其他重要版本特性

SQLite 3.53.0

  • 修复了WAL重置数据库损坏错误
  • 添加了查询结果格式化库(QRF),用于在固定宽度字体的屏幕上格式化SQL查询结果,提升了CLI的显示能力。
  • 新SQL功能:增强了 ALTER TABLE 以支持添加和删除 NOT NULLCHECK 约束;添加了 REINDEX EXPRESSIONS 语句。
  • 新SQL函数json_array_insert()jsonb_array_insert()
  • CLI增强:对 .mode 命令进行了重大改进;默认使用QRF以Unicode框线字符显示查询结果。
  • 查询规划器改进:对 EXCEPTINTERSECTUNION 总是使用排序和合并算法;改进了大星型模式连接的连接顺序选择。
  • 会话扩展:添加了新接口,允许应用程序向 sqlite3_changegroup 对象一次添加一个更改。
  • 浮点数↔文本转换改进:重新实现以提高性能;默认舍入到17位有效数字。
  • 其他:添加了自愈索引功能;为 sqlite3_rsync 添加了 -p|--port 选项;停止了对Windows RT的支持。

SQLite 3.51.0

  • 新增宏SQLITE_SCM_BRANCHSQLITE_SCM_TAGSSQLITE_SCM_DATETIME
  • 新JSON函数jsonb_each()jsonb_tree(),当类型为数组或对象时返回JSONB。
  • 内置扩展carraypercentile 扩展现已内置到合并文件中。
  • TCL接口增强:为 eval 命令添加了 -asdict 标志;用户定义的函数现在可以中断返回SQL NULL。
  • CLI增强:提高了 .timer 的精度;增强了“box”和“column”格式模式以处理宽字符;添加了 --ifexists 选项。
  • 性能增强:减少了提交读事务的CPU周期;提前检测返回零行的连接;避免评估标量子查询。

SQLite 3.50.0

  • 新SQL函数unistr()unistr_quote()
  • SQL函数增强:对于内置 printf() 中的 %Q%q 转换,使用备用格式标志 "#" 可将控制字符转换为反斜杠转义。
  • JSON函数更改:修复了JSON5中 "\0" 转义后不能跟数字的限制;当 json_group_object()LABEL 参数为 NULL 时,省略该元素;优化了 jsonb_set()jsonb_replace(),在更改大型JSONB对象内部时尽量保持对象大小不变。
  • sqlite3_rsync 增强:移除了数据库必须处于WAL模式的限制;增强了同步协议以减少网络带宽。
  • CLI增强:避免直接输出大多数控制字符;.dump 命令的输出使用新的 unistr() SQL函数编码特殊字符。

SQLite 3.49.0

  • 查询规划器增强:改进了查询时索引优化以支持 WITHOUT ROWID 表;改进了大型星型查询连接的查询计划;在估计成本相同的多个查询中,选择每行字节数更少的查询。
  • 新SQL函数:增强了 iif() 函数以接受任意数量的参数。
  • sqlite3_db_config() 选项SQLITE_DBCONFIG_ENABLE_ATTACH_CREATESQLITE_DBCONFIG_ENABLE_ATTACH_WRITESQLITE_DBCONFIG_ENABLE_COMMENTS

SQLite 3.48.0

  • 重构了“configure”脚本,使用Autosetup替代GNU Autoconf。
  • 改进了 EXPLAIN QUERY PLAN 输出
  • 允许 iif() 函数的两参数版本,并允许 if() 作为替代拼写。
  • 添加了 .dbtotxt 命令到CLI

SQLite 3.47.0

  • 允许在 RAISE 函数的第二个参数中使用任意表达式
  • ->> 操作符支持负索引,从右侧计数访问数组元素。
  • FTS5改进:添加了 fts5_tokenizer_v2 API 和 locale=1 选项;添加了 contentless_unindexed=1 选项。
  • 性能优化:改进了与 IN 操作符关联的子查询的重用;在 IN 操作符的右侧子查询上使用布隆过滤器。

SQLite 3.46.0

  • 增强了 PRAGMA optimize,使其更易于使用。
  • 日期和时间函数增强strftime() 支持新格式;添加了 ceilingfloor 修饰符。
  • 查询规划器改进:“VALUES-as-coroutine”优化使具有数千行 VALUES 子句的 INSERT 语句解析和运行速度提高一倍。

SQLite 3.45.3

  • 修复了一个长期存在的错误,该错误可能导致 UPSERT 触发时 UPDATE 触发器的 old.* 值不正确。
  • 修复了 sum() 函数在应返回 Infinity 时返回 NULL 的错误

查询规划器改进摘要

SQLite 在多个版本中持续改进查询规划器,主要包括:

  • 更好地使用覆盖索引。
  • 改进对连接顺序的选择,特别是在星型模式中。
  • 增强 EXISTSJOIN 的优化。
  • 改进省略无操作连接优化。
  • 允许在分组依据和排序依据表达式相同但排序顺序不同时使用索引优化。
  • 允许虚拟表在结果集与 ORDER BY 子句不完全匹配时优化 DISTINCT
  • 在部分索引扫描中,如果 WHERE 子句暗示表列为常量,则用常量替换出现的该表列。

命令行界面(CLI)增强摘要

CLI 在多个版本中得到显著增强:

  • 输出模式改进:增加了“box”、“json”、“markdown”和“table”等输出模式;“column”模式自动扩展列宽;数值默认右对齐。
  • 新命令:添加了 .dbconfig.connection.import(支持CSV)、.read(接受管道输入)、.clone.save.testcase.check.system.once.progress.filectrl.www 等命令。
  • 增强功能.timer 命令精度提高到微秒;.imposter 命令提供只读伪装表;.schema 命令显示虚拟表结构;.dump 命令接受多个LIKE模式参数;自动处理 .dump 脚本回放。
  • 安全性--safe 命令行选项禁用可能引起副作用的点命令和SQL语句。

新SQL函数摘要

多个版本引入了重要的新SQL函数:

  • JSON相关json_patch()json_pretty()json_group_array()json_group_object()json_array_insert()jsonb_array_insert()jsonb_each()jsonb_tree()
  • 日期和时间unixepoch()timediff();添加了 ceilingfloor 修饰符;增强了 strftime()
  • 字符串处理concat()concat_ws()string_agg()unistr()unistr_quote()unhex()
  • 数学函数octet_length()decimal_pow2()decimal_exp();在3.35.0中添加了内置数学函数(需编译时启用)。
  • 其他iif()(或 if())、total()format()(重命名自 printf())、likelihood()likely()unlikely()randomblob()hex()unicode()char()

安全性与健壮性改进

  • 增强了 SQLITE_DBCONFIG_DEFENSIVE 设置,以防止通过常规SQL创建损坏的数据库文件。
  • 改进了 PRAGMA integrity_checkPRAGMA quick_check,以检测更多类型的损坏,包括CHECK约束违反、顺序错误的行ID、唯一约束违反等。
  • 增强了对损坏数据库文件的抵抗能力,包括处理损坏的JSONB输入、处理损坏的FTS5索引等。
  • 修复了多个可能导致数据库损坏的错误,特别是在 AUTOVACUUMVACUUM、事务回滚和 SAVEPOINT 操作期间。
  • 改进了WAL模式的恢复机制,即使在存在活动读事务的情况下,也能从不一致的共享内存文件中恢复。
  • 添加了 SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER 选项,以控制两参数版本的 fts3_tokenizer() SQL函数的启用/禁用,增强安全性。

性能优化摘要

SQLite 在性能方面持续优化:

  • 减少CPU周期使用:通过多项微优化,在典型工作负载上减少CPU周期使用约2%至7%。
  • 改进查询执行:优化了 ORDER BYLIMIT 查询;改进了 OR 优化;优化了 IN 操作符的处理;使用布隆过滤器加速大型分析查询。
  • 内存管理:改进了页面缓存管理;添加了 SQLITE_CONFIG_SMALL_MALLOC 配置设置;优化了 lookaside 内存分配器。
  • 磁盘I/O:默认启用 SQLITE_DIRECT_OVERFLOW_READ 优化;优化了 UPDATE 操作,避免不必要的磁盘写入;改进了WAL模式下的锁原语。
  • 构建优化:Lemon解析器生成器生成更小、更快的解析器;多项编译时优化。

结论

SQLite 通过一系列版本迭代,不断增强其功能、性能、安全性和易用性。从引入JSONB支持、改进查询规划器、增强CLI,到添加新的SQL函数和提升数据库完整性检查,SQLite 持续演进以满足现代应用程序的需求。开发者应查阅详细版本日志以获取完整变更列表。

7. Modeless Vim (github.com)

Modeless Vim 配置总结

目的与目标用户
该仓库中的配置文件将 Vim 转变为无模式编辑器,支持标准键绑定(如 Ctrl+S 保存、Ctrl+C 复制),旨在为习惯图形编辑器(如 VSCode)但偶尔需在终端使用编辑器的用户提供便捷操作。

无模式与有模式编辑器区别

  • 无模式编辑器:字母键直接输入文本,命令通过键绑定执行(如 nano 及大多数 GUI 编辑器)。
  • 有模式编辑器:默认 Vim 有多种模式(如命令模式、插入模式、可视模式),需记忆特定命令。

常见问题解答

  • 为何不学习 Vim 命令?非日常使用易遗忘。
  • 为何不用 nano?Vim 功能更强大(如语法高亮支持多种语言)。

主要功能

  1. 标准键绑定支持:包括文件操作(保存、打开)、搜索替换、选择复制粘贴等。
  2. 信息栏与状态栏:顶部信息栏显示键绑定提示,底部状态栏展示文件名、光标位置、用户及时间等信息。
  3. 默认优化设置:提供合理的编辑器配置选项。
  4. 字体灵活性:默认需 Nerd 字体(带图标的等宽字体),但提供 ASCII 版本以兼容标准终端字体。

安装与配置

  1. 克隆仓库:运行 git clone --sparse https://github.com/SebastianMuskalla/ModelessVim.git ~/.vim 以避免下载截图文件。
  2. 符号链接:若 Vim 未自动检测 vimrc,可创建符号链接 ln -s ~/.vim/modeless.vimrc ~/.vimrc
  3. sudoedit 支持:在 .bashrc 等文件中添加 export EDITOR="vim"
  4. 保留有模式 Vim:通过提供的 vi 脚本,可保留原 Vim 作为 vi 命令使用。

键绑定概览

  • 文件操作:Ctrl+Q(关闭所有标签)、Ctrl+W(关闭当前标签)、Ctrl+O(打开文件)、Ctrl+S(保存)。
  • 搜索替换:Ctrl+F(查找)、F3/F4(导航结果)、Ctrl+R(替换)。
  • 编辑操作:Ctrl+A(全选)、Shift+方向键(选择文本)、Ctrl+C(复制)、Ctrl+X(剪切)、Ctrl+V(粘贴)。
  • 其他:Ctrl+Z(撤销)、Ctrl+Y(重做)、Ctrl+L(切换行号)、F2(切换粘贴模式)。

仓库文件结构

  • modeless.vimrc:无模式 Vim 主配置。
  • modeful.vimrc:有模式 Vim 配置。
  • colorscheme.vimrc:配色方案(适配深色背景)。
  • keybinds.vimrc:键绑定定义。
  • infoline_nerdfont.vimrc / infoline_ascii.vimrc:信息栏配置(Nerd 字体或 ASCII 版)。
  • statusline_nerdfont.vimrc / statusline_ascii.vimrc:状态栏配置(Nerd 字体或 ASCII 版)。
  • options_basic.vimrc / options_modeless.vimrc:基础选项配置。
  • vimrc:自动加载无模式配置的入口文件。
  • virc:加载有模式配置的文件。
  • vi:Shell 脚本,用于以有模式 Vim 运行 vi 命令。

测试环境
配置已在 Vim 8.2(Debian 11 on WSL2 on Windows 10 21H2)中测试。

许可证
采用 MIT 许可证,开源免费使用。

8. Japan's Comfort Food: The Onigiri (one-from-nippon.ghost.io)

日本舒适食品:饭团(Onigiri)

饭团(Onigiri),通常译为“饭团”,字面意为“握一把米饭”,是日本原生的快餐,具有制作快速、食用便捷、价格实惠、唤起家的感觉且美味的特点。基本形式仅由米饭和盐组成:煮熟米饭,加盐调味,轻轻捏约100克米饭成三角形。为增添风味,可包裹海苔(干燥海藻),带来脆感和对比口味。饭团还可包含馅料,如梅干、柴鱼或调味海苔,或将食材混入米饭中。制作简单但精通复杂,食用方式也有争议,如冷食或温食偏好。

考古发现显示类似饭团的食物有约2000年历史。现代饭团的崛起源于二战后日本经济奇迹。战后重建期间,全国工作繁忙,超市开始销售方便食品,饭团于1952年首次在超市销售,从家庭自制食品转变为商业产品。

便利店(Konbini)的发展与饭团流行紧密相关。便利店提供新鲜、健康、价格合理的食品,重点销售便当和饭团。7-Eleven是早期销售饭团的便利店,主打传统口味如梅干、明太鱼子和昆布,竞争对手迅速跟进,引发“饭团战争”,竞争焦点包括新鲜度、口味、多样性和海苔质量。

海苔包装是技术挑战:日本关东(东京等地)和关西(大阪等地)对海苔偏好不同(脆或湿)。工程创新解决了“保持海苔脆而米饭湿润”的问题。早期使用“分离法”,采用双壁包装,海苔单独放置,顾客手动包裹。1980年代Shinobu Foods发明“降落伞法”,用拉绳分离海苔和饭团,但油脂影响口味。7-Eleven随后推出“切割胶带法”,通过撕开垂直胶带打开包装,无油脂问题,成为现代包装基础。进一步改进为“切割胶带波浪法”,使撕开更便捷,体现了日本工程实力。

饭团是多功能、低维护食物,在自然灾害中常被制作分发,如2011年福岛灾难时自卫队制作饭团。日本每年消费数十亿个饭团,新口味和组合不断推出,但始终保持熟悉感,彰显其持久文化价值。

9. Ruby 3.3 on Rails 1.0 (nashby.github.io)

Ruby 3.3 on Rails 1.0 摘要

本文记录了在2024年1月,尝试在最新的 Ruby 3.3 环境上运行古老的 Rails 1.0 框架的实验过程。目标是探索可行性,并通过一系列修改至少达到显示标志性欢迎页面的状态。

主要挑战与修复过程

作者从使用 Bundler 安装 Rails 1.0 开始,随后在执行命令时遇到了一系列由于 Ruby 语言和库演进导致的兼容性问题,并逐一进行了修复:

  1. 语法变更:修复了 case/when 中使用冒号 : 替代 then 的过时语法。
  2. 移除的标准库:替换了已从 Ruby 中移除的 parsedate 库,改用 DateTime.parse
  3. 块变量语法:修复了在块参数中直接对哈希赋值的过时语法,改为显式赋值。
  4. 类型错误:解决了由于 Array#map 现在返回 Enumerator 而非数组导致的连接错误,通过添加 .to_a 转换修复。
  5. 常量重命名:将 Config::CONFIG 更新为现代的 RbConfig::CONFIG
  6. 方法废弃:将已废弃的 File.exists? 替换为 File.exist?
  7. 绑定对象问题:在模板文件生成代码中,遇到 Cannot create Binding object for non-Ruby caller 错误,通过将 binding 改为 Kernel.binding 解决(原因未知)。
  8. 加载路径变更:将基于 __FILE__require 改为 require_relative 以适应新的加载机制。
  9. 参数默认值错误:修复了方法参数默认值引用自身(def method(param = param))导致的循环引用错误。
  10. 依赖的变更:解决了因 bigdecimalrexmlnet-smtp 等库不再默认包含或需显式要求而导致的加载错误,并相应地添加了 gem 依赖。
  11. 字符串编码:修复了正则表达式中多字节转义语法以适应 Ruby 1.9+ 的编码规则。
  12. 移除的组件:通过配置跳过了已不存在的 action_web_service 框架组件。
  13. 块参数语法:修正了 .map { |(param, )| } 中多余的逗号,使其符合当前语法。

结果

经过上述修改后,作者成功使用 bundle exec ruby script/server -p 3001 命令启动了 WEBrick 服务器,并在浏览器中看到了 Rails 1.0 的欢迎页面。

结论

实验证明,虽然需要大量针对性修改以适应现代 Ruby 的语法和库变化,但在 Ruby 3.3 上运行 Rails 1.0 并达到基础功能是可行的。作者提供了修改后的代码仓库链接(https://github.com/nashby/rails-from-the-past),但声明不会继续深入修复以使其完全正常工作。

10. Is Google Getting Worse? A Longitudinal Investigation of SEO Spam in Search [pdf] (downloads.webis.de)

谷歌搜索质量在变差吗?——SEO垃圾信息的纵向研究

文档信息

  • 标题:Is Google Getting Worse? A Longitudinal Investigation of SEO Spam in Search
  • 创建工具:LaTeX with hyperref
  • 创建日期:2024年4月3日
  • 生成工具:pdfTeX-1.40.25

说明

该文档为一篇研究论文的PDF文件。由于提供的内容为PDF的原始二进制/压缩编码数据,无法从中提取可读的文本内容进行完整总结。

从文件元数据和结构可以推断:

  • 研究主题:这是一项关于谷歌搜索引擎中SEO(搜索引擎优化)垃圾信息的纵向调查研究,探讨谷歌搜索质量是否随时间推移而下降。
  • 涉及图表:文档包含多个图表(figures),其中包括名为"sites-across-time-final"的图表(关于网站随时间变化的数据),以及字体测试页面等内容。
  • 研究方法:该研究采用纵向(longitudinal)方法,即在不同时间点对搜索引擎结果中的SEO垃圾信息进行跟踪和分析。
  • 研究范围:从文件结构看,文档包含关于搜索引擎(search)、SEO垃圾信息(spam)和网站在搜索结果中变化的数据分析。

如需获取论文的完整内容,建议访问原始论文链接或通过学术数据库(如Google Scholar)搜索该论文标题获取可读版本。

11. A woman bought a vintage dress. It had a secret pocket with a mysterious note (www.cnn.com)

这篇文章记录了一件维多利亚时期连衣裙中隐藏的神秘纸条的解密过程。主要内容如下:

发现与谜题

  • 萨拉·里弗斯·科菲尔德于2013年在缅因州的古董市场以100美元购得一件1880年代的青铜色丝质连衣裙。
  • 连衣裙的秘密口袋中藏有两张写有“Bismark, omit, leafage, buck, bank”和“Calgary, Cuba, unguard, confute, duck, Fagan”等词句的纸张。
  • 纸张上标有时间标记,连衣裙标签上写着名字“贝内特”。
  • 这些神秘的词汇引发了网络爱好者多年的猜测,但无人能解。

破解过程

  • 加拿大曼尼托巴大学的研究员韦恩·陈于2018年注意到此谜题。他排除了加密电报、爱情密码或内战密码等多种推测。
  • 在研究19世纪电报时代的气象代码后,他于去年初取得突破。
  • 陈发现,这些词语并非为保密而加密,而是美国陆军通信兵团(当时负责国家气象服务)使用的电报气象报告缩写代码
  • 该代码旨在节省电报费用(按字计费),每个词代表特定地点和时间的详细气象数据(如气温、气压、露点、降水、风速等)。
  • 例如,“Bismark”指北达科他州的俾斯麦观测站;“omit”代表特定温度和气压值;“leafage”指晚间10点的露点温度等。
  • 该代码设计复杂,特定的辅音-元音组合代表特定的数值。

结果与意义

  • 通过历史气象地图,陈确定了代码记录的精确日期为1888年5月27日
  • 此次解密揭示了19世纪末人们如何通过电报快速获取天气信息,这与如今便捷的天气应用形成对比。
  • 连衣裙主人“贝内特”的身份以及她为何将气象代码藏在秘密口袋中,仍是未解之谜。但研究者们成功解开了连衣裙最大的秘密。
12. Passwordless: a different kind of hell? (jcarlosroldan.com)

文章概述

该文章标题为《Passwordless: a different kind of hell?》(无密码:另一种地狱?),预示其核心内容将探讨无密码认证技术可能带来的问题与挑战。

内容摘要

尽管提供的文本片段本身是一个网页端的用户订阅表单(提示用户输入姓名和邮箱地址,并说明信息将保存于浏览器中以便下次使用),但结合文章标题可以推断,本文主题很可能围绕“无密码登录”这一趋势展开,并对其进行批判性或警示性的分析。

  • 核心议题:文章可能旨在揭示,在看似便捷、安全的无密码方案背后,可能存在新的风险、用户体验问题或技术依赖,从而陷入“另一种地狱”。
  • 可能涵盖的内容方向:根据标题推断,文章可能讨论无密码认证带来的新安全威胁、对用户隐私的影响、技术实施的复杂性,或是其未能真正解决的根本问题。
  • 内容片段说明:所提供的文字是文章页面上的一个功能组件,可能用于读者订阅更新或注册服务,本身不构成文章的论述主体,但体现了文章所在的网页环境。

总结

本文的核心观点将围绕对无密码技术的质疑展开,旨在提醒读者在拥抱新技术便利的同时,需审慎评估其可能引入的新型风险与局限。

13. Why new hires often get paid more than existing employees (bloomberry.com)

文章揭示了企业中新员工薪资常高于老员工的现象,并分析了五个主要原因及员工的应对策略。

一、现象背景 作者在S&P Capital IQ工作时,发现同岗位新同事薪资比自己高出40%(多4万美元),感到不满后离职。尽管公司后续提出升职加薪挽留,但信任已受损。这引出了薪资不公的普遍问题。

二、五大原因

  1. 企业有人员流动目标:部分公司(如某些大型科技企业)会定期淘汰绩效末尾的员工,或默许老员工因薪资不满而离职,认为这有助于优化团队。
  2. 加薪预算僵化,招聘预算更灵活:大公司每年加薪幅度通常设有上限(如与通胀挂钩),导致老员工薪资增速滞后于市场。而招聘新员工时预算更宽松,为吸引人才可直接开出市场价甚至更高薪资。
  3. HR忽视长期影响:招聘团队为完成招聘指标可能高薪挖人,但往往低估因薪资不公导致老员工流失所带来的隐性成本(如招聘、培训、生产力损失)。
  4. 外部经验被高估:企业常认为从竞争对手或外部引入的“新鲜血液”能带来新思路,从而给予更高薪酬,而低估内部员工的经验与价值。
  5. 解决留人问题存在惰性:员工留存是复杂难题,涉及薪酬结构、管理层级等多方协调,且难以量化成本,因此常被搁置;而招聘新员工必须面临市场竞争,迫使企业必须提供有竞争力的薪资。

三、员工应对建议

  1. 了解公司薪酬体系:先询问公司薪酬哲学、决定机制及薪资对标水平(如是否对标市场75分位),明确自身薪资差距与原因。
  2. 与上级坦诚沟通:避免直接要求加薪,而是以探讨形式进行:列出自身贡献与成果,说明与市场或内部同事的薪资差距,询问达到加薪标准需完成的具体目标或技能提升。
  3. 提供竞争性录用通知(作为最后手段):若沟通无效,可谨慎出示外部录用通知作为谈判筹码,表明留任意愿但希望薪资更公平。若公司仍不调整,则建议考虑外部机会。

总结:薪资不公源于企业薪酬机制僵化、短期目标导向及对留存问题的忽视。员工应主动了解规则、理性沟通,必要时通过外部机会争取应得报酬。

14. Lichee Console 4A – RISC-V mini laptop: Review, benchmarks and early issues (3.14.by)

Lichee Console 4A 是一款基于 RISC-V 架构的迷你笔记本电脑。其采用铝制机身,尺寸为 185 x 140 x 19 mm,重 656 克。硬件配置包括平头哥 TH1520 四核 RISC-V SoC(主频限制在 1.5GHz),最高支持 16GB DDR4 内存和 128GB eMMC 存储,并配备一个通过 USB 3.0 转接的 42mm SATA M.2 SSD 插槽。它拥有一块 1280x800 分辨率的 IPS 显示屏、一个 HD 摄像头,并可通过 mini-HDMI 输出视频。电池为 2S 3000mAh,可通过 USB-C(5V/2.2A)或 12V 圆形接口充电。

在性能方面,TH1520 的 CPU 性能略低于树莓派 4,但作者认为对其使用场景而言足够。主要问题在于静态功耗过高(闲置时约 6W),导致续航短(约 2.5 小时)且充电缓慢。热成像显示,板载的 USB 3.0 集线器和 USB 转 SATA 适配器芯片是主要耗电源。动态功耗表现则与树莓派 4 相当。

连接性方面,WiFi 实测速度约为 122/115 Mbps,有线以太网可达 925/925 Mbps。存储测试中,eMMC 顺序读写尚可,但随机性能较弱;高速 MicroSD 卡因信号路径问题会出现不稳定。

软件预装 Debian 12 (RISC-V 64位)。目前存在多项软件缺陷,包括蓝牙配对失败、无睡眠功能、屏幕亮度调节异常(后通过安装 pkexec 部分解决)以及高静态功耗的电源管理问题。作者指出,由于 SoC 本身 IO 接口不足,厂商添加的额外接口芯片带来了额外的静态功耗。

总体而言,作者对 Lichee Console 4A 的体验评价为正面但谨慎,认为它目前更像一个适合爱好者和开发者的产品,而非开箱即用的生产力工具。硬件存在一些不致命但令人不快的缺陷,而软件优化尚有很长的路要走。他对电池安全性有所顾虑,并对 RISC-V 平台的未来(如即将推出的 Milk-V Oasis)表示期待。

15. Filecoin Foundation Successfully Deploys IPFS in Space (fil.org)
16. Bug Thread (xkcd.com)

文章内容摘要:
本文列举了作者欣赏的漫画作品,包括Three Word Phrase、SMBC、Dinosaur Comics、Oglaf(NSFW)、A Softer World、Buttersafe、Perry Bible Fellowship、Questionable Content、Buttercup Festival、Homestuck及Junior Scientist Power Hour。

此外,文中以幽默方式描述了xkcd.com的推荐浏览环境:需使用Netscape Navigator 4.0或更低版本,在Pentium 3±1模拟器(通过JavaScript于Apple IIGS上运行)中访问,屏幕分辨率设为1024×1。同时要求启用广告拦截器、禁用高温干燥模式、关闭设备的飞行模式并切换至“船模式”,并出于安全考虑建议浏览时保持大写锁定开启。

18. Fossify – Open-source fork of Simple Mobile Tools (github.com)

Fossify – 简单移动工具的开源分支

Fossify 是一组注重隐私、开源且无广告的移动应用程序。它作为已停止维护的 Simple Mobile Tools 的分支项目而诞生,旨在延续其理念,将简单且注重隐私的技术带给每个人。

核心特点与参与方式

  • 宗旨:提供隐私优先、无广告的开源应用。
  • 获取参与途径
    • 若遇到影响多个应用的问题,可查阅一般问题
    • 进行讨论或分享想法,请至一般讨论区
    • 若希望协助代码开发或翻译,请访问相关链接。
  • 问题与反馈:如有疑问或需了解更多,可在讨论区发起讨论或联系 hello@fossify.org

主要应用列表(部分展示)

以下是 Fossify 生态中的部分核心应用,均使用 Kotlin 开发,遵循 GPL-3.0 许可证:

  1. 图库:用于浏览照片和视频,无干扰。
  2. 日历:具有事件、可自定义小组件且无广告的日历应用。
  3. 文件管理器:无广告、尊重隐私与安全的文件管理工具。
  4. 短信:简单快捷的短信与彩信管理应用,无广告。
  5. 电话:便捷的电话管理器,支持通讯录、号码拦截及多SIM卡。
  6. 音乐播放器:界面时尚、小组件可定制且无广告的音乐播放器。

其他仓库概览(共31个)

除上述应用外,Fossify 还维护着众多其他开源项目仓库,包括但不限于:

  • 录音机:无需联网即可录音,无广告。
  • 致谢应用:用于支持 Fossify 应用的感谢项目。
  • 笔记:简单的文本笔记工具,无广告。
  • 启动器:实用且可定制的应用启动器。
  • 键盘:易于输入文本、特殊字符和数字的键盘应用。
  • 通讯录:无广告的快速联系人管理工具,支持分组和收藏夹。

这些项目均公开托管,并保持定期更新与活跃的提交活动。

20. Field experimental evidence of AI on knowledge worker productivity and quality (www.oneusefulthing.org)

该研究通过波士顿咨询集团的大规模预注册实验,验证了人工智能对知识工作者生产力和质量的显著影响。以下是核心发现与关键结论:

一、AI显著提升工作效率与质量

  • 任务完成量:使用ChatGPT-4的顾问平均多完成12.2%的任务。
  • 工作效率:任务完成速度提升25.1%。
  • 输出质量:结果质量提高40%,由人工与AI评分者共同验证。

二、“锯齿形前沿”概念 AI的能力边界不规则(如擅长写十四行诗却难以控制精确字数),任务难度并非线性。使用者需通过实践识别AI的优势区与局限。

三、AI的“技能均衡”效应

  • 初始表现较差的顾问使用AI后性能提升43%,而顶尖顾问提升较小。
  • AI能缩小工作者间的技能差距,类似于蒸汽铲车对采矿作业的变革。

四、过度依赖AI的风险

  • 在设计的AI无法正确解答的任务中,使用AI的顾问正确率从84%降至60-70%。
  • 研究指出,当AI表现优异时,人类容易“懈怠于方向盘后”,导致判断力下降和失误。

五、有效人机协作模式

  1. 半人马模式:明确分工,将AI擅长的任务(如数据分析、绘图)交由AI处理。
  2. 赛博格模式:深度融合,人与AI交替协作(如AI生成句子初稿,人类调整优化)。

六、研究背景与意义

  • 实验涵盖创意、分析、写作等18类现实咨询任务,参与者为758名顾问。
  • 使用的工具为公开可用的GPT-4,未进行特别优化。
  • AI技术边界仍在快速扩展,未来模型将更强大,主动适应人机协作至关重要。

结论 AI已切实重塑知识工作的生产力格局,但其应用需警惕自动化依赖风险。通过“半人马”或“赛博格”模式主动整合AI,可最大化提升工作产出的质量与多样性。

21. OutRun – Open-source, privacy oriented, outdoor fitness tracker (github.com)

OutRun 应用概述

OutRun 是一款开源的 iOS 应用程序,专注于记录和查看户外运动数据。尽管名称为“OutRun”,但它不仅支持跑步,还兼容步行、徒步、骑行和滑冰等多种户外活动。

核心特性

该应用以自定义功能隐私保护为核心,主要功能包括:

  • 数据控制权:用户完全掌握自己的运动数据。
  • 多样运动支持:可记录跑步、步行、徒步、骑行和滑冰。
  • 详细统计:提供运动数据的详细分析。
  • 数据导出:支持将运动记录导出为 GPX 或 OutRun-Backup(.orbup)格式。
  • 高度自定义:允许用户自定义运动记录过程。
  • 健康同步:可与 Apple Health 同步数据。
  • 完全开源且无广告:项目代码公开,应用内不含任何广告。

参与贡献

目前,OutRun 接受以下方式的社区参与:

  1. 分享项目:通过向他人推荐来扩大项目影响力。
  2. 加入测试版:作为测试人员试用早期或不稳定版本,以优化最终体验。
  3. 报告问题:通过项目的 Issue 页面提交使用问题、反馈或疑问。
  • 注意:当前不接受代码提交或翻译等其他形式的贡献

开源许可

OutRun 基于 GNU 通用公共许可证第 3 版(GPLv3) 发布。该许可证允许用户自由地重新分发和修改软件,但需遵守相同许可条款。具体版权信息为:

22. Outline: Self hostable, realtime, Markdown compatible knowledge base (github.com)

概述: Outline 是一个基于 React 和 Node.js 构建的、可自托管、实时、兼容 Markdown 的团队协作知识库。它提供快速、协同的知识管理功能。

核心信息:

  1. 获取与使用:
    • 用户可直接使用官方托管版本(www.getoutline.com)。
    • 项目提供源代码,支持自行部署或进行开发贡献。自行部署的生产配置请参考官方文档。
  2. 贡献指南:
    • 禁止提交 AI 生成的代码,因其质量低且浪费维护者时间。
    • 提交代码前,必须通过 GitHub Issues 与核心团队讨论方案,确保方向一致。
    • 贡献方向包括:翻译、解决 good first issue、性能优化、改进文档、修复 Bug 等。
  3. 开发相关:
    • 环境搭建:设有专门的开发环境配置指南。
    • 架构:开发者可通过架构文档了解应用的整体结构。
    • 调试:开发环境输出简单日志,生产环境输出 JSON 日志。可通过环境变量(如 DEBUG, LOG_LEVEL)控制日志详细程度和类别。
    • 测试:使用 Vitest 框架,重点覆盖关键 API 和认证逻辑,而非追求 100% 覆盖率。提供运行所有测试、后端测试、前端测试及监视模式的命令。
    • 数据库迁移:使用 Sequelize 进行迁移管理,提供了创建、执行、回滚迁移的命令示例。
  4. 许可:项目采用 BSL 1.1 许可证。
23. "The Girls in Their Summer Dresses" – Irwin Shaw (1939) (www.classicshorts.com)

《夏日衣裙里的女孩们》是欧文·肖创作的短篇小说,通过一对夫妇迈克尔和弗朗西斯在纽约的周日散步,深刻揭示了婚姻中潜藏的不安与欲望冲突。

情节概要 故事始于一个温暖的十一月周日,迈克尔和弗朗西斯在早午餐后愉快地漫步第五大道。起初气氛轻松甜蜜,两人享受着彼此的陪伴。然而,当弗朗西斯察觉迈克尔不断注视路过的其他女性时,美好氛围被打破。尽管迈克尔试图以玩笑掩饰,弗朗西斯坚持指出,他在餐厅、地铁、剧院等任何场合都会盯着漂亮女人看,这让她感到自己不被珍视,并质疑他们婚姻的幸福。

矛盾在酒吧中升级。迈克尔被迫坦诚内心:他欣赏纽约街头形形色色的女性,从办公室女职员到女演员再到百货商店店员,她们对他构成了一种持续的吸引力。他承认,自己确实渴望这些女性,有时甚至幻想自由。弗朗西斯则痛苦地表示,自恋爱以来她从未注意过其他男人,并恳求迈克尔至少不要再当面评论其他女人的外貌。

最终,弗朗西斯提议与朋友史蒂文森夫妇去乡下,迈克尔同意。但故事结尾,迈克尔看着妻子起身离开时,内心仍在赞叹她的美腿,暗示其本性未变,婚姻中的裂痕并未真正弥合。

核心主题与人物

  • 婚姻中的不安与欲望:故事聚焦于迈克尔持续观察其他女性的行为对弗朗西斯造成的伤害,以及这对夫妻信任与亲密感的侵蚀。
  • 坦诚的代价:在弗朗西斯的追问下,迈克尔被迫摊牌,其直白的坦诚(承认欲望和偶尔对自由的向往)反而加剧了双方的痛苦。
  • 城市与欲望:纽约城被描绘为一个充满诱惑的舞台,街道上的女性成为迈克尔无尽欲望的象征。
  • 人物对比:弗朗西斯渴望专注、排他的亲密关系,而迈克尔则表现出一种无法抑制的、对视觉与欲望刺激的广泛渴求。结尾迈克尔对妻子腿的注视,与开头对陌生女性的注视形成微妙呼应,暗示其特质难以改变。

小说通过细腻的对话和心理描写,展现了一个看似美满婚姻下暗涌的日常危机,探讨了忠诚、欲望与人性本能之间的复杂角力。

24. Amazon R&D spending is more than that of all companies and government of France (twitter.com)

Amazon R&D Spending Analysis

  • 核心发现:全球研发(R&D)支出主要由美国科技巨头主导,其规模令人惊讶。
  • 关键对比
    • 亚马逊(Amazon)的研发支出超过法国所有公司和政府的研发总和。
    • Alphabet(谷歌母公司)的研发支出超过意大利全国的研发支出。
    • 百事可乐(Pepsi)的研发支出超过尼日利亚所有来源的研发支出。
  • 意义:突显了少数美国企业在全球技术创新和资金投入中的巨大影响力。
25. Pwned Certificates on the Fediverse (www.hezmatt.org)

被泄露证书在联邦宇宙的发布

pwnedkeys 项目不仅收集和分发已泄露的密钥,还将这些泄露密钥与已签发的SSL证书进行匹配。自2024年初起,所有匹配成功的证书已通过 botsin.space 的 Mastodon 服务器在联邦宇宙上发布。

工作原理

发布被泄露证书的流程大致如下:

  • 通过 scrape-ct-log 工具抓取所有证书透明度日志中的证书,并将每个证书公钥的指纹存储在 LMDB 数据文件中。
  • 当发现新的泄露私钥时,会将其指纹与所有 LMDB 文件进行比对,这些文件将密钥指纹映射到证书(实际映射到 CT 日志条目 ID,通过它们可检索证书)。
  • 若找到一个或多个匹配项,则使用泄露密钥的证书会被转发给发布工具,向公众公开。

此过程在理论上很直接,但优化流水线是关键,需要在单台中等配置的服务器上每天索引约五百万张新证书,避免积压。

关于证书撤销

作者过去会通知证书颁发机构撤销使用泄露密钥签发的证书,但多个CA因成本问题不愿撤销,并提高了通知门槛。鉴于WebPKI中证书撤销的有效性较低,作者停止向CA发送通知,转而直接向公众发布被泄露证书详情,以便用户自行保护。

未来计划

当前扫描覆盖存在缺口:CA可以(且确实会)为已泄露密钥或已知多年的弱密钥签发证书,但现有的pwnedkeys证书检查器不会自动发现这些证书。

计划是增强CT抓取与证书处理流水线,以检查所有新证书是否匹配已有的超过200万个泄露密钥。但每天需检查超过五百万张新证书,且不能简单地对每张新证书调用pwnedkeys API,这可能会对API服务器造成压力。

支持项目

若希望加速上述匹配工作,作者提供了 ko-fi 支持页面,可用于支持pwnedkeys及其他开源项目的工作。

26. Mad Scientists' Club: The Books (www.madscientistsclub.com)

本文介绍了作者父亲创作的“疯狂科学家俱乐部”系列作品的时间线、出版情况和一些趣事。

主要作品与创作时间线: 作者父亲从1960年至1974年间,共创作了12个短篇故事和2部中篇小说。按时间顺序如下:

  1. 《草莓湖的奇怪海怪》(1960)
  2. 《夜间救援》(1961)
  3. 《猛犸瀑布的不明飞行人》(1962)
  4. 《旧大炮的秘密》(1963)
  5. 《伟大的气囊竞赛》(1964)
  6. 《大蛋》(1964)
  7. 《烟囱里的声音》(1964)
  8. 《大酋长造雨者》(1965)
  9. 《告密的发射器》(1966)
  10. 《凉爽洞穴》(1966)
  11. 《飞行术士》(1968)
  12. 《大对峙》(1968)

书籍出版情况:

  • 第一本合集:1965年出版了《疯狂科学家俱乐部》,收录了前七个故事。其中前三个故事最初于1961-1964年间发表在《少年生活》杂志上。原计划收录八个故事,但编辑在1965年初拒绝了第八个故事《大酋长造雨者》。
  • 第二本合集:1968年出版了《疯狂科学家俱乐部新冒险》,收录了最后四个短篇故事。其中最后一个故事《大对峙》是该系列的最后一个短篇。
  • 趣闻:出版商在拒绝《大酋长造雨者》数月后,又写信称赞这个故事并强烈建议将其收入后续书籍。该故事最终被收录。
  • 第一部小说:《大灾难!》于1974年出版,是该系列的第一部长篇小说。它讲述了俱乐部的成立过程,并涉及更为复杂的主题。由于出版商当时财务困难,仅印刷发行了约1000册,导致原版书十分罕见。作者最初在标题中使用了感叹号,但出版商在最终版本中去掉了,在再版时恢复了原标题。
  • 最后一部作品:《大冰块》是系列的最终故事,完成于1974年,是一部国际冒险题材的中篇小说。该作品在2005年由Purple House Press首次正式出版。

系列名称:俱乐部成员更喜欢“猛犸瀑布的疯狂科学家”这个名称。

27. Bluesky has launched RSS feeds (openrss.org)

Bluesky 推出 RSS 订阅功能

Bluesky 宣布正式推出其 RSS 订阅源。现在,任何人都可以获取任意 Bluesky 用户的 RSS 订阅链接。

主要特点与工作方式:

  • 兼容性与可发现性: 该功能与 RSS 阅读器和浏览器扩展兼容良好。虽然用户 RSS 订阅链接较长且不易记忆,但它已自动嵌入用户在 Bluesky 网站上的个人资料中。这使得任何 RSS 阅读器应用都可以通过用户资料链接自动发现其 RSS 订阅源。部分应用甚至支持通过输入用户名直接查找。
  • 默认公开性: Bluesky 上的所有帖子默认为公开状态,任何用户(甚至未登录用户)均可查看。但如果用户将其帖子设置为“仅登录用户可见”,则其 RSS 订阅源中也无法显示这些内容。

当前局限性:

  • 链接功能缺失: 在 RSS 阅读器中查看的帖子全文内不包含可点击的链接。用户需要点击跳转至 Bluesky 网站上的原始帖子,链接才能使用。

替代改进方案(Open RSS): Open RSS 提供了 Bluesky RSS 订阅的改进版本。用户只需在浏览器地址栏中任何 Bluesky 用户资料链接前添加 openrss.org 即可使用。相较于 Bluesky 的官方订阅源,Open RSS 版本增加了以下功能:

  • 帖子正文内嵌可点击链接
  • 视频和图片缩略图
  • 自我回复内容显示
  • 包含被引用内容的引用回复

该文章也注明,Open RSS 是一个由用户自愿捐赠资助的非营利组织。

28. Haiku OS: The Open Source BeOS You Can Daily Drive in 2024 (hackaday.com)

Haiku OS 摘要

Haiku OS 是一个开源操作系统,作为 Be Operating System(BeOS)的开源版本和延续。尽管 BeOS 在 1990 年代具备强大功能,但在更广泛的计算机市场上未获得广泛认可。然而,它拥有一个活跃的社区,经过 22 年的开发,根据 YouTube 频道 Action Retro 的说法,Haiku 现已达到可日常使用的状态。

主要特点和进展

  • 快速安装和启动:在真实硬件和虚拟机(如 VirtualBox)中均表现出快速的安装和启动速度,提升了用户体验。
  • 软件兼容性:引入基于 QtWebEngine 的 Falkon 浏览器(前身为 QupZilla),支持 JavaScript 密集型网站,如 YouTube 和复古 Mac 模拟器;甚至提供 Minecraft 客户端,扩展了应用范围。
  • 性能表现:3D 加速功能仍在开发中,但在 2014 年的 AMD 系统上可流畅播放 1080p YouTube 视频,显示其多媒体处理能力。
  • 技术基础:Haiku 具有 POSIX 兼容性,便于移植现有软件;Beta 4 版本(2022 年)包含 GCC 11.2 编译器和完善的 API 文档,为开发者提供支持。
  • 历史意义:文章暗示 Haiku 是现代版本的 BeOS,该系统曾几乎成为 macOS 的基础,体现了其技术潜力。

Haiku OS 通过持续的社区努力和功能改进,已从一个实验性项目转变为可用于日常任务的操作系统,适合寻求轻量级、高效计算体验的用户。

29. Going declarative on macOS with Nix and Nix-Darwin (nixcademy.com)

在macOS上使用Nix与Nix-Darwin实现声明式系统配置

核心主题:本文探讨了在macOS操作系统上,利用Nix包管理器与专为其设计的Nix-Darwin集成方案,来实践声明式系统配置管理的方法。

关键概念

  • Nix:一个跨平台的包管理器和构建系统,其核心特性是确保构建的可重现性、避免依赖冲突,并支持声明式配置。
  • Nix-Darwin:一个将Nix包管理器深度集成到macOS的系统配置框架,允许用户以声明式的、可重现的方式管理整个macOS系统,包括系统设置、已安装的应用程序、用户环境等。
  • 声明式配置:一种管理方法,用户通过一个或多个配置文件(通常是Nix语言编写的文件)来“声明”系统的目标状态(例如,哪些软件应被安装、系统偏好设置是什么),而不是通过一系列手动命令来实现。工具会自动计算并应用必要的变更,使系统达到所声明的状态。

主要内容与目的: 文章旨在指导macOS用户如何搭建和使用基于Nix及Nix-Darwin的环境。其核心目的在于:

  1. 实现可重现的系统配置:通过一个明确的配置文件(如configuration.nix),用户可以在任何新的Mac上快速还原出一模一样的开发或工作环境。
  2. 提升系统管理的可控性与安全性:声明式配置使系统变更清晰可见、易于版本控制(例如使用Git)和回滚,降低了手动操作带来的风险。
  3. 统一开发环境:结合Nix的纯函数式包管理,可以确保团队成员或不同项目拥有完全一致的依赖环境,解决“在我机器上是好的”这类问题。

注意:当前提供的文章内容仅为一个重定向链接(从 /2024/01/15/nix-on-macos/ 跳转到 /posts/nix-on-macos/),并未包含文章正文。因此,以上总结是基于文章标题中明确的技术术语和该技术方案通常涉及的核心理念进行的推断和概括。要获取详细的步骤、配置示例和深入分析,需要访问跳转后的实际文章链接。

30. A Theory of Grift (www.thediff.co)

《欺诈理论》摘要

本文围绕“欺诈理论”展开,探讨了多个相关概念。内容提及以下关键点:

  • 购买你希望看到的变化:这一短语可能指通过消费行为来推动社会变革,但在欺诈理论背景下,可能暗示营销策略或误导性宣传,利用人们对社会进步的渴望进行诱导。
  • 傻瓜保险:该术语涉及针对易受骗人群的保险产品或骗局,强调欺诈者如何利用人们的信任或无知,提供看似安全实则具有欺诈性质的服务。
  • 不确定性:讨论市场或决策中的不确定性因素,欺诈活动常在这种环境下滋生,利用信息不对称或风险模糊性来实施骗局。
  • 大宗交易:指金融市场中的大额交易,在欺诈理论中可能关联到内幕交易、操纵市场或其他非法操作,这些交易可能掩盖欺诈行为。
  • 广告:作为信息传播手段,广告在欺诈中可能被用作工具,用于虚假宣传、误导消费者或扩大欺诈影响。

这些点共同构成了欺诈理论的分析框架,旨在揭示欺诈行为的模式、动机和影响。

31. PID Controllers in Unity3D (2021) (vazgriz.com)

PID控制器在Unity3D中的应用总结

本文介绍了比例-积分-微分控制器在视频游戏开发中的实现与应用。PID控制器是一种灵活的自动化反馈控制机制,能够根据系统当前状态与目标值的误差来计算输出,广泛应用于速度控制、温度调节、姿态稳定等场景。

核心概念

PID控制器通过三个分项计算输出:

  • 比例项:输出与当前误差成正比,是主要响应项,但可能引起振荡。
  • 微分项:基于误差变化率提供阻尼力,用于抑制振荡和过冲。
  • 积分项:累积历史误差,用于消除稳态误差,但可能引起积分饱和。

三者加权求和后,经限幅处理作为系统输入。增益参数(比例、积分、微分增益)需针对具体系统进行调谐。

在游戏中的应用

在游戏中,PID控制器可用于模拟现实物理系统,也可增强AI行为的真实感(如FPS游戏中AI的瞄准控制,避免“锁头”般的机械感)。其优势在于能平滑处理动态目标和变化条件,通过调整参数可获得从敏捷到平缓的不同响应特性。

实现要点

  1. 基本结构:C#中实现一个PIDController类,包含增益参数和Update方法。
  2. 计算步骤
    • 计算误差:误差 = 目标值 - 当前值
    • 比例项P = 比例增益 * 误差
    • 微分项:计算误差或当前值的变化率,并乘以微分增益。为避免目标突变导致的“微分冲击”,通常使用当前值的变化率(速度)而非误差变化率,并处理首次计算时的初始化问题。
    • 积分项:累积误差与时间步长的乘积,乘以积分增益。通过“积分饱和”限制累积值大小,以抑制积分过冲。
  3. 输出处理:将三项求和,并限制在系统输入允许范围内(如[-1, 1])。
  4. 旋转系统处理:对于角度控制,需使用模运算计算正确的角度差(映射到[-180, 180]度范围),以避免0/360度边界处的错误计算。

调试与调谐

调谐PID控制器通常从比例增益开始,逐步添加微分项以稳定系统,最后通过积分项消除残余稳态误差。积分饱和值通常设置为系统输出极限值。文章提供了炮塔追踪目标的实时调试示例,演示了各参数调整对系统行为的影响。

结论

PID控制器实现简单、应用灵活,是游戏开发中处理物理模拟和AI控制的有效工具。其核心在于理解三项的作用并通过实验进行参数调优,以获得期望的系统响应。

32. Immediate Mode GUI Programming (eliasnaur.com)

即时模式GUI编程简介

Gio项目最初旨在创建一个简单的跨平台Go GUI库,避免使用平台特定的复杂原生工具包。然而,随着开发推进,即时模式编程模型被证明是Gio长期采用的关键驱动力。

即时模式与保留模式的核心区别

  • 保留模式(传统UI工具包):UI状态由工具包内部管理,应用程序只能通过回调间接操作。事件处理、布局和动画均在内部进行。
  • 即时模式:最小化库拥有的状态,程序负责绘制、布局和事件处理,状态由程序显式管理,无回调依赖。

关键优势分析

1. 绘图与动画

  • 即时模式:自定义绘图与高级部件自然混合。动画由程序直接控制(如绘制、请求重绘),无需独立动画系统。状态最小化(如仅需布尔值和计时器)。
  • 保留模式:通常需要冗余状态变量(如元素引用、回调句柄),易导致内存泄漏或未预期回调。

2. 布局

  • 即时模式:布局操作无状态,使用普通编程构造(函数、循环、条件)实现。动态布局(如可滚动列表)性能优越,仅需维护滚动位置等少量状态,可高效处理百万级元素。
  • 保留模式:需为每个UI元素创建持久表示(如DOM节点),更新时需逐个修改或重建,随元素数量增长性能下降。

3. 用户输入处理

  • 即时模式:使用过滤器和唯一处理键分发事件,无需回调。事件可在帧内任意位置处理,声明自动丢弃,无状态注册问题。
  • 保留模式:依赖回调,需手动管理事件监听器和状态清理。

示例对比

文章通过多个代码示例(点击计数器、弹跳球、可滚动列表、复选框)展示了即时模式在状态管理、绘制混合、布局效率和输入处理方面的简洁性与控制力。即时模式将UI视为纯粹的输入/输出系统,状态最小化,逻辑集中。

资源

文章引用了Casey Muratori的演示和Dear ImGui C++库作为相关资源。

33. Using the ZBar barcode scanning suite in the browser with WebAssembly (barkeywolf.consulting)

使用ZBar条形码扫描套件结合WebAssembly在浏览器中实现

目标与需求

本项目旨在开发一个跨平台的浏览器端条形码扫描器,用于库存管理研究。核心需求包括:

  • 在单个摄像头帧中识别多个条形码。
  • 同时支持QR码和多种一维条形码(如EAN-13、UPC-A等),无需用户配置。
  • 库需简洁,可在中端智能手机浏览器中使用。

技术选型:为什么选择ZBar与WebAssembly

作者评估了多个JavaScript库:

  • QuaggaJs:不支持QR码。
  • jsQR:仅支持QR码,每次只能扫描一个。
  • Instascan:仅支持QR码。 这些库均不能完全满足需求。因此转向ZBar——一个成熟的C库,支持多种1D/2D条形码格式,且能在单帧中检测多个码。现有JavaScript移植版(如ZBarjs)使用asm.js,但作者选择尝试WebAssembly以探索新技术并可能获得性能提升。WebAssembly允许将C/C++等语言编译到浏览器中,实现接近原生的执行速度。

实现步骤

1. 开发环境搭建

  • 使用Emscripten(通过Docker容器trzeci/emscripten)作为编译工具链。
  • 安装依赖并从源码编译ZBar,配置为最小化功能(禁用非必要特性)。

2. 编写C代码(scan.c)

关键函数:

  • scan_image:接收图像数据,使用ZBar库扫描条形码,通过外部JavaScript函数js_output_result输出结果。
  • create_bufferdestroy_buffer:在WebAssembly堆上分配和释放图像缓冲区。 使用EMSCRIPTEN_KEEPALIVE宏确保函数不被优化器移除。

3. 创建JavaScript胶水代码(library.js)

定义js_output_result函数,用于将WebAssembly中的检测结果传递给JavaScript环境。该函数从WebAssembly堆中提取多边形坐标和数据,并调用客户端设置的processResult回调函数。

4. 编译为WebAssembly模块

使用Emscripten编译命令生成两个文件:

  • a.out.js:JavaScript胶水代码。
  • a.out.wasm:WebAssembly模块。 关键编译选项包括优化级别(-O3)、启用WebAssembly、指定胶水代码库和导出运行时方法。

5. 测试示例(index.html)

实现一个简单的网页应用:

  • 打开摄像头并将视频帧绘制到画布。
  • 将图像转换为灰度数据。
  • 通过WebAssembly模块扫描条形码。
  • 当检测到条形码时,在画布上绘制其边界框和内容。 注意:需确保Web服务器为.wasm文件设置正确的Content-Type头。

功能与效果

  • 扫描器支持多种条形码格式(包括QR码和一维码)。
  • 可在单个图像帧中检测多个条形码。
  • 提供了完整的端到端示例,包括摄像头访问、图像处理、WebAssembly调用和结果可视化。

结论与优化方向

  • 性能:当前实现存在优化空间,如改进WebAssembly内存管理(复用扫描器和缓冲区)、将繁重任务移至Web Worker、优化图像分辨率、尝试编译器优化选项。
  • 检测限制:需要较高分辨率的条形码才能检测,这可能限制远距离识别。ZBar内部参数或许可调整以降低分辨率要求,但作者未深入探索。
  • 技术展望:WebAssembly与JavaScript的互操作仍有一定学习曲线,但未来抽象层将简化开发。WebAssembly直接访问DOM API可能减少对胶水代码的依赖。

本项目展示了WebAssembly在浏览器中利用成熟C库(如ZBar)的潜力,为构建高性能Web应用提供了新途径。代码和演示已在GitHub仓库中提供。

34. Google is no longer bringing the full Chrome browser to Fuchsia (9to5google.com)

谷歌已正式停止为其Fuchsia操作系统开发完整Chrome浏览器体验的计划。

2021年,Chromium团队曾启动将完整Chrome/Chromium浏览器移植到Fuchsia的工作。2022年初的演示显示,开源版Chromium能在Fuchsia设备上相对良好地运行。此前,谷歌Nest Hub智能显示器已通过内置的精简版浏览器提供有限的网页浏览功能。

将完整Chrome引入Fuchsia曾被外界解读为谷歌可能将Fuchsia扩展为桌面操作系统的信号。然而,在经历了Fuchsia部门的裁员后,谷歌似乎调整了Fuchsia的发展方向。最新证据来自上月Chromium代码变更及相关错误追踪器,其中声明“Chrome在fuchsia上的浏览器将不再维护”。

官方解释称,将Chrome引入Fuchsia的工作被视为“一项已不再使用的实验”。更具体地,Fuchsia团队在2022年中期已计划逐步停止其“工作站”构建——该版本旨在为开发者提供更友好的测试环境。此外,有迹象表明部分谷歌员工曾使用工作站变体进行日常测试(如Google Meet通话)。

取而代之的是更精简的“工作台”设计,几乎完全专注于开发者测试。谷歌明确指出,工作台不应作为Fuchsia产品(如Nest Hub软件)的基础。

从“工作站”到“工作台”的转变看似简单,但Chrome移植项目的中止几乎证实,谷歌在可预见的未来不打算发布直接运行Fuchsia的桌面或移动设备。

重要的是,此变动对Nest Hub产品线没有影响,该产品将继续正常接收更新并支持网页功能。

35. The failure of self-checkout technology (www.bbc.com)

自助结账技术的困境:商家与顾客的双重失望

自助结账技术曾被视为零售业的革命性创新,旨在为消费者提供便利,为商家节约成本。然而,现实情况表明,该技术普遍未能达到预期效果,导致顾客体验下降,商家也未能有效节省开支。

预期与现实的落差 最初,商家设想通过减少收银员数量、让顾客自行扫描和装袋来降低人力成本。消费者则期待更快速、便捷的结账流程。但实际情况是,顾客仍需排队等待,且频繁遇到机器故障、需要员工协助解决错误或进行年龄验证等问题。商家发现,即便部署了自助结账机,仍需保留相当数量的员工提供支持和服务,成本节约的目标难以实现。

技术问题与额外负担 自助结账设备成本高昂,一套系统可能花费六位数。但投入并未换来理想回报。对消费者而言,使用体验并不顺畅:他们需要自行查找商品PLU代码,经常因机器报错而等待帮助,购物过程反而更繁琐。对商家而言,一个主要问题是货损率(shrink)上升。一些数据显示,使用自助结账技术的零售商,其货损率可能是行业平均水平的两倍以上。

行业案例:投资转向与调整 多个零售巨头已开始调整策略:

  • Target 限制了自助结账可购买的商品数量。
  • Walmart 在一些门店移除了部分自助结货机以遏制盗窃。
  • 英国超市Booths 因顾客反映速度慢和不可靠,减少了自助结账机的数量。
  • Dollar General 的案例尤为典型。该公司曾大力推广仅依赖自助结账的门店模式,但过度依赖导致问题。其CEO在2023年承认失误,并计划在收银区域增加员工,认为自助结账应作为辅助工具而非主要结账方式。

核心矛盾:成本与体验 专家指出,自助结账的失败不仅在于技术缺陷,更在于它未能平衡商业利益与用户体验。商家期望削减成本,顾客期望省时省力,但该技术常常两头落空。尽管美国仍有超过330万收银员,表明人工结账需求依然存在。

未来趋势:选择权的回归 目前,越来越多的零售商不再押注于单一技术,而是倾向于提供人工结账与自助结账并行的选择,让顾客根据偏好自行决定。然而,专家也指出,由于已投入巨额沉没成本,许多大型连锁店仍会保留自助结账机,寄希望于逐步改变顾客习惯。

总结 自助结账技术作为一种实验,其初衷是改变零售业态,但实践中暴露出可靠性不足、额外增加工作负担、推高货损率等问题。顾客的持续挫败感与商家的高成本投入,共同宣告了当前阶段这一技术模式的“失败”。未来的方向可能是更灵活、更多元的结账选项,而非强制性的自助化。正如一位研究者所言:“顾客讨厌它。” 这句话或许简洁地概括了这项技术面临的主要挑战。

36. Passing nothing is surprisingly difficult (davidben.net)

文章摘要

本文主要探讨了C、C++和Rust三种编程语言中切片(slice)表示方式的差异,特别聚焦于**空切片(长度为零)**的合法表示问题及其对跨语言互操作性(FFI)带来的挑战。

核心问题:空切片的表示冲突

切片通常由指针和长度(start, count)或两个指针(start, end)表示。对于空切片,如何确定指针部分的有效值成为跨语言兼容性的关键:

  1. C++语言:规则较为清晰且实用。

    • (nullptr, 0)是合法的空切片表示,因为C++明确规定了对空指针进行零长度的指针算术(如nullptr + 0)是定义良好的。
    • (alignof(T), 0)(指向一个未分配的对齐地址)是未定义行为,因为C++要求指针算术必须在实际对象范围内进行。
  2. C语言(C23及之前版本):规则存在缺陷。

    • 虽然实践中需要接受(NULL, 0),但C语言标准不允许对空指针进行任何指针算术,包括memcpy(NULL, NULL, 0)等标准库函数。
    • 这被认为是规范中的一个错误,导致开发者必须添加额外的非零检查。好消息是,该问题计划在C2y标准中修复。
  3. Rust语言:采取了与C/C++不兼容的表示。

    • Rust不允许使用nullptr作为空切片的指针,因为空指针被保留用于Option<&[T]>等枚举的布局优化。
    • 空切片&[]必须使用一个非空、对齐但无效(悬挂)的指针,通常表示为(alignof(T), 0)或类似形式。
    • 问题:在Rust中,对这种悬挂指针进行指针算术(如切片迭代器中的操作)可能是未定义的,导致标准库的切片迭代器存在**不健全性(unsound)**问题(据悉正在修复中)。

跨语言影响(FFI)

  • 不兼容性:三种语言对空切片的不同规定导致了直接互操作时的未定义行为风险。
  • 非零成本FFI:Rust与C/C++之间传递切片时,必须进行表示形式的转换,这违背了Rust“零成本抽象”的目标,且容易出错。
  • 安全隐患:由于规则复杂且不一致,开发者很容易忘记转换,导致大量现有Rust FFI包装代码存在不健全性。

建议的解决方案

作者提出了几种可能的改进方向:

  1. 修改C语言:采纳提案,使C接受(nullptr, 0)作为有效操作(C2y已计划)。
  2. 重新设计Rust的切片表示:从根本上解决冲突,例如采用(nullptr, 1)(nullptr, -1)等明确未使用的表示作为“空”值。这将消除空切片使用悬挂指针的问题,但涉及重大兼容性变更。
  3. 为无效指针定义指针算术:在Rust和LLVM中,明确定义对NonNull::dangling()这类指针的算术运算规则,以解决Rust内部的不健全性问题。
  4. 增强Rust标准库的FFI支持:如果无法统一表示,应在标准库中提供明确用于FFI的切片相关函数(如使用C/C++兼容表示的from_raw_parts),并清晰文档化现有函数的风险。

结论

空切片表示的分歧看似微小,却引发了深层的跨语言互操作性和安全性问题。解决这些问题对于提升语言间互操作的实用性和安全性至关重要,尤其是在Rust旨在提供安全FFI的背景下。作者呼吁语言设计者重视此问题,并采取行动统一或妥善处理这些边界情况。

37. Spotted water hemlock: the most toxic plant in North America (2017) (www.atlasobscura.com)

斑点水毒芹(Cicuta maculata)是北美最致命的植物,属于伞形科(Apiaceae)。该科包括许多可食用植物,如胡萝卜、芹菜等,但斑点水毒芹是其中毒性最强的例外。

外观与分布
斑点水毒芹生长在北美淡水沼泽或湿地地区,覆盖范围从阿拉斯加到佛罗里达,但纽芬兰岛除外。它通常高几英尺,有白色伞状花序,茎上有紫色斑点,底部有肿胀。其外观与野生胡萝卜或防风草相似,但紫色斑点和沼泽栖息地是识别关键。

毒性成分与作用
该植物的主要毒素是cicutoxin,一种强效神经系统刺激剂。它作为GABA拮抗剂,关闭大脑的“紧急制动”,导致肌肉剧烈收缩、呕吐、唾液分泌过多、肾衰竭、心律不齐和呼吸困难。死亡过程极度痛苦,常伴随肌肉痉挛、骨骼脱臼等症状。即使微量摄入也可能致命,且无确切最小致死剂量。

历史与影响
斑点水毒芹在美洲原住民易洛魁人中曾被用作自杀工具,因其导致的痛苦死亡。它也毒害牲畜,如牛,并因此得名“斑点牛防风草”。尽管易于识别(通过紫色斑点、沼泽生长和气味),但仍持续发生中毒事件。

治疗与生存
及时使用巴比妥类或苯二氮䓬类药物可能增加存活几率,但效果不稳定。历史上有中毒病例报告,包括动物和人类。

总之,斑点水毒芹是北美最具暴力毒性的植物,在可食用亲属中隐藏其危险。

38. Harnessing heat from wastewater (www.bbc.co.uk)

温哥华False Creek地区自2010年起,利用创新技术从废水中提取热能,作为可再生能源为住宅供暖。该地区6210套公寓的供暖主要依赖污水热能,这是一种逐渐在全球范围内被采用的脱碳方式。

污水热能来源于日常用水(如洗浴、洗衣等)产生的余热。这些热水进入下水道后,通常直接排入处理厂,但其中蕴含的大量热能往往被浪费。False Creek的能量中心建在污水泵站上方,在污水进入处理厂前捕获其热量。通过热泵技术,将约20°C的污水冷却并浓缩热能,产生高达80°C的热水。该系统效率超过300%,即每投入1单位电力运行热泵,可输出超过3单位的热能。由于污水温度相对稳定,即使在寒冷冬季,热泵也能高效运行,提供持续的可再生能源。

在欧盟,建筑能耗占40%,而供暖、制冷和生活热水占民用能耗的80%。在温哥华,建筑排放超过城市温室气体排放的50%,主要依赖燃烧天然气供暖和制热热水。利用废热是实现减排的重要手段。康奈尔大学教授Semida Silveira指出,废热利用是巨大的“错失机会”,能源效率可解决美国一半的碳减排目标。国际能源署将能效称为“第一燃料”,而全球工程公司Danfoss的报告显示,废热是世界上最大的未开发能源。欧盟产生的多余热量(来自交通、工厂、数据中心、污水系统等)若有效利用,几乎可满足整个地区的供暖需求。

False Creek通过五英里长的热力管网将回收的热量分配到44栋建筑。每栋建筑内的换热器将热量从闭路循环系统传递至建筑供暖和生活热水管路,冷却后的水再循环回能源厂。该系统正在扩建,热泵容量将从3兆瓦增加到9兆瓦以上。温哥华计划到2030年实现供暖热源完全可再生,结合废热、储热和其他可再生能源。

污水热能利用不仅技术可行,经济上也有优势。污水处理厂是能耗大户,约占市政电费的30-40%。通过利用废热,处理厂可从能源消耗者转变为生产者。例如,丹麦奥胡斯的马瑟尔斯堡污水处理厂通过回收废热和利用污泥生产沼气,产生的能源超过了处理和服务20万居民所需的能源。丹麦全国污水废热的潜力相当于600-700兆瓦,可供应约20%家庭的碳中和供暖。

瑞典等寒冷国家已广泛采用类似False Creek的区域供暖系统。斯德哥尔摩的污水废热回收系统为约80万居民供暖,同时利用污泥沼气为公交车提供燃料。这些集中式解决方案有助于提高城市循环性。瑞典的碳税制度也提供了关键激励,推动供暖行业转向废热利用。

尽管前期投资和城市规划整合是挑战,但False Creek证明了其可行性。该系统为居民带来多重益处:建筑屋顶改造为公共绿地和花园,维护由专业团队集中管理,客户免受燃料价格波动影响。温哥华希望以此案例激励其他市政当局实现热网脱碳。

全球多个城市已开展污水废热回收项目,包括英国伦敦、挪威奥斯陆和中国北京。污水热能的有效利用不仅关乎技术,更需要政府政策支持和长期规划,将废热视为资源并融入城市设计。

39. (Unsuccessfully) Fine-tuning GPT to play "Connections" (www.danielcorin.com)

项目概述

作者尝试通过微调GPT-3.5-turbo模型来玩纽约时报的“Connections”文字游戏(将16个单词分为4组,每组4个并属于同一类别)。由于提示工程效果不佳,作者决定采用微调方法。

数据获取与处理

  • 通过纽约时报的JSON API获取所有历史游戏数据(自2023年6月12日起)。
  • 编写Python脚本将数据转换为OpenAI要求的JSONL格式,包含系统提示、用户输入(16个单词)和助手输出(正确分组及类别)。
  • 首次数据集生成存在错误:未正确提取每个类别的成员单词,且输出格式有误。

微调过程与成本

  • 使用tiktoken估算微调成本:约46,814个标记,预估费用0.37美元。
  • 实际微调费用为0.90美元,运行3个周期。
  • 数据集划分为训练集、验证集和测试集。

测试与发现的问题

  1. 首次微调结果:模型输出重复无意义文本,原因为数据集构建错误(未正确解析类别成员)。
  2. 修复后测试:模型在输入单词顺序与训练数据一致时表现良好,但顺序打乱后输出混乱,说明模型未能真正学习泛化能力,仅记忆了特定顺序。
  3. 根本原因:训练数据中单词顺序固定,未进行随机打乱。

二次修复与评估

  • 修改代码,在生成数据时随机打乱16个单词的顺序。
  • 评估基准:使用未微调的GPT-3.5-turbo-1106作为对比。
  • 结果:
    • 未微调模型:全部谜题正确率0%,类别正确率20.24%。
    • 微调模型:谜题正确率4.76%,类别正确率23.81%。
    • GPT-4:谜题正确率9.52%,类别正确率39.29%(显著优于GPT-3.5)。

总结与未来方向

  • 结论:微调对提升该任务能力效果有限,主要改进为输出格式一致性;GPT-4表现更佳。
  • 经验:作者学到了微调中的常见陷阱(如数据顺序敏感性)。
  • 未来计划:申请微调GPT-4并进一步测试。
40. GTA 5 actor goes nuclear on AI company that made a voice chatbot of him (www.pcgamer.com)

GTA5演员怒斥AI公司未经授权使用其声音制作聊天机器人

事件概述

GTA5演员Ned Luke(饰演Michael De Santa)强烈反对AI公司WAME在未经授权的情况下,基于其角色声音制作AI语音聊天机器人。该公司于1月14日发布该产品,称可让玩家与“Michael De Santa进行逼真语音对话”。

核心冲突

  • 演员抗议:Ned Luke在社交媒体上激烈抨击WAME,称其行为是“掠夺性的垃圾”,并强调“没有经过本人同意,就别想使用我的声音”。
  • 公司回应:WAME随后删除了相关产品及推广推文,并发表声明称将“保护配音演员权利并推进符合伦理的AI实践”。
  • 工会介入:Luke标记了游戏开发商Rockstar Games及演员工会SAG-AFTRA,指责工会对AI滥用的监管“过于软弱”。

行业背景

  • SAG-AFTRA近期达成的“伦理AI协议”遭到部分演员反对,Luke指出此类协议可能使AI侵权问题从“非正式合作蔓延至正规工作领域”。
  • 同行演员Roger Clark等人支持Luke,共同批评AI声音克隆对创意工作者的威胁。

伦理争议焦点

  • 技术滥用风险:WAME等公司利用AI声音生成技术绕过版权保护,直接挪用演员的声纹数据。
  • 工会协议争议:Luke认为现有行业协议未能有效遏制AI侵权,可能导致配音行业系统性危机。
  • 企业声明矛盾:WAME在宣传中强调“提升个人身份潜能”,却未获得声音所有者的授权许可。

最终结果

  • 涉事聊天机器人已被全网下架。
  • 事件凸显了AI技术发展与声音版权保护之间的法律及伦理空白。
41. Big Tech's role in enabling link fraud (eligrey.com)

大型科技公司的广告平台通过允许未验证的“虚荣URL”功能,间接助长了链接欺诈行为,破坏了在线信任。链接欺诈是指恶意方伪装URL,使其看似指向合法网站,实则导向诈骗或恶意页面,以谋取经济利益或其他非法目的。

这种欺诈在谷歌、必应和X(原Twitter)等平台上普遍存在。广告商利用这些平台的虚荣URL功能,欺骗用户点击,常见于假冒浏览器、视频会议软件、密码管理器、加密货币钱包等知名应用的广告。欺诈者通过批量生产欺诈广告来大规模收集用户凭据和敏感信息,用于转售或其他恶意用途。

大型科技公司虽然声称欺诈者是“滥用”其系统,但实际上他们建立了允许URL欺骗的机制,并在问题被揭露时推卸责任。文章指出,这种现状必须改变,因为这些商业实体维持着系统性助长链接欺诈的广告系统,必须承担其对社会的净负面影响。

根本问题在于,当前的技术保护措施无效,广告平台没有对虚荣URL进行域名所有权验证。任何允许未验证URL欺骗的系统都无法自动防止链接欺诈。平台采用的抽样URL解析等“验证”机制很容易被绕过。

文章还强调了国家安全风险,恶意广告和欺诈的泛滥已促使FBI建议所有公民安装广告拦截器。然而,FBI建议用户检查URL真实性的做法在未验证虚荣URL存在的情况下无效。美国联邦政府可能会要求在所有联邦设备上使用广告拦截器。

为解决此问题,文章呼吁广告技术提供商验证虚荣URL中使用的域名所有权,或彻底禁止虚荣URL。这可以通过域名所有者在DNS记录中放置唯一密钥的自动化或手动流程轻松实现。作者建议公众请愿政府官员,并呼吁美国联邦贸易委员会调查故意通过不可审计的未验证虚荣URL系统助长链接欺诈的公司。

在个人层面,安装uBlock Origin等广告拦截器可以有效阻止广告,同时提升浏览隐私和性能。文章最终强调,广告技术公司不能在创建支持链接欺诈的系统后,又以复杂性为借口逃避责任,企业贪婪不应优先于用户安全和平台完整性。

42. A lowering strategy for control effects in Rust (www.abubalay.com)

本文探讨了Rust语言中控制流效果(如错误处理、迭代、异步I/O)的降低策略,并借鉴代数效果理论提供统一视角。核心观点如下:

Rust通过迭代器(Iterator)、异步(Future)和错误处理(Result)三种效果模式支持控制流,但当前它们通常独立使用或以特设方式组合。代数效果理论将效果定义为操作与处理器:执行操作会挂起当前计算并转移控制流至处理器,处理器接收挂起的计算(续延)后可选择恢复或终止。

通过将Rust程序映射到代数效果概念,文章描述了各效果的签名:

  • 迭代效果包含yield操作,处理器由for循环实现。
  • 错误效果包含throw操作,通过?操作符传播效果。
  • 异步效果包含sleep操作,通过.await传播效果。

关键洞察在于效果具有交换律:多个效果的组合形成一个无序集合,处理器可按任意顺序处理而不影响计算。这允许灵活组合效果(如异步迭代器),而无需分层嵌套。例如,异步迭代器同时包含异步和迭代效果,其处理器(如for await循环)可独立处理每种效果。

Rust通过将效果计算降低为无栈协程实现零成本抽象。协程帧作为普通值类型存储计算状态,并通过就地修改实现续延,避免额外分配。现有迭代器、Future等trait是这种通用模式的特化,返回类型(如Poll<Option<Item>>)本质上是枚举,包含所有可能效果的操作和完成状态。

文章批评了通过分层(如monad变换器或trait泛型)组合效果的方式,认为其引入任意顺序,导致代码复杂化(如需要多次liftmap调用),并阻碍协程帧的高效利用。相反,扁平枚举表示更忠实于效果的交换语义,保持处理灵活性。

未来可能性包括使用开放枚举实现跨效果共享组合子,或通过效果多态(如async gen)减少trait爆炸。文章强调,非分层降低策略与这些扩展前向兼容,能更好地支持async gen等新特性,同时保持与现有Rust模式的兼容性。

总结:Rust可通过代数效果理论统一控制流效果的语义,采用扁平枚举降低策略实现高效组合,避免分层复杂度,并为未来语言扩展提供基础。

43. App Store to Be 'Split in Two' Ahead of EU iPhone Sideloading Deadline (www.macrumors.com)

欧盟《数字市场法案》迫使苹果计划拆分App Store

据彭博社的马克·古尔曼报道,苹果正准备在未来几周内将欧盟地区的App Store“一分为二”,以遵守欧盟的新规要求。

核心变化与原因

  • 苹果此举旨在遵守欧盟《数字市场法案》的强制性规定。
  • 主要变化包括:允许用户在欧盟侧载应用、安装第三方应用商店,并允许开发者使用外部支付系统及推广其优惠。
  • 该调整计划将在未来几周内推出,以符合2024年3月7日的合规截止日期。

背景与沟通

  • 欧盟反垄断事务负责人玛格丽特·韦斯塔格近日在苹果总部会见了苹果CEO蒂姆·库克,并提醒了苹果在DMA下的义务。
  • DMA预计将迫使苹果对App Store、FaceTime和Siri在欧洲的运作方式做出一系列重大改变。
44. Python Packaging, One Year Later: A Look Back at 2023 in Python Packaging (chriswarrick.com)

本文回顾了2023年Python打包生态的状况,指出尽管有讨论和个别改进,但整体环境依然碎片化、令人困惑,缺乏统一的解决方案。

工具生态:数量依旧繁多,新工具涌现

  • 现状:一年前被提及的多数工具仍在维护和使用,其中setuptools(约5万包)最流行,Poetry(约4.1万包)次之,Hatchling(约8.1千包)第三。Flitvirtualenv更新较少。
  • 新工具:出现了PosyRye等新项目。两者愿景相似(管理Python解释器和项目,但使用现有构建后端如hatchling),且均用Rust编写,以避免依赖Python自身环境。Rye相对更完整可用。
  • Rust趋势:用Rust编写Python工具的趋势明显,如代码格式化器Ruff(速度比Python工具快10-100倍)。这引发了关于Python定位(是否沦为“玩具语言”)以及贡献门槛(需学习Rust)的讨论。

标准与规范:进展缓慢,冲突依旧

  • 失败与停滞:旨在避免虚拟环境的PEP 582__pypackages__)于2023年3月被否决,且无后续替代方案。对于锁定文件,至少存在四种不兼容的实现(pip-toolsPipenvPoetryPDM)。PEP 665因反响平淡被拒,其作者正在开发概念验证mousebender
  • 通过的标准PEP 668(允许发行版通过EXTERNALLY-MANAGED文件阻止pip使用)于2023年被pip支持,有助于防止系统损坏。PEP 723(内联脚本元数据)通过,但作者认为其价值有限,仅利于单文件脚本,可能助长无版本控制的混乱代码。

学习曲线与“简单”的陷阱

文章通过对比Word与LaTeX,指出Python虽易于入门,但当项目复杂化(如使用文件夹组织代码、添加第三方依赖)时,打包和环境管理会变得异常复杂。新手常需应对venv的激活与管理、工具选择困惑、以及pip与系统包管理器(如apt)的冲突。相比之下,其他语言(如Java、C#)的生态系统或IDE通常提供更一体化的项目和依赖管理体验。

未来展望:碎片化与风险并存

  • 社区讨论无果:Python Packaging Discourse上的讨论(如关于迁移出setup.py、十年愿景等)未产生实质性改变。官方文档依然相互矛盾,PyPA关联工具的功能有时落后于非官方工具(如Rye已有锁定文件,而HatchFlit没有)。
  • 生态碎片化:工具选择过多且互不兼容,作者们未联合构建一个真正的统一工具。
  • 贡献者风险:很多关键工具(如HatchPDM)是“一人维护项目”(bus factor=1),即使是PoetryRye,主要贡献者也寥寥无几。这种依赖状况令人担忧。

结论

Python打包生态在2023年仍未摆脱混乱状态。作者呼吁维护标准的Python Packaging Authority(PyPA)应停止或合并重复项目,并与社区合作,致力于打造一个统一、全面、易用的“真正的打包工具”,将打包问题从开发者的障碍转变为无需操心的背景功能。

45. YouTube did not slow down adblock users. Adblock devs admit to problem (www.neowin.net)

文章摘要

近日,有用户报告称在使用广告屏蔽器(Adblocker)访问YouTube时,网站加载速度明显变慢,引发外界猜测谷歌可能故意对广告屏蔽用户降速。然而,AdBlock及Adblock Plus的开发团队已证实,性能下降问题并非谷歌或YouTube所为,而是其扩展程序自身更新导致的漏洞。

事件背景

  • 2023年11月,曾有传闻称谷歌在火狐浏览器(Firefox)上故意减慢YouTube速度,但谷歌回应称该问题与浏览器无关,主要由用户安装的广告屏蔽器引起。
  • 2024年1月,类似报告再次出现,Reddit等平台用户纷纷反映YouTube在广告屏蔽环境下卡顿,舆论再度指向谷歌。

根本原因

  • 经调查,问题源于AdBlock和Adblock Plus所使用的底层扩展引擎(eyeo’s Web Extension Ad Blocking Toolkit,EWE)。2024年1月发布的5.17.0版本将EWE升级至1.1.1,该版本引入了性能回归(performance regression),导致响应延迟。
  • 开发者在GitLab上确认,EWE 1.1.1版本在处理单页应用(SPA)导航时通过history.pushState()事件更新内容过滤规则的设计存在缺陷,影响了浏览器性能。

解决方案

  • EWE已发布1.1.2版本,回退了上述有问题的功能更新,并修复了性能问题。
  • 用户应及时更新AdBlock或Adblock Plus扩展至最新版本以解决卡顿。
  • 文章建议避免同时运行多个广告屏蔽器或内容过滤工具,以防潜在性能冲突。

其他说明

  • 使用uBlock Origin等其他广告屏蔽工具的用户未受影响。
  • 文章末尾提及Neowin网站依赖广告收入,呼吁用户将其加入广告屏蔽白名单或订阅无广告服务。
46. Critical Gitlab vulnerability exposes 2FA-less users to account takeovers (www.theregister.com)

该HTML文件实现了一个基于JavaScript的工作量证明(Proof-of-Work, PoW)验证机制,主要用于防止自动化脚本或恶意程序滥用网络服务(通常用于防御DDoS攻击或爬虫)。其核心功能与结构如下:

1. 目的与机制

  • 页面加载后会启动一个计算挑战(Challenge),需要客户端浏览器执行一定量的计算任务来证明其非恶意。
  • 验证成功后,页面将向指定服务器端点发送验证请求,若通过则自动刷新当前页面(可能用于继续后续访问)。

2. 核心JavaScript逻辑

  • solved函数作为回调,在挑战完成时触发。
  • 该函数向服务器发送包含 nonce(随机数)、token(令牌)和 response(计算结果)的GET请求进行验证。
  • 服务器返回200状态码后,页面在500毫秒延迟后自动刷新。

3. 前端组件与样式

  • 使用 wicketkeeper 元素作为验证界面的容器,其样式通过媒体查询实现响应式设计,适配不同屏幕尺寸(桌面、平板、手机)。
  • 验证组件通过 data-input-namedata-callback 属性与JavaScript交互。

4. 整体流程

  1. 页面加载并引入PoW脚本(slow.js)。
  2. 浏览器执行计算挑战并生成结果。
  3. solved函数被调用,将结果发送至服务器验证。
  4. 验证成功后页面刷新,可能允许用户继续访问目标内容。

注意:此HTML本身不包含漏洞描述,而是技术实现片段。用户提供的文章标题关于GitLab漏洞,但内容未包含相关说明,仅聚焦于该验证页面的代码功能。

47. Americans are fake and the Dutch are rude (2022) (behavioralscientist.org)

情感的文化差异:美国人与荷兰人的对比

情感并非普遍相同:虽然人类都有情感,但情感表达受文化深刻影响。作者从荷兰移居美国后,发现自己的情感模式与美国人不同,导致误解和冲突,挑战了情感普遍性的假设。

个人经历揭示文化差异

  • 初始不适应:作者在密歇根大学工作时,虽然同事热情友好,但无法以美国方式回报情感,如表达赞美、感激或适度寒暄。这让她感觉“情感失调”。
  • 具体例子
    • 直接拒绝午餐邀请被视为“粗鲁”,而在荷兰文化中,这只是提供信息。
    • 同事热情问候商店店员,作者困惑是否认识对方;美国人将此视为正常社交礼仪。
    • 晚餐后朋友感谢晚餐,作者误以为是情感疏远的信号,因为在荷兰文化中,感谢往往表示距离而非亲密。
  • 文化视角对比
    • 荷兰亲属和朋友认为美国人的情感表达“虚假”或“夸张”,如教师对祖母的热情被视为不真实。
    • 美国人则认为荷兰人的直接和内敛显得“粗鲁”,缺乏社交润滑。

情感服务于不同文化目标

  • 荷兰文化:情感强调平等连接和真实。例如:
    • 优先促进人际关系的“gezellig”(舒适和友谊感),而非突出个人努力。
    • 直率表达感受(包括负面情绪)被视为成熟和真实的体现;善意的谎言可能破坏连接。
    • 避免过度赞美或突出个人,以维持平等;母亲对女儿外貌的评价为“一般”,体现真实而非鼓励。
  • 美国文化:情感注重表达欣赏和个人价值。例如:
    • 通过赞美和肯定来增强他人自尊,如教师强调祖母的特殊性或同事称赞演讲“出色”。
    • 善意的谎言用于保护关系,避免直接冲突。
    • 鼓励情感表达,但可能更倾向于正面和社交适当的言辞。

情感表达的深层意义

  • 荷兰人的直接性(如分享内心感受)被视为建立真实连接的方式,但在美国文化中可能被视为越界或不适当。
  • 美国人频繁的赞美和热情在荷兰人眼中显得“假”,因为荷兰文化更注重平等和低调。

作者的反思:作为文化心理学家,作者直到移民美国才真正认识到自己的情感是文化产物。这突显了即使专业人士也难以识别自身情感的文化性,直到身处另一种文化并面临实际适应挑战。情感差异并非随机,而是反映了不同文化的关系构建方式。

结论:情感是文化塑造的,美国人和荷兰人的“虚假”或“粗鲁”标签源于文化目标的差异:荷兰优先平等连接,美国优先个人肯定。理解这些差异有助于减少跨文化误解。

48. Five cryptologic giants to be inducted into NSA's Cryptologic Hall of Honor (www.nsa.gov)

NSA密码学荣誉殿堂新增五位巨匠

美国国家安全局(NSA)宣布,五位在密码学领域作出卓越贡献的专家将被纳入其“密码学荣誉殿堂”。这一表彰旨在纪念那些对国家安全和密码科学发展产生深远影响的人物。

入选者贡献概要

  1. 历史与军事密码学:部分入选者曾在二战或冷战时期领导关键密码破译工作,为情报获取和军事行动提供支持。
  2. 现代加密技术:另有一些人在密码算法设计、网络安全协议或密码分析理论方面推动突破,奠定当代信息安全基础。
  3. 跨领域影响:他们的工作不仅限于政府应用,还广泛影响了商业加密标准、通信隐私保护及学术研究。

荣誉殿堂的意义

  • 认可个人在密码学领域的长期成就与创新。
  • 强调密码学对国家安全和全球信息安全的重要性。
  • 激励未来密码学研究者与从业者传承学术精神。

:由于原文链接受限,以上内容基于标题及常见NSA表彰框架推断,具体入选者名单及详细事迹请以官方后续发布为准。

49. Watch Free Online Documentaries (ihavenotv.com)

该网站是一个提供免费在线纪录片观看的平台,内容主要分为以下几个板块:

最新纪录片

  • 《智能门铃》:介绍智能门铃的崛起及其技术发展,采访行业领先者Ring公司。
  • 《电梯》:探索电梯技术,深入246米高的电梯井测试安全系统。
  • 《耳机》:走进Bose公司,揭示耳塞式耳机的微型化技术与“金耳朵”测试员的工作。
  • 《微波炉》:追溯微波炉源自二战雷达技术的历史,并通过实验演示其工作原理。
  • 《运动鞋》:探访eBay鉴定中心,讲述运动鞋底与华夫饼、名人代言与18世纪茶具的有趣联系。 以上纪录片均出自系列节目《现代生活的秘密天才》(2022-2025年),属于科技类。

推荐纪录片

  • 《如何在网上找到真爱》:通过数学家和单身医生的实验,探讨约会网站算法的有效性。
  • 《探索者》:宇宙演化的视角,讲述飞船前往类地行星的虚构故事。
  • 《海洋》:展示地球五大洋如何构成全球生态系统,以及洋流对海洋生命的重要性。
  • 《核能选项》:聚焦福岛核事故后,探讨核能作为清洁能源的未来与安全性挑战。 涵盖生活技巧、天文学、自然、经济等多个主题。

生活技巧纪录片

  • 《(不)诚实:关于谎言的真相》:深入剖析人类撒谎的动机、合理化机制及其社会影响。
  • 《当青少年偏离轨道》:探讨青少年犯罪的原因,并区分持续犯罪者与可能回归社会的群体。
  • 《应信任第一印象吗?》:从社会心理学角度解析第一印象的形成及其反映的人性本质。
  • 《幸福》:以啮齿动物为主角,讲述其追寻幸福与满足的拟人化故事。
  • 《超常规化》:探讨当代世界虚假与腐败现象如何被正常化的社会批判作品。

天文学纪录片

  • 《黑洞》:探索黑洞如何重塑星系、扭曲时空,并可能作为宇宙门户的前沿科学。
  • 《布莱恩·考克斯:火星七日》:物理学家深入NASA喷气推进实验室,追踪火星任务寻找生命迹象的过程。
  • 《冥王星:秘密科学》:探索这颗矮行星的冰冻世界及其地下海洋存在生命的可能。
  • 《宇宙海洋的彼岸》:卡尔·萨根经典节目开篇,以“想象力飞船”漫游宇宙,介绍科学史与宇宙历。
  • 《阿波罗的冒险使命》:讲述阿波罗8号如何通过技术创新为登月奠定基础的太空竞赛故事。

随机纪录片

  • 《说服机器》:揭示硅谷科技巨头如何利用数据与算法影响政治,特别是社交媒体在选举中的作用。
  • 《生日》:探索世界各地庆祝生日的独特方式,包括赤脚走火炭等极限体验。
  • 《加利福尼亚》:横穿加州,探访巨型树木、消防队员、街头医生及沙漠社区,展现当地社会与环境面貌。

该平台内容广泛,涵盖科技、自然、天文、社会、心理等多个领域,所有纪录片均可免费在线观看。

50. Effortless OpenBSD Audio and Desktop Screen Recording Guide (www.undeadly.org)

Effortless OpenBSD Audio and Desktop Screen Recording Guide 博文摘要

基本信息

  • 标题: Effortless OpenBSD Audio and Desktop Screen Recording Guide
  • 作者: Rafael Sadowski (rsadowski@),属于"Shut up and hack"系列
  • 贡献者: Peter N. M. Hansteen
  • 发布日期: 2024年1月15日
  • 来源部门: Ma! Puffy's on TV!

内容概述

  • 目的: 博文旨在引导读者配置OpenBSD系统,以轻松实现音频和桌面屏幕录制功能。
  • 结构: 提供详细的步骤指南,涵盖系统配置过程。
  • 关键功能:
    • 配置OpenBSD进行音频录制
    • 配置桌面屏幕录制
  • 附加资源: 博文包含一个YouTube视频链接,演示作者在完成博文润色时的实际录制过程,以直观展示配置效果。

访问信息

  • 博文可通过提供的链接直接访问:Effortless OpenBSD Audio and Desktop Screen Recording Guide。