Monday, December 31, 2007

Gaaaaiiit Uuuurr Paaaawwwpkorn!!!

I don't think I could ever be successful in a position requiring predominantly sales skills. I'm too much of a WYSIWYG [whiz-ee-wig; 'What You See Is What You Get']. That's not to say that my opinion of successful sales people is that they're a bunch of big superficial liars, but I do believe sales arena success requires a certain level of embellishment along with a high degree of (sometimes forced) enthusiasm. And I just don't got it.

That said, I have a tremendous amount of respect for those that have found success in a field requiring, not only superb communication skills, but also confidence, competence, ridiculous hours, and the 24/7 enthusiasm of a beauty pageant contestant; I get exhausted just watching them.

Tuesday, September 25, 2007

Well...I do DEE-CLAY-AIRE...

First, I must apologize to my frequent blog-reader [singular] for the recent lack of new postings. Unfortunately, my company's firewall recently added www.blogger.com to their 'restricted list' which means no more workplace postings. Nevertheless...I will not be silenced! "The Man's" futile attempts to squelch my free-speech frenzy shall not succeed; my voice will continue to echo across the mountaintops of Blog-land!

Anyhoot...onto the bloggin' topic: The savage .NET 2.0 battle rages between declarative server control initiation versus programmatic server control initiation and maintenance.
Here is one such fellow blogger touting his preference for the pragmatic, programmatic methodology.

And here's my 2 cents: When first introduced to asp.NET 2.0, I, too, found the declarative server tags and DataSourceControl-populating wizards somewhat disconcerting, creepy, and a little too Dreamweaver for my taste. "I'm a real programmer", I kept thinking, "I've dredged my way through the ugliest, most-cryptic of programming coding (that's right, I've had to work with Prolog) and I certainly DON'T need any wizard to do my programming for me." I was suffering from what the professionals like to call 'Old-Skool-izm'.


Relatively soon, it became quite clear which side of the coin Microsoft's developers had contributed vastly superior resources towards planning, implementation and even documentation efforts; the declarative side. After MANY frustrating scenarios (and multiple blog postings) working with a variety of server controls in a stubborn, strictly programmatic manner, I found myself fixing many of the inexplicable, unintuitive server control symptoms and behaviors by simply switching to declarative mechanisms.


As time rolled on, and continued to plunge headfirst into the code-reducing, time-saving declarative devices, I found myself wondering why I had so fervently resisted them for so long. Certainly there are times when a programmatic method is necessary for a certain echelon of dynamic server control behavior, but when it's not; why write more code than I have to? And furthermore, why not allow Microsoft's framework to invisibly do the heavy lifting for me in terms of maintaining a control's state?


On that note, I recently discovered what I considered to be a somewhat obscure ViewState symptom of populating a server control programmatically rather than declaratively.
If you rely on a server control's view state to retain its data across postbacks, so that you’re not required to continuously re-load the control every time the page refreshes, asp will store your entire data set for that control in view state (that’s about 136 lines x 1024 characters worth of view state for a single DropDownList control populated with approximately 5000 records). This is because all changes made to server controls via the code-behind file are lumped in with asp’s interpreted "user-initiated control changes" and so are preserved within view state rather than stored server-side.

Alternatively, declaratively binding a server control to a DataSource object, such as a SQLDataSource or an ObjectDataSource, will store the control’s associated dataset server-side eliminating the size-able view state that will travel to/from server and users' browsers for each page request.

Similarly, any property setting changes made to controls in a programmatic manner, such as the control's styles, maxLength, databindings, etc will ALSO be recorded and maintained within the page's view state. Is one's view state really a consideration when we're talking about view state hogging rich server controls such as the GridView? Probably not, but it's food for thought.

Tuesday, August 28, 2007

Hip-hip...Aaaaaarrrraaaaayyyyy!!

There is simply nothing more fulfilling and gratifying in the world of software development than solving a tough problem with an elegant, robust and scaleable solution.

Welllll...except for googling your problem, standing on the shoulders of other programming geniuses, and using their elegant, robust, and scaleable solutions to solve your own tough problem. Programmers are inherently lazy and I'm no exception. So when I stumbled onto this little URL gem describing an elegant, scaleable, robust and plug-n-play-like method to providing integer array parameters to a SQL stored procedure; I thought I'd share it with my fellow engineers.

I'd be interested to see the performance variance in high volume queries (like say oh, 40,000 records) between utilizing this method as compared with just providing a giant string delimited varchar parameter, concatenating, and executing it.

Wednesday, August 22, 2007

Psssshhaw...A man's world - hah!!

Sure, I took my share of Women's Studies classes at the University because, much like the sociology courses, they were some easy upper division credits. I even briefly considered minoring in the subject, but, while I found some of the topics to be quite fascinating and educational, I noticed a common theme, nay, a common atmosphere among them all:
Woe is me, a minority, living in this cruel WASP world! How will I ever survive? More importantly, how did I ever make it this far?!

I believe there is a time and place for empathetic sympathy, but not when it comes to one's minoric [copyright, patent pending] gender. In my opinion, adversity just makes one stronger, smarter, faster, and more driven than everyone around them who got there without facing their own comparable adversity.

Would I choose adversity if given the option? Honestly, I don't know. Does that make me crazy? Maybe, but I have to consider the fact that others doubting my ability or criticizing my efforts generally just makes me try that much harder and want it that much more. So, would I have achieved as much without some adversity? Honestly, I don't know.

Male-centric arenas I have already invaded and subsequently conquered:
  • Software Engineering - Roughly a 1:20 ratio in computer sciences' course enrollment.
  • Motorheadism - I can personally attest to the lack of female presence within this realm. In the 3 times I visited the drag strip with my car, I only witnessed one other female racer among countless males. The racetrack course I attended also contained 1 additional female other than myself among approximately 50 males.
  • Definite and perpetual financial independence - "All the honeys who make ur money...throw your hands up at me!".
  • An emphasis on one's career/educational development and accomplishments for personal fulfillment and gratification rather than only one's personal life/experiences - Ladies, let's be honest. Despite what your college transcript indicates, how many girls out there were/are really pursuing their 'MRS.' degrees?
  • The Weight Room Squat Rack - I've never seen another girl doing free-squats at my gym and, judging by the expression(s) on my fellow lifters' faces, neither have they. Sure, it took some strategizing to figure out how to 'manhandle' the 45lb Olympic bar above my shoulders, but now I'm a regular pro.
Future male-centric arenas I plan to invade and conquer:
  • The motorcyle portion of Motorheadism.
  • Software Architecture - I don't know a single female software architect - all the more reason to subdue and conquer.
  • Stand-up urination [kidding...I can already do this; just not very accurately].
The purpose of this bloggish narrative is not to tout my own ferocious drive or my personal accomplishments, but rather to inspire other to create their own. I've pursued and conquered these arenas for no other reason than they piqued my interest and I was fortunate enough to have a father who never treated me like a daughter, but instead like a child, and a mother who worked hard to keep from squelching my fierce independence (and occasional stubbornness). Everyone should be as lucky as me. But if you're not, who cares?!

Never, ever, ever, ever, ever limit yourself according to someone else's standards or limitations. If you have an interest or a curiosity, as non-status-quo as it may seem, pursue it. If you don't understand it or are intimidated by it, start asking questions or find some education. Bottom line is, your only limitations are the ones you impose upon yourself.

Tuesday, August 21, 2007

Offensive Omnipotent Oo-glers

We've all seen them before (or more appropriately been seen by them); those guys who so blatantly and fervently oo-gle that a simple 2 minute conversation is disconcerting. I'm not talking about the testosterone-driven, 20 something's who gawk at the chick in the bar wearing the barely there skirt and halter top; she's aspiring for such attention.

The dudes I'm talking about have wandering eyes while I'm talking to them, wearing a turtleneck and wool pants. I don't understand it, these individuals come from all walks of life and some are quite attractive and popular with a very active, opposite-sex, social calendar; so what is it? Were these creatures absent from life's sociology course the day the instructor taught that women are no longer simple physical objects and that women have been actively contributing to society well beyond a sexual capacity for virtually a century now?

In spite of these obvious elements, such men seem biologically driven to focus in on a woman's physique, even in the midst of a totally inappropriate and unrelated atmosphere. They behave as though they've just been released from a 15 year, abstinence-enforced prison sentence...everyday! I don't get it, and as a professional female; I find it highly annoying.

There are times when, dressed for a girls-night-out occasion; it's apparent I'm receptive to such attention, but Monday-Friday; when I'm at work or the gym or walking my dog - it's NOT okay to oo-gle. It's distracting, offensive, and vulgar.

There are thousands of other men around me who seem to have intuitively figured out when oo-gling is okay and when it's not (or they just fake it well) - what's with these stragglers?

Thursday, August 9, 2007

The GridView's GREAT From Up Here

I recently found myself frolicking in the land of .NET 2.0 SqlDataSources and editable GridViews. After reading numerous excerpts touting the flexibility and ease with which web developers can now achieve virtually Excel-like interfaces between users and their data, I was stoked to try it all out.

In retrospect, I will certainly award snaps to those MS peepz for their notable effort towards predicting and facilitating the common-place task of giving web application users discriminating access to database stored information. I can only imagine the daunting task of attempting to allow for all derivations of developers' preferences (Lord knows we're opinionated if nothing else) while at the same time maintaining a minimal level of Integrated Development Environment complexity in order to achieve some element of intuition.

That said, I had a bit of trouble getting my (basic) editable GridView to work utilizing VS's all-encompassing, plug 'n play, SqlDataSource functionality. The predominant factor in my troubles were the subtle differences with which VS handles defining one's SqlDataSource select/update functions via referencing stored procedures versus defining them with embedding SQL statements directly within Visual Studio's SqlDataSource configuration wizard.

I'm happy to report that after a good night's sleep and some
professional help, however, I worked my way through the cryptic behavior and resolved all the issues. Here are the 'GOTCHAS' I encountered, in the hopes of alleviating [some of] a fellow developer's trauma while exploring the wide world of editable GridView's.

Behavior #1: No errors being generated and no exceptions being thrown, but the GridView's update function just doesn't do anything. I encountered this problem when the condition within my Update stored procedure was not being met [WHERE MAIN_ID = @MAIN_ID]. Unfortunately the reason(s) the condition was failing weren't obvious.

  • Reason #1: As stupid as I feel admitting this, I'm going to do it for the sake of others who could be making a similar error. I wasn't including the MAIN_ID field within my GridView's select query. VS did not generate any type of error in spite of the fact that I was declaring a parameter named @MAIN_ID within my Update function that was not included as part of my GridView's select query, but maybe that's so they can allow for extraneous GridView column additions. At any rate, my 'where' condition failed in this case (obviously!) since it likely had a value of 'NULL' for the @MAIN_ID input parameter value.
  • Reason #2: If you're referencing a stored procedure for your GridView's select query, you're likely missing the necessary DataKeyNames attribute value within your GridView element. At a minimum, this attribute needs to hold the name of the field(s) you're using within the where clause of your update statement (in my case, I need DataKeyNames="MAIN_ID"). From what I can tell, VS will auto-populate this attribute if you're embedding the SQL directly within its SqlDataSource wizard with the names of any primary key columns it encounters, but no such auto-population will occur, nor will any errors/exceptions be generated when you're referencing your own stored procedure.

