Apparently there is still a gap between the short form and blogging even at a moderate scale. In the Twitter era, my browser tab count grows frighteningly large, simply because I get out of the Sweeping habit. Some of these are months old. Some are extremely long, others frighteningly deep. Consider this as being placed under your virtual Christmas tree to help make up your geek holiday reading.
Presented in no particular order, sorry.
FreeBSD · The whole world isn’t just Linux, or even Linux, Solaris, and Windows. Don’t forget FreeBSD. Haven’t used it that much, but every time I have it’s been a good experience.
Ruby Stuff · There are all these different versions of Ruby bubbling up, and while MagLev isn’t quite the flavor-of-the-week it was for a few weeks last year, it looks like being a really interesting alternative.
Over in Ruby-land, the central news is the continuing progress on Ruby 1.9.*, which is intended to lead in an orderly way to Ruby 2.0. One of Ruby.next’s key features is Multilingualization (M17n); Ruby historically having been somewhat behind in its internationalized character and text handling. The course they’ve chosen is quite different from Python’s Unicode-defines-reality, and while I would have probably preferred the Pythonic approach, M17n seems well thought through. Yoko Harada has provided an English translation of The design and implementation of Ruby M17N originally by Yui Naruse. It’s not short and not shallow. If you want something a little more punchy, try Don't use String#force_encoding from Yugui, whom I previously wrote about and photographed here.
ORM Blecch · My relationship with relational databases has always been chilly, but that’s a lot better than my relationship with object-relational mapping, which has never given me anything but pain. The one route to unambiguous success in ORM seems to be the Rails’ tactic of slashing flexibility; just Do It Like Rails Wants and you’ll be OK. I think that world needs regular reminders that this is far from a solved problem in the general case; Aido Cortesi’s A Farewell to ORMs is a good one.
REST/Web Stuff · Here’s the first major official change in HTTP in a long, long time: The PATCH method is now officially blessed. It’s going to take years to discover what if anything the big-picture impacts are.
William Vambenepe is maybe the most interesting online writer over at Oracle; possibly I see it that way because he’s always covering things I care about. I thought his recent REST in practice for IT and Cloud management (part 3: wrap-up) was terrific. It covers a lot of related subjects and says smart things about all of them; smart things I disagree with in a few cases (“Linked Data”, are you sure?), but in every case worth reading.
Measuring Virtualization · It’s really important to understand our computers’ workloads, and as the number of layers in the workload grows and grows, it gets harder. One of the more complex layers is virtualization, of course. Recently, Sun gleefully announced record performance on a SAP benchmark, and then a blog post called Virtual Overhead? caught my eye. Among the usual benchmarkers’ chest-pounding (they feed those guys raw meat for breakfast) there’s what looks like a weird virtualization performance anomaly. The industry needs to understand this stuff a whole lot better than we do.
You Can Never Climb the Same Tree Twice · There’s a pattern out there that I’d been noticing at the back of my mind, but Manual Woelker throws it into sharp relief with Persistent Trees in git, Clojure and CouchDB. There are a large and increasing number of situations in which you want to do non-destructive updates; that is to say, accept additions, changes, and deletions to your data, reflect them as appropriate, but never lose the previous state. This has tons of implications for reliability, consistency, and especially concurrency. It’s starting to look as though there’s emerging consensus on The Right Way To Do It. Which is how Engineering is supposed to work, and Software Engineering too rarely does.
TDD Yes/No? · Speaking of consensus, when it comes to Test-Driven Development, at the current moment we basically don’t have any. Consider for example It's OK Not to Write Unit Tests by Chris Ashton. I actually agree with some of his points; my opinion has moderated a bit and is now something like “TDD should be compulsory wherever it can be made to work”; but we really need to have a serious extended focused discussion here in this profession so we can get some agreement on where that is and isn’t.
Strengthen Your Brain · Sit back. Clear the next half-hour, get yourself a strong cup of coffee, and read The Continuation Monad in Clojure by Jim Duey. It’s not quite as hairy as the title suggests, but it’s about as good an explanation of a few core concepts as I’ve read anywhere. I also like the way that it just uses monads without veering into the theory, and suspect that this may be a really good way to approach that famously-difficult subject. A nice piece.
Best O’ The Season · May you geek out in a warm glow of peace, love, and over-eating.