The Economics of Weather Forecasts

The Freakonomics Blog has a fasciating report on the horrible accuracy of TV weather stations. Although I don’t find the results remotely surprising, the data reflect such a profound lack of insight that I’m forced to reevaluate whether watching the weather is worth my time at all. For most people, going outside, looking at the sky, and paying attention to changes in humidity seems as if it would yield more accurate results.

The End of MySQL (Updated)

Sun has just announced that they will begin close-sourcing MySQL. For years, I’ve avoided MySQL due to a mixture of paranoia (I’ve had extremely bad experiences with MyISAM-backed data stores) and disdain for their shoddy standards compliance (which has bitten me before in nontrivial ways). Now I can also avoid them for not being open-source.

My standardization on PostgreSQL for this website feels more rational by the minute.

Update: The originally linked article wasn’t quite correct. MySQL AB’s CEO explains that they will not be making the MySQL core closed-source; merely new, enterprise-specific features. You can read his whole statement for more information. This position is more reasonable, and is similar to the relationship ElephantDB has with PostgreSQL.

The Worthless ISOification of OOXML

Tim Bray makes the same argument I’ve been making for months on why ISO-certified OOXML won’t actually make a lick of difference. At least the ISO has successfully proved how corruptible they are for all geeks to see, so I suppose the approval process wasn’t totally useless.

Yahoo Finally Starts Making Sense

Yahoo just announced that they’re buying a company that makes a competitor to Google Analytics and releasing it for free. This is the first rational thing I’ve seen coming from Yahoo in quite some time. Although I’m not a big fan of the “buy product, release for free” business strategy, a web traffic analyzer is a perfect loss-leader for Yahoo, because it should boost their ailing ad program. The value of Google Analytics for Google is that it helps me maximize my AdWords revenue. That means more immediate revenue for Google and increases the chance I’ll use them again in the future. Now that Yahoo’s own ad program will have a similar tool, they should be better positioned to get and retain business from web publishers. Whether that actually ends up being the case depends on a large number of things—the quality of the purchased product, how well integrated it will be with Yahoo Publisher—but at least it’s a step in a very good direction for Yahoo.

The New Blogging System

As you probably noticed, WordPress got swapped out for MovableType last night. The good news is that I’m rapidly falling in love with the new system and expect to have this site back with sane templates by the end of next week. The bad news is that all the user accounts were lost. All comments have been preserved, mind you, but if you previously had an account, you’ll have to reregister.

On the bright side, I’ve opted to experimentally enable OpenID support. I’ll be monitoring it closely—I have a bad feeling about OpenID making spammers’ jobs a bit too easy—but for the time being, please feel free to comment using your OpenIDs. With luck, this blog can be one of the first to begin eliminating site-specific accounts.

Ignoring the firewall

The Coding Monkeys have released Port Map, an application to make accessing computers behind firewalls NATs easier. Unlike Copilot, which tries to work around obstinate routers, Port Map focuses on providing an easy and consistent interface for reconfiguring them. It’s hardly perfect for everything—notably, you have to have permissions to reconfigure the router causing you difficulty, making it unsuitable for corporate environments—but I can see it being quite handy if you’re just trying to ensure you can reach your home computer from work to grab a couple of MP3s.

The Return of Ada

I’m somehow having a really hard time feeling anything but dread about the prospect of a return of Ada. It seems to bear more than a passing resemblance to the last few seconds of Carrie

Some Musings on Backups

I upgraded bitquabit to Ubuntu today. I learned a few valuable lessons:

  1. Untested backup scripts don’t count. This one I knew, but I didn’t fully process that “untested” really means “untested recently.” In particular, my backup script was backing up a database called wordpress. Unfortunately, I moved all the blogs hosted by bitquabit to a database called wp last fall. Result? The backups, though minutes old, were effectively from last October. I was lucky here: I happened to have a day-old WXR file, and a friend sent me the one missing post that was still on his screen in Google Reader. Another blog hosted on bitquabit was not nearly so lucky; it will basically have to start from scratch.
  2. Backups tested on systems substantially different from the deployed system are useless. I love Citadel; it’s an awesome groupware client. And my backups and restores worked quite well—when both ends were running Debian 4. Unfortunately, I just moved bitquabit to Ubuntu 7.10. You can guess the rest.
  3. Have multiple backup strategies. Although the Citadel “migration” didn’t exactly go as planned, I was saved there by paranoia: I sync my IMAP mailboxes to my local machine in mbox format. I was back up and running about a minute after the server came back up. No data loss there.
  4. Don’t migrate at odd hours if you don’t have to. Realistically, my last-minute checks would at least have caught the fact that the blog database was borked if my brain had been more awake. The “most recent” post was, after all, more than six months old, and had encoding errors that I’ve fixed before. Then again, I didn’t catch this in the dry run on Sunday, either, so I’m not quite sure how much I can meaningfully excuse my idiocy through fatigue.

On the bright side, everything, minus a blog, seems to be fully up and operational again. There are a couple of quirks—with the blog hell, I opted to do an impromptu migration to MovableType—but I’m confident I can get things straightened out again. Meanwhile, all I can do is live and learn and hope this is the last time I have a lossy server migration.

Google App Engine now on Amazon EC2

One of my main complaints about Google App Engine is that it locks you into using Google’s servers and APIs, giving you little recourse if Google decides to terminate either the service or your contract. Well, good news: that’s changed—somewhat. Chris Anderson of Grabb.it fame has gotten a proof-of-concept App Engine clone running on Amazon’s EC2 service. Because Anderson has done little more than repackage the App Engine SDK for deployment on EC2, it cannot scale the same way that Google-based hosting (or properly written EC2-hosted apps) can, but it’s a good first step towards decreasing App Engine’s lock-in. If they’re able to layer BigTable on top of SimpleDB or an equivalent system, I could well see App Engine becoming the de facto high-traffic web application architecture.

Parental Views on Video Games

According to Ars Technica, parents would rather that their kids’ video games feature decapitations than sex. I don’t really have any commentary to add; just read the whole article.

A Poor Man's Time Machine

One of the cool new features of Mac OS X Leopard is Time Machine, a really simple backup solution for Mac OS X that not only transparently backs up your data, but also does so with an amazingly ugly GUI that lets you quickly jump back to the way that your documents were at any given point in the past. Unfortunately, Time Machine doesn’t run on my Linux boxes, so I’m forced to come up with an alternative.

The good news is that getting a 90% solution is ridiculously easy. On the back-end, all that Time Machine does is create a collection of hard links from one backup set to another. Here’s the bare minimum of a shell script that will back up the last three editions of your home folder to an external drive:

#!/bin/sh
SOURCE=/home/benjamin
DEST=/mnt/tardis
rm -fvr "${DEST}.3"
mv "${DEST}.2" "${DEST}.3"
mv "${DEST}.1" "${DEST}.2"
mv "${DEST}.0" "${DEST}.1"
rsync -av --exclude-from='backup-excludes' --link-dest="${DEST}.1" "${SOURCE}/" "${DEST}.0/"

You’ll obviously need to modify the SOURCE and DEST variables to be something appropriate for your computer. You’ll also need to create a file in your home directory called backup-excludes that’ll look something like this:

Documents/Code/3rd-party
Documents/Code/Builds
.emacs-backups

Add and modify the glob patterns so that it contains a list of things that should be skipped. Now, just make sure your external drive is plugged in, run the script, and presto! Instant backup. Quick and dirty, but gets the job done.

The Ultimate Philosophers

Whenever someone asks me who my favorite philosopher is, my answer usually elicits either a blank stare or a chuckle.

My answer is always Bill Watterson.

Watterson’s comics meant a lot to me when I was growing up. Even though I was hardly an impossible-to-manage kid (cough), I empathized strongly with Calvin’s view of the world. As a constant daydreamer myself, his blurring of reality and fiction spoke to me in a way that few other works, comic or otherwise, really could.

As I grew older, Calvin and Hobbes aged with me. The more adult themes of the comic began to appear, and I started appreciating that, as much as Calvin and Hobbes could be a pure comic strip, it was also, in a very real sense, a philosophy told in comic form. That philosophy, ultimately, was simple: love life, don’t grow old, don’t be afraid to see things differently than others, and never forget the value of love. How is that not a more beautiful, more tangible, philosophy than anything Kant, Nietzsche, or Mendelssohn ever came up with? Not as complex, certainly, but more applicable. When my parents lovingly gifted me the Complete Calvin and Hobbes for my birthday, I gave it a prominent place on my bookshelf, and have enjoyed reading a bit whenever life gets me down.

I guess it’s for that reason that today’s xkcd made me smile. xkcd, like Calvin and Hobbes, can be a pure comic, but frequently ends up actually being philosophy that uses the comic format as little more than a vehicle to discuss deeper ideas. I can’t help but appreciate the idea of the two comics’ main characters running into each other. It gives me a wonderfully fuzzy feeling for some reason, and makes for a lovely conclusion to an otherwise frustrating week.

Cold War II, Part 2

Hacking isn’t limited to pro-Tibetan groups; the Pentagon notes that cyberattacks against US defense infrastructure has greatly increased in the last few years. Given the sad state of computer security and the increased use of consumer components by the military, I strongly suspect that the average American would be petrified to learn how many national secrets we’ve failed to protect. For the time being, at least ignorance truly is bliss.

Patent Hell

I’ve been against software patents for a long time now, but when I read about stories such as satellites being turned into space garbage because the only way to fix the orbit is patented, I’m forced to question the wisdom of patents in general. I love the idea of patents; I’m just dubious that the current implementation actually works. More often than not, I see patents used not to protect a novel invention, but as a legal stick to bludgeon small competitors. That runs completely against the original intention of patents, and leaves us as a country poorer.

Yahicrosoft: the Movie

If Google has any sense at all, they’ll sit back, order some popcorn, and watch their competition commit suicide.

Couldn’t have said it better myself. My running hypothesis had been that peyote was secretly legal in Redmond. I evidently need to add Sunnyvale and Loudoun County to that list.

Cold War II

If what Wired claims about the recent Office patches is true, then we’re in deep trouble. (And, even if it’s not, the fact that few people would call such claims impossible makes me seriously question the wisdom of holding the Olympics in China.)

Windows Versions of NetNewsWire

Sadly, there’s no such thing as NetNewsWire for Windows, but today I downloaded FeedDemon, which is made by the same company and also offers synchronization with NewsGator, and was extremely pleasantly surprised. If you, like me, have a Mac at home and a PC at work, it’s definitely worth a look.

An Ode to Primer

One of my absolute favorite movies is Primer. Written, directed, and scored by an engineer who also serves as the film’s leading actor, Primer stands as a testament to what science fiction can be. Too many science fiction works either are nothing but social commentary that use science as a glorified MacGuffin, or else have plots that exist primarily to rant about new scientific ideas. Primer has neither fault, beautifully embracing hard science while having a riveting interpersonal drama based on trust and deceit. Primer‘s success is all the more amazing when you learn that it was shot for a budget of $7000 on Super 16 film stock. That’s simply unheard of these days.

Scott Tobias at The Onion A.V. Club apparently feels the same way: this week he has written a wonderful article lauding Primer‘s incredible production values. Scott talks at length about how the use of film stock over digital, and the singular drive of the film’s creator, resulted in a surprisingly high-quality independent film. It’s a good read whether you’ve heard of Primer or not—and, if you haven’t, will hopefully help persuade you to add it to your Netflix queue.

(Hat tip: kottke)

Write Your Own Google Apps

Google has announced Google App Engine, which allows you to write applications that run on Google’s infrastructure. I personally would be a bit nervous using the service for anything important—unlike Amazon S3 and EC2, making your own service-compatible alternatives is not feasible, making you inextricably tied to Google—but I suppose it could be useful for certain applications that need high scalability, integration with other Google applications, or both.

Note that all 10,000 initial invitations have already been distributed, but you can sign up to be notified when more become available.

Mercurial v. git

RockStarProgrammer has a great article on the differences between Mercurial and git at a technical level. This is exactly the article I wanted back when I was trying to pick between the various distributed version control systems.

Free speech for everyone! Except you!

One common misconception that I have long since given up trying to correct is that constitutionally guaranteed free speech means that others must provide you a platform from which to spout your views. It does not. You have a right to say what you want; I have a right to tell you that you cannot do so from my lawn. You are responsible for disseminating your views, not me.

So, at a high level, I don’t have a problem with Starbucks’ refusal to print the phrase “Laissez-faire” on their customized gift cards. They are, after all, a private enterprise, and are most definitely not a common carrier—not even of coffee.

Yet I find myself incredibly irritated at Starbucks’ refusal to be honest about what they’re doing. Starbucks claims that they will not print the phrase “Laissez-faire” because of its political message, despite the Wall Street Journal’s clear proof that they will happily print political messages—just not that one. Starbucks should have the guts to explain and defend its own policy. Claiming nonpartisanship while censoring one particular political ideology is dishonest and hypocritical.

I’m reminded of something that happened when I was a freshman at Duke. AQUA Duke, which was the LGBT alliance at the time, painted slogans all over a train bridge that crosses Campus Drive. Some of the more conservative students found the slogans offensive and argued that they should be taken down. The bulk of the student body promptly screamed bloody murder, argued vehemently that the university needed to protected freedom of speech, and demanded that the slogans be allowed to stay. The administration agreed: the university must foster freedom of speech, even when that speech offends some students, in order to encourage free academic discussion. Duke therefore allowed the slogans to stay.

Later that week, two locals came and began preaching fire and brimstone from on top of an actual soapbox on West Campus. They stood and read choice portions of the Bible and told us we were all going to hell. Though the preachers were definitely loudmouthed bigots, they were also calm, orderly, and peaceful, and were actually spawning quite the dialog on the main quad, as many students took the time to let the preachers know what students thought of their message. Had the university actually believed in freedom of speech, these fellows ought to have been allowed to stay. Instead, after about forty-five minutes, university police escorted them off campus. No students protested that their freedom of speech had been abrogated; the only discussion of the event was a short blurb in the Chronicle the next day.

Duke was definitely legally and ethically clear to allow AQUA Duke to decorate the bridge, and to evict the preachers from campus. But to claim that the university protected the former due to free speech, while evicting the latter for what they were preaching, is intellectually dishonest. Duke had—and likely still has—a policy of selective censorship. It should have admitted as much and defended the policy.

I don’t care if Starbucks wants to follow a liberal-politics-only rule for their gift cards. I just think that they should be up-front about what they’re doing and accept the consequences. Anything less is dishonest.

JavaScript for Emacs

Steve Yegge has been working for quite some time on a way to integrate JavaScript with Emacs, allowing you to code extensions in JS rather than elisp. To that end, he recently announced the availability of js2-mode, a new mode for Emacs that brings heavily revamped syntax highlighting, indentation, and on-the-fly parsing for JavaScript code.

I’ve recently been having an internal fight with myself on whether to use vim or Emacs. Although I’ve used Emacs for an incredibly long time, have a massive collection of customization scripts, and know the editor inside and out, I’m being forced to come to the conclusion that vi-based editors may have the upper edge for actually editing text. They’re simply kinder to my hands. Yet every time that I decide to give up vim for good, someone writes a tool like js2-mode that simply cannot be implemented in vim.

Maybe someday vim (or a clone) will become as trivial to modify as Emacs. Until then, I suspect I’m going to have a very hard time letting bad habits die.

Pilots, Programmers, and Perl

I don’t normally post chat conversations, but some are simply too good to ignore:

Me: So I’m getting back into Perl.

Devin: heh

Devin: does your boss know?

Me: ?

Me: I don’t get why I’d need to notify Joel

Devin: well, you know

Devin: it’s like when a pilot starts drinking again

Devin: the airline should be notified

I think Devin may have a point.

Life of the Simple Folk

For most of my life, I’ve been deeply involved in technology. My father taught me GW-BASIC when I was five. I had traced Smalltalk down to the bytecodes by the time I was twelve and from there to 68k assembly a year later. I insisted on disassembling most of the objects we had in the house in an attempt to figure out how they worked, and to build my own (which, unfortunately, tended not to work as well as the originals). In many, many ways, technology has defined me for most of my life.

Yet at the same time, it’s been a love-hate relationship. As much as I love technology, there’s little question that it’s made my life more and more hellish. Simply keeping track of the incoming deluge of instant messages, emails, tweets, phone calls, Facebook pokes, and more, has gotten to the point where most of my day seems to be taken up entirely by nothing but trying to keep in touch with everyone. Living in New York, the problem has simply gotten worse and worse. The constant noise. The constant pollution. The unceasing stream of needy women who want my body. Not only am I crushed by people trying to get in touch with me; I’m crushed by those who succeed.

Well, I’ve had it.

I’ve long respected the Amish. They have tight-knit groups, strong social standards, and manage to be wonderfully self-sufficient. In an age when the rest of the world cannot do anything but focus on drugs, money, and late-model DeLoreans, they represent everything that could be right with the world, a harmony between intellectual and spiritual, between man and nature, between sacred and profane. But there’s a problem: the Amish are Christian. I’m Jewish. So, I’ve done the only logical thing: I’ve decided to convert.

I’ll be getting my affairs in order over the next several weeks, selling most of my possessions to give to the bishop, and learning the Ordnung of whichever fellowship I end up deciding to join. I’ll try to blog about the experience as much as possible so that anyone else who opts to follow my same path knows how to easily do so. If you’re in the NYC area and wish to join me for key parts of my quest, I’d strongly encourage you to join my twitter feed (username dblywteef) so that you can tag along easily. Feel free to ask, either here or in email, any questions you have about why I’ve decided this is the only reasonable course. I’ll get back to you as quickly as possible, but please understand if I’m a bit slow to respond to work and personal reasons.

I guess that’s it. It’s been wonderful being on the forefront of technology for the past twenty years, but I think it’s high time that I took a break and returned to the finer things in life.

Thanks everyone for your kind support. I’ll see you on the flip side.


Nota bene: This article was written on April 1st. Please reflect on that date before responding.