Thursday, September 28, 2006

They're demolishing a building across the street from our office.Two of these huge machines are eating that 70's concrete like a mouse through butter.This is the second building they've replaced since I started working here, this time I'll try to blog some pictures of the more interesting things they do. The last one they did involved digging a huge hole for two or three sub basements, without the surrounding buildings falling in, I can't for the life of me remember what the technique they used is called!

Tuesday, September 26, 2006

I've just heard that the FOXOpen guys are planning to start writing an eclipse plugin for FOXOpen.

This is great news because whilst FOXOpen consists of the framework to describe and deliver applications the full value in terms of productivity will only really be achieved when there is tooling. Because tooling automates repetitive tasks, and reduces the learning curve.Although it is possible to write applications using an XML editor like XML Spy, a dedicated tool will bring further productivity to teams using FOXOpen, and make it more accessable to new users.

Why am I so keen? Mainly because of this, why do you pay expensive resources to re-create the same general patterns again and again when with the right tooling you can employ more less expensive people to do the job quicker, or for less, and with fewer defects? Using standards based 4GL you can focus your experienced people on adding the real value to the systems the 4GL thing produces. And if you're using open source 4GL you can take this added value and reverse it into your framework and tooling, encapsulating your hard work and making the expensive feature easily reproducable by less expensive people. Come to think of it even though it inhabits a slightly different space Maven does this with its plugins and brings very similar benefits, but it brings them to the development process itself and not the systems which are being developed.

Encapsulating bits of your development processes in your frameworks and tooling so they can be replayed with different parameters means that your reuse is across a general pattern and not a small set of use cases. This is domain engineering, you should read this book. Combine that with truly reusable component elements and you get improved (both faster and more reliable) productivity and ease of maintenance.

All we need now for the FOXOpen plan is for it to deliver all singing all dancing AJAX applications.

Friday, September 22, 2006

Steve Loughran blogged (here) about this article from SD Times which slags off people for using XML to program things with, including Ant. I commented on Steve's blog but thought I'd reproduce, and extend that comment here, because I believe that the article is based on a false assumption.

That assumption is that people should need to read and understand XML programmes or data, and that size and efficiency are always core requirements.

"These sorts of XML “programs” are unreadable, unmaintainable, an order of magnitude larger than necessary, and audaciously inefficient at runtime."

I'm sure that comp sci students, academics and kernel hackers all care a lot about size and speed, and that anyone who has to read and maintain code will care about that too. But I'd counter his opinion by saying that XML is an easy to understand and powerful two dimensional technique for describing arbitrarly complex relational data, and that his "program" is my structured data.

Seems to me that the author has ignored the fact that ICT is moving towards a world in which people don't write programmes by hand anymore.I don't mean low level stuff, I mean Big business and government Systems that have insanely short deadlines and dire consequences from defects and delays, people have enough trouble just Making These Things Work.Tools are what deliver these things, and the tool's data is the system's programme.XML allows you to describe and validate large and complex data structures in an open, standardised and accessable way, and if your valid data structure is also a programme it will be part of a system which is easily susceptable to being maintained by tools, and tools from many sources, not exclusively from your current supplier.

If you listen to people who think they can look a short way into the future they see that systems which alter their own programming are going to change the way that we think about ICT, and that that road leads us to a place where people won't know or understand the programmes, just the tools, we'll need to learn to write the tools, and to trust them. I think using XML to describe data, data which is also a programme, is a faltering first step on that evolutionary path, and we know its in use in this way all over the place already in rule specifications for all kinds of rules based processing, including things like Spring configuration, hibernate mappings etc. These things are programmes which should be maintained by tools, and programmes which could be modified by the systems which use them.Ant's XML might not be a great example, for one thing there's no schema or DTD, but it is an example, look at all the IDE's which offer tool support for maintaining build.xml's.I have no doubt that the use of XML in this way once again blurs the distinction between data and programme which is a key feature of really adaptive systems.

I've been talking to ICT guys at the Oil and Gas department (or whatever) of the DTi, they're starting the process of moving to open source some software which they developed to get around the lack of openness in 4gl RAD .

Its here - http://www.foxopen.net/ There's no code available yet, something to do with checking the legality of it all, but watch this space, and read the docs!

Basically it allows you to use any good XML editor to develop and maintain complex B2B web-based applications quickly and reliably.

What I really like about it is the fact that they've had to make it work for "real" regulatory processes, processes involving complex workflows with many review and approval steps, and because they've had to comply with the DTi's requirement for zero paper processes it also supports electronic signatures for documents.

It is a framework for delivering web based applications which require any of these features:On line forms data entryWorkflowDocument generationWeb servicesData reportingUser account managementSecurity (digital signatures)Statefullness

I know nothing, I'm not a fortune teller, and you'd be insane to think that I am. This disclaimer was cribbed from an email footer I once received. It is so ridiculous I had to have it for myself.

Statements in this blog that are not purely historical are forward-looking statements including, without limitation, statements regarding my expectations, objectives, anticipations, plans, hopes, beliefs, intentions or strategies regarding the future.
Factors that could cause actual results to differ materially from the forward looking statements include risks and uncertainties such as any unforeseen event or any unforeseen system failures, and other risks.
It is important to note that actual outcomes could differ materially from those in such forward-looking statements.