One man's voice Thoughts, rants and commentary of a simple man

18Apr/070

Is this his time?

In the words of American Idol judge Randy Jackson: 'I don't know man'.

I think this might be it. I think this week might be Sanjaya's last week on the show. He was particularly awful last night. For the most part, the entire field did pretty well. But of course, there has to be three that are not the best for the night, and those, according to my insightfulness, are:

  • Sanjaya Malakar
  • Chris Richardson
  • I really hate to say this... Lakisha Jones

Now you have to understand where I am coming from with these three. They just did not sing very well. Lakisha, you've been one of my American Idol top three since day one, but last night was not top three, performance-wise. I think Jordin nailed it, I think Melinda nailed it and I think Phil nailed it. I think Blake was middle of the road and will be neither top nor bottom.

We'll see how it turns out, but I think the bottom three are going to pan out as you see them above.

Stats:
NSLAMM: 0
FTR: :( and :( .
I think I am going to be changing the way these come out. We'll see. It is not like these are for you anyway :wink: .

Filed under: American Idol No Comments
17Apr/070

Tax Day: Spread em baby, and like it

So I finished our taxes last night, and I gotta tell you, I have not wanted to jump off a bridge that much for a long time.

After years and years of having great financial peace of mind I am on the verge of a complete breakdown. Seriously. This is the worst off we have been in a while. But I digress, this is about taxes more than our failed attempts at financial management and income generation, so let me let you in on a little something something.

I discovered two things yesterday in the midst of finishing my return:

  • I made a lot of money last year (relatively speaking)
  • I didn't pay the government nearly what I should have
  • I am broke, and will have a hard time paying them this year too

Last year we got back every cent we paid the government. The year before, same thing. This year, we actually have to pay the government almost $2,000. And this at a time where I can barely afford to buy milk for the family. Now I am sure that this situation will get better over time. But I am really not seeing a bridge to that time. The hits just keep coming. And coming. And coming. And I see no reprieve in sight.

Of course, I am venting. We are not like dead in the water, ass out of money. Well, yeah we are. But we still have a home to live in and cars to drive. We may not have any money to put gas in those cars, but they look good in the driveway. I am just really frustrated right now and this little blog of mine seems to be the only place that I can vent without the worry of anyone actually seeing what I am going through. Being able to go through something like this alone is almost as nice as being able to go through it in the first place.

Anyway, happy tax day. I hope your season is better than ours.

Stats:
NSLAMM: 1
FTR: :) and :( (37 days and counting)

Filed under: Rants No Comments
16Apr/070

Out of the mouths of babes

In the course of day to day parenting, little things like this pop up all the time:

My wife was in the house and Adriannah comes in screaming... 'Bekah is trying to squirt me with the water!'. It was a warm day and the kids wanted to be outside playing in the water. It usually works that way on hot days around the house. And it usually ends up that Rebekah tries to thrash someone with a jet of water to the face or to the back or to somewhere on a body where one would not water sprayed rapidly at them.

So it was for this event. After Rebekah was spoken to and the peace was restored around the house, and after a few moments had passed, Rebekah came running in the house screaming that Adriannah had hit her. When my wife asked Adriannah if that was true, Adriannah said it was. My wife asked why she hit her sister and she replied 'Bekah tried to squirt me with the water again'. In her defense, Rebekah replied that she indeed tried to squirt her sister, but it was only because Adriannah asked to be squirted.

My wife asked Adriannah if she asked Rebekah to squirt her with the hose. Adriannah's reply:

"Yes, I did. But I didn't mean it."

You gotta love parenting.

A picture of peace, if but for a moment
This is a picture I ran across the other day when clearing 500 pictures from my camera. I like it, and I thought you would, too. This is family photo of our kids and the Huber kids, just before they left on their journey. I liked it, and though some of you would as well. Click it, it gets bigger.

Smaller image of the Huber and Gonzalez kids
Stats:
NSLAMM: 0
FTR: :( and :( .

15Apr/070

That day

This is a poem I have wanted to write for a while. I think there is more to add to it, so I would consider this a first (or even rough) draft.

That day

It’s a day when all is said and done
There are no more stones to lay
The road’s been paved, it’s time to rest
For me it is that day.

For some the end brings pain
Under skies of cloudy gray
A sadness worn on the brows of all
Today is not that day

Life lived long in the service of love
Pleasure to please at play
Though ending could bring a halt to joy
Today is not that day

With ease tears flow in sorrow
With the passing by the way
There’ll come a day to cry for me
Today is not that day

My Father called my presence high
And I could not delay
In peace to live eternal
Forever from that day

My likeness clearly absent now
The price was small to pay
In giving all I’ve earned it all
There’s victory that day

Gone before me in His time
Preparing my place to stay
In time I knew I’d get to go
That there would be that day

I’ve heeded the call to rest at home
It’s time for you to pray
Remember me in joy and love
Don’t cry for me that way
The day will come to weep and mourn
Today is not that day
His love abounds with grace sufficient
For all that hear that day
As I have done, but that you see
Today is that day for me

Stats:
NSLAMM: 1
FTR: :) and :( .

Filed under: My Poetry No Comments
14Apr/070

T minus 5 days and counting

We are going to be going to Louisiana. I hadn't brought this up before, but it is quickly becoming a noticeable reality. We are preparing for a family reunion in Louisiana beginning this weekend. We leave on Thursday (at the unholy hour of 4:something too early AM) and we return 10 days later.

This is a big trip for us. We have never traveled by airplane with our family of seven. In fact, the last time we flew as a family was when we went to Louisiana in April of 2001, when Adriannah was only a few months old and we had a direct flight to New Orleans. This time we have a 2 hour layover in Texas somewhere (don't ask where, any place in Texas in the same as any other place in Texas).

I am actually looking forward to the trip. I am not looking forward to preparing for the trip, as that is always a stressful endeavor that buries my wife in complete stress and frustration. But the time away from home and time away for my wife from taking care of the house, the kids, her stupid husband and all of his selfish, silly needs, the bills, yadda yadda... that will be the one thing I appreciate from this trip the most.

Oh yeah, and food. I love eating in Louisiana. There is truly nothing like the food over their. Sea food galore. Eat food galore. And red velve cake, and Granny's home made pies and gumbo and jambalaya and aaaahhhhhh, I can't go on lest I explode with hunger for cajun cookin'.

Of course you know I will be filling you all in while I am there. I have to have my connection to work with me as we are doing a corporate wide upgrade of our enterprise data application. Since our new account management tool ties directly into that I need to make sure it all works while I am gone. No big, that might actually be a little break from the stress of family travel ;)

Stats:
NSLAMM: 0
NSA: 3
FTR: :( and :( .

13Apr/070

Impressed by Central Chevrolet

Last week my wife and I had some service done to our Suburban. There was a little more than normal to be done to it, so we planned to have it out of commission for a few days and to have it cost us a pretty penny.

My wife took it to the dealership on Wednesday (there some warranty things to do, so we took it to the dealership - Central Chevrolet in Fremont - against my typical better judgment on matters like this) where we were quoted $193 and a day to get done.

That wasn't as bad as I thought it was going to be. We needed our brakes done, an alignment, an oil change, two trim pieces replaced that my kids broke, an air vent fixed and an air channeler repaired. I figured it would take about two days, they said same day, all was well.

Mostly. The truck ended up taking two days because of delays in getting the needed trim pieces. However, last Friday when we picked it up I was surprised to see the bill was only about $90. The brakes, the trim pieces, the vents... everything was done under warranty for us (except the oil change). That was quite impressive.

I have a background in automotive manufacturing and vehicle fleet management. To see something like this was an oddity. Usually dealers charge as much as they can to get every dollar they can out of a consumer. But this was a different experience. I was pleasantly surprised and even impressed with their communication to us. I can say that I would actually recommend Central Chevrolet service for those local to their dealership if you have any work that needs to be done to the mechanics of your vehicle.

Body work is a different story, but thank God we didn't need any of that this time ;) .

Stats:
NSLAMM: 0
NSA: 2
FTR: :( and :( .

12Apr/070

Legs are no match for a voting public

I suppose if American Idol has taught us anything it is that no matter how little clothes you wear, if you can't sing and you are not Sanjaya Malakar, you are more than likely going to get booted.

Haley Scarnato was the most recent cast off in this competition, even though her scantily clad rendition of 'Turn the beat around' highlighted her clear ability to perform when you think legs matter more than voice. If only she could sing better than she looks, she might have lasted longer in this competition. However, now that the striptease is over, things can get really interesting...

Who can possibly be the next to go? I am thinking Chris Richardson then Phil Stacey. After that I think Blake Lewis then Sanjaya Malakar leaving Jordin Sparks, Lakisha Jones and Melinda Doolittle as the last three standing. After that, it will be anyone's guess as those three women can belt it out better than anyone in this year's competition. Until then, let's just see if my predictions come close to the output.

Stats:
NSLAMM: 0
FTR: :( and :( .

Filed under: American Idol No Comments
11Apr/070

I wonder how it will pan out tonight?

Last night's American Idol performances were absolutely terrible. I think Latin music is a difficult undertaking for the contestants, and I think it showed last night.

I think the best performances of the night were Blake's, Phil's and Jordin's. I think Melinda and Lakisha we good, but they didn't stand out at all. I think Haley met her match, and even though she is showing off more and more skin every week, her singing actually stood out worse than her legs did good. I also think Chris may have walked his last AI line, proving that he is cute to the ladies, but his voice is not meant to sing like it was supposed to last night.

Overall, I think it could have been a better showing. But the class did OK. Since someone must go home, I am putting in my predictions for tonight's bottom three:

  • Haley Scarnato
  • Chris Richardson
  • Phil Stacey (I think he did good, but I think America may think otherwise)

Anyway, we'll see if I can redeem myself after last week's total collapse of my ability to predict the American Idol vote. Hopefully I will be closer. Or for that matter, maybe even proven totally wrong.

Stats:
NSLAMM: 1
FTR: :) and :( .

Filed under: American Idol No Comments
10Apr/070

Family post day

Today I thought I would post a little bit about my family. I haven't in a while, but thought today was as good as any.

The Gonzalez Family

From left to right, we have Adriannah, Dad (me), AJ, Rebekah, Mom, Alaynah (on mom's lap) and Sarah. We are, perhaps, the most unbelievably beautiful family ever known to have existed on this great planet.

Calamity and sensitivity
The other day my wife accidentally cut her finger while making dinner. Actually, she almost severed the tip of her thumb, but for now we will call it a cut (to the protect the innocent). This was no ordinary cut, mind you, having been dealt by the new set of AJ Henkels cutlery we received for Christmas. After a brief emergency response and some gauze, she was take care of and ready to continue mothering, though dinner was put on hold slightly while we responded to bandaging and application of first aid to the wound (I am a certified first responder and still hold my first aid and CPR certification).

After she was wrapped up and stabilized, I went about finishing up dinner. During this time, my youngest daughter, Alaynah, sat next to her mom and asked if she was OK. Mom said she was, and my daughter proceeded to pray for her mother. Without prompting or prodding. She just, out of the abundance of her heart, prayed for her mothers healing. Isn't that the most precious thing in the world?

A sweet tooth
Few things in this world come naturally to anyone. For me it is flatulence. For my daughter Adriannah, it is baking. She has been coming up with some of the most scrumptious desserts imaginable since she was about three years old. For the last year or so my wife has appeased her imagination and actually produced some of the things that my daughter has come up with. The other day, for Easter, Adrianna came up with this awesome cake that was absolutely stunning. I know it was Vanilla with blueberry filling and watermelon frosting. I know there is more as well, but I am nowhere near as capable as she is when it comes to listing these sorts of things. She is amazing in her ability to come up with baked desserts. I wish I could email you a slice of her creations.

And ear for piano
Not to be left out, I have to brag on my older daughters. Sarah and Rebekah have taken to the piano quite well over the last year or so. They have a great teacher (Mrs. Anne Fairbairn) and they get to practice quite a bit, but they are so good at picking up a tune and being able to play it. They are like their mother that way. She, and the daughters, have always been able to listen to a song and be able to play it fairly quickly. Whether it is classical, commercial, spiritual, guitar, piano, hum, etc, they have always been able to read a song based on the notes and be able to play it. That is utterly gnarly.

Anyway, I am done for now. Just thought I'd share that with you. I love my family. I hope you are loving on yours.

Stats:
NSLAMM: 0
NSA: 2
FTR: :( and :( .

9Apr/074

PHP: Browser/OS Tests

Here is a little PHP 5 class for snagging a users browser and OS. This comes from a post I put up on PHPDN...

< ?php
/**
 * User_Agent_Detector is used to gather information about the users browser
 * and operating system.
 *
 * This is not a flashy whiz-bang kind of class, but it works fairly well
 * if all you need is to fetch is the users browser and operating system.
 *
 * Usage:
 * <code>
 * The easiest way to use the class is to instantiate it:
 *      $uad = new User_Agent_Detector();
 * This will echo out a single line of text along the lines of:
 *         Browser: Mozilla Firefox 2.0.0 Operating System: Windows XP
 * To prevent the echo, pass a boolean false to the constructor
 *      $uad = new User_Agent_Detector(false);
 *
 * The class can also be instantiated and the browser and os fetched with:
 *      $browser = $uad->get_browser();
 *      $os = $uad->get_os();
 *
 * The browser and os can also be displayed by calling display()
 *      $uad->display('<p>', '</p>', '<br />');
 * The display() method takes three params: opentag, closetag, separator
 * 
 * @version 0.1
 * @package User_Agent_Detector
 * @copyright None
 * @license Creative Commons Attribution License 3.0 {@link http://creativecommons.org/licenses/by/3.0/}
 * @author Robert Gonzalez < robert@everah.com >
 * @author Dragan Dinic < dragan@dinke.net >
 */
class User_Agent_Detector
{
    /**
     * The users browser
     *
     * @var string
     * @access public
     */
    public $browser;
 
    /**
     * The users operating system
     *
     * @var string
     * @access public
     */
    public $os;
 
    /**
     * The users complete user agent identifier
     *
     * @var string
     * @access private
     */
    private $useragent;
 
    /**
     * Class constructor
     *
     * @author Robert Gonzalez < robert@everah.com >
     * @access public
     * @param boolean $echo True displays on construction
     */
    public function __construct($echo = true)
    {
        // Set the user agent
        $this->useragent = $this->set_useragent();
 
        // Set the rest of the vars
        $this->initialize();
 
        // Should we display immediately?
        if ($echo)
        {
            // If we were able to get the useragent render it
            if ($this->useragent !== false)
            {
                $this->display();
            }
            else // Otherwise puke
            {
                $this->error();
            }
        }
    }
 
    /**
     * Initialze all two of the class properties
     *
     * @author Robert Gonzalez < robert@everah.com >
     * @access private
     */
    private function initialize()
    {
        $this->set_browser();
        $this->set_os();
    }
 
    /**
     * Output what we know in a clean little outputter
     *
     * @author Robert Gonzalez < robert@everah.com >
     * @access public
     * @param string $opentag The HTML tag to use to open the string
     * @param string $closetag The HTML tag to use to close the string
     * @param string $separator The HTML tag to use to separate the browser from OS in the string
     * @return string A string displaying the users browser and OS
     */
    public function display($opentag = '', $closetag = '', $separator = ' ')
    {
        echo $opentag . 'Browser: ' . $this->browser . $separator . 'Operating System: ' . $this->os . $closetag;
    }
 
    /**
     * Output a generic error message
     *
     * @access private
     * @author Robert Gonzalez < robert@everah.com >
     * @return string A generic error message
     * @todo Maybe allow for custom error messaging - shouldn't be that hard to implement
     */
    private function error()
    {
        echo 'We were unable to detect your browser and operating system';
    }
 
    /**
     * Gets the users browser information
     *
     * @author Robert Gonzalez < robert@everah.com >
     * @access public
     * @return string The users browser
     */
    public function get_browser()
    {
        return $this->browser;
    }
 
    /**
     * Gets the users operating system
     *
     * @author Robert Gonzalez < robert@everah.com >
     * @access public
     * @return string The users operating system
     */
    public function get_os()
    {
        return $this->os;
    }
 
    /**
     * Sets the users complete user agent string
     *
     * @author Robert Gonzalez < robert@everah.com >
     * @access private
     * @return string The users user agent on success, boolean false on failure
     */
    private function set_useragent()
    {
        $useragent = null;
 
        if (isset($_SERVER['HTTP_USER_AGENT']))
        {
            $useragent = $_SERVER['HTTP_USER_AGENT'];
        }
        else
        {
            $useragent = getenv('HTTP_USER_AGENT');
        }
 
        return !is_null($useragent) ? $useragent : false;
    }
 
    /**
     * Get browsername and version
     *
     * @author Robert Gonzalez < robert@everah.com >
     * @access public
     */
    private function set_browser()
    {
        $this->browser = $this->get_browser_name();
    }
 
    /**
     * Get browsername and version
     *
     * @author Dragan Dinic < dragan@dinke.net >
     * @access private
     * @return string browser name and version or false if unrecognized
     */
    private function get_browser_name()
    {
        $useragent = $this->useragent;
 
        //check for most popular browsers first
        //unfortunately that's ie. We also ignore opera and netscape 8
        //because they sometimes send msie agent
        if (strpos($useragent, 'MSIE') !== false && strpos($useragent, 'Opera') === false && strpos($useragent, 'Netscape') === false)
        {
            //deal with IE
            if (preg_match('/MSIE ([0-9]{1}\.[0-9]{1,2})/', $useragent, $matches))
            {
                return 'Internet Explorer ' . $matches[1];
            }
        }
        elseif (strpos($useragent, 'Gecko'))
        {
            //deal with Gecko based
 
            //if firefox
            if (preg_match('/Firefox\/([0-9]{1}\.[0-9]{1}(\.[0-9])?)/', $useragent, $matches))
            {
                return 'Mozilla Firefox ' . $matches[1];
            }
 
            //if Netscape (based on gecko)
            if (preg_match('/Netscape\/([0-9]{1}\.[0-9]{1}(\.[0-9])?)/', $useragent, $matches))
            {
                return 'Netscape ' . $matches[1];
            }
 
            //if Safari (based on gecko)
            if (preg_match('/Safari\/([0-9]{2,3}(\.[0-9])?)/', $useragent, $matches))
            {
                return 'Safari ' . $matches[1];
            }
 
            //if Galeon (based on gecko)
            if (preg_match('/Galeon\/([0-9]{1}\.[0-9]{1}(\.[0-9])?)/', $useragent, $matches))
            {
                return 'Galeon ' . $matches[1];
            }
 
            //if Konqueror (based on gecko)
            if (preg_match('/Konqueror\/([0-9]{1}\.[0-9]{1}(\.[0-9])?)/', $useragent, $matches))
            {
                return 'Konqueror ' . $matches[1];
            }       
 
            //no specific Gecko found
            //return generic Gecko
            return 'Gecko based';                   
        }
        elseif (strpos($useragent, 'Opera') !== false)
        {
            //deal with Opera
            if (preg_match('/Opera[\/ ]([0-9]{1}\.[0-9]{1}([0-9])?)/', $useragent, $matches))
            {
                return 'Opera ' . $matches[1];
            }
        }
        elseif (strpos($useragent, 'Lynx') !== false)
        {
            //deal with Lynx           
            if (preg_match('/Lynx\/([0-9]{1}\.[0-9]{1}(\.[0-9])?)/', $useragent, $matches))
            {
                return 'Lynx ' . $matches[1];
            }
        }
        elseif (strpos($useragent, 'Netscape') !== false)
        {
            //NN8 with IE string
            if (preg_match('/Netscape\/([0-9]{1}\.[0-9]{1}(\.[0-9])?)/', $useragent, $matches))
            {
                return 'Netscape ' . $matches[1];
            }
        }
        else
        {
            //unrecognized, this should be less than 1% of browsers (not counting bots like google etc)!
            return false;
        }
    }
 
    /**
     * Sets the OS property
     *
     * @author Robert Gonzalez < robert@everah.com >
     * @access private
     */
    private function set_os()
    {
        $this->os = $this->get_os_name();
    }
 
    /**
     * Get browsername and version
     *
     * @author Dragan Dinic < dragan@dinke.net >
     * @access private
     * @param string user agent   
     * @return string os name and version or false in unrecognized os
     */
    private function get_os_name()
    {       
        $useragent = strtolower($this->useragent);
 
        //check for (aaargh) most popular first       
        //winxp
        if (strpos($useragent, 'windows nt 5.1') !== false)
        {
            return 'Windows XP';           
        }
        elseif (strpos($useragent, 'windows 98') !== false)
        {
            return 'Windows 98';
        }
        elseif (strpos($useragent, 'windows nt 5.0') !== false)
        {
            return 'Windows 2000';
        }
        elseif (strpos($useragent, 'windows nt 5.2') !== false)
        {
            return 'Windows 2003 server';
        }
        elseif (strpos($useragent, 'windows nt 6.0') !== false)
        {
            return 'Windows Vista';
        }
        elseif (strpos($useragent, 'windows nt') !== false)
        {
            return 'Windows NT';
        }
        elseif (strpos($useragent, 'win 9x 4.90') !== false && strpos($useragent, 'win me'))
        {
            return 'Windows ME';
        }
        elseif (strpos($useragent, 'win ce') !== false)
        {
            return 'Windows CE';
        }
        elseif (strpos($useragent, 'win 9x 4.90') !== false)
        {
            return 'Windows ME';
        }
        elseif (strpos($useragent, 'mac os x') !== false)
        {
            return 'Mac OS X';
        }
        elseif (strpos($useragent, 'macintosh') !== false)
        {
            return 'Macintosh';
        }
        elseif (strpos($useragent, 'linux') !== false)
        {
            return 'Linux';
        }
        elseif (strpos($useragent, 'freebsd') !== false)
        {
            return 'Free BSD';
        }
        elseif (strpos($useragent, 'symbian') !== false)
        {
            return 'Symbian';
        }
        else
        {
            return false;
        }
    }
}
 
$stats = new User_Agent_Detector(false);
echo $stats->browser . ' Is the browser as discovered by the class.<br />';
echo $stats->os . ' Is the os as discovered by the class.<br /><br />';
$stats->display('<p>', '</p>', '<br />');
?>

Stats:
NSLAMM: 0
FTR: :( and :( .

Filed under: PHP 4 Comments