Apple to Buy Intel?


Just read a fascinating article that Apple have discussed buying Intel, that would shake a hell of a lot up… Intel are stagnating and still they show no sign of introducing ARM processors, Apple taking over (dare I say it) could be a positive step for the company as any company not going mobile these days is falling behind. There are arguments supporting and disbanding this theory, take a look at some of the related articles it’s predicted effect on the market is certainly interesting.

Boston Bombings: Justice is Served Thanks to Big Data

Boston Boming Suspects

Boston Bombing Suspects

The sheer speed at which the American authorities found the terrorists responsible for this attack was all thanks to “Big Data”, the pictures we take on our mobile devices, the videos we share on social network sites etc. All being collated to one place and analysed – put through facial recognition algorithms and geographical analysis tools and so on. Posts on

An interesting prediction from the E-Commerce Times highlights the trend in Big Data from a Government standpoint, and this tragedy and it’s relatively swift resolution highlights it’s uses in the same industry.

“E-Commerce Times recently reported that average annual big data budgets for government agencies will grow from $5.7 billion in 2014 to more than $7 billion by 2017, according to a study by Deltek.”

Those figures are astonishing, it’s a big budget as it is, but I don’t think further investment is a bad idea by any stretch.




Love, peace and swift justice,


Programming Tip #1 – The “Why Does That Work!?” Effect

Hi All,

Most of you probably don’t know but I was quite early to the world of development (started at 11), and one thing I always thought would go away in time was those moments where you look at your own code and literally have NO idea why it works. It will defy everything you know to be true, break the laws of computing and sometimes even physics itself.

10 years on I still find myself looking at my own code and going “What the hell!?” and have come to realise that in 99.8% of cases (authentic and obviously non-made up statistic!) it’s 2 bugs in my code balancing each other out to make 0 bugs. Sounds great right!? Bugs fixing themselves!! Wrong! And here’s why:

This is an inevitable slippery slope between the perception of “working” and the fact that frankly you’ve coded a timebomb, and in Britain, bombs are illegal.

Just because your code sneaks past the compiler’s rigid checks or Visual Studio in all of it’s fancy gloriousness doesn’t highlight the error of your ways, doesn’t mean you’ve coded the 1st bug free piece of software in human history. If you get the “Why does that work” feeling chances are maybe even months down the line you’re going to be debugging 1 fault that is the result of a chain of bugs down the line; and that’s not pretty.

Imagine this:

private void DisplayNumber(string Number) {

try {

int intNumber = Convert.ToInt32(Number);


catch {




obviously a very simple bug to spot, but no error is generated and the program will tell the user a number they didn’t even type in. You can imagine then if GetNumber was a function in a large program and it returned a completely different value to what the user specified but still looks as if it worked. Could be at least month before a company realises their financial department is sending out automatic invoices with the value of £0 attached to them ;).

Fast Development Series #1: Data Importer

The fast development series is about taking a real world project and highlighting some of the more useful features of that project and detailing how I accomplished them. You will NOT see the whole project from start to finish but snippets of the more useful bits!

Language: VB.NET

Client has expressed a preference for VB.NET due to having somebody on site who may be able to tinker with/improve the code in future.

Project Scope:

  • Imports into a specific database (ProspectSoft CRM) from any datasource.
  • Easy wizard interface so users can use.
  • A focus on spreadsheets.
  • Have the ability to save projects so imports can be saved and run multiple times.
  • While technical ability will be required to CREATE an import project any standard user should then be able to open and run the saved project.

Considerations for the Future:

  • Ideally I’d like to continue this product on to use a “modular” system, allowing the open-source community to expand the products it supports.

Libraries Used:


I have built the skeleton for this project which just allows the user to select an ODBC and provide a username and password and perform a test connection. The code for this is relatively simple – at the end of the project I will provide full source code. Below is how that first page looks:

First Page (New Project Wizard)

First Page (New Project Wizard)

Some of the key UI changes I have made since this screenshot was taken is showing the two groups as unexpanded initially and also the progress bars are only visible when the connection test is being run.

The configure buttons show a stylish popup window to the user allowing them to select their desired settings:

Popup Configuration Windows

Allow the user to input their ODBC details.

I have made a note in my development roadmap to expand this selection to include a FULL range of ODBC selection options, the less configuration the user has to do from within odbcad32 the better. Will not make this initial scrum though.

What am I adding this session?:

  • The code that performs the test connection.
  • How to gather schema from an ODBC connection (does not work for some connections)
  • Basic error handling
  • Asynchronous operations (using background worker).

Watch the video here of how I stumbled through the process (I blame a preference for C#.NET over VB.NET), or make use of the snippet below in any way you wish! :). Don’t hesitate to make revisions/comment me any tips or pointers! I am always looking to learn something new from a veteran.

Dim ViewCount As Integer 'Used for summary at the end
 Dim TableCount As Integer 'Used for summary at the end

'There are 3 stages to this connection test, the 1st is the initial connection.
 'For this we simply need a connection object:
 Dim DestCon As New OdbcConnection(Me.DestinationDSN & "pwd=" & Me.DestinationPassword & ";")


Select Case DestCon.State
 Case ConnectionState.Open
 bWorkerDestinationTest.ReportProgress(WarningLights.SuccessLight, "Connection opened successfully - attempting to download schema.")
 Case ConnectionState.Closed
 bWorkerSourceTest.ReportProgress(WarningLights.ErrorLight, "Connection cannot be opened please check your ODBC settings.")
 Case Else
 bWorkerDestinationTest.ReportProgress(WarningLights.ErrorLight, "Unsupported state detected: " & DestCon.State)
 End Select

Catch ex As Exception
 e.Cancel = True

bWorkerDestinationTest.ReportProgress(WarningLights.ErrorLight, "Error detected - " & ex.Message)
 End Try

System.Threading.Thread.Sleep(2000) ' Allow user to soak in information.

'2nd stage is to attempt to gather schema from the database
 Dim TableSchema As DataTable = DestCon.GetSchema(OdbcMetaDataCollectionNames.Tables)
 TableCount = TableSchema.Rows.Count

Select Case TableCount
 Case Is > 0

bWorkerDestinationTest.ReportProgress(WarningLights.SuccessLight, TableCount & " Tables detected.")

Case Is <= 0

e.Cancel = True
 bWorkerDestinationTest.ReportProgress(WarningLights.ErrorLight, "0 Tables detected, or an unexpected error ocurred")

End Select

Catch ex As Exception
 e.Cancel = True

bWorkerDestinationTest.ReportProgress(WarningLights.ErrorLight, "Error detected - " & ex.Message)

End Try

System.Threading.Thread.Sleep(2000) ' Allow user to soak in information.

'3rd Stage is to gather the views (people may use views to do their import more efficiently)

 Dim ViewSchema As DataTable = DestCon.GetSchema(OdbcMetaDataCollectionNames.Views)
 ViewCount = ViewSchema.Rows.Count

Select Case ViewCount
 Case Is > 0

bWorkerDestinationTest.ReportProgress(WarningLights.SuccessLight, ViewCount & " Views detected.")

Case Is <= 0

bWorkerDestinationTest.ReportProgress(WarningLights.CautionLight, "0 Views detected, this may be by design.")

End Select

Catch ex As Exception
 e.Cancel = True

bWorkerDestinationTest.ReportProgress(WarningLights.ErrorLight, "Error detected - " & ex.Message)

End Try
 System.Threading.Thread.Sleep(2000) ' Allow user to soak in information.
 bWorkerDestinationTest.ReportProgress(WarningLights.SuccessLight, "Table Count: " & TableCount.ToString & vbCrLf _
 & "View Count: " & ViewCount.ToString & vbCrLf _
 & "Destination database details gathered successfully")

Smartwatch Market Could Be A Third The Size Of The Netbook Market This Year (Maybe)

As a firm advocate of Google I really would quite look forward to a watch that synced with my Android devices. I don’t wear wristwatches, but that’s only because I haven’t found one worth wearing… Until now that is!

Can you imagine the ease of use as a reminder pops up on your watch? Text messages syncing to your watch?

Google’s voice recognition is so advanced I wouldn’t even mind having a crack at replying to that text message using my voice!

So much to look forward to in the coming years, the human race truly is wonderful at times.

Check out this well written article from TechCrunch for more details :).

Peace love and all things good,

First Internet Explorer. Now Search Engines.

EU Flag

The grand and glorious European Dictatorship, sorry Union… Yes it’s a union…

So a recent debate I have come across is the EU (poking it’s nose where I feel it doesn’t belong) this time into Google’s business, ironically acting on complaints (amongst others) from Microsoft despite how the EU have screwed them over in recent months.

As I have stated on my LinkedIn I am more than “all for” a little competition, but believe you can’t create some where there frankly IS none – Bing does little to convince me to switch from Google, honestly after doing a few comparison searches I can only really say it’s a re-badged Google in terms of search results with less features and a more in-your-face-interface and don’t even get me started on how far behind Yahoo are in the search arena.

So the real question is why does the EU feel like it has to FORCE consumers to see something they don’t want to see? I know there are competitors there as do others, and I will choose Google every-time and so will millions because they’ve proven time and time again to be reliable, fairly priced and in most cases first to the post! (Nobody else quite excited about Google Glasses?). It isn’t like they don’t make mistakes, God forbid would I ever pick their social media platform (What’s it called? Circles? Plus?) over Twitter and Facebook.

Needless to say when these changes are implemented and you are trying to find directions “Would you like to try Apple Maps instead?” is just another pop-up window to close before going ahead and using another fantastic product, it will be right there underneath “Did you know this site uses cookies?” right behind that window that just opened up asking “What browser would you like to install?”

Well done to the EU, not only for stifling good companies and their hard work but for increasing my chance of getting RSI from these various pop-ups you want me to close under the banner of fair competition!

P.S. To further promote fair competition perhaps Mac users would like an annoying pop up too asking them what various browsers they would like to install? Or maybe even iOS users would like a choice??

Love, peace and all things good,


VPC to Hyper-V Migration

Hyper-V Logo

Microsoft’s Hyper-V Logo for roll-out with Windows 8

As any business who is beginning to use Windows 8 will notice, it isn’t QUITE at the epitome of it’s excellence at the moment, but despite the downfall of it’s design, it’s function is leagues ahead of it’s predecessors (once you finally find where that function is).

As a developer that has experience in both form and function I can appreciate it is difficult to bridge the gap, so rather focusing on the negative I will say this: Microsoft got it right with Hyper-V! What a lovely surprise it was to find the difficult to manage VPC had been replaced by something as familiar to me as Hyper-V is, and with completely the same interface. If a developer is reading this I don’t have to tell you how much easier it is to manage your various environments in this Hyper-V console!

Migration however, wasn’t without it’s harsh lessons, so I have decided to post my experience here in order to help those in the same position. “Virtual Machine additions can only be uninstalled from within a virtual machine”, and of course Hyper-V integration features cannot be installed without first removing Virtual Machine Additions….An impasse we have reached Hmmm?

So knowing a little about MSI technology I had a feeling that all that was stopping me was a PreCondition function, something that makes assessments on whether you can install/remove/repair or generally USE the MSI before it actually bothers doing anything; annoying in the fact that I often found installers that didn’t recognize Windows 8 as a valid OS but when the check was taken out the software ran great.

Unfortunately I have no VM’s left to demonstrate this on so the pictures step-by-step are cut short, but for those familiar with ORCA this should be a breeze, so let’s go hack this out shall we?

Step 0.5: Download Orca (

Installer Folder (Step 1)

Installer Folder (Step 1)

1. Find your installer folder (generally %windir%\Installer)

Title to Explorer (Step 2)

Title to Explorer (Step 2)

2. Add the title column to explorer

3. Search for the MSI responsible for the VM Additions

4. Open it in Orca and find the table called InstallExecuteSequence

5. Delete the entries CA_CheckForRunningInsideAVirtualMachine and Error_CheckForRunningInsideAVirtualMachine

6. Save the MSI and try the uninstallation again.

In all fairness to Microsoft it does state in the migration instructions to uninstall the additions BEFORE migration. Just another bad case of the techie not reading the manual…

MS Warning

The quite clear instructions from Microsoft on their migration help document.


Love, peace and all things good,