Friday, May 25, 2007

Life changing gadgets

On the back of Nics blog post about a Scott Hanselman blog post I thought I'd add my 2c, sorry 2p worth.

In no particular order:

  • Macbook Pro

  • I'm a born again Apple addict (as I keep telling anyone who will listen). I was getting thoroughly sick of wasting my time rebuilding Windows PC's after 6 months because of slow down, and generally getting sick of Windows. After 3 months with a Mac, my passion and excitment for computers is back. Every geek should have at least one Mac.

  • Sky+

  • Ok it's hardly bleeding edge and I should get around to getting a "proper" DVR, but being able to record two Sky channels at once, live record, and season link is brilliant.

  • iPod Video

  • Watching webcasts and listening to podcasts while commuting to work is a god send here in Britain. I didn't really understand how great these things were until I got here. I do think people use them to hide behind, so they don't have to talk to strangers on public transport but I guess that's a good thing for those people. They say copying is the greatest form of flatery, then take a look at most other MP3 players and Apple should feel very very flattered indeed.

  • Wireless Internet


  • Not really a gadget but hey it's my list. Life before Wireless broadband sucked. Surfing in a dark, dingy, cold computer room. Now I can surf infront of the box and talk to the missus! Actually the Internet in general is IMHO the single greatest invention in the history of the world. Don't agree? Ok think about your life now. Now take the internet away. Sucks doesn't it. Communication, Information and Entertainment has been changed forever because of the Internet. I was a programmer before the Internet, but can't remember too much about those days. Man it must have been hard getting information. These days a quick Google finds the solution to most issues. Huge productivity gains there I think!

  • Amstrad CPC 464


  • This little machine started it all for me. I got an interest in computers and programming because of that little 8 bit machine. Who knows what I would have been if I hadn't met the Amstrad, but I can genuinely say that my life would be completely different. So the Amstrad must rate as number 1 on my list of life changing gadgets.

Thursday, May 24, 2007

Wednesday, May 23, 2007

Notice to Microsoft - Stop. Stop now.

Silverlight, Linq, Astoria, even .NET 3.0 are all either out or on the horizon.

I want to learn all of them, but with the need to: work, commute, eat, sleep and spend time with the family - there just isn't enough time in the day. So I say to Microsoft, stop now. Let me catch up ;-)

As a born again Mac fan boy I am pretty buzzed about Silverlight 1.1 and all it entails. Hopefully it will give all those devs out there that are bi curious (Mac and PC) an excuse to buy a Mac - testing silverlight apps on Mac!

Technologies like Silverlight and to a lesser extent WPF are creating a paradigm shift in the world of software development. It won't be long before you need a designer and/or user experience person on your team. Hopefully it will mean a richer experience for the user and nicer web sites and apps to use.

And it will allow developers to get back to what they are good at - developing. To often websites are either designed by developers or developed by designers. The end result can be disastrous. I mean you wouldn't get your dentist to remove your appendix?!

New Zealands greatest export

The pilot episode from the FOTC new US TV show is up. Funny.

http://www.hbo.com/conchords/

not sure how it will go down in the States with the dry humour but hope it goes really well.

Wednesday, May 09, 2007

My first play with Oracle

On the current project I am working on, I have been introduced to Oracle. I have never come across it before - usually use SQL Server in various guises.

The installation process was a little harder than SQL Server, as the server we had been supplied had Java locked down on it. Basically the installer wouldn't run as it's a Java app. A boffin managed to find a work around and got it installed.

I guess being multi platform is a good thing - but to me the Java interface looks dated and is a lot slower than a native Windows app. The actual interface itself is a little clunky also. I don't believe it's as intuitive as SQL Server 2005 for example, although I am a lot more familiar with SQL Server.

Once you get up and running though, it's not too dissimilar than SQL Server. I did read an article talking about update-read locking and how Oracle allows users to read data on pending updates. I guess the thought process is that the update may never happen so why lock a process from reading. I guess it's a good feature to have that option. SQL Server just locks the read in that scenario.

