Posts tagged as:

principles

Code Smells

March 16, 2005 · 1 comment

in Uncategorized

I’m a big fan of the concept of “code smells” – the notion that you can subconsciously evaluate the elegance/correctness of a code by how it “smells” to you. Similar to “beauty” in mathematics or physics, I suppose.

Sean Corfield, at An Architect’s View, just posted an overview of Josh Kerievsky’s session at SD West.

A code smell is when you sense something is not really right and the code can be improved by refactoring. He defined “super” code as having the following 4 S’s: “Safe, Succinct, Straightforward, Simple”. Code smells when it violates one or more of those principles. He noted that sometimes comments can be considered deodorant for “smelly code” – better to refactor (and fix the problem) than simply add comments (to document the problem)!

For example, when touring the Pachyderm codebase, you can tell who wrote it by the smell. King’s code smells like a tropical beach. Clean. Breezy. A place you want to spend the day hanging out.

My code, on the other hand, tends more toward a downtown back alley – functional, not the cleanest place to be, not someplace you want to spend a lot of time, and often smelling oddly of fish.

{ 1 comment }

Biomimetic Web Tech?

January 20, 2005 · 1 comment

in Uncategorized

An interesting idea… Web technologies: a first step towards biomimetism? The idea that enterprise-class, “hardened” applications are flawed by nature, and that web technologies that mimic biology in the ability to adapt and respond are more successful and appropriate.

It’s another telling of the small pieces loosely joined story. One that’s been going through my head very loudly lately (as it has before).

Things like the new Technorati Tags system really showcase what can be done with the loosely bound small pieces, rather than trying to build the entire widget (or series of widgets, or framework of widgets) yourself.

Over the next year, I plan on investigating this much more closely as it pertains to blended learning. What are the small pieces? How can they be tied together? What is the larger ecology that forms as the pieces learn about each other? Where are the gaps and opportunities?

I’m definitely not alone in my interest in this model. James Farmer is thinking about it too… (as are Alan, Brian, and many others…)

{ 1 comment }

Efficient Distance Collaboration

October 22, 2004 · 0 comments

in Uncategorized

Josh and I (and sometimes King) have been utilizing a pair-programming-at-a-distance method of collaboration (not quite like spooky action at a distance, but sometimes it feels pretty close…)

Our magic sweet spot combo of tools includes 2 computers at each end of the pipe, one with VNC (a server at one end, a client at the other), and the other computer acting as “support”, with iChatAV acting as our communications bridge, and various browsers and utilities handy on the non-shared screen. We leave an iChat video connection open, so we can communicate without having to stop editing source code to enter chat mode. This rocks nicely.

We had been using plain audio before, but Josh just got his iSight camera, so the open video line adds another dimension (and even without the video, the audio is much better – without needing headphones to kill the feedback loop). It could also come in handy, since he has a large whiteboard behind his chair, so he can sketch things up on it and I can see what he’s drawing.

I never thought I’d be a such a fan of distance collaboration (although it has worked extremely well before) – it is always better to meet in person. But this combo makes it about as close to a face-to-face meeting as possible. Still not quite there, but pretty darned close.

One of the cooler things about the setup is that, except for the iSight cameras (which are entirely optional, but sure work nicely), the entire setup uses free software. Not necessarily Free Software, but no expense. This blows the doors off of Breeze Live, Centra, and any number of other “collaboration” suites.

We’re seriously thinking of writing a paper, and/or presenting something at the next NMC conference on this setup.

{ 0 comments }

Keep it Simple

August 7, 2004 · 0 comments

in Uncategorized

Adam Bosworth has a good post on architecture/design and the KISS principle (thanks to Tim Bray for the pointer). I have to reflect that the most successful software I’ve been involved with has followed this, and the least successful has not. Coincidence? Possibly. I think there’s more to it than that, though…

KISS has lots of deep ramifications. Simple systems are easier to build. There is less to maintain. Less pieces to go wrong. It’s also easier for other folks to jump in and play – they don’t have to learn a whole new universe to get started, they just go.

Actually, APOLLO is able to work on both sides of the spectrum – some rather complex bits, based on a rather simple overall architecture, providing ways for developers to easily build simple apps…

{ 0 comments }