Attention comment spammers! I screen every comment on this blog before publication. Please apply your skills to do something better for our world.

Posted on by Don | Leave a comment

Replacing Hood Release Cable on a 2003 Saturn Ion

Just a quick note on this one. We have an old Saturn with 155,000+ miles on it. Things are at the stage where lots of stuff is starting to break (exhaust, front brakes, starter) and need repairs, but it still is good basic transportation to keep around as a second car and gets better mileage than our Subaru Outback.

With all the recent repairs I’ve been doing, the fact that I’ve been using a coat hanger stub poking out of the grille to open the hood (after the release cable broke a couple of winters ago) started to get old. Looking around the web there was little info on how to actually do the repair but the parts were fairly cheap – I was able to get a “used” and “minor cosmetic issue” unit from Amazon’s Warehouse deals for under $16. So I decided to give it a go. (BTW, the cable ended up being brand new in original packaging when it arrived, yay!)

Should you be looking to do the same, I figured out an easy way to get the fix done.

Our cable had snapped (and the handle came off) from the end inside the car. The cable is routed from inside the kick panel next to the driver’s side, up behind a bunch of insulation/sound deadening stuff, through the firewall (passing through an integrated grommet) and into the engine compartment. From that point below the cowl area it travels along side the battery connection/fuse box frontwards and through a hole in the radiator support and turns toward the center hood release. There are two routing clips along that route through the engine compartment, one near the fuse box and one just through the radiator support.

It seems there was a factory technical service bulletin at one point due to the fairly common seizing and breaking of the hood release. Water was getting inside the cable sheath and freezing in cold weather or causing corrosion which ultimately jammed the cable. Cables were replaced while still under warranty and they changed the routing of the cable to pass over (instead of through) the radiator support to eliminate the dip in the cable which was trapping the water.

Looking at this situation, I was not looking forward to having to manually route this cable so I was looking for some way to get it done more easily. I ended up figuring out a really simple solution and had the cable done in less than 10 minutes once I started. Here’s what I did:

Inside the car, remove the trim alongside the driver seat/rocker panel area – lift the plastic at the seam/split and snap it off (4 clips, 3 on the rocker panel and one under the dash). This reveals the hood release lever mount and the cable end. While our lever was already broken off, you can take off the lever here and remove the cable end.

Under the hood, remove the cable end from the hood release lever (I also removed the grille assembly via the 3 small bolts to give me more working room as I was removing my prior coat hanger hack as well). Pull the ferrule towards the front of the car (firmly) to remove it from the bracket and then down to provide slack in the cable. Wiggle the cable end out of the release lever so the cable can come fully free. Trace the cable and release it from the two guide clips mentioned above.

Now that the cable is free of all but the firewall pass-through, go back to the driver’s footwell. There I used a plumber’s pipe cutter tool to cut the cable sheath several inches from the cable end and pulled the sheath off so that I had several inches of bare cable available (you may need to cut off the cable end ball). I then used a pair of vise grips to clamp on the sheath and pull about a foot of the cable assembly back into the footwell. This dragged along the integrated grommet on the cable, which I slipped off after removing the vise grips. Now there was a full length of smooth cable sheath I could pull back through the firewall to the engine compartment side.

Inside the car, I took the new cable assembly and attached the lever to the end of it. After wrapping several turns of the old cable around the front/latch end of the new cable (being careful not to kink the new cable), I wrapped a couple of turns of duct tape around it (staying clear of the new cable as much as possible in order to not gum it up). I was able to then go out to the engine compartment and simply pull the free end of the old cable and it dragged along the new cable, pulling it through the firewall (including seating the grommet) and along the existing routing to the radiator support. Once there I did the equivalent of the factory TSB and routed the cable over the radiator support and back down to the hood release to prevent the cable dip.

However, before installing the cable at that end, I lifted it to face vertically and squirted a whole bunch of white lithium grease in the cable end to lubricate it and inhibit moisture. I then proceeded to install the cable into the hood release as it was before, being sure to snap the ferrule in properly and tight. Snapped the cable back into the guide clips and installed the release lever onto the cable in the footwell. Slid the release lever assembly into the mounting bracket in the footwell and tested the release to be sure the hood opened (which it did smoothly/easily!) and then reinstalled the fascia panel from the kick panel and along the rocker panel.

