Friday, January 23, 2009

Fish in a barrel: another look at Conservapedia

In my estimation, the sort of far-right people who are drawn to something like Conservapedia, similar to Christian homeschoolers, are characterized mainly by a resentment of authoritative knowledge. The whole notion that some people know more than other people about stuff, unless the source is a personal revelation from a higher power, is anathema. This permeates everything they think about. The media is a vast conspiracy to bring down good, decent men like GWB. Scientists are priests of Satan whose primary goal is to undermine God's word. Public schools are instruments of evil to get to your kids. The entire frakkin' world is run from the shadows by Scary Foreigner George Soros, or minions laying the groundwork for Antichrist -- the two of which are not mutually exclusive. Etc.

Nobody except a trusted religious leader has the right to tell you what to think. Evidence that stands in contradiction to your point of view can be safely disregarded, because the people with the authority of being educated wield awesome power and they are thoroughly skilled at trying to trick you. The only way to avoid falling under their sway is to skip straight to your faith, so you can bypass learning things.

Wikipedia may be kind of a mess, but my observation is that most prominent articles tend to converge to a consensus over time. This is because Wikipedia has smart standards in place requiring credible sources and authorizing the deletion of agreed nonsense. It's not perfect, but the major articles on scientific and historical topics tend to be a mostly reliable starting point to learn the subject.

Conservapedia was started explicitly because they hate that consensus. Consensus without a divine authority means that The Conspiracy now controls it. It doesn't mean that there are "right" answers that can be determined through analysis; it means that the evil people who are everywhere have managed to crowd out dissent.

So on those occasions when I've read articles on Conservapedia, it hasn't surprised me at all to find that the text of the articles were a patchwork of contradictory opinions, while the comments sections were all flame wars. There's no way to resolve these flame wars, because their opinions are guided by their faith.

Here's a perfect illustration: the discussion page for Evolution.

"After much debate, the Conservapedia Panel has finished reviewing the Theory of Evolution page. We have determined that the article will remain protected indefinitely, to protect it from inevitable vandalism. We have decided that the article will not be changed in any major way. However, we agree that the article lacks an adequate, concise explanation of the Theory of Evolution."

Oh sure, the page fails to actually convey any useful information, but who gives a damn? The Panel Has Spoken. As much as they are opposed to Authority, they still love Authoritarianism, because their faith guides them to The Truth. Lower on this page, you'll find a hilarious discussion about the main picture at the top of the evolution page, which was Hitler. It's Godwin's Law invoked without a trace of irony. The "reasonable" contributions to this discussion came from those who objected that, sure, obviously evolution caused the holocaust, but wouldn't a picture of Darwin be slightly more representative?

I read their evolution page in the early days of Conservapedia, and it was obvious what was going on: There were a small minority of people who, though conservative, accepted mainstream science; they got in pissing matches with the swarms of young earthers, old earthers, and intelligent designers, all of whom also disagree with each other. Without a reliable reference to go back to, the only standard is who can be the most persistent pain in the ass about making their preferred changes stick.

So now the guy with the biggest stick, the Conservapedia Panel, decides that they should just go ahead and trump all the arguments only by declaring fiat victory -- even while they're admitting that the final product fails to even adequately explain the subject.

But you want to know something even funnier? If you go back to the front page, you'll find that Evolution was selected as their Article of the Year. That's actually the best thing they have.

This is not the Bush Administration

The White House has a blog.

With a guy who's a technology expert.

They're using it to, like, communicate stuff.

About policy.

It's been updated several times already in the few days it's been up.

And they're encouraging feedback.


Tuesday, January 13, 2009

Comedy of coding errors

Nerd alert. You will probably enjoy this post if and only if you are a fellow programmer.

There's a fair amount of horrible legacy code here at my new company. It is nobody's fault -- apparently it was written by an intern at another company, then bought by my company. Which is great, because I can loudly ridicule this code without fear of offending anyone. My cubicle-mate is the senior Java developer. Together, the two of us ARE the entire Java team right now; other people here are coding a little bit of Java, but we're the experts and the commerce project is owned exclusively by us.

