acm-header
Sign In

Communications of the ACM

Latest Practice



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.

The Pathologies of Big Data
From Communications of the ACM

The Pathologies of Big Data

Scale up your datasets enough and your apps come undone. What are the typical problems and where do the bottlenecks surface?

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.

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.

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?

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.

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.

Better Scripts, Better Games
From Communications of the ACM

Better Scripts, Better Games

Smarter, more powerful scripting languages will improve game performance while making gameplay development more efficient.

Eventually Consistent
From Communications of the ACM

Eventually Consistent

Building reliable distributed systems at a worldwide scale demands trade-offs between consistency and availability.

CTO Virtualization Roundtable
From Communications of the ACM

CTO Virtualization Roundtable: Part II

When it comes to virtualization platforms, experts say focus first on the services to be delivered.

Real-World Concurrency
From Communications of the ACM

Real-World Concurrency

What does the proliferation of concurrency mean for the software you develop?

CTO Roundtable on Virtualization
From Communications of the ACM

CTO Roundtable on Virtualization: Part I

Virtualization technology is hot again, but for the right reasons?

Document Design Matters
From Communications of the ACM

Document Design Matters

How do we apply the concept of resource orientation by designing representations to support interactions?

From Communications of the ACM

Powering Down

Smart power management is all about doing more with the resources we have.

From Communications of the ACM

CTO Storage Roundtable, Part Two

Leaders in the storage industry ponder upcoming technologies and trends.

From Communications of the ACM

CTO Storage Roundtable: Part I

Leaders in the storage world offer valuable advice for making more effective architecture and technology decisions.
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account