acmqueue

关于 acmqueue 应用和基于浏览器的数字版的信息。

第 23 卷,第 1 期(2025 年 1 月/2 月)目录

订阅者和 专业会员在此处登录

January/February 2025 acmqueue


专题


从函数挫折到框架灵活性
- Erik Meijer
对函数调用应用“额外的间接层”可以增强 LLM 交互,为更可靠的 AI 系统奠定基础。

如何评估比我们更智能的 AI
- Chip Huyen
AI 系统开始超越人类专家,但存在无需人类判断即可评估这些系统的有效策略。

多重依赖关系图的惊喜
- Josie Anugerah 和 Eve Martin-Jones
依赖关系管理是软件开发中一个被低估的挑战,尤其是在开源使用增加的情况下。为了更好的安全性,需要一套最佳实践来管理这个问题。

开源软件供应链安全的五十年
- Russ Cox
美国空军在 20 世纪 70 年代的一份报告预测了软件供应链安全方面的许多持续存在的问题。几十年后,所谓的 xz 攻击突显了在开源世界中解决这些问题的重要性。

大规模字符串匹配
- Dennis Roellke
要是有一种方法可以跟踪软件就好了,这样如果出现漏洞,就可以快速找到其来源。这是一个等待通过协作和更好的激励措施来解决的问题。


专栏


运营与生活
流程优化的简洁方法

- Thomas A. Limoncelli
重新思考流程中任务的顺序和时间安排可以显着提高效率和质量。

代码恶棍
分析疯狂代码

- George V. Neville-Neil
阅读别人的代码有点像精神分析。了解一段代码给你的感受与你理解它的程度有关。

第 22 卷,第 6 期(2024 年 11 月/12 月)目录

订阅者和 专业会员在此处登录

November/December 2024 acmqueue


专题


智能的代价
LLM 已被 AI 系统热情拥抱,但常常以忽视其内在风险为代价——幻觉、间接提示注入和越狱。
- Mark Russinovich、Ahmed Salem、Santiago Zanella-Béguelin 和 Yonatan Zunger

数据中心计算机的中间表示
加州大学伯克利分校和加州大学圣克鲁兹分校的两个研究项目展示了如何将应用程序员与机械化的分布式细节分离开来,使他们能够利用计算机集群,而无需成为分布式计算专家。
- Achilles Benetopoulos

AWS 的系统正确性实践
亚马逊网络服务在其开发过程中依赖的严格测试方法变得越来越有价值——不仅用于确保系统正确性,还用于提高性能。
- Marc Brooker 和 Ankush Desai,亚马逊网络服务

模拟:分布式系统中未充分利用的工具
DevOps 工程师可能会发现很难将模拟付诸实践,但好处很多。使用 SimKube 的案例研究表明,为什么模拟是不应被忽视的工具。
- David R. Morrison


专栏


钻头
改造:原则与实践

将全新的功能改造到生产软件上,考验着程序员的每一项技能。一个实际的案例研究阐明了将新技巧添加到老旧系统上的原则。
- Terence Kelly,特邀嘉宾 borer Aaron Su

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

工程师是解谜者。不要告诉他们如何做;让他们自己想办法。解决方案和士气都会提高
- Thomas A. Limoncelli

代码恶棍
醉酒的剽窃者

尽管大肆宣传,但副驾驶并没有什么可提供的,只是以有些醉酒的方式在你耳边低语语义上的无稽之谈。KV 说现在是时候继续前进了。
- George V. Neville-Neil

软件的软性方面
我的职业生涯受限的沟通

你的老板有一个问题。在回答之前,请记住你拥有的每一次参与机会都是你闪耀的机会。以下是三个良好沟通的技巧。
- Kate Matsudaira

第 22 卷,第 5 期(2024 年 9 月/10 月)目录

订阅者和 专业会员在此处登录

September/October 2024 acmqueue

关于可访问性的特刊


专题


现在是让软件可访问的时候了
为了让软件开发人员在其产品中接受可访问性,他们必须首先克服对残疾性质的常见误解。然后,应该从操作系统一直到组织高层都纳入可访问性支持。
- Stacy M. Branham 和 Shahtab Wahid

数字可访问性的现状
一个专家团队从专业和个人角度论证了数字可访问性的案例。他们讨论了挑战,指出了该领域的领导者,并分享了他们对未来的乐观和警告。
- Stacy M. Branham、Shahtab Wahid、Sheri Byrne-Haber、Jamal Mazrui、Carlos Muncharaz 和 Carl Myhill

系统级可访问性
作者以 iPhone 的 VoiceOver 屏幕阅读器为例,展示了他们如何在操作系统级别使用可访问性支持来重新构想非视觉用途的触摸屏输入。
- Chris Fleizach 和 Jeffrey P. Bigham

移动应用程序的可访问性考虑因素
Bloomberg Connects 是一款免费的移动应用程序,提供 350 多个文化组织的数字指南。以下是它如何支持尽可能广泛受众的可访问性。
- Juanami Spencer

设计系统是可访问性交付工具
设计系统为软件开发人员构建对其用户有价值且功能强大的应用程序铺平了道路。它们也是将可访问性支持构建到这些应用程序中的主要工具。
- Shahtab Wahid

推动组织可访问性
微软首席可访问性官和可访问性团队的业务管理总监提出了将可访问性支持提升到优先地位的商业案例。
- Vinnie Donati

部门


你对 AI 一窍不通
现代 AI 难以精确定义。它不是科幻小说中的 AI。也不是 ChatGPT。最好将其描述为捕捉数据中的重要模式和变化,并且仍然需要一定程度的人为判断。
- Sonja Johnson-Yu 和 Sanket Shah

专栏


自行车棚
公民课很无聊。所以,让我们加密一些东西!

IT 专业人员可以被动地忍受加密的政治解决方案,也可以参与其中以获得不那么糟糕的结果。这是一个不会走得太远的提案,但这只是一个开始。
- Poul-Henning Kamp

代码恶棍
在不稳固的基础上建设

CrowdStrike 的惨败告诉我们,我们必须审视如何使用不安全的语言在连接到不受信任网络的不安全硬件上构建系统软件。否则,我们可能会冒着再次发生甚至更糟情况的风险。
- George V. Neville-Neil

第 22 卷,第 4 期(2024 年 7 月/8 月)目录

订阅者和 专业会员在此处登录

July/August 2024 acmqueue


专题


GPT 和幻觉
虽然 GPT 可以作为处理日常任务的有用工具,但它们在在线信息有限的主题上会遇到困难,这可能会导致将无意义的答案作为事实呈现出来。
Jim Waldo 和 Soline Boussard

评估 IT 项目的成功:认知与现实
一项针对项目经理的调查反驳了大多数 IT 项目都有问题且容易失败的假设,并提出了证据表明大多数此类项目实际上都取得了很高的成功率。
João Varajão 和 António Trigo

质疑评估非加密哈希函数的标准
安全性不是非加密哈希函数的主要要求,但也许我们需要对此进行更多思考。
Catherine Hayes 和 David Malone

机密计算证明
CCP 提供了零知识证明的替代方案。虽然两种加密算法都提供类似的功能,但在安全性、性能、可用性和可扩展性方面存在权衡。
Mark Russinovich、Cédric Fournet、Greg Zaverucha、Josh Benaloh、Brandon Murdoch、Manuel Costa

案例研究

程序合并:深度学习与它有什么关系?
微软的一组研究人员决定应对解决程序合并冲突的难题,并认为看看一些深度学习模型如何应用于这个问题会很好。
与 Shuvendu Lahiri、Alexey Svyatkovskiy、Christian Bird、Erik Meijer 和 Terry Coatta 的讨论

专栏


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

关键的见解是,这些系统可以专注于仅存储有关进程非确定性操作的信息。
Andrew Quinn,Peter Alvaro 导言

跨越护城河
测试帐户:隐藏的风险

“不要在生产环境中测试”是几乎每个软件工程师在某个时候都会犯的错误。当出现这些情况时,以下是一些避免风险的规则。
Phil Vachon

代码恶棍
意想不到的惊喜

如果你不知道你在操作什么,或者预期的输出范围可能是多少,那么也许你不应该首先操作该数据。
George V. Neville-Neil

第 22 卷,第 3 期(2024 年 5 月/6 月)目录

订阅者和 专业会员在此处登录

May/June 2024 acmqueue


专题


虚拟阴谋:将大型语言模型用作神经计算机
生成式 AI 的快速扩展已将 LLM 的潜力从一个美化的数据库转变为最终用户可编程的神经计算机。
- Erik Meijer

面向开发人员的有效 AI 支持
一项针对软件开发人员的调查揭示了他们对工作中使用 AI 的期望、希望和担忧。结果强调,需要谨慎行事,不要在没有咨询潜在用户的情况下贸然创建工具。
- Mansi Khemka 和 Brian Houck

事务和无服务器天生一对
事务性无服务器平台实现了许多在现有无服务器平台或基于服务器的部署中不可能实现的新功能。好处包括调试、可靠的程序执行、安全性和性能。
- Qian Li 和 Peter Kraft

你对带宽一窍不通
如果你是一家 ISP,而你的客户抱怨互联网性能差,原因可能是延迟——请放心。这是一个现在可以解决的问题。
- David Collier-Brown


专栏


自行车棚
不受保护的免费软件的难以想象的代价

最近对广泛使用的 XZ 压缩软件的破坏突显了 FOSS 维护者作为默默无闻的英雄的作用。他们应该得到补偿而不是责备。
- Poul-Henning Kamp

代码恶棍
重复、重现、复制

在计算机科学中,就像在大多数科学中一样,研究人员发表论文的压力往往远远超过了用可重复的结果来捍卫科学主张的需求。
- George V. Neville-Neil

软件的软性方面
解决技术债务的工作模型
技术债务——围绕任何软件项目积累的不可避免的垃圾——必须定期清理和刷新,以保持代码库的健康并促进未来的开发。
- Kate Matsudaira

第 22 卷,第 2 期(2024 年 3 月/4 月)目录

订阅者和 专业会员在此处登录

March/April 2024 acmqueue


专题


使用 Arm CCA 提升安全性
Arm 机密计算架构提供了一种通过证明和验证过程来评估实现的安全性声明的方法。
- Charles Garcia-Tobin 和 Mark Knight

机密容器组
作者构建并测试了 Parma,以在 Azure 容器实例上为机密容器提供支持。它以最小的性能开销,允许第三方与容器安全地通信。
- Matthew A. Johnson、Stavros Volos、Ken Gordon、Sean T. Allen、Christoph M. Wintersteiger、Sylvan Clebsch、John Starks 和 Manuel Costa

机密计算还是密码学计算?
当今安全计算的两种主要方法是纯粹的密码学方法或称为机密计算的硬件安全方法。两者在部署、安全性和性能方面存在权衡。
- Raluca Ada Popa

使用机密联邦学习的可信赖 AI
确保 AI 的可信赖性至关重要,但训练机器学习模型通常需要访问私人数据。CFL 和机密计算可以协同工作以实现更好的安全性。
- Kapil Vaswani、Andrew Paverd、Peter Pietzuch 和 Jinnan Guo


专栏


钻头
对偏见零容忍

从赌博到军事征兵,随机化制定了至关重要的现实世界决策。当涉及到生命和财富时,公平是不容谈判的。不幸的是,错误的建议和有偏见的方法比比皆是。我们将学习如何避开错误信息,开发可靠的方法,并为设计和代码审查编制清单。
- Terence Kelly

代码恶棍
构建成功

对良好程序结构的偏爱往往只有在您在编写良好的系统中接触到它,或者因您试图解决的问题而迫切需要时才会产生。
- George Neville-Neil

运营与生活
跑两趟

