Upgrading Windows in VirtualBox

For work, I have the occasional need to use Windows. I started out with a Windows XP virtual machine, and when that went end-of-life, I upgraded it to Windows 7. The “upgrade” process was really more of a reinstall-but-with-your-old data preserved. I had to reinstall many of the applications (including Python, though I didn’t realize it at the time).

I don’t pay much attention to the Windows ecosystem, but I had heard that a lot of unseen improvements took place in 7 and beyond which should make the upgrade process easier, so when it was time to upgrade because Windows 7 was (past, oops!) end-of-life, I wasn’t too worried.

Windows has a nice nag every time you log in saying “upgrade to Windows 10!” so I did. But it didn’t like the VirtualBox video driver. I tried reinstalling the Guest Additions, but that didn’t work. I tried uninstalling the driver, but Windows helpfully reinstalled it after a reboot. A forum post suggested I should enable 3D acceleration. Still no luck.

What eventually worked was to update to VirtualBox 5.0.12 (I had been on .10) and then install the latest Guest Additions. Instead of using the “upgrade me!” pestering, I had to download the Windows 10 media creation tool and use that to perform the upgrade.

Once I got those steps figured out, the upgrade process was pretty painless (if a little slow). Everything seemed to work fairly well, though I haven’t given it an in-depth trial yet. I do like the return to a more traditional UI, the tiles of Windows 8 work great on a phone, but I don’t like them on a desktop (and even worse on a server).

RIP Matt

Once again, I find myself saying goodbye to a friend. It feels like I should be a few decades away from this, but here we are. Matt McMillin and I had an interesting friendship. We lived in the same city for years, but we never met in person. I knew Matt through Twitter, where he was one of the most funny and friendly people I ever interacted with.

Matt was completely unafraid of being himself. His sincerity helped inspire me to move from tweeting as a public persona to tweeting as Ben Cotton. The most lasting memory may be how he was the pinnacle of risky clicks (you were compelled to click because sometimes the link wasn’t a penis). That’s not to say that Matt was a crude or vulgar person, but he had his own sense of humor.

Twitter is a lesser place without him.

In defense of 140 characters

Re/Code reported Tuesday on rumors that Twitter is planning to change its hallmark 140-character limit. It appears that there are no firm plans, but there are a variety of ways this could change. The rise of the smartphone has diminished the importance of being able to fit a tweet into a single SMS message (at least in developed Western countries).

I’ve certainly been frustrated by the limit  at times. There have been thoughts left untwote because I couldn’t find a way to squeeze them into 140 characters. But I’ve also learned how to make my thoughts more concise. The need to edit forces me to consider what I’m saying and reduces the rash responses that I often give people in my head.

Is 140 characters the magic number? Probably not, but the immediacy that tweets provide probably offsets value that longer tweets would add. At some point, Twitter becomes Tumblr, and there’s already a Tumblr.

The experts say Twitter is looking to improve user and revenue numbers. I’m probably wrong, but I don’t see these changes being all that beneficial to either of those. Curbing abusive behavior and making quality content easier to find would go a lot further.

In the meantime, I’ll keep taking up whatever space Twitter gives me and hope it’s not too much.

Actually, it’s about ethics in book reviews

Bruce Schneier shared a story earlier this month about how Amazon is apparently mining information to flag book reviews when the reviewer has a relationship with the author. I write book reviews (though I don’t post them to Amazon), so this seems relevant to my interests. I can see why Amazon would do something like this. People buy books, in part, based on reviews. If Amazon’s reviews are credible, people will be more likely to buy well-reviewed books. Plus: ethics!

The first few purchases would likely be unaffected until the buyer has a chance to form an evaluation of credibility. And even then, how much stock do people put into online reviews of any product or service? I tend to only look at reviews in aggregate, unless the specific reviewer has established credibility.

I hope that my occasional book reviews have established some sort of credibility with my ones of readers. I certainly try to make it clear when I might have a bias (e.g. disclosing stock ownership or a personal friendship). Mostly, though, I’m motivated to give accurate reviews in order to advance my own thought leadership. I’m very self-serving sometimes.

On the whole, I appreciate that Amazon is trying to keep reviews fully-disclosed. I just don’t think they’re doing it very well. If a reviewer has a relationship with the reviewee and it is properly disclosed, there’s no reason to suppress the review.

