I used to think that metaphor was just a literary technique, that it was something you could use to dress up some piece of creative writing. Reading George Lakoff’s Metaphors We Live By, though has changed my mind about that. I now see that metaphor is not just something we use in writing; it’s actually a powerful technique for structuring thought. We use metaphor when we are creating designs. We say that a class is like a factory, that an object is a kind of a thing.
Continue Reading »-
Metaphoric Problems in REST Systems -
Metaphoric Problems in REST Systems (audio) Metaphoric problems in rest systems by mtnygard
-
Time motivates architecture Let’s engage in a thought experiment for a moment. Suppose that software was trivial to create and only ever needed to be used once. Completely disposable. So, somebody comes to you and says, “I have a problem and I need you to solve it. I need a tool that will do blah-de-blah for a little while.” You could think of the software the way that a carpenter thinks of a jig for cutting a piece of wood on a table saw, or a metalworker thinks of creating a jig to drill a hole at the right angle and depth.
Continue Reading » -
Circuit Breaker in Scala FaKod (I think that translates as "The Fatalistic Coder"?) has written a nice Scala implementation of the Circuit Breaker pattern, and even better, has made it available on GitHub. Check out http://github.com/FaKod/Circuit-Breaker-for-Scala for the code. The Circuit Breaker can be mixed in to any type. See http://wiki.github.com/FaKod/Circuit-Breaker-for-Scala/ for an example of usage.
-
The Future of Software Development I’ve been asked to sit on a panel regarding the future of software development. This is always risky and makes me nervous, for two reasons. First, prediction is a notoriously low success-rate activity. Second, the people you always see making predictions like this are usually well past their “use by” date. Nevertheless, here are a collection of barely-related thoughts I have on that subject. Two obvious trends are cloud computing and mobile access.
Continue Reading » -
Failover: Messy Realities People who don't live in operations can carry some funny misconceptions in their heads. Some of my personal faves: Just add some servers! I want a report of every configuration setting that's different between production and QA! We're going to make sure this (outage) never happens again! I've recently been reminded of this during some discussions about disaster recovery. This topic seems to breed misconceptions.
Continue Reading » -
Life's Little Frustrations A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable. -Leslie Lamport On my way to QCon Tokyo and QCon China, I had some time to kill so I headed over to Delta's Skyclub lounge. I've been a member for a few years now. And why not? I mean, who could pass up tepid coffee, stale party snacks, and a TV permanently locked to CNN?
Continue Reading » -
Topics in Architecture I’m working on a syllabus for an extensive course on web architecture. This will be for experienced programmers looking to become architects. Like all of my work about architecture, this covers technology, business, and strategic aspects, so there’s an emphasis on creating high-velocity, competitive organizations. In general, I’m aiming for a mark that’s just behind the bleeding edge. So, I’m including several of the NoSQL persistence technologies, for example, but not including Erjang because it’s too early.
Continue Reading » -
"If the last one goes, we'll be up here all night!" There’s an old joke about a couple of folks on a plane who hear the captain successively announce that they’ve lost one, two, then three engines. Each time, he reassures the passengers that they’re OK, but will be progressively later to land. After the losing the third engine, one passenger tells the other, “If the last one goes, we’ll be up here all night!” It’s a remarkable aircraft that can fly on just one out of four engines.
Continue Reading » -
Coupling and Coevolution The mighty Mississippi River starts in Minnesota, at Lake Itasca. Every kid in Minnesota has to make the ritual pilgrimage to Itasca State Park at some point, where wading across North America’s longest river is a rite of passage. One of the very interesting things in Itasca State Park is a section of forest that is fenced off so that deer cannot enter it. It’s part of a decades-long experiment to see how forests are affected by browsing herbivores.
Continue Reading »