acm-header
Sign In

Communications of the ACM

Latest Practice



Communications Surveillance: Privacy and Security at Risk
From Communications of the ACM

Communications Surveillance: Privacy and Security at Risk

As the sophistication of wiretapping technology grows, so too do the risks it poses to our privacy and security.

A Conversation with David E. Shaw
From Communications of the ACM

A Conversation with David E. Shaw

Stanford professor Pat Hanrahan sits down with the noted hedge fund founder, computational biochemist, and (above all) computer scientist.

Probing Biomolecular Machines with Graphics Processors
From Communications of the ACM

Probing Biomolecular Machines with Graphics Processors

GPU acceleration and other computer performance increases will offer critical benefits to biomedical science.

Making Sense of Revision-Control Systems
From Communications of the ACM

Making Sense of Revision-Control Systems

All revision-control systems come with complicated sets of trade-offs. How do you find the best match between tool and team?

Monitoring and Control of Large Systems With MonALISA
From Communications of the ACM

Monitoring and Control of Large Systems With MonALISA

MonALISA developers describe how it works, the key design principles behind it, and the biggest technical challenges in building it.

Reveling in Constraints
From Communications of the ACM

Reveling in Constraints

The Google Web Toolkit is an end-run around Web development obstacles.

CTO Roundtable
From Communications of the ACM

CTO Roundtable: Cloud Computing

The age of cloud computing has begun. How can companies take advantage of the new opportunities it provides?

Browser Security
From Communications of the ACM

Browser Security: Lessons from Google Chrome

To shield the browser from attacks, Google Chrome developers eyed three key problems.

Fighting Physics: A Tough Battle
From Communications of the ACM

Fighting Physics: A Tough Battle

The laws of physics and the Internet's routing infrastructure affect performance in a big way.

The Five-Minute Rule 20 Years Later
From Communications of the ACM

The Five-Minute Rule 20 Years Later

Revisiting Gray and Putzolu's famous rule in the age of Flash.

Whither Sockets?
From Communications of the ACM

Whither Sockets?

The pervasive and long-lasting sockets API has remained largely unchanged since 1982. How have developers worked around its inherent limitations and what is the...

Network Front-End Processors, Yet Again
From Communications of the ACM

Network Front-End Processors, Yet Again

The history of NFE processors sheds light on the trade-offs involved in designing network stack software.

Hard-Disk Drives: The Good, the Bad, and the Ugly
From Communications of the ACM

Hard-Disk Drives: The Good, the Bad, and the Ugly

New drive technologies and increased capacities create new categories of failure modes that will influence system designs.

Debugging AJAX in Production
From Communications of the ACM

Debugging AJAX in Production

Lacking proper browser support, what steps can we take to debug production AJAX code?

API Design Matters
From Communications of the ACM

API Design Matters

It is very easy to create a bad API and rather difficult to create a good one.  Recent APIs implemented in modern programming languages make the same mistakes as...

Security in the Browser
From Communications of the ACM

Security in the Browser

Users with no security training download Web browsers from the Internet without precaution, and demand that they be fast and easy to use. What can be done to make ...

ORM in Dynamic Languages
From Communications of the ACM

ORM in Dynamic Languages

Dynamic languages offer a taste of object-relational mapping that eases application code.

Cybercrime 2.0
From Communications of the ACM

Cybercrime 2.0: When the Cloud Turns Dark

Web-based malware attacks are more insidious than ever. What can be done to stem the tide?

Purpose-Built Languages
From Communications of the ACM

Purpose-Built Languages

The ecosystem of purpose-built languages is a key part of systems development.

Erlang For Concurrent Programming
From Communications of the ACM

Erlang For Concurrent Programming

Designed for concurrency from the ground up, the Erlang language can be a valuable tool to help solve concurrent problems.
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account