Introducing redacted horoscopes

On Sunday,  I was sitting down with the newspaper. The crossword puzzle was proving to be more of a challenge than I particularly cared to tackle. My eyes wandered to the horoscopes. I started redacting words and realized that they became funny. Channeling my inner Yossarian, I ran my pen through the rest.

The horoscopes were short enough to tweet, so I did. They got a good reception, and I decided this should be A Thing [tm]. Thus, a new Twitter account (@RedactedHoros) and finally some content in the fun & games section. Redacted Horoscopes
will update most Sundays and also on the occasional weekday.

If you never test it, it doesn’t exist

Did you hear the one about the Texas couple who spent seven years paying for an alarm system that never worked? It’s easy to blame the vendor (especially since it’s Comcast) since 1) the system was not correctly installed and 2) when the homeowner noticed, the customer support agent said the system hadn’t reported in since 2007. Certainly Comcast shoulders a lot of the blame. After some pressure, they agreed to refund the full seven years worth of payments. However, the Leeson family is responsible as well. In seven years of paying for an alarm system, they apparently never tested it themselves.

A service that is never tested does not exist. If you don’t test it when you don’t need it, you can’t count on it being available when you do. It’s why emergency managers test outdoor warning sirens. It’s why hospitals test their generators. It’s why sysadmins test their backups. So here’s my challenge to you, dear reader: think about systems you rely on and test them — before you need them.

New entry in the Forecast Discussion Hall of Fame

You have probably already seen an early-morning AFD from Juneau making the rounds on the Internet. The forecaster compares selecting a model to speed dating. Although the bulk of the humor is in the first paragraph, the theme persists through the rest. Certainly this is a cultural touchstone worthy of enshrining in the Forecast Discussion Hall of Fame.

Hands-on with the Roku Streaming Stick

Two years ago, my wife and I decided that we didn’t really watch enough TV to justify a cable subscription. With a baby in the house, we tended to have the music channels on more than anything else. A Pandora subscription (that I already had) was more than a suitable replacement and Netflix could provide enough video to keep us entertained. So I bought a Boxee Box and we cut the cord. The Boxee Box was more expensive than other options, but it had the ability to stream from local media, which I thought would be a critical feature. As it turns out, we never used that.

It wasn’t too long after we bought the Boxee Box that Boxee decided to go in a different direction. The Boxee continued to work, but no more updates were coming. This meant not getting Netflix profiles. It meant that some streaming websites (particularly ESPN) no longer worked in the browser. And as I discovered at the beginning of baseball season, it meant no more MLB.tv.

That was the last straw. Since Roku had recently released their streaming stick, I decided to order one. At $50, it was far less than I had paid for the Boxee Box, and it supported everything we used on Boxee, plus additional content. I was pretty excited when I set it up. The excitement didn’t last long. I apparently got a lemon. Fortunately, the Roku technical support folks were helpful, and I had a replacement unit sent. The replacement has worked well for the last two weeks.

There was no particular reason I went for the streaming stick over other form factors. My TV can’t provide power directly, so I still have to plug it in to the wall. But it was cheap and relatively novel, so I figured “why not?” The streaming stick is a little under-powered; it takes considerably longer for Netflix to load than the Boxee Box did. It also lacks the QWERTY keyboard that was an excellent (albeit un-lit) feature of the Boxee Box’s remote. However, that’s the sum of my dislikes.

Roku has a large variety of apps, but unlike the Boxee, they aren’t all pre-installed. That means you only have to wade through the apps you want to use. Unlike Boxee’s apps, there are more than two that we use on the Roku. PBS and PBS Kids were immediate additions, as was NASA TV (my daughter is really into space right now). Weather Underground’s app is nice, when we bother to use it. The Pandora and Netflix apps work quite well. And, of course, MLB.tv allows me to get my fix of Orioles baseball. Since we got the Roku, the Boxee Box has remained off. This means no more loud fan noises, no more sudden jumps in Netflix volume, and no more having to manually shut it off when the shutdown menu doesn’t work. Clearly the Roku streaming stick was the right decision.

The right way to do release notes

Forever ago (in Internet time), the developer(s?) of Pocket Casts released an update with some really humorous release notes:

Release notes for Pocket Casts 3.6.

As I do, I got thinking about how I felt about it. While my initial reaction was to be amused, I quickly turned to finding it unhelpful. In fact, most apps have awful release notes. My least favorite phrase, which seems to appear in the release notes of every updated app on my phone, is “and bug fixes.”

