Apple Watch - Calendar out of sync?

I recently noticed that my Apple Watch was telling me about events that had moved - and they definitely were not present on my phone.

The quick fix is to fire up the Apple Watch app on the phone, go to General, Reset and hit Reset Sync Data

This cleared all the content off the watch (contacts and calendar entries) and let them reload correctly.

Strange bug, but easy fix.

Updating a vCenter Appliance to 6.0 Update1

Well, I've just followed my own post, Updating a vCenter v6.0 Appliance and upgraded my appliance to 6.0 Update 1.

And I'm pleased to see the VAMI interface re-appear, along with the option to have it automatically upgrade! I've not explored the other updated / new elements, but I'm keen to finally see parts of Update Manager making an appearance. 

Sophos UTM 9 - "install.tar not on installation media"

Like most people who use the Sophos UTM Home Firewall Software, I do not use the CD-ROM installation method. Previously I've never had any problems converting it to a bootable USB stick, and firing things up.

This time - problems.

Install came up, and promptly fell over after initialising the drive with "Install.tar not on installation media" or something along those lines.

After a few hours searching the internet I found the solution; the Install folder was not being mounted properly by the installer.


- Start the installation, and after the hardware detection do NOT hit Next.
- Hit Alt+F2 to switch to the console
- mount /dev/sdb2 /install
- Switch back to the install, and complete as normal

You may need to copy the contents of install to the root of the usb stick - I did this previously anyway, as it was a trial an error with another issue (don't know if it helped, but not going back to find out!).

Trial and tribulations of UEFI Bioses

I recently purchased a Gigabyte GA-J1800 motherboard to build a new server specifically to run my Sophos UTM system (thanks to actually having a decent broadband connection now, it needs more horsepower than my little over-crowded ESX lab).

However, I had MASSIVE problems with the board immediately. Getting into the BIOS was completely impossible, so I couldn't actually get past the EFI Boot Shell. Argh.

Solution? Install Windows 8.1, upgrade the BIOS using the Gigabyte AppCenter then everything was a success. Total nightmare however, and a major FAIL on the Gigabyte Quality Control.

It's also really picky about what USB Keyboard you use too ...

Importing large data sets into MySQL

I found myself in need of loading data into a MySQL instance today for testing an application - lots of it (millions of rows). Unfortunately I don't have a MySQL instance in my home lab (it's pretty much all Windows stuff - and a bit of Mac). So what was the easiest solution?

First I grabbed a copy of the Turnkey MySQL VM from - these guys have a lot of Debian images pre-configured to just unpack, lob into a virtualisation platform and get going. A massive time saver.

After that I installed MySQL on my Yosemite Mac - purely for the command line tool.

The fire up terminal, switch into /usr/local/mysql/bin and fire up mysql command line connecting to my instance:

mysql -h hostname -u root -p 

A few quick configuration settings to make things go smoother:

set global net_buffer_length=1000000;
set global max_allowed_packet=1000000000;
set foreign_key_checks = 0; 

The load the data from the file using:

source <path_to_file>

Finally, re-enable the checks

set foreign_key_checks = 1; 

Thanks to this StackOverflow post for the details!

Unable to create C# unit tests - VS2015 and Win10

I just encountered something I thought was odd - Visual Studio 2015 Enterprise was complaining when trying to create a new C# unit test project. It might be because I'm on Windows 10, I don't know - I only run Windows 10 for development now.

The error was :

Error: Could not load file or assembly Microsoft.VisualStudio.JSLS Version=


  1. Mount the VS 2015 ISO
  2. Run E:\packages\JavaScript_LanguageService\JavaScript_LanguageService.msi
  3. Restart Visual Studio

Updating a vCenter 6.0 Appliance

Updating from vCenter 6.0.0a to 6.0.0b would have been a straight forward task I'd thought. Not so it seems.

First off, the appliance no longer auto-updates or has an admin UI - as it did in v5.
Now you have to download the patch ISO (not the normal install one), persuade it to mount and run a number of commands.

Simple isn't it. 

The steps to do an upgrade are:

  1. Find the patch ISO you need from and download it.
  2. Fire up the vSphere client, and connect to the HOST that is running the Appliance.
  3. Open the Console for the Appliance VM
  4. Mount the ISO in the normal way
  5. SSH to the Appliance (if you haven't enabled this, you need to first, obviously)
  6. Run: software-packages stage --iso
  7. Accept the EULA (read it first, of course)
  8. Run: software-packages install
  9. Reboot appliance
  10. Repeat process for other patch ISOs as required

I'm wondering why it has to like this ... what was wrong with the semi-automated web interface method?

Log4Net and Splunk

Splunk is one of the most impressive "On Premises" log aggregation tools that I have ever come across. Being able to bring a large number of disperate data sources together into one combined index is truly useful in a modern Ops environment.

One of the things I find helpful from a development approach is consistent logging - and too often this is something that development teams overlook until things break.

However, getting data from a .NET / C# application into Splunk is not difficult and so these days I try and log absolutely everything (well, come on, the free tier gives you a decent chunk of an allowance too!).

The first thing I do is to create a new Index in Splunk - you do this by selecting Settings, Indexes and then clicking New.
The only box you need to fill in is the index name - let everything else default on your installation.

Once you have the index created, we need to setup the input. Settings then Data Inputs will take you to the right screen. Click Add New next to UDP. Pop in an unused port, say 8081, then click Next.  Make sure you select your index you created earlier, and specify the type as Generic Single Line - this basically tells Splunk it's unformatted data and not to pre-parsed it.

The next thing you need to do is actually get your code to submit data to Splunk -- the easiest way that I have found to do is to use Log4Net; in Visual Studio, install the log4net Nuget Package and this will take care of creating the relevant config entries. If, like me, you prefer to put your logging code into a common assembly then reference it elsewhere, remember to copy the assembly redirects and log4net specific entries into your other configs (or things just don't work!).

In your code, you will probably have a common class for sending log data - something like:

using log4net;
namespace YourApp.Common
    public static class Logging
        /// <summary>
        /// Application or Class that should be identified with the log statement that is passed
        /// </summary>
        public static string Application { get; set; }
        /// <summary>
        /// Initialise logging - must be called at application start
        /// </summary>
        public static void Initialise()
        /// <summary>
        ///  Log an information message
        /// </summary>
        /// <param name="message"></param>
        public static void Info(string message)
            ILog logger = LogManager.GetLogger(Application);

That way you can specify the application name to be passed through with the logging data (handy for Splunk, as you can throw everything into one Index and then break out specifically what you need later) - and use the class from pretty much anywhere.

In your web.config you need it to look like:

<?xml version="1.0" encoding="utf-8" ?>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    <appender name="UdpAppender" type="log4net.Appender.UdpAppender">
      <param name="RemoteAddress" value="splunk-server" />
      <param name="RemotePort" value="8081" />

      <layout type="log4net.Layout.PatternLayout" value="%level - %date{MM/dd HH:mm:ss} - %c - %stacktrace{2} - %message" />

    </appender>     <root>       <level value="ALL" />

      <appender-ref ref="UdpAppender" />

Finally, call away to get your data logged:

And that, folks, is it - you can now push .NET C# app log data into Splunk.

A couple of points that some people might question me on:

Why use UDP Appender and not TCP?

UDP is a lossy transmission protocol, and it is entirely possible that log messages do not make it into the Splunk indexer; however, it is significantly lighter weight than establishing TCP/IP connections.

Can I log to multiple locations - such as Splunk but also a text file?

Yes - add another Log Appender; the Log4Net docs are pretty good on this one. 

Is there much point about having the date time in the log message?

That depends - if you are worried that the messages might get cached somewhere and not always trust the date / time that Splunk adds to it's indexed entries, then you probably want to keep it. Otherwise feel free to drop it from the pattern.

EE / Apple Wifi Calling

I've moved house, and the EE signal sucks. "No problem", I thought, "EE had enabled Wifi Calling a few days earlier - I'll give it a shot".

It works generally ok - but only on my Wife's iPhone, and not mine. Seems that EE have only enabled it on Personal contracts and not the Corporate contracts. They have, however, pushed out the carrier profile update so you see the option - although it does absolutely nothing but tease!

The one gripe that I have, other than not being able to use it, is that whenever the phone sees a tiny bit of network signal it tries to switch from Wifi - which means you drop the call. This happens ware more than I'd put up with generally and the only way round it that I've found is to enable Airplane mode and then re-enable Wifi. Not the best user experience, but I guess this one is down to Apple's mistake!

Heres hoping that EE and Apple can resolve the glitches on it.

Deploying Cloud Foundry with vSphere - Part 2

michael kors outlet

Now, I decided to try a "light" installation of Cloud Foundry as this isnt going to be production ... normally it seems you deploy BOSH then you deploy Cloud Foundry from that, but light uses bosh micro.

Create a folder to hold your installations, then run

brew tap xoebus/homebrew-cloudfoundry

brew install spiff

git clone

git clone


Things will then kick off -- downloading th ebasic stemcell and pushing things onto the bosh micro director to perform.