04/2011
vol. 54 no. 04
Practice
Contributed Articles
Review Articles
60 Design Principles for
Visual Communication
How to identify, instantiate, and
evaluate domain-specific design
principles for creating more
effective visualizations.
By Maneesh Agrawala, Wilmot Li,
and Floraine Berthouzoz
86 Crowdsourcing Systems
on the World-Wide Web
The practice of crowdsourcing
is transforming the Web and
giving rise to a new field.
By AnHai Doan, Raghu Ramakrishnan,
and Alon Y. Halevy
Achievements and Challenges
in Software Reverse Engineering
Deeply understanding the intricacies
of software must always come before
any considerations for modifying it.
By Gerardo Canfora, Massimiliano
Di Penta, and Luigi Cerulo
38 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.
By Jonathan Parri, Daniel Shapiro,
Miodrag Bolic, and Voicu Groza
70 Why STM Can Be More
Than A Research Toy
Despite earlier claims, Software
Transactional Memory outperforms
sequential code.
By Aleksandar Dragojević,
Pascal Felber, Vincent Gramoli,
and Rachid Guerraoui
Research Highlights
44 Successful Strategies
for IPv6 Rollouts. Really.
Knowing where to begin
is half the battle.
By Thomas A. Limoncelli,
With an introduction by Vinton G. Cerf
78 Reflecting on the DARPA
Red Balloon Challenge
Finding 10 balloons across
the U.S. illustrates how the Internet
has changed the way we solve
highly distributed problems.
By John C. Tang, Manuel Cebrian,
Nicklaus A. Giacobe,
Hyun-Woo Kim, Taemie Kim,
and Douglas “Beaker” Wickert
98 Technical Perspective
Liability Issues in
Software Engineering
By Daniel M. Berry
49 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.
By Erik Meijer and Gavin Bierman
Emergency! Web 2.0 to the Rescue!
Emergent serendipity fosters
volunteerism driven by creative
problem solving, not simply
following directions.
By Ann Majchrzak
and Philip H.B. More
99 Liability Issues in
Software Engineering:
The use of formal methods
to reduce legal uncertainties
By Daniel Le Métayer,
Manuel Maarek, Eduardo Mazza,
Marie-Laure Potet, Stéphane Frénot,
Valérie Viet Triem Tong,
Nicolas Craipeau, and Ronan Hardouin
A Research Doctorate
for Computing Professionals
Looking back on the first decade of
the Doctor of Professional Studies
in Computing—an ambitious
doctoral track for people who want to
do research in an industrial setting.
By Fred Grossman, Charles Tappert,
Joe Bergin, and Susan M. Merritt
107 Technical Perspective
Patterns Hidden from
Simple Algorithms
By Madhu Sudan
Articles’ development led by
queue.acm.org
108 Poly-logarithmic Independence
Fools Bounded-Depth
Boolean Circuits
By Mark Braverman
IllustratIon by andrew clark
Association for Computing Machinery
Advancing Computing as a Science & Profession