Categories
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

<< February, 2010 >>
SMTWTFS
123456
78910111213
14151617181920
21222324252627
28
Search Blog

Recent Comments
Re: Disappearing IE Popup Window During Save/Open Dialog (by LZ at 4/20 7:58 AM)
Re: Create Dynamic WHERE Clauses in PHP (by pooja at 3/20 7:29 AM)
Re: Just What IS a 'Service Layer', Anyway? (by EugenK at 3/07 7:56 PM)
Re: Using Google as your CF Mail Server (by 5starwebteam.com at 2/25 1:27 AM)
Re: Why Provide for Service layer objects in CFWheels? (by Steven Benjamin at 1/25 11:43 AM)
Re: What is an 'Advanced' Coldfusion Developer? (by ColdFusion Developer at 12/24 5:14 AM)
Re: Equivalent of SQL "TOP X" in Oracle (by Ashenafi Desalegn at 12/06 5:29 AM)
Re: PHP Export to Excel Snippet (by serene at 12/05 1:44 AM)
Re: Just What Is 'Application Logic', Anyway? (by Arif at 11/13 8:06 AM)
Re: Hosts File Changes Not Acknowledged on Vista 64 (by Aaron at 10/22 2:31 PM)
Re: PHP Export to Excel Snippet (by Jafar Shah at 10/10 4:28 AM)
Re: Viewing Option Text (in IE7) that's Wider than the Select List (by Chenelle S at 10/04 12:53 PM)
Re: PHP Export to Excel Snippet (by Kilo at 9/26 5:20 PM)
Re: Porting Coldfusion Code to Mura (by tariq at 9/03 9:51 AM)
Re: Just What IS a 'Service Layer', Anyway? (by James at 8/27 4:06 PM)
Re: Calculating Business Hours (by helen at 8/14 2:54 AM)
Re: What IS 'Business Logic', Anyway? (by dougboude at 8/06 11:30 AM)
Re: What IS 'Business Logic', Anyway? (by Adrianne at 8/06 10:29 AM)
Re: Family Law: The Weapon of Choice for Woman Scorned (by dougboude at 8/04 4:39 PM)
Re: Family Law: The Weapon of Choice for Woman Scorned (by Lola LB at 8/04 7:43 AM)
Archives
Photo Albums
Funnies (5)
Family (3)
RSS

Powered by
BlogCFM v1.11

23 February 2010
Real World Benefits of Encapsulation
I, as most if not all of you do, realize that to do any new development and NOT encapsulate my code would border on absurdity and I would be painting myself into a very narrow corner with regard to maintenance and future project expansion. This post, however, is focused on those projects where you are thrown headlong into an existing codebase that is not based, even loosely, on any kind of object oriented principles, has little to no rhyme nor reason to its architecture, and yet you are tasked with making functional modifications to it without breaking it. A little like playing "pick up sticks", right? Good luck with that! But, by leveraging encapsulation, I was able to accomplish just such a task with relative ease.

For those who may not know, encapsulation is a term that means exactly what it says: containment and separation. Remember those plastic easter eggs that you put things inside as a kid? Whatever you put in there, be it a toy, candy, grasshopper, or whatever, immediately became encapsulated, separated from and unaffected by anything outside of itself (barring direct sunlight, but we'll assume your code will never be subjected to that).

It isn't difficult to port such a definition over to the programmer's world, as we soon learn that by encapsulating specific types of functionality, we can re-use and even share code, thus preventing us from having to waste time re-creating work. In the real world, however, as is often the case, theory doesn't always mesh well with reality. Due to time constraints, lack of experience, laziness, or the inability or lack of authority to modify certain aspects of existing codebases, we very often do not implement encapsulation as we could and should. In a recent project of mine involving an older codebase, the absolute benefits of encapsulation became more than apparent, so I thought I would share the experience.


The task was to modify the import process in the administrative area of a large, "pre-Object Oriented" CMS (which was now living on a ColdFusion 7, "Obect Oriented-friendly" server). In order to minimize the invasiveness of the surgery I was about to perform, I wrote a CFC/class to handle all of the major work, the plan being to isolate the individual switch statement in the thousand line template responsible for the old import process and inject my modifications there and there only. The import process was no simple task, either, and it took a LOT of trial and error to get my code solidified to account for all possible anomolies. But, by encapsulating all of the new functionality in a CFC, I was able to write a quick and dirty test template that utilized my CFC to perform the test imports in isolation from the rest of this app, thus ensuring that all of my code mods, hacks, dumps, and random outputs had NO impact whatsoever on the live app. Once I had my test imports running successfully, complete with statistics being compiled and code written to properly output those stats, all I had to do was drop the relevant portions of my test template into the live app, make sure I had a fast and bullet proof rollback strategy in case something went awry (ALWAYS have a rollback strategy...never trust your own code), and run one final test with my CFC implanted in the live app. Yes, the app I had to modify had no test or qa server; I had to operate directly on the live patient, with no anesthetic.

So, even though you may be often called upon to perform mods to existing, older codebases, if the app lives in an environment conducive to Object Oriented approaches (or even if it doesn't! Don't forget about the ability to encapsulate via Includes if you must!), your path of least potential fallout, self-documentation, and future modifications made easy, is to heavily leverage encapsulation.
Posted by dougboude at 11:46 AM | PRINT THIS POST! | Link | 1 comment



19 February 2010
Registered Ajax Responders Not Responding Properly
Ajax Fundamentals
If you use the Prototype Javascript library and you chain your Ajax calls together at times, you may have run into the issue that I just dealt with regarding your registered responders not responding correctly! Since I spent more time than I care to share trying to figure out why my global responders weren't working like I thought they should, I thought I'd share what I learned. Hope it saves somebody some time! :)

Prelude

You may not be familiar with some of the terms I have used already, or some that I will use. If you feel you already have a good grasp on the lexicon surrounding Ajax and JS libraries, skip ahead to The Scenario; but if not, then allow me to clear up some of the fog before we press on. Please excuse me if I spend time on things that you may feel are "common knowledge", but in my experience there really is no such thing and I want to make sure every reader is thinking in the same context.

The Basic Nutshell of Ajax Chaining

In Prototype and other similar libraries, an Ajax call is typically of one of two flavors: simple request, and an update request.

Simple Requests

A simple request is one in which you ask your JS to make an http call to the server and hand you back the results that were delivered, whatever they be. At that point you will have written more Javascript to actually deal with those results manually. For example, let's say you display a select list containing possible food categories to your user. When the user selects a category, an Ajax request is made passing in the selected category, and a JSON representation of a record set containing foods in that category is returned. That JSON object is handed off to another function you wrote which will 'walk' through the foods and populate yet another select list with the specific items.

Update Requests

An update request is one in which you are asking your JS to make an http call to the server and stuff the results, whatever they be, directly into a DOM element (a DIV tag, a SPAN tag, etc.). Let's make a slight change to the example cited above. In this scenario, we already have a DIV tag in our html that we have designated as the place where our select list should appear. So, instead of having our server code return a raw JSON representation of the data, we write our server code to produce the HTML for the fully populated select list ("<select name='selFoods'><option value='1'>Crescent Rolls</option><option value='2'>Dog Biscuits</option>....</select>"). It is this string that our Ajax call receives, and this returned value is stuffed directly in to the DIV tag we designated as the recipient. Make sense?

Registering Responders

It is quite typical (and useful) to show to your users some kind of "working" image to indicate that the Ajax call is in progress. We may also wish to disable certain items on the user interface while calls are in progress, or overlay an opaque div to prevent the user from clicking anything. The thing we want to do and/or display while an Ajax call is in progress is what we refer to as our "Responder". Within our Javascript, we will tell our library something along the lines of "hey, anytime an Ajax call is created (started), I want you to do this; and anytime you see an Ajax call finish, I want you to do this". The act of telling our library what we want to happen automatically regardless of the Ajax call is called "registering responders". You define (register) them one time, and they just work. :)

Why Would I Ever Want to Chain My Calls?

I'm glad I asked! Let me just give you a working example to help illustrate why we might do this on occasion, and how we do it.
In my application, I am allowing a user to upload a data file. When the upload of the file is complete, I then need to kick off a series of things to occur, and I want to update a DIV with the current status of each call as they happen. The first call is to validate the uploaded file, so I write an Ajax simple request that tells the server where the file was uploaded and what kind of file it is supposed to be. This call will either return a true or false, depending on whether the file passed or not. If it failed, I want to tell the user that the file was bogus and cease any further processing. If it passed, I want to kick off another Ajax simple request that tells my app to go ahead and proceed with step 1 of the file processing. That call will return success or failure along with status messages, and then will kick off the third step in the processing.

Now, the way we "connect", or "chain" these calls together is by taking advantage of the fact that our library knows when a call is finished. When we write the JS for call 1, we tell it "when you receive a response from the server, pass that response on to Call 2 for evaluation". Call 2 is written to check the success status, and if all is well will make an Ajax simple request which itself has been told to pass its results on to Call 3. Here's an abbreviated example of what I'm talking about (some code ommitted for brevity):

function Call1(){
   new Ajax.Request(validateUploadURL,{parameters:params,method:'post',onSuccess:Call2});
}

function Call2(response){
   var objRetval = response.responseJSON;
   if(!objRetval.success){
        $('status').update(objRetval.msg);
        return;
   } else {//call successful! carry on
     new Ajax.Request(fileProcess1URL,{parameters:params,method:'post',onSuccess:Call3});
   }
  
}

function Call3(response){
   var objRetval = response.responseJSON;
   if(!objRetval.success){
        $('status').update(objRetval.msg);
        return;
   } else {//call successful! carry on
     new Ajax.Request(fileProcess2URL,{parameters:params,method:'post',onSuccess:TheEnd});
   }
  
}

function TheEnd(response){
  var objRetval = response.responseJSON;
  $('status').update(objRetval.msg);
}

See how they're all connected? Chain Chain Chaaaaaaainnnnnn... yeah.

The Scenario

In my scenario, I have a file upload process that is composed of three different Ajax requests, all chained together in a conditional, synchronous fashion (I know there are other ways to approach it, but this is the one that fit my needs the best). I have registered global responders to show/hide an animated spinner to indicate when a request has started and finished (I 'show' it when the request starts, I 'hide' it when its finished). Now, in my mind, these global responders should toggle that gif every time a request starts or stops, so in this scenario, it should show/hide three different times. But, that isn't how it worked. The gif would show during the initial call, and hide after that call was finished; Then it never showed again, despite the fact that there were multiple additional calls made! Here is how I registered my responders:

    Ajax.Responders.register({
          onCreate: function() {
            showUploadWorking();
          },
          onComplete: function() {
            hideUploadWorking();
          }
        });


After much experimentation, it occurred to me that perhaps even though the responder was global, maybe I needed to be concerned with manually 'watching' the active request count variable. I don't understand why I SHOULD have to, but that did turn out to be the solution. Here is the properly working responder registrations:

    Ajax.Responders.register({
          onCreate: function() {
            showUploadWorking();
          },
          onComplete: function() {
              if(Ajax.activeRequestCount == 0){
                  hideUploadWorking();
              }
          }
        });

Notice the only difference is in the onComplete function...I am 'watching' the activeRequestCount variable (which as you may have guessed is simply a counter telling us how many requests are currently not yet finished) and conditionally hiding my responder.

Doug out :0)
Posted by dougboude at 11:20 AM | PRINT THIS POST! | Link | 3 comments
18 February 2010
The Death of an Anarchist
Joe Stack 1956-2010
Editor's Note: This letter was copied from the Austin American Statesman's web site, and is purported to be from the web site of Joe Stack, who crashed an airplane into the IRS building in Austin, Texas on the morning of February 18th, 2010. Though I can't condone Mr. Stack's actions, I can absolutely comprehend and empathize with his point of view, line of thinking, rationale, logic, and frustration. In my opinion, this man called it EXACTLY like it is, and embodied the true definition of a word we have been taught to treat with disdain: Anarchist. Though all connotations of any permeation of the word tend to be negative due to the way it is typically used in the media, the true definition embodies the ideal that we should all be free to live as sovereign individuals, free from the harassment and oppressions of government. To quote The Anarchist Alternative, "a genuine anarchist doesn't want to rule anyone, except himself. We love freedom - and not just for ourselves. We're happy for everyone else to enjoy it too". Now what is so very negative about that? I for one agree absolutely and completely, and in fact think the very same way.

Was Joe Stack's death a sacrifice, an abhorrence, or something in between? Was he a martyr or a lunatic? Each individual must judge that for him or herself. One thing is for certain though: nothing this man shared in his last known testament can be refuted or denied.

In any event, may his death not be in vain.

Doug Boude

--------------------------------------------------------------------------------------------------

If you’re reading this, you’re no doubt asking yourself, “Why did this have to happen?” The simple truth is that it is complicated and has been coming for a long time. The writing process, started many months ago, was intended to be therapy in the face of the looming realization that there isn’t enough therapy in the world that can fix what is really broken. Needless to say, this rant could fill volumes with example after example if I would let it. I find the process of writing it frustrating, tedious, and probably pointless… especially given my gross inability to gracefully articulate my thoughts in light of the storm raging in my head. Exactly what is therapeutic about that I’m not sure, but desperate times call for desperate measures.

We are all taught as children that without laws there would be no society, only anarchy. Sadly, starting at early ages we in this country have been brainwashed to believe that, in return for our dedication and service, our government stands for justice for all. We are further brainwashed to believe that there is freedom in this place, and that we should be ready to lay our lives down for the noble principals represented by its founding fathers. Remember? One of these was “no taxation without representation”. I have spent the total years of my adulthood unlearning that crap from only a few years of my childhood. These days anyone who really stands up for that principal is promptly labeled a “crackpot”, traitor and worse.

While very few working people would say they haven’t had their fair share of taxes (as can I), in my lifetime I can say with a great degree of certainty that there has never been a politician cast a vote on any matter with the likes of me or my interests in mind. Nor, for that matter, are they the least bit interested in me or anything I have to say.

Why is it that a handful of thugs and plunderers can commit unthinkable atrocities (and in the case of the GM executives, for scores of years) and when it’s time for their gravy train to crash under the weight of their gluttony and overwhelming stupidity, the force of the full federal government has no difficulty coming to their aid within days if not hours? Yet at the same time, the joke we call the American medical system, including the drug and insurance companies, are murdering tens of thousands of people a year and stealing from the corpses and victims they cripple, and this country’s leaders don’t see this as important as bailing out a few of their vile, rich cronies. Yet, the political “representatives” (thieves, liars, and self-serving scumbags is far more accurate) have endless time to sit around for year after year and debate the state of the “terrible health care problem”. It’s clear they see no crisis as long as the dead people don’t get in the way of their corporate profits rolling in.

And justice? You’ve got to be kidding!

How can any rational individual explain that white elephant conundrum in the middle of our tax system and, indeed, our entire legal system? Here we have a system that is, by far, too complicated for the brightest of the master scholars to understand. Yet, it mercilessly “holds accountable” its victims, claiming that they’re responsible for fully complying with laws not even the experts understand. The law “requires” a signature on the bottom of a tax filing; yet no one can say truthfully that they understand what they are signing; if that’s not “duress” than what is. If this is not the measure of a totalitarian regime, nothing is.

How did I get here?

My introduction to the real American nightmare starts back in the early ‘80s. Unfortunately after more than 16 years of school, somewhere along the line I picked up the absurd, pompous notion that I could read and understand plain English. Some friends introduced me to a group of people who were having ‘tax code’ readings and discussions. In particular, zeroed in on a section relating to the wonderful “exemptions” that make institutions like the vulgar, corrupt Catholic Church so incredibly wealthy. We carefully studied the law (with the help of some of the “best”, high-paid, experienced tax lawyers in the business), and then began to do exactly what the “big boys” were doing (except that we weren’t steeling from our congregation or lying to the government about our massive profits in the name of God). We took a great deal of care to make it all visible, following all of the rules, exactly the way the law said it was to be done.

The intent of this exercise and our efforts was to bring about a much-needed re-evaluation of the laws that allow the monsters of organized religion to make such a mockery of people who earn an honest living. However, this is where I learned that there are two “interpretations” for every law; one for the very rich, and one for the rest of us… Oh, and the monsters are the very ones making and enforcing the laws; the inquisition is still alive and well today in this country.

That little lesson in patriotism cost me $40,000+, 10 years of my life, and set my retirement plans back to 0. It made me realize for the first time that I live in a country with an ideology that is based on a total and complete lie. It also made me realize, not only how naive I had been, but also the incredible stupidity of the American public; that they buy, hook, line, and sinker, the crap about their “freedom”… and that they continue to do so with eyes closed in the face of overwhelming evidence and all that keeps happening in front of them.

Before even having to make a shaky recovery from the sting of the first lesson on what justice really means in this country (around 1984 after making my way through engineering school and still another five years of “paying my dues”), I felt I finally had to take a chance of launching my dream of becoming an independent engineer.

On the subjects of engineers and dreams of independence, I should digress somewhat to say that I’m sure that I inherited the fascination for creative problem solving from my father. I realized this at a very young age.

The significance of independence, however, came much later during my early years of college; at the age of 18 or 19 when I was living on my own as student in an apartment in Harrisburg, Pennsylvania. My neighbor was an elderly retired woman (80+ seemed ancient to me at that age) who was the widowed wife of a retired steel worker. Her husband had worked all his life in the steel mills of central Pennsylvania with promises from big business and the union that, for his 30 years of service, he would have a pension and medical care to look forward to in his retirement. Instead he was one of the thousands who got nothing because the incompetent mill management and corrupt union (not to mention the government) raided their pension funds and stole their retirement. All she had was social security to live on.

In retrospect, the situation was laughable because here I was living on peanut butter and bread (or Ritz crackers when I could afford to splurge) for months at a time. When I got to know this poor figure and heard her story I felt worse for her plight than for my own (I, after all, I thought I had everything to in front of me). I was genuinely appalled at one point, as we exchanged stories and commiserated with each other over our situations, when she in her grandmotherly fashion tried to convince me that I would be “healthier” eating cat food (like her) rather than trying to get all my substance from peanut butter and bread. I couldn’t quite go there, but the impression was made. I decided that I didn’t trust big business to take care of me, and that I would take responsibility for my own future and myself.

Return to the early ‘80s, and here I was off to a terrifying start as a ‘wet-behind-the-ears’ contract software engineer… and two years later, thanks to the fine backroom, midnight effort by the sleazy executives of Arthur Andersen (the very same folks who later brought us Enron and other such calamities) and an equally sleazy New York Senator (Patrick Moynihan), we saw the passage of 1986 tax reform act with its section 1706.

For you who are unfamiliar, here is the core text of the IRS Section 1706, defining the treatment of workers (such as contract engineers) for tax purposes. Visit this link for a conference committee report (http://www.synergistech.com/1706.shtml#ConferenceCommitteeReport) regarding the intended interpretation of Section 1706 and the relevant parts of Section 530, as amended. For information on how these laws affect technical services workers and their clients, read our discussion here (http://www.synergistech.com/ic-taxlaw.shtml).

SEC. 1706. TREATMENT OF CERTAIN TECHNICAL PERSONNEL.

(a) IN GENERAL - Section 530 of the Revenue Act of 1978 is amended by adding at the end thereof the following new subsection:

(d) EXCEPTION. - This section shall not apply in the case of an individual who pursuant to an arrangement between the taxpayer and another person, provides services for such other person as an engineer, designer, drafter, computer programmer, systems analyst, or other similarly skilled worker engaged in a similar line of work.

(b) EFFECTIVE DATE. - The amendment made by this section shall apply to remuneration paid and services rendered after December 31, 1986.

Note:

· “another person” is the client in the traditional job-shop relationship.

· “taxpayer” is the recruiter, broker, agency, or job shop.

· “individual”, “employee”, or “worker” is you.

Admittedly, you need to read the treatment to understand what it is saying but it’s not very complicated. The bottom line is that they may as well have put my name right in the text of section (d). Moreover, they could only have been more blunt if they would have came out and directly declared me a criminal and non-citizen slave. Twenty years later, I still can’t believe my eyes.

During 1987, I spent close to $5000 of my ‘pocket change’, and at least 1000 hours of my time writing, printing, and mailing to any senator, congressman, governor, or slug that might listen; none did, and they universally treated me as if I was wasting their time. I spent countless hours on the L.A. freeways driving to meetings and any and all of the disorganized professional groups who were attempting to mount a campaign against this atrocity. This, only to discover that our efforts were being easily derailed by a few moles from the brokers who were just beginning to enjoy the windfall from the new declaration of their “freedom”. Oh, and don’t forget, for all of the time I was spending on this, I was loosing income that I couldn’t bill clients.

After months of struggling it had clearly gotten to be a futile exercise. The best we could get for all of our trouble is a pronouncement from an IRS mouthpiece that they weren’t going to enforce that provision (read harass engineers and scientists). This immediately proved to be a lie, and the mere existence of the regulation began to have its impact on my bottom line; this, of course, was the intended effect.

Again, rewind my retirement plans back to 0 and shift them into idle. If I had any sense, I clearly should have left abandoned engineering and never looked back.

Instead I got busy working 100-hour workweeks. Then came the L.A. depression of the early 1990s. Our leaders decided that they didn’t need the all of those extra Air Force bases they had in Southern California, so they were closed; just like that. The result was economic devastation in the region that rivaled the widely publicized Texas S&L fiasco. However, because the government caused it, no one gave a shit about all of the young families who lost their homes or street after street of boarded up houses abandoned to the wealthy loan companies who received government funds to “shore up” their windfall. Again, I lost my retirement.

Years later, after weathering a divorce and the constant struggle trying to build some momentum with my business, I find myself once again beginning to finally pick up some speed. Then came the .COM bust and the 911 nightmare. Our leaders decided that all aircraft were grounded for what seemed like an eternity; and long after that, ‘special’ facilities like San Francisco were on security alert for months. This made access to my customers prohibitively expensive. Ironically, after what they had done the Government came to the aid of the airlines with billions of our tax dollars … as usual they left me to rot and die while they bailed out their rich, incompetent cronies WITH MY MONEY! After these events, there went my business but not quite yet all of my retirement and savings.

By this time, I’m thinking that it might be good for a change. Bye to California, I’ll try Austin for a while. So I moved, only to find out that this is a place with a highly inflated sense of self-importance and where damn little real engineering work is done. I’ve never experienced such a hard time finding work. The rates are 1/3 of what I was earning before the crash, because pay rates here are fixed by the three or four large companies in the area who are in collusion to drive down prices and wages… and this happens because the justice department is all on the take and doesn’t give a fuck about serving anyone or anything but themselves and their rich buddies.

To survive, I was forced to cannibalize my savings and retirement, the last of which was a small IRA. This came in a year with mammoth expenses and not a single dollar of income. I filed no return that year thinking that because I didn’t have any income there was no need. The sleazy government decided that they disagreed. But they didn’t notify me in time for me to launch a legal objection so when I attempted to get a protest filed with the court I was told I was no longer entitled to due process because the time to file ran out. Bend over for another $10,000 helping of justice.

So now we come to the present. After my experience with the CPA world, following the business crash I swore that I’d never enter another accountant’s office again. But here I am with a new marriage and a boatload of undocumented income, not to mention an expensive new business asset, a piano, which I had no idea how to handle. After considerable thought I decided that it would be irresponsible NOT to get professional help; a very big mistake.

When we received the forms back I was very optimistic that they were in order. I had taken all of the years information to XXXX XXXX, and he came back with results very similar to what I was expecting. Except that he had neglected to include the contents of Sheryl’s unreported income; $12,700 worth of it. To make matters worse, XXXX knew all along this was missing and I didn’t have a clue until he pointed it out in the middle of the audit. By that time it had become brutally evident that he was representing himself and not me.

This left me stuck in the middle of this disaster trying to defend transactions that have no relationship to anything tax-related (at least the tax-related transactions were poorly documented). Things I never knew anything about and things my wife had no clue would ever matter to anyone. The end result is… well, just look around.

I remember reading about the stock market crash before the “great” depression and how there were wealthy bankers and businessmen jumping out of windows when they realized they screwed up and lost everything. Isn’t it ironic how far we’ve come in 60 years in this country that they now know how to fix that little economic problem; they just steal from the middle class (who doesn’t have any say in it, elections are a joke) to cover their asses and it’s “business-as-usual”. Now when the wealthy fuck up, the poor get to die for the mistakes… isn’t that a clever, tidy solution.

As government agencies go, the FAA is often justifiably referred to as a tombstone agency, though they are hardly alone. The recent presidential puppet GW Bush and his cronies in their eight years certainly reinforced for all of us that this criticism rings equally true for all of the government. Nothing changes unless there is a body count (unless it is in the interest of the wealthy sows at the government trough). In a government full of hypocrites from top to bottom, life is as cheap as their lies and their self-serving laws.

I know I’m hardly the first one to decide I have had all I can stand. It has always been a myth that people have stopped dying for their freedom in this country, and it isn’t limited to the blacks, and poor immigrants. I know there have been countless before me and there are sure to be as many after. But I also know that by not adding my body to the count, I insure nothing will change. I choose to not keep looking over my shoulder at “big brother” while he strips my carcass, I choose not to ignore what is going on all around me, I choose not to pretend that business as usual won’t continue; I have just had enough.

I can only hope that the numbers quickly get too big to be white washed and ignored that the American zombies wake up and revolt; it will take nothing less. I would only hope that by striking a nerve that stimulates the inevitable double standard, knee-jerk government reaction that results in more stupid draconian restrictions people wake up and begin to see the pompous political thugs and their mindless minions for what they are. Sadly, though I spent my entire life trying to believe it wasn’t so, but violence not only is the answer, it is the only answer. The cruel joke is that the really big chunks of shit at the top have known this all along and have been laughing, at and using this awareness against, fools like me all along.

I saw it written once that the definition of insanity is repeating the same process over and over and expecting the outcome to suddenly be different. I am finally ready to stop this insanity. Well, Mr. Big Brother IRS man, let’s try something different; take my pound of flesh and sleep well.

The communist creed: From each according to his ability, to each according to his need.

The capitalist creed: From each according to his gullibility, to each according to his greed.

Joe Stack (1956-2010)

02/18/2010

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