February 28, 2015
January 31, 2015
As a sort of New Year’s Resolution, and to try and clear my backlog of half-finished ideas, I’m going to try and ‘finish’ something every month.
Although it works, it would be good to mount it in something that looks a little nicer, but that looks like it’s going to have to be a different project now.
September 29, 2013
August 9, 2013
An ongoing project has been using my Raspberry Pi as a radio. I have it connected to some speakers in the kitchen, and have it serving the radio controls via HTTP.
I’ve used bootstrap to set up the UI so that they’re usable from mobiles. There are also simple endpoints for playing stuff, I’ve used Tasker to set up shortcuts on my home-screen, and buttons on my Pebble that ping the appropriate url to instantly play/stop music.
June 25, 2013
Dilbert.com recently nerfed their RSS feeds forcing you to click through to the site to view the comic. I’ve made a script that you can use to generate a feed like their old one with images inline. It’s available on github: Dilbert RSS Replacement
July 5, 2012
I have recently been working on designs for the newly-formed London Youth Choir. This includes the logo and a simple website.
The brief for the logo was to create something playful, bold and adaptable that used the London skyline as a theme.
June 7, 2012
There’s a big problem with all sites that store a password to perform authentication – you have no idea what security measures are being taken to protect the stored passwords. How do you know how your password is ‘secure’ once it’s at the other end? How can you know? Sites should publish their password hashes continued »
April 3, 2012
Following up on my previous post about optimal hangman strategy, I’ve run some more experiments, fixed up and tested my script, with some interesting results.
First of all, I tested the script in a game of hangman against every single word in a 70k word dictionary. I played with 10 lives before losing, which is probably on the conservative side, 12 seems like a common figure. The script lost on 469 words, of which 99 were 3 letters long. There were 20 words 7 letters long, all of which ended in ‘ing’. There were no words of 8 letters or longer.
March 31, 2012
A post on DataGenetics did the rounds last week, applying the might of statistical analysis to the game Hangman to try and guess what an optimal strategy might be. Many techniques were leveled at the problem, from basic analysis of letter frequencies to conditional probability, all in order to try and generate the best sequence you should call the letters.
Having read it I was slightly perplexed, it seemed like massive overkill for something that can be calculated fairly simply, so I created pyngman, a python script that generates optimal next guesses for Hangman. Input the state of the game and the letters you’ve called and it will tell you what letter to call next.
You supply the information as a state, such as ..e.., where .’s are unknown letters, followed by a list of letters you’ve tried:
$ pyngman -state ..e.. est > Your best next guess is: a
It does this by using a dictionary (you must supply the dictionary, so the results will change depending on what you supply!), and looking at all possible words that could be the solution, and working out the letter with the highest probability of being present. So far I have been unable to find a word which causes the program to lose a game of hangman!
March 8, 2012
I’m going to take two security stories from the last week, one of which I think illustrates how to do it well, and another which illustrates how to do it badly. They come from very different areas under the vast umbrella of ‘security’. One is very much physical, and the other very much not. These days however, the two are inseparably linked. Why isn’t Airport Security Open? continued »