喜剧演员拉里·戴维给出的“跑两趟”的建议不仅适用于满怀的杂货,也适用于 IT。在编码时跑两圈,或者将一个较大的目标分解为两个较小的项目,都可以简化生活。
- Thomas A. Limoncelli

第 22 卷,第 1 期(2024 年 1 月/2 月)目录

订阅者和 专业会员在此处登录

January/February 2024 acmqueue


专题


大象的“透视”镜
语言偏见在 Google、ChatGPT、YouTube 和维基百科平台上是真实存在的。正如盲人摸象的寓言一样,这种偏见会导致对跨社会分歧的信息理解不完整。
- Queenie Luo、Michael J. Puett 和 Michael D. Smith

采用和维持基于微服务的软件开发中的挑战
基于微服务的软件开发方法比传统的单体式风格具有真正的优势,但在采用这种新方法时存在组织挑战——甚至超过技术难题。
- Padmal Vitharana 和 Shahir A. Daya

软件安全的开发者生态系统
尽管努力遵循安全可靠的设计原则,但常见的软件缺陷仍然存在。谷歌的理论是,软件安全必须纳入开发者生态系统的设计之中。
- Christopher Kern

从开放访问到受保护的信任
公司可以自由访问从客户那里收集数据的日子已经一去不复返了。今天,创新的热情必须与培养用户的信任之间 carefully 权衡。
- Yifei Wang


专栏


自行车棚
免费和开源软件——以及其他市场失灵

FOSS 运动从未完全奏效。但它确实获得了一些东西:免于那些紧紧抓住源代码的人的束缚。今天,人们已经意识到源代码更多的是一种负担而不是资产。
- Poul-Henning Kamp

代码恶棍
软件漂移

软件分支就像离婚。无论是混乱还是友好,都会有一个冷静期,双方互不沟通。这导致代码库渐行渐远,并导致不可避免但没有必要的混乱。
- George Neville-Neil

软件的软性方面
给你的项目起个名字

为项目命名的简单行为为您的团队提供了可以团结起来的具体目标——一个集体目标。这在提高士气、培养团队精神和激发动力方面大有帮助。
- Kate Matsudaira

第 21 卷,第 6 期(2023 年 11 月/12 月)目录

订阅者和 专业会员在此处登录

November/December 2023 acmqueue


专题


如何设计 ISA
RISC-V 使自定义指令集的世界更易于访问,并且越来越多的人尝试设计它们。在深入研究之前,需要注意一些问题和陷阱。
- David Chisnall

DevEx 在行动
良好的开发者体验是有效软件交付的基础。我们如何让更多公司投资于改善 DevEx?
- Nicole Forsgren、Eirini Kalliamvakou、Abi Noda、Michaela Greiler、Brian Houck、Margaret-Anne Storey

解决机器学习众包工作者的受试者身份问题
ML 研究人员和众包工作者之间的互动目前缺乏道德框架。构建框架的第一步是定义何时 ML 的众包工作者构成人类受试者。
- Divyansh Kaushik、Zachary C. Lipton、Alex John London


部门


案例研究
多方计算:为了保护隐私,进行数学运算

MPC 于 1982 年推出,已从档案中挖掘出来,并被用作保护数据的强大工具。我们获得了网络安全专家关于所有嗡嗡声原因的看法。
与 Nigel Smart、Joshua W. Baron、Sanjay Saravanan、Jordan Brandt 和 Atefeh Mashatan 的讨论

实践研究
自动测试数据库系统

软件工程、数据库系统和安全角度的最新创新允许在没有用户交互的情况下自动测试 DBMS。
- Manuel Rigger
Peter Alvaro 导言


专栏


运营与生活
火车、马和家庭互联网安装有什么共同点?

有时你需要将系统的安装与添加和更改分开,以便创建高效的操作。
- Thomas A. Limoncelli

代码恶棍
还有另一个系统吗?

也许有,但 KV 尚未看到通用 AI 取代程序员的证据。将这些新系统视为程序员的助手,就像 20 世纪 60 年代和 70 年代的早期编译器一样。
- George V. Neville-Neil

钻头
程序员面试:隐藏的议程

顶级科技面试表面上测试编码和 CS 知识,但他们也会评估更深层次的技术直觉,这种直觉非常微妙,候选人很少注意到这种评估。我们将学习面试官如何创建问题来秘密衡量一种技能,这种技能使最优秀的程序员脱颖而出。通过对面试官的同理心,您可以通过抓住伪装的机会来为在就业市场中脱颖而出做好准备。
- Terence Kelly

第 21 卷,第 5 期(2023 年 9 月/10 月)目录

订阅者和 专业会员在此处登录

September/October 2023 acmqueue

关于机密计算的特刊


专题


使用 FDO 和不受信任的安装程序模型的设备入职
对受信任的(Wi-Fi Easy Connect)和不受信任的(FIDO 设备入职)安装程序的比较表明,不受信任的模型在自动化 IoT 设备入职方面具有优势。
- Geoffrey Cooper

改进深度学习系统的测试
深度学习系统是数据驱动的,因此至关重要的是,必须使用多样化的数据集对其进行评估。差异测试和变异测试的结合可以带来更好的数据表示。
- Harsh Deokuliar、Raghvinder S. Sangwan、Yoaukim Badr、Satish M. Srinivasan

用例至关重要
作为一种评估工具,用例在软件行业中暂时失宠。用例的两位主要支持者认为,作为企业关注其产品预期用途的一种方式,该工具今天正在重新流行起来。
- Ivar Jacobson 和 Alistair Cockburn

低代码开发生产力
提高生产力是低代码软件开发的目标。使用低代码和基于代码的技术进行的受控实验室实验证实了这一点。
- João Varajão、António Trigo、Miguel Almeida


专栏


跨越护城河
安全硬糖

让某人进入你的软件系统不应意味着无限访问权限。权限检查必须是普遍存在的,不允许有任何捷径。
- Phil Vachon

代码恶棍
亲爱的日记

在物理和医学科学中,实验室笔记本是一种生活方式。计算机科学家如果采用这种做法,将大有裨益。
- George Neville-Neil

软件的软性方面
软件经理的卓越运营指南

制衡的概念可以成功应用于管理您的软件团队,从而提高您引导团队走向卓越运营的能力。
- Kate Matsudaira

第 21 卷,第 4 期(2023 年 7 月/8 月)目录

订阅者和 专业会员在此处登录

July/August 2023 acmqueue

关于机密计算的特刊


专题


机密计算:提升云安全和隐私
机密计算有望成为云中数据安全和隐私的新规范。即将推出的 acmqueue 系列文章将探讨这项新技术的各个方面,这将带来更安全和更具创新性的未来。
- Mark Russinovich

云中的硬件 VM 隔离
AMD SEV-SNP 技术是最早采用机密计算的技术之一,为公共云中的数据增加了必要的保护级别。
- David Kaplan,Advanced Micro Devices

创建首款 H100 机密 GPU
创建首款机密 GPU
Nvidia 正在将其机密计算引入其 GPU,为要求最苛刻的工作负载(例如 AI、机器学习和高性能计算)端到端保护用户代码和数据。
- Gobikrishna Dhanuskodi、Sudeshna Guha、Vidhya Krishnan、Aruna Manjunatha、Rob Nertney、Michael O'Connor、Phil Rogers

我为什么要信任你的代码?
机密计算在确定代码是否值得信赖方面只能做到这一点。解决此问题的方案可能是代码透明度服务,该服务跟踪代码出处并追究代码提供商的责任。
- Antoine Delignat-Lavaud、Cédric Fournet、Kapil Vaswani、Sylvan Clebsch、Maik Riechert、Manuel Costa、Mark Russinovich


专栏


运营与生活
通过了解你需要知道的内容来防止阻塞的三种方法

预先收集正确的信息并对任何项目执行预检可以节省以后浪费的时间。这在个人、团队和组织层面都有效。
- Thomas A. Limoncelli

代码恶棍
环游世界半圈

假设你被要求领导一个外国的软件开发团队。如果你不会说他们的语言,不要退缩。KV 说深入其中,了解这些人。你的工作会更容易,你也会成为一个更好的人。
- George Neville-Neil

钻头
保护秘密免受计算机侵害

鲍勃在监狱里,爱丽丝死了;他们信任计算机保管秘密。回顾经过时间考验的技巧,这些技巧可以帮助你避免这对老加密夫妇的悲惨命运。
- Terence Kelly

第 21 卷,第 3 期(2023 年 5 月/6 月)目录

订阅者和 专业会员在此处登录

May/June 2023 acmqueue


专题


CXL 的内存保护有多灵活?
CXL 是一种用于缓存一致性内存共享的新互连标准,正在成为现实——但其安全性还有待提高。去中心化功能灵活且能够抵御恶意行为者,在 CXL 正在积极开发时应予以考虑。
- Samuel W. Stark、A. Theodore Markettos、Simon W. Moore

智能的回声
AI 系统日益普及和受到审查,引发了关于支撑此类系统的 LLM 在多大程度上遵循语言游戏规则以及为什么这很重要的问题。
- Alvaro Videla

远内存中的指针
远内存的概念承诺更大的容量,但延迟也更高。这可能意味着重新思考如何组织数据和计算。
- Ethan Miller、George Neville-Neil、Achilles Benetopoulos、Pankaj Mehra、Daniel Bittman


专栏


自行车棚
不要“想到互联网!”

每当保护社交媒体公司免受责任的第 230 条款受到攻击时,其辩护者总是会大喊“想到互联网”。那不是他们真正想表达的意思。
- Poul-Henning Kamp

跨越护城河
安全不匹配

在软件公司中,安全团队和产品交付团队之间自然存在冲突——一个团队的性质是减慢进度,另一个团队则希望加快进度。秘诀是将安全视为赋能者,而不是障碍。
- Phil Vachon

代码恶棍
石刀和熊皮

系统软件的工具往往比应用程序的工具更原始。如果这些系统在设计时考虑到可扩展性、测量和调试,那么将更容易为它们构建更好的工具。
- George V. Neville-Neil

软件的软性方面
管理混合团队

在后疫情时代,企业经常处理现场和远程工作者的组合。为了取得成功,这需要一套新的管理工具。
- Kate Matsudaira

第 21 卷,第 2 期(2023 年 3 月/4 月)目录

订阅者和 专业会员在此处登录

March/April 2023 acmqueue


专题


超越仓库
对开源生态系统的研究必须考虑其复杂性,不仅涉及技术方面,还涉及这些多层系统的社会方面。
- Amanda Casari、Julia Ferraioli 和 Juniper Lovato

DevEx:真正驱动生产力的因素
提高开发者生产力的最佳方法是什么?一些组织发现,关注开发者体验会带来新的改进机会。
- Abi Noda、Margaret-Anne Storey、Nicole Forsgren、Michaela Greiler

你对应用程序性能一窍不通
在尝试解决性能问题时,并不总是需要进行全面基准测试。你真正需要知道的是你是否注定要失败。一个简单的测量可以告诉你这一点。
- David Collier-Brown

货物崇拜 AI
与围绕不明飞行物和超感官知觉等毫无根据的信仰形成货物崇拜的同一物种也产生了科学天才。AI 能否像人类一样,被教导如何进行科学思考?
- Edlyn V. Levine


部门


实践研究
操作系统调度

最近的研究探索了改进现代计算系统的操作系统调度策略的方法。
- Kostis Kaffes,Peter Alvaro 导言


专栏


运营与生活
端到端加密的改进可能导致静悄悄的革命

起初,窃听能力是无限的。然后,端到端加密将访问权限限制为仅限通信者。我们的作者带着一丝玩笑,展望了通信隐私的下一步。
- Thomas A. Limoncelli

代码恶棍
人情味

公司应该向员工发送网络钓鱼电子邮件,以教训他们不要容易上当受骗吗?KV 认为不应该,并鼓励进行良好的、老式的培训。
- George Neville-Neil

