Sunday, December 18, 2011

Zoo Life - Patricio

Each week I volunteer half a day at the Prospect Park Zoo.  Anyone familiar with my background won't be surprised by this.  Spending time regularly at the zoo provides a unique opportunity to become familiar with the animals in ways that occasional visitors can't.  The amount of time alone makes it more likely to witness telling incidents, and some animals will become familiar with you and interact in ways they won't with strangers.

I suspect that any volunteer at the PPZ has stories related to Patricio, the Cape Barren Goose.  Patricio resides in the Australian walkabout, which means he's free to roam about with zoo visitors along with the wallabies and kangaroo.  Well, usually anyway.  Unlike his would-be mate Ethel who keeps herself hidden most of the time, Patricio spends his day right on the walking trail, usually at the side of the zoo employee or volunteer charged with minding the area.  Just about the only time we see Ethel is when she comes out to give Patricio a piece of her mind when he's acting up and honking.  Ethel is the only one Patricio defers to, and he'll skitter away nervously when she comes running at him.
Patricio

Some days when I'm with him, Patricio will stay right by my side, reaching out to nip at my coat or shoelaces occasionally when I'm not looking.  When he's in a mood, he may decide he'd rather run around with a group of schoolchildren.  Ever see a child panick in fear that they're being chased by a wild goose?  Nothing excites Patricio more- to him it's just a part of the game, while children squeal in terror that they're about to be mauled.  The walkabout has a double-door system to enter, and signs warn visitors to keep only one door open at a time.  This did not stop Patricio from wandering out behind a group of school children one day, following them down the path towards the porcupines before anyone took notice and alerted staff.
Patricio Sneaks Up on Me

Such incidents prompted the animal keepers to relegate Patricio to a fenced in area at the back of the walkabout for a few weeks this fall.  To Patricio, this was jail.  He did not get along with his fellow residents, a noisy flock of guinea fowl and I often saw him charging angrily at them or a squirrel who had wandered in for some free zoo food.  Other times I'd see him practicing his escape.  He'd stretch his wings out to his sides, look in front of himself determinedly and waddle forward as quickly as he could, certain that this would be the time he'd break into flight (I believe his wings are clipped).  It's a bittersweet episode to witness.

I was happy when Patricio was released back into the walkabout proper.  The wallabies are adorable and interesting to watch, but spend most of their time hidden as does the kangaroo, who in her old age is more interested in finding a quiet place to nap.  Patricio is a handful, but in the end he's harmless and he keeps things interesting.

Sunday, December 11, 2011

How did I miss Moonraker?

An aside- according to Michele Bachman in the debate last night, we need to "legalize American energy".  Here, here!

How have I not seen Moonraker yet?  This shall be resolved tonight.  In the cottage my family rented over the summer, there was a poster for this movie and I hadn't even realize it existed.  From a review: "My favorite part: when the astronauts get killed in this zero-G environment, they sometimes start falling, as if their willpower alone had been holding them up." He wrestles a snake in the water, has a speed boat chase with gunfire, the excitement seemingly never ends in this epic trailer:

Which reminds me, I completely forgot "Bond Villains" from my list of human(oids) for whose demise I cheer.  Reactions from viewing this movie to come...

Update: Now that I've seen it, I really can't believe I missed that movie, it is a classic.  Don't get me wrong, the plot was disjointed and the dialogue often ridiculous (hilariously so).  But really it gave me exactly what I want from a Bond movie- a series of implausible adventures seeking/fighting with over-the-top villains.  There was not one but two high speed boat chases, one in Venice which ended with Bond showing a complete disregard for public safety by speeding through crowded plazas in a gondola equipped with a hovercraft skirt.  There were sky diving fight scenes, aerial tramway fights, the fight with a giant snake, fights in space, the excitement was just barely broken up with quippy comments between Bond and sexy women and Bond and giant-headed villains.  Oh, and his main squeeze in the flick is actually named Dr. Goodhead.  Yeah, seriously.  If you haven't seen it, or haven't seen it since you were a kid, I highly recommend it.

Friday, December 9, 2011

Simile Timeline in Salesforce, Revisited