From a front-end point of view the two are the same - I use the new .NET 2.0 data factory pattern (System.Data.Common) when connecting to databases anyway, so from that point of view nothing in my code is different for use with Oracle or SQL Server (or mySQL or any other db for that matter).

Anyway, so far no real issues with Oracle. I much prefer SQL Server, but I guess that is more to do with familiarity than any negative aspects of Oracle.

Friday, April 13, 2007

I.T. Interviews

As some of you may know we packed up and left NZ and moved to England about a month ago. I decided to go contracting as it allows greater freedom and more money! There are downsides too of course (discussed on my other Other Blog

Anyway, as such I have been to a few (3) interviews and 2 phone interviews over the last few weeks and thought I would post my views.

The Process
Interviews suck, lets face it, but some suck more than others. It is common these days to vete applicants with an initial phone interview first. This to me is fine and makes sense. I have no problem with phone interviews.

Then it seems it is becoming more and more popular to do an online "skills" test. I think these are a complete waste of time. I (and others) consider myself to be an above average developers, and I have over 10 years experience, in several languages, platforms and more importantly, business areas.

Quite frankly the stupid online tests can hope to test me on my experience. The ones I have done are a multi choice question and answer type thing. All this tests in my opinion is how well you remember semantics outside the IDE. I have pretty much been developing since Intellisense, and have (I admit) become lazy. It doesn't mean I am a bad developer, in fact in my opinon the opposite. I let the tools do the donkey work, while I am concentrating a creating a solution.

I once interviewed for a job at HP. They had the best test I have ever seen. It was a real world scenario to finish an application. It gave the testee the opportunity to really show what they were capable of, and let the testers see some code and see how the person thinks. (I didn't get the job, but was the only person to ever finish the test. Didn't get the job for other reasons than soft dev ability BTW)

I think the HP style test is the only way to go. Test people by all means, but don't make them do stupid little multi choice Q+A tests. They really are wasting everybodys time.

Tips
If you make it to the face to face interview, make sure you have are prepared. Do some research on the internet about the company, and have some questions in your mind to ask them.

I find if you ask questions along the way, it makes you :
a) seem more intested in the company
b) look intuitive and knowledgable
c) seem well prepared

Also, run through in your head some questions they may ask you, and have some answers sorted out. It helps relieve the tension.

Don't put anything on your C.V. you can defend/explain in an Interview. You may have played with Javascript before but don't make it look like yuo are an expert. It will come back to haunt you as most interviewers will ask questions based on you C.V.

Above all enjoy it.

Back

I've been a bit busy of late - move to the UK and was looking for work so haven't been inspired to blog about software development.

I have been busy on my other blog - it includes tips on those looking to move to the UK.

Link Here

Anyway, I will post soon about my thoughts on the interview process...

Wednesday, February 28, 2007

Sometimes technology is fantastic

I am writing this on my new Macbook Pro, using an HTC Apache EVDO phone connected via Bluetooth as the internet connection.

The Apache is a great data device / PDA - not so good as a phone - bit big. The fact you can use it as a modem is good. The fact that you can use it via Bluetooth as a modem is great. The fact that it all works with the Mac is fricken brilliant. I was a bit worried about switching to OSX that things like this wouldn't work (I have been tainted by bad experiences with Linux) but so far so good. OSX has just about every app I use on Windows or an equivalent.

It's a little mind boggling really if you think about how far the technology sector has evolved. The computer industry has been really only around since the mid/late 70's. How many other industries have moved so far in so little time. If the automotive industry for example moved at the same pace, just imagine what sort of vehicles we would have today - certainly wouldn't be tied to fossill fuels for one.

Anyway for today anyway, mark one up for technology actually working and being useful!

Friday, February 23, 2007

New tools from CodeGear

Codegear the new name for the development arm of Borland have announced a couple of new tools:

Delphi 2007
Delphi for PHP

The D2007 release is, from what I can tell, a release of Delphi to that includes Vista support and some refactoring of the Database connection components. I don't do much Delphi anymore, so not terribly interested, but will check it out.

The other one, Delphi for PHP, is a little more interesting to me. I don't currently do PHP - I do ASP.NET, but am always keen to see how other technologies work.

All in all, I think a positive couple of announcements from CodeGear. It seems to me they are concentrating on areas they can actually compete. Their Java toolset has been moved over to Eclipse which is a good thing, and they appear to be concentrating on Win32 for Delphi.

I think this is a good move. In all reality they can't hope to compete with Microsoft when it comes to .NET. They are just too far behind the 8 ball, always a release behind. For example the latest Borland Development Studio 2006 uses .NET 1.1. Concentrating on Win32 which a lot of people are still keen to develop for, and looking at new areas - Delphi for PHP, I think they just might be able to create a good niche for themselves.

Wednesday, February 14, 2007

Design Patterns in C#. Part 1 Singleton Pattern

Design Patterns are a useful part of software development reuse. Design Patterns introduce a common problem and common solution to said problem. DP's are usually broken into 3 categories:

Creation Patterns:
As the name suggests, deals with the Creation of Objects
Structural Patterns:
Ease design by identifying a simple way to realize relationships between entities
Behavioral Patterns:
Identify common communication patterns between objects

Design Patterns are bigger in the Java world than they are in the .NET world. It's only in the last couple of years that I come across design patterns and their usefulness.

The most common design pattern, and the easiest to understand is the Singleton Pattern.

The definition of the Singleton Pattern is, "Ensure a class has only one instance and provide a global point of access to it."

Which means that the class will only allow one instance of itself to exist. We do this by hiding the constructor of the object and publishing a public method to instantiate the object.

Example:

namespace Singleton
{
  class Program
  {
    static void Main(string[] args)
    {
      ClassicSingleton s1 = ClassicSingleton.CreateInstance();
      ClassicSingleton s2 = ClassicSingleton.CreateInstance();
      //if new classes were being created, values should both be 1
      Console.WriteLine(s1.CountValue());
      //if singleton works then should output 2
      Console.WriteLine(s2.CountValue());

      Console.Read();

    }
  }


  public class ClassicSingleton
  {
    private ClassicSingleton(){}

    private static ClassicSingleton instance;
    public static ClassicSingleton CreateInstance()
    {
      //if instance doesn't exist create new instance
      if (instance == null)
      {
        instance = new ClassicSingleton();
      }
      return instance;
    }

    //small method to prove only one instance gets initiated
    private int counter = 0;

    public string CountValue()
    {
      return (counter += 1).ToString();
    }
  }
}

The above example is using the classic singleton approach. As you can see it is fairly straight forward and easy to understand.

This example is fine in a single threaded case, but in a multi-threaded application it is possible for an instance to exist on separate threads. To eliminate this issue we change the CreateInstance method to include a lock and another check:

public static ClassicSingleton CreateInstance()
{
  //if instance doesn't exist create new instance
  if (instance == null)
  {
    lock (typeof(ClassicSingleton)) ;
    if (instance == null)
    {
      instance = new ClassicSingleton();
    }
  }
  return instance;
}

These two above examples are using fairly standard approaches to creating a Singleton Pattern and is how you would probably expect to see things in the Java world. C# creators (and VB.NET too) new about Design Patterns when they were creating the language, and added a few nice features that makes it easier to do things such as this. The below is a Singleton Pattern creation the .NET way:

sealed class DotNetSingleton
{
  private DotNetSingleton() { }

  public static readonly DotNetSingleton CreateInstance = new DotNetSingleton();

  //small method to prove only one instance gets initiated
  private int counter = 0;

  public string CountValue()
  {
    return (counter += 1).ToString();
  }
}

