Thursday, May 13, 2004 12:38 PM
pdbartlett
What's happening?
Well, it's nothing on the scale of Ingo et al. with ThinkTecture, but I'm also on a bit of a move job-wise. I've resigned from my position at Thomson Financial (perhaps now I'll be able to read Bill Evjen's blog without feeling it's an act of corporate treachery :) and as of June 1st I shall be working for Business Objects' enterprise performance management (EPM) team. The business area is familiar to me from my time at INPHASE, and much of the technology (C++, SQL, OLAP) is likewise well known to me, but this will be my first commercial experience of Java, and the first time I've used CORBA at all.
All of this, combined with quite a bit to do around the house, has meant I've had precious little time to work on WhaTBI?. However, that's not to say I haven't been thinking about it. I now have the basic object model clear in my mind (note to self: must knock out a quick object model to put UMLet 3 through it's paces sometime soon) including the thorny issues of interfaces vs. base classes and "the MBRO problem" (both solved in one go by a combination of composition/delegation and a little codegen to make up for the compiler's lack of "syntactic sugar" - I do go on a bit about that, don't I? :). However, the major news WhaTBI?-wise is that rather than do what I've done in the past (i.e. waste umpteen weeks trying to design a really flexible O/R mapping + concurrrency + persistence model - I like a challenge :) I intend to use a more "agile" approach. As far as I can see this has the following advantages:
- It will let me try out TDD in a somewhat more "real world" scenario than I have previously done (unlikely to do any pair programming, though, unless we get some pretty dramatic improvements in Sophie's keyboard skills :)
- It also fits with a couple of more traditional aspects of perceived wisdom, namely "Make it usable first, then make it reusable", and "If things aren't working, don't keep on repeating them and hoping it will work" (couldn't find a "proper" quote for the second one, but I know I've read very similar things on a number of occasions).
- I don't "fully" understand the problem space (well, not as much as I'd like to anyway), which to some extent reduces the value of any "up front" design work I might do.
I'll report back on my progress as soon as there is any...
However, there is now also another project competing for my time. I've just found out that my sister is doing some FrontPage training. Whilst I could cope with the fact that my brother's site is rather better looking than my "personal" one (i.e. not my blog), which I'm too ashamed to link to just yet, the thought of my little sis surpassing me on this front as well was enough to goad me into action. So off I went to the excellent Open Source Web Design site and downloaded a nice little XHTML/CSS combo called Sliqua (by Phlash). So far so good, with not a lot of effort on my part. However, I soon realised that all the pages in my site would actually be remarkably similar, so I figured I had four options:
- Lots of tedious typing
- Something involving client-side scripting and/or <(I)FRAMES>
- Coughing up the money for hosting with reasonable server-side processing
- Something else...
Option 1 obviously broke with the first attribute in Larry Wall's famous trio (laziness, impatience and hubris) so was out. Option 2 left a slightly nasty taste in my mouth for some reason I couldn't quite put my finger on (a horribly mixed metaphor if ever I saw one). Option 3 was also clearly not a go-er (just check how many of my blog posts have the word "free" in the title ;). So this just left option 4.
Inspired somewhat by server-side includes (which I think my hosting provider does have, but which I didn't want to rely on) I thought about generating my HTML pages by running the C pre-processor on a bunch of "source" files, which would give me the ability to #include common fragments (à la SSI), and also use macros for almost identical blocks (an improvement over SSI). Now I was on a roll, and realised that if I ran this from a NAnt script then I could also easily throw some XSLT transforms into the mix at a later date if the need arose. And just to completely win me over, I realised that there was a fair chance of there being a NAnt "ftp" task out there somewhere, or that if push came to shove I could probably write one.
I should add that none of this is done yet, but I'll post back here with anything that might have general applicability once it is.
Some much to do. So little time...