Dev-ops or No-ops

The team that I am working on has been described by our outgoing contractors as a DevOps team. We develop, deploy and support the site. We add monitoring to everything we can (sometimes after it goes wrong once). We are an agile team loosly working in a scrum setup. The trick we have is to always dedicate one pair (or half a pair if the team is odd numbered that week) to the operations channel. The team member that is on the support rota gets first option of working on the operations tickets this week.

Dev-Ops is normally about having a dedicated team that perform automation and monitoring of systems. We do have that happening but from within the team. There is no passing it to an “other” team. In that sense we have achieved No-Ops – there literally is no ops team that we can pass off problems too (OK we have various vendors to manage but that is a different matter).

Google Bigquery

I have been experimenting with using google Bigquery recently.

It looks to be an incredibly useful (and cheap) means of storing and using lots of data.

In fact it is so cheap that asking management for permission in a meeting can cost more in staff time than a years use of the data. This means that with the right policy it is possible to store whatever data you think might be of use.

The downside is the documentation. It looks comprehensive at first until you try to use it for something. The java code samples are full of sections such as:

// Insert useful code here

There does not even seem to be a comprehensive list of the datatypes so here goes:

STRING

BOOLEAN

TIMESTAMP

INTEGER

FLOAT

These fill in for where there should be key points (such as defining the fields in a Bigquery table).

Bigquery does have a sensible structure:

Projects are for billing.

These contain datasets that are used for access control (we have a set of these per environment : qa, demo).

Datasets contain tables (and views – but I have not used these yet).

Vodafone are Idiots

They will send a phone to an address that is not associated with the bank details that they have!

Vodafone have just fallen victim to a classic scam.

A courier delivers a phone to an address (unexpectedly). Half an hour later a motorcyclist collects the “mistaken delivery”.

The delivery company is genuine, the phone is real yet no actual bank details have been checked. Vodafone have sent a phone out without checking the address associated with the bank account that is paying for it.

In addition the customer services automated phone system requires you to have an account number before  they will talk to you.

The online chat system (clearly staffed from India) is more useful and they are able to provide details of the fraud team number – but even that maze has a few dead ends. You get to choose 1 for fraud or other phone problems, but the next menu can’t cope with general fraud.

 

Neo4j is incredibly useful

I have been a fan of Neo4j for a while. Until recently I had only been using it locally on my machine to investigate a few simple uses.

Recently I have found about the heroku addon graphenedb (https://elements.heroku.com/addons/graphenedb). This is a relatively cheap (for small graphs it is free) cloud installation of Neo4j.

This meant with a little effort I could have a set of scripts extract the current state of my employers CMS system and then provide an upto date view of the data in a trivially queriable form.

I have found that the easiest way to get  control over the graph is to simply start from scratch each day. The script extracts a set of nodes and a list of relationships between them and loads it up.  I know that it would be much faster to use the csv import tools but I have just to find a satisfactory means of getting the labels to be set correctly.

Free AVG Error Code 0xc0070643

This is the useful error message that my mother got when trying to upgrade Free AVG 2015 on windows 10.

To skip to the end of the story look for a utility called AVGRemover on their site – it will uninstall all AVG products cleanly allowing new ones to be installed.

I was called on to help. To start with it was using the latest installer to upgrade. It goes most of the way through the process (including a reboot) then fails with the title message.

OK, so the next attempt was to uninstall the previous version. This turned out to be more tricky than needed since the avgagent service fails to uninstall with the cryptic message that you do not have enough permissions to uninstall it.

Repeat running the uninstaller as admin, same result.

Attempted to stop the avgagent service as admin – still prevented.

Searches of the avg forum found a help operator had suggested using another utility (which failed to work even for the questioner).

Only when the feedback form had been given a detailed list of the problem did it provide a link to the uninstaller.

This is not a very friendly experience for an end user (or indeed an experienced software developer). If AVG know that there uninstaller fails enough that they put a repair utility on the site at least have the decency to link to it directly.

 

http://www.avg.com/gb-en/utilities