Back in May, we held the Make Web Not War conference in Montreal, which we wrapped up with the FTW! Coding Competition. In this contest, we challenged developers to make the best possible app using a mix of both Microsoft and open source tools and tech. We offered a prize for the best overall app, with bonus prizes for use of specific technologies, and in the end, Timothy Dalby and his application, Find-A-Home, walked away with a number of them:
- FTW! Coding Competition Champion
- Best Open Data App
- Best MS SQL App
- Best Azure App
I interviewed Timothy a little while back via email, asking him questions about Find-A-Home, his plans and his tech background.
Please explain what Find-A-Home is, and how it’s supposed to be used.
Find-A-Home is basically an area research engine. You start by either directly searching an address in Edmonton, or browsing through a set of property listings. Find-A-Home will then generates a map of the area along with nearby amenities, such as schools, police stations, fire stations, parks, transit stops, and recreation centers. In addition to the map, a set of 5 metrics are also generated for the location based on proximity to amenities. These metrics essentially provide a “ranking” for each location which you can relate to what is most important to you when buying house.
Where’d you get the idea? Have you been house-hunting recently, or know someone who has?
I heard about the “Make Web Not War: For The Web!” (FTW!) Competition while attending an Energize I/T conference and I wanted use the open data sets being provided by the City of Edmonton in a new and useful way for my entry. I did indeed purchase a house about a year prior to coming up with the Find-A-Home concept. While mulling over a number of different ideas for the competition, it suddenly just popped into my head one day that it would have been many times easier when I bought my house if information about the area were readily available in a easy to understand way. I expanded on the concept over the following week or so and eventually came up with the vision of a metric-based “ranking” system for houses. And the rest, as they say, was history.
Could you explain the technology you used – the Microsoft parts and the open source parts, and how they fit together?
For the Find-A-Home project, I wanted to squeeze in as many new technologies as I possibly could in the time available. As a developer, I love learning. If I am developing and not learning something new, it is a safe bet to say that I’m bored. Windows Azure, the hosting environment for Find-A-Home, has fascinated me for as long as I knew it existed. It was something that I wanted to try out, but never had a good reason to. When the opportunity came up to build this app and have it hosted on Azure, I jumped at the idea. I also decided to use SQL Azure as the data platform.
The majority of the data behind the application is sourced from the Open Data Catalogue made available by the City of Edmonton.
The core development technology behind Find-A-home was initially C/ASP.NET 4.0 and the brand-new ASP.NET MVC 2 framework. Later in the development, I discovered that Windows Azure (at the time) only supported up to .NET 3.5. As a result, I had to downgrade the project to ASP.NET 2.0, but I still used the MVC 2 framework. The mapping functionality I decided on was Bing maps. I really wanted to fit PHP into the mix somehow, but I ran out of time before I had a chance to do so.
(One other really nice benefit to using a variety of technologies was that it made my project eligible for 3 out of the 5 bonus categories in the competition.)
What are your future plans for Find-A-Home?
Since winning the “FTW!” competition, I have spent a lot of time researching commercial viability of the project. Ultimately, I would like to expand greatly on the feature sets and would like to see it being used by everyone in Canada when they look to buy a new home as the definitive property research guide.
And last, but certainly not least, could you tell us a bit about yourself – anything you like: where you went to school, where you work now and other places you’ve worked, the sorts of technology you typically use, any interesting hobbies and so on.
I should start by saying that I have been programming since grade 7. I learned my first “Hello World” application using BASIC on the Apple IIe systems at my school and I was instantly hooked. I started getting those “Learn to code a game in only 1kb!” books from the local library and taught myself some basic programming skills. Then my family got a 80286 PC and I graduated my programming to QuickBASIC 4.5 on MS-DOS. I remember spending an entire summer one year in junior high working on a text-based adventure game called “Haunted House.” It was my first major software undertaking and the start of what would eventually become a dearly-loved career.
In Grade 9 (mid-late 1990s), I started to hear about this thing called the Internet and eventually got myself a GeoCities account and taught myself HTML and JavaScript programming. From there, I branched into various web technologies, including asp and some basic cgi perl code. After graduating from high school, I attended the two year Computer Systems Technology diploma program at the Northern Alberta Institute of Technology (NAIT) to finally solidify all of this programming knowledge I had accumulated since childhood into something useful for the business world.
I had the unfortunate luck of graduating from NAIT (in 2003) at what was one of the worst possible times for the IT industry in Edmonton. There were no programming jobs available, so I started off working for a call center, like many IT people in Edmonton. Eventually, I got a job at the Dell Edmonton call center where I was able to work my way into a position that had me developing internal web applications in C#/ASP.NET on a full-time basis. I have spent the last two and a half years working at a great company called Investopedia in full-time web development. The primary programming languages/technologies I am fluent in are C#, VB, XML, HTML/CSS/Javascript/jQuery, ASP, Python, MS SQL, and MySql. I also have a decent level of experience with network architecture and security.
As a hobbyist, I have developed a bit of an addiction to hardware and programming competitions. I have participated in the last two years of the Microsoft Embedded Spark competition, in which I learned hardware development and programming using Windows CE 6.0 and managed to make it through to Round 2 on both years. My first hardware project was a web connected, portable insurance cataloging and price finding system. The second project was a brain-controlled Dunk Tank, where you would wear a headband that read your brain waves in an attempt to center a ball on a target on a computer monitor. If aimed successfully, the computer would fire the release for the dunk tank’s platform. I also worked with my good friend, Mike, on a project that had us hacking the brand new Nokia N900 cell phone. We managed to win the “PUSH N900” competition (along with 4 other great teams) by designing and building a belt (called the Haptic Guide) that can guide you to the location of a geo-coded photo using only haptic (touch) feedback through a collection of vibrational motors embedded into the belt.
My latest competition was the “FTW!” competition, for which the Find-A-Home project was developed. I decided to take this summer off from competitions, but I hope to resume competing for the winter Embedded Spark competition.