Quick SMS Nutrition Information

Text (415) 729-3599 with any food or beverage and it will tell you important nutrition facts in seconds. For example, I love the Western Cheese Fries at Longhorn Steakhouse, but I texted “longhorn cheese fries” to that number and found out one plate has over 1700 calories! Maybe next time I’ll think twice about ordering it. How healthy is that Wendy’s Southwest salad really? Text “southwest salad wendy’s” and find out.

This application uses Twilio for SMS handling and the DailyBurn service to look up over 400,000 popular meals. Give it a try!

Example usage:
Me “bacon cheeseburger”
(415) 729-3599 “Choose: 1: Bacon Cheeseburger @ A & W; 2: Bacon Cheeseburger @ Pierre; 3: Jr Bacon Cheeseburge @ Wendy’s; 4: Bacon Cheeseburger @ Ruby’s Diner”
Me “3″
(415) 729-3599 “In 136g: 310 calories, 26g carbs, 16g fat, 50mg cholesterol, 17g protein, 670mg sodium, 1g fiber”

Posted in Projects | View Comments

Headliner, a Windows Phone 7 RSS Reader

Over the past few days, some friends and I have been working nonstop on a windows phone application for the intern Windows Phone app competition.  Tirelessly programming Saturday through Monday, we have created a pretty darn good RSS reader application, Headliner.  I personally coded for 42 hours straight from Sunday morning until Monday night.

A few highlights:

  • Headliner is an RSS newsreader that helps you keep up to date with your favorite news and blogs
  • It can import feeds from and sync with your Google Reader account
  • Allows searching for and subscribing to feeds by keyword
  • Has a special OOBE screen that guides the user to get started quickly in one of 3 modes
  • Stores downloaded feeds and articles in IsoStore for offline viewing
  • Showcases a slick Metro UI with the Panorama and Pivot controls
  • Shows a “What’s New” panel with the latest news
  • Allows you to view feeds by category, and articles by category or feed
  • Displays unread count for each category and feed, as well as coloring article list items based on if they have been read yet
  • Uses familiar styling for article lists (looks like email app) and category/feeds lists (looks like contacts app)
  • Has two modes for viewing articles:
  1. Summary mode: displays the article summary or content and a supporting image (if found).  This is the faster view.
  2. Embedded browser mode: displays the source article within an embedded IE control.  This view, while slower, can be more complete.
  • Allows you to send articles via Email or SMS
  • Allows you to share articles via Twitter
Posted in Projects | View Comments

I am definitely going to this:

I’ve heard music from Final Fantasy performed live twice now, once in Atlanta several years ago, and once in Seattle last summer.  This, however, will be the event not to miss.  I was able to get a copy of the program, and it’s going to be great.  I’m especially excited for Suteki Da Ne from FFX, which is easily my favorite piece from a video game.   Anyway, the full document is at http://okgodoit.com/DistantWorlds.pdf, but here’s the important part:

2 Nights, 2 Programs! Music from Final Fantasy with the San Francisco Symphony

Arnie Roth, conductor
Susan Calloway, vocalist

*North American Premiere

Thu July 15 8pm
Final Fantasy VII: Opening – Bombing Mission
Final Fantasy VIII: Don’t be Afraid
Memoro de la Stono – Distant Worlds*
Final Fantasy I-III: Medley 2002
Final Fantasy IX: Prima Vista*
Final Fantasy XII: Kiss Me Goodbye*
Final Fantasy VII: Main Theme*
Final Fantasy VIII: The Man With the Machine Gun
Final Fantasy IV: Theme of Love
Final Fantasy VII: J-E-N-O-V-A*
Final Fantasy X: To Zanarkand
Final Fantasy XI: Ronfaure
Final Fantasy XIV: Medley*
Final Fantasy VI: Opera “Maria and Draco”
Final Fantasy VI: Terra’s Theme

Fri July 16 8pm
Final Fantasy VII: Opening – Bombing Mrssion
Final Fantasy VIII: Don’t be Afraid
Memoro de la Stono – Distant Worlds*
Final Fantasy IX: Melodies of Life*
Final Fantasy IX: Prima Vista*
Final Fantasy V: Dear Friends
Final Fantasy IX: Vamo’ alla Flamenco
Final Fantasy VII: Aierith’s Theme
Final Fantasy VII: J-E-N-O-V-A*
Final Fantasy VIII: The Man With the Machine Gun
Final Fantasy X: Sutekidane*
Final Fantasy VI: Dancing Mad*
Final Fantasy Series: Swing de Chocobo
Final Fantasy VIII: Love Grows
Final Fantasy: FFXIV*

LONG
Following last summers thrilling engagement, Grammy Award-winning conductor Amie Roth returns to the Symphony for two electrifying concerts of music from the video game Final Fantasy. These special gala events will feature music not heard at last summer’s concert, including the North American premiere of Final Fantasy IX: Prima Vista and music from the upcoming CD Distant Worlds II: music from Final Fantasy.  Plus a chance to meet legendary video game composer Nobuo Uematsu! (crossed out)

SHORT
Two electrifying concerts of music from the video game Final Fantasy feature the North American premiere of Final Fantasy IX: Prima Vista and music from the upcoming CD Distant Worlds II: music from Final Fantasy. Plus a chance to meet legendary video game composer Nobuo Uematsu! (crossed out)

Side and Center Terrace seats are not available for this performance.

TICKETS START AT $30

Posted in Blog | View Comments

Domain Name Searching Tool

I have been coming up with a lot of Web 2.0-ish ideas recently, but I often spend too much time trying to come up with a name that is an available domain name as well. There are some sites (such as my personal favorite, www.domainnamesoup.com) that attempt to help you with this, but they end up taking quite a long time as you try various combinations of words and synonyms.

I made a tool that helps me automate the process of thinking up and looking up domain names. You give it a few keywords and it automatically extrapolates them into related keywords, which it then uses to build domain names. It checks the domain name availability automatically, and rates the domain name with a relative score based on several factors (such as length, relevance of the keywords, if mangling has been applied, etc). The best part is the speed, as it can generate hundreds of relevant available domain names in just a few minutes.

Not all of the domains it spits out are great, but quite a few of them are. I have used it to come up with domain names for a couple different projects so far, and I’ve found it to be very helpful. I am also using parts of this tool in my new business venture, which I will post about later.

Try it yourself by installing it from http://okgodoit.com/domainsearcher.htm. Be sure to let me know what you think, and any suggestions you may have.

Posted in Projects | View Comments

DialPrice: A VoIP price-checking service

Introduction

Back in March of 2008, Yahoo held a programming competition here at GA Tech, with the idea being that you take some web services (preferably Yahoo services) and mash them up to make something cool. Dubbed “HackU”, the idea was to hack something together in a week; it didn’t have to be pretty, but it should do something different, novel, or useful.

I had at this point been working with the open-source VoIP PBX Asterisk with my roommate, so I figured I’d do something relating to VoIP. The question is what could I make that was both cool and impressive, but also was useful on a phone?

As a frequenter of SlickDeals, I’m always looking for a good deal. I had heard at one point of a system that would let you take a picture of a UPC code and send it to a web service, which would then process the image, pull the product pricing, and text message it back to you. While it seems like a cool concept, I had never seen a working version, plus the overhead of having to have a MMS and SMS plan and a decent camera-phone would seem to me to alienate a lot of potential users. What if you could simply call a phone number, enter in the UPC code as a series of numbers, and then hear the results? Seemed like a good idea, both useful and packing a fair amount of “wow factor”.

Step 1: Getting the Pricing Data

I wanted to use a Yahoo service to pull the pricing data, seeing as it was a Yahoo competition, however the Yahoo Shopping web services are not very comprehensive, and wouldn’t let me look up a product by UPC code, so I had to scrap that idea. I also looked into Shopping.com, PriceGrabber, and others, but none offered a developer API, and scraping proved to be rather difficult, as the pages often had different formats based on the number of products matching a query.

It turns out that Google Product Search pulls its data from Google Base, which does have a powerful developer API. In fact, I found I could look up a product by UPC and get back quite a lot of results. I could then filter the results by the UPC field to make sure that they actually were the right product, and then clear out results from eBay and any used condition results.

I implemented a quick-and-dirty service in C# using Linq-to-XML, which takes a UPC string and returns a list of results. I then calculated the minimum, maximum, and average prices. I also wanted to return some information about the product itself for the user, so I compared all the returned product names, categories,a nd manufacturers, and took the most common of each set (because different stores describe the same product differently). I also get product ratings from the Amazon Associates web service.

Step 2: Handling the Phone Calls

I had at this point some experience with the Asterisk VoIP PBX system, but I quickly found that it was pretty much impossible to make an interactive phone service using the built in dialplan system. Luckily I found Adhearsion, a Ruby interface to Asterisk’s AGI interface, allowing me to program Asterisk using the Ruby programming language. Using Ruby, I queried the ASP.NET web service I had created to get the product data.

In the end, the servers were a little complicated, but that’s all in the spirit of hacking something together, right? ;)

Here’s a diagram to show how everything connected up.

Conclusion

In the end, it turned out really well, and I won first place at the competition. Take a look for yourself at DialPrice.com.

Posted in Projects | View Comments