Monday, 27 November 2017

Novel British bird species ... Janelle Shane is to blame for this

So, my lovely wife and I have been watching on Twitter, jaws dropping open in fascination and sides splitting in hilarity, as Janelle Shane comes up with neural net recipes, neural net first lines of novels, neural net everything, showing how, when left to their own devices, computers will never QUITE cross the uncanny valley. 

And we have just moved house (hence the Raspberry Pi Central Heating System, a project I haven't talked about yet on here, but I will!) and we have just installed a lovely bird feeder in the garden. With suet, mealworms and everything. Having already seen some beauties in the garden - firecrests, blackcaps - we wondered - quite how rare a bird can a Cornish garden attract, if it sits in a location so mild and exotic that we have alien Stick Insects living in the bushes?! What about birds that don't even exist? 

So we built a neural net on a discarded old MacBook (late 2008, the last NVIDIA Apple design win if memory serves) with a broken display, a broken trackpad and a temperamental keyboard. It was nasty. Instructions for getting char-rnn on Yosemite fell over all over the place. I gave up, and put a VirtualBox on it, then Ubuntu 16.x LTS, and started again. This also fell over all over the place, so I ended up randomly sudo apt-get installing all sorts of stuff, piping stuff (what the hell is pip? I'm a C++ guy, why should I have to do any Python, I'm not 11?!), lua install stuff (LUA!!! WHAT!?!? Isn't that for scripting pimps and murderers in GTA?!) and then finally, one whole Sunday later, the installation started to work on the test dataset, and some Fakespeare came out. 

It had been a long day, but we laughed at the bad 16th centuryisms. 

Now for the birds. My goode ladye found a list of every bird that had ever been seen in the UK, and that formed the neural net's training set. The problem is, this is a small training set. And neither of us have any clue how to drive any of this stuff. The torch-rnn ran, stopped after just 100 iterations, with a quality of 3.something. Which seems to be bad, absolute gibberish came out. 

We figured it needed a) a bigger training set and b) more reinforcement on how bird names are actually formed. So - and this probably breaks all the 'good behavour' rules of training neural nets - we just duplicated, then reduplicated, the reduplicated the set. 8 identical lists of bird names. 


So, may I present to you, in decreasing plausibility order, the birds we have spotted popping in to visit the new feeder in the garden from the uncanny valley beyond - 

Positive ID - we totally, definitely saw these
Sofpint Warbler
Grasgle Dandwitt
Black'st Gull
Rock Onlew
Malree Crow
Gree's Warlew
Lhig's Gold Ligbone
Great Tert

Fleeting glimpse - we *think* we spotted these 
Sand Sandarher'se Sardline
Lesk Wrey Cirn
lessern Hoetdpiwe
Red S
Lont Dudklar
Wapilemind Gool
Fosser-taroled Wanlocver
Rodushans-neted Pelre
Soanetark Wheavee
Yoflin Shitten Terl

Pretty sure we didn't see these, but we like to claim we did
Aacmfopor's Hlayy-niadey Gonifbpon
Rof-iasbeldecuiy Ghoobe
Bmispiew-ree'w Parimatter
Aoortagd Waoge
Aartbarded SsultesGit

Now it's clear that this was all just a long-winded excuse for us to build a neural net and feed it with bird names, because we wanted to see quite how it would mangle things, and some hilarious stuff came out. But what is starting to emerge is strange - it doesn't look like English, some of it looks Welsh or Cornish, but a lot of it looks like Old Norse. Is this thing actually being deep, and finding the buried language underneath all this that these bird names came from, dozens of centuries ago? Or am I just seeing patterns that aren't there? 

This was great, despite the utter hell of installation. And now it's installed, you will hear more from this! I may yet try getting this stuff onto one of my unused Pi Model A units, because that will take up a lot less desk space than the MacBook, I have so many it will be genuinely free, and if I do, installation instructions will be posted.

Doctor Who rides again!

I'm working on WiFi-ing up my house heating system, with a Raspberry Pi Zero W per radiator. The only 'it compiles and works' project I have on the Pi is hideously complicated and plays tunes, so I'm playing tunes again as the heating comes up. And I seem to be playing this tune a lot.

But you know, he'll be back on screen at Christmas. And by the end of the show, he'll be a she. It will be ace. So here's his favourite tune. Again! Run you clever boy!!

Thursday, 8 June 2017

Never say never again ...

... as in, you know I kind of committed to never touch this codebase again? Well, I'm working on a digital pipe organ. It will strive to be an accurate emulation of the lovely little chapel organ in the Countess of Huntingdon's Chapel in Bath, A.K.A the Bath Museum of Architecture, and home to the Bath Preservation Trust. It will be an iOS app, and will raise much-needed funds for the Trust, mainly to keep their lovely organ in tune and playable, but also to fight the good fight and keep Bath as beautiful as its World Heritage status implies and deserves. Well, it transpires that the easiest way for me to get this digital pipe organ up and playable, and to debug it, is to build it within the Synth Collection. So here I am again, making changes, playing the Doctor Who theme and Popcorn to make sure the changes have not broken anything, and real soon now, we will have a working pipe organ. At least it hasn't taken me long to remember how all this stuff works!