Small Software Vendor? Finding an e-commerce partner (Part 2)

A while ago (or, MORE than a while ago!) I started looking for an e-commerce vendor for my small, bespoke software company.

I looked a number of potentials:

Cleverbridge
Avangate
FastSpring

Out of the three, I had worked with Cleverbridge and Avangate. And found both to be competent.

However, FastSpring as a new kid on the block – and I have to say, I was very taken with their nice user interface, and flexibility.

One provider, Cleverbridge, quickly ruled themselves out. Upon contacting them, enquiring about their services, I was quickly told that they “only deal with companies with a monthly turn over of more than $20’000”. But they could do me a deal of a 12% commission and a $5000 setup fee.

Hmm, so then there became two.

After much tooing and froing, I have to admit, it was pure aesthetics that won. I just like the FastSpring user interface, and their support was exceptional.

So, I’m now a FastSpring customer. The Wildfire Software online store will be launching the same time our first product is released – some time this month in fact.

2009, 2010 .. and the future

It’s been a couple of years since I did a rough round-up of the year gone by (I actually thought I posted one last year, but it seems not!), so I thought it was time that I did another one. That and my good friend beat me to it. However, I have to say, I think his year looks better than mine was!

Back at the end of 2009, I remember vowing to my close friends that were celebrating the end of the year with me that there was no way 2010 could be as bad as 2009. Oh how wrong was I.

In January 2009 I lost someone who had meant an awful lot to me when I was growing up – and, I have to say, someone who I hate to have lost contact with. It was, unfortunately, one of those “I must just” instances, always wanting to make time to get in contact, but never actually succeeding.

In January 2010 I lost my grandmother on my fathers side; someone who I spent a lot of time through my childhood. Needless to say, it hit hard.

For both years, I worked exceptionally hard, keeping myself busy and, to be honest, not really looking at much else except work. Except of course taking the motorbike out for the odd spin … but I didn’t really ACHIEVE anything. At least, that’s how it feels.

However, the biggest difference against 2010 and 2009 … I quit my job – and went self employed. Only time will tell if this has been a good idea or not, but this year, I have made the decision that I have to allow time for myself. Time to relax, and enjoy what I have and with the people in my life. Somehow I still have to find out how to fit this into being self employed …

Oh, that and complete my Avaya training, and time permitting, do some more Microsoft exams (got to keep things current you know!). Maybe even do a presentation at a technical event. Who knows.

Cisco 870's and upgrading Flash memory

I recently upgraded my Cisco 877’s with additional Flash memory modules to max them out, and let them take the newer (larger) IOS images.

And I have to say, I hit an unexpected issue when I was doing the upgrade.  It seems the config files (as well as however the flash listing is stored) persists – even if you change out the Flash module. This resulted in the router attempting to boot an image that was no longer present (although when I checked later, it appeared in a dir flash: listing, with a zero file size), and ended up at rommon. A little bit of work later and I copied an IOS image over from my tftp server to the router, and restarted it.

The rommon commands for loading and IOS image by the way are (all the following are essential):

IP_ADDRESS=<ip address for router>
IP_SUBNET_MASK=<subnet mask of your network>
DEFAULT_GATEWAY=<gateway for network>
TFTP_SERVER=<ip of your tftp server>
TFTP_FILE=<filename of IOS Image>

Then enter tftpdnld and hit enter - this actually starts the download.

One router recovered, one didn’t – it just complained about being out of memory, and crashed.

I dropped back into rommon, reset the configuration register to 0x2142 so that it would try loading with no configuration – incredibly it worked. After wiping the saved config (copy running-config startup-config, while booted with no config, and resetting the configuration register) the router worked happily – all I had to do was plug all the settings back in.

It took me a while (not helped by forgetting to save the first time around!), but I eventually got there. I really don’t understand why the router was complaining to start with – both are running near identical configurations, on the same hardware revision – and that even after reconfiguring everything back to how it was, it is now still behaving.

Most odd – one thing to bear in mind, it seems, when upgrading Cisco’s is that you might need to prune your config if it fails to boot your new IOS … that and, always keep your console cable handy!!!

Real-Time Analytics: The Results

For just under a month, I’ve been looking at two real-time analytics services, looking to move my analytics requirements away from Google Analytics – fed up with the fact that Google can not give us a real-time display of what is happening on our websites.

Enter the two contenders:

GoSquared

Clicky / GetClicky

I have to admit, when I first signed up for the two services and logged in, I was initially underwhelmed by the user interface on Clicky, and equally overwhelmed with the one provided by GoSquared. One has gone for an exceptionally simple, clean, functional design (Clicky), and the other has gone for an amazing Web 2.0 style dashboard, complete with the movable / customisable panels etc.

Some quick pros and cons of each, in my opinion:

Clicky

Pros

Really simple UI; Really simple presentation of information

It has a simple API ( more on this in a bit )

Cons

Using Flash graphs Sad smile

Restrictive Goal provisioning (funnels are too restrictive)

Very low number of sub user accounts

Go Squared

Pros

Also has an API, but you really have to dig for it

Absolutely beautiful Dashboard overview of your website

Cons

Very Heavy UI, lots of JavaScript (obviously) means it takes just that little longer than is comfortable to load.

UI doesn't fit comfortably on smaller / half widescreen browser sizes.

Unintuitive user interface. You really have to stop and think when using it to find anything but the realtime information.

 

As you can see, I struggle to actually find anything really unique, defining functional differences between the two – apart from the UI, there is really no difference.

For me to use products, and I’m sure many other people feel the same way, they should be quick, react well when I am using them, and not mislead me. If I have to stop and think, or read a help file, or go Google to get back to their site (but on the right page!), something has failed. Out of these two products, the only one that fell into the “I’d use it” category, was Clicky. No matter how much I loved looking at the GoSquarded Dashboard, it just wasn’t what I wanted. I want something usable. Yes, the graphs are perfect. Yes the information is all there. BUT it takes too long to get there.

Now, why am I making such a big thing about these services providing API’s? It’s all well and good having web applications, but seriously, we are all chained to PC’s most of the working day in this game, and we want to keep an eye on things.  Having an API to a real-time analytics site lets you pull down information – pretty much whatever you want – and feed it into any of your business applications, or in my case, a small local dashboard that sits on my PC Smile

If you too are looking to make the leap from the old-school boring “wait a day” analytics, to something more real-time and don’t want to take a backward step in functionality I would suggest that you do as I did: Sign up for a trial account with BOTH Clicky and Go Squared, and give them a shot.  What suits me might not suit you!

As it happens, I’m now a paid member on Clicky, and will probably be releasing our internal dashboard application soon.

What would I like these guys to do next? Get support for the Silverlight Application Analytics Framework Smile

When automation breaks down

I have to admit, if I can do something online, I will – I manage my Utilities online, I do my banking online, I tend to do my major grocery shopping online. Why? Because it’s easier, cheaper and you can run your errands when it suits you – not when places are open. We all lead busy lives, and online applications make our lives easier by allowing us not to be constrained by the 9-to-5 mentality.

However, there are times these things just go wrong – and cause a lot of annoyance (if not, worse!).

Case in point for this month is British Gas.  I recently moved, and used their online “Moving” form – an easy enough process – login, give them the old and new addresses, last meter reading etcs. No hassle. I filled in all the boxes and didn’t think anything of it trusting them to deal with everything.

Then I start getting post regarding my NEW accounts (the Gas / Electric accounts for my new place) being sent to my OLD address. Very odd.

Anyway, one phone call later I find out that for some reason their system correctly updated the account address for my OLD accounts to my NEW address, but decided to use my OLD address for my NEW accounts. Confused? I was. Who on earth builds a moving form that behaves like this?

To make matters worse, it turns out that there had been a failure in their billing system, and I had not been issued a bill since June. Oh great. Now, I was on their EnergySmart tariff – basically, you pay for what you use, and have to submit your readings online every month – the rest was handled as normal (payment by direct debit).  Well, it turns out that although I HAD been prompted for my readings, which I HAD given, they HADN’T been generating the bill (and consequently, had not been taking payment). Hmm. Because I had phoned them, the nice lady on the other end spotted this mistake. Great. Now that they have finally processed the readings I have been sent a bill totalling almost £200. Ok, I’m not arguing that I do not owe this month, I am arguing that it’s a little unfair that they are demand the payment within two weeks (before the 1st Dec), even though they should have collected it over a period of three months. Rather unfair I’d say considering that it was their systems that are at fault.

Needless to say, I am far from impressed about their processes, testing procedures and general customer service. Considering that they are about to finish sorting out the accounts for my new place, I have a feeling that I might be moving supplier again sooner than I had thought.

Website Analytics; Historic or Real Time?

I’ve been a user of Google Analytics for a long time now, long ago having been drawn in by the prospect of free analytics.

However, recently I’ve been thinking I’d like a more instant, real-time view of what is going on – its now no longer good enough to have to wait up to 24 hrs in order to see who visited your site …

After a quick search I found two possible services that I thought I’d investigate – both seemed to offer a good level of service.

Clicky

GoSquared

So, I’m going to sign up for both as a trial, put them onto my work website (Wildfire Software) and see how things go for a month or so – then I will post a review and my thoughts on each.

But while I’m doing all this, why don’t you let me know what you think of website analytics?

Application Virtualisation: What is all that?

With the recent launch of InstallAware’s Application Virtualisation (or Virtualization, depending on how you feel and where you are from!) I figured that it was about time that I stopped and looked at it all again.

Application Virtualisation is not a new technology.
VMWare have a tool called ThinApp out there that does exactly that.
Microsoft have a system called App-V (can you guess what that stands for?).

So why another one?

Quite simple really.

VMWare’s ThinApp product is probably the closest match to InstallAware’s tool – however, carrying a minimum price tag of $6050 kind of puts most smaller developers – and I include myself in this bracket – off even contemplating looking at application virtualisation or even from talking to clients about it.

Microsoft App-V on the other hand takes a different approach to it. As ever with Microsoft, it’s more an enterprise offering – building on top of a companies existing infrastructure of terminal services, active directory and the like. However, if you have all that infrastructure, and you want application virtualisation totally in house purely for application version control, then this is probably the best route to go.

But what if you want true application virtualisation – something that you can actually easily build, copy onto a memory stick and then run it anywhere: Maybe at home on different machines, maybe at work, the internet cafe, the library – pretty much anywhere.

Introducing InstallAware Application Virtualisation.

The first thing that struck me with this app was the price. It’s not a bank breaker. It’s $999. Hmm. What was that VMWare figure again? Ah yes. So it’s $999 vs $6050 ? And have I mentioned that it’s royalty free?

Both products work by redirecting access to the file system and the Windows registry to a series of files. Both can use setup capture to attempt to automatically build your virtualisation package.

So what are the differences?

Well, I have to admit, it’s been a while since I looked at this arena. It has to be just over a year since I last looked ThinApp, and dismissed it rather quickly. It was just too clunky, too restrictive and I could only ever get my basic applications to work. Every time I tried to virtualise a .NET application (come-on, who ISNT working in .NET apps these days?), it just didn’t work. Being an independent consultant and developer, I don’t have time to waste on applications that make no sense, and just plain don’t work – or come with suitable documentation.

Anyway, I downloaded the InstallAware offering, installed it and immediately noticed that it’s using an existing virtualisation toolkit – called BoxedApp. Now, in my opinion this is a good thing. Instead of trying to re-invent the wheel, they have gone with a company to share knowledge and expertise, and hopefully deliver a winning combination.

My setup for experimenting is fairly limited as I’m just wanting to scratch the surface here:

Builds are on a Windows 7 Ultimate laptop with Microsoft Visual Studio 2010 Ultimate and all the updates (so all dependencies).
Tests are on an older Windows Server 2003 SBS machine, which has .NET 3.5 at most, with all updates. Nothing else – never run applications on here as it’s a headless box.

The first application that I thought I would “virtualise” is a simple C++ “Hello World” application. Nothing fancy at all. For those techis reading this, it was a fully linked binary, with minimal dependencies just to keep things simple.

InstallAware Virtualisation Screenshot

My initial reactions are the main InstallAware Virtualisation application’s user interface could do with a little bit of TLC. It is a little rough, and not terribly intuitive. The input EXE is actually the program you want to virtualise, and you do not have to list it in the files (I’m guessing this is done implicitly). Instead, you only list the files (and registry keys) that your application needs here.

The resulting packed application was around 1.5Mb – whereas the original app file was around 500Kb – so it looks like we get around a 1Mb runtime overhead – not bad at all.

The packed app was copied onto the server and ….

image

Now this could easily be the application running on the machine natively, without virtualisation, so I wanted to try something far more interesting.

Let’s try the same sort of application, but built in .NET 4 on the machine. Just to prove, this machine does not have (and will not have!) .NET 4 installed on it:

.NET Runtimes Proof

Application project settings in Visual Studio 2010:

image

Running the result on the server directly results in the expected .NET version error:

image

In order to get the Virtualisation tool to identify the requirements for .NET 4 (and to work out what registry keys and files it needed to package), I had to setup a “clean” virtual machine, install the Setup Capture tool and then install .NET 4. Why? Quite simply, the prospect of manually feeding the settings into the builder app was not my idea of fun. There are no presets, even for common frameworks like .NET and Microsoft Visual C++.

I should point out that you do not have to mess about installing InstallAware Virtualisation onto your capture machine – you only need to copy mpa.exe and a couple of text files over and run that (and follow the prompts!).

First step in prepping the virtual machine, was to install .NET 2 –> 3.5.

Then I copied mpa.exe, regexclude.txt and fileexclude.txt onto the machine and fired it up. The initial scan completed fairly quickly.

During the build, I opted to make a portable version of the project – this is a special type of project that includes all the files that the virtualisation tools have detected you need, so that you can move it to another machine and keep working – ideal if you are using Virtual Machines for your snapshots.

Unfortunately, this process threw up lots of errors – all around trying to capture the files and information for .NET 4.0. Ignoring these errors resulted in a project that did not work “virtually”. :(

So my conclusions!

It’s a very good start, but it really needs polishing. It’s certainly functional, and does the job – but it has too many hoops that you need to jump through. Mind you, saying that, it has far FEWER hoops that VMWare’s ThinApp!

At this time, in my opinion, it seems like an ideal low cost application virtualisation toolkit for native applications. With a little bit of work (or if you an guarantee the .NET framework is installed on your user base), it would be fine for your .NET Apps too.

What I would like to see though is:
- Pre-set .NET Runtime configurations in the builder GUI
- Drag and drop support for adding files AND folders
- Import support for loading large numbers of registry keys
- Better GUI
- Context sensitive help
- Ability to define platform requirements

 

Disclosure
Now, just before anyone comments, I’m no stranger to InstallAware as a company. I’ve been an avid user of their installation product for a good while and I have done a stint at helping with technical support. I’ve watched the company grow and helped where I can – but that does not mean to say that I always take the “party line” so to speak. 
I’m a developer. That’s my primary job, and that’s how I earn a living. During my work, I encounter a lot of companies – from companies building installation tools (InstallAware, InstallShield – sorry Flexera), virtualisation companies (Microsoft, Citrix, VMWare) and so forth. Every now and again I encounter something which I feel is a game changer; either opening new doors for smaller independent software developers, or perhaps taking an unusual approach to improve an existing situation – much like how I feel InstallAware is a major improvement of InstallShield. Much of my early career I spent working with InstallShield and hated it – and switching to Inno Setup.

Small Software Vendor? Finding an e-commerce partner (Part 1)

I’ve just started looking for an e-commerce partner to work with in order who will process orders for my apps – and I started off with the usual list:

CleverBridge, Avangate, ShareIT, Digital River.

ShareIT and Digital River I have used before, so thought I’d have a look elsewhere.

CleverBridge and Avangate I have experience with through other companies – however, up to now I haven’t heard a peep from CleverBridge. Not a good start.

I did get a tweet from FastSpring who are indeed interesting – I signed up with them, but still have not received my login details yet.

Anyway, looks like it will be a two horse race – Avangate vs FastSpring.

As long as both of them credit my UK account, it will fall down to technical implementation, flexibility and general ease of use. More to follow :)

Is Delphi community stagnating?

Back in the day, Borland brain child called Delphi was a truly revolutionary product – it was RAD. SO RAD. (And by that I mean Rapid Application Development, not the slang, ok? :) ).

Many mission critical applications were built, released (and are still out there) using Delphi – even though all EULA’s say not to use it for a mission critical app, I think a lot of Dev’s would agree, there are times that some of things you do could be called that! Many financial services apps were built in Delphi. Many hospital apps. Pretty much any line of applications you can think of, you can find a Delphi built example.

Why did everyone look to Delphi? Why was it such a ground breaking technology?

Well, in my opinion it had one major thing going for it – you could build a SINGLE executable file with EVERYTHING in it. All (Delphi based at least) dependencies would be compiled into a single file. Deployments were a breeze, as were updates, for simple applications – it was a single file. Why do I say this was a major feature? Don’t forget, back in the day, we did not have uber-fast internet connections. Most people were still disconnected, and reliant on floppy discs (CD’s were too expensive!) – and those that were connected used 56K modems (or less).  Can you really see them downloading the .NET 4 runtime over that? Ouch.

Delphi, during its hay day, developed a massive community – and I mean massive. There were thousand of open source projects sprouting every month, and hundreds of thousand components available – all easy to consume, and many of them with full source.

Delphi was fun, popular, and above all, easy (for a developer) to use. It was a far away from C / C++ as you could get without sacrificing building good quality applications.

What’s the purpose of this post?

Well, Delphi was my first high level language that I really got to grips with, developing Windows GUI apps for the first time. My career has pulled me through many different languages since then, but I’ve always kept an eye on the Delphi community – I did after all run an open source Delphi project, and participated in probably one of the largest out there (Internet Direct aka Indy – check it out, my name should still be in there somewhere!). Recently, I have been pulled back to the Delphi scene. And I’m dismayed. Incredibly dismayed. The community feel seems to have gone, the backing died off.

Why?

Simple. Delphi has, it is a shame to say, not kept up with the times. It still can not do 64-bit for starters. How long have we had 64-bit CPU’s now? It is only “recently” that UNICODE support has been added.

So – are you are Delphi dev? Were you a Delphi dev? What’s your thoughts?

Hawaii - Waikiki

I have certainly been exceedingly lucky, landing a contract to do some work out in Hawaii – in the Waikiki Beach area to be exact.

An incredibly exotic location, amazing weather (although what is up with the wind?), and some mind blowing beaches. Honolulu itself feels like any other American city, until you actually speak to people – life here is so laid back. An incredibly tempting mixture.

I’m staying at the Waikiki Parc Hotel – which is literally a stones throw away from the beach. The hotel, as hotels go, is not bad – room service is decent, and the staff are friendly. The rooms are an adequate size and comfortable enough. I still haven’t gotten around to checking out the fitness area / pool here, but that is partly because I really haven’t had the time and as I don’t swim (yet) I really have no need.

I did, however, drop into the Apple Royal Hawaiian store and check out the iPad. And was most disappointed. I really don’t know what people would actually buy that device for. It would make an amazing ebook reader, but in my opinion it’s too heavy for that. That and if you are like me you get a little careless with your books – you read them in bed, the train, the plane, the beach – and they get dropped. I’d hate to drop an iPad.

Anyway, it’s almost lunch time here, so I better get moving :)