Archive for August, 2006
Football Fraud Fraud?
I’ve had season tickets to Virginia Tech football for, gosh, I guess about 9-10 years now. About once a year I also attend an away game. I’ve traveled to three different bowl games. I’ve paid $250 for a ticket to the National Championship game in 1999. And during the 2001 season, I attended every game (home, away and post-season). Yet still, deep down, I don’t feel like I’m a true college football fan.
I’m not devastated when we lose. I don’t cut my hand punching kegerators and I certainly don’t break my ankle trying to tackle away my frustration from a loss. I don’t spend my mealtimes for days afterwards rehashing individual plays, criticizing calls or analyzing our offensive line. I can translate very few numbers to player names. And I never seem to notice holding until someone starts shouting and pointing. So sometimes I feel like my days are numbered.
“One day they will figure out I’m a fraud!” I often joke, “A Football Fraud!”
I was almost caught red handed in 2001. We were leaving the stadium in Charlottesville when some folks stuck in the typical post-game traffic inquired about the game.
“Who won?” they asked.
“Tech,” I said.
“What was the score?”
“Uh…” I absolutely had no idea, not even the slightest clue, what the final score was!
Luckily, one of my companions answered quick enough that my ignorance went unnoticed!
This week marks the beginning of Virginia Tech’s 2006 Football Season and I’m starting to suspect that maybe my affection for football is stronger than I realize. In the past few weeks, I’ll catch a brief moment where the temperature and the wind hits me just right to remind me fall is on its way. Involuntarily, like Pavlov’s dogs, I get excited thinking about the upcoming games and tailgates and all the excitement and energy that accompany them. I don’t quite salivate, but I have a large amount of anticipation. I’m anxious for football season to begin!
Then more telling– this weekend I wrote a letter to my cousin Adam. I start off the letter innocently mentioning that football season was starting soon and then before I realized it I had written multiple pages on the things I enjoy about college football. I even reminisced fondly about the Texas A&M game we played during the rains of Hurricane Isabel.
The William Morva news only got a couple of paragraphs. Great Uncle Chuck only got a couple of paragraphs. News on Carolyn and Jay got a paragraph each (Sorry Carolyn and Jay). But Virginia Tech football— that warranted the bulk of the communication?
Somehow, somewhere along the line, it seems my claim to be a “football fraud” has turned out to be…fraudulent.
Well Rounded Weekend
One of my contract work projects recently went live. Without that ongoing obligation, I had something that resembled free time! I got a number of things done:
- I started a cleaning effort of our house– knocking out two bathrooms, mopping the kitchen floor and preparing the carpets to be shampooed later in the week (that’s a fancy phrase for “vaccuumed”).
- I caught up on some letters. Kicking off that effort– a lengthy letter to my cousin Adam who recently arrived in Iraq. Another cousin, Allison, also made my list.
- Installed new showerheads in two bathrooms.
- Replaced a broken toilet seat… unfortunately, I was under the impression our toilet was white. Once home, it was painfully clear the the toilet is in fact beige. Regardless of color, the white toilet seat is slightly more presentable than a toilet seat with a big ole crack in it.
- Contract work — I didn’t escape it all, but my obligations were such that I only had to work in the evenings!
And finally– Hiking! I didn’t go on the 20 mile hike (and wouldn’t you know it– the other hiker reported seeing 4 black bears), but my shin and I were able to sneak in a 4.6 mile hike this afternoon with Jimmie, Henry and Mike E. We went down the War Spur Trail to the AT Connector Trail to the AT and then to Wind Rocks. Not a toughie– but a wonderful outing.
Some pictures:
(Jimmie enjoying the view at Wind Rocks)
(Mike E and I have hiked hundreds of miles together, but this is the very first picture that features both of us.)
The rest of the pictures of our War Spur-Wind Rocks hike are on my website.
Summoning the Strength to Wuss Out
I think the biggest display of strength during hiking is one of the least expected moments. It isn’t the high altitude hiking of Mt. Bierstadt or any of my longer treks on the Appalachian Trail. Instead, the moment I believe I exercised the most strength and combatted the most temptation occurred on a short little, innocent-seeming hike.
Sometime during the spring of 2005, I woke up anxious to hike. I also awoke with a head cold, but I figured I’d hike through it. I packed up the dogs and drove about an hour to Bland County to knock out the southern most portion of the Roanoke Appalachian Trail Club (RATC) maintained trail. It was going to be an eight mile round trip.
Well we finally arrive at the trailhead and I must have walked 50 feet on the trail before I realized (much like G.O.B. on Arrested Development):
“I made a huge mistake.”
I was congested. I had a headache. I felt feverish. But I’m stubborn when I get on the trail. It’s true that I often doubt my own abilities (refer to People Get Held Back By the Voices Inside Them). But probably one reason I’ve consistently trumped those doubts is because I’m so stubborn and determined to make it to my destination and back. And maybe the stubborness is in turn fed by the notion of spiting the doubt.
So back to Bland County. I’m sick and on the trail. In this case my stubborness was amplified by the sunk cost of driving all the way down there. So what do I do? I keep going. I hiked a piddly 1.3 miles before fortitude finally came my way. It was at that point, I made the decision to turn around and return to my car. I wanted so much to continue– to knock out the full eight miles– to accomplish what I came out there for. To further complicate matters, this would be the first time I’d given up on a hike. I know it sounds counterintuitive– but it would have been easier for me to continue and suffer through it than it was for me to turn around.
So… the strongest thing I ever did hiking was giving up.
Well tonight, I’m mustering a similiar strength. Tomorrow morning, I’m picking up a visiting hiker from the Potomac Appalachian Trail Club and dropping him off 20 miles away from his car so he can hike back. It’s a favor numerous people have done for me (Sean, Bill C, Larry Bowman, Mike E) and I’m happy to assist another hiker. The particular section he’s doing is Peters Mountain with Rice Fields. This is a section of the trail that I’ve never done before and it connects the two RATC-maintained sections. It’s 20 miles, a mileage I would love to accomplish in a day. I really, really, really want to go along on this hike.
BUT…. not only do I have a list of chores I hope to accomplish this weekend, on Wednesday I injured my left shin running hills with Jimmie (Get this– I was targetting hills because I want to improve my hiking ascents!). Today at work, I could still feel the pain in my shin even on a short journey— say to the restroom and back. Logically I *know* it is not the time for me to attempt a 20 mile hike. But boy, my heart and soul craves it. I know I’m injured. I know that it would only get worse with added mileage.
But still, I daydream about that hike. I rationalize that hike. Maybe my leg will feel better in the morning. Once I ascend that first 1500 feet, it’ll be flat! My daily doodles (prominent when I’m waiting for someone to do something on the phone like reboot a server or run an install) were centered on the hiking theme.
I get home and even though my decision has supposedly been made– I still look at the maps and the AT guide and think about the hike and the logistics. How much water. What food should I bring along.
But– it will be an unfulfilled dream. At least for tomorrow. I will have to be content with a different type of exercise– exercising my will power.
Summoning the strength to wuss out.
Word 2003 Crashes When Viewing Custom Properties Updated by DSOFile.DLL
Background Info
One of the neat things we take advantage of in QualTrax is Microsoft’s DSOFile.dll. That DLL allows programs to view and/or update the properties of Office documents without requiring Office on the server or requiring the bulky overhead of Word Automation (which Microsoft does not recommend on a web server).
This ability may not sound that exciting until you realize Office provides a Custom tab in the Properties window to let you record your own unique information. QualTrax takes advantage of this to embed (and subsequently display!) specifics about the document and its lifecycle in the document itself– stuff like Revision Number, Publication/Effective Date, Editor, Expiration Date and even the Signature Manifestation for FDA 21 CFR Part 11 approvals.
Migrating this feature over to .NET 2.0 and C#, I ran into some peculiar behavior.
Symptoms
The process worked beautifully when I was filling in “TODO” for every field. As I started to flesh out the Document objects, I plugged in real live information. That’s where I ran into problems. Everything would run smoothly with no errors to hint something was wrong.
After the code executed I went to open my Word document and it would open normally. All seemed well. However anytime I went to Word’s File->Properties menu, Word 2003 would crash:
Clicking on What data does this error report contain? provided little assistance:
Once I reopened Word– if I went to Insert->Field; selected DocProperty as my Field Name, I could see my custom variables listed in the Field properties list box and I could insert most of them into my document without crashing. Saving after inserting those fields was another matter altogether. 😉
When I went to the file through Windows Explorer and right clicked on the Word file and selected Properties, the normal Word Properties window would come up. Alas, when I clicked on the Custom tab, my fields were not displayed:
Troubleshooting
So I went through a fun troubleshooting experience. First I thought DSOFile was not completely writing my file, but that wasn’t it and because I was using System.Runtime.InteropServices.Marshal.ReleaseComObject I knew the object was no longer interfering. I thought maybe the approval record data was too long, but that wasn’t it.
After opening and crashing the same document a few times in a row, Word takes the liberty of repairing the document for you and removing the what it thinks is bad. That’s where I got a good strong lead– I could see it added all my fields until it got to a date field that would have been blank.
“Eureka!” I thought, “It must not like that crazy 1/1/0002 12:00:00 AM date.”
But my heart sank a bit when I ran to the code and saw that I had already accounted for that (Blast that foresight of mine!). If the date was null or the system default, I replaced it with an empty string. But for kicks, I changed that function to replace those bad dates with my second favorite test string, “TODO” (Side note– my favorite test string is “ISUCK” or variations such as sucker@isuck.com).
I ran it again and after a series of crashing and reopening, Word repaired the document. This time it got past all the blank dates… but it stopped right before a text field that would have been set to an empty string. So I intercepted those blank fields and changed them to “N/A”.
Ran it again and great success! No crashes and all variables were accounted for. Times were good.
At that point I was unenthused about having to account for the different languages our application runs over. I was just thinking “What’s N/A in Portugeuse?” when Mark Duncan asked, “Can you use a space?”
I changed my “TODO”s and my “N/A”s to a space– ran it through and Word 2003 liked that. So there you go. A blank space is perfect– no need for translations there!
Summary
If you are using a DSOFile.OleDocumentPropertiesClass object and calls such as dsoDoc.CustomProperties[index].set_Value(ref myValue); through C# and you started getting similiar Word 2003 crashes— be on the lookout for empty strings in your field values. A quick little check may be all you need:
if (myValue.ToString() == “”)
myValue = ” “;
Ben and Borat
This weekend I read an interesting article in American Legacy. It was called “The Evolution of Benjamin Franklin” and it was about how through his life Franklin migrated from slave owner to dedicated abolitionist. He so much adopted the cause, in fact, that his last public writing was on the subject. He published a letter in the Federal Gazette on March 23, 1790, 25 days before he died. Basically the letter was responding to congressional debate on a recent petition to free the slaves.
Now here is the part I found especially interesting. Franklin did not write the letter as himself. He wrote it as a fictitious guy name Historicus. And this Historicus did not shoot down the rationale and arguments of the southern congressmen– he agreed with them! This character enthusiastically started to quote a speech that was supposedly given in Algiers 100 years earlier (It wasn’t– the speech was made up). In this speech a man named Sidi Mehemet Ibrahim was defending the need to keep their slaves and in this case the enslaved were white Christians! Some quick excerpts:
If we forbear to make Slaves of their People, who in this hot Climate are to cultivate our Lands? Who are to perform the common Labours of our City, and in our Families? Must we not then be our own Slaves?
I also like the rationalization that the slaves’ lives were enriched and better in captivity:
Here [the slaves’] lives are in safety. They are not liable to be impressed for soldiers, and forced to cut one another’s Christian throats, as in the wars of their own countries.
And in case the thought of enslaving white Christians was offensive to the Federal Gazette readers, Historicus made sure to revel in the fact that “great” minds think alike:
Mr. Jackson [the Congressman from Georgia] does not quote [Sidi Mehemet Ibrahim’s speech]: perhaps he has not seen it. If, therefore, some of its reasonings are to be found in his eloquent speech, it may only show that men’s interests and intellects operate, and are operated on, with surprising similarity in all countries and climates, whenever they are under similar circumstances.
You know who Franklin’s Historicus reminded me of? Borat!
Both fictitious characters came from a culture the average American of the day would know very little about. As a result, both characters were able to use an innocent, naive perspective of our culture to expose its silly and prejudiced thinking.
If only all those outraged people at the Salem Rodeo knew… Sasha Baron Cohen was merely following in one of our founding father’s footsteps.
Nice. I Like.
Related Links
Ben Franklin’s Full Letter to the Federal Gazette
Comedian rides Salem rodeo stunt to the big screen
Kazakhstan official hopes Roanoke area knows that ‘Ali G’ has nothing to do with his country
Unsung Sean
Sunday night I walked to church. Sunday night is not a typo. When I attend, I go to the 6:15 Mass. It’s my church’s special LIFE TEEN Mass. So the congregation is a whole bunch of teenagers….and Vicky!
My journey was two miles one way. A perfect distance to get out enjoy the day and exercise without becoming too sweaty for even God to love. However, my journey was long enough that if I wanted a timely dinner, I needed a ride back.
It was my agnostic husband who made my walk possible! Without a single roll of the eyes or even an irritated sigh, he volunteered to pick me up at 7:15.
It got me thinking a bit. There are a number of aspects of my lifestyle that Sean does not subscribe to, approve of or especially respect. Nonetheless, he often exerts effort to facilitate me. Two other examples come to mind at the moment:
- Sean does not care for NOFX. He has, on occassion, said that punk music gives him a headache. Yet, very often when an album comes out, I don’t have to step foot in a music store. I’ll return home on a Tuesday evening to find the CD waiting for me on the breakfast nook. Ultimately he is punishing himself– increasing the odds he has to hear the music he does not like. 🙂 But, he secures the CDs anyway.
- About once or twice a year, Sean will join me on a hike. It’s not his first choice of activity and there is the ongoing threat of snakes, but he’ll come along. However, I think it is Sean’s logistical help on the hikes he does not go on that should be highlighted. He has woken up early a couple of times to drop me off at a trailhead. One day in fact, he woke up at 5 AM on a day off to help shuttle me to a trail! And it was common for Sean to have a steak and baked potato waiting for me when I arrived home. He knew without being told, the exact meal my body was craving after a long trek! Even though he only physically walked 2.5 unique miles on the Appalachian Trail– Sean’s contribution to my RATC Patch was much more significant than my spreadsheet could ever reveal.
So maybe I don’t have a husband who’ll come along with me to church, listen enthusiastically to my music or will spend a summer day hiking. I do have a husband who in his own way contributes to those efforts despite his distaste. I have a husband who’ll walk the dogs so I could work late. A husband who’ll wait to start the DVD so I can go jogging. A husband who’ll run errands to accomodate my contract work and a husband who’ll read my story even though he hates fiction.
Maybe, just maybe, that is a little more telling than a husband who would blindly embrace my every whim.
(I say maybe, so I can still reserve my right to complain when the mood suits me! 🙂 )
Programming and Project Runway
It is roughly 11 minutes (plus an extra 10 minutes to build up a Tivo queue) until my latest TV obsession, Project Runway, commences. I haven’t quite figured out the reasoning behind my fancy. With the exception of some cute Bowman Handbags, I don’t own anything that the general public would deem fashionable (Unless Appalachian Trail hats that are too big for my head count).
So I’d like to think my fascination comes from watching the lifecycle the pieces go through. They start out as simple sketches, but after a visit to Mood Fabrics and 1-2 days of frantic sewing they become (hopefully) these beautiful garments.
Well, that may not be it either. This past week, I realized I do a very similar process with my programming and I haven’t quite found the same level of entertainment there. Nonetheless, here’s one recent example of my process and how it parallels that of the fashion designers on Project Runway.
The Challenge
My assignment was to take data we already had in the database and make it into a “Rolling 53” report. Basically they wanted to take test data and evaluate it in batches of 53 to see how many positive test results there were in each grouping. First they would look at the most recent 53 items. Then they wanted to drop off the most recent item and look at the next 53 items.
Sometimes the designers on Project Runway are given a dossier on a particular client which includes samples of past colors and styles used by that individual or organization. Well, I got this cryptic Excel spreadsheet:
Sketch Time
If you look through my work notebooks, you’ll typically find a lot of little drawings of the screens or functions I’m working on. Even when I don’t do a full blown specification, I still draw out what I’m doing and/or write down related database fields. This project was no different.
Now in Project Runway 3: The Road to the Runway Special, Tim Gunn and the judges were evaluating some of the applicants’ sketches and they noted that drawing the sketch and making the garment are entirely two separate things. I believe Michael Kors summed it up as, “They have no idea how they are going to make these clothes.”
Well in programming, you have to be careful to keep your design realistic as well. In my above notes, you can see I was already making notations about my logic. There is a note about a for loop and I jotted down table names I expected to query. The large vertical rectangles surrounding my “cells” (not necessary rectangular in the drawing) are particularly telling. They depict my thoughts on how I was going to use nested HTML tables to achieve my look.
Materials
With the Rolling 53, my Visual Studio 2003 Development Environment with ASP.NET and HTML syntax was sufficient. However, in other situations, I may be shopping around for suitable materials (aka third party components). In that case, I would certainly be keeping in mind that just like the Project Runway designers, the materials I chose would reflect the quality of the final product. I would be judged on my material and my choices– I would be the technology I use.
Tim Gunn
In Project Runway, Tim Gunn serves as a counselor and initial critic to the designers. For the Rolling 53, my Tim Gunn is a woman who is just as personable, understanding and frank as the Project Runway personality. Her name is Debbie and when I showed her my initial work, she had one of those famous Tim Gunn pauses. It meant she had a much different perspective than I and ultimately advised significant changes.
Since I was armed with the original spreadsheet and I felt my design was close to what the customer described, I went with it. In Episode 1 of Season 3, Keith did not heed Tim Gunn’s advice and his choice paid off– he won the first challenge. Luckily, my risk was as successful as Keith’s. But– I know very well that like Tim Gunn, Debbie’s advice is very credible and accurate and should always be given serious consideration.
Below is a screenshot of my initial work. Very similar to Kayne deviating from Tara Conner’s color recommendation in Episode 2, I deviated from the color scheme in the original spreadsheet.
The Runway Show and the Judges
It’s a lot less glamorous than models, the L’Oreal Makeup Room, the TREsseme Hair Salon and the Bananna Republic Accessory Wall. Our presentation came on a late Monday night using GoToMeeting, Internet Explorer and a myriad of cell phones. The “judges” were a few key individuals spread out over a couple of time zones. I could not see their facial expressions during the meeting, so like the contestants, I really did not know exactly how my work was received until the discussion at the end. Turns out, this work had a positive reception. One customer even claimed, “Perfect!”
But, just as poor Bonnie found out in Episode 4— sometimes even if your finished product stays true to a sketch that was originally approved by the customer, it may not meet their full fancy when it is all said and done. And like Jay and Chloe who won previous Project Runway seasons, you also have to think about the creation in production mode.
As a result, we had a few items come out of our meeting. They decided they wanted to list an identification number in each cell for easier reference and in order to support printing on black and white printers, we bolded the positive results in addition to color coding them. Our revised version looked like this:
“Make It Work”
During the final episode of Season 2, the designers found out at the very last minute, they had to add one more look to their collection. Well, that’s not an uncommon occurrence in the programming world! In the Rolling 53’s case, we got the report done and found out that it needed to be emailed to two email addresses twice a week.
With time, I could write a service to deploy the information regularly. I’m sure the designers of Project Runway have plenty of things they could do…if they had the time! In both cases, we do have a time constraint and have to make do with what we got. Enter in good ole Debbie (aka my Tim Gunn). She volunteered to run the report twice a week and mail the results out.
Thanks to Debbie, we came up with a very simple (and cost effective) way to “Make It Work”!
Excuse to Eat Out
Last Friday, I donated some blood. One thing I love about donating blood is the good excuse to eat everything and anything I want for a day. “Sure, I can eat three more of these cookies– I just gave blood!”
Well if you are in the New River Valley and looking for a similiar kind of rationalization to eat out, I can hook you up!! The following restaurants are donating a portion of their sales on specific days to little Ian Herbst:
- September 11, 2006
Arby’s
600 1st St
Radford, VA - September 21, 2006
Chic-Fil-A
2200 N Franklin St
Christiansburg, VA - October 24, 2006
Texas Roadhouse
100 Bradley Dr
Christiansburg, VA
Eat up and go ahead, splurge on desserts! It’s for a good cause!
How to Endear Yourself to Neighbors – Part II
Last night I was chatting with one of my neighbors and he asked if Sean and I had gone on a vacation. I excitedly told him tales from Bethany Beach and Assateague Island.
“Ah,” my neighbor said, smiling at his own power of deduction, “I knew you went on vacation because your trash can sat out there [on the street] day after day. I kept thinking, ‘When are they going to take that trash can up?’ Then I realized, you must be on vacation!”
“Oh that?!?” I said, “That’s not from vacation. That’s just laziness!!!”
(Hopefully in time, he’ll learn to appreciate my honesty)
Recent Comments