Now that I knew the hood could be opened normally, I then reinstalled the grille assembly and made sure to align it with the hood (required some wiggling before tightening the bolts). Done – now we don’t have to explain to service personnel how to open the hood anymore!

Posted in Automobile, DIY, Frugal Living, Handyman | Tagged , , , | Leave a comment

DIY Crock Pot Sous Vide System

On a visit to some friends I became aware of the whole topic of Sous Vide “under vacuum” (SV) cooking, the concept of using a controlled water bath to cook food (particularly meats) at low(er) temperatures for more consistent and desirable results. High end restaurants have been doing this for a while. At the time, Sous Vide systems were quite expensive but some home cooks were doing ingenious hacks to simulate a professional SV cooker by using hot water in beer coolers, etc. In that discussion, I mentioned that I thought one of the small computers I was toying with for home automation (HA) could make a simple & cheap SV system with some other basic parts.

It took me some time to come back around to the whole SV idea myself. Not too long ago I came across a great deal on some London Broil at Market Basket and that served to get me going on setting up my own SV system using parts I had already at the house from my previous HA projects. While there are now some SV immersion systems on the market for under $200, I thought I had everything needed to make one on hand. I figured I could try it out and see what I thought of SV cooking without spending any more money. Here’s what I came up with.

DISCLAIMER: This post is just to document what I did. I’m a hobbyist and know almost nothing above my tinkering. I DO NOT MAKE ANY ASSURANCE THAT THIS IS APPROPRIATE FOR HEALTH OR SAFETY CONSIDERATIONS. YOU ARE RESPONSIBLE FOR YOUR OWN FOOD HEALTH DECISIONS AND FOR USING ELECTRICITY RESPONSIBLY. I WILL NOT BE HELD LIABLE FOR ANY ACTION YOU TAKE TO FOLLOW THIS SAME PATH AND ANY DAMAGE THAT MAY RESULT. YOU HAVE BEEN WARNED! But should you make some delicious food as a result please comment to let me know!

OK, with that out of the way, here’s a photo of my solution:

My DIY Sous Vide System

The major parts here are:

  • standard Crock Pot slow cooker
  • Programmable Power Controller, consisting of:
    • CAI WebControl PLC (Programmable Logic Controller) unit
    • DS18B20 1-wire temperature sensor, embedded in a stainless steel probe
    • AC to 9v DC power adapter
    • 5v “Arduino” relay board
    • Misc. breadboard wires, low voltage wires and a PC 12v fan connector
  • 110v home wiring components:
    • Light switch
    • Power outlet
    • Appliance power cable
    • Misc. wires and connectors

More details to come, including my PLC program used to control cooking.

Posted in Cooking, DIY, Frugal Living, Handyman, Sous Vide | Tagged , , , , | Leave a comment

Hack: Recycled Scrubbies!

We love to save money and the environment. Aways great when you can get a two-fer, and here’s one!

Do you need non-scratching scrubbing pads for cleaning around the house? Did you know that the woven plastic netting from vegetable packaging like this onion bag works wonderfully? No need to buy scrubbies when you can make them yourself from something you aready have!

Just cut the woven material away from the product labeling and you’re set to go (it used to be easier when the bags used to have simply ties – before they started bonding plastic labeling to the netting – but I haven’t found any brand that doesn’t do it now). Avoid the other non-woven plastic “netting” bags that are sometimes used (where they simply slit a flat sheet of plastic and stretch it into an open net form) as these have sharper edges and may scratch.

Be sure to test it someplace inconspicuous to be sure it doesn’t scratch the surface in your application. I find these work great for cleaning out grubby pots and the kitchen sink. If they get messy just toss ’em in the recycling bag after rinsing them out and grab a new piece – they don’t “cost” anything, after all! :)
2015-05-20 20.29.34

Posted in DIY, Frugal Living | Tagged , , , , , , | Leave a comment

OpenVPN on Tomato with Android and Linux Clients

I’ve been wanting to do this for a very long time. When away from home I sometimes need access to the systems (or data residing on those systems) back at home. I wanted to set up a secure means to access the machines behind my router’s firewall and one of the most versatile and secure ways to do that is with a Virtual Private Network (VPN). The problem was that this stuff is pretty complicated and even though the open source firmware we run on our router has had a VPN-enabled version available, I’ve been loathe to try implementing it.

