TLF on Google

I really like reading The Technology Liberation Front, but they’re in serious disarray over Google’s bid to force the 700 MHz band open. The backstory, for those who haven’t been following it: the FCC is about to auction off the last major block of radio frequencies that will become available for ten years or so. They’re particularly delicious frequencies, too, able to penetrate buildings and carry lots of information. Google’s been lobbying the FCC, hoping that the agency will require some or all of the winning licensees to keep their networks open: they’d have to let new services and devices connect instead of getting to pick who connects and what services they offer, the way today’s cellphone companies do.

This has thrown TLF into a tizzy. They’ve responded by providing hefty helpings of hand-wringing, ludicrous potshots, and, yes, some actually reasonable analyses of the situation.

It’s easy to see why they’re going nuts over this: their no-regulation ethos naturally favors big companies throwing their weight around. It’s the market working! But Google is also a big company. And it’s also throwing its weight around. Except this time, the weight is being thrown in the direction favored by those of us who want more regulation — the net neutrality cranks, communists and starry-eyed idealists. It’s a very confusing situation for market triumphalists, and it undercuts a whole class of “let ‘em play ball” arguments.

Consequently we get posts like this one, which is wrong in a number of ways:


the weekend in tags

AV Ristorante, 2.5 hours, angry hostess, burnt lasagna, party, Tom Collinses, cookies, pretzels, burns, sleep, hangover, rental car, drive, mom, visit, vineyard, Cooper Minis, surly vintner, gross chocolate wine, dinner, Obrigado restaurant, adorable cats, fresh tomatoes, drive, unexpected carnival, Sidewinder, bruises and screaming, lost change, creepy carnies, fresh lemonade, corn dog, funnel cake, clown trash can, mechanical bull, gauchos, dunk tank, gambling, quarters, drive, sleep, drive, west virginia, river, tubing, beer, Harpers Ferry, dinner, storm, soft serve, storm, drive, home, Harry Potter, sleep.

The weekend gets an A+

bonus additional whining

I’m not sure how to blame the Fenty administration for this (yet), so it gets its own post — a pathetic attempt to attract, via Google Alerts, the attention that my email to support@ hasn’t.

So: RANCHERO SOFTWARE’S NET NEWS WIRE is a piece of junk. I paid for this application a year ago. Along with it came a year’s worth of their NewsGator service, an RSS-synching feature that I had no use for. That NewsGator trial expired on Saturday — and my copy of NNW suddenly decided it, too, was no longer interested in working. It now thinks it’s expired shareware, and asserts this fact in a maximally-annoying way: by disabling manual feed refreshes and the “next unread” buttons. There are probably other even-more-insidious limitations that I haven’t yet found. I’m scared to look.

I know, I know: use Vienna, use Fire, use Google Reader. The truth is that I like NNW’s interface a lot. And hey, I’ve already paid for it. Or I thought I did, anyway.

A-HA!: “Mark all as read” also doesn’t work. Fantastic. And it turns out I could’ve upgraded to version 3.0 for free as late as Friday (when my NewsGator subscription ran out) — maybe my failure to get the latest & greatest is what’s responsible for the current malfunction.

Ranchero eventually wrote back and confirmed that I was experiencing a bug, not an unusually evil licensing policy. They’ve made everything better, and I’m once more a happy customer — see here for more.

city livin’

I woke up this morning to the banality of jackhammers. Construction crews were tearing up the street, redoing the lousy, lumpy patch job left by the workers who’d replaced our lead water pipes weeks ago. There was a $50 ticket on the hood of my mercifully un-towed rental car — my fault, I’d forgotten about the paper “No Parking” notices.

Next to the car, a lingering pile of trash: the overflow the garbagemen only sometimes deign to pick up. Our neighbors helped themselves to all but one of our city-issued bins a while ago. I’ve called twice for replacements, but other than reference numbers I haven’t received anything in return.

God dammit, DC. This is all a bit much for a Monday morning.

command line rock

curl | grep "<location" | perl -ple "s/<.*?>//igx" | xargs curl -O

Thanks for the heads-up, G/Catherine.


Kriston and Kate dragged Emily and I, kicking and screaming, out to get some culture last night, having purchased tickets to Too Much Light Makes The Baby Go Blind on our behalf. “It’s okay,” Emily assured me, “We can always leave and go see Die Hard — it’s only a couple of blocks away.”

But the play was great; if there are any performances with unsold tickets left, you should go. I thought the entirely serious pieces didn’t work all that well, partly because there were so few of them and partly because they were a bit banal (yes, the Iraq War is bad; yes, Jesus probably wouldn’t persecute gay people). But the rest of the plays were consistently hilarious, and never even a little boring.

Chris’s DCist review is here.

“expecto patronum” is not valid syntax

Shortly after posting the Unfoggedbot I got this email from Stanley:

Is there anywhere that Joe Humanities Degree can go to to learn how to do this sort of thing?

Needless to say, this sort of request warms the cockles of my heart (whatever those are). And today, in the aftermath of various recent demonstrations of scripting languages’ utility, it might be a good time for me to press my case.

So: yes! Yes, a thousand times yes. You can learn a scripting language, which is the easy way to put together an IM answerbot, or a ballot-stuffing bot, or whatever else. In fact, you not only can but probably should. Scripting languages are a powerful way to control computerized systems. The computerization of the world is obviously nowhere near complete, but it’s getting there quickly — and that means that the relevance and power of scripting languages are only going to increase. You can already control various pieces of the physical world with this technology, like lights and thermostats. And if you use Excel or perform repetitive tasks on a computer in your daily life, you can likely save yourself some drudgery with a well-written script. Soon enough your toaster, garage door and television will be accessible through these languages, too.

There will be other ways to control the electronic world, it’s true. People will continue to invent visual metaphors like Yahoo! Pipes and Lego Mindstorms that expose some of the capabilities of programming in an accessible way. But we’re a long way from the day when these GUIs confer the same power that knowledge of a scripting language affords. Besides, they tend to rely on metaphors that are more easily learned through a text-based programming language.

And that’s important. Along with the ability to manipulate the devices and information around you, learning a little programming will help you understand how engineers think. If you familiarize yourself with the sausage-making side of computers you’ll begin to develop an intuitive understanding of hardware and software interfaces which, as I mentioned, will comprise a larger and larger portion of the world. You’ll never have to be one of those hopeless codgers reduced to asking his or her grandkids for help programming the hyper-VCR.

So how should you approach this worthy undertaking? The best way is probably to pick a scripting language and start perusing the materials that are available. But which scripting language? In some ways it doesn’t matter — you’ll need to learn what a variable is, how an if..then statement works and what a for loop does in any of them. But you may as well hear the nerd scuttlebutt on each and then make an informed choice. So let’s look at the big three first:


last year’s model

There are too many folks competing in this year’s MediaBistro beauty pageant for me to take sides. But I’m always eager to convince my friends to learn some scripting mojo (seriously, it’ll make your life better). So here’s the code that worked last year. How to configure it, modify it, and run it is left as an exercise for the reader.

use WWW::Mechanize;
my $num_votes_to_make = 9999; # this would be a bit obvious, wouldn't it?
my $min_sleep_time = 1; # sleep at least a second between votes
my $max_sleep_time = 10; # but no more than ten seconds
my $mech = WWW::Mechanize->new();
$mech->proxy(['http', 'ftp'], ''); # use a Tor proxy on port 8118 to hide our IP address (
for(my $i=0;$i<$num_votes_to_make;$i++)
print "voting...\n";
my $url = '';
$mech->get( $url );
form_number => 0,
fields => {
rsld => '330'
my  $random_sleep_time = int(rand( $max_sleep_time-$min_sleep_time+1 ) ) + $min_sleep_time;
print "sleeping " . $random_sleep_time . " seconds...\n";
sleep $random_sleep_time;

the primary will be conducted on Facebook

The YouTube debate was more entertaining than a usual debate, I’d say, but Yglesias is right that it basically amounts to a fresh coat of paint on the same tired format presided over by the same anonymous media potentates. Except now, apparently, a percentage of all questions will be posed as irritating songs. Thanks, unknown CNN producer who still thinks JibJab is funny!

I did enjoy Joe Biden’s response to this question, though:

He sort of lost his momentum partway through — you can see him thinking I’m being too blunt… This could ruin my chances at the presidency! But for a second he seemed to be struggling to express the idea that enabling crazy assholes to collect deadly Beanie Baby/Pokemon surrogates doesn’t top any sane politician’s list of policy objectives.