Tuesday, February 28, 2006

First 1.5 Days

Well, yeah. New job, eh? Well, well.

Had a very brief induction yesterday morning, with the threat/promisle of more to come. Spent most of yesterday installing software, in a very specific order, and got done about 4pm. Spent the rest of the day, and this morning, looking at the workflow software they're using here.

So first - Installing things in a specific order.
WTF? Why, when I go to install Biztalk, can it not tell me that I need to install SQL Analysis server first? To be fair, Microsoft have go their shit together with some of their newer products, but when it's their own, freely downloadable components, it should install them for you. Like installing Sharepoint Portal Server (SPS) Service Pack 1. It tells you that you first need to upgrade Windows Sharepoint Services (WWS) to SP1, but, comeon, surely if it's checking for that, I could download/install that for you?
As for 3rd party components, a tool should tell you what it expects if it's not installed. If it needs to be installed before another component, then why can't it check for that component and then inform you to remove it before you continue?
Dependencies are a very complex thing, and when it's left to the customer to deal with that, what chance have they got? (Talking of which, their 'legacy' (which are their live) systems only compile on one machine. great).

Second then - Training Material.
Yes, I realise this is the course notes of a training course, but really. It's dull, poorly laid out, and alternative stupidly detailed, and then uselessly terse. I'm half way through, and I'm struggling to be bothered.

Oh well, soldier on. Perhaps soon I'll be let in on their project design... Have 0.5 of a clue, but I'm going to have to ask for more details on standards, procedures, etc etc.

Am a little concerned that the project plan doesn't quite work, and that there's a six week 'integraton testing' phase scheduled in at the end. Surely this should be a continuous thing?

Sunday, February 26, 2006

Antiques Roadshow

I'm a bit apprehensive about the new job. I've had a think about what they said to me at the interview. I think they're on the case with the whole flexible solution business, using biz-talk and separating the workflow from the business logic. The thing that's worrying the agilist in me is that they said they aim to do their first release in 9 months. And that they're not looking at getting any testers in yet. It all smells of waterfall to me, and I think we both know that is the path to hectic coding around release date, and fixes lasting forever.

I hope I'm being unduly precaucious here, but if not, I'm just wondering what the best way of getting through to them that they need to deliver smaller chunks, or even how they can deliver smaller chunks if they're rebuilding everything. I suppose I'll have a better idea at the end of next week, when I've seen what they're doing and how they're doing it.

Oh, and Huddersfield is apparently shit for vegan lunches. Damn.

Friday, February 24, 2006

I don't usually blog...

...about code, but with me starting a new job on Monday, I might start. It's something I'm quite passionate about.

So, here goes:

I've spent this job (the one I'm leaving :D) increasingly writing more complex code, thinking I'm writing 'proper' n-tier applications. I've got all my business objects defined. I'm using NHibernate to map these to my relational database system. I have some gel sitting between my application and NHibernate, that I've called a Data Access Layer. I've used interfaces, and have some config files that allows me to plug-in different parts of code. All is happy.

Then, two days ago, I stumbled across Jeremy D. Miller's Blog.


The first article I read was about how most unit tests are actually integration tests. Some of the code on the site, and Jeremy's beloved Structure Map examples, illustrate how to really write loosely coupled code.
By coding to interfaces, rather than to concrete classes, and then using dependency injection, a really loosely coupled, and highly flexible, system can be created.
One of the offshoots of this is that you can then write much more granular tests, using mock objects for the dependencies. Suddenly something clicked. I've been doing it all wrong.

Then, last night, on the train home, I happened to have Martin Folwer's Patterns of Enterprise Application Architecture with me, and I happened to be flicking through it. Like with the original patterns book, I'd never really looked at this much, just bought it because it looked good, flicked through most of the content, and never really took the time to understand it. Perhaps, even, like with the patterns books, I wasn't in a place to understand it.

Anyway, I happened to open the book at the Transaction Script page. I read the description, never having looked at this pattern before, heading straight for the Domain Model. In association with the transaction script's description, I turned to the Data Transfer Object page. Things were starting to look a little familiar.

Perhaps there's a blurry line between the two, but my Data Access Layers look more like a mess of Transactions Scripts and a Table Data Gateway.

Perhaps, some time ago, I should have studied the Service Layer pattern. I think that by using a combination of this, programming to interfaces, and a proper Domain Model, I can start to see a far more flexible system developing.

It's all falling into place, and I want to write some code to play with these ideas. See if I can write some code that uses a database, yet doesn't require a database to test the application logic. See if I can write Controllers for the domain model, and implement different interfaces from them without having to rewrite either business rules or application control logic. See if I can program all this using Test Driven Development. And, of course, try out the most recent build of ReSharper 2.0.

Perhaps the new job will provide me with this opportunity. I certainly hope so.

*I also hope they've stopped using SourceSafe. I've had enough of it.

Tuesday, February 21, 2006

Holiday...touch myself

Well, not really touching myself.

So, anyway, has last week off. Last minute plans were:
  • Monday
    Drive to A's parents.
  • Tuesday
    Get train to London, and take in its sights (most notably Tate Modern), back to A's parents' house.
  • Wednesday
    Spend Day with A's parents
  • Thursday
    Unhurriedly travel to Bristol, mooch around there, meet A's sister for tea, back to A's parents' house.
  • Friday
    Drive home; spend weekend doing DIY.
Now what actually happened was:
  • Sunday
    Attempt to go on walk on Marsden Moor. Get 20 yards onto the moor, and call it off due to wet weather. Come back via petrol station so that I can fill up car and check tyres.
  • Monday
    After a delayed start, we decide to drive to A's parents' via Manchester, where we would try and stop at Earth Cafe for lunch. I wanted to get some trousers, too, so would take the opportunity to get some whilst in Manchester. So, we quickly through some stuff in a bag, and set off.
    We get about fifteen miles, and are doing about 70mph along the M62, when there's a kind of fizzing sound, and the engine of the car starts slowing the car down. This is just past Junction 22, heading west, so we're going downhill, and I manage to pull over to the hard shoulder will minimal fuss, although I did have to cut some old man up, which I apologise for.
    Call Green Flag, who say they'll get someone out within an hour. In their usual manner, they text and say someone should be with us in 45 minutes. All I can say is, it's bloody cold up on the side of the M62, and there was nowhere to shelter. Still, at least 45 minutes passes quite quick when you're on the edge.
    Mechanic takes one look and says it's the timing belt, which requires a complete engine rebuild, and he'll have to tow us back home (well, we specified that he towed us home, technically, he could have taken us anywhere). So back home we go, unload the car and sulk all afternoon. Mechanic said to phone round the garages, as it could cost between £400 and £600 to fix. Bugger.
  • Tueday
    Catch train to manchester, and then spend the afternoon shopping. And eating at earth cafe.
  • Wednesday
    Go on walk on Marsden moor. Man it's beautiful up there, even if I did get muddy, and nearly blown off the top of Pule Hill. The feeling of being on top of the rail tunnel I've been through so many times was quite unsettling, and the sheer isolation of it was unnerving, but it was a thoroughly amazing walk. First time I've had to use a compass in ernest too. I'll have to remember to take my camera next time I go up there...
  • Thursday
    Mooched around the house
  • Friday
    Went to Liverpool. Never been there before. Some nice bits, some crumbly bits, and spent so long looking at art that my head started hurting. The Christian Janowski exhibition at FACT is quite challenging - lots of stuff going on, and nearly reached the point of sensory overload. Interesting though. One bit was about what people felt film was for.
    Managed to catch a train home that required no changes. Felt weird being able to do that.
  • Weekend
    DIY hell. Well, went all right. Electic sanders save a lot of work.
Overall, it was a nice holiday, even if the car did die and change all our plans. I'm now left wondering whether to get the car fixed, or whether to get a new car, although if I did the latter, I'd probably want to get a hybrid, which cost about £16k, a bit much at the moment. Hmmmm.

Thursday, February 09, 2006

The seasons are changing

It was light yesterday when I left for work, and very nearly light when I got home too. This is something of a relief, as it means the dark days of winter are finally on their way out!
It's seems strange that this should happen this week, as on the weekend, I went to an Imbolc celebration in Marsden on Saturday. It was a unique experience, what with the strange rituals involving lots of fire, and an enactment of the Green Man (spring) overcoming Jack Frost, and the sun being resurected. I took lots of pictures, but with it being dark, my camera being shit, and me not using a tripod, they're all a bit blurry. I will flickr the least blurry of them.
When Jack Frost was defeated, the whole crowd roared, a huge celebration of the fact that the lighter days, and the new year, is truly upon us.