WEBVTT

00:00.000 --> 00:13.900
Hello everyone, so right now we have Alexey to both keep with us and he's going to talk

00:13.900 --> 00:26.360
on Googleang, Hacking the recipe format, a round of applause please.

00:26.360 --> 00:34.160
I'm Alexey and it happened that a few years back I created a simple recipe markup

00:34.160 --> 00:42.320
language and also a CLI which helped me with grocery shopping.

00:42.320 --> 00:49.960
And the way we write recipes hasn't changed from the mentally for centuries, I would say.

00:49.960 --> 00:55.680
But diving deeper into the subject, I realized that it's actually not something we

00:55.680 --> 01:00.720
need if you don't need recipes, we need just yummy food and that's it and recipes

01:00.720 --> 01:05.640
just a tool which we used and it should help us.

01:05.640 --> 01:14.080
But today I want to share with you my thoughts what in current recipe system can I consider

01:14.080 --> 01:17.200
broken and what we can do to fix it.

01:17.200 --> 01:20.320
So let's begin.

01:20.320 --> 01:24.840
First of all, let's start with the obvious, so if you ever cooked, you probably noticed that

01:25.720 --> 01:33.280
when you find the link and you try to find the recipe on the page, it just very annoying.

01:33.280 --> 01:41.440
So you have to go through like pop ups, videos and ads coming from every site and it's

01:41.440 --> 01:47.960
understand that recipes publishers need to make money but is it a good way to do it?

01:47.960 --> 01:55.240
And probably they only expect that we just get dizzy and misclick on the out, I don't know.

01:55.240 --> 02:01.880
So anyway, it's a really horrible experience.

02:01.880 --> 02:09.360
Next thing is that the same recipe publishers, so they want to make the recipe unique and

02:09.360 --> 02:17.840
so they take a tried into recipe and ads or call innovation into it and this and but

02:17.920 --> 02:23.200
I want to get original recipe because after innovation kind of broken and I can ruin my

02:23.200 --> 02:26.000
evening trying to cook it.

02:26.000 --> 02:34.120
So how can I find this original recipe which reliable and tried and true?

02:34.120 --> 02:40.840
And that leads to another observation which is the best recipes and published or posted

02:40.840 --> 02:42.600
they are shared.

02:42.600 --> 02:52.600
So for example, you had a great meal to your friend's house and you asked for a recipe

02:52.600 --> 02:59.000
and that brings to the next issue which is how we shared those recipes.

02:59.000 --> 03:06.240
So right now there is no like Google for recipes when you're something that comes to your

03:06.240 --> 03:09.280
mind you need to share the servers the recipe.

03:09.280 --> 03:17.200
So it can come into WhatsApp, into bookmarks, websites and Pinterest or whatever platform

03:17.200 --> 03:27.600
you use and so we start them anywhere and it quickly becomes no way useful right?

03:27.600 --> 03:35.840
So the nut issue is that I don't truly own those recipes and I can't really personalize

03:35.840 --> 03:36.840
them.

03:36.920 --> 03:43.880
For example, if I don't eat garlic I want to remove it from all recipes I use.

03:43.880 --> 03:52.240
How can I do this with the recipe which is bookmark on the website?

03:52.240 --> 04:02.040
Even if I go extra mile and download one of those thousand ups and like paprika and

04:02.080 --> 04:10.840
the recipe there is very hard for mobile UI and can't use a copy page for things and

04:10.840 --> 04:16.200
other issues that because it's internal format it can be stored in the cloud or it can

04:16.200 --> 04:19.560
be stored in some proprietary format.

04:19.560 --> 04:25.080
What happens if the app shuts down I guess right now we have some lost which at least

04:25.160 --> 04:33.000
in the you we can up download our expert data but it's still I need to re-export it

04:33.000 --> 04:39.160
and re-import it somewhere else and it's very hard and during my lifetime when I want to

04:39.160 --> 04:50.440
collect all the recipes it can definitely happen and so most likely will happen and the last

04:50.520 --> 04:56.920
thing I want to mention is that as we as I said earlier we don't need recipes we want

04:57.720 --> 05:04.520
food there's quite a few steps between right so we need to create a meal plan a shopping list

05:05.160 --> 05:11.960
and then cook and if you're about try to create a shopping list for a couple of recipes it's

05:11.960 --> 05:17.880
early nightmare so it's very exhausting exercise and your brain will be just empty acid

05:18.600 --> 05:27.000
and if you want to create a meal plan which is balanced and healthy it's even harder and I

05:27.000 --> 05:35.320
tried it once and it's just I never go back to it's nightmare so just to recap a few things which

05:35.320 --> 05:41.800
stayed between us and food is probably finding good recipes storing and sharing them and

05:41.800 --> 05:50.760
personalizing them and probably with planning because it's very exhausting so I was thinking

05:50.760 --> 05:58.840
what can can you do to solve this and we can do something which is just been a while with us

06:00.280 --> 06:08.920
for decades I'll say it's a good old plan plan text files so we can store store them we know how to

06:08.920 --> 06:15.400
deal with files we can move them around moving to folders we know how to share files lots of

06:15.400 --> 06:24.040
different ways and we know how to edit them right to personalize so another good good thing we can do

06:24.040 --> 06:33.320
is that make it in a way that computers also can understand those files and then they can solve

06:33.400 --> 06:40.840
the problem with the brainfuel so they can plan mills for us and create trucking list and ideally

06:40.840 --> 06:47.480
designed to it in a way that follows unique philosophy lots of small libraries which one

06:47.480 --> 06:57.240
specifies in specific thing and that thing they do very well and other can reuse it and build

06:57.240 --> 07:08.520
some good applications so yeah here's my attempt to solve it and it's welcome cooclain and basically

07:08.520 --> 07:16.120
to write a cooclain file you check ingredients with add symbol like you tag in social network

07:16.120 --> 07:25.080
if you want to mention a person and then if you need to add quantity do it in curly braces and

07:25.080 --> 07:34.200
that's it so this of course extra syntax for like cookware or sections in recipe and other stuff

07:34.200 --> 07:42.600
but that's enough to start and it actually will produce something like this here's an android app

07:42.600 --> 07:50.280
person to release so it takes the same recipe and it has a cooking mode you can swipe between steps

07:50.920 --> 07:59.000
you can also create shopping list and it will group them by aisle because you can provide

07:59.000 --> 08:07.640
the configuration file so you can save time and money just going to specific sections of the shop

08:09.560 --> 08:18.120
so you must why why do we need another format and I would say the value not in a format itself

08:18.120 --> 08:27.080
but rather in the ecosystem around it and yeah I decided to create a new format because

08:28.440 --> 08:35.160
kind of solves the problem of having being human readable and machine usable and all the other

08:35.160 --> 08:43.560
formats is more like leaning towards one of those two like it's XML or JSON or YAML or other side

08:43.560 --> 08:47.080
that can be just playing mark down it's very hard to extract the ingredients from it

08:50.200 --> 09:00.040
and since I released the project in 2021 people created their own parsers and syntax

09:00.040 --> 09:06.040
managers for editors and never heard about and I'm seeing them plug in many more things

09:07.000 --> 09:16.920
and it's actually I think it's great and inspirational for me because cooking itself is

09:16.920 --> 09:25.000
simple and open universal and good function be the same so I'll just quickly demo this

09:25.000 --> 09:33.480
you like it's very original issue and basically it has just a few commands one command is

09:34.360 --> 09:41.160
reciprocated it will just take your recipe file and produce conventional recipe with ingredients first

09:41.160 --> 09:47.720
and then cookware and steps for each step you can have a list of ingredients as well

09:48.360 --> 09:56.600
but I created it mostly to support some automation and scripts so you can pass the format

09:56.600 --> 10:03.880
and it can be JSON YAML also it supports mark down so if you use static website you can

10:06.600 --> 10:13.080
include into pipeline the step to create mark down files from it and you will have your recipes published

10:14.040 --> 10:22.520
another thing is shopping list it works the same way as in the app you product with the

10:22.520 --> 10:30.440
file configuration and it has a small web server so you can start it and it will run locally

10:30.440 --> 10:38.200
so you can explore in more easier way all your recipes and create shopping list so

10:38.440 --> 10:45.960
another thing I want to share is this service I built during Christmas break which is

10:45.960 --> 10:55.560
basically you can prevent any address in browser where you have recipe with cook dot md slash

10:55.560 --> 11:04.200
and it will convert it to cook-line format also it can if you if it doesn't work because it's

11:05.080 --> 11:10.440
new thing sometimes it doesn't work so you can just manually put ingredients instructions

11:16.440 --> 11:22.920
nothing I want to mention is a use case which inspires me as well it's a

11:25.000 --> 11:30.920
so a user a discord user shared this story how they use cook-line to manage their

11:30.920 --> 11:42.920
diabetic diet and basically they build lots of tools in python to track nutrition and to create

11:42.920 --> 11:52.520
like flex and ingredients substitutions and they also have it all online so other people can also check

11:52.520 --> 12:04.360
it out yeah if you get interested please good starting point would be a website

12:04.360 --> 12:15.400
cookland.org there's lots of the documentation links to other projects also get up

12:15.400 --> 12:20.600
there are quite a few libraries which we maintain there's a discord server you have

12:20.680 --> 12:27.240
questions there is a playground parser so you can build your stuff and if you like to contribute

12:27.240 --> 12:38.440
you can shoot me an email and we have very different different areas so we use rust for libraries

12:38.440 --> 12:51.960
because it's a good language for this and cross platform and fast and yeah well happy cooking thank you

