Thursday, November 27, 2008

Inheritance Gone Mad

When I was a young programmer (so many years ago) there were differing views on the use of multiple inheritance in C++.

Some felt it shouldn't be used because it added unnecessary complexity, others thought it was absolutely fine when used correctly and appropriately.

I fell into the latter camp, feeling that it had a place.

But even I was a bit surprised to see the inheritance list for a class generated by the wizard in Visual Studio 2008 for an ActiveX object that will be used in Internet Explorer.

I'm hoping I've incorrectly ticked a box on one of the wizard pages since there were 21 entries! 

I'm now looking through the descriptions for the numerous interfaces and classes in the list to work out what they all do.

Monday, November 17, 2008


I also spent some free time today catching up with some blog reading and came across Peldi Guilizzoni's balsamiq blog.

If ever the Micro-ISV owner/developer needed an example of why we do this or what the dream is then Peldi is it.

Balsamiq Mockups looks like a great product too.  I'm looking forward to trying it out after playing with the online trial.

A day at home

I found myself unexpectedly at home today.

This gave me lots of time to just sit and work away on various things which reminded me how much I like working at home and how productive the lack of distractions can be.

The morning was taken up with some client work - trying to find solutions to some annoying, and difficult to re-create, bugs.  But it was successful in that I found a good re-creation scenario for one of them and a solution was soon forthcoming.

This afternoon gave me some clear time to look over my own product in development.

I mentioned in a post on September 26th that I was switching development to a different product.  This has come about more through luck than anything else!

Recently, I've been developing an ActiveX component for a client to allow them to do something specific from IE in their web based applications.

Initially I was asked to find a commercial product to do this work and I did actually find and recommend one.  But the client wasn't entirely happy using a product produced by a Micro-ISV!  The question of support in the event of something happening to the developer was raised and the ISV didn't seem to have an answer acceptable to the client.

So they opted, instead, to have a budding Micro-ISV (i.e. me!) develop a solution for them.  Which I did.

The component I developed was functionally specific to the client but it did make me wonder if there was a market for a more general purpose version and, if so, was anyone doing it already.

I knew of one component, the one I initially recommended, and a web search turned up a couple of others with similar levels of functionality.

They all have wildly different pricing structures with multiple extra cost add-ons, ongoing support costs and differing core feature lists.

I did a round of market/company research too, including obtaining some publicly available company financial reports for the companies selling the products I see as competitors.  I sense-checked all the findings with some friends too, just to make sure I wasn't just seeing what I wanted to see.

In the end I decided there was space for another product in the market.  I have a slightly different feature list which will help to differentiate my product.

For the past few weeks I've been working on the prototype code.  This has gone very well and I have a prototype that has all of the functionality I want in the base product.  And it works too!

I've moved on now and have started coding the real version, carrying over the prototype code where appropriate.

Locking down the component, in terms of licensing and ActiveX security, is something I need to look at soon.  I know how I want to structure the versions of the product, but I'll need to work out how to accomplish this in an ActiveX component loaded into IE and used from JavaScript / VBScript.

Saturday, November 15, 2008

No more Dell PC's

Having purchase pretty much all of my PC's, and laptops, from Dell for nearly a decade I've decided to revert to building my own again.

Why? The shocking price of replacement parts when something goes wrong!

My Sons PC stopped booting reliably and I tracked the problem down to either the motherboard or power supply.  Given that it did boot occasionally I figured the PSU was the culprit.

This was confirmed when, one afternoon, I unplugged everything and reconnected all the cables before powering it on.  BANG! PSU let go in a haze of acrid smoke and one or two sparks.  Fantastic, haven't seen a PC go like that for years.

In days gone by, when building your own PC, you'd just order a stock PSU of the correct wattage and you'd be off and running.

Not with Dell, you end up paying over the odds at one of the few companies providing spares in the UK.

So, I reckon I'll be looking for a new PC in the New Year and it won't be a Dell this time.  I'm compiling a list of components and will just buy them individually and put together a machine.

After that it'll be time to buy my first Apple.  I do like my new iPhone and I'm having to stop my left mouse button from clicking on the "Order" button for a Mac Mini.

I do like the Apple products.  My new iPhone is keeping me amused, as well as placing calls, and I wouldn't be without the Apple TV having had it since it was first launched in the UK.

Finally - another item ticked off on the to-do list.

Well, if I was surprised at having a month between blog updates I should be shocked this time since it was even longer.

I was right about the website, it became an excuse not to do anything else.  The solution?  To finally finish it.

I sat and finished the site this week, making myself sit and actually complete the small outstanding tasks and checking cross-browser compatibility.

The whole site is now sitting in a staging location just waiting on some permissions from people who's businesses I'd like to use as mini case studies.  A yes from all three means just a directory copy and the site is live.  A no just means dropping a couple of links and doing the same copy.

Fingers crossed everyone is around to answer e-mail and agree to the use of their company names on the site.  That being the case the new site will be live by this time next week.

Thankfully, once the site was complete I kept the momentum going by returning to development.  Not on my original first application though.  More on that in another post.