the f250

a story for moth night at the ledbetters

1. After finishing grad school in Williamsburg, Virginia and knowing we would move within a few months, we decided not to renew our lease. For this reason, we spent about 4 months toward the end of the year, effectively homeless, all our worldly possessions in storage and ready for the move. A good friend was in India for a stretch, and he kindly sublet his basement apartment to us. Virginia in the tidewater area is like Houston in terms of climate, and our basement was quite dank and smelly, pungent with the fragrance of body spray, curry and mold. Occasionally bec could be heard gently sobbing in the shower over the chirps of crickets, keeping her company in there. At least 2-3 times a week, the undergraduates upstairs played beer pong, balls and solo cups connecting loudly with the wooden floor among the clatter of feet and drunken revelry. Vijay returned a little early, and in October or November found ourselves moving on to a hotel by the edge of town.

2. The hotel on the surface was much better than the basement, no crickets in the shower and we had a free continental breakfast every day, as well as a decent pool and Jacuzzi. We did notice a few other residents milling about, once room in particular attracted a lot of attention. This was obviously the local crack house or muster point for the Mormons, hard to tell based on the random clientele and their states of dress. Bicycle was also the preferred mode of transportation. Missing a stove or kitchen, we ate microwave lasagnas almost nightly and to this day get a little queasy at the thought of Stouffers. The hotel was to be our last stop in Williamsburg, and early December after a final interview at Penn State we began to plot our escape from the second worst hotel in Williamsburg. The worst in our experience was another hotel on the outskirts, our first stop in Williamsburg when fresh off the boat in 2000. It had what looked like a meth lab but no Jacuzzi.

3. Around Christmas we’d found a lease to take over for a few months in state college PA, with room for a little furniture, and so we started to look at truck rentals. One way seemed a little pricey, especially considering we’d need to repeat the trip for the rest of our goods when we’d found a house eventually. We both enjoy exotic vehicles (although Bec prefers her to be in good running order), therefore we decided to buy an old truck to carry us up there. Our reasoning was that we would have a memorable trip and a practical vehicle to enjoy and use afterwards. We consulted the classifieds and possibly craigslist, finding what looked like a suitable candidate, a 68 ford f250, located just south of Williamsburg in Newport News. The truck was to be a Christmas present of sorts, and Bec for her troubles received some clothes I picked hastily at the local target. Turns out they were radically the wrong size. There were more tears, this time by the light of our small garish Christmas tree. Also from target.

4. When I first laid eyes on the f250, it did appear a little worse for wear but lovingly maintained by the owner. A closer inspection revealed a hand painted powder blue and cream body, including some thinly veiled rust in the truck bed. However, the new engine leads, hoses, plugs and brakes seemed promising. We took it for a spin, and it handled like an Abrams tank. A standard transmission with four on the floor, little to no power steer and drum brakes made for an exciting and challenging drive. No matter I said, with my usual reckless abandon, it’ll do. And the price was right; for 500 bucks, it was a steal. We set out back to the burg on interstate 64, temporary truck permit in place and ready for anything. In what turned out to be a portent of things to come, I ran out of gas, finding out the hard way the gas gauge didn’t work. My resolve hadn’t weakened much. No tears from bec this time, just a nervous smile at my bravado, as we brought a jerry can of gas to our crippled truck resting suspiciously by what was a CIA facility. Keep in mind this is mid 2000s and the truck looked like something out of Mad Max, a generous assessment.

5. Sometime in January, we loaded up the f250 with a selection of items from the storage unit, including a large collection of CDs, books, appliances and small furniture. These were all held in place by a queen mattress ensemble, tied down with elastic netting, overall resembling a gypsy wagon. We loaded Bec and our neon up with clothing and perishables, leaving Williamsburg in convoy, by way of interstate 64 and Richmond to the North, then interstate 95 and DC before hitting MD and ultimately interstate 99 to state college in PA. We had completed the route some weeks prior for the final interview in December, last time in heavy snow, which the locals declared I was crazy to drive in. I get called crazy *a lot*. During that particular trip we noticed how many more trucks there were up North, mostly due to the snow and hills. I felt good leaving Williamsburg in a truck, a feeling which turned out to be short lived.

6. Somewhere North of Richmond and after a refill, I sensed the occasional bump against the truck body. It was hard to pinpoint and not very loud, so I thought nothing of it for a while. Over the next half hour, the frequency and volume of the noise increased, and bemusement turned to mild panic, something was obviously wrong. I pulled off near Fredericksburg with Bec in tow, and did a quick walk around the vehicle. The problem took a while to register, it was so far outside my experience. Apparently, my tires were disintegrating; I’d never seen anything like it, large chunks of rubber had fallen away, the tires resembling swiss cheese. This was just prior to smart phones, and at the time we had no AAA, so we decided to head off from 95 in search of new shoes for the horse.

7. I drove gingerly around the country highways of greater Fredericksburg in search of a tire yard. I don’t remember how we found the place, maybe we relented and asked directions. I do remember pulling up into what used to be a gas station and feeling a sense of relief; driving 95 is stressful at the best of times, let alone when your tires are made of cheddar cheese. A couple of surly guys eventually offered to help. After a quick study of the truck, they took on horrified expressions beneath the grease and sweat on their faces. It had been a harrowing experience, not to mention couple of months; our nerves were getting raw at this point. The more affable guy tried to explain that the truck had antique tires (I had picked up on that one) but what was much worse, were fitted with split or suicide rims, otherwise known as widow makers. Take them off wrong and they can decapitate or otherwise maim you. Suffice it to say, they wouldn’t touch the tires unless we also replaced the rims. I mentally sobbed in the shower, I think Bec was holding up better than I at this point.

8. Our cheerful mechanics pointed us to a junkyard out in king and queen county to the south, where we could buy some used rims. It was a long journey, practically back to Richmond, and there we also encountered unsympathetic junkyard workers. Nonetheless they loaded us up in the neon with some sooty ford rims, one on bec’s lap, three in the back seat and trunk, taking up all the room we had left. We made it back just before closing and thankfully our greasy saviors took pity on us, fitting rims and tires. Our two hour trip had turned into about seven by this point, so we charged out from VA into MD, stopping just briefly for food before finally hitting 99 North in PA around 10 pm. Even in the darkness we could see the beautiful vista of central PA open up before us. Not for the first or last time we felt like Ulysses, beset by endless challenges on the quest to find the way home. Eventually we would sell the truck, extracting the roughly 900 dollars we’d sunk into it, but not before I was pulled over by the cops, losing my license for a couple of days on one occasion. A story for another time.

Advertisements

basic python gui

It feels like years since I posted something technical; I have a busy day job and at least one side gig to thank for that. Thought I’d share the following python code, handy for wrapping a terse command line app (myApp) in a slightly more user friendly/cross platform gui. Don’t forget to re-introduce the persnickety python formatting 😉


from tkinter import *
from tkinter import ttk
from tkinter import filedialog
import subprocess
import time
import os
root = Tk()

# initialize parameters
programArgs = (' --a ', ' --b ', ' --c ')
argumentNames = ('Input File', 'Output Log', 'Output Directory', 'Output Prefix')
initMessage = 'Required'
argumentMap = { }
processID = ''
baseCommand='myApp.exe'
pathSep='\\'

# adapt syntax to OS
if os.name == 'posix':
baseCommand='myApp.x'
pathSep='/'

# test availability of binary
testCommand=''
try:
testCommand = subprocess.check_output(baseCommand, stdout=subprocess.PIPE)
if "allowed options" not in testCommand.communicate()[0]:
print('please install the myApp executable and make sure your PATH is correct')
time.sleep(3)
root.quit
except:
pass

# select a file or directory
def openFileDir(entry,field):

f=StringVar()
if 'Dir' not in field:
if 'Input' not in field:
f = filedialog.asksaveasfilename()
else:
f = filedialog.askopenfilename()
else:
f = filedialog.askdirectory()

if len(f) > 1:
argumentMap[field] = f
entry.delete(0,END)
entry.insert(0,f)
else:
argumentMap[field] = ''
entry.delete(0,END)
entry.insert(0,initMessage)

# get entry for prefix
def updateArgument(entry,field):

f=entry.get()

if "Required" not in f:
argumentMap[field]=f
else:
argumentMap[field]=''

# inform the user, uninitialized params
def printArgumentError(f):
msg="Please set a value for the parameter: "
msg+=f
print("%s" % (msg))

# create command
def createCommand():

v=StringVar()
comm=baseCommand + programArgs[0];
v=argumentMap[argumentNames[0]]
if len(v) <= 1:
printArgumentError(argumentNames[0])
return ''

