I've been putting the finishing touches on my robot that can mix cocktails over the last few weeks.
One of the last steps was to build up the recipe database for it. I knew I wanted to have some sort of Microformats h-recipe integration, but this ended up working out better than I had hoped.
In the "Perfect Drink" iOS app, you can input the list of liquors in your cabinet, and it will show you the recipes you can make with those ingredients. I clicked the "share" button on one of the recipes, and it shared a link to a web page with the recipe.
I noticed that this web page happens to have Microformats 2 h-recipe markup in it! This meant I had a very quick way of getting these recipes into BarBot's recipe database, by parsing the Microformats!
I created an interface for parsing the recipe from a URL that has h-recipe markup and mapping it to a BarBot recipe. The interface is ugly, but it works!
When I want to add a recipe, the code parses the h-recipe, finds the name, photo and list of ingredients. It then presents me with an interface to map the list of ingredients in the recipe to the ingredients I have in my liquor cabinet. In this example, you can see I'm substituting Triple Sec for Cointreau.
This ends up being the quickest way to add recipes to BarBot's database!
"With all these negative reviews, I thought it would be hard to get going, but I'm no slouch when it comes to technical stuff so I gave it a try. It was really pretty easy. I got it to work with two different raspian images (hypriot and the standard Jessie) by just adding a few lines to the config.txt:
hdmi_cvt=1024 600 60 6 0 0 0
The first line let's the pi send it more current over the USB ports, the other three set a manual resolution for the HDMI. These are standard pi configuration variables, and needed for most bare monitors."