第 21 卷,第 1 期(2023 年 1 月/2 月)目录

订阅者和 专业会员在此处登录

January/February 2023 acmqueue


专题


优化网络安全中的机会成本和错失良机
在制定网络安全决策时,必须考虑所有成本——而不仅仅是财务成本。机会成本经常被忽视,导致次优结果。
- Kelly Shortridge 和 Josiah Dykstra

磨砺你的工具
数字取证工具必须经常更新,以跟上其使用方式的变化。bulk-extractor 工具的更新描述可以作为可以而且应该做什么的示例。
- Simson Garfinkel 和 Jonathan Stewart

设计对话式界面框架
回顾最早的对话式代理之一,为今天的这些界面的开发者提供了将旧方法与尖端机器学习技术相结合的经验教训。
- Zachary Tellman


部门


案例研究
数据科学:不仅仅是算法

一本新教科书《情境中的数据科学:基础、挑战、机遇》的作者分享了他们对该领域对几乎所有经济和社会方面的影响的想法。
- 与 Alfred Spector、Peter Norvig、Chris Wiggins、Jeannette Wing、Ben Fried 和 Michael Tingley 的讨论

钻头
第 23 条款:新的 C 标准让世界为之疯狂

C 编程语言标准的新主要修订版即将到来。C23 引入了令人愉悦的便利性,保留了对粗心大意者的古老陷阱,并创新了一场无端的灾难。官方 C 标准化之舞——威士忌探戈狐步舞——融合了几步前进、大量横向洗牌以及醉酒后退到壁炉中。
- Terence Kelly,特邀嘉宾 borer Yekai Pan


专栏


代码恶棍
羊皮纸之路?

在计算领域寻求高等学位是一项有用的努力吗?嗯,这需要某种具有疯狂知识专注力的驱动型个人——但是,是的,它可能非常有益。
- George Neville-Neil

第 20 卷,第 6 期(2022 年 11 月/12 月)目录

订阅者和 专业会员在此处登录

November/December 2023 acmqueue


专题


与 Copilot 一起起飞
新的 AI 驱动工具可以促进结对编程。Github 的 Copilot 就是其中一种工具,早期的评论虽然不完美,但前景广阔。
- Christian Bird、Denae Ford、Tom Zimmermann、Nicole Forsgren、Eirini Kalliamvakou、Travis Lowdermilk、Idan Gazit

选择 PiM 还是不选择 PiM
随着 AI 成为数十亿边缘 IoT 设备普遍使用的工具,数据移动瓶颈正在形成。内存内处理可能提供一种替代途径。
- Gabriel Falcao 和 João Dinis Ferreira

献给仍然不明白的程序经理的三重和谐
开源软件、开放标准和敏捷软件开发可以确保更高效的系统采购。国防部网络战略提供了一个有说服力的例子。
- Guenever Aldrich、Danny Tsang、Jason McKenney


部门


实践研究
模糊测试的乐趣

称为模糊测试的调试技术已发展成为一种大规模发现安全漏洞的复杂方法。对有关该主题的三篇研究论文的评论有助于深入了解该技术。
- Stefan Nagy,Peter Alvaro 导言


专栏


代码恶棍
所有滑块都向右

在硬件方面,越大不一定越好。更重要的是以最有效的方式利用你所拥有的东西。
- George Neville-Neil

第 20 卷,第 5 期(2022 年 9 月/10 月)目录

订阅者和 专业会员在此处登录

September/October 2022 acmqueue


专题


Occam-v2:结合静态和动态分析以实现有效且高效的全程序特化
Occam-v2 结合了使用抽象解释框架的静态分析以及动态分析。这种组合可以产生更好的 LLVM 比特码特化工具。
- Jorge A. Navas 和 Ashish Gehani

在 Google 重塑后端子集化
Google 发现其使用十多年的算法是连接动荡的原因。Google 寻找替代方案,而 Rocksteadier Subsetting 就是答案。
- Peter Ward 和 Paul Wankadia,Kavita Guliani 参与


部门


案例研究
OSS 供应链安全:需要什么?

企业日益依赖的开源软件供应链因其易于访问而引起了网络犯罪世界的关注。战壕中的专家告诉我们应该采取哪些措施来减轻风险。
- 与 Maya Kaczorowski、Falcon Momot、George Neville-Neil 和 Chris McCubbin 的讨论


专栏


钻头
可读可执行文件

可读可执行文件重新定义了编译后的二进制文件和源代码之间的关系,使其成为鸡和蛋的关系,因此很容易从另一个推导出另一个。本期“钻头”提供了一个通用的可读性工具,并通过将其改造到每个人最喜欢的命令行实用程序上来展示可读性的优势。
- Terence Kelly

运营与生活
拆分你不堪重负的团队

解决工作过度、不堪重负的 SRE 团队的解决方案可能是将团队分成几个部分,每个部分负责较少的任务。
- Thomas A. Limoncelli,Stack Overflow 的 SRE TPM

代码恶棍
房间里的大象

通过为 Posix 这头大象编写代码,我们失去了利用现代硬件的机会。
- George Neville-Neil

第 20 卷,第 4 期(2022 年 7 月/8 月)目录

订阅者和 专业会员在此处登录

July/August 2022 acmqueue


专题


中央银行数字货币的隐私格局
随着世界各地的中央银行转向现金数字化,隐私问题需要提到首位。采取的路径可能取决于每个利益相关者群体的需求:注重隐私的用户、数据持有者和执法部门。
- Raphael Auer、Rainer Böhme、Jeremy Clark 和 Didem Demirag

全同态加密的兴起
当前的数据安全模型正在努力完成他们需要做的工作。商业 FHE 的可用性可能很快会导致机密信息的保护、处理和共享方式发生翻天覆地的变化。
- Mache Creeger

从零到一百
零信任架构是新的网络安全标准,还是仅仅是正确完成的网络安全——我们一直应该做的事情?无论哪种方式,在不断变化的网络环境和日益增长的安全威胁中,它都是必要的。
- Matthew Bush、Atefeh Mashatan


部门


案例研究
零信任的到来:这意味着什么?
随着组织通过云计算扩展以及更多员工在家工作——以及企业安全漏洞的增加——不再存在安全的边界。零信任是前进的方向。
- 与 Michael Loftus、Andrew Vezina、Rick Doten 和 Atefeh Mashatan 的讨论

实践研究崩溃一致性
RfP 的第二次重启版审查了三篇论文,这些论文探讨了实现崩溃一致性的不同方法——崩溃一致性是存储系统中的一个重要质量,表明其数据可以在系统崩溃中幸存下来。
- Peter Alvaro、Ram Alagappan


专栏


代码恶棍
病态软件项目的四个骑士
一个软件项目正与团队成员之间的猜疑、团队重组以及不断增加的错误计数作斗争,这可能只意味着一件事:末日临头。
- George Neville-Neil

自行车棚
软件行业开始面临其责任问题
新成立的网络安全审查委员会于 7 月发布了关于 Log4j 安全问题的首份报告。请将其视为对未来自由和开源软件开发的警告。
- Poul-Henning Kamp

第 20 卷,第 3 期(2022 年 5 月/6 月)目录

订阅者和 专业会员在此处登录

May/June 2022 acmqueue


专题


物联网、TLS 和真随机数生成器在现实世界中的挑战
不良随机数在当今系统中仍然存在,使安全性面临风险。可能需要彻底改革 TLS 协议,使其更能适应不太完美的随机数生成器。
- James P. Hughes 和 Whitfield Diffie

个人信息隐私
每一次在线互动都为个人信息被滥用创造了机会。今天部署的隐私保护技术是否足以保护数据免受恶意用户的侵害?
- Sutapa Mondal、Mangesh S. Gharote 和 Sachin P. Lodha


部门


实践研究
收敛

在中断三年后,我们广受欢迎的学术论文评论又回来了。这第一期重启版着眼于通过收敛实现数据一致性的四种不同方式,这些方式来自计算机科学的四个不同领域。
- Martin Kleppmann

代码恶棍
保护公司瑰宝

有时,负责系统安全的人员无法胜任这项任务。这些“运行手册僵尸”只是走过场,执行通用清单,而没有保护任何东西。运行手册应被视为记忆辅助工具,而不是仔细思考的替代品。
- George Neville-Neil

逃离奇点
我可能没有以前那么确定了

年轻时,我认为宇宙像一个大钟一样受因果关系支配。从这个角度来看,计算是有意义的。现在我意识到,生活和计算都可能是一场赌博,这给了我一种新的平静。
- Pat Helland

第 20 卷,第 2 期(2022 年 3 月/4 月)目录

订阅者和 专业会员在此处登录

March/April 2022 acmqueue


专题


软件彩蛋万岁!
- Benoit Baudry、Tim Toady、Martin Monperrus
自从一开始,它们就一直隐藏在软件的角落和缝隙中。有些人认为它们毫无用处。对于另一些人来说,它们只是带来快乐——这有什么不对呢?

设身处地为他们着想
- Jenna Butler 和 Catherine Yeh
当在家工作在 Covid 疫情期间成为一种现象时,一家主要的软件公司要求员工记录他们的经历。这些发现可能有助于塑造混合工作的新世界。


部门


案例研究
FHIR:减少医疗保健数据交换的摩擦

与 James Agnew、Pat Helland 和 Adam Cole 的讨论
事实证明,医疗保健提供商很难遵守电子健康记录的互操作性标准。这些行业专家讨论了挑战,并展望更美好的未来。

代码恶棍
黑盒何时应该透明?

- George Neville-Neil
砖头就是砖头,对吗?不一定。你需要看看砖头里面是什么。因此,当您的供应商为您的系统提供替代组件时,请提出很多问题。

自行车棚
线性地址空间

- Poul-Henning Kamp
当今天几乎所有东西都是面向对象的时候,我们为什么还需要线性地址?简短的回答是,我们不需要,应该消除它们。

钻头
持久内存分配

- Terence Kelly
一种新的持久内存分配器,提供持久脚本编写功能,可以通过利用大量的现有软件和硬件来成倍增加程序员的影响力。

第 20 卷,第 1 期(2022 年 1 月/2 月)目录

订阅者和 专业会员在此处登录

January/February 2022 acmqueue


专题


中间件 101
硬件和软件之间那个模糊的层可以在软件周期的多个阶段使用——从其架构和开发到其部署。
- Alexandros Gazis 和 Eleftheria Katsiri

持久性编程
这通常是必需的——但你做得对吗?重新定义数据库可以重新构想持久性编程,使其成为一项更自然的任务。
- Archie L. Cobbs

通过关键路径跟踪进行分布式延迟分析
大型现实世界系统中的许多现有工具不足以进行延迟分析。谷歌对关键路径跟踪的使用证明了其在为此目的提供有价值的日常数据方面的价值。
- Brian Eaton、Jeff Stewart、Jon Tedesco 和 N. Cihan Tas,Google, Inc., USA

自主计算
封地、使者和协作听起来可能更像是一种古老的社会结构管理方式,但这些概念构成了自主计算。这些模式可以帮助人们更轻松地使用计算机解决业务问题。
- Pat Helland


部门


代码恶棍
数据的规划和维护

现在早就应该让那些从事数据收集业务的人首先认真思考数据工程和数据维护了。出错的代价太高了。
- George Neville-Neil

第 19 卷,第 6 期(2021 年 11 月/12 月)目录

订阅者和 专业会员在此处登录

November/December 2021 acmqueue


专题


可解释的机器学习
机器学习技术目标的研究与其实际用例之间存在脱节。可解释机器学习领域试图将方法论的进步转化为广泛的实际影响。
- Valerie Chen、Jeffrey Li、Joon Sik Kim、Gregory Plumb、Ameet Talwalkar

王国的钥匙
笨拙的手指意外删除了签署新固件更新所需的私钥——业务陷入停顿。作者被请来通过将新的静态信任根修补到引导加载程序中来力挽狂澜。
- Phil Vachon

客户端计算硬件中的 FPGA
FPGA 可能占用更多空间、消耗更多功率,并且集成到设备中的成本更高,但与 ASIC 相比,它提供了显着的安全性和性能优势。
- Michael Mattioli,高盛公司


部门


自行车棚
廉价到难以置信的监视

科技公司通常比你更早知道你的下一步行动,但关闭这种监视的成本高于继续下去的成本。
- Poul-Henning Kamp

代码恶棍
摆脱疯狂之路

调试本质上是一个迭代过程,在其乏味的最坏情况下,可能会导致疯狂。有一些方法可以避免走上这条路。
- George Neville-Neil

钻头
蒸汽朋克机器学习

将模型拟合到数据如今非常流行,但长期以来一直是工程师的基本技能。经验丰富的工程师知道,现实世界的系统通过将例行操作条件与过载和故障发作交织在一起,从而破坏了教科书技术;为了实用,一种方法必须在不被后者扭曲的情况下对前者进行建模。令人惊讶的有效帮助来自一个不太可能的方面:一种简单直观的模型拟合方法,早于巴贝奇引擎。这种方法是用于生产数据中心的工业级决策支持和异常检测的基础,无需人工干预即可产生准确但易于理解的模型。它易于使用现代分析软件进行实践,并且广泛适用于计算系统及其他领域。
- Terence Kelly

2021 年 9 月/10 月目录

订阅者和 专业会员在此处登录

September/October 2021 acmqueue


专题


欺骗攻击者:新一代欺骗
网络攻击背后的人也是人,可以像受害者一样被愚弄。通过部署欺骗环境,软件工程师可以转移攻击者的注意力,同时构建更具弹性的系统。
- Kelly Shortridge 和 Ryan Petrich

计算机程序中的意义和上下文
无论是调试程序还是向程序添加新功能,程序员都必须能够阅读代码以了解程序正在做什么。然后,他们可以使用源代码作为媒介与其他程序员共享领域知识。
- Alvaro Videla

联邦学习和隐私
如果数据管理不当,集中收集数据可能会带来隐私风险。联邦学习是一种方法,它看到了处理大量数据的好处,同时最大限度地降低了数据持有者的风险。
- Kallista Bonawitz、Peter Kairouz、Brendan McMahan 和 Daniel Ramage,谷歌


部门


访谈
与 Margo Seltzer 和 Mike Olson 的对话

Berkeley DB 开发背后的两位人士谈论了它最初作为“一个愚蠢的研究生技巧”的开始以及它狂野地发展成为成功产品的过程。

案例研究
这需要一个社区:开源挑战

如何构建一个蓬勃发展的开源社区?一些最成功的开源项目的领导者通过分享他们的经验来回答这个问题。
与 Reynold Xin、Wes McKinney、Alan Gates 和 Chris McCubbin 的讨论

代码恶棍
我拔掉了什么?

大型系统故障通常来自愚蠢的错误,例如将所有层都放在一个蛋糕上,而不跟踪蛋糕是如何分层的。
- George Neville-Neil

铭记于心
芯片测量竞赛

一些公司——包括苹果和特斯拉——开始构建自己的专用芯片,以获得更好的性能、用户体验和经济性。
- Jessie Frazelle

2021 年 7 月/8 月目录

订阅者和 专业会员在此处登录

July/August 2021 acmqueue


专题



静态分析特刊


队列焦点
静态分析:简介
软件工程包括源代码、计算机和人之间复杂的关​​系。静态分析是开发人员可用来帮助管理这种复杂性的最有效工具之一。
- Patrick Thomson

GitHub 的静态分析
尽管 GitHub 托管的用户数量和代码库的大小令人望而生畏,但那里的团队仍然能够利用静态分析来帮助简化其代码导航。
- Patrick Thomson 和 Timothy Clem

以人为本的静态分析驱动的开发人员工具
在将静态分析技术引导到更贴近程序员思维的面向开发人员的系统中,人的因素不容低估。
- Ayman Nadeem

静态分析工具的 UI 设计
尽管静态分析工具的效率越来越高,但其可用性的提高速度却较慢。以用户为中心的方法和设计指南可以帮助提高可用性。
- Daniil Tiganov、Lisa Nguyen Quang Do 和 Karim Ali


专栏


代码恶棍
专利荒谬
对于软件专利,无知是福。最好的建议?不要阅读它们。
- George Neville-Neil

钻头
使原始 NoSQL 键值存储具有防崩溃功能
一种新的崩溃容错机制使历史悠久的 gdbm 数据库跻身事务性 NoSQL 数据存储之列。
- Terence Kelly

自行车棚
软件行业仍然是问题所在
从医生到水管工,数十个行业都受到法律监管,并且需要某种形式的执照。IT 工程师并非如此。现在早就应该承担一些专业责任了。
- Poul-Henning Kamp

2021 年 5 月/6 月目录

订阅者和 专业会员在此处登录

May/June 2021 acmqueue


专题


声明式机器学习系统
如果下一代 ML 系统能够被那些不仅仅是构建它们的人所利用,它们将会蓬勃发展。
- Piero Molino 和 Christopher Ré

当策展成为创造
随着社交媒体平台越来越多地转向创建内容,作者认为必须修改法规,以使其承担更多责任。
- Liu Leqi、Dylan Hadfield-Menell 和 Zachary C. Lipton

真实世界的字符串比较
字符串比较绝非易事。了解如何正确处理 Unicode 序列可以使过程更加顺畅。
- Torsten Ullrich

深入挖掘大数据溯源(使用 SPADE)
开源 SPADE 项目为分析数据溯源提供了一个用户界面,例如恶意软件检测或跟踪比特币交易。
- Ashish Gehani、Raza Ahmad、Hassaan Irshad、Jianqiao Zhu 和 Jignesh Patel


专栏


代码恶棍
分而治之

二分法可能是查找代码中错误的好工具——但仅在某些有限的情况下。
- George Neville-Neil

逃离奇点
不要陷入“骗局”游戏

一致性、收敛性、合流性……它们都意味着什么?最终一致性是真实存在的吗?
- Pat Helland

自行车棚
哪里出错了?

IT 系统故障可能会造成超出可接受范围的人员伤亡。在这些情况下,IT 事故调查委员会应查明原因并防止再次发生类似的灾难。
- Poul-Henning Kamp

2021 年 3 月/4 月目录

订阅者和 专业会员在此处登录

March/April 2021 acmqueue


专题


AI 系统中的偏见
越来越需要教育 ML 开发人员了解潜入 AI 管道的偏见类型以及如何减轻这些偏见。
- Ramya Srinivasan 和 Ajay Chander

通往量子抗性的复杂道路
量子计算以其技术进步的前景,也威胁着当今用于保护数据的密码学技术。现在需要量子抗性解决方案。
- Atefeh Mashatan


案例研究


车辆的量子安全信任
量子动力攻击的威胁在汽车行业尤为严重。安全专家对使车辆免受量子威胁具有新的紧迫感。
与 Michael Gardiner、Alexander Truskovsky、George Neville-Neil 和 Atefeh Mashatan 的讨论


专栏


代码恶棍
赞美反汇编器

更高级别的语言使开发人员对从他们工作的机器的较低级别细节中收集到的知识视而不见。在汇编语言中可以找到乐趣。
- George Neville-Neil

逃离奇点
ACID:我个人的“C”改变

作者长期以来一直认为一致性不如其 ACID 合作伙伴:原子性、隔离性和持久性重要。现在他承认他错了。
- Pat Helland

铭记于心
机械 CAD 的新时代

许多 CAD 程序仍然停留在 20 世纪 80 年代它们被构思出来的时候。现在早就应该更新它们的设计和功能了。
- Jessie Frazelle

钻头
薛定谔的代码

未定义的行为是流行编程语言的危险方面。以下是检测和预防此类错误的技巧。
- Terence Kelly

2021 年 1 月/2 月目录

订阅者和 专业会员在此处登录

January/February 2021 acmqueue


专题


WebRTC:开放 Web 平台的实时通信
最初作为一个将音频和视频引入网络的开放平台,随着疫情推动世界转向基于互联网的通信,它已经扩展到前所未有的程度。
- Niklas Blum、Serge Lachapelle 和 Harald Alvestrand

开发人员生产力的 SPACE
尽管开发人员生产力在提高效率和质量方面具有价值,但它仍然难以衡量和定义。一个名为 SPACE 的实用框架捕捉了这个难以捉摸的概念的最重要维度。
- Nicole Forsgen、Margaret-Anne Storey、Chandra Maddila、Thomas Zimmermann、Brian Houck 和 Jenna Butler

迈向机密云计算
随着云的重要性持续增长,它需要更高的安全性。下一步是机密计算,这意味着将密码学保护扩展到使用中的数据。
- Mark Russinovich、Cédric Fournet、David Chisnall、Antoine Delignat-Lavaud、Sylvan Clebsch、Kapil Vaswani、Manuel Costa、Vikas Bhatia

动荡时期的软件开发
这些疫情时期强调了软件开发中快速决策能力、敏捷项目管理和极端低代码技术的必要性。一个示例项目展示了如何做到这一点。
- João Varajão


专栏


代码恶棍
厌恶版本
将版本硬编码到源代码本身中绝对是不允许的。有一些方法可以正确地做到这一点,那么为什么这么多人仍然继续犯错呢?
- George Neville-Neil

逃离奇点
快速失败正在...快速失败
向云计算的无情驱动是一件好事,但这意味着我们一些久经考验的容错解决方案不再起作用。
- Pat Helland

2020 年 11 月/12 月目录

订阅者和 专业会员在此处登录

November/December 2020 acmqueue


专题


最佳实践:应用程序框架
作者以谷歌为例,考察了框架的优势和权衡。它们可能是一个强大的工具,但它们不一定适用于所有人。
- Chris Nokleberg 和 Brad Hawkes

云中的飞地
云提供商开始在其服务中提供可信执行环境或飞地。这些提供了重要的安全措施,有助于组织履行其法律和监管义务。
- Jatinder Singh、Jennifer Cobbe、Do Le Quoc 和 Zahra Tarkhani


部门


案例研究
永远在线的时间序列数据库:在无法追赶的地方保持领先
可能永远不会出现需要编写自己的数据库的情况,但是万一呢?这种情况发生在 Circonus,该公司对越来越多的 IoT 设备执行遥测分析。以下是该公司这样做的原因以及它的工作原理。
与 Theo Schlossnagle、Justin Sheehy 和 Chris McCubbin 的讨论


专栏


代码恶棍
非精神病患者的开源项目管理指南
进入管理层充满了陷阱,优秀的管理者确实很少见。这是 KV 对如何实现目标的看法。
- George Neville-Neil

钻头
低频交易中的离线算法
一个办公空间拍卖的例子表明,精心设计的软件如何通过寻找细微的贸易收益机会来有效地创造财富。
- Terence Kelly

铭记于心
让我们玩环球热核能源
为您的计算机供电的电力来自哪里?运行托管您服务的数据中心的能源来自哪里?了解这些问题的答案是有益的。
- Jessie Frazelle

逃离奇点
Baleen 分析
数据分析正在摄取任何事物和所有事物,而不考虑出处,然后对其进行分析以检测以前被忽视的模式。
- Pat Helland

2020 年 9 月/10 月目录

订阅者和 专业会员在此处登录

September/October 2020 acmqueue


专题


一切 VPN 都是全新的
虚拟专用网络正在老化,无法跟上不断发展的互联网。但是,一种新的 VPN 协议和计算机使用方式的改变重振了旧的安全模型。
- David Crawshaw


部门


案例研究
差分隐私:默认追求保护
一种严格的隐私数学方法在寻求接受方面遇到了困难。在采用它的公司中,谷歌正在努力传播其价值。
- 与 Miguel Guevara、Damien Desfontaines、Jim Waldo 和 Terry Coatta 的讨论

访谈
与 Werner Vogels 的第二次对话
亚马逊 CTO 从内部提供了亚马逊 S3 和 AWS 的进化观点。
- Tom Killalea


部门


代码恶棍
小屋热
我们中的许多人现在都在 KFH(在家编程)。摆脱办公室的喧嚣并不总是那么容易,但永远不要害怕。KV 以前做过,并向我们展示了方法。
- George Neville-Neil

钻头
去中心化计算
为什么要分散化?有时,这是解决实际问题的最佳方法。我们最新专栏的第二篇介绍了​​一些工作示例。
- Terence Kelly

铭记于心
电池日
电池是现代日常生活的基石,但很少得到应有的重视。特斯拉团队正在改变这一点,努力使这项技术更高效且更具成本效益。
- Jessie Frazelle

一切系统管理员
我偷了贝尔实验室 10,000 美元的那次
不要害怕停机。庆祝它们。从它们身上学习。您可以为您的公司节省数千美元。
- Thomas Limoncelli

2020 年 7 月/8 月目录

订阅者和 专业会员在此处登录

July/August 2020 acmqueue


专题


密钥和身份管理特别关注

SMS 作为第二重身份验证因素的安全分析
毫无疑问,多因素身份验证比单独密码更安全,但使用 SMS 进行身份验证虽然方便,但也带来了自身的安全挑战。
- Roger Piqueras Jover

每个人口袋里的身份
智能手机几乎无处不在——因此是为您的服务创建安全用户身份的引人注目的选择。但这并不容易,尤其是在跨平台缺乏一致性的情况下。
- Phil Vachon

硬件安全无法保证
信任始于硅,因此确保您的系统安全首先要加强制造链并开发检测和缓解硬件攻击的方法。
- Edlyn V. Levine


专栏/部门


代码恶棍
删除 Kode
删除死代码听起来很简单,但如果它涉及一个毕竟并非完全死掉的功能,则可能会变得棘手。
- George Neville-Neil

新专栏:钻头
高效图搜索
这个新的 acmqueue 专栏介绍了增强您的工具箱并使您成为更好的程序员的方法。第一篇文章着眼于提高图搜索效率的工具。
Terence Kelly

铭记于心
超凡脱俗的增材制造
增材制造(又名 3D 打印)使用各种工艺将数字文件转换为物理对象——从珠宝到火箭零件。
- Jessie Frazelle

2020 年 5 月/6 月目录

订阅者和 专业会员在此处登录

May/June 2020 acmqueue


专题


外部数据与内部数据
服务对于今天构建大型应用程序至关重要。每个服务都有自己的数据,这些数据可能驻留在该服务的内部或外部。它驻留在哪里决定了应该如何处理该数据。
- Pat Helland

FPGA 的历史、现状和未来
从电信的早期到今天的高性能计算和数据中心,现场可编程门阵列一直在触动 ASIC 社区的神经。
- Oskar Mencer 等人。

Scrum 必备卡片
流行的敏捷框架 Scrum 可以改进开发团队的协作方式。在这里,我们展示了一组基于 Essence 标准的卡片,这些卡片可以使 Scrum 更有效。
- Jeff Sutherland、Ivar Jacobson 和 Brian Kerr


专栏/部门


代码恶棍
理智与隐形标记
Python 和其他一些编程语言大量使用空格。这是一种需要改变的长期做法。
- George Neville-Neil

一切系统管理员
五种不明显的远程工作技巧
如果说现在是改进远程工作实践的时候,那就是现在了。Stack Overflow 已经这样做了一段时间,并提供了一些关于模拟面对面效率的指导。
- Thomas A. Limoncelli

铭记于心
数据字节的生命周期
众所周知,存储介质的最新技术已经取得了惊人的进步,从纸带到闪存。它仍在朝着更快、更小的存储技术发展。
- Jessie Frazelle

2020 年 3 月/4 月目录

订阅者和 专业会员在此处登录

March/April 2020 acmqueue


专题


调试 Google 分布式系统中的事件
在谷歌工程师调试其复杂系统中的生产问题的方式中,可以吸取一些教训。他们的工具、策略和任务可以应用于较小的系统。
- Charisma Chan 和 Beth Cooper

持久内存是持久的吗?
计算机系统的首要任务是保护其数据。但是事情总会发生。即使采取了所有预防措施,电源故障也可能破坏数据。一个简单廉价的测试平台可以帮助为这种灾难做好准备。
- Terence Kelly

黑暗模式:过去、现在和未来
欺骗性销售行为与时间一样古老,但在线服务已经找到了通过用户界面操纵客户的新方法。行业需要揭示这些所谓的黑暗模式。
- Arvind Narayanan、Arunesh Mathur、Marshini Chetty 和 Mihir Kshirsagar


专栏/部门


代码恶棍
伤心欲绝和咖啡杯
无论您如何处理,安全审查都很困难。KV 逐步描述了这个过程,以便您了解如何为磨难做好准备。
- George Neville-Neil

铭记于心
人民的力量
减少数据中心的碳足迹是一个崇高但必要的 ​​目标。大型运营商正处于实现目标的各个阶段。每个人都有略有不同的方法。
- Jessie Frazelle

2020 年 1 月/2 月目录

订阅者和 专业会员在此处登录

January/February 2020 acmqueue


专题


揭秘稳定币
波动性标志着加密货币的出现。作为回应,已经涌现出大量关于新设计的提案,这些提案旨在提供稳定的汇率。这些所谓的稳定币可能面临许多监管障碍,但它们可能会长期存在。
- Jeremy Clark、Didem Demirag 和 Seyedehmahsa Moosavi,康考迪亚大学


案例研究


捕捉失败:调试的记录和重放方法
Mozilla 开发了记录和重放调试工具 rr,供内部使用,但出乎意料的是,它在 Mozilla 之外得到了广泛使用。其开发人员讨论了调试的挑战以及 rr 成功的原因。
- 与 Robert O'Callahan、Kyle Huey、Devon O'Dell 和 Terry Coatta 的讨论


专栏/部门


铭记于心
蚕食摩尔定律
近年来,摩尔定律预测的晶体管收缩速度有所放缓。存在 7 纳米芯片的技术,但其高昂的制造成本阻碍了它们的广泛使用。
- Jessie Frazelle

代码恶棍
Kode Vicious 在交通中玩耍
使用软件控制移动车辆会引发许多安全问题。但是,有一些设计原则可以遵循,这可能有助于减轻风险。
- George Neville-Neil

逃离奇点...
建造地铁的最佳地点
开发软件可以比作建造城市的 инфраструктура。虽然从一张白纸开始可能更容易,但现实情况是您必须在现有结构周围工作。计算机系统也是如此。
- Pat Helland

一切系统管理员
使用数字 1、2、3 及更多数字进行交流
列表的长度会影响听众对内容的感知。了解这一点将使您成为更好的沟通者。
- Thomas A. Limoncelli

早间论文
委员会如何发明?以及自动化的讽刺
两篇经受时间考验的论文在今天仍然适用。第一篇回顾了康威定律以及组织力量对设计和开发的影响。第二篇着眼于我们自动化程度越高,我们就越依赖人类技能的观点。
- Adrian Colyer

2019 年 11 月/12 月目录

订阅者和 专业会员在此处登录

November/December 2019 acmqueue


专题


揭示人类绩效在软件中的关键作用
了解人们如何检测问题并协同工作以解决问题对于成功的面向互联网的系统至关重要。本期文章探讨了人类绩效在实现更具弹性的系统中的作用。
- David D. Woods 和 John Allspaw

线上之上,线下之下
想象一条水平线横穿面向互联网的系统。线上是塑造、引导和恢复位于该线下方的技术人工制品的各种力量。了解线下发生的事情是系统弹性的关键。
- Richard I. Cook,医学博士

异常响应期间假设探索的认知工作
表示线之上的主要功能是在服务中断期间跨多个角色进行协调,特别是当人们在响应事件时探索各种假设的方式。
- Marisa R. Grayson

管理协调的隐性成本
服务中断通常会启动全员参与的方法,但平稳协调这些多重视角非常重要。如果没有它,认知成本可能会造成损失。
- Laura M.D. Maguire

超越“修复”跑步机
您的软件出现问题。混乱随之而来,直到它被修复。然后是事后剖析,重点关注这次出了什么问题。可能会有一种更全面的方法来防止未来发生故障。
- J. Paul Reed


专栏/部门


铭记于心
保护启动过程
就像接力赛中一名团队成员将接力棒交给另一名团队成员一样,当计算机的所有部件都相互了解和信任时,计算机的启动顺序会更好地工作。标准和系统透明度有助于实现这种信任。
- Jessie Frazelle

代码恶棍
票务大师
在一天中,Alice 编写了 1,000 行有错误的代码,而 Carol 编写了 100 行精心设计的代码。应该奖励谁?质量还是数量?KV 的答案不会让任何人感到惊讶。
- George Neville-Neil

早间论文
我们思考数据的方式
在数据方面,请考虑以下想法:首先,可解释的模型可能提供黑盒模型中找不到的好处。其次,本地优先的软件可以将云应用程序的优势与本机安装的应用程序相结合。
- Adrian Colyer

2019 年 9 月/10 月目录

订阅者和 专业会员在此处登录

September/October 2019 acmqueue


专题


区块链技术:它有什么用?
许多行业都想知道如何将区块链技术应用于他们的特定领域。这是一种判断区块链在许多用例中的潜力的方法。
- Scott Ruoti、Ben Kaiser、Arkady Yerukhimovich、Jeremy Clark 和 Robert Cunningham

企业应用程序的可靠性
为企业可靠性而工程设计可能意味着穿越第三方软件的复杂环境,这些软件通常会损害其寻求实现的目标。凭借正确的一套原则和方法,企业可以避免陷阱并保持可靠性。
- Sanjay Sha

C++ 编译器中的优化
程序员在不断寻找完美的算法时,常常忽略编译器的魔力。但是在查看编译器可以执行的多种类型的优化后,您可能会学会喜欢汇编输出。
- Matt Godbolt


专栏/部门


代码恶棍
数字是给计算机用的,字符串是给人用的
计算机喜欢使用数字,并且它们在这方面很擅长。尝试将时间之类的概念作为字符串进行交流只会导致问题。让您的计算机进行数学运算。
- George Neville-Neil

逃离奇点...
它不再是您祖母的数据库了
时空不连续
您可以使用大型分布式系统做更多的事情,但是当您的计算来自许多不同的来源时,它们会带来一个难题:等待完美的答案?还是选择更快但不完整的答案?
- Pat Helland

一切系统管理员
如果您讨厌您的客户,请遵循 API 实践
通过使您的外部 API 成本高昂且难以使用,很容易赶走客户。但是,通过在构建 API 时遵循一些最佳实践,保持客户并不难。
- Thomas A. Limoncelli

铭记于心
开放基板管理控制器
数据中心的开源化导致了许多涉及 BMC 的创新项目,BMC 监控和管理硬件的物理状态。
- Jessie Frazelle

早间论文
回到 SQL 的保护伞下
对于 YouTube 的数据处理,Google 使用 Procella,第一篇论文将其描述为将大规模数据平台与 SQL 查询引擎统一起来,以满足组织的所有数据需求。除了机器学习;第二篇论文提倡使用 RDMS 作为 ML 平台。所有道路都通向 SQL 吗?
- Adrian Colyer

2019 年 7 月/8 月目录

订阅者和 专业会员在此处登录

July/August 2019 acmqueue


专题


