diff --git a/.gitignore b/.gitignore
index d9a5720..09bba41 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@ __pycache__
*.conllu
*.gz
.vscode
+*.pickle
diff --git a/EvolutionaryAlgorithm/EvolutionaryAlgorithm.ipynb b/EvolutionaryAlgorithm/EvolutionaryAlgorithm.ipynb
new file mode 100644
index 0000000..f65e2db
--- /dev/null
+++ b/EvolutionaryAlgorithm/EvolutionaryAlgorithm.ipynb
@@ -0,0 +1,2383 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ " \n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " \n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import sys\n",
+ "sys.path.append(\"../\")\n",
+ "sys.path.append(\"../RecipeAnalysis/\")\n",
+ "\n",
+ "import settings\n",
+ "\n",
+ "import pycrfsuite\n",
+ "\n",
+ "import json\n",
+ "\n",
+ "import db.db_settings as db_settings\n",
+ "from db.database_connection import DatabaseConnection\n",
+ "\n",
+ "from Tagging.conllu_generator import ConlluGenerator\n",
+ "from Tagging.crf_data_generator import *\n",
+ "\n",
+ "from RecipeAnalysis.Recipe import Ingredient\n",
+ "\n",
+ "from difflib import SequenceMatcher\n",
+ "\n",
+ "import numpy as np\n",
+ "\n",
+ "import plotly.graph_objs as go\n",
+ "from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot\n",
+ "from plotly.subplots import make_subplots\n",
+ "init_notebook_mode(connected=True)\n",
+ "\n",
+ "from graphviz import Digraph\n",
+ "\n",
+ "import itertools\n",
+ "\n",
+ "import random\n",
+ "\n",
+ "import plotly.io as pio\n",
+ "pio.renderers.default = \"jupyterlab\"\n",
+ "\n",
+ "from IPython.display import Markdown, HTML, display\n",
+ "\n",
+ "from copy import deepcopy"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pickle\n",
+ "m_act = pickle.load(open(\"m_act.pickle\", \"rb\"))\n",
+ "m_mix = pickle.load(open(\"m_mix.pickle\", \"rb\"))\n",
+ "m_base_act = pickle.load(open(\"m_base_act.pickle\", \"rb\"))\n",
+ "m_base_mix = pickle.load(open(\"m_base_mix.pickle\", \"rb\"))\n",
+ "\n",
+ "c_act = m_act.get_csr()\n",
+ "c_mix = m_mix.get_csr()\n",
+ "c_base_act = m_base_act.get_csr()\n",
+ "c_base_mix = m_base_mix.get_csr()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "actions = m_act.get_labels()[0]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "base_ingredients = m_base_mix.get_labels()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def get_sym_adjacent(key, m, c):\n",
+ " index = m._label_index[key]\n",
+ " i1 = c[index,:].nonzero()[1]\n",
+ " i2 = c[:,index].nonzero()[0]\n",
+ " \n",
+ " i = np.concatenate((i1,i2))\n",
+ " \n",
+ " names = np.array(m.get_labels())[i]\n",
+ " \n",
+ " counts = np.concatenate((c[index, i1].toarray().flatten(), c[i2, index].toarray().flatten()))\n",
+ " \n",
+ " s = np.argsort(-counts)\n",
+ " \n",
+ " return names[s], counts[s]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def get_forward_adjacent(key, m, c):\n",
+ " index = m._x_label_index[key]\n",
+ " i = c[index,:].nonzero()[1]\n",
+ " \n",
+ " names = np.array(m._y_labels)[i]\n",
+ " \n",
+ " counts = c[index, i].toarray().flatten()\n",
+ " \n",
+ " s = np.argsort(-counts)\n",
+ " \n",
+ " return names[s], counts[s]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def get_backward_adjacent(key, m, c):\n",
+ " index = m._y_label_index[key]\n",
+ " i = c[:,index].nonzero()[0]\n",
+ " \n",
+ " names = np.array(m._x_labels)[i]\n",
+ " \n",
+ " counts = c[i, index].toarray().flatten()\n",
+ " \n",
+ " s = np.argsort(-counts)\n",
+ " \n",
+ " return names[s], counts[s]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def sym_sum(key, m, c):\n",
+ " return np.sum(get_sym_adjacent(key,m,c)[1])\n",
+ "\n",
+ "def fw_sum(key, m, c):\n",
+ " return np.sum(get_forward_adjacent(key,m,c)[1])\n",
+ "\n",
+ "def bw_sum(key, m, c):\n",
+ " return np.sum(get_backward_adjacent(key,m,c)[1])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def sym_score(key_a, key_b, m, c):\n",
+ "\n",
+ " ia = m._label_index[key_a]\n",
+ " ib = m._label_index[key_b]\n",
+ " \n",
+ " v = c[ia,ib] + c[ib,ia]\n",
+ " \n",
+ " if v == 0:\n",
+ " return 0\n",
+ " \n",
+ " return max((v/sym_sum(key_a, m, c)), (v/sym_sum(key_b, m, c)))\n",
+ "\n",
+ "def asym_score(key_a, key_b, m, c):\n",
+ " ia = m._x_label_index[key_a]\n",
+ " ib = m._y_label_index[key_b]\n",
+ " \n",
+ " v = c[ia,ib]\n",
+ " \n",
+ " if v == 0:\n",
+ " return 0\n",
+ " \n",
+ " return max(v/fw_sum(key_a, m, c), v/bw_sum(key_b, m, c))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "class RecipeTreeNode(object):\n",
+ " \n",
+ " id = 0\n",
+ " \n",
+ " def __init__(self, name, constant=False, single_child=False):\n",
+ " self._constant = constant\n",
+ " self._name = name\n",
+ " self._parent = None\n",
+ " \n",
+ " self._id = str(RecipeTreeNode.id)\n",
+ " RecipeTreeNode.id += 1\n",
+ " \n",
+ " self._single_child = single_child\n",
+ " \n",
+ " if self._single_child:\n",
+ " self._child = None\n",
+ " \n",
+ " def child():\n",
+ " return self._child\n",
+ " \n",
+ " def remove_child(c):\n",
+ " assert c == self._child\n",
+ " self._child._parent = None\n",
+ " self._child = None\n",
+ " \n",
+ " def childs():\n",
+ " c = self.child()\n",
+ " if c is None:\n",
+ " return set()\n",
+ " return set([c])\n",
+ " \n",
+ " def add_child(n):\n",
+ " self._child = n\n",
+ " n._parent = self\n",
+ " \n",
+ " self.child = child\n",
+ " self.childs = childs\n",
+ " self.add_child = add_child\n",
+ " self.remove_child = remove_child\n",
+ " else:\n",
+ " self._childs = set()\n",
+ " \n",
+ " def childs():\n",
+ " return self._childs\n",
+ " \n",
+ " def add_child(n):\n",
+ " self._childs.add(n)\n",
+ " n._parent = self\n",
+ " \n",
+ " def remove_child(c):\n",
+ " assert c in self._childs\n",
+ " c._parent = None\n",
+ " self._childs.remove(c)\n",
+ " \n",
+ " self.childs = childs\n",
+ " self.add_child = add_child\n",
+ " self.remove_child = remove_child\n",
+ " \n",
+ " def parent(self):\n",
+ " return self._parent\n",
+ " \n",
+ " def name(self):\n",
+ " return self._name\n",
+ " \n",
+ " def traverse(self):\n",
+ " l = []\n",
+ " \n",
+ " for c in self.childs():\n",
+ " l += c.traverse()\n",
+ " \n",
+ " return [self] + l\n",
+ " \n",
+ " def traverse_ingredients(self):\n",
+ " ingredient_set = []\n",
+ " for c in self.childs():\n",
+ " ingredient_set += c.traverse_ingredients()\n",
+ " \n",
+ " return ingredient_set\n",
+ " \n",
+ " def remove(self):\n",
+ " p = self.parent()\n",
+ " childs = self.childs().copy()\n",
+ " \n",
+ " assert p is None or not (len(childs) > 1 and p._single_child)\n",
+ " \n",
+ " for c in childs:\n",
+ " self.remove_child(c)\n",
+ " \n",
+ " if p is not None:\n",
+ " p.remove_child(self)\n",
+ " \n",
+ " if self._single_child and self._child is not None and p._name == self._child._name:\n",
+ " # two adjacent nodes with same name would remain after deletion.\n",
+ " # merge them! (by adding the child's childs to our parent instead of our childs)\n",
+ " childs = self._child.childs()\n",
+ " self._child.remove()\n",
+ " \n",
+ " \n",
+ " for c in childs:\n",
+ " p.add_child(c)\n",
+ " \n",
+ " def insert_before(self, n):\n",
+ " p = self._parent\n",
+ " if p is not None:\n",
+ " p.remove_child(self)\n",
+ " p.add_child(n)\n",
+ " n.add_child(self)\n",
+ " \n",
+ " def mutate(self):\n",
+ " n_node = self.n_node_mutate_options()\n",
+ " n_edge = self.n_edge_mutate_options()\n",
+ " \n",
+ " choice = random.choice(range(n_node + n_edge))\n",
+ " if choice < n_node:\n",
+ " self.mutate_node()\n",
+ " else:\n",
+ " self.mutate_edges()\n",
+ " \n",
+ " def mutate_edges(self):\n",
+ " ings = self.traverse_ingredients()\n",
+ " ing = random.choice(ings)\n",
+ " \n",
+ " a, w = get_backward_adjacent(ing._base_ingredient, m_base_act, c_base_act)\n",
+ " \n",
+ " action = random.choices(a, w)[0]\n",
+ " self.insert_before(ActionNode(action))\n",
+ " \n",
+ " def mutate_node(self):\n",
+ " raise NotImplementedError\n",
+ " \n",
+ " def n_node_mutate_options(self):\n",
+ " \n",
+ " return 0 if self._constant else 1\n",
+ " \n",
+ " def n_edge_mutate_options(self):\n",
+ " n = 1 if self._parent is not None else 0\n",
+ " return n\n",
+ " \n",
+ " def n_mutate_options(self):\n",
+ " return self.n_edge_mutate_options() + self.n_node_mutate_options()\n",
+ " \n",
+ " def dot_node(self, dot):\n",
+ " raise NotImplementedError()\n",
+ " \n",
+ " def dot(self, d=None):\n",
+ " if d is None:\n",
+ " d = Digraph()\n",
+ " self.dot_node(d)\n",
+ " \n",
+ " else:\n",
+ " self.dot_node(d)\n",
+ " if self._parent is not None:\n",
+ " d.edge(self._parent._id, self._id)\n",
+ " \n",
+ " \n",
+ " for c in self.childs():\n",
+ " c.dot(d)\n",
+ " \n",
+ " return d\n",
+ " \n",
+ " def serialize(self):\n",
+ " r = {}\n",
+ " r['type'] = str(self.__class__.__name__)\n",
+ " r['id'] = self._id\n",
+ " r['parent'] = self._parent._id if self._parent is not None else None\n",
+ " r['name'] = self._name\n",
+ " r['childs'] = [c._id for c in self.childs()]\n",
+ " r['constant'] = self._constant\n",
+ " r['single_child'] = self._single_child\n",
+ " \n",
+ " return r\n",
+ " \n",
+ " def node_score(self):\n",
+ " raise NotImplementedError()\n",
+ " \n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "class MixNode(RecipeTreeNode):\n",
+ " def __init__(self, constant=False):\n",
+ " super().__init__(\"mix\", constant, single_child=False)\n",
+ " \n",
+ " def dot_node(self, dot):\n",
+ " dot.node(self._id, label=f\"{self._name} ({self.node_score()})\", shape=\"diamond\")\n",
+ " \n",
+ " def split(self, set_above, set_below, node_between):\n",
+ " assert len(set_above.difference(self.childs())) == 0\n",
+ " assert len(set_below.difference(self.childs())) == 0\n",
+ " \n",
+ " n_above = MixNode()\n",
+ " n_below = MixNode()\n",
+ " \n",
+ " p = self.parent()\n",
+ " \n",
+ " for c in self.childs().copy():\n",
+ " self.remove_child(c)\n",
+ " self.remove()\n",
+ " \n",
+ " for c in set_below:\n",
+ " n_below.add_child(c)\n",
+ " \n",
+ " for c in set_above:\n",
+ " n_above.add_child(c)\n",
+ " \n",
+ " n_above.add_child(node_between)\n",
+ " node_between.add_child(n_below)\n",
+ " \n",
+ " if p is not None:\n",
+ " p.add_child(n_above)\n",
+ " \n",
+ " # test whether the mix nodes are useless\n",
+ " if len(n_above.childs()) == 1:\n",
+ " n_above.remove()\n",
+ " \n",
+ " if len(n_below.childs()) == 1:\n",
+ " n_below.remove()\n",
+ " \n",
+ " def n_node_mutate_options(self):\n",
+ " return 0 if self._constant or len(self.childs()) <= 2 else len(self.childs())\n",
+ " \n",
+ " def mutate_node(self):\n",
+ " \n",
+ " childs = self.childs()\n",
+ " \n",
+ " if len(childs) <= 2:\n",
+ " print(\"Warning: cannot modify mix node\")\n",
+ " return\n",
+ " \n",
+ " childs = random.sample(childs, len(childs))\n",
+ " \n",
+ " n = random.choice(range(1, len(childs)-1))\n",
+ " \n",
+ " between_node = ActionNode(random.choice(actions))\n",
+ " \n",
+ " self.split(set(childs[:n]), set(childs[n:]), between_node)\n",
+ " \n",
+ " \n",
+ " def node_score(self):\n",
+ " child_ingredients = [c.traverse_ingredients() for c in self.childs()]\n",
+ " products = [itertools.product(child_ingredients[i-1],child_ingredients[i]) for i in range(len(child_ingredients))]\n",
+ " pairwise_tuples = []\n",
+ " for p in products:\n",
+ " pairwise_tuples += [x for x in p]\n",
+ " \n",
+ " s_base = 0\n",
+ " s = 0\n",
+ " \n",
+ " for ing_a, ing_b in pairwise_tuples:\n",
+ " try:\n",
+ " #s_base += sym_score(ing_a._base_ingredient, ing_b._base_ingredient, m_base_mix, c_base_mix)\n",
+ " s += sym_score(ing_a.to_json(), ing_b.to_json(), m_mix, c_mix)\n",
+ " except:\n",
+ " pass\n",
+ " \n",
+ " #s_base /= len(pairwise_tuples)\n",
+ " s /= len(pairwise_tuples)\n",
+ " \n",
+ " #return 0.5 * (s_base + s)\n",
+ " return s\n",
+ " \n",
+ " \n",
+ " \n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "class IngredientNode(RecipeTreeNode):\n",
+ " def __init__(self, name, constant=False):\n",
+ " super().__init__(name, constant, single_child=True)\n",
+ " \n",
+ " def get_actions(self):\n",
+ " a_set = set()\n",
+ " n = self.parent()\n",
+ " while n is not None:\n",
+ " if type(n) == ActionNode:\n",
+ " a_set.add(n.name())\n",
+ " return a_set\n",
+ " \n",
+ " def mutate_node(self):\n",
+ " self._name = random.choice(base_ingredients)\n",
+ " \n",
+ " def traverse_ingredients(self):\n",
+ " return [Ingredient(self._name)]\n",
+ " \n",
+ " def node_score(self):\n",
+ " return 0\n",
+ " \n",
+ " \n",
+ " def dot_node(self, dot):\n",
+ " dot.node(self._id, label=f\"{self._name} ({self.node_score()})\", shape=\"box\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "class ActionNode(RecipeTreeNode):\n",
+ " def __init__(self, name, constant=False):\n",
+ " super().__init__(name, constant, single_child=True)\n",
+ " \n",
+ " def n_node_mutate_options(self):\n",
+ " # beacause we can change or remove ourselve!\n",
+ " return 0 if self._constant else 2 \n",
+ " def mutate_node(self):\n",
+ " if random.choice(range(2)) == 0:\n",
+ " # change action\n",
+ " self._name = random.choice(actions)\n",
+ " else:\n",
+ " # delete\n",
+ " self.remove()\n",
+ " \n",
+ " def traverse_ingredients(self):\n",
+ " ingredient_set = super().traverse_ingredients()\n",
+ " for ing in ingredient_set:\n",
+ " ing.apply_action(self._name)\n",
+ " \n",
+ " return ingredient_set\n",
+ " \n",
+ " def node_score(self):\n",
+ " ings = self.child().traverse_ingredients()\n",
+ " \n",
+ " s = 0\n",
+ " \n",
+ " for ing in ings:\n",
+ " try:\n",
+ " score = asym_score(self._name, ing.to_json(), m_act, c_act)\n",
+ " #base_score = asym_score(self._name, ing._base_ingredient, m_base_act, c_base_act)\n",
+ " s += score\n",
+ " except KeyError as e:\n",
+ " pass\n",
+ " \n",
+ " \n",
+ " return s / len(ings)\n",
+ " \n",
+ " def dot_node(self, dot):\n",
+ " dot.node(self._id, label=f\"{self._name} ({self.node_score()})\", shape=\"ellipse\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "class Tree(object):\n",
+ " \n",
+ " @staticmethod\n",
+ " def from_ingredients(ingredients: list):\n",
+ " root = MixNode()\n",
+ " \n",
+ " for ing in ingredients:\n",
+ " root.add_child(IngredientNode(ing, constant=True))\n",
+ " \n",
+ " return Tree(root)\n",
+ " \n",
+ " @staticmethod\n",
+ " def from_serialization(s):\n",
+ " def empty_node(raw_n):\n",
+ " if raw_n['type'] == \"MixNode\":\n",
+ " node = MixNode(raw_n['constant'])\n",
+ " elif raw_n['type'] == \"IngredientNode\":\n",
+ " node = IngredientNode(raw_n['name'], raw_n['constant'])\n",
+ " elif raw_n['type'] == \"ActionNode\":\n",
+ " node = ActionNode(raw_n['name'], raw_n['constant'])\n",
+ " else:\n",
+ " print(\"unknown node detected\")\n",
+ " return\n",
+ " \n",
+ " return node\n",
+ " \n",
+ " nodes = {}\n",
+ " for n in s:\n",
+ " nodes[n['id']] = empty_node(n)\n",
+ " \n",
+ " for n in s:\n",
+ " childs = n['childs']\n",
+ " id = n['id']\n",
+ " for c in childs:\n",
+ " nodes[id].add_child(nodes[c])\n",
+ " \n",
+ " return Tree(nodes[s[0]['id']])\n",
+ " \n",
+ " \n",
+ " def __init__(self, root):\n",
+ " # create a dummy entry node\n",
+ " self._root = RecipeTreeNode(\"root\", single_child=True)\n",
+ " self._root.add_child(root)\n",
+ " \n",
+ " def root(self):\n",
+ " return self._root.child()\n",
+ " \n",
+ " def mutate(self):\n",
+ " nodes = self.root().traverse()\n",
+ " weights = [n.n_mutate_options() for n in nodes]\n",
+ " \n",
+ " n = random.choices(nodes, weights)[0]\n",
+ " \n",
+ " n.mutate()\n",
+ " \n",
+ " def dot(self):\n",
+ " return self.root().dot()\n",
+ " \n",
+ " def serialize(self):\n",
+ " return [n.serialize() for n in self.root().traverse()]\n",
+ " \n",
+ " def structure_score(self):\n",
+ " n_duplicates = 0\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " def score(self):\n",
+ " \n",
+ " scores = []\n",
+ " \n",
+ " nodes = self.root().traverse()\n",
+ " n_nodes = 0\n",
+ " s = 0\n",
+ " for n in nodes:\n",
+ " if type(n) != IngredientNode:\n",
+ " scores.append(n.node_score())\n",
+ " n_nodes += 1\n",
+ " \n",
+ " n_duplicates = 0\n",
+ " seen_actions = set()\n",
+ " \n",
+ " for n in nodes:\n",
+ " if type(n) == ActionNode:\n",
+ " if n.name() in seen_actions:\n",
+ " n_duplicates += 1\n",
+ " else:\n",
+ " seen_actions.add(n.name())\n",
+ " \n",
+ " \n",
+ " return (sum(scores)/n_nodes) + 1 / (n_duplicates + 1)\n",
+ " \n",
+ " def copy(self):\n",
+ " return Tree.from_serialization(self.serialize())\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "class Population(object):\n",
+ " def __init__(self, start_ingredients, n_population = 10):\n",
+ " self.population = [Tree.from_ingredients(start_ingredients) for i in range(n_population)]\n",
+ " self._n = n_population\n",
+ " \n",
+ " def mutate(self):\n",
+ " for tree in self.population.copy():\n",
+ " t_clone = tree.copy()\n",
+ " t_clone.mutate()\n",
+ " self.population.append(t_clone)\n",
+ " \n",
+ " def pairwise_competition(self):\n",
+ " new_population = []\n",
+ " random.shuffle(self.population)\n",
+ " \n",
+ " for i in range(self._n):\n",
+ " t_a = self.population[2*i]\n",
+ " t_b = self.population[2*i+1]\n",
+ " \n",
+ " if t_a.score() > t_b.score():\n",
+ " new_population.append(t_a)\n",
+ " else:\n",
+ " new_population.append(t_b)\n",
+ " \n",
+ " self.population = new_population\n",
+ " \n",
+ " def run(self, n=50):\n",
+ " for i in range(n):\n",
+ " print(i)\n",
+ " self.mutate()\n",
+ " self.pairwise_competition()\n",
+ " \n",
+ " def plot_population(self):\n",
+ " for t in self.population:\n",
+ " display(t.root().dot())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "p = Population([\"bacon\", \"mushroom\", \"noodle\", \"water\", \"egg\"])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0\n",
+ "1\n",
+ "2\n",
+ "3\n",
+ "4\n",
+ "5\n",
+ "6\n",
+ "7\n",
+ "8\n",
+ "9\n",
+ "10\n",
+ "11\n",
+ "12\n",
+ "13\n",
+ "14\n",
+ "15\n",
+ "16\n",
+ "17\n",
+ "18\n",
+ "19\n"
+ ]
+ }
+ ],
+ "source": [
+ "p.run(20)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "p.plot_population()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "t2 = Tree.from_serialization(t.serialize())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "t.mutate()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.00499001996007984"
+ ]
+ },
+ "execution_count": 54,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "t.score()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 51,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 51,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "t.root().dot()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'pepper'"
+ ]
+ },
+ "execution_count": 32,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "list(t.root().childs())[0]._name"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "n = IngredientNode(\"test\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "True"
+ ]
+ },
+ "execution_count": 43,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "n.traverse() == IngredientNode"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.7.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/RecipeAnalysis/AdjacencyMatrix.ipynb b/RecipeAnalysis/AdjacencyMatrix.ipynb
new file mode 100644
index 0000000..dbd15b7
--- /dev/null
+++ b/RecipeAnalysis/AdjacencyMatrix.ipynb
@@ -0,0 +1,136 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Adjacency Matrix"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "\n",
+ "from scipy.sparse import csr_matrix, lil_matrix, coo_matrix"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "class adj_matrix(object):\n",
+ " def __init__(self, symmetric_indices=False):\n",
+ " \n",
+ " self._sym = symmetric_indices\n",
+ " if not symmetric_indices:\n",
+ " self._x_labels = []\n",
+ " self._y_labels = []\n",
+ "\n",
+ " self._x_label_index={}\n",
+ " self._y_label_index={}\n",
+ " \n",
+ " else:\n",
+ " self._labels = []\n",
+ " self._label_index={}\n",
+ " \n",
+ " self._x = []\n",
+ " self._y = []\n",
+ " self._data = []\n",
+ " \n",
+ " self._mat = None\n",
+ " \n",
+ " def _get_ix(self, label):\n",
+ " i = self._x_label_index.get(label)\n",
+ " if i is None:\n",
+ " i = len(self._x_labels)\n",
+ " self._x_labels.append(label)\n",
+ " self._x_label_index[label] = i\n",
+ " return i\n",
+ " \n",
+ " def _get_iy(self, label):\n",
+ " i = self._y_label_index.get(label)\n",
+ " if i is None:\n",
+ " i = len(self._y_labels)\n",
+ " self._y_labels.append(label)\n",
+ " self._y_label_index[label] = i\n",
+ " return i\n",
+ " \n",
+ " def _get_i(self, label):\n",
+ " i = self._label_index.get(label)\n",
+ " if i is None:\n",
+ " i = len(self._labels)\n",
+ " self._labels.append(label)\n",
+ " self._label_index[label] = i\n",
+ " return i\n",
+ " \n",
+ " def add_entry(self, x, y, data):\n",
+ " \n",
+ " if self._sym:\n",
+ " ix = self._get_i(x)\n",
+ " iy = self._get_i(y)\n",
+ " \n",
+ " else:\n",
+ " ix = self._get_ix(x)\n",
+ " iy = self._get_iy(y)\n",
+ " \n",
+ " self._x.append(ix)\n",
+ " self._y.append(iy)\n",
+ " self._data.append(data)\n",
+ " \n",
+ " \n",
+ " def compile_to_mat(self):\n",
+ " if self._sym:\n",
+ " sx = len(self._labels)\n",
+ " sy = len(self._labels)\n",
+ " else:\n",
+ " sx = len(self._x_labels)\n",
+ " sy = len(self._y_labels)\n",
+ " \n",
+ " self._mat = coo_matrix((self._data, (self._x, self._y)), shape=(sx,sy))\n",
+ " return self._mat\n",
+ " \n",
+ " def get_csr(self):\n",
+ " return self.compile_to_mat().tocsr()\n",
+ " \n",
+ " def get_labels(self):\n",
+ " if self._sym:\n",
+ " return self._labels\n",
+ " return self._x_labels, self._y_labels"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.7.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/RecipeAnalysis/AdjacencyMatrix.py b/RecipeAnalysis/AdjacencyMatrix.py
new file mode 100644
index 0000000..4e22cf0
--- /dev/null
+++ b/RecipeAnalysis/AdjacencyMatrix.py
@@ -0,0 +1,91 @@
+#!/usr/bin/env python3
+# coding: utf-8
+
+# # Adjacency Matrix
+
+import numpy as np
+
+from scipy.sparse import csr_matrix, lil_matrix, coo_matrix
+
+
+class adj_matrix(object):
+ def __init__(self, symmetric_indices=False):
+
+ self._sym = symmetric_indices
+ if not symmetric_indices:
+ self._x_labels = []
+ self._y_labels = []
+
+ self._x_label_index={}
+ self._y_label_index={}
+
+ else:
+ self._labels = []
+ self._label_index={}
+
+ self._x = []
+ self._y = []
+ self._data = []
+
+ self._mat = None
+
+ def _get_ix(self, label):
+ i = self._x_label_index.get(label)
+ if i is None:
+ i = len(self._x_labels)
+ self._x_labels.append(label)
+ self._x_label_index[label] = i
+ return i
+
+ def _get_iy(self, label):
+ i = self._y_label_index.get(label)
+ if i is None:
+ i = len(self._y_labels)
+ self._y_labels.append(label)
+ self._y_label_index[label] = i
+ return i
+
+ def _get_i(self, label):
+ i = self._label_index.get(label)
+ if i is None:
+ i = len(self._labels)
+ self._labels.append(label)
+ self._label_index[label] = i
+ return i
+
+ def add_entry(self, x, y, data):
+
+ if self._sym:
+ ix = self._get_i(x)
+ iy = self._get_i(y)
+
+ else:
+ ix = self._get_ix(x)
+ iy = self._get_iy(y)
+
+ self._x.append(ix)
+ self._y.append(iy)
+ self._data.append(data)
+
+ def compile_to_mat(self):
+ if self._sym:
+ sx = len(self._labels)
+ sy = len(self._labels)
+ else:
+ sx = len(self._x_labels)
+ sy = len(self._y_labels)
+
+ self._mat = coo_matrix((self._data, (self._x, self._y)), shape=(sx,sy))
+ return self._mat
+
+ def get_csr(self):
+ return self.compile_to_mat().tocsr()
+
+ def get_labels(self):
+ if self._sym:
+ return self._labels
+ return self._x_labels, self._y_labels
+
+
+
+
diff --git a/RecipeAnalysis/AdjacencyMatrixTests.ipynb b/RecipeAnalysis/AdjacencyMatrixTests.ipynb
new file mode 100644
index 0000000..23c2239
--- /dev/null
+++ b/RecipeAnalysis/AdjacencyMatrixTests.ipynb
@@ -0,0 +1,72 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Evaluate Adjacency Matrices"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pickle"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "m_act = pickle.load(open(\"m_act.pickle\", \"rb\"))\n",
+ "m_mix = pickle.load(open(\"m_mix.pickle\", \"rb\"))\n",
+ "m_base_act = pickle.load(open(\"m_base_act.pickle\", \"rb\"))\n",
+ "m_base_mix = pickle.load(open(\"m_base_mix.pickle\", \"rb\"))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "c_act = m_act.get_csr()\n",
+ "c_mix = m_mix.get_csr()\n",
+ "c_base_act = m_base_act.get_csr()\n",
+ "c_base_mix = m_base_mix.get_csr()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.7.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/RecipeAnalysis/InputTrees.ipynb b/RecipeAnalysis/InputTrees.ipynb
new file mode 100644
index 0000000..c3f5433
--- /dev/null
+++ b/RecipeAnalysis/InputTrees.ipynb
@@ -0,0 +1,36030 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import sys\n",
+ "sys.path.append(\"../\")\n",
+ "from Recipe import Recipe, Ingredient, RecipeGraph\n",
+ "\n",
+ "import settings\n",
+ "import db.db_settings as db_settings\n",
+ "from db.database_connection import DatabaseConnection\n",
+ "\n",
+ "import random\n",
+ "\n",
+ "DatabaseConnection(db_settings.db_host,\n",
+ " db_settings.db_port,\n",
+ " db_settings.db_user,\n",
+ " db_settings.db_pw,\n",
+ " db_settings.db_db,\n",
+ " db_settings.db_charset)\n",
+ "\n",
+ "%time ids = DatabaseConnection.global_single_query(\"select id from recipes\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/markdown": [
+ "## Homemade Bacon Smoked with Barley Tea in a Pot\n",
+ "(ae01c70363)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '500 grams Pork belly'\n",
+ " * '20 grams \\[ A \\] Salt'\n",
+ " * '10 grams \\[ A \\] Soft brown sugar'\n",
+ " * '1/2 tbsp \\[ A \\] Nutmeg'\n",
+ " * '1/2 tbsp \\[ A \\] Allspice'\n",
+ " * '1/2 tsp \\[ A \\] Chilli powder'\n",
+ " * '1/2 tsp \\[ A \\] Cinnamon'\n",
+ " * '1/2 tsp \\[ A \\] Paprika'\n",
+ " * '1 \\[ A \\] Black pepper'\n",
+ " * '1 several \\[ A \\] Bay leaves'\n",
+ " * '10 Barley tea bags'\n",
+ " * '1 dash Sugar'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Rinse the pork belly with water .\n",
+ " * Remove any blood from the pork when cleaning .\n",
+ " * Pat dry well .\n",
+ " * Prick all over the surface with a fork to allow it to absorb the spice well .\n",
+ " * Combine \\[ A \\] ingredients .\n",
+ " * Make sure that the amount of salt and sugar is correct .\n",
+ " * You do n't have to measure the other spices precisely .\n",
+ " * Finely shred the bay leaves and sage .\n",
+ " * Rub the \\[ A \\] spice mix onto the surface of the pork belly .\n",
+ " * Put the pork into a resealable bag and massage the meat over the bag .\n",
+ " * Rest in the fridge for 5 days to one week .\n",
+ " * Massage the meat gently once a day .\n",
+ " * After 5 days to one week , soak the pork in water to remove the saltiness .\n",
+ " * It usually takes 1-2 hours .\n",
+ " * Slice off a small bit and fry to check the taste .\n",
+ " * When the taste is right , pat dry .\n",
+ " * Leave to rest in the fridge for one day to dry .\n",
+ " * After one day , prepare for smoking .\n",
+ " * Empty the barley tea from the bags .\n",
+ " * Combine the tea and sugar .\n",
+ " * You will use this mixture instead of smoking chips .\n",
+ " * Place empty tins in a pot .\n",
+ " * Cover the bottom of the pot with the smoking mixture .\n",
+ " * Place a metal rack over the tins .\n",
+ " * Cover with a lid and it is ready for smoking .\n",
+ " * If you do n't want to make the pot dirty , line the bottom of the pot with aluminum foil .\n",
+ " * I bought a cheap metal rack from a pound shop and cut into a suitable shape to fit in the pot .\n",
+ " * Place the pork on the rack and start smoking .\n",
+ " * Keep the heat high until the smoke starts .\n",
+ " * When the smoke starts , turn down the heat to low and cover with a lid .\n",
+ " * Turn over the pork halfway through and continue to smoke .\n",
+ " * It usually takes an hour but it depends on the size of the pork .\n",
+ " * After smoking , wrap the pork in cling film and leave to rest in the fridge for one day .\n",
+ " * You can eat it without doing this .\n",
+ " * After one day , it is ready .\n",
+ " * You can eat as it is but I like browning the slices in a frying pan without oil .\n",
+ " * \\[ Note : \\] Fat drippings stop the smoke .\n",
+ " * Make a small saucer to place on the smoking mixture to catch the drippings ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Tzatziki Sauce (Garlic Lover's Only!!)\n",
+ "(730c9cfba2)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '12 cup plain yogurt'\n",
+ " * '3 tablespoons sour cream'\n",
+ " * '4 garlic cloves , crushed'\n",
+ " * '13 teaspoon salt'\n",
+ " * '14 teaspoon pepper'\n",
+ " * '1 tablespoon lemon juice'\n",
+ " * '1 teaspoon extra virgin olive oil'\n",
+ " * '18 teaspoon crushed red pepper flakes'\n",
+ " * '13 teaspoon crushed dried mint'\n",
+ " * '14 cup finely diced yellow onion'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Whisk all ingredients together and chill ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Mini Challenge: Mulberry Street Burger\n",
+ "(288d5e4be8)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '2 \\( 8-ounce \\) portions ground beef'\n",
+ " * '4 slices fresh mozzarella cheese'\n",
+ " * '4 slices pancetta'\n",
+ " * '1 tablespoon olive oil , plus more for salad'\n",
+ " * '1/2 cup butter'\n",
+ " * '3 cloves garlic'\n",
+ " * '3 or 4 basil leaves'\n",
+ " * '2 teaspoons crushed red pepper flakes'\n",
+ " * '2 burger buns , your choice'\n",
+ " * 'Baby arugula'\n",
+ " * '4 slices tomato'\n",
+ " * 'Basil Ketchup , recipe follows'\n",
+ " * '1/2 bunch fresh basil leaves'\n",
+ " * '1 cup ketchup'\n",
+ " * '2 cloves garlic'\n",
+ " * '1/2 teaspoon crushed red pepper flakes'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Heat the oven to 350 degrees F. Heat a large skillet .\n",
+ " * Divide each beef portion into 2 equal amounts and shape them into patties \\( you should have 4 patties altogether \\) .\n",
+ " * Place 2 mozzarella slices on 1 patty , then top with another patty .\n",
+ " * Close the edges of the patties to enclose the cheese , basically stuffing the burger with the mozzarella .\n",
+ " * Wrap each burger with 2 slices of pancetta .\n",
+ " * Heat 1 tablespoon of olive oil in a medium oven-proof skillet over medium heat and brown each burger on both sides .\n",
+ " * Place the burgers in the oven to finish cooking .\n",
+ " * In a small saucepan , melt the butter and remove from heat .\n",
+ " * Meanwhile , chop the garlic and basil and add to butter with 1 teaspoon red pepper flakes .\n",
+ " * Brush this on the burger buns and toast under the broiler or in a toaster oven .\n",
+ " * In a bowl , toss together the arugula , olive oil , to taste , and the remaining 1 teaspoon crushed red pepper flakes .\n",
+ " * Place the burgers on the bun bottoms , top with tomato slices , arugula salad and Basil Ketchup .\n",
+ " * A viewer , who may not be a professional cook , provided this recipe .\n",
+ " * The Food Network Kitchens chefs have not tested this recipe and therefore , we can not make representation as to the results .\n",
+ " * In a small blender or processor , blend all the ingredients .\n",
+ " * Transfer to a small bowl and refrigerate until ready to use ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Sopaipillas (Fritters)\n",
+ "(188dde1672)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '3 cups flour'\n",
+ " * '2 teaspoons baking powder'\n",
+ " * '12 teaspoon salt'\n",
+ " * '2 tablespoons shortening'\n",
+ " * '1 cup warm water'\n",
+ " * 'oil , 1 1/2 inches deep for frying'\n",
+ " * 'honey'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Stir together flour , baking powder , and salt ; cut in shortening with a pastry blender until coarse crumbs form .\n",
+ " * Gradually work in the water to form a pastry-like dough .\n",
+ " * Turn onto a light floured board .\n",
+ " * Place a damp cloth over and allow to rest for 1 hour .\n",
+ " * In large , heavy frying pan , heat oil to 425F Divide dough in half \\( you will find it easier to handle this way \\) .\n",
+ " * Roll each ball of dough as thin as possible .\n",
+ " * Cut into 3-inch squares and fry in hot oil , pushing squares down into the oil several times so that they will puff evenly .\n",
+ " * Turn once to brown and cook until golden on both sides .\n",
+ " * Place on paper towels to drain .\n",
+ " * Serve warm with honey ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Baked Tuna 'Crab' Cakes\n",
+ "(4cab4587f4)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '2 \\( 12 ounce \\) cans chunk light tuna in water , drained and flaked'\n",
+ " * '1 cup bread crumbs'\n",
+ " * '1 zucchini , shredded'\n",
+ " * '1/2 green bell pepper , chopped'\n",
+ " * '1/2 onion , finely chopped'\n",
+ " * '1/2 cup green onions , chopped'\n",
+ " * '2 cloves garlic , pressed or minced'\n",
+ " * '1 teaspoon finely chopped jalapeno pepper'\n",
+ " * '1/2 cup nonfat cottage cheese'\n",
+ " * '1/4 cup fat free sour cream'\n",
+ " * '2 eggs'\n",
+ " * '1 lime , juiced'\n",
+ " * '1 tablespoon dried basil'\n",
+ " * '1 teaspoon ground black pepper'\n",
+ " * 'salt to taste'\n",
+ " * '2 eggs'\n",
+ " * '1 cup yellow cornmeal'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Preheat oven to 350 degrees F \\( 175 degrees C \\) .\n",
+ " * Line a baking sheet with aluminum foil , and spray with cooking spray .\n",
+ " * In a large bowl , thoroughly mix the tuna , bread crumbs , zucchini , green pepper , onion , green onions , garlic , jalapeno pepper , cottage cheese , sour cream , 2 eggs , lime juice , dried basil , pepper , and salt .\n",
+ " * Beat 2 eggs in a shallow bowl , and place the cornmeal on a plate .\n",
+ " * Scoop up about 1/4 cup of the tuna mixture , and gently form it into a compact patty .\n",
+ " * Dip both sides of each cake into beaten egg and then press into cornmeal , and place the cakes onto the prepared baking sheet .\n",
+ " * Spray the tops of the cakes with cooking oil spray .\n",
+ " * Bake in the preheated oven until the tops of the cakes are beginning to brown , about 20 minutes .\n",
+ " * Flip each cake , spray with cooking spray , and bake until the cakes are cooked through and lightly browned , about 20 more minutes ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Grilled Cornish Hens with Rice and Sicilian Butter\n",
+ "(f951ae3f61)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '8 tablespoons butter , at room temperature'\n",
+ " * '1/3 cup black olives , such as Kalamata , halved and pitted'\n",
+ " * '2 teaspoons anchovy paste'\n",
+ " * '1 tablespoon grated orange zest \\( from about 1 navel orange \\)'\n",
+ " * '2 teaspoons orange juice'\n",
+ " * '2 cloves garlic , minced'\n",
+ " * '1/4 teaspoon fresh-ground black pepper'\n",
+ " * '2 Cornish hens \\( about 1 1/4 pounds each \\) , halved'\n",
+ " * '2 tablespoons cooking oil'\n",
+ " * 'Boiled or steamed rice , for serving'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Light the grill .\n",
+ " * In a food processor , puree the butter and olives with the anchovy paste , orange zest , orange juice , garlic , and pepper .\n",
+ " * With a rubber spatula , scrape the butter into a small bowl and refrigerate .\n",
+ " * Rub the hens with oil and cook over moderate heat for 12 minutes .\n",
+ " * Turn and cook until just done , about 12 minutes longer .\n",
+ " * Remove the hens from the grill and serve with the rice .\n",
+ " * Top each serving with 2 tablespoons of the flavored butter , letting the butter melt over both the hen and the rice ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Easy Cherry Macaroon Parfaits\n",
+ "(28a303ef4b)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '1 \\( 5 1/8 ounce \\) box vanilla instant pudding mix'\n",
+ " * '3 cups cold milk'\n",
+ " * '1 \\( 21 ounce \\) cancomstock cherry pie filling'\n",
+ " * '14 teaspoon almond extract , if desired'\n",
+ " * '6 macaroons , crumbled'\n",
+ " * 'whipped topping , if desired'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Prepare pudding with milk as directed on package .\n",
+ " * Combine cherry filling and extract .\n",
+ " * Alternate layers of pudding , crumbled cookies , and filling in 6 parfait or dessert dishes .\n",
+ " * Garnish with topping .\n",
+ " * Makes 6 servings ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Creamy Kulfi (Indian Ice Cream)\n",
+ "(57c7456c57)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '2 \\( 12 ounce \\) cans evaporated milk \\( whole fat is best \\)'\n",
+ " * '1 \\( 14 ounce \\) can sweetened condensed milk'\n",
+ " * '2 cups heavy whipping cream'\n",
+ " * '3 tablespoons confectioners ' sugar'\n",
+ " * '1 teaspoon ground cardamom'\n",
+ " * '1 teaspoon rose water'\n",
+ " * '3 tablespoons pistachios , finely chopped'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Line 13 x 9 inch glass baking dish with plastic wrap , leaving 2 inches overhang all around .\n",
+ " * Place evaporated milk , condensed milk , cream , sugar , cardamom and rosewater in blender .\n",
+ " * Puree on low speed until combined , about 30 seconds .\n",
+ " * Pour into prepared baking dish .\n",
+ " * Cover with plastic wrap .\n",
+ " * Freeze for 6 hours or overnight .\n",
+ " * Remove from freezer five minutes before cutting .\n",
+ " * Unwrap dish .\n",
+ " * Using plastic overhang , lift kulfi out of pan and transfer to cutting board .\n",
+ " * Remove plastic wrap .\n",
+ " * Cut into 48 squares , cutting 6 by 8 .\n",
+ " * Transfer to mini muffin papers , if desired .\n",
+ " * Garnish with chopped pistachios .\n",
+ " * Serve immediately or store in freezer .\n",
+ " * I think a mini muffin pan , popsicle molds or other small silicone molds would work just as well , with or without popsicle sticks ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Collard Greens in Tomato Sauce\n",
+ "(b4c229acfd)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '2 slices bacon'\n",
+ " * '2 onions , finely chopped'\n",
+ " * '2 cloves garlic , minced'\n",
+ " * '1 teaspoon salt'\n",
+ " * '12 teaspoon pepper'\n",
+ " * '1 \\( 15 1/2 ounce \\) can diced tomatoes , undrained'\n",
+ " * '2 lbs collard greens , rinsed , tough ribs and stems removed , torn into thin strips'\n",
+ " * 'hot pepper sauce \\( I use Tabasco \\) \\( optional \\)'\n",
+ " * 'red wine vinegar \\( optional \\)'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Cook bacon until crisp ; drain and crumble .\n",
+ " * In 1 tbsp of bacon drippings , cook onion until tender .\n",
+ " * Add garlic , salt , pepper , and diced tomatoes , stirring to mix .\n",
+ " * Place greens and tomato mixture in crockpot and mix well .\n",
+ " * Cover and cook on low for 6 hours or on high for 3 hours or until greens are tender .\n",
+ " * Serve greens with Tabasco or vinegar , if desired ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Baked Flounder a La Creole\n",
+ "(e9cda2e592)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '3 lbs flounder , cleaned and washed'\n",
+ " * '14 teaspoon salt'\n",
+ " * 'pepper , to taste'\n",
+ " * '1 large onion , peeled and chopped'\n",
+ " * '1 bay leaf'\n",
+ " * '2 sprigs fresh parsley'\n",
+ " * '1 sprig fresh thyme'\n",
+ " * '1 cup white wine \\( Chardonnay , Pinot Grigio , or Sauvignon Blanc are all very good \\)'\n",
+ " * '3 tablespoons butter'\n",
+ " * '2 tablespoons flour'\n",
+ " * '12 cup mushroom , chopped'\n",
+ " * '6 tomatoes , peeled and minced \\( canned is fine \\)'\n",
+ " * '12 cup cracker , crushed'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Season fish with salt and pepper .\n",
+ " * Distribute onion , bay leaf , parsley and thyme over the bottom of a baking pan .\n",
+ " * Place fish over the herbs and pour wine over all .\n",
+ " * Bake at 350F for 20 minutes .\n",
+ " * While the fish is baking , melt the butter and add flour ; when browned , add mushrooms and tomatoes .\n",
+ " * Simmer for ten minutes .\n",
+ " * Pour over the fish , cover with cracker crumbs ; dot with remaining butter and bake for an additional ten minutes .\n",
+ " * Garnish with parsley ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Garlicky Vaud Fondue\n",
+ "(0518569c37)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '1 head garlic , small head'\n",
+ " * '1 tablespoon olive oil'\n",
+ " * '1 12 cups dry white wine'\n",
+ " * '2 lemons , juice of'\n",
+ " * '1 lb gruyere cheese , shredded'\n",
+ " * '12 lb emmenthaler cheese , shredded'\n",
+ " * '12 teaspoon black pepper'\n",
+ " * '2 teaspoons cornstarch'\n",
+ " * '1 tablespoon brandy'\n",
+ " * '1 baguette , sliced into 1/2-inch slices'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Remove outer skin from garlic , but leave head intact .\n",
+ " * Rub with olive oil and wrap in heavy foil .\n",
+ " * Bake at 350 degrees for 1 hour .\n",
+ " * Allow to cool , then separate cloves and squeeze garlic into small bowl .\n",
+ " * Heat wine and lemon juice in a saucepan until hot , but not boiling .\n",
+ " * Add shredded cheeses to wine and lemon juice in saucepan in 4 batches , stirring in a figure-eight motion , until each addition is melted .\n",
+ " * Add roasted garlic to cheese and mix until well-blended .\n",
+ " * Season with black pepper and salt , to taste .\n",
+ " * Heat fondue until bubbly .\n",
+ " * Dissolve cornstarch into brandy and stir into fondue.Simmer for 2 minutes , then pour fondue into fondue pot and place over heating source .\n",
+ " * Serve with sliced baguette and/or sausages and your favorite fondue vegetables ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Great Canadian Taco Soup\n",
+ "(38dcf56a12)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '2 teaspoons oil'\n",
+ " * '1 onion , chopped'\n",
+ " * '4 garlic cloves , pressed or finely chopped'\n",
+ " * '1 -1 12 lb ground chuck or 1 -1 12 lb ground beef'\n",
+ " * '1 teaspoon salt'\n",
+ " * '1 -2 teaspoon chili powder'\n",
+ " * '1 tablespoon taco seasoning'\n",
+ " * '6 tablespoons onion soup mix'\n",
+ " * '6 cups water'\n",
+ " * '28 ounces diced tomatoes'\n",
+ " * '1 teaspoon sugar'\n",
+ " * '1 tablespoon italian seasoning'\n",
+ " * '1 teaspoon dried thyme'\n",
+ " * '12 cup pearl barley'\n",
+ " * '3 -4 russet potatoes , scrubbed and grated'\n",
+ " * '3 celery ribs , chopped'\n",
+ " * '3 -4 carrots , scrubbed and grated'\n",
+ " * '3 \\( 10 1/2 ounce \\) cans tomato soup'\n",
+ " * '1 12 cups grated cheese'\n",
+ " * 'taco chips'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * In a 6 quart heavy bottomed pot , fry onion and salt until soft , add garlic and fry 30 seconds .\n",
+ " * Add meat and sprinkle with salt chili powder and taco seasoning .\n",
+ " * Fry only til faintly pink .\n",
+ " * Add onion soup mix , water , tomatoes , sugar , italian seasoning thyme and barley .\n",
+ " * Add potatoes , celery , carrots .\n",
+ " * Simmer 40 minutes .\n",
+ " * Add tomato soup and cheese , stir to blend .\n",
+ " * Adjust seasonings with salt and pepper to taste .\n",
+ " * Serve with taco chips instead of crackers .\n",
+ " * My kids will crush them and add the chips to the soup .\n",
+ " * This could easily be made into a spicy version with hot pepper flakes or cayenne added to the frying meat mixture .\n",
+ " * Sometimes I also will add kernel corn at the end , either frozen or canned ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## (Almost) Sugar-Free Peanut Butter Cream Pie\n",
+ "(e9a92d6056)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '8 ounces fat free cream cheese , softened'\n",
+ " * '23 cup creamy peanut butter'\n",
+ " * '23 cup Splenda granular'\n",
+ " * '8 ounces sugar-free frozen whipped topping , thawed'\n",
+ " * '3 -4 sugar-free miniature peanut butter cups , for garnish \\( optional \\)'\n",
+ " * '1 graham cracker pie crust'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * In mixing bowl , cream together the cream cheese and peanut butter with an electric mixer .\n",
+ " * Add Splenda and mix until completely combined .\n",
+ " * Fold in the whipped topping .\n",
+ " * Pour filling into crust .\n",
+ " * Chop the peanut butter cups , if using , and sprinkle over the top of the pie .\n",
+ " * Refrigerate at least 4 hours ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Smothered Chicken\n",
+ "(81247438ac)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '2 tablespoons vinegar'\n",
+ " * '1 \\( 3 1/2 lb \\) broiler chickens \\( any whole chicken will do \\)'\n",
+ " * '4 stalks celery'\n",
+ " * '4 potatoes , peeled and quartered'\n",
+ " * '1 small onion , sliced'\n",
+ " * 'to taste carrot \\( optional \\)'\n",
+ " * 'salt and pepper'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Place the vinegar in the bottom of a deep ovenproof casserole dish or Dutch oven with a cover .\n",
+ " * Add chicken and surround with vegetables .\n",
+ " * Add seasonings to taste .\n",
+ " * Cover tightly and roast at 350\\* for 1 hour .\n",
+ " * The meat will be moist and juicy without having a strong vinegar taste .\n",
+ " * I learned to not go by the cooking time of this recipe .\n",
+ " * It is best to go by the estimated time on the chicken wrapper for the weight of the chicken .\n",
+ " * I could never find a 3 1/2-pound chicken , only larger ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Mint Chocolate-Chip Meringues\n",
+ "(3ef60af903)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '1/2 cup egg whites \\( from about 4 eggs \\)'\n",
+ " * '2/3 cup sugar'\n",
+ " * '1/2 teaspoon mint extract or mint flavoring \\( not mint oil \\)'\n",
+ " * '2 ounces unsweetened chocolate , finely chopped or grated'\n",
+ " * '2 ounces semisweet chocolate'\n",
+ " * 'Additional equipment : A pastry bag fitted with a large plain or star tip , 2 cookie sheets , well greased , or lined with parchment paper , or lined with nonstick baking mats , or 2 nonstick cookies sheets .'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Heat oven to 325 degrees F .\n",
+ " * Heat the egg whites and sugar in the top of a double boiler set over barely simmering water until warm to the touch \\( this will help you get more air into the whites when you whip them \\) .\n",
+ " * Transfer to a mixer fitted with a whisk attachment and whip until soft peaks form .\n",
+ " * Add the mint extract and continue whipping just until stiff and glossy .\n",
+ " * Fold in the chopped unsweetened chocolate .\n",
+ " * Scrape the mixture into a pastry bag .\n",
+ " * Pipe bite-size kisses onto the cookie sheets and bake until the meringues are the color of milky coffee , 25 to 30 minutes .\n",
+ " * To test , remove one meringue from the oven , let cool one minute , then taste .\n",
+ " * It should be dry and crisp all the way through .\n",
+ " * Let cool on the pans .\n",
+ " * Melt the semisweet chocolate .\n",
+ " * Dipping the tines of a fork into the chocolate , drizzle the meringues with melted chocolate .\n",
+ " * Let sit until chocolate is set , 30 minutes to an hour \\( or let set in the refrigerator for 15 minutes \\) .\n",
+ " * Store in an airtight container for up to 3 days ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Peach A Lingo Chicken Recipe\n",
+ "(6f088c4b89)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '5 lbs . chicken \\( use legs , breasts or possibly whatever you like \\)'\n",
+ " * '1 jar peach preserves \\( 18 ounce . \\)'\n",
+ " * '8 ounce . Red Russian dressing'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Skin chicken , season to taste .\n",
+ " * Arrange chicken in pan .\n",
+ " * Mix together peach preserves and dressing .\n",
+ " * Pour over chicken .\n",
+ " * Bake 350 degrees for 1 hour and 10 min .\n",
+ " * Turn chicken halfway .\n",
+ " * Serves 8-10 ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Carrie's Beautiful Bread (ABM)\n",
+ "(75810b28f6)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '2 teaspoons salt'\n",
+ " * '14 cup sugar'\n",
+ " * '2 tablespoons dry milk'\n",
+ " * '3 14 cups all-purpose flour'\n",
+ " * '12 cup wheat flour'\n",
+ " * '1 13 cups warm water'\n",
+ " * '2 tablespoons extra virgin olive oil'\n",
+ " * '1 teaspoon lemon juice'\n",
+ " * '1 package active dry yeast \\( I use Red Star \\)'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Measure ingredients into your ABM in the order your manufacturere recommends .\n",
+ " * Set on light or medium setting to your preference .\n",
+ " * You can also make just dough with your ABM and bake in your oven or freeze the dough after the first rise in any shape you like .\n",
+ " * Bake in a conventional oven at 350 degrees for 25-35 minutes ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Cheeseburger Pizza\n",
+ "(634ed9f719)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '1 pizza crust'\n",
+ " * '2 tablespoons sesame seeds'\n",
+ " * 'seasoning salt , to taste'\n",
+ " * '1 \\( 10 3/4 ounce \\) can condensed tomato soup'\n",
+ " * '2 cups shredded cheddar cheese , divided'\n",
+ " * '2 teaspoons dry mustard'\n",
+ " * '1 teaspoon Worcestershire sauce'\n",
+ " * '12 lb lean ground beef'\n",
+ " * '12 teaspoon seasoning salt'\n",
+ " * '1 cup diced raw tomato'\n",
+ " * '1 cup chopped raw onion , divided'\n",
+ " * '12 cup chopped dill pickle'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Prepare the crust .\n",
+ " * If using raw dough , spread crust on pan and bake at 400 degrees for 10 minutes , then take it out .\n",
+ " * Or use a pre-packaged crust .\n",
+ " * Cook hamburger with 1/2 cup onions and 1/2 tsp seasoned salt until crumbled and cooked through .\n",
+ " * Combine tomato soup , 1 cup shredded cheese , dry mustard , and worchestershire sauce in sauce pan .\n",
+ " * Cook on low heat until cheese is melted and mixture is smooth .\n",
+ " * Sprinkle entire crust , including edges with seasoned salt to taste .\n",
+ " * Sprinkle sesame seeds on edges of crust .\n",
+ " * Spread sauce evenly on crust .\n",
+ " * Top with crumbled hamburger , 1 cup sherdded cheese , pickles and onions .\n",
+ " * Bake at 400 degrees for 10 more minutes or until cooked to your liking .\n",
+ " * Add raw tomatoes to topping just before serving ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Everything Soup\n",
+ "(3c0fd08f9c)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '2 \\( 15 ounce \\) cans Swanson chicken broth'\n",
+ " * '1 \\( 15 ounce \\) canswanson beef broth'\n",
+ " * '2 \\( 15 ounce \\) cans kidney beans'\n",
+ " * '12 ounces stewed tomatoes , with juice'\n",
+ " * 'oregano'\n",
+ " * 'coriander'\n",
+ " * 'thyme'\n",
+ " * 'red pepper flakes'\n",
+ " * 'brown sugar'\n",
+ " * 'garlic pepper seasoning'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Using a large saucepan , add all ingeredients and bring to a boil ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Zucchini Soup With Pumpernickel and Quark Toasts\n",
+ "(03ae3bfce9)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '2 ounces butter'\n",
+ " * '1 onion , chopped'\n",
+ " * '1 garlic clove , crushed'\n",
+ " * '3 large zucchini , trimmed and chopped'\n",
+ " * '1 cup fresh spinach leaves , roughly chopped \\( optional \\)'\n",
+ " * '5 cups chicken broth or 5 cups vegetable broth'\n",
+ " * '6 ounces Quark \\( available from specialty stores , substitute whipped cream cheese if necessary \\)'\n",
+ " * '3 slices pumpernickel bread'\n",
+ " * 'fresh lemon juice'\n",
+ " * '2 -3 tablespoons chopped mixed fresh herbs'\n",
+ " * 'sea salt & freshly ground black pepper'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Melt the butter in a large saucepan and saute the onion , garlic and zucchini gently for about 10 minutes , stirring once or twice .\n",
+ " * Do not let them brown .\n",
+ " * Add the spinach and cook until wilted then pour in the broth .\n",
+ " * Bring to the boil , season to taste then stir in and simmer , partially covered , for about 10 to 15 minutes .\n",
+ " * Strain the vegetables and reserve the liquid .\n",
+ " * Pass the vegetables through a food processor or blender , gradually adding back the liquid and adding 2 tablespoons of the quark .\n",
+ " * Return the soup to the pan and set aside .\n",
+ " * Either cut the pumpernickel into small rounds using a cookie cutter or leave whole .\n",
+ " * Toast under a hot grill for 1 to 2 minutes until just crisp .\n",
+ " * Remove , cut into quarters if not already cut into rounds , and allow to cool .\n",
+ " * Whisk the herbs and some seasoning into the rest of the quark .\n",
+ " * When ready to serve , spread the quark on the pumpernickel toasts .\n",
+ " * Bring the soup to the boil and check the seasoning , adding a little lemon juice if you think it needs it .\n",
+ " * Divide the soup between warmed bowls and top or serve with the pumpernickel toasts ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Caesar Vinaigrette\n",
+ "(27b86a0c47)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '2 tablespoons finely grated Parmesan cheese'\n",
+ " * '1 tablespoon fresh lemon juice'\n",
+ " * '1/2 teaspoon anchovy paste'\n",
+ " * '1/4 teaspoon freshly ground black pepper'\n",
+ " * '1/4 teaspoon Worcestershire sauce'\n",
+ " * '1 large pasteurized egg yolk'\n",
+ " * '1 garlic clove , minced'\n",
+ " * '2 tablespoons extra-virgin olive oil'\n",
+ " * 'Romaine lettuce'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Combine Parmesan cheese , lemon juice , anchovy paste , pepper , Worcestershire sauce , egg yolk , and minced garlic in a mini food processor ; process 15 seconds .\n",
+ " * With the processor on , gradually add olive oil , processing until combined .\n",
+ " * Toss with romaine lettuce ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Cameron's \"No Messing About\" Salsa Recipe\n",
+ "(11506966f5)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '1 can Whole tomatoes \\( 3 '' dia , 5 '' tall - approx \\)'\n",
+ " * '1 x - \\( up to \\)'\n",
+ " * '6 x Cloves garlic'\n",
+ " * '1 x Lime'\n",
+ " * '1/2 lrg Onion \\( 3 '' to 4 '' dia . \\)'\n",
+ " * '1 bn cilantro \\( washed , and stems screwed off \\)'\n",
+ " * '1 tsp \\( heaped \\) good red paprika pwdr Chile to taste \\( see note below \\)'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Drain juice from tomatoes into blender .\n",
+ " * Squeeze in the lime juice , add in garlic , chile .\n",
+ " * Blend on high until lumps have gone .\n",
+ " * Take pitcher off blender .\n",
+ " * Chop the onion roughly and drop it in with the tomatoes , cilantro , paprika and some salt if you 're not too paranoid .\n",
+ " * With a long bladed knife do a bit of stabbing and slashing to break up the components so which they circulate when you run the motor .\n",
+ " * Blend on LOW speed till it is mixed but still quite coarse .\n",
+ " * Flavor improves after a day or possibly two in the fridge .\n",
+ " * Note on chile : You can use anything for a bit of heat , but the best flavor is found in small green fresh chiles of the `` serrano '' type .\n",
+ " * \\( Try 2 or possibly 3 \\) .\n",
+ " * You might also experiment with the yellow/orange `` habaneros '' that have a good flavor but are extremely warm .\n",
+ " * If desperate powdered chile , chile oil , small can of jalapenos or possibly warm sauce will work - use plenty !\n",
+ " * !"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Lemon Cream Pie\n",
+ "(5441447a86)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '8 whole Egg Yolks'\n",
+ " * '2 cups Sugar'\n",
+ " * '1/2 cups Cornstarch'\n",
+ " * '1/2 teaspoons Salt'\n",
+ " * '2 cups Cold Water'\n",
+ " * '2 Tablespoons Lemon Zest'\n",
+ " * '23 cups Fresh Lemon Juice'\n",
+ " * '4 Tablespoons Butter'\n",
+ " * '2 teaspoons Vanilla'\n",
+ " * '1 whole Prebaked Pie Crust \\( store Bought Or Your Favorite Recipe \\)'\n",
+ " * '8 ounces , weight Cream Cheese'\n",
+ " * '1/4 cups Powdered Sugar'\n",
+ " * '2 cups Sweetened Whipped Cream Or Whipped Topping'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Separate the egg yolks and whites , doing so one at a time .\n",
+ " * Place the whites into a small bowl \\( to make sure you dont get any shell in the bowl \\) and put the egg yolks in a medium bowl .\n",
+ " * Lightly beat the yolks and set aside .\n",
+ " * Keep the egg whites for another use .\n",
+ " * In a saucepan over medium heat combine the sugar , cornstarch , and salt and whisk to combine .\n",
+ " * Gradually whisk in the cold water and bring to a boil , cook for one minute , then remove pan from heat .\n",
+ " * Add about one cup of the hot mixture to the egg yolks in order to temper them and whisk until combined .\n",
+ " * Add the tempered egg yolks back into the pan with the remaining hot mixture .\n",
+ " * Return to medium heat , bring to a low boil and boil for about 1 minute , whisking constantly until thickened .\n",
+ " * Add the lemon zest , juice , butter , and vanilla to the pan and whisk to combine .\n",
+ " * Cook for 1 to 2 minutes until the butter is melted and everything is combined and thickened .\n",
+ " * Remove from heat .\n",
+ " * Set aside about 3/4 cup of the lemon filling .\n",
+ " * I always use the liquid measuring cup that held the lemon juice .\n",
+ " * Pour the remaining lemon filling into the pre-baked pie crust and chill for about 30 minutes .\n",
+ " * In the bowl of an electric mixer , combine the cream cheese , reserved lemon filling , and powdered sugar .\n",
+ " * Beat on medium speed until combined .\n",
+ " * Spread the cream cheese mixture over the cooled lemon filling .\n",
+ " * Top the pie with the sweetened whipped cream or whipped topping .\n",
+ " * Chill for at least one hour before serving .\n",
+ " * Garnish with fresh lemon , if desired .\n",
+ " * Adapted from Southern Lady ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Grilled Chicken with Roasted Tomato and Oregano Salsa\n",
+ "(ef4c8232a4)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '2 tablespoons olive oil'\n",
+ " * '2 tablespoons chopped fresh basil'\n",
+ " * '2 cloves garlic , chopped'\n",
+ " * '1/2 teaspoon chopped fresh rosemary'\n",
+ " * '1/2 teaspoon chopped fresh oregano'\n",
+ " * '1/2 teaspoon salt'\n",
+ " * '1/4 teaspoon chopped fresh thyme'\n",
+ " * '1/4 teaspoon freshly ground black pepper'\n",
+ " * '4 boneless , skinless chicken breasts \\( about 6 ounces each \\)'\n",
+ " * '1 pound fresh tomatoes , diced'\n",
+ " * '1 tablespoon olive oil'\n",
+ " * '1/2 teaspoon salt'\n",
+ " * '1/4 teaspoon freshly ground black pepper'\n",
+ " * '1 medium shallot , diced'\n",
+ " * '1/2 cup diced onion'\n",
+ " * '1/2 small jalapeno , cored , seeded and minced'\n",
+ " * '1 teaspoon minced garlic'\n",
+ " * '1 tablespoon chopped fresh oregano'\n",
+ " * 'Vegetable oil cooking spray'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Combine first 8 ingredients in a plastic bag .\n",
+ " * Add chicken ; marinate at least 30 minutes .\n",
+ " * Heat oven to 400F .\n",
+ " * Cover a baking tray with foil .\n",
+ " * To make salsa , spread tomatoes on tray ; drizzle with oil .\n",
+ " * Add salt and pepper .\n",
+ " * Bake until lightly browned , 20 to 25 minutes .\n",
+ " * Combine tomatoes , shallots , onion , jalapeno , garlic and oregano in a bowl .\n",
+ " * Coat a large skillet with cooking spray .\n",
+ " * Heat over medium-high heat .\n",
+ " * Remove chicken from marinade ; cook 5 minutes .\n",
+ " * Reduce heat to medium-low , flip chicken and add leftover marinade to pan .\n",
+ " * Cook 5 minutes .\n",
+ " * Reduce heat to low .\n",
+ " * Cover chicken ; cook 10 minutes .\n",
+ " * Divide among 4 plates ; top each with 1/4 of the salsa .\n",
+ " * Serve immediately ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Bacon Ranch Chicken Skewers\n",
+ "(f36bad261e)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '1/3 cup ranch dressing'\n",
+ " * '1 teaspoon hot chile paste \\( such as sambal oelek \\)'\n",
+ " * '4 skinless , boneless chicken breast halves - cut into 1 inch pieces'\n",
+ " * '24 \\( 1-inch \\) pieces red onion'\n",
+ " * '12 slices thick cut bacon'\n",
+ " * 'salt and black pepper to taste'\n",
+ " * '12 \\( 6 inch \\) bamboo skewers , soaked in water for 2 hours'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Whisk together ranch dressing and hot chile paste in a large bowl .\n",
+ " * Mix in chicken pieces and toss to evenly coat .\n",
+ " * Cover the bowl with plastic wrap and marinate in the refrigerator for 1 to 3 hours .\n",
+ " * Preheat an outdoor grill for medium-high heat and lightly oil the grate .\n",
+ " * Remove chicken from the bag and transfer to a plate or baking sheet lined with paper towels .\n",
+ " * Pat chicken pieces dry with more paper towels .\n",
+ " * Thread a piece of onion about 1 1/2 inches down the skewer .\n",
+ " * Thread the end portion of one strip of bacon onto skewer so the rest of the strip is hanging down .\n",
+ " * Skewer on a piece of chicken ; thread on the next portion of the bacon .\n",
+ " * Turn the skewer so that the long end of the bacon is again hanging down .\n",
+ " * Repeat this process of skewering and turning until the entire strip of bacon is threaded , using 4 to 5 chicken pieces .\n",
+ " * Thread a second piece of onion onto the end of the skewer .\n",
+ " * Repeat steps 5 through 7 for all twelve skewers .\n",
+ " * Season chicken skewers with salt and pepper as desired .\n",
+ " * Cook the skewers on the preheated grill , turning every 3 to 4 minutes , until nicely browned on all sides and the meat is no longer pink in the center , 12 to 16 minutes total per skewer .\n",
+ " * Serve with ranch dressing as a dipping sauce ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Dilly Sour Cream Salad Dressing\n",
+ "(1255330ef7)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '12 cup sour cream'\n",
+ " * '2 tablespoons lemon juice'\n",
+ " * '2 tablespoons milk'\n",
+ " * '2 teaspoons dill'\n",
+ " * '1 teaspoon sugar'\n",
+ " * '14 teaspoon salt'\n",
+ " * '14 teaspoon pepper'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Mix all ingredients together and refrigerate .\n",
+ " * Best if allowed to set for at least 4 hours for flavors to blend ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Minted Pea Pasta With Sour Cream\n",
+ "(d8d10e5af6)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '350 g penne'\n",
+ " * '1 onion , sliced'\n",
+ " * '4 garlic cloves , crushed'\n",
+ " * '2 cups minted frozen peas'\n",
+ " * '1 12 cups chicken stock or 1 12 cups vegetable stock'\n",
+ " * '1 lemon , juice and zest of'\n",
+ " * 'sea salt'\n",
+ " * 'cracked pepper'\n",
+ " * '14 cup extra- light sour cream'\n",
+ " * 'parmesan cheese \\( optional \\)'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Bring a large pot of water to the boil .\n",
+ " * Cook pene for 10 mins til tender , drain .\n",
+ " * Meanwhile heat a non-stick frypan to high heat and spray with cooking oil .\n",
+ " * Add onion and garlic and cook for 3 mins till softerned .\n",
+ " * Add peas , stock and cook for 5-6 minutes Add zest and juice and season with salt and pepper .\n",
+ " * Add penne and stir to combine .\n",
+ " * Top with sour cream and Parmesan cheese if desired ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Mocha Punch\n",
+ "(024ddb0778)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '1 12 quarts water'\n",
+ " * '12 cup instant chocolate drink mix'\n",
+ " * '12 cup sugar'\n",
+ " * '14 cup instant coffee granules'\n",
+ " * '12 gallon vanilla ice cream'\n",
+ " * '12 gallon chocolate ice cream'\n",
+ " * '1 cup whipped cream , whipped'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * In a large saucepan , bring the water to a boil ; then remove from the heat .\n",
+ " * Add the drink mix , sugar , and coffee ; stir until dissolved .\n",
+ " * Cover and refrigerate for 4 hours or overnight .\n",
+ " * About 30 minutes before serving , pour into a punch bowl .\n",
+ " * Add the ice cream by scoopfuls ; stir until partially melted .\n",
+ " * Garnish with dollops of whipped cream ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Oyster Po' Boys\n",
+ "(b0fdad935e)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '1/2 cup mayonnaise'\n",
+ " * '1 1/4 teaspoons minced canned chipotle chiles in adobo'\n",
+ " * '1/2 teaspoon fresh lemon juice'\n",
+ " * '6 cups vegetable oil'\n",
+ " * '1 large egg'\n",
+ " * '1/4 cup whole milk'\n",
+ " * '2 1/2 teaspoons salt'\n",
+ " * '1 1/2 cups cornmeal'\n",
+ " * '1/4 teaspoon black pepper'\n",
+ " * '2 cups shucked oysters , drained \\( about 36 \\)'\n",
+ " * '1 \\( 12- to 14-inch-long \\) loaf soft-crusted bread'\n",
+ " * '3 cups shredded iceberg lettuce'\n",
+ " * 'Accompaniment : lemon wedges'\n",
+ " * 'Special equipment : a deep-fat thermometer'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Whisk together mayonnaise , chipotle , and lemon juice and chill mixture , its surface covered with plastic wrap .\n",
+ " * Heat oil in a deep heavy pot \\( preferably a cast-iron Dutch oven \\) over high heat until it registers 375F on deep-fat thermometer , about 12 minutes .\n",
+ " * While oil is heating , whisk together egg , milk , and 1 teaspoon salt in a bowl .\n",
+ " * Shake cornmeal , remaining 1 1/2 teaspoons salt , and pepper in a plastic or paper bag until combined well .\n",
+ " * Working in batches , add oysters to egg mixture , then lift out , letting excess drip off , and transfer to cornmeal in bag , shaking to coat well .\n",
+ " * Carefully transfer to oil , knocking off excess coating , and fry , turning occasionally , until golden and just cooked through , 1 to 2 minutes .\n",
+ " * Transfer with a slotted spoon to paper towels to drain .\n",
+ " * Coat and fry remaining oysters in same manner , returning oil to 375F for each batch .\n",
+ " * Halve loaf crosswise and horizontally , cutting all the way through , and spread one cut side of each piece with mayonnaise .\n",
+ " * Sandwich oysters and lettuce between bread , pressing gently ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Moroccan Couscous Salad\n",
+ "(2befd0cd83)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '13 cup couscous'\n",
+ " * '12 cup chicken stock'\n",
+ " * '1 teaspoon olive oil'\n",
+ " * '1 tablespoon orange juice'\n",
+ " * '1 teaspoon Dijon mustard'\n",
+ " * '1 teaspoon chopped fresh thyme'\n",
+ " * '2 green onions , thinly sliced'\n",
+ " * '14 cup parsley'\n",
+ " * '12 orange , peeled and cut into chunks'\n",
+ " * '1 tablespoon fresh lemon juice'\n",
+ " * 'salt and freshly ground black pepper , to taste'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Bring chicken stock to a boil and stir in the couscous .\n",
+ " * Cover and remove from heat ; allow to stand for 5 minutes .\n",
+ " * In a separate bowl , mix together the orange juice , lemon juice , Dijon mustard , thyme , onions , parsley and oranges .\n",
+ " * Fluff couscous with a fork and mix well with the other ingredients .\n",
+ " * Season with salt and pepper , if necessary ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Taco Wontons\n",
+ "(689f74800f)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '2- 1/2 ounces , weight Cooked Taco Ground Beef'\n",
+ " * '15 whole Wonton Wraps 3x3 Size'\n",
+ " * '13 cups Salsa , Your Favorite'\n",
+ " * '1 ounce , weight Light Mexican Cheese , Shredded'\n",
+ " * 'Spray Butter'\n",
+ " * 'Greek Yogurt And Salsa , To Serve'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Preheat oven to 350 degrees F. Line a baking sheet with parchment paper .\n",
+ " * In a tiny bowl , add some water .\n",
+ " * This is for sealing the edges of your wontons .\n",
+ " * Place 1 teaspoon of ground beef into a wrapper and top with 1 teaspoon salsa and a pinch of cheese .\n",
+ " * Take your finger , dip in water , and run your wet finger along the edges of the wrapper \\( this will be the glue to seal the wrappers together \\) .\n",
+ " * Fold wrapper over into a triangle and place on the baking sheet .\n",
+ " * Do the same for the rest of the wrappers .\n",
+ " * Spray each wonton with about 2 sprays of butter .\n",
+ " * Bake for 15 minutes , until lightly browned .\n",
+ " * Serve with Greek yogurt and salsa .\n",
+ " * Makes 15 taco wontons .\n",
+ " * Calories per taco wonton : 36 , Fat : .07 , Cholesterol : 4 , Sodium : 58 , Potassium : 7 , Carbs : 5.3 , Fiber : .01 , Sugar : .04 , Protein : 2.3"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Elk Carpaccio with Grilled Corn Tortillas and Arugula with Lemon Vinaigrette\n",
+ "(b88c469b28)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '1 pound fresh domestic elk rib-eye'\n",
+ " * '1 minced fresh jalapeno pepper'\n",
+ " * '1 dozen fresh corn tortillas'\n",
+ " * '1 tablespoon good olive oil , plus more for drizzling'\n",
+ " * '1/2 teaspoon fresh lemon juice'\n",
+ " * 'Kosher salt and fresh ground pepper'\n",
+ " * '1/4 cup freshly grated dry Mexican cheese'\n",
+ " * '2 tablespoons good olive oil'\n",
+ " * '1/2 fresh lemon , juiced'\n",
+ " * '2 dashes green hot sauce \\( recommended : Tabasco \\)'\n",
+ " * '1/2 teaspoon finely chopped jalapeno'\n",
+ " * 'Kosher salt and fresh ground pepper'\n",
+ " * '1 1/4 pounds baby arugula'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Chill the rib-eye in the freezer for 10 minutes to make it easier to slice .\n",
+ " * Mince 1 fresh jalapeno pepper after removing the seeds and ribs \\( flavor not heat is important because the domestic elk has such a delicate flavor \\) .\n",
+ " * Brush the corn tortillas with a little olive oil and place them directly on a hot grill , turn often .\n",
+ " * You want them crisp and with grill marks .\n",
+ " * Mix your vinaigrette using a whisk in a small metal bowl .\n",
+ " * Slice the raw elk as thinly as possible , arrange on a large chilled platter after tossing the baby arugula in the dressing and placing in the middle of the platter .\n",
+ " * Sprinkle the minced jalapeno on the meat and drizzle with the good olive oil and the lemon juice .\n",
+ " * Season with salt and pepper and garnish with the cheese .\n",
+ " * Break up the grilled tortillas by hand and use the pieces to enjoy the elk ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Chewy Almond Cookies\n",
+ "(a795b3a586)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '1 cup Almonds , Toasted'\n",
+ " * '1- 1/2 cup All-purpose Flour'\n",
+ " * '1/2 teaspoons Baking Soda'\n",
+ " * '1/2 teaspoons Baking Powder'\n",
+ " * '1 teaspoon Cornstarch'\n",
+ " * '1/2 teaspoons Salt'\n",
+ " * '8 Tablespoons Unsalted Butter , melted'\n",
+ " * '23 cups Plus 2 Tablespoons Light Brown Sugar , Packed'\n",
+ " * '13 cups White Sugar'\n",
+ " * '1 whole Egg , Room Temperature'\n",
+ " * '1 whole Egg Yolk , Room Temperature'\n",
+ " * '1- 1/2 teaspoon Almond Extract'\n",
+ " * '1 teaspoon Vanilla Extract'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Place almonds in a food processor and pulse until finely ground .\n",
+ " * In a medium bowl , combine flour , ground almonds , baking soda , baking powder , cornstarch , and salt together and set aside .\n",
+ " * In a large bowl , whisk melted butter , light brown and white sugars together until well combined and mixture is smooth .\n",
+ " * Add in egg , egg yolk , almond extract , and vanilla extract and mix well .\n",
+ " * Stir in flour mixture until just combined .\n",
+ " * Cover dough with plastic wrap and chill in fridge overnight .\n",
+ " * Preheat oven to 350 degrees F. Scoop 2-teaspoon portions of dough onto baking sheets lined with parchment paper .\n",
+ " * Bake for about 812 minutes , until edges start browning slightly .\n",
+ " * Remove and allow to cool .\n",
+ " * Makes about 40 cookies ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Easy Spiced Salmon\n",
+ "(5c6c6cc654)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '1 teaspoon brown sugar'\n",
+ " * '2 teaspoons curry powder'\n",
+ " * '14 teaspoon salt'\n",
+ " * '4 salmon fillets \\( 1/4 pound each \\)'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Sprinkle salmon fillets with curry powder , salt and sugar .\n",
+ " * Spray a skillet with Pam and set over medium high heat .\n",
+ " * Add fish to pan and cook until done , about 5-10 minutes per side , depending on the thickness of the fish ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Cinnamon Deep Fried Ice Cream\n",
+ "(fad1fc2091)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '12 cup vanilla ice cream'\n",
+ " * '2 tablespoons cinnamon'\n",
+ " * '12 cup sugar'\n",
+ " * '34 cup corn flakes \\( Crushed \\)'\n",
+ " * '3 tablespoons whipped cream \\( optional \\)'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Mix the cinnamon and sugar together in a small bowl , and roll the ice cream in it .\n",
+ " * Then roll the ice cream into the crushed corn flakes .\n",
+ " * Place the ice cream ball back in the freezer to harden .\n",
+ " * To deep fry , heat the fryer to 375 degrees and drop the ice cream ball in for about 10 seconds .\n",
+ " * Remove and drain the ice cream ball and place on a dessert plate .\n",
+ " * Serve with whipped cream if desired ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Carla's Rum Cake\n",
+ "(4f5de239fd)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '1 \\( 18 ounce \\) Duncan Hines yellow cake mix \\( not butter \\)'\n",
+ " * '1 \\( 3 1/2 ounce \\) package French vanilla instant pudding'\n",
+ " * '4 eggs'\n",
+ " * '12 cup spiced rum \\( I use Captain Morgan 's Spiced Rum \\)'\n",
+ " * '12 cup water'\n",
+ " * '12 cup oil'\n",
+ " * '1 cup pecans , chopped'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * 1 .\n",
+ " * Grease and flour a bunbt pan .\n",
+ " * 2 .\n",
+ " * Put chopped pecans in bottom of pan , of if you choose , you can add pecans to the batter .\n",
+ " * 3 .\n",
+ " * Put all ingredients in a bowl and mix with a spoon .\n",
+ " * 4 .\n",
+ " * Pour cake batter into bunbt pan .\n",
+ " * 5 .\n",
+ " * Bake at 325 degrees oven for one hour .\n",
+ " * 6 .\n",
+ " * While cake is baking , bring to boil and remove from fire : .\n",
+ " * 1 stick of unsalted butter , 1/4 cup spiced rum , 1/4 cup water , and 1 cup of sugar .\n",
+ " * 7 .\n",
+ " * When cake come out of oven , pour 1/3 glaze on cake while it is still in the pan , let soak inches Repeat .\n",
+ " * 8 .\n",
+ " * Remove cake from pan , turn over onto serving platter , and pour rest of glaze on top of cake .\n",
+ " * 9 .\n",
+ " * Freezes great !"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Apricot Smoothie\n",
+ "(bc752503e6)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '16 fresh apricots , pitted'\n",
+ " * '32 oz . low-fat \\( 1 % \\) yogurt , favorite flavor'\n",
+ " * '1/2 cup PLANTERS Dry Roasted Peanuts'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Place apricots in blender with yogurt ; add ice if you wish and blend .\n",
+ " * Divide into 4 equal servings .\n",
+ " * Serve 2 Tbsp .\n",
+ " * peanuts per person on the side ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Monaka-style Adzuki Bean Cracker Sandwiches With the Aroma of Pickled Plums and Shiso Leaves\n",
+ "(ee066f5cda)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '12 Crackers \\( I used Ritz crackers \\)'\n",
+ " * '1 small can Canned boiled adzuki beans'\n",
+ " * '1 large Umeboshi \\( I recommend honey umeboshi \\)'\n",
+ " * '3 to 4 Shiso leaves'\n",
+ " * '1 tbsp A : Sugar'\n",
+ " * '1 grams Powdered kanten'\n",
+ " * '1 Butter \\( optional \\)'\n",
+ " * '1 Cheese \\( optional \\)'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Take the pit out of the umeboshi and mince the flesh .\n",
+ " * Finely chop the shiso leaves .\n",
+ " * Put the boiled adzuki beans , umeboshi and A ingredients \\( sugar , powdered kanten \\) in a saucepan and mix together .\n",
+ " * Cook over low heat , stirring constantly .\n",
+ " * It will become thick after 3-5 minutes .\n",
+ " * Remove from heat before it becomes too thick and stir in the finely chopped shiso leaves .\n",
+ " * Let cool , and the `` Plum Shiso Bean Paste '' is done .\n",
+ " * Put in as many shiso leaves as you like .\n",
+ " * Sandwich the filling between crackers and that 's it Garnish with more shiso leaves ...\n",
+ " * Variation 1 : Spread with butter for an anko butter sandwich .\n",
+ " * Variation 2 : Spread with cream cheese for an anko cheese sandwich .\n",
+ " * These are the crackers I used this time ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Orange-BBQ Baked Chicken\n",
+ "(49d8f4d06e)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '1 cup KRAFT Spicy Honey Barbecue Sauce'\n",
+ " * '1 Tbsp . zest and 1/4 cup juice from 1 orange'\n",
+ " * '1 tsp . ground ginger'\n",
+ " * '1 tsp . garlic powder'\n",
+ " * '1/2 tsp . ground coriander'\n",
+ " * '1 broiler-fryer chicken \\( 4 lb . \\) , cut up'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Heat oven to 375F .\n",
+ " * Mix all ingredients except chicken until blended .\n",
+ " * Pour half into saucepan ; reserve for later use .\n",
+ " * Place chicken in roasting pan sprayed with cooking spray ; brush with remaining barbecue sauce mixture .\n",
+ " * Bake 45 to 50 min .\n",
+ " * or until chicken is done \\( 165F \\) .\n",
+ " * About 5 min .\n",
+ " * before chicken is done , cook reserved barbecue sauce mixture on low heat until heated through .\n",
+ " * Serve chicken with reserved barbecue sauce mixture ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "## Nutella Cookies\n",
+ "(716bd92412)"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Ingredients"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * '120 grams Butter'\n",
+ " * '100 grams Sugar'\n",
+ " * '200 grams Nutella'\n",
+ " * '1 whole Egg'\n",
+ " * '300 grams Flour'\n",
+ " * '2 teaspoons Baking Powder'\n",
+ " * '100 grams Milk Chocolate , Chopped In Small Pieces \\( or Use Chocolate Chips \\)'\n",
+ " * '50 grams Roasted Hazelnuts , Coarsely Chopped Or Crushed'"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "### Instructions"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ " * Preheat your oven to 180 C and line 2 baking sheets with parchment paper .\n",
+ " * Set aside .\n",
+ " * Melt the butter \\( in a saucepan over low heat or in the microwave for 30-60 seconds .\n",
+ " * Put the melted butter into a mixing bowl , add the sugar and beat with an electric mixer until the batter is thickened and the butter has cooled .\n",
+ " * Then add Nutella and the egg and combine well .\n",
+ " * Into a medium sized bowl sift the flour with the baking powder .\n",
+ " * Then fold it into the Nutella mixture .\n",
+ " * In the end , add the milk chocolate , chopped or chocolate morsels and the roughly crushed roasted hazelnuts .\n",
+ " * Using a tablespoon , scoop out the batter and roll the scoops between your hands to form cookies \\( you will get about 30 cookies \\) .\n",
+ " * Arrange them on the cookie sheet , spaced about 2 inches apart and bake at 180 C for about 10-12 minutes ."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "