Home
login

Steamed Whole Fish

Steamed Whole Fish

Prep time: 20 minutes
Cook time: 25 minutes

  • 1 large minced garlic clove
  • 1/8 t. sugar
  • 4-5 thin slices fresh ginger
  • 1 c. sliced celery
  • 1/4 c. chopped green onions
  • 1 T. sesame oil
  • 1 T. rice wine
  • 2 T. dark soy sauce
  • 1 2-lb. whole fish (mackeral, trout, bass, etc.)
  1. Clean fish, remove scales, rinse, and pat dry.
  2. Combine all other ingredients in a bowl
  3. Place fish in a shallow baking dish and gently make 3 or 4 slices along the sides of the fish parallel to the bones.
  4. Spoon the vegetable sauce over and inside the fish.
  5. Place some inverted custard cups or a small grate in the bottom of a wok.
  6. Add very hot water to the wok, careful not to add it to the shallow baking dish, filling to about one inch deep.
  7. Cover the wok and bring water to a boil over high heat. Reduce to medium and steam for 25 minutes or until fish is tender.
  8. Remove from heat and serve immediately with rice and vegetables.

Tips and notes

  • If you don't have a wok, a turkey roasting pan with a cookie sheet for a lid works great.
  • Instead of custard cups, small cans (like tuna or other short cans) with both ends removed works well. You just want the baking dish to sit right above the water so it gets the heat of the steam all around.

Pumpkin Bars

Pumpkin Bars

Bars Frosting

  • 4 eggs
  • 1 2/3 C. sugar
  • 1 C. vegetable oil
  • 2 C. (16 oz.) pumpkin
  • 2 C. flour
  • 2 tsp. baking powder
  • 2 tsp. cinnamon
  • 1 tsp. salt
  • 1 tsp. baking soda
  • 1/8 tsp. cloves
  • 1/8 tsp. nutmeg

  • 8 oz. cream cheese
  • 1 C. soft butter or margarine
  • 2 tsp. vanilla
  • 4 1/2 C. powdered sugar
  1. Preheat oven to 350°F
  2. Cream eggs, sugar, oil, and pumpkin. Beat until fluffy.
  3. Stir in dry ingredients and mix well.
  4. Spread in an ungreased jelly roll pan.
  5. Bake at 350°F for 25 to 30 minutes or until toothpick in center comes out clean.
  6. When cooled, make the frosting as follows.
  7. Mix cream cheese and butter.
  8. Stir in vanilla.
  9. Add powdered sugar, a little at a time.
  10. Beat well and frost.

Note: I like to have this as a birthday cake. To do this, we bake it as instructed in a jelly roll pan and then cut that in half to make two smaller rectangles. Then we make a two-layer cake out of it with frosting in the middle and all around. So yummy.

Damn Good Chili

Good chili starts with strong flavors. This chili has plenty of that. We let fermentation (beer, whiskey, and soy) do its thing for us to give flavors that fresh food just doesn't have. This makes a lot of chili, so it's a good thing it tastes so good.

Damn Good Chili

  • Meats
  • 2 lb. beef (brisket, chuck, etc.)
  • 2 lb. ground beef chuck
  • 1 lb. boneless pork ribs (shoulder)
  • 48 oz. beef broth
  • Plant and Fungus
  • 2 C. mushrooms
  • 2 large red onions
  • 2 large green bell peppers
  • 2 jalapeno peppers
  • 2 6-oz. cans tomato paste
  • 2 28-oz. cans crushed tomatoes
  • 3 cans of beans, your choice (black, small white & small red)
  • Deglazes
  • 1-2 bottles beer
  • 1/2 C. whiskey
  • 1/4 C. soy sauce
  • Seasonings
  • 1/4 C. chili powder
  • 1 T. cumin
  • 2 T. cocoa powder
  • 1 t. coriander
  • 1 T. salt
  • 1/2 t. black pepper

Set crock pot on high (or a large stock pot) and add the beef broth. Add the crushed tomatoes and beans.

Cube the beef and pork into bite-sized pieces, removing and reserving the large chunks of fat. Heat a cast-iron skillet to medium high and sear the beef and pork cubes about 8oz at a time. Do not be tempted to put too much meat in the pan or the pan will cool and the meat will boil in its own juices instead of browning on the outside. Put the cooked meat into the broth as it finishes. Between sets of meat, if the pan has stuff stuck to the bottom, use some of the beer, or whiskey and soy to deglaze the pan, pouring the sauce into the pot with the meat and broth. When the cubed meat is done, cook the ground chuck on high, one pound at a time. Add the chili powder, cumin, cocoa powder and coriander.

Mince the mushrooms and jalapenos, dice the onions and green peppers. Fry the onions until clear, about 1 minute and add to the pot. Fry the peppers until bright, about 1 minute and add to the pot. Cook the mushrooms until most of the moisture has evaporated and reduced in size; add to the pot.

Add 1 T. oil to the frying pan and reheat. Add the tomato paste, allowing it to carmelize on the bottom of the pan. Add the tomato paste to the pot and deglaze the pan with any remaining beer, whiskey or soy sauce. Add salt and pepper to taste (~ 1 T. salt and 1/2 .t pepper).

Add sufficient beef broth, beer, water or apple cider to make the chili a bit runny. Cook at a low boil until meat is tender and the chili is thickened, about 4 hours.

Notes

  • Make your own beef broth. Throw 1 lb. ox tail, a gallon of water, a diced onion, salt and a teaspoon of peppercorns in the crockpot and let it simmer overnight. Super simple and so delicious. Pick the meat out and add it to the chili. Strain the broth and try not to drink it all.
  • You can probably use any cut of beef and pork here. You will be cooking them long enough that they will get tender. Brisket is pretty flavorful, so I used that. But it is not the cheapest cut of beef at the store.
  • Add more jalapenos as needed for heat. Or consider adding minced chipotle for a different chili profile.
  • I have heard that unfiltered apple cider works well in the place of beer. I used a dark stout that doesn't smell or taste anything like apple cider, so I don't know how true this is.... But my chili doesn't taste like the beer either, so maybe it is just all the other strong flavors mixing too.

Raspberry Sorbet

Last summer we bought a bunch of raspberries with the intention to make a bunch of jam. But we really got too much. So after freezing 24 pints of jam, I just juiced the rest of the raspberries and ended up with about 8 cups of juice. Into the freezer!

Now it is time to make some raspberry sorbet. I looked around online for some recipes and found that they were very similar: juice, water, sugar, and maybe lemon or lime. One recipe caught my attention because it involved invert sugar. I was hooked. But the ratios the recipe called for were way off, even at first glance. I looked up the molecular weights of sucrose and water and found that the ratio of sugar to water needed ONLY for the chemical reaction is about 95:5. Thinking that would probably end up as a solid brick of sugar once it cooled, I decided to add a little bit more water for a ratio more like 80:20. This turned out great.

Raspberry Sorbet

  • 4 C. raspberry juice
  • 2 C. sugar
  • 1/2 C. water
  • 500mg ascorbic acid (a crushed vitamin C tablet)
  • pinch of salt
  • 2 T. lime juice
  1. Raspberry juice comes from raspberries, not from a can. Press the raspberries through a strainer, squeezing out the juice, discarding seeds and thick pulp.
  2. In a one-quart pan, bring the sugar, ascorbic acid, and water to a boil, stirring occasionally.
  3. Using a candy thermometer, monitor the syrup, bringing the temperature up to 114°C/237°F/low soft ball stage. Remove from heat.
  4. Pour syrup into a heat-proof dish.
  5. Temper the syrup with about 1 C. raspberry juice by slowly pouring the juice into the syrup while stirring constantly.
  6. Add the syrup mixture back into the rest of the raspberry juice.
  7. Add salt, and lime, mixing thoroughly. Test for flavor.
  8. Cover the mixture and put it in the fridge until completely cooled.
  9. Chill using ice-cream maker until soft-serve consistency, according to manufacturer instructions.
  10. Put the sorbet in the freezer until frozen.
  11. Enjoy!

Reverse a Binary Stream Using Busybox

Today I had the need to reverse a binary stream using only bash and commonly-available command-line utilities. Not tac, sed, or rev, which are all line-oriented utilities that work best on ASCII data. I needed something that I could trust with binary data. This is what I came up with. Feel free to point out my weakness.

The first round was this:

reverse() {
    local i=0
    cat | xxd -c 1 | awk '{print $2}' | tac | \
        while read F; do
            printf "%06x: %s\n" $i $F; i=$((i+1))
        done | xxd -c 1 -r
}

I wasn't a huge fan of the while loop to prefix the lines with addresses for 'xxd -r'. The streams that I am using this for are only several kB max, so efficiency was not my first goal, but why not try to make it faster if you have the option? Some reading reveals that 'tac' is not available on every Unix platform. And 'xxd' is only available if you have vim installed. I swapped in 'hexdump' for 'xxd', but hexdump does not have a reverse, so I had to find a way to do that. This is where awk comes into play, doing and integer to character conversion for each line. This happens to run in about 6 times faster than the original version and uses stuff that even busybox has.

My final version was this:

reverse() {                                                                                                            
    cat | hexdump -v -e '/1 "%d\n"' | \
        sed -e '1!G;h;$!d' | \
        awk '{printf "%c", $0}'
}

You might use it like this:

$ reverse < file > file.reversed
# or
$ command -in -a | pipeline | reverse | process | reverse > some_output

