2024-05-22

45 篇热帖

1. Gordon Bell has died (arstechnica.com)

计算机先驱戈登·贝尔逝世

逝世信息

  • 逝世日期:2024年5月17日
  • 年龄:89岁
  • 死因:吸入性肺炎
  • 逝世地点:美国加利福尼亚州科罗纳多
  • 消息来源:贝尔实验室资深人士约翰·马希(John Mashey)于5月21日在社交媒体发布

主要贡献与生平

早期教育与职业生涯

  • 1934年生于美国密苏里州柯克斯维尔
  • 毕业于麻省理工学院电气工程专业
  • 1960年被DEC创始人招聘,成为该公司第二位计算机工程师

DEC时期的技术贡献

  • 参与开发PDP-1系统组件(浮点子程序、磁带控制器、磁鼓控制器)
  • 发明首个UART(通用异步收发器),奠定串行通信基础
  • 主导设计PDP-4和PDP-6计算机系统
  • 1970年代作为工程经理监督VAX小型机系列开发(比尔·斯特雷克为架构主要设计者)

计算机历史保存工作

  • 1979年与妻子格温·贝尔共同创立波士顿计算机博物馆
  • 该博物馆后发展为硅谷计算机历史博物馆的核心组成部分
  • 被誉为“科技历史的重要倡导者”

后期事业(1983年DEC退休后)

  • 联合创立Encore Computer公司
  • 协助建立美国国家科学基金会(NSF)计算与信息科学工程局
  • 持续活跃于创业、政策咨询与研究领域

荣誉与影响

  • 美国计算机协会(ACM)设立以其命名的戈登贝尔奖,旨在推动并行处理创新
  • 被公认为计算史上的关键人物,对小型计算机发展和计算机历史保存产生深远影响
2. Windows 10 wallpaper was physically built and photographed (2015) (gmunk.com)

Windows 10 壁纸制作过程摘要

背景与意义

2015年,为纪念Windows 10发布(Windows系统最终的大版本更新,此后转向快速数字化更新),微软团队受命创作一张能体现品牌经典与创新的桌面壁纸。Windows桌面图像(Hero Desktop Image)是全球最广泛认可的图像之一,是用户开启Windows体验的第一印象,也是全球几乎所有Windows广告的核心视觉。

创意构思

团队将Windows标志不仅仅视为四个方块,而是将其看作一个**“门户”,寓意其背后蕴含的推进能量与无限可能性。为了体现Windows的永恒性**(经典身份)与当代性(适应新时代),并创造出用户可“触摸”和“塑造”的真实感,团队摒弃了纯数字生成的方式,决定采用实景拍摄技术。

核心技术与拍摄

1. 实景构建与拍摄

  • 物理搭建:制作了实际的Windows标志模型。
  • 拍摄设备:使用9k分辨率的Phase One相机系统进行拍摄。
  • 拍摄方法:通过多次曝光拍摄,并运用创新的摄影角度富有表现力的体积光,将标志打造成一扇通往背后世界的“窗口”。拍摄产生了超过3000张照片素材。

2. 投影光束技术

  • 原理:将Windows标志刻在黑色纸板和亚克力板上,形成四个“窗口”。
  • 光源:使用标准视频投影仪和一台激光投影仪。
  • 效果:通过离轴投影,利用亚克力边缘产生高光反射,同时为四个孔洞分别上不同颜色的光。配合自然烟雾,营造出神秘、深邃的氛围,强化了“门户”的深度感。

后期合成与优化

在Photoshop中,由合成师Munko对海量素材进行精细处理:

  1. 构建基础层:合并不同曝光和激光照明效果的图像,确立核心标志设计。
  2. 添加环境层:加入单独拍摄的烟雾和雾气层,营造情绪氛围。
  3. 镜头光晕:合成与激光投影仪位置一致的光晕效果。
  4. 色彩分级:最终调色以统一为**“微软蓝”** 色彩体系,同时保留足够的色调范围。
  5. 最终优化:最终9k分辨率文件交由专门机构进行高端照片润饰和优化。

团队协作与成果

该项目是高度协作的成果,由创意总监GMUNK领导,并与Windows品牌团队(包括创意总监Chris Ashworth和艺术总监Ryan Vulk)紧密合作。拍摄历时两天,团队并行开展视频与静态摄影工作以提升效率。

最终,通过实景拍摄与精密后期,团队创造了一张生动、可触、超高清的桌面图像。该图像不仅定义了Windows 10的视觉形象,也通过其物理拍摄的质感与多样化的变体,成为了一个持久且经典的图标,完美诠释了Windows品牌的传承与未来感。

3. 'Right to roam' movement fights to give the commons back to the public (news.mongabay.com)

英格兰的“漫游权”运动正争取将公共空间归还公众。在英格兰,公民没有合法权利穿越非公共土地,近5600万人口仅能合法进入全国8%的土地。例如,一块公共土地因被私有土地包围而无法进入,人们不得不非法侵入才能到达。

运动倡导者乔恩·摩西在《蒙加贝新闻广播》中介绍了这一日益壮大的运动。他们通过组织在私有土地上的集体步行等创意活动,强调公众进入权对于修复退化景观和改善日常生活的好处。这些观点记录在他与尼克·海斯合编的新书《野性服务:自然为何需要你》中。

摩西指出,自由漫游法律在斯堪的纳维亚和欧洲以外未被广泛认可,但这些权利对于修复几个世纪私有土地所有权造成的损害至关重要。他认为需要重新思考人在景观中的位置,以及如何与农业新愿景和人与自然的新关系相结合。

过去几个世纪私有土地所有权增加的原因之一是工业化农业,但这并未给农民带来太多利益。摩西表示,英格兰“普通人”使用公共土地权利减少的部分原因是为了压制工资增长和削弱当地人的自主权。历史文件明确记载,需要打破公共权利以创造更依赖工资的农业劳动者阶层。

运动倡导者通过举行集会等活动(如针对达特穆尔荒野露营禁令的抗议)提高公众意识,强调公共土地和公园是共同遗产。

4. Firefox bug gets fixed after 25 years (bugzilla.mozilla.org)

Firefox Bug 33654:25年老问题终于修复

基本信息

  • Bug编号:33654
  • 状态:在26年前(约1999年)打开,2年前(约2022年)关闭
  • 最终解决方案:作为重复Bug关闭(Resolution: DUPLICATE)

问题描述

该Bug涉及Firefox浏览器中<textarea>元素的ROWS和COLS属性应用不正确。具体表现为:

  • 当设置rows=1cols=80等属性时,文本区域的渲染存在额外空间。
  • 问题在禁用覆盖滚动条时尤为明显,导致出现多余的水平或垂直滚动条空间。
  • 例如,与IE浏览器对比,Firefox中cols=80时,字符无法填满可用空间,滚动条仅占1个字符宽度,但预留了额外空间。

历史与修复过程

  • 长期存在:该Bug跨越25年,经历了多次尝试修复,包括提交补丁、测试用例和截图分析。
  • 附件记录
    • 早期补丁(25年前)尝试使用正确字体和修复方法。
    • 多个测试用例(24-21年前)验证问题,包括交互测试和特定场景。
    • 截图(22-21年前)对比Firefox与IE的渲染差异。
    • 后期补丁(16年前)专注于wrap="off"等情况。
  • 状态变更
    • Bug经历了频繁的优先级调整(如P3到P4)、里程碑推迟(从M16到Future)和责任人变更(如从kin到rods)。
    • 多次被重新打开(REOPENED)和重新分配(ASSIGNED),显示修复复杂性。
  • 最终关闭:2年前,Bug被标记为重复,并关闭为DUPLICATE,表明相关修复可能已在其他Bug中实现。

技术细节

  • 根本原因:与滚动条尺寸相关。解决方案可能涉及CSS属性如scrollbar-width: noneoverflow-x: hidden来隐藏“幻影滚动条”。
  • 社区影响:该Bug有27个重复报告103票投票91个CC关注,凸显其长期重要性。
  • 评论摘要:用户指出问题存在于2019年,并提到2020年时仍可观察到类似行为,但最终通过重复机制解决。

结论

Bug 33654是Firefox中一个长期存在的布局问题,主要影响<textarea>元素的尺寸控制。经过25年的多次尝试和社区关注,它最终作为重复Bug被关闭,表明核心修复已整合到其他相关更新中。

5. Show HN: Pls Fix – Hire big tech employees to appeal account suspensions (plsfix.co)

PlsFix:将已解决的事故转化为可执行技能的平台工程工具

PlsFix 是一款旨在解决重复性系统故障的平台工程工具。它通过分析团队在 Slack、PagerDuty、GitHub 和 Claude 等平台中已解决的事故,自动创建经过验证的修复手册和可执行技能,从而在相同问题再次发生时,由机器人即时提供解决方案,实现一键修复。

核心问题

大多数故障并非全新问题,而是对过往相同事故的糟糕记忆。PlsFix 主要解决以下三个痛点:

  1. 知识重复与低效:高级工程师常常在凌晨重复推导相同的解决方案,而实际的修复步骤可能隐藏在早已归档的 Slack 讨论串中,难以快速检索。
  2. 知识分散与流失:故障的确认、诊断和修复步骤分散在六种不同的工具中(如 PagerDuty、Claude、PR评论等),手工整理这些信息耗时费力,且知识很快就会丢失。
  3. AI幻觉风险:市场上由提示词生成修复手册的AI智能体可能产生不准确的解决方案,存在隐患。PlsFix 不同,它只基于团队已经成功解决的真实事故来提供建议。

工作原理

PlsFix 通过四个步骤将已解决的事故转化为可执行技能:

  1. 摄取:通过只读连接器,从团队实际解决问题的地方(如 Slack、PagerDuty、GitHub、Jira、Claude 等)拉取已解决的工作记录。在聚类前,所有个人身份信息都会被剥离。
  2. 聚类:学习每个重复性事故的特征签名(如告警载荷的正则表达式、服务集合、部署时间邻近性、频道与报告者模式等),将相同模式的问题归为同一集群。
  3. 验证:PlsFix 根据团队自身过往的真实解决方案起草修复手册(而非凭空生成)。工程师只需审查一次,必要时进行编辑,然后点击“验证”。每个步骤都附有来源信息。
  4. 执行:验证后的修复手册被编译为可执行技能。低风险步骤可自动执行,任何具有爆炸半径风险的步骤都会暂停,等待指定的批准者。触发和执行可以从 Slack、CLI、PagerDuty、Linear 或 Jira 等多种界面进行。

关键功能与特点

  • 自动识别与快速响应:当熟悉的故障特征出现时,PlsFix 会在相关讨论串中快速发布匹配的修复手册(例如,在告警发出4秒后,以94%的置信度发布解决方案)。
  • 源于真实故障:它聚类的是真实工程团队遇到的、可识别的代码或配置缺陷,例如“外汇汇率缓存TTL回退设置错误”、“幂等键在重试时被重新生成导致重复扣款”、“小数精度漂移”等。
  • 可执行的修复手册:验证后的修复手册是可执行的规范(YAML技能),而非静态的维基页面。它包含触发条件、具体步骤(真实shell命令)、预期输出和风险步骤的批准者。手册与可执行文件始终保持同步。
  • 多平台集成:技能可以在团队日常使用的多个界面触发,包括 Slack 线程自动建议、CLI 命令(/pls fix)、PagerDuty 事件页面、Linear/Jira 问题以及统一的 Web 收件箱。
  • 信任与治理
    • 默认只读:所有连接器默认为只读模式,执行权限按修复手册单独授予并可一键撤销。
    • PII脱敏:在聚类和任何AI调用前,会剥离电子邮件、IP、客户ID等敏感信息。
    • 完整溯源:修复手册中的每个步骤都可追溯至其学习的具体已解决事故。
    • 审计与合规:支持数据驻留、保留策略(原始数据90天,脱敏数据18个月),提供单租户部署选项,所有运行记录均可导出用于审计,适用于金融科技等对安全要求高的场景。

试点信息

PlsFix 目前处于封闭试点阶段,计划与4家设计合作伙伴在2026年第二季度进行为期6周的试点。试点从只读数据摄取开始,第一周进行联合聚类审查,第四周启用自动建议功能。目标是将团队的重复性事故量减少30%。

11. Amber: Programming language compiled to Bash (amber-lang.com)

Amber 是一种编译到 Bash 的现代类型安全编程语言,其核心优势在于能够在编译时捕获错误和缺陷。该语言借鉴了 ECMAScript 风格的语法,并强调运行时安全与强类型系统,有助于在开发阶段预防潜在问题。

通过提供的代码示例可以看出 Amber 的实际应用方式:一个使用 std/text 模块中 join 函数的天气查询函数。该函数接收城市列表作为参数,使用 curl 命令获取天气信息,并具备错误处理机制(例如在请求失败时输出错误信息并继续执行)。示例还展示了 Amber 如何与系统命令交互,体现了其与 Bash 的互操作性。

Amber 的主要特性包括:

  • 现代语法:采用类似 ECMAScript 的易用语法结构。
  • 运行时安全:强制处理可能失败的操作,增强程序健壮性。
  • 类型安全:通过强类型检查在编译期减少错误。
  • 即时文档:支持自动生成文档。
  • Bash 兼容:可与现有 Bash 脚本无缝协作。
  • 内置标准库:提供丰富的常用函数库。

此外,Amber 于 2024 年获得首个奖项,其创始人为 Paweł Karaś。该语言旨在结合现代编程语言的便利性与 Bash 脚本的实用性,提升开发效率和代码可靠性。

12. Number 16 (spider) (en.wikipedia.org)

Number 16(约1974-2016),编号#16,是一只野生雌性陷阱门蜘蛛(Gaius villosus,异漏斗蛛科)。它生活在西澳大利亚州塔明附近的North Bungulla保护区,估计活了43岁,成为已知最长寿的蜘蛛,打破了此前由一只28岁狼蛛保持的纪录。

长期监测项目 1974年3月,澳大利亚蛛形动物学家芭芭拉·约克·梅因开始了一项关于蜘蛛家族的长期研究。她在1974年标记了一些蜘蛛,次年返回时发现了新的幼蛛,其中包括很可能生于1974年初秋雨后的“Number 16”。梅因教授坚持每年甚至更频繁地返回该地点观察,持续了超过四十年。

与其他陷阱门蜘蛛一样,“Number 16”一生都居住在同一个洞穴中,以落入其丝质活板门屋顶的昆虫为生。随着时间推移,检查它的洞穴已成为研究人员的惯例。在它40岁生日时,研究助理曾想喂食它,但梅因教授为避免干扰研究而拒绝。

由于“Number 16”的存在,该项目持续的时间远超预期。梅因教授工作至80多岁后,因自身健康状况下降,将项目移交给了利安达·梅森。

死亡与后续 2016年10月31日,研究员利安达·梅森发现“Number 16”的洞穴已损坏,蜘蛛失踪。证据表明它被一只寄生的蜘蛛黄蜂刺穿洞口丝塞而杀死。在约半年前的调查中,它仍然存活。研究人员根据该物种雌性对洞穴的高度忠诚,高度确信“Number 16”死时年龄为43岁。其死讯在2018年4月因相关研究论文发表而受到广泛关注。

退休后,芭芭拉·约克·梅因因阿尔茨海默病住进护理机构。2018年,继任研究者利安达·梅森表示,芭芭拉教授“记得No. 16”,但“忘记了它已经死了”。

13. "No way to prevent this" say users of only language where this regularly happens (xeiaso.net)

Anubis 是一个网站保护系统,旨在防止 AI 公司过度抓取网站内容。抓取行为会导致网站停机,使资源无法访问,影响所有用户。该系统采用类似 Hashcash 的工作量证明方案,在个人访问时负载可忽略,但在大规模抓取场景下会增加成本,从而使抓取行为更加昂贵。这是一个临时解决方案,目的是为开发者争取时间来改进指纹识别和无头浏览器检测技术,例如通过字体渲染方式识别合法用户,避免向真实用户显示验证页面。Anubis 依赖现代 JavaScript 功能,因此用户需要禁用 JShelter 等可能干扰这些功能的浏览器插件,以确保正常访问。

14. Show HN: Openpanel – An open-source alternative to Mixpanel (github.com)

Openpanel:开源分析平台

Openpanel 是一个开源的网页与产品分析平台,旨在成为 Mixpanel 的强大替代品,同时兼具 Plausible 的易用性,并作为 Google Analytics 的优秀替代方案。

核心功能

  • 高级分析:提供漏斗分析、用户分组、用户画像和会话历史记录。
  • 会话回放:可录制并回放用户会话,并内置隐私控制。
  • 实时仪表板:支持数据实时更新和交互式图表。
  • A/B 测试:内置变体测试与详细的数据细分。
  • 智能通知:基于事件和漏斗的警报功能。
  • 隐私优先:默认无 Cookie 跟踪,符合 GDPR 规范。
  • 开发者友好:提供全面的 SDK 和 API 接口。
  • 自托管:用户可完全掌控自身数据与基础设施。
  • 透明定价:无隐藏费用或使用限制。
  • 自定义仪表板:灵活创建图表和进行数据可视化。
  • 多平台支持:适用于 Web、移动端(iOS/Android)及服务器端跟踪。
  • MCP 服务器:支持通过 Claude 或 Cursor 等客户端直接查询用户数据(38 个工具,托管无需安装)。
  • 收入追踪:可监控购买、订阅及用户生命周期价值(LTV)。
  • 集成能力:支持连接 Google Search Console 等外部数据源。

与同类产品对比

Openpanel 在以下方面表现突出:

  • 开源与自托管:区别于 Mixpanel 和 GA4。
  • 默认无 Cookie 跟踪:同样具备此特性的仅有 Plausible。
  • 会话回放无限制:Mixpanel 的免费版和付费版均有限制,而 Openpanel 无此限制。
  • 综合功能:在漏斗分析、用户画像、A/B 测试和实时仪表板等方面,结合了多个产品的优势。

技术栈

  • 前端:Next.js
  • 后端 API:Fastify
  • 数据库:PostgreSQL(存储基础信息)、ClickHouse(存储事件数据)
  • 缓存与队列:Redis、BullMQ、GroupMQ
  • 其他:Resend(邮件)、Arctic(OAuth)、Oslo(认证)、tRPC(API)、Tailwind CSS、Shadcn UI

自托管与开发

  • 自托管:提供简化部署流程,具体指南见官方文档。
  • 开发环境
    • 先决条件:Docker、Docker Compose、Node.js、pnpm。
    • 启动步骤:安装依赖、配置环境变量、使用 Docker 启动服务、运行代码生成与数据库迁移,最后启动开发服务器。
    • 访问地址
      • 仪表板:https://localhost:3000
      • API:https://api.localhost:3333
      • 队列监控:http://localhost:9999
15. Wikimedia Enterprise – APIs for LLMs, AI Training, and More (enterprise.wikimedia.com)

Wikimedia Enterprise 产品摘要

产品概述

Wikimedia Enterprise 是专为维基百科、维基数据及所有维基媒体项目打造的企业级 API 服务。该服务主要面向人工智能(AI)、大语言模型(LLM)训练、搜索引擎和知识图谱的构建,帮助全球大型组织高效获取并利用高质量的知识数据。

数据规模与访问方式

  • 海量多语种数据:涵盖超过 360 种语言版本的维基百科,以及维基数据、维基词典、维基教科书等多个维基项目,总计包含超过 3 亿个独立页面。
  • 灵活的获取方式:支持单篇文章检索、整个项目的数据快照(Snapshot)下载以及实时数据流(Real-time stream)传输。

核心优势与特性

  • 数据可信与安全:提供人工策划的可靠内容。内置专属工具、元数据和可信度信号,用于检测不准确、有偏见或恶意破坏(Vandalism)的信息,有效降低数据风险。
  • 高度结构化与易用性:提供结构良好、文档齐全的服务,支持多种机器可读格式。具备全局一致的标识符和 API 响应,便于系统直接解析和提取信息。
  • 零授权费用:超过 99.9% 的数据采用知识共享(Creative Commons)许可,允许企业自由用于商业场景,且每次请求均附带清晰的许可元数据说明。
  • 企业级稳定性与支持:提供量身定制的合同与服务等级协议(SLA)以确保可靠性。配套高级咨询、工程师直接对接及 24/7 全天候专属支持,助力数据无缝集成。

最新动态与应用案例

  • 免费账户权益升级:免费 API 账户现已大幅提升额度,每月可获得 50,000 次按需 API 请求、30 次快照请求,并免费开放结构化内容快照(Structured Contents Snapshots)的访问权限。
  • Databricks 数据处理案例:Databricks 工程师利用 Wikimedia Enterprise 的结构化内容端点结合 Apache Spark,成功将数百万篇维基百科文章大规模转换为 Markdown 格式。该方案直接跳过了繁重的正则表达式解析层,显著提升了原始维基文本的处理效率。
16. I want flexible queries, not RAG (win-vector.com)

文章标题: 我想要灵活查询,而非RAG

主要内容:

作者对当前备受关注的“检索增强生成”(RAG)技术提出了不同看法。他认为,尽管RAG旨在通过引用权威来源来弥补大语言模型(LLMs)的缺陷,但LLMs的主要价值其实在于其灵活的自然语言查询接口,而非其生成阶段。

作者通过一个具体事例说明自己的观点:他的母亲记得一道西西里米饭烘蛋菜肴。他使用ChatGPT(纯生成模式,非RAG)询问时,得到了一个看似合理但可能不准确的回答。相比之下,他的妻子使用传统搜索引擎,尽管需要处理查询接口的生硬性、信息冗杂和来源限制等问题,但最终找到了具体的食谱,并且其中一道菜符合他母亲的记忆。

作者强调,他需要的是检索到准确的食谱,而不是LLM生成的“看似合理的食谱混合物”。他认为LLM的查询管理和信息检索能力,比其生成回复的能力更有价值。最后,他引用了一个比喻来总结:“你无法通过收割更多干草来找到针堆里的针”,以此强调精准检索的重要性。

17. Show HN: PBT – A property-based testing library for Ruby (github.com)

PBT:Ruby 的属性测试库

PBT (Property-Based Testing) 是一个用于 Ruby 的属性测试工具,其实验性功能允许并行运行测试用例。

核心概念

属性测试不同于传统的基于示例的测试,它不检查特定的输入输出,而是关注代码应始终满足的通用属性。通过自动生成大量输入来验证这些属性,能够覆盖更多边界情况,发现传统测试可能遗漏的错误。

主要组件

  1. Runner (运行器)Pbt.assert 是运行器,负责执行属性并尝试在失败时缩小输入。
  2. Property (属性):通过 Pbt.property 声明,定义要验证的内容(谓词)以及如何生成输入。
  3. Arbitrary (随机生成器):负责生成随机测试数据,也负责在测试失败时缩小数据。内置了多种类型(如 Pbt.integer, Pbt.array, Pbt.symbol 等),并支持组合。
  4. Shrink (缩小):当测试失败时,PBT 会尝试找到导致失败的最小输入,使其更易于调试。

功能特性

  • 基本用法:通过 Pbt.assertPbt.property 定义并运行测试。
  • 实验性状态测试:提供 Pbt.stateful API 进行基于模型/命令的测试,目前仍为实验性,接口可能变化。
  • 失败调试
    • 复现:测试失败时会提供一个 seed,可通过指定相同的 seed 来复现失败。
    • 详细模式:启用 verbose: true 可查看所有测试值和失败历史。
  • 并发执行:支持通过 worker 选项选择并发方法:
    • :ractor:实验性支持,适用于 CPU 密集型测试,但有访问限制(如不能访问外部变量或使用测试框架的断言)。
    • :none:顺序执行,适用于大多数情况。
  • 配置:可通过 Pbt.configure 或直接向 Pbt.assert 传递参数进行全局或局部配置(如 num_runsseedworker 等)。

开发状态与计划

目前 PBT 正在开发中,v1.0.0 发布前需完成:基础任意值生成、复合生成、缩小支持、多并发方法支持、文档完善、基准测试和富报告等。项目灵感来源于 fast-checkLoupeRSpec 等工具。

18. How to Turn Off AI Overview in Google and Set "Web" as Default (tenbluelinks.org)

文章总结:如何关闭谷歌AI概览并设置“Web”为默认搜索引擎

核心内容

谷歌于5月15日推出“Web”过滤器,该功能可移除搜索结果中的“AI概览”及其他杂乱信息,仅保留传统网页结果。本文提供了在不同浏览器中将“Google Web”设置为默认搜索引擎的方法。

设置方法(按浏览器分类)

  1. Chrome Android / iOS

    • 访问TenBlueLinks.org。
    • 在新标签页中使用谷歌搜索一次(关键步骤)。
    • 点击菜单(三点图标)> 设置 > 搜索引擎。
    • 在“最近访问”部分选择“Google Web”。
    • 提示:浏览器显示“tenbluelinks.org”为指令来源,但实际搜索仍直接发送至谷歌。
  2. Chrome Windows/macOS

    • 打开设置:chrome://settings/searchEngines
    • 在“网站搜索”部分点击“添加”。
    • 填写信息:
      • 搜索引擎:Google Web
      • 快捷方式:@web
      • URL:{google:baseURL}search?q=%s&udm=14(关键参数)。
    • 保存后,将其设为默认搜索引擎。
  3. Firefox Windows/macOS

    • 在Firefox中访问TenBlueLinks.org。
    • 右键点击地址栏,选择“添加Google Web”。
    • 打开菜单 > 设置 > 搜索 > 默认搜索引擎,选择“Google Web”。
    • 提示:同上,实际搜索仍直接发送至谷歌。

技术原理

  • 针对不支持自定义搜索引擎的移动浏览器,使用OpenSearch(一种简单的XML文件)。
  • 该文件指示浏览器为所有谷歌搜索添加URL参数 udm=14,从而激活“Web”过滤器。
  • 该网站及作者无法访问用户的搜索历史或任何输入信息。
  • 网站源代码和OpenSearch文件可供用户自行检查以确认安全性。

附加信息

  • 网站获得BestKru赞助。
  • 谷歌是谷歌公司的注册商标。
19. A Road to Common Lisp (2018) (stevelosh.com)

通往Common Lisp之路(2018)摘要

核心理念

Common Lisp (CL) 是一个稳定、实用、可扩展但外表不甚优美的语言。其ANSI标准自1995年发布后未再修订,这带来了巨大的向后兼容性,代码可以运行数十年而无需修改。它强大且自包含,许多在其他语言中属于核心的功能,在CL中可以通过以库的形式提供,从而实现无缝扩展。

学习路线图

第一步:入门准备

  1. 选择实现:推荐 SBCL (通用) 或 Clozure CL (CCL) (macOS应用商店易获取)。
  2. 选择编辑器:初期任何能平衡括号和高亮语法的编辑器均可,无需立即学习Emacs。
  3. 初步验证:编写并运行一个简单的 hello.lisp 文件,熟悉REPL环境。

第二步:循序渐进学习

  1. 《Common Lisp: A Gentle Introduction to Symbolic Computation》:最佳入门书,温和引导,适合完成所有练习以克服初期障碍。
  2. 《Practical Common Lisp》:进阶实用书籍,涵盖大量主题。此时应开始习惯查阅 Common Lisp HyperSpec (CLHS) 官方规范。
  3. 动手实践:完成上述学习后,应独立完成一个项目(如Project Euler问题、小机器人等)。
  4. 拥抱交互式开发:这是CL的精髓。需配置Emacs (SLIME/Sly)Vim (Vlime),以获得函数级编译、即时反馈和强大的调试能力(例如,在游戏运行中修复bug而不重启进程)。

第三步:深化与拓展

  1. 《Paradigms of Artificial Intelligence Programming》(PAIP):学习编写地道CL代码的优秀范例。
  2. 切换实现:将已有代码移植到另一个实现(如从SBCL到CCL),以确保代码的可移植性。
  3. 《Common Lisp Recipes》:参考手册,涵盖多种实际场景的解决方案。
  4. 《Patterns of Software》:推荐阅读,非技术性但富含洞见。

进阶专题

  • :《On Lisp》、《Let Over Lambda》。
  • 面向对象 (CLOS):《Object-Oriented Programming in COMMON LISP》、《The Art of the Metaobject Protocol》。
  • 其他领域:Web开发、游戏开发、低级编程、单元测试框架(如 1am)、窗口管理(如 StumpWM)等。

项目结构与现代工具

  • :是符号的容器,与文件系统无关联。
  • 系统:由 ASDF 定义,包含代码加载方式、依赖关系和元数据。
  • 项目:一个项目可包含多个系统(如主库和测试系统)。
  • Quicklisp:库管理器,用于从网络下载项目并交由ASDF加载,是现代CL开发的标准工具。

常用库概览

  • Alexandria:通用实用函数库。
  • Bordeaux Threads:可移植的多线程支持。
  • CFFI:C语言外部函数接口。
  • CL-PPCRE:正则表达式库。
  • Drakma:HTTP客户端。
  • Iterate:强大的迭代宏,可替代 loop
  • local-time:时间与日期处理库。
  • lparallel:并行计算库。
  • st-json:JSON处理库(作者推荐其类型映射明确)。
  • usocket:可移植的网络套接字库。

结语

Common Lisp是一门深邃的语言,需要时间投入,但其稳定性、交互性和强大的表达能力会带来丰厚回报。学习过程中应善用社区资源(如IRC、Discord)。

20. iTerm2 and AI Hype Overload (xeiaso.net)

网站受Anubis保护,由Techaro提供支持,并于加拿大制作。吉祥物设计由CELPHASE负责,当前运行Anubis版本v1.25.1-0.20260604200537-44d5fa3ce047。

21. How and why to make a /now page on your site (sive.rs)

/now页面概述

什么是/now页面?
/now页面是一个在个人网站上分享当前活动的页面,内容类似于向一年未见的朋友描述近况。它通常位于URL /now,并从主菜单链接(如与“关于”页面相邻)。

为什么创建/now页面?

  • 方便沟通:让朋友和访客快速了解你的当前重点和活动,无需查阅社交媒体或博客历史。
  • 公开优先事项:作为公开声明,帮助聚焦个人目标,并可用于礼貌拒绝无关邀请或分心事务。
  • 社区效应:自2015年作者创建以来,这一概念已传播,全球超过2300人参与,形成了共享文化的网络。

如何创建/now页面?
三个核心要素:

  1. 页面位置:通常设置为URL /now,并从网站导航菜单访问。
  2. 内容:概述当前活动,以自然、对话式语言撰写,就像告诉老朋友近况。
  3. 更新日期:明确标注最后更新时间,保持信息新鲜度。

平台具体指南

  • WordPress
    • 进入后台“页面”部分,点击“添加新页面”。
    • 标题输入“now”,确保URL自动设为/now。发布后可修改标题(如“我正在做什么”)。
  • Wix
    • 在“网站菜单”中点击“+ 添加页面”。
    • 命名为“Now”,并编辑“SEO基础”中的URL slug为“now”。
  • 无网站用户(推荐Bear)
    • 使用免费平台BearBlog.dev(作者推荐并担任教父,承诺长期维护)。
    • 在Bear中点击“页面”→“新建页面”,标题输入“now”,确保URL为/now。发布后可调整标题。

社区与参与

  • 作者运营网站nownownow.com,汇集全球/now页面,支持按位置浏览和搜索功能。
  • 如果你创建了/now页面,可通过电子邮件发送URL给作者,手动添加到该网站。这也是建立联系的机会。
22. Why not just do simple C++ RAII in C? (thephd.dev)

为什么不能在C中实现简单的C++ RAII?

C语言无法直接采用C++的RAII(资源获取即初始化)模式,主要原因涉及语法和语义两个层面的根本性障碍。

语法难题:函数重载与名称修饰

C++的RAII通过构造函数和析构函数实现,其依赖函数重载特性。重载函数在编译后需通过名称修饰生成唯一标识符以确保ABI兼容。例如,C++中同一类型的多个构造函数会修饰为不同的符号名。

C语言缺乏函数重载概念,且不同编译器(如GCC、MSVC)的名称修饰方案互不兼容。若C要引入类似C++的构造函数语法,所有C编译器都需实现与C++兼容的名称修饰器。然而:

  • 名称修饰规则复杂且未标准化,不同平台实现差异巨大。
  • 实现兼容的名称修饰器需要巨大工作量(如Clang的修饰器代码量约7000行,相当于一个小型编译器的全部代码)。
  • 数百个C编译器实现质量参差不齐,强制要求实现名称修饰将导致严重的ABI兼容性问题。

语义障碍:对象模型的缺失

即使语法问题得以解决,C缺乏支持RAII所需的对象模型

  • C++拥有严格的对象生命周期管理,包括构造函数、析构函数、移动/复制语义等。
  • C仅依赖有效类型规则,通过lvalue访问确定内存类型,缺乏对对象构造、析构、复制的系统性支持。
  • 简单引入构造/析构函数而不解决对象模型,会导致严重问题。例如:
    struct nya n = {30};
    struct nya n2 = n; // 默认浅拷贝会导致双重释放
    
    提案中常忽略对象复制/移动语义,引发安全隐患。

社区提案的局限性

一些C社区提案尝试通过新语法(如_Constructor/_Destructor标签或_Operator关联)绕过名称修饰问题,但仍未能解决对象模型缺陷:

  • 未定义对象复制/移动行为
  • 未考虑动态内存分配(如new/delete)与构造/析构的耦合
  • 缺乏对赋值、传递等操作的规范

文化因素:C与C++的对立

C社区中存在将C视为“反C++”或“简化C++”的倾向,导致许多提案:

  • 未充分借鉴C++多年积累的工程经验
  • 未深入分析RAII的适用性与局限性
  • 简单否定C++设计而非寻求C语言自身的优化路径

结论

C实现RAII需同时解决语法兼容性和对象模型构建两大难题。作者提出的defer机制选择了一条更适合C语言特性的路径:提供过程式的资源管理方式,避免引入复杂的对象模型,从而保持C语言的简洁性和可控性。

23. Microsoft Paint's new AI image generator builds on your brushstrokes (petapixel.com)

Microsoft Paint 通过 Cocreator 推出新的 AI 图像生成器,该功能不仅支持文本提示生成图像,还能结合用户手绘的“涂鸦”输入,实现更精细的 AI 图像定制。用户可以将笔触与文本结合,AI 会基于扩散算法几乎实时生成图像,并随用户迭代不断优化作品。此外,用户可通过“创造力”滑块控制 AI 影响程度,从字面到表现力范围内调整输出,并持续在作品上迭代以表达想法。

这一创新扩展了 AI 图像生成的可能性,可能影响其他 LLM 图像模型,同时也引发了关于 AI 增强艺术版权归属的讨论。Microsoft Paint 此前已集成 AI 工具如一键移除背景和 Copilot 支持,但此次更新使 AI 功能面向所有用户。该应用自 2017 年被微软退役后复活,目前正跟上技术发展步伐。图像来源为 Microsoft。

24. Tensor Puzzles (github.com)

文章概述

本文介绍了由Sasha Rush和Marcos Treviso创作的"Tensor Puzzles",这是一系列21个张量编程练习,旨在帮助学习者掌握PyTorch或Numpy中基于广播(broadcasting)和基本原理的张量操作,而非依赖标准库函数。

核心目的

通过类似国际象棋谜题的简化练习,让学习者实践使用索引、广播、算术和比较等基本操作,用一行代码(<80列)重新实现常见的NumPy标准库函数,从而深入理解张量语言的表达能力。

基本规则

  1. 限制条件:只能使用 @、算术、比较、shape、各类索引(如切片、None)以及前一个谜题的函数。
  2. 禁止项:禁止使用 view, sum, take, squeeze, tensor 等高级函数。
  3. 基础函数:提供两个可替代循环和条件语句的基础函数:
    • arange(i):生成范围向量。
    • where(q, a, b):根据布尔掩码选择值。

谜题列表与内容

共21个谜题,每个都提供了函数规范说明和测试框架。主要谜题包括:

  • 基础操作ones(生成全1向量)、sum(向量求和)。
  • 线性代数outer(外积)、diag(取对角线)、eye(单位矩阵)、triu(上三角矩阵)。
  • 累加与差分cumsum(累积和)、diff(运行差值)。
  • 矩阵操作vstack(垂直堆叠)、flatten(展平)。
  • 数组变换roll(循环移位)、flip(反转向量)。
  • 掩码与填充compress(按掩码筛选)、pad_to(调整长度)、sequence_mask(按长度掩码)、bucketize(区间分桶)。
  • 聚合与散射bincount(计数)、scatter_add(散射加法)。
  • 数学函数linspace(生成等差数列)、heaviside(单位阶跃函数)。
  • 复制操作repeat(重复张量)。

附加内容

  • 环境推荐:建议在Google Colab中运行。
  • 视频教程:提供YouTube解题讲解。
  • 速度挑战:展示所有函数可被压缩为单行(每行29字符)的实现示例,鼓励寻找最精简的解决方案。

总结

这是一套系统性的张量编程练习集,通过约束性的谜题形式,强制学习者运用广播和基础操作来解决问题,旨在培养不依赖现成函数、从底层原理构建复杂张量操作的能力。

25. Alacritty – A fast, cross-platform, OpenGL terminal emulator (github.com)

Alacritty 是一款快速、跨平台的 OpenGL 终端模拟器,以现代设计、合理默认设置和高度可配置性为核心。它通过与其他应用程序集成而非重复实现功能,实现了高性能与功能灵活性的平衡。目前支持 BSD、Linux、macOS 和 Windows 平台,软件处于测试阶段,但已被许多用户作为日常工具使用。预编译二进制文件可从 GitHub 发布页面获取。

主要特点

  • 基于 GPU 加速,使用 OpenGL 进行渲染。
  • 通过配置文件自定义设置(如字体、颜色、快捷键等)。
  • 不包含标签页、分屏等功能,专注于终端核心性能。

安装

  • 可通过各平台包管理器安装(如 Linux 的 apt、macOS 的 Homebrew)。
  • Windows 和 macOS 也可直接下载预编译二进制文件。
  • 最低要求:OpenGL ES 2.0;Windows 需要 ConPTY 支持(Windows 10 版本 1809 或更高)。

配置

  • 配置文件路径遵循 XDG 标准,例如 $HOME/.config/alacritty/alacritty.toml
  • Windows 中为 %APPDATA%\alacritty\alacritty.toml
  • 配置文档可通过 man 5 alacritty 或官网查看。

性能与功能取舍

  • 基准测试(使用 vtebench)显示其吞吐量优于多数终端模拟器。
  • 故意省略某些功能(如标签页、分屏、GUI 配置编辑器),建议通过窗口管理器或终端多路复用器实现。

其他信息

  • 开源项目,采用 Apache License 2.0 许可证。
  • 贡献指南详见 CONTRIBUTING.md 文件。
  • 社区支持可通过 libera.chat 的 #alacritty 频道获取。
27. What's the difference between a motor and an engine? (2013) (engineering.mit.edu)

本文是MIT“Ask An Engineer”项目的一部分,该项目旨在回答工程领域各类问题。文中介绍了项目的主旨,即从日常到高度复杂的问题都涵盖其中。页面提供了主题选择功能,并显示了导航结构,但未直接阐述“电动机”与“发动机”的具体区别。

28. The push to ban ransom payments is gaining momentum (socket.dev)

勒索软件的危害与禁付赎金的趋势

勒索软件的代价高昂 尽管勒索软件攻击在2022年仅占所有网络攻击的17%,但到2023年已造成约300亿美元的损失。根据IBM报告,此类攻击的平均成本为513万美元,这还未包含业务损失、声誉损害以及漫长的恢复过程带来的全部开销。现代勒索手段已超越单纯的数据加密,常叠加公开敏感数据或攻击受害者的客户与合作伙伴等多重勒索威胁。

关键行业成为重灾区 医疗和教育等行业因服务关键、系统老旧且数据价值高,成为主要目标。2023年,教育机构遭受的勒索攻击同比增加了70%。攻击后果严重,例如芝加哥Lurie儿童医院遭袭后被迫关闭系统,延误了危重患儿的救治;明尼阿波利斯公立学区拒付赎金后,攻击者公开了包含学生心理健康记录和性侵调查文件等极度敏感的资料。

支付赎金引发连锁问题 支付赎金无法保证数据安全恢复,甚至可能再次被勒索。例如,UnitedHealth集团在支付2200万美元赎金后,仍被另一个勒索团伙盯上。支付行为本身被广泛认为会资助犯罪并激励更多攻击。因此,一股旨在改变应对文化的潮流正在兴起,认为支付只会助长那些肆意攻击医院和政府机构、无视其造成人道灾难的犯罪行为。

全球推进禁止支付

  • 英国:国家网络安全中心联合保险商强烈建议受害者不要支付赎金。政府正提议强制事件报告并要求在支付勒索费用前获得许可证,旨在增加犯罪成本,使英国机构成为不那么有利可图的目标。
  • 美国:尽管2023年美国与48国等共同承诺不再支付赎金,但全面立法禁止仍面临挑战。勒索软件工作组指出,当前环境下突然禁止支付可能使依赖数字系统的小企业破产。各州已开始行动:北卡罗来纳州、佛罗里达州等已立法禁止公共实体支付;纽约州则提议对包括私营实体在内的支付行为处以罚款。
  • 行业呼吁:网络安全厂商Emsisoft等明确主张彻底禁止支付赎金,认为这是唯一能迅速减少勒索攻击数量的有效机制,因为该犯罪本质是利润驱动的。研究人员也指出,许多机构将更多精力放在决定是否及如何支付上,而非提升网络韧性,这种错误优先序亟待纠正。

前路挑战与方向共识 全面禁止支付赎金面临经济韧性、受害者短期生存等障碍。然而,共识正在形成:通过立法威慑、国际合作、强制安全准备以及逐步禁止支付来切断勒索软件的利润链,是长期解决方案。各州更激进的立法尝试将引领未来,旨在构建一个能抵御勒索、保护关键服务的更具韧性的环境。

30. The Effects of Early Relational Trauma (2001) [pdf] (www.allanschore.com)

早期关系创伤对右脑发育、情感调节与婴儿心理健康的影响

本文基于依恋理论、发展心理学和神经科学的跨学科视角,系统阐述了早期关系创伤(主要由照护者的虐待或忽视造成)对婴儿大脑发育、情感调节能力及终身心理健康的深远影响。核心论点指出,生命早期(特别是前两年)的创伤性依恋关系会损害右脑(尤其是眶额叶皮层)调节压力和情感的神经回路的经验依赖性成熟,导致持续性的情感调节障碍,并成为多种严重精神心理障碍(如创伤后应激障碍、边缘型人格障碍、解离性障碍等)的神经生物学基础。

核心机制与影响

  1. 早期关系创伤的性质:区别于单一事件,它通常是由照护者(尤其是母亲)造成的“环境性”和“累积性”创伤。照护者不仅未能提供情感调谐与互动修复,反而持续引发婴儿极端的负面情绪状态(如恐惧、无助),中断了神经生物系统的稳态平衡。

  2. 对右脑发展的损害:右脑在生命早期优先发育,专门处理社会情感信息、身体状态并主导依恋功能。创伤性经历会通过以下方式干扰其发育:

    • 神经毒性暴露:长期应激导致过量的应激激素(如皮质醇、促肾上腺皮质激素释放因子)和兴奋性神经递质(如谷氨酸)释放,对发育中的边缘系统(尤其是眶额叶皮层、杏仁核、前扣带回)产生神经毒性作用,可能引发细胞凋亡和突触过度修剪。
    • 结构性缺陷:导致眶额叶皮层与边缘系统、自主神经系统之间的连接效率低下,形成解剖学上的结构性缺陷。这使得个体无法有效整合内外环境信息,进行灵活的情感调节。
  3. “混乱型/失定向型”依恋:这是早期创伤的典型行为表现。此类婴儿在压力情境(如陌生情境实验)中表现出矛盾、无序的行为(如同时趋近与回避)、僵直、恐惧和解离状态。研究显示,超过80%的受虐儿童属于此类型,并伴有最高的心率和皮质醇水平,表明其压力反应系统严重失调。

  4. 情感调节障碍与解离

    • 创伤引发两种原始心理生理反应:初始的交感神经过度激活(惊恐、愤怒)和随后的副交感神经介导的解离(麻木、呆滞、情感抽离)。解离是一种在无助情境下的“保护性”关闭机制,但会损害意识连续性、情感体验和人际关系。
    • 由于眶额叶调节功能不足,个体会习惯性地在压力下滑向解离状态,而非采用适应性的调节策略。这导致情感失调,并阻断了通过人际互动进行修复和学习的机会。
  5. 长期后果与精神病理学易感性

    • 这种早期的神经发育轨迹会导致右脑功能的持久性障碍,表现为终身性的情感失调、压力耐受性低、人际互动困难以及使用原始防御(如解离)的倾向。
    • 混乱型依恋是多种严重精神病理的高危因素,特别是创伤后应激障碍(PTSD)、边缘型人格障碍和反社会人格障碍。文中详细论述了眶额叶功能障碍与PTSD中恐惧记忆无法消退、情感过度反应及攻击性调节失败之间的联系。
    • 还可能与“述情障碍”(难以识别和描述情感)、躯体化问题以及注意力调节困难相关。

干预与启示

  • 早期干预的关键性:鉴于大脑(尤其是右脑)在生命最初几年经历关键的可塑性增长期,早期的、基于关系的干预至关重要。通过治疗师与婴儿/幼儿及其家庭建立安全、调谐的互动关系,可以促进右脑情感调节系统的健康发展,有可能将依恋模式从“不安全”转变为“习得性安全”。
  • 心理治疗的普遍原则:促进情感调节是所有心理治疗的共同机制。理解创伤的神经生物学基础,强调治疗关系作为一种“促进成长的环境”,能为修复早期关系创伤提供希望。

结论

本文建立了一个连接“外部创伤事件”与“内部心理结构”的心理神经生物学模型。它强调,早期关系创伤通过损害右脑调节压力的核心神经回路,塑造了不适应的情感和行为模式,为成年期的精神障碍埋下了伏笔。这一视角不仅深化了对精神病理发生学的理解,也为最需要支持的婴幼儿及其家庭提供了有针对性的干预方向。

34. Microsoft Phi-3 Cookbook (github.com)

Microsoft Phi-3 Cookbook 概述

Phi Cookbook 是微软官方发布的实践指南,旨在帮助开发者快速上手并利用其开源的 Phi 系列小型语言模型(SLM)构建生成式 AI 应用。Phi 模型以其在多语言处理、推理、代码生成、图像与音频处理等多个任务场景中的强大性能和成本效益而著称,适用于云端和边缘设备部署。

核心特点与入门

  • 模型优势:Phi 系列模型(如 Phi-3, Phi-3.5, Phi-4)是当前能力强大的小型语言模型,在资源有限的计算环境下也能高效运行。
  • 快速开始:指南提供了清晰的步骤:Fork 并克隆代码仓库,加入微软 AI Discord 社区获取支持。
  • 多语言支持:仓库内容通过 GitHub Action 自动翻译并持续更新,支持超过50种语言(包括简体中文、繁体中文等)。为加快下载,可采用稀疏克隆(Sparse Checkout)方式跳过翻译文件。

内容结构与主要章节

该指南内容全面,目录结构清晰,主要涵盖以下部分:

  1. 介绍与环境设置:包括 Phi 系列模型介绍、环境配置、关键技术理解、AI 安全、硬件支持、各平台可用性以及使用 Guidance-ai 等工具。
  2. 在不同环境中推理 Phi:提供了在 Hugging Face、GitHub Models、Microsoft Foundry Model Catalog、Ollama、VS Code 的 AI Toolkit、NVIDIA NIM、本地服务器等多种平台和工具上进行模型推理的指导。
  3. Phi 系列模型推理:详细介绍了在 iOS、Android、Jetson、AI PC、Apple MLX、远程服务器、Rust 环境、本地视觉模型以及通过 Kaito AKS/Azure Containers 等多种场景下的推理方法。
  4. 量化技术:讲解了使用 llama.cpp、ONNX Runtime、Intel OpenVINO、Apple MLX 等工具对 Phi-3.5/4 模型进行量化的步骤。
  5. 模型评估:介绍了响应 AI 评估、微软 Foundry 评估以及使用 Promptflow 进行评估的方法。
  6. 与 Azure AI Search 集成:展示了如何将 Phi-4 模型与 Azure AI Search 结合用于检索增强生成(RAG)。
  7. 应用开发示例:这是指南的核心部分,提供了大量分门别类的代码示例和实践案例:
    • 文本与聊天应用:涵盖 Phi-4、Phi-3/3.5 的多个本地、Web 及 ONNX 运行时应用。
    • Azure AI 推理 SDK 示例:基于 SDK 的开发案例。
    • 高级推理示例:针对 Phi-4 推理模型的专门示例。
    • 视觉、音频、数学、函数调用、多模态混合等专项示例:展示了模型在图像理解、语音转录、数学问题解决、函数调用与多智能体系统等方面的应用。
    • 微调示例:提供了使用 AI Toolkit、Azure ML、LoRA/QLora、微软 Foundry、Microsoft Olive、Apple MLX 等多种工具和方法微调 Phi 模型的详细指南。
  8. 实验与资源:包括探索前沿模型的实验(Hands on Lab)以及 Phi 系列技术报告的学术论文链接。
  9. 使用 Phi 模型:指导如何在微软 Foundry、GitHub Models 和 Hugging Face 平台上体验和使用 Phi 模型,并提供了对应的 Playground 链接。
  10. 负责任的 AI:强调了微软对负责任 AI 的承诺,提供了使用 Azure AI Content Safety 服务检测有害内容、进行应用性能与安全评估的指导。

总结

Microsoft Phi-3 Cookbook 是一个全面的、面向实践的技术资源库。它不仅详细介绍了 Phi 模型家族的能力和部署方式,更通过丰富的代码示例、分步指南和行业最佳实践,覆盖了从环境搭建、模型推理与量化、评估、集成、应用开发到模型微调的完整生命周期,帮助开发者充分利用这一高效的小型语言模型构建创新的 AI 解决方案。指南还特别关注了 AI 安全与负责任使用,提供了相应的工具和评估方法。

35. Faking William Morris, Generative Forgery, and the Erosion of Art History (maggieappleton.com)

核心现象:AI美化与生成式伪造

如今,莫奈、梵高、威廉·莫里斯等著名艺术家的“作品”在视觉上变得比以往更加鲜艳、精美且符合现代审美。在Etsy等电商平台上,充斥着大量此类艺术家的版画。这些图像实际上是神经网络生成的伪造品,它们提取了传统艺术家的图案和主题,并融合了现代网络的高清、戏剧性光影等流行美学元素,使其比真迹更具视觉吸引力。

故意欺骗与艺术伪造

卖家在商品列表中故意隐瞒了这些图像是AI生成的事实,未添加任何“受启发”或“仿作”的免责声明。相反,他们将这些伪造品与艺术家的真迹混合销售,直接使用艺术家的名字,并捏造虚假的作品名称、展览、城市和年份等背景信息。这种行为本质上是将仿制品冒充真迹的艺术伪造,构成了对消费者的故意欺骗。

识别困境

尽管放大观察可以发现AI生成图像的典型瑕疵(如背景图案不一致、物体不完整、边缘模糊和形状异常),但其高度逼真的视觉效果极易误导普通消费者。大多数缺乏专业艺术史知识的公众难以分辨真伪,容易在消费冲动下将其误认为艺术家的罕见佳作。

深远危害:艺术史与认知的侵蚀

生成式伪造对艺术史和人类认知基础构成了严重威胁:

  • 数据污染与恶性循环:如果AI生成的伪造图像大量充斥网络,未来的AI助手和新一代神经网络将抓取这些被“污染”的数据进行训练和输出,形成“蛇吞其尾”的无限循环。
  • 真伪界限消失:随着AI模型的不断进化,生成的图像将消除现有的视觉瑕疵,最终在认识论上与真迹完全无法区分。
  • 认知基础破坏:在缺乏强制要求AI生成内容添加明确标签和硬编码水印的立法情况下,这种文化上不负责任的商业行为将扭曲下一代人对艺术史的理解,严重破坏社会本已脆弱的知识与认知基础。
37. Clever code is probably the worst code you could write (read.engineerscodex.com)

聪明代码可能是你所能编写的最糟糕的代码

工程实践的核心观点
在软件工程中,过度追求“聪明”的代码(如使用晦涩的一行代码解决问题)实质上是不良实践。这种被称为“代码高尔夫”的写法虽有趣,却远离了工业标准的“好代码”。

清晰代码的编写难度
真正的清晰代码实际上更难编写。作者以自身在C++中的模块开发为例:

  • 初始代码虽功能完整,但结构混乱如“意大利面条”,无法通过代码评审。
  • 通过拆分为8-10个差异提交(diff),每个提交包含整洁的封装代码、辅助函数和基本单元测试,并经过多次重构与代码清理,最终实现了可读性强的清晰代码。
  • 然而,这种清晰性带来意外后果:经理认为代码“看起来太简单”,建议额外编写设计文档以证明其复杂度,以便在绩效考核中获得认可。

行业现象与反思

  1. 代码清晰性与复杂度认知的矛盾:清晰的代码因易于理解而显得“简单”,可能掩盖其实现难度,这在大型科技公司的晋升文化中可能导致误解。
  2. 编码风格的重要性:通过遵循严格的风格指南、接受资深开发者的代码审查,可以提升代码清晰度。谷歌、Vercel等公司发布的风格指南及行业通用的代码格式化工具(如Linter、Prettier)体现了这一共识。
  3. 调试难度高于编写:正如Brian W. Kernighan所说:“调试代码的难度是编写代码的两倍。”因此,编写聪明代码的人可能无法驾驭其调试过程。
  4. 实践启示:从产品导向转向技术导向的过程中,作者意识到清晰代码对团队协作和维护至关重要。行业经验表明,代码清晰度与工程成熟度正相关。

总结
聪明代码牺牲可读性换取简洁性,而清晰代码虽编写困难却能降低维护成本。软件工程应优先考虑代码的可读性与团队协作,而非追求个人技巧的炫示。

38. When Kodak and Polaroid went to war (steveblank.com)

柯达与宝丽来在20世纪曾维持了20多年的合作伙伴关系,但1969年4月柯达突然宣布终止合作,开始全面打压宝丽来业务。外界对此多有猜测,但真正原因与高度机密的美国间谍卫星项目密切相关。

冲突背景:摄影技术与间谍卫星的交汇

  • 胶片摄影:柯达自1888年起革新摄影技术,使大众能轻松拍照,但成像需等待数日。宝丽来则于1948年推出即时成像相机,实现分钟内显影,并在1963年推出彩色即时胶片。
  • 间谍卫星计划:冷战期间,美国依赖侦察卫星获取情报。柯达深度参与其中,为多代卫星提供胶片与相机系统:
    • CORONA项目(CIA):使用柯达胶片,通过返回舱回收胶片,从1960年运行至1972年。
    • GAMBIT项目(NRO/空军):搭载柯达高分辨率相机,分辨率可达英寸级,执行了多代任务。
    • DORIAN项目:原计划用于军用空间站(MOL),搭载柯达胶片相机,旨在进一步提升分辨率。

关键转折:宝丽来CEO的介入导致柯达失利 1969年,尼克松政府为削减预算,取消了CIA的HEXAGON卫星项目(由珀金埃尔默公司提供相机),转而支持空军的MOL/DORIAN项目(使用柯达相机)。然而,CIA的侦察顾问委员会——由宝丽来创始人兼CEO埃德温·兰德领导——成功游说政府逆转决定。兰德论证HEXAGON在监测苏联军控条约上更具优势,而MOL因视场狭窄且需载人,效率低下。

最终,尼克松政府:

  1. 取消了MOL及其DORIAN相机项目;
  2. 批准CIA建造HEXAGON卫星;
  3. 同意开发KH-11 KENNEN卫星(采用电子成像技术),终结了胶片侦察卫星时代。

这直接导致柯达损失了大量政府合同:1969至1970年政府销售额下降36%(约合今天数亿美元),并裁员数千人。

柯达的报复与双方衰落 作为报复,柯达于1969年:

  • 终止为宝丽来生产即时胶片底片(年合约价值约今天4亿美元);
  • 研发自有即时相机和兼容宝丽来相机的胶片,直接争夺宝丽来核心利润来源。

1976年,柯达推出即时相机及胶片,宝丽来以专利侵权起诉。长达9年的诉讼后,法院于1985年判决柯达侵权,禁止其销售相关产品,并于1991年判赔9.25亿美元。

结局

  • 宝丽来:兰德1982年退休后公司创新停滞,2001年破产。
  • 柯达:固守胶片业务,错过数码摄影浪潮,2012年破产重组。
  • 侦察卫星:1976年首颗电子成像卫星KH-11 KENNEN升空,后续型号延续运行至今,彻底取代胶片卫星。

两家公司的冲突本质是冷战技术竞争的延伸,宝丽来CEO在关键卫星项目上击败柯达,引发商业报复,最终双方均未适应技术变革而衰落。

39. Why Your Wi-Fi Router Doubles as an Apple AirTag (krebsonsecurity.com)

文章摘要:Wi-Fi路由器如何成为苹果AirTag

核心问题: 苹果的Wi-Fi定位系统(WPS)通过收集并公开分享所有被苹果设备探测到的Wi-Fi接入点(AP)的精确位置信息,无意中使得全球的Wi-Fi路由器(包括非苹果设备,如Starlink终端)可被追踪,从而引发了严重的隐私和安全风险。

1. 苹果WPS的工作原理

  • 目的: 作为GPS的低功耗替代方案,为苹果设备提供基于众包数据的精确定位。
  • 数据收集: 苹果设备(以及谷歌设备)会定期将其通过GPS或蜂窝基站确定的自身位置,与附近探测到的所有Wi-Fi接入点的基本服务集标识符(BSSID,通常指MAC地址)一起上传。
  • 关键差异: 与谷歌WPS(直接计算并返回设备位置)不同,苹果的WPS API会返回请求的BSSID附近多达400个其他已知BSSID的位置。设备自身利用这些大量地标数据估算位置。这种“冗长”的API响应是研究者进行大规模追踪的基础。

2. 马里兰大学研究人员的发现

  • 方法: 研究者连续查询苹果API,请求随机生成的超过10亿个BSSID。虽然只有约300万个已知,但苹果额外返回了4.88亿个已存储的BSSID位置。
  • 能力: 通过分析这些返回数据,他们绘制了2022年11月至2023年11月间全球超过20亿个Wi-Fi接入点的近乎全球视图
  • 严重风险案例:
    • 追踪军事动态: 通过地理围栏(限定特定区域)追踪,他们发现并识别了乌克兰和俄罗斯军队使用的Starlink终端。Starlink终端自带Wi-Fi AP,其位置会被附近苹果设备自动索引。研究人员能借此看到部队的部署前位置、军事阵地以及个人设备的迁移情况。
    • 监控冲突区域: 在加沙地区,随着以色列军事行动导致电力中断和基础设施被毁,可定位的BSSID数量急剧下降,从数据上直接反映了冲突造成的影响
    • 身份关联风险: 由于许多路由器从住宅地址移动到战区,研究人员甚至可以关联到具体个人,例如外国军团志愿者。

3. 各方应对与解决方案

  • Starlink的应对: 在收到研究报告后,Starlink(SpaceX)确认其早期路由器使用静态BSSID/MAC,并在2023年初开始推送软件更新,强制随机化主路由器及后续Wi-Fi中继器的BSSID。数据显示,近一个月来可追踪的Starlink设备数量已大幅下降。
  • 苹果的应对: 2024年3月,苹果更新了隐私政策,允许用户通过在Wi-Fi网络名称(SSID)后添加“_nomap” 来选择退出其位置数据收集(此操作同样会阻止谷歌索引该AP)。研究人员指出,在此之前,用户无法选择退出此数据收集。

4. 研究人员的建议与警告

  • 普遍性风险: 任何Wi-Fi接入点,只要附近有开启定位服务的苹果设备,其位置就可能被收集并公开,无论拥有者是否使用苹果产品。
  • 脆弱群体风险: 该技术可能被用于追踪逃离家庭暴力或跟踪者的受害者,因为路由器的迁移会暴露其新住址。
  • 安全建议:
    • 在路由器或AP的SSID后添加 “_nomap” 以选择退出收集。
    • 移动热点(手机热点)是安全的,因为现代Android和iOS设备在热点模式下会自动随机化BSSID
    • 旅行路由器等使用静态BSSID的设备风险最高,已被观察到在军事部署等场景中被追踪。
  • 对苹果的呼吁: 研究人员肯定“_nomap”是第一步,但希望苹果进一步限制其API的滥用,例如对查询频率进行限制,以防止他人像他们一样积累海量数据。
41. What's New in Kotlin 2.0.0 (kotlinlang.org)

Kotlin 2.0.0 新特性总结

Kotlin 2.0.0 是一个里程碑版本,于 2024 年 5 月 21 日发布,其核心亮点是全新的 K2 编译器正式稳定,并成为默认编译器。该版本带来了编译器性能提升、语言特性改进、多平台开发优化以及各平台的具体更新。

一、 核心编译器:K2 稳定化

  • 默认启用:新的 K2 编译器成为所有目标平台(JVM、Native、Wasm、JS)的默认编译器。
  • 性能与质量:带来了显著的性能提升,加速新语言特性开发,并统一了多平台架构。经过大规模测试(1000万行代码,18000名开发者参与,80000个项目)以确保质量。
  • 智能转换增强:在更多场景下实现了自动类型转换(Smart Cast),主要包括:
    • 变量作用域if/when/while 块外定义的变量,其类型信息现在可以传递到条件块内使用。
    • 逻辑或运算符:使用 || 的类型检查现在会智能转换为它们的最近公共超类型,而不是 Any
    • 内联函数:编译器能更好地分析内联函数,从而安全地进行智能转换。
    • 属性、异常处理、自增/自减运算符等方面的智能转换行为也得到修复和改进。
  • 多平台改进
    • 严格分离:编译方案改进,确保通用代码与平台代码在编译时严格分离,消除了跨平台行为不一致的问题。
    • 可见性放宽:允许 expectedactual 声明具有不同的可见性,前提是 actual 声明的限制更宽松。
  • 迁移指南:官方提供了详细的迁移指南和回退方案。

