Hacker News new | past | comments | ask | show | jobs | submit login
Recursive Recipes (schollz.com)
187 points by xk3 12 months ago | hide | past | favorite | 88 comments



I'd like to report a bug, or two:

- there's no recipe for the cow

- 1/8 of a cow is reported as $0.00

https://recursiverecipes.schollz.com/recipe/refried-beans?am...


Yes - and the 1/8 of a cow is needed to make milk to make butter. This might be possible if you were very selective about which eighth of a cow you procured, but you’d need some additional kit which the recipe doesn’t account for.


I buy half a cow every year and I can tell you for a fact that it doesn't come with the milk making parts still intact.


Some of the $0 items are the base "from scratch" items. You can click on an item to make it from scratch; doing so for eggs gives an egg-laying chicken (with an associated price), but doing that again gives the base level of "baby chicken." Not everything goes down that far (e.g. baking powder) but things like soil and seawater are of that ilk. See also: vanilla


Really interesting concept, but I think something is very wrong with whatever it is doing to (intentionally?) highjack browser histories/navigation on every page.

For example, if I just click "Refried beans" on the homepage, then click the recipe for "Refried beans" from the ingredients list on that page... it takes pressing Back on the browser FIVE times before I'm finally back at the homepage. And, interestingly, at no point during this process do I actually go back to the actually-previous page (where you land after clicking "refried beans" on the homepage) -- I just stay on the current page as the URL changes every time and then eventually make it all the way back to the homepage with nothing in-between.


> For example, if I just click "Refried beans" on the homepage, then click the recipe for "Refried beans" from the ingredients list on that page... it takes pressing Back on the browser FIVE times before I'm finally back at the homepage.

I must be getting old. There's no hijacking going on here, the page uses URL params, and probably JS to decode them.


So I'd say that the page must hijack the history to not pollute it with navigations that from the user perspective, aren't navigations.


URL params have (almost) nothing to do with history hijacking. That’s all the history.pushStare and replaceState API’s.


I was expecting recipes to make something that's an ingredient of themselves, so that the recipe is truly recursive.

Now I'm trying to find out such examples of actually recursive recipe and I only find examples based on fermentation, which have a way to be bootstrapped but are then actually recursive: kombucha, kefir, vinegar, levain.

Is there anything else?


Making yoghurt contains the instruction: "Stir in some yogurt (from the store or from a friend) and cover with a clean damp towel overnight."

This recursive dependency is not visualized sadly. Fun website nonetheless!


Yes of course, yogurt, which is another fermentation based recipe.



Fondant is much easier to make with some fondant as an ingredient. It acts as a seed to encourage the formation of the structure. I wonder if there are any mutually-recursive recipes.


Ah, that reminds me that tempering chocolate involves seeding it with tempered chocolate [0]

[0] https://youtu.be/2VrsmahNcfI?si=iDrWhkeAhrSQNMIF&t=549 Bon Appétit making gourmet Andes Mints


I heard this from a Russian friend years ago (so I might get the details wrong): to make the Cocktail Recursive, mix

- 1 unit of vodka

- 2 units of water

- 3 units of Cocktail Recursive


Also well known is Russian recursive salad: tomato, cucumber, salad.

(Where the salad the consituent is an alias for lettuce)

I can't imagine Russians mixing vodka with water, though.


There's also the Fibonacci's salad: mix leftovers from yesterday's salad with leftovers from the salad you had two days ago.


They missed an opportunity with the eggs, which went egg -> egg laying chicken -> baby chicken but could clearly have then included baby chicken -> egg ...


Cherry Ripe Bars [1] use rejected bars as a component of their filling.https://en.m.wikipedia.org/wiki/Cherry_Ripe_(chocolate_bar)


> so that the recipe is truly recursive

Recursion doesn't imply infinite recursion; a recipe doesn't have to invoke itself to be a recursive recipe. Surely a recursive recipe is just a recipe that invokes a recipe.

This is completely normal; see Escoffier. E.g. for Cod Mornay, "Make a roux".

Escoffier's recipes were often just a single paragraph; you were supposed to know how the target tastes and looks.

Making sourdough is arguably infinitely recursive. You can break the recursion by looking up "Make a sourdough starter".


> a recipe doesn't have to invoke itself to be a recursive recipe

Er, no. That IS exactly what recursion means. It doesn't have to be infinite - there can be a halt condition - but if something doesn't call itself, it is not recursive.

These are not recursive recipes at all; they're just nested.


> Surely a recursive recipe is just a recipe that invokes a recipe.

No, a recursive recipe is one that (directly or indirectly) invokes _itself_. That's the whole point of recursion (literally, come back (=re) turning (=cur)).

And don't call me Shirley.


OK, I should have thought a bit more before posting.

But in that case the recipe for refried beans isn't recursive; there are no refried beans in the ingredients for refried beans, even if you grow your own beans as part of the recipe.

I had a boss who liked to be obeyed immediately; if you said you'd do it shortly, he'd say "Don't call me Shortly". He wasn't very tall.


