@@ 0,0 1,169 @@
+#+TITLE: Stealing a pesto recipe
+#+DESCRIPTION: I love pesto, and when I found the perfect recipe, I just had to recreate it myself
+#+KEYWORDS: food, pesto, recipe
+#+OPTIONS: toc:nil num:nil
+#+DATE: <2024-02-09 Fri 08:12>
+
+* Introduction
+The first time I ordered at /Freddy Fresh Pizza/ about a year or two ago,
+I was unsure what to pick
+and ended up just trying to recreate
+one of the more typical vegetarian pizzas.
+However, after having finished it and looking at the price we paid
+(Freddy Fresh charges for additional ingredients)
+it occurred to me,
+that Freddy's pizza cannot be compared to the Italian ones I'm used to.
+So when we ordered takeout again,
+I looked through their menu again and chose the =Venedig= pizza.
+
+=Venedig= is essentially a /Pizza Margherita/,
+with sliced tomatoes on it.
+But you also get two packs of pesto to put on top of your pizza.
+And let me tell you, that is the best pesto I've ever had.
+
+* Basic ingredients
+I recently bought the pizza again,
+but this time I noticed
+that the label shows percentages for the ingredients.
+
+So I decided to make a copy and try to replicate it myself.
+
+#+begin_quote
+rapeseed oil, basil 22%, hard cheese 12%, cashews 6%,
+olive oil, garlic, salt
+#+end_quote
+
+From the nutrition facts
+I've also gathered that their pesto has ~1.8 grams~ of salt per ~100g~.
+
+I then put all of these values into a table.
+Unfortunately, some values are still missing:
+The amount of rapeseed oil, olive oil and garlic.
+Given that the food labels normally list the ingredients by amount
+(descending),
+I figured that both olive oil and garlic have to be less than 6%,
+but more than 1.8%.
+(And yeah, I study computer science, and yes, we do a lot of math)
+This means that the rapeseed oil has to be at least 46%
+and at most 54% of the pesto.
+I then assumed that 50% should be about enough
+(as it is easy to calculate and in the middle of these two values).
+
+This means that the percentages of the olive oil and garlic combined,
+should be equal to about 8% (or 8.2%, to be precise).
+Because I find it very unlikely for both to take up 4%,
+I randomly decided on 5% olive oil and 3% garlic.
+
+After writing all of this down,
+we get the following table:.
+
+#+begin_src elisp :exports none :results none
+(setq ingredients
+ (list
+ 'rapeseedoil 0.5
+ 'basil 0.22
+ 'hardcheese 0.12
+ 'cashews 0.06
+ 'oliveoil 0.05
+ 'garlic 0.03
+ 'salt 0.018
+ ))
+(defun form (x)
+ (/ (round (* x 100.0)) 100.0))
+#+end_src
+
+#+begin_src elisp :exports results :results value table
+(setq count (/ (length ingredients) 2))
+(setq display (list '("Ingredients" "Amount in %")))
+(dotimes (i count)
+ (setq name (nth (* i 2) ingredients))
+ (setq percent (nth (+ (* i 2) 1) ingredients))
+ (setq display (append display (list (list name percent)))))
+display
+#+end_src
+
+#+CAPTION: Ingredients and Amount
+#+RESULTS:
+| Ingredients | Amount in % |
+| rapeseedoil | 0.5 |
+| basil | 0.22 |
+| hardcheese | 0.12 |
+| cashews | 0.06 |
+| oliveoil | 0.05 |
+| garlic | 0.03 |
+| salt | 0.018 |
+
+* Replicating the "recipe"
+We grow a lot of herbs in our garden,
+and like most years,
+our basil plants ended up rarely used,
+with a lot of green leaves on them.
+
+So I decided that making homemade pesto would be the perfect use for them.
+However, the pesto that is being served with the pizza
+comes in ~40 gram~ packages,
+but ~8.8 grams~ of basil is hard to eyeball.
+And given that fall is just around the corner,
+I decided to harvest all the basil,
+with the idea of being able to freeze some of it.
+(Which turned out amazing.
+I can only recommend silicone ice cube molds)
+
+After sorting through the produce, and washing it,
+the basil weighted in at just about ~80 grams~.
+
+As I didn't want to waste all of it
+(in case my recipe didn't work out),
+I decided to take ~40 grams~ of it
+and adjust the recipe to fit the amount of basil I had.
+
+To do so, I wrote a simple Lisp script
+/(yes I can make this about programming)/,
+to calculate the weight and percentage in relation to the amount of basil.
+Some of you might notice that the code is incomplete,
+and that is because some of the tables above
+were generated using Lisp as well,
+and use the same variable definitions.
+If you are curious, you can take a look at the source code of this page.
+
+#+begin_src elisp :exports both :results value table
+(defun convert (name basil-amount)
+ (setq basil-default (plist-get ingredients 'basil))
+ (setq item (plist-get ingredients name))
+ (/ (* item basil-amount) basil-default)
+ )
+(setq basil-amount 40)
+
+(setq reldisplay (list '("Ingredients" "Amount in g" "Amount in %")))
+(dotimes (i count)
+ (setq name (nth (* i 2) ingredients))
+ (setq weight (convert name basil-amount))
+ (setq rel (/ weight basil-amount))
+ (setq reldisplay (append reldisplay (list (list name (form weight) (form rel))))))
+reldisplay
+#+end_src
+#+CAPTION: Ingredient amounts relative to the basil weight (assumes 40g)
+#+RESULTS:
+| Ingredients | Amount in g | Amount in % |
+| rapeseedoil | 90.91 | 2.27 |
+| basil | 40.0 | 1.0 |
+| hardcheese | 21.82 | 0.55 |
+| cashews | 10.91 | 0.27 |
+| oliveoil | 9.09 | 0.23 |
+| garlic | 5.45 | 0.14 |
+| salt | 3.27 | 0.08 |
+
+Either way,
+after calculating all of these values,
+I got out a measuring cup
+and started weighing the ingredients.
+
+However, I only added about ~3/4~ of the rapeseed oil
+before blending the ingredients together,
+and added the rest after blending and stirred them together using a fork.
+
+Afterwards, just leave the pesto for a couple of hours (you don't have to, but it might make it better).
+If you made too much, just freeze it in silicone ice cube molds,
+and put the frozen cubes on your hot pasta or pizza.
+
+Enjoy.