Teaching normal kids to code and nerds to be more socially savvy since 1997. Coding since 1985.

I am Graham Mitchell. I have taught Computer Science at Leander High School (near Austin, TX) since 1997.

Zed Shaw suggested that I write “Learn Java the Hard Way”, which was released in the summer of 2013; a second edition was released in April 2016. “Learn Object-Oriented Java the Hard Way” is a follow-up book that covers OOP and it was released on August 14, 2016.

the "latest" news

Sunday, 25 June 2017 [15:57 CDT]

Retiring the Blog for Now

I've had my own website since the fall of 1994. I kept a sort-of journal online starting in 1998 before the term "blog" was coined. I updated it pretty regularly through around 2008, but once I was married I didn't have the same need to tell strangers what was going on in my life.

And I've posted fewer than a dozen times in the last five years(!). So I'm going to update my front page to be more of a pointer to some of my other projects and officially put this "diary" on haitus for now.

Maybe I'll dust it off again in the future.

Sunday, 21 May 2017 [23:31 CDT]

The End of an Era

Some of you may have heard the rumor by now: it's true. I probably won't be teaching at Leander High School next year. I plan to take a break from teaching and work in the industry. I do love teaching and intend to return to it in five or ten years.

First, I have always wondered what it would be like to work in the tech industry, writing code professionally. Many high school CS teachers work in the industry first and "retire" to teach, but I started teaching straight out of college. I'd hate to wait too long and miss my chance.

I have been teaching for twenty years. There's never a good year to stop teaching because there are always students coming up who are going to be disappointed to have missed their chance to take your class. However, stopping on a round base-10 number seems nice.

I still very much enjoy teaching, and although it seems counter-intuitive I want to take a break while I'm still good at it. I don't want to be that crochety old teacher who hates students and should have retired years ago.

Finally, it would be nice to make more money. In particular, I'd like to make enough so that my wife doesn't have to work if she doesn't want to.

I still plan to stay in the Austin area. I have not already accepted a specific job, because I'm going to brush up on some hot technologies before starting interviews.

Know someone who wants to hire a pretty decent coder? Let me know. I know Java, Python, Javascript and HTML quite well.

Saturday, 17 September 2016 [18:57 CDT]

How I Teach Beginners

The start of the school year is always pretty busy, but I needed to pop my head up to make this post after some questions popped up on the AP Computer Science Teachers Facebook group about how to teach intro computer science in a self-paced way.

Well, that's what I've been doing with great success for the past six years! I finally wrote down everything, so here's my long-overdue essay:

I should note that this is not the course where the students take the AP exam. This is pre-AP Computer Science I; the students take the AP course after this one and what they do in that class is slightly different.

Sunday, 14 August 2016 [22:16 CDT]

Repeat Bidness

The day isn't over yet, but so far 83.8% of the people that bought my book were folks who had previously bought my first one.

You know you're doing something right when you get repeat customers like that.

Sunday, 14 August 2016 [05:59 CDT]

It's out! LOOJtHW is finally here!

I've been proof-reading and tweaking and polishing all week, but it's finally time to send my new baby into the world.

My “new book is over 300 pages of the same step-by-step understanding you know and love.

And I start back at school tomorrow! yay

Tuesday, 9 August 2016 [02:03 CDT]

Learn Object-Oriented Java the Hard Way

My new book, “Learn Object-Oriented Java the Hard Way”, will be released on Sunday, August 14!

Pre-order now!

Also, I have decided that my blog is terrible. Soak in the early-2000s design aesthetic while you can, because I'm going to do a major overhaul in the next few weeks.

Thursday, 4 August 2016 [23:53 CDT]

almost there

I started working on a sequel to Learn Java the Hard Way in July 2015. I wrote most of the code that would be the exercises that summer as well as drafts of the first dozen chapters or so.

Over Spring Break this year I wrote another half-dozen chapters. And this summer I wrote the rest.

So now I have 56 chapters, 290+ pages, 54000+ words, 114 Java files and roughly 3900 lines of code.

I am nearly done. Expect an announcement very soon.

Friday, 23 October 2015 [13:02 CDT]

least-favorite part

Do you want to know my least-favorite part of being a high school teacher? It's not the relatively low pay, the long hours, the grading, dealing with parents or anything.

Dress code.

School districts are always a bit conservative with rules of dress. When a student has parents that think the outfit is fine and so do her friends and it is more modest than what "some girls are wearing"....

But we can't not have standards. And we can't just not enforce the rules we have.

Tuesday, 21 April 2015 [09:14 CDT]

I finally got an invite to, and I took an afternoon to get all my various social profiles attached. So now you can find out my Reddit username, my Twitter handle, my bitcoin wallet and the like with relatively strong cryptographic certainty!

I should probably link those to my blog, too, but I probably shouldn't try to take on too much! Three blog posts a year is already pushing it....

Friday, 14 November 2014 [09:26 CST]

Do You Even Blog, Bro?

It's been over two years since I updated my blog! I guess I suck at engaging over social media. I used to have my Twitter feed on here, but it seems some update on Twitter's side broke that.

I think if I'm going to blog this infrequently, I need to redesign the landing page so it doesn't just look like an abandoned wasteland.

