Thursday, February 3, 2011

Kids and To-do lists

I watched my sister Michele's kids last Sunday afternoon. My nieces took to the idea of a to-do list for the visit when I suggested it. Blake kind of came up with an implicit to-do list of play video games and read about video games on the web.

Here's Taylor's list:
  • Paint
  • Play Rock Band 1 (because we haven't played that one in a really long time)
  • Bounce on the ball (a big red exercise ball)
  • Play chess
  • Practice Karate kicks and chops
Lauren's:
  • Eat candy cane
  • Color pictures
  • Help Eric do chores
  • Play Lego Rock Band
  • Eat rest of candy cane (added after she decided she wouldn't eat the candy cane all at once)
  • Eat fancy chocolate now (as in, before lunch and not for desert)
  • Eat lunch
  • Do Karate punches
  • Bounce on ball (the ball was popular)
  • Help Ma do chores
Regan's
  • Help Eric do chores
  • Color pictures for Ma
  • Draw weird pictures
  • Eat lunch
  • Do Karate kicks
  • Do Karate punches (she scared Lauren & Taylor with her kicks & punches)
  • Play Lego Rock Band
  • Eat fancy chocolate for desert
  • Bounce on big red ball (I told you the ball was popular)
  • Help Ma do chores
There are some interesting differences. Taylor's list was the shortest, and she was the least interested in keeping the list up to date. For example, she did paint a picture of her suffed dog Mojo, but didn't mark that item off her list.

Regan was most concerned with accuracy. For example, she didn't mark off Rock Band even though we decided we didn't have time for it.

Lauren on the other hand was most concerned with making sure everything was scratched off the list. To this end she, marked off Rock Band once we decided we didn't have time to play, marked off Help ma with chores when she left my house, and marked eat lunch when I started cooking it.

One thing I thought was interesting was how Lauren and Regan mixed fun with work on their lists. Arguably, Taylor's list and Blake's implied list are nothing but fun. I don't think most adults would approach their to do lists that way, but maybe we should. To that end, my list for the weekend will include the following:
  • Do taxes
  • Watch Superbowl

Sunday, December 5, 2010

Time is a funny thing.

Yesterday, Lauren and Taylor turned 7. When they were born, I was working in Jacksonville at Blue cross. I didn't get to see them until Christmas, and I had never seen babies so tiny. They were both probably in the 4, maybe 5 pound range.

I like to tell this story, but my co-workers in Jacksonville wanted to see pictures of the twins. I had one with Michele, Suzanne, and Caroline all in the picture with Lauren and Taylor. One asked which of my sisters was the mother. Ironically, I think that was probably another Lauren Elizabeth who asked that question. Another, Robbin Thomas, didn't let me answer, she said, "Oh that's easy. She's the one who looks tired." (I wish I had a digital version of that photo to attach.) All that would have been December of 2003 and the first week of January 2004.

When I moved back to Louisville in 2007, the twins would have just turned 3. In that time, I would have left Blue Cross to take a job at another company, been laid off from that job, and found a job in Louisville so that I could move back home. Also, when I moved back home, Regan was 5, and Blake was 7, the same age the twins are now. Furthermore, Karina, Ethan, and Abby had yet to be born.

Oh well, I guess that's enough musing on time for now.

Sunday, November 21, 2010

Transcript of a saved message on my phone

Michele) Say it's Taylor.
Taylor) Uncle Eric, it's Taylor
Taylor) It's TAY-lor!
Michele) Is he there?
Michele) Are you talking to him?
Mom) Are you talking to Uncle Eric?
Michele) Hello
Michele) Hello
Michele) You might have gotten his answering machine.

I love this! I have to make sure I don't delete it accidentally.

Wednesday, September 22, 2010

Regan the Storyteller

Once upon a time, there were pigs who said: “Oink, oink.” They had names. The first little pig was called Taylor, the second one was called Lauren, and the third one was Regan. One day their mother sent them out to build their own houses. The first pig, Taylor, made her house out of straw. The second pig, Lauren, made her house out of sticks. The third pig, Regan, made her house out of bricks.


One morning the big bad wolf came to town. He was looking for pigs to eat, and he came to the first little pig’s house. He said, “Little pig, little pig, won’t you let me come in?”


And the pig said, “Not by the hair of my chinny chin chin.”


Then the wolf said, “I’ll huff and I’ll puff and I will blow your house in.” Then Taylor’s house blew down because it was made of straw. She ran to the second pig’s house.


The big bad wolf came and said, “Little pigs, little pigs, won’t you let me come in?”


Then Lauren and Taylor said, “Not by the hair of our chinny chin chins.”


Then the big bad wolf said, “I’ll huff and I’ll puff and I’ll blow your house in.”


Lauren’s house was made out of sticks, so the big bad wolf huffed and puffed and blew the house in. Lauren and Taylor ran to the third pig’s house.


Regan told Lauren and Taylor to come in when they got there.


Then the big bad wolf showed up. He said, “Little pigs, little pigs, won’t you let me come in?”


“Not by the hair of our chinny chin chins.” The three pigs said.


The big bad wolf said, “Then I’ll huff and I’ll puff and I’ll blow your house in.”


He huffed and he puffed but he couldn’t blow the house made of bricks in. He had to come up with another plan to get in. He climbed up on the roof and tried to go down the chimney, but the pigs heard a noise.


The big bad wolf did not know that they put a big pot under the chimney, there was water in the pot, and a fire was burning under the pot. When the big bad wolf got in the house he landed in the pot. Then he flew out of the pot, and his tail was burnt.


The big bad wolf had to go to the Dr. Wolf. Then another wolf was making a robot wolf, and it said, “Little pigs, little pigs, tomorrow lets go to the apple tree to pick some apples.” It was just what the new wolf wanted his robot wolf to say.


The new wolf told the little pigs let’s go at eight AM to the apple tree. The pigs got up early, and they went to the apple tree and picked some apples. Then they went back home. A while later the new wolf showed up at Regan’s brick house to get the pigs to pick apples with him.


The pigs said, “We already picked some apples.”


Then the new wolf said, “What! How could you do that so fast?”


The robot wolf tried to punch down the brick wall, but it was too strong and the robot wolf fell apart. The robot wolf looked at the wall before he fell apart and said, “How did a pig make such a strong wall?” Then he fell completely apart.


The new wolf was upset that his robot fell apart.


The End


I found this on one of my USB drives while I was trying to free up space on it. It ends kind of abruptly, but I love the inclusion of the robot in what started out as a traditional Three Little Pigs Story.

Tuesday, September 21, 2010

WoW vs Other Computer RPGs

This is the second time this has happened to me. I'm currently playing Dragon Age Origins, and it's making me want to start playing World of Warcraft again. The sad thing is, it's not the multi-player aspect that makes me want to jump back in, it's the loot. The other time this happened was with Dungeon Siege. That one did make me jump back into the WoW world.

Ironically, it's the non-linear nature of Dragon Age that makes me frustrated with the loot you find. There are 7 tiers of material in the game. For the first 2/3 of the game, finding a weapon made out of the 6th tier material would be a big deal. Shops don't carry them, so for the most part you have to get them as quest items. That's fine. The problem is, late in the game, hired goons are running around armed with gobs of them. It's absurd. Another problem is that a tier 1 item with a +2 bonus to armor well might be more protective than stuff made out of the top end materials, yet I don't find the good stuff with the same sort of bonuses. It just feels wrong to have your max level character wearing unfinished light leather gloves because they provide better protection than massive dragon bone gauntlets.

Which gets me to another issue, the strength based requirement to wear different quality levels of armor is very annoying. WoW has a game mechanic that lets you wear anything you get as a reward for a quest. Sure, you might need to enlist some aid to finish a difficult quest, but once you're done you can automatically use your reward. What kind of game design is it to give a quest item that the player won't be able to wear until they level up 4 times? I also dislike the design decision to make the very best items in the game expensive shop items instead of quest rewards. I don't even want to talk about the economics of this game.

A large part of the fun of computer RPGs is decking your character out in increasingly better gear. Each item might only make a tiny difference, but those tiny differences add up by the time you've replaced every single item your character is using. It's a design mistake not to allow the player several opportunities to upgrade gear over the course of a game.

The long lifespan of a MMORPG is going to give the programmers far more time and resources to polish the mechanics of their game than the developers of a stand alone game will ever have. However they need to at least make them smooth enough so that when someone decides to play one, it doesn't drive them away from single player games back into the multi player ones.

Now from my post, you might think I didn't enjoy Dragon Age. That's actually far from the case. I love the game. I'm nearly done with my second play through. The story is awesome, but some of the mechanics and design decisions have made me want to play WoW again.

Saturday, August 14, 2010

Visual C++ and Googletest

This post will probably only be of interest to Chip, but I'm writing it anyway.

  • First step was to download my software packages. I got visual C++ 2010 from http://www.microsoft.com/express/Windows/. Then I got the version 1.5 zip of Googletest from http://code.google.com/p/googletest/downloads/list.
  • Visual C++ installed without a hitch, although there is a mandatory reboot required by the install. Googletest doesn't even require an install, you just unzip the package and stick it somewhere.
  • Looking for a pattern to follow, I found http://www.freshclickmedia.com/blog/2009/10/getting-started-with-googletest-the-google-c-testing-framework/. This is a short video, and being a video is both it's greatest strength and weakness. If you use it, you'll probably be rewinding a lot and cursing the inability to cut and paste. However, watching someone clicking on the interface is very useful. This really covers everything you need to get up and running, but you have to play close attention. I cost myself some time searching for files that were pointed out in the video by not rewinding far enough.
  • The fist step is to compile the vcpp version of Googletest. The google example was probably built as a vcpp 2008 project because my version told me I needed to convert the project. At first the conversion failed because the project was read-only. I figured that I had the original zip, so it wouldn't hurt to make these files read/write. After I did this the project built without any issues.
  • There are two "gotchas" I missed the first time through. The first is the runtime library. Multi-threaded debug and multi-threaded debug dll are not the same thing. There is a warning about linker errors if you get these wrong, but the warning in the video isn't really stern enough. The other is that the 2 libraries built when you compile Googletest ~\msvc\gtest\Debug where ~ is wherever you unzipped Googletest. This is the part where I didn't rewind far enough and had to hunt for these files.
  • I started a new console project. You need to add the two libraries, gtest_maind and gtestd to Configuration Properties | Linker | Input.
  • Next, under Configuration Properties | c/c++ | General, add the ~\googletest\include to Addition Include Directories.
  • Time for the second issue I ran into, I didn't set Configuration Properties | c/c++ | Code Generation to Multi-threaded Debug (/MTd). The default is Multi-threaded Debug DLL (/MDd) which is very similar looking, but not quite the same.
  • I've seen a few ways to include the tests. The one that seems the most intuitive to me is to set up a header file which declares a test class and has the constructor, destructor, SetUp, and TearDown methods. This creates a class which can be used as a test suite. The easiest way to get started is to paste in some boiler plate code from http://code.google.com/p/googletest/wiki/GoogleTestPrimer.
  • The actual tests go into a cpp file with the same name as the header. Here is a simple test set up by the TEST_F Macro: TEST_F (SimpleTest,DemoTest1) { ASSERT_EQ(1,1); }
  • Two lines of code go into the main function to cause the tests to run:
  • ::testing::InitGoogleTest(&argc, argv);
  • return RUN_ALL_TESTS();
  • One thing I like about this is that you just tell it to run all tests, you don't have to list each test suite you created. For my simple, just get it running, project, this doesn't matter, but for a large project, automatic inclusion seems like a very nice feature.
  • My first try was a complete loss because of the run time library mistake I made. My second try, I realized my mistake and I got to see the test results pop up at the end of my run.

Monday, August 9, 2010

Books I've Decided I Need to Read

After going through several lists of top 100 books, I decided that there are some things I need to read that I haven't. In no particular order.

  • Atlas Shrugged - Ayn Rand When I told someone at work about my lists, he had only two. This was one of them. I do remember from high school that the person who read this when we each picked a different book from a list enjoyed it.
  • Illusions - Richard Bach This was the other book that the guy from work would have put on his list. Atlas Shrugged would have probably ended up on my list without his recommendation; this would not have. (In fact, I wouldn't have even known about it.)
  • To Kill a Mockingbird - Harper Lee My English class never read this, but the people in the classes that did liked it. On the theory that high school students don't like anything I need to read this.
  • Catch-22 - Joseph Heller This book has spawned an English phrase and I think I'd like it for the irony contained within it.
  • The Catcher in the Rye - J. D. Salinger See the comments for To Kill a Mockingbird
  • Slaughterhouse Five - Kurt Vonnegut I thought I had read a Vonnegut short story or two, but when I checked on the Internet, the story I was thinking of was by a different author.
  • The Godfather - Mario Puzo My dad doesn't read many books, but my mom said he stayed up all night reading this one.
  • The Maltese Falcon - Dashiell Hammett I keep coming across the phrase "hard boiled" when I look for reasons to read this.
  • Kidnapped - Robert Lewis Stephenson I bought this thinking it would be good to read a classic. I need to make myself read it and decide if I was correct.
  • The Canterbury Tales - Geoffrey Chaucer I got this one from a pile that was otherwise headed to Half Price Books. This has some of the appeal of The Odyssey (although not nearly as old) in that people are still reading it many centuries after it was written.
  • Le Morte de Arthur - Sir Thomas Malory I've read several versions of Arthurian legends, but I'm fairly certain that I haven't read this collection.
  • Adventures of Huckleberry Finn - Mark Twain This is mainly on the list because I feel the need to include a uniquely American writer.
In addition to books I have never read, I decided I need to re-read Hitchhiker's Guide to the Galaxy and A Wrinkle in Time while composing my book lists.