My check engine light came on today. (A couple weeks after I had it serviced…) I happened to be right near the dealership where I always have my car serviced, so I stopped in to see if my car was about to blow up, or if I could safely drive to Boston and back. She told me that as long as the light was on solid and not blinking, it was safe to keep driving.

Which got me thinking that the light was extraordinarily unhelpful. Rather than a message saying, “You’re low on oil,” I just had a glowing light indicating that something, somewhere, was wrong. I wanted to know this not only to know how to fix it, but also to know the magnitude of the problem. Do I need to change a belt in the next 5,000 miles, or am I minutes away from destroying my engine or setting the car on fire?

But as I was driving along thinking about how nice it’d be to have a small little LCD giving me more helpful advice (“Low oil. Call for service. OK to keep driving.”), I started thinking about how spectacularly unhelpful most messages of that sort are when computers give them.

Take Java. I’ve been dealing with Tomcat, a (the?) Java application server, a lot lately. Unlike the unnecessarily terse light telling me to check my engine, Java throws enormously verbose answers. But not a wonderful verbosity that tells you exactly what’s wrong and how to fix it. Fifty lines of output including a full stack trace, and yet none of it actually pertains to the problem. If Java were my car, I’d get a message like, “SEVERE Error at Java.Vehicle at Java.Car at Java.Toyota at Java.Highlander at Java.Axle at Java.Wheel,” and then list nearby components including the fender and front passenger’s side door, to indicate that my tire pressure had fallen from 35 psi to 34 psi. And it would be triggered on very rotation of the wheel. And yet utterly fail to ever mention tires or tire pressure.

But why is there no middle ground? Why are error messages either spectacularly vague, or incredibly helpful?


I just went to the bank to talk about loans, primarily to see if I had any chance at all of getting a mortgage, or if I’d have to rent a substantially more expensive, less-nice apartment. The guy spent about 10 minutes trying to remember his password to access mortgage information, before finally giving up and handing me his business card instead. I noticed that it had his title as an assistant manager.

He then asked if I had any other questions, so I mentioned that I was wondering whether I had a chance at getting a mortgage or not. He told me that he wouldn’t know, because they just enter the information and a third party handles them. I could tell he was trying to be helpful, so I asked about FHA loans versus a conventional mortgage. To try to fill the awkward pause while he looked frantically at his computer screen, I jokingly asked, “I mean, is FHA even around anymore after all that’s happened?”

It was when he replied, “I’m not sure, let me check” that I began to wonder whether the real assistant manager was chained up in the vault or something.


Have you ever noticed a common thread with all the UFO sightings? No, no, not crazy people. The ones that seem at least a little credible.

They’re all near Air Force bases or other military research facilities.

Edit: This is why you don’t whip out a quick post on the spur of the moment. My point isn’t that it’s clearly because of a government conspiracy involving aliens; it’s that it’s clearly the government experimenting with new aircraft. The fact that local control towers and military bases are always denying having seen anything in the air at the time that everyone in the city reports seeing UFOs flying around only reinforces my theory.

Better White Balance with the Expo Disc

Santa must know that I’m both obsessive-compulsive and a photographer, having brought me an ExpoDisc.

With ExpoDisc Calibration

It can almost be thought of as a filter that you hold over your lens. You use it to take a sample of incident light, which you then use to set your camera’s custom white balance. Most modern digital SLRs (at least) include the option to set white balance to any photo you’ve taken, which should ideally be a gray cast.

Most of the time, cameras do a decent job of automatically guessing white balance. And most non-photographers (or perhaps, most non-obsessed photographers) aren’t even sure what white balance is. In a nutshell, it correct color casts. The photo at right was taken (of the ExpoDisc and its carrying pouch, in front of my Christmas tree) after I calibrated my camera to the light in the room. If I hadn’t used the ExpoDisc, it would have looked similar, probably, since this falls into the 95% of the time when the camera can do a pretty good job. But there’s a difference between getting it pretty good and getting it perfect, and there’s also something to be said for the times when the camera just can’t get it right. (Locals: try taking a picture in Margarita’s in which everything doesn’t look red.)

But to demonstrate precisely what white balance “does,” I took a few photos with it horribly misadjusted:

7000K Shade Setting

This isn’t particular objectionable, but it’s wrong. Everything looks a little yellow-orange-reddish. White balance was set to shade (7000K), which was too extreme and caused the red color cast. This can be said to be a “warm” shot, referring to the red cast. I happen to like photos just a little bit warm, but it’s better to get the exposure right and then apply a little warming in Photoshop than to try to shoot with a misadjusted camera.

3200K Tungsten Setting

This one should look more objectionable. I set my camera’s white balance to Tungsten (3200K). Since I was actually in a room with white walls and lit by brilliant sunlight, there’s a horrible blue cast to the image. The opposite of a “warm” photo, this is cold. (Incidentally, cheap digital cameras seem prone to having this way-too-blue effect.)