comm+=v
comm+=programArgs[1];
v=argumentMap[argumentNames[1]]
if len(v) <= 1:
printArgumentError(argumentNames[1])
return ''

comm+=v
comm+=programArgs[2];
v=argumentMap[argumentNames[2]]
if len(v) <= 1:
printArgumentError(argumentNames[2])
return ''

comm+=v
comm+=pathSep
updateArgument(e4,argumentNames[3])
v=argumentMap[argumentNames[3]]
if len(v) <= 1:
printArgumentError(argumentNames[3])
return ''

comm+=v
print('%s' % comm)
time.sleep(10)
return comm

# run command
def runCommand():

comm=StringVar()
comm=createCommand()

if len(comm) <= 1:
msg="Can't execute myApp; missing required parameters"
print('%s' % msg)
return

subprocess.Popen(comm, stdout=subprocess.PIPE)

# create and grid the form
c = ttk.Frame(root)
c.grid(sticky="nsew")
c.master.title("myApp")

# create the widgets, first grid
# label, entry and browser for input
f1 = argumentNames[0];
l1 = ttk.Label(c, width=20, text=f1)
e1 = ttk.Entry(c,width=30)
e1.insert(0, initMessage)
b1 = ttk.Button(c, text='Browse',
command=lambda: openFileDir(e1,f1))
argumentMap[f1] = ' '

# label, entry and browser for output log
f2 = argumentNames[1]
l2 = ttk.Label(c, width=20, text=f2)
e2 = ttk.Entry(c,width=30)
e2.insert(0, initMessage)
b2 = ttk.Button(c, text='Browse',
command=lambda: openFileDir(e2,f2))
argumentMap[f2] = ' '

# label, entry and browser for output file
f3 = argumentNames[2]
l3 = ttk.Label(c, width=20, text=f3)
e3 = ttk.Entry(c,width=30)
e3.insert(0, initMessage)
b3 = ttk.Button(c, text='Browse',
command=lambda: openFileDir(e3,f3))
argumentMap[f3] = ' '

# label, entry for prefix
f4 = argumentNames[3]
l4 = ttk.Label(c, width=20, text=f4)
e4 = ttk.Entry(c,width=30)
e4.insert(0, initMessage)
argumentMap[f4] = ' '

# grid all the widgets
# first row, input
l1.grid(row=0, column=0, padx=5, pady=10)
e1.grid(row=0, column=1, pady=10)
b1.grid(row=0, column=2, padx=5)

# second row, output log
l2.grid(row=1, column=0, padx=5, pady=2)
e2.grid(row=1, column=1, pady=10)
b2.grid(row=1, column=2, padx=5)

# third row, output ldf
l3.grid(row=2, column=0, padx=5, pady=10)
e3.grid(row=2, column=1)
b3.grid(row=2, column=2, padx=5, pady=2)

# fourth row, output prefix
l4.grid(row=3, column=0, padx=5, pady=10)
e4.grid(row=3, column=1)

c.grid_columnconfigure(0, weight=1)
c.grid_columnconfigure(1, weight=1)
c.grid_columnconfigure(2, weight=1)
c.grid_rowconfigure(0, weight=1)
c.grid_rowconfigure(1, weight=1)
c.grid_rowconfigure(2, weight=1)
c.grid_rowconfigure(3, weight=1)

# second grid, action buttons
d = ttk.Frame(root)
d.grid(sticky="nsew")
b4 = Button(d, text='Quit', command=root.quit)
b5 = Button(d, text='Start', command=lambda: runCommand(),bg="green")
b6 = Button(d, text='Stop', command=root.quit,bg="red")
b4.grid(row=0, column=0, padx=5, pady=2)
b5.grid(row=0, column=1, padx=5, pady=2)
b6.grid(row=0, column=2, padx=5, pady=2)

# fix size
root.update()
root.minsize(root.winfo_width(), root.winfo_height())
root.maxsize(root.winfo_width(), root.winfo_height())

# run
root.mainloop()

 

mexico

We took our first trip to Mexico recently, staying on the coast down akumal way, picture below. Tranquil hardly begins to describe it. Managed to swim with green sea turtles, survey some Mayan ruins, indulge a little in the local cuisine and just generally relax with family/friends. A great respite, returned refreshed to H-town, but ready to go back to Mexico asap, maybe Merida next time.

IMG_0048

 

flaming lips

I think we’ve seen more shows in Houston over the last three years than all the years previous. Last night’s performance by the lips was one of the most theatrical and enjoyable of all time; mac deMarco did a great job priming the crowd. We were delighted to find that Wayne Coyne was as charismatic and eccentric as we’d hoped, belting out most of the classics and a couple of newer songs as well.  The band also put on a spectacular light show, punctuated by plenty of vibrant and crowd pleasing props.

IMG_0154IMG_0177IMG_0185

wolfsburg

Alas the wolfsburg died as it lived- painfully. Exsanguinated on I-45 by a piece of it’s own undercarriage to be precise. Apparently some debris broke off a corner of the drip pan, which proceeded to rotate into the transmission like a buzzsaw. Nice.

There’s nothing quite like finding out that your expensive DSG transmission is toast, which happened for the first time during a snowstorm in PA at ~ 50k. To have it happen a second time with ~99k on the clock meant that it was time for the knackery. Here’s hoping that the new vehicle is less of a money-pit. Now if you’ll excuse me, I’m off to look at some expensive mods for my wrx.

avett brothers

Per kind favor of good friends we were privileged to see avett brothers on the 18th down in sugarland. Energetic, touching show with a heartbreaking tribute to incredible talent chris cornell (a rendition of black hole sun). I fondly remember seeing avett brothers in ’07 during bumbershoot in seattle. Eddie vedder did a few surprise duets with crowded house, and I heard the shins live for the first time too. I digress.

harvey

Still hunkering down. We’ve been touched by the outpouring of support last few days, a great testament the sincerity and love of our family and friends dispersed all over the globe. So far we’ve escaped the damage of Isabel in ’03 or the various blizzards we’ve experienced in the north east; we’re very grateful. A blessing to see the sun out and shining today in Houston. Below is an extract from one of my favorite conversations.

vacay in WA

After a successful day or so at Collision in New Orleans, we moseyed on up to Seattle for some R&R. Stayed first night next to the Safeco field, turns out the Mariners were playing that night. Enjoyed a meal in a raucous restaurant attached the SilverCloud, set out next morning for Pike place and provisions. The markets offered up a pleasant sensory overload. We picked up smoked salmon, hand made cheese, fresh donuts among many other items. Made the obligatory stop at the original Starbucks, ate at a Bavarian place that did a very decent breakfast.

On the way out of town, stopped by Mischief distillery in Fremont, for likely the best tour and tasting we’ve ever had. Our gracious host regaled us with the recent history, the sourcing of the (sustainable) rye exclusively from WA and area farmers. One of our favorite whiskeys was aged aboard a boat featured on deadliest catch.

From Fremont we drove out to snoqualmie in order to nerd out over the twin peaks revival, shot out that way. Stayed in the great northern hotel aka salish lodge, walking as much as possible over to the falls to take it all in. Supped on the salmon and other vittles from Pike place, washed down with Rye. Locals were accommodating and warm, especially in the town cafe(s) near the train museum and when making the obligatory stop by the double R diner in north bend aka twede’s cafe. Also managed to seek out the sawmill and a couple of other iconic locations.

Saturday we bid a fond farewell to twin peaks and drove on down to St Helens and the Cascades. Day was a little overcast (surprise!), the highest roads through the park still closed, but the cascades remarkable nonetheless. Shot over to yakima in the afternoon, took in the delights of N Front street including hop nation brewery, antolin cellars and 5 north for dinner. Our host Rob at the cellars was good enough to send us to the other destinations, including carousel for brunch the next morning, for quite literally the best pancakes we’ve ever had. Again the locals were extremely kind and forthcoming, especially over at hop nation.

Sunday before jetting back to Houston we took in Fremont and it’s market one last time, with final stop at our namesake, Brouwer’s cafe for the stout fest and the world’s best (lamb) shepherd’s pie. I did my best to put a dent in their extravagant and delicious list. Bliss 🙂 Thanks WA, you’re every bit as cool if not more so than CA.

bec_cascadessalishbill_rr

pixies @ white oak

We took in the Pixies on April 30 at the bucolic outdoor venue at White Oak, right after an enjoyable hour or so at raven tower next door. The seating on the green hill with resplendent view of the stage and city skyline was perfect, as was the generous set from the Pixies. They powered through all the classics, including my favorite Velouria, throwing in a few new tracks that were just as good as anything they’ve ever done. The Houston weather over-delivered, providing a dry, temperate evening that overall made for one of our most memorable outings. pixies