Introducing: Recipe Manager

Three years ago, Daniel Taylor (of Arista fame) made a small application designed to store and manage your favourite recipes. It was simple, lightweight, elegant. He called it Recipe Manager (got a better, unique name, anyone?) and released a “technology preview” along with the file format spec onto this website. I was pretty excited and thought “I’ll definitely come back and have a look at this when it matures a bit”. Except that… this project wasn’t announced anywhere else than a post on Gourmet‘s mailing list and a thread in the Ubuntu Forums (as far as I can tell).

Fast forward to 2010, and this project has been kept mostly hidden in the depths of the Internets, like a treasure buried on a desert island. I’m pretty sure that nobody but a handful of people knew of its existence.

This stops today.

Since I have to actually learn cooking someday, I contacted Daniel a few weeks ago and suggested we revive the project:

  • Put a proper project infrastructure in place (I chose Launchpad for simplicity and various other factors)
  • Fix some of the glaring bugs
  • Release this awesome piece of software onto the world, so that others may benefit from it.

Recipe Manager is written in Python, doesn’t have a zillion features, and the code is quite clean (I even made it PEP-8 compliant, except line lengths). I am certain that you bunch of hungry hackers would love to use this app and fix a couple of bugs (or implement new features!) along the way. The app is already in a working state. It is beautiful, elegant and simple. I wouldn’t hesitate to have my family members use it.

We need your help. Our time is limited, and my Python skills are limited too. I already filed a couple of bug reports and blueprints (“big” feature requests), which are mostly low-hanging fruit that a seasoned hacker would fix in two minutes, or good learning experiences for those wanting to learn Python.

Get started:

bzr branch lp:recipe-manager
bzr branch recipe-manager my_branch
cd my_branch
# hack hack hack
bzr commit --fixes lp:bug_number

Then push your branch onto Launchpad and let us know about it:
bzr push lp:~your_username/recipe-manager/my_branch
(You can push it anywhere you want. Got your own web server/website? Just push it there and make sure the .bzr folder is accessible, and we can pull from it)

Currently, I’m mostly doing project management tasks. I was planning to release when the bugs I targeted to the “0.4″ milestone would be fixed but… Hey, why not allow early adopters to test it out (and fix bugs, while we’re at it) before releasing?

Now go. Run it. Hack it. Cook it. Love it.