I ran into a beautifully horrifying bit of code today. First it gathers a list of objects from a table. Then it iterates over each object, seeing whether the object is "authorized"... and then it removes the object from the array. Not only is this inefficient to begin with -- they should have just filtered out the unauthorized objects in the original query -- but they keep rearranging the entire array every time an object is removed. Like this:

1 2 3 4 5
(object 2 is unauthorized)
1 3 4 5

Obviously this runs in O(n^2) time, when it could easily run in O(n) time just by adding a second array.

Wait, it gets worse. I'm trying to fix it, and I realize the same code that kicks out unauthorized objects appears to be in there TWICE... it's iterating over the array twice and doing approximately the same thing each time. I don't know why, but it appears to have something to do with the magic number "50" that keeps showing up in the code. As in:

for (all items) {
if (curItem < 50) {
do one thing
for (all items) {
if (curItem > 50) {
do almost the same thing, but slightly different

Dear God, WHY? What does 50 mean? I don't know, the code doesn't give me a clue. You would think 50 is something arbitrary like the number of items displayed per page, but no... only 12 items are displayed per page. ARGH ARGH ARGH ARGH ARGH.

The bright side is that I don't think I've actually had to solve a genuine programming logic puzzle in like this for many months -- I can't remember a single example at DMi. This is fun! When I'm done, the code will run much faster. And there's probably hundreds of examples of this crummy design lurking around, waiting to be fixed.

Yay job security!

Wednesday, January 07, 2009

A compressed big update

"Let me esplain. No, there is too much. Let me sum up." - Inigo Montoya

There are some things I haven't aired out on this blog because I don't like to use this as a forum for complaining. But now that there's a surprising amount of good news, I'm back with some updates.

After getting my Master's in December, I got laid off not once, but twice. When my contract-to-hire came up on six months at Digital Motorworks, I was told that there was a hiring freeze. They extended my contract hoping to pick me up in December, but then the economy crashed.

I spent a bit over two months unemployed, and it was somewhat scary. I started a new job Monday, though. It's an interesting company, privately owned by one of the few hundred richest men in America. He personally works in the office, (and manages the pro baseball team that he also owns) but I haven't met him yet.

The job has its ups and downs. I'm doing Java Enterprise development, which is something I've wanted to do a lot more of. So far I really like the people I work with directly, and I've already started solving a number of problems after just two days. The work promises to be fairly exciting in a nerdy kind of way, as I may get a lot of creative control over a large commercial web application. And the pay's better than what I was making before.

On the other hand, the office is a remarkably conservative environment. It's the first place I've ever worked as a programmer where there has been a dress code -- business casual, no jeans allowed any day of the week. There's a long commute, but I was issued a fairly awesome high end company laptop on the first day and allowed to take it home. It's said that after I've worked for about a month or so, I'll get to telecommute most days. The senior developer on my team of two also lives in Austin, so we might carpool or get together locally.

Many of the other techies are fairly affable, including my boss. The building is also populated by an awful lot of ex-military guys, as the bulk of the business is about managing military supply chains. (My division is much smaller, and our software app handles commercial retail).

Also, as I obliquely mentioned in my wedding speech, Ginny and I are divorcing. It's on good terms. We had some tension for a while, but I think that situation has eased up a lot since both Ginny and I got employed. Ginny even told me she got a promotion yesterday, which is great news. Ben is handling it well, he's doing excellently in school and is coping gracefully with being in day care for the first time. He's an incredible reader. I hope I'm not overstepping my bounds if I say I think both Ginny and I now see our change as a mutually agreeable one. We've both had dates, which is a fun hobby to be taking up again, but... well, a gentlemen doesn't tell.

Actually, he does, frequently, but not on this blog. If you're one of the select circle who gets to know my private life, you've probably already heard. If not, it's none of your business. ;)

Yesterday was probably the best day I've had in months -- I'm working, it's fulfilling, I'm social. I'm hosting the TV show once a month instead of cohosting. Also, as you might imagine, I enjoy most political news these days. Al Franken appears to have won his race, although there may still be some legal squabbles. Barack Obama will be president in under two weeks. Yay!