Behavior #2: A 'Procedure or function [your procedure's name here] has too many arguments specified.' exception gets thrown when you attempt to update a record within the Gridview.

  • Another dissimilar behavior characteristic between using embedding SQL versus a referenced stored procedure is VS's ability to automatically determine the fields that should be included as parameters within the GridView's update statement. When using embedded SQL, the update parameters will be automatically limited to those elements included within your SqlDataSource's element regardless of the number of BoundFields you have listed within your GridView. However, when referencing a stored procedure every BoundField that does not contain a ReadOnly attribute value of 'True' (and BTW it's default value is 'False') will be included as a parameter and sent to your stored procedure REGARDLESS of what you have listed as . This seems highly un-intuitive to me, too, but it's an easy fix once you know that's what's going on. You can either change each of the BoundFields that you don't want included as update parameters to have a ReadOnly attribute value of 'true' or you can go ahead an include their column names as input parameters within your stored procedure (@CURRENT_STATUS_DESCRIPTION) and just do nothing with them.

As a sidenote, here are a couple of incorrect/outdated solutions I encountered on other forums and wasted time pursuing:

  • Solution #1: The = comparison issue. One forum claimed that if you were including nullable columns within your GridView and attempted to update a column with a current value of NULL, the GridView's update procedure would attempt a = comparison, which would return false and halt the execution. I found no such behavior in my .NET 2.0 Framework and SQL Server 2000 configuration.
  • Solution #2: Anything to do with the value contained within SqlDataSource's ConflictDetection attribute. After wasting time on this one, I wound up using the default value (easily achievable by just omitting the attribute altogether) and everything's working just fine.
  • Solution #3: Anything to do with the value contained within SqlDataSource's OldValuesParameterFormatString attribute. [See solution #2].

Other than that, Mrs. Lincoln...how was the play?

Thursday, August 2, 2007

Sleep Tight


The ASC Stinger; Fast, strong, gorgeous, and built on the 2005 GTO chasse...I think I'm in love.

The ASC Stinger car has inspired me to make my car into even more of a sleeper than it already is. It used to bother me; the lack of reverence and awareness paid to my car in spite of its impressive, corvette-engine performance specs. Unlike its much sexier, inferior performing, counterparts, only the occasional, true motor-heads stop to take another look at my vehicle, or listen for the throaty growl of 400 horses when I roll by. So I've come to a conclusion; why fight it?

As such, my automobile will be undergoing a few subtle, yet effective exterior modifications to further conceal its origins and remarkable performance capabilities - making it an even more severe sleeper:

A JHP lip spoiler replacement
18" wheels (something with a thick 5 spoke chrome look)
A Skip Shift Disabler
All-Around Badge Removal
A Gauge Pod


Christmas Wish List:
Short Shifter (Not sure what they were thinking when they gave the GTO a shift throw that's a mile long. This little device would probably shave half a second off my quarter mile time. ^_^)

Monday, July 30, 2007

Managing the Management

I had a brief stint as a retail manager. By brief, I mean about a year and a half. It was, without a doubt, the most anxiety-filled overwhelming task I've ever participated in, but I learned more about myself and others in that short time than probably any other period in my life. I learned things that can't be taught in a book; things like good confrontation skills, and the delicate balance between being fair and just without getting walked all over. At the peak of my store's season, I was wholly responsible for 28 employees, not to mention the merchandising and sales of 2 high volume departments. To complicate matters, I was all of 19 years old at the time (one of the youngest area sales managers in the company) and all but 2 of my associates were senior to me.

Looking back now, I'm not entirely sure how I survived. I remember many an afternoon/evening/morning sitting, crying at my tiny desk in the corner of my tiny stockroom after shrieked at, cussed out, and insulted by an irate customer (or even an associate). But much like vacations in Rocky Point, you have to experience hell to really appreciate heaven.

In spite of the routine compliments paid me by my district and store manager about my managing ability, I had little faith in myself at the time. It wasn't until later in life; after being managed by a series of less-than-adequate managers in various positions myself, that I realized how good my associates really had it. They were the real reason I stayed in that hell-job as long as I did. I loved my associates, well most of them. But the ones you love, those are the ones you get up in the morning for (or in my case just never go home and spend the night). Nothing in that godforsaken store came anywhere near watching someone actually enjoy their underpaid, overworked position just because you were able to create a pleasant working environment for them doing things they loved.

I had a wonderful mentor (ironically, in the one career I haven't pursued). Her name was Astrid Tuholski. She is German and was my first manager when I began my short career as a department store clothing salesperson.
She was brilliant, everything I knew to do as a manger was just from watching her interact with her associates. She always knew exactly what to do to make her good associates love their job and make her bad ones hate it, all the while appearing completely professional and appropriate.

Here's some of what I learned from her:
  • Make your associate(s) your number one priority; before merchandise, deadlines, goals, even bosses; if they're happy everything else will fall into place.
  • Be a buffer for your associate(s), it's your job to get yelled at by irate customers, co-worker's or annoying bosses; not theirs.
  • Be an example for your associate(s) to follow.
  • Never expect an associate to do something you're not willing to do yourself.
  • Never expect as much out of your associate(s) as you do yourself, that's why you get paid more than them (hopefully).
  • Be very selective and hesitant when fraternizing with associates (better yet, just avoid it altogether).
  • Confrontation is part of the job so get over your fear of it (or learn how to fake it well) because you WILL NOT make a very good manager.

I Smell Ice Cream


It seems that virtually every week I discover a new, ecclectic, character-filled, cheap, yummy place to eat in this culinary mecca of a city. I've been a resident now for a little over a year and here are my personal picks in order of preference for cheapest, yummiest, funnest places to grab a bite;
  1. Sushi Deli II [Downtown] - This place has, by far, the best and most inexpensive sushi rolls I've ever tasted. And their atmosphere filled with loud 80's pop music and $5.50 large Sapporo/Sake special makes for a good time had by all.
  2. The Turf Club [Golden Hill] - This cook-your-own steak dive bar comes complete with $6 sirloins and $6 16oz (potent) drinks.
  3. Cass Street Bar and Grill [Pacific Beach] - Who knew a bar could have such delicious, fresh food (even their breakfasts!) and the informality of it all means more than reasonable prices.
  4. Hash House a-go-go [Hillcrest] - Every inch of the walls in this place are covered with awards and notariety for their food and presentation, and they've earned every bit of it.
  5. Luigi's Pizza [Golden Hill] - Amaaaaazing Chicago-style pizza and an impressive selection of bottled beers. (Though I suggest purchasing a pie at a time @ a reasonable $20.00 each rather than by-the-slice since their individual slices are occasionally fly-friendly.)
  6. Ichiban Sushi [Pacific Beach] - Sushi Deli II's rolls are far superior, but for reasonable, yummy, sashimi, I head here. It's a tiny place, but well worth the wait.
  7. Hodad's Burgers [Ocean Beach] - A health nut's nemesis; GIANT burgers, HUGE fry wedges, and lots of beer.
  8. Rusty's [Crown Point] - A close second behind Hodad's; good burgers, good beer, good times.
  9. Filippi's Pizza Grotto [Pacific Beach] - Deep dish, cheap, yumminess.
  10. Café Zucchero [Little Italy] - Amazing, authentic Italian food.
  11. Celadon [Hillcrest] - Not the cheapest place, but if you're into Thai food; it's the best I've had in the city and the atmosphere is quite pleasant.
  12. Extraordinary Desserts - One word: wow.
What did I miss?

Friday, July 27, 2007

Wanted: Career Mentor; Apply Within.

I've never had a mentor, well, I guess that's not entirely true. I've never had a career mentor. When I made the decision to be a veterinary scientist (maaaany years ago) it was 'cuz I was the girl who rushed the dove with the broken back who had flown into a nearby window and the baby quail who was the runt of the flock and had been left behind wandering back and forth along a tall city curb to the nearest wildlife facility.

I had always felt a strong sense of empathy and a deep connection with animals (well, mammels and birds at least), so a life of healing and helping animals just seemed a natural course.
But as you likely know, life often has other plans in store for us.

Two months into my college career (and a case of mono later), I was no longer a college student and spent the next 3 years of my life as a full-time retail associate and manager. That brief exposure was plenty to make me realize a college education was well worth my time, money, and effort for the monetary and occupational rewards.
Once again, lacking direction from a career mentor I developed a simple formula for determining which bachelor's degree to pursue upon my return to college:

< Industry Demand + < Monetary Potential + > Education Time = Computer Science


Note the lack of '< Career Enjoyment/Fulfillment' and ' > Education Difficulty' within my formula. I'm grateful for my lack of consideration regarding the latter since I've realized that in spite of being a prisoner of the computer lab for nearly 4 years of my life, it's a worthwhile pursuit for obtaining a strong foothold within such a lucrative industry.

With regard to the first missing formula component, I often wonder if
my anti high-school career counselor approach to vocational searching will eventually and ultimately lead to my burnout, but again, without a mentor to weigh my decisions against, I went the "I'll enjoy anything that challenges me" route rather than the, "I must pursue a career I'm already naturally interested and gifted in" route.

So here I sit; at another junction in my career where I could really use a little influence from someone who's had to make a similar decision, has pursued a similar career path, and has been exposed to the industry long enough to have insights and premonitions that I cannot.

No, wait...I think I just found the perfect mentor: Google.


Wednesday, July 25, 2007

Spiritual Quest - Part I

After spending some quality time with my beloved God-fearing family this past weekend, I feel it's time to tackle the intimidating and frightening topic of...[foreboding music] - religion. The 6 hour drive each way between San Diego and Tucson afforded me ample time to consider the role spirituality plays in my own life, how I feel about my personal purpose, and my belief or disbelief in a God and [his] constituents.

But before I launch into that mountainous molehill, some background info. I wasn't really exposed to religious/spiritual elements until about age 6, when my stepmother came into my life; at which point I was intensely exposed to Charismatic Christianity1. At approximately age 14, I was baptized in the Holy Spirit2, and voluntarily attended church regularly until approximately age 18, shortly before moving out of my parents' house. Christianity played a predominant role through most of my teen years and virtually all of my social activities centered around our church and the friends I made there.

Fast forward 10 years; I'm making the monotonous commute, alone between San Diego and Tucson, conflicted about the disparity between my chosen spiritual path (or lack thereof) and that of my family's. Suffice it to say, my current social situation presents little to no opportunity for discussions on the topics of religion or spirituality, but I guess that's what I get for hanging out with a bunch of young, Computer Scientists; not that I'm all too excited to broach those topics myself.

My current approach to religion and the spiritual hows and whys of life is much the same as my approach to all conundrums; logical reasoning. Let's start with the basics; how did I get here? As a scientist, I find the perfect symmetry present in all aspects of the natural world to be far too large a coincidence for a divine-less explanation. I do believe in the element of a single, divine Creator that authored us and the world we know.

Having established that belief, now the difficult part and the question that has likely claimed more lives throughout history than any other; which one? If I were THE God, how would I go about establishing my presence to humans? Humans are inherently skeptical so I'd probably perform feats before their eyes that they knew as impossible. Miracles such as raising people from the dead, walking on water, instantly multiplying finite materials, etc. And who is historically and repeatedly recorded as performing these feats? None other than Jesus Christ.

In spite of the loose translations and and cultural influences prevalent within most historical writings, the similarity and quantity of recorded miraculous events performed by Jesus Christ leads me to intuitively believe there is some truth to the recounts. And since I believe Jesus Christ did, in fact, perform those acts that I know to be impossible, then I believe Him when He says He's the Son of God. Because again, I'm a student of reason and if someone else were to appear today and do the things that Jesus Christ is recorded as doing right before my eyes, I wouldn't hesitate to jump on their bandwagon, too.

Alright, so at this point, I would consider myself a Christian insofar as I believe Jesus Christ is the Son of God and died for our sins on the cross. However, there are elements of popular Christianity that I do not believe were originally intended by Jesus and that I do not readily agree with. For example, the widely accepted Christian belief that the entire Holy Bible (and all its translations) are the black and white moral law to be obeyed and followed in its entirety, word-for-word. Rather, I approach the Holy Bible as exactly what it is; a historical document recounting the life, teachings, and death of Jesus Christ, written by authors with varying degrees of cultural influence and suffering countless loose translations.

The Bible is a remarkable document and highly useful for gaining insight into the life, purpose, and beliefs of Jesus Christ. But it's also chock full of the authors' personal opinions and culturally accepted norms. It is inherently counterintuitive to believe that a document comprised of human selected authors with human written, edited, and translated words could reach us today in a purely divine form.

That is not to say the Bible is not a worthwhile reading because I believe it's absolutely a worthwhile undertaking for anyone, whether it's to better understand Jesus Christ as one's Lord or for evaluative purposes in one's own search for their personal beliefs. That said, I also believe the literature should be consumed in a proactive format, weighing its content against cultural, gender, and individual preferences of the time. The Bible, in my opinion, is not a step-by-step instructional guide for life, but rather an overall, big-picture concept of what it means to live the life Jesus prefers, but ultimately the best source for those instructions is Jesus Christ Himself.

There are many who will label me as a 'lukewarm' Christian or any other of a number of catch-phrases distributed amongst the congregation(s) because of my opinions, and so be it. There are 2 primary criticisms I have of Christianity as a whole; its adoption of a number of beliefs and traditions that have no basis for origination with Jesus Christ Himself and an immediate and harsh judgment of all those not participating within the Christians' vein of spirituality.

I believe Jesus is and was a remarkable human being who behaved very differently than many of those who claim to fashion themselves after His likeness. I believe He was inherently empathetic and quite logical and that He inspired people by His example, not His criticism. Much of His original intention has, in my opinion, has been lost in the Christian masses and Christians of all kinds should step back and evaluate everything they believe to be Christ in origin.

1 Charismatic Christianity is often characterized by highly unorthodox activities such as church services containing loud, highly boisterous musical praise performances complete with church members dancing in the aisles and speaking in tongues. These activities are done at the influence of the Holy Spirit2.

2 The Holy Spirit, one third of the Holy Trinity (God and Jesus being the other 2), is said to be the spiritual incarnate of God, while Jesus is God's physical incarnate. God cannot, himself, directly interact with humans due to his benevolence since his mere presence would likely kill us, so he uses the forms of Jesus and the Holy Spirit to have direct contact with humankind.

Tuesday, July 24, 2007

Riddle-Liffic


The man who invented it doesn't want it. The man who bought it doesn't need it. The man who needs it doesn't know it. What is it? [No cheating].

Friday, July 13, 2007

B-E-A-uuutiful!!

It's days like today that remind why I pay exorbitant rent to live here. I recently acquired the task of performing audits on a handful of secret systems we have located on the Campus I work at; what relevance does this fact have to today's blog? None, except that this task requires me to travel from my building to another building located about a couple hundred yards away. Just the simple act of walking outside is enough to put one in a good mood. The weather's a perfect 78 degrees right now with a gentle breeze, there are vibrant colored flourishing plants everywhere you look, and the sky is a brilliant blue without a single trace cloud as far as the eye can see.

Living here makes me want to be a construction worker just so I can linger outdoors as often and as long as possible. If I could get a LAN connection from outside my building, you'd probably find me camped out on a patch of lush grass in the sunshine coding away. It's not too painful walking back into the confines of my ultraviolet illuminated, windowless office; knowing that today is Friday which means tomorrow I'll spend a good part of the day drinking, socializing and sunning myself on the beautiful sands of Pacific Beach followed on Sunday by a nice walk with my dog down to the local Starbucks where I'll sit outside; my top half in the shade, and bottom half in the sunshine, sip my ice-coffee, read, study, and watch the foot traffic go by.

God, I love this place.

Monday, July 9, 2007

No Vacancy

I have learned something about myself since relocating to beautiful San Diego, CA (in addition to my latest preference for tiny, hyper-fuel efficient cars); I do not like house guests. In concept, the idea is great. Most people would probably say I'm a pleaser; I like to entertain, I like to go out, and I like to eat out. But I guess I'm not a true pleaser because my generosity knows limits and when a person (or people) crosses my line of graciousness and I feel taken advantage of; I do not react well.

But then again, is there really a good way to react? Try telling the house guests you've had for the last 4 days that you're a little tired of them camping out in your living room, monopolizing your couch, forcing you to spend your free time and money on them, and that, while you've enjoyed their company up until this point, you'd like them to vacate immediately if not sooner; and then lemmee know how that goes over.

No, instead I take the much more subtle route. I become bitter, crabby, irritable and just generally unpleasant to be around until the house guests leave, I commit to never hosting another house guest again (that isn't related to me), and then I return to normal. It's not that I don't love seeing my friends and I truly do appreciate them traveling all this way to enjoy the fine weather and to visit me, but it's such a personal-life upset to have people camped out in my tiny living room for 4 nights and 5 days.

Not only do I wind up spending significantly more money than usual since I'm eating out for every meal and constantly 'doing stuff' to keep them and me entertained, but it's impossible for me to get a single quiet moment or just to camp out on my own couch and chill for an evening. I get nothing productive done; my laundry piles up, my condo gets trashed, and my dog gets neglected.

And to make matters worse, the caliber of friends who hit me up for a free hotel stay are not exactly swimming in funds which means we're either splitting everything right down the middle or I'm compensating a little extra due to my perceived improved financial situation (including, but not limited to hitching a ride to work so they can drive my $36,000.00 car around town in leui of renting a car of their own).

It's easy for me to simply dismiss them as inconsiderate and overbearing house guests, but the truth is; I've been that house guest a time or two before myself. Because, in reality, it's difficult as a house guest to know when you're crossing the line and, as a hostess, it's difficult to gauge when one's initial generosity is overwhelming one's long-term good nature.

So, in conclusion and in light of my recent life lesson (further aggravated by the tiny size of our condo and the fact that Zac works from home now); I will no longer be accepting house guests that are not related to me. In spite of the financial savings generated for my friends in avoiding a hotel room expense, a rental car expense, and the convenience of built-in tour guides; my friendships have a much better chance of surviving a visit to San Diego if they don't shack up at my place.

Tuesday, July 3, 2007

Rhetorical Question #1

Am I selfish for wanting both a fulfilling and lucrative career while not sacrificing my opportunity to have a family? Who really suffers in such a predicament; it's not me, and it's not my significant other; it's the child. There's little question in my mind that a child benefits from having a parent (or other family/family-like member) home with them full-time at least for the first 5 years of their life. Am I saying any child who doesn't have such a luxury is eminently prison-bound? Of course not, but I do believe that, when possible, a deliberate attempt to ensure the best environment for the child should be made.

And thanks to the wonderful advances in conception preventative technologies we have available to us today, we have the opportunity to deliberate and situate what we perceive to be an ideal environment before even conceiving. So again I pose the question; am I selfish for wanting to have a child, but not being willing to sacrifice my career and the fulfillment it brings me? I do understand that biology plays a large factor in the entire childbearing experience and there are many women who find themselves no longer concerned with their careers once their 'maternal hormones' (to use the parlance of our times) have kicked in. But I also know a handful of mothers who understand the necessity of their presence in the home, but at the same time miss their careers. And I don't want to be one of them.

I don't want to feel the tiniest bit of resentment while driving my minivan to soccer practice, followed by ballet, and then to the 'Toddler Tumbling' class; all the while wishing I could be solving some complex algorithm or architecting a new software application. Now don't misunderstand me, I'm not saying I wouldn't find motherhood challenging or that the outcome wouldn't be as impactful as excelling in my career. On the contrary, what career could possibly be as noble and influential as shaping a human being?

I guess the difference lies, not in the challenge of career versus motherhood itself, but the knowledge of the outcome. I'm certain I would be a good mother, I'm certain myself and my significant other would raise an effective, character-filled, beautiful human being. But how many of my own expectations can I exceed in the realm of my career and how financially successful can I become? Survey saaaaaaaaaaaaaaays?! I don't know. And more importantly when I get to that answer, will I be willing to give it all up for the family I gave up? And as if this life-changing, do-or-die, all-important question weren't enough; it's a timed exam. Tick-tock goes the biological clock...

Thursday, June 28, 2007

Run, RUn, RUN for you lives - ....it's DYNAMIC SERVER CONTROLS!!!!!

That's it, I give up! That's right, I'm finally admitting defeat to dynamic server controls in that they are simply not worth the trouble. And believe me when I tell you, it's not for a lack of trying; anyone who knows me very well is fully aware of my die-hard perseverance when it comes to tackling challenges, especially programming ones.

What, you may ask, brought on this sudden and extreme conclusion? Well, after posting yet another question to the asp.net forums regarding some inexplicable and bizarre behavior amongst my dynamic server controls, I received a very helpful and eloquent reply from a fellow developer. Contained within this reply was a link to an article written by the developer titled Dynamically Created Controls in ASP.NET. I highly recommend visiting the link. In it you will find a series of scenarios involving dynamic server controls, revelations about said controls, followed by more questions. In my own quest for decrypting dynamic server controls, I had made it about 3/4 of the way through scenario 2 when I discovered this article. I relived each agonizing, recursive cycle of question, discovery, revelation, followed by additional confusion while reading this narrative.

And then it hit me like a ton of bricks: I have neither the desire nor the free-time to invest in a topic so complex and unpredictable that I cannot even effectively use it until I've spent countless hours and days delving into the idiosynchracies of ControlState, ViewState, Page events, control properties, etc. And more importantly, I'm not alone in this struggle. I give you exhibit A; an extensive and in-depth article detailing the struggles of understanding dynamic server controls written by a developer who is clearly far more fluent in asp.net-ese than myself, with an inconclusive ending suggesting a semi-foolproof, hackish sequence of steps to follow when implementing dynamic server controls.

The irony here is that the entire precedence and purpose of web/server controls is to reduce developers' coding time substantially while reducing redundancy and simplifying the old-school, do-it-yourself controls comprised of your own custom HTML and JavaScript. While I have found Microsoft's non-dynamic web and server controls to serve those functions marvelously, their dynamic server controls have incorporated far too many subjective elements as to the behavior of the controls and nothing remains intuitive. Furthermore, they have done an inferior job of providing documentation citing exactly how and why dynamic server controls' unpreditable and seemingly erratic behavior is determined which leaves developers no options other than inefficient, tedious trial-and-error methodology. which has taken me far more time and energy then it would have to build my own old-school custom HTML and JavaScript controls.

[Descend from Soap-box].

No, wait...this is MY blog, my own little television station where it's all Tracy, all the time.

[Re-ascend to Soap-box].

Wednesday, June 20, 2007

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

I 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. Is that so wrong? 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.

Monday, June 18, 2007

Good 'Ole Engineering Estimates


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

Sunday, June 17, 2007

Well, Kiss Maaa Gritz!

A Liddle Riddle:
There was a woman who lived on the top floor of a very tall apartment buliding. Every day when she would come home from work, she would ride the elevator all the way to the top ONLY when it was raining or when there were other people in the elevator. When none of the above was a factor, she would ride only half way up the building, then climb the stairs the rest of the way to her apartment. Why?

It took me a while to get this one - the image I attached is a hint (probably an obvious one).

Cooking with XSLT

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!!

Friday, June 15, 2007

Bubble Girl


It really is true what they say; that adversity forces you to improve; whether it's physically, mentally, emotionally, or a combination of all three. Given the option I think I'd still prefer to avoid adversity at all costs, but short of confining myself to a giant impenetrable, sanitary bubble; I'm bound to encounter adversity in this world.

A few recent encounters with a particular source of adversity have forced me to really question why I religiously pursue a modular program design for all of my coding. Up until now, I probably did so because that's what my instructors repeatedly pounded into my brain throughout my education and that's what all the books I've read, written by brilliant, experienced software engineering minds, said was the right way to code. But none of those books ever did a very good job of explaining 'why' it is in fact a better way to code and I'd like to take a shot at it.

Let me start by saying that there is one unique situation in which a modular approach to software design will not be beneficial: A program that is completely error free, will never need to be modified in any way, and for no reason will ever need to be looked at or edited for the rest of its existence in this world. I'm gonna go out on a limb here and say that none of the programs you or I ever work on have or will meet that criteria.

Having established that, let's move on. I've had the opportunity, nay the pleasure, of working in multiple environments where one of my primary duties was enhancing and debugging code written by developers who are no longer employed within said company. Such code has broadly ranged not only technologies, but scales, and coding style (most of it very bad - see my Coding Kharma post below). My general response to encountering such code has been a negative one at best with enthusiastic communications to my superiors of my intention to remedy and rectify the current state of their code from this moment on. Surprisingly, I have met with some contention.


Why should I bother investing the extra time to ensure organized, modular code when the program's behavior and performance will indicate no difference between haphazard, uncommented, disorganized code?

I'll tell you why, it's simple math. When I open up a single page of your 8 page application and it's 4000 lines of code long, containing a total of 2 functions (each 800 lines long) and complete with embedded SQL and mystery session variables that suddenly and briefly appear before quickly and quietly slipping back into the black void that is your web-site state; consider for a moment the amount of time I am going to have to invest just to understand the general flow of your application, not to mention reach the granularity I need to in order to perform whatever task it is that I need to do. Now calculate the amount of time it would have taken you to incorporate a simple 3 tier (view, business logic, data access) architectural approach to your application complete with meaningful variable/method names and some simple comments indicating the business logic behind your commands, and I guarantee the first value will far exceed the second.

Software design architecture isn't about the amount of memory you're using or the performance of your application (although indirectly it can benefit these elements), rather it's about abstraction. Nobody would write a book that was just one giant string of text in random order. A book has a first page followed by a second page, further divided into organized chapters, paragraphs, and even sentences; so should your code!

Looking at the view component of your application should give me the visual elements (and that's it). Your business logic code should do just that and do it in a modular/functional way so that each individual task is placed within its own (short) function with a meaningful name. Scanning your function titles should be the cliff's notes of what takes place on the page itself. The Data Access layer should consist of nothing more than a bridge between your business logic and the database.

Knowing how to write code that works might make you programmer, but the ability to write code that can be effectively, efficiently, and repeatedly maintained and upgraded with little to no direct input from you the author, makes you a good programmer.

Wednesday, June 13, 2007

Coding Kharma


For 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 nemesis, we'll just call him T.C., 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 so your coding kharma will be good.

Tuesday, May 29, 2007

Speaking of Public Urination...


I don't think I'm a cynic when it comes to children. I LOVE children...especially when they belong to other people. But I did grow up with 4 siblings, only to inherit another 3 in my teens, and don't even get me started about all the nieces and nephews. So, with all that child-exposure I maintain that I'm a realist, not a cynic.

And I've witnessed firsthand the sleepless nights, excessive and projectile bodily fluids, and tyrannical tantrums. Not to mention the stories I've heard about my own horrid behavior as a young-ling. Do I think people should procreate; absolutely, with a few conditions and for the right reasons.

1. It should in no way be a reflection of the perceived 'next phase' of one's life - that's just societal pressure disguised as natural priorities.
2. Financial stability is a must. I'm not talking Trump-dom here, but a potential college fund would be a step in the right direction.
3. While one's desire to have a child is almost certainly some incarnation of one's love for their significant other/spouse; it's important to realize that a child can only make a bad relationship worse.
4. Potential parents should wholly and thoroughly understand that bearing children will completely change and altogether ruin their lives forever - in a good way.
^_^

Friday, May 25, 2007

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.



Thursday, May 24, 2007

There's No Junk in My Trunk (somebody stole it).

WANTED:
Trunk Monkey; must be rabid and carnivorous.


So for anyone who doesn't already know, I recently had my work laptop and purse stolen from the trunk of my car while it was parked about 10 feet from the floor to ceiling windows that line the front of my gym. After doing a little research regarding the technology (or lack thereof) surrounding automobile alarms and the inexpensive yet effective devices available to would-be thieves; I thought I would share my newfound knowledge with my fellow seekers-of-knowledge, and the people who read my blog.

Check out this URL, and do a search for the phrase "Car Alarm Code Finder" (BTW, you'll find lots of other nifty little [criminally negligent] devices on this site, too). For the bargain price of $150.00 I can be the next proud owner of a device which, not only will record the encryption key used to disarm and unlock a vehicle within a 100+ foot distance for later retrieval (like...oh, say when I return to the gym at the same time the next day), but will also traverse all possible encryption key combinations for most standard, factory installed alarm systems within approximately 10-20 minutes.

In other words, somebody casually walked up to my car, hit a button; simultaneously disarming my alarm and opening my trunk, grabbed my crap out of it, closed the trunk and walked quietly away. The mystery of how a person silently and unobtrusively entered my trunk, which contains no external access points of any kind, and afterwards showed no visible damage, while in front of literally a crowd of people is suddenly solved.

The moral of the story is, it's way easier than you could ever imagine to not only access your car, but also to steal it, so don't leave anything of value in it and don't get too attached to it.

Related Links:

http://www.howstuffworks.com/car-alarm6.htm

Aaaaaaaaaaaaand we're back!!!


First impressions? Well, the page templates are nice, but there's no Microsoft Sans Serif font option; I don't mean to be a sellout, but it's a very crisp, clean, yet genuine font if I've ever seen one (seriously, try it out sometime in Word). On the flip-side it is a free blog which took me approximately .36 minutes to set up and I am a sucker for efficiency and intuitive procedures. Anyhoo, onto the blog-licious-ness....

You know how when you're in that second semester of your senior year in high school, talking to the career counselor(s) and they insist you need to find a job, nay a career, which not only stimulates and challenges you, but also represents a natural talent you've never had to work to foster. It's a task you'd be performing whether someone paid you for it or not. Yea...I never, ever bought that crap. I knew those were the people who, though fulfilled and probably much less sleep deprived, would likely struggle to earn a living or even to find work in a fiercely competitive market. I, on the other hand, decided to make the primary subject(s) of my career decision; market demand and monetary potential versus educational investment. Hence, I become a computer scientist.

That's right...I spent more all nighters in the computer lab than I care to count, bribed more TA's than I care to remember, and performed more sexual favors than.... well you get the idea. Anyhoo, here I am; approximately a year and a half following my college graduation with approximately 3.5 years (or 5 if you're reading my resume) of industry experience under my belt and I'm feeling a little lost. I have spent the last 10 or so years very successfully convinced that one's career needs only one simple ingredient: challenge.

There's no question computer science has provided challenge; not so much just a challenge of pure intellect, but also strict discipline and die-hard perseverance. Yet, here I sit, a mere 10 hours away from another stimulating 8.5 hour day of coding problems, solutions, and creation; somehow wishing I could wake and do something else. What else; I'm not sure.

Now maybe it's just that second glass of wine I had with dinner or maybe it's because I've watched Office Space twice this week, but I'm not so sure anymore that challenge alone is enough to vocationally fulfill me for a large portion of my life.

There were 'tasks' I performed as a child that nobody ever had to ask me to do. On the contrary I often had to ask or beg my parents to be given the resources/time to perform such 'tasks'. Such items included (but were not limited to); creative writing, fictional reading, cooking, riding horses, and dancing (mostly ballet).

Could I potentially have made a lucrative career out of one of those items? With a lot of commitment, hard work, and support; maybe. Did I miss the mark in my career discrimination? Should I have chosen a task that I have genuinely always enjoyed rather than just something I happen to be good at? Maybe.