a common way to temper chocolate for making candy is to seed the crystal structure with... tempered chocolate


It’s giving ice-9. Anyone know how the first chocolate was tempered?


You can also temper chocolate by melting it to 50°C-55°C, cooling it to 28°C and then working with it, barely melted, at 31°C. I don't know how we figured that out to start with though.


Fruits salad?

Throw away the kernels, get more fruit.


Fun recursive food fact: the filling between the wafers of a kit-kat bar is ground up kit-kat bars.


Surely Wikipedia would mention such a unique property if it were true, but I can't find a mention of that an ingredient for kit kats is a (fractional) kit kat on https://en.wikipedia.org/wiki/Kit_Kat

I really want to believe this :(


This would transform the dependency graph from a DAG to one with cycles and thus the recipe could not be resolved


A small trick can help.

A Kit-Kat bar consists of some external components, like wafers and chocolate. It's only the combination that turns them into a bar.

So you can bootstrap production by grinding the components and mixing them: it produces a Kit-Kat bar in a ground state. After that, you can produce more and more nominal-state bars.


So... Kit-Kats are impossible! Yet they exist, a miracle!


They are not impossible. It takes a fraction of a Kit-Kat to make a Kit-Kat.

But nobody can build them from scratch. If at any time they are all eaten, that's it!


It’s like a self compiling compiler that can’t be bootstrapped!


How was the first KitKat built then?


There was no “first” KitKat! What a silly strange deranged heretical thought!

Perhaps you are confusing the (discarded, and rightly so!) Unified Linear Field Theory with the (universally accepted, as it should be!) Unified & Closed Modular Field Theory?

Time ultimately, like all dimensions, is a meaningless loop. Of Kit-Kat’s.

Leaving only one last physics question to settle definitively, by prose, coercion, poison, blade, and projectile: Do the Kit-Kats form a Dünkin torus or a Möbius strip?

Entire schools of sugary confectionary thought hang in the balance!


The first KitKat wasn't as good as the latest KitKat, as it wasn't KitKat enough


So then as every KitKat is produced, we are approaching the ideal KitKat?


I think KitKat already peaked when Melon KitKat was released.


It’s KitKats all the way down


Which came first, the filling or the kit-kat bar?


Neat idea. Small HTML oops: the semantic link was trying, but missed, so not middle-clickable:

    <div class="box ingredient-box clickable nounderline"
         onclick="location.href='/recipe/refried-beans';">
      <h3>
        <span class="display-block">
          <a href='/recipe/refried-beans'></a>
          Refried Beans
        </span>
      </h3>
    </div>
A more structural HTML, plus modern CSS styling, would work a little better in modern browsers, and degrade better in lightweight and older browsers.


I'd like to better understand the intent with that code. What is it trying to achieve that this does not?

    <a class="box ingredient-box clickable nounderline"
         href="/recipe/refried-beans">
      <h3>
        <span class="display-block">
          Refried Beans
        </span>
      </h3>
    </div>


A link that's only clickable by JS looks like an anti-scraping measure :(


Was a little disappointed that the apple pie page doesn't let you drag the time limit long enough to "first create the universe".


This is actually something I feel lack in lot of recipes. They are often "too simple", as in they assume a lot of knowledge. Let's say you're making cinnamon buns. The recipe will basically just say mix these ingredients, knead, let it raise, roll, add stuff, bake.

But it lacks all the details. Like how do you work the best with different kind of yeast? How do you know if you got the right texture / amount of liquid? What about all the tricks and tips when working with this kind of baking stuff?

Old school cooking books are often better at this. There the cinnamon bun recipe would be "use the base bun dough from page X, but use only Y amount of ingredient Z". And then on the base recipe, all you need to know about doughs are covered.

Similarly, a recipe with meat will just say "cook until done", and then you need to know yourself how to best sear it, the temperature at which it is done etc.

Perhaps this is a place where LLMs can shine. It can fill in the perfect amount of knowledge for me if I'd ask it.


There has always been a distinction between (basic) cooking books that teach basic recipes and the accompanying cooking techniques on one hand and recipe books.

But there also was always the assumption, that people pick up very basic techniques starting as a child by helping in the kitchen, beeing shown by it and doing it themselves.


You might like Harold McGee's "On Food and Cooking" which is basically a popular science food chemistry "textbook" (it doesn't really go in the chemistry details but it usually gives you some pointers). It's got a chapter on dough iirc :) It's an excellent bathroom book because you can just open any page to find some quirky facts about foods.


I was disappointed I couldn't actually create recursion by tracing my egg to a chicken to an egg to a...


Hahaha! Right I expected the same for yogurt!

I was thinking about this actually; are these actually recursive or just like self referential? But it's a recursive data type!

type Ingredient { ingredients: Ingredient[] }


In the recipe the third step of making yogurt calls for yogurt.

> 3. Stir in some yogurt (from the store or from a friend) and cover with a clean damp towel overnight.

