Skip to main content


Showing posts from October, 2004

Wise Installer 0, James 1

As you may have read in previous posts I've been using Wise Installer to create MSI files of our software for the PocketPC and Smartphone. However a deadline on Wednesday to go and demonstrate one of our applications and a still non-functional Wise installer led me to return to basics and get down and dirty with .CAB, .INF, .INI & .MSI's...and guess what? It's actually not too unbearable!

Starting on Tuesday afternoon I had a working MSI installer with custom actions and multi-cab install in about 4 hours. The problem with getting this stuff to work is that there really isn't a great overall guide to it all. I Googled a couple of links and used the MSDN Compact Framework FAQ and after reading through it all understood pretty much what there is to know and plugged it all together. These are the links I used...

CodeProject - Packaging and Deploying PocketPC applications…


What do hitting a golf ball and software development have in common?

Well I'll tell you...consistency and quality.

Tad-da...I present to you, AGA..Agile Golf Analogy...that's right folks, you heard it here first. The next time you hear "We've just duffed the project into the rough" or "We're in a bunker with the workflow components" you know there it originated.

I've have a couple of conversations over the last few days about our experiences using SCRUM and as usual there was lots of interesting thoughts and theories to emerge. It wasn't until I was at a driving range with some other guys from work and one of them said "it's the same swing just a different club" that it hit me. The key to a great golf swing is absolute consistency in the rhythm, effort, control and technique you use. The golf club does the hard work for you.

Your shot is your Sprint.Your swing is your project team. Your club is your engineering practices.Your b…

This week I've mostly been...(#2)

Last weeks Success-o-meter - 37.5%

Transparent Winforms - 0%..although I did find this article on developing irregular shaped forms with .Net CF (via OpenNetCF/Alex Feinman)Security documents for KPI the copy done - 50%MMC Snap-in for KPI/Mobile device management - 0%Horse riding lesson, well I got a freebie when we went to visit my girlfriends horse back up North at the weekend - 100%
Here's a picture of the beast...or rather 'Royal' as he's affectionately known with Caz's sister Becky riding him at a show this year,

Still reading Excessionby Iain M. Banks, must remember to ring the library to get another extension on it!

Lean Software Development - An Agile Toolkit by Mary Poppendieck. Only really started the first chapter so not got my teeth into it yet. The Software Factories book also turned up thanks to my boss Colin bringing a copy back from Redmond but god knows when I'll get round to this one!Securing Web Services - decided I needed…

Dare ya...

As mentioned in a recent post I've installed MCE2005 - and scanning back through some previous Gizmodo posts I came across this Home Automation plug-in to MCE2005 from HAI.

Now I love my gadgets and love the idea of a central integrated control system (just using WebShifter to schedule TV recordings from my Smartphone is currently pushing my geek buttons) but connecting a Windows based PC to things that could potentially destroy your home*....hmmm. Still MCE2005 is nice and extensible (check out the SDK here) so maybe I can make some money from an 'Alert Emergency Services' plug-in!

Anyway these guys are the UK distributors for HAI - my next post will probably from the park bench just across from the smoldering remains of my flat.

Seriously though I'll be checking out the product line up and prices - it looks a fantastic system and having it in marks.

PS: If you are installing MCE2005 don't bypass "Windows Messenger" on the install if you want IM in…

Embedding Assemblies

A colleague and I had an interesting problem this afternoon with running a .NET executable we had created from within a Wise authored MSI. Basically the exe collected some values from a custom form and did some processing on them. The exe had a reference to an assembly that contained some functionality we needed so didn't think twice about adding a reference to it.

However the MSI would bomb out with a missing file exception to the referenced assembly. The console window that popped up showed the exe was extracted and copied to C:\Windows\Install (hidden folder) and executed there - obviously the referenced assembly was nowhere in sight.

A bit of rummaging around on Google and came across this life-saver on how you can implement an assembly resolver to load an assembly you have added as an embedded resource to your exe once the usual assembly locations have been searched by the framework and turned up empty.

