
Saturday, 14 November 2009
1&1 Dedicated Server Hosting

Thursday, 12 November 2009
The problem with SOA

For a long time (probably since 1996 when I was working on migrating and merging mainframe technologies) I have believed that service-oriented (network-based) applications could be implemented more simply using standard web technologies. SOA always tended to hide the application in remote procedure call. And then each time I wanted to get access to some new business data I first had to spend ages understanding the API.
There were a few other bug bears for me over the past 10 years. Things that I have maintained must be possible and which clever senior architects and developers said was not possible. The first was session maintenance over TCP/IP. Being a connectionless protocol ( in contrast to mainframe SNA ) people said it was not possible to maintain a secure connection. And then came AJAX and now Open Business Associates has the first telnet/ssh appliance for web browser based on the stunning work of Dr Phil Endecott in Cambridge. I had been looking for someone to help me put this together and Phil had already done all the hard work. Cracking stuff. Now you can connect securely into anything telnet or ssh based from a web browser with nothing more than javascript support in a browser. No ActiveX controls and no messy java applets.
The second thing for me was drag and drop in a web browser. Again, clever bods, some within IBM Tivoli said it couldn't be done. Well that certainly was not true.
Anyway, back to SOA. A couple of things have come to maturity in the past two years which has changed all of that for me. The first was AJAX and the second is a combination of ideas that have converged into what is now called REST. Leonard Richardson and Sam Rubyhave written the first book that tries to formalise the architecture and I am sure it will be revised a little. Because it really is dead simple. And hence massively flexible and easy to work with.
The beauty of REST is that the application is focussed on what DATA the user needs access to and making that available as resources that can be accessed using a simple URL. The results come back as XML and the client application can then present that how it likes. Using something like ExtJS makes that part very easy. So all in all you end up with an application development approach that is standardsbased, flexible, cheap and a whole lot of fun to work with.
If you are thinking of writing a new application I would strongly suggest that you start to think about moving away from client-side java, RPC and SOA and take a look at REST.
Monday, 19 October 2009
Turn a column into a list
After an hour of trying to get 'coalesce' to work on MySQL I found 'group concat'.
Check this out :
SELECT GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name = 'provider'
Gives you a list of the column names in a table.
Then I can add another short list of the one or two columns that I want to exclude and by doing an AND statement I can automatically create a table using a ' create table as ' without having to manually type in 99 column names.
Sunday, 27 September 2009
Talend, Infobright and Jaspersoft
The Talend UK sales guy did a demo for myself and one of our customers the other day and I was very impressed. A very comprehensive set of features and over 13,000 rows per second on his laptop. I particularly like the fact that you can lay out a business diagram and that Talend automatically produces good looking documentation. Customer loved it.
Infobright is another very professional outfit. Paul, the bus dev guy from Canada is working really hard and it sounds like some of the big SI's are finally waking up to what can be done with open source. Well, I can only say 'I told you so' and try to keep getting some of the business. I think I wrote earlier about Infobright performance - something like a million rows queried in under 300 ms.
Pentaho is also looking good and particularly if you are wanting a pure analysis tool. That is their sweet spot.
All in all that makes for a complete open source business intelligence solution. If you are in EMEA and need help on anything in this space drop us a line - we really do love doing this stuff. Did I tell you we did a job for Skype in Estonia over the summer? I suppose I can't say much but we were very chuffed and they were delighted with the results. We used Greenplum there - first time on that product. But we know PostgreSQL well and Greenplum provides a spectacular cluster solution for PostgreSQL. DR and failover all sorted and fantastic performance on mega datasets.
The application development side is coming along very nicely as well. Check out the oba workflow tool that I have been hacking together over the past month or so. A few people are interested in that. With a little effort we could turn that into a very neat BPMN and BPEL and/or xProc generator.
The key for me though is connecting that front-end into eXist, the XML database. eXist is a great project and the mailing list is constantly buzzing. What we can do with eXist is to create a workflow and then also execute it in eXist. People access the workflow using simple REST (HTTP) calls i.e just point a browser at a URL. eXist returns everything in XML or JSON making the integration perfectly standardised. Adam Retter has also knocked up an SQL plugin which means you can get SQL results in a browser. Very cool. Check it out.
What else? I cycled 40 miles this weekend. Good fun. And built a new shower in the house which my daughter has been nagging me for for ages. Knocking down walls is always good stress relief !
The house in France is looking good and they have redone the roads which has made it all look very good. Less of a surf 'shack' now which it was when we first bought it. But it is 100m from the one of the best surf beaches in Europe and only an hour flight from the UK.
On a more existential note, my thinking on the seen and unseen realms has been coming together very nicely. Reading John Kehoe's book he made a comment about Einstein's conclusion on the wave-particle nature of light. The study of light and the wave-particle experiments we did at school have always stayed with me and now they are making a lot more sense and helping me understand a lot of things that always seemed irreconcilable. But I need time to write that all down sensibly so perhaps it will have to come out slowly.
Night all.
Friday, 18 September 2009
Work equals Energy in a given Direction
David and Steven are empiricists and they have taken the time to really understand the nature of work in the information age. It was an honour actually and I hope to be able to bring some of their skills to bear on some the public sector departments that I am working with.
The discussion raised some challenging questions particularly challenging to a lot of the pop work motivation and social psychology stuff that is bandied about as science. I think I might even raise a few of the questions on our forums.
Wednesday, 16 September 2009
IE
<!-- IE Detection: IE=0 or IE=1 -->
<script type="text/javascript">IE = 0;</script>
<!--[if IE]>
<script type="text/javascript">IE = 1;</script>
<![endif]-->
<!-- End of IE detection -->
Works a treat in the page header.
Then in the script you just have to test for IE equal to 1 or 0.
Acknowledgements to someone who I cannot find in my history anymore. If it's you please let me know.
A large percentage of the browser code in the world is written to work around Microsoft Internet Explorer issues. So this is a very useful piece of html.
And the other browsers are taking the war forward, particularly Google. Their little svgweb project for example is just another way of taking the strength out of IE. In my opinion the ONLY way for Microsoft to regain control of the browser (and associated user interface) is to open source IE completely. That's of course if the browser market is something that Microsoft thinks is worth owning.
Tuesday, 15 September 2009
Raphael
Graphics inside an ExtJS Panel courtesy of Raphael. Not much to look at I know.But, on page load the graphic is animated. You can drag the panel around and minimise it without losing the image. On click the circle changes colour.
And it works in IE8, Firefox, Safari and Chrome.
Perfect
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Raphael</title>
<script type="text/javascript" src="/Ext3.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="/Ext3.0/ext-all.js"></script>
<link rel="stylesheet" type="text/css" href="/Ext3.0/resources/css/ext-all.css" />
<script src="raphael-min.js"></script>
<script>
Ext.onReady(function () {
var draw = new Ext.Panel({
id: 'drawPanel'
, title: 'Panel'
, collapsible: true
, draggable: true
, width: 800
, height: 600
, renderTo: Ext.getBody()
});
var paper = Raphael(draw.body.id, draw.width, draw.height);
paper.clear();
paper.rect((draw.width-640)/2, (draw.height-480-30)/2, 640, 480, 10).attr({fill: "gray", stroke: "none"});
var c = paper.circle(draw.width/2, draw.height/2, 60).animate({fill: "#223fa3", stroke: "#000", "stroke-width": 80, "stroke-opacity": 0.5}, 2000);
c.node.onclick = function () { c.attr("fill", "red"); };
});
</script>
</head>
<body>
</body>
</html>