It is kind of a missed opportunity to not include yogurt as the ingredients list for yogurt, and in the flow chart, to have a loop arrow from yogurt, pointing back into it self. “To make yogurt, you need milk and yogurt”

EDIT: Looks like somebody already filed a feature request. https://github.com/schollz/recursive-recipes/issues/19


Ah, this is neat! From the title, I thought it would be about perpetual stew, where the stew is an ingredient to itself.


I think it'd be cool to see a Gantt chart of the process as well, to get an alternative visual idea of the dependencies and timings



I write recipes out as somewhere between a Gantt chart and a left to right dag, it can be a very compressed representation


I've written recipes as BPMN, but it reminded me too much of works.


This is neat! On this topic, an interesting and pretty comprehensive guide to money / time / effort / quality tradeoffs in food is "Make the Bread, Buy the Butter" by Jennifer Reese.


It would be great to have an option to not only increase and decrease the time limit, but simply increase/decrease the complexity by one step.

Edit: OK, this seems to kinda work by clicking on the ingredient.


It's an interesting idea, but it could be... better? I started expanding pancakes, and at some point I got butter and buttermilk. The instructions to make them are essentially duplicated, despite buttermilk being a byproduct of making butter. The total prep time is also duplicated. Even if they were independent recipes, they could be done in parallel (most of the 24+ hours recipes for buttermilk and butter are 12-hour stages of waiting).


Site doesn't work without websockets.

Why does a pure text website need websocket functionality?


Boring answer:

Backend

Less boring answer: Obfuscated malware payload (a.k.a JS)


Funny seeing the "atomic" recipe for refried beans. I've recently learned to make my own refried beans from scratch, and it is a super easy recipe. My recipe is recursive, though! I use dried beans that I've already cooked and frozen ahead of time.

(Canned beans are fine in a pinch)


That's why I wanna try fried beans, because maybe they're just as good.


Fun fact, the English name is a translation error from 'frijoles refritos,' which is closer to "well fried" in meaning.


I thought it was odd to stipulate the use of a frying pan; I thought the "refritos" bit was a misnomer. My method involves simmering the beans with garlic until soft, mixing in butter, and then whizzing/mashing. There is no "frying" step, unless you like to scour frying pans.


What about rerefried beans? If twice is good, three times must be better?


Some of the recipes take in account bulk creation, some don't: Egg poaching can be done in batch, it does not take 9 hours to do 12 serves of Egg Benedict (+ sauce + poaching)!

Some of the recipes are wrong: for Eggs Benedict: should be: 1 whole muffin : 2 whole egg : 2 whole slice bacon


Also the muffin step has a two hour rest, which isn't included in the total time


Related:

Show HN: Recursive Recipes – directions to make food from scratch - https://news.ycombinator.com/item?id=17180686 - May 2018 (75 comments)


Why is land considered $0, when it's actually really expensive to obtain?


The website seems to only count the cost of ingredients that are consumed by the recipe. Also explains why a cow is $0.


That just means you're doing it wrong.

The correct way is to be born to a wealthy family, and inherit it for $0.


Somewhat related (to the cookie recipe) is the purest cookie: https://www.youtube.com/watch?v=crjxpZHv7Hk


interesting. i was a bit disappointed that he used finished chocolate instead of making that from scratch too. but then i noticed that he has a video on making chocolate, so at least in principle he got that covered.

as for the taste, i would like to see a series of experiments where each pure ingredient is replaced with a consumer grade one, one at a time, to see which ones are responsible for the taste.


Can someone now create a Factorio mod from this, please?


This reminds me of something that always made me smile - when at uni I lived with an Israeli guy who made yogurt in a pan in the kitchen. When I asked how you make yogurt, the answer was “put some milk in a pan with some yogurt and leave it for a few days”. Not sure whether they’re in on the joke here, but the recipe for yogurt is to buy some


my favorite joke when the food is late at a restaurant, is to explain that they are still busy gathering the ingredients, like slaughtering the cow for that beef steak we ordered an hour ago. now i can point to this website where the process is actually documented.


I am disappointed that the recipe for "tortilla" is "go and buy it"; regardless of wheat flour or corn flour based tortillas, it is easy enough to make your own, and the different in taste is paramount.


I think you may have missed the point of the site: "Go and buy it" is merely the starting state for all recipes, see "Click on an ingredient to make it from scratch."


You have to click on the step to expand it.


According to this I can replace wheat with an acre of soil, in a recipe of pancakes for 8.

I don't think my guests will be returning. Department for Environment, Food & Rural Affairs might also pay me a visit if I attempt this.


Recipe for cheese:

    "Go and buy it."
I get this website is a joke, but it is a pretty bad one.


No, change the “Time limit” slider and you’ll get it. It’s actually very clever.


this is like minecraft.


Looks a bit half-baked.

The concept seems interesting. It seems like it’s missing too much information/behavior to explore in an interesting way.


<comment was incorrect, redacting misinformation>


You have to click the ingredient to expand the instructions.


Gotcha, thanks for the clarification.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: