2026年9月,我参加了旧金山的Muni遗产周末活动,并花费三小时拍摄了该市历史悠久的有轨电车的高质量线扫摄影作品。该系列收录了多款标志性车辆,包括美国第一辆公有有轨电车Muni 1号车、独特的黑池“船型”电车、墨尔本电车,以及经典的“丁基”(578号)电车。我还记录了几辆来自洛杉矶、伊利诺伊州和芝加哥的城际电车。
尽管遇到了一些技术挑战(例如轻微振动和环境障碍),我最终还是成功获得了一组影像,并以CC-By-SA 4.0许可协议发布在维基共享资源上。除了历史车队外,我还拍摄了现代交通工具,包括一辆捷豹I-Pace Waymo自动驾驶出租车。这次经历是一个将我对复古交通工具的兴趣与专业线扫摄影技术相结合的绝佳机会。
在拥有 30 年 UX 设计经验后,作者通过与游戏理论家拉夫·科斯特(Raph Koster)合作,挑战了自己原有的设想。他不再局限于“游戏化”(点数和徽章)的表面形式,而是试图探索游戏设计中更深层、更本质的内核。
他提出了连接游戏设计与应用 UX 的六个“透镜”:
1. **故事与叙事**:无论设计如何,用户都会自行构建叙事;创作者必须打造连贯的故事线来引导这一过程。
2. **分形设计**:复杂的系统是由嵌套的微小技能集合而成的。与游戏一样,应用应严谨地拆解每一项交互。
3. **学习循环**:乐趣是学习的副产品。应用应通过分层构建来引导用户掌握技能,而非用复杂性让用户感到不知所措。
4. **示能**:游戏利用细腻的多层反馈(如《塞尔达传说:旷野之息》中的体力轮)来直观地引导用户。
5. **暗示性**:利用微妙的环境线索取代碍事的对话框,防止用户陷入“无脑操作”或停滞不前。
6. **节奏**:不要一次性展示所有内容,而应通过精心策划的旅程引导用户,从单一且清晰的操作开始。
通过应用这些透镜,设计师可以跳出僵化的准则,创造出既引人入胜又极其直观的体验。
正在验证您不是机器人...
作者警告,目前有一种令人担忧的趋势,即贬低人类的代码编写与审查工作,转而推崇人工智能生成的“感觉式编程”(vibe-coding)。虽然人工智能在自动化处理琐碎任务方面非常有用,但它缺乏优先考虑长期可维护性的能力——而这种能力只能通过多年的经验与直觉积累。 由于可维护性无法通过即时指标或僵化的规则来衡量,人工智能往往会模仿现有数据集中的不良模式,从而产生脆弱且难以管理的代码。此外,通过将编程工作外包给人工智能,开发人员失去了磨练技能的机会,阻碍了他们向专业精通之路的成长。若缺乏人类的监督,项目不可避免地会演变成“蝴蝶效应”般的混乱局面,导致后期无法进行重构。 作者认为,软件工程是一门人类要素不可或缺的独特学科。最终,他们预测未来对人工智能的过度依赖将导致普遍性的技术债务,而企业最终会将“无人工智能”(No-AI)开发作为一种竞争优势进行推广,因为人们会意识到,真正的软件工艺需要人类的责任感与深度的架构理解。
类型双关(Type punning)——即将同一内存区域解读为不同类型——对于底层编程至关重要,但由于严格别名规则,它常导致难以察觉的隐蔽错误。虽然指针转换(如 `(int*)&float_var`)看似有效,但这属于未定义行为。在高优化等级(-O2 及以上)下,编译器会假定不相关的类型不会发生别名,因此可能会基于“对一个指针的写入不会影响另一个指针的值”这一错误假设,进而优化掉部分代码。 在 C++ 中,这个问题尤为严重,因为编译器在利用别名假设以提升性能方面更加激进。因此,在调试构建中运行正常的代码,在生产环境中可能会失效。 为了确保行为明确并避免与优化相关的错误,开发者应避免使用指针转换来进行类型双关。取而代之的是,应使用以下安全替代方案: * **联合体(Unions):** C 语言明确允许通过不同的成员访问同一内存。 * **`memcpy`:** 类型双关的黄金标准。现代编译器能识别这种模式,并将其优化为单条寄存器移动指令,在确保安全性和高性能的同时,不会引入未定义行为的风险。
本摘要探讨了 Nix 如何通过引入“动态派生”(dynamic derivations),从“应用式”(applicative)构建系统向“单子式”(monadic)构建系统转型。
传统上,Nix 是应用式的:整个构建图必须预先已知,这使得工具能够在执行前对构建过程进行推断。然而,动态派生允许在构建过程中定义构建图。虽然 Nix 长期以来通过评估器(evaluator)中的“派生导入”(import-from-derivation, IFD)支持“单子式”行为,但动态派生将此能力转移到了调度程序(scheduler)层面。这使得之前受限于评估器的步骤能够实现并行化、远程构建和缓存。
作者通过一个“掷骰子”实验展示了这一点:构建过程会随机决定是停止还是继续,即在运行时生成依赖图的下一步。除了简单的构建图生成(如 `cargo-dyndrv`)外,该原语还支持复杂的应用场景,例如:
* **状态空间搜索:** 根据发现的情况扩展构建边界。
* **网络爬虫:** 在获取页面时动态发现依赖关系。
* **递归模拟:** 运行进程直到满足特定条件。
虽然这种转变挑战了我们预先审视构建图的能力,但它从根本上拓展了 Nix 的构建边界。
JetBrains 宣布推出 **JetBrains Air**,这是一个全新的开放式生态系统,旨在应对代理式 AI 开发带来的复杂挑战。鉴于企业在管理、审计和控制自主代理方面面临诸多困难,JetBrains 正将其重心从单纯提供个人开发工具(IDE)转向构建一套用于团队协作和组织监管的综合系统。
JetBrains Air 构建于三大核心支柱之上:
* **JetBrains IDE 中的 Air**:强化开发环境,用于指挥代理并验证其代码。
* **Air Teams**:协调开发人员与代理之间的软件交付工作流。
* **Air Governance**:提供集中式可见性、成本管理和安全策略。
该系统的一个关键特性是其**多供应商的开放式方案**。通过代理客户端协议(ACP),JetBrains Air 支持各种模型和代理,确保企业不会被锁定在单一供应商身上。通过将这种灵活性与 JetBrains 深度且确定性的代码智能相结合,该平台旨在解决“验证瓶颈”问题——即 AI 生成的代码易于产出但难以审计的问题。最终,JetBrains Air 致力于帮助企业在不牺牲质量、安全或问责制的前提下,实现 AI 实验的规模化应用。
请启用 JavaScript 和 Cookie 以继续。
来自布里斯托大学和牛津大学的最新研究显示,最近一届国际足联世界杯成为了推广有害产品的巨大平台。研究人员利用英国强大的 Isambard-AI 超级计算机分析了 172.6 小时的比赛直播画面,记录到超过 93,000 次推广不健康食品、酒精、博彩和加密货币的品牌曝光。 其中,不健康食品和饮料的曝光占比超过 70%。研究强调,这种品牌宣传“无处不在且无法避免”,出现在近四分之一的比赛直播时间里。关键在于,国际足联的统一转播信号忽略了可用的虚拟技术,本可以利用该技术替换掉不符合当地法律的广告,但却选择向全球观众——包括那些此类产品受限或非法的国家——展示了不受监管的营销内容。 专家警告称,这种体育赛事中“饱和式”的有害广告投放正在威胁公共健康,尤其是通过使不健康产品和博彩消费“正常化”来影响儿童。研究人员敦促各国政府对体育营销实施更严格的监管,并呼吁国际足联在合作伙伴关系中采纳公共利益标准,确保将儿童健康置于与可预防疾病及社会危害相关的商业推广之上。