Using the ExpoDisc is quite easy. It seems to come in a variety of sizes, but mine’s a generous 77mm, which is big enough to sit on the front of any of my lenses. Rather than screwing in, you simply hold it in front. On my Canon XTi, you simply take a shot through it, which results in a grayish-white photo. Or, if your white balance was way off, an orange or blue photo. (Hint: switch to manual focus, or the camera will try in vain to “focus” on light that’s impossible to focus on.) A quick option in the menu lets you set “Custom WB” to the photo. Kind of like a gray card in the days of old, but much easier and quicker.

I’ve probably been overdoing it a bit, changing settings every time I move. But the results are going to be worth it.

Not So Merry

I worked from home today, because we were supposed to get snow and ice all morning. In actuality I’m not sure there was ever any precipitation, but I guess it saved me a bad commute.

Rather than listening to music, I had the police scanner on today, since there were no coworkers to bother in my bedroom.

Someone’s house (trailer home, actually) burned to the ground this afternoon in the next town over. In a neighboring city, I heard several people being arrested on warrants. One owed a few thousand dollars in child support and was told that he could either pay it on the spot (today, on Christmas Eve) or be arrested.

A few years ago, I was violently ill on Christmas Day, and spent the whole time in my bed trying not to throw up. And I can’t help but think that it was a much better Christmas Day than some of these people I’m hearing about on the scanner.

So when I wish you all a Merry Christmas, I mean not only that I hope your house doesn’t burn down and that you’re not arrested, but also that you enjoy the day.

Why Sender Address Verification Sucks

I’m almost radically anti-spam. Not only is it annoying, but most spam is now sent by (tech) gangs that have either hacked computers or written viruses. Probably 99% of spam is sent by illegal, fraudulent means. There are lots and lots of ways to prevent spam. But this is about one way of prevnting spam that seems to work deceptively well, but that’s actually a horribly, horribly flawed system. It’s called Sender Address Verification.

The basic premise is simple: you e-mail me. I’ve never received e-mail from you, so a script will automatically e-mail you and ask you to click a link or reply with a unique string to “confirm” that your e-mail address works. Once you do that, you’re whitelisted forever. Viola, kills spam dead! There are many providers offering this service, too. Because I so abhor them, I won’t link to them.

So why is this such an awful system? Let me count the ways!

  1. It doesn’t prevent spam, it prevents automated mail. There’s a difference. My company sends out tens of thousands of e-mails a day, but they’re all to people who have requested notification of things. Some sites make me jump through hoops to opt-in, but I like getting e-mails when, for example, someone replies to a forum posting of mine. And if you’re thinking this isn’t so bad (perhaps more annoying than spam is pseudo-spam, the mail from legitimate organizations that you really don’t want to receive mail from), read on.
  2. Ever had to reset your password on a website? Ever ordered online and requested shipping confirmation? Those are all e-mails sent by a computer. SAV does a good job of keeping them out of your inbox. (SAV advocates would argue that you could manually whitelist them. Yes, if you knew what address they would e-mail you from. But I’d contend that most people don’t bother, or don’t know that they have to do this.)
  3. It’s obnoxiously annoying to legitimate users. If I e-mail you, I don’t want to have to go to a website and fill out a form to do so. This is me being a cranky old curmudgeon, really, but there’s something to be said for not inconveniencingyour friends when they want to e-mail you.
  4. More than anything, it makes the spam problem worse. The majority of spam comes from spoofed but legitimate accounts. (SPF is meant to make it harder to spoof mail from a legitimate domain.) The practice of spammers using forged addresses has led to an important principle in e-mail: if you’re going to refuse mail, you need to do it during the SMTP transaction. You cannot “accept” mail and then have your mailserver generate a bounce and send it back. This might not seem to matter to most people,  but it’s actually a very important principle. If I send you mail from a forged address and you refuse it during the SMTP transaction, the “real” sender will get the bounce. If you accept the mail and then send a bounce, you’re trusting the From: header. In 99% of spam, it’s forged. So what does this mean?
  5. If you use Sender Address Verification, you are sending a verification request e-mail to every spammer’s forged address, which either ends up in an innocent non-spammer’s mailbox, or which will in turn bounce back to you if it doesn’t exist. (But you won’t get the bounce, because they’re not on your accepted list… Fortunately mailservers are good at preventing infinite loops.)

The problem with all of this is that this horribly, horribly flawed system will appear to work really well for the end user. They have no idea that they’re missing out on legitimate mail, nor that they’re making the massive amounts of fallout from forged e-mail even worse.

So instead, I turn to my soapbox. If you or a loved one uses Sender Address Verification, call now. Err, stop using it. And more importantly, I urge you to join me in refusing to ever complete a Sender Address Verification procedure.

Freedom of Religion

It seems odd to post this on Christmas eve, but it just came up elsewhere, so I thought I’d post it here. There seems to be a group of people convinced that the government has banned praying in school, and that’s outraged that displaying the Ten Commandments in courthouses isn’t legal.

The first point I’d like to make is that praying in school isn’t illegal. In fact, outlawing praying in school would be unconstitutional, if you read the First Amendment. The courts have upheld the right of student prayer. What they’ve struck down is school-led prayer, where a public school forces students to pray or participate in religion programs.

The display of Ten Commandments has been upheld and struck down for various reasons; the basic question comes down to whether they’re part of a historical display of various things (permissible), or whether they exist to promote Christianity (flagrant violation of the Constitution).

I’m a Christian, and most people I know are, too. And yet I’m pleased the courts have ruled this way. Why?

Imagine that we were still Christians, but the government was ruled by Muslims. And suddenly, the courthouses displayed the Five Pillars, and our children were being forced to recite Muslim prayers every morning. There’s nothing wrong with Islam (aside from the 0.01% of Muslims who interpret what’s practically a different version of the Bible to somehow advocate the destruction of most of the world), but wouldn’t it be outrageous? Even if our nation was “founded on Judeo-Christian principles” (a claim which I’d contest, but which is really irrelevant to this), our nation was founded on the concept of freedom of religion, too. Not because religion is bad, but because we learned the hard way that, even when it had the best of intentions, government doing anything with religion had always turned out disastrous. While some Christians seem to feel threatened by freedom of religion, we should really feel liberated. It’s because of freedom of religion that we’re free to practice our religion.

Thoughts on Obama and the Presidency

A really good writer could probably tie these diverse topics together, but I’m going to instead present a few different thoughts that are only related in that they’re aboutthe President.

I initially laughed when I heard about the guy showing his shoe at President Bush. While I truly believe that we did a good thing getting rid of Saddam, I also truly believe that we’re doing nothing but endangering American lives while angering Iraq today. So I could understand where the Iraqi journalist was coming from: he probably wasn’t much more happy than if Hugo Chavez had come to “liberate” us from democracy.

But the more I dwelled on it, the more upset I was. While I think Bush is one of the worst presidents in history, he’s still my President. I’m all for protests and pickets, but assaulting my President isn’t cool.

I’ve been gaining a little more respect for Bush lately, too. I still think his eight years have been disasterous to America, but lately he’s done a few things right. After voters chose a candidate whose main qualification, some would argue, is not being Bush, he’s been surprisingly cordial in ensuring there’ll be a smooth and speedy transition.

I was skeptical of the auto bailout at first, but came to see it as something necessary. I’m still amazed at how incredibly inept American auto has been as a whole. I wouldn’t buy an American car anytime soon, because every American car my family has owned has been a junker, whereas every Japanese car we’ve owned has needed nothing but routine maintenance. Some of the Japanese cars out there get twice the gas mileage of the latest American hybrid, a gigantic SUV that gets 20 MPG. (A serious “wtf mates” is in order.) But Detroit is already in shambles, and a critical element of our nation’s economy. I think we learned our lesson after the $700 billion bailout, in that we can’t just give blank checks for billions of dollars to the private sector and expect a cure. But I think it’s also pretty apparent that American auto isn’t lying about being in a death spiral.

I tend to listen to talk radio on my way into work, since driving a lot has made me realize that most radio stations have about 10 songs they just loop over and over, and I’m tired of all of them. (This is music? It sounds like a guy drumming his fingers on a table shouting “Pop champagne” over and over.) And I work for a company whose site causes me to see lots and lots of far-right ranting. Between the two of them, I’ve realized that a lot of Republicans are convinced that, (a) The auto bailout is Socialism, (b) Obama is going to approve the bailout because he owes the unions, and (c) Obama is a Socialist.

I was even more appalled when Republicans struck down the bailout, citing the fact that American autoworkers hadn’t agreed to a big enough pay cut as their reason for opposition. But I was elated when President Bush signed the bill. The obvious reason is that I think it’s important for America to not let the whole of American auto collapse at this point in time. I haven’t read the bill to know if it calls for the things Obama had suggested, such as requiring American auto to make their compact sedans get gas mileage that’s no worse than my SUV, and assigning oversight to ensure that the companies can’t squander the money. I hope it does. But the other reason I’m elated that Bush signed the bill? Because he’s a conservative Republican. That really throws a wrench in the whole, “Hey, guys, let’s call Obama a Socialist for supporting the auto bailout!” tactic. Plus, it means that Obama and Bush agreed on something, which underscores one of the things that brought Obama into the national spotlight in 2004: there aren’t red states and blue states, but a United States. The two parties that should keep each other in check have become the bitter marriage where the only goal is to get in shots at the other side.

Thus far I have two criticisms of Obama. The first was his opposition to gay marriage. I think of gay marriage as something like interracial marriage, or female suffrage. It’s something that an awful lot of people have no reason to support, since it wouldn’t benefit them in any way. But we didn’t vote to extend what I think is a fundamental human right. We’ve been voting to strip away a right from a minority. Obama seems to be in a pretty terrible spot, because gays seem to hate him for not supporting gay marriage, yet the far-right seems to hate him for supporting gay marriage.

My second criticism of Obama is that he’s been assembling a pretty Democratic Cabinet. This is to be expected, really, since most Presidents have appointed Cabinets of people who agree with them. But one thing that really excites me about Obama is that he’s not afraid to reach out to the other side to understand where they’re coming from and to work with them to get better things done. So although it’d be unusual, I’d hoped Obama’s Cabinet would be a bit purple.

Those two thoughts combine, though, into a comment about Rick Warren, the conservative pastor Obama’s asked to the inauguration. Even though I don’t like the notion of a conservative preacher who’s espoused bigoted views having any place in Obama’s administration, I’m also really pleased to see that the Inauguration isn’t going to be chock-full of far-left figures.

At this time in history, I think we really, really need a President who’s going to ignore political parties and allegiences, in favor of actually moving us forward.

Myriad Photoshop Tutorials

Yet again, I find myself linking to Smashing Magazine. This time, it’s their 50 Excellent Digital Photography Photoshop Tutorials. I’m usually a bit of a purist when it comes to digital photography, but I’ve been slowly—very, very slowly—coming around to appreciating the art of Photoshop enhancements. Most of the tutorials Smashing Magazine links to, though, err on the side of tasteful enhancements, not tacky crap. (This photo, for example, looks plausibly realistic, albeit maybe shot with a budget camera in the 70’s. But it’s really a more fitting mood than the drab original.)

Recipes by Markov

Kind of like duct-taping a giant butcher’s knife to a Roomba, sometimes an awful idea pops into your head, and it’s just so ridiculous that you can’t let it go. Unlike the Roomba deathtrap, though, I actually went ahead with this one: Markov Chains meet some delicious holiday recipes. To make it clear where one ends and the next begins, I’ve unimaginatively labeled each. I’ll gladly take name suggestions in the comments section.

Recipe A:

Place the pastry-wrapped cheese seam-side down onto a baking sheet.
Brush the pastry sheet at room temperature for 40 minutes or until eggs are set.
Top with bread cubes and cheese.
Mix picante sauce, eggs and milk and pour over all.
Cover and refrigerate for 2 hours or overnight.
Bake uncovered at 350 degrees F for 45 minutes to 1 hour.
Preheat the oven to 500 degrees F for 45 minutes to 1 hour.

Recipe B:

Stir the cherries, pecans, honey and rosemary in a 10-inch skillet over medium heat, stirring frequently to break up meat.
Pour off any excess flour.
Heat the oven to 500 degrees F (260 degrees C).
Place potatoes in a roasting rack.
Rub the meat can retain its juices.
Cook the sausage in a shallow container.
Gently press the edges of the roast should be at 145 degrees F (150 degrees C), and continue roasting for 1 hour and 10 minutes, or until it’s easy to handle.
Heat the oven to 500 degrees F for 25-30 minutes or until the pastry square.

Recipe C:

In a separate bowl, stir together mayonnaise, onion, and bacon.
Gently stir into potatoes and cheese.
Spread into a 14-inch square.
Stir the cherries, pecans, honey and rosemary in a large bowl.
While the potatoes are just soft.
Drain, place in a shallow container.
Gently press the edges to seal.
Place the browned roast in a 2-quart shallow baking dish.
Sprinkle with 3/4 cup cheese.

Recipe D:

Place the roast to rest for 10 or 15 minutes in the bowl of a food processor.
Process until smooth.
Transfer to slow cooker and scatter the celery and the garlic in the next eight ingredients.
Pour into the pan to produce moist heat.
Reduce oven temperature to 325 degrees F (260 degrees C).
Remove any plastic from roast, and place in a small bowl.
Spread the mixture over the cheese.
Fold the sides up onto the flour mixture to coat all sides.

Recipe E:

Let stand for 45 minutes or until the internal temperature of the apple, and the garlic in the preheated oven.
Roast uncovered for 15 minutes in the next eight ingredients.
Pour into the preheated oven.
Pour water into the center of the cheese.
Trim the remaining two sides of the pastry with the egg mixture.
Fold two opposite sides of the cheese.
Trim the remaining two sides of the pastry with the cheese and press the roast stand for 45 minutes to 1 hour.
Serve with the egg and water in a small bowl.
Spread the mixture over the cheese.
Trim the remaining two sides of the roast, and place in a shallow container.