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
.
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)
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.
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 dayLife lived long in the service of love
Pleasure to please at play
Though ending could bring a halt to joy
Today is not that dayWith ease tears flow in sorrow
With the passing by the way
There’ll come a day to cry for me
Today is not that dayMy Father called my presence high
And I could not delay
In peace to live eternal
Forever from that dayMy likeness clearly absent now
The price was small to pay
In giving all I’ve earned it all
There’s victory that dayGone before me in His time
Preparing my place to stay
In time I knew I’d get to go
That there would be that dayI’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
.
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
.
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
.
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.
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
.
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
.