There are a few issues with it if you read the comments but it saved my baco…

Orange c500 ROM update

The uber-phone gets a ROM update to fix the GAPI plus,
Videos can be sent via MMS
Flickering issue in games has now been fixed
Packet video full screen mode and backlight fix
Improved memory management of the camera and video applications
Improved browsing/upload speed (changed from GPRS class 8 to class 10)

It's a 22mb download from Orange's website

Via OpenNetCF/Peter Foot

Unit testing data

Speaking with a colleague the other day and he was talking about how he was constantly having to check the data feeds he was getting from another consultancy working on the same project.

Obviously schema validation and the like run transparently but what he was talking about was how correct the data was once it had actually been transformed into the right format for loading into his database.

We started talking about "known and expected values" and being able to write unit tests against them to prove that the upstream transformations are putting the right values into the right fields.

I think there is some mileage in this approach - obviously your type of project or data might not applicable to this (too volatile?), however if you receive regular data updates it's worth writing some simple sanity check unit tests to cut off at the legs any time wasted in tracking a bug down under the assumption that it can't be the data.

TV shows that never made it

Whilst driving home on Friday evening the radio presenter was talking about TV shows that you thought were great but never made it. My vote would have gone for Bakersfield PD, shown late nights on Channel 4 way back in 1994/5...anyone remember it?

I'd love to see a few episodes to see if was as good as I remember it...

This week I've mostly been...

Excessionby Iain M. Banks, great book so far and thanks to Howard for recommending this series of books to me.

Lean Software Development - An Agile Toolkit by Mary Poppendieck. A colleague (and fellow Certified Scrum Master) of mine Ian, has just come back from this two day course (pdf) run by Mary herself - quick chat over email about it and Ian is full of good things to say about the event, can't wait to catch up properly with him and also nab his copy of Software Factories, the authors of which are currently making waves at Microsofts Strategic Architects Forum in Redmond this week. Our CTO Colin was there so I should be able to get the low down from him when he returns.

[I'm very interested in this Software Factory concept and will be investigating further - I think I can apply some of this to the .NET CF mobile component framework I am building - expect to see some more posts on this]

MCE2005 - I've dual booted my current media server (XP Pro, ShowShifte…

Welcome to the desktop of the future

Personally it made me a little nauseous after a few minutes but it's damn cool (and written in .NET)....want that "Minorty Report" experience? Get SphereXP here.

All it needs is the mouse "throw window" logic from the nVidia display drivers and this would be awesome. With a bit of practice you can stack up loads of windows and "drive around" the virtual desktop quite well. This might have to go on the home PC linked up to the 42" plasmay...

Other "cool" things installed recently are Desktop Sidebar

RSS "Newsroom" function and newspaper featureWeather PanelPerformance PanelMSN PanelGoogle search bar (bit buggy)Don't Like...
Mail Panel (bit too slow but well programmed)Contacts plugin (half finished?)and Nasa World Wind (via The Furrygoat Experience)

Mpx-220, no thanks!

Finally got my hands on the Motorola Mpx-220 Windows Mobile Smartphone and was well...massively unimpressed.

I'm a fan of clamshell phones, they are usually smaller and the screen has better protection from scratching etc. I plumped for my SPV e200 back in the summer as A) it was a free upgrade and B) the Mpx-200 was only Windows Mobile 2002 - no .NET CF support.

So after running with a candybar phone for about 6 months now I was keen to see how a clamshell felt again and how it stacked up against the awesome c500, the latest SPV offering from Orange.

Initial impressions of the 220 are that it's an ugly phone..big ugly phone. I liked the 200 design and you can see here how much bigger the 220 is from the previous version. The 220 design is very fussy and the bit where the aerial is makes it look like a shaver IMHO! (now there's another great with built in shaver!).

The nails in the coffin were the small screen and the build quality - the battery cover is fair…

You can never have too many friends

Well - you can actually...more than 150 and you have to pick and choose if you want to communicate with them on MSN Instant Messenger that is.

And no I don't have over 150 friends to IM - we have a solution that uses dotMSN to leverage MSN as a self service channel to access consultant contact information. The other day we wanted to add a new member of staff to the bots contact list and hit a "too many contacts" message. 2 seconds on Google found that MSN has a limit of 150 contacts and there are MSN plugins (and other IM clients) that get round this problem...however as a service bot we rely on dotMSN and MSN's IM channel...

Not a big problem...we cleaned up the contacts list by pruning out some old contacts and this issue has been put on the back burner for now but it does pose a ceiling on the viability of using IM as a self service channel.

Stopping unwanted marketing phone calls

So far this morning I have received four calls on my home landline, all of them from some sort of automated dialing system spouting a pre-recorded promotional crap message.

Time to go ex-directory I thought after the last call. Fired up the website and found a section on unwanted and malicious calls - bingo! What you need to do is "opt out" from unwanted marketing calls using the Telephone Preference Scheme.

In 28 days time I should be experiencing peaceful, junk call free weekends :-)

Mobile phones will be the death of you

Liver failure to be exact...

Team these two new UK based services up, SMS Pub Crawl and SMS Beer Vouchers and there is no reason to be gasping for a pint...ever!

Three cheers for the mobile revolution! For he's a jolly good fellow...

Good job "Geofencing" is around the corner to keep an eye on the work force although I suspect a "shock" feature would be to a few peoples liking after a few pints!

If you like TV...'ll love this. Terra-byte Tivo box from Sony....OMG, makes my piddly home media centre look like a ZX81.
BTW: This came via Gizmodo - not only does this site provide a constant stream of updates about bleading edge products but the guy who writes it comes up with some fantasticly funny comments once in while. Well worth subscribing if you like your gadgets

Event driven components

I am a massive fan of event driven programming but I rarely see developers making use of it - it usually provides the best way of keeping a component "clean". By "clean" I mean the design integrity and functionality is not compromised by or dependent upon other components.

E.g I can't cleanly drop the component into another project without it requiring all sorts of other assemblies being carted along with it - usually these are client/project specific and have no place in another clients project. What follows is a session cutting these dependencies and extracting & patching up the core component...oh and by the way, development efficiency has plummeted because of the time spent on this.

The number of times I have seen code that would make a good general component "contaminated" by references to project or client specific literals, constants etc is unbelievable. Using events to gather configuration information, run time operating values etc is the w…

Cross town traffic

I had a great idea for people who block the yellow no entry grids at road junctions this morning whilst waiting for one to clear.

Your car, enabled with an RFID style chip accumulates time penalties when ever it is covering one of these grids. As punishment your car then will only go at 5 mph for duration of the time penalty (this is my more vindictive creative side coming out). At some point in the future I'd like to see the car teleported to a "sin-bin" for the duration - just a matter of time 'til the boffins invent it, mark my words.

I'm sure there are plenty of "proper" fines that could be wired in and I've read other news articles detailing big brother style monitoring of cars (and the driving habits of the owners) - this is something that will happen mainstream soon (5 years?) I'm sure.

My advice...get that sports car now whilst you can still enjoy it!

Let blogging commence...

Well after much prodding and cajoling from colleagues and friends I finally have taken the plunge and created a blog!

First, a little about me...

I'm a thirty something year old IT consultant in Microsoft .NET technologies and I currently specialise in Windows Mobile business application development using the .NET Compact Framework. I've been developing software for nearly ten years now and I would go far as to say I actually enjoy developing applications for smartphones & pocket pc's (beats dull commerce websites anyway).

I work for a UK based consultancy in West London - which will remain nameless to protect the innocent and allow me have more fun at their expense ;-). I have about 250 fellow workers here in the UK (and a few sprinkled around the US too) - some of them tremenously talented. My most recent project employed SCRUM, one of the new (ha, 15 years old actually) breed of agile project management methodologies and this has rekindled my faith in the IT industry a…