A Ghost Story
Tuesday, October 31st, 2006Sometimes, a good ghost story can help you professionally (as a software engineer).
Sometimes, a good ghost story can help you professionally (as a software engineer).
Yeah, I still write code. I just can’t publicly talk about it. Yet.
Recently, I have been writing unit tests that involve passing source code through GCC and then running the resulting compiled binary. Given that PyObjC already does this for the unit tests of ffi, I started my test harness by ripping off that one.
My tests actually look for very specific warnings and failures from GCC. So, I augmented the script slightly to allow me to embed “expect this warning/error” into the source to be compiled.
When such a test fails, it is terribly useful to actually see the command line that was invoked. Unfortunately, it doesn’t appear that Python’s unittest TestCase class has a hook for composing the failure details. But it does have a hook for easily setting the class of the exception that will be raised. From there, it is easy enough to pass a reference back to the TestCase into the various assert methods to allow a custom exception class to provide more info.
Don’t bother trying to parse that paragraph, just read the code:
class TestCaseAssertionError (AssertionError): def __str__(self): if len(self.args) is 2: msg, testCase = self.args return "\\n\\nCompiled using:\\n\\t%s\\n\\n------ Details ------\\n%s\\n------ End Details ------" % (testCase.commandline, str(msg)) else: return str(self.args) class DgTestCase (unittest.TestCase): failureException = TestCaseAssertionError def __init__(self, filename): unittest.TestCase.__init__(self) self.filename = filename self.commandline = None ... at some point, the command line is composed and self.commandline is set .... ... then, in a test case .... self.assertNotEqual(actual.strip().find(expected.strip()), -1, ("Expected to find:\\n\\t%s\\nNot found in:\\n\\t%s" % (expected.strip(), actual.strip()), self))
Easy enough. Now, when a compiler failure occurs, I can easily copy/paste the command line to see the full output or deduce the issue further. Though the above is completely specific to my needs it would be easy to generalize.
Following the amazing tour, Centinela had a couple of tents set up in the parking lot. Each tent contained the entire Centinela product line (including both the high-end 3 year anejo and the Cabritos label) open for tasting. More like open for uninhibited pouring.
And pour we did. The fine crew at Centinela were also making mixed drinks of all kinds, including an excellent Sangria with Tequila in it. Ironically, the margaritas were really bad. Very bad. But Tequila in Fresca is surprisingly refreshing.
After an hour or more of “tasting” all of their products, Centinela offered a bunch of their product for sale. They even broke out a box of their seven year anejo for both sale and for tasting. Amazing stuff.
As the working day drew to a close, the staff all joined us and it turned into quite the party. A mariachi band seemingly came out of nowhere and entertained us for a while.
Mariachi is quite distinct in the musical structure and sound. Apparently, Jalisco is the source of all things traditionally thought of as Mexican, including the Mariachi band.
Then they brought out the food. It was simple fare. Completely delicious. Centinela served a big tray of roasted peppers, a gigantic pile of succulent carnitas, and a mystery meat stew. And a big pile of fresh corn tortillas.
Carnitas? Perfectly roasted pork bits on the center-top taco in that picture. The odd chunk of meat on the left is pig’s heart. Yummy stuff of which I ate much much more pig’s heart as bar snacks later in the weekend.
The red goop on the other two tortillas was a delicious tomato based stew with chile peppers and random chunks of meat, mostly tripe.
On Friday (Oct 13, 2006) afternoon (after flying all night and 4.5L of tequila’s worth of bus ride to the hotel), we headed to Tequila Centinela for a tour of the distillery.
If you are in need of a good Tequila, you cannot go wrong with any Centinela product. They are all rock solid product that can be enjoyed as a sipping tequila or in a well made margarita (no mixes). Seriously good stuff. If you can find it, the three year añejo is an absolutely delicious sipping tequila that can usually be had for around $80/bottle. Rarer still is the seven year añejo. Right at the edge of useful aging span for a tequila and an absolutely sublime product.
At left is Christine standing below the main tank/sign of the distillery. Of course, there is a photo of me in the same spot.
We then got a full tour of the operation and then partook of a rather awesome seemingly impromptu party in their parking lot.
Christine and I took a rather amazing trip over last weekend. We were honored to be invited to Lily & Julio’s wedding in Arandas, Jalisco, Mexico.
First: Congratulations to the bride & groom!
I have known Julio for nearly a decade now. One Awesome Dude who deserves to be really happy. And happy he is as he is now married to The Very Awesome Lady Lily.
Congratulations, Julio — we are ecstatic that you have found such intense happiness with someone who is so happy with you!
The wedding was one amazing event. It was a 12 hour celebration of a magnitude that will be hard to describe.
One heck of a great way to kick off what is bound to be a long and happy marriage. Congratulation again!
The wedding was legendary. 800 guests. 15 days before the wedding, there was a change of venue from an already built facility to an empty field. And the execution was flawless…
More on that later.
I’ll be writing up the trip over a few posts. Like the wedding, the trip was something special… a unique bit of traveling experience.
To give an idea of how unique, at right is the picture of the hotel that Christine & I spent the weekend.
The owner always wanted to live in a castle, so he decided to build one for himself right in the middle of a block of downtown Arandas. Over time, his daughter turned it into a Hotel and a completely unique hotel it is. Every bit as unique on the inside as out.
But more on that in later posts…
And, of course, we were in the heart of Tequila country. Not surprising given that the Wall Street Journal labeled Julio (& Tommy’s in SF) as “epicenter of tequila” and Lily is the grandaughter of the founder of the company that makes El Tesoro tequilas (US market name), an absolutely delicious tequila.
While we didn’t visit the La Alteña Distillery, we did tour the Tequila Centinela distillery found on the outskirts of Arandas. Not only did we receive an interesting and educational tour of the facilities, the Centinela folks threw us one hell of a great party.
Details to follow….
So, yeah, it was one hell of a trip. Once in a lifetime kind of trip. Several posts and lots of photos to follow. We spent 3 days with lots of the incredibly fine folk from Tommy’s Blue Agave Club, including many demigods (of which, I hope to join their ranks in January). This is a very special group of people; it was like hanging with old friends — like the whole group had done trips together many times before even though we were new.
When North Korea detonated their first nuclear bomb in a mountain on Sunday/Monday, I submitted a link to the USGS earthquake site showing details of the related seismic event for addition to the related BoingBoing article (which kindly posted a link to this weblog, thanks!).
Now, there is a Reuters article indicating that Japan is claiming that NK may have conducted a second nuclear test.
However, at this time — 5pm PST, Oct 10 2006 — there have been no new events in the North Korea area on the Asia Region seismic activity map.
And the AP has a similar story on the wire that indicates that neither the South Koreans nor US seismic monitors show any sign of an event.
Not so coincidentally (I suspect), there was a magnitude 5.8 seismic event southeast of Japan. It sounds like someone might have jumped the gun on the reporting.
Typically, when a seismic event occurs, the USGS site is updated extremely rapidly. Updates frequently occur within minutes of an event in CA. And the site reports events of extremely minor magnitude; often reporting magnitude 1.0 and 2.0 events caused by quarry explosions at the end of Stevens Creek Boulevard in Cupertino.
So, unless there is a significantly greater delay in event reporting for global (or Asia region) seismic events, then it is unlikely that Korea has managed to detonate a second device. There certainly could be a delay — it did take a few hours for the original event to show up on the map.
There is a morning glory growing along the fence on the west side of my backyard. It was a volunteer that came up late in the season and never did particularly well.
Recently, the vine has been looking less healthy than usual. I glanced over to see how it was fairing and noticed a rather odd brownish growth on the top. How very odd. Looks almost like a fungus or mold.
Closer inspection revealed that, in fact, the machine has the worst infestation of Red Spider Mites I have ever witnessed.
That “growth” is a solid mass of mites. There has to be millions on the plant, with a couple of other vertical spikes covered in swarms almost as thick.
Now wonder the plant is just incredibly unhealthy! About the only thing keeping it alive is that morning glories are pretty much very fast growing weeds.
Click through to see a detail shot of the primary mass of bugs. I think I’m going to spray the plant with water or something and then rip it out. But sticking my hands on a plant that heavily covered with web and mites gives me the heebie-jeebies.
Best. South Park. Ever.
Well, not really. At least, not unless you got sucked into World of Warcraft for a bit.
If you have, it is a damned funny episode. And accurate in that South Park satirical fashion. Going on a 15+ hour quest is not all that uncommon, especially not at the higher levels.
Which is really why I stopped playing at lvl 54. It became a job. A fun job, but a job none-the-less. All that planning, coordination, managing and strategizing, etc… is actually quite amazing.
For those that don’t want to commit a sizable chunk of their lives to the rather excellent experience that is WoW, Joi Ito has written quite a bit on the subject. He is both a talented writer and has devoted enough time to “go deep” in the game. I was even in “We Know” and “We No” for a bit. Was a lot of fun.
A couple of days ago, I blogged about the release of Aperture 1.5 and how I really dig the refinements and performance boost. Using the photos at right as a [macro — hey, I’m a happy flower photographer and I’m not afraid to admit it] example, I was able to use the color tools to refine a photo in ways that I couldn’t before.
I’m not the only one digging the new stuff. Duncan — a professional photographer from which I have learned a huge amount — takes on the Aperture color controls and also offers a comparison with similar features in Adobe’s lightroom Adobe Photoshop Lightroom.
Neat stuff. Now I need to go and adjust a few photos given what I just learned…
One of the spiffy new features of Aperture 1.5 is the ability to drag-n-drop images out of the Aperture window and into anything that can accept a JPEG.
When I first did the import, it was one of the first things I tried and it didn’t work. I was bummed. But then I realized that it was tied to the preview image generation.
If a photo hasn’t had the preview image generated yet, it can’t be drag and dropped. As soon as the preview generation process is done, everything works as expected — drag and drop works beautifully.
BTW: If you haven’t done so, check out the profiles provided on the Aperture site. The Vince Laforet profile is quite interesting; he describes how he took the shot of the guy messing with the light bulb on top of the gargoyle head about a zillion feet up the side of the Chrysler building in NYC. Pretty neat setup.
Now, I just need to find me a dentist’s office that is going out of business…