An evening of talks featuring Tom Hume (http://www.tomhume.org) talking about super-optimisers, James Burt (http://www.orbific.com/weblog) on software maintenance and Nick Doyle from Crunch (http://www.crunch.co.uk) speaking on Continuous Integration. Drinks will be provided.
Nick Doyle (http://www.crunch.co.uk): The Cost of Continuous Integration and Delivery
Most developers are familiar with the terms continuous integration and continuous delivery. We automate test builds using tools such as Jenkins to identify problems relating to new code as early as possible.
But for modern web applications, it comes at a price. As the number of automated tests – particularly browser-based tests – gets into the thousands, the feedback loop slows right down. This can in turn lead to developer apathy and a loss of interest in their responsibility to maintain a stable build. Worse still, delivery is put at risk because it's harder to tell whether you have a build which is deployable.
How we can keep the feedback loop as fast as possible, without necessarily doing the obvious: throwing lots of money at it and breaking the bank in hardware costs?
Tom Hume (http://www.tomhume.org): Hunting for truly optimal code
Computer scientists use the term "optimisation" to refer to improving code, rather than achieving true optimality. In 1989 Henry Massalin proposed the superoptimiser, a program which would perform an exhaustive search for the shortest possible program which calculates a given function.
Massalin and others have built superoptimisers for specific hardware architectures . For my MSc dissertation I've spent the last few months seeing if superoptimisation is useful for virtual machines - specifically, the JVM. I'll go into a bit more history, outline what I've done, and talk about what I've discovered.
James Burt (http://www.orbific.com/weblog): The Wonderful World of Software Maintenance!
Why is one of the most important aspects of software one of the least discussed? Maintenance is one of the most common tasks for developers but people prefer to talk about exciting new technologies or tell war stories about death marches and feats of extreme coding. It’s time that software maintenance got the appreciation it deserved as a challenging, rewarding and fulfilling role for programmers. We’ll look at what software maintenance involves, why heroes are bad, and some guidelines for handling software as it enters middle age.