text:
try:
  import json
except ImportError:
  import simplejson as json
import logging

from django.http import HttpResponse
from django.utils.translation import ugettext as _

from desktop.lib.exceptions import StructuredException

from oozie.forms import WorkflowForm, NodeForm, design_form_by_type
from oozie.models import Job, Workflow, Node, Start, End, Kill,\
                         Link, Decision, Fork, DecisionEnd, Join,\
                         NODE_TYPES, ACTION_TYPES, _STD_PROPERTIES_JSON
from oozie.decorators import check_job_access_permission, check_job_edition_permission
from oozie.utils import model_to_dict, format_dict_field_values, format_field_value

LOG = logging.getLogger(__name__)

def get_or_create_node(workflow, node_data, save=True):
  node = None
  id = str(node_data['id'])
  separator_index = id.find(':')

  if separator_index == -1:
    return Node.objects.get(id=id, workflow=workflow).get_full_node()

  node_type = id[0:separator_index]
  node_model = NODE_TYPES.get(node_type, None)
  kwargs = {'workflow': workflow, 'node_type': node_data['node_type']}

  if node_model:
    node = node_model(**kwargs)
  else:
    raise StructuredException(code="INVALID_REQUEST_ERROR", message=_('Could not find node of type'), data=node_data, error_code=500)

  if save:
    node.save()

  return node

def _validate_node_links_json(node_type, node_links, errors):
  """
  Validate a single node's links.
  node_type is the node type of the action information passed.
  node_links is list of dictionaries describing the links.
  errors is a dictionary that will be populated with any found errors.
  """
  assert isinstance(errors, dict), "errors must be a dict."
  if not isinstance(node_links, list):
    errors['links'] = _("links must be a list")
    return False

  # Check link counts are accurate.
  if node_type == Start.node_type:
    if len(node_links) != 2:
      errors['links'] = _("Start should have two children: 'related' to end, 'to' to any node but an end.")
      return False
  elif node_type == End.node_type:
    if len(node_links) != 0:
      errors['links'] = _("End should have no children.")
      return False
  elif node_type == Kill.node_type:
    if len(node_links) != 0:
      errors['links'] = _("Kill should have no children.")
      return False
  elif node_type in (Join.node_type, DecisionEnd.node_type):
    if len(node_links) != 1:
      errors['links'] = _("Join and Decision End should have one child: 'to' to any node.")
      return False
  elif node_type in (Fork.node_type, Decision.node_type):
    if len(node_links) < 2:
      errors['links'] = _("Fork and Decision should have at least two children: 'related' to their respective ends, 'start' to any node.")
      return False
  else:
    if len(node_links) != 2:
      errors['links'] = _("Actions should have two children: 'error' to kill, 'ok' to any node.")
      return False

  # Check if link types are okay.
  link_names_by_node_type = {
    'start': {'related': 1, 'to': 1},
    'end': {},
    'kill': {},
    'fork': {'related': 1, 'start': 2},
    'join': {'to': 1},
    'decision': {'related': 1, 'start': 2},
    'decisionend': {'to': 1},
    None: {'ok': 1, 'error': 1},
  }
  link_types = link_names_by_node_type.get(node_type, link_names_by_node_type[None])
  for link in node_links:
    link_name = link.get('name', None)
    if link_name in link_types:
      link_types[link_name] -= 1

  for link_type in link_types:
    if link_types[link_type] > 0:
      errors['links'] = _('%(node_type)s should have %(count)d more %(link_type)s link' % {
        'node_type': node_type,
        'count': link_types[link_type],
        'link_type': link_type
      })
      return False

  return True

def _validate_node_json(node_type, node_dict, errors, user, workflow):
  """
  Validates a single node excluding links.
  node_type is the node type of the action information passed.
  node_dict is a dictionary describing the node.
  errors is a dictionary that will be populated with any found errors.
  user is a User object that is associated with the node_type. Only needed for Subworkflow node.
  workflow is the Workflow object associated with the node. Only needed for Subworkflow node.
  Returns Boolean.
  """
  assert isinstance(errors, dict), "errors must be a dict."
  if node_type in ACTION_TYPES:
    form_class = design_form_by_type(node_type, user, workflow)
  else:
    form_class = NodeForm
  form = form_class(data=node_dict)

  if form.is_valid():
    for field in form.fields:
      errors[field] = []

    return True

  else:
    for field in form.fields:
      errors[field] = form[field].errors

    return False

def _validate_nodes_json(json_nodes, errors, user, workflow):
  """
  Validates every node and link in the workflow.
  node_type is the node type of the action information passed.
  node_dict is a dictionary describing the node.
  errors is a dictionary that will be populated with any found errors.
  user is a User object that is associated with the node_type. Only needed for Subworkflow node.
  workflow is the Workflow object associated with the node. Only needed for Subworkflow node.
  Returns Boolean.
  """
  assert isinstance(errors, dict), "errors must be a dict."
  result = True

  for node in json_nodes:
    _errors = {}
    node_dict = format_dict_field_values(node)
    if node['node_type'] in ACTION_TYPES:
      node_result = _validate_node_json(node['node_type'], node_dict, _errors, user, workflow)
    else:
      node_result = True
    link_result = _validate_node_links_json(node['node_type'], node_dict['child_links'], _errors)
    result = result and node_result and link_result
    if not node.has_key('name') and ( not node.has_key('node_type') or not node.has_key('id') ):
      raise StructuredException(code="INVALID_REQUEST_ERROR", message=_('Error saving workflow'), data={'errors': 'Node is missing a name.'}, error_code=400)
    errors[node.get('name', '%s-%s' % ( node.get('node_type'), node.get('id')))] = _errors

  return result

def _update_workflow_nodes_json(workflow, json_nodes, id_map, user):
  """Ideally would get objects from form validation instead."""
  nodes = []

  for json_node in json_nodes:
    node = get_or_create_node(workflow, json_node, save=False)

    if node.node_type == 'subworkflow':
      try:
        node.sub_workflow = Workflow.objects.get(id=int(json_node['sub_workflow']))
      except Workflow.DoesNotExist:
        raise StructuredException(code="INVALID_REQUEST_ERROR", message=_('Error saving workflow'), data={'errors': 'Chosen subworkflow does not exist.'}, error_code=400)
    elif node.node_type == 'fork' and json_node['node_type'] == 'decision':
      node.save() # Need to save in case database throws error when performing delete.
      node = node.convert_to_decision()
    node.save()

    id_map[str(json_node['id'])] = node.id

    for key in json_node:
      if key not in ('node_ptr', 'child_nodes', 'workflow', 'id', 'sub_workflow'):
        setattr(node, key, format_field_value(key, json_node[key]))

    node.workflow = workflow
    node.save()

    # Keep track of nodes in order of received list
    # so that we may iterate over them again in the same order
    # when we handle links
    nodes.append(node)

  # Delete unused nodes from workflow
  old_nodes = Node.objects.filter(workflow=workflow).exclude(id__in=map(lambda x: x.id, nodes))
  for node in old_nodes:
    node.get_full_node().delete()

  return nodes

def _update_workflow_json(json_workflow):
  workflow = Workflow.objects.get(id=json_workflow['id'])

  for key in json_workflow:
    if key not in ('nodes', 'start', 'end', 'job_ptr', 'owner'):
      setattr(workflow, key, json_workflow[key])

  workflow.save()
  workflow.doc.update(name=workflow.name, description=workflow.description)

  return workflow

def _workflow(request, workflow):
  response = {'status': -1, 'data': 'None'}

  workflow_dict = model_to_dict(workflow)

  node_list = [node.get_full_node() for node in workflow.node_list]
  nodes = [model_to_dict(node) for node in node_list]

  for index in range(0, len(node_list)):
    nodes[index]['child_links'] = [model_to_dict(link) for link in node_list[index].get_all_children_links()]

  workflow_dict['nodes'] = nodes

  response['status'] = 0
  response['data'] = workflow_dict
  return HttpResponse(json.dumps(response), mimetype="application/json")

@check_job_access_permission(exception_class=(lambda x: StructuredException(code="UNAUTHORIZED_REQUEST_ERROR", message=x, data=None, error_code=401)))
@check_job_edition_permission(exception_class=(lambda x: StructuredException(code="UNAUTHORIZED_REQUEST_ERROR", message=x, data=None, error_code=401)))
def workflow_validate_node(request, workflow, node_type):
  response = {'status': -1, 'data': {}}

  node_dict = format_dict_field_values(json.loads(str(request.POST.get('node'))))

  if _validate_node_json(node_type, node_dict, response['data'], request.user, workflow):
    response['status'] = 0
  else:
    response['status'] = -1

  return HttpResponse(json.dumps(response), mimetype="application/json")

# Workflow and child links are SPECIAL.
@check_job_access_permission(exception_class=(lambda x: StructuredException(code="UNAUTHORIZED_REQUEST_ERROR", message=x, data=None, error_code=401)))
@check_job_edition_permission(exception_class=(lambda x: StructuredException(code="UNAUTHORIZED_REQUEST_ERROR", message=x, data=None, error_code=401)))
def workflow_save(request, workflow):
  if request.method != 'POST':
    raise StructuredException(code="METHOD_NOT_ALLOWED_ERROR", message=_('Must be POST request.'), error_code=405)

  json_workflow = format_dict_field_values(json.loads(str(request.POST.get('workflow'))))
  json_workflow.setdefault('schema_version', workflow.schema_version)

  form = WorkflowForm(data=json_workflow)

  if not form.is_valid():
    raise StructuredException(code="INVALID_REQUEST_ERROR", message=_('Error saving workflow'), data={'errors': form.errors}, error_code=400)

  json_nodes = json_workflow['nodes']
  id_map = {}
  errors = {}

  if not _validate_nodes_json(json_nodes, errors, request.user, workflow):
    raise StructuredException(code="INVALID_REQUEST_ERROR", message=_('Error saving workflow'), data={'errors': errors}, error_code=400)

  workflow = _update_workflow_json(json_workflow)
  nodes = _update_workflow_nodes_json(workflow, json_nodes, id_map, request.user)

  # Update links
  index = 0
  for json_node in json_nodes:
    child_links = json_node['child_links']
    Link.objects.filter(parent=nodes[index]).delete()

    for child_link in child_links:
      link = Link()
      link.id = getattr(child_link, 'id', None)
      link.name = child_link['name']

      id = str(child_link['parent'])
      link.parent = Node.objects.get(id=id_map[id])

      id = str(child_link['child'])
      link.child = Node.objects.get(id=id_map[id])

      link.comment = child_link.get('comment', '')

      link.save()

    index += 1

  # Make sure workflow HDFS permissions are correct
  Workflow.objects.check_workspace(workflow, request.fs)

  return _workflow(request, workflow=workflow)

@check_job_access_permission(exception_class=(lambda x: StructuredException(code="UNAUTHORIZED_REQUEST_ERROR", message=x, data=None, error_code=401)))
def workflow(request, workflow):
  if request.method != 'GET':
    raise StructuredException(code="METHOD_NOT_ALLOWED_ERROR", message=_('Must be GET request.'), error_code=405)

  return _workflow(request, workflow)

@check_job_access_permission(exception_class=(lambda x: StructuredException(code="UNAUTHORIZED_REQUEST_ERROR", message=x, data=None, error_code=401)))
def workflow_actions(request, workflow):
  if request.method != 'GET':
    raise StructuredException(code="METHOD_NOT_ALLOWED_ERROR", message=_('Must be GET request.'), error_code=405)

  action_list = [action.get_full_node() for action in workflow.actions]
  response = {
    'status': 0,
    'data': {
      'actions': [model_to_dict(action) for action in action_list]
    }
  }
  return HttpResponse(json.dumps(response), mimetype="application/json")

def workflows(request):
  if request.method not in ['GET']:
    raise StructuredException(code="METHOD_NOT_ALLOWED_ERROR", message=_('Must be GET request.'), error_code=405)

  workflows = request.GET.get('managed', 'false').lower() == 'true' and Workflow.objects.managed() or Workflow.objects.unmanaged()
  workflows_accessible = filter(lambda x: Job.objects.can_read(request.user, x.id), workflows)
  response = {
    'status': 0,
    'data': {
      'workflows': [model_to_dict(workflow) for workflow in workflows_accessible]
    }
  }
  return HttpResponse(json.dumps(response), mimetype="application/json")

def autocomplete_properties(request):
  return HttpResponse(_STD_PROPERTIES_JSON, mimetype="application/json")


You love waffles but how do you eat them and still burn fat?
Santa Clarita personal trainer Johnny Bocobo shares a delicious low-carb protein waffle recipe.
Santa Clarita mom starts her weight loss journey and loses 53 pounds at Fit Body Boot Camp.
50 Pounds Gone and Sciatica FREE!
Santa Clarita mom gets tired of her weight loss excuses and loses 50 pounds and 8 sizes in boot camp.
This Santa Clarita mom and accountant is on a weight loss mission, and nothing is going to stop her. But to know Alyson's story you gotta know where she started.
Santa Clarita mom goes to boot camp to lose her baby weight and slide back into a bikini.
She Lost 30 Pounds Twice?!
How boot camp helped a Santa Clarita mom and teacher lose 30 pounds twice.
Santa Clarita Fit Body Boot Camp clients' weight loss and toning story.
A simple boot camp technique to break your plateau from Santa Clarita Fit Body.
How This Single-Mom Lost 30 Pounds!
Single-mom's story how her boot camp in Santa Clarita helped her weight loss.
YAY! You Got A Spot For Fit For the Feast!


Anti-Vaxxers Use Holocaust-Era Symbol To Promote Their AgendaA new report from the Anti-Defamation League (ADL) says anti-vaccination activists are using the yellow Star of David that Nazis forced Jews to wear during World War II to promote their cause.
Social Media Battling Outbreak Of Vaxx, Anti-Vaxx MisinformationLike health officials facing measles outbreaks, internet companies are trying to contain vaccine-related misinformation.
North Texas Blind, Autistic Child Has Memorable Moments With Santa: 'It Was Amazing To Watch'When the child's mother told Santa about him, Santa got down on the floor to let Matthew Foster "see" him in his own way, having him feel his coat and beard.
Plano Police Look To Make Traffic Stops For Autistic Adults EasierMaking adults with autism safer during a traffic stop was the goal of a Plano Police Department training session Saturday morning.
Michigan Says Autism & Arthritis Now Treatable By Medical MarijuanaMichigan has added several medical conditions to the state's list of ailments which qualify for a medical marijuana prescription. The list now includes arthritis, autism, chronic pain and more.
Body Of Missing Boy With Autism Found In Kaufman CountyAn 11-hour search for a missing 6-year-old boy with autism ended early Monday morning when a dive team pulled his body out of a pond near the family's home in Kaufman County.
Autistic Teen Delivers Inspiring Graduation Speech In PlanoA Plano teenager's six-minute graduation speech has reached hundreds of thousands of people and has made a huge impact on the community.
Cops Save Autistic Teen's Birthday When Only 3 People Show UpFirst responders in Arkansas made a different kind rescue recently as they saved an autistic teen's birthday party after his friends didn't show up.
CDC: Autism May Be More Common Than Previously ThoughtAbout 1 in 59 children in the United States live with autism spectrum disorder, according to a report published today by the Centers for Disease Control.
Boy With Autism Builds World's Largest LEGO Titanic ReplicaThe world's largest LEGO replica of the doomed Titanic liner was built in 700 hours over 11 months -- by a 10-year-old boy from Reykjavik who is on the autism spectrum.


Luxury Assisted Living Jobs - Resident Caregivers & CNAs.
Physician: Family Medicine Physician Position in Texas City with 100K Population | Job-2349387.
Physician: Internal Medicine Job in Midwestern Texas City | Job-2349385.
…The practice is a solo opportunity, but call will be 1:5. The facility requires that you be board certified or board eligible. A TX license will be required.


text:
Q: Access session on view page in ASP.Net MVC Is there any way to access session on view page by creating common method in controller also want to access session in controller by common method in ASP.Net MVC.

A: are you using razor view engine?
View:
@{ var sessionVar = Session["key"]; //it's object }

Controller:
public ActionResult Method() {
 var sessionVar = this.Session["..."]; //
}

the common way to call this object is: HttpContext.Current.Session
I don't know what you meant by 'common'. the provided session object is common for user session no matter where you will call for it.
But in fact you shouldn't try to use session it's ugly - try to do some search about ViewBag / ViewData and then try to search why you shouldn't use them as well. :)

A: Am new to MVC but I think I know what you're trying to do. You don't need to create a 'common' method to achieve that. @trn Solution should work but it might throw Null reference exceptions if accessed in "View" without using "HttpContext.Current.Session" object for two possible reasons:

*

*Session["key"] is null.

*incorrect reference to Session["key"] in View and/or Controller.

Using "HttpContext.Current.Session" object is great way to achieve what you're looking for and make sure the Session["key"] is not null. For example:
View:
 @{
    var sessionVar = Session["key"]; // might throw a NullReferenceException
  }

Alternative for View:
 @{
     var sessionVar = HttpContext.Currrent.Session["key"]; // assuming correct reference to Session["key"]
  }

Controller:
Public ActionResult someMethod()
{

  var sessionVar = System.Web.HttpContext.Current.Session["key"];
}

redpajama_set_name: RedPajamaStackExchange


1 For 1970, excludes blast furnace ferroalloys.
Source: American Iron and Steel Institute, Washington, DC, Annual Statistical Report (copyright). 1999 released July 2000.
Steelmaking furnace where scrap is generally 100% of the charge. Heat is supplied from electricity that arcs from the graphite electrodes to the metal bath. Furnaces may be either an alternating current (AC) or direct current (DC). DC units consume less energy and fewer electrodes, but they are more expensive.
The term for grades of steel that contain more than 10% chromium, with or without other alloying elements. Stainless steel resists corrosion, maintains its strength at high temperatures, and is easily maintained. For these reasons, it is used widely in items such as automotive and food processing products, as well as medical and health equipment.
The name for the melted iron produced in a blast furnace, containing a large quantity of carbon (above 1.5%). Named long ago when molten iron was poured through a trench in the ground to flow into shallow earthen holes, the arrangement looked like newborn pigs suckling. The central channel became known as the "sow," and the molds were "pigs."
A metal product commonly used as a raw material feed in steelmaking, usually containing iron and other metals, to aid various stages of the steelmaking process such as deoxidation, desulfurization, and adding strength. Examples: ferrochrome, ferromanganese, and ferrosilicon.


text:
Fifty Years of "Fist City"
A look back at Loretta Lynn's enduring lyrical legacy
by CJ Lotz
Loretta Lynn knows how to pen one heck of a "love" song. "Fist City," written in 1967 and released in February 1968, was a bold challenge to the woman making "brags around town that you've been a-lovin' my man." Stay far away from my guy and me, Lynn warned, "if you don't wanna eat a meal that's called fist city." Among Lynn's biggest hits, the song climbed to number one on Billboard's country singles chart and has influenced a whole new generation of female singer-songwriters.
"'Fist City' was about not allowing your man to run around on you—and if he did, there would be consequences," says country rocker Margo Price, who notes the song inspired her tune, "About to Find Out." "My favorite line is, 'But the man I love, when he picks up trash, he puts it in a garbage can.'"
Brandy Clark, whose 2016 album Big Day In A Small Town was nominated for the Best Country Album Grammy alongside Lynn's latest, Full Circle, agrees: "I mean what woman wronged wouldn't wanna call the other woman trash?" Clark says. "Loretta did this way before it was even a mile away from being politically correct. She tells it like it is."
In the 1960s, Loretta and her husband, Oliver "Doolittle" Lynn, purchased a house and farm in a community called Hurricane Mills in western Tennessee. Loretta spent weeks at a time on the road, performing and recording. On a trip home, she learned that a woman had moved nearby to be with Doolittle.
The music historian Marc Myers shared the backstory to the song in an interview with Lynn for his regular Wall Street Journal column. Myers' research and writings were collected in Anatomy of a Song: The Oral History of 45 Iconic Hits That Changed Rock, R&B and Pop, a fascinating book that should be on all American music fans' shelves.
Loretta told Myers more about what happened after she discovered details of her husband's tomcatting: "The last straw was hearing rumors about [Doolittle and the other woman] while I was in Nashville recording for Decca," Loretta said. "Driving home to Hurricane Mills that afternoon in my Cadillac, I was real mad and wrote 'Fist City' in my head during the seventy-five-mile trip. All I could think about was what she was doing to my family and what I wanted to say to her."
When she stormed through the front door, Loretta walked straight to her home office, sat down, and wrote out the lyrics. "Then I let the words sit overnight, so I could look at them fresh," she said. "The next day, I changed a few things so they'd be able to play the record on the radio."
When Decca released the record, radio stations at first refused to play it. "Apparently, a woman singing about fighting another woman was too much for 'em," Loretta recalled to Myers.
That devil-may-care attitude still inspires artists. "Her songs may have gotten banned from the radio a few times, but her words resonated with women everywhere and she was well aware that women were indeed listening," says Nashville-based songstress Lindi Ortega. "There's no denying that she is as much talented as she is a badass."
And what did Doolittle think? "We never did talk about the song and the meaning of all the words, but I sensed he knew exactly what it was about," Lynn told Myers, adding that her music had the final word. "My old man was sleeping out on me, and he wound up making me a lot of songwriting and recording money doing it."
As for the next generation of empowered songstresses? Perhaps the Texas-born country vocalist and guitarist Sunny Sweeney lays it out best: "Loretta Lynn is the main reason I wanted to write songs," she says. "I wanted to branch off of a deeply rooted Loretta tree, and say for our generation the things she said for hers. Her music, even if written today, would still be ahead of its time."
Catching Up With Loretta Lynn
With a new album and more than five decades in music, the four-time Grammy winner looks back at her pioneering journey
The New Outlaws: Young Guns
A dozen rising acts shaking up the country scene
Amanda Shires: Family Harmony
Amanda Shires returns with a new album steeped in the rhythms of home

redpajama_set_name: RedPajamaCommonCrawl


To make up for yesterday's explosion of blog-bloat wordiness, I'm keeping this post SHORT.
But can I tell you a story, first?
I was heading to the grocery store and about halfway there I was thinking, "Wow, am I thirsty! I should have chugged some water before I left home!"
I only had one store to go to, and it wasn't a long list. I knew I wouldn't expire if I waited to get something to drink.
Whatever happened to water fountains, anyway? Seems like when I was a kid, they were everywhere. There might have been one at the grocery store I shopped at, but I didn't want to hunt it down. I was on a mission. Get through the list and get home.
And when I got home, there was a package from Not So Simple Syrup. Hmmmm. The name sounded familiar. Vaguely.
I opened it, and there were two bottles. One of strawberry simple syrup, and one mint simple syrup. Well, then. I was still thirsty. And mint sounded awfully refreshing.
Add ingredients to soda maker. Charge with CO2. Shake it like you're a crazy mixologist. Release pressure. Pour. Chug-glug. Glug-glug-glug.
There ya go. Super-quick soda.
I haven't tried the strawberry yet, but the mint had a fresh-mint flavor, but without the green-chlorophyll flavor you can get from crushing fresh peppermint leaves. Nice. I'm betting the strawberry will be just as fresh. It won't be long before I find that out.
I'm thinking the strawberry might make it into a cocktail this evening. Meanwhile, I need to hunt down these Not-So-Simple people and say "thanks." 'Cause I was really thirsty. I might have expired.
Disclaimer: Not So Simple Syrup sent me stuff. Probably because I'm so awesome. I was not required to write a post.
Stuffing something inside of something else seems awfully trendy these days. Pie inside a cake, or a cookie inside another cookie, or a chicken inside a duck inside a turkey.
People are mashing up foods right and left, like the croissant donut or the brownie tart. It's great if it works.
But the pizza burger isn't a new thing. Not at all.
When I was a teen, I'd go to a local mall with a girlfriend to do back-to-school shopping. Or any shopping, really. And in the corner of the mall - and let's be clear here - it was so long ago that it wasn't really a mall. It was a shopping plaza.
In the corner of the mall, there was a restaurant. And whenever we went to the mall, we treated ourselves by going to the restaurant. And for all the times over all the years that we went to that restaurant, I don't think I ever ordered anything except the pizza burger.
Basically, it was a burger topped with a pizza-like sauce with melted white cheese on top. It really wasn't a stellar sandwich. Barely even good. But it was the first fusion food I'd ever eaten. A burger that's like a pizza! Woah.
With this burger, I went one step further ... the burger itself is a common pizza ingredient - Italian sausage. Yup, it's a sausage burger filled with ingredients you'd find on a pizza - cheese, of course, and I chose provolone - and then mushrooms, onions, and green pepper. To give it a good punch of tomato flavor without being super-wet and sloppy, I used tomato paste.
It's a little messy, but it's really good.
This post originally included information about how to season a cast iron pan, but it made this post waaaay too long. I moved that information here.
Heat the olive oil in a large skillet. Add the onion, green pepper, mushrooms, and pizza seasoning. Cook, stirring as needed, until the vegetables soften and lose their moisture, then continue cooking until the moisture is mostly gone and you have an almost-dry pan.
Add the tomato paste and stir to combine. Cook for another minute or two, then taste. Add more seasoning or salt, as desired.
Set aside until you need it. You can make this ahead of time, if you like, and refrigerate it until you need it. But if you fill your burger with a cold filling, it's going to take longer for the burger to cook all the way through and for that cheese to melt. Not a big problem, but keep in in mind, Or, heat the filling just a little before you stuff.
With the vegetables I used, this made about a quart of filling - your amount could be different, depending on how big your vegetables are.
This was waaaaaaaay more filling than I needed for the burgers I made, but it's a perfect topping for personal pizzas and English Muffin pizzas. You could also use it as a topping for regular burgers. Or just make a LOT more Italian sausage burgers.
Divide the two pounds of sausage meat into four half-pound(ish) portions. you don't need to be exact, but try to get them to look about the same size. We'll be making half-pound burgers. Yes, they're big.
Take about 1/3 of one of those portions and form it into a flat patty using a burger press (you can also do this all by hand. Set that aside. That will be the top of the burger. Take the other 2/3rds of the portion and put that in the burger press. You want a little more meat here, because you're making the bottom of the burger, and the sides of the burger.
Flatten it like you did with the first piece, then use the other side of the pusher to create a well in the meat.
Fill with the well with the tomato-vegetable mixture. Hey, there should be a photo here of the filling on the middle of the meat. But I forgot to take a picture. Or maybe the camera ate it.
Imagine this filling right in the center of that meat inside the burger stuffer tool, filling it to just about the top of the well. You don't want to overfill, but you can be generous.
Here's the filling. But see how DARK my grill pan is?
Then top with slices of provolone cheese. I considered grating the cheese or making little cubes of it and mixing it into the filling, but I finally decided to make slices.
Try to keep the fillings away from the sides of the meat - you want to get a decent seal all the way around.
Put the top patty on top of the filling, then press the edges down around the outside to start to seal that edge. Remove the patty from the press and make sure the edge is completely sealed. You still might end up with a blowout or maybe a few little dribbles of cheese, but you don't want this separating into two patties. The goal is to have the filling enclosed completely. Mostly.
Heat your grill pan (or you can do this outdoors on a grill) on medium heat and brush it with a little bit of oil. When it's hot, add the burger. If you're not using a cast iron grill pan, you might need to turn up the heat a bit higher. You'll get a great sear on medium with a cast iron pan, whereas you might need to crank up to high for a stainless pan.
Burger in a grill pan. How much better can it be?
Cook on medium to sear both sides of the burger, then turn to low and continue cooking, flipping the burger as needed, until the burger is cooked all the way through. Since Italian sausage is made from pork, you want it cooked well, and you want the filling hot and the cheese melted. It's a little hard to tell by looking or touching. Even if you cut it open, it's a little difficult, because that red tomato sauce can fool you into thinking the meat is still red-raw.
Your best bet is to measure the temperature with a thermometer to make sure you're not serving undercooked pork sausage.
Look at it sizzling in that hot pan!
You might get a little seepage of cheese or tomato sauce through the burger - don't worry about that. When the burger is done, put it on a bun. Let it rest a minute or two before serving - that cheese and filling will be screaming hot.
Or, slice it to serve so no one accidentally bites into molten cheese.
*I don't usually use a lot of spice blends, but I got the Penzey's Pizza Seasoning as a free sample and I have to say that I really like the "tastes like pizza" flavor it imparts. If you don't have it, you can use any Italian blend you have.
The major flavor components in the seasoning are fennel, oregano, basil, garlic and a few types of pepper. And salt. So, if you want something similar, use 1 teaspoon dry oregano, 1 teaspoon dry basil, 1/2 teaspoon ground fennel, 1/4 teaspoon garlic powder, a few grinds of black pepper, and a pinch of cayenne or crushed red pepper flakes. You'll need a little more salt than if you didn't use a seasoning mix.
** If you can't find bulk (unstuffed) Italian sausage, you can buy regular sausage and remove it from its casing.
Making naturally-fermented pickles or sauerkraut is something of a gamble. You put food and salt and maybe some spices or water into a jar, and you wait for it to go bad.
And then you hope that it goes bad in a good way. Just like when you're growing a sourdough starter or making yogurt or creme fraiche, you want the good bacteria to ward off the bad.
My mother made fermented pickles in an old pottery cookie jar. More than half the time, the pickles went bad. And once they started to go off, there was no saving them. The pickles would get soft and slimy, and they'd start to smell bad. And then she'd toss them and try another batch.
Kraut Kaps ($9.99) are designed to help prevent the bad bacteria from working their evilness on the pickles, while letting the good bacteria proliferate. It's a simple idea, really - an airlock on the top of a cap that fits a wide-mouth canning jar.
So ... does it work? I made two batches of fermented pickles, and both were successful. Now, I have a batch of sauerkraut in process. It's bubbling like it's supposed to after a couple weeks, and I'm not seeing any sign of terrible things happening.
Whether these products would have worked without the airlock is the question. I've successfully made pickles and sauerkraut without a gadget, but it requires a lot of attention, scraping off the scum on the top, adding water as it evaporated, and constantly looking for mold or whatever. this was a lot easier.
I still checked the pickles on occasion, and there was a little evaporation, but I didn't need to check every day. And that made the process a lot easier.
And for those with sensitive noses, not much aroma escapes the jars.
Even with these caps, you can still introduce bacteria into the process with a jar that isn't quite clean enough, or pickles that aren't washed well, or utensils or other ingredients that could introduce bugs. But the caps do keep nasties from coming in from the outside. So your chances are better.
The caps were recently redesigned with silicone replacing parts that were previously made from rubber, so these new ones should last a bit longer.
The lids are a bit pricey, but if you do a lot of pickling, they could save you from having to throw out batches of pickles that have gone bad. Also, since the lids fit wide-mouth canning jars, you're limited to the batch sizes you can make - I used half-gallon jars. I'm not sure if larger ones are available.
If you've never made old fashioned fermented pickles, you can find recipes at the manufacturer's website: http://primalkitchenproducts.blogspot.com. They're also setting up a new site at http://www.primalkitchencompany.com, so check there for updated information.
When I left my mother's ... uh ... clutches (say something nice ...) um, sphere of influence at the tender age of 18, I already had some pretty good cooking chops. I could single-handedly orchestrate an entire Thanksgiving dinner without using any recipes. I could make spaghetti sauce and home made pasta. I could make salad dressing and jelly and cookies.
But some things were ... confusing.
The first time I cooked corn on the cob, I had no idea how long it should cook. Ten minutes? An hour? There it was, bobbing in the water, and I had no idea how long it should take.
And then there was sauerkraut.
My mother made sauerkraut all the time. And when I say "made," I mean she bought a big jar of kraut and later it appeared on the dinner table. I had no idea what transpired in between the purchase of the product and the fork-into-mouth experience.
Which is odd, because we - mom, dad, and I - lived in a tiny one-bedroom apartment. Three people, one bedroom. Yeah, that was fun. I still have creases in my spine from sleeping on the couch for too many years.
But anyway, when I was home, I was never too far from the kitchen. I learned to make mom's spaghetti sauce just from being there. But corn? Nope. Sauerkraut? Nope.
The first time I attempted to make sauerkraut, I opened the can and heated up the contents. I mean, that's what happened with pretty much every canned product that made its way through mom's kitchen. Open the canned corn, heat, and serve.
So I heated the sauerkraut straight from the can and ... oh, my. That's not what mom served.
I could have called her and asked for her recipe, but at that point our war relationship was at the point where I probably wouldn't have trusted her instructions, if she didn't feign forgetfulness. Those were the days when she'd tell me she forgot how she made something, even if she made it for dinner the night before.
So, I had to experiment. And I tried to remember what she did. I knew what the sauerkraut looked like. It was more of a brownish color rather than the stark white that came from a can. And I knew what it tasted like. I just had to recreate it.
I think I've nailed her results, but I can't guarantee this is how she got there. But that's okay, too.
Instead of hiding my recipe in the dark corners of my cobwebby mind and pretending that I've forgotten the details, I'm publishing it. Online. Where anyone can see it. Gee, that's weird, huh?
It takes a little taste-testing to make this recipe. You get to decide how salty, sweet, or tart you like your kraut. And, to be honest, I like it different ways for different uses. And, the sauerkraut you start with makes a difference. Different brands taste different.
I started with a home-fermented kraut - yes, I started with cabbage and fermented my own, then canned it - but it's perfectly fine to start with a jarred or canned version. For most uses, I prefer sauerkraut without caraway seeds, but that's a personal choice. Buy it with caraway, if you like, or add it to the finished kraut.
The sauerkraut I made is fairly mild, just a little tart, but also with some sweetness. You can eat this as a side dish - it's great next to a pork chop or some smoked Polish sausage. It's probably a little too mild for use as a topping on a sausage sandwich, though - you want something with a little more kick for that.
I know that sometimes mom's kraut included meat. Sometimes bacon or fatty bits trimmed from a pork roast or whatever piggy-fatty leftovers she might have had lying around. But more often than not, there was no meat. I think she might have used Crisco once in a while, since that was always around. I opted for butter.
If you're opposed to butter, you're avoiding dairy, you want to make this a vegan dish, or you just think butter is weird in this recipe, you can use a neutral vegetable oil or even a mild-flavored olive oil instead.
Or bacon fat, if you happen to have that on hand. You can also add chopped-up bits of bacon or pork to the kraut, but I was never fond of that texture in sauerkraut. To me, it's a vegetable dish, and I'm perfectly fine leaving it that way.
This made just about one quart of sauerkraut, which seems impossible since you're starting with a quart of jarred sauerkraut and then adding a whole head of cabbage. But that jarred kraut is swimming in a lot of liquid, and the fresh cabbage that's added cooks down a lot. By the time I was done, this fit into a quart container, snugly packed.
Melt the butter in a large skillet or heavy bottomed pan on medium heat. Add the cabbage and onion and cook, stirring often, until the vegetables wilt a bit. Add the sauerkraut and mushrooms and continue cooking, stirring as needed.
First, the color will change so the cabbage and kraut will be indistinguishable from each other. Then, after a while, the vegetables will begin to turn a little brown. This is what you're looking for. Not browned bit - so you need to keep watching and stirring. This takes quite a bit of time, but I think the results are worth it.
As you're cooking, the water will disappear from the pan. That's good, too. You don't want kraut swimming in water. But if it gets too dry and you start getting some crisping/browning action, you can add a bit more water. You're looking for moist, but not swimming in water.
As the color begins to change to a tan color, it's time to taste. Add salt, if needed. It seems crazy since sauerkraut is pretty salty, but draining and rinsing removes a lot of that salt, and there's also a whole head of cabbage in there, as well.
Add a bit of sugar. A teaspoon if you're timid, or a tablespoon if you know you'd like it a little more sweet. I think my mom used brown sugar, but I used a cane sugar that I use for pretty much everything. I put in about tablespoon. The sugar also helps the vegetables brown a little more, so it speeds up the cooking a bit.
Last, decide how tart you want this kraut to be. The kraut you started with was probably fairly tart, but since there's all that extra cabbage, it probably has mellowed quite a bit. And remember, this is supposed to be a version of sauerkraut, not a fried cabbage. Add as much vinegar as you like. You could also add a smidge of balsamic vinegar as well, to get the more rounded tones. But cider vinegar alone is just fine, too.
Keep cooking a little longer, until the sauerkraut is sort of a tan color - not as dark as a cardboard box. Maybe more like a paper bag brown. Not white or green, though. Give it one last taste and adjust the sugar/salt/tart to your liking.
And there you go. Mom's kraut, re-engineered from vague memories and remembered flavors.
*For the mushrooms, you can use what you like; I use a product that I buy from a local mushroom farm. Shitake might not be the best choice - if I don't have the local stuff, I use wild dry mushrooms I buy from an ethnic market, but try to choose something that's a European type of mushroom.
You can chop or grind the mushrooms while they're dry, or you can rehydrate them and then chop them into tiny bits (which you might want to do if you know they're sandy, dirty, or gritty). Or you can use fresh mushrooms, but you'll need more to get the same flavor. I'd estimate about 1/4 pound, chopped fine and added at the beginning of the cooking.
I love a challenge, so when I found out that Lucky Leaf was holding a contest for recipes using their products, I jumped right in.
If you're not familiar with the company, Lucky Leaf makes all kinds of canned fruit products, including pie fillings and some unusual canned fruits that you don't normally see - like canned tart cherries, apricot pie filling, and pineapple pie filling.
My first cake was a disaster. I think I know where it went wrong, and it had nothing to do with the lovely tart cherries I bought. The cake part of the recipe was out of whack.
So ... I moved on to blueberry pie filling. And I completely re-did the cake part of the recipe. And then I decided I needed something more than blueberries sitting on top of a cake. That would be just weird, right, just a layer of berries?
So I cobbled together a cheesecake-like topping and put a thin layer of that on top. It's really thin. I've seen frosting slathered on thicker. But that's what I was after. Thin layer of cake, layer of blueberry pie filling, and then a cheesecake-like topping.
I considered dolloping on the cheesecake stuff and the blueberry pie filling randomly, then doing swirls, but I decided to go with layers. Maybe next time it will be dollops and swirls. We'll see.
So, back to the contest. I was going to enter it, but with the first cake disaster and the need to buy more stuff, and the late-night baking, and the need to cool this completely before I cut it ... well, I missed the contest deadline completely.
But so what? It's good cake.
Sometimes my best recipes happen when other people ask me to make things. Or when I enter a contest. That's when I pull out all the creativity stops and I make things that I probably wouldn't make if it was just dinner.
Not only do I get more creative when I'm working on a contest entry, some of my most popular posts here weren't things I would have written about if someone else hadn't nudged me write them. We'll see how this one fares.
Preheat the oven to 350 degrees and spray a 9x13 pan with baking spray.
Combine all the cake ingredients in a large bowl. Yes, all at once. Beat until well combined. You don't need to beat the heck out of it, but just until it's combined and not lumpy-bumpy.
Pour the cake mixture into the pan and bake at 350 degrees until the cake bounces back when lightly pressed on top - about 25 minutes. It doesn't need to be browned on top, but it should be cooked through. A toothpick inserted in the center might be a little moist, but it shouldn't be batter-wet.
While the cake is baking, make the cheese topping. Beat the cream cheese until it is smooth, then add the sugar and beat well. Add the egg, creme fraiche (or sour cream) and lemon juice and beat until well combined and smooth. Set aside until the cake is ready.
When the cake is ready, remove it from the oven. Add the blueberry pie filling and even it out as much as possible. Dollop on the cheese topping and smooth the top.
Return the cake to the oven and bake at 350 degrees until the cheese mixture is just set. It can be a little jiggly, but it shouldn't be loose and sloshy.
Let the cake, in its pan, cool on a rack until room temperature, then refrigerate.
Serve cool, or at room temperature.
I love avocados. And I post about them a lot. As of right now, there are 61 posts on this blog that mention avocados, and 31 posts that mention guacamole.
Yes, I do love guacamole. Plain, fancy, spicy, fruity, limey. Traditional or non-traditional.
But there's a limit to how much I want to eat. I mean I could eat a whole avocado's worth of guacamole all by myself. And maybe that has even happened. Maybe. But most of the time, guacamole is an appetizer, or it's intended as a garnish on tacos.
And that means there's a good chance there will be leftover guacamole. Which never survives well.
I've tried putting plastic wrap directly on the surface of the guacamole, and that helps. But it's not a perfect solution. The guac still gets brown.
In part, it depends on the avocados. I've had some that I swear begin to turn dark while I'm working on them. Make the guacamole more than two seconds before the chips begin dive-bombing, and it's already getting ugly. Other avocados stay green much longer, even with no magic spells or protective charms.
The amount of lime you add to the guacamole also makes a difference. More lime = longer storage. Although I like lime, I want my guacamole to taste more like avocado than lime.
So, when I read a tip on The Kitchn about putting a layer of water on top of the guacamole prior to storage, I had to give it a try. And, the fact that they used a container that's exactly like one I have might have caught my eye, too.
I tried it. Water on top of the guacamole, seal the container, and stick it in the fridge.
After 24 hours, it was still a vibrant green. So far, so good. I let it rest a little longer. After two days, the water had started turning dark, and there was a very small layer of brown on top of the guacamole. It was a much thinner layer than I would have seen if I had stored it normally, but it was still headed to a bad place.
Then, inspiration struck. I poured out the water, scraped off that tiny layer of brown, and added some clean water. THEN I added a splash of lime juice. I didn't measure, but it was just a splash compared to the amount of water.
Back into the fridge it went. 24 hours passed. No change. Another 24 hours. Still good. Three days, and it looked just like it did on the first day. Well, okay, some of the bits of avocado had loosened themselves from the guacamole and were floating in the water, but the guacamole was still green. The water wasn't brown. SUCCESS!
And keep in mind, this was guacamole that had been in the fridge for two days with just the water. It was now five days old and still perfectly edible. Absolutely no signs of going brown.
Woah. It's like a kitchen miracle!
After six days in the refrigerator, that same guacamole is just now starting to show the tiniest bit of brown. And, really, that's eight days, since the first two were with just water and no lime juice. I'm really impressed at how well this works. It's pretty doubtful I'll ever need to store guacamole for six days, but it's nice to know I can make a larger batch (like, two avocados instead of one) and it won't be wasted.
If you're going to do this for a large quantity of guacamole, I'd suggest using a container that's tall rather than wide so you limit the amount of water/guac interaction. Over time, you're probably going to get some water infused into the guacamole. Not a lot, but you might as well limit it by using a tall container. A wide-mouth canning jar, perhaps?
Smooth the top of the guacamole before you add the water, and try to get rid of air bubbles below the surface.
When you add the water, pour it in slowly. You can pour down the side of the container or pour onto a spoon and let it dribble off of that. There's no sense in making a crater in the guacamole by pouring water in too fast and getting the guac mixed with water.
Don't forget to add your splash of lime juice. Since you're going to be pouring off the water, anyway, you could also use lemon juice or fruit fresh - whatever you have on hand.
And then just cover the container and refrigerate.
Easy, right? And no more brown guacamole!
I get a kick out of it when people ask me questions about baking. Just the other day, I got an email from Indonesia from someone who had a question about sweet potato donuts. I answered as best I could, given that the original recipe wasn't mine and I'm not familiar with Indonesian sweet potatoes.
So when m friend Carla called and asked if I could take a look at a pumpkin bread recipe and make it work, I said sure.
The biggest problem with the recipe was that the instructions mentioned sugar, but there was no sugar in the ingredient list. How much sugar?
I gave the recipe a try with added sugar and a few other adjustments, and I wasn't happy with the results. The spices seemed off. Too much clove, for one thing. The cake had a harsh flavor. Maybe the recipe was written for people whose spices are five years old.
By the time I was done tweaking and changing, the recipe wasn't quite the same recipe any more. I even changed the mixing instructions.
I think this was a pretty big success.
Preheat the oven to 350 degrees and spray two 8 x 4 1/2 inch loaf pans with baking spray - I use the spray that includes flour - or grease and flour the pans the old fashioned way, if your prefer.
Combine the pumpkin, eggs, sugar, vegetable oil, water, and vanilla in a large bowl, or the bowl of your stand mixer fitted with the paddle attachment. A stand mixer isn't required, this is just as easy with an electric mixer or by hand. Mix until blended. If you're using your stand mixer, mix slowly or you'll spew liquid all over.
Combine the flour, baking soda, baking powder, salt, cloves, nutmeg, allspice and cinnamon in a medium bowl. Stir or whisk gently to combine.
Add the dry ingredients to the wet and mix until well combined - but you don't need to beat it. Just blend. If you're using a stand mixer, it might be easiest to add the flour in several additions, so you don't spew flour when you turn on the mixer.
Divide the batter between the two pans and bake at 350 degrees until the breads are richly browned and a toothpick inserted in the center comes out clean - about 1 hour, 15 minutes.
Remove the loaves from their pans and cool completely on a rack before slicing.
If you like fizzy sodas but you don't like (or can't have) the ingredients in the commercial products, there's a new way to make your own fizzy drinks at home. And I tested it for you. The PureFizz Soda Maker ($79.99) is a streamlined product that's little more than a bottle that can withstand the pressure of adding carbonation to liquid, plus a way to inject the carbonation.
But really, that's all you need.
Similar to a soda siphon, but without the jetstream pressurized release of the liquid, you use small CO2 cartridges to add carbonation to the liquid of your choice. Then, unlike a soda siphon, you release the excess pressure, open the cap, and pour.
Woah, that's easy. And fizzy.
A second cap, without the carbonation-injection mechanism, is used to cap the bottle if you're not serving it all at once. The only other piece is a funnel that doubles as a measuring tool to make sure you don't overfill the bottle - some empty space is required for proper carbonation.
I'm not a huge fan of commercial soda (or pop, depending on where you live) because they're usually too sweet for me. But I do enjoy the occasional fizzy drink, so it's nice to be able to make one - in any flavor - whenever I want it. Fizzy iced tea is interesting, and fizzy lemonade is pretty refreshing. For fans of commercial sodas, you can buy syrups and make whatever flavors you like.
Like any bottled carbonated beverage, the fizz starts leaving the bottle after it's opened, so you won't be able to store leftovers for a long time, but you can't do that with commercial soda, either.
You can, however, use this to carbonate anything you can drink - water, wine, juice - just about anything you can think of. You can also add pieces of fruit to the carbonated liquid to add flavor to the liquid and make the fruit pieces a little fizzy. Or, if you want to go all molecular-gastronomy, you can use this to carbonate the fruit.
And, even though the instructions don't mention it, you can also use this to infuse flavors into vodka. I've done it with a regular soda siphon, but this is less messy - no risk of spewing vodka onto the kitchen ceiling.
What I really liked about this soda maker is that it's a portable, self-contained device that doesn't take a whole lot of space, either in use, or in storage. And I got a good amount of carbonation in everything I've tried so far.
The unit is a little spendy upfront, but all the carbonation systems are. If you make a lot of soda, you can buy the CO2 cartridges online in bulk for good prices, and since they're made from steel, they're completely recyclable.
My friend Carla from Good Cook called me up one day and said, "I'm going to send you a microwave bowl. Can you bake bread in the microwave with it?"
And I said, well, I don't know, but it's not going to get brown. But lemme see what I can think of.
I considered making a microwave cake, like a mug cake, but bigger.
But then someone on Facebook was talking about cornbread, and I saw someone on Food Network serve a piece of microwave cornbread, and I figured, yeah, that would be good for dinner.
There must be a bazillion recipes for cornbread, right? I decided I didn't want something too sweet. I considered adding cheese or jalapenos. I hoped this would fit in the bowl.
Most of the time, it takes a couple tries before I get something exactly right, but I have to say I really liked this just the way it was. It's really buttery, so I hope you like butter. And it's fluffy and light rather than dense.
Needless to say, I used the bowl I got from Good Cook, but a similar-sized bowl or baking dish should be just fine.
The cool thing about this bowl is that it's got its own holder that stays cool, and it's got a lid, as well. It would be really handy for reheating soups or sauces.
You might as well make this all in one bowl. Melt the butter in the bowl in the microwave. Don't get it too freakishly hot, because you don't want to cook the egg when you add it. Just get it melted.
Add the buttermilk and egg and stir until it's combined.
Add the cornmeal, flour, baking powder, salt, and sugar. Start by stirring the dry stuff to get the baking powder distributed in the flour a bit, then stir it all together.
Put it in the microwave and cook for 3 minutes on high (depending on the power of your microwave). Stick a toothpick in it, and if it comes out clean, it's done. If it's got wet goo in it, put it back in the microwave and cook for another 15-30 seconds at a time, until it's done. Keep track of how long it cooked, so you know what to do next time.
And that's it. Serve it straight from the bowl. It's really fluffy and a little crumbly when it's warm, but it's pretty darned good. You won't get any browning, but you don't miss it as much as you would on a yeast bread.
Do you remember the rambutans and lychees I received from Frieda's Specialty Produce a while ago? I ate some of the them fresh, then tried to think of what else to do with them. My usual answer is baking, but I read that the flavor deteriorates with heat.
So I figured I'd do an infused liqueur. I hadn't made one for a while, and the distinctive flavor seemed like it would make a really interesting drink.
The nice thing about infused liqueurs is that once you've got them combined, you don't need to do much with them until it's time to strain. A quick shake once in a while is fine, and I've seen instructions that suggest shaking once a day, but I tend to be more random that that. When I think about it, I shake. When I forget, I don't worry about it.
I intended on letting this sit for 3 weeks, but it was a little closer to 4 weeks by the time I strained and bottled it.
When I tasted it, the lychee/rambutan flavor was definitely there. but it seemed just a little one-note. In retrospect, I realized I should have added something else. Maybe some lemon. Or ... another fruit? Or a spice.
Instead of tossing something else in and waiting for it to infuse, I decided to add some Tropical Punch Flavor from LorAnn. The mysterious tropical fruit named on the label is actually passionfruit, so it made perfect sense. The itty-bitty jars bottles hold quite a bit of flavor, so the 3/4 teaspoon was enough to add a background flavor, but it didn't overwhelm the other fruit.
I'm likely to drink this as a dessert liqueur over ice or perhaps mix it with pineapple or orange juice. It would also be an interesting addition to a sangria or perhaps a fruit punch. Or, I'm sure I'll think of other things.
Peel and pit the rambutans and lychees and put them in a 1/2-gallon jar. Add the sugar and water. Add the vodka to fill the container, leaving space at the top of the container for easier shaking.
Seal and shake the container until the sugar dissolves.
Put the container in a cool, not-bright place and shake it once in a while. The liqueur should be ready after 3 weeks.
Strain out the fruit, then strain again through a coffee filter to remove any small bits or sediment. The liqueur might be a little hazy rather than crystal clear - that's perfectly fine.
Taste - and if you prefer it a little sweeter, you can add more sugar or simple syrup. If you want to add more flavor, I suggest trying the Tropical Fruit flavoring, but a hint of lemon or even vanilla would be nice. Or, leave it as-is and add flavors when you serve.
I love avocados ... so many great things to do with them. Like guacamole. Or guacamole. Or guacamole.
But seriously, I've used avocado in baked goods, like cookies. It was inevitable that I'd use them in bread, right?
This bread is similar to a sweet brioche, with the avocado taking the place of the egg and butter. My dough was a lovely green color before it was baked. Afterward, there was a green tinge on the outside in areas that weren't browned, and the inside was a greenish yellow.
Your results might be different. Avocados vary a bit in color, and mine was quite green. If you have avocados that are more yellow than green, your bread will be less green.
I thought the almonds were a great complement to the bread - to me, avocados taste a little bit like pistachios, so other nuts made sense. And, since the bread was green and brown, I thought that the sliced almonds resembled the rough back of an alligator.
Speaking of alligators, did you know that avocados are sometimes called "alligator pears"? It makes sense, right? The shape is like a pear, and the rough exterior is pebbly, like an alligator. So, there's more than one reason for these buns to be alligators, right?
When you're making this bread, mash the avocado right before you add it to the bread so it doesn't have a chance to start turning brown.
Although I didn't need sliced avocado for this recipe, I had some fun playing with the avocado tool (and citrus tools) that Good Cook sent me.
The avocado tool has a hook (for lack of a better description) on one end that you can use to pry out the pit. The other end scoops and slices the avocado in one motion. Kind of neat, if you need to plow through a whole lot of avocados. It makes even slices, which is a nice for presentation, too.
The tool is dishwasher safe, which is always a plus. I have enough stuff that doesn't fit in the dishwasher or that has to be hand washed. Anything I can chuck into the dishwasher is great.
And (bonus points) since this isn't a sharp implement (because avocados are fairly soft when properly ripe) this is a tool you can hand to your kids and let them help in the kitchen.
The other tools are a citrus reamer and a zester.
I used to have a wooden citrus reamer that disappeared some time ago, but it wasn't my favorite tool since it wasn't all that easy to clean. This one is dishwasher safe and hand-washing isn't much of a problem, either. It pretty much rinses clean.
The zester will make smaller shreds as well as larger ones that you'd use for cocktails.
Combine the water, 1 tablespoon of sugar, and yeast in the bowl of your stand mixer. Let it rest for a few minutes while you gather the rest of the ingredients.
Add the bread flour and knead with the bread hook until the dough forms a ball, cleans the sides of the bowl, and becomes smooth.
Add the mashed avocado, salt, and instant mashed potatoes. Continue kneading until the dough is smooth and elastic.
Cover the bowl with plastic wrap and set aside until the dough has doubled in size - about an hour.
Meanwhile, line a baking sheet with parchment paper and preheat the oven to 350 degrees.
When the dough has risen, flour your work surface and turn out the dough. Divide it into 12 pieces. Form each piece into a smooth ball and arrange them on the baking sheet.
Just for fun of it, I filled three of the buns with blueberry jam, but the rest were left un-filled. I thought the purple looked good against the light green of the bread, and the flavor worked really well, too.
If you want to fill some buns, form the dough balls into flat disks, put a small amount of jam in the center, then bring the edges up and pinch them together to seal the dough over the jam. Place the buns seam-side down on the baking pan.
Bake the buns at 350 degrees until nicely browned, about 25 minutes. Let the buns cool completely on a rack before serving.
Want more avocado? Check out these other blogs!
Disclaimer: I receive products and giveaway items from Good Cook as part of their Kitchen Experts program.
Good Cook is offering a 25% online discount on the ProFreshonals Produce Tools. Use the code LoveAvocado to get your discount.
I know, it sounds a little crazy to start with frozen blueberries when we're in the midst of blueberry season, but frozen blueberries are available all the time, and fresh ones are so fleeting. And often, they're not that great. I hate having to pick through a basket of little berries to pick out the mushy ones.
And, really, if your local blueberries are wonderful, you can freeze them yourself, and use your own frozen berries all year long. That's what I used to do when I used to go berry picking.
Meanwhile, I had purchased a bag of frozen blueberries before the fresh ones appeared at the market, and it made no sense to let those sit in the freezer and get older while I spent money on fresh ones that might not have been so great.
Feel free to use fresh berries. The recipe will be the same.
And ... I have to say that I've sort of fallen in love with instant pectin. I bought it for something other than jam - I was doing a little experimenting - and I was immediately enthralled with the idea that I could add this to a cool or cold liquid, and it would set without the need for heating.
Think about it. You can have almost-instant jam. Like, make it right before breakfast.
And, since you don't have to heat the fruit (unless you want to, which is a completely different discussion) you can have a super-fresh-tasting jam. Think about that. Mashed/chunked fresh strawberry jam. Oh yeah!
But ... in this case, I actually wanted the cooked-blueberry flavor. So I cooked the berries. And then I added the pectin while the fruit was still a little warm. And it worked. How about that? You don't have to heat the berries, but adding the pectin to a warm liquid doesn't ruin it.
And ... based on other little experiments, I can tell you that you can even cook the pectin with the fruit and it still works. The only tricky thing about this pectin is that you don't want to add it in one big lump, because then you have the possibility that you'll end up with some teeny clumps where the pectin sticks together. Sprinkle it in and whisk or stir it in as you go, and you'll be fine.
I got some spiffy citrus tools from Good Cook recently for a post about avocados (seriously, if you're working with avocados, you probably need lime, right?) and I decided to play with the citrus reamer since I needed lemon juice for this recipe.
A reamer is an old fashioned tool, for sure. I had a wooden one that disappeared into the maw of lost tools some time in the past decade. It was nice, but a wooden reamer isn't practical when it comes to cleaning. A plastic one makes more sense. Just chuck it in the dishwasher when you're done.
And it's simple to use. Just hold the cut lemon in one had, jam the pointy end of the reamer into the flesh of the fruit, and twist, mash, and gouge. Obviously, have a bowl there to catch the juice.
Then you can pick out the seeds (if there are any - aren't lemons these days showing up with fewer seeds?) or you can strain the juice if you want to make sure you aren't getting any pulp with the juice. Your choice.
There's not a ton of lemon in this jam, but I think the little bit brightens it up a bit. And blueberries and lemon are a great combo. Add more lemon, if you like. I mean, you can taste it and see if it's too sweet or if you want a tad more tartness. It's your jam. Make it exactly the way you like it.
And since this is a refrigerator jam and not one that you're canning, you don't need to worry about acid levels and things like that, which are much more important for products you're planning on storing at room temperature.
Put the berries, lemon juice, and sugar in a heavy-bottomed pan, Heat to boiling, stirring to melt the sugar. Mash some of the berries while leaving most of them whole so you have a chunky jam. Or, if you want them all mashed, have at it. It's your jam.
When the mixture comes to a boil, turn off the heat and let it cool. Add the instant pectin (sprinkle it in so it doesn't clump up) and stir until it's completely mixed in. It should begin to thicken as you stir.
If you like your jam a little looser, you can use a less pectin. That's the beauty of this instant stuff. You can add some, then add some more. But remember - it's going to thicken even more as it cools.
Transfer to a pint jar or other storage container and refrigerate.
I used this jam to fill some sweet buns, and also to fill some aebleskivers that I made. It's pretty darned good stuff.
This post was not sponsored in any way by Good Cook. I just happened to get the reamer from them recently and decided to have some fun with it.
Salt is interesting. You need salt to live, but too much can be bad for you. Salt makes food taste good, but on the other hand, you don't want food to taste like salt.
And ... you have the choice of adding salt so it blends into whatever you're making, or you can add the salt so it's an accent. Like on pretzels. Or when you use a finishing salt, like on fresh tomatoes or a salad.
Or when you salt meat so the outside of the meat has a saltier flavor. Or when you sprinkle a bit of salt on top of something sweet, like chocolate truffles.
For this salted caramel ice cream, I added some salt to the ice cream mixture, and then I added some swirled into the ice cream at the very end. The salt still melted into the ice cream - it's not like you would find little salty crunchy bits in the ice cream. But there were little teeny pockets of saltiness that hit your tongue and wake it up.
I don't know if anyone would realize that it was salt, but they'd notice sudden bursts of more intense flavor. Just like magic.
I didn't add a lot more salt to this ice cream than I've used in other ice creams - it's the way it's used that's different. I suggest that you use a slightly larger crystal salt than table salt. Not those big rocks that you grind in a salt grinder, but a more substantial kosher salt is lovely.
Now that we're past the salt, let's talk about that caramel. Because this recipe starts with sugar, not with a caramel that you buy. Yup, you're cooking your own caramel before you make the ice cream.
But don't be frightened. I'll be right here with you.
Heh. I'll probably be eating ice cream. But I'll be here ... somewhere.
In a heavy-bottomed pan over medium heat, heat the sugar, butter, and salt. Heat it slowly, stirring often, until the sugar melts.
This is a teeny bit tricky, since you've got butter that burns at a lower temperature, and sugar that you want to get melted and then brown. But you can do it. Just keep watching it, and don't let parts of it get too brown.
Continue cooking until you have a medium-ish brown product. You don't want it to get too brown, or it will go bitter on you. And you don't want it to burn, because that's just bad. Better to stop a little short, if you're worried.
Add about half of the cream - it will bubble up like crazy, but just keep on stirring. The caramel will want to solidify and might simply ball up around your spoon or whisk. Just keep cooking and stirring until the caramel melts again and you've got a smooth sauce.
Turn off the heat and add the rest of the cream, along with the milk, vanilla extract, and rum. Stir until well combined, the transfer to a storage container and refrigerate until fully chilled. The next day is fine. You've got a fairly warm mixture, so it's going to take some time to chill well.
When the mixture is well-chilled, churn it in your ice cream maker according to the manufacturer's instructions. When it's done, transfer to a storage container, sprinkling on tiny amounts of salt as you add layers of ice cream to the container.
If you like, give the ice cream a quick swirl or stir when all the ice cream is in the container and all the salt is added - but don't stir to much or the salt will get too well distributed in the ice cream and you won't get those pops of flavor.
Freeze the ice cream until firm.


text:
Teratocephalus terrestris är en rundmaskart som först beskrevs av Butschli 1873.  Teratocephalus terrestris ingår i släktet Teratocephalus och familjen Teratocephalidae. Arten är reproducerande i Sverige. Inga underarter finns listade i Catalogue of Life.

Källor

Rundmaskar
terrestris

redpajama_set_name: RedPajamaWikipedia


3d Architecture Design Renga Architecture. 3d Architecture Design 3d Computer Visualization Architecture Cgi E Architect. 3d Architecture Design 3d Architectural Designs 3d Architecture Models 3d Forms. 3d Architecture Design Homely Ideas 8 3d Architecture Design 3d Architectural Drawings Cozy. 3d Architecture Design 3d Apartment Design Architectural 3d Apartment Rendering 3d Power. 3d Architecture Design Chief Architect 3d Viewer Chief Architect Software. 3d Architecture Design Interior 3d Architectural Design Interior Designers In Bangalore. 3d Architecture Design Home Designer Pro. 3d Architecture Design Architectural 3d Rendering Services 3d Visualization Company Hi. 3d Architecture Design Architect 3d Ultimate 2017 The Ultimate Solution To Help You.