I wanted to apologize for spamming Planet Python (and anyone else that happens to subscribe) with old posts recently. After spending many of my free hours for the past year noodling around with my weblog software (and the myriad of problems getting anything to run persistently on Dreamhost), I finally gave up and switched to WordPress. I’ve imported my old blogs for the sake of continuity (from Blogger and my own custom weblog, but not going back to Manila yet), and mapped the old URLs with redirects, so things should be fairly transparent to the casual observer.

A couple of good things came from my time wrestling with my own software. I learned a lot more about WSGI. I got to evaluate TurboGears, Django, web.py, Pylons, and raw WSGI. I learned more about Atom syndication and AtomPub. And while I was doing all that, WordPress got semi-decent Atom 1.0 support and also began to support tagging: two of the reasons I was rolling my own. It’s still dog-slow, but I think that may have more to do with how DreamHost is running it (as a CGI) than WordPress itself. And since I’m running several other WordPress blogs for family members and friends, at least I only have one system to fight with rather than two.

Another good thing that came out of switching to WordPress, and one of the main reasons I had ripped my old blogging system apart to rebuild it it as a server-side tool, is that my blog supports comments now. I have spent the past year doing a bit more than just twiddling with blogging software, and I hope to have some of my more interesting experiments and some tutorials to post soon. Let me know what you think of it.

Silent Boggle

In my sidebar, under Mini Projects is one called Silent Boggle. When my daughter was born, my wifed Daniela and I like to play Boggle a lot, but we worried about the noise waking the baby, so I coded up a quick CGI script to create a web page listing the letters with the same frequency as the game. That worked OK, and now we could play without rattling the box, but of course a project never stops where you thought it would. I kept thinking that it would be cool if I could list all the words available, making it useful for learning new vocabulary, or just checking your score. It turns out that Peter Norvig covered solving Boggle as an AI problem in his book AI: A Modern Approach. And he also provides the code from the book, in both Lisp and Python. So, armed with a standard linux word list, munged to remove words illegal or impossible in Boggle (and to handly my funky hack involving the Qu face of the Boggle dice) and the AIMA python libarary, I was able to get something going. A little slow, and resource intensive, but it works (if that project ever starts getting much traffic, I’ll have to stick the wordlist in a seperate, long-running process).

The thing is, the linux word list has a lot of words I don’t recognize and cannot find in any dictionary. At first I wanted to create links from the “answers” to a site with their definitions, but for many of the words there don’t appear to be definitions. I’d like to use this as a vocabulary building tool for my kids (my newborn daughter at the start of this project is now nine, and my son is now five and both are avid readers), but I can find two types of resources on the web: word lists suitable for use with the AIMA library, and dictionaries that don’t have associated word lists. I suppose I can dowload an open-source dictionary and extract the word-list myself, but it seems like with all the work that’s been done out there on wordlists and dictionaries, that there should be one that combines them both, that I just haven’t found yet.

So, lazyweb, I invoke thee! Please help me to find the wordlist + dictionary that I have overlooked in my searching.