Cherry Fluffy

I searched for "cherry fluffy" on Google and none of it was the genuine article. This is one of my favorite childhood desserts, along with several others that I just can't get enough of (oatmeal cake, apple pudding, cherry cheesecake, etc.) I have to post this to share and to make sure that it is there for future generations. Not that future generations are likely to turn to my blog for recipe suggestions.

Cherry Fluffy

  • Crust

    • 1 1/2 C. flour
    • 1/3 C. brown sugar, lightly packed
    • 1/2 C. + 1 T. butter, room temperature
    • 1/2 C. chopped walnuts
  • Filling
    • 1 C. milk
    • 37 large marshmallows
    • 1 pt. heavy cream
    • 1 can cherry pie filling
  1. Mix the crust ingredients together with hands
  2. Spread in a 9x13 baking dish and bake for 15 minutes at 400°F
  3. After baking, crumble with a fork while it is still warm
  4. Save 3/4 C. for topping and press the rest back into the bottom of the 9x13 pan; packed, but not too firm
  5. Heat the milk and marshmallows until melted
  6. Set aside to cool, stirring occasionally
  7. Whip cream and fold into marshmallow mixture
  8. Spread half the mixture over the crust in the pan
  9. Add the cherry pie filling in a thin layer
  10. Top with the remaining marshmallow cream mixture and finish with the reserved crumbled crust
  11. Refrigerate overnight before serving
  12. As a child, I remember this stuff going fast. But not everyone in my family *now* likes cherries. So sometimes we make half cherry fluffy and half chocolate fluffy, substituting chocolate pudding for cherry pie filling, and then adding grated chocolate as a garnish. That is pretty tasty too, but I still love the original.

And First Place goes to...

Wells Fargo!!! A heartfelt thank you for not waiting until the last minute to send out my tax documents. The deadline is January 31st for financial companies and employers to send out the various tax forms (W-2, 1099, 1099-INT, 1099-R, 1099-ad-nauseum) so that people will have plenty of time to file taxes before April 15th. In this age of computers, where I get *everything* as e-statements or other online forms, should we really have to wait for companies to sit on their cans to pop something in the _snail_mail_ on January 31st? Come on people. Does it really take that many compute cycles to calculate how much interest you have paid? Because I recall seeing something like "YTD interest paid" at the top of my bank's web page last time I logged in. And every *electronic* pay stub I get has "YTD taxes paid" and "YTD Total W-2 Earnings". I could get a W-2 and a 1099-R every day without ANY extra compute cycles.

Thank you again Wells Fargo. When the rest of the companies I do business with get it together I might be able to file my taxes and get my refund. Oh the waiting.

Theft deterrent or just a pain in the... knee

My '96 Geo Prizm is going on 15 years old this year with almost 130000 miles. I purchased her used in 2001 just before a long road trip to Austin, TX, for an internship with IBM. She has been a great car. I have had very few problems (and this post will likely jinx that). I finally noticed that her clutch was starting to slip. Yesterday I got her back from the mechanic to find that the radio was locked. Theft deterrent is what Delco (the radio manufacturer) calls it. I call it a pain in the butt. I call up my local Chevy dealer and they tell me they will get the code for me for $51. Gee, thanks. I just paid $1000 for new belts and a clutch. Sure, I would love to spend even more money to FIX THE PROBLEM MY MECHANIC CAUSED. I started to call the mechanic, to give him a piece of my mind, but all I got was the answering machine (I picked up the car just before closing). Tomorrow, I tell myself. Then I start poking around on google. I start searching for "geo prizm radio code" and come up with a question answer page with answers from real mechanics telling how to get the radio code for a Geo Prizm. Here is the answer they gave:

Quote:
Here is a procedure if you lose power or remove the radio while the secuirty is activated.

If the security function is activated and the radio is disconnected from battery power, the radio will display "LOC." The radio will not operate until the correct code is entered. If the customer code is lost or unavailable, use the following procedures to determine the factory backup code. This procedure requires a tone dialing telephone.

  • Turn the ignition switch to "ACC" or "ON" position.
  • Press and hold the "2" and "3" buttons until a four-digit number appears on the display. This is the radio display code; record this number.
  • Using a tone dialing telephone, call 1-800-537-5140 (USA and Canada).
  • When the computer advises, enter the appropriate dealer code using the telephone keypad:
    Chevrolet/Geo Dealer Parts Code: Enter a "1" and the last five digits of your Chevrolet/Geo dealer parts code, then press "*" (star key).

  • When advised, enter the four-digit radio display code obtained in Step 2, then press "*" (star key). The computer will respond with the factory backup code; record this number.

To unlock the secured radio, refer to "Unlocking System After Power Loss" earlier in this section.

Armed with this information, I went to my car and got the "radio display code". I have no idea where to find a dealer/parts code. I figured that it MUST be a secret number that dealers have so that thieves cannot just call up the 800 number and ask for the unlock code. Not being a thief, I figured it was okay for me to call the number and guess a number for the dealer code. I did just this. The first number I guessed was not valid. But the second number was. Then it asked for the display code and it gave me my unlock code. Just like that. If it was this easy for me to obtain the code, this really does fall into the "pain in the butt category" rather than the "theft deterrent" category. I wrote my code down and filed it away. Thanks to Google and the fine mechanic that posted the answer, I didn't have to pay my local dealership $51 and I have a working radio again.

Playing with GPS

GPS azimuth elevation chart with pygtk
GPS azimuth elevation chart with pygtk
GPS satellite azimuth elevation chart
GPS satellite azimuth elevation chart
I must have spent too much time hearing the other Elecraft K3 owners talk about fancy precision oscillator stuff because when the idea got into my head that I could make a really 'simple' embedded NTP server with the bonus side-effect of a GPS disciplined oscillator, I could not get the idea out of my head. So that is my latest project. I started by reading loads of hardware spec sheets and looking at various required components. Then after I had a pretty good draft of what the plan was, I started ordering engineering samples. The hope was to do this with purchasing as little as possible in the way of parts. So far, I have acquired a good portion of the parts and hope to get a few more before I have to go get the rest on my own.

GPS satellite azimuth elevation with traces
GPS satellite azimuth elevation with traces
One of the things I DID purchase was a GPS device. I didn't want any old GPS receiver, I wanted one that had a 10kHz output that is in sync with the 1 PPS output. Really this meant that I had to go with an older (used) model. But because they are a bit rare these days, that didn't really save me much in the way of money. I was giddy when it came in the mail. I started poking at it. Documentation was scarce. Finally I figured out that it has an Oncore GPS core in it, which finally led me to some more detailed documentation about the serial interface. After that, it was just a matter of whipping up some software to read and write the necessary packets. Then the fun started. I started logging data and learned how to make use of some of it. I have a handful of commands that I use to set it up and receive location updates, satellite position, and leap second information.

After looking at the location information that the receiver was providing, I moved on to the GPS location. Then I decided to make a tool to visualize the satellite positions. First I did this using ASCII art in the shell (which turned out surprisingly well). Then I added the traces of the satellite positions over the last 24 hours. This showed me some interesting things. First of all, it showed me that I had my plot wrong. (I had the north pole over in the east.... Ooops). Second, it was more a general coverage plot, since characters aren't quite so precise as pixels. This convinced me to move on to a pixel-based plot, using pygtk. This one started out simple, but got fancier as I realized that it would be easy to add a feature here and a feature there. The gtk version lets you mouse over a satellite and it shows more detail about that satellite, like the ID number, lock status, azimuth and elevation, etc. It also shows the trails of the satellites in dots that are color matched to the squares that represent the satellites. If the satellite is locked, then there is also a circle around it. The plot updates in real time with the changes in the log file from the GPS device.

Lego CW Iambic Paddle

Lego CW Paddle
Lego CW Paddle
As I read the April 2011 edition of QST, they featured a picture of a CW key made of Legos on page 20. I thought to myself that this was the kind of project I was up to. Rather than a straight key like N1LF made, I decided to go with an iambic paddle. You might be asking yourself, why would Vernon make a lego paddle when he has a cool CW touch keyer that he finished 2 months ago? Two reasons: 1) because I am a tinkerer, and 2) the touch keyer is way to sensitive and lacks the tactile feedback (I think) I want. The capacitive touch sensors I used don't seem to be very adjustible, which is unfortunate, because when I finally assembled it in the box, the key sensitivity went way up. It can sense my finger about 1/16th inch away, which means it is transmitting dits and dahs before my brain gets the tactile feedback from touching the cold aluminum. Let's see what Legos can do for me.

When I was a kid, I got some Legos Technics and loved them. I spent hours building things. I even went as far as rigging up a motor to work with them (since my set didn't have one). I kept them all those years and pulled them out this morning an whipped up a iambic paddle before work. Nathan was impressed with my skills and was happy to find that I used MY Legos and not HIS Legos. The design is all original and was mostly constrained by the variety of pieces that I had on hand. But it seems to be well built and not too wobbly. In other words, you can use it just fine, but you can't really slap it around. The only non-Lego parts are the bolt and washers for paddle adjustment, the rubber band for paddle return, and the aluminum foil for the contacts. I found an old stereo 1/8 inch plug and cord in my junk drawer and wired it all up at lunch time. It works like a champ. Maybe not so smooth as a Begali Magnetic Pro paddle that I am dreaming of, but maybe it will get me there until I can save my Euros to buy one.

12345next pagelast page