Why Software Sucks...

There are some books that anyone working with computers should just read. Code Complete by Steve McConnell is one of them. And now I've found another one.

Why Software Sucks... (and what you can do about it)  is by David Platt is a book you really should get. It is not hugely technical. It is not hard to read. It will make you laugh (and if you are a developer promptly feel guilty). It is a text which takes as its starting point the fact that we are not really very good at writing software.

It ties in rather neatly with a lot of things that I tell our students when they are writing programs for other people to use, but it also touches on security and a whole host of other issues, always with humour and always grounded in real life experience.

Even (or especially) if you are not a programmer you must read this book. Excellent stuff.

Computers Just Know When to Break

I'm just trying to get the last part of "the other book" finished at the moment. So of course this would be a good time for my word processor to break. Suddenly Word 2007 wouldn't start. When it did run, after a wait for ages, it just sat there grinning at me. If I tried to do anything it froze up again.

Of course the first question I could ask is "How does it know I'm under pressure here?", but I long ago stopped worrying about this. Computer systems just know. Many years ago, when I was writing lots of presentations, my copy of Powerpoint developed the ability to crash whenever I thought "I really need to save now". It did this three times in a row.

I've had so much experience of things failing just when it would be most inconvenient that I'm now convinced that computers just know when to put the boot in.

After some serious digging around, and a near re-install, I found out the cause of my Word problem. I use a network printer at work which I have set as the default printer (which is kind of sensible, since it is where I do most of my printing). This means that Word looks for it when it starts up. Of course the printer can't be found on my network at home, so Word just sulks for ten minutes and then gives up the ghost.

At tip. If you have the same problem, just change the default printer on your PC to one that is always there (for example the document writer) and the problem goes away.

I was feeling very smug this morning when I figured that out and fixed it, and reckoned that I'd got one up on the universe.

Then my monitor abruptly stopped working....

Time machine

For ages the clock in my car has been eight minutes fast. I quite liked this as it seemed to me that I always arrived earlier than I thought. However, this week I decided this was silly and so I set it to the exact time. Snag is that I still seem to arrive at the same time that the clock says, making me late.. Most confusing.

It is as if the car clock is some kind of absolute time which can't be changed. I'm going to set it to an hour fast and see if I arrive at work before I left home.

Live Writer Goes Live

It looks like Live Writer (the thing that I'm using to write this blog) has finally gone, er, live. It was in beta for ages, and the "Help About" screen in my version still says Beta, but now it looks much more like a finished product. All the nice features are still there, along with the plugin structure (which seems to have sprouted a bunch of extra plugins - but nothing as nice as my Flickr Inkifier of course).

If you write blogs and want a lovely place to work, you should take a look here:

http://get.live.com/writer/overview

Easy Money

I won 10p yesterday. I had a bet in a lecture that:

i=0;

j = ++i;

- would set j to 1. (it does, because the increment is done before the assignment). Someone didn't agree, a bet was made. Sample code was written and executed. And I won. I didn't keep the money. I handed it back with a magnanimous "Get yourself a drink on me" which shows how out of touch I am...

I went into today's C# lecture with hopes for similar financial gain, but it was not to be. I think the word may be out that I am some kind of hustler. I really like teaching the first year course. Every year we seem to get a great batch of students who ask sensible questions and enjoy learning how to program. It is rather nice at the moment because we are looking at things where there are no "right" answers, just ones which fit the context better than others. So we can debate these issues. Great fun.

Super Zune

If you've got a Zune (and why not - they are neat devices) then congratulations. You've just got a new one, thanks to a spiffy new version of the firmware that has just been released for all the Zune devices.

I picked a Zune up in the 'states while I was out there earlier this year and they are rather neat. Kind of an ipod with a wifi twist and a nicer (to me anyway) music management tool. And they let you rent your music, which I really like.

If you are signed up with Zune you should be hearing about the upgrade soon.  The biggest improvement concerns the wifi support in the Zune device, which previously limited me to sharing audio files with the only other Zune owner I know in the UK, who lives in Wales. You can now sync over wifi which means that I should now be able to wirelessly sync content with my home network. I'm looking forward to playing with this, with a bit of luck I'll be able to move recorded TV programs onto my Zune to watch when I'm out and about. There are also some very stylish changes to the user interface and the Zune marketplace has started to sprout free, unprotected MP3 files for your Zune too.

And the new PC based Zune player program is just beautiful.

In fact the only thing about the Zune I don't like is that it isn't on sale in the UK yet.....

Wide Screen Pain

My new notebook has a wide screen display which, over the week away, I'd rather learnt to like. So, bearing in mind that I spend a lot of time staring at a monitor screen I thought I'd get a new wider one. So I did.

The new monitor has a fantastic, jaw dropping display of amazing quality. Which is just as well, because otherwise I might have chucked it through the window by now. It is a 22 inch HP job, with an HDMI input as well as VGA and a lovely glossy finish. However, it and Vista just don't get on.

I know exactly how this should work. I know because I've read the White Paper "Transient Multimon Manager (TMM) Ver. 1.1" by Yu-Kuan Lin Program Manager, Mobile PC Business Unit. This is well written, comprehensive and has some nice scenarios that explain just what should happen. Essentially, the whole thing has been designed so that you set a monitor up once, Vista remembers that setup and then replicates it each time you plug that monitor in again.

This does not happen.

What happens is that you set it up once, and next time you plug it in the system does what the heck it likes, with a range of implausible and hard to select display options. Should you be stupid enough to let the screen saver kick in it then does something else. And if you are such an idiot as to put the machine to sleep you can look forward to no screen, a black screen with a cursor, a screen that you can't do anything with because the window is on the other screen or the blue screen of death when you come back depending on the whim of the system.

I'm not sure who to blame here. The monitor has the habit of reporting itself to Vista as one of a number of devices. The HP monitor control program refuses to believe that an HP monitor is plugged in. The Nvidia display driver doesn't even let me change options and Vista seems quite happy that nothing is wrong.

As for me, the picture is so good that I'm just about prepared to live with it for now. But I've lost a couple of hours trying to find out why something which should just be plug and play is nothing of the sort.

iPhone

The HTC S710 Smartphone is the best phone I've ever had. The synchronisation with Exchange still blows me away, with email, contacts and appointments moving seamlessly from my desktop to my portable device. The screen is beautiful, the slide out keyboard superb and the call quality is always good. I can use it to watch movies, listen to music and make it into a modem for my Vista computer. Battery life is excellent. I can write and run C# programs on it from Visual Studio 2005. Truly it is the most effective mobile device I own. There is only one thing wrong with it.

It is not an iPhone.

The iPhone is not a particularly wonderful phone to be honest. It needs quite a strong signal before it will talk to people. The voice quality is OK, but nothing special. The camera is quite good in spite of the limited resolution, but won't take movies, and it can't send a picture in an MMS. The iPhone doesn't have that lovely "type in a bit of the name and I'll find the rest from Contacts" thing that the Smartphone has. Exchange sycnchronisation is non-existent and the synchronisation with Outlook is OK but I have to do it by hand now. I have to use the (in my opinion) horrible and counter intuitive iTunes to get music on it. I can't put my programs into it. It won't connect with a Bluetooth stereo headset. I can't plug my favourite headphones in because the socket is stupidly designed. Thing is, even with all these faults, I love it.

The touch interface is wonderful. Rather than faffing around with a stylus, you can use those things on the end of your hands called "fingers" to control everything. Because the surface is glass, rather than a flimsy plastic membrane, I have no issue with touching it because I'm fairly sure I won't damage it and I can always wipe fingermarks off. The screen is enormous and the browser superb, put it together with the intuitive design of the software and you have the first proper mobile web experience that I can live with. The music player delivers the goods and actually makes album artwork interesting again.

I've been using it for a while now and it is so nice to use that for the moment I've decided I can live without all the useful bits of the best phone I've ever had.

As someone with a huge respect and affection for Microsoft stuff I sincerely hope that somewhere in a lab. in Redmond there is a Smartphone looking something similar to this. The Deepfish project certainly gives me hope for the future, as does the Microsoft Surface.  At TechEd I was waving the iPhone around and telling people that this is the way that phones are going, like it or not.If there is something like this coming along, please, please, please get it into the shops as soon as you can. An iPhone that does all the things that my S710 can do would be the stuff of legends.

Apple devices are always surrounded by hype which I've always taken with a big pinch of salt. However, in the case of the iPhone I think that it is pretty much justified. One thing is certain, and that's that you will be able to split mobile phone history into "before Apple" and "after Apple".

Unconscious Activity

Figure 10
Learn how to do this....

I've just been sent a question about an article that I seem to have published. I sent it over to the OpenNET people and they put it out in August this year. It is all about Image Processing in C# on a mobile device. If you want to take a look, get the code and get the articles, take a look here:

http://community.opennetcf.com/articles/cf/archive/2007/08/30/image-manipulation-in-windows-mobile-5.aspx

Final Talk

Dave Baker and I gave our final talk at TechEd 2007 today. The session was a deeper dive into the .NET Micro Framework and had the title "Small is Beautiful", which was not my idea..... We gave out our second free Embedded Fusion board away at the end for the best technical question.

1916007017
Another satisfied customer gets the goods from Dave Baker of Microsoft.

The chap who won a board at the session on Monday came to see us.

"I'm having a problem" he said.

"Oh dear" we replied, wondering what would have stopped the board working

"Yes" he continued. "I've written a pong game for the board and I get this strange error message sometimes".

I hope we can sort him out, I reckon that if he has just taken a couple of days to get that far he is doing pretty well. If you want the resources from the talk I'll be putting them up later.

Telephoning Exam Papers

While I'm away I installed Skype so that I can phone home cheap. 1.2 pence a minute sounds like a good deal to me. Of course, today when you install applications you often get more than you asked for.

I've just gone on to our departmental Sharepoint pages to look at some past exam papers. All the files are indexed under course codes, which in our department means that we have links that start with numbers like 08101. A Skype browser plugin (which I didn't even know I had) converted all these into into buttons I can press to call each exam as a phone number, which is not terribly useful.....

Sexy Computer Science

I've been thinking a bit about how "sexy" the subject of Computer Science is. In her intro yesterday Karen Young from Microsoft mentioned that it was being seen as less attractive as a subject for students to take up. Applications to study computing are presently falling in Europe and the USA and for the life of me I can't understand why.

A few years ago there was a bit of a dip in the business, but at the moment the demand for computer literate people is as strong as it has ever been. If you are looking to move into a field where you get to shape the future and also build it then you should enter computing. If you like working with people, finding out what they want and creating answers to questions then you should enter computing. If you like puzzles and working in an environment where things just get more interesting every day, then you should enter computing. I can't think of any other field where you have the potential to have so much impact on the future. Computers are already a huge part of people's lives and that is set to accelerate.

For me the question is not "Why should I study computing?", it is "Why would I not?".

Professional Idiot

Sometimes I wonder how I manage to be as daft as I am. I must remember that not everything that seems like a good idea is actually a good idea. Here at TechEd they have a "Diary Room" in a kind of tribute to the "Big Brother" tv programme. It has a big red chair and a camera, and the idea is that delegates can describe their conference experiences which can then be put out as part of the coverage of the event. I guess the purpose is to get a true delegate perspective.

I walked past it this morning and the idea popped into my head that it might be hilarious to record a piece into the camera asking where the butter was, why there was no milk or cheese and then, after carefully examining the conference guide, look up take say "Oh, so it isn't the dairy room after all". So I tried it. Not good. I then made some other rather silly points and finally, for no sane reason, pressed the save button. Arrrgh. I'm cringing as I write this, I just hope that there is some kind of an editorial layer between my stupidity and worldwide distribution via the interweb.

Then, this afternoon I'd been asked to give a talk about being an valued professional. Karen Young, MVP Program Lead gave a great introduction to the program, finishing by making the point that computing is not seen a sexy any more. I started off my talk by wondering aloud if bringing me on next really was going to show how sexy computing really is. Good thought Rob. I then continued to tell all the students how the internet is "The Biggest CV you will ever have", and that you should regard your internet persona as a brand to be carefully managed so that you always look your best. As I was forcefully making this point the awful vision of me in front of the camera asking for yogurt drifted across my mind.

Idiot.

The TechEd Universe

Earlier this year I was lucky enough to go to the Imagine Cup finals. These are organised by Microsoft and provide a great opportunity for students from all around the world to take part in the finals of a whole bunch of different electives. At the time I reflected that when you were at the finals you were effectively at "Planet Imagine Cup" where normal rules don't apply and we could all revel in fun technology.

I'm presently in the TechEd universe. This setup is huge. Everything is bigger this year, from the venue (there is a huge extra building I've not even been in yet) to the number of sessions. They have crammed an extra day's worth of material and have provided a big thick book with tear out pages to keep track of what is going on.  All the sessions are being recorded, and delegates can view the ones they missed.

I was here last year, and they seem to have found a way to make it even better. Wonderful stuff.

Micro Framework Fun and Games

Today Dave Baker and I strutted our Micro Framework stuff in front of our TechEd audience. Someone had rather kindly told Dave that "He must be mad to present with Rob". If I had a pound for everyone who has said that.....

1885227004
We had some very nice toys to show off

The talk went very well, in spite of the fact that I told my favourite and second favourite jokes. I'm saving my third favourite for the talk tomorrow. We gave away a bunch of T shirts, a copy of the book and a complete development kit, so there were some very happy delegates. We had loads of questions, which I reckon is a good sign.

1885224842
At the start of the Dave and Rob show

After the talk I headed off to "Ask the Experts" and spent a happy ninety minutes admiring all the new .NET Micro Framework platforms that seem to have appeared since I last looked, and meeting up with Roger and Colin, who had come al the way over from Seattle to run some porting classes and talk to delegates.

The way that Microsoft are prepared to send over the people who actually make their stuff always amazes me. Delegates can actually talk to the programmers who actually make the products they are working with. It must be hugely expensive in time and effort, but I'm jolly glad they do it.