I am still alive and doing stuff though! I'm relatively busy teaching the new crop of 85 students how to code in my face-to-face public school classroom. And I'm answering the occasional question from one of the hundreds of people that have bought my book over the past year. (If you're one of them, thanks!)

I'll try to either start blogging more or redesign this puppy. You should follow me on Twitter if you care about mundane day-to-day stuff.

Thanks for putting up with me.

Thursday, 1 November 2012 [13:02 CDT]

Athlon to Phenom

Back in late August, I bought a new processor for my home computer. My motherboard is from 2008, but it was pretty future-proofed, so I was able to still buy a chip to just drop into it.

I got one notch below the fastest I can run because I opted for the 95W TDP instead of the marginally faster 125W part. So it's an AMD Phenom II X6 1045T processor, with six cores: 2.7 GHz, 3.2 Ghz "turbo core" (whatever that means). It's a socket AM3. Cost $134.70 new (though the box looks a little refurbished).

Anyway, since I was about to move, I didn't bother attempting to install it. One never knows what will go wrong with these sorts of things.

So this weekend I popped open the computer case and removed my old Athlon chip (an Athlon 64 X2 5200+), dusted off the motherboard and put in the new Phenom II X6 chip and heatsink fan. Everything went perfectly smoothly for a change! POSTed just fine, and it seems to running great; just faster.

I lost a music hard drive at school and I'm about to have to transcode a few hundred albums from FLAC to Ogg Vorbis, so I thought I'd test out the new chip with a Vorbis encoding test.

I made a copy of every Nine Inch Nails FLAC I have on my computer into a single folder. I didn't bother trying to deal with duplicate filenames, so I ended up with 148 tracks totalling 11 hours, 11 minutes and 8 seconds of audio!

First, I encoded all 148 tracks to Vorbis quality 6 on the old chip. Using xargs' multithreaded option to get both cores going I was able to encode the whole group in 12m43s, which is 53x realtime.

athlon$ cat *.flac > /dev/null
athlon$ time find . -name '*.flac' -print0 | xargs -0 -n 1 -P 2 oggenc -Q -q6

With the new chip, using two threads was about 22% faster than the old chip. Using just a single thread, the new chip was about 15% faster than the old one.

However, this chip has six cores, so I was able to encode things as quickly as 3m33s, or 189x realtime!

phenom$ cat *.flac > /dev/null
phenom$ time find . -name '*.flac' -print0 | xargs -0 -n 1 -P 6 oggenc -Q -q6

That's 356% of the old chip's performance, which I guess shows that Vorbis encoding is a VERY parallelizable task.

Here are some raw numbers:

AMD Athlon 64 X2 5200+
xargs duration seconds x
-n 1 -P 122m57s1377s29x
-n 1 -P 212m43s763s53x
-n 2 -P 212m42s762s
-n 1 -P 312m36s756s
-n 1 -P 412m39s759s
AMD Phenom II X6 1045T
xargs duration seconds x
-n 1 -P 119m30s1170s34x
-n 1 -P 29m53s593s68x
-n 1 -P 63m33s213s189x

While I was messing with things, I also backed up my computer and upgraded to Ubuntu 12.10 (Quantal Quetzal) using the upgrade feature. That also seems to be working fine.

Saturday, 11 August 2012 [01:46 CDT]

Ess Ess Dee

Back in January, my hard drive gave me a scare. I managed to get my machine booting again, but made a mental note to replace it ASAP.

And then promptly forgot all about it.

I rediscovered the scare while reading through an old tech log, and decided to upgrade in style: to a Samsung 830 Series SSD 128GB.

The drive it replaced was a 160GB Samsung PATA HDD that I bought over the summer in 2004! Eight years of continuous service is pretty darn good, I think.

Also finally upgraded to Ubuntu Linux 12.04 LTS (Precise Pangolin) while I was at it. AND, after spilling coffee on it about a month ago, I also finally bought a replacement for the Microsoft Natural keyboard that I bought in 1997, which was the last remaining piece of the "original" computer I built from parts. (I replaced it with another Microsoft Natural keyboard, of course.)

All I can tell you so far is that the new drive boots fast. Now I just need to get a new motherboard / CPU / RAM combo....

Friday, 25 May 2012 [20:50 CDT]

One Man, One Guitar - 2012

Thanks to all the students (and co-workers) at Leander High School that stayed to watch my annual "One Man, One Guitar" performance. Here's Friday's setlist. Thursday's was different, but I didn't write that one down.

I've listed the songwriter/original artist for the cover songs. The rest were written by me.

  1. Room - Anthony Morales
  2. Drops of Jupiter - Train
  3. When I'm Old
  4. Tighten Up - The Black Keys
  5. Burn and Rob - Paleface
  6. He Keeps Me Singing (blues guitar version)
  7. Eleanor Rigby - The Beatles
  8. Isaac and Rebekah
  9. The 'Stay in School' rap (a cappella)
  10. In Your Eyes - Peter Gabriel
  11. Worth the Wait
  12. Somebody That I Used to Know - Gotye
  13. Crash - Dave Matthews Band
  14. Clocks - Coldplay
  15. The High Road - Broken Bells

I'm pretty sure the Friday show was recorded, so once I get a copy of the recording I can probably post that somewhere.

Monday, 2 April 2012 [16:42 CDT]


A few years ago, I created a recipe for a home-made electrolyte drink, inspired by my Dad, who had done something similar. Here's the recipe. And then below I'll walk through some of the math that produced the recipe.

In a medium-sided bowl, combine the following.

Store. To prepare, add 1/2 cup of mix to 1/2 gallon of water. Chill and enjoy.

Real Gatorade™ contains the following in an 8 fl. oz. serving:

Regular table salt (sodium chloride) has 590mg of sodium per 1/4 tsp. Salt substitute (potassium chloride) has 650mg of potassium per 1/4 tsp. Regular granulated sugar has 15 calories and 4g sugars per 1 tsp. Kool-Aid has between 5-15mg of sodium per reconstituted 8 fl. oz., depending on the flavor.

It's hard to accurately measure the sodium and potassium if you make less than one gallon of the stuff. We'll do 5 gallons, because it'll make the quantities much larger and thus easier to measure.

Five gallons (80 eight-ounce servings) of Gatorade contain:

Each packet of Kool-Aid makes 2 quarts, or one-half gallon, so we'd need ten packets. This gives us anywhere from 400-1200mg of sodium already. I use "lemon-lime" flavored Kool-Aid, which "only" has 5mg of sodium per serving, so I need to make up the remaining 8400mg with table salt.

So, 1 Tbsp. + 1/2 tsp. of salt provides 8260mg of sodium, which is close. If I were using a flavor of Kool-Aid with more sodium in it, I could use only 1 Tbsp. + 1/4 tsp. of salt.

Figuring the potassium is easier, because there's none of it in Kool-Aid:

Ditto for the sugar:

You'd need 5.8 cups of sugar to hit 1120g on the head, but this is not that important. Note that ten packets of Kool-Aid normally call for 10 cups of sugar, so whether you go with 5 or 6 cups, you're still noticably less sweet than bog standard Kool-Aid. I personally go with five, since I typically drink Gatorade to replenish fluids and electrolytes, not calories.

So, here's the recipe all at once

As you can see, the total quantity of "electrolytes" is fairly small, even in five gallons. The cost is also trivial, especially when you compare it to "real" Gatorade:

So, assuming you start with none of these supplies, the cost of your "first" batch of 5 gallons would be $7. Incremental cost is:

In comparison, five gallons of Gatorade runs $19.45, and the mix is $9.73.

If you really want to make a lot of the stuff (say you're working the Tour de France or something), you could buy these things wholesale in larger quantities and MUCH lower per-unit costs.

Monday, 6 February 2012 [08:15 CST]

Extreme Differentiation

Hello, February Conference listeners! Thanks for being interesting in my talk, Extreme Differentiation: An Experiment.

Here are some relevant links:

Wednesday, 18 January 2012 [16:47 CST]


If you haven't heard about the House's Stop Online Piracy Act (SOPA) or the Senate's PROTECT IP, then probably this blog won't save you.

Nonetheless, I've been lecturing about it in my computer science classes for the past two days, and today I did something I've never done in my life: I wrote a letter to my congresspersons.

Here's the letter I wrote to my representative in the House.

Honorable Representative McCaul,

I’m a high school computer science teacher, and I’ve taught the basics of software development to nearly 2,000 public school students over the last 14 years. I live and vote in the 10th District of Texas (although I teach just up the road in Leander).

I’m concerned about the House’s Stop Online Piracy Act (SOPA). It alarms me that it was written with very little input from the tech sector. As the founder of the Congressional High Tech Caucus, I hope it alarms you, too.

As an educator who has taught many others how to create their own websites over my career, I’m quite certain that none of the provisions in SOPA will actually stop or even substantially reduce foreign piracy: they are too easily worked around by those with any technical know-how. Americans who wish to steal copyrighted content will still be able to do so. Instead we will have just created a large government Internet blacklist, censoring law-abiding citizens and putting burdensome regulations on technology start-ups in order to protect the business models of large entertainment companies.

I know that SOPA is still in committee, and that mark-up is currently on hold. I personally think the legislation is too flawed to amend. I hope the bill is tabled or otherwise fails to make it out of committee, but if it does, I would hope that you will vote against it.

I do believe that piracy is a real problem, but I would prefer more technically accurate, non-protectionist legislation like The Online Protection and Enforcement of Digital Trade Act (OPEN) proposed by Rep. Issa.

Thank you for serving your country and for taking the time to read my letter.


Graham Mitchell
computer science teacher, Leander High School

I wrote similar letters to my two senators, although the Senate bill is no longer in committee and I praised Senator Cornyn for urging Senator Reid to delay the vote for cloture (and urged Senator Hutchison to do the same).

I will say that I'm a bit ashamed I waited this long to get directly involved in any sort of political action. And I have to agree with Joe Brockmeier, who wrote in his opinion piece for Read Write Enterprise What I Wish Wikipedia and Others Were Saying About SOPA/PIPA:

The dirty little secret of SOPA is that almost nobody pays attention to what Congress is doing 99% of the time.

Outside of a few hot-button issues, most U.S. voters are content to complain about government without actually taking any responsibility for following legislation or issues except (maybe) in the run-up to an election.


It's vitally important to stop SOPA or [PROTECT IP] from passing, but what's even more important is that you start paying attention and demand better from your government. Even if we stop SOPA, the larger problem continues. Tomorrow [Wikipedia is] going to go back to business as usual, but it's up to you whether Congress does.

So, what did you do today?

Wednesday, 18 January 2012 [16:26 CST]

Christmas haul

So, I know it's quite a bit past Christmas, but if I don't put my gifts here I'll never remember who got me what.

I think that's all....

Saturday, 18 December 2010 [22:04 CST]

Braid star & gifts so far


So, I bought the Humble Indie Bundle #2, mostly because I wanted Braid on Linux. I played through Braid on a borrowed Xbox 360, but didn't try for any of the eight "secret" stars. Now I am.

I just got the star in level 2-2: The Cloud Bridge. I'll leave the rest of the info to the Internet at large, but I will say that I entered the level from the right and started a stopwatch immediately. After 1 hour and 32 minutes I could comfortably jump onto the cloud. I didn't try sooner. Also, after 1 hour and 40 minutes I could still reach the cloud from the top of the door, so you've got a least a good window there. After 1 hour and 47 minutes I was easily able to jump off the cloud to the top-left of the screen.

I've already gotten quite a few Christmas gifts, and I like to give credit to the responsible parties.

Sorry I haven't been updating. I blame Facebook. And Twitter.

Friday, 31 October 2008 [23:01 CDT]

the calm before the storm

It's a quiet evening at the Mitchell household. Deanna and I watched The Soup and an episode of Dexter. We're both working on our Christmas wish lists at the behest of family.

But in less than one hour, something unprecedented is going to begin. I'm going to write a book.

The NaNoWriMo challenge is as simple as it is audacious: write a 50,000-word novel in November. And this year, I'm up to the task.

The book I'm writing is based on my popular lecture Don't Be Creepy. So, it's probably not technically a novel, but the NaNoWriMo crew aren't picky about this: "If you believe you're writing a novel, we believe you're writing a novel too."

I intend to try to keep my word count above updated at least every couple of days, so feel free to check back often and email to cheer me on! Just don't expect lengthy replies....

Speaking of which, I should keep this entry short. It's one thing to get my muse warmed-up, but quite another to tire her out.

Saturday, 6 September 2008 [20:48 CDT]

ch- ch- ch- changes

Much has gone on since my last update. My wife and I flew up to Pennsylvania for several days, where we visited a few places of historical interest. First up was the Yuengling Brewery, America's oldest, which first began brewing beer in 1829! The brewery is less than 15 miles from Deanna's childhood home.

Deanna and I at the Yuengling brewery

Deanna and I in front of a collection of Yuengling bottles over the years. Her Dad is the one taking the photo.

Then we got to see the Sturgis Pretzel House, America's first commercial pretzel bakery. Julius invented the hard pretzel, in fact. This is about 60 miles from where we were staying, but Deanna's brother lives in the same city, so we hung out and launched leftover fireworks and ate some amazing steamed corn that had been freshly-picked from a farm nearby. Yum!

And since the airport is only about fifteen miles from Hershey (the city), we stopped at Hershey's Chocolate World, which was fun, too. Here's a shot from their tour showing them pretending to fill bottles of syrup.

assembly line filling bottles of chocolate syrup

Once back in Austin, we didn't waste much time before we starting getting ready to move. Since we got married about a year ago, we've been living in a one-bedroom apartment. So we finally got fed up enough with being cramped and decided to move.

We moved into a three-bedroom apartment, which is not only in the same apartment complex, but actually in the same building. This meant that we didn't need a truck or anything, but we did have to carry dozens and dozens of loads, by hand, down three flights of stairs, across a sidewalk for 100 feet or so, and then back up another flight of stairs.

We got everything moved in the weekend before our wedding anniversary, so we spent our anniversary itself sleeping! We also decided to get rid of the storage unit we'd been using, so at the moment most of the house looks fine, but half of the third bedroom is stacked nearly to the ceiling with boxes and tubs. I think we've got space to put everything out of sight, but we haven't yet had the time.

And as if that wasn't enough change for one summer, I also changed classrooms at school. I'd been in the previous room for eight years, which is a pretty good run, I guess. In the new room I got some cool new furniture, and I've got an exterior window, so overall I'm fairly happy even if everything isn't quite set up in the new room yet.

You've also probably noticed that I've got my Twitter feed up there, so that you can at least tell something that's going on with me between updates. Enjoy!

Wednesday, 9 July 2008 [01:45 CDT]

birthday gifts, part 2

Actually late Tuesday night....

Armed with a quartet of Benjamins about a week before my birthday, I decided it was time to spend the windfall to update my home computer.

Now, friends, my computer wasn't blazing. The bulk of the innards had been purchased over six years ago, and the newest components (my sweet widescreen flatpanel LCD monitor that Deanna got me for Valentine's Day aside) were only a year newer than that. So encoding an mp3, for example, took a lot longer than you'd expect.

It didn't take me long to wrangle together a list of parts on NewEgg that fit my budget. It helped that NewEgg accepts PayPal as a form of payment, so the proceeds from the auction never even had to touch my bank account. Here's what I ended up with:

When I was building the system I stopped by my local Fry's Electronics to pick up a new (quieter) system fan and also scored a nifty box that gives me front-mounted USB ports!

All the parts came in just before my birthday, and so within a couple of days I backed up everything on my machine and assembled all the new hardware.

At first, things wouldn't even POST. It took me way too long to figure out it's because my pretentious RAM needed 2.0V and the motherboard was only providing 1.8V. Fortunately, the BIOS had an option to remedy this. Once my high maintenance memory was satisfied, the hardware worked wonderfully.

Then, I had troubles installing the newest Ubuntu (version 8.04, Hardy Heron). It would boot off the CD-ROM but just bomb out to a command shell shortly thereafter. Eventually I decided it was either my SCSI controller, the SCSI DVD-ROM drive (both very old), or a poorly-burned disc (courtesy of the nearly-as-old SCSI CD-R drive). So, to remove all those variables in one fell swoop (and is there any other kind?) I made an installer on a bootable flash drive instead, and the install worked the first time.

To compare the overall system performance of the old computer vs. what I now have, I ran the ubiquitous "doom3 timedemo" on both systems.

I'm pleased. I have also had a few days to import my old emails, my Firefox 3 bookmarks, etc. I also played through the demo for On the Rain-Slick Precipice of Darkness, now that I've got a machine fast enough to actually run it. It was good!

So, that's it. For my birthday, my mom essentially enabled this machine. Thanks, Mom!

Wednesday, 9 July 2008 [00:42 CDT]

worth something

Actually late Tuesday night....

My mother is a collector. She has shelves of books, DVDs, action figures, the gamut. She's no hoarder like you see on teevee, but if it's about sci-fi or vampires, you can bet she's got a collector's edition somewhere.

Someday we'll auction all that stuff off, and if inflation continues we'll be trillionaires!

Anyway, back when I was in junior high or high school, I played Dungeons and Dragons. It was a lot of fun for a detail-oriented creative guy like myself to draw up maps and plan campaigns and invent new spells and magical items, even if I never got around to gathering up folks to play.

So, when Mom saw a Dungeons and Dragons Original Collector's Edition in a local used bookstore all those years ago, she picked it up for me. It had several of the modules and was in pretty good condition. At the time, I'd enjoyed looking through it. Over the years, I also enjoyed showing it off now and again to fellow enthusiasts. But mostly it stayed in the box, packed away.

<cut to present day>

Shortly after the wedding, I was moving the last of my things into storage and noticed the collector's edition again. I hadn't looked at it myself in years and hadn't shown it to anyone else in even longer. I figured it was time to let it have a more appreciative home. I knew from searching around on eBay that there was a chance I could get a little bit of money for it, and I knew I'd have time over the summer to write it up properly.

So, armed with a digital camera, mad googling skills, and a couple of days of time, I carefully crafted a listing designed to appeal to the serious collector. Yeah, it took forever.

My diligence paid off. My auction attracted the attention of collectors in France, England and Australia. It was listed as an "Interesting Item Currently on eBay" on a Dungeons & Dragons Collecting Forum.

Ultimately, the bidding closed at $474.65. It cost me about 3% to accept the payment via PayPal, and eBay is going to take around $20 as their cut, but overall I netted well over $400.

And I owe it all to Mom's continual search for things that might someday be "worth something".

Wednesday, 9 July 2008 [00:07 CDT]

birthday gifts, part 1

Actually late Tuesday night....

It's been a week now since my birthday, so I need to brag about how the women in my life have hooked me up with gifts.

First, I'll start with the gifts from my wife, whom I don't brag about enough. This year, almost everything she got me was from ThinkGeek

Speaking of homebrew, my first batch, a clone of Real Ale Fireman's #4 turned out very well. It was enjoyed by all. I gave away over a third of it (maybe even close to half), and I now have only one 22-ounce "bomber" remaining, which I'll probably drink sometime this week.

homebrew in one of my new glasses

You can see the color of the homebrew nicely, but the head is a little underwhelming in this photo because I poured it and then took too long getting the camera ready before taking it.

I've already brewed my second batch, a Belgian White which should be ready in about a week and a half.

Back to the birthday list, my wife also made me a lemon box cake with lemon icing, a childhood favorite. And, since she'd made it a round layer cake, we got to store the leftovers in the cake stand with cover we'd been given by Chase and Charleen as a wedding gift. (They're no cheapskates; it cost quite a bit more at the time.)

So, that brings me to the other gift-bearing woman in my life, my mother.

This year, she and Dad are in the middle of moving into a smaller house, so she thought she'd just given me some cash. However, her plan for this year's gift actually began nearly two decades ago. For the rest of the story, see the next update.

Tuesday, 8 July 2008 [23:09 CDT]

yoga and mechanic advocacy

If you're a longtime reader of this here blog, you might have suspected that "any day now" could mean a month or more. Pat yourself on the back or something.

So here's the super-abbreviated version: we had preordered Wii Fit, and so Amazon got it to us real soon after it was released. We've really enjoyed it. I can't say that we've been playing it very consistently lately, but it really gives a decent workout that doesn't feel like you're depriving yourself. If you've got a Wii (and by now you can probably get one if you're interested), I recommend it.

In motor car news, last month my car started overheating on the way to and from school. White smoke would also emanate from under the hood. I took to carrying several gallons of water in the trunk so I could fill the radiator before taking off, but I still had to keep the heater on and keep an eye on the temperature gauge. Eventually, the dreaded 'check engine' light came on, too. Of course, I was smarter than to push my luck for long, so I took my car to the fine folks at Midas in Georgetown, where my friend Gary is the manager. It turned out to be a crack in the radiator, and he fixed it up quickly and for quite a reasonable cost. If you've got car issues, I recommend them!

This month, I also got the timing belt and other associated belts changed. Three cheers for Midas!

Saturday, 7 June 2008 [03:38 CDT]

Project Grad setlist

Actually late Friday night....

Yesterday was the last day of classes for another year. Graduation was this morning, and Project Grad was tonight.

As per usual, I brought up a guitar and found a free room to do a little mini-concert for a dozen or two now-former students. However, this year was the first where I had as many original songs as I did covers!

For posterity, here's the setlist. Recorded versions of some of the originals might be on the Brothers Frail MySpace page. And there's a "video" of Isaac & Rebekah somewhere on YouTube.

  1. Worth the Wait - original
  2. Room, written and originally performed by my friend Anthony Morales
  3. Burn and Rob, by Paleface
  4. Isaac and Rebekah - original
  5. Crash, by The Dave Matthews Band
  6. When I'm Old - original
  7. He Keeps Me Singing - an original arrangement of the traditional hymn
  8. Lord of the Dance, by Steven Curtis Chapman

Then, after a short break, I played a few songs from church. If you'd like to hear them, come visit us at Lakeline Church some Sunday.

  1. The Way I Was Made
  2. Indescribable
  3. Lord, You Have My Heart
  4. Open the Eyes of My Heart
  5. Sanctuary
  6. The Heart of Worship

It's very late, and I was up pretty early, so I just wanted to get those down before I go to sleep and forget what I had done. Stay tuned for an update about Wii Fit or one about my adventure with a cracked radiator any day now!

Wednesday, 28 May 2008 [21:35 CDT]

postfish on Ubuntu

First things first: last week I needed to set up the Postfish on Ubuntu 7.10, the Gutsy Gibbon. I'd used it on a previous Linux distro, but had to figure it out all again. I couldn't find directions online anywhere, so now that I've done it I'm posting them here.

  1. download the Postfish itself. Way back when it was still changing frequently I wrote a shell script to do this.
  2. [mitchell@postfish]$ more 
    stamp=$( date +"%Y%m%dT%H%M" )
    mkdir "$name"
    cd "$name/"
    wget --recursive --no-parent -nd -nv
    chmod a+x ./touch-version
    cd ..
    tar cfj "$name.tar.bz2" "$name/"
    #rm -Rf "$name/"

    That should pull the latest copy from Postfish's Subversion repository and also archive it for you.

  3. install the required libraries. According to the README, Postfish requires, among other things, "FFTW3, pthreads, Gtk2". I didn't have any compilation errors pertaining to pthreads, with gutsy I was able to install GTK2 and FFTW3 using apt-get thusly:
    [mitchell@postfish]$ sudo apt-get install libgtk2.0-dev
    [mitchell@postfish]$ sudo apt-get install fftw3-dev
  4. Then, just change into the postfish folder and run "make". Don't panic if it seems to hang; that's just fftw3 doing its thing.

Okay, now that's out of the way I can finish the backstory.

I haven't been doing much recording at home lately; since my last move, my home studio isn't really set up for it. However, last week I needed to put together a couple of tracks to make a rehearsal mp3 for an a cappella trio we were doing at Lakeline on Sunday.

Paul was covering the melody, so he recorded it on the laptop at his house and then gave me the track on my flash drive. When I got it home and looked at it, I noticed some clipping. Postfish is pretty sweet for mixing down huge projects, but there are two things it can do that I've not seen anywhere else. If the audio is clipped, Postfish can magically reconstruct the missing data. And if there's too much reverb (say it was recorded live in a concert hall), Postfish can remove the reverb. It's spooky.

So I fixed it with Postfish, and then recorded my own harmony. I mixed the two tracks together in Audacity, and then sent the result off to our third, who learned it in less than 24 hours and nailed it Sunday morning.

For the record, the song was a three-part re-arrangement of Glad's five-part arrangement of Charles Wesley's "And Can It Be", which my brother and I have been singing since 1988 but had never done together until now.

A second problem I had was in getting readable copies of the sheet music to all the interested parties; the "original" is a handwritten score in pencil from 1996 or so, so the best we could do is scan it in and send JPGs to everyone.

So, this week when I should have been grading, I instead spent some time playing with LilyPond, which is really sweet (and programmer-friendly) music typesetting software. The learning curve isn't bad, and after not much time I've got a really attractive PDF of half of the first page. So I highly recommend looking into that.

Wednesday, 7 May 2008 [01:59 CDT]

a very good day

Actually late Tuesday night....

Today (and by "today" I mean Tuesday) was a good day.

Things began last night, but it was after midnight, so I'll count it for the sake of the theme. Since my finances are more complicated now that I'm married, it's time to upgrade my financial management tool from a single spreadsheet with hand-entered transactions. After some poking around, I decided to try KMyMoney, which is probably the personal finance software best suited for home financial use on Linux.

I got in installed easily, because with Ubuntu that's fairly a given. Then, within a few minutes of poking around, I was actually able to get it to download accounts and transactions from my bank's website. And that was a pleasant surprise. Since banking protocols and open source software don't always mix, I figured it wouldn't be an option.

So after that small victory, I went to sleep and then got up in time to get to the testing site where my CS-2 students were about to take the Advanced Placement (AP) test in Computer Science. I've got sixteen kids taking it this year, which may be a record high for me. They all showed up in time and I was able to wish them well. So that's nice thing number 2.

I rushed out from there to get to school by 8:00, because we were having a special faculty meeting. I made it, and the superintendent was there to announce that our interim principal Brad Mansfield was now officially the principal. That's a very good thing; he's a solid guy and a good leader and a very good fit for our campus. Not to mention we've been waiting for that decision for nearly nine months.

The day continued well. We're covering arrays in CS-1, which are one of my favorite things in the whole first year. I also was feeling creative and came up with a couple of interesting new assignments.

The last period of the day was my conference period, and I was able to get caught up on a lot of grading. And that's also a good feeling.

Finally, today (Tuesday) is National Teacher Appreciation Day, so Chipotle was offering free burritos to anyone with a teacher ID. When I finally made it by a little after 9pm, there was literally no line (after there being 30-45 minute waits in the early evening), so I was able to get a tasty burrito and get out. Mmmmm.

There's another sense in which today is a good day, if I define today as Wednesday, May 7 -- it's my "little" brother's birthday! The other Mr. Mitchell is 31 today, though he may be spending it at home with Hayden, who I hear has pinkeye. Frowny-face-emotion.

Oh, and the beer-making continues well. I've finished both the primary and secondary fermentation stages and the clarifying, and I successfully bottled the nearly five gallons of ale into twenty-seven 24-ounce bottles Sunday evening. Now it sits and carbonates and "ages" or some such for about three weeks until it's at its awesomest.

Monday, 21 April 2008 [02:08 CDT]

brewmaster Graham

Actually late Sunday night....

Yesterday I was on reddit reading comments about an article asserting that blueberries helped with memory loss. I ran across a recipe for a blueberry melomel, which is mead with fruit. (Mead is honey wine, as you may have already known.)

That reminded me that I'd always wanted to make my own beer. Several hours later, I read tutorials on the web, and found out that Austin Homebrew Supply is just a few miles down the road and one of the largest such stores in the nation.

So today I stopped by, picked up a fermenting bucket and a couple other odds and ends, a recipe and ingredients for a tasty ale, and came home.

Of course, I didn't get started until maybe 10pm, and like most things you try for the first time, it took longer than I expected. I finished the wort about half an hour ago and finished cleaning up about ten minutes ago.

If all goes well, there are just a couple of things left to do, and then about a month from now, I'll have five gallons of tasty beer! Hopefully bottled into 48 or so twelve ounce bottles. Which I'll have to give away a lot of; I can't drink 48 beers in any reasonable timeframe.

Austin Homebrew Supply also had ingredients for a "homebrew" cola, so I mixed up and bottled six 2-liter bottles of that. It takes a few days for the yeast(!) to carbonate it, and we're expecting it to be fairly mediocre, but it was a pretty inexpensive experiment.

Anyway, I'm due for some sleeping, I think. However, I shouldn't fail to mention that 'zymurgy' is worth twenty-five points in Scrabble.

Wednesday, 16 April 2008 [19:28 CDT]


Well, the sad tale is that I didn't make a single entry during the entire month of March. That's significant; I've never previously had a month with no posts, that I can recall.

Anyway, I'm breaking the silence to say that once again I had a severe allergic reaction to something I ate and had to go to the hospital.

Thursday night I tried a new Odwalla bar. I didn't bother to check the label, but it contained quite a bit of flax seed, and a little over an hour later, I started sneezing, having a runny nose, and swelling in the face. I took three Chlor-Trimeton tablets (the only thing I had on hand) cut band practice a little short, and drove myself home. Once home I took two Benadryl tablets and had Deanna drive me to the E.R. at Round Rock Hospital.

It didn't take long before they got me some epinephrine, though this time it was an intramuscular injection and so a lot more gentle. After an injection of Benadryl, Pepsid, and some steroids, they kept me just a bit and sent me home.

Fortunately, I had Friday off of school anyway, so I was able to sleep in two days in a row, which really helped things.

This time I actually took my mother's advice and made an appointment to see an allergist, and I today I actually went to the appointment.

Unfortunately, what I've got is called "recurring idiopathic anaphylaxis", which means "you keep having a severe allergic reaction to something, and we don't know what or why." You can't test for food allergies with a skin test (well, not reliably anyway), and although there are blood tests for dozens of food allergies, flaxseed isn't one of them. Oh, and even if confirmed, they almost never do immunotherapy ("allergy injections") for food allergies.

Since I've had flaxseed (accidentally) quite a few times since my last reaction, it's almost certain that there is some combination of factors at work. For example, one of my doctor's former patients only had symptoms when he ate chocolate on the same day he went running.

So, my command from him is just to keep my epi pen and benadryl handy, try to avoid flax seed, and pay attention to as many factors as possible in the unlikely event that it happens again. Not as specific an action plan as I'd been hoping for, but life seldom works that way, anyway.

Saturday, 9 February 2008 [17:41 CST]

sellout Graham

So, in visiting my site today you'll probably immediately notice two things. First, you'll notice that I've updated the page! For the first time since mid-December! Rather than lump them into one giant update, I broke them up into chunks, with fake dates at the top of each one. So, no, you didn't miss the updates; I wrote all five updates (including this one) just now.

Secondly, you might have noticed the ads. It's not that I'm interested in profiting off of this silly blog. Actually, I'm planning to remove them after a month or so. But, I do plan to eventually put ads on Don', once there's more there that random people might actually want to visit.

And so I figured I'd give them a test-drive on this site first, just to see if the "payout" is worth the hassle.

If you're interested in an ad, then click on it. If you're not, then don't. And please don't just blindly click on the ads en masse; Google tries to detect such abuse, and they'll either lower my payout to compensate for "fraudulent" clicks, or, if it gets out of hand, drop my account entirely.

If you use Firefox and you don't like seeing ads on this or any other pages, I highly recommend installing the Adblock Plus add-on. It does a brilliant job of making ads just go away all over the web. I use it, which I guess means I'm blocking the ads on my own page.


Saturday, 9 February 2008 [15:24 CST]

area man speaks to large crowd

It's that time of year again -- the 15th annual Leander ISD Continuous Improvement Conference. By popular demand, I repeated my session from last year: "Why Are My Kids Weird?".

They'd put me in a bigger room, and again the place was packed; I think there may have been as many as four hundred teachers there this time. It went really well, and I'm fortunate that there are so many people that want to hear what I have to say.

I've already been invited to travel to another school in LISD to give the talk again to just their faculty, which will give me a chance to record it.

If you're interested, you can download my speaking notes from my Don't Be Creepy site.

Monday, 21 January 2008 [12:57 CST]

vehicular upgrade

We took Deanna's car to get it inspected on Saturday and they gave it the once-over first, uncovering nearly $1800 worth of necessary repairs before it would be safe again. Now, the blue book value on her car, even in fair condition, is under $2000, so effectively her car was totalled.

We agonized over things for a little while, and finally decided to visit some car dealerships just to sort-of see how much a new car might cost us. After an uneventful stop at CarMax, we ended up at Classic Toyota in Round Rock, where we were taken care of by a salesman actually named Mohammed Merchant. We found a 2008 Corolla that we really liked and he gave us an amazing deal on it.

Seriously, if you're in the market for a Toyota in the Austin area, go to Classic Toyota and ask for Mohammed Merchant.

2008 Toyota Corolla, exterior view

2008 Toyota Corolla, interior view

Anyway, Deanna's very pleased with the new car. She was driving a junky vehicle for way too long. Now I just need to get my car inspected....

Wednesday, 2 January 2008 [14:12 CST]

the TSA wants Wiis

When we got back to Austin from Pennsylvania and I was unpacking my bags, I spotted a notice in there that the TSA had searched through my suitcase because it was suspicious. I'm suspicious that the TSA was secretly just interested in the Wii that was packed in there. Draw your own conclusions.

Wednesday, 2 January 2008 [14:08 CST]

belated Christmas report

Christmas in Pennsylvania was really relaxing. We slept a lot, saw some of the local sites, and it was good to spend some time getting to know Deanna's family a bit better.

Once we got back, we jaunted up to East Texas to ring in the New Year. It was a brief but nice visit.

Overall, my big-ticket gifts were:

Saturday, 29 December 2007 [22:43 CST]

felines overthrown

Well, we're both back from Pennsylvania now and just about have control of our apartment wrested back from the cats. We're glad to be back home, even if it is colder here than it was in northern Pennsylvania when we left....

And we've been playing the heck out of Super Mario Galaxies since December 24. More on the Christmas report later; we both need some sleep.

Monday, 17 December 2007 [23:34 CST]

owned by Euler

Deanna left for Pennsylvania on an early flight this morning, and I miss her already. I'll be flying up to join her in a few days, however, so if you're in the mood to check in on four awesome cats or something, just let me know!

I've been passing the time with Project Euler, a "series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve."

I'm trying to do all the problems in Python, because it'll force me to learn the language better. So far I spent 8-9 hours on Saturday, 4-5 hours yesterday and about four more hours today working on it, and I've finished the first twelve(!) out of 172 problems.

No, sir, these are no FizzBuzz or 99 Bottles.

However, I probably spent the first eight hours on the first eleven problems combined, and all the rest of the time on Problem 12. I started out solving things in sort of the wrong way, and then learned a lot of math the last few days to try to improve things. My final version didn't actually use much in the way of new things, but it was still a gripping challenge, all in all.

Anyway, I'm jonesing to took a look at Problem 13, but I think it'd probably be better if I just went to sleep instead.

Sunday, 16 December 2007 [22:58 CST]

and you make a neat gun

Over Thanksgiving I finally got a chance to play Portal in its entirety.

It's not a very long game, especially for more experienced gamers, but it was extremely well done. It had a solid (if uncomplicated) plot, a very neat atmosphere, and of course the puzzle-solving was excellent.

I'm not going to side with those that call it a feminist critique of the [first-person shooter] genre, mind you. It was, however, quite excellent. And my wife actually sat on the couch and watched me play the entire thing, so that should tell you something.

There's an original song that plays during the closing credits. And I've still got it stuck in my head nearly three weeks later.

If you've got a system capable of running Portal, you owe it to yourself to set aside 2-6 hours (depending on your skill level) and play the game from start to finish. It'll be more worth your time than two viewings of Michael Bay's Pearl Harbor, I can guarantee that.

Thursday, 15 November 2007 [23:36 CST]

first place!

Tonight at school we held a faculty talent show as a fund-raiser for Project Graduation. I performed a song I'd begun writing about a week ago, and I won first place!

The song is about Deanna, and it was the product of a recent songwriting contest with my brother and two other guys at church. I think the song did turn out very well, and even though I didn't have it quite memorized, I think I sang and played it pretty well, too.

I'll try to get a recording of the song somehow pretty soon. In any case, worrying about trying to get the song finished and get it ready to perform has really kept me busy the past week, so I'll be glad to catch up on some sleep.

Wednesday, 3 October 2007 [22:54 CDT]

not enamored of grading at this time

In the past, I've written about my grading workflow and hinted at some of the software utilities I've created in order to speed up that workflow. At the end of last year, I had things honed to the point where I could grade several hundred (digital) assignments in less than an hour and get the new grades in the gradebook in literally seconds.

Well, the district's gradebook GradeSpeed has continued to improve over the years, and it's now fairly non-annoying to use. So this year I finally switched over, and am now keeping my grades in Gradespeed first and trying to get them exported from that to use in my own application (so kids can easily see which assignments they're missing, for example).

Well, I must confess that although grading over 300 assignments is still just as fast as it used to be, the putting of 300 grades in the gradebook leaves a bit to be desired.

Entering 300 new, mostly-perfect grades into my own gradebook would take, tops, ninety seconds. Entering those same grades into GradeSpeed took me more than twenty minutes. Ouch.

So you can bet that I'll be working on making myself some tools to get that bottleneck fixed in a hurry. If you're an employee from Campusware reading this, please, for the love of .NET or something, add some way to mass-import grades that are already in a digital form. Ditto for exporting them into a CSV or something similar. The lack of such has been on our campus "bugs" list for years and years now, and it keeps getting promised but never delivered.

Two more things I'd like to mention: my wife took me clothes shopping this past weekend, and now I look good. Quite a few people at church noticed the wardrobe improvement, and I could honestly tell them it's because I'm now no longer dressing myself.

Secondly: the David Crowder Band is playing tomorrow night at La Zona Rosa. We're taking a group of about fifteen. How is this concert not yet sold out in Austin?!? What is going on with the churches in this town?

Sunday, 16 September 2007 [22:47 CDT]

tech honey-dos

Yesterday I took care of several "honey-dos" for my wife. Of course, since we're both a bit nerdy, they weren't of the typical sort.

The first was "connect your Linux machine to our wireless network using an ethernet bridge." Fry's Electronics came through with a jobbie by Buffalo. I just found out that Buffalo Technology is based in Austin, and their headquarters are only 5 miles from our apartment!

The second honey-do on the list was "get my printer and external storage working over the wireless network using a WiFi-capable print server." Again, Fry's hooked us up with a weird little device by TRENDnet.

While at Fry's I finally gave in and picked up a ($13) PCI card to give me some USB 2 ports. And then of course I needed a flash drive with more capacity to test it out, so I opted for a freakishly-tiny 2GB pqi flash drive (the i810), which is slightly longer but narrower than a US dime.

This technology-buying spree was sort-of precipitated by us finally getting to the AT&T store to get Deanna and I on a new wireless "family" plan, which should save us a fair bit. Plus she got a new phone, which is a big deal for her.

So, after accomplishing my two big honey-dos, that annoying 75-foot ethernet cable which ran through the living room is now finally gone, and Deanna can print from the kitchen table. Technology sure is sweet.

Tuesday, 11 September 2007 [22:09 CDT]

Nerd Test 2 says I'm an Uber Cool Nerd King. What are you?

That is all.

Sunday, 9 September 2007 [22:41 CDT]

life is good

I'd better do an update so that Mom doesn't think I've dropped off the face of the earth or anything.

Being married is really going well. I highly recommend being patient and finding an amazing spouse!

In Linux news, I finally switched from Fedora to Ubuntu. It's very slick, let me tell you. I'm having trouble getting my wireless Internet adapter to successfully get an IP address from our 2Wire wireless router, but I think that's the router's fault, actually.

Oh, and class is going pretty well so far. Most of the network issues that have been plaguing us have cleared up and my class sizes are all now back down to manageable.

Thursday, 23 August 2007 [19:20 CDT]


So, for those not in the know, my wedding was this past weekend. Deanna and I were married in a beautiful ceremony at The Page House in Georgetown. We followed it up with two nights on the Riverwalk in San Antonio.

We're back and now moved in together (as you'd expect) and I'm back to work. I plan to eventually write up a bit more about the wedding, complete with pictures (much as I did for my Haiti trip a few years ago), but that'll have to do for now.

I've been back at teacher inservice for a few days, and am still trying to get my classroom ready for the students on Monday.

Tuesday, 14 August 2007 [13:41 CDT]

why you should run linux

In my last update, I tried to explain why an experienced, technical user would prefer Linux over other operating systems. In this update, I'm going to explain why a non-technical end user might want to run Linux too.

Reason 1: It's cheaper.

A new copy of Windows Vista Home Premium costs $160 if you're upgrading from a recent Microsoft operating system, and it's $240 if you're not. Mac OS X v 10.4 (Tiger) is $130. Microsoft Office Standard 2007 is $400. Apple's iWork is $80.

By comparison, a copy of Ubuntu Linux is free. They'll mail you the install disks at no cost. And it comes with, a full-featured office suite that reads and writes Microsoft Office format files.

Perhaps you'll protest that you didn't have to pay anything for your copy of Windows; it came pre-installed on the last computer you purchased and was included in the cost. This is probably true. If you have never installed a new operating system on an existing computer and never plan to, then Linux probably won't save you any money.

Reason 2: It's legal.

Perhaps you built your own computer from parts and installed an illegally-copied version of Windows on there precisely to avoid having to pay so much for a legal copy. In that case, Linux can provide an equally-free but legal alternative.

Linux is software developed under the GNU General Public License, a copyright license that attempts to give you freedoms rather than take them away. In particular, the license allows you to legally make copies of GPL-licensed software, and also gives you permission to modify the software if it suits you.

This is the primary reason why Linux is high in quality; the licensing allows a single, motivated programmer to fix problems she may find with the program and then legally make those fixes available to everyone else.

I really like the moral high ground of running only legal software on my computer. I don't try to rationalize illegal copying by saying "Everyone does it."

Reason 3: Upgrade when you want.

Most computer users are on a sort of upgrade treadmill. When their workplace upgrades to a newer version of, say, Microsoft Office, they have to upgrade too to ensure compatibility of files. If I run Office 2003 at home and a coworker emails me a file saved in Office 2007 format, I can't open it. Once this happens enough times, an upgrade seems in order.

This is because Microsoft uses proprietary file formats, and changes them from time to time to force these upgrades. They are in the business of making money, after all, and if everyone kept running Word 97 forever, they'd make less of it., on the other hand, uses a public, open file format called Open Document Format (ODF), which has been standardized by the International Organization for Standardization (ISO). The ISO is responsible for standards as varied as photographic film speed, pipe threads for pressure-tight joints, and the international standard book numbering (ISBN).

Linux vendors have no compelling reason to force you to upgrade to a newer version, so you're free to continue to use older software (with full interoperability) as long as you like.

The distribution of Linux that I run (Fedora Linux), provides free updates for the OS for a couple of years. Ubuntu does so for even longer.

Reason 4: Easy updates.

In Dan Martin's interesting post Things I can do in Linux that I can't do on Windows, this is one of his biggest. With a single, simple action, I can update every single piece of software on my system. I'm not just talking about security updates or anti-virus. In Fedora, I can type "yum update" and hit enter and get a new version of the kernel, the latest version of OpenOffice and Firefox and a security update for libpng downloaded and installed for free.

It helps keep my system stable and current to know that I'm always running the latest version of software, legally and at no cost.

Saturday, 11 August 2007 [17:53 CDT]

cars and operating systems

Most of my readers know that I run Linux at home. But most of you probably don't really understand why. Let me try to explain.

Pretend that you enjoy working on cars; you're a real greasemonkey. Since childhood, you've tinkered with things mechanical. Taken them apart and put them together again. You used to spend weekends with your dad working on the engine of a classic car he was restoring. You even studied automotive engineering in college, and in some of your tougher classes you and a small group of friends designed real cars from scratch: from details such as computerized gear timings to wind-tunnel simulations for the chassis.

You probably couldn't actually build a real, production quality car from scratch on your own, but you basically know what all the parts do and how they fit together. You don't always change your own oil, but you know how.

Anyway, now you're an adult and you're thinking about getting a "real" car to replace the beater you've been driving (and keeping running yourself) for years. It's not that your 1985 Toyota Tercel isn't viable anymore, it's just that it would be nice to have a ride with a little less wear on it.

For the sake of the analogy, let's pretend that you have three car choices:

You're not extremely wealthy, but you could afford any of the cars if you made it a priority. Which would you choose?

Oh, and before you answer, I should add that for some strange reason, the Kia dealership will only sell you their car with the hood permanently welded shut. Any work the car needs must done at the dealership. Humor me.

Now, the Honda is a good choice, because it's the least expensive by a long shot, and because it's known to be a reliable car. You're not likely to have major problems with it, and if something does come up, odds are very good that you can grab your 1996 Honda car-repair guide and toolbox and fix it yourself.

The Infiniti would also be an acceptable choice, but for different reasons. It's an extremely nice car and very innovative. You're quite unlikely to have problems, because the car is engineered that way. In the case of trouble, you could get under the hood and take a look, but in all honesty you'd probably just prefer to pay someone else to do it. Driving it would be a real pleasure, but the rest of your lifestyle might have to take a bit of a hit to cover the payments.

The Kia, on the other hand, would be an extremely foolish choice. It costs more than the Honda, but is of questionable quality. It probably has its share of bells and whistles, and it would probably be a pretty slick ride for a while. But if things started going wrong, it would be extremely frustrating. You'd have the technical expertise to fix problems, but you wouldn't be allowed to peek under the hood. You'd be utterly dependent on the dealership for keeping your new ride running.

But enough about cars; I'm talking about operating systems.

Linux is a well-built operating system. Every aspect of the system is completely open for modification, and although sometimes things work differently than other operating systems, learning the differences isn't burdensome. And with software development expertise, it's possible to make interesting things work together that the designer never envisioned.

For example, every time I send an email to someone, the signature at the bottom of the message contains a randomly-selected quote from a folder containing a couple dozen of them. This isn't because my email program supports that; it's because I can create a little piece of software that works with my email program to make it happen.

Or, I once wrote a little utility for a friend to send him a text message on his phone whenever the dynamically-allocated IP address on his home web server changed. It took less than an hour to write and worked like a charm. That's what a little elbow grease and an open system can get you.

Microsoft Windows is not so well-built. It's not horrid or anything, and some things about Windows are actually pretty nice. I don't mind using it at work, usually. But sometimes something doesn't work and I'm not exactly sure why. I might have some suspicions, but there's no way to dig in to confirm them and no way to fix it myself, anyway.

Or when I can see a minor tweak that would be very easy to implement and which would make my life easier, it's sometimes downright frustrating to put up with. Putting up with a poorly-designed program's idiosyncracies isn't so bad if that's all you know. Ignorance is bliss, after all. But when you know there's a better way and that doing it right wouldn't have been much harder... it's just annoying.

Oh, and to add insult to injury, Windows is more expensive than Linux by a fair margin.

The final contender in this discussion is Apple's OS X ("oh ess ten"). OS X is a bit pricey in that it only runs on Apple's own hardware. Now, equivalently-equipped machines from Apple and Dell cost about the same, but it's still true that Apple computers target a more boutique market.

Apple's operating system is extremely well-designed. Again, things work differently than in Windows, but nine times out of ten the Apple way is better once you get used to it. And the Apple OS is actually surprisingly open; there's a lot of room to tinker if you're into that sort of thing. Using it from day to day is, I'm told, a pretty pleasurable experience.

All this is why I run Linux at home. Most of the time, things Just Work, and when they don't I can usually fix it. And I can make things work the way I want them to.

Furthermore, if I had the money, I'd get an Apple laptop in a heartbeat. A real luxury computing platform that I wouldn't have to worry about.

But I'm not going to go out of my way to run Windows any time soon.

Tuesday, 7 August 2007 [14:05 CDT]

banking prowess

My bank is better than your bank. Just face it.

Of course it's got free checking. Online bill pay. 24/7 phone access and the like. They even refund the fees that other banks' ATMs charge (and have done so for decades, unlike most banks for which this is a new idea).

Let me give a concrete example. A few weeks ago I decided that I probably wanted my limit increased on my credit card to make it easier to finance most of the expenses of the upcoming wedding. We'll probably end up having had enough cash for the wedding once everything is said and done, but sometimes cash flow is a problem.

So I visited my bank's website, and right on my credit card page there was a link for "Adjust credit limit". Sweet.

Once there, I had to enter my gross monthy income and instantaneously and without "an inquiry to [my] credit report" my limit was raised to comfortably cover all wedding, honeymoon and moving expenses in the coming months.

Then, I ordered some convenience checks online, which were promptly mailed to me. Just in case some of the wedding vendors don't take plastic, you see.

Next, I was able to -- online -- immediately transfer $1000 from my credit card into my checking account, since I'd made some recent wedding purchases through checking. And since Deanna had done the same, I was able to instantly do an ACH transfer of some funds from my bank to hers online.

So, let's recap. In the space of about five minutes of clock time and all from the comfort of home, I...

Strictly speaking, the convenience checks aren't really necessary, because I could just transfer the balance from my credit card to checking and use a regular check, but having a paper convenience check is just a bit more... um, convenient.

But the story gets even better. My bank also has a feature where you can deposit checks from home, using nothing more than a scanner and a web browser. Since we've been getting quite a few checks from friends and family for our wedding, this is a huge time-saver. You merely endorse the check, scan the front, scan the back and bam, the funds are available for use immediately. Then you void the paper check and put it in the shredder. It almost seems like I'm making this up.

Of course, all this gloating is just cruel, since you probably can't get an account with my bank. After all, they are USAA, and membership is limited to children of existing USAA members and those who serve in the military.

Oh, and did I mention that their car insurance rates are so low that when Geico called me and asked about my driving history, age and the make and model of my car to give me a quote I laughed at it?

"Really?" they asked. "What do you pay now?" I told them what I pay through USAA and they said, "Wow. That's pretty good! Well, thanks anyway for your time."

Not only that, but if in given year USAA takes in more in premiums than it pays out in claims, they send all their members a refund check at the end of the year for the difference.

Anyway, somehow all of this posturing reminds me of an excellent quote by Jeff Meyer, editor of the famous (at the time) "Moriarty Quote List". The list was a frequently updated list of interesting quotes to use as email signatures or whatever, maintained from 1981 or 1982 through about 1995. It was available via FTP, and included the following quote in the README:

The file is a ZIP compressed file. I'm sure someone you know can explain how to unpack it; if you've been using FTP, you probably laugh at ZIP, the wind in your teeth and your hair gleaming in the hard radiation.

Related is the comic about a Linux user at Best Buy. We can be an arrogant bunch.

Oh, and if things look a little easier to read here, it's because I changed the line height on these pages to 140%, giving a bit more space between lines of text.

Friday, 3 August 2007 [21:47 CDT]

forest for the trees

After my last couple of updates, many of you might think that all I've been doing this summer is playing video games and geeking around with websites. Actually, I've been spending most of my time in wedding planning.

There are probably other things that should be on the list, but all in all it's been a lot of doing. I now know more than I'd like about the catering business and about fitting suits, but soon all the details will be nailed down and we can just get down to anxiously awaiting the day itself.

I'm looking forward to that.

Wednesday, 25 July 2007 [18:13 CDT]

bandwidth tourniquet

So, survived the onslaught of traffic from the legions of the bored. On July 20, the heaviest day, the site had 71,380 hits.

By looking at my server logs, I noticed that most of my bandwidth was consumed by people downloading either (or both) of two PowerPoint files. One was 33 MB in size, the other 15. The problem is that my presentation slides are more like Steve Jobs' and less like Bill Gates': they are rich in images and contain almost no words or anything helpful to a viewer that wasn't present for the talk in question.

Quoting from the Presentation Zen article linked above:

In the world of PowerPoint presentations, then, you do not always need to visually spell everything out. You do not need to (nor can you) pound every detail into the head of each member of your audience either visually or verbally. Instead, the combination of your words, along with the visual images you project, should motivate the viewer and arouse his imagination....

So, over 90% of my bandwidth was being siphoned away as hundreds of people downloaded multi-megabyte files that were useless to them. In fact, I'm not sure why I even had them linked there. I've taken away the links for now, and that helped immensely with my bandwidth woes.

The readership of that site is still up quite a bit. Although the link to my site is no longer on the front page of, I've still averaged over 21,000 hits per day for the last four days. For comparison, I averaged 12.5 hits per day for the first ten days of the month.

I also took the opportunity to make some slight code changes to the site while I was at it. At my current burn rate, I think I could handle up to nearly 80,000 hits a day without going over monthly my bandwidth cap, so that's good.

In other news, I've been working on quite a bit of wedding planning the last week or two. If I get the chance, I'll write up a summary soon showing what I've really been busy with lately.

Friday, 20 July 2007 [18:42 CDT]

bandwidth hemorrhage

Oh my. My Don't Be Creepy site is on the front page of Normally I never break 50 hits a day, but on July 18 (for example), I had 16,401 hits. That's a 32702% increase for those keeping score at home.

Props go out to Keegan, one of my non-creepy students, who was up with the Woot-Off and emailed me at 2am last night with the heads-up.

Friday, 20 July 2007 [01:22 CDT]

all the love in the world

Actually late Thursday night....

I have every heart piece on Hyrule. Talked to all the cats, herded the goats in two minutes flat. Out-slid both Yeto and Yeta. Finally tracked down every obscure shot of landscape that Fanadi could show me. And the only walkthrough help I used was to find the compass in the Fire Temple (Goron Mines) since I thought perhaps I'd missed a heart piece in there. (I hadn't.)

Thanks to a walkthrough, I also have every bug and thus a giant wallet. I got 25 points in the river game and doubled the capacity of all three of my bomb bags. I have all four bottles, and rare chu jelly in one and blue chu jelly in the other three.

Next time I play, I'm going to beat the Cave of Ordeals. When I only had 600 rupees, three bottles (one with Great Fairy's Tears and the other two with mere fairies) I beat the first 40 levels of the Cave, but knew better than to press on. Now I've got one extra bottle, a lot more life restoration per bottle, 66% more time on my Magic Armor, and 20 hearts instead of 17 in my life meter. Plus, I have since discovered that ReDead Knights are MUCH easier to kill using the Ball and Chain than the sword. Plus, I'm starting to get the hang of the Darknuts.

I "only" have 46 of the 60 Poe souls in the game. I don't think I'm going to try to get the remaining dozen.

Oh, and tonight I crossed the 80-hour mark.

All the Love in the World is also a popular song title. I think the Bee Gees used it first. The Outfield. The Corrs. And most recently Nine Inch Nails. You can probably guess whose song I was thinking of.

Monday, 16 July 2007 [13:15 CDT]

spelling British

I am generally a good speller. I supposedly did well in or won some spelling bee when I was in second grade or whatever. When people ask me how to spell things, I'm often right. However, I always had a hard time spelling the word judgment.

I always just felt like it should have an extra 'e' in there: judgement, and I'm sure I spelled it incorrectly for years before I learned I was doing it incorrectly.

However, today, reading a random slashdot post, I suddenly became vindicated. Per Wikipedia:

The spelling judgment is found in the Authorized Version of the Bible. However, the spelling judgement (with e added) largely replaced judgment in the United Kingdom in a non-legal context, possibly because writing dg without a following e was seen as an incorrect spelling.

So, I wasn't wrong, just British.

Friday, 29 June 2007 [13:54 CDT]

much ado

I should update more frequently over the summer. So many things have happened since the beginning of this month!

Here's a bulleted list, in chronological order:

Deanna and I haven't been able to spend nearly as much time together as we would have liked these past few weeks. I miss her!

Anyway, I'm caught up now. Next week may actually be a bit more sedentary. Oh, and if you haven't yet purchased me anything for my birthday, you've still got a couple of days.

Tuesday, 5 June 2007 [16:52 CDT]

listing my wishes

Speaking of customer service, Cingular got the replacement phone to me the next day after I'd called them about it. Goodness!

For those of you anxious to buy me presents for my upcoming birthday, I finally got around to updating my wish list for the first time in nearly a year. It took me over three hours to do (which is why I don't do it that often), and the page now validates as HTML 4.01 Strict. Which pleases me.

Even though I beat Super Paper Mario almost a week ago, I've still been playing it quite a bit every day. There's quite a bit of gameplay left even after the main plot is over. In fact, it took me around 25 hours to beat the main campaign, and I'm now over 43 hours total play time. I'm nearly done with that, though, and I can turn to finishing Zelda, finally.

Tonight Deanna and I have been invited to an advance showing of "Evan Almighty", which is (I think) the Noah-themed sequel to "Bruce Almighty". Should be fun.

Also, my brother Paul, his wife and their youngest son are coming down to spend a couple of days in Austin so they can check out the teacher job fair on Thursday. Which also should be fun.

Wednesday, 30 May 2007 [17:17 CDT]

customer service

I decided that I'd better update today or I'm in danger of missing the month of May entirely.

School is out. I've been "free" for nearly 24 hours now. Today I celebrated by sleeping in and finally finishing off Super Paper Mario.

I'd like to talk a little bit about good customer service.

Some of you know that when I was playing Twilight Princess, I inadvertently trigged the "broken cannon room" glitch. If you accidentally save your game and then quit in the room containing a broken cannon, when you load the game back up, the trigger you need to escape the room is no longer there. You're trapped in the room forever, and there's no way to continue that saved game.

When I hit this bug back in January, it put me off the game for months. I just didn't have the stomach to go back and replay the 22 hours of plot that I'd done since my most recent other save. However, back in April, I learned that Nintendo was offering free replacement discs for those caught by the glitch.

I wrote Nintendo, and they told me to call. I called, and they gave me an address to send my "defective" disc to. I shipped it to them, and in a couple of weeks, they'd shipped me a new disc!

However, much to my chagrin, they'd mistakenly sent me the wrong disc! They'd sent me one the still featured the bug! So I called them back up, and they sent me a pre-paid UPS shipping label to return the disc a second time. Another couple of weeks passed, and this time the new disc worked, finally fixing the bug. Now I can continue with the saved game that I haven't been able to play since mid-January. And I was only out the postage I'd paid to ship them the first defective disc.

I've also been having problems with my cell phone: a Nokia 6102i. The screen has started acting wonky; sometimes when I open the phone the screen is blank or sometimes with some sort of static on it. I can usually get the screen to start working again if I'm patient, but it takes forever and has just been getting worse.

So this afternoon I called their warranty replacement number (since the phone is less than a year old) and they told me how to back up all my numbers to the SIM card and are shipping me a replacement phone at no cost. Go Cingular (a.k.a. "the new AT&T").

Otherwise in the last six weeks I've been pretty busy with finishing out school. Deanna finished up her semester both with UT and ACC and got a new job for the summer: she's going to be working for UT on a government contract revamping WIC! Should be right up her alley.

That starts June 1, so this afternoon she went to her first meeting to discuss some of the research they're going to start with. This meeting was at another PhD's house. I asked her if they didn't meet at an office or something. No, meeting at an office "is for chumps," she clarifies. Damn straight.

Things with Deanna and I are still going very well. She's an amazing woman, and I'm very lucky to be marrying her!

Previous updates

news from April 2007

Older news updates (back to August 1998) can be found in the archives.