New: Check out the ACMQueue subreddit

New: Translations. ACM Q em Língua Portuguesa

Latest Queue Content     

Development


Computer Architecture

There's No Such Thing
as a General-purpose Processor

  David Chisnall

And the belief in such a device is harmful.


There is an increasing trend in computer architecture to categorize processors and accelerators as "general purpose." Of the papers published at this year's International Symposium on Computer Architecture (ISCA 2014), nine out of 45 explicitly referred to general-purpose processors; one additionally referred to general-purpose FPGAs (field-programmable gate arrays), and another referred to general-purpose MIMD (multiple instruction, multiple data) supercomputers, stretching the definition to the breaking point. This article presents the argument that there is no such thing as a truly general-purpose processor and that the belief in such a device is harmful.



Development


Development

The Responsive Enterprise: Embracing the Hacker Way

  Erik Meijer and Vikram Kapoor

Soon every company will be a software company.


As of July 2014, Facebook, founded in 2004, is in the top 20 of the most valuable companies in the S&P 500, putting the 10-year-old software company in the same league as IBM, Oracle, and Coca-Cola. Of the top five fastest-growing companies with regard to market capitalization in 2014 (table 1), three are software companies: Apple, Google, and Microsoft (in fact, one could argue that Intel is also driven by software, making it four out of five).



Education


Education

Evolution of the Product Manager

  Ellen Chisa

Better education needed to develop the discipline


Software practitioners know that product management is a key piece of software development. Product managers talk to users to help figure out what to build, define requirements, and write functional specifications. They work closely with engineers throughout the process of building software. They serve as a sounding board for ideas, help balance the schedule when technical challenges occur - and push back to executive teams when technical revisions are needed. Product managers are involved from before the first code is written, until after it goes out the door.


Related:
Getting What You Measure
Best Practice (BPM)
Outsourcing: Devising a Game Plan



Privacy, Anonymity, and Big Data
in the Social Sciences

  Jon P. Daries, Justin Reich, Jim Waldo, Elise M. Young, Jonathan Whittinghill, Daniel Thomas Seaton, Andrew Dean Ho, Isaac Chuang

Quality social science research and the privacy of human subjects requires trust.


Open data has tremendous potential for science, but, in human subjects research, there is a tension between privacy and releasing high-quality open data. Federal law governing student privacy and the release of student records suggests that anonymizing student data protects student privacy. Guided by this standard, we de-identified and released a data set from 16 MOOCs (massive open online courses) from MITx and HarvardX on the edX platform. In this article, we show that these and other de-identification procedures necessitate changes to data sets that threaten replication and extension of baseline analyses. To balance student privacy and the benefits of open data, we suggest focusing on protecting privacy without anonymizing data by instead expanding policies that compel researchers to uphold the privacy of the subjects in open data sets. If we want to have high-quality social science research and also protect the privacy of human subjects, we must eventually have trust in researchers. Otherwise, we'll always have the strict tradeoff between anonymity and science illustrated here.


Related:
Four Billion Little Brothers?: Privacy, mobile phones, and ubiquitous data collection
Communications Surveillance: Privacy and Security at Risk
Modeling People and Places with Internet Photo Collections



Undergraduate Software Engineering: Addressing the Needs of Professional Software Development

  Michael J. Lutz, J. Fernando Naveda, James R. Vallino

Addressing the Needs of Professional Software Development


In the fall semester of 1996 RIT (Rochester Institute of Technology) launched the first undergraduate software engineering program in the United States. The culmination of five years of planning, development, and review, the program was designed from the outset to prepare graduates for professional positions in commercial and industrial software development.


Related:
Fun and Games: Multi-Language Development
Pride and Prejudice: (The Vasa)
A Conversation with John Hennessy and David Patterson



Concurrency


Concurrency

Productivity in Parallel Programming:
A Decade of Progress

  John T. Richards
  Jonathan Brezin
  Calvin B. Swart
  Christine A. Halverson

Looking at the design and benefits of X10


In 2002 DARPA (Defense Advanced Research Projects Agency) launched a major initiative in HPCS (high-productivity computing systems). The program was motivated by the belief that the utilization of the coming generation of parallel machines was gated by the difficulty of writing, debugging, tuning, and maintaining software at peta scale.


Related:
Unlocking Concurrency
The Ideal HPC Programming Language
Software Transactional Memory: Why is it only a Research Toy?



Columns: Kode Vicious


Port Squatting

  George V. Neville-Neil

Don't irk your local sysadmin


Dear KV, A few years ago you upbraided some developers for not following the correct process when requesting a reserved network port from IETF (Internet Engineering Task Force). While I get that squatting a used port is poor practice, I wonder if you, yourself, have ever tried to get IETF to allocate a port. We recently went through this with a new protocol on an open-source project, and it was a nontrivial and frustrating exercise. While I wouldn't encourage your readers to squat ports, I can see why they might just look for unallocated ports on their own and simply start using those, with the expectation that if their protocols proved popular, they would be granted the allocations later.



Columns: Cerf's Up


ACM and the Professional Programmer

  Vinton G. Cerf

How do you, the reader, stay informed about research that influences your work?


In the very early days of computing, professional programming was nearly synonymous with academic research because computers tended to be devices that existed only or largely in academic settings. As computers became commercially available, they began to be found in private-sector, business environments. The 1950s and 1960s brought computing in the form of automation and data processing to the private sector, and along with this came a growing community of professionals whose focus on computing was pragmatic and production-oriented. Computing was (and still is) evolving, and the academic community continued to explore new software and hardware concepts and constructs. New languages were invented (and are still being invented) to try new ideas in the formulation of programs. The introduction of time sharing created new territory to explore. In today's world cloud computing is the new time sharing, more or less.



Columns: The Bikeshed


Quality Software Costs Money - Heartbleed Was Free

  Poul-Henning Kamp

How to generate funding for FOSS


The world runs on free and open-source software, FOSS for short, and to some degree it has predictably infiltrated just about any software-based product anywhere in the world.



Videos

Upcoming
ACM Learning Webinars