As you can see from above the .NET version is much simpler. We create a static readonly property of type DotNetSingleton. Because it is marked static readonly it can only ever have one instance of DotNetSingleton. Note the class is now a sealed class, meaning it can't be inherited.

I am hoping to introduce several Design Patterns in the next few posts, but there are also several great resources on the net.

Do Factory is probably a good place to start, but as usual Google is your friend!

Next time, the Factory Pattern.

Wednesday, February 07, 2007

Macbook Pro First Impressions

Well, it finally arrived. Was it worth the wait. F**K YES!

I have owned PC's in various guises since my first 386SX-20Mhz in 1991. Since then I have owned and used literally hundreds of PC's. I got my first laptop in 1999, it was an IBM Thinkpad and I thought it was Christmas. I have used every version of Windows since 3.0, and Dos 3.3 before that. I am a professional programmer who makes a living off using Microsoft products, and developing for Microsoft OS's.

So in summation, I am not some blatant Apple fan boy. I know the ins and outs of PC's better than most. The reason I am relaying this information is because I think from here on in, this post could get a little Pro Mac.

First Impressions:


The packaging is first class. Every little thing is thought of. The styrafoam packaging is classy, and laid out well. There is nothing in the box that doesn't need to be there. The power cables and adapter are a nice designer white. All in all the packaging is brilliant.

You turn the laptop on, and OSX comes up straight away. That is nice. Usually with a PC laptop, there is still some final installation that is required. Once the obligatory sign on stuff is dealt to, you are away.

Nice touches

It's the little things that make the difference. The power connector is magnetic so it doesn't rip the side of the laptop off, if someone trips over it. It also has a little LED on it that is red when charging and green when finished.
The Apple logo on the back glows, as does the keyboard when it gets dark. This is so you can use it in the dark and still see the keys.

Oh and the other cool feature I noticed right away - you push the off switch and it realises you want to shut down and brings up the shutdown/restart menu. Nice.

The touchpad understands gestures too. For example you can push down with one finger and scroll up and down with another, and it acts like a scroll wheel. Again just a little thing but nice feature non the less.

OSX
I haven't played enough yet to give a full appraisal, but so far I like it. Again it's the little things I like. The fact you don't need to click "OK/Cancel/Apply" when you change something in the System Panel. It realises that if you changed it, you meant it and you don't want to be bothered again.

The integration between OSX and things like iTunes and PDF documents is much better than Windows. I guess this shouldn't be a shock. The great thing about the MBP, is that it comes with a remote, that you can use when using iTunes, or playing a DVD, or showing a photo slide show. It swaps seemlessly between the fullscreen applet and normal OSX. It is instantaneous. I have seen a few other PC makers try this. My work Dell for example has a Media Centre, but it is slow and switching between Media Centre and Windows takes several seconds.

Annoyances
The single mouse button is taking a little to get used to, as is the command key. Also the touch pad seems to freeze when switching applications from time to time.

That's it so far!

Conclusion
It just works. That is the overwhelming feeling I am getting so far. It just works.

Black Craps end of tour report card

I just heard Fleming from the press conference from the dismal effort last night against the poms. He said something along the lines of, "We are on track. We feel comfortable where we are, and we are happy in the knowledge we ran Australia close with room for improvement".

Sorry. Happy getting close to Australia? Of course you have room for improvement, you lost every game. I can't understand this mentality. To me the tour was a failure. They failed to make the final, failed to beat Australia, and failed to stand up when it counted against England.

They've had "room for improvement" for the last 5 years. A sign of a good team is playing to your full potential every game. Not looking good getting to 20 odd and then getting yourself out, or dropping easy catches. If catches win matches, then we had no chance of winning. It was the worst display of field I have seen from the current team. The pride themselves on their fielding. The must have dented pride after this tour.

Anyway, here is my end of tour report card in batting order.

