Black Hat Jack, by Joe R. Lansdale

Joe R. Lansdale’s “Black Hat Jack” is an… interesting western about an African American Cowboy and his partner exploring the great west and getting into trouble with Native American Tribes. Black Hat Jack, by Joe R. Lansdale

I wouldn’t exactly recommend it to kids nor adults who are squeamish about rough language, but it’s a good tale.
The writing style reminded me a bit of Mel Brooks’ Blazing Saddles, a bit of Quentin Tarantino’s Django Unchained – take that as an indication of the language and attitudes of some of the characters – as rough as it seems genuine to the place and period.

The Lathe of Heaven, by Ursula K. Le Guin

A man comes to you, saying that some of his dreams come true. The Lathe Of Heaven, by Ursula  K. Le GuinNot in a “I dreamed I’d get a new car and the next day I won a sweepstakes” sort of way; he says that he’s actually changing the past, and that what we remember isn’t real. Or wasn’t real. Or something.

On the surface “The Lathe of Heaven,” by Ursula K. Le Guin, is an interesting short novel. Decent science fiction, and a fun read.
When you sit back and think about it, perhaps reading it again, you realize that there’s more depth to the novel, much more. It’s not as much about George, the dreaming man. The story is told from his point of view as he’s manipulated by his doctor, and it’s exploring the temptation we have to “play god” and attempt to change the world “for the better.”

Summer Reading

Flying Saucer at the Hyattsville Branch Library, Hayattsville MDAs a youngster I spent a whole bunch of time, especially during the summer, at the public library. Libraries, actually, plural – my mom would take me to several in the area though my favorite was always “the library with the flying saucer.” I’m pretty sure she even had a job there for a while; I seem to remember her showing me the switchboard she worked.

One great thing that Public libraries do every summer to encourage kids to read more is to host a Summer Reading Club. They weren’t really “clubs” per se, there were no meetings or anything like that, but it was a fun way to track how many books I read through the summer months. That’s probably at least partially what lead me, as an adult, to join Goodreads. Of course, there were incentives – prizes of about the Cracker-Jack box variety, but they were prizes – if you read at least some number of books or were the kid who read the most. Summer Reading ProgramOnce our children got reading on their own, my wife and I signed our sons up as well.

As an adult though you were pretty much out of luck until recently. Goodreads is great for tracking, and even has had a yearly reading challenge for the past several years.

Today I just learned that our friends at the Atlanta-Fulton Public Library (twitter: @AFPLS) have a treat for adults – a summer reading program just for us. Yup, the Adult Summer Reading Program! We get to sign up and then write a review for each of the books we read during the months of June and July… and there are prizes! There’s nothing about it that I can find about it on their website, and you’ve got to fill out forms using paper and pen for each book you read, but if you’re in the Atlanta area be sure to stop by your local branch and check it out.

Thank You, AFPLS


some of the books I’ve submitted:

Thunderbird, by Jack McDevitt

Thunderbird, by Jack McDermittA “stargate” type portal is found in North Dakota, opening to various worlds and… other places.

How far will we reach, who gets to explore, and how to handle the expected / anticipated / feared Contact With Others — those are a few of the questions explored in Jack McDermitt’s novel “Thunderbird.”

There were a few places where I found the story to be a bit disjointed, as we jump between different characters and situations pretty frequently. It also it felt as though I’d stepped into a story already in progress, as there was very little of the backstory of just how the portal was found (more on that later). Nonetheless, I enjoyed this book quite a bit.

It was especially good to see non-“traditional” treatment of Sioux and EuroAnglo characters working together without it being a big deal; the differences and conflicts that existed felt natural, organic and not overplayed. The federal government stayed out if things a bit more than believable, but hey that’s why they call it fiction :)

After reading this novel, as I was entering it into Goodreads (a site which I recommend for anyone who’s “serious” about tracking and/or sharing the books they read), I realized that this was actually the second in a series of books. “Thunderbird” is a sequel to “Ancient Shores,” wherein I suppose I’ll get the backstory I was looking for. You should probably start there.

A Good Morning

My wife and I had plans to see Avengers:Age of Ultron this morning; we’d had pre-purchased tickets at our local cinema, reserved seating and all.Captain America When we arrived, though, and were picking up our tickets, we changed our mind.

At the next window were a man and his little boy. The man was trying to buy two tickets, but all that was left were two seats apart from each other, both in the very front row. Same a the next showing a few hours later. And the showing after that. They turned away from the ticket window and started to walk away. The man was trying to explain, and the boy just kept asking “why do we have to find a different theater?”

Hilary and I looked at each other, knowing that all the other theaters would be just as sold out this weekend, and didn’t even have to say anything. We just turned to the man and gave him our tickets and told the boy to have fun.

It was the right thing to do. We can get tickets for another showing sometime. Besides, it’s what Captain America would have done.

NoxWe had a good morning anyway, without Cappy, Widow and the rest – we went home and got Nox, walked to the library and around the Alpharetta Farmer’s Market, had a good lunch in the sunshine and found a 15th Anniversary Geocache too.

It’s a beautiful day — in Georgia, anyway — get out and enjoy it!

Parts Is Parts – a Foray into 3D Printing

I broke the dishwasher.

To be more specific, I broke a couple parts of the dishwasher. broken dishwasher part
I put a few too many heavy pots & pans in and the rack fell off it’s track. The rack rolls in and out on these little wheels, and the wheels roll on little axles, and all of those are made of plastic, and after several years of use the plastic becomes brittle and breaks. This had happened a few years ago as well and I’d been able to buy new parts, but from what I can find it’s not possible to just buy the parts these days. The replacement parts people are willing to sell a whole new rack, but for the price they’re asking I could just about buy a whole new dishwasher. This is not what I wanted to do.

Fortunately for me, Scott Hanselman had just gotten himself into a new hobby about a month earlier, had written a blog post about it, and then had gotten together with others for a month-long project.

If you’re following me on Twitter, you’ve likely seen a few posts tagged with #marchIsForMakers. You can learn more about this at, but basically it’s a few folks encouraging us to get our hands busy with something other than typing — to actually build something and/or get our software interacting with the real world.

So how does this help me? Well, I realized that I could design the part I needed, then print my own. There are a few steps and some learning involved there, but it’s not that difficult and it’s certainly a lot less expensive than buying new parts.

It took me a few hours of tinkering around, similar to what Scott did here; it really wasn’t that difficult and it’s really pretty darn cool.

By the way, I’m fortunate enough to work as part of a great team of developers who had already bought a Wanhao Duplicator 3D Printer. That’s probably not your case, but you may have more access to a 3D printer than you think. First of all, check with your more technical friends — they’re getting relatively inexpensive and people are buying them every day. If none of your friends have one, that’s not a problem. There are companies buying printers and selling time on them; jump over to Google or Bing and search for 3D Printing Services in [your city].

I encourage you to take a look at the March is for Makers site. Watch a few of the videos there, read some of the articles they’re pointing to, and get your hands on some hardware. 3D printing’s not that hard. There are microcontrolers and tiny computers that you can build into robots and sensors you can program to let you know what’s going on in your house. There are plenty of ways to get started without spending a fortune, and it’s fun.

On Measurement

a coinI read this the other day, as part of a discussion about monies; in particular the fact that at one point in history not all currencies were divided into decimals, as the US Dollar is (ten pennies = one dime, ten dimes = one dollar). I believe it’s originally from Terry Pratchett’s book Good Omens:

“Two farthings = One Ha’penny. Two ha’pennies = One Penny. Three pennies = A Thrupenny Bit. Two Thrupences = A Sixpence. Two Sixpences = One Shilling, or Bob. Two Bob = A Florin. One Florin and one Sixpence = Half a Crown. Four Half Crowns = Ten Bob Note. Two Ten Bob Notes = One Pound (or 240 pennies). One Pound and One Shilling = One Guinea.

In the UK they resisted decimal currency for a long time because they thought that “100 pennies to 1 pound” was too complicated”

In comparison, I offer this:

Twelve inches = one foot. Three feet = One Yard. 1,760 yards (or 5,280 feet, or 63,360 inches) = One Mile.

Is “100 centimeters to 1 meter, 1000 meters to 1 kilometer” really too complicated for us in the U.S.?

What Time to Test?

I’ve been workng on a new feature with a few other devs, and we’re eager to get it done and into our master branch so that it can be deployed sooner than later. To that end, after dinner and some shopping last night, I picked up my laptop and thought I’d get a bit more work in while my wife was busy on a project of her own.

Since we’ve got multiple people on this branch, and multiple teams across the app, I try to always start off the same way: fetch from our ‘origin’ repo on github, merge in any changes to this branch, merge in any changes to master, then run all the unit tests. Since all our devs subscribe to the same philosophy of fixing failing tests quickly, any problems that come up are usually caused by something new, be it in the branch or someone else’s recent changes to master.

I was surprised, then, to find a failing test in a section of code that wasn’t new — how had that cropped up? I checked our CI server, and it showed the green on previous builds. How did this come to be?

I pointed it out to another dev on my team, as this was a section of code I wasn’t as familiar with, and he quickly realized what the problem was. We were fortunate enough to have found it purely because of timing — if we’d finished eating dinner more quickly, we may not have found it!

calendarIn our applications, all date/time values are stored in UTC. In one place in our backend code, where making a decision which course of action to take based on the number of days overdue a task was, a dev had accidentally used DateTime.Today.Date instead of DateTime.UtcNow.Date. During the day, no problem. In this case, I had happened to run the unit tests after midnight UTC but before midnight local time, and UTC’s “now”; was no longer our “today.” The app was trying to send a “30 days overdue” message when in reality the task was still only 29 days late.

Two lessons. The first, of course, is to have good unit tests that can be run easily, quickly, and often. The second — the one we learned last night — is that it might be a really good idea to be run at various times throughout the day, not just while people are in the office.

Shaken Awake

“If a homeless man froze to death on the steps of a church, what would it change?”

Shaken Awake

That’s the question being asked by my friend Allen in his new book, Shaken Awake. Allen uses real-life events that many of us here in the Atlanta area experienced just ten months ago to tell a tragic tale, one that – though this is a book of fiction – happens much too often not only in Atlanta but in cities all across our nation.

During my business travels, I’ve seen homeless on the streets of Austin, and Orlando. I’ve been approached with pleas of assistance in Washington and San Francisco. I’ve jogged through camps under bridges in Portland. And yes, here in Atlanta I’ve spoken with some of those living on the streets and have volunteered in night shelters.

Reading Allen’s book made me ask myself “is that enough, what else can we do – what else can I do?” I encourage you to get a copy and answer questions for yourself.

Shaken Awake will be available from Amazon and other retailers later this week, in the meantime keep an eye on

Update: Shaken Awake is now available for Kindle devices and software at Amazon.

Gorillas and Cows

At last night’s meetup of the Software Testing Club Atlanta, John Stevenson hosted a workshop on Creative and Critical Thinking. John had a lot of good information for us, had us play games, and fostered a lot of good discussion.

One of the discussions circled around the topics of information overload and Alan Page‘s favorite gorilla, Daniel Simons’ The Monkey Business Illusion. The two are almost opposite sides of the coin – how to deal with lots of information, and how to deal with seemingly-unrelated (and thus perhaps invisible) facts/events when I’m concentrating on something.

If you’ve never seen the gorilla video, watch it now.
If you have seen it, watch this version all the way through to the end.

I raised two points last night, and I’m interested in your thoughts on them.

1. “Information Overload,” though these days often attributed to the overwhelming quanity of “stuff” available on the Internet, is not really a new problem. When I was a young boy — long before the web and the overwhelming popularity of cat videos — I would walk into the public library and gaze up at row upon row of bookshelves. There was no way I could ever read them all. I could either become “overloaded” by the volume of information available, or I could choose a single book at a time. Digital information is no different, we “simply” need to discern what’s important to us.

2. While the gorilla and the illusion of attention are interesting, there are probably times when we just don’t care. If ours is a mission-critical job, and our paycheck — or someone’s life — depend on counting basketball passes then noticing the oddity in the scene is actually a bad thing. a cow For a concrete example, consider the cows the field. To the kids in the back seat they’re something interesting to notice, perhaps an unusual sight and fun to count. Mom who’s driving the car on a crowded highway should probably not notice the cows unless one is making a mad dash toward the road.

So what do you think? Join in the conversation in comments here or over on twitter.