Northwest Bearcats - Division II National Champs
Nebraska Cornhuskers - Holiday Bowl Champs
Iowa State Cyclones - Insight Bowl Champs
It's been a great season.
Thursday, December 31, 2009
Wednesday, November 11, 2009
Veterans Day
A very thankful Veterans Day, from me and my family. A special gratitude, admiration, and respect for my brother, who is currently serving in Iraq. Here's to wrapping up a successful tour quickly and a safe return home.
Thursday, August 27, 2009
Unexpected SimpleDateFormat Behavior
Failing test case:
Argh.
SimpleDateFormat API Javadocs:
import static org.junit.Assert.*;
import java.text.*;
import org.junit.Test;
public class DateFormatTests {
@Test
public void testRequiredTwoDigitDay() {
DateFormat df = new SimpleDateFormat("yyyyMMdd");
df.setLenient(false);
try {
df.parse("2009081");
fail("Expected two-digit day");
} catch (ParseException e) {
e.printStackTrace();
}
}
}
Argh.
SimpleDateFormat API Javadocs:
For parsing, the number of pattern letters is ignored unless it's needed to separate two adjacent fields.Tricksy API javadocs. We hatessss it forever.
Labels:
programming
Java - Resolving NullPointerException
In Java, the NullPointerException (NPE) is generally a simple exception to resolve. In very basic terms, it means that one is trying to access a property or call a method on an object that does not exist. Read the error message to find the line where the NPE occurred. Examine that line to determine which reference is a likely candidate to be null. Dig a little deeper to find out why that reference is null and fix the application to either ensure the reference is not null or to handle the reference gracefully if it is null.
Labels:
programming
Tuesday, August 25, 2009
Upside down.
Total U.S. debt held by the public as of August, 2009: $7.3 trillion
Projected deficit for 2010: $1.5 trillion
Total value of all gold ever mined at $941/oz.: $4.8 trillion
Projected deficit for 2010: $1.5 trillion
Total value of all gold ever mined at $941/oz.: $4.8 trillion
Labels:
money
Monday, August 03, 2009
My Way: A Tribute To Frank Sinatra
I was lucky enough to be invited by a friend to perform in "My Way: A Tribute To Frank Sinatra" over this past weekend (7/31 - 8/1/2009). The performance was in Sioux City, IA. It was a great couple of nights; we played to around 1,300 people over the two shows and received standing ovations for both performances. During Friday's performance, we started to get some severe weather around intermission. Randy Peters, the artistic director and his crew moved the entire performance indoors; not a small task. The audience patiently waited for another full setup and sound check, and stuck with us through the second act. What a great group of folks!
The ensemble was as follows:
Sandy Henry (Vocalist)
Don Nelson (Bassist)
Stephen Morrow (Vocalist)
Brad Halbersma (Pianist)
Brenda Ashley (Vocalist)
Kimberly Bata (Percussionist)
Charlie Reese (Vocalist)
I've certainly gained an entirely new appreciation for Sinatra and his music. Among the ensemble pieces, I had several feature solos, including:
"I've Got The World On A String"
"Fly Me To The Moon"
"The Lady Is A Tramp"
"My Lean Baby"
"I've Got You Under My Skin"
"(Love Is) The Tender Trap"
"One For My Baby (And One More For The Road)"
"Summer Wind"
"That's Life"
A full list of the songs from the performance (58!)
And here is an online announcement from the local paper:
Sioux City Journal: Songs of Ol' Blue Eyes presented
I cannot thank the cast and crew enough for letting me be a part of this wonderful show!
The ensemble was as follows:
Sandy Henry (Vocalist)
Don Nelson (Bassist)
Stephen Morrow (Vocalist)
Brad Halbersma (Pianist)
Brenda Ashley (Vocalist)
Kimberly Bata (Percussionist)
Charlie Reese (Vocalist)
I've certainly gained an entirely new appreciation for Sinatra and his music. Among the ensemble pieces, I had several feature solos, including:
"I've Got The World On A String"
"Fly Me To The Moon"
"The Lady Is A Tramp"
"My Lean Baby"
"I've Got You Under My Skin"
"(Love Is) The Tender Trap"
"One For My Baby (And One More For The Road)"
"Summer Wind"
"That's Life"
A full list of the songs from the performance (58!)
And here is an online announcement from the local paper:
Sioux City Journal: Songs of Ol' Blue Eyes presented
I cannot thank the cast and crew enough for letting me be a part of this wonderful show!
Labels:
music
Monday, July 13, 2009
What's what about who's who
Once again, I've been "chosen as a potential candidate" by the Vanity Press. This time it's the "Biltmore Who's Who" folks. They salute me for my executive and professional accomplishments and, given my background, believe my profile would make a "fitting addition" to the Honors Edition of their publication.
That is, if I just fill out the response form to tell them where I work, what industry I'm in, and what my "personal specialty" is.
*snort*
That is, if I just fill out the response form to tell them where I work, what industry I'm in, and what my "personal specialty" is.
*snort*
Thursday, June 18, 2009
Holy Cow!
A dinner guest of mine was wearing a bright blue t-shirt with a stylized white portrait of Harry Caray.
My two-year-old daughter informed him, "I like your shirt."
He responded, "Oh, you know who this is?"
She answered, "Yeah. It's God."
My two-year-old daughter informed him, "I like your shirt."
He responded, "Oh, you know who this is?"
She answered, "Yeah. It's God."
Sunday, April 26, 2009
Netbeans 6.5 + Grails
I'm not pleased with the apparent behavior of NetBeans 6.5 when creating a new Grails domain class. I'm unable to create a domain class anywhere other than the default package; the dialog keeps asking for a "valid class name":
This name works fine for creating a Groovy class, just not a Grails domain class. So, why won't the Grails support allow it?
UPDATE (2009-05-08): This seems to be straightened out in NetBeans 6.7 (beta).
This name works fine for creating a Groovy class, just not a Grails domain class. So, why won't the Grails support allow it?
UPDATE (2009-05-08): This seems to be straightened out in NetBeans 6.7 (beta).
Labels:
geek,
programming
Tuesday, April 14, 2009
XPath Voodoo
I had a use case for Canoo Web Test to verify the value of a table cell. In an attempt to obtain the value using an XPath query, I used the following expression:
My test failed, reporting that this expression didn't return any value at all. I verified this was the correct path by looking at the XHTML source. It was only through inspecting the XHTML using the Firebug plugin for Firefox did I see a mystery <tbody> tag. I'm not sure at which point that gets injected, or even why. The injection appears to be a misinterpretation of XTHML 1.0 strict (the specified DOCTYPE). When I added the <tbody> tag to the XPath expression -- which I remind you is not in the XHTML source -- the test passed. Here is the working expression:
I haven't figured out what I'm missing, yet.
//form[@id='myFormName']/table/tr[2]/td[2]
My test failed, reporting that this expression didn't return any value at all. I verified this was the correct path by looking at the XHTML source. It was only through inspecting the XHTML using the Firebug plugin for Firefox did I see a mystery <tbody> tag. I'm not sure at which point that gets injected, or even why. The injection appears to be a misinterpretation of XTHML 1.0 strict (the specified DOCTYPE). When I added the <tbody> tag to the XPath expression -- which I remind you is not in the XHTML source -- the test passed. Here is the working expression:
//form[@id='myFormName']/table/tbody/tr[2]/td[2]
I haven't figured out what I'm missing, yet.
Labels:
programming
Thursday, April 02, 2009
Justice
Just today I saw the news that my friend's murderer was found guilty, with sentencing on the way.
I met Dewayne as an EVOC instructor and greatly enjoyed his company during the much-too-short time I got to spend with him. Dewayne's wonderfully affable disposition made him a joy to be around. He never seemed to be without a smile, but he was always ready to take care of business. Hard-working and friendly; Dewayne had these qualities in spades.
SGT Dewayne Graham was a great man, and I'm honored to have known him. I hope this verdict brings some small amount of comfort to his family, and I'm hopeful for swift and severe justice during sentencing.
UPDATE: On May 22, 2009, Dewayne's murderer was sentenced to death.
I met Dewayne as an EVOC instructor and greatly enjoyed his company during the much-too-short time I got to spend with him. Dewayne's wonderfully affable disposition made him a joy to be around. He never seemed to be without a smile, but he was always ready to take care of business. Hard-working and friendly; Dewayne had these qualities in spades.
SGT Dewayne Graham was a great man, and I'm honored to have known him. I hope this verdict brings some small amount of comfort to his family, and I'm hopeful for swift and severe justice during sentencing.
UPDATE: On May 22, 2009, Dewayne's murderer was sentenced to death.
Labels:
law enforcement
Tuesday, March 31, 2009
1,000 excuses
A good friend of mind said there were thousands of excuses to avoid exercising, but great reward in finding the reason to go ahead and exercise anyway.
Wise words that -- when followed -- always seem to make my day better.
Wise words that -- when followed -- always seem to make my day better.
Labels:
fitness
Monday, March 30, 2009
It's here!
I've started in on "The Definitive Guide to Grails, 2nd Edition," by Graeme Rocher and Jeff Brown, after having just received it via post today. The Groovy/Grails combo never ceases to amaze me. The first couple chapters (as far as I've read, yet) are a simple introduction to the Grails platform, which cover starting up a rudimentary CRUD web application, complete with dynamic scaffolding for a couple related domain classes.
I'm anxiously looking forward to digging into more detail as I'm familiar with the material so far. Slow and steady wins the race, however, and I don't want to risk missing any updated juicy tidbits by skipping ahead.
I'm anxiously looking forward to digging into more detail as I'm familiar with the material so far. Slow and steady wins the race, however, and I don't want to risk missing any updated juicy tidbits by skipping ahead.
Labels:
programming
Thursday, March 26, 2009
Estimation error
"There's no point in being exact about something if you don't even know what you're talking about."
-- John von Neumann, as quoted in "Software Estimation" by Steve McConnell
Labels:
programming
Software Estimation: Demystifying the Black Art
At work, I just received "Software Estimation: Demystifying the Black Art," by Steve McConnell. I found his book "Code Complete" to be enlightening and practical, so I'm looking forward to reading what McConnell has to say about the art and science of software estimating. I'll be comparing the text to another favorite of mine; "Agile Estimating and Planning," by Mike Cohn.
Labels:
programming
Monday, March 23, 2009
The Definitive Guide to Grails, Second Edition
I'm anxiously awaiting The Definitive Guide to Grails, Second Edition to arrive by mail. I've been playing around with this framework and never cease to be amazed. I understand that other "RAD" web frameworks like Django and Rails probably offer similar features, but Grails' foundation of Groovy is especially attractive to me.
I'll try my best to be patient until TDGG2E shows up.
I'll try my best to be patient until TDGG2E shows up.
Labels:
programming
Tuesday, March 17, 2009
Hardest. Puzzle. Ever.
A hundred prisoners are each locked in a room with three pirates, one of whom will walk the plank in the morning. Each prisoner has 10 bottles of wine, one of which has been poisoned; and each pirate has 12 coins, one of which is counterfeit and weighs either more or less than a genuine coin. In the room is a single switch, which the prisoner may either leave as it is, or flip. Before being led into the rooms, the prisoners are all made to wear either a red hat or a blue hat; they can see all the other prisoners' hats, but not their own. Meanwhile, a six-digit prime number of monkeys multiply until their digits reverse, then all have to get across a river using a canoe that can hold at most two monkeys at a time. But half the monkeys always lie and the other half always tell the truth. Given that the Nth prisoner knows that one of the monkeys doesn't know that a pirate doesn't know the product of two numbers between 1 and 100 without knowing that the N+1th prisoner has flipped the switch in his room or not after having determined which bottle of wine was poisoned and what colour his hat is, what is the solution to this puzzle?
Heh.
Labels:
geek
Thursday, March 12, 2009
Getting What You Want
"The indispensable first step to getting what you want is this: Decide what you want."
-- Ben Stein
Tuesday, March 10, 2009
This is soaring?
Yahoo!® Finance reports today that "Stocks Soar on Bank Rally." Not to rain on anyone's parade, but a 380-point bounce in the Dow after losing more than 50% of its market value since last October (a high of 14,093 to 6,547 yesterday) is not what I'd call "soaring," given the context.
Labels:
money
Monday, March 09, 2009
Sunday, March 08, 2009
Theory vs. Practice
"The difference between theory and practice is smaller in theory than in practice."
-- Unattributed
-- Unattributed
Labels:
programming
Thursday, March 05, 2009
Sunday, February 22, 2009
"Holidays The Healthy Way" Weight Loss Challenge
Recently at work, we had a "weight loss challenge" that started in early December and ran through February 13, 2009. With the expert help of my live-in chef and nutritionist (aka, Terri), I won the competition by a healthy margin. I started at ~208 pounds and finished the competition around 176, losing around 32 pounds (a little over 15% of my total body weight) in ten weeks. The big secret to my success was watching what I eat and exercising regularly. I know that's not a particularly revolutionary idea, but it's one many of us - that is, me - seem to struggle with. For the most part, however, once I paid close attention to what I ate and how much exercise I did week-to-week, the process managed itself.
The goal now is to keep working on converting fat to muscle and not fall back into bad habits. :)
The goal now is to keep working on converting fat to muscle and not fall back into bad habits. :)
Labels:
fitness
Subscribe to:
Posts (Atom)