The Simile Timeline is a javascript widget that's available as open source to create interactive timelines.  If you go to the main page for the Simile Timeline, you'll see how you can drag the timeline back and forth through time and click on items to see a detailed description; it's pretty slick.

Back in another life, I had implemented this timeline in Salesforce to provide a graphical display of a Contact's history on their detail page: Events, Tasks, (Job) Opportunities, Interviews, Jobs.  I did it by customizing the free Timeline S-control mashup that utilizes that Simile Timeline widget.  It provided a nice graphical narrative that you could scroll forward or backward in time through, and clicking an individual item on the Timeline would display details on and a link to the record.  This is the screenshot of that application from the appExchange:

That application is still available, but in it's original S-control form, now replaced by Visualforce.  Salesforce still supports S-controls, so you can  use it if you're fine with the default configuration it comes with.  If you're going to need to customize the information that's displayed on the timeline, for instance showing custom object child records to Account, Contact, Case or Opportunity or values of custom fields in the pop-up details, I'd recommend just doing this in Visualforce, which is what I've just done for a client.  Anyone with a bit of javascript and Apex savvy can easily implement this themselves.

I'm considering creating a nifty little package that anyone can install to implement it with no code, probably with an admin screen to let Sys Admins select the Timeline settings such as the intervals of time displayed, and a query interface to display custom object records or fields without requiring any code.  Interested?  Leave me a comment.

Not being an asshole wins the race...

Having a tortoise as a pet, I often think of the Tortoise and the Hare fable.  The sum up of that story is "slow and steady wins the race".  The tortoise didn't win because he was slow and steady, he won because that hare was an asshole.  To me, that's a much more important lesson than slow and steady- being an asshole can bite you in the ass.  And that's exactly how you should explain that to your children.  I only wish that were a more predictable outcome. 

My tortoise is very cute; he even likes to snuggle with me-

Still don't think he's cute?  How about this?

What I've really learned from Rokku is determination.  That boy will not give up.  When I take him out on the terrace, 7 flights up, he sometimes gets it into his head that he would like climb over the edge and see what's out there.  I've tried to explain to him that that would be suicide.  I pick him up and move him away, he scrambles right back.  The more you pull him away from his perceived destination, the harder he will try to get there.  Rokku, stop burrowing into those electrical cables!  It's admirable if not nerve-wracking, and I love him for it.

Monday, December 5, 2011

Oh how I loves me some zombie violence

I've discussed this on Friendface and with friends, but figured I'd include my thoughts on it here as an insight into the minds of people.  I was originally going to say it was an insight into my mind, but this is one of those commonalities that brings us together as a species.

There are certain movies and books with scenes of brutal violence against humans (or humanoids) to which we are very much drawn, and zombies stories are a prime example.  I'm also always up for some Nasi violence too.  Our lizard brains get a thrill from violence, it's deep within us from millions of years of  evolution as meat eaters and territorial beasts.  But our rational minds tell us that we can't just go around slaying and beating at will (well, some of us anyway).

Zombie and Nasi violence presents us with the rare opportunity to enjoy a healthy dose of violence with the moral quandry removed.  Storytellers have long been aware of this; it's why they go to lengths to build up the evil qualities of a character before presenting us with their gruesome death.  The more they've worked to show you just how evil someone is, the more painful, gory detail you can expect in their last moments.

