My six months are up! I’m done! Pencils are down! The project has been put to bed!
Time does seem to have flown, and even though I promised to write a lot on this blog, I haven’t. You’ll have to believe that this is because I’ve been far too busy to have had time.
From the sofa of a flat on Upper Richmond Road, Putney, through the fantastic Le Bureau in Battersea, to the dining table of an apartment on Rue Montorgueil, Paris, it has been a grand adventure. Though there were a few gaps during the move times, I’ve worked at least 15 hours a day and have written 24,700 lines of code. I’ve learned a lot – one category of things I’m glad I now know, and another category of things I really wish I hadn’t had to go through!
The most important thing is that I do feel I’ve executed on what I said I’d do. My plan was to spend six months prototyping my idea, to achieve three goals:
- Have a working prototype of the thornier technical areas to demonstrate they can work.
- Gain some clarity into the major technical hurdles and clarify the purpose.
- Get a better idea what the rough time and cost investment would be to produce a first release version of the product.
The prototype is quite nice, it does an awful lot with a very simple user interface, which is exactly what I intended. With not much more than a few clicks you can select a number of filesystems, and databases, suck them from their current locations, record them, version them, and spew them (technical jargon for sure!) onto a whole host of other servers that you choose. Everything is transactional and filesystems and databases can be rolled back, and rolled forward as you please.
The ability to do this is one corner of the functionality that is required to be able to build the software I want, though actually in itself, the above could be quite useful.
So what now? I’ve taken a week off, I’ve brushed up my CV, and I’m going to look around for something interesting to do. A contract would be best, as I’m still dedicated to finding a way forward for my idea.
On the project front there are a few things that I want to clean-up in the prototype that didn’t quite get finished by the deadline, but most importantly I’m going to start putting the business plan on paper – starting right after this post.
Finally, there are a few parts of the prototype that may be useful in their own right. The XA Filesystem post was the first example of this and two other areas that are immediately obvious are:
- To facilitate the ability to read a database and re-construct it elsewhere, I needed an RDBMS-neutral schema format. I looked around but couldn’t find exactly what I wanted, so I wrote one from scratch. I can analyse a database and produce an XML-based, vendor-neutral schema which then can be loaded up anywhere else you like. This could potentially be useful to others so I’ll put something together about it on this blog sometime in the next month.
- The other is the WS-Coordination and WS-AtomicTransaction support I wrote for Apache CXF. This is slightly more rough, and probably serves more as a proof-of-concept rather than anything that could be used straight away. Also, I imagine we’ll see this in CXF at some point, but I’ll post something on it soon if Apache doesn’t get to it first.
* Title from an Orbital EP Times Fly, 1995.