« November 2007 | Main | February 2008 »

January 30, 2008

The Grassroots of Software Architecture

There are a few camps in the world of Software Architects. It’s not a question of technology choices, although it may seem that way. The truth is that technology changes so fast it would be foolish to hang one’s beliefs on it. In a career in software you know for certain that today’s great technology is going to be completely obsolete in twenty years time. Being open to new technologies is the only way to be certain you will not become obsolete yourself.

Instead, these camps are really centred around a set of core beliefs about the purpose of architecture, and what the unstated underlying goals are. Architecture is ultimately a set of economic decisions - every decision carries costs and risks, and these must be balanced. How one weighs these factors in the consideration of an architecture is affected by these underlying goals.

Here at Isotoma we’re pretty firmly in the camp of what I guess you could term the “new pragmatists”. This approach is typified by things such as using REST versus SOAP for system communication, for example, although not limited to it.

Briefly, REST is an approach to communication between distributed systems. It tries to leverage the successful patterns inherent in good Internet application design. We use it very successfuly, and it fits well with our technology choices. This is not an accident - the technology is chosen to fit the overall approach.

The “toolset” guys on the other hand are real believers in their tools and IDEs and autogenerated this and graphically powered that. They want to be able to make building applications easy, which is kind of laudable, but misguided. Every added bit of ‘easiness’ for one person adds layers of unnecessary complexity - and unnecessary complexity is our real enemy, as software architects.

Ryan Tomayko puts this really nicely:

A lot of REST adherents, myself included, have come to appreciate REST only after believing and then eventually giving up on the notion that distributed systems design could ever be easy. You eventually find out that easy is not feasible and go for the next best thing: simple; manageable with reasonable effort and care.

REST was basically dreamed up by a bunch of individual geeks, doesn’t have a standards body and has no big software companies behind it. The “toolset” approach has a whole ecosystem of vendors and manufacturers champing at the bit to make it the de facto standard, so then you can buy their shiny development tools. In previous iterations of the software business the victory of the vendors has been a foregone conclusion. They place the adverts in the publications that IT managers read, and they buy what is advertised.

This time around, amazingly, it looks like instead we are winning, or may even have won. The blame for this can probably be placed on the Internet, and the way it has allowed a community of practice to develop outside the grind of the trade shows and vendor sponsored events that previously dominated the computer business.

So, what’s more amazing, the fact there actually is a grassroots movement in something as obscure as Software Architecture, or the fact it seems to be beating huge organisations with large budgets? I don’t know, but I think it bodes very well for the future.

January 24, 2008

New Forkd features

The Forkd kitchen has rolled out a bunch of vital new features for our favourite recipe sharing site:

  • Post to Blogger from Forkd (more blog platforms to follow soon)
  • Upload photos directly to Forkd — you don’t have to use Flickr if you don’t want to
  • A recipe search form at the top of every page
  • A way to browse all users on the site
  • Plenty of bug fixes!

See the Forkd blog entry for more details.

To our beta testers: thanks for all the recipes, and please let the head chefs know what features (or bug fixes) you’d like to see next!

Firefox keywords (more)

Andy mentioned how useful Firefox keywords are for Trac. Remember a quick way to create your own shortcuts is to right-click on any search form and click on “Add a keyword for this search…” Or even quicker, download this handy set that I adapted from Lifehacker’s. Here’s how to install it:

  • Save the link to your desktop
  • In Firefox, from the Bookmarks menu, choose “Organize Bookmarks.”
  • From the Bookmarks Manager File menu, choose Import. Choose “Import Bookmarks from File.” Browse to and open the file you just saved.

Continue reading to see the list of searches.

Acronym Finder Quick Search
Type "acronym <acronym>" to look up what an acronym stands for in Acronym Finder. For example, "acronym WTF."
Allmusic.com artist search
Type "alm <artist>" to look up an artist on Allmusic.com
Amazon Quick Search
Type "amaz <product name>" to look up an item on Amazon.
Amazon UK Quick Search
Type "amazuk <product name>" to look up an item on Amazon UK.
Dictionary.com Quicksearch
Type "dic <word>" in the addressbar to perform a dictionary look-up.
Answers.com Quicksearch
Type "ans <word>" in the addressbar to perform an answers.com look-up.
Ebay Quick Search
Type "ebay <item>" to find something up for auction at Ebay.
Flickr Quick Search
Type "flic <search term>" to search all the tags, titles and descriptions of images at photo-sharing site Flickr.
Froogle Quick Search
Type "froogle <product name>" to look up a product on shopping search engine Froogle.
Google Maps Quick Search
Type "gmap <address>" to get a Google map of a street address or location.
Google Image Quick Search
Type "gimg <search term>" to find images that match using Google Image Search.
I’m Feeling Lucky Quicksearch
Type "goto <term>" in the addressbar to visit Google’s top listing for that term
Lifehacker Google Search
Type "lh <search term>" to search Lifehacker for information.
Technorati Quick Search
Type "technorati <search term>" to see what weblogs are posting about a topic.
Thesaurus Quick Search
Type "thes <word>" to find words with similar meanings in a thesaurus.
Urban Dictionary Quick Search
Type "ud <expression>" to look up a slang expression in Urban Dictionary.
Wikipedia Quick Search
Type "wik <person|place|thing>" to look it up in collaboratively-edited encyclopedia Wikipedia.
Yahoo! Creative Commons Quick Search
Type "cc <word>" to find Creative Commons-licensed items available for reuse with Yahoo!’s CC search.

January 21, 2008

xhtml & ccs crashes IE6

It’s always fun to find another bug in IE6. This XHTML/CSS kills IE6 out right. It is cut down from a real project and had us amused for a while.

This seems to be the minimal set that causes the crash. The negative margin is required too.

We swapped the <p> for a <span> in the end.

<head>
<style>
#inner DIV {
        background: #cccccc;
        }
#outer P:first-letter {
        margin: -1px;
        }
</style>
</head>
<body>
<div id="outer">
        <div id="inner">
            <div>
                <p><a href="">ie6 breaks</a></p>
            </div>
        </div>
</div>
</body>
</html>

Firefox keywords and Trac

Going firmly in the 'you learn something new every day' bracket... Karen just pointed the office in the direction of Mozilla keywords. Combined with Trac they mean you can type things like trac 705 into the Firefox location bar and get transported to ticket 705 on your trac instance. Enormously useful when people keep mentioning "#705" in IRC rather than pasting the link.

  • Add a new bookmark to your Firefox bookmarks for (say) https://projects.isotoma.com/forkd/ticket/%s
  • Give it a keyword (in my case tforkd)
  • Type tforkd 705 into your Firefox location bar
  • Voila!

January 04, 2008

Astroturf must die

Astroturfing attempt (by a charity, even) unmasked on MetaFilter. Merciless. This comment (by a MeFi moderator), addressed to the guilty company, gives a nice plain-English explanation of how bad things got, and why behaviour like this does not fly:

For those of us who have been interacting and working with web communities for the greater part of a decade, I’m dismayed that people who are newer to the playing field see this as just another way to game the web to hype themselves. There’s much more to it than that, on all sides.

There’s also a forensic summary of the affair on the MeFi wiki.

Marketers should not underestimate members’ protectiveness of their community. Nor how badly practices like this can backfire.