第 22 卷,第 6 期




软件的软性一面
我那限制职业发展的沟通方式


  Kate Matsudaira

认真对待您的内容。它对您至关重要。

无论是在电子邮件、文档还是幻灯片中,都应使用醒目的视觉效果使内容更易于理解,并突出最重要的要点。确保数据、图表和照片都明确标记,并注明任何注意事项。一般来说,应避免使用饼图、平均值和百分比。因为,尽管这些工具可能很流行,但它们通常只能讲述故事的一部分,并错失了突出数据集相对大小、异常值或随时间推移的趋势的机会。

商业/管理, 软件的软性一面




AWS 的系统正确性实践

  Marc Brooker, Ankush Desai

利用形式化和半形式化方法

构建可靠且安全的软件需要一系列方法来推理系统正确性。除了行业标准的测试方法(如单元测试和集成测试)外,AWS 还采用了模型检查、模糊测试、基于属性的测试、故障注入测试、确定性模拟、基于事件的模拟以及执行跟踪的运行时验证。形式化方法一直是开发过程的重要组成部分——也许最重要的是,形式化规范作为测试预言机,为 AWS 的许多测试实践提供了正确的答案。

并发




数据中心计算机的中间表示

  Achilles Benetopoulos

降低稳健且高性能分布式系统的负担

内存中应用程序数据的大小正在超过单台机器的容量,因此需要将其分区到集群中;在线服务具有高可用性要求,这只能通过将系统部署为多个冗余组件的集合来实现;高持久性要求只能通过数据复制来满足,有时甚至跨越广阔的地理距离。

数据, 分布式计算




模拟:分布式系统中未被充分利用的工具

  David R. Morrison

不容易但并非不可能,并且为了它能提供的见解而值得

模拟在人工智能系统的兴起中发挥着巨大的作用:我们需要一种高效、快速且经济高效的方式来训练人工智能代理在我们基础设施中运行,而模拟绝对提供了这种能力。

人工智能, 分布式计算




运维与生活
给工程师问题,而不是解决方案


  Thomas A. Limoncelli

提高解决方案和鼓舞士气的简单策略

这种技巧是关于提供“为什么”而不是“如何做”。与其规定具体的解决方案,不如提出问题和期望的结果,让您的团队找出如何解决它。这培养了创造力、共同所有权和协作解决问题的能力。它还使团队能够努力寻求最佳解决方案。

管理, 运维与生活




Kode Vicious
醉酒的剽窃者


与副驾驶合作

LLM 的诀窍是使用一点随机性和大量文本来猜测句子中的下一个词。这看起来有点微不足道,而且肯定不是任何理解这个术语的人会使用的智能衡量标准。但这是一个聪明的技巧,并且确实有一些应用。

人工智能, Kode Vicious




钻头
改造:原则与实践


  Terence Kelly 与特邀嘉宾 Borer Ziheng (Aaron) Su

将全新的功能改造到生产软件上,考验着程序员的每一项技能。一个实际的案例研究阐明了将新技巧应用到老旧系统上的原则。

代码, 开发, 钻头




智能的代价

  Mark Russinovich, Ahmed Salem, Santiago Zanella-Béguelin, Yonatan Zunger

LLM 中固有的三个风险

LLM 容易出现幻觉、提示注入和越狱漏洞,这对它们的广泛采用和负责任的使用构成了重大但可克服的挑战。我们认为这些问题是固有的,尤其是在当前这一代模型中,甚至可能在 LLM 本身中也是如此,因此我们的方法永远不能基于消除它们;相反,我们应该应用“纵深防御”策略来缓解它们,并且在构建和使用这些系统时,应假设它们有时会在这些方面失败。

人工智能


 


第 22 卷,第 5 期

无障碍特别刊




是时候让软件实现无障碍了

  Stacy M. Branham, Shahtab Wahid

从操作系统到组织,方法如下

构成这期无障碍特别刊的文章表明,无论您是在后端、前端、设计部门工作,还是组织领导层的一员,都可以采取措施来取得进展。然而,在我们开始编写软件和制定政策之前,还有一个更根本的问题:对残疾的性质以及辅助和无障碍技术的广泛误解。如果我们想要改变现状,就必须从这里开始。

人机交互




数字无障碍的现状

  Stacy M. Branham, Shahtab Wahid, Sheri Byrne-Haber,

  Jamal Mazrui, Carlos Muncharaz, Carl Myhill

如果您是数字无障碍领域的新手,即使您不是,也很难跟上全局,而且科技行业发展迅速。因此,我们请了一组专家来帮助我们快速了解情况。他们不仅日常工作涉及数字无障碍,而且还亲身经历过残疾。我们向他们提出了以下问题:无障碍的现状如何?主要挑战是什么?为什么我们需要无障碍软件?我们如何为无障碍辩护?谁在引领潮流?我们下一步该怎么做?

人机交互




系统级无障碍

  Chris Fleizach, Jeffrey P. Bigham

使整个系统可供残疾人使用的架构支持

本文通过我们使 iPhone 能够使用 VoiceOver 屏幕阅读器以非视觉方式使用的工作,来说明系统级无障碍。我们重新构想了触摸屏输入的非视觉用途,引入了适用于控制屏幕阅读器的新手势,并且在输出方面,我们增加了对合成语音和可刷新盲文显示器(输出触觉盲文字符的硬件设备)的支持。我们添加了应用程序可以采用的新无障碍 API,并使我们的用户界面框架默认包含这些 API。最后,我们添加了一个无障碍服务,以桥接这些新的输入和输出以及应用程序。由于我们在系统级别实现了对 VoiceOver 的支持,因此我们此后发布的所有未来无障碍功能都直接利用了这项工作来提供一致的用户体验。

人机交互




移动应用的无障碍考量

  Juanami Spencer

Bloomberg Connects 应用程序如何在产品和流程中支持无障碍

在创建移动应用程序时,考虑无障碍性至关重要,以确保它们尽可能广泛的受众可用和享受。与桌面体验相比,移动无障碍性有其独特的考量因素,但它为那些在日常活动中依赖移动设备的用户提供了巨大的价值。通过牢记这些考量因素,移动产品开发团队可以更好地支持和改善所有用户的体验。本文探讨了移动应用程序的一些关键无障碍考量因素,并重点介绍了 Bloomberg Connects 应用程序在产品和流程中支持无障碍的几种方式。

人机交互




设计系统是无障碍交付工具

  Shahtab Wahid

使应用程序的无障碍支持具有可扩展性、生产力和一致性

设计系统是为在应用程序上工作的消费者(设计师和开发人员)构建的基础设施。一个成功的设计系统允许组织中的消费者快速扩展跨应用程序的设计和开发,提高生产力并建立一致性。然而,许多消费者没有准备好为无障碍而构建。组织能否使构建应用程序的无障碍支持具有可扩展性、生产力和一致性?本文探讨了设计系统如何成为支持无障碍的重要工具。

人机交互




推动组织无障碍

  Vinnie Donati

人们经常询问微软在无障碍和包容性方面的方法背后的秘诀。其实很简单:我们像经营企业一样来做这件事。

在本文中,我们将探讨微软如何在整个组织中推动无障碍,并将仔细研究促进包容性文化的基本框架和实践。通过检查诸如意识建设、战略发展、无障碍成熟度建模等方面的因素,我们旨在为开始无障碍之旅的组织提供指南。我们的想法是分享我们所学到的知识,希望您可以使用它,对其进行调整以适应您公司的目标,并将无障碍融入到您的文化中,使其不仅仅是一项勾选框活动,而是真正融入到您的文化中。

人机交互





你对人工智能一窍不通

  Sonja Johnson-Yu, Sanket Shah

ChatGPT 可能也不懂

长期以来,很难确定人工智能到底是什么。几年前,这样的讨论会演变成长达数小时的会议,绘制维恩图并尝试描绘出人工智能的不同子领域。快进到 2024 年,我们现在都知道人工智能到底是什么了。人工智能 = ChatGPT。或者不是。

人工智能




争论单车棚
公民学很无聊。所以,让我们加密一些东西吧!


  Poul-Henning Kamp

IT 专业人员可以选择被动地接受政治解决方案,也可以参与到过程中以获得更好的结果。

这里提出的建议应该会让每个人都满意。执法部门将有办法访问通信,前提是他们能够说服法官这是必要的。重要的通信将能够继续使用与今天相同的加密强度。原本不需要加密的通信将能够采用足够的加密来防止轻微的窃听,但如果法官认为有必要,则不会有足够强大的加密来阻止暴力破解访问。

争论单车棚, 安全




Kode Vicious
在不稳固的基础上构建


我们有责任让世界上的系统安全可靠地运行。

CrowdStrike 灾难的发生是由于硬件和系统软件中的架构问题。我们应该构建使编写病毒变得困难的系统,而不是儿戏。但现在这是一个昂贵的提议。

Kode Vicious, 安全


 


第 22 卷,第 4 期




案例研究
程序合并:深度学习与它有什么关系?


与 Shuvendu Lahiri、Alexey Svyatkovskiy、Christian Bird、Erik Meijer 和 Terry Coatta 的讨论

如果您经常使用开源代码或为大型组织生产软件,那么您已经熟悉了大规模协作编程带来的许多挑战。其中一些最令人恼火的问题往往会作为对代码进行许多独立更改的后果而浮出水面,这不足为奇,这可能会导致更新无法同步。当然,困难的合并并不是什么新鲜事,但问题的规模已经变得更糟。这促使 MSR(微软研究院)的一组研究人员将复杂合并的任务作为一项宏大的程序修复挑战来承担,他们认为这个问题至少可以在一定程度上通过机器学习来解决。

人工智能, 案例研究




实践研究
确定性记录和回放


  Peter Alvaro, Andrew Quinn

仅关注流程的非确定性操作

本专栏描述了与确定性记录和回放相关的三项最新研究进展,目的是展示经典用例和新兴用例。越来越多的系统使用较弱形式的确定性记录和回放。本质上,这些系统利用许多程序执行中存在的确定性,但出于性能原因有意允许一些非确定性。GPUReplay 特别体现了这种趋势,ShortCut 和 Dora 等系统也是如此。

调试, 实践研究




跨越护城河
测试账号:一个隐藏的风险


您可能会认为这些风险是可以接受的。但是,如果不是,这里有一些避免风险的规则。

许多人共享的测试帐户可以被任何碰巧拥有密码的人使用。这留下了一系列管理不善或无人管理的帐户,只会增加您的攻击面。测试帐户可能是一个信息宝库,甚至泄露有关内部系统详细信息的信息。如果您真的需要采取这种方法,请为您的开发人员提供他们自己的测试帐户,然后教育他们有关滥用这些帐户的风险。此外,如果您可以定期使这些帐户过期,那就更好了。

跨越护城河, 安全




Kode Vicious
不想要的惊喜


当那个玩笑般的 API 落在你头上时

这里有一个更高层次的问题,即具有强制类型的弱类型语言最初是否真的是一个好主意。如果您不知道您正在操作什么,或者预期的输出范围可能是多少,那么也许您一开始就不应该操作该数据。但是现在这些语言已经进入了野外,我们永远无法足够快地追捕并杀死它们,以满足我的喜好,或为了更大的利益。

开发, Kode Vicious




GPT 和幻觉

  Jim Waldo, Soline Boussard

为什么大型语言模型会产生幻觉?

本实验的发现支持了这样一种假设,即基于 LLM 的 GPT 在更受欢迎且已达成普遍共识的提示上表现良好,但在有争议的主题或数据有限的主题上表现不佳。应用程序响应的可变性强调了模型依赖于其训练数据的数量和质量,这与依赖于多样化和可信贡献的众包系统类似。因此,虽然 GPT 可以作为许多日常任务的有用工具,但应谨慎解释它们对晦涩和两极分化主题的参与。LLM 依赖概率模型来生成关于世界的陈述,这使其准确性与它们获得的数据的广度和质量密切相关。

人工智能, 隐私与权利




机密计算证明

  Mark Russinovich, Cédric Fournet, Greg Zaverucha, Josh Benaloh, Brandon Murdoch, Manuel Costa

加密零知识的替代方案

证明是用于完整性和隐私的强大工具,使验证者能够委托计算并仍然验证其正确执行,并使证明者能够保持计算细节的私密性。CCP 和 ZKP 都可以实现健全性和零知识,但存在重要差异。CCP 依赖于硬件信任假设,这为证明者带来了高性能和额外的机密性保护,但对于某些应用程序来说可能是不可接受的。CCP 通常也更易于使用,尤其是在现有代码的情况下,而 ZKP 则带有大量的证明者开销,对于某些应用程序来说可能是不切实际的。

隐私与权利, 安全




评估 IT 项目的成功:感知与现实

  João Varajão, António Trigo

如果没有 IT 项目的不断成功,我们就不会进入数字时代。

本研究通过提供对 IT 项目成功的新见解,对实践、研究和教育具有重要意义。它通过报告项目成功(而不仅仅是项目管理成功),扩展了关于项目管理的知识体系,这些成功基于几个客观标准,例如项目后期阶段客户对可交付成果的使用、客户聘请项目相关的支持/维护服务、客户签订新项目以及客户向潜在客户推荐供应商。研究人员可以找到一组标准,他们可以在研究和报告 IT 项目的成功时使用这些标准,从而扩展当前对评估的看法,并有助于得出更准确的结论。对于从业人员来说,本研究提供了一组丰富的标准,可用于评估他们的项目,并有力地证明了在评估中不仅要考虑项目执行,还要考虑项目后的结果和影响的重要性。

商业与管理, 教育




质疑评估非加密哈希函数的标准

  Catherine Hayes, David Malone

也许我们需要更多地考虑非加密哈希函数。

尽管加密和非加密哈希函数无处不在,但在它们的设计方式上似乎存在差距。出于各种安全要求的考虑,存在许多用于加密哈希的标准,但在非加密方面,存在一定程度的民间传说,尽管哈希函数历史悠久,但尚未得到充分探索。虽然针对实际数据集的均匀分布很有意义,但当面对具有特定模式的数据集时,这可能是一个挑战。

开发


 



 




往期

© . All rights reserved.