第 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,并使我们的用户界面框架默认包含它们。最后,我们添加了一个可访问性服务,以桥接这些新的输入和输出与应用程序。由于我们在系统级别实现了对 VoiceOver 的支持,因此我们此后发布的新可访问性功能直接利用了这项工作来提供一致的用户体验。
人机交互
移动应用程序的可访问性考虑因素
Juanami Spencer
彭博社 Connects 应用程序如何在产品和流程中支持可访问性
在创建移动应用程序时,考虑可访问性至关重要,以确保尽可能广泛的受众可以使用和享受它们。与桌面体验相比,移动可访问性具有独特的考虑因素,但它为那些在日常活动中依赖移动设备的用户提供了巨大的价值。通过牢记这些考虑因素,移动产品开发团队可以更好地支持和改善所有用户的<0xE2><0x80><0x8B>生活。本文探讨了移动应用程序的一些关键可访问性考虑因素,并重点介绍了彭博社 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 落在你头上时
更高层次的问题是,在第一 place 中,具有强制转换的弱类型语言是否真的是一个好主意。如果您不知道您正在操作什么,或者预期的输出范围可能是什么,那么也许您一开始就不应该操作该数据。但现在这些语言已经进入了野外,我们将永远无法尽快地追捕并杀死它们,为了我的喜好或更大的利益。
开发, 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
也许我们需要更多地考虑非加密哈希函数。
尽管加密和非加密哈希函数无处不在,但它们的设计方式似乎存在差距。存在许多由各种安全要求驱动的加密哈希标准,但在非加密方面,存在一定数量的民间传说,尽管哈希函数历史悠久,但尚未得到充分探索。虽然针对真实世界数据集的均匀分布很有意义,但当面对具有特定模式的数据集时,这可能是一个挑战。
开发