Clue is a pattern-matching tool for when you're stuck on a crossword. Give it
p_rs__c_o_s and it will find "perspicuous" for you. There are lots of these things already; why write another one?
- Mobile-friendly (I usually only have a phone or iPad to hand)
- British spelling variants (there are already enough US-centric tools)
- Mostly for fun
It's written in two parts: the server (little more than a node app wrapping a database query on the dictionary file) and an HTML/JS page that acts as the client.
master branch of this repo contains the server, and the
gh-pages branch contains the HTML as an example interface.
git clone https://github.com/hjst/clue.git
npm install(fetch & install node libs, if needed)
node server.js(or equivalent, depending on your deploy target)
Building the dictionary
The dictionary is derived from the SCOWL collection. There might be better sources, but SCOWL is at least reasonably well known, free, and has separate British/American lists. If you know of a more suitable source I would be very grateful to hear of it.
Build the dictionary database by running
make dictionary.db. This will grab the latest SCOWL files, select & filter the British ones, load them into an sqlite database and drop you at the prompt ready to play. Check the
Makefile for the gritty details.
Credits for the HTML interface
The HTML example interface in the
gh-pages branch uses the following bits from other people:
- Dave Gamache's Skeleton boilerplate
- Detective designed by Simon Child from The Noun Project
- CSS loader animation courtesy of cssload.net
- jQuery 2
I originally wrote clue to use
grep but then wasn't sure where it was going to live and thought perhaps some effort to make it portable might not be a terrible idea. Given the exclusively read-only nature of the thing, sqlite was an obvious choice. My crude benchmarks showed that
LIKE in sqlite3 was roughly even in performance with
grep -i on this dataset, which was good enough for me.