混合机器学习和人类判断的影响
实现有效决策的最佳方法是什么?单人、单机还是两者协同工作?两个实验表明,人与机器之间的协作并不一定能带来更好的结果。
- Michelle Vaccaro 和 Jim Waldo

雇佣黑客
一个新兴的黑市提供雇佣黑客服务来入侵目标电子邮件帐户。一项秘密调查显示,这是一个利基市场,安全密钥可以有效地防止这些攻击——至少目前是这样。
- Ariana Mirian


专栏/部门


代码恶棍
编码学院
所谓的编码学院是培训前端水管工的权宜之计,但它们在为学生准备软件工程或计算机科学领域的职业生涯方面有所欠缺。
- George Neville-Neil

逃离奇点...
写入放大与读取汗水
读取还是写入?在计算中,写入可能会产生更多工作——重组、合并、重新索引。否则,您必须搜索或做其他工作来支持未来的读取。两者之间需要权衡。
- Pat Helland

早间论文
将机器学习投入生产系统
数据验证和软件工程是将机器学习融入开发项目的两种不同方法。谷歌采用前一种方法,而微软选择后一种方法。以下是两者的案例研究。
- Adrian Colyer

2019 年 5 月/6 月目录

订阅者和 专业会员在此处登录

May/June 2019 acmqueue


专题


开源固件
通过使固件的操作更加可见,计算变得更加安全。实现这一目标的关键是支持那些正在远离专有固件并采用开源解决方案的平台。
- Jessie Frazelle

软件工程的速度
您的软件工程团队更像构造板块还是 F-16?高速团队获得最佳结果。它们针对速度进行了优化,对实验持开放态度,敏捷,并会定期进行航向修正。
- Tom Killalea


专栏/部门


案例研究
DAML:分布式账本的合约语言
DAML(数字资产建模语言)将区块链技术应用于金融服务行业,尤其是在分布式账本中。到达那里是一段充满事件的旅程,沿途学到了许多教训。
与 Shaul Kfir 和 Camille Fournier 的讨论

代码恶棍
CSO 有什么用?
首席安全官(不要与安全工程师混淆)需要做的不仅仅是购买第三方安全产品。 必须了解潜在的威胁,并制定明确的应对计划。
- George Neville-Neil

软性层面
管理的演变
随着职位阶梯的晋升——从个人贡献者到经理再到组织领导者——你将面临需要转变思维模式并专注于新技能的转型。
- Kate Matsudaira

一切系统管理员
演示数据即代码
生成演示数据在许多组织中是很常见的做法。 虽然这可能看起来像是一次性任务,一劳永逸,但自动化这个过程将为未来省去很多麻烦。
- Thomas A. Limoncelli

早间论文
操作系统中的时间保护和说话人身份验证检测
本期《晨报》涉及两个不同的安全主题:基于时间的攻击将需要未来操作系统的关注,这些操作系统需要提供时间保护。 其次,语音模仿软件正变得越来越好,这将需要其自身的保护品牌,以防御社会工程攻击。
- Adrian Colyer

2019年3月/4月刊 目录

订阅者和 专业会员在此处登录

March April 2019 acmqueue


专题


软件依赖性生存指南
向软件重用的转变发生得如此之快,以至于风险尚未被完全理解。
- Russ Cox

工业级知识图谱:经验与挑战
谷歌、微软、IBM Watson、Facebook 和 eBay 都必须提供结构化数据,使其产品更智能、更“神奇”。 每家公司都为如何最好地构建和部署知识图谱以实现这一目标提供了范例。
- Natasha Noy, Yuqing Gao, Anshu Jain, Anant Narayanan, Alan Patterson 和 Jamie Taylor

访问控制和医疗保健记录:谁拥有数据?
医疗保健领域的数据管理因遗留系统而负担沉重,并且支离破碎,已到无法挽回的地步。 一家位于多伦多的名为 HealthChain 的初创公司着手为该领域带来一些控制感。 以下是该公司学到的经验。
- 与 David Evans、Richard McDonald 和 Terry Coatta 的讨论


专栏/部门


代码恶棍
必须 和 禁止
KV 提供了一些技巧,可以将你的流程转化为易于理解的文字。 他借鉴了一份 20 多年前的文件 RFC 2119 中的智慧。
- George Neville-Neil

软件的软性方面
过度依恋
对工作产生情感上的依恋可能会导致决策受损。 一位优秀的领导者必须能够看到这种情况何时发生,并插入客观的声音。
- Kate Matsudaira

逃离奇点
提取、硬塞和加载
计算机领域中越来越多的部分是将数据从一个系统移动到另一个系统,但这并不总是合适的。 有时,它必须被硬塞成一种可以被理解的形状。
- Pat Helland

实践研究
DevOps 现象
DevOps 为希望占领市场份额并更快交付价值的公司带来了很多希望,但从传统方法转型也面临着挑战。 许多论文都讨论了这些早期的实施障碍。
- Anna Wiedemann, Nicole Forsgren, Manuel Wiesche, Heiko Gewald 和 Helmut Krcmar

早间论文
GAN 解剖和数据中心 RPC
本期《晨报》探讨了两个不同的主题。 第一篇论文剖析了 GAN(生成对抗网络)在生成图像时内部发生的情况。 第二篇论文认为,在某些情况下,RPC(远程过程调用)仍然可以在数据中心中胜任工作。
- Adrian Colyer

2019年1月/2月刊 目录

订阅者和 专业会员在此处登录

January/February 2019 acmqueue


专题


网络中立性:区块链扩展的意外解决方案
区块链的可扩展性不佳,但云交付网络可能会为这个问题提供解决方案。 诀窍在于建立一个可证明中立的网络设计。
- Aleksandar Kuzmanovic

垃圾回收作为合资企业
Google Chrome 使用一种称为跨组件追踪的方法来解决跨组件边界的内存管理问题。 结果是安全高效的内存回收。
- Ulan Degenbaev, Michael Lippautz 和 Hannes Payer

在线事件处理
在线事件处理正在数据管理中找到立足点,尤其是在事务处理无法胜任任务的情况下。 OLEP 允许应用程序保证跨异构数据系统的强一致性属性。
- Martin Kleppmann, Alastair R. Beresford 和 Boerge Svingen


专栏/部门


代码恶棍
史上最糟糕的主意
KV 已经唠叨抱怨了 100 篇专栏。 从卑微的开端开始,KV 仍然坚持了下来——并将继续与愤怒管理作斗争,未来还会有很多专栏。
- George Neville-Neil

软件的软性方面
如何创建优秀的团队文化(以及为什么它很重要)
优秀的团队不会凭空出现。 它们源于领导者花时间建立一种文化,在这种文化中,团队大于其个人成员的总和。 当这种情况发生时,会产生令人振奋的效果。
- Kate Matsudaira

一切系统管理员
Tom 总结的关于软件,高管应该知道的十大要点
如果你所在公司的管理层不了解软件如何改变业务,请当心。 如果你是这些高管之一,是时候了解这个新世界了。 如果你为这些高管工作,就开始教导他们。
- Tom Limoncelli

实践研究
机器学习学术研究中令人担忧的趋势
机器学习领域的许多研究论文都存在缺陷,这些缺陷可能会误导公众并阻碍未来的研究。 意识到这些问题可能有助于在未来的工作中避免它们。
- Zachary C. Lipton 和 Jacob Steinhardt

早间论文
SageDB 和 NetAccel
acmqueue 的新增内容审查了 2019 年创新数据系统研究会议的两篇论文。 每篇论文都探讨了数据系统研究的一个大胆新方向——一篇着眼于学习模型的作用,另一篇则探讨了网络加速查询处理。
- Adrian Colyer

2018年11月/12月刊 目录

订阅者和 专业会员在此处登录

November/December 2018 acmqueue


专题


区块链宇宙的搭车客指南
区块链据说是解决几乎所有问题的答案,但没有多少人能准确解释它到底是什么。 这里着眼于基础知识:各个组成部分、它们如何组合在一起以及区块链技术的问题。
- James Waldo

实现数字永久性
曾几何时,赋予数据永久生命意味着将其存储在泥板、纸卷或穿孔卡片上。 然后信息时代来临。 现在每条数据都存储在数字媒体上。 挑战在于使其持久并保持其准确性。
- Raymond Blum,与 Betsy Bower 合著

任何其他的名称的身份
身份的概念是分布式系统基本机制的基础,包括可互换性、幂等性和不变性。 标识符将这些相互交织的系统结合在一起。
- Pat Helland

重要的指标
Google SRE 团队已经确定了一些对产品可靠性至关重要的服务指标。 选择正确的指标是取悦用户还是将他们赶走的区别。
- Ben Treynor, Shylaja Nukala 和 Vivek Rau


专栏/部门


代码恶棍
了解你的算法
购买更新、更快的硬件并不总是解决计算问题的答案。 通常,底层软件才是寻找答案的关键。
- George Neville-Neil

软性层面
管理上级的模式设计
你总是会遇到自己状态不佳的情况——你不知道答案、你不同意某个决定、你犯了一个错误。 你可以识别这些模式并准备好应对它们。
- Kate Matsudaira

实践研究
边缘计算
一些应用程序通过移出云端并进入日常生活可以更好地得到服务。 这里回顾一下指导边缘计算趋势的一些研究。
- Nitesh Mor

2018年9月/10月刊 目录

订阅者和 专业会员在此处登录

September/October 2018 acmqueue


专题


拆除方法监狱!解放实践!
软件开发人员为了以最有效和协作的方式工作而需要的专业实践,往往被囚禁在专有的方法监狱中。 Essence 可能是解放的关键。
- Ivar Jacobson 和 Roly Stimson

理解针对公共数据的数据库重建攻击
美国人口普查局尤其容易受到数据库重建攻击,并且正在评估减轻威胁的方法。 这对即将到来的十年一次的人口普查和保护数百万美国公民的隐私具有重要意义。
- Simson Garfinkel, John Abowd 和 Christian Martindale

基准测试“Hello, World!”
观察当今大型系统的工具通常不足。 探索非常简单的环境可以帮助揭示你正在使用的工具的缺点,并指导工具设计人员和用户填补空白。
- Richard L. Sites


案例研究



Codeflow:改进微软的代码审查流程
大量薪酬丰厚的人员花费大量时间进行代码审查。 当你谈论像微软这样规模的商店时,成本是惊人的。 这就是为什么该公司的一个团队着手研究该流程,使其对每个人都更好。
与 Jacek Czerwonka, Michaela Greiler, Christian Bird, Lucas Panjer 和 Terry Coatta 的讨论


专栏/部门


代码恶棍
编写测试计划
如何在不将其变成巨大的时间黑洞和干扰的情况下创建有用的文档? 借鉴高中科学课上的旧实验报告。
- George Neville-Neil

一切系统管理员
使 DevOps 与 SQL 协同工作
不要因为你使用 SQL 数据库而低估 DevOps。 这可能是一个困难的转变,但一旦完成,生活将会轻松得多。
- Thomas A. Limoncelli

软性层面
出色结尾的重要性
项目往往开始时轰轰烈烈,结束时却悄无声息。 不要让这种情况发生。 你必须保持势头并每次都强劲收尾。 这才是让你受人关注的原因。
- Kate Matsudaira

实践研究
现代时代的安全性
安全地运行需要整个 syscall 接口的进程,这产生了对新方法的需求。 解决这个问题导致了对自动化安全和防御现代时代攻击的不同方式的研究。
- Jessie Frazelle

2018年7月/8月刊 目录

July/August 2018 acmqueue


专题


如何在后 Meltdown 和 Spectre 时代生存
- Rich Bennett, Craig Callahan, Stacy Jones, Matt Levine, Merrill Miller 和 Andy Ozment
主要漏洞及其变体创造了一个风险环境,需要立即采取防御措施和一些权衡。 强大的漏洞管理基础对于应对当前和未来的战斗至关重要。

