<commit_before>---
layout: post
title: "Where&#8217;s the manual?"
date: 2009-08-19 22:35:00
description: ""
category: 
tags: [grid computing]
---
{% include JB/setup %}

Let's start with an admission. I'm a Java developer. Just a Java developer\*. I've only ever coded serious applications in Java (by serious I mean >1000 lines and not written for some university coursework). I like to think I'm a reasonable developer, not the best I know, but definitely not the worst either. I also like to think I'm not just a servlet dude, but my default behaviour (which is hard to change) when encountering some new concept is to ask: Where's a [free](http://www.gnu.org/philosophy/free-sw.html) library I can use to do this now? Where's the [getting](http://struts.apache.org/2.x/docs/bootstrap.html) [started](http://www.sitepoint.com/article/java-servlets-1/) [guide](http://www.informit.com/guides/content.aspx?g=java&seqNum=447)?

So, onto distributed computing systems. I know I need to distribute my software to [scale](http://www.mvdirona.com/jrh/talksAndPapers/JamesRH_Lisa.pdf) to internet volumes. I know I need to think about failure - of machines, of racks, of [datacentres](http://www.facilitiesnet.com/datacenters/article/Crash-Data-Center-Horror-Stories--5390), of [countries](http://news.bbc.co.uk/1/hi/technology/7792688.stm). I know I need to distribute my application onto many nodes in order to solve these problems, and I know that simple [J2EE clustering](http://oreilly.com/catalog/jservlet2/chapter/ch12.html#32026) just ain't gonna cut it. So I need something better, so where's that damn library?

Well, if only it were so simple. Don't get me wrong, there are things out there that might help, products that are being touted as the solution to all my ills, the likes of Terracotta, Gigaspaces, Coherence Grid. But they almost sound like a [silver bullet](http://en.wikipedia.org/wiki/No_Silver_Bullet), and we all know they don't exist, don't we?

So, onto my next default behaviour when I don't want some vendor touted solution, drop down a level. Where are the design patterns for this new idiom? Well, as yet I haven't found a [GoF](http://www.amazon.co.uk/gp/product/0201633612?ie=UTF8&tag=exemel-21&linkCode=as2&camp=1634&creative=19450&creativeASIN=0201633612) for distributed systems. OK, so go lower, lets learn about the underlying concepts, lets ask someone who knows what they're talking about for a good book:
<commit_msg>Update 2009-08-19-wheres-the-manual.md<commit_after>---
layout: post
title: "Where&#8217;s the manual?"
date: 2009-08-19 22:35:00
description: ""
category: 
tags: [grid computing]
---
{% include JB/setup %}
**Historical note:** *This post written under the previous blog name 'Diary of a Distributed Virgin'*

Let's start with an admission. I'm a Java developer. Just a Java developer\*. I've only ever coded serious applications in Java (by serious I mean >1000 lines and not written for some university coursework). I like to think I'm a reasonable developer, not the best I know, but definitely not the worst either. I also like to think I'm not just a servlet dude, but my default behaviour (which is hard to change) when encountering some new concept is to ask: Where's a [free](http://www.gnu.org/philosophy/free-sw.html) library I can use to do this now? Where's the [getting](http://struts.apache.org/2.x/docs/bootstrap.html) [started](http://www.sitepoint.com/article/java-servlets-1/) [guide](http://www.informit.com/guides/content.aspx?g=java&seqNum=447)?

So, onto distributed computing systems. I know I need to distribute my software to [scale](http://www.mvdirona.com/jrh/talksAndPapers/JamesRH_Lisa.pdf) to internet volumes. I know I need to think about failure - of machines, of racks, of [datacentres](http://www.facilitiesnet.com/datacenters/article/Crash-Data-Center-Horror-Stories--5390), of [countries](http://news.bbc.co.uk/1/hi/technology/7792688.stm). I know I need to distribute my application onto many nodes in order to solve these problems, and I know that simple [J2EE clustering](http://oreilly.com/catalog/jservlet2/chapter/ch12.html#32026) just ain't gonna cut it. So I need something better, so where's that damn library?

Well, if only it were so simple. Don't get me wrong, there are things out there that might help, products that are being touted as the solution to all my ills, the likes of Terracotta, Gigaspaces, Coherence Grid. But they almost sound like a [silver bullet](http://en.wikipedia.org/wiki/No_Silver_Bullet), and we all know they don't exist, don't we?

So, onto my next default behaviour when I don't want some vendor touted solution, drop down a level. Where are the design patterns for this new idiom? Well, as yet I haven't found a [GoF](http://www.amazon.co.uk/gp/product/0201633612?ie=UTF8&tag=exemel-21&linkCode=as2&camp=1634&creative=19450&creativeASIN=0201633612) for distributed systems. OK, so go lower, lets learn about the underlying concepts, lets ask someone who knows what they're talking about for a good book:

{'fraction_non_alphanumeric': 0.10383164582092515, 'fraction_numerical': 0.03375024816358944, 'mean_word_length': 4.784156142365098, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 12, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 2, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1066887', 'n_tokens_mistral': 1648, 'n_tokens_neox': 1484, 'n_words': 624}