Well, the garage control system project I was recently working on had a hardware failure such that I could not implement it in the original way intended (until I replace the CAI WebControl board central to it). The board failed in such a way that it would not accept PLC programming but would still respond through the default web interface – which unfortunately is not sufficiently secure to expose to the internet directly. However, we were going away for an extended period and I needed to be able to access it while away. A perfect application for VPN technology, I could keep the “vulnerable” system firewalled behind the router and poke a secure hole through it using the VPN to control it from afar when needed. Just the shove I needed to get going on the VPN!

Curiously enough, in googling, I was able to find various basic tutorials about setting up a Tomato VPN-enabled router (which is Linux based) as a VPN server with Windows clients and creating the certificates and keys on Windows but pretty much nothing simple about doing so with other platforms like mine – Android (again Linux based), Linux and Mac. The ones about setting up a VPN with Linux all seemed to want you doing everything down in the weeds of config files and installing VPN packages on your own server (not a router). Not what I wanted.

The good news for you and me is that I figured out how to get this done with minimal effort and it pretty much worked perfectly on the first try, so I’m writing it up here for future reference and to share with any others following this path. Looking back, it wasn’t that hard but the lack of clear guidance made it all confusing. All that said, here’s some clarity on how to get it done:

Creating Certificates and Keys

On Linux Mint LMDE (Debian Linux) workstation, using Synaptic or another package manager install:
openvpn
easy-rsa

This will install the easy-rsa scripts into
/usr/share/easy-rsa

Taking note of the instructions at http://openvpn.net/index.php/open-source/documentation/howto.html#pki, I did the following:

Copy the easy-rsa files to another location that will persist after package upgrades (note, this location already existed as a result of the openvpn installation and contained the single file update-resolv-conf, so maybe that claim is misleading?) and cd into that directory:
sudo cp -R /usr/share/easy-rsa/* /etc/openvpn/
cd /etc/openvpn

Edited the vars file using vi to set the KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, and KEY_EMAIL parameters. These were at the bottom of the file for me. From what I can tell, the two email entries are identical but for the quote symbols. I presume the quoted one is meant to be the “real life name”, but nothing I could easily find via google confirmed or contradicted this – so I just set them both to the same address.

export KEY_COUNTRY="US"
export KEY_PROVINCE="MA"
export KEY_CITY="MyCity"
export KEY_ORG="My ORG Name"
export KEY_EMAIL="vpn_contact@myDomain.com"
export KEY_EMAIL=vpn_contact@myDomain.com

I then completed the rest of the steps at the above link using root/sudo priviledges, creating the certificate authority, server certificate and key and then the client certificates and keys. What I found online was not very informative on this point, but the Commmon Name (CN) must be entered each time you build these items and should be varied so as to be descriptive. So, for each command:

./build-ca
For this I specified my own name as the Common Name (I’m my own certificate authority) and it generated two files, ca.crt and ca.key (note, these are not named after the Common Name given, unlike the following).

./build-key-server ServerName
I gave my intended VPN server name as the ServerName which it then used as the Common Name and generated ServerName.crt, ServerName.csr, ServerName.key plus a 01.pem file and changed the index.txt and serial files in the keys directory.
NOTE: I also here encountered something different than that laid out at the above URL, for each key it asked me for:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
which I simply clicked Enter through (I presume to set as blank, as no password was later asked for).

./build-key ClientNameHere
I gave unique descriptive names for each client and it created similar files to the server ones above, named per the client names I gave, created sequentially numbered pem files and updated the index.txt and serial files.

./build-dh
Returned Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
(But it didn’t – it was less than 5 seconds on my main Linux 64 bit workstation)

In the Arch Linux wiki entry for EasyRSA it stated that there was a need to convert the server certificate to an encrypted .p12 format for use on Android. I found this to not be needed, using the OpenVPN for Android client from the Google Play Store.

In order to provide additional TLS security and to protect against potential denial of service attacks against my router/VPN server I also set up an HMAC signature:
openvpn --genkey --secret ta.key

Setting the server and clients up…

As I created all the certificates, keys, etc. on my main Debian workstation, I needed to transfer those files to the associated machines. First I used my browser and the Tomato-powered router (VPN server) web interface to set up the VPN server following the info here *except* for using TUN instead of TAP. Installing Tomato is covered in my other blog post. Here’s screenshots of my settings (click on them to enlarge):
Tomato-Version
Tomato-VPN-Basic
Tomato-VPN-Advanced
Tomato-VPN-Keys
Tomato-VPN-Status

Connecting with a Linux machine. I then set up the test client on my Mint LMDE/Debian laptop following the leads at https://support.hidemyass.com/hc/en-us/articles/202721596-OpenVPN-Setup-with-Network-manager-on-Linux-Mint-Mate , which dragged along a bunch of other required packages including openvpn, easy-rsa, etc. I imported the certificates and keys when setting up the VPN connection using NetworkManager. Trying to connect via this initially failed. I thought this might be because I was on my home network at the time, so I proceeded to set up my phone as a client to see if I could use the cellular network to test outside access.

Connecting via Android. I installed OpenVPN for Android from the Google Play store onto my cell phone. Copied over the certs and keys to my phone using USB cable and set up the connection in the app. Took a bit of twiddling to figure out where everything went and which boxes to check, but it connected quickly once set up. Could access private resources behind the router firewall now! I went on to set up my Android tablet with the same app.

Connecting from an Outside Network. Brought my phone, Linux laptop and Android tablet for a drive to find an available Xfinity Wi-Fi connection. Tried each client to access the VPN once connected to some poor folks’ wireless access point (why folks stand for Comcast doing this, I don’t know), and they all connected quickly and could access my Garage Control System web interface on my home network… success!

Note that in none of these set-ups did I need to edit or create any configuration files manually on the clients or server, despite lots of other tutorials making great points of this! It appears each of the OpenVPN server and client implementations I used took care of this for me.

The only bit of weirdness is that I cannot figure how to directly disconnect from the VPN using NetworkManager under MATE desktop on my Linux laptop. I can disconnect the VPN by dropping the wireless connection overall. There should be a “Disconnect VPN” option within NetworkManager but I don’t see it on my laptop when I’m connected (it is there when I’m not!). But that’s a (minor) problem for another day.

I’ve found the disconnect option in the VPN menu under NetworkManager and that can be used to drop the VPN connection. The Android clients have a connection status entry in the notifications list which provides a disconnect option once clicked on. All good to go now!

Posted in Computer, Debian, DIY, Linux, Mint, Windows | Tagged , , , , | Leave a comment

Spicing Up Your Dance Collection with Pepperplate

In this post I will lay out some history of how I have managed my dance collection and what I am currently exploring as a way to greatly simplify the work of building and maintaining that collection and making it available whenever and wherever I am.

I’ve been calling (leading/prompting) contra dances for several years now. One of the things you need to figure out pretty quickly when you decide to become a caller is how you’re going to record and organize your dances.

Like most beginning callers, at first I recorded dances by hand on index cards (or all too frequently, any spare sheet of paper I could find at a dance). As my collection grew (and I started actually having to use these compositions to lead others through the dances) my requirements for standardization and legibility grew. (In all fairness, my background includes quite a bit of business process work – so I’m a bit of a process wonk.)

So for a couple of years now I’ve been working with a system which typically involves too much work. Why? Because I chose to standardize on using 3×5 inch index cards, which turns out to be pretty darn small. The 3x5s have enabled me to carry my core card collection easily in my dance bag if I want. But the small size means I need to really work on re-writing a lot of the material I gather to abbreviate or summarize and reduce to a standardized shorthand format I record on my cards. The real estate has been very constraining (but in fairness has made me really good at slimming down language clearly). And when someone else wants to see my card or I post a dance to a discussion group there’s sometimes questions about the notation.

I have been creating these cards using a template I had set up in Open Office Writer (now Libre Office) which then I would laser print 4-up on card stock as I added new ones or a given card wore out/was revised and then cut them with a paper trimmer to size. I could also export the cards to a large PDF file containing my whole collection. I kept both the pdf and original files backed up and synchronized across several computers via Spider Oak so I would never fear losing my collection. An example card:
A dance card format example.
My workflow for finding dances and transforming them into a usable card was essentially:

  1. Find a dance I liked. This could be from dancing or seeing one danced or based on something in email from a group/forum, etc.
  2. If got in person, I originally would scribble it down. Sometimes a caller would offer to email it to me. My latest trick has been to either take a cell phone picture of a caller’s card or quickly get the dance name and/or moves entered into Google Keep on my phone.
  3. If via email, I tag the email with a “Dance to Collect” tag in GMail which becomes a queue to transcribe from.
  4. Discover my dances in queue (Keep, email or photos) and review them for quality/suitability. Was I just in a dance trance and got carried away or is it really a good one? Will I actually call it? If all good, continue on. If not, delete or recycle the paper.
  5. Process worthy dances into standard format, adding them to the master Writer file. Queue them in the “dances to review” section and when there’s a suitable chunk, print on recycled regular sheets of paper to try out.
  6. Kitchen Validate. Try dancing my transcribed card in our kitchen. If needed, cajole other family members to run through it with me. Apply my now standard set of QA checks to the dance (progresses? work for both roles? etc.) and create teaching notes as required for when I’d call it.
  7. Dance Validate. When a suitable opportunity presents, call the dance. Note any key learnings on the card and mark it as validated as applicable. Factor in any dancer or musician feedback (often noting the tune chosen, if I’m sharp enough to ask).
  8. Update Cards. When I’d think of it, I would drag out my cards and scan them for ones with handwriting on them and record that information back into the electronic copy. If significant, I’d reprint the card(s).

As you can likely tell, that’s a lot of work. However, my cards enabled me to do a pretty good job calling even material that was new to me. I often got positive comments from musicians I worked with about the cards being very usable.

If you’re a caller, you might ask why I wasn’t using one of the existing caller tools to capture my cards, like Caller’s Companion or Dance Organizer? Well the answer is that I don’t have any iThings or WinThings. I run Linux on all my computers plus my cell phone and tablet are using Android currently. Sadly both of the established caller solutions don’t support any of what I’ve got.

So in a fit of frustration the other day I launched into yet another of my ~yearly reviews of the caller/leader software out there and found the dedicated applications landscape to have essentially remained unchanged. I thought briefly of setting up something on my own domain, veino.com, to do this as a database application but that would be limited to where I could get on a network. So, as an open source enthusiast, I started thinking creatively (we often need to do this, as popular “local app” tools are frequently omitted for Linux in particular). My breakthrough was thinking “what is a dance card?” and my answer was “it’s effectively a recipe for a dance.” With that insight, I started researching the recipe management software solutions out there. Again, I found a lot of stuff for OS X and Windows, even Android and a bit for linux. As I looked into it I realized my criteria basically boiled down to:

  1. Being able to add or edit dances anywhere I was on any device
  2. Being able to print them to hard copy if needed
  3. Being able to organize them into a program for an evening.

These were the core requirements, several ancillary ones flowed from there. These included the ability to classify dances in standard ways for filtering, searching to quickly find one, and managing my work queue. Also important was the ability to work offline when a web connection was not available (and sync that work when connected again).

The end result of my search was finding the Pepperplate recipe suite. It supports all my electronic devices, either through local apps or website tools. It supports tagging, filtering and search. The dance and meal analogy gets extended via treating a dance as a dish, a program as a menu and a booked event as a planned meal. It supports sections (parts) of a recipe, like sauce (A1), ingredients and instructions (moves and calls/teaching points). Pepperplate provides for adding dishes to a menu, and menus to a meal. I find that the analogy fits pretty well and I can use this tool to do most of what I want for my dance collection seamlessly. It also supports sharing recipes (dances) in a couple of easy ways.

The biggest difference from what I’ve otherwise found in the caller tools space is that this will work with pretty much all popular (and even unpopular) devices and that it automatically syncs across them. And not that it really matters given the relatively low cost of the existing dance leader applications, but it is also free.

I’m in the early stages with Pepperplate and tried calling from it for the first time just this past weekend. I only have a limited set of dances in the tool so far but it has been doing pretty well. I’m no longer severely space constrained! I do have some criticisms and have discovered some workarounds (mostly Android settings) to get around them. And BTW, there’s a big plus for me: the Android app includes a timer for each dish (dance) in a menu (program), so I can set it for how long I want to run the dance and a “can’t miss” message pops up to keep me on track.

In fairness, there are some risks and glitches with using Pepperplate for a dance collection beyond the obvious. These include a dependence upon a business with a not entirely clear how they make money business model. They might also not be happy with it being used this way (though from a quick review of their Terms of Service it appears to not be in violation and doing so just provides more eyeballs for their ads served). However, the data is stored locally on the device for off-line use and (at least on Android) is in a format that can be backed up and extracted/manipulated should Pepperplate.com go belly up.

Is it ideal? No, but it’s ~85-90% of the way IMO. Until something better comes along, I think I’ll be using Pepperplate to manage my dance collection going forward.

In a later post I’ll cover my experiences and tips with using the tool for this application: limitations I’ve found as a dance organizer (and even as a straight recipe) app, how I’ve set things up for ease of use/applicability and how I’ve fit Pepperplate into the dance collection workflow I lay out above. A quick preview: it has made things much easier!

Posted in Computer, Contra, Dance, DIY, Frugal Living, Linux, Recipes, Windows | Tagged , , , , | 2 Comments

gLabels Avery 5167 Template Problem

Was having trouble printing some 5167 Return Address labels using gLabels. The alignment was significantly off in my set-up using the default predefined template installed with gLabels on my Linux Mint LMDE netbook.

In comparing the template definition file with the stock measurements I found several things to be off slightly. In addition, my Samsung ML-2851ND laser printer appeared to be shifting the page image a bit also.

I created a custom template, adjusted for what I was experiencing, and now I can print consistent cleanly formatted labels within the stock outlines. Should you be experiencing similar issues, you could use my custom 5167 template. Just save into a file named as your_filename_here.template in the location set by your distribution (for Linux Mint LMDE, I discovered that was in ~/.confg/libglabels/templates).

BTW, should you need to customize the template further, see this documentation.

Good luck!

Posted in Computer, Debian, Linux, Mint | Tagged , , , | Leave a comment

Google Voice Greeting Playback Problem with Firefox and Flashblock

Just debugged a problem which for which there seemed to be no solutions posted on the web already. So in case you (or I, should I forget :) ) run into this, here it is:

Was trying to play back Google Voice greetings on my Linux Mint LMDE system today. I selected the proper greeting and pressed the play button, but nothing happened.

Thinking this was some sound complication with my recent LMDE update pack 8, I spent some time poking around my alsamixer and pulseaudio settings and nothing seemed amiss. Tried googling the web for others with the problem but nothing direct came up… but something triggered me to think about what they used to accomplish this playback within a browser window and I thought… “flash!”.

I had recently installed the Firefox extension Flashblock, which disables and replaces flash entities with a little symbol you can click on to enable them selectively (no more annoying ads playing on web pages and slowing down page loads!). The problem was that the GV greetings page was using flash, but the indication of it being blocked was not showing – there was no symbol to click on.

So I went into the Firefox extensions settings dialog for Flashblock and whitelisted https://www.google.com/voice and then went back to try playing the greeting – presto! we have sound!

Posted in Computer, Firefox | Tagged , , , | 1 Comment

Better Than a Rooftop Box – Take 2

After a bit of a delay I finally got around to finish painting the trailer begun some time ago. I think it has turned out really well but is eggregiously over-engineered – hence it has a new acronym-derived nickname: MOET (Massively Over Engineered Trailer). At least it should last for a good long time!

Here’s some shots of the (mostly) finished product, which is painted with Interlux Brightsides marine paint using the “Roll and Tip” method. There’s just two things outstanding for this right now – I have the vinyl to sew up a matching yellow spare tire cover and I’m in the process of designing a new LED-illuminated license plate holder to mount on the back center of the box (you can see the power connector for this is already installed in position). Yes, I’m not satisfied with any pre-made ones on the market currently. :)

Click on any of the images below to enlarge the picture.

Front3-4Front View – Note the shiny paint!

Rear_3-4Rear View – Showing changes from the original version including illuminated guide posts and high signal lights

Rear-OpenHatch Lid Open – With revised integral wiring channel for compartment lighting

Ear-FrontFront View of Added “Ear” – I needed a way to mount the guide lights which would allow them to clear the lid rim

Ear-RearRear View of “Ear” – Additional turn/stop signal light and guide light wiring is routed through here into box. Note the quick disconnect to allow removal of the guide posts for storage.

Driver-Rear-WiringChannelDriver Side Wiring Channel – Including protective cover for wiring junctions and switch for lid LED light

Pass-Rear-WiringChannelPassenger Side Wiring Channel – All wiring is routed inside dry fitted 1/2″ PVC pipe to protect it from cargo damage

Posted in Frugal Living, Trailer, Travel | Tagged , , , | 3 Comments

Autumn Olive – Crab Apple Jam

jarI’ve become a little bit crazy about foraging for unloved natural foods available nearby. For a little over a year following a class given by Russ Cohen, we tried to find Autumn Olive (AO) in our area, checking out just about every bush with red berries nearby but coming up empty.

One day we tried a “story walk” with our toddler daughter in a nearby conservation area and bam! we happened on autumn olive bushes! Once we knew what the real plants looked like (they were talked about but not shown in Russ’ class), I came to see them everywhere. They’re very distinctive once you’ve found one.AO-berries

So, with the fruit everywhere and so easily gathered, the next challenge was to make something with it! At first, I tried the fruit leather mentioned in Russ’ book. Several gallons of berries became three quart baggies full of deep rich red fruit leather. Sadly, my wife isn’t fond of it – although our daughter shares my fondness for the tart fruity taste.

The same conservation area has a crab apple tree whose fruit was made freely available. One day we went picking and turned them into a very flavorful jelly that my wife is very fond of.

A friend heard of my fondness for AO and gave me a recipe for AO tart from Northern Woodlands magazine, which I made for a potluck at a contra dance and found wifey liked that (contained sugar where the fruit leather hadn’t).

I’d found another small crab apple tree while gathering the latest batch of AO for the tart, so I had some of those and a bunch of extra AO left over and was looking for something to use them up. There are very few unique AO recipes out on the web and even fewer for AO jam or jelly. I did come across one jam recipe that used commercial pectin, but I didn’t want to go that route and remembered how easily the crab apple jelly had naturally set. Seeing that I had several cups full of crab apples on hand, I thought I’d take a shot at coming up with my own combined Autumn Olive – Crab Apple jam recipe (despite this being my first time making jam, but hoping that combination might become a hit with all three members of our little family).
jar-open
To my delight, it turned out great! Good flavor and a firm natural set with wonderful color. So here it is…

Autumn Olive – Crab Apple Jam

Ingredients

6 cups crab apples (firm, ripe)
8 cups autumn olive
3 & 2/3 cups sugar
1 tablespoon concentrated lemon juice
1 tsp coconut oil (optional, for foam control)

Preparation

Cut crab apples in half from top to bottom, remove blossom end and stems. Clean autumn olive berries to remove all stems, leaves and unsound fruit. Process 2 cups of autumn olive berries through a food mill to remove seeds and skins, yielding a cold puree (I had this left over from preparing the tart above, and decided to use it in place of adding water to the pot for boiling the fruit). Add the puree, the prepared crab apples and remaining clean autumn olive berries to a large pot. Bring the mixture to a boil, reduce to a simmer and cook for 20 minutes.
ao-ca-pot
first-boil

Empty the pot’s contents into a food mill and process to yield a cooked puree free of seeds and skins. To me, the appearance and texture was much like a good tomato sauce with slightly brighter color. (The crab apples I’d found were late season and grainy when raw, and some of that carried through into the puree.)

food-mill

hot-puree

Put the puree into a clean pot with the sugar and bring to a rolling boil. (This being my first time with this recipe, I tried adding the lemon juice to help the set and added the sugar gradually until it seemed right.) Adding the coconut oil will help suppress the foam formed during the boil and save time later (some canning recipes use butter but that didn’t seem right to me, so I substituted the coconut oil successfully in both the crab apple jelly and this jam). Keep boiling until the mixture starts to “candy coat” the back of a metal spoon. The mixture is somewhat firm but still liquid at this stage.

Transfer the cooked jam to prepared canning jars and process normally (I used a quarter inch or so of head space processed in boiling water for 15 minutes), cool and store. Yield was almost exactly 12*4oz jelly jars and one pint jar of rich red firm set jam.

My daughter and I enjoy this jam a lot. My wife likes it less than the crab apple jelly (she seems to taste a “bitter” note in autumn olive fruit which we don’t). The grainy nature of the late season crab apples seemed to reduce with the further cooking, but there’s still a hint of it in the final jam. I look forward to trying to refine the recipe next year with earlier fruit, just hope the existing stock lasts that long!

Posted in Foraging, Recipes | Tagged , , , , , , , , , | 4 Comments

Recovery of Files from a Unbootable VirtualBox VDI

I do most everything computer-wise with open source software, but the one hold out remaining that requires the use of a proprietary OS is TurboTax. As a result, TT ran in a Windows XP virtual machine under VirtualBox on my Linux desktop. Unfortunately, after completing our most recent return, I got a little excited to do some basic housekeeping and tried to merge snapshots from the VM in order to save some disk space. Unfortunately, as the attempt at merging snapshots resulted in an error being reported by VirtualBox that basically amounted to “you’re really screwed, buddy” but put in much geekier terms with a bits and bytes error code. A later attempt to re-merge or boot the VM again did not work. The virtual machine claimed that key windows files (like the kernel) were not available. Argh!

OK, so I’m usually pretty careful and save off critical files from the Windows VM to the Linux host. I sadly did not do that for the very-last-as-filed TurboTax working file (I had an interim copy from several hours earlier but I know we made changes later). Had the pdf copies of our returns but not the final version of the .tax2011 file, which normally copies over key details to our next year’s return. And of course, hadn’t yet set up SpiderOak to backup the files from within the VM to the cloud. Double argh!

As the VM would not boot, I tried various alternative boot scenarios to get at the files but none of them worked, using either a Windows install CD or a Linux live CD image within the VM. Furious Googling finally turned up a useful working solution to allow access the files on the Virtual Disk Image (VDI) associated with the VM. Was then able to copy out the files needed from within the virtual Windows environment to native Linux file storage. Phew, dodged that bullet! Here’s what I did under Linux Mint LMDE 64-bit to get access and then clean up afterwards:

Install Required Packages
Using Synaptic, installed the qemu-utils package, which dragged along a bunch of dependency packages.
bridge-utils (1.5-6)
ipxe-qemu (1.0.0+git-20120202.f6840ba-3)
libaio1 (0.3.109-4)
libiscsi1 (1.4.0-3)
libspice-server1 (0.12.4-0nocelt1)
libusbredirparser0 (0.4.3-2)
libvdeplug2 (2.3.2-4)
qemu-keymaps (1.1.2+dfsg-6a)
qemu-kvm (1.1.2+dfsg-6)
qemu-utils (1.1.2+dfsg-6a)
seabios (1.7.3-1)
sharutils (1:4.11.1-2)
vgabios (0.7a-3)

Gain Access to the Disk Image
Within a terminal window, executed the following commands:
lsmod | grep -i nbd
Nothing was returned, so the nbd module was not loaded already. Loaded it:
sudo modprobe nbd max_part=16
Run qemu-nbd to expose the entire unbootable image as a block device named /dev/nbd0, and the partitions within it as subdevices.
sudo qemu-nbd -c /dev/nbd0 WinXP_VirtualBox.vdi
The referenced blog posting/commentary said to issue a partprobe command, but I got an error about it not being available and didn’t seem to need it as the partitions were visible without it. Could see this by:
ls -l /dev/nbd*
To determine partition details:
sudo fdisk /dev/nbd0
and press p
This revealed the desired Windows NTFS partition from the virtual disk:
Disk /dev/nbd0: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xdc94dc94

Device Boot Start End Blocks Id System
/dev/nbd0p1 * 63 20948759 10474348+ 7 HPFS/NTFS/exFAT

Access and Copy Off Files
OK, so create a mount point for the virtual disk and mount it READ ONLY:
cd /
sudo mkdir RECOVER
sudo mount -t ntfs -r /dev/nbd0p1 /RECOVER

Finally I could look at that mount point and recover the files:
cd /RECOVER/
cp -p /final/linux/resting/place/

Cleaning Up
Once I got all that I needed off the VDI, unmounted the image and shut down the qemu-nbd service:
sudo umount /RECOVER
sudo qemu-nbd -d /dev/nbd0

Then used Synaptic to remove all the qemu packages I’d just installed, to prevent the accretion of bloat hopefully never needed again. I’m trying to keep this Mint LMDE install tidy and avoid an OS reinstall for a good long time!

Posted in Computer, Debian, Linux, Mint, Windows | Tagged , , , , , , , , , , | 4 Comments