为 Bazel 使用远程缓存服务
- Alpha Lam
Bazel 是一个开源系统,它提供了远程和大规模并行运行构建任务的能力。 它的新远程缓存功能可以帮助软件开发人员将构建时间减少近一个数量级。

跟踪和控制微服务依赖关系
- Silvia Esparrachiari, Tanya Reilly 和 Ashleigh Rentz
依赖循环是系统设计的关键细节,很容易被忽视,直到为时已晚。 管理这些依赖关系对于系统可靠性至关重要,尤其是在当今大规模相互依赖的软件系统不断增长的情况下。

为什么 SRE 文档很重要
- Shylaja Nukala 和 Vivek Rau
文档是 SRE 团队成功的关键。 没有它,SRE 将浪费宝贵的时间尝试通过反复试验来解决问题。 有了它,团队可以扩大规模,并采取有原则的方法来管理新的和不熟悉的服务。


专栏/部门


代码恶棍
偶然的园丁

- George Neville-Neil
开源就像一个花园,里面有许多不同种类的植物,其中一些是有益的,另一些是有毒的。 公司如何在这个花园中除草?

软件的软性方面
当你不想工作时如何完成工作

- Kate Matsudaira
面对现实,总有几天你感觉不在状态。 但是有一些策略可以应对那些糟糕的日子,并在这一切之下完成出色的工作。

2018年5月/6月刊 目录

May/June 2018 acmqueue


专题


机器学习模型可解释性的神话
- Zachary C. Lipton
机器学习的快速发展使自动化决策成为可能,但一个重要但被误解的组成部分是解释过程中使用的模型的能力。 什么是可解释性?为什么它很重要?

从企业到云端:谷歌的虚拟桌面
- Matt Fata, Philippe-Joseph Arida, Patrick Hahn 和 Betsy Beyer
GDesktop 是谷歌内部使用的虚拟桌面,直到最近,它还托管在公司企业网络上可商购的硬件上。 今天,它在 Google Compute Platform 上运行。 这是逐步迁移到云端的步骤。

注意你的状态,为了你的心态
- Pat Helland
存储和应用程序在不断变化的需求和环境中并肩挣扎。 这些变化对持久状态和会话状态产生影响,在开发应用程序时必须牢记这一点。


专栏/部门


代码恶棍
被称为意大利面代码的令人厌恶的耦合

- George Neville-Neil
不必要地链接函数、默默地混合和透明地通过多个接口层传递数据,以及最痛苦的,埋藏重要的错误输出——它会停止吗?

软件的软性方面
选择正确下一个角色的秘诀

- Kate Matsudaira
花哨的头衔和声望项目只能让你走这么远。 在决定职业生涯的下一步去向时,最好关注长期目标和志同道合的同事。

一切系统管理员
GitOps:通往更多自助式 IT 的道路

- Thomas A. Limoncelli
GitOps 是一种工作流程,它使用户能够通过拉取请求来完成自己的 IT 工作。 对于适合的系统,GitOps 可以减少等待时间、提高系统安全性并增加投资回报率。

实践研究
机器学习时代中的知识库构建

- Alex Ratner 和 Chris Ré
KBC 曾经是学术界、工业界或政府中资金充足的团体的专属领域,但由于易于使用的深度学习模型,它正变得越来越容易访问。 这里总结的三篇论文讨论了使这些方法奏效而必须做出的关键设计选择。

2018年3月/4月刊 目录

March/April 2018 acmqueue


专题


C 不是低级语言
- David Chisnall
鉴于当今并行硬件的普及,从多核 CPU 到多核 GPU,C 的实现不得不变得越来越复杂,以保持 C 可以轻松映射到底层硬件的错觉。 这导致了漏洞。

现代存储系统背后的算法
- Alex Petrov
随着数据库系统的增长,扩展存储系统变得更具挑战性。 重要的是要了解大多数数据库系统中用于存储系统的两种设计方法的权衡:读取优化的 B 树和写入优化的 LSM 树。

工作负载频率缩放的一般方程和经验验证
- Noor Mubeen
测量工作负载的生产性能或比例因子需要一些工作负载缩放方程,此处给出。 这些方程的验证结果证明是棘手的,但直方图脊线迹可以帮助建立非常准确的估计。


专栏/部门


代码恶棍
每朵乌云都镶有金边

- George Neville-Neil
将应用程序迁移到云端可能听起来对有预算意识的管理者来说不错,但突然之间,你正在与许多其他云租户争夺资源。 性能可能会受到影响。

逃离奇点
最终一致性

- Pat Helland
最终一致性的想法是,对数据项的工作将在某个时候停止,并且其值将被知晓。 对于许多项目,这项工作永远不会完全确定一个值。 更准确地描述为持续最终一致性。

实践研究
数据中心中的 FPGA

- Gustavo Alonso
现场可编程门阵列已开始出现在商业数据中心中,因为它们资源和能源效率高。 这里介绍的四篇论文展示了 FPGA 设计如何快速发展,并详细介绍了围绕 FPGA 的一些持续辩论。

2017年11月/12月刊 目录

January/February 2018 acmqueue


专题


Canary 分析服务
- Štěpàn Davidovič
谷歌的集中式 CAS 采用“煤矿中的金丝雀”方法来确定对服务的局部和限时更改是否安全有效。 最终,CAS 加快了开发速度,提高了生产安全性,并有助于防止中断。

汝勿依赖于我
- Tobias Lauinger, Abdelberi Chaabane 和 Christo B. Wilson
使用第三方组件(如 JavaScript 库)的网站容易受到这些库可能包含的任何安全问题的影响。 第一步是了解问题的范围,然后确定可以做些什么来改善情况。

为互联网规模服务设计集群调度器
- Diptanu Gon Choudhury 和 Timothy Perrett
分布式系统的集群调度器已经变得无处不在,但实现它们很棘手。 它们必须为故障而设计,以确保系统的稳定性和可靠性。


专栏/部门


一切系统管理员
人工工作是一个 Bug

- Thomas A. Limoncelli
两个系统管理员的故事——一个花时间编写大量代码来自动化任务; 一个没有。 一个成功了; 一个不太成功。

代码恶棍
看门狗与雪花

- George Neville-Neil
如何处理随机堵塞的分布式系统? 可能没有简单的答案——只有大胆的猜测。

软件的软性方面
如何想出绝妙的主意

- Kate Matsudaira
培养自己拥有企业家的心态,你将不乏想法。 这里有一些技巧可以开始以这些术语思考。

实践研究
预测服务系统

- Dan Crankshaw 和 Joseph Gonzalez
机器学习涉及训练一个模型,然后该模型可用于根据新输入进行预测。 该领域的大多数研究都集中在设计和训练这些模型上。 在这里,我们着眼于解决这些模型训练后管理中经常被忽视的领域的论文。

2017年11月/12月刊 目录

November/December 2017 acmqueue


专题

持续交付听起来不错,但它在这里适用吗?
- Jez Humble
安全快速地将新功能、更改和错误修复交付到用户手中的能力是一种竞争优势。 持续交付实现了这一点,但许多人错误地认为其实现的障碍太大了。

容器不会修复你破碎的文化
(以及其他残酷的真相)

- Bridget Kromhout
正确的 DevOps 实践可以解决很多问题,但如果没有正确的工作文化,它们的作用就非常有限。 为了使这些工具发挥作用,必须在人们可以共同努力构建未来的环境中使用它们。

DevOps 世界中的监控
- Theo Schlossnagle
随着 DevOps 的兴起,传统监控范式的基础已经发生了变化。 新世界是流动的、快速的,为了跟上步伐,必须以完全不同的方式考虑监控。

DevOps 指标
你最大的错误可能是收集了错误的数据

- Nicole Forsgren 博士和 Mik Kersten 博士
衡量对于 DevOps 转型的成功至关重要,但确定究竟要衡量什么可能会让人望而生畏。 这里是组织应收集的数据类型指南,以确保有效的软件开发和交付。


专栏/部门

代码恶棍
内核爆发

- George Neville-Neil
是在操作系统内核中还是在用户空间中编程取决于具体情况。 真正重要的是遵循编程最佳实践,无论在何处。

软件的软性方面
你这周目前怎么样?

- Kate Matsudaira
很容易忘记,但“做得好!” 对于激发动力和生产力大有帮助。 为了最有效,赞扬必须具有三个要素:它必须是频繁的、具体的和战略性的。

实践研究
迈向互联事物网络

- Deepak Vasisht
物联网 (IoT) 正在迅速从理论走向现实。 本期 RfP 介绍了可能有助于加速和利用这一趋势的研究论文。

2017年9月/10月刊 目录

September/October 2017 acmqueue


专题

比特币的潜在激励机制
- Yonatan Sompolinsky 和 Aviv Zohar

比特币协议内置了经济激励机制,这些机制控制着加密货币的功能、安全保证和未来发展。 更强大的激励机制对于所有加密货币的生存至关重要。

Titus:将容器引入 Netflix 云
- Andrew Leung, Andrew Spyker 和 Tim Bozarth

虽然 Netflix 已经全力投入云迁移,但它现在正在投资容器技术。 为此,它开发了 Titus,一个容器管理系统,该系统促进了容器在其现有基础设施中的采用。

从故障测试中抽象出天才
- Peter Alvaro 和 Severine Tymon

长期以来,故障测试一直依赖超级用户来提供适当的故障注入,以暴露设计缺陷,但这种方法存在局限性。 需要的是一种自动化超级用户流程的方法。


专栏/部门

代码恶棍
减少攻击面

- George Neville-Neil

小心你提供给开发团队的代码——它可能很危险。

软件的软性方面
来自顶端的视角

- Kate Matsudaira

视角可能会大相径庭,这取决于你属于组织结构图的哪一边。

一切系统管理员
愚人节恶作剧的卓越运营

- Thomas A. Limoncelli

最好的 AFP 是主题性和荒诞性的。 它们不会妨碍客户或业务。 而且它们不是偶然发生的——它们需要仔细的计划和执行。

实践研究
数据中心的集群调度

- Malte Schwarzkopf

精选的研究论文将帮助读者了解如何使用集群管理器有效地调度工作负载,以及如何扩展这些管理器及其调度器。

2017年7月/8月刊 目录

July/August 2017 acmqueue


专题

比特币的学术渊源
- Arvind Narayanan 和 Jeremy Clark

加密货币不是 21 世纪的概念,而是起源于 20 世纪 80 年代和 90 年代的学术文献。 在这项研究的基础上,数字现金将在学术界、外部研究人员和从业人员之间的合作的帮助下,继续取得商业上的成功。

尽情缓存我
- Jacob Loveless

构建更好、去中心化的互联网是目标,但如何实现? 工具和技术是可用的。 第一步是尽可能完整地定义问题。

网络应用程序是交互式的
- Antony Alappatt

网络时代为新应用程序带来了机遇,但它们的开发需要从以算法为中心的旧顺序模型转向以交互为核心的新模型。


专栏/部门

Kode Vicious
冷酷的缓存

- George Neville-Neil

KV 揭示了实施和维护组织良好的缓存的秘密。

软件的软性层面
广度和深度

- Kate Matsudaira

在职业发展方面,是广泛涉猎并学习许多不同的事物,还是深入学习一些事物,真正精通它们更好?

逃离奇点
XML 和 JSON 就像纸板

- Pat Helland

就像你新购买的商品的坚固包装一样,XML 和 JSON 在保护你的数据方面提供了节省和效率,这些节省和效率足以弥补开销。

实践研究
私人在线通信;系统验证亮点


Albert Kwon 回顾了几篇论文,这些论文探讨了在我们日常在线通信中确保隐私这一日益重要的话题。 然后 James R. Wilcox 着眼于系统验证技术的研究,旨在消除整类错误。