Despite the title of this post, there’s no one right way to write release notes. The “right” way depends on what you’re releasing, for one. In a Linux distribution like Fedora, release notes could be composed of the release notes for every component package. However, that would be monumentally unwieldy. Even the Fedora Technical Notes — which report only the changed packages, not the notes for those packages — is not likely to be ready by too many people. The Release Notes are a condensed view, which highlight prominent features. The Release Announcement is even further condensed, and is useful for media and public announcements. This hierarchy is a good example of the importance of the audience.

I’ve seen arguments that release notes are unnecessary if the source code repository is accessible. Who needs release notes when you can just look at the commit log? This is a pretty lousy argument. A single change may be composed of many commits and a single commit may represent multiple changes (though it shouldn’t). Not to mention that commit messages are often poorly written. I’ve made far too many of those myself. Even if the commit log is a beautiful representation of what happened, it’s a lot to ask a consumer of your software to scour every commit since the last release.

My preference for release notes includes, in no particular order, a list of new features, bugs fixed, and known issues. The HTCondor team does a particularly good job in that regard. One thing I’d add to their release notes is an explicit listing of the subsystem(s) affected for each point. The exact format doesn’t particularly matter. All I’m looking for is an explanation as to why I should or should not care about a particular release. And “fixed some bugs” doesn’t tell me that.

Amazon VPC: A great gotcha

If you’re not familiar with the Amazon Web Services offerings, one feature is the Virtual Private Cloud (VPC). VPC is effectively a way of walling yourself off from all or part of the world. If you’re running a public-facing web server, it might not be so important. If you’re running a compute cluster, it’s a no-brainer. Just be careful about that “no-brainer” part.

While working on a new cluster for a customer today, I was trying to figure out why the HTCondor scheduler wasn’t showing up to the collector. The daemons were all running. HTCondor security policies weren’t getting in the way. I could use condor_config_val from each host to query the other host. I brought in a colleague to double-check me. He couldn’t figure it out either.

After beating our heads against the wall for a while, and finding absolutely nothing helpful in the logs, I noticed one tiny detail in the logs. The schedd kept saying it was updating the collector, but the collector never seemed to notice. The schedd kept saying it was updating the collector via UDP. How many times had I watched that line go by?

The last time, though, it clicked. And it clicked hard. I had set up a security group to allow all traffic within the VPC. Except I had set it for all TCP traffic, so the UDP packets were being silently dropped. As UDP packets are wont to do. When I changed the security group rule from TCP to all protocols, the scheduler magically appeared in the pool.

Once again, the moral of the story is: don’t be stupid.

Thoughts on Comcast and Time Warner Cable

When I wrote a review of Susan Crawford’s Captive Audience two months ago, I didn’t expect to be revisiting it so quickly. Then came the news that Comcast was planning to buy Time Warner Cable, gaining a few million more customers and several regional sports networks. With the acquisition of NBC, Comcast is clearly making a play to be in the content business. There’s not much growth potential left in being a service provider, so it makes sense that Comcast would want to hedge their bets. That’s why I suspect they’re more interested in acquiring regional sports nets (live sports being one of the main reasons people don’t cut the cord) than the few million subscribers they’d pick up if the deal is approved.

It’s not like Comcast and Time Warner were really competing, despite how “competitive” the FCC and Comcast claimed the industry to be a few years ago. The cable companies largely have agreed not to step on each others’ toes. In most places, customers have exactly one choice for cable TV provider. Individual consumers will see no difference in the competitive landscape, so it’s easy to dismiss this as a non-issue (as I initially did). Where this may get interesting is when it comes time for networks to renegotiate carriage agreements. Comcast would have greater leverage to low-ball content providers, potentially squeezing a few out of business. As long as other modes of TV exist (e.g. satellite, AT&T U-Verse), I expect Comcast will remain somewhat constrained in their ability to harm content providers, but they’ll continue to be able to prevent competition from sprouting up.

Of course, it’s not guaranteed that this buyout will occur. Despite the relative ease with which the FCC and the Department of Justice approved Comcast’s purchase of NBC, the landscape has changed somewhat. Denying AT&T’s purchase of T-Mobile was a surprisingly pro-consumer decision, and it’s possible that this deal is doomed as well. I don’t follow Washington closely enough to say what’s likely. All I know is that I can’t wait for Metronet to extend their fiber offering to my neighborhood. I’ve been told it may happen as early as next month.

Online learning: Codecademy

Last week, faced with a bit of a lull at work and a coming need to do some Python development, I decided to work through the Python lessons on Codecademy. Codecademy is a website that provides free instruction on a variety of programming languages by means of small interactive example exercises.

I had been intending to learn Python for several years. In the past few weeks, I’ve picked up bits and pieces by reading and bugfixing a project at work, but it was hardly enough to claim knowledge of the language.

Much like the “… for Dummies” books, the lessons were humorously written, simple, and practical. Unlike a book, the interactive nature provides immediate feedback and a platform for experimentation. The built-in Q&A forum allows learners to help each other. This was particularly helpful on a few of the exercises where the system itself was buggy.

The content suffered from the issue that plagues any introductory instruction: finding the right balance between too easy and too hard. Many of the exercises were obvious from previous experience. By and large, the content was well-paced and at a reasonable level. The big disappointment for me was the absence of explanation and best practices. I often found myself wondering if the way I solved the problem was the right way.

Still, I was able to apply my newly acquired knowledge right away. I now know enough to be able to understand discussion of best practices and I’ll be able to hone my skills through practices. That makes it worth the time I invested in it. Later on, I’ll work my way through the Ruby (to better work with our Chef cookbooks) and PHP (to do more with dynamic content on this site) modules.

Book review: Captive Audience

I recently learned Of Susan Crawford’s book Captive Audience when she was a guest on the “This Week in Law” podcast. In Captive Audience, Crawford examines the merger of Comcast and NBCUniversal. Crawford makes no attempt to hide her feelings on the nation’s largest cable provider getting (further) into the content business. The book is more of an advocacy journalism work than a dispassionate academic report. Comcast’s supporters may object to Crawford’s arguments, but her characterizations are refreshingly fair. She is quick to point out that the players are acting, not like evil madmen, but rational business actors pursuing their self-interests. Her main concern is that these interests do not line up with what she believes to be the public’s best interests.

Crawford does not blame Comcast CEO Brian Roberts for this disconnect, though his company has worked tirelessly to keep the status quo. The root of the problem is that the Internet industry is both unregulated and uncompetitive. Crawford rejects the notion that DSL, cellular, and satellite services are competitors to cable companies. DSL is too slow and satellite too high-latency for modern Internet applications and cellular, while convenient, is limited by lower bandwidth and small screen sizes.

The state of regulation for cable providers is like that of the early days of the rail road and electrical industries, which is to say non-existent. Cable providers lack the common carrier requirements imposed on the phone companies. As a result, Comcast and others are free to turn the Internet into a walled garden of curated channels, much like the current state of cable television. As dire of a picture as Crawford paints, it’s hard to see it as a likely threat. Plausible, certainly, but I don’t see it on the horizon.

Nevertheless, America clearly has an Internet problem. Our speeds and prices are worse than most of the developed world. In an age where high speed Internet access is increasingly important to social, academic, and economic activities, one third of Americans don’t subscribe to high speed Internet service. A strong correlation between non-subscribership and low socioeconomic status. If Internet connectivity is necessary for prosperity, expensive Internet prevents upward mobility.

Absent competitive pressure, the public interest can only be enforced by regulation. Interestingly, it was the Nixon administration that first sought to prevent monopolies in the cable industry. In recent years, Republicans and Democrats have proven equally unwilling to impose regulation on the industry. Municipal and private sector fiber installations seem to be the only near-term hope for keeping Comcast in check.

In short, I found Captive Audience to be an informative and compelling read. Crawford takes the reader through the history of monopolies in the United States and of the cable industry. She examines the technical and political reasons that Comcast became and remains a monopoly. In closing, Crawford looks at the effect that the Comcast/NBC merger had on AT&T’s failed attempt to purchase T-Mobile. I highly recommend this book to anyone interested in Internet policy.

I’m famous, sorta

One of my co-workers happens to be a co-host of “Food Fight“, a DevOps podcast. Last week, he asked for someone to join in for a crossover episode with “RCE“. When nobody else volunteered, he roped me into it. It turned out to be pretty awesome, I would have loved to extend the conversation a few more hours. With any luck, I’ll re-appear on one of those shows sometime. As you may already be aware, one of my goals is for Leo Laporte to personally invite me to the TWiT Brickhouse to get drunk with him on an episode of “This Week in Tech.” I feel like I’ve moved a little closer today.

Anyway, here are the links: