Saturday, June 30, 2012

Some times an idea had its day, yet it never came. Instead the idea died cold and alone


So my mad idea.

Ok, before the why's and where fores lets get the explanation of the buzz word bingo out of the way.
Virtualized, crowd sourced, social media  cloud just sound like I was just grabbing the hottest memes and clumping them  together.

I wasn't of course, if I was it would have be synergistic, virtualized, crowd sourced, social media cloud (wait I like that even more.. err not doing my credibility any help here so I might move on).

People who have worked with me a little better may think I was grabbing concepts I really like and forcing them into a 'simple' paradigm.

I wasn't doing that either if I was it probably would have been a deterministic self learning, neural net clustered, grid, virtualized, crowd sourced, social media cloud (damn I need to focus here).

Like with most things tech focused, I've thought this through and I only have one problem with the concept, I'll discuss that briefly at the end.

So as a distributed application creator I like my systems componentized so lets walk through the buzz words in order of my love of them.

The Cloud
I love the idea of the cloud.
As a software developer who builds applications for an insane amount of people the idea appeals to me.
Like with most things, what I love about it probably isn't common.

When I started programming in the mid 80's it was simple.
You wrote a programme.
You compiled and linked it(spending hours being punished by make), then you ran it.
Simple right?
Painless even.
Anyone who was able to understand how to do it could  do it.
And letting others use it; even easier post the binary on a BBS, then latter a public ftp server; post the details on a forum or usenet group and you are good to go.

Dash forward to distributed applications. You write some code, write the unit tests, compile  the war (spending hours being punished by maven) and deploy it to JBoss, jetty or whatever.

But now no one can't access it without setting up an environment able to support providing functionality to a hostile internet.

Now knowing how isn't enough, you also need a huge infrastructure.

Ofcourse we all have permanent connections now but the client server model requires static ip addresses. Additionally the computer would need to be up constantly and opening up your natted firewall exposes security risk to your computer.

Onward comes the cloud.
For a small fee you can now expose that programme to the world. Great huh?
No fuss and no risk.
Thus the beauty of the cloud.

Virtualization
I also love virtualisation.
Virtualisation is just a tech term for an emulator. Like playing a snes game on your 'droid. Only for production servers.
The idea is you have a container and in that container is a simulation of the server in question.

The idea can be used to divorce your computer from the hard link between the number of physical real computers you have verus the effective number of  computers you have.

This means a super computer can act like 1000s of low range computers.
Or 1000s of low range computers (or maybe just fragments of them) act like a super computer.

Crowd Sourcing
And who doesn't love crowd sourcing. It brought us linux, YouTube, kickstarter and lots of other great things.Crowd sourcing is the idea that a thousand monkeys can write hamlet or atleast fund the next Shakespeare.

We knew for a long time that a lot of people in one place could unleash the worst in people.

Read YouTube comments some time if your not sure what I mean.
But crowd sourcing proves it can also unleash the best.



Social Networking
And how how do you bring a crowd together, get people to find others who even want the same goal, even if they are on the other side of the world?
Be it via forum, feed, mailing list, or website its going to be a social network of one description or another.

Virtualised, crowd sourced, social media cloud

So how it comes together.
Well we have a technology called virtualisation which allows us to build a entity that looks like a complete node of a certain type regardless of what it is underneath.
Concept called that the cloud that in many implementations is a flexible network of interacting nodes.
A movement called crowdsourcing which bring a lot of people together for common goals.
A tool called social networks which allows people who share common goals to find each other.


These things fit together so well I'm shocked no one though about combining them before.
You use a cloud like flexible platform, to power a virtualized node, made up of fragments provided by the crowd brought together for a common goal by social networks.

The problem
Except they did...

And failed..

It's called jxta and it was a great idea.

Some one actually thought of this over 11 years ago.
Thus my comment that this is the greatest idea that never was.
It should of worked and it should have wonderful.
But it wasn't..
At the start I promised I'd explain my one problem, and that is why didn't this work?

It's a great idea which someone has had before, so why isn't JXTA & co a huge open source monster along the lines of google?

Luckily for me the idea of this little project was to do something techically cool yet not enterprise focused then isn't it?


Join with me next time as I start to follow in the footsteps of the ill fated jxta team.
Also I'll be discuss P2P verus client server, discussing rest and options around lose coupling.

Programming for the enterprise; kinda like failing down the rabbit hole


So I started this blog a while ago, posted two times and stopped.

I stopped for a couple of reasons, but distraction is probably the best one to talk about on the internet.

That said recent events have motivated me to start again.

Like the Dirt Gently character in the recent UK TV adaption of the detective I too think better when I show off.

So like the would be actor who performs in front of the mirror; I will show off on a blog that I feel it is unlikely anyone will read.

So why the need to show off you may ask? It helps me think.

The deeper question what do I need to think about that a consulting firm isn't charging me out for? Thats a longer story...
I've always been very good with computers. When I completed uni I had already been working in the industry for a while as a contractor. Somehow; I'm not sure how I feel into specializing in big high volume commercial distributed applications. Or J2EE ( that is JEE now).

I can not tell you how it occurred; I mean I was a C unix programmer whose best idea of fun was to rebuild the tcpip stack from scratch or write printer drivers to convert mainframe machine code to PostScript. I shouldn't have even been touching java let alone let near the web.

I guess I fell into a bad crowd, before I knew it I was writing middle-ware for IBM and explaining how web-services were not the same as SOA and debating the benefits of REST over SOAP.
From that point I was further dragged away from my purest ideals into full blown distributed development.
Oh the shame.

But the thing is I dont feel like just a J2EE developer (ok, Designer (ok, chief Designer (ok, Architect (ok, senior/Lead Architect (I was informed I was one of these on Thursday) but I like to believe I'm still a developer at heart)))).
I still feel like the same wild developer who wrote his own memory management portions of his computers, hacked his windows 95 install to report itself as 'Luke Rocks' and general coding legend.

So I'm planning on doing stuff that Im not paid for and does not revolve around the web at all (well may be a little).
But back to the showing off. Doing this on my own would be lonely and feel empty without an outlet (even a fake one like this).

Sure I could show off to my family, but my wife doesn't appreciated hearing about my exploits in code... She tolerates it..
And my boys, well Jacob will want to know why I'm doing my pet project when I could be building him mods in minecraft.
So its going to have to be you...


And my great pet project?
The greatest idea that never was, an idea that died a death before it had a chance.

Creating a virtualized crowdsourced social network cloud.
Seriously...
.
.
.
.
.
.
OK its been a couple minutes you can stop the screaming now..

 I know what you are going to say; argg you cant just throw together the latest buzz trends thinking it'll magically work.

Ofcourse I'll do what I always do; I'll grin my biggest, shark faced, smug grin and say


"But I already have and this is how it is going to work...."