2017年5月/6月刊 目录

May/June 2017 acmqueue


专题

物联网是否存在单一方法?
- Ivar Jacobson, Ian Spence, Pan-Wei Ng

物联网将需要新的和更好的方法来开发将需要的大量新软件。 OMG 标准 Essence 可以帮助防止一切变得难以控制。

我们计算所用的隐喻
- Alvaro Videla

程序员必须能够用他们的代码讲述故事。 像作家一样,他们必须了解他们的隐喻。 因此,我们得到了诸如队列、节点、流量、拥塞等概念——所有这些都塑造了人们理解程序中正在发生的事情的方式。

Hootsuite:追求反应式系统
- 与 Edward Steel, Yanik Berube, Jonas Bonér, Ken Britton 和 Terry Coatta 的讨论

在这个最广泛使用的 SaaS 社交媒体管理平台的案例研究中,参与者讨论了 Hootsuite 从 LAMP 平台到微服务架构的转型,该转型得到了 Scala 和 Lightbend 的帮助。


专栏/部门

Kode Vicious
物联网:恐怖互联网

- George Neville-Neil

永远不要、永远不要低估物联网软件中加密的必要性,无论在电池寿命或其他任何方面的成本如何。

软件的软性层面
成为更好面试官的 10 种方法

- Kate Matsudaira

你有一个小时的时间,在一个房间里,有两把椅子和一个白板,来确定求职者是否适合这份工作。 准备工作是选择最适合这份工作的人的关键。

系统管理员的一切
使 CS 和 IT 课程更具沉浸感的四种方法

- Thomas A. Limoncelli

当今大学的计算机科学和 IT 课程应该是沉浸式的,更可靠地反映现实世界。 最好从体验一个运行良好的系统开始,而不是弄清楚如何修复一个运行糟糕的系统。

实践研究
学术计算机科学中的激烈公开辩论

- John Regehr

与任何学术学科一样,计算机科学也引发了关于什么有效和什么无效的激烈的公开辩论——从 GoTo 语句到安全协议。

2017年3月/4月刊 目录

March/April 2017 acmqueue


专题

IDAR 图
- Mark A. Overton

UML 在传达设计的层次结构方面存在不足,使得人类难以准确理解它是如何组合在一起的。 IDAR 图是表示面向对象设计的更清晰的替代方案,从而产生更简洁、更少错误的软件。

服务可用性的微积分
- Ben Treynor, Mike Dahlin, Vivek Rau, Betsy Beyer

大多数软件服务和系统都应力求接近完美的可靠性。 谷歌对其产品保持 99.99% 可用性(“四个九”)的积极 SLO。 以下是它的实现方式。

数据草图
- Graham Cormode

当今信息的庞大规模意味着做出一些妥协——例如,维护数据的摘要或草图,而不是每一比特。 在这里,我们着眼于数据草图背后的四个创新算法思想。


专栏/部门

Kode Vicious
观察者效应

- George Neville-Neil

频繁轮询系统以获取信息很容易使其负担过重。 为了使其有用,你需要找到恰到好处的频率,这取决于手头的任务。

软件的软性层面
与技术领导者的对话:Erik Meijer

- Kate Matsudaira

Meijer 以其在软件开发方面的创新工作而闻名,他有很多工程和领导经验可以分享。 该领域的伟大领导者都渴望不断学习和对技术充满热情。

逃离奇点
副作用,置于中心!

- Pat Helland

软件开发人员所做的工作通常会导致副作用。 这些意外的后果可能只是信息过多——但也可能相关。

实践研究
- 服务欠缺社区的技术
- 个人制造

- Peter Bailis

寻找支持服务欠缺社区技术需求的方法是一个有价值的目标。 Tawanna Dillahunt 研究了为此所做的三项努力。 然后 Stefanie Mueller 和 Patrick Baudisch 研究了 3D 打印机的未来,特别是它们在非技术用户中创新的潜力。

2017年1月/2月刊 目录

January/February 2017 acmqueue


专题

从数学中赚钱
- Erik Meijer

机器学习模型与人工编码的不同之处在于,它们承认代码中的不确定性,而不是假设所有计算都是精确的。 概率编程是一种弥合两者之间差距的方法。

MongoDB 的 JavaScript Fuzzer
- Robert Guo

自制的 JavaScript fuzzer 已成为 MongoDB 最多产的错误查找工具。 它将找到不可避免的极端情况,这些情况会使其他代码测试方法失效。

大到不能倒
- Pat Helland, Simon Weaver 和 Ed Harris

在 Web 规模计算中,运行数十万台服务器,一切都必须简单、可预测,并设计为预期和接受故障——这与较小环境的方法截然不同。

调试心态
- Devon H. O'Dell

将解决问题的心理学应用于调试科学,只能帮助程序员在工作中变得更有效率和效力。


专栏/部门

Kode Vicious
强制异常处理

- George Neville-Neil

为什么非致命错误经常导致灾难性故障? 答案很可能与人性有关。

软件的软性层面
有人听你的吗?

- Kate Matsudaira

知道正确的人、正确的时间和正确的方式在工作中介绍你的想法会赋予它们生命。

实践研究
- 追踪和调试分布式系统
- 通过示例编程

- Peter Bailis

为了让我们了解分布式系统调试的最新技术,Peter Alvaro 着眼于处理大规模跟踪系统挑战的技术。 然后 Sumit Gulwani 着眼于 PBE(通过示例编程)的最新进展。 当你可以从现有示例中合成程序时,为什么要编写程序?

2016年11月/12月刊 目录

November/December 2016 acmqueue


专题

时间,但更快
- Theo Schlossnagle

时间可能是一种幻觉,但在计算中,它是一种必要的幻觉。 随着计算机变得更快,系统性能可以提高,但前提是它可以根据时间概念进行衡量。

异构计算:长期存在
- Mohamed Zahran

异构计算正迅速成为常态。为了充分利用它,需要在硬件和软件方面重新审视实践和技术。

未初始化读取
- Robert C. Seacord

通过考察对象初始化、不确定值和陷阱表示,表明了在当前C标准的拟议修订版中解决未初始化读取的必要性。

物理物品的普适动态认证
- Meng-Day (Mandel) Yu 和 Srinivas Devadas

硅基PUF(物理不可克隆函数)在物理物品的认证和安全方面具有优势,相较于其他更常见的方法,例如条形码、二维码、全息图和RFID标签。


专栏/部门

实践研究
- 加密货币、区块链和智能合约
- 深度学习硬件

在本期中,RfP 转向 Arvind Narayanan 和 Andrew Miller,介绍关于使用和应用加密货币的承诺和危险的研究。Song Han 研究了使用专用硬件部署深度神经网络的方法。

系统管理员须知
你的负载均衡用错了吗?

在当今以Web为中心、以服务为中心的环境中,使用负载均衡器来提高容量和改进弹性非常普遍。然而,大多数人却用错了方法。

Kode Vicious
不会递盐的棋手

计算机科学家可以让他们的AI机器把国际象棋下得非常好——但这真的是智能吗,还是仅仅是将统计学应用于非常大的数据集的一种方式?

2016年9月/10月刊目录

September/October 2016 acmqueue


专题

FAUCET:在企业中部署SDN
- Josh Bailey

借助 Faucet 和 OpenFlow 1.3 硬件,网络运营商可以向 SDN 迁移,利用 DevOps 实践在企业中快速部署功能。

BBR:基于拥塞的拥塞控制
- Neal Cardwell, Yuchung Cheng, C. Stephen Gunn, Van Jacobson, 和 Soheil Yeganeh

TCP 基于丢包的拥塞控制是降低互联网数据速度的罪魁祸首。解决方案可能是 BBR,谷歌基于瓶颈带宽和往返传播时间的新拥塞控制方法。

超越分布式事务的生命
- Pat Helland

在当今世界,只想解决业务问题的程序员会因规模问题而分心。存在使用模式构建成功的可扩展企业应用程序的潜力。

工业规模敏捷:从手工艺到工程
- Ivar Jacobson, Ian Spence, 和 Ed Seidewitz

随着软件在世界活动中变得越来越重要,软件开发是时候从手工艺转变为工程学科了。Essence 提供了一种语言和内核来帮助实现这种转变。


专栏/部门

实践研究
- Web 安全的实用信息流
- 分布式事务和作为物理传感器的网络

RfP 继续由 Irene Zhang 介绍三篇论文,这些论文反驳了分布式事务成本过高的看法。然后 Fadel Adib 深入探讨了以前幻想的世界,即使用计算机网络执行诸如透视墙壁等任务。

软件的软性层面
解决冲突

这不仅仅关乎输赢。如果你能很好地谈判和管理冲突,冲突可以是有益的。

Kode Vicious
软件开发的邪恶三位一体

如果将测试、文档和代码合并到一个文件中,你的项目会自我毁灭吗?

2016年7月/8月刊目录

July/August 2016 acmqueue


专题

• Marius Eriksen
大规模函数式编程

• Adam Morrison
多核程序中的可扩展同步


• 案例研究
React:Facebook 在编写 JavaScript 时的函数式转向


专栏/部门

• 实践研究
- Web 安全的实用信息流
- 移动 Web 计算的红色未来

• 逃离奇点
巴别塔的力量

• 系统管理员须知
线性搜索的 10 项优化

• 软件的软性一面
全新开始

• Kode Vicious
云卡尺

2016年5月/6月刊目录

May/Jun 2016 acmqueue


专题

• 微服务的隐藏红利
• 空闲时间垃圾回收调度
• 变化的动力:为什么反应式至关重要
• 使用容器对容器进行集群级日志记录


专栏/部门

• 实践研究
分布式共识和 NVM 对数据库管理系统的影响
• 逃离奇点
  SQL 的独特成功
• 软件的软性一面
  糟糕的软件架构是人的问题
• Kode Vicious
  噤声告密者

2016年3月/4月刊目录

Mar/Apr 2016 acmqueue


专题

• 调试分布式系统
• 火焰图
• 我应该将我的大数据上传还是运送到云端?


专栏/部门

• RfP 介绍 - 实践研究
• 逃离奇点
  站在巨人的分布式肩膀上
• 软件的软性一面
  我成为工程经理后才知道的九件事
• 系统管理员须知
  小批量原则
• Kode Vicious
  你想达到什么目的?

2016年1月/2月刊目录

Jan/Feb 2016 acmqueue


专题

• 工程师统计学
• 为什么逻辑时钟很简单
• Borg、Omega 和 Kubernetes
• 用例 2.0


专栏/部门

• 自行车棚
  更多加密意味着更少隐私
• 软件的软性一面
  授权的艺术
• Kode Vicious
  GNL 不是 Linux

2015年11月/12月刊目录

Nov/Dec 2015 acmqueue

专题

• 非易失性存储
• 时间是一种幻觉
• Schema.org:Web 上结构化数据的演变
• 不可变性改变一切
• 算法决策中的问责制
• 分布式系统的验证

专栏/部门

• 软件的软性一面
  自主与认可的悖论
• 系统管理员须知
  系统管理员如何贬低自己
• Kode Vicious
  代码囤积

2015年9月/10月刊目录

Sep/Oct 2015 acmqueue

专题

• 如何去识别你的数据
• 大规模失败:面对快速变化时的可靠性
• 使用 Carrefour 优化 NUMA 系统应用程序
• 组件化 Web
• 它可能有效

案例研究

• 专用全球网络:谷歌转向 SDN

专栏/部门

• 版本状态
  仍在寻找正确的问题
• 软件的软性一面
  精益软件开发——构建和交付两个版本
• 系统管理员须知
  自动化应该像钢铁侠,而不是奥创
• Kode Vicious
  选择一堆腌制补丁和 Zapped

© . All rights reserved.