acm-header
Sign In

Communications of the ACM

Latest Practice



Proving the Correctness of Nonblocking Data Structures
From Communications of the ACM

Proving the Correctness of Nonblocking Data Structures

Nonblocking synchronization can yield astonishing results in terms of scalability and real-time response, but at the expense of verification state space.

There Is No Getting Around It
From Communications of the ACM

There Is No Getting Around It: You Are Building a Distributed System

Building a distributed system requires a methodical approach to requirements.

Real-Time GPU Audio
From Communications of the ACM

Real-Time GPU Audio

Real-time finite difference-based sound synthesis using graphics processors.

Discrimination in Online Ad Delivery
From Communications of the ACM

Discrimination in Online Ad Delivery

Google ads, black names and white names, racial discrimination, and click advertising.

Eventual Consistency Today
From Communications of the ACM

Eventual Consistency Today: Limitations, Extensions, and Beyond

How can applications be built on eventually consistent infrastructure given no guarantee of safety?

A File System All Its Own
From Communications of the ACM

A File System All Its Own

Flash memory has come a long way and it is time for software to catch up.

The Evolution of Web Development For Mobile Devices
From Communications of the ACM

The Evolution of Web Development For Mobile Devices

Building websites that perform well on mobile devices remains a challenge.

How Fast Is Your Website?
From Communications of the ACM

How Fast Is Your Website?

Website performance data has never been more readily available.

Hazy: Making It Easier to Build and Maintain Big-Data Analytics
From Communications of the ACM

Hazy: Making It Easier to Build and Maintain Big-Data Analytics

Racing to unleash the full potential of big data with the latest statistical and machine-learning techniques.

Making the Mobile Web Faster
From Communications of the ACM

Making the Mobile Web Faster

Mobile performance issues? Fix the back end, not just the client.

Thinking Methodically About Performance
From Communications of the ACM

Thinking Methodically About Performance

The USE method addresses shortcomings in other commonly used methodologies.

Browser Security
From Communications of the ACM

Browser Security: Appearances Can Be Deceiving

A discussion with Jeremiah Grossman, Ben Livshits, Rebecca Bace, and George Neville-Neil

The Web Won't Be Safe or Secure Until We Break It
From Communications of the ACM

The Web Won't Be Safe or Secure Until We Break It

Unless you have taken very particular precautions, assume every website you visit knows exactly who you are.

The Essence of Software Engineering
From Communications of the ACM

The Essence of Software Engineering: The SEMAT Kernel

A thinking framework in the form of an actionable kernel.

Sender-Side Buffers and the Case For Multimedia Adaptation
From Communications of the ACM

Sender-Side Buffers and the Case For Multimedia Adaptation

A proposal to improve the performance and availability of streaming video and other time-sensitive media.

Anatomy of a Solid-State Drive
From Communications of the ACM

Anatomy of a Solid-State Drive

While the ubiquitous SSD shares many features with the hard-disk drive, under the surface they are completely different.

Disks from the Perspective of a File System
From Communications of the ACM

Disks from the Perspective of a File System

Disks lie. And the controllers that run them are partners in crime.

Toward Higher Precision
From Communications of the ACM

Toward Higher Precision

An introduction to PTP and its significance to NTP practitioners.

Fault Injection in Production
From Communications of the ACM

Fault Injection in Production

Making the case for resilience testing.

A Generation Lost in the Bazaar
From Communications of the ACM

A Generation Lost in the Bazaar

Quality happens only when someone is responsible for it.
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account