Jan. 12th, 2010

jducoeur: (Default)
I am, of course, way behind in reading my tech blogs. So I just got up to a post last month in Tim Bray's ongoing blog, in which he did a link clearing. It's got a lot of neat stuff, so I'll signal-boost a few of the cooler-looking ones.

I hadn't previously come across the Maglev project, but it looks quite intriguing. Basically, it's a VM for Ruby with built-in persistence -- even what looks like a simple Transactions framework. The notion appears to be that, instead of having to go through an ORM level, with the usual friction associated with that, it just lets you declare objects persistent in a fairly native way. I can see lots of issues with the idea, but it's promising: I look forward to seeing where it goes.

This article isn't so much talking about anything new: instead, it is observing a common pattern that seems to be hitting steam-engine time, which he tentatively calls "Persistent Trees", and which gets corrected on update as "Purely Functional Trees". The central observation is that we have more and more systems being built that (a) don't care *too* much about disk space, and (b) don't especially want to ever lose data once it is committed, so (c) are constructed around immutable, ever-growing trees. He shows how this idea is being used in three rather different instances -- git, Clojure and CouchDB -- and briefly discusses some of the common ideas that are floating to the top. Fairly short, and neat food for thought: structures like this are generally more straightforward to scale up, and are probably applicable in a lot of places. (I find myself observing that CommYou could have used this general architecture for most of its data, and probably would have benefited.)

Finally, he points to a long, deep, but pretty great tutorial on Continuations, which itself points to a base tutorial on Monads. This is deep waters, not for the programming novice, and the examples are all written in Clojure (essentially a dialect of Lisp). But both look to be unusually clear introductions to a pair of concepts that are usually *miserably* explained, and therefore often treated as pure black art. I'm still making my way through both (I started on the Continuations one, then backtracked and dove into the Monads one, which I recommend first), but I'm feeling like I'm starting to internalize the ideas better than I have before...
jducoeur: (Default)
I am, of course, way behind in reading my tech blogs. So I just got up to a post last month in Tim Bray's ongoing blog, in which he did a link clearing. It's got a lot of neat stuff, so I'll signal-boost a few of the cooler-looking ones.

I hadn't previously come across the Maglev project, but it looks quite intriguing. Basically, it's a VM for Ruby with built-in persistence -- even what looks like a simple Transactions framework. The notion appears to be that, instead of having to go through an ORM level, with the usual friction associated with that, it just lets you declare objects persistent in a fairly native way. I can see lots of issues with the idea, but it's promising: I look forward to seeing where it goes.

This article isn't so much talking about anything new: instead, it is observing a common pattern that seems to be hitting steam-engine time, which he tentatively calls "Persistent Trees", and which gets corrected on update as "Purely Functional Trees". The central observation is that we have more and more systems being built that (a) don't care *too* much about disk space, and (b) don't especially want to ever lose data once it is committed, so (c) are constructed around immutable, ever-growing trees. He shows how this idea is being used in three rather different instances -- git, Clojure and CouchDB -- and briefly discusses some of the common ideas that are floating to the top. Fairly short, and neat food for thought: structures like this are generally more straightforward to scale up, and are probably applicable in a lot of places. (I find myself observing that CommYou could have used this general architecture for most of its data, and probably would have benefited.)

Finally, he points to a long, deep, but pretty great tutorial on Continuations, which itself points to a base tutorial on Monads. This is deep waters, not for the programming novice, and the examples are all written in Clojure (essentially a dialect of Lisp). But both look to be unusually clear introductions to a pair of concepts that are usually *miserably* explained, and therefore often treated as pure black art. I'm still making my way through both (I started on the Continuations one, then backtracked and dove into the Monads one, which I recommend first), but I'm feeling like I'm starting to internalize the ideas better than I have before...

Profile

jducoeur: (Default)
jducoeur

June 2025

S M T W T F S
12 34567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags