On the 'naturalness' of buggy code - Ray, Hellendoorn, et al. ICSE 2016 Last week we looked at a simpler approach to building static code checkers that by understanding less about the overall code structure and just focusing in on the things that really mattered was able to produce competitive results from very small checker … Continue reading On the “naturalness” of buggy code
Tag: Software Engineering
Mostly posts relating to software design and architecture.
From Aristotle to Ringelmann
From Aristotle to Ringelmann: A large-scale analysis of team productivity and coordination in open-source software projects - Scholtes et al. ICSE 2016 A slightly different flavour of papers this week as we dip into the ICSE 2016 conference proceedings. We kick things off with a study looking at the effect of development team size on … Continue reading From Aristotle to Ringelmann
How to build static checking systems using orders of magnitude less code
How to build static checking systems using orders of magnitude less code Brown et al., ASPLOS '16 You start with something simple. Then over time things get more and more complex and before you know it, it's hard to know what's going on. Today's paper is a delightful reminder of the power of stripping back … Continue reading How to build static checking systems using orders of magnitude less code
Why do record/replay tests of web applications break?
Why do Record/Replay Tests of Web Applications Break? - Hammoudi et al. ICST '16 Your web application regression tests created using record/replay tools are fragile and keep breaking. Hammoudi et al. set out to find out why. If we knew that, perhaps we could design mechanisms to automatically repair broken tests, or to build more … Continue reading Why do record/replay tests of web applications break?
Not-quite-so-broken TLS: lessons in re-engineering a security protocol specification and implementation
Not-quite-so-broken TLS: lessons in re-engineering a security protocol specification and implementation - Kaloper-Meršinjak et al. 2015 Update: fixed broken paper link above. On the surface this is a paper about a TLS implementation, but the really interesting story to me is the attempt to 'do it right,' and the techniques and considerations involved in that … Continue reading Not-quite-so-broken TLS: lessons in re-engineering a security protocol specification and implementation
How Complex Systems Fail
How Complex Systems Fail - Cook 2000 This is a wonderfully short and easy to read paper looking at how complex systems fail - it's written by a Doctor (MD) in the context of systems of patient care, but that makes it all the more fun to translate the lessons into complex IT systems, including … Continue reading How Complex Systems Fail
Experience with Rules-Based Programming for Distributed Concurrent Fault-Tolerant Code
Experience with Rules-Based Programming for Distributed, Concurrent, Fault-Tolerant Code - Stutsman et al. 2015 As we saw in yesterday's paper, the authors of RAMCloud settled on a very effective design pattern for writing distributed, concurrent, fault-tolerant (DCFT) modules within their system. They call this pattern 'rules-based programming' - a collection of (condition,action) pairs that can … Continue reading Experience with Rules-Based Programming for Distributed Concurrent Fault-Tolerant Code
Reactive Vega: A Streaming Dataflow Architecture for Declarative Interactive Visualization
Reactive Vega: A Streaming Dataflow Architecture for Declarative Interactive Visualization - Satyanarayan et al. 2015 Today's paper choice combines Event-driven FRP (E-FRP) with dataflow and stream management techniques from the database community to implement declarative interactive visualisations on top of the existing Vega declarative visualisation grammar and supporting runtime. As a good example of what's … Continue reading Reactive Vega: A Streaming Dataflow Architecture for Declarative Interactive Visualization
We Have a DREAM: Distributed Reactive Programming with Consistency Guarantees
We Have a DREAM: Distributed Reactive Programming with Consistency Guarantees - Magara & Salvaneschi 2014 Earlier this week we saw in "A Survey on Reactive Programming" that (at least as of 2012) distributing reactive programs remained an active research challenge. Today's paper choice takes on that challenge and examines some consistency models for distributed reactive … Continue reading We Have a DREAM: Distributed Reactive Programming with Consistency Guarantees
Functional Reactive Animation
Functional Reactive Animation - Elliott & Hudak 1997 This is the paper widely acknowledged to have given birth to (Functional) Reactive Programming or FRP. The challenge that Elliott and Hudak faced was to provide an elegant and expressive way to specify animations without resorting to tedious frame-by-frame constructions. A key insight is that animations are … Continue reading Functional Reactive Animation