二、 多平台与标准库

  • Gradle DSL 革新:为多平台项目引入了新的、更清晰的编译器选项配置 DSL,支持在扩展、目标和编译任务三个层级进行设置。
  • 标准库更新
    • enumEntries<T>() 函数稳定,用于替代 enumValues<T>()
    • AutoCloseable 接口在通用代码中稳定,包含 use() 扩展函数。
    • AbstractMutableListmodCount 属性和 removeRange() 函数成为通用实现。
    • 新增通用的 String.toCharArray(destination) 函数。

三、 平台特定改进

  • Kotlin/JVM
    • Lambda 函数默认使用 invokedynamic 生成,以减小二进制体积。
    • kotlinx-metadata-jvm 库稳定并更名为 kotlin-metadata-jvm
  • Kotlin/Wasm
    • 性能优化:生产构建默认使用 Binaryen 工具进行优化。
    • JavaScript 互操作
      • 支持命名导出(@JsExport)。
      • 支持在 @JsExport 函数中使用无符号原始类型。
      • 能够为 @JsExport 声明生成 TypeScript 声明文件。
      • 支持在 Kotlin/Wasm 中捕获 JavaScript 异常。
  • Kotlin/JS
    • 新增 es2015 编译目标,一键启用 ES2015 特性。
    • 实验性支持将挂起函数编译为 ES2015 生成器。
    • 支持向 main 函数传递参数。
    • 引入按文件编译模式,以优化最终包体积。
    • 改进了集合类型的互操作性。
    • 新增 js-plain-objects 插件,用于创建类型安全的 JavaScript 纯对象。
  • Kotlin/Native
    • 可在 Apple 平台的 Instruments 中使用 Signpost 监控 GC 性能。
    • 通过 @ObjCSignatureOverride 注解更好地解决与 Objective-C 方法的冲突。

四、 构建工具与工具链

  • Compose 编译器插件:Compose 编译器合并入 Kotlin 仓库,发布了与 Kotlin 2.0.0 同步的 Gradle 插件。
  • Gradle 兼容性与改进
    • 兼容 Gradle 6.8.3 至 8.5。
    • 新增 org.gradle.jvm.environment 属性,用于区分 JVM 和 Android 库。
    • 改进 Native 互操作定义文件(def file)的任务依赖管理。
    • 数据目录默认从 .gradle/kotlin 迁移至 .kotlin
    • Kotlin/Native 编译器和依赖按需下载,不再配置时下载。
    • 弃用旧的编译器选项配置方式,推荐新 DSL。
    • 新增 kotlin.experimental.tryNext 属性用于尝试最新语言版本。
    • 构建报告支持 JSON 输出格式。
  • IDE 支持:IntelliJ IDEA 和 Android Studio 已捆绑支持 Kotlin 2.0.0 的插件。需在 IDE 设置中启用 K2 模式 以获得完整的 K2 分析体验。
42. mactop (github.com)

GitHub是一个面向开发者的平台,提供全面的工具和服务,支持从代码创建到部署的整个开发生命周期。主要功能包括:

AI与代码创建:集成GitHub Copilot等AI工具辅助编程,支持从问题到合并的全流程代理,并提供外部工具集成。

开发工作流:涵盖自动化工作流(Actions)、即时开发环境(Codespaces)、工作规划与跟踪(Issues)、代码变更管理(Code Review)等。

应用安全:提供GitHub Advanced Security,用于发现和修复漏洞、保障代码构建安全、防止敏感信息泄露。

解决方案:按企业规模(企业、中小团队、初创企业、非营利组织)、使用场景(应用现代化、DevSecOps、DevOps、CI/CD)和行业(医疗、金融、制造、政府)提供定制方案。

探索与学习:支持按主题(AI、软件开发、运维、安全)或类型(客户案例、活动、电子书)浏览资源,并通过GitHub技能提供学习支持。

社区与支持:包括文档、客户支持、社区论坛、合作伙伴以及GitHub Sponsors等开源资助计划。

企业服务:提供企业级平台,支持高级安全、商业Copilot和全天候高级支持等附加服务。

44. Storing knowledge in a single long plain text file (breckyunits.com)

概要:Titanslot88 平台介绍

本文是Titanslot88在线游戏平台的推广内容,主要介绍了该平台作为2025年最佳AI模式游戏体验的核心特点、游戏种类及注册方式。

核心特点:AI模式

平台突出强调其高级AI模式带来的优势:

  • 个性化:AI分析玩家偏好,个性化推荐游戏、难度和奖励。
  • 自适应挑战:AI根据玩家表现动态调整游戏难度,保持挑战性和趣味性。
  • 安全性:AI监控账户活动,检测潜在作弊或可疑行为,增加安全层。
  • 娱乐性:AI创造更生动、互动的游戏体验,拥有动态的角色和故事线。

主要游戏种类

平台提供多样化的游戏选择,涵盖以下类别:

  • 老虎机:包含数百种不同主题的游戏,如《Gates of Olympus》、《Sweet Bonanza》、《Mahjong Ways》等。
  • 真人赌场:提供实时荷官直播的经典赌场游戏,如百家乐、21点、轮盘。
  • 体育博彩:提供一个全面的体育博彩平台,玩家可以对足球、篮球、网球等多种体育项目下注,合作商包括AFB88、SBOBET和SABA。
  • 街机游戏:提供快速、有趣的数字娱乐游戏,如《Fruit Blast》、《Bubble Shooter》、《Space Invaders》等。

注册与使用流程

平台提供了简单的注册步骤:

  1. 访问官方网站。
  2. 点击“注册”按钮。
  3. 填写有效的个人信息表单。
  4. 通过电子邮件或电话验证账户。
  5. 登录并进行首次存款后即可开始游戏。

平台兼容性

该平台支持在多种设备上访问,包括Android、iOS和Windows系统,旨在为全亚洲玩家提供舒适的游戏体验。

常见问题解答

文章末尾以问答形式重申了关键信息,例如平台定义、注册方法、游戏类型、支付方式和设备兼容性等。

45. Designed to Crash: the story of Antonov An-28 HA-LAJ and its demise (admiralcloudberg.medium.com)

安-28 HA-LAJ飞机坠毁事件摘要

事件概述

1993年8月28日,一架注册号为HA-LAJ的安托诺夫An-28双发涡桨飞机在英国牛津郡RAF韦斯顿-格林机场附近迫降。该飞机被英国皇家空军跳伞协会租用,用于跳伞活动。起飞后约500英尺高度,飞行员在收起襟翼时,两台发动机突然同时失效,螺旋桨自动顺桨,机翼扰流板也意外放出。机长在数秒内紧急转向玉米田迫降,机上19人全部生还,无人重伤,但飞机报废。

飞机背景与运营问题

  • 设计来源:An-28为苏联安东诺夫设计局设计的高翼双发涡桨飞机,1986年获苏联适航认证,总产量约200架。
  • 历史轨迹:事故飞机1988年制造,原属苏联民航。苏联解体后所有权不明,1993年由匈牙利G92 Commerce公司租赁运营,并在匈牙利注册为HA-LAJ,但俄罗斯当局未被通知,导致其同时在俄、匈两国登记。
  • 改装争议:飞机为跳伞活动拆除了后部蚌壳式舱门,但安东诺夫公司强调该机型从未批准或测试过此类改装,存在结构风险。

事故直接原因

调查发现,飞机电气系统存在单点失效设计缺陷

  • 襟翼操作系统和螺旋桨顺桨系统共用一个接地螺丝(A6X1接线端子)。
  • 该螺丝在振动中逐渐松动,导致接地失效。
  • 当飞行员操作襟翼开关时,电流未能通过接地螺丝返回电池,转而流向顺桨继电器线路,误触两个螺旋桨同时顺桨。
  • 发动机失效检测系统随后切断燃油并放出两侧机翼扰流板,导致完全丧失推力与升力。

调查发现与设计缺陷

  • 设计不合理:安全关键的顺桨系统与其他电路共用接地路径,违反“避免单点失效”的基本设计原则。
  • 历史方案差异:原始设计图纸显示应有两个独立接地螺丝,但生产时被合并为一个,且未进行充分故障分析。
  • 缺失保护措施:未使用反向电流二极管(防止电流逆向流入顺桨电路),该技术自1950年代已在西方飞机普及。
  • 苏联生产体系问题:设计局与生产工厂分属不同部门,沟通不足易导致设计变更未被严格审查。

监管漏洞

  • 英国民航局(CAA)在批准外国飞机执行跳伞等“航空作业”时,未向设计国(苏联)或制造国(波兰)核实适航许可的真实性,仅依赖匈牙利颁发的证书。
  • 调查建议CAA加强对前苏联机型的监管意识,尤其在设计哲学与生产标准方面。

后续与意义

  • An-28的改进型号PZL M28 Skytruck在波兰继续生产,并被美国空军采用为C-145A运输机。
  • 此次事故虽未造成严重伤亡,但揭示了苏联时期飞机设计与生产脱节、监管衔接不足等问题,为前苏联机型在西方运营提供了重要安全警示。

(总结字数:约750字)