What computer output is supposed to look like

Image of conv net learning to classify images of chess pieces
Conv net attempting to classify chess pieces

This month is the 41st anniversary of me coming face-to-face with a “micro-computer” for the first time – in WH Smith’s in Brent Cross. I am not truly sure how I knew what I was looking at (beyond I suppose the shop’s own signage) – because at that time not even “The Mighty Micro” – ITV’s groundbreaking (and exceptionally far-sighted) TV series had yet been broadcast, but I was instantly smitten.

If you remember the time, then you’ll recall computers were very basic and only ran BASIC (but you could still do a lot with that). Black and white (or green and white) graphics were the standard (unless you were a rich kid and owned an Apple II).

But that didn’t stop us – my brother and I got a Sinclair ZX80 in 1980 (even if you ordered early the wait was long) and started writing code straight away (there wasn’t much choice if you wanted to get some use from the device).

The best code was mathematical and computationally intensive (as far as 1KB of RAM on a board with an 8 bit 3.25MHz CPU would allow that is) yet managed to combine that with rapid screen updates – something that was difficult on a ZX80 because computation blanked the screen (a ROM update and an interrupt driver – we copied the machine code bytes into every program – later fixed that.)

So 41 years later the code I am now running – shown above – perfectly fits the bill for “proper computing”. It is a computationally intensive – essentially multiple matrix multiplications – convolutional neural network that is attempting to classify images of chess pieces of the sort commonly seen with published chess puzzles. But what I love most of all is the fast flickering digits (the nine classes) and small images (the output of the first two layers of the 50 filters that are at the heart of the network).

This is the second time I’ve had a go at this personal project and I’ve made some progress – but it’s been hard going. Most conv net users seem to have long moved on from C++ (which I am using) to Python libraries like Tensor Flow – so it’s not even that I feel I am part of a strong community here.

Lots of subtle (that’s my story and I’m sticking to it) programming traps – like the fact that the STL Maps class reorders the objects added to reflect the order of the key (sounds obvious when you say it like that – why would it not have such a lexical order?) – I had simply assuming that the entries kept the order they were added in. (This was today’s discovery).

But if it was easy to write these things then it would be no fun.

More and more spam reviews on Amazon

Earlier this month I highlighted how a book that claims to be about using Python to build convolutional neural networks and yet, say readers, contains not a single line of Python, was garnering rave reviews on Amazon.

The trend hasn’t stopped and it is pretty clear to me that these are, in fact, spam.

Plainly Amazon’s review system is broken.


The PyCon row

I have never written any Python. Maybe that might change in the future, but not soon I think.

English: Python logo Deutsch: Python Logo
English: Python logo Deutsch: Python Logo (Photo credit: Wikipedia)

So PyCon, a big conference for Python developers, normally would not matter to me, especially as it is on another continent.

But this year’s PyCon saw a huge row about allegedly offensive and sexist behaviour. In my view the sexist bit is moot, the offensive bit is mild – if stripped of context. And the context is a year’s worth of rows about much more clearly sexist and offensive behaviour at developer conferences.

I won’t go into the details of the row, because I have no real knowledge of the detail beyond what I have read this evening, but I do have a sense that this is a sign of the software industry waking up to its very serious problems with women and the ridiculous behaviour and poor socialisation of many of the men who work in it.

So the row may have a positive outcome for the rest of us. Eventually.

How many languages can you recognise?

Java (programming language)
Java (programming language) (Photo credit: Wikipedia)

This site has an extensive online quiz on computer languages.

I managed just 11/75 (actually it was 12/75 but I pressed the wrong key when typing ‘Java’): a miserable 14.67%.

I missed some of the languages I use regularly yet got some I have never used, or maybe not used for close to 30 years (though I did, relatively recently, translate the Reingold-Tilford algorithm for drawing Red-Black trees from the original Pascal into C++, so maybe that helped.)

Love to know how you score.