Personal

Alec’s birth story

Kiara has written about Alec’s birth.

Uncategorized

It’s a boy! Welcome, Alec.

Alec Friday, 11:37 p.m. Kiara shakes me awake. “I keep wanting to wake you up to remind me to relax through the contraction, so I think they’re getting stronger.

“Let’s go have a baby.”

We arrived at the hospital sometime after midnight, and three hours later we welcomed Alec Matthew Buchanan into the world. 8 pounds, 10 ounces, 20.5 inches.

I won’t say much about the labor and birth right now except that it was amazing. And now there’s a new sleeping baby in the house.

Our heartfelt thanks to everyone who helped, especially our moms.

But right now, it occurs to me that Owen is going to be waking up in six hours and I’d best get to sleep myself.

Coffee

100 cups

Russell Beattie writes that Mike Rowehl is planning to drink 100 cups of coffee in 48 hours. People are concerned that this amount of caffeine will hurt him badly. I doubt it. 15 years and probably 40 pounds ago, I was regularly drinking 30-50 cups a day. I slept little, drank a lot. I do not say this to brag — a poorly planned camping trip led to a caffeine withdrawal that did hurt me badly; I saw the error of my ways and cut back. I’m just saying that Mr. Rowehl will most likely be fine.

And that the Death by Caffeine calculator is an odd thing to bring into the world.

Coffee

Disappointed in Dunn Bros.

I was in downtown Saint Paul the morning of New Years Eve and stopped by the Dunn Bros. in the Lawson Building to pick up whole bean coffee. I won’t make that mistake again.

With the exception of the the few years when I worked as a roaster, I have bought most of my coffee at a Dunn Bros. I have done so at least since the early nineties when I lived in Uptown a couple blocks away from their Lake Street store. Half the reason I started working at the Roastery was because I got to work with Marge McCabe, who roasted for Dunns and whose work I much admired.

Because each store roasts its own coffee, they give a strong impression that they value freshness. For coffee, this is essential: you don’t have long after it’s roasted before its flavor diminishes dramatically, which is why I recommend buying only what you can drink in a week, from a local roaster if possible. (If this is not possible, roast your own!) One of the factors leading to Dunn Bros. success is their stressing the value of fresh coffee, and of devising a process for ensuring that the coffee they roasted was for sale only for a few days: after that, it’s brewed.

You can imagine my surprise, then, when the coffee that I bought on Dec. 31 at the downtown store had been roasted ten days earlier. Stale! Unacceptable. I should have refused it at that point, but it was New Years Eve and I didn’t think I’d find anything else open for long. And it didn’t matter much, since I just resolved not to buy any more whole bean there again.

This is not typical of other stores that I frequent, but I fear that franchising has reduced quality. I’ll stick to the stores I know have some real turnover on the beans. Their Grand and Snelling store is good for that, and it’s not far from home.

Uncategorized

Head First HTML

A coworker picked up a copy of Head First HTML with CSS & XHTML. I’ve written before about how much I like the Head First series, and have raved to this coworker about all the Java books ever since I saw the first one. Solidly based in brain research and smart pedagogy, and just a damn fun good time, I can’t think of a better way to learn. He agreed but wasn’t interested in the Java. At last the HTML book was released, he bought it, and I stole a few minutes with it when he wasn’t looking.

I am impressed. First, it’s heavier than the others. Downright hefty. Why? Color. Full-color photos and illustrations, something that’s been missing from previous books in the series but that makes so much sense for a book whose aim is to grab your brain’s attention and make it think something like markup languages are important enough to remember.

It starts out with the basics, suitable for an absolute novice, As you might expect from the title, it does delve into XHTML & CSS, and in the way that a standards-oriented guy like me would hope for. I was very pleased to see that. Much as the depth of Head First Java might surprise you for an intro Java book, having you build threaded network applications before it’s through with you, Head First HTML is teaching CSS positioning by the end of the book. It really looks like if you want to know how to put together web pages, this is the book to start with. You’ll have to go elsewhere to learn much about JavaScript, Flash, etc.. This is a Good Thing: pleased as I am by what is covered, I’d hate to see the book try to do too much. Still, to use those well you need a solid foundation in (X)HTML and CSS; from what I’ve seen in a stolen two minutes, this book provides that.

Uncategorized

Not What We Thought

The word of the day was going to be prodromal labor. But it turned out to most likely be Braxton Hicks.

Two full days of Braxton Hicks.

Uncategorized

Web Developer Toolbar 1.0

Chris Pederick’s Web Developer Toolbar 1.0 has been released, with lots of new features and bugfixes. I find it so indispensible that I am floored when I see a web developer who doesn’t use it.

Uncategorized

Night Trains

We took Owen to see Night Trains at the Twin City Model Railroad Museum in Bandana Square. I’m not into trains, but this is amazing. They’ve built an enormous model of the Twin Cities that fills the room. For Night Trains they dim the room lights, light up the trains and show off their work. Everything is designed and built by hand from scratch. Many (all?) are modeled after real trains: one guy talked about building a train that a buddy of his had driven for years, complete with a miniature model of his friend inside. Owen loves it. Highly recommended.

Uncategorized

Tape to CD

I have to transfer a tape to CD — actually, to MP3 then to CD. Anyone have good ideas for how best to do this?

We have been playing Salman Rushdie’s Haroun and the Sea of Stories for Owen when he goes to bed at night. From the day he was born until about when he turned three, we played a National Geographic lullabies CD for him, both for his afternoon nap and at his bedtime (yes, Garrick, that’s why I thought you might like it). He started to resist the CD at naptime, though, (“No! I’m not tired!”) so we switched to Haroun. It’s a wonderful story. We used to keep several extra copies on hand just to give away. The audio version is actually read by Salman Rushdie, and Owen loves it. But it doesn’t seem to be available on CD, which I would prefer because then we could avoid the loud “clunk” of the tape stopping that wakes the boy up when he’s almost asleep. Plus, eventually it’s just going to wear out and I’d like an archival copy.

Uncategorized

Blogroll Updates and Ruby

If you visit this site in a browser instead of reading the RSS feed, as very few of you do, you’ve probably noticed the out-of-hand blogroll over there in the sidebar. I build that using a Perl script that periodically grabs my Bloglines OPML file and converts it to a static HTML file that gets included when this page is generated. For a long time, I was doing some really fragile XML parsing in the conversion. When I started using subcategories and the OPML changed, the parsing broke and the blogroll was incomplete. I knew it was coming, but rats!

I’d intended to use XPath for a long time, but never quite got around to setting it up. It’s not as if XML::XPath is a difficult module to use — Matt Sergeant knows his stuff and has done wonders for using XML in Perl — but somehow other things took priority over figuring out how to go about this.

Then I started learning Ruby. The XML library that ships as part of the Ruby Standard Library looked easy to use, so my very first attempt at writing something in Ruby tackled the problem I’d been avoiding:

require 'rexml/document'
require 'rexml/text'
require 'uri'
include REXML

xml = Document.new(File.open("blogroll.opml"))
links = {}
xml.elements.each("//outline") do |o|
 htmlUrl = o.attributes['htmlUrl']
 unless (htmlUrl.nil? || htmlUrl.empty? )
  links[ o.attributes['title'] ] = htmlUrl
 end
end

links.sort.each do |title,url|
 puts "<li>
  <a href=\"#{ Text.normalize( URI.escape(url) ) }\">
  #{ Text.normalize(title) }
  </a></li>"
end

I’m sure it could be improved in any number of ways, but it worked! And writing it just felt natural. Unfortunately, my web host has an older version of Ruby without REXML. I could probably route around that, but now that I’d written the code I knew the way forward with Perl. A few minutes later, I’d updated the script and was in business.

This is why I like the idea of learning at least one new language a year: I’m exposed to new ways of thinking about a problem, or am inspired to work on something I might otherwise avoid.

But something else is happening, too. I use several languages, but have long felt most at home in Perl. That’s beginning to change. Writing Ruby code feels right, it fits how I want to write code. Maybe some of that’s just the heady rush of a love affair. Certainly some of it is an extension of a approach to programming that I first discovered in Perl and that makes both Ruby and JavaScript fun to work with. (More on that later.) It’s not important, really: I’m having fun. That’s enough.

« Prev - Next »