I recently rewrote Hangman! (and also renamed it) For those who don’t know, Hangman! was my first Facebook app. I wrote it originally in June of 2007 and it silently lived on Facebook, deep deep within the depths of Application hell.
As part of my Hangman! application on Facebook, I plan on adding word definitions. Like any good word app, it should tell you what the word means. I’m not a big fan of sending off users to other sites when I don’t have to, so I looked into some dictionary APIs.
These APIs are hard to come by. Google has a pretty good one, but it’s not open. It’s not open because their third party data providers won’t allow it to be open. I still whipped up a little PHP love to use it, but I can’t actively use it on a public site because of their restrictions. So I had to find something else. All the big obvious players like dictionary.com and m-w.com have APIs that aren’t free or fun.
Then I found Wordnik. They have a sweet, sweet, young API that they were kind enough to give me access to. As soon as I whip up my own little library to interface with it in a happy efficient way, I’ll be adding definitions and other fun word-related things to Hangman!
I’ve been using Zend Framework for a while and when I do my own sites things always work as expected. But a couple of times in the past I’ve had the honor of working on other sites with other people that have lead me to a few ‘wtf?’ issues.
The most recent one was as to why the shorter urls ie: “/index/pants” would not work. It would always complain and blow up that the controller ‘pants’ doesn’t exist. Even though I know for a fact that I want the index controller in the default module and the action ‘pants’…
My ‘summer project‘ has now been demoted to just a ‘random project.’ Although I still intend on finishing it at some point, it’s clearly become far too delayed to call it a summer project anymore. I got overly distracted throughout the summer by family, fun, non-fun, and other projects. Projects that I’ll explain a bit here…
Here’s my skeleton for my magical REST interface. It’s still missing a lot of method calls for Flickr and Vimeo, but the guts are there and the remaining methods will be done in priority when I need them. Right now it supports automatic caching and logging via simple options.
At some point I’ll probably put it on a public SVN repository, but for now you can have the tarball. There’s a README in the file with a simple sample. And the source is pretty self explanatory so you should be able to figure it out if you want to.
The remainder of the work will be done in the order I see fit. Likely read-only methods (most of the getters) Authentication and write methods will be much much later.
I’ll also add more RESTful interfaces as I need them. Probably Facebook soon, Twitter later. Who knows.
Drop your comments here if you’ve got any questions.
As I whipped through the tutorial on getting started with Django I made some mental notes on things I thought were interesting and things I thought weren’t so interesting. I have a feeling I’ll be saying similar things about Ruby on Rails…