Stephen Fleming 2/10
Looked terrible with the bat, scored a hundred in the last game but that was too slow and cost us the game. Let things happen in the field too much.
Nathan Astle 2/10
Saw the writing on the wall and retired. His time had come.
Lou Vincent 7/10
Had the spark we need at the top of the order. Always competes, some other players could have his attitude. Live wire in the field.
Peter Fulton 3/10
Got a start in every game but didn't go on. Needs to sell his wicket a little dearer. Made some awful gaffs in the field too.
Ross Taylor 5/10
Has the makings of a genuine world class player, but needs to get a little more out of himself.
Hamish Marshall 1/10
If cricket ever bought in the pinch runner or fielder law, like baseball he would play every game, but otherwise is not an International player.
Craig McMillian 2/10
Did his usual by playing one good knock on tour. He should take advice from Nathan Astle
Scott Styris 5/10
Came in too late in the tour to be effective but is a crucial part of the team
Jacob Oram 8/10
Shining light of the tour with the bat, which has reached a new level this tour. Bowling needs work, but will come. Brilliant gully fielder.
Brendon McCullum 5/10
Glove work was pass mark, dropped a couple of catches. Not suited to the swinging ball at the top of the order, but can be a devastating finisher.
Daniel Vettori 7/10
Continually gets more out of himself than his ability would indicate. The rest of the team should look to emulate his attitude and aptitude. Would make a good captain.
James Franklin 4/10
Lusty blows with the bat, shouldn't disguise his bowling is up and down at the moment. Dropped several chances in the field.
Shane Bond (100%) 6/10
This is the Shane Bond that actually hits the pitch. Looked good when he did
Shane Bond (50%) 1/10
Looked very ordinary when not at full clip. Bowled a hit-able pace and length.
Mark Gillespie 6/10
Was the find of the tour. Needs more consistency going forward, but looks the goods - particularly at the death.
Jetan Patel 6/10
Made the most of his chances in the limited games he played.

So the average mark was 4 which is a fair result of the tour in my opinion.

Monday, February 05, 2007

Apple Update 3

So, my Mac Book Pro didn't arrive overnight. Didn't think it would. It however didn't arrive this morning and courier run is usually around 10. Starting to get suspicious. Inquires have found out the the courier company has lost the thing. OMFG.

Man this thing better be good, with all the stress and agrivation it has caused. Someone out there just doesn't want me to have a Mac.

It really shouldn't be this hard.

Friday, February 02, 2007

Apple Update, erm, update

HN rang back, said there were non glossy screened one's in the warehouse in Auckland. I suggested they get one on a courier overnight.

So good work in the end. I finally found someone who was willing to get of their arse and help out, and go some way towards restoring my faith in shop assistants!

More to follow I'm sure when it arrives. Genuinely excited about it arriving, which I guess why I was so frustrated at the delays.

Apple Update

Ok so 3 weeks have passed and no Mac Book Pro. Harvey Norman just rang and said it is going to be another 3 weeks. That's it. I've had enough.

Dell may be unstylish and bland, but at least they can deliver in under 6 weeks.

Ratshit Customer Service

I have been stewing over this for a while. I just seem to keep running into really bad customer service.

It started at Harvey Norman a couple of weeks before Christmas. I went in to buy an iPod for my wife. I knew what I wanted, had the money and just needed someone to get one for me. I stood at the counter for 10 minutes, while the one person on duty at the counter talked to a guy who clearly wasn't going to buy anything. I got sick of that and went over to a bunch of employees who were standing around talking.

"Not our area", was the reply. So I left and bought one from Dick Smith.

I (foolishly) went back to Harvey Norman to purchase a laptop. To call the guy I talked to incompetent was a slight on people who are actually incompetent. This guy if he works at it, could aspire to be called incompetent. Anyway, I ordered the laptop (Macbook Pro) which was over $4000 worth of kit. 3 weeks have passed and I am still waiting. "I don't know when it will arrive", is the response I get whenever I try and find out about shipment date.

No one ever tries to call the Apple supplier (Renaissance I believe) and find out when it was shipped or an expected arrival date. They have my money now, I am of no use to them obviously. I mean how long would it take to at least look like you're doing something? The 5 minutes it would take to find out is obviously eating into their staring at the wall time, or more likely scratching their arse time.

That's ok. It will arrive eventually. Will I spend another cent in Harvey Norman? Not on your life. Even if the same item is more expensive somewhere else, I will never buy another item from Harvey Norman. Ever. People ask me all the time, "Where is a good place to buy X?". I can guarantee I won't be recommending Harvey fecking Norman to anyone. So five minutes making a phone call has potentially cost them a lot of money.

I was out of town this week sorting out a few loose ends for a client. I was walking to their office and went past a Starbucks. Thought I would try them out. It was about 7:30am and there were two staff, and one guy at the counter who was obviously a friend of the serving girl. I stood in line while they talked for about 5 minutes, said excuse me a couple of times, stomped my feet and walked out. So stuff you Starbucks, I am never going to step foot in your establishments ever again either.

It doesn't take much to offer good customer service. It doesn't cost much either. The cost of not giving good customer service can never be quantified of course, but I would imagine that one bad staff member could be costing a lot more than the minimum wage the employers are paying....

Friday, January 26, 2007

Damn missed again

Forned top 25 "Web Celebs"

A bit questionable this one. As with any list I guess. Again as usual with these sorts of things, it is very US centric. Don't ya just love those lists of "Best 100 Sportspeople in the world", that are all yanks, and include fatties from the NFL.

Anyway, I haven't heard of half of these people, which to me is a barometer that it is pretty crap. As the "WebCelebrities " are most likely bloggers from what I can tell, and still most blogs are read by geeks, rather than the mainstream, there are a few glaring omissions:

Joel, from Joel on Software
Drew from Fark
Kevin from Digg

Oh I seem to have been left of too.

Wednesday, January 17, 2007

Recursively Copying files in C#

In a project I am working on (an IIS admin interface for Boss) I need to copy all files from a Source Directory to a Destination Directory, but have the option to skip the copy if the file already exists.

I instantly thought of the SHFileOperation Shell32 Api call, and went as far as wrapping that in C#. That works fine, but either overwrites existing by default, or throws up a GUI interface asking the user if they want to overwrite. This is a web app so this wasn't an option.

I decide to roll my own, and discovered that it wasn't that hard. Worst part was recursing the directories, but I dusted off some old "C Programming 201" memories and got that sorted.

Anyway here is the code:

using System;
using System.Data;
using System.Configuration;
using System.Collections.Generic;
using System.IO;

///
/// Class that recursively copies all files in source dir to dest dir
/// Can overwrite existing or not.
///

public class DirectoryCopy
{

 private List _dirList;
 private bool _overwriteMode = false;

 public DirectoryCopy()
 {
 }

 ///
 /// Copy the Boss Files from install dir to website
 ///

 /// Path to Copy From
 /// Path to Copy To
 /// Base Path to truncate from destination path
 public void Execute(string pathFrom, string pathTo)
 {
  _dirList = new List();
  BuildFileListWithFiles(pathFrom);
  foreach (string file in _dirList)
  {
   try
   {
    string destFile = file.Replace(pathFrom, pathTo);
    CreateDirIfNotExist(Path.GetDirectoryName(destFile));
    System.IO.File.Copy(file, destFile, _overwriteMode);
   }
   catch (IOException) // if files exists then that cool just keep going
   {
    continue;
   }
  }
 }
///
/// Recursively copy files given a Source and Destination Directory.
/// Option to overwrite existing
///

/// Source Directory
/// Destination Directory
/// Overwrite if file existsts?
 public void Execute(string pathFrom, string pathTo, bool overWrite)
 {
  _overwriteMode = overWrite;
  this.Execute(pathFrom, pathTo);
 }

 private void CreateDirIfNotExist(string path)
 {
  if (!System.IO.Directory.Exists(path))
   System.IO.Directory.CreateDirectory(path);
 }

///
/// Get Sub Dirs and Files of a root directory
///

 private void BuildFileListWithFiles(string rootDir)
 {
  // Iterate through all directories
  string[] subdirectoryEntries = Directory.GetDirectories(rootDir);
  foreach (string subdirectory in subdirectoryEntries)
  {
   string[] files = Directory.GetFiles(subdirectory);
   _dirList.AddRange(files);
   BuildFileListWithFiles(subdirectory);
  }
 }
}

Apologies if the formating gets screwed.

Refactoring suggestions welcomed and encouraged.

Tuesday, January 16, 2007

Crap Bats Disaster

Ok, we almost pulled that one out of the fire. Brilliant fielding as usual and Patel was great - he bowled very well and caused a run out in the field.


However, this should detract from our woeful batting. In fact it should highlight the fact that if we had got a few more runs then we would have won. It is clear to me, that our fielding unit is as good as any team in world cricket. We are a balanced attack, and when Bond fires we can scare any team. The fact he hasn't really fired yet is highlighting how well the rest of the unit is going. Jimmy Franklin is probably the weak link, but he will make way for Oram or Styris or both.

If I was "The Ferocious Mr Fixit" here's how I would put it:

The Problem:
Our batting has the ability, but the line up is wrong.

The suspects:
McCullum is a fine finisher. He just looks ordinary against the new ball. He has all the shots in the book, but some players just can't handle the swinging ball. It also looks like he is trying too hard.

Fleming is badly out of touch. Astle is hit and miss but should stay. Taylor is class, but is running the risk of having his flair coached out of him as seems to happen to all young New Zealand players.

McMillan is a stop gap measure at best. Fulton looks ok, but needs to stop getting out in the 20's - application and concentration. Vettori is class, but again needs to get more out of himself, and the tail without McCullum to boost them looks very long.

The Fix:

Astle and Fleming to open. Astle told to play his game, and Fleming applies himself as the glue that holds the innings together.

Taylor at 3 and again just told to play his game, but prize his wicket and remember that he can't play the big shots from ball one.

Fulton Ok at four, but would be pushed down when Styris back.

Macca finally put down, and replaced by Fulton when Styris back, or a Marshall until then. A Marshall only needs 20 odd cos it saves 20 in the field.

McCullum at 6 or Oram when he fit. Vettori at 7 (or 8 when he Oram fit) and the rest of the tail. I would leave the bowlers as is, but replace Franklin with Oram when fit and rotate Mills, Patel and Gillespie depending on conditions.

The biggest change I would make, would be to not worry about scoring 100 in the first 15. I would tell the top order to nudge it around, and only look to hit the bad ball for 4. Goal would be 2 or 3 down for 100-120 at the 30 over mark. Let the middle/lower order get the bulk of the runs, as that is where our riches are. Taylor, Fulton, Oram, McCullum and Vettori are all potential match winners and the top order with runs on the board can score readily later on.

Sport is about playing to your strengths. Our strength is our middle/lower order. Just because other teams look to get off to a flyer doesn't mean we need to. Play safe, sensibly and leave the hitting to the guys who can.

From time to time it wont work. That is obvious, but the current system hasn't worked for a long time. New Zealand and Fleming in particular used to be the innovators in the One Day game. We had to, to overcome our limitations. I think it's time to innovate again. For the sake of all New Zealand sporting fans.

Crap Bats do it again

What a tremendous cricket team we have. Rolled for 205 against what could laughably described as England's attack. I'm sure the Bangers would have made more than 205 against Anderson, Collingwood etc.

It is the lunch break as I write this, comforted by the knowledge that this is England, and we are in with a punchers chance against them. If Bondy could get a couple early and Lucas and Patel bowl well England could do their usual Hari Kari. I can't see it to be honest, they have looked the better team for this half of the match anyway.

I'll post a follow up when (if) we lose and make some suggestions as how to fix this disaster we call a batting line up.