Yet another rehost of my blog

I’m putting this post up, partly to act as a line in the sand to make sure i’m looking at the right version of my blog. Yes I’ve re-platformed it again. Not off WordPress, no I like it for all its foibles.

It did give me an excuse to think about all the different places I’ve hosted it over the years.

1. VPS, costing me about $20/year for multiple sites. I installed WordPress using the Plesk dashboard that the Hosting Provider had given me.
2. Azure App Service. Leveraging an old marketplace template that no longer exists.
3. Azure App Service and SQL Server. Installed using Project Nami.
4. Azure Container Service (AKS, K8S 1.7.7-1.8.2). Installed using Helm.
5. Azure Container Service (AKS, K8S 1.9.6). Installed using Helm.

The reason for the latest rehost is that my AKS Cluster kept on entering a failed state. I was using version 1.8.2 of Kubernetes, and because of the errors was unable to upgrade.

The latest AKS Cluster is using version 1.9.6 of Kubernetes. The process for switching took but a few minutes since I use UpdatePlus for backups, and an Azure Traffic Manager for routing.

Treasure tag on Windows phone – Where’s the app?

I recently bought a Nokia Lumia Treasure Tag to assist me in finding my keys on the occasions I lose them.
The treasure tags came out in 2013, but I didn’t really pay them any attention. Between then and now, the Treasure Tag Windows Phone application has been deprecated (unavailable in the UK region was the error message – perhaps globally..?). Annoyingly, the apps for Android and iPhone are still unavailable.

However, after a little (a lot) of messing around with the phone (a Win 8.1 Lumia 640) the recently updated Gadgets application noticed that i’d paired with a Treasure Tag.
Treasure Tag Gadgets

After a couple of screens of initial setup, my Treasure Tag is working as expected – with Phone-tag Findme functionality working as expected and the Tag’s button also making my phone react.
Treasure Tag screen

Installshield LE for Visual Studio 2012 : x64 support

When Microsoft released Visual Studio 2012 on the 16th of August 2012, I was disappointed to learn that they had removed support for the Setup and Deployment project types.

InstallShield Limited Edition (ISLE) is free for Visual Studio developers and replaces the functionality of the project templates in Visual Studio for setup and deployment.


Fortunately you can still open an VS2012 solution files with VS2010, and continue to use the Setup and Deployment functionality from there.  However you’ll have problems when the applications/assemblies you want to package are using .NET 4.5 as VS2010 will not support those projects.

This left me in a bit of a pickle as i’d pushed the .NET version to 4.5, which left me the option of using Installshield Limited Edition for Visual Studio.   However the version on the Installshield website was labelled as targeting Visual Studio 11.  Proceeding to download it, and install it revealed it didn’t work with VS2012 at all.  Thankfully last week I stumbled across a blog announcing SP1 to Installshield 2012, and the Installshield LE for Visual Studio has also been updated to support Visual Studio 2012 RTM.

Downloaded, installed and it works!!  Woo hoo.  The Installshield UI has been crammed into the Visual Studio IDE, but it works well.  Instead of disabling options you can’t use, they’ve left them enabled with the a “sales pitch” screen appearing when you click on them (fair enough).

I created the installer for my windows service pretty quickly, built it and noticed that it wanted to deploy to C:program files (x86) and not my usual C:program files directory.  After a little googling, it seems that the Limited Edition is just that, and x64 installations are not supported.

Installshield Feature Comparison 2012 : 64bit Architecture


The usual predefined folder of ProgramFiles64 is not present, and when you try to install to [WindowsVolume]Program files it gets corrected to [WindowsVolume]Program files (x86).  As installscript is disabled in Installshield 2012 LE, i can’t do much else to fool it.  The good news is that because it’s just a file copy that Installshield is doing and my assemblies are set to Any Cpu they still run as x64 processes.

It’s not  just the file copying that’s affected by Installshield 2012 not having “Enhanced 64-bit application support”, registry entries are put into the Wow6432Node part of the registry.  Registry settings being in the wrong location is something that i can handle in my code… (that’s another blog post).

I did look at trying to leverage the Visual Studio ClickOnce deployment to deploy my windows service, but it’s not really doable for the following reason;

ClickOnce does not support custom destination folders. The reason why ClickOnce-deployed applications are installed into the cache is that such cache is maintained by the .NET Framework, which is responsible for executing applications deployed via ClickOnce.


So what’s the solution?

If you don’t care about the fact that the files get installed to the x86 program files folder and you can fix any other issues in your app then use Installshield 2012 LE.

If you don’t mind using VS2010 and you are using .NET4 or below then that’ll still work.

Otherwise unless you want to roll your own solution, you’ll have to use a separate installation program such as Installshield 2012 Pro.

Google Chrome – Kerberos, Delegation, Negotiation, Auth

One of my more recent jobs was setting up a webservice that is both separated from the web application box and in need of the windows credentials of the original caller.  After discovering a lot of the pain around SPN’s and kerberos where I found myself bound to internet explorer,  I was really keen to get it working in my browser of choice.
(I’m using Windows 7 and my web applications are on a windows domain).

There is the mention of various websites of using the parameter –auth-negotiate-delegate-whitelist when starting Chrome..
This never worked for me.

What did work is documented here
Basically, just adding a registry entry to specify your whitelist of servers.

What the document doesn’t tell you is that after making the registry change, you have to reboot for the change to take effect, just by exiting chrome or killing the chrome process won’t cut it.  After making the change, close Chrome and ensure you kill any of the resident Chrome processes with task manager.

Are certifications worth the paper they’re printed on?

I seem to often be having the discussion these days about Microsoft Certification, and it’s actual value. Having worked with the Microsoft stack of development and server technologies for over 12 years I’ve got a lot of proven experience with products like SQL Server and Visual Studio so why bother taking the exams if it’s evident I know the product/technology well??

I don’t view experience and exams as mutually exclusive, in fact since the exams normally heavily emphasise the new features in that version it shows you have a breadth of knowledge in that area. Too many developers stick to what they know and don’t make use of the advances in technology, the VBA developer brings with him the “on error resume next” / “goto” mistakes of the past up to .NET.
However, taking exams with little prior knowledge of the subject areas or professional experience in that area isn’t a quick route to success. It’ll put you on the right track, but just because you have your MCPD it doesn’t make you better than the guy sat next to you with a careers worth of experience.

Certification shows a desire to learn, there were a few topics i learnt about whilst studying for my 70-515 .NET4 Web exam that I haven’t ever spent anytime on. Theming and skinning being two of those areas, I’ve never bothered using it as CSS has always been good to me… But at least I understand what it is and why I’m choosing not to use it.

I’ll end this exploration into my opinions here, and will be sure to post again when I get my MCPD badge and gun.