Tracy’s Blog

Take your work seriously…but never yourself.

So I’m a Yuppie? There are worse things.

YuppiesI finally tried it. I did, I really did. Yesterday I drove 6 blocks out of my way to get my morning coffee at the local one-of-a-kind, not-some-giant-chain coffee shop named Influx.
And I did it again this morning.
And tomorrow, I’m going back to my Starbucks.
You can go ahead and hate me if you want, but I love Starbucks. I love coffee. And I love that I can be in virtually any city in the world and still get exactly the coffee I’m used to prepared exactly the way I’m used to.
I’ve heard about all the evil and devious things Starbucks does to chase away helpless, tiny, little, local coffee shops just so they can rule the coffee world and make a few more bucks. But I don’t care.

The Influx Cafe is everything Starbucks haters love; it’s hip, it’s reasonably priced, it’s got eclectic, healthy food like sandwiches with beets and sprouts, and it’s chock full of all sorts of interesting people who would probably be fascinating to talk to, but I don’t care.

On a good day, I spend approximately 3.5 minutes in my local Starbucks, getting my morning coffee, and that’s how I like it. Because, true to my nature of Yuppie-dom, I must hurry off to work so I can make my millions. But what’s so wrong with that? Why should I have to apologize for appreciating efficiency and convenience? Well, I’m through apologizing, I’m through cringing in anticipation of people’s reaction when I tell them how much I love Starbucks, and I’m through strategically concealing my Starbuck’s cup as I sneak past the locally owned coffee-cart outside my office building.

Loving Starbucks doesn’t make me a money hungry, self-absorbed, victim of corporate America anymore than hating Starbucks makes those who do, tree-hugging, starving-artist, hippies.


December 12, 2007 Posted by | MISC | Leave a comment

Good ‘Ole Engineering Estimates…

Question Mark

Just how much dynamite does it take to blow up a whale? Apparently less than half a ton.

Exploding Whale – November 12, 1970, Florence, Oregon

December 12, 2007 Posted by | MISC | Leave a comment

Cooking With XSLT

cooking1.gif At the risk of sounding like the biggest geek in the world (waaaaay to late in the game to be worried about that anyway) – XSLT is starting to reveal itself as a remarkably flexible language with a high coolness factor. Short for eXtensible Stylesheet Language Transformation. XSLT is a functional language designed to transform XML into HTML, XHTML, PDF, other XML formats, or basically anything else you want to output from it. XML is basically just style-stripped text organized into a meaningful hierarchical format. If you’ve every worked with SGML, XML is basically just the well-formed version of SGML (think Twins, the movie, with Schwartzneggar and DeVito – XML is the kid every parent wishes for and SGML is its job-hopping, looser, screw-up brother).

Anyhoo, back to the coolness factor surrounding this language. I first had the pleasure of working with XSLT when a former employer dubbed me the team “Stylesheet Expert” and tasked me with converting numerous XML military technical manual documents into HTML and PDF format. I refer to it as a pleasurable experience now, but the language of XSLT is very far removed from the functionality of most other mainstream languages out there (C, C++, C#, Java, etc.) and it was a serious pain in the brain trying to understand how it does what it does. For instance, XSLT does not have true variables in the way most other languages do, rather its variables are more like constants and the language itself is purely recursive, not iterative; another far cry from most other languages I’d worked with.

In spite of our initial quarrels, eventually XSLT and I learned to get along quite well and my most recent employer stumbled onto my hidden talent and tasked me with developing stylesheets for their military technical manual XML documents. This time, though, I had some slightly more severe requirements from the client and I’ve gotten a real taste of just how powerful XSLT can really be.

The website itself was quite straight-forward; some simple Javascript for dynamic table of contents behavior, a slew of internal/external cross-document links, but otherwise quite static and mellow. There was, however, an enthusiastic request for some search box functionality. Not a big deal until I learned the clients (military peepz) were not real excited about any third party packages or extensions being included on the distribution CD and the red tape required to get approval for such an inclusion was soooooo not worth the time or effort.

After some google searching I found a couple of simple scripts that would strategically escape a search phrase typed into a text-box and then hunt through delimited strings of text within an array for a match. Would this be a truly useful methodology for a traditional website; probably not if it were a sizable site with plentiful content, but for my situation, it was absolutely perfect. I could dynamically construct, not only the Javascript itself, but the javascript array of content; dividing the text into chunks according to the pages and URLS I was creating on the fly. It worked like a charm and took me maybe a couple of hours to write code that filled a couple thousand element sized array with every bit of content of the entire website. And best of all, I would never have to worry about updating the array when changes/additions were made to the site content; just a simple command line utility to reprocess the updated XML and viola – any new content is automatically integrated into the site.

Composing a website using XSLT is alot like writing a recipe that matches all the ingredients you already happen to have lying around your kitchen, to prepare exactly the meal you’re craving. XSLT is not necessarily ideal for all situations, but if you’re responsible for maintaining/developing multiple sites with virtually identical templates, or the content of your site changes heavily and frequently, but the template in which you display it does not, ooooor you’re just a big geek like me and feel like tinkering around with some “cool” [in every un-cool sense of the word] technology – then take it for a test drive.

Some useful links:

There is no ‘I’ in style-sheet so feel free to drop me a line if you need any assistance my fellow XSLT-ers.
Good luck and happy transforming!!

December 12, 2007 Posted by | Tech | Leave a comment

Coding Kharma

budda1.jpgFor the love of all that is holy in this godforsaken world…pleeeez, pleeeeez, pleeeeez, when you’re writing your code, consider the people who are going to have to modify and debug it down the road. I am fully prepared to launch myself off the 2nd story of this building right now because I’m trying to fix yet another program written by my coding nemesis: let’s just call him T.C., short for Terrible Coder (oh, yea, I went there). T.C. is the programmer whose place I took in my current position whom I’ve never actually met, but from all accounts by my co-workers was a squirrely, unhygienic fellow with a preference for hippo-like women and who, hands down, has written the most unmaintainable, nightmarish code I’ve ever seen in my limited life.

Here are a few token characteristics of TC’s code:

  1. Never a single comment of any kind.
  2. Never any modularity of any kind; if TC does write functions, there’s no logical separation and they’re typically anywhere from 100-600 lines of code per function.
  3. No logical organization of any kind within the code itself; the order of the programs seem to simply mimic TC’s haphazard thought patterns.
  4. Extraneous code (this is the worst part). TC will often leave code in his programs that does absolutely nothing; like requesting session variables that don’t actually exist at the beginning of the file and then never actually using them.

Fellow programmers, we’re all in this together, writing code, modifying other’s code; it’s like one big programming circle of life. We’re all ultimately serving the same purpose and none of us wants to be considering ending our own life because of a lazy, incompetent fellow developer’s work. Furthermore, it is a well known fact that all of the coding horror you create for fellow programmers due to your malicious and incompetent coding practices will be visited upon you 10 fold. So do yourself a favor and practice friendly coding techniques for good coding kharma.

December 12, 2007 Posted by | Tech | Leave a comment

Re: The Top 10 Dead (or Dying) Computer Skills

The Top 10 Dead (or Dying) Computer Skills; what this article should really be called is: “If You Don’t Already Know This Stuff, Don’t Bother Learning It”

I don’t believe one’s livelihood is in jeopardy who possesses [most of] these skills, quite the contrary. Due to the once severe popularity of some of the listed technologies and the potential decline of compatible software/hardware, there will be a multitude of clients requiring the conversion of legacy code.

There is a significant delay between the time a technology is deemed ‘on the way out’ and the time it actually exits the industry. I myself spent 3 days of last week enhancing and debugging a web page written in Perl with a Microsoft Access back-end database; it sucked.

The volatile nature of this industry simply requires that those who wish to remain necessary within it, never stop learning. My limited experience within this industry so far has led me to believe there’s no sure-fire recipe for learning the most coveted technologies so that you can excel the fastest and earn the most. The key is learning as much as you can as often as you can; whether it’s proprietary Microsoft technology, open-source free ware, architecture concepts, or best database practices, etc. You can never have too much knowledge. The more knowledge you have to draw on, the more tasks you’ll be able to tackle and the more employers you’ll be appealing to. And the odds are, you will draw upon all of it at some point.

December 12, 2007 Posted by | Tech | Leave a comment