End-to-end arguments in system design - Saltzer, Reed, & Clark 1984. A true classic from 30 years ago. From the abstract: This paper presents a design principle that helps guide placement of functions among the modules of a distributed computer system. The principle, called the end-to-end argument, suggests that functions placed at low levels of … Continue reading End-to-End Arguments in System Design
Month: November 2014
The Declarative Imperative: Experiences and Conjectures in Distributed Logic
The Declarative Imperative: Experiences and Conjectures in Distributed Logic - Hellerstein 2010. This paper is an extended version of an invited talk that Joe Hellerstein gave to the ACM PODS conference in 2010. The primary audience is therefore database researchers, but there's some good food for thought for the rest of us in there too. … Continue reading The Declarative Imperative: Experiences and Conjectures in Distributed Logic
An Evaluation of Amazon S3’s Consistency Behavior
Eventual Consistency: How soon is eventual? An Evaluation of Amazon S3's Consistency Behavior - Bermbach and Tai, 2011 In honour of AWS re:Invent this week, and since we've already covered the excellent Dynamo paper at #31 in this series, here's a paper looking at eventual consistency and the behaviour of S3. In this work we … Continue reading An Evaluation of Amazon S3’s Consistency Behavior
The Power of Interoperability: why objects are inevitable
The power of interoperability: why objects are inevitable - Aldrich 2013 This is a thought-provoking essay from 2013 in defence of objects and OOP. To many, the reason for objects' success is not obvious. Indeed, objects have been strongly criticised. ... While there has unquestionably been some hype about objects over the years, I have … Continue reading The Power of Interoperability: why objects are inevitable
Monads for functional programming
Monads for functional programming - Wadler, 1992 There's something about the word 'monad', and about the concept of monads, that people find off-putting. If this was a paper coming from an OO (e.g. Java) perspective it might have been titled something like "A principled approach for wrapper types" which doesn't sound nearly so daunting does … Continue reading Monads for functional programming
Highly Available Transactions: Virtues and Limitations
Highly Available Transactions: Virtues and Limitations - Bailis et. al 2014. Since yesterday we looked at the Boom Hierarchy, it seemed fitting today to take a selection from the BOOM project (no relation). Thus earning me the Basil Brush award ;) What a great paper this is, I have so many highlights and annotations on … Continue reading Highly Available Transactions: Virtues and Limitations
The Boom Hierarchy
The Boom Hierarchy - Bunkenberg In honour of the CodeMesh conference this week, and as recommended in a recent tweet by Eric Meijer, today's paper gives insight on some of our most fundamental data structures and the operations on them. The Boom Hierarchy is the family of data structures tree, list, bag, and set, to … Continue reading The Boom Hierarchy
Route planning in transportation networks
Route planning in transportation networks - Bast et al. Yesterday we looked at the CS problems behind startups using mobile workforces to build variations on the pick-up and delivery problem. Today I thought it would be fun to look at a related problem - journey planning. What's the tech behind city navigation and journey planning … Continue reading Route planning in transportation networks
Dynamic vehicle routing, pickup, and delivery problems
A double-header today: A review of dynamic vehicle routing problems - Pillac et al. 2012, and Dynamic pickup and delivery problems - Berbeglia et al. 2010 With the ubiquity of location-enabled smartphones we're increasingly seeing new startup businesses that take advantage of a mobile workforce to pick up and deliver goods (e.g. groceries, meals, parcels) … Continue reading Dynamic vehicle routing, pickup, and delivery problems
An unsupervised algorithm for person-name disambiguation on the web
An unsupervised algorithm for person-name disambiguation on the web - Delgado et al. 2014 Many people share the same name. When you search for a person by name on the web, the results you get back are page ranked without consideration to the individual they refer to. If you're searching for a person who shares … Continue reading An unsupervised algorithm for person-name disambiguation on the web