Wednesday 21st December, 2016
Show and Tell 27
- When: Wed 14 Dec 2016
- Where: Forge and Co, 154-158 Shoreditch High St, London E1 6HU
- Links: attending.io
We decided to be a bit stricter about the time people get in the spotlight this month. We’ve never worried about it before but thought it might be a useful thing to do; particularly to help when we have a larger group. Our very low tech solution was to use an Automator script and the
say command to alert people when they had 5 minutes left, 1 minute left and when their time was up. It seemed to work quite well!
Notable in his absence was Tom S; meaning that we were deprived of our regular dose of Lambda Calculus and that we had to take our own photos!
Chris R - OTP
I presented my understanding of one-time passwords (specifically the HOTP and TOTP algorithms). I used a combination of a whiteboard and some Ruby code to demonstrate the simplicity of the algorithms and how they relate to each other. I’m hoping/planning to write about this in more detail soon.
James M - Raspberry Pi monitoring
He started with a Raspberry Pi Zero before switching to a Raspberry Pi 2 in order to avoid having to solder the fiddly header pins. It sounds as though getting everything hooked up was relatively straight forward although he spent quite a long time trying to ensure that it’d all work correctly once he’d left it running.
He’s using a Three MiFi device to provide the internet connection and ddclient in conjunction with DynamicDNS to give it a memorable name that he can connect to. A web interface running on the Raspberry Pi provides access to the camera while the temperature and humidity data is being captured and recorded in a Google Spreadsheet by a Python script.
James has run into a couple of problems since leaving it all set-up. The DNS address doesn’t always resolve (possibly because of the frequency at which the MiFi device obtains a new IP address?) and the temperature/humidity logging stopped when James renamed the spreadsheet it was writing to! It turns out that the script he’s using relies on finding the spreadsheet by name instead of key.
James has since been back to the property to restart the temperature/humidity logging and to open up a port for SSH so that he can remotely fix these sort of problems in future. He’s also switched to a different dynamic DNS service, ChangeIP, which seems to provide a more reliable DNS lookup.
James M - Chess board hacking
James went on to show us the progress he’s making on hacking the computer chess board he’s recently purchased. He’s managed to desolder the existing ribbon cable and solder on a header in its place. Unfortunately, the small size of the board means that he’s had to cut a hole for the header instead of having it all tucked away out of sight. The next step is to connect the chess board to a Teensy that he’s got wired up in a breadboard.
Ben G - Chess
Ben was going to talk about getting side-tracked while trying to write a blog post. But he got side-tracked and talked about chess instead. Well, at least for a minute anyway.
Ben continued the chess theme by showing us this blog post about surprising moves in chess games (this appears to be down at the moment but the Google Cache version seems to work). The author used Stockfish and python-chess to highlight moves that might seem counterintuitive to a novice observer but turn out to be advantageous in the long term.
Ben G - Blog posts and distractions
Ben talked about a blog post he wrote in order to help him understand the Hough Transform: the image recognition technique he’s been using to try to recognise pieces on a chess board. He’d mostly finished writing the post when he started to investigate how to animate the illustrations he’d included to help explain the maths. This proved much harder than expected and resulted in a 6 week detour into the work of Alan Kay’s Viewpoints Research Institute.
Ben gave us a bit of an overview of STEPS (STEPS Toward Express Programming Systems) and the Nile programming language. One of the goals of STEPS is for it to be written in a maximum of 20,000 lines of code:
We set a limit of 20,000 lines of code to express all of the “runnable meaning” of personal computing (“from the end‐user down to the metal”) where “runnable meaning” means that the system will run with just this code (but could have added optimizations to make it run faster).
I’ve not been able to find a canonical set of information about the STEPS project. The information appears to be spread across multiple reports on the VPRI site with the most up to date report being “STEPS Toward he Reinvention of Programming, 2012 Final Report”.
Edward - Indexing books (+ chess)
Edward showed us a recent project he’s been working on to build a “Google books for all the books I’ve read”.
A voracious reader; he’s been manually recording anecdotes and the books they appear in for a while. He’s interested in seeing the same anecdote repeated by different authors; possibly pointing at some relationship between those texts.
He’s recently improved this manual process by indexing the content of all the books he’s read in order to automatically track phrases he’s interested in. He’s using Solr to index the content and was pleasantly surprised by how little programming he had to do. It sounds as though most of the work is in configuring Solr by, for example, enabling the searching of stop words as they often appear in the phrase he’s interested.
He’s currently indexing all the content of the book but can imagine a further improvement where he ignores things like the table of contents and notes.
Fortunately, Edward was able to appease our need for chess related things by showing us results for “first square of the chessboard” and “Freestyle chess” (which is apparently combinations of humans and computers playing against each other!)
Edward includes his Amazon affiliate link on the links to the books that appear in his search results. I was interested to hear that Amazon don’t attempt to redirect the visitor to the Amazon store for their country and always send them to amazon.com instead. Apparently there are third party libraries that offer this functionality but they do so at the cost of injecting their own affiliate links every so often.
Rob C - Performance testing with mocks
Rob was interested in feedback on an idea he’s been exploring about being able to test the performance of a system in a simulated environment.
He’s wondering whether it’d be possible to capture the performance characteristics of various components in a system such that you could test the impact of any changes without having to deploy to a production-like environment and use production-like data.
Rob mentioned a paper titled “Runtime metric meets developer: building better cloud applications using feedback” that explores some similar ideas: specifically the idea of making runtime data (e.g. performance) available at development time.
If anyone has any thoughts about this I’m sure Rob would appreciate you getting in touch.
Show & Tell 28
Please get in touch if you’re interested in joining us for the next Show & Tell on Wednesday 11th January 2017!