The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors

The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors - Clements et al. 2013 The way you design your interface (API) has a significant impact on the scalability you can achieve with any implementation. Clements et al. define the Scalable Commutativity Rule - which will look familiar to those who study distributed systems - ... Continue Reading

Out of the Tar Pit

Out of the Tar Pit - Moseley & Marks 2006 This is the final Desert Island Paper choice from Jonas Bonér, and a great way to round out the week. 'Out of the Tar Pit' was the 10th paper that I covered in the #themorningpaper series, but at that time I was only giving highlights ... Continue Reading

Compiler Error Notifications Revisited

Compiler Error Notifications Revisited: An interaction-first approach for helping developers more effectively comprehend and resolve error notifications - Barik et al 2014 A short and easy to read paper this morning picking up on the Debugging Reinvented theme of challenging the tools we use everyday. Error notifications and their resolutions, as presented by modern IDEs, ... Continue Reading

Debugging reinvented

Debugging reinvented: Asking and answering why and why-not questions about program behavior - Ko and Myers 2008 Today's choice is another great example of the value of constantly challenging the status quo and asking if there might be a better way. In more than half a century of research on debuggers, there have been countless ... Continue Reading

Software Aging

Software Aging - Parnas 1994 This paper contains one of my all-time favourite passages, and is a timeless discussion on why software ages, and what we can do to slow the aging process. Programs, like people, get old. We can't prevent aging, but we can understand its causes, take steps to limit its effects, temporarily ... Continue Reading