acm-header
Sign In

Communications of the ACM

Latest Practice



The Hyperdimensional Tar Pit
From Communications of the ACM

The Hyperdimensional Tar Pit

Make a guess, double the number, and then move to the next larger unit of time.

The Robustness Principle Reconsidered
From Communications of the ACM

The Robustness Principle Reconsidered

In 1981, Jon Postel formulated the Robustness Principle. Although described for implementations of TCP, it was quickly accepted as a...

Computing Without Processors
From Communications of the ACM

Computing Without Processors

Heterogeneous systems allow us to target our programming to the appropriate environment.

The One-Second War
From Communications of the ACM

The One-Second War

Finding a lasting solution to the leap seconds problem has become increasingly urgent.

A Co-Relational Model of Data For Large Shared Data Banks
From Communications of the ACM

A Co-Relational Model of Data For Large Shared Data Banks

Contrary to popular belief, SQL and noSQL are really just two sides of the same coin.

Returning Control to the Programmer: SIMD Intrinsics For Virtual Machines
From Communications of the ACM

Returning Control to the Programmer: SIMD Intrinsics For Virtual Machines

Exposing SIMD units within interpreted languages could simplify programs and unleash floods of untapped processor power.

A Conversation with Ed Catmull
From Communications of the ACM

A Conversation with Ed Catmull

Pixar's president Ed Catmull sits down with Stanford professor (and former Pixar-ian) Pat Hanrahan to reflect on the blending of art and technology.

Sir, Please Step Away from the ASR-33!
From Communications of the ACM

Sir, Please Step Away from the ASR-33!

To move forward with programming languages we must first break free from the tyranny of ASCII.

Tackling Architectural Complexity with Modeling
From Communications of the ACM

Tackling Architectural Complexity with Modeling

Component models can help diagnose architectural problems in both new and existing systems.

Thinking Clearly About Performance, Part 2
From Communications of the ACM

Thinking Clearly About Performance, Part 2

More important principles to keep in mind when designing high-performance software.

Photoshop Scalability: Keeping It Simple
From Communications of the ACM

Photoshop Scalability: Keeping It Simple

Clem Cole and Russell Williams discuss Photoshop's long history with parallelism, and what is now seen as the chief challenge.

Thinking Clearly About Performance, Part 1
From Communications of the ACM

Thinking Clearly About Performance, Part 1

Improving the performance of complex software is difficult, but understanding some fundamental principles can make it easier.

Seven Principles For Selecting Software Packages
From Communications of the ACM

Seven Principles For Selecting Software Packages

Everything you always wanted to know but were afraid to ask about the decision-making process.

You're Doing It Wrong
From Communications of the ACM

You're Doing It Wrong

Think you've mastered the art of server performance? Think again.

Visualizing System Latency
From Communications of the ACM

Visualizing System Latency

Heat maps are a unique and powerful way to visualize latency data. Explaining the results, however, is an ongoing challenge.

The Ideal HPC Programming Language
From Communications of the ACM

The Ideal HPC Programming Language

Maybe it's Fortran. Or maybe it just doesn't matter.

A Tour Through the Visualization Zoo
From Communications of the ACM

A Tour Through the Visualization Zoo

A survey of powerful visualization techniques, from the obvious to the obscure.

Simplicity Betrayed
From Communications of the ACM

Simplicity Betrayed

Emulating a video system shows how even a simple interface can be more complex—and capable—than it appears.

Why Cloud Computing Will Never Be Free
From Communications of the ACM

Why Cloud Computing Will Never Be Free

The competition among cloud providers may drive prices downward, but at what cost?

From Communications of the ACM

Enhanced Debugging With Traces

An essential technique used in emulator development is a useful addition to any programmer's toolbox.
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account