サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Switch 2
queue.acm.org
May 24, 2023 Volume 21, issue 2 PDF You Don't know Jack about Application Performance Knowing whether you're doomed to fail is important when starting a project. David Collier-Brown You can't just measure a program's performance, Dave. You have to run a benchmark! That's what I hear all the time when I ask about the performance of some program. Well, it's only sort of true. If you want to know at
May 3, 2023 Volume 21, issue 2 PDF DevEx: What Actually Drives Productivity The developer-centric approach to measuring and improving productivity. Abi Noda, DX Margaret-Anne Storey, University of Victoria Nicole Forsgren, Microsoft Research Michaela Greiler, DX Engineering leaders have long sought to improve the productivity of their developers, but knowing how to measure or even define developer
May 12, 2021 Volume 19, issue 2 PDF Biases in AI Systems A survey for practitioners Ramya Srinivasan and Ajay Chander A child wearing sunglasses is labeled as a "failure, loser, nonstarter, unsuccessful person." This is just one of the many systemic biases exposed by ImageNet Roulette, an art project that applies labels to user-submitted photos by sourcing its identification system from the origin
March 6, 2021 Volume 19, issue 1 PDF The SPACE of Developer Productivity There's more to it than you think. Nicole Forsgren, GitHub Margaret-Anne Storey, University of Victoria Chandra Maddila, Thomas Zimmermann, Brian Houck, and Jenna Butler, Microsoft Research Developer productivity is complex and nuanced, with important implications for software development teams. A clear understanding of defin
June 6, 2020 Volume 18, issue 2 PDF Debugging Incidents in Google's Distributed Systems How experts debug production issues in complex distributed systems Charisma Chan and Beth Cooper Google has published two books about SRE (Site Reliability Engineering) principles, best practices, and practical applications.1,2 In the heat of the moment when handling a production incident, however, a team's act
May 17, 2020 Volume 18, issue 2 PDF Dark Patterns: Past, Present, and Future The evolution of tricky user interfaces Arvind Narayanan, Arunesh Mathur, Marshini Chetty, and Mihir Kshirsagar Dark patterns are user interfaces that benefit an online service by leading users into making decisions they might not otherwise make. Some dark patterns deceive users while others covertly manipulate or coerce
November 12, 2019 Volume 17, issue 5 PDF Optimizations in C++ Compilers A practical journey Matt Godbolt Compilers are a necessary technology to turn high-level, easier-to-write code into efficient machine code for computers to execute. Their sophistication at doing this is often overlooked. You may spend a lot of time carefully considering algorithms and fighting error messages but perhaps not en
July 8, 2019 Volume 17, issue 2 PDF Surviving Software Dependencies Software reuse is finally here but comes with risks. Russ Cox For decades, discussion of software reuse was far more common than actual software reuse. Today, the situation is reversed: developers reuse software written by others every day, in the form of software dependencies, and the situation goes mostly unexamined. My backgrou
March 24, 2019 Volume 17, issue 1 PDF Online Event Processing Achieving consistency where distributed transactions have failed Martin Kleppmann, Alastair R. Beresford, and Boerge Svingen For almost half a century, ACID transactions (satisfying the properties of atomicity, consistency, isolation, and durability) have been the abstraction of choice for ensuring consistency in data-storage systems. T
October 4, 2018 Volume 16, issue 4 PDF Why SRE Documents Matter How documentation enables SRE teams to manage new and existing services Shylaja Nukala and Vivek Rau SRE (site reliability engineering) is a job function, a mindset, and a set of engineering approaches for making web products and services run reliably. SREs operate at the intersection of software development and systems engineering to
The Soft Side of Software September 18, 2018 Volume 16, issue 4 PDF How to Get Things Done When You Don't Feel Like It Five strategies for pushing through Kate Matsudaira Have you ever come into work, sat down at your computer to begin a project, opened your editor, and then just stared at the screen? This happens to me all the time, so I understand your struggle. Even if you love your job, you do
May 14, 2018 Volume 16, issue 2 PDF Algorithms Behind Modern Storage Systems Different uses for read-optimized B-trees and write-optimized LSM-trees Alex Petrov The amounts of data processed by applications are constantly growing. With this growth, scaling storage becomes more challenging. Every database system has its own tradeoffs. Understanding them is crucial, as it helps in selecting the righ
April 30, 2018 Volume 16, issue 2 PDF C Is Not a Low-level Language Your computer is not a fast PDP-11. David Chisnall In the wake of the recent Meltdown and Spectre vulnerabilities, it's worth spending some time looking at root causes. Both of these vulnerabilities involved processors speculatively executing instructions past some kind of access check and allowing the attacker to observe the resu
February 5, 2018 Volume 15, issue 6 PDF Containers Will Not Fix Your Broken Culture (and Other Hard Truths) Complex socio-technical systems are hard; film at 11. Bridget Kromhout We focus so often on technical anti-patterns, neglecting similar problems inside our social structures. Spoiler alert: the solutions to many difficulties that seem technical can be found by examining our interactions with
May 17, 2017 Volume 15, issue 2 PDF The Calculus of Service Availability You're only as available as the sum of your dependencies. Ben Treynor, Mike Dahlin, Vivek Rau, Betsy Beyer As detailed in Site Reliability Engineering: How Google Runs Production Systems1 (hereafter referred to as the SRE book), Google products and services seek high-velocity feature development while maintaining aggressive S
March 22, 2017 Volume 15, issue 1 PDF The Debugging Mindset Understanding the psychology of learning strategies leads to effective problem-solving skills. Devon H. O'Dell Software developers spend 35-50 percent of their time validating and debugging software.1 The cost of debugging, testing, and verification is estimated to account for 50-75 percent of the total budget of software development proj
February 22, 2017 Volume 15, issue 1 PDF Making Money Using Math Modern applications are increasingly using probabilistic machine-learned models. Erik Meijer "If Google were created from scratch today, much of it would be learned, not coded." —Jeff Dean, Google Senior Fellow, Systems and Infrastructure Group Machine learning, or ML, is all the rage today, and there are good reasons for that. Model
December 12, 2016 Volume 14, issue 5 PDF Life Beyond Distributed Transactions An apostate's opinion Pat Helland This is an updated and abbreviated version of a paper by the same name first published in CIDR (Conference on Innovative Database Research) 2007. Transactions are amazingly powerful mechanisms, and I've spent the majority of my almost 40-year career working on them. In 1982, I first work
December 1, 2016 Volume 14, issue 5 PDF BBR: Congestion-Based Congestion Control Measuring bottleneck bandwidth and round-trip propagation time Neal Cardwell, Yuchung Cheng, C. Stephen Gunn, Soheil Hassas Yeganeh, Van Jacobson By all accounts, today's Internet is not moving data as well as it should. Most of the world's cellular users experience delays of seconds to minutes; public Wi-Fi in airpor
April 20, 2016 Volume 14, issue 2 PDF The Flame Graph This visualization of software execution is a new necessity for performance profiling and debugging. Brendan Gregg, Netflix An everyday problem in our industry is understanding how software is consuming resources, particularly CPUs. What exactly is consuming how much, and how did this change since the last software version? These questions can
April 12, 2016 Volume 14, issue 1 PDF Why Logical Clocks are Easy Sometimes all you need is the right language. Carlos Baquero and Nuno Preguiça Any computing system can be described as executing sequences of actions, with an action being any relevant change in the state of the system. For example, reading a file to memory, modifying the contents of the file in memory, or writing the new contents
March 2, 2016 Volume 14, issue 1 PDF Borg, Omega, and Kubernetes Lessons learned from three container-management systems over a decade Brendan Burns, Brian Grant, David Oppenheimer, Eric Brewer, and John Wilkes, Google Inc. Though widespread interest in software containers is a relatively recent phenomenon, at Google we have been managing Linux containers at scale for more than ten years and built
January 20, 2016 Volume 13, issue 9 PDF Immutability Changes Everything We need it, we can afford it, and the time is now Pat Helland There is an inexorable trend toward storing and sending immutable data. We need immutability to coordinate at a distance, and we can afford immutability as storage gets cheaper. This article is an amuse-bouche sampling the repeated patterns of computing that leverag
January 12, 2016 Volume 13, issue 9 PDF Time is an illusion Lunchtime doubly so. —Ford Prefect to Arthur Dent in The Hitchhiker's Guide to the Galaxy, by Douglas Adams George Neville-Neil One of the more surprising things about digital systems—and, in particular, modern computers—is how poorly they keep time. When most programs ran on a single system this was not a significant issue for the majori
January 5, 2016 Volume 13, issue 9 PDF Non-volatile Storage Implications of the Datacenter's Shifting Center Mihir Nanavati, Malte Schwarzkopf, Jake Wires, Andrew Warfield For the entire careers of most practicing computer scientists, a fundamental observation has consistently held true: CPUs are significantly more performant and more expensive than I/O devices. The fact that CPUs can process data
December 15, 2015 Volume 13, issue 9 PDF Schema.org: Evolution of Structured Data on the Web Big data makes common schemas even more necessary. R.V. Guha, Google Dan Brickley, Google Steve Macbeth, Microsoft Separation between content and presentation has always been one of the important design aspects of the Web. Historically, however, even though most Web sites were driven off structured databas
December 11, 2015 Volume 13, issue 8 PDF A Purpose-built Global Network: Google's Move to SDN A discussion with Amin Vahdat, David Clark, and Jennifer Rexford Everything about Google is at scale, of course—a market cap of legendary proportions, an unrivaled talent pool, enough intellectual property to keep armies of attorneys in Guccis for life, and, oh yeah, a private WAN (wide area network) bigg
October 27, 2015 Volume 13, issue 8 PDF Fail at Scale Reliability in the face of rapid change Ben Maurer, Facebook Failure is part of engineering any large-scale system. One of Facebook's cultural values is embracing failure. This can be seen in the posters hung around the walls of our Menlo Park headquarters: "What Would You Do If You Weren't Afraid?" and "Fortune Favors the Bold." To keep Facebo
July 1, 2015 Volume 13, issue 7 PDF Testing a Distributed System Testing a distributed system can be trying even under the best of circumstances. Philip Maddox Distributed systems can be especially difficult to program, for a variety of reasons. They can be difficult to design, difficult to manage, and, above all, difficult to test. Testing a normal system can be trying even under the best of circ
次のページ
このページを最初にブックマークしてみませんか?
『ACMQ Site - ACM Queue』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く