Here's a list of some human(oid)s for whose demise I will cheer (did I un-dangle that participle correctly?).  I'll admit that it gets a little ethically questionable towards the end.
  • Zombies
  • Nasis (becoming an over-used antagonist in movies again)
  • Khmer Rouge party leaders (an under-used antagonist in movies that I vote to now replace Nasis)
  • Aliens plotting the destruction of our planet, as implausible a concept as I find this to be
  • Conquistadors
  • Serial killers (or single instance killers, depending on the circumstances)
  • Child rapists
  • Oh, any rapists really
  • Followers of Sauron
  • Software agents posing as humans in a virtual reality created to control humans and use us as batteries, as implausible a concept as I find that to be
  • Anyone who shouts "Death to America!" (hey, I'll be the first to admit our imperfections, but fuck you, man)
  • Anyone Dick Cheney has ever trusted to do his dirty work
  • Dick Cheney
  • Hedge fund managers
  • Executives at companies that implement hydrofracking (I've been a little fixated on this lately.  I like water)
And let's be clear, I'm not speaking about this in terms of death penalty legislation, on which I have a completely different stance, or sanctioning rampant murder sprees of people who fit these descriptions, which would put you squarely in the serial killers category.  This is purely regarding the mutilation and death of fictional characters for my entertainment.  But nonetheless, I accept the impact this will have any future runs for office.

Sunday, December 4, 2011

Why won't this damn thing reRender properly...

Since Visualforce came into being, the aspect of it I've had the most trouble with is the reRender, or more specifically, getting reRenders to behave the way I want them to.  This is partly because much of the coding I did before Salesforce was behind the scenes logic and not web interface design, but it's partly because reRenders can be a real pain in the ass.  Along the way, I've figured out some tips and thought I'd share.

actionRegion
You will drive yourself insane with reRenders if you don't know how to use actionRegions. actionRegions are to submitting what reRenders are to rerendering.  Perhaps a little more explanation and a demo are in order.

When you perform any action on your VF page, by default the entire form is submitted.  You may not actually need everything submitted though; you may just be need a portion of your variables submitted, or maybe none at all.  Submitting everything needlessly means that not only are you slowing down performance of your page, but the page is attempting to validate what's being submitted before it sends anything back to the controller.  So if you have any required inputFields, for instance, those fields will need to be filled in before the form submits at all.  And if you don't know that's what's happening, either because your form has no <apex:pageMessages/> or it's not being reRendered, it will appear as if your action isn't working for no reason at all. 

Let's use this simple page and controller as an example, first without an actionRegion (incorrect):
Page before adding actionRegion (the wrong way)
<apex:page standardController="Account" extensions="extTest">
    <apex:form >
        <apex:pageBlock>
            <apex:pageBlockButtons >
                <apex:commandButton value="Show Billing Street" reRender="opBilling">
                    <apex:param value="true" assignTo="{!ShowBilling}"/>
                </apex:commandButton>
            </apex:pageBlockButtons>
           
            <apex:pageBlockSection >
                <apex:inputField value="{!Account.Name}"/>
            </apex:pageBlockSection>
           
            <apex:outputPanel id="opBilling">
                <apex:pageBlockSection rendered="{!ShowBilling}" id="pbMailing">
                    <apex:inputField value="{!Account.BillingStreet}"/>
                </apex:pageBlockSection>
            </apex:outputPanel>
        </apex:pageBlock>
    </apex:form>
</apex:page>
 Extension:
public with sharing class extTest {
    public Boolean ShowBilling {get;set;}
   
    public extTest(ApexPages.StandardController controller) {
        ShowBilling = false;
    }

}
The idea is, the page opens showing only the Account Name field. Clicking the Showing Billing Street button will update the ShowingBilling variable to true and reRender the opBilling outpanel so the Billing Street field is displayed.  As it's written above however, it will not work if the Account Name field isn't filled in first.  That Name field is required, so the command button tries to submit the whole form and it fails validation without a Name value entered.  Since only the opBilling outputPanel is being reRendered, you won't event see an error message since pageMessages isn't being reRendered (Debug logs are your friend when troubleshooting such issues).

One way to fix this is by updating the page with an actionRegion around the commandButton like so:
pageBlockButtons after adding actionRegion (one right way)
<apex:pageBlockButtons >
                <apex:actionRegion >
                    <apex:commandButton value="Show Billing Street" reRender="opBilling">
                        <apex:param value="true" assignTo="{!ShowBilling}"/>
                    </apex:commandButton>
                </apex:actionRegion>
 </apex:pageBlockButtons>
Now with actionRegion around that button, only the values inside of the actionRegion are submitted, so BillingStreet will be rendered with or without a value in the Account Name field.

Immediate
For the sake of keeping the example above simple, the button didn't do anything other than updating ShowBilling using the param tag and reRendering opBilling.  In reality, you'd only need actionRegion when you need some portion of the variables on the page submitted to the controller/extension to perform logic in a method.  If you don't need to submit any variables, then you can use the "immediate" property of the tag that's performing an action.  Let's see this with the example above:
pageBlockButtons after adding immediate (another right way)
<apex:pageBlockButtons >
                <apex:commandButton value="Show Billing Street" immediate="true" reRender="opBilling">
                    <apex:param value="true" assignTo="{!ShowBilling}"/>
                </apex:commandButton>
</apex:pageBlockButtons>
Make sure you know what immediate means before using it. I've seen people set immediate to true to avoid issues with required fields not realizing that their controller/extension was not receiving any updated variable values from their page, thereby screwing up their logic and leaving them flummoxed.

Choosing what to reRender
I'll probably expand on this in a separate post because there are a lot of scenarios to consider, but I'll use the example above to give one basic tip. 
You may have noticed in my example that I've surrounded the pageBlockSection that contains BillingStreet with an outputPanel, and the reRender acts on that outputPanel.  This may seem like an extra component- why not just reRender the pageBlockSection itself and skip that outputPanel altogether?

What I've learned is that if a reRender updates a variable on your page, you need to reRender a parent of the tag that contains that variable, and not the tag itself. OutputPanels are a useful means of doing so.  To see this in action, try updating the example above so the button attempts to reRender the pageBlockSection directly:
pageBlockButtons with reRender of the pageBlockSection (wrong way)
<apex:pageBlockButtons >
                <apex:commandButton value="Show Billing Street" immediate="true" reRender="pbMailing">
                    <apex:param value="true" assignTo="{!ShowBilling}"/>
                </apex:commandButton>
  </apex:pageBlockButtons>
If you try this example with the commandButton set to reRender the pageBlockSection, it just doesn't work.  So either you need that outputPanel surrounding the pageBlockSection, or alternatively you could move the rendered="ShowBilling" property to the inputField instead, but in this example, that would mean you're rendering an empty pageBlockSection.

As above, there are more scenarios to explore here, but I'll leave it at this for now and hopefully this is helpful to people frustrated with the nuances of reRendering.

Gettin' all meta about my blog

For awhile I've had two blogs going, the long out of date Enlightened Platypus for technical posts and Recipes of a Platypus.  I also had a Friendface account to appease my egotistical desire to spout my views off to the world.  I've now shunned Friendface and realized that I might as well merge all of my spoutings into a single blog.  For those of you only interested in my technical posts, largely Salesforce related these days, you can select that tab above.  Same for those of you interested in what I'm cooking these days, the Recipes tab is for you.  And for those of you actually, dare I say inexplicably, interested in what I babble on about (hi Mom and Dad!), then Personal is for you. And now the question is, what to do when the day comes that I shun Google?  We shall cross that bridge if and when we get there.

That will be all, carry on about your business.

Wednesday, September 14, 2011

Turkey Meatloaf

Another regular recipe, this always comes out moist. Learning to cook in small apartments, I make this on a cookie sheet as that used to be my only option. I've used the same recipe with ground beef (though sometimes I'll make that as mini-loaves wrapped in bacon).

Ingredients
1.3lbs Ground Turkey
3 tablespoons chopped Onions
1 tablespoon Dijon Mustard (spicy works as well)
1 egg
1 cup plain Breadcrumbs
1/2 teaspoon Pepper
1/2 teaspoon Salt
4 tablespoons white wine (optional, but preferable)
  1. Pre-heat oven to 350 degrees.
  2. Mix the turkey, onions, mustard, egg, breadcrumbs, pepper and salt in a bowl. The mixture should be sticky-moist, adjust the amount of breadcrumbs if needed or add more liquid (I'll sometimes use ketchup).
  3. Gather everything up into a ball and plop it onto a cookie sheet lined with aluminium foil.
  4. Shape the meat into the same shape as a bundt cake, with the hole in the middle. That hole is essential to ensure that the meat cooks through.
  5. Pour the white wine into the hole in the center of the meat loaf. Optional, but I find this helps keep it moist and adds a nice flavor.
  6. Bake in the oven for 30 minutes.

Tuesday, June 14, 2011

Platy Pesto

It was pointed out to me that my basil had gotten a bit tall. I decided to trim one stalk and pick all of the big leaves from the others and try my hand at pesto. Most recipes use pine nuts, but this was with cashews and came out nicely.

Ingredients
1 handful of Basil leaves
3 medium Garlic cloves, peeled
1 small handful of Roasted Cashews
1/3 cup of grated Parmesan Cheese
  1. Take about half of the basil and two of the garlic cloves and chop them. This works best with a sharp, broad knife with a curved tip. You could also skip these steps and chop with a food processor, but I prefer the way the ingredients come out in varied sizes when doing this manually.
  2. When both have been chopped to fairly small pieces, add the rest of the garlic and basil and keep chopping.
  3. Add half of the cashews, chop.
  4. Add the rest of the cashews, chop
  5. Add the Parmesan cheese, you guessed it, chop. I spent maybe 15 minutes chopping.
  6. When the ingredients are fairly small, transfer to a bowl. When you press everything together, be a bit pasty.
  7. I added a splash of lemon, to taste.
  8. Add about 3 tablespoons olive oil
  9. When ready to use, stir and add pasta (or whatever). I added a little of the water in which the pasta (Campagnelle) cooked too.

Saturday, April 16, 2011

Kyoto Salmon with Baby Bok Choy

This is a light, healthy meal, and I really like the sauce. I serve this over rice, but I'm not including the instructions for that. I'd give credit to whomever I originally took this recipe long ago, but I don't remember which one it was anymore, there's a few out there. I'll add a photo next time I make it.

Ingredients
1 lb Salmon, cut into 2 (this is enough for 2 people)
1 tablespoon ginger diced small (I substitute garlic if I don't have ginger)
1 teaspoon mustard seeds (could probably substitute jarred mustard for this)
Pepper to taste
1 cup orange juice
1 cup soy sauce (or enough to cover the salmon while marinating)
1 Baby Bok Choy, leaves separated
  1. An hour or two before you want to eat, mix the orange juice, ginger, mustard and pepper in a bowl.
  2. Add in the salmon and pour in enough soy sauce so it's pretty well covered.
  3. Cover with plastic wrap and refrigerate for 1 to 1 1/2 hours.
  4. Heat a pan with some olive oil to medium high.
  5. When the pan is hot, add in the salmon.
  6. Pour the marinade in a sauce pan and heat to boiling, and then simmer while the salmon cooks.
  7. Cooking time depends on how rare you like your salmon. I never time, but it's probably around 4 minutes on each side, enough to brown a little.
  8. After one side has cooked and you've flipped the salmon, place the bok choy leaves over the top of the salmon (keeping part of the leaves elevated will keep them from getting soggy).
  9. About 2 minutes into cooking the second side of the salmon, cover the pan, turn the heat down and cook for another couple minutes- this will steam the bok choy and cook the salmon through.
  10. Serve over rice and spoon the sauce over the salmon and/or rice.

Sunday, April 3, 2011

Turkey Sausage, Pea Pods, Sun-dried Tomatoes and Noodles

Quick and easy. As often happens, I didn't really measure on this one, but it's pretty hard to go wrong. I was cooking for two, so adjust accordingly.

Ingredients
4 links of turkey sausage (the big ones), sweet or spicy
Olive oil
1 clove garlic
Handful of snow pea pods
Half a handful of sun-dried tomatoes
A splash of white wine or rice vinegar
1/2 package of egg noodles (I know, that totally depends on the size of the package, but I forget)
  1. Heat up some water for the noodles.
  2. Cut the sausage up into bite sized pieces.
  3. Heat up a frying pan on medium-high with some olive oil, roughly a tablespoon.
  4. Add the sausage to the pan.
  5. Cut up the garlic into small bits.
  6. Add garlic and sub-dried tomatoes to the pan when the sausage has browned a bit.
  7. When the water is boiling, add the noodles.
  8. Add the pea pods (I cut the tips off of them first) to the pan.
  9. Salt and pepper to taste.
  10. Splash in some white wine or rice vinegar and cover the pan. (Told you I use that trick a lot). Let that cook for just a couple minutes.
  11. Drain the noodles and mix everything together in the pan.

Monday, March 14, 2011

Sweet Potato Pie

I modified one recipe for the filling and one for the crust. Since this was the first time I've ever made sweet potato pie, I was quite happy with the way this came out.

Crust Ingredients
1/2 cup butter (1 stick)
1 1/4 cups flour, and some extra for rolling
1/2 teaspoon salt
1/2 teaspoon sugar
1/2 teaspoon cinnamon
2 tablespoons ice water
  1. Soften the butter.
  2. Mix the flour, salt, sugar and cinnamon.
  3. Combine butter with the flour mixture. I did this by hand with a spoon, which is great exercise, but you can use a food processor as well.
  4. Add in enough ice water so the mixture becomes doughy.
  5. Kneed for a minute or two.
  6. Refrigerate while you prepare the filling
Filling Ingredients
2 largish sweet potatoes (the original recipe called for 1 lb)
1/2 cup butter
1/4 cup white sugar
1/2 cup brown sugar
1/2 cup Silk
2 eggs
1/2 teaspoon ground nutmeg
1/2 teaspoon ground cinnamon
1 teaspoon vanilla extract
  1. Peel and quarter the sweet potatoes. Boil for 15 minutes or until softened.
  2. Pre-heat oven to 350 degrees.
  3. Mash the sweet potato with the butter.
  4. Add in the sugar, Silk, nutmeg, cinnamon and vanilla, mix and then add in eggs. It will be a bit liquidy.
  5. Take out your chilled pie dough and shape into a ball, and press out into a circle big enough for a pie dish. If it's too sticky to work with, add more flour. I just did this by hand, no roller, and it came out great.
  6. Press the crust into the pie plate and shape until it's evenly covering it.
  7. Pour in the filling.
  8. Bake for 55 to 60 minutes. You should be able to insert a knife and have it come out clean when it's done.
  9. Try to refrain from eating while the pie cools :)

Saturday, March 5, 2011

Apple Stuffed Cornish Hen

You should make this if for no other reason than to experience how it makes your home smell while it bakes. It's essentially an apple pie with a chicken substituting the crust. I usually do this recipe with an orange, but today I had an apple at hand so I decided to try that, and I'm glad I did.

Ingredients
1 apple
1 Cornish hen
2 tablespoons butter, softened
  1. Remove any plastic bags and hen bits from the Cornish hen. Do not forget this step.
  2. Slice up an apple.
  3. Coat the hen with the butter and stuff if full of as many apple pieces as you can. If you can't fit the whole apple, just set those pieces aside for when you bake.
  4. Place the hen in a deep skilled with a cover at medium heat.
  5. Salt and pepper the exposed side.
  6. When the hen has browned a bit (probably at least 5 minutes for this), flip it and let that side brown for about 5 minutes. Salt and pepper the newly exposed side.
  7. Flip the hen back over and then pour in enough white wine to cover the bottom and quickly cover. The old "wine and cover" trick.
  8. Heat the oven to 350 degrees.
  9. If your pan has a metal handle, transfer the entire thing to the oven. If your pan has a plastic handle, for God's sake, don't do that and transfer the hen to a baking pan or pie plate instead.
  10. Bake for 40 minutes, remove from oven. You could try adding broccoli and covering it for a few minutes right after removing the hen from the oven, that was my original plan but there was a small incident.

Sweet Potato Fries- half fried, half baked

This recipe works with regular potatoes too. The half frying, half baking process results in the best of both (crispy but not greasy).

Ingredients
2 sweat potatoes. Or yams, I always forget which is which.
Oil- canola works well for this since it heats to a high temperature.
Garlic salt and pepper
  1. Cut up the sweet potatoes. I find these come out better if I cut the sweet potatoes to be somewhere in between the size of fast food fries and steak fries. Too small and they'll get mushy; too big and it's hard to cook them through.
  2. Cover the bottom of a frying pan with oil and add the sweet potatoes on medium heat. I don't fully submerge fries when I cook them, since I finish the process with baking which cooks them through. Just enough oil to brown one side of the fries at a time.
  3. Heat the oven to 350 degrees.
  4. Flip the sweet potatoes every few minutes until they've all browned a bit on more than one one side. So long as they don't char, don't worry about over-browning- the browning carmelizes them and makes them quite tasty.
  5. Now transfer them for baking to finish. I have a vegetable steamer that opens up flat, so I put that in a baking dish and put the fries on top of it. This let's the excess oil drip down and gives them a nice air baking. But if you don't have a means of doing that, a cookie sheet will do too.
  6. Garlic salt and pepper them.
  7. Bake for 20-25 minutes. I'll usually make burgers while they're baking.

Scallops with Saucy Noodles, Broccoli and Shallots

I made this just for myself, hence the small proportions, but it's easily scaled. I'm using handful as a measurement for this which may work quite well- if you have big hands, you can probably eat more.

Ingredients
.6 lb of scallops (I used fairly large scallops for this, and obviously the weight doesn't have to be that precise)
Handful of broccoli cut into florets
1/2 a handful of shallots, sliced
1 clove garlic, chopped
Splash of white wine (I used cooking vermouth)
Handful of noodles- I used a Thai linguini style, but any Asian style noodles would work

  1. Start the water boiling for the noodles while you prepare the vegetables.
  2. Start the noodles, the rest of the recipe will cook in the time it takes them to be done.
  3. Lightly oil a frying pan on medium-high heat and add in the scallop- salt and pepper the exposed side. Scallops will get chewy if you cook them too long, so make sure the heat is high enough to brown the side that's cooking in no more than a couple minutes.
  4. Once the scallops have browned on one side, flip them and then add the brocolli and garlic- make sure the scallops all still have contact with the pan. Salt and pepper again.
  5. When the other side of the scallops has browned, splash in enough white wine to cover the bottom of the pan and quickly cover the pan. I use this technique with wine and vinegar in a lot of recipes- it steams everything, makes a nice sauce and also has a nice dramatic effect.
  6. The noodles should be done by now, so drain them.
  7. The wine just needs to cook long enough for the alcohol to cook off, but you still want some liquid- a minute or two will do it. Then add in the noodles, turn off the heat and mix.

Burgers


This is my go-to burger recipe. It's basic enough that I don't really need to document it for myself but thought I'd share, and maybe one day in my senility it will be nice to have it for myself. The mustard and onion idea I got from a Gordon Ramsey show- one of the older British ones when the focus was actually cooking and you could pick up some tips. Just two long, anecdotal-type instructions for this one.

A took this picture on a night when I hadn't had lunch that day and decided to do it up with a fried egg on top of the burger. Those are sweet potato fries on the side.

Ingredients
Ground beef - about 1lb. or slightly more (makes 3 hefty burgers)
1 heaping teaspoon of dijon mustard
1 egg
2-3 rounded tablespoons chopped onion
Salt and pepper
  1. Mix all ingredient together. The egg helps bind the burger, says Ramsey, and it does hold together better than when I do it without the egg. The mix will be slightly gooey and that's fine- this lets you make some big burgers and the moisture burning off will steam the insides so it cooks through. If it's not slightly gooey, add a little ketchup.
  2. Cook the burgers. If you have a grill and the weather permits, that's probably the best way to do it but I usually end up cooking these in a frying pan. I start with the heat a little above medium and cook them for about 4-5 minutes on each side, turning when they're well-browned. Don't mess press down on them or keep flipping them, just leave them alone while they brown. If you're not sure if they're done, press lightly on them with your finger (don't do this right after you flip them)- well done burgers are fairly firm. To some degree this just takes practice. If they do need more time after they've browned, lower the heat to medium low. If there's a lot of liquid in the pan, I'll sometimes tilt it by putting a wad of aluminum foil underneath one side of it and let it cook that way so they don't get soggy.

Tuesday, March 1, 2011

Roasted Salt and Vinegar Baby Potatoes

I'm sure this would work with other vinegars as well, and I'll definitely give it a try with balsamic, but the rice vinegar worked well for this.

Ingredients
Baby potatoes, sliced in half
Olive oil
Rice vinegar
Salt and pepper
  1. Put enough olive oil in a skillet to cover the bottom, and put the heat on medium.
  2. Place the potatoes sliced side up in the skillet (you don't have to be that precise, but it does help them come out more even).
  3. When the potatoes have browned a bit, which will take 3-4 minutes, flip them so they're sliced face down.
  4. Wait another 3-4 minutes for that side to brown lightly.
  5. Hold the cover to the skillet in one hand and the rice vinegar in the other and splash the vinegar over the potatoes until the bottom of is lightly covered in vinegar.
  6. Then put the top down to hold in the steam (and the burning vinegar smell) and let that sit for about a minute.
  7. Turn the heat off and transfer the potatoes to a baking pan or cookie sheet.
  8. Sprinkle with salt and pepper.
  9. Bake in the oven 20-30 minutes (I honestly don't remember, but it will vary based on the size of the potatoes).

Garlic-Lime Breaded Chicken Wings

These came out like fried wings even though they were baked, so it's relatively healthy. You don't taste the lime too much, it just gives it a little zest.


Ingredients
1 1/2 lbs chicken wings
1 cup breadcrumbs
1/4 grated parmesan cheese
1/2 teaspoon of garlic salt
Pepper
1/8 of a cup of lime (or lemon) juice
1 egg
2 teaspoons corn oil

  1. Heat the oven to 350 degrees.
  2. Mix the breadcrumbs, parmesan cheese, pepper (to taste) and garlic salt in a large bowl.
  3. In another bowl, beat the egg with the lime juice and just 1 teaspoon of olive oil (this helps crisp the skin of the wings).
  4. Put the wings in the egg mixture and coat them.
  5. Grease a baking pan with the remaining 1 teaspoon of oil.
  6. One or two at a time, coat the wings with breading and place in in the baking pan.
  7. Bake for 45 minutes for smaller wings, or 1 hour for larger wings.

Oatmeal Chocolate Chip Cookies


These are amazing and are baked regularly, often with variations. It's loosely based on the Vanishing Oatmeal Cookie recipe on the top of the Quaker Oats container. To vary, use half chocolate chips, half dried cranberries (I highly recommend this) OR half chocolate chips, half raisins (we call these Raisinoats) OR go traditional and use all raisins. This recipe makes 2 dozen cookies.



Ingredients
1/2 cup (1 stick butter)
1/3 cup brown sugar
1/4 cup sugar
1 egg
1/2 teaspoon vanilla
1/2 cup all-purpose flour
1/2 teaspoon baking soda
1/2 teaspoon ground cinnamon
1/4 teaspoon salt
1 1/2 cups oatmeal
1/2 bag chocolate chips
  1. Heat oven to 350 degrees.
  2. Mix butter and sugar until creamy.
  3. Add eggs and vanilla.
  4. Mix in combined flour, baking soda, cinnamon and salt.
  5. Mix in the oats and then the chocolate chips / cranberries / raisins.
  6. Optionally, refrigerate the dough for about half an hour to make it firm. The cookies will come out a little chewier this way, otherwise they'll be thinner and crispier.
  7. Tablespoon the dough onto an ungreased cookie sheet.
  8. Bake for 8-10 minutes if you didn't refrigerate the dough, or 10-12 minutes if you did refrigerate it.

Eggplant Smoked Goudagiana

I made this one night when I was making eggplant and happened to have some smoked gouda, and was quite pleased with the results. It includes my standard tomato sauce recipe as well and makes enough sauce for 3/4 to 1 lb of pasta.

Ingredients
1 eggplant
Olive Oil
1/2 a medium onion, diced
1 garlic clove, chopped
2 medium tomatoes, diced
1 small can of tomato paste
Wine or vodka
Salt
Pepper
Basil (fresh if you have it)
Pasta, your preference
Smoke gouda sliced- depends on how thick you want the slices, I used about 1/8 lb
  1. Slice up eggplant about 1/2" thick and fry in a pan with olive oil over medium heat until both sides are browned.
  2. Place them on a cookie sheet in the oven 325 degrees.
  3. Put the diced onion and chopped clove of garlic in the pan, cook until soft.
  4. Add diced tomatoes, a small can of tomato paste, enough wine (or vodka) to make it saucy, salt, pepper and basil (if it's fresh basil, don't add it until the pasta is done).
  5. When you're ready to cook the pasta, spoon a little sauce on each eggplant slice and cover with thin sliced smoked gouda.
  6. Put the eggplant back in the oven, start cooking the pasta and it will be ready when the pasta is done.