15 thoughts on “Introducing: Recipe Manager

  1. Great idea. I looked at the former website and see that the recipe sharing protocol is under a NC license, which is very very restrictive and unclear. Is there any chance to modify this? Then I of course have plenty of questions related to the feature set but I’ll try the application first and see what I can dig. Thanks

  2. At some point in time I tried to convince Toms to help me revive this project. I managed to port the storage to sqlite and started moving it to GtkBuilder. Well, that was quite some time ago. Maybe I can find the code and try to generate some patches. Too bad you chose LP as I find its “code” part completely unusable. Go GitHub.

  3. I’m sorry but I think that something as simple as a recipe should be a web project like wikipedia or something.

    Imagine a GTK app with the sole purpose of managing enciclopedical articles o_O

  4. I still think it’s a great project. Some people might not always have internet and probably prefer to have their own recipes around and and maybe adjust with time. Imagine a restaurant using a software like this :P (some places from my city have weighters using touch screen computers in order for making orders etc)

  5. [second try, sorry if this double posts]

    Looks interesting.

    It would be nice if you posted a “preview” release, as launchpad still doesn’t offer snapshot tarballs(unlike practically every other code hosting provider). There are lots of people without access to systems with bzr.

  6. Good luck to you. I do wonder about the value of splitting off a second GTK-based recipe manager, especially one with an interface almost identical to Gourmet’s (http://grecipe-manager.sf.net).

    Gourmet has been around for years, has a steady userbase, and has already been down many of the wrong roads Daniel was preparing to set off down when he began the work (I recall he originally wanted to store the recipes in XML internally in the app, which incurs a huge speed hit). Also, in response to his prototype among other feedback, Gourmet’s base interface was pared way back and the features that got in people’s way have been reimplemented as plugins, making for a leaner infrastructure (for example, by default user’s never interact with “ingredient keys” etc).

    If I were starting over, I’d start on a web-based app (in fact I’ve been working on a web-based front-end to Gourmet), as having your recipes on your computer with no way to access them from your phone is a serious pain.

  7. Too bad you chose LP as I find its “code” part completely unusable. Go GitHub.

    GitHub doesn’t support bazaar and I can’t stand git, sorry. Yes, I’ve tried. I actually interact with git daily as a tester, and it always gets in my way. I chose bazaar as a simple tool that lowers the barrier of entry and allows me to Get Things Done (uber git users can interface with bzr anyway).
    I wouldn’t have been able to do those fixes without loosing my sanity if it wasn’t for bzr.

    It would be nice if you posted a “preview” release, as launchpad still doesn’t offer snapshot tarballs

    I’m a bit surprised by a request for a tarball for a non-released version, by hey, why not. Here’s one (temporary location until 0.4 comes out): http://public.ecchi.ca/0.3-bzr11.tar.gz

    I’m sorry but I think that something as simple as a recipe should be a web project like wikipedia or something.

    It already exists: http://en.wikibooks.org/wiki/Cookbook
    Somehow, it doesn’t stop me from wanting a nice app that works locally on my netbook. Or something to just store my *own* recipes without needing a website to do so. I think my aunt would be quite pleased with something like that.
    FWIW, I can sync my computers with unison (or sparkleshare, soon) or share recipes over the network with the built-in avahi feature.

    Also, it makes me independent from the “cloud”. I don’t like putting all my eggs into one puffy basket with no way to back them up. Not to mention maintenance costs, availability and privacy (if one desires it). Web apps are fun for collaboration and whatnot, but they’re not the solution to everything. If I trusted the cloud on this one, I’d just be searching the various recipe websites, not making a recipe manager app.

    Good luck to you. I do wonder about the value of splitting off a second GTK-based recipe manager, especially one with an interface almost identical to Gourmet’s[...] in response to his prototype among other feedback, Gourmet’s base interface was pared way back and the features that got in people’s way have been reimplemented as plugins, making for a leaner infrastructure

    I am among the ones who were excited about this happening. I even checked out the git version of gourmet back in september to see how the UI had improved since 2007. It has, lots, but still it doesn’t feel simple enough for me. I wanted to fix it, but it was a bit too messy for my amateur hands. In the end, it boils down to “recipe-manager did 99% of what I wanted, just needed minor fixes”. Sorry, I do know how it feels like to have potential developer resources split across projects :|

    having your recipes on your computer with no way to access them from your phone is a serious pain

    “I don’t have a phone, you insensitive clod!” ;-)
    This might be related to https://blueprints.launchpad.net/recipe-manager/+spec/shopping-lists though (you could have sparkleshare sync that .txt to a web server, or use conduit or some other way to sync to a phone).


  8. nekohayo:

    I’m a bit surprised by a request for a tarball for a non-released version, by hey, why not. Here’s one (temporary location until 0.4 comes out): http://public.ecchi.ca/0.3-bzr11.tar.gz

    I just wanted a way to take a quite look at the package, to see if it would suit me. Had it been hosted on gitorious, bitbucket, github, etc I could have just hit a button to get a tarball of the current state of the repository. Of course, on those hosting platforms I wouldn’t have needed too because I have the tools installed.

    Thanks for putting a snapshot tarball up, much appreciated.


  9. Tom:
    Gourmet has been around for years, has a steady userbase…

    You know, Tom, as someone who actually cooks and has a native language other than English I need a tool that works for me. Well, Gourmet doesn’t. Its i18n implementation is incredibly buggy and unmaintained. I even went as far as providing patches and never heard back from developer(s). If Recipe Manager works for me, I’ll move over to it.

    Web apps are cool, but being able to access data offline makes a perfect sense. So something like Tomboy’s web service would be great.

  10. For what I understand it could be possible to acces to the recipes through services like dropbox, UbuntuOne… hence from a smartphone/other pc. I like it!


  11. Fred Muller:

    Great idea. I looked at the former website and see that the recipe sharing protocol is under a NC license, which is very very restrictive and unclear. Is there any chance to modify this? Then I of course have plenty of questions related to the feature set but I’ll try the application first and see what I can dig. Thanks

    Well, it is *spec* of protocol which is under NC. It doesn’t mean that protocol itself can’t be used by commercial means.

    Cheers,
    Peter

  12. I would love to be able to sync my recipes between computers. I work on a desktop computer in my office and I’d love to see my recipes on a laptop in the kitchen.


  13. Stormy:

    I would love to be able to sync my recipes between computers. I work on a desktop computer in my office and I’d love to see my recipes on a laptop in the kitchen.

    If both computers are on at the same time, you could actually see those over avahi (well, if it wasn’t for this weird regression: https://bugs.launchpad.net/recipe-manager/+bug/652094 )

    But I guess you mean you’d like it to work by actually syncing the recipes. I wonder how this should be done. Would using sparkleshare sound reasonable? Perhaps in that case recipe manager could have an inotify/GIO callback that tells it to update its recipe list when something changes on the disk…

Comments are closed.