It’s almost impossible for me to believe, but Claire’s now one thousand days old.
In that time, she’s transformed our lives in countless ways, amazed us at every turn, and given me a whole new perspective on the world. It’s been simply astounding to watch her develop into her own beautiful little person, by turns loving, funny, and fierce.
When she first arrived and became our focus, the most important rule we had was that any day that ends with all of us still alive was a victory.
So here’s to a thousand consecutive victories… and hopefully many, many more to come.
children, claire, life
The kiddo has had a pretty strong musical interest for a while now, but in the last week or so she’s gotten really excited by my Rock Band controllers, which have been hanging out in the corner of the family room, right where they’re easy for her to get at if she wanted to. I’m content (thrilled, in fact!) to have her noodling around with my original Rock Band 1 controller (of the woefully busted whammy bar), but I’d like to keep my pair of RB2 controllers in good shape for as long as possible.
So, off we went to Guitar Center to pick up a couple of guitar hooks to hang the controllers on the wall, safely out of reach from curious little hands.
I’m not sure if I’m more embarrassed by buying guitar hooks for my fake guitars, or by the fact that we’d worked up an elaborate tale of how I’d recently inherited a (fictional) ukulele collection (to explain my concerns about whether the hook would be narrow enough to hold the guitar head). Sadly, no questions were asked about my purchase, so we never got to try out the story.
So, here you go–photographic evidence that I am, in fact, pretty much a total dork. Enjoy.
children, claire, geekery, music, retail-therapy, video-games
The thing about being a relatively new parent is that life very quickly becomes a complete blur, and after a certain point you’ve no sense of what day it is, let alone how many weeks old your little bundle of joy is. This makes life tricky, since there are certain milestone weeks that are usually the harbingers of sudden shifts into higher levels of fussiness and sleep regression.
So what’s a frazzled dad to do?
Well, I do have Python, and I seem to have Google Reader open an awful lot, and cron jobs are a lot better at remembering to do things than I am… So here’s my fifteen-minute solution that I whipped up the other week in between putting Claire down for her morning nap and getting ready for work. (File names and URLs have been changed to protect the innocent.)
#!/usr/bin/env python
import datetime
from dateutil.rrule import rrule, DAILY, WEEKLY, MONTHLY
import PyRSS2Gen as RSS2
# You'll want to change all of these values, obviously...
KID_NAME = u'Claire'
BIRTHDAY = datetime.datetime(2007, 9, 10, 21, 57)
FEED_URL = 'http://yoursite/kids_age.xml'
FILENAME = 'your_path/kids_age.xml'
def periods_between(freq, start_date, end_date):
rr = rrule(freq, dtstart=start_date)
periods = len(rr.between(start_date, end_date))
return periods
def format_entry_body(months, weeks, days):
body = """<h1>Today, %(kid_name)s Is...</h1>
<ul>
<li>%(months)s months</li>
<li>%(weeks)s weeks</li>
<li>%(days)s days</li>;
</ul>
<p>They grow up so fast!</p>"""
kid_name = KID_NAME # so we can cheat with locals()
return body % locals()
def make_rss(body):
now = datetime.datetime.now()
# Add a hash component to the item link so that the RSS reader
# will recognize this as today's new entry...
item_url = FEED_URL+'#'+now.strftime('%Y%m%d')
rss = RSS2.RSS2(
title=u"How Old Is %s?" % KID_NAME,
link=FEED_URL,
description=u"How old is %s in months, weeks, and days" \
% KID_NAME,
lastBuildDate=now,
items = [
RSS2.RSSItem(
title=u"How old is %s today?" % KID_NAME,
link=item_url,
description=body,
guid=RSS2.Guid(item_url),
pubDate=now,
)
]
)
return rss
def to_xml(rss):
xml = rss.to_xml()
# Make our xml at least a tiny bit human-readable
xml = xml.replace('><', '>\n<')
return xml
def main():
now = datetime.datetime.now()
months = periods_between(MONTHLY, BIRTHDAY, now)
weeks = periods_between(WEEKLY, BIRTHDAY, now)
days = periods_between(DAILY, BIRTHDAY, now)
body = format_entry_body(months, weeks, days)
rss = make_rss(body)
xml = to_xml(rss)
f = open(FILENAME, 'w')
f.write(xml)
f.close()
if __name__ == '__main__':
main()
You will, of course, have to install dateutil (via easy_install) and PyRSS2Gen (the old-school tarball way) so that they can do the heavy lifting for you.
Then all that’s left is to cron it to run daily, and point your favorite RSS reader at the feed. Voila! You’re on top of exactly how old your kid is, and quickly on your way to becoming Parent of the Year.
children, claire, geekery, python
11:49 PM. From down the hall, an ominous THUMP…. THUMP…. THUMP… The sound of Claire kicking her legs against the mattress like some kind of imprisoned mermaid.
Me: Drums… Drums in the deep…
Liz: You know, that’s what I think every time she does that.
Me: Damn, I love you.
children, claire, humor, liz, lord-of-the-rings
I was really looking forward to writing some more about our “first Christmas” experiences, or of our post-Christmas road trip to Chicago for a Boyd-side reunion of sorts, or Liz’s 30th birthday festivities (oh, the wine!), the exciting new year to come, but instead I’ve been absolutely annihilated by some sort of mutant cold virus that’s busy devastating our house.
I’m sick. Liz is sick. Worst of all, Claire is sick.
Normally I’m content to lie in bed and feel awful until I’ve kicked whatever I’ve come down with, but when the baby is sick, that hide-in-the-covers-and-pretend-to-be-dead time evaporates. She wants hands-on attention whenever she’s awake, won’t sleep for more than an hour at a time, and largely refuses to sleep if she’s not being rocked to sleep in one’s arms. It’s hard to get healthy when you’re trying to be a good parent, and hard to be a good parent if you aren’t healthy enough to stand up.
So it’s a tricky game around here, and not a lot of fun. Hopefully 2008 starts to improve soon…
children, claire, health
As the Christmas Day festivities wound down and we settled into a quiet afternoon together, Liz asked me a question:
“Did you get what you wanted for Christmas?”
My thoughts flickered quickly across the warm and happy morning spent with my beautiful wife and daughter, singing songs, opening presents, cooking breakfast together, playing with the cats. The smiles on the faces of my two favorite ladies. Savoring old memories and making new ones. Being a family.
“Yeah,” I said. “I did.”
- Mood:happy
- Music:In The Nursery – “When I Write To You”
children, christmas, claire, family, holidays, life, liz, nostalgia
Phew! It’s been crazy busy the past couple of weeks. I can’t believe I haven’t had time to come up for (blog) air since before Halloween.
First of all, I’m happy to announce that after a lot of extra work on the weekends and evenings to get things wrapped up, AG’s new custom photo card service is now live and ready to help you with your holiday card needs! I’m honestly very impressed with the product–the card designs are great, and they look fantastic on the high-quality paper they’re printed on. Since I’m not AG’s usual target demographic, it’s rare for me to be this wowed by what we put together, but these are cards I’d want to buy and send. So, major congrats to everyone on my team and who’s helped to bring this to life!
Claire’s had her first cold, which has thrown the sleep schedule off a little bit during the day, but she’s still sleeping through the night like a champ. She’s graduated to a new size of diaper, and progressing happily (she’s gained almost 40% of her birth weight already!). She’s recently discovered that her legs are stronger than she thought; she really enjoys standing up while I steady her torso. And there are several more great photos over at my Flickr stream (again protected for her privacy).
It’s hard to believe, but our anniversary’s come around again already; it’ll be seven years tomorrow. We’ll celebrate with Champagne and caviar and a nice relaxing dinner in. Marriage has been quite an adventure so far, and it’s just getting more interesting as it continues… One thing that’s abundantly clear is that sharing my life with Liz has simply been the best.
Off to check on Claire–it’s time to eat and play again!
- Mood:relieved
- Music:Djamel Allam – “Nezha”
children, claire, geekery, life, liz, marriage, work
Between work and Claire, life has been too busy to blog lately. In the office, it’s crunch time again, which means weird hours and sometimes some weekend heroics; at home, we’ve had some rough going with the whole getting-Claire-to-sleep thing.
So we’re giving up on the “let the baby figure out when to be asleep and when to be awake” strategy and are putting her onto a firm schedule. Liz picked up Good Night, Sleep Tight from the library, which we used to draw up a rough sleep/wake schedule and a bedtime routine. We had to miss what looks to have been an awesome party last night (alas!), but so far the schedule is working out great, and will probably help us get back to being social sooner. Mom and Dad are finally getting enough rest to feel human, and Claire’s demeanor is already greatly improved. We also decided that she’s old enough to start sleeping in her crib instead of the bassinet in our bedroom, and she’s sleeping like a champ in her new digs. Hooray!
This has allowed me to discover two-hour chunks of time to Get Stuff Done that I hadn’t previously had, so I’ve finally made progress on a bunch of personal projects that were falling by the wayside. I finally upgraded Drinkable Grape to the latest version of Wordpress, registered a domain name for a personal project (hooray for Bust a Name, a very cool way to find available domains), and decommissioned our personal WebDAV app in favor of using Spanning Sync to share our calendars with each other. I’ve also uploaded some more Claire photos (restricted again to friends and family-only access).
I’ve been doing the personal unit test thing for just over three weeks now. I’ve been using a Google Docs spreadsheet to track my results for each day; it works, but it isn’t perfect. I like that I have access to it from any computer (good) but dislike how laggy it is, and the charting options aren’t quite doing it for me. So while I need to find a better system for tracking my data, overall I like the process; I like seeing the things that need work, and I love seeing and tracking measurable improvements. The net effect of succeeding at lots of little goals feels pretty good.
- Mood:accomplished
- Music:Reruns of “Galactica Watercooler”
children, claire, geekery, life
Huzzah! Our little munchkin is so eager for milk that she doesn’t care where she gets it. She’ll even accept a bottle from her dad! Yep, our first experiment with me feeding Claire from a bottle went smashingly, my little angel gulping away happily in my arms, with nary a complaint–except a loud peep at the end to demand more. I’m excited because, even though it means my baby maintenance duties expand a bit, it means that feeding has become a team sport, and that I can assuage a lot of my pent-up guilt at not being able to really help out when the kid’s looking for a meal.
Hopefully this continues to go smoothly… It’s nice, after the past few nights have been so rough and sleepless, to have a little victory.
children, claire, life
O’Reilly should totally make board books.
Suggested titles:
- The Very Hungry Regular Expression
- Goodnight Ruby
- The Ugly Duckling’s Guide to Perl
- Brown Bear, Brown Bear, What Do You C++?
- The Tale of Peter Python
Hmm. I could be on to something…
books, children, geekery, thoughts