Week 1 – Choosing meals
For my first problem of 2017, I wanted to tackle something that had been a recurring issue in our household for a while: knowing what to cook for dinner/lunch. Lena and I have favourite fallback options that are safe and delicious (e.g. dahl, roast vegetables, spaghetti), but we like cooking and eating new things.
Our trouble stems from the over-abundance of options combined with a lack of a starting point. Whenever we’ve hit a situation in which something needs to be eaten quickly before it goes bad, the problem goes away – five minutes’ searching “recipes with partially-mouldy bok choi” yields a few good options.
So, I want good recipe options at my fingertips, and I don’t want so many that I’m overwhelmed, but I want them all to be pretty good.
Step one to solving a problem is to understand what the problem really is. No point building a bridge across the river when the customer only wanted to visit the burrito store on the opposite side – much easier to open a new burrito store on this side instead!
So what is our problem here? This one is a pretty gentle pitch, since the problem is mine, but it’s still good practice.
Objective: Obtain meal recommendations on demand
Restrictions: Should be tailored to my preferences, should only provide a small list of options.
Optional bonuses: Filter by what is already in the pantry, update search based on past success.
Bearing in mind the wisdom that the first solution may not be the best solution, I’m going to push myself to come up with at least five options before choosing one to tackle.
- Use an existing database of recipes and write a program to query it
- Build a database of recipes by scraping the web and query it
- Search a subreddit or similar for posts with certain keywords and serve up the results
- Take a list of what is in the pantry and randomly select a focal ingredient, iron chef-style, then possibly also provide some recipes from a Google search
- Create an algorithm that incorporates a bunch of different factors to spit out an answer, probably with a random element thrown in to keep it from becoming stale
OK, good list. Worthwhile exercise, too, because a few of those did not occur to me until I’d spent half a day with the idea marinating in the back of my mind.
Next up, deciding and implementing – stay tuned!