My family is in the midst of downsizing a bit and moving to a new house. While digging around in our attic I discovered a set of Alagad promotional backpacks. Personally, I love mine. It has about a bazillion pockets, is very well made, and can easily hold a 17 laptop. Over the last few years Ive given a number of these away and everyone who has one raves about them.
I dont plan to sponsor any conferences any time soon and so I thought I should come up with a way to give these backpacks away. (Ive only got so many backs, myself.) What better way to do this than to have a contest?
My son loves word search puzzles. He loves them enough that Ive often considered writing a simple application to generate word search puzzles for him. In my minds eye I see an application where I can provide various options I can choose from such as:
- How many letters wide and tall a puzzle should be.
- A maximum length for and number of words to choose randomly from a dictionary.
- An option to provide your own words and title.
- Directionality settings. Such as forward, down, down at an angle, backwards, backwards at an angle, up, etc. These would control how words would be hidden in the puzzle.
Clicking a button would spit out a word search that I could print out and do with a pen. Im sure you could come up with many of your own ideas for how a simple word search generator might work.
Of course there are already a wide number of word search puzzle generators on the web, but as a programmer I was interested in the challenge. And so, here is my challenge to the community in general: Create a word search generating application.
And heres the twist: Create the word search genrator in any language (or technology) you dont already know. If I were to write this right now Id probably choose NodeJS since Im interested in its capabilities and itd be fun to do something more than just a hello world application in it.
Your application can be as complex or simple as you want. Complexity doesnt guarantee a win and neither does simplicity. What Im going to be looking for is the uniqueness of the language you choose and how well written the application is from my personal perspective. For example, Ill be more interested in a well-written Clojure application than a poorly written one in Ruby or C. Yes, its entirely subjective, but Im less familiar with Clojure (and bet most of my readers are too) and therefore would be more interested in seeing what can be learned.
Submissions are due a week from now. Ill start reviewing them on Tuesday the 26th. Depending on how loudly people complain I may push this deadline back.
Once Ive had a chance to review the entries Ill pick three winners, each of whom will get one Alagad backpack. Ill then write a blog entry (or three) about the entries, the languages used, and the approaches taken in building the applications. Assuming its practical, Ill also host the applications so the whole world can play around with them. Furthermore, Ill publish a SVN or GIT repository where people can download the source code.
Every time I do one of these contests I forget something important. So, if you have any questions or concerns please add them in the comments. Ill reply and clarify.