NO MORE CAREER
POLITICIANS!
Get Out Of Our House: Replacing congress with TRUE citizens!
Contact Doug!
Learn About Doug!
View Doug Boude's online resume
updated 11/18/2009

View Doug Boude's profile on LinkedIn
Link to me!

Follow Doug Boude on Twitter
Follow me!

Be Doug's friend on Facebook
Befriend me!
(I promise not to follow you home)
OO Lexicon
Chat with Doug!
Recent Entries
You may also be interested in...
Web Hosting

best web hosting - top web hosting sites, thetop10bestwebhosting.com

Czech your Page Rank!
Check Page Rank of any web site pages instantly:
This free page rank checking tool is powered by Page Rank Checker service
Surf's Up!
Visit Egosurf.org and massage YOUR web ego!
My Score: 9,001
Doug's Books

Read (and recommend)

  • Men are from Mars, Women are from Venus
  • The Wisdom of Crowds: Why the Many Are Smarter Than the Few and How Collective Wisdom Shapes Business, Economies, Societies and Nations
  • Blink: The Power of Thinking Without Thinking
  • Head First Design Patterns
  • Transact-SQL Programming
  • What's So Amazing About Grace?
  • Just So Stories (Rudyard Kipling collection)

Reading

  • Prayer: Does it Make Any Difference?
  • Data Mining (Practical Machine Learning Tools and Techniques)
<< September, 2010 >>
SMTWTFS
1234
567891011
12131415161718
19202122232425
2627282930
Search Blog

Recent Comments
Re: Railo 3.1 on Windows Server 2008 and IIS7 - Part 3 of 3 (by Jon at 8/27 2:04 PM)
Re: Hosts File Changes Not Acknowledged on Vista 64 (by Spacy at 8/24 3:46 PM)
Re: THE DAY CFUNITED DIED (by ComboFusion at 8/23 10:50 AM)
Re: My Grandpa (by Tasha at 8/10 4:29 PM)
Re: Just What IS a 'Service Layer', Anyway? (by dougboude at 8/02 10:10 AM)
Re: Just What IS a 'Service Layer', Anyway? (by Isaac at 8/02 2:25 AM)
Re: PayPal IPN Coldfusion CFC (by Soyestudiambre at 7/25 6:12 PM)
Re: PHP vs COLDFUSION (by Tony Garcia at 7/17 11:24 AM)
Re: PHP vs COLDFUSION (by dougboude at 7/14 8:45 AM)
Re: PHP vs COLDFUSION (by Lola LB at 7/14 5:51 AM)
Categories
Archives
Photo Albums
Funnies (5)
Family (3)
RSS

Powered by
BlogCFM v1.11

15 July 2009
Assurant Health (NYSE:AIZ) Denies Coverage Because Young Man is Autistic
The Emotional Burden of Procuring Medical Benefits

I have spent the majority of today shopping around for medical benefits for myself and my family. Only it wasn't very much like shopping; not at all. It was more like going through a divorce, or a death, or some other traumatic event that causes the rest of life to be put on hold while you do lots of typing, talking, researching, worrying, counseling, fretting, waiting anxiously, and spending money you didn't have to begin with.

Some of the other "required" industries (those things that everybody needs and has to have) have figured out how to actually be a positive experience in people's lives, like (in my opinion), the real estate, auto, and shopping industries. But the healthcare industry as it exists today...they know that you need them and therefore aren't all that concerned with simplifying the process or making it a pleasant experience anywhere along the way. Simply applying for benefits can nearly bring a person to tears. They scrutinize every aspect of your life and make summary judgments and assumptions about your future health, demand their giant premiums UP FRONT before they'll even CONSIDER approving you (don't worry! If you're denied, they'll return them to you as soon as they've earned a wee bit of interest off of your money!), and arbitrarily DENY you benefits on what I consider to be a discriminatory basis.

Take Assurant Health for instance ( NYSE:AIZ). Today I called them up to ask their help choosing a medical benefits plan that was right for my family and I. I spoke with a nice gentleman named Brian who graciously offered to walk me through the process. So he begins asking me the usual questions about mine and my wife's height and weight, our tobacco usage, and then about my dependents. My oldest son is 24 and autistic. I had the understanding that any dependent over the age of 18 had to have a good reason for being covered under my benefits, so I voluntarily told Brian that Joshua was autistic. There was a brief pause, and then a somber "oh no" that suddenly had me a bit worried. "What kind of autism is it?", Brian asked me, "can you tell me more about it?". Knowing full well that autism has no connection whatsoever with physical health, I volunteered "well, he's non-verbal". Before I could give him any more detail whatsoever Brian told me that I had been summarily judged and that Assurant would not be able to offer me medical benefits for my son. "But, we can proceed with adding your other dependents if you would like", he gleefully added. I had to laugh, and asked Brian to please help me understand the correlation that Assurant Health (NYSE:AIZ)had made between AUTISM and PHYSICAL HEALTH.  He stammered a lot, and like most under-paid customer service reps do, retreated to the safety of his pre-written script, chanting it like a mantra in response to each of the analogies I drew and asked him to enlighten me about. In a nutshell, he hadn't a clue, nor was he ever once regretful, but staunchly stood his ground and told me repeatedly, "the Assurant Health (NYSE:AIZ)underwriters will not approve dependents with autism".

Let me tell you, my son Joshua is as healthy as a horse, and among all his siblings doesn't get sick any more and probably even less. He's non-verbal, yes, but not one time in his 24 years on earth has that ever equated to an increased risk of contracting influenza, heart disease, cancer, or any other condition that would require tight fisted Assurant Health to outlay cash unecessarily. In a word, Assurant Health is blatantly discriminating against my son, and how can that be permitted in today's society? I wouldn't then be surprised at all if some of the screening questions Brian had not gotten to had to do with my family's eye color, hair styles, or preferred sock heights, as perhaps they may have managed to also draw correlations between THOSE unrelated facts and their risk of having to pay on a claim! Assurant Health, congratulations, you have joined the ranks of those corporations whom I consider to be guided and directed by individuals with a much less than average IQ, and I do not intend to stop calling you out publicly in every forum I have access to until you put an end to your corporate-supported discrimination. On my side is the fact that you are a publicly traded company, and I believe and hope that your "owners" will see my point of view and empathize completely.

Back to my original theme, though, then there's the whole process of actually trying to USE the benefits you pay so mightily for. Making your visit to the doctor, supplying your benefit card only to receive a bill for amounts that should have been taken care of by your provider, only they decided to judge the item "out of scope" and defer it back to you to pay. After taking precious time out of your life to show them obvious facts from their OWN POLICY, they concede that it's their responsibility and eventually pay it. In the meantime, your credit suffers while their slow motion bureaucratic gears leisurely fulfill the obligation you paid them to. Bah.

I'm very frustrated right now, completely drained mentally, and am out $468 while I wait to find out if the mildly retarded underwriter sitting comfortably in their air conditioned office at one of these monolithic conglomerates will be merciful enough to accept me into their broken system and add me to the masses who posess what amounts almost to vaporous benefits. In terms of monetary costs, costs in time, and pain and mental suffering, I do believe I'd almost be happier investing the time getting a degree in homeopathy and just leaving the whole Gordian mess behind. Unfortunately, on occasion I do need the medical expertise that exists out there, and since it's priced way beyond the reach of the average family, I have very few choices in the matter, as do we all.

I guess I have no solutions to offer, I just want to immortalize the discriminatory actions of good ol' Assurant Health against my autistic son, and to vent with the rest of my good citizens who I know are having to endure the same frustrations as myself. I do not believe that we should just accept it all because "that's the way it's always been", nor should we learn to be okay with it simply because it appears that we have no choices. Systems, like little children, will live up to the expectations placed upon them. Sometimes it takes a long time, but change can happen if enough people are consistent in the pressure they apply and the stands they take.

UPDATE

It's been about three weeks now since my highly unpleasant encounter with Assurant Health, whom I consider to be nothing short of blatantly discriminatory. I thought I'd let my readers know that I DID find a healthcare provider who was more than willing to insure my autistic son, no questions asked. In fact, it wasn't that hard to find...seems Assurant Health hasn't managed to infect all of the rest of the health care industry with their discriminatory practices after all. I hope that others like myself who have found themselves under Assurant's prejudiced magnifying glass will speak out and spread the word. Perhaps a little fiscal pressure may get them to reconsider what they're doing with regards to our autistic citizens. If not, then I hope perhaps public awareness will caluse them to slowly drown in red ink as their true nature is manifested and investors see them for what they are: purveyors of prejudice.

I also notice (from reviewing my site's activity logs) that Assurant Health themselves have been visiting this blog post, from their Minnesota and Milwaukee offices. Keywords they used to find my post were very specific, using phrases such as "Assurant Health denies autistic", and "assurant health autistic brian". Good. I hope they continue to spread the word around their virtual office. Perhaps whatever semblance of humanity resides within their managerial hierarchy will take it upon themselves to actually back me and suggest that perhaps equating non-physical handicaps with the potential of physical ailments is indeed absurd and discriminatory. Besides that, adding to a person's already stressful burden of shopping for health benefits should be something a company strives NOT to do, shouldn't it? Assurant made it clear to me and therefore the entire nation that they do NOT care what we think, and if we don't like being grilled and pressed and summarily judged, then we can just take our sorry arses right on down the street. 

Keep on reading, Assurant, cause I'm surely not going to stop writing.  

Posted by dougboude at 4:42 PM | PRINT THIS POST! | Link | 4 comments



Employers: Save Yourself And Your Employees Some Healthcare Cash!
overcoming in a mildly retarded world

Health Benefits and the costs thereof. I won't even pretend to be anal enough to have managed to have wrapped my head around the unnecessarily over-complicated subject of health benefits, but I did just go through an experience regarding that topic that I feel is worthy of sharing.

The Scenario
I am the non-custodial parent of several children for which I provide support and medical benefits. Since my ex spouse had the children covered under her plan at work, I opted not to purchase benefits through my present employer in order to save several hundred dollars a month. Well, the Texas Attorney General's child support branch recently mandated me to procure health benefits for my children, despite the fact that I provided them proof that my ex spouse already had them covered. Since I had no choice in the matter and since a legal mandate qualifies as a life status change event (enabling a health care provider to allow someone to enroll in benefits outside of their normal bogus "open enrollment" period), I decided to just go ahead and cover the whole family. I submitted my application and waited for a response. Finally after several days, I was told "no, we will only allow the mandated children to be covered". Hmmm. Okay, so I'm going to have to pay the already high premium to cover children, but Blue Cross and Blue Shield is only going to allow me to put  the non-custodial children on? Not my other children for whom I am the primary custodian? In a word, that's BS, and a senseless, arbitrary, judgment-less decision made by some heartless BCBS bonehead in a padded leather chair somewhere.

My Plan 

Refusing to give Blue Cross and Blue Shield one dime, I then decided to explore the alternative of purchasing my OWN health insurance as an individual. Now, I had always been brainwashed to believe that purchasing insurance on your own was so outrageously expensive that it couldn't possibly be affordable, so prior to this I had always just opted to tell my employer to "give me the works" and pay whatever I had to. But after inquiring among my peers and family, I found that there were LOTS of affordable options out there, none of which cost me any more than my employer was charging me, and all of which were comparable in coverage benefits! I finally settled on using United Health Care (www.uhc.com), and in so doing was able to speak directly to a rep who helped me design a custom benefits package that fit my budget and my needs to a tee, and at an EQUAL cost to what my employer was charging me! I lost nothing and I gained freedom from the "group" by which healthcare providers judge employees when deciding their rates.

Employers: Consider This

Here's food for thought, too, for any of you out there who have employees and who provide company sponsored benefits: Stop doing it. Instead, what if you simply told your employees to go out and get their OWN benefits, and then you reimburse them half of their monthly premiums? Let's look at some numbers.

My employer currently graciously covers a full 50% of what they are charged to provide me health benefits. If they're charging me $450 a month, then they are paying $450 themselves. Times the twelve employees we have, they're dropping $5,400 a month on us AFTER factoring in what they deduct from our paychecks. If instead they allowed each of us to go out and get our own, and let's say between us all (some single, some healthy, some ill, some old, some with families) we all managed to acquire a premium that averaged $600, they would spend only $3,600 a month, and each employee would only spend $300 a month. The employer saves $1,800 a month, the employee saves $150-200 a month...win win, right????

So then why isn't this happening? Why haven't more employers caught on to such an approach? Am I missing something? I know my nature is to simplify things, boil them down to their true core...but is it really this simple, or am I just incapable of "appreciating" an overly complex scenario? Is the emperor naked, or does he really sport a gorgeous new wardrobe? lol. Actually, I think it's the whole "herd" mentality prevailing in this industry, where every employer does it the way they do because every other employer does it that way too. Bah.

Bottom line, I don't think I'll ever elect employee sponsored benefits again, unless of course they are picking up enough of the tab to make it the best deal for me. I encourage all of you to at least explore the option yourselves, too, and approach your employer about adopting a similar reimbursement policy for their company.

 

Posted by dougboude at 2:18 PM | PRINT THIS POST! | Link | 4 comments
30 June 2009
Small But Seriously Irritating Export to Excel Issue

Alright boys and girls, here is an issue and its solution that had me going NUTS for a couple of hours. I actually wrote and implemented three DIFFERENT solutions trying to find a way around the problem, only to find out in the end that I kept carrying the true issue with me.

The Scenario

My user clicks a link and a window pops up allowing them to save or open some exported data as an Excel spreadsheet. Of course, it all worked fine on my machine (two of them, actually), but when my boss tried it on his, he got an error. Not cool. Back to the drawing board.

The Challenge

My first attempt (which worked fine for me) was to create a true excel spreadsheet by streaming the data in binary to a file (it's a bit complicated, but cool). Excel 2007 was able to open it just fine, but my boss' older 2003 could not. So, I decided I'd just fall back on the old reliable CSV type file rather than try and troubleshoot the first approach in too much depth. I coded my CSV export and for the life of me could NOT get my Excel to open it without first flashing me with two nasty error messages, paraphrased here:

"The file you are trying to open '[file name here]' is in a different format than specified by the file extension."

"Excel has detected that '[filename here]' is a SYLK file, but cannot load it."

What the heck??? All we're talking about is some text separated by a comma. And Excel doesn't recognize the format??? Content headers are right; file extension is right; Open it up in a text editor and it sure looks fine to me; What's going on?

I reworked the code to use tabs as delimiters; same symptoms.

The Solution

After dicking with it for a couple of hours, comparing known working CSVs with the one I generated, comparing non printable character strings such as line feeds (which is what I suspected the issue to possibly be), I finally figured out that the TRUE problem was (and I grit my teeth in frustration when saying this): the name of the first column in my data.

NEVER allow the first column in your data to be called "ID". AUGH!!!! (had to scream). Apparently, using "ID" is a trigger to Excel that your file contains a symbolic link to another spreadsheet somewhere. I know, I know, for every OTHER type of file that Excel opens it relies on the file's EXTENSION to determine the type; but not in this case.

Moral of the story: NEVER allow the first column in your CSV data to be called "ID".

Lesson learned, I'm now one small step closer to Nirvana.

Posted by dougboude at 12:30 PM | PRINT THIS POST! | Link | 23 comments
10 April 2009
Resolution to 'Mysterious' Bash Script Error
(to skip to the very heart of this post, click here. otherwise humor me and read until you get to it  )

So I was sitting there working on a CF-based resume builder app when my boss walks in and asks me to take over responsibility for our company's database and then implement a solid backup plan and policies. I'm still new to this job and so haven't been privy to anything database as of yet, but, how hard can it be? I heartily accept (because accepting requests makes the boss happy) and then proceed to track down all the particulars of our database so I can make this all happen.

The skinny is that our current web application is a very large and disorganized hodge podge of PHP files that run against a mySQL database sitting on an over-priced, shared hosting Linux server somewhere. I FTP the PHP files to my pc and dig through them for some clues about our database and find hard-coded (all OVER the place) the server name, username, password, and database name. "Cool", I say to myself, "I can just use the mySQL gui and continue to explore this puppy. Well, apparently direct connectivity to anything but "localhost" was blocked, so I had two choices for access: phpMyAdmin or telnet sessions via puTTY.

phpMyAdmin does have a feature to allow me to create all the scripts needed to recreate all tables and insert their data. But I wanted a "real" backup as well via mysqldump if possible, so decided to use puTTY and see what I could make happen.

Bear in mind that the last time I did any meaningful work from a command line was somewhere in the late 90s, and I consider doing things that way "last resort", cryptic, and way over complicated. (my personal opinion is that individuals who purposefully CHOOSE to do things the harder more cryptic way when a more user friendly approach exists probably do so in order to make themselves feel smarter. Yeah, I could use the old DOS 'debug' command to find my way into an embedded bios in a piece of hardware I have installed and run its processes that way...but when I have a gui available that does the same thing??? c'mon). Okay, so anyway, I'm staring at a lovely black window with a green square cursor, and an hour later I have managed to piece together what I think is a good start to a bash shell script that will do a "check table" on all of my database's tables, run repair on any that report an error, do a mysqldump on my database, and then ftp the resulting file to a remote server. But, I have a problem (one that consumes the next two and a half hours): my script won't run without immediately throwing a very ambiguous and meaningless error.

I add "-x" after the initial "#! bash" statement so I can maybe get more info, but there's none to be had. After many, many iterations of the same line of code (trying to do a mysql "show tables"), I accidentally happened upon a blurb somewhere out in the ether that caused me to consider the character(s) being used as linefeeds in my script file. I ran a quick regex replace, replacing all \r\n with \n, and lo and behold the script worked!

The Moral of the Story: If you HAVE to write shell scripts in a PC environment, make sure you do a regex replace of all \r\n with \n!

Oh, and do I feel smarter for having managed to create a working shell script from within a PC environment? No. I mean, I do feel a sense of accomplishment that I hung on to this bull and rode it until it submitted to me. But more so I rather feel frustrated that I have to jump through so many fiery hoops to accomplish what ought to be mostly straightforward. Why's the world gotta be so complicated? Oh well, that's another rant altogether.

Hope this saves someone else some time!

Doug out.
Posted by dougboude at 4:22 PM | PRINT THIS POST! | Link | 2 comments
13 March 2009
Hey, Did You Catch South Park Last Night?
Die Disney, Die

I can't tell you how excited I was last night when I saw the previews for South Park and saw that the Disney Channel and the Jonas Brothers had found their way into the crosshairs of the South Park writers! I myself have been a long time HATER of the Disney Channel, despising its infinitely flowing pre-pubescent stream of sickening, mind numbing garbage that's as incoherent and directionless as the pre-pubescent kids who are addicted to sucking on Walt Disney's grotesque lactating channel. And so I savored every single moment of last night's South Park, shouting out as many "hoo RAH"s and "YEAH!"s as laughter.

If you didn't catch it, let me summarize it for you.

Micky Mouse is a tyrannical mobster who turns larval human beings (teenagers) into icons and idols for girls and boys who are aware that they have genitals but don't quite know what they're for just yet. He gives the closet liberals an excuse to let the TV babysit their children by coating the adolescent inuendos, potentially compromising boy-girl scenes, and "near kiddie porn" with a thin layer of "just say no". In this scenario, Micky has groomed the Jonas Brothers to get the little girls' vaginas all tingly, only to turn around and encourage those same confusedly horny pupal girls to take vows of chastity until their wedding night. The Idiot Brothers try to take a stand against Mobster Mouse only to be beaten down like the skanky ho's they are, until Micky accidentally reveals his true objectives to the general public and is rejected...at least until the closet liberals have had a night to think it over or just plain forget what they heard.


The only thing I WISH SO BADLY that this episode would have included is some reference to Hanna Montana. If only in effigy, I would PAY to see that blossoming, overrated, overpaid skank taken out of existence! There are few things in history, life, the earth, and the entire universe I could think of that have lesser value than one nanosecond of Hanna Montana and the gelatinous hodge podge of random stupidity she spews in between the artificial studio-generated laughter that erupts every 8 seconds (on average...I've timed it). And what's even more sickening is the fact that the children...the up and coming next generation...they're addicted to it. I shudder to think what the product of a general diet of Disney Channel on a daily basis will be when these kids DO hit puberty!

Yeah, you can probably tell that I despise the Disney Channel. A lot.

Disney, please just die.

Doug out.

Posted by dougboude at 10:53 AM | PRINT THIS POST! | Link | 7 comments
16 December 2008
A Look at Male Enhancement
or, The Mythical Man Inch

Allow me to preface by saying that I am well aware that NO MALE reading this post has ever considered, imagined, entertained the remotest thought of, or especially TRIED any of the seemingly popular and wildly successful (according to Ron Jeremy) male enhancement nutraceuticals. I know this is the case...we're all fantastically pleased with our packages just the way they are; no room for improvement there. Lend me your imaginations for a moment though, and let's pretend a few things. Let's pretend that first of all, Ron Jeremy does not speak with cunning lingus, and "Johnson-gro" actually does what it says. Let's pretend also that you actually say to yourself one day while studying your genitalia in a fogged up mirror, "hmmm, I guess I COULD stand to have a LITTLE more penile fortitude", and drop the bucks to acquire the product. And, to top off our imaginative adventure, let's say that after rubbing on a handful of "Cavernous Balm" and rinsing it away, there in all its glorious beauty shone a serpent fit to be enshrined, a full ONE INCH longer! You know, the size of half of your pinky finger; the distance between the 2 and the 5 button on your telephone; the breadth of three lines on your notebook paper.

Now, here's the question, the answer to which I believe dispells every empty, egotistical, low self-esteem driven motivation that moves us and fuels the "phallic express" bosses who thrive on mankind's misinterpretation of his schnitzel:

Would your woman even NOTICE?

Your lovely spousal unit of one, three, five, ten, even TWENTY years: Would she really take note the night you crawl into bed with what you believe to be a brand new weiner? Even in the bright white light of the noon day sun, do you honestly believe that, had you never said a word to her about anything to do with attempting to lengthen your dachsund, that her eyes would fly wide open at what you perceive to be a huge difference in Ol' Stiffy? I'm betting a gabillion dollars that the absolute unquestionable answer is...NO. She wouldn't notice without you pointing it out to her, and even then she'd have to stretch her imagination to try and find concord with you.

Through the eyes of our companions (contrary to our own perceptions sometimes), WE do NOT equal our Wally. Our woman sees us when she looks at us, not solely one small part of us (pun intended). I know, I know, this is a hard concept to conceive; after all, WE see ourselves as our penis, why wouldn't they? Especially when that's the part of us with which we pleasure and become one with her. The fact of the matter is, though, as I'm sure you have all heard continuously, US GUYS are the only ones who really care THAT much about how much our Ballpark Frank plumps when you cook it, not them. The proof being that were you truly able to tack on another whopping INCH, she wouldn't even know that you had. Knowing how very challenging this is for a male to wrap his head around, allow me to toss out an equal analogy from our companion's perspective that I believe will help drive the concept home....

A woman's pride is very much attached to her appearance; not even a topic fit for debate. The skyrocketing sales of bigger boobs, liposuction, rhinoplasty, vulvarian sculpture, etc. solidifies that fact hands down. One aspect with which she identifies herself as beautiful is her hair. Now for us guys, we know that our lady HAS hair, and we like that fact; but I would venture to say that, although we can see the aesthetic complement a neatly coiffed head provides, it is way down on our list of reasons why we are attracted so strongly to her.

Case in point: your lady goes out for the day with a girlfriend to do some shopping, grab some lunch, have some girl time. When she gets home, you're super happy to see her and plant a wet one on her to let her know it. But unless she points it out to you or is gentle enough to drop a few hints here and there, chances are you are NOT going to notice the WHOPPING INCH that she spent seventy five bucks to get chopped off the end of her hair. To her, her hair is her pride and joy, one of the devices by which she measures her own beauty, and the fact that she gave it some attention and paid someone to take off those BLATANT split ends and make it just a wee bit shorter has added to her self-esteem greatly. But for us, though we do see her hair, like to touch her hair, smell her hair... it isn't her hair alone that makes her beautiful to us! In fact, it's rare that we even notice her "girl's hair cut" unless she TELLS us. Why? It isn't because we're blind, or we're not looking at her. It's precisely because we ARE looking at her, and not just her hair, that we do not take special note most times.

You getting it yet? Your woman doesn't care about the dimensions of your outer space, YOU DO; you don't care if your lady dyes, cuts, curls, perms, or straightens her hair: SHE does. I concur that it will take a LOT of mental training and practice for the average male to teach himself to think differently, but guys, it's time we all stop judging ourselves (I say this very generically) by what we perceive ourselves to be or not be packing, and realize that going up one ring size is NOT the ultimate gift. If we spent half as much mental energy on thinking of ways to be better husbands and boyfriends as we do thinking about "what if I were as big as a pop can", we'd have happier partners than we ever thought possible. Investing time in the things she DOES care about...now THAT is "male enhancement".

Just food for thought. :)

Posted by dougboude at 4:03 AM | PRINT THIS POST! | Link | 1 comment
18 November 2008
TinyMCE Refusing to Display Icons
or, A Descent into Madness

Okay, this post is as much informative as it is a rant, so bear with me while I vent as I share.

Let's talk TinyMCE. Typically I use FCKEditor, but for my current project I'm going with TinyMCE. How hard can it be, right? An editor is an editor is an editor. I download it, I add the two simple lines needed to transform my textarea into a full blown editor, and voila: it's an editor. But the menu has NO icons to be seen! First impulse is that I obviously have a bad path for the images. But no, TinyMCE uses "embedded sprites" or something like that to display its icons, so it isn't a pathing issue. If I right click where an icon should be, I see it for a moment, but then it's gone again.

The symptoms

tinyMCE not showing its icons

What it should look like

tinymce editor with icons displayed

So I wade through dozens of google results that look like they *might* provide a clue. One is a thread on the TinyMCE forum where the symptoms are the same as mine. I read through the replies looking for that silver bullet, but the only clue I find is that the user eventually solved their problem by removing the div tag from around the textarea. Not a solution for me, because I kinda NEED my divs to provide structure to my layout (I thought we all did), but it does give me reason to believe that perhaps I have implemented some css that TinyMCE doesn't like. So I move my textarea to other parts of the layout and reload until I finally get the icons to show up. Aha! I've narrowed it down to the div area that causes the symptoms, <div id="inner">! So let's see what horrific css i've applied to that div that broke TinyMCE.

#inner {display:block;margin-left:-200px;margin-right:-210px;padding:5px;}

Well, it doesn't LOOk so horrible at first glance. Let me give that div a new ID and add a new line to my css, adding style elements until I see it break again. So now in my layout I have
<div id="innerr">
and in my css I have
#innerr {display:block;}

Reload. Okay, I see my icons. Add another element:
#innerr {display:block;margin-left:-200px;}

Reload. still see my icons. Add another:
#innerr {display:block;margin-left:-200px;margin-right:-210px;}

Reload. Wow, still see my icons. Surely it can't be the padding that's killing it! Let me add it:
#innerr {display:block;margin-left:-200px;margin-right:-210px;padding:5px;}

Reload.
I STILL see all the icons. I have just completely duplicated the style that was applied to div "inner", where my TinyMCE icons would NOT show themselves, and yet I now DO see the icons. Wait, let me try one more thing...

<div id="inner"> (rename the id back to the original value)

I rename my div ID back to "inner". It has the same exact style as "innerr". But my icons disappear again. WHAT THE HECK?

Obviously ID "inner" is reserved for TinyMCE in some way. Perhaps that was actually mentioned somewhere in the docs, but I didn't see it. So anyway, if you are using TinyMCE and experience surreal symptoms such as disappearing icons, step 1: change your div ID's and class names and see if the symptoms go away. It's likely some style or name you've used that stepped on TinyMCE's tiny little toes.

Posted by dougboude at 1:17 PM | PRINT THIS POST! | Link | 2 comments
08 October 2008
Is Your ColdFusion User Group Lame?

For the last several months it has been my distinct opinion that the ColdFusion user group down here in San Antonio is, to put it frankly, lame. Attendance is high when we have more than three people show up (including the manager and co manager), the agenda is non-existent really, and all of our best meetings are held at the Flying Saucer (local college hangout with hundreds of kinds of beer) or TGIs (killer apple tinis). It's important that you understand I am not casting blame or pointing fingers...I believe our manager really does care and puts forth the effort needed. Nevertheless, this has been my personal assessment.

Last night was our September meeting. The manager called me and asked me to make sure and be there early because he was stuck in jury duty and wasn't sure when he would be out. So, I arrived at our regular meeting place (a training facility) only to find the room we always use occupied by a class. The sign that's usually taped to the door pointing the way to the meeting room wasn't there either. So I hung out in the lobby and waited for any other members to show up so we could discuss options. Eventually two guys walked in looking for the user group meeting. They were new faces, had never been to one of our meetings, and were interested in the topic of Flex that our manager had sent out as something we were going to talk about. I explained the situation to them, and for the next 45 minutes had an incredibly deep conversation revolving around Action Script 3 and Flash development, the forte of both of these guys. Our manager arrived soon after and we all went to the Flying Saucer where we spent the next two and a half hours geeking out (I say that affectionately), discussing specifics about projects we were working on, experiences we've had, and our own technical autobiographies. Some good connections were made on several levels, and I know that something positive will come from having gotten to know these guys over a few barley wines.

The real purpose of this post comes now and has to do with an epiphany I had on the way home. I obviously have been of the opinion that my user group is lame, most of that stemming from the fact that NOBODY hardly ever shows up for it. Up until last night, somewhere inside of me I harbored a kind of grudge against those others in this city who I KNOW use Coldfusion on a daily basis yet do not bother to show up and take part in the improvement of our craft as a whole. When I would try and understand why they so very often choose not to be there, I would always think "it must be because they don't get anything from our meetings", and would put my mind to coming up with ways to make the meetings more useful in a practical sense. Last night, though...it was a very small group, 5 in total (another guy joined us later after I called and invited him); yet the meeting was SO GOOD! And no, it wasn't just the barley wine. It was the dynamic of the conversations...I was LEARNING from these guys, I was being sharpened and improved simply by partaking of their experiences and sharing, and I was contributing like things from my own areas of expertise. So, boys and girls, here are my thoughts post-epiphany on the subject of user group meetings now...

If the reason you don't attend your user group meeting is because you don't think you're going to get anything from it...then shame, shame on you. The audacity one must have to believe that the user group is there solely for his or her benefit and partaking! Au contraire mon frere, au contraire. The user group is only as good as its members, bottom line. If you want it to be useful to you, then contribute to it in the form of BEING there and SHARING what you have learned! It's the manifestation of the old saying, you reap what you sow. If you want to gain something from the user group, then man, GIVE something to the user group! As I shared, our meeting last night was so inspiring and enlightening, opening my mind up to things I've not yet exposed it to and showing me the possibilities in these other avenues; but it was not solely because I sat idly by and just listened...I participated.  Your user group will only ever be as good as the members who support it, so if you, like I have done for so long, believe your user group is lame, then stop pointing fingers or casting blame! Attend the meetings and make them what you want them to be. Offer to give presentations, offer feedback and ideas to your managers, be outspoken and a participant rather than a spectator. In a nutshell, either do your part or stop complaining (even if its only to yourself).

And to those of you who DO attend your meetings but tend to worry over the fact that many others do not: stop worrying about it. Simple truth is, you probably are better off without the dead weight anyway.

Just my take.

Doug out.

Posted by dougboude at 2:16 PM | PRINT THIS POST! | Link | 6 comments
26 September 2008
DON'T GET SICK IN ARKANSAS!
Avoid Summit Medical Center in Van Buren, AR

Let me begin this post by telling you the moral of the story you are about to read: DON'T GET SICK IN ARKANSAS.

That is not to target ALL Arkansans (because I haven't met every single one of them), but the ones I and others I know HAVE encountered have convinced me that the Arkansan stereotype came AFTER the Arkansan, not before. The following account is further substantiation of that stereotype. It is completely factual, and in fact some specific names and places are mentioned in order NOT to protect the guilty.

It's September 22nd, late in the evening, when my brother (who is an over the road trucker) calls me with an extreme sense of urgency and pain in his voice. He has parked at a truck stop near the Rudy exit on Hwy 71 in Arkansas (ten miles north of Van Buren, Arkansas) and is suddenly struck with excrutiating pain in his lower abdomen. I recommend that he go inside and have the attendants call for medical assistance, which they do, and he is soon taken by ambulance to the nearest hospital: The Summit Medical Center in Van Buren, Arkansas.

Upon arrival at the emergency room, the nurse on duty almost immediately diagnosed his symptoms as being a kidneystone that was making its way to the outside world and gave the man his first taste of morphine to help quell the pain. A CT scan soon confirmed her diagnosis and he was admitted in order to monitor him during the "birth". After reaching his room, his nurse Olga the Russian skillfully and painlessly drew his blood and told him a doctor would be in to see him in the morning. At 8 am, Dr. Stephen Carney (aka, "unicorn" due to his almost mythical existence and rare appearances) popped in to the room for ten seconds and told him that they were going to run some more tests and see if they could get the stone to pass. Meanwhile, the morphine continued to freely flow. A night and a day passed, and Tuesday arrived. He was being given fluids via IV as well as drinking water on his own in an effort to flush the 3mm stone out. Urination was always done into a container so that the nurse on duty could strain it and catch the stone if it had arrived. When his container was nearly half full, he was promptly attended to by a Venezuelan nurse who quite routinely emptied his container into the toilet. "Hey, aren't you supposed to strain that?", he slurredly asked her. "Oh, are we straining it?", she replied quite surprised. "Well yeah, it helps to catch any kidney stones I might have passed. That's why I'm here."  This was where it began to be apparent just how lacking common sense was in this institution. The remaining events that transpired served only to confirm what was at this point only a suspicion.


Tuesday, noonish. A "nurse" comes in to take my brother's blood pressure and for several minutes fumbles to try and connect the sphygmomanomoter (fancy word for blood pressure device...I'm sure the nurse wouldn't have known it by that name) to the IV MACHINE. After watching this for several minutes, my brother kindly offers assistance. "I don't think that plugs in there...that's my IV machine". "Uh, oh yeah, I know that", the nurse stutters as he briskly walks out of the room never to be seen again. "That's right Toto, we're in Arkansas now!"


Tuesday, 4 pm. My brother is very congested, so much so that he can only breathe through his mouth. He calls the nurse's station and requests some decongestant. "We'll get right on it", they replied. At 7 pm he calls them back because apparently "getting right on it" meant something different to them. The nurse on duty comes into the room and he asks her politely, "did you forget my decongestant?". She replies apologetically, "Oh, I'm sorry. The pharmacy closes at 5 pm. We'll have to order it for tomorrow." "Well why don't we just order it for Saturday instead then and see if we get it by then", my brother replies. "I asked for it an HOUR before the pharmacy closed!". Without responding to his comment, she asks him inquisitively if he has sleep apnia, because she noticed that he was breathing through his mouth while he slept the night before. "oh my god", my brother said, "I'M BREATHING THROUGH MY MOUTH BECAUSE I'M CONGESTED". Exit yet another of Arkansas' finest medical professionals.


Wednesday morning arrives and my brother is told he can't have breakfast because Dr. Carney has ordered some tests on his gallbladder. "WTF?!?!? My gallbladder?!", my brother asks, more than a bit concerned. "Why the hell are we doing tests on my gallbladder?". "I don't know", the nurse responded, "that's just what the doctor said".  So, no breakfast. Doctor never comes. No lunch. Doctor never shows. Nine and a half hours later, they wheel him down to get a sonogram on his gallbladder, despite his emphatic assurance that he was NOT paying for it since his true dilemma was a KIDNEYSTONE. They returned him to his room at 6:30 PM that Wednesday evening to what he thought would be a welcomed meal after an entire day of starving, only to be told by a nurse that he wasn't able to eat because the Urologist was coming in the morning to see him and he might want to perform a procedure that precludes eating. MIGHT want to perform a procedure??? For another night, my brother was starved AND dehydrated (couldn't drink anything, either, for some reason). At FIVE P.M. THE NEXT DAY (Thursday), the Urologist saunters in and tells my brother that he wants to run some tests the next morning. It turns out that the Urologist, one Dr. Bell, was the first person he had met after the first day who actually seemed to know what he was talking about and had a decent amount of common sense about him. My brother relayed to the doctor all that had transpired, interrupted only by an occasional "my my" from the doctor's wagging head. Dr. Bell assured my brother that he would make sure he was tested early the next morning. Turns out at least he was good to his word.

It is of note here that my brother's soon to be ex wife (we'll call her Jules (which is a nickname for her real name) out of respect for my brother, not her) text messages him from Ozark, Missouri to find out when he's coming to pick up his kids. She always plans her weekend getaways with her boyfriend around my brother's visits with his children (convenient babysitter). He writes her back to let her know that he's in the hospital, on morphine, and doesn't know when he'll be able to make it. Her one word response: "bummer". That's love for ya.

Still Thursday evening. My brother has had enough of the Summit Medical Center diet plan, and shuffles his way down to the cafeteria to get some food for himself. He let the nurses know his intention to violate their "certain death" care plan on his way past their desk, interrupting their gossip and solitaire, only to find that the cafeteria was closed. He raided the only vending machine available and returned with an aging sandwich and a cupcake. By the time he reached his room, there was a tray of something resembling food waiting for him. Hmm. Fancy that. After that meal, because of the tests ordered for the following morning by the Urologist, he was again not allowed to eat anything. 7 am the next morning, just like Dr. Bell said, they wheel my brother down for another sonogram. But this time, hallefrickinlujea, they actually looked at his kidney! Miracle, or just chance? You be the judge.

It's Friday morning, my brother is in bed waiting for his test results. The amazing, mythical Dr. Stephen Carney, MD (wonder what that really stands for?) comes in and actually holds a conversation with my brother. They discuss the fact that my brother declined to participate in the gall bladder fiasco. "I came to this hospital because I have a kidney stone, not because of my gall bladder", my brother tells him. "When you take your car to the garage for a blown motor and they also notice that you have a hole in your muffler, YOU FIX THE MOTOR FIRST [moron], NOT THE MUFFLER". "I'm not stupid", the doctor replies, taking great offense at the analogy though it's doubtful he actually followed it. They discuss the fact that my brother removed his IV himself, which was left in his hand yet unattached to anything for the past two days. "Why did you remove your IV"?, the doctor asks him, "I really think you should keep it in". "Why?", my brother asks. "So that you can stay hydrated", Dr. Stephen Carney replies. "Oh, you mean like drinking water so I have plenty of fluids to help wash out the kidney stone, LIKE I'VE BEEN DOING WITHOUT AN IV?", my brother asks in frustration and unbelief at Dr. Carney's total lack of common sense. "Uh, yeah", the doctor replies sheepishly. My brother then vents on Dr. Stephen Carney, relating to him all of the acts of utter STUPIDITY that he has had to endure. The doctor, as with every other employee of Summit Medical Center in Van Buren, Arkansas that he had the displeasure of trying to reason with did, DEFENDED the moronic actions and judgments (or lack thereof), and in very specific words, called my brother a jerk to his face. He told him that he had done nothing since he arrived except become a bigger and bigger jerk, and since this wasn't a prison, he could leave anytime he wanted to. In fact, he encouraged it sooner than later. "good lord", my brother replied, "welcome to Arkansas". "What's that supposed to mean?", Dr. Carney asked somewhat offended. "Nothing", my brother said. "Hillbillies". Exit one moronic Dr. Stephen Carney, MD.

Soon after the good doctor left the room, enter one nurse Debbie Pike, RN. Ah, now here was a piece of work. All of the feedback my brother had been providing to the good staff at Summit Medical Center had made its way back to her, including a visit my brother had with Debbie Pike's supervisor, and she was more than perturbed. As with everyone he encountered, my brother gave her the benefit of the doubt and explained the fiasco that had been taking place since he arrived FOUR DAYS ago. The bright and shiny gall bladder that had, as a new toy to a child, not only attracted the attention of the entire staff and Dr. Carney, but had utterly erased from their memory the real reason he had come in; the nurse who had admitted that it was his very first day on the job who could not for the life of him manage to plug a blood pressure machine into an IV machine; and the pretty Venezuelan nurse who (also admitting it was HER first day on the job!) had non-chalantly emptied the urine my brother had been diligently collecting into the toilet, bypassing the strainer that would have captured any passed kidney stones. "I have been your nurse every single day", nurse Debbie Pike retorted, "and I know for a FACT that your urine was never emptied directly into the toilet". "Really?", my brother asked her, "were you here 24/7?". "No", she replied.  "Is it possible then that when you WEREN'T here that a Venezuelan nurse working her first day on the job might have dumped half a container of my piss down the toilet?".  Nurse Debbie Pike was more than angry at being called out, and, as Dr. Carney had done only with far more emphasis, told my brother he could leave right now. She highly encouraged him to get his stuff and go find medical help someplace else, in fact. "I'm not leaving until I get my test results from this morning", he said. "I need to know if the stone is still there or not". "Fine", she said heading out the door, "I'll get your paperwork ready for you". A few minutes later Nurse Debbie Pike called his room to tell him that his test results showed that he still had a kidney stone and that he should go to Springfield to get it looked at. "I need to talk to the urologist myself", my brother replied, "THEN I'll leave".

A while later he got word from the urologist that the tests looked good...there was NO kidney stone, apparently he had passed it at some point. What? That's right. Nurse Debbie Pike completely FALSIFIED the test results just to rush the exit of my brother from their fine medical establishment. At that point my brother began planning to leave, and waited for the nurse to finish up the discharge paperwork. Even when he was their top priority (they really really wanted him out of there), it STILL took three hours to get his paperwork. In the meantime, the hospital administrator came to have a talk with him to find out what had been going on. He relayed it all to her, in great detail. As with the urologist Dr. Bell, this individual seemed to have a good degree of common sense as well and was apalled at what she was hearing. Nurse Debbie Pike was relieved for the remainder of the day, and who knows what actions will take place when she returns. The good administrator then found my brother a shirt (the one he had come in with had puke on it...he had vomited repeatedly because the pain was so great) and had the hospital pay for a taxi ride back to his rig at the truckstop. Finally, the ordeal was over.


For any Arkansans who read this...I know that ALL of you aren't to blame, I really do. It's the majority of your brethren, though, that are giving the whole lot of you a really, really bad rep. People hate stereotypes. I even hate them. But man, stereotypes don't come out of nowhere. They are based on the behavior exhibited by the average individual in any given group. Arkansans are dumb hicks? Not all of you... but oh my gawd, enough of you are to tarnish the reputation of the whole lot! You Arkansans who CAN read and cipher, PLEASE, make it your life cause to rehabilitate your brethren and share a little of your book lernin with them (if possible). At the very least, when you mingle with the rest of society, make it a point to SHOW us that you're not all like that!

Okay, I'm done venting. No matter what you think of the opinion that is definitely laced throughout the account above, don't ignore the facts of the matter. Folks, if you're in Arkansas and find yourself ill, head for the nearest border and cross that line before you check yourself in to a hospital (especially Summit Medical Center in Van Buren, Arkansas)...otherwise you may not survive it!

Posted by dougboude at 7:14 PM | PRINT THIS POST! | Link | 2 comments
01 May 2008
Why I Hate ORMs (a solicited rant)
A necessary disclaimer...
Everything in the following post that appears to be an opinion most likely is and should be taken as such. My personal view on a topic does not (necessarily) invalidate any other opposing view. Readers should ascribe whatever value they so choose to the information that follows and either adopt it or reject it at their own discretion.

In the comment thread to a post I did on custom validation in Model Glue, I shared the fact that ORMs aren't my friends. In so doing, it prompted another commenter to ask me to share more details about my decision to be anti-ORM, as they too are weighing out the pros and cons of incorporating it:

"  Doug,
Can you elaborate on why you've abandoned ORM? I browsed thru your blog but didn't see any references to this decision. I'm wrestling with its costs vs benefits as well and would be interested in hearing from someone further down that path.

Thanks,
Dave  "


What follows are those details.

Why I am Anti-ORM


The Beginning

Just over a year ago, my team and I embarked on a journey to learn the ways of the object oriented programmer. We evaluated some of the popular Coldfusion MVC frameworks and decided to go with Model Glue. At the time, the trend was also to utilize other frameworks alongside Model Glue, so we too jumped on the bandwagon, reasoning that if we were going to adopt the tried and true standards of the OO world, we were going to embrace it completely. So, we architected our first MVC application, opting to utilize MG as our MVC framework, Coldspring as our IOC framework, and [brand X] as our ORM. For those of you who may not know what each of these frameworks are for, ModelGlue is the framework that separates, organizes, and "glues" together your views, your CFCs, and the controller CFCs that act as liaison between the other two. Coldspring is the IOC (Inversion of Control) framework whose job it is to manage the relationships between your CFCs. For instance, you might have a User.cfc that needs to perform a function located within another CFC such as Security.cfc. Using Coldspring, you can define that relationship ahead of time and, rather than hard coding the instantiation of your Security.cfc within your User.cfc, Coldspring will do that for you automatically whenever your app asks for the User.cfc. Ah, and now for [brand X]. {brand X] is an ORM framework whose job it is (and here's where my opinion and personal understanding heavily apply) to add a layer between your app and your database. The reason for this, you might ask? The reasons that my team and I saw for doing so were:

1) To allow us to easily change backend database platforms later down the road, should the need occur (not likely, right?)

2) To allow us to take advantage of some of the nifty "helper" features, such as auto-validation and scaffolding (automatically building Create, Update, View, and Delete forms for a given table)

3) To allow us to pre-define relationships between data so that we could "drill down" into child data by calling auto-generated methods, without having to query for it

4) Because using [brand X] was what every CFer "in the know" was doing, so it must be the right thing to do!

Sound like decent reasons, right?

I'll summarize, from my experience, the reasons that ORMs gave me to despise them. I'll try my best not to rant (actually I already did a lot of that in this other post).


The Reasons

The first reason my ORM gave me to hate it was that it forced me to have to synchronize case between field names and elements within different XML files. Coldfusion has LONG been a case-insensitive language for the most part, but suddenly now, as I am embarking on a journey through the foreignness of ORMs, I have to ALSO be mindful that everytime I type in a field name, I had just BETTER make sure I type it exactly the same way every time! Of course, I learned about this the hard way, through many hours of troubleshooting, following nearly useless error messages, and piecing together scraps and tidbits from here and there on the net building myself a "Franken-Solution".

Second reason: the Coldfusion ORM frameworks are a work in progress, and thus subject to undiscovered anomolies coded into their core. While my team and I were burning the midnight oil trying to learn and use our ORM, it kept changing on us. We'd update and replace core files only to find that some behaviors had suddenly changed. The one thing that DIDN'T change were the nearly useless error messages, though...that kept it "interesting" for us.

Hey, this ever happen to you? You're building an application and suddenly realize you need another field in a certain table, so you...go ahead and add it? Sheesh, it happens ten times a day sometimes! A very common occurrence, a very expected occurrence, right? Which leads me to the third reason my ORM gave me to hate it: our ORM didn't take kindly to change. It took us FAR too long to try and figure out how to cause it to see and propagate database changes throughout the app without spilling its groceries into a useless error message. The final solution, that took us weeks of evolving to: nuke it. Just delete the whole cotton-picking cache of files that our ORM had automagically generated for us and FORCE it to recreate them all. This approach defies common sense, and thus it was the end of our evolution and not the beginning. Why's an ORM gotta defy common sense?

The fourth reason: gluttony. As mentioned in the list of reasons why we chose to use an ORM, we wanted to leverage the beauty of pre-defining data relationships and be able to drill down into child data with ease. In theory, this is a beautiful thing. In practice, it's a disgusting hag. The bloated, inefficient objects within objects within objects that get created in this process can cause an app to literally CRAWL. What would take less than a second to perform the traditional way can take many hundreds of times that amount of time when using these auto-generated object nests. When you do take the time to define all of these relationships as they truly are (and good luck getting that right the first five tries), the resulting objects are ginormous and slow as molasses on a cold January morning. Painfully slow. Not acceptable, ORM. Not acceptable.

And ah, the grandest reason of them all that I pretty much despise ORMs: losing my beloved sql. Now, I wouldn't have a problem with losing sql as long as my ORM provides me with a suitable substitute. But it does not. The task of translating a simple sql statement into "ORM-speak" is far, far from simple, my friend. I and others I know have quite literally spent an entire DAY trying to figure out how to write the code, leveraging our ORM, to execute a simple join. Don't get me wrong, it IS do-able. But from the perspective of someone who knows how to query a database, doing the same thing using only ORM objects is convoluted, WAY over-complicated, gluttonous from an efficiency point of view, time consuming, and in the end....what the heck good is it anyway? What did I just do to help myself by spending an entire DAY figuring out how to define object relationships in a way that my ORM likes, defining events that have every parameter present and properly cased, making sure that the database changes I make along the way are actually recognized by my ORM and my application has been properly reinitialized, and then synchronizing the whole thing and crossing my fingers that it'll actually work and not throw me back some useless error? Writing and executing what was and is simple SQL is ridiculously convoluted by an ORM, eats up a huge amount of precious development hours in figuring out how to do it, and gives me only negative return on that investment by creating code that increases my bottom line in IO and makes it so that only another person who has drunk the ORM kool-aid can possibly ever understand. Oh yeah, and when you DO finally figure out how to write a simple join, you then realize that there are actually probably four or five different ways you could have done it using the ORM objects; which one is most efficient? who the heck knows, and you'll only know if you invest the hours to write it with each approach and time it yourself. And even your ORM's BEST and most efficient approach will STILL NOT beat the time you would get by executing straight SQL...there's no way.


Conclusion

What this and any decision comes down to is really just a list of reasons TO do something versus reasons NOT to do it. In this case, based on what I consider to be thorough personal experience combined with that of my peers, adopting an ORM has an extremely sparse list of "Pros" which in no way even come CLOSE to outweighing the list of Cons that come with it.

I realize I didn't do very well at filtering out my ranting. I also realize that, if you happen to be a person who has already gone to ORM prison and now you're used to the lifestyle of having it dwell within your apps, you're going to have a totally different take on it. But I'd be willing to bet money that even you die-hard ORMians felt the same way I do at one point in your J-Curve, only instead of ceasing to knock your head against the wall, you banged a little longer and finally broke through it. Now it's second nature to you to  know where NOT to step in order to avoid the landmines, so you can play soccer freely in the minefield having only lost a few virtual limbs in the process.  HOWEVER, if you are the person who has yet to step into that tempting and beckoning ORM minefield, if you're still on this side of the kool-aid, you should know that forcing yourself to use and learn an ORM is a bit like forcing yourself to learn to smoke. Yeah, given enough choking, hacking, and puffing, you CAN eventually learn to love the feeling of hot, acrid, killer gases in your lungs; but is the miniscule physical pleasure and social "coolness" worth the initial pain, suffering, and certain long term problems that go with it? I say no way, and after having hacked and puffed on my chosen ORM for a solid six months, I say no way to that as well.

I am of course committing a social faux pas by pre-judging all ORMs based on my experience with one, much the same way as it is commonly said that you can't judge all women by the way one woman treated you. But you know what? Even the slickest ORM is STILL only going to provide me with 2 or 3 pros, tops, and will STILL of necessity be adding overhead to my application's efficiency and learning curve to my timeline. From that perspective then, yes, I AM pre judging and have every intention of remaining "ORM Celibate" from here on out. I've worked on several applications since the one I mentioned earlier, all completely without an ORM involved, and have been utterly delighted with their performance. Good riddance, ORMs, I'm not missing you at all and will probably never recommend you.

Doug out.
Posted by dougboude at 11:54 AM | PRINT THIS POST! | Link | 20 comments
18 April 2008
The Little Red Rooster
If the Shoe Fits, Wear it
Once upon a time, there was a little red rooster and his three friends Mr. and Mrs. Armadillo and Miss Tortoise. One day, the little red rooster had a wonderful idea for a business that would both benefit the town they all lived in, the deaf community as a whole, AND enable them all to provide for themselves and their families. So, the little red rooster gathered Mr. and Mrs. Armadillo and Miss Tortoise together and told them all about it. "I will do the work to get businesses certified as deaf friendly so that they will be attractive to the deaf community", said the little red rooster, "And the rest of you can help out by telling the deaf about it and bringing them here". "That sounds like a great idea!", shouted the little red rooster's three friends, "We'll set up a deaf welcome center and promote and sell tickets to the deaf friendly shows!".

Some time passed, and the little red rooster worked hard to fulfill his dream of making his town friendly and attractive to the deaf community. He knocked on doors, talked to hundreds of managers and owners, and even worked with deaf organizations to organize official deaf events in his town. But when he went to his three friends to ask them how their efforts were going on promoting the events to the deaf community, what he heard was very discouraging. Instead of doing as the little red rooster and going out ot knock on doors, rally the local deaf community, and promote and market what was happening in their town, they sat. Clinging to their mantra of "we're not ready yet!", they didn't move, they didn't prepare, they didn't work; all they did was sit and wait. The little red rooster's friends weren't helping! They weren't doing their part! What should the little red rooster do? Being the kind and big-hearted rooster that he was, he gently encouraged them and told them what they should do in order to help out. When they still did nothing, he did their jobs for them, while he continued to include them in the benefits, simply because he was just that kind of rooster.

Some of what Mr. and Mrs. Armadillo and Miss Tortoise should have been doing was to leverage the assistance of organizations and local businesses who would directly benefit from the achievement of the little red rooster's goals. Since neither Mr. and Mrs. Armadillo OR Miss Tortoise had found the motivation or had sufficient understanding to do this, the little red rooster once again rose to the occasion and did his AND their jobs, speaking to the local community with tireless effort and creating alliances and arrangements that would benefit all.

Now, it so happened that when Mr. and Mrs. Armadillo heard that the little red rooster had done their job for them, their scales became quite ruffled and they were angry with the little red rooster, accusing him of undermining their efforts and taking food off of their table. Ah, if only Mr. and Mrs. Armadillo had taken a moment to ask themselves how much effort they had actually put forth! If only they had taken the time to tally the number of times they actually had opposed the little red rooster instead of supporting him! If only they would have attempted to count the actual number of deaf they themselves had been directly responsible for attracting to their town, or how many tickets they had actually sold to any event since the little red rooster had shared his vision with them! They would have quickly seen that they had absolutely no ground to stand on and that their accusations were really just the manifestation of their own deep-seated unhappiness with themselves for not having the motivation and drive of the little red rooster! They would have seen that their defensiveness stemmed more from their own self-pity and guilty conscience for not having lifted a finger to do their part than it did from being attacked by the little red rooster! They would have clearly seen that the little red rooster, by all rights and by anybody else's judgment, should have left them high and dry long ago for having to have borne their dead weight in this venture. If they would have had the most miniscule of visions, they would have known of a surety that the little red rooster had shown them compassion when none was warranted; that the little red rooster had given them a glimpse into and the benefit of something rarely seen these days: grace.

The barrage of complaints and accusations and threats from Mr. and Mrs. Armadillo made the little red rooster very sad. After all of his efforts, after him proving time and time again to his friends that he did indeed have their best interests at heart (even going so far as to donate his time and labor, and procure nearly free supplies for Mr. Armadillo from the local hardware store!), still the Armadillos saw everything through the guilt-colored glasses of ignorance and chose the little red rooster as their token enemy. Being the big-hearted and compassionate rooster that he was, the little red rooster even still was willing to give his friends the opportunity to ammend their ways and do their parts, if they so desired. Rather than abandon them and leave them wallowing in their own self-pity, he stayed by their side and tried to encourage them and help them see the truth of the matter.

How does the story end? That one cannot say just yet. One thing though that is certain, regardless of what the little red rooster's friends choose to do, despite the mindset they choose to hold onto, and despite what they may or may not do in their ignorance: the big-hearted little red rooster will remain a beacon and a good example, and his vision WILL come to pass, with or without the help of his friends Mr. and Mrs. Armadillo and Miss Tortoise.

The End
Posted by dougboude at 1:15 PM | PRINT THIS POST! | Link | 0 comments
11 March 2008
Letter from a Frustrated Patron to their Bank
Just wondering, but has anybody else ever gotten to the point in their banking experiences where they felt like trying to deposit a third party check was like rolling the dice or shaking the magic 8 ball as to whether or not they were going to hold or release your funds to you? Well, it's been that way for me for some time now at my bank, and last Friday morning was the last straw. The experience was so frustrating that I wrote a formal letter to the board of directors informing them of the details. What follows is the letter I sent, which might at least provide a good starter draft for anyone else who feels the need to write to their bank. Oh, and the names of the guilty have NOT been omitted so as to NOT protect their guiltiness. :)

The Letter


Lucille H. Herndon

CHAIRMAN OF THE BOARD

FIRSTMARK FEDERAL CREDIT UNION

P.O. Box 701650

San Antonio, TX 78270-1650

 

Dear Madame;

 

It is with great pleasure that I write to tell you how much of a true joy it is banking with Firstmark Credit Union. I have been banking for many years and with many different institutions, and have found yours to be one in a million in its no-nonsense approach to customer service and product line. For the past two and a half years, Firstmark has not only been my financial friend, but also the ONLY institution which I readily recommend to my friends and family.

 

Unfortunately, my experience this morning, Friday, March 7th, 2008, was far from pleasant. So far from pleasant, in fact, that I feel compelled to relay the events to you.

 

I arrived at the branch on Huebner Road to deposit a payroll check so that I could pay some bills and run some errands. The normal routine is that I present my ID, endorsed check, and deposit slip; the teller examines the integrity of the documentation, stamps the check, and gives me my receipt. This day, however, the teller (Keia) did not follow the routine I was accustomed to. After several minutes of examining his screen and re-reading the check and deposit slip, he excused himself to the back office. After several more minutes of waiting, he emerged to tell me that my check would be placed on hold pending its clearance. I inquired as to why, since this check was within the same range as a previous check I had deposited from this same company, and was told that it was “bank policy”. Now, I fully understand the policy of holding funds when judgment dictates, but I certainly did not expect this action in my case due to reasons cited previously. I began to inquire as to why then, if this was bank policy, had my previous check, or nearly ALL previous checks, never been subject to this hold. We quickly exhausted his supply of information, and so I asked to speak to his manager (Betsy Stavinoha), the person in the back room who had arrived at the judgment that my payroll check should be held. She emerged and politely asked how she could help me. Maintaining my pleasantness, I asked her the same questions regarding the judgment to place a hold on the funds. What followed for the next several minutes was a dialogue between she and I in which I attempted to understand her reasoning process so that, if possible, I could convince her to take into account my nearly impeccable banking record as well as the fact that this same company’s check, not thirty days prior and at nearly the same amount, had no problems clearing. It was at this point that she ceased to be reasonable and began to repetitiously chant the mantra, “it’s bank policy”. She did offer the “courtesy” of releasing $500 of the funds (not enough to be of use to me today), but refused to take into consideration the history associated with my account with regard to her own personal judgment to hold my funds. She attempted to console me by telling me she was trying to protect me from the possibility of the check not clearing, and that she was only executing stated bank policy (physically pointing out to me multiple times the plastic sign posted at the teller window). Following her line of reasoning then, I asked her why it was that “bank policy” was not consistent, and that in nearly identical circumstances on numerous occasions my funds had been released to me immediately, with never a problem to follow. The only response I received from her that even bordered on being reasonable was her “offer” to go back into her office and do detailed research on the history of my account, which she assured me would take at LEAST an hour to accomplish. Without a doubt this randomly applied timeframe was intended to dissuade me from accepting her offer, which I did decline since I didn’t have an hour to waste on this matter. It was at this point in the dialogue that her responses became so robotic, pre-recorded, and rehearsed that I thanked her for her time, took my check and left that branch.

 

I immediately drove to the Bandera branch, walked up to the first available teller with my check and deposit slip, and within five minutes had cash in my hand and all of my funds deposited and available.

 

The purpose of my letter then is to first commend you on the outstanding job Firstmark Credit Union does on a daily basis at setting themselves apart as “the People’s Bank”, treating its clientele like humans (not numbers) and being intelligent enough to use true judgment when making decisions. The alternate purpose of this letter then, is to report what I consider to be a true blot on Firstmark’s reputation in my eyes (and thus in the eyes of EVERYBODY I will ever speak to about Firstmark) due to the blatant lack of judgment shown me and true inconvenience placed on me in my attempts to conduct my usual banking business. It should NOT be that an individual has to role the dice or shake the magic 8 ball when they go to their bank, their financial friend, to conduct the same business they always do, wondering whether or not the particular teller or manager on duty woke up on the right side of the bed that day and would be capable of rational, intelligent decision-making. I should be able to rest ASSURED that I will ALWAYS receive the same level of customer care, consistent predictable application of “bank policy”, and the same quality of intelligent judgment every time I walk into any branch. If I wanted inconsistency, if I wanted to be abused, if I wanted to be treated unfairly, I would bank with Bank of America or Security Service Federal Credit Union. But I don’t want those things; all I want is what it is that set Firstmark Credit Union apart from all the rest of them in the first place to me: I want to be treated fairly and to deal with professionals of integrity, intelligence, and good judgment.

 

I could have understood the manager making the summary, back-room judgment she did having only skimmed the apparent immediate facts; but when the customer requests the time to reason with her and points out valid items that should also be taken into account, only to have those reasons dismissed and ignored with no regard whatsoever to their relevance in the matter, THAT I cannot and will not attempt to understand.

 

I sincerely appreciate you taking the time to read my letter and hear my grievances. I have no expectations as to the results this letter might bring, except for the hope that those with the proper level of authority to make policy decisions and mandate managerial supplementary training will truly hear my words and consider them, as Firstmark Credit Union continues to thrive and set itself far, far apart from the competition.

 

Sincerely and Faithfully,

DOUG BOUDE

Posted by dougboude at 11:10 AM | PRINT THIS POST! | Link | 4 comments
07 March 2008
For Your Entertainment Only: CF is Dead Dialogue
The following post is for entertainment purposes only and is not intended to prompt any real responses from anyone. In addition, if you're truly tired of the topic of "Coldfusion is Dead", don't even waste your time reading this post. I just received a comment from a Javaphyte on an older post I had done and couldn't resist digging him a little bit, so thought I'd share it.

Javaphyte's Comment:

Re: COLDFUSION IS DEAD! So says Dave Lowe
All coldfusion is now is an oldschool scripting language being interpreted by a Java server. If you are one of those unlucky companies that wasted your money on a Coldfusion server, hire Java developers and move away from CF to Java, because you can program in Java on a CF server and it makes more sense to do so since Java is more powerful. Sure you can go the highschool programmer way and use a CFScript tag and put cheesy javascriptized java in it, but that's just asinine.
Posted by rey on March 5, 2008 at 7:40 PM

My Comment:
Re: COLDFUSION IS DEAD! So says Dave Lowe
Ah, spoken like a true Javaphyte! Perhaps there IS some hint of validity in saying that because a language is more cryptic,requires years of schooling, and more actual lines of code to accomplish a task, that it is more powerful. Or IS there validity in that observation???? Perhaps, too, the Pony Express was a more "powerful" means of disseminating the mail than is, say, email, because it required such extreme logistical prowess and sheer number of bodies to accomplish its mission? The truth is, the people who cling to the myth that their language is "more powerful" are the same kind of people who, with no valid practical reason, buy large pickup trucks: they're trying to compensate for some deep-seated, behind the scenes insecurity they harbor about themselves as a person. Because in Java I am forced to write many lines of code to connect to a database and retrieve a data set (and let's not talk about how many lines of code I might need to iterate OVER that data and actually do something with it) while in a scripted language like, say, Coldfusion, I can do it in one line, does that make Java "more powerful"??? HECK no, especially when my "dead language" is simply tapping the interfaces Java already provides me while simultaneously allowing me, if I wish, to execute Java code directly. Ah, and let's not forget the fact that in many arenas, the Javaphytes have THEMSELVES adopted the way of the "high school programmer" and have created for themselves...what? TAG LIBRARIES! Yay! Why? Because some of the Javaphytes became enlightened and began packaging up certain of Java's functions in simple to read, simple to type, simple to use...tags. And what is Coldfusion, my Javaphyte friends? It is an extremely robust tag library for Java. Now isn't that the pot calling the kettle black.

Besides being of the firm opinion that the world, when taken as a whole, is mildly retarded, I am also of the firm opinion that there are those developers out there who directly derive their own sense of self-worth from how overly complicated and complex they can make a simple task. After all, if I devise a system of pullies, ropes, and ramps to move my chair across the room, aren't I smarter than the person who simply rolls it over there by hand? In case you didn't figure it out, the answer is "No, you're not smarter than the person who just rolled it over there".

Anyway, thanks the entertaining peek into the mind of a Javaphyte, Rey! :) Oh, and be sure and avoid using any Java tag libraries...someone might see you.
Posted by dougboude at 2:40 AM | PRINT THIS POST! | Link | 6 comments
04 February 2008
Using Google as your CF Mail Server
Ah, sounds like a no brainer, right? Why even do a blog post on such a thing, right? Because Google requires that an SMTP connection be encrypted...something that CFMX7 just doesn't do all by its lonesome. I need to vent a little, so here's my story followed by some useful info....

It's extremely late on a Sunday night and you're in the final final stages of a site migration for a client. Their "under construction" sign says that everything will be back online and kosher at 7 am Monday morning, so you're addressing one of the last things on your list: setting up the client's email hosting server.

It made it to the end of the list because of the fact that they're using a third party to relay their mail: Google. Now everybody knows Google's reputation for being logical and actually making sense most of the time, so how hard can it be to make sure that Coldfusion is pointing to the client's Google SMTP, especially when the client said it was a piece of cake when they set it up the first time? You figure out later that the person who told you that wasn't actually the person who set it up to begin with, as the passing time turns into a couple of hours and you still haven't sent a successful email.

(Here comes the venting part I mentioned...) You know what chaps my hide, grinds my gears, gets my goat (I wonder where that one evolved from), et al? It's the same thing that gets my goat most of the time, the incredibly cryptic nature of some things that ought to be simple and all of the other people out there on the net who managed to get it to work but insist on only sharing yet more cryptic or worse yet, elusive, information on how they did it (if they share any of the "hows" at all!). I want to share with you my journey, at 2 am on a Sunday night, to learning how to set up a secure tunnel to an smtp server for the purpose of using Google's smtp server for sending email. I want to do this, ALL IN ONE BLOG POST, just in case anybody else out there EVER finds themselves in the position I was...I wouldn't wish such a frustrating, elusive game of Clue on any other person.

CUTTIN' TO THE CHASE, if you're trying to use Google's smtp server to send mail and you're seeing errors like this one
coldfusion email error log

in your mail log file, it's telling you that Google requires you to authenticate to its smtp server via an SSL connection, and any Coldfusion version below 8 (I read a short post saying that version 8 could handle such things, but the poster FAILED to give any other clues as to how to implement it...sheesh) can't do that all by its lonesome. So, we need an intercessor, a little service running on the web server that will intercept requests to ports internally then reroute the request to an outward-facing port using a secure connection. That intercessor is called 'STunnel' (though there were a couple of other equal products I came across). In a numbered list then, here are the steps a body needs to do in order to make it work:

1. Make sure you have a Google email account.
My client is signed up to use Google Apps, which includes an email server. Here's a starter link for you: https://www.google.com/a/help/intl/en/admins/editions.html

2. Make sure you know the username and password for the Google email account

3. Download and install a program called STUNNEL (latest windows exe can be found on this page: http://www.stunnel.org/download/binaries.html)

4. Edit Stunnel's configuration file (the default config file is in the stunnel directory, and is called "stunnel.conf").

5. Empty out the config file and paste  in the following values:
client = yes
debug = debug
[pop3s]
accept = 127.0.0.1:1109
connect = pop.gmail.com:995

[smtps]
accept = 127.0.0.1:259
connect = smtp.gmail.com:465


6. Go into your CF Administrator, to the mail settings, and enter the appropriate values according to the illustration and your own username and password

coldfusion mail server settings

(note: 127.0.0.1 is not a placeholder value in this blog post: use that value! Also, notice the port number used, 259; it's the same number in the stunnel.conf file for accepting SMTP mail.)

7. Go to the stunnel directory under Programs and choose to install it as a service, then run it as a service.

8. Go to your services list and make sure stunnel is running.

9. Just for fun, restart the CF service

10. Execute a template you made that has a cfmail tag set up similar to the following:

    <CFMAIL
            TO="dougboude@gmail.com"
            FROM="admin@myclient.com"
            SUBJECT="test email from server"
            TYPE="HTML">
    testing
    </CFMAIL>

11. Log in to your google mail and look in your sent items folder. The email you sent should appear there tout suite. (Google apps allows you to point a subdomain to their email server...my client's is similar to "mailbox.clientdomain.com", fyi)

12. if you don't see the email in the sent items folder, check CF's mail log and make sure it didn't generate a STARTTLS error

If you do all of this and it still doesn't work, I'm afraid I have no more information for you. BUT, if you run into additional issues and DO manage to fix them, please post that info back to the comments area of this post for the benefit of others!

Okay, I feel better now. Being forced to invest SO much time and energy, at 2 am, and then finding nothing but a few nearly useless clues here and there to go on can really drain a person emotionally, ya know? :)

Doug out.
Posted by dougboude at 12:13 PM | PRINT THIS POST! | Link | 11 comments
12 September 2007
Reactor: A LOT Like a Wendys Drive Through
Okay, I've been up since 3 A.M (went to bed waaay too early last night) working on a Modelglue project, and now I'm feeling the need to rant a little bit. Not complain, per se, because I truly do appreciate the blood, sweat, and tears that must have gone into creating the frameworks that comprise Unity; But out of the 4 hours I "worked", a full third of it was spent on issues related to trying to get my app to "see" certain kinds of changes, even WITH my cheat sheet (which itself was born out of a lot of time spent pulling my hair and bumping around in the dark). That's just a wee bit much for something that's supposed to help me spend my time more efficiently, wouldn't you agree? In particular, this morning my beef is with Reactor.

Reactor has a Development mode and a Production mode. In theory, I should put this baby in Dev gear and just leave it there until I'm ready for production. But, Dev mode is just plain slow as molasses in January, so I opt rather to work with Reactor in production mode until and unless I make a change directly related to the database. This morning happened to be one where I had added some fields to a table. So I make my table changes, change Reactor to Development mode, and reinit the app. I then walk through my app as a user would to the point where I KNOW this particular table's record object is needed. It HAS to do be done this way, you know. If I didn't, Reactor would not have re-created my object for me, DESPITE the fact that I re-init'd the app, because it is a WHOLE lot like a Wendy's drive-through: neither one creates it until you actually order it. Okay, so now I am able to successfully edit and insert records containing values for these new fields, so I must have ordered my burger right (pun intended). As usual, I now switch back to production mode for efficiency's sake. More testing, and I realize that something's amiss with one of my fields...I'm getting a sql error when trying to do an update after having edited a value. BUT HEY NOW! WAIT JUST A MINUTE! HOW can I be getting a SQL error when I'm using Reactor validation to check values before attempting to insert them? This cannot be! And yet, it is. After fiddle farting around with double checking syntax, making sure quotes were correct, field names and form field names correlated...it finally occurred to me to open up the Reactor validator object for this table, JUST TO MAKE SURE it looked right. Surely it would be right. After all, I KNOW I did what Reactor required of me to regenerate that table's objects. Sure enough, though, no validators existed for the new fields. DANG IT! Apparenly Reactor only regenerated the SPECIFIC Reactor objects I needed for the functions I performed before switching back to production mode. Back to development mode, re initialize the app, walk through as a user to the point where I INVOKED VALIDATION, then all was well.

When I finally DID get everything working well and regenerated in my local environment, I then committed my changes via SVN to the repository and ran the update for our testing environment. We aren't including Reactor's base project CFCs in our repository, so now it was time to switch to dev mode in Test and regenerate. Ay, here I go again, having to login in as a user and physically "touch" the app in a lot of places to force Wendy...er, Reactor, to make my burger. You can imagine how much time it can potentially take when you have to go into the app and USE it in order to make changes happen on the backend like that. And what if you don't know the app from the front end? What if you're job only entails backend work? Then you're either forced to learn the app, or wait for your testers to go in and tell you if it worked or not. Either way, it's not efficient use of time.

My rant is just this: why's it gotta be so painful to use Reactor? Why do I NEED an initialization cheat sheet when developing with it? If I've jumped through the fiery hoop to get Reactor to regenerate my table's record object, why can't it just regenerate ALL of the objects for that particular table in one fell swoop??? WHY am I FORCED to know the app from the FRONTend in order to manifest a change on the BACKend (Reactor's whole, "I won't make it for ya till you order it!" philosophy)? What if all I was hired to do was back end coding and don't know the app well enough from the user's perspective to properly navigate my way through to where my code change lives?

Perhaps I'm just using this awesome tool the wrong way; I don't think so, though.  I've worked with several other people together on MG projects, I've read just about everything out there that has to do with MG:Unity, I've got a LOT of hours logged getting my hands dirty with this framework, and I haven't seen anybody else do it any different than I. If I had a magic wand, I would wave it and miraculously "init=true" really WOULD reinitialize my app completely!  As it stands now though, it's kind of a pain.

Okay, I'm done venting. Thanks for listening. ModelGlue:Unity, I still love you.

Doug out.
Posted by dougboude at 12:29 PM | PRINT THIS POST! | Link | 4 comments
28 August 2007
Human Global Genetic Updates: Is it Really That Hard?
So I'm sitting on the couch the other night watching a documentary on Gigantism...a condition in humans where uncontrolled growth occurs due to a genetic defect...when the narrator says that "unfortunately it is beyond the scope of our current abilities to correct this condition at the genetic level...". Suddenly I have an epiphany, that indeed it should be within the scope of our ability to correct this or any other genetic defect, as long as that defect occurs in a part of the human genome that we already have mapped! Now bear in mind, if I, a non genetic scientist can come up with a solution in a matter of literally seconds, why is it that the entire world BOK (body of knowledge) couldn't have already come up with it? Allow me to elucidate the process I propose....

The first breakthrough came to me when I altered the context I give to the human body. Rather than think of it as a pulsing mass of jellies and chemicals, I rather visualized it as a database. In the IT world, a database is a collection of individual records, each with a common structure, yet each also having its own unique value. This entire collection of records IS a database. The human body is a collection of individual cells (records), each with a common structure (human DNA), yet also having its own unique value (liver cell as opposed to a skin cell, etc.). This entire collection of cells (records) is the living body (database). Okay, so here's where the first major bridge takes place.

Let's say for example's sake that my database stores birthdays. I have one million individual records, each one stores a name, social security number, and a birthday. Well, somehow my database was "off" from the beginning, and every one of the birthdays I have stored is one day ahead of what it should be. How this happened is irrelevant; what IS important is that I need to correct it...globally. In the database world, when we need to make the SAME change to every record in the database, we refer to this as a "global update". We create a routine that will go throughout the entire database, one record at a time, and for each one it will make the correction we need.  Now then, let's take this same approach and apply it to the human database.

Using Gigantism as our example, every cell in the human body has the same identical defect: a section of a gene is slightly malformed. The solution would be to go throughout the entire body and, for each cell, correct that defective gene. The idea of doing this is already a reality and is called gene therapy. WHY it isn't in a more advanced state, though, I'm a bit befuddled. The crux of my proposed "global update" rests upon a little fella that we all live with and who is quite intimate with us all at a cellular level: Mr. Virus.

For eons we, as husbandmen, have been doing selective breeding. We've practiced it with dogs, cats, cattle, horses, and even on each other at different periods in time. The results of selective breeding are known before the process even takes place: we're trying to take an existing life form and, by leveraging nature's own process, guide the transformation of that species into something more advantageous for ourselves. Sheep with more wool, cows with more meat, cats with no hair...whatever it may be. Let's introduce our subject at this point, and illustrate the remainder of my idea. His name is Dieter, and he was born with Gigantism.

Dieter is 17 years old now, and stands 7 feet tall. His particular form of Gigantism has resulted in extremely exaggerated facial features and super elastic joints that cause his muscles to work extra hard trying to hold him physically together. Dieter needs a global update to correct the genetic malformation he's carrying. So let's send a sample of Dieter's DNA to the "Circle O" virus ranch to begin the process.

Circle O receives Dieter's DNA and immediately isolates and marks the defective section of the gene. They then construct a replacement section that corrects the defect, and begin the process of creating a virus that is specific to Dieter himself...one that is unable to reproduce or thrive in any host except Dieter. Since the lifecycle of a virus already includes the injection of its own DNA into its human host cell, this makes it the absolute perfect means of performing Dieter's global update. The trick now is to selectively breed this generic virus (itself selectively bred from the common influenza virus) until we have a batch whose DNA includes the genetic "patch" needed for Dieter. Oh, and in order to alleviate any unforseen propogation of our customized virus, we also breed in a 'self-destruct' mechanism that makes it non-viable after X number of replications...embed a "counter", if you will, within the DNA of the initial virus batch that will render it incapable of reproducing at a pre-set generation of itself. Additionally, since we have selectively bred this virus to Dieter specifically, Dieter's immune system will take longer to actually recognize it as an invader, thus giving the virus time to perform its duties.

After three months of selective breeding, Dieter's custom virus is ready to be introduced to its host. Dieter will experience mild flue-like symptoms throughout the process, but because of the rate at which viruses replicate and execute their lifecycle, within the course of two weeks the global update will be complete. It won't be necessary to reach 100% of the cells in Dieter's body; having affected 90 to 95% will be sufficient due to the body's own natural design of replacing itself. After two weeks, the virus fails to reproduce further due to its own built-in self-destruct mechanism, macrophages clean up what's left, and Dieter's gene therapy is complete.

The effects of the defective gene won't be taken away...Dieter won't shrink back to a normal size, nor will his joints become less elastic. He WILL, however, cease to grow at an uncontrolled rate and will resume a normal metabolism. Interceding at an earlier age, before puberty, would ensure that the adverse effects of Dieter's condition would have been minimal, at most. Heck, for that matter, the condition could have been detected during Dieter's first trimester, the virus created, and his gene therapy performed before his due date.

Now tell me...WHAT was so hard about that? Hmm? WHY after twenty years (or however long it's been) of sending money to Jerry's kids do we STILL have Jerry's kids???? I don't know, perhaps..PERHAPS...I'm over-simplifying things just a bit. But generally speaking, is there a flaw in my approach to performing human global genetic updates?

The floor is now open to feedback. Thanks for humoring me.
Posted by dougboude at 10:48 AM | PRINT THIS POST! | Link | 1 comment
04 July 2007
Getting Your Deposit Back
Any other renters out there? If you've EVER rented before, you know the incredible disadvantage you can be at as a tenant when it comes time to get your deposit back. Out of all the places I've rented in my life...and that's actually quite a few...I can't remember EVER getting my deposit back, and that's not because I tore up every house I lived in, either. In fact, I've been a very GOOD tenant and have done my own repairs, upgrades, and even minimal remodeling. I didn't get my deposit back because the people I rented from summarily judged me and, using the advantage they have legally, managed to embellish enough to consume all of the funds. Not wanting to deal with the hassle of fighting it, I've always just walked away. Not this time.

I recently moved from the house I had been renting for two years to a larger one, and of course had to go through the whole "return of deposit" routine. As has been my experience, it went sour near the very end. While at first the landlady was amicable and friendly (by all appearances), when it came time to discuss the deposit she suddenly returned to me a laundry list of items that she said justified her keeping it all. Most of the items were normal wear and tear, which legally the tenant is not liable for covering financially, such as walls needing fresh paint, carpet getting worn, etc. One of the items on her list was, and I quote, "aquarium pebbles on the lawn". It got ridiculous, to say the least. So this time I decided to push the issue and formally request that she and the true owner (my landlady is a proxy) reconsider their position for several good reasons. I did this via a letter sent certified mail.

Since it took me several hours to draft and perfect this letter, I thought I'd share it here with you all in case anybody else is ever looking for a good "return of deposit dispute" letter template. Do with it what you will, and good luck getting your deposit back!

P.S. IF the lessor decides NOT to reconsider, and you feel that you have a very good case as to why you SHOULD receive some or all of your deposit back, the next step to take is to document everything that occurred (conversations, dates, times, etc.), go down to your county courthouse, and file a small claims suit naming your lessor as the defendant. I'll see in ten business days from now if that's what I need to do or not.

THE LETTER

Doug Boude

[my new address]

July 3, 2007

 

[insert ignorant landlady's name here]

[insert ignorant landlady's address here]

 

 
Dear Miss Ignorant Landlady:

 
I received what I can only assume is your handwritten letter postmarked June 29, 2007 which cited a lease agreement signed by myself on July 2, 2005 and stated that due to failure to provide thirty days written notice, all security deposits had been forfeited. This letter appeared to be a copy of a faxed document, and was signed by a person unknown to me and claiming to be co-owner of the property at [my old address].

 

I respectfully request that you and the true home owner, [true homeowner's name], reconsider your decision to withhold the entire amount of my nine hundred forty dollar deposit, paid by check on July 2, 2005 for the following reasons:

 

1. As of July 2, 2006, the lease agreement I signed on July 2, 2005 and all terms therein expired; no other lease agreement was ever signed. The supposed reason for withholding my deposit cited, vaguely, an expired agreement.

 

2. I was a very good tenant at all times, caring for the property as if it were my own and always with the mindset that if the homeowner were to show up at any time, she would not be disappointed with the state of the property. I paid the full amount of my rent every month, and only deviated from the acceptable window of payment when previous arrangements were made with you; hence the fact that there is no back rent due at this time. In addition, I performed countless hours of maintenance and repairs (approximately valued at $1,195), many at my own expense for supplies and all with my own time, in order to maintain the property in good working order. AC filters were bought and changed regularly; lawn maintenance was above par (mowed and edged, yard fertilized, trees fed/spiked, flowers planted, shrubbery trimmed, grass watered and kept green – I even contracted with a lawn care company for a time in order to keep the lawn healthy), lawn equipment (which came with the house) was maintained exquisitely (mower blade changed, cracked fuel tank replaced, synthetic oil used in the motor), toilet internal parts were replaced, loose towel racks repaired, shower fixtures repaired or replaced, incandescent light bulbs replaced with low wattage energy saving fluorescent (all of which I left with the house), exterminator called as needed, garbage disposal repaired, clogged toilets and sinks unclogged…and any other thing that needed attention: I took care of it all, and willingly so.

 

3. I am uncertain as to who is actually making the decisions and judgments that are affecting the return of my good faith deposit. Since I was given no contact information for the home owner (who I understand to be in the military) and was directed to deal with you, her proxy, I could not contact the owner directly to discuss the terms of the return of my deposit. I then requested of you, in writing, to be put in communication with the actual home owner on June 14, 2007 and received no response whatsoever to date, effectively and purposefully preventing me from contacting her. Even the handwritten letter I received on July 1 omitted any return address nor did the letter itself contain any contact information (though the postmark shows it was sent from San Antonio). In addition, according to the Bexar County Appraisal district records, [my old address] only has one owner, [homeowner's name], and that at 100% ownership, making the claim of someone else touting themselves as “co-owner” very much suspect.

 

4. My failure to give a full thirty days notice was not done maliciously nor was it premeditated. The circumstances surrounding it were strictly financial, wherein a plan that would have allowed me to meet my financial needs was suddenly and unexpectedly disrupted. As soon as I was aware that I would not be able to pay the rent for the following month of June, I contacted you in writing to let you know and even went so far as to put the “for rent” sign out into the yard for you and repair it when the wind had knocked it down. I also answered inquiries from passers-by who were interested in the house and took them on tours of it in order to assist you in finding subsequent tenants. I acted with my, yours, and the homeowners best interest in mind and with fidelity at all times, as my deeds do attest.

 

5. I did everything in my power to leave the house in as good or better condition than I received it, with the one exception of repainting three or four walls back to the original color. The repainting issue was discussed with you, I informed you that I would not be able to do that, and so there was no miscommunication on that matter. Everything else, however, I did do. I cleaned the house in its entirety, including kitchen, floors, and refrigerator. I disposed of all trash in the bins and even came back after I had moved out to ensure that the bins were set on the curb to be emptied. I’m sure that there was yet more cleaning that could have been done in order to pass the white glove test, but due to my grandfather having a stroke on May 27th and me being the only family he has locally, my cleaning efforts were delayed. I informed you of that situation in writing on May 31st. The hole in the garage which you brought to my attention as not being pre-existing, I purchased the supplies for and performed the repair of. The process of repairing such a hole is two step, and since the second step of sanding and painting had to be performed after my move-out date, I informed you of that need as well and offered to return to complete it. Once I had received from you a rough list of items that you deemed as deductible from my deposit (including items deemed by the attorney general as ‘normal wear and tear’), I offered to return and take care of any of them that you wanted me to. I received no response in the affirmative or negative…there was no communication from you. Again, as with the general care of the property while living there, my intentions and mindset regarding the state of the property at the time of my departure were completely upright and with the owner’s and my best interest in mind, even informing you that I was making myself available after my departure if it was desirable for me to return and take care of any outstanding matters.

 

For the reasons stated above, it is my contention that withholding of the full deposit amount is absolutely unfounded, morally wrong, and is not a just reciprocation for the very good tenant I have been for the past two years. If there were legal precedent that enabled a landlord to withhold the entire amount of a tenant’s good faith deposit when no valid lease agreement is in place due solely to the lack of a full thirty day written notice to vacate, that does NOT justify the doing of it when all other factors cast the tenant in so favorable a light.

 

My desire at this time is to be in communication directly with the home owner herself and not her proxy, in order to come to an amicable, fair, and just agreement regarding this matter as soon as possible.

 

I respectfully request that this letter be immediately forwarded to [homeowner] and that she contact me at the address in this letter’s header section within ten business days, in writing, regarding a fair and equitable agreement as to what portion of the deposit should be returned to me.

 

 Sincerely,

 

 DOUG BOUDE

PREVIOUS TENANT, [my old address]

(JULY 2005 – MAY 2007)

Posted by dougboude at 1:50 PM | PRINT THIS POST! | Link | 2 comments
01 July 2007
The Key to True Conflict Resolution
A Design Pattern in Life
A design pattern is a recurring concept, arrangement of things, and/or repeated process. Life is composed entirely of such patterns. From the patterns found in the genetic blueprints of even the simplest form of life to the consistent and measurable rising and setting of the sun: life is a beautiful matrix of overlaid and interacting patterns. Ah, but more than simply random patterns, these are patterns in the very design of how everything works, including human behavoir. I want to expound upon one such pattern in particular, and that is the pattern that exists between two people who are at odds with one another and what I have observed the pattern to be that leads to resolution in almost every case.

I was once conducted through a phone interview for a technical job and, as interviews will go, I was presented several questions which were nothing more than scenarios, with my response to be the approach I would take in resolving them. One question in particular involved the situation where I was project lead and had two separate groups between which I was liaison. The two groups had opposing opinions as to what decision should be made on a particular aspect of the project. The question posed to me: "How would I resolve it"? It didn't take me long to come up with an answer, because what I imagined in the scenario looked exactly like other scenarios I had encountered in life, and I recognized the pattern: that of two (or more) people who had opposing viewpoints, with each refusing to budge from their position and yet both having the need for agreement. My answer: to make sure that both sides were heard by the opposing side.

It may seem by all outward appearances that conflicts of viewpoint are all about whose viewpoint is better, and that resolution can only be had by compromise or relinquishment of one or both views. This is not true. In scenarios between my children where I have played diplomat and in scenarios between myself and my significant other (where I WISH I had a diplomat!), I have seen the same recurring pattern, and it was never one side managing to out muscle the other side that resulted in peace and accord. The true answer in mending discord lies in something so much more simple: fulfilling the need to be heard.

I type those words slowly, I say them in my mind slowly and with reverence as I read them, because they are so fundamentally important. Hours, days, years even of stubborn silence can be avoided if the parties involved would just recognize what the true need of the opposite side is and fulfill it. The other side really only wants to "have the floor", if you will, long enough to have expressed their opinion fully and, (this is the MOST important part, O Best Beloved) to KNOW that they were truly heard. Once a person has been given opportunity to speak uninterrupted and they are made to know that their side had truly fallen on open ears and an open mind, the fire amazingly just fizzles out. They still have their opinion, of course; but the ire that drove them and their inability to see beyond their own cause just melts away, because the true root need has been satiated. Ah, and the doors to communication that are immediately opened in a nearly miraculous way! Suddenly, whereas this individual was seemingly incapable of hearing a word the other side had to say, now they can hear with clarity and attention, and truly consider their opponent's viewpoint.

Simple enough, right? Just be quiet while the other side talks! Not so, O Best Beloved. A simple stay of the tongue does not a truly hearing opponent make. You see, once one side does agree to give the other the floor and hold their tongue while the other speaks, the speaker now will be examining every minute detail of everything that is occuring while he or she is laying things out. When I say 'everything', I mean absolutely EVERYTHING. It likely won't be done consciously, but without a DOUBT they will be noting every twitch of the listener's facial expressions, the movement of their eyes, their body posture, movements, shifting of body weight, and most of all where their attention is at all times. What they are doing is looking for the one thing they need, evidence that they have been truly heard. Now, although how a person listens is vital, even more vital and necessary to this process is how the listener then responds. The very next thing that comes out of their mouth will either make the exercise a success or total failure. Remember, it isn't agreement that fulfills this pattern in human behavior, it's listening, so it isn't required that one's response be to the effect that they agree. Anything along the lines of "I can see your point", or "I hadn't looked at it like that" can suffice. Be warned though: truly listening is an impossible thing to fake. I can't tell you the innumerable times I've been involved in this scenario and the other side, though seeming to have listened and even responding with something like "I see your point", IMMEDIATELY blew the whole thing out of the water by adding on the word "but". Look at this: "I really do see your point, BUT...." What just happened there? The speaker's viewpoint was instantly invalidated and minimized. What follows the 'but' is irrelevant, and the other person isn't going to be able to hear it anyway, because that 'but' told them that their honest outpour had fallen on ears that never intended to hear them in the first place. Back to square one for everybody.

Learn to recognize the human conflict pattern. It comes in many forms and has varying degrees of intensity, but it's always the same. When you DO recognize the pattern, just remember that the true key to resolution lies in you making sure that you give your opponent the opportunity to fully express himself, you truly open your ears and mind and hear him out, and above all cause him to know that you heard him. Do NOT allow yourself to let the word 'BUT' be part of anything you respond with, or you will have exposed yourself as someone who pretended to hear but really had no interest at all, leaving your opponent's one true need yet unfulfilled. There really is something to the phrase we've heard throughout our life, that 'communication is as much listening as talking'. Practice your listening skills, thus fulfilling your opponent's true need, and you'll find yourself spending a lot less time immersed in life's daily dose of human conflicts.

Doug out.
Posted by dougboude at 6:23 AM | PRINT THIS POST! | Link | 0 comments
27 June 2007
American Airlines, YOU SUCK!
American Airlines, if you were a gas, you would be malodiferous and noxious; if you were a teenage girl, you would be gangly and plain, nobody would ever ask you to the prom, and you would die a virgin.

This particular day, I've found myself with you, American Airlines, in an intimate setting, and all of the assumptions I had about you based on hearsay and things gleaned from between the lines over the years have turned out to be completely confirmed: you're absolutely hideous when it comes to everything you tout yourself to be good at.

Okay, I can understand that you can't do anything about the weather and that a major storm front between Dallas and DC is a good reason to keep the plane grounded on the tarmac while you calculate an alternate route. But THREE FREAKING HOURS to come to the conclusion that you're gonna have to go AROUND it? That amazing feat of absurdity is head-wagging in and of itself. Oh yes, you were "courteous" enough to give us updates every half hour, your likely under-paid captain reassuring the passengers that you were still working on coming up with an alternate route and that until somebody figured one out, we were "grounded indefinitely" (yes, he continued to use the word even three hours later...real good for morale, Einstein). But while we all sat there with nothing to do but cat nap and study the moles on our neighbors' necks, it took you two hours to even consider offering us a drink of water. Meanwhile, the "first class" passengers were being wined, dined, and doted upon continuously. By this time during the nightmare I'm noticing every little defect you have, American Airlines; the way you are sooo careful to ensure that you lay the little napkins face up...not to give me a nice map of the U.S. to look at like your MUCH more attractive competitor Southwest Airlines, but rather to shove your cheesy sleezy advertising in my face for Citi financial and their efforts to help me dig myself further into debt. I resent it, American Airlines, and say again: YOU SUCK!

THREE hours of letting gravity bring my coccyx and the metal frame of your undersized seat closer and closer to one another; three hours of my empty stomach attempting to implode upon itself, the anticipation of my obligatory snack growing more and more intense; wondering why, if you thought to bring me a drink (eventually), you didn't also think to offer me some peanuts or pretzels so I could satiate my hunger. Three hours later, when captain Smiley finally gave us the good news that the unseen geniuses who work with you had cleverly devised a solution to our dilemma and drew a line going AROUND the storm, I found out why you hadn't thought to offer me peanuts: YOU DON'T GIVE YOUR PASSENGERS PEANUTS! Ah, but you did lovingly offer to rape me by selling me a cookie for THREE DOLLARS! A 59 cent cookie, if that, for three bucks?!?!?

You truly do suck, American Airlines, without a doubt and unequivocably. You're a cheap, slutty, miserly, cruel, ugly thing who makes no secret of how little you truly care about your customer. The only thing about you that is remotely attractive (until one actually makes your acquaintance) is how CHEAP you are. You draw in the unsuspecting and unwary and milk them for all you can, then cast them out on the street, leaving them feeling quite used and abused. You hope that we'll go away thinking that "this is just the way flying is". Well, THIS traveler knows better, and can speak from experience when he says "YOU SUCK, AMERICAN AIRLINES!"

Ah, and the paradox of all paradoxes, the audacity you have when you speak lovingly to us over the intercome, "We know you have a choice when you fly, and thanks for choosing us
! We hope you'll come back!". More empty, absurd words could never be spoken, and if you, American Airlines, are naive enough to think that you are offering anything at all to the general public that is the LEAST bit attractive (besides being one of the cheapest ho's in town), you're sadly mistaken. I'm sure you adopted the line "we know you have a choice" from you more successful competitors and just thought you should say it, too; but you really shouldn't bother saying those words at all because it only makes you look even LESS business-savvy than you are.

If you ever want to have a hope of real success, of truly satisfying customers and making them WANT to return, American Airlines, then lay it to heart when I say, as a real world customer who currently loathes your very existence, "YOU SUCK!", and do something about that.

Doug out.
Posted by dougboude at 12:00 AM | PRINT THIS POST! | Link | 46 comments
14 September 2006
Responding Appropriately to ColdFusion Questions
Reading Between the Lines
"Daddy, how do birds fly?" my five year old asks. "Well son, it has to do with Newton's third law of physics, which states
'For every action there is an equal and opposite reaction'. You see, the stream of air passing over the curved wing of the bird creates a stream on the underside that is traveling faster than the stream above, resulting in a lower pressure below which lifts the wing and thus, the bird." "Oh, I get it now daddy!"....not. Would we ever answer this way to our five year old? No way. Why not? Because we want to give them an answer that is actually useful to them, that they can add to their understanding and build upon later.

What troubles me, though, are those times that I see a definate lack in the way that questions are addressed by those in the ColdFusion community who actually do know the answers. It's as though the Knowledgable are so deep into their understanding of the topic that they have completely forgotten how to transfer that knowledge to those who are just starting out. In fact, sometimes the responses received to newbie-type questions are so laced with terms and phrases that have no place in the asker's understanding that the responses THEMSELVES generate questions on top of the original question. It can already be a rather long and painful trek up the J-Curve, depending on where one is starting from; but to receive answers that are so far above one's head can be a source of discouragement.

My point then: we should take the time and care to respond to questions in the context and in the perspective of the person asking it. If a 5 year old asks us a question about how birds fly, do we respond with vocabulary and explanations appropriate for a 4th year college engineering student? No, we don't, because we want the 5 year old to get the understanding they're seeking. Just because nobody in our community is 5 years old, though, doesn't mean they can automatically digest information to which they cannot relate.

Consider the following question and response (the one that made me feel the need to share my thoughts on this):

Question
"I am a newbie to reactor, and also to flex2.  I'm curious to know if others
are using FUSEBOX with reactor AND flex2, or if the use of flex2 makes
fusebox kinda unnecessary.  What is the best use/layering of these
frameworks?  Does flex become the controller and the view, thereby
eliminating the need for the MVC architecture of fusebox?  Is reactor simply
the model behind the entire flex application?"

Response
"Well, Reactor is the persistence mechanism for the model, so it is part of the model, but not the whole thing. You’ll probably want to wrap it with a service layer for any business rules and to provide an API, and you may or may not want to create a façade to that API that is Flex specific . . ."


Whiskey Tango Foxtrot??????


I'm sure the responder meant nothing but the best, and it is to their credit that they took the time out of their busy schedule to even draft a response; but I gotta say, that answer is completely useless to the person who initially asked the question. It's filled with acronyms and terms the user likely is unfamiliar with and it wrongly assumes that the asker has a level of comprehension of these concepts that is far greater than that which can obviously be seen in their question. I don't cast blame at those whose understanding is just so deep that they're miles and miles ahead of "The Rest of Us", but I would encourage them to be a little more thoughtful in their efforts to assist by remembering their audience; their audience being the person who asked the question.

So, how can those who possess the knowledge sought be even more helpful to the self-acknowledged newbie person? By taking a few moments to read between the lines. A lot can be derived, and easily so, about the asker's current level of understanding just by the way they phrase their question. Don't be oblivious to that, home in on it and let THAT be the context in which you respond. Let's take the preceding question as an example.

"I am a newbie to reactor, and also to flex2...." The individual is a self-proclaimed newbie, admitting quite humbly that they have just barely scratched the surface on these subjects and at best probably have only a rudimentary understanding of the concepts behind the terms. Duly noted.

"...I'm curious to know if others are using FUSEBOX with reactor AND flex2, or if the use of flex2 makes fusebox kinda unnecessary...." It's obvious that their understanding isn't all that deep, reconfirming what we already believed. They've probably read a few articles, looked through the code of a few tutorials...taken the time to try and get a grasp of what each of these items are and do and how they relate contextually to one another. But by the way the writer blatantly overlaps methodology with technology in an almost interchangable way further reinforces that the place they're coming from is one of elementary knowledge, at best, of the subjects they're asking about.

The remainder of the question does contain some buzzwords (MVC, model) used in an appropriate context. But describing Fusebox as an MVC architecture when it really is not (even though it could be used in that way) tells me that either the person doesn't understand what MVC really is, they don't understand what Fusebox really is, or they don't understand either one all that well. It's not really relevant which they do or do not understand; the point is that the question this person is posing is beyond their current understanding of the subjects they're asking about. That is a fact that should be recognized by the person who feels the desire to help this individual. Therefore the most useful response would first address the things this person is lacking in their foundational knowledge, either by taking the time to draft that information, point them to recommended reading material, and/or suggest some exercises or tutorials this person could do to ramp up their understanding. Only after the hidden questions are addressed should their actual question be addressed, if at all.

It should be said that some of which is "perceived" by reading between the lines may be incorrect; but better to err on the side of assuming too little than too much.

So what use is a response to a question for which the asker obviously doesn't even understand what they're asking? Not much use at all. My whole point with this post then is to do nothing more than encourage those who have the knowledge to answer a question to make sure they take the time to read between the lines just a little so that the answers given might truly be of more use to the person asking.

Doug out.
Posted by dougboude at 12:13 PM | PRINT THIS POST! | Link | 22 comments
28 August 2006
What is an 'Advanced' Coldfusion Developer?

 What is an “Advanced” ColdFusion developer?

 

Preface: You will see the word ‘framework’ used in this post once or twice, though it has little to do with the topic. Please refrain from using this word’s occurrence as the catalyst for yet another framework debate thread.

Thank You!

The Management


As we’re all well aware of, labels such as ‘Advanced’ are only a weak approximation at best used to give some context to an individual’s skill level and abilities. Shoot, for most of us, even our own job titles fit this definition, as there is no single phrase that totally encompasses our duties, abilities, and skill set. One reason it is that we humans take the time to factor a person or ourselves down into a single adjective or descriptive phrase is typically for convenience’s sake; it’s expected protocol that whenever we’re asked the question “what do you do?” or “How would you describe your current skill level?”, that we do it in a way that can be uttered with a single breath. Sometimes the whole labeling thing can also be misused as a self-serving item, fueling vices such as inordinate pride and the like; in that usage I personally condemn it, and make it a point not to use it in that way. For the remainder of this post, however, I’ll assume that those who seek the label that fits them best do so for reasons other than pride.

 
So regarding skill level assessment, what categorization would I ascribe to myself if asked to do so, and why? Using what criteria? Ah, even we as individuals in the privacy of our own minds would have to jump through a few hoops to arrive at an answer we felt really confident and comfortable with (assuming a healthy level of self-humility is present), so how on earth could we possibly do a better job of summing up someone else’s skill level? Between the lines of many different threads hither and yon regarding frameworks I see that the reason ‘Advanced’ and ‘frameworks’ and ‘OO’ are being spoken of in the same thought is the fear factor. I speak from experience, that at one point I felt, not from any internal source, but from the evolution of the community, a burning need to re-evaluate my own skill level. Why? Because in a nutshell, there were things going on out there that I did not know. That innate fear of the unknown that often has its subtle effects on the way we behave and think did just that, and caused me to wonder if by not forcing myself to “keep up with the Joneses” was the skill level status that I had personally settled on losing its actual meaning? I believe that everybody in our community, to one degree or another, felt it just like I did. Some said to themselves, “you know what, I just better go ahead and invest the time to traverse this new learning curve. It’s going to be painful and tedious probably, but I’d rather go through that pain than to face the potential situation of not getting a job because one of those new frameworks became an industry standard and I remained ignorant of it.” Still others, like I did for quite a while as well, said to themselves “Why should I question my skill level just because I don’t take the time to keep up with every single new thing that comes out? I shouldn’t, and I won’t.” But even having told themselves that, the fact that those new things persist and continue to become ever more prominent in the community keeps them questioning even when they don’t think they need to; it’s just human nature. And then every once in a while when someone inadvertently or even purposefully posts something that gives the slightest hint of equating OO or frameworks with Advanced, the need to defend their point of view is roused, and we see the myriad of debates such as we have. Let me be clear at this point, I am not belittling anybody regardless of which camp your personal philosophy resides in; the previous was merely my evaluation of what I believe regarding why it is there came to be two camps in the first place.

 
What I do believe to be relevant here is my philosophy on the very question of “Am I Advanced?”  You see, we all have our own personal hierarchy of skills; those that we have deemed as more or less advanced than another, and our own personal rules for classifying a skill somewhere in the junior to advanced range. With everybody harboring their own personal “opinion” on what is junior, what is mid-level, what is advanced, how can we even hope to answer the question of whether or not we as individuals fall into the “Advanced” category or not? In my opinion, to even pursue such a quest is an exercise in futility, with no reward of any consequence waiting for us at its conclusion. Even if we concluded that “yes, I am advanced”, so what? The next guy may not think so after applying his own hierarchy of skills to your resume. Does his opinion matter? To me, only if he’s my potential new boss would I care how he classified me according to my skills, and with that even, there’s no way I could know ahead of time what his personal hierarchy of skills is!. Other than the previous scenario, opinions are like armpits, right?

 
Bottom line is that classifying an individual’s skill set is a subjective thing at best, and is best done by ourselves for ourselves. We should not allow somebody else’s evaluation result to provoke us to anger or discourage us from going forward, but like any good student of any profession will, take any and all critique (including self-critique) and use it as a tool for progress. We’re the best judge of ourselves, and if we keep or pride in check and our minds open to new things, nature will take her course and we will continue to evolve and grow in a healthy, career-enhancing way.

 
So are you advanced? You tell me. Do you feel advanced? Are you aware of any areas in your personal toolbox where there are ambiguities or understandings that could stand to be refined? Areas in your professional experience that you haven’t really gotten your hands dirty in yet, dug down to the nuts and bolts so that you could get a thorough understanding of how a particular technique or tag behaves? Are you aware of new techniques or methodologies being explored and implemented by others in your professional community which you have yet to really take a good look at? The answer to all of those questions will likely always remain an unequivocal “absolutely dude!”. Does that mean nobody is ever advanced? Are you getting tired of reading the word “advanced” yet? You should be, because homing in on labels such as these are a bad thing to do unless it’s the appropriate thing to do at the time, such as during an interview and you’re asked point blank how you would categorize your skill level. When asked, give your honest estimation. Until then, I say that the question will probably be one best left as a reflexive one; ask it to yourself, of yourself, and when you do, let it be nothing more or less than a catalyst for your own personal and professional growth. But let’s not go the way of those poor, poor Sneetches who were more concerned with those who “had stars upon thars” and those who did not; it was and will always be an exercise in futility, not to mention a complete waste of the precious few moments we all have to invest in something better and more lasting in our lives.

 
Are you advanced? You be the judge of that. Ask yourself often, ask yourself honestly, and always strive to do better. Personally, I won’t look at you through “label colored glasses”. From where I’m standing, we are a community, a community with an enormous amount of collective experiences and knowledge, and I would venture to say that every single individual who has joined themselves to this community has nothing but the common good in mind, manifested by the very obvious and copious levels of sharing and assistance that takes place 24/7 from every side.

 
Are you able to wear the label ‘advanced’? I keep repeating the question so that I can beat it as the dead horse that it is, hopefully making it a distasteful question so that we won’t even have the stomach to utter it again anytime soon.  Fact is, it shouldn’t even be a question at this point; it’s almost completely irrelevant to anything we as a community work to accomplish. N’est-ce pas?

Posted by dougboude at 5:56 AM | PRINT THIS POST! | Link | 8 comments
15 August 2006
Review of "Night Listener"
Robin, RObin, RobIn...nothing personal, dude, but you really should not have done this movie. Not even your amazing acting ability could pull this one out of its own boodie.

I've seen a lot of movies, among them I've seen a whole truckfull of bad movies; but this movie, "Night Listener", has got to be the all time worst movie I've ever seen. It was a dead fish, a frigid woman, a stoned crack ho...the thing barely moved. Time passed, people moved and spoke, but NOTHING happened, ever, at all. Oh, a few times the plot's finger twitched and you were led to believe that something exciting MIGHT happen, but it never became more than a single, nervous, twitch in the story. Of all the mundane, dry, flavorless, tasteless, BORING, eventless, disappointing, "wham bam thank ya ma'am", quickie, "is it in yet?", gaggingly-horridly-lacking-in-writing-effort plots I've ever had the pain to be exposed to, this was the Uuuuultimate. Okay, every story has characters, it has a setting, it has a situation, right? Well, I'm reasonably certain that either A) the writers simply took pieces of other movies they found strewn about on the editing room floor and found a way to piece them together or B)the writers put a hundred 3x5 cards into three large fishbowls, one containing character descriptions, one containing settings, and one containing situations, and then drew out cards from each until they had a story. "Okay, we need a character. Let's see...oh, he's a radio talk show host! Good, good. Hmmm...oh! He'th gay! Hooray! Now the setting....ah, the antagonist lives in rural wisconsin! Oo, this is getting exthiting, ithn't it? D'oh! The protagonist recently broke up with his 20 something hunk of a boyfriend, but is still deeply in love with him. We can really work with that, right boyth? Wow, now here'th where it gets interesting: there's a 14 year old boy that is the antagonist, and he has been molested by his parents and others since he was little. He's dying of aids, wrote an incredibly inspiring soon-to-be-published book, and has an inordinate  man-crush on this gay radio announcer. ...."

OMG. Are we not STRETCHING reality JUST A WEE BIT here????? I put all of my being into forcing my head to try and imagine that "well, MAYbe this situation could exist SOMEwhere and be real", all in the hope that at LEAST the writers will give me some action, excitement, intrigue, plot thickening, resolution...stuff like that. Did I expect too much? I don't think so. Even a bad B movie at least puts forth a lot of EFFORT to entertain me! This movie drew me in unawares, slapped me around like a bad dog, put me in the corner promising to let me out if I was good, so I was good, and then it never let me out of the corner. Suddenly it was just friggin over and I was left there, QUITE unsatisfied and knowing that some unseen writer somewhere had purposefully USED me and taken my money. I was SO disappointed...couldn't even stop saying "I can't believe it" out loud until some 30 minutes later, and now a day after I'm STILL thinking it! The plot had at least 7 points where some decently exciting turn or twist could have occurred; but no.

This movie is lame, lame, lame. Lame cubed. Lame times some logorithmic googol number to the nth degree. Unless you're truly a depressed self-masochist whose only hold on reality and life is when other people (or movies) use and abuse you, do NOT let yourself see this movie, at least not at theater prices. It will do you harm, possibly irrepairable harm.

Sheesh, any 3rd grader with half an imagination and a bottle of model glue could've written a better movie than this. The main character's last name was Noone, and his radio show motto was "This is Noone, at Night". AUGH! NOONE, HUH? What a COINCIDENCE that he's a talk show host at NIGHT. Sheesh, Hollywood, did NOBODY see what I saw? Okay, I'm done ranting. Promise.

Just my take.

Doug out.
Posted by dougboude at 11:51 PM | PRINT THIS POST! | Link | 18 comments
11 May 2006
Don't you hate it when...
Kill Bill's Browser
Okay, here's the scene:

You're standing in a crowded 4 star hotel lobby, leaning against the 10 ft fountain in the center. In your hand you are holding a javascript array with 5 items in it, the last of which has a null value. So you ask the little Firefox guy on your left shoulder to tell you how many items are in your array. He looks it over, sees that the last item has a null value, and so tells you that your array has 4 items in it. Then you turn to the little IE guy on your right shoulder and ask him the same question. He looks it over, sees that there are 5 items in the array, and reports back that indeed your array contains 5 items. So, you ask the little IE guy on your right shoulder to please fetch you the 5th item in your array, and he immediately vomits all over your good coat and tie, because for the LIFE of him, he can't find a fifth item in your array! Despite the fact that he emphatically stated there were definately 5 items in your array, he lacks the testicular fortitude to be able to fetch the sucker. Now, were you to ask the Firefox guy on your left shoulder to fetch you the fifth item, he would politely remind you that there is no fifth item. But does Bill's browser do that? NOOOOOoooooo, it just makes all the time you spent writing your javascript function a total waste, because now you have to go BACK into it and re-code the logic to account for the fact that Bill's browser is going to behave like a drunken, double-visioned sailor on his last night of shore leave. Don't you hate that? Why can't Bill's browser just conform? The alternative is to do your part to help kill BIll's browser; download Firefox today and set yourself free. I highly recommend it.
That's my rant for this evening.
Posted by dougboude at 1:04 AM | PRINT THIS POST! | Link | 4 comments