Full disclosure: I own a small number of shares in Amazon.

How I shot myself in the foot with pylint

I mentioned this in passing in a recent post, but I thought I deserved to make fun of myself more fully here. One of the things I’ve tried to do as I work on code I’ve inherited from predecessors is to clean it up a bit. I’m not a computer science expert, so by “clean up”, I mostly mean style issues as opposed to improving the data structures or anything truly useful like that.

Most of the development I do is on Python code that gets compiled into Windows executables and run as an actuarial workflow. I discovered early on in the process that if I’m working on code that runs toward the end of the workflow, having to wait 20 minutes just to find out that I made some dumb syntax or variable name error is really annoying. I got in the habit of running pylint before I compiled to help catch at least some of the more obvious problems.

Over time, I decided to start taking action on some of the pylint output. Recently, I declared war on variables named “str”. Since str() is a Python function, pylint rightly complained about it. Since the method that used “str” did string replacement, I opted for the still-not-great-but-at-least-not-terrible “string”. I replaced all of the places “str” appeared as a variable and went about my business.

As I was testing some other changes, I noticed that some of my path replacement was failing (though I didn’t know that’s where it was at first). So I shoved a whole bunch of logger calls into the “prepare” script to see where exactly it was failing. Finally, I found it. Then I shoved more into the module where the failure happened. I had to work down through several method calls before I finally found it.

There was still one instance of “str” there, but now Python thought it was the str() builtin and got really confused. In hindsight, it should have been totally obvious that I had inflicted this pain on myself, but several days had passed and I had forgotten that I had messed around in that function. I should have consulted the revision history sooner.

Book Review: “An Astronaut’s Guide to Life on Earth”

Shortly before I left for a conference in Washington, D.C., a friend told me that astronaut and Internet sensation Chris Hadfield would be signing his new book the day I arrived. I didn’t even know he had a book coming out, but I figured I shouldn’t turn down the opportunity to get an astronaut’s autograph, so I pre-ordered it. My impression of Colonel Hadfield was that he was a humble and genuine person.

An Astronaut’s Guide to Life on Earth reads the same way. Hadfield takes the reader through his life and career with a degree of humility only a Canadian could achieve. He tells the stories with such enthusiasm, as if he’s in awe of his entire life. The descriptions of views from space are particularly compelling, and the reader can easily place himself aboard the International Space Station.

One might not expect astronaut skills to be very applicable to daily life. However, as I read this book, I found myself drawing inspiration from his words. His focus on “working the problem” particularly resonated with me. I consider it no accident that the day after I finished the book I made a significant breakthrough on a problem that had been vexing me at work. Although the stakes are much higher for astronauts, we can all benefit from the astronaut way of thinking. Hadfield took great care to point out that being accepted into the astronaut corps did not make him an astronaut. Even a trip to space is not sufficient. Astronauthood comes from years of training, practice, failure, and — most importantly — developing the right mindset.

Hadfield’s advice, developed from years of surviving some of the most dangerous jobs on the planet, focuses on what seem to be negative thoughts: sweating the small stuff and “what’s the next thing that could kill me?” He does an excellent job of explaining how these negative thoughts lead to positive outcomes. The lessons are readily applicable to everyday life, even for the earthbound. This is a masterfully-written book. It is both entertaining and inspiring.

Trying various razor blades

Note: the links in this post go to Amazon.com with an affiliate code. If you purchase from these links, Amazon gives me a tiny cut of the revenue. I am otherwise uncompensated for this post.

About two years ago I switched from using a Gillette Mach 3 to a double-edged safety razor. When I first bought my razor, I just bought a pack of whatever blades seemed like a good value. When that supply began to run low, I thought it would be a good idea to shop around a bit. My friend Andy had a sampler of a variety of blades, so he traded me a few of his. Thus begin several weeks of not-at-all-scientific testing.

The blades I tested with.

The blades I tested with.


I had originally purchased Personna blades, which come in a handy container that stores your used blades for safe disposal. The shave was alright, but I found it tended to irritate my neck quite a bit, especially from the second shave onward. This is what inspired my quest for a better shave.


My first new blade was the Shark. While I didn’t have the problem this guy had, I was definitely a little more nicked than normal. There was no irritation, though. Subsequent shave attempts with the Shark proved much better.


The Astra blades gave a pretty nice shave. There was nothing particularly memorable about them, but I recall liking the experience. I should have taken notes.

Durablade 7 A.M. Plus

Initially, I didn’t notice these blades since the color of the wrapper was very similar to the other Durablades (below). I discovered them after I had already ordered more blades. The shave was great: very smooth, with no irritation or nicking.

“Israeli Personna”

This unlabeled blade, which is known as the “Israeli Personna“is one of Andy’s favorites. There is no universal “best” blade, and this is a prime example. The blade felt like it was too short, and it took several passes to get a shave that was sufficiently smooth.

Durablade Sharp

This blade was so bad that I had to force myself to use it more than once. It pulled fiercely. I hated it.

The verdict

I ended up buying 100 Shark blades, which will probably end up being about a two-year supply. Had I found the 7A.M.s before I ordered the Sharks, I would have had to flip a coin or something. The Astras would have been a good choice, too. The others I probably won’t use again.

The downside to the Sharks is that they come in cardboard boxes, which left me needing some way to dispose of used blades. I found an empty Arizona tea cannister (metal) in the garage. A little bit of JB Weld to keep the lid on and a small slit cut with the Dremel and I now have many years’ worth of safe blade storage.

It’s beginning to look a lot like LISA

We’re just over two months from the Large Installation System Administration (LISA) conference, and the website has recently been updated with details. I’ve never been to this conference before, but as a member of the official blog team, I’ll get to spend the week doing nothing but participating in, and writing about, LISA ’10. Can I write two blog posts and countless tweets every day? It will be a challenge, and I’m sure I’ll be tired of writing by the end, but there should be plenty to write about.

With three days of workshops, 48 training courses, and three days of technical sessions,  there’s plenty to choose from.  I’m especially interested in the talk “Measuring the Value of System Administration” scheduled for Thursday morning.  Of course, each evening there will be Birds of a Feather (BoF) sessions, which I’m told are the most valuable part of the whole LISA experience.  BoFs are an informal meeting of the minds, where admins who do similar work compare notes and pick up new ideas to bring home.  And drink beer.  I’m okay with that.  The BoF schedule is still pretty thin, but no doubt it will fill out as November approaches.

If you’re interested in attending LISA, you can register online at http://www.usenix.org/events/lisa10/registration/.  Registration is available in half-day increments, so you can pay for exactly the amount of conference you want, and if you register by October 18, you get the “early bird discount.”  I hope to see you all in San Jose!

Book review: “The Breathtaker” by Alice Blanchard

Enjoying both tornadoes and mystery novels, Alice Blanchard’s 2003 work The Breathtaker seemed a natural fit for me.  In a sense, it was.  I read it much faster than I normally read books, and I found myself trying to guess the twists along the way.  However, I found the ending to be completely unsatisfactory.   The killer, as always, is not who the reader thinks it is, and when it was revealed, I found myself quite surprised.  There was no way I saw that coming.  The killer’s reason becomes clear as well, but it is never explained why the victims are selected.  The killer says that there are people “so evil…they deserve to die,” yet it is never explained what made these particular victims evil.  In fact, the killer’s motivation in the final chapters is decidedly unclear.  My initial thought upon finishing the book was “well, where’s the rest of the story?”

I will say this: Blanchard did her homework. Although there are a few parts that offended the meteorologist in me, the terminology and weather descriptions were fairly accurate throughout, even if the references were a bit forced in a few places. Certainly the novel is far ahead of other artistic works in that regard (I’m looking at you, “Twister”!)

The most annoying part of this book for me was the writing style.  There were a few points where I had to stop reading because I felt the descriptions and dialogue were trying way too hard. Blanchard suffers from the same problem that I’ve noticed in other female authors: unconvincing male dialogue (before anyone gets up in arms, I’m sure there are many men who do not write convincing female dialogue). All-in-all, though, the book is an enjoyable read, and it’s not likely that most readers will guess who the killer is before the protagonist does. If you’ve got a free weekend and you want to never see a thunderstorm the same way again, give this one a try.