Cold War

Anyone who’s learned about the Cold War will be familiar with the chilling fact (no pun intended…) that we came very close to a nuclear war.

But after reading things like this article, mixed with other anecdotes, I’m left wondering how on Earth we didn’t go to war… Accidentally. Both the U.S. and the Soviets, on multiple occasions, “detected” launches of nuclear weapons by the other, and came within seconds of retaliation before someone noticed something out of the ordinary.

Fortunately, the U.S. was very thorough the first time around, and quickly proved that the first “attack” they witnessed was caused by some guy inserting the wrong tape… In the case of the Soviets, the only reason they didn’t launch a counter-attack after their own false alert, it seems, was because the guy who was supposed to press the button disobeyed orders and went with his gut. (And boy are we glad!)

And there’s a further set of coincidences, really. After a flood of nonsensical data, officials discovered some problems. Apparently, one detection system was alternating between reporting some 2,000 incoming missiles and 0 incoming missiles. Because of the conflicting data, they turned to alternate systems, which also reported 0 incoming missiles, and it was traced to a hardware malfunction, with the 2,000 number just happening to match, by sheer luck (or lack thereof), internal checksums.

So they wrote some code to compare results from multiple systems. And not more than a few months later, the problem with the training tape occurred, when one of the systems began reporting more believable numbers of incoming missiles. (Apparently, a steadily increasing number.) The data “made sense,” but, because of the newly-implemented code to compare with other systems, they realized that it was just one system, and quickly isolated it to a case of someone sending “training data” as if it were live data. It’s almost a case of two wrongs making a right–had the first error not occurred, the safeguards wouldn’t have been implemented to catch the second error.

Oh, and there exists a slightly-creepy website dedicated to the Russian who decided to trust his gut over the myriad indications that we were attacking

Resizing Images and HTML

This post is meant for webmasters, and it addresses a startlingly common problem: images included on pages and “resized” only in HTML.

The basic tag to include an image, of course, is <img src="something.jpg">. That will include something.jpg on the page.

But say that the image is 1600×1200 pixels (2.1 megapixels: big enough to fill your screen and then some, at least for most people). This is way too big to put on your webpage. So what do people do? They do something like <img src="something.jpg" height="480" width="640"> to resize it. This is a very, very bad way of doing it.

The problem is that this shows a fundamental misunderstanding of what the height and width attributes do. They’re essentially ‘hints’ for the browser. The web browser, when it sees an image in your HTML, will download the whole image. In this case, it’ll download your 1600×1200 image, which is probably about 500kB in size. (God help us if you have a whole series of these photographs on your page.) When it sees a mismatch between the specified height and width attributes, the browser will do a very rudimentary (read: very crappy) resize. So not only are you wasting a ton of bandwidth unnecessarily (which also makes your page load very slowly), but the end product is images that look horrible.

Instead, open the image up in your editor of choice. Photoshop CS3 is wonderful, but those of us who can’t justify spending more than $500 on image editing software may prefer a free tool like Paint.NET. Resize the image to the size you desire, and include that image, newly resized, on your page.

You’ll see multiple improvements: your site will use less bandwidth, your pages will load much faster, and your images will look much better. (Also: I’d encourage you to simply omit the height and width attributes if you’re not sure what you’re doing. Writing perfect HTML, you’d set them to the image’s native dimensions, but so many people screw it up that it’s probably safest to just omit them. Every browser I’ve ever used has handled this seamlessly.)

Hey Oh!

Song of the night: “Snow (Hey Oh)” by the Red Hot Chili Peppers. Incredibly awesome musically, the music video is pretty neat too: I’m not really sure who we’re seeing, but, among the cliche video of them singing on stage, you get ‘video portraits’ of probably hundreds of seemingly-random people. Simple, and yet strangely novel.

Unlike some of their other songs, this one didn’t find its way into Guitar Hero or Rock Band. I think that the first people in charge of making the decision of what songs made the cut got distracted and are still in an office somewhere, playing the video over and over again, singing along quietly. Unable to break them from their trances, the others decided the song was simply too awesome to be fit for general consumption.

I’m on my fourth time in a row. And when it’s done, I’m probably going to go for #5. Roommates, I apologize in advance if I advertently wake you up tonight while I mumble about snow and the cover of another public wonder in my sleep.  You might play this song to drown me out.

Beat the Rush

In case anyone here is interested, I’m hosting a VMware Player image for BlueQuartz, the ‘modern’ GPL version of the old Cobalt RaQ software. A lot of people seem to want a VMware image. I was one of them, until I ended up just creating one on my own.

So grab it while it’s hot! (Read: grab it before I take the time to better throttle download speed.)

Bad Bone Weights

I decided the other day that I ought to try to start my own TeamFortress 2 server. (Actually, I tried long ago, but hoped the problem had been fixed. But it hasn’t.) I want to share the cause of the problem in the hopes of helping others, since Google usually picks these things up.

You spend forever downloading the Half-Life Dedicated Server (HLDS), and excitedly fire it up. It runs through some stuff and seems to be working, but then you get a whole bunch of bizarre errors scrolling by:

Bad data found in model "dispenser_toolbox.dmx" (bad bone weights)
Bad data found in model "dispenser_gib1.smd" (bad bone weights)
Bad data found in model "dispenser_gib2.smd" (bad bone weights)
Bad data found in model "dispenser_gib3.smd" (bad bone weights)
Bad data found in model "dispenser_gib4.smd" (bad bone weights)
Bad data found in model "dispenser_gib5.smd" (bad bone weights)

What’s been surmised is that it’s because your processor doesn’t support SSE2. Bah! There’s no fix, either, other than pleading with Steam to write a version that doesn’t require SSE2, or upgrading your CPU.

It’s clearly time to build a new server and colocate it. 😉

Benazir Bhutto

I confess to being ignorant enough to have not even heard of her, but Benazir Bhutto was a really interesting figure.

Now here’s an interesting video. You learn a few things. The first is that she speaks fluent English. The second is that she was widely aware of plots to kill her, and fingers a number of suspects in the video.

But the person who posted the video makes another interesting point. At one point she speaks of Osama’s son. Later on, she fingers a man “who killed Osama bin Laden,” an assertion which doesn’t seem to phase the interviewer.

The rumor’s existed for a while, but has generally just been peoples’ gut feelings and such. Now I’m intrigued.

The Results are In…

While I make no secret of my political beliefs, I ordinarily try to shy away from outright endorsement of candidates. I used to think that politics was kind of like religion: something that’s a very important part of peoples’ lives, but something that’s bound to offend people if you talk about it much. Plus, I really don’t like to divulge too much in the way of significant personal information, and who I supported (or how I prayed) was no one’s business, I thought. But to me, my vote on January 8 is going to be one of the most important things I’ve ever done.

And I’m going to break with tradition and tell you who I’m voting for. I’m going to case my vote in the primary for Barack Obama. And I’d like to encourage you to do the same.

If you’d asked me a few years ago, I’d have told you that I was somewhat unhappy with politics. I was sad when Kerry lost the 2004 elections. But I’ve gone from “somewhat unhappy” to being truly afraid for the future of our country, and for being truly disgusted with some of the betrayals of the American people. I’ve been exploring jobs in other countries. Not because I want to send some sort of message that I don’t like politics, but because I don’t think I’m living in the America I was so proud to belong to. I hate alarmists, but, well, sound the alarm bells: America is in crisis.

Maybe about six years ago, I started getting disappointed every time I turned on the news. Something bad was always happening. And it’s happened every day for all these years. Most of the world hates us. Not all of it, but huge parts of it. While much of the world is already suspicious of our motives, we start a series of wars in Islamic countries and then go and issue proclamations expressing our support for Christianity. We seek to teach the “backwards” world about the benefits of freedom and democracy, by capturing them, transporting them to secret prisons, abusing them, and then torturing them in barbaric fashions. Does no one see the blatant hypocrisy? And when we point out that we already outlawed this, and that it flies in the face of everything that is America, we debate it. We’re at war against people who torture people and defy democracy, and we need to be able to torture people and defy democracy in order to do it, after all. The kings of democracy also have a whopping one state that permits same-sex marriage, something that more advanced countries have been permitting for years. And when we started calling it unconstitutional to deny people a basic civic right, we changed the Constitution in many states, and tried to change the Constitution. Forty-two states, and the Federal government, also passed laws explicitly prohibiting gay marriage.

When I graduate from college, I’ll have no health care until I get a job that offers it. But I count myself as lucky, because millions of people just don’t have health insurance at all. We tried to pass a bill ensuring that poor children could get health insurance, but we struck it down. Twice. We spend more than any nation on health care, and yet our system is among the worst. But people argue that there’s no problem, or that, if there is a problem, we shouldn’t pay for it.

Oh, and the American economy, kings of capitalism, is in the toilet. No offense to Canada, but it’s pretty depressing when the Canadian dollar surpasses the American dollar. We had an investment banker come in and talk to us a while back. He moved all of his money out of the country a few years ago.

I want to turn on the news and smile once. I want to stop looking at jobs in the Netherlands.

I want to be proud to be an American again.

I’ll admit that, at first, I didn’t want to support Obama. As much as he blew me away every time he spoke, I was really concerned about his lack of experience. Foreign policy is going to be huge, and he’s a one-term Senator. Why should he be the guy?

I think it’s the same reason that I’d be an amazing police chief, or an amazing president of my school. No, not hubris. Because he has a fresh experience. You spend too much time at something and you start to maintain status quo. Look at a lot of the businesses, especially small ones, that have been around for decades. What are they doing? Nothing new! Where are they going? Nowhere! They’ve built themselves a fabulous box in which to think, in which there’s really not a lot of room to maneuver. They found something that works and stuck to it. But this box–these blinders–prevent change. It’ll help you keep things going, but it won’t help you change the direction things are going on.

And if there’s anything we need, it’s change.

But don’t take my word for it. While I strongly support him, you owe it to do your own homework. Check him out. Read about his stance on the issues. And, living in New Hampshire, go see him speak. I always go in with high expectations and leave with them surpassed. And I’m firmly convinced that he’s the right man for the job. We’re not picking some arbitrary thing. We’re choosing our fate for the next four years. And we have an obligation–not just to ourselves, to our neighbors, and to the world, but to future generations–to make sure we elect the best person for the job.

The Definition of a Game

I’ve been playing Team Fortress 2 a bit lately. Not so much now that finals are here, but it’s a fun way to pass the time. When the mood strikes, I’ll sign on and play one of a few different classes of people… I’m usually either Pyro or Engineer. As Pyro, I go around with a flamethrower. It’s a good weapon, as it sets enemy forces on fire. It’s also the only sure-fire (no pun intended) way to see if someone who looks like a teammate is actually a spy disguised as a teammate: if they burn, they’re a spy. So I’ll run through my own team with the flamethrower periodically, since it’ll only damage enemies. As Engineer, I set up teleporters, so people that die and respawn can get to the front lines faster to keep up the attack. I also set up Dispensers, which dispense health points and ammunition. And, my favorite, the sentry guns, automated guns (which I usually upgrade to include rocket launchers), letting us cover areas without having to be there. They’re a good way to protect our assets.

The process of going through and doing all of this, to defend against enemies, is really fun. And, even though it’s just a game, there’s a certain sense of accomplishment when we capture the enemy bases.

Last night, I installed a new piece of software on my server, a web-based file manager. They have a wiki (powered by MediaWiki, the Wikipedia software), but it was overrun with spam. So I signed up and started reverting back to spam-free versions. It’s a skill I picked up on Wikipedia, and it’s super-easy. In about 20 minutes time, I wiped out weeks, sometimes months, of spam. As time went on, I took out more and more. This morning they made me an admin, and I’m now deleting spam accounts, blocking persistent spam IPs, and deleting pages that are nothing but spam.

Is this a game? Volunteer work? Work? I’m not sure, but I’m getting at least as much enjoyment out of it as I get from setting enemies ablaze in Team Fortress 2. And I’m actually accomplishing something.

Ultimate Boot CD

Ultimate Boot CD saves the day again! This time, my 500 GB drive with lots of important stuff backed up to it randomly wasn’t being detected. Windows saw it as a raw, unformated disk, and Linux wouldn’t mount it citing disk problems.

Of course, I had some problems at first… It’s a 500 GB drive, which is greater than 137 GB. It’s also mounted over USB, thanks to this brilliant piece of technology. So DOS-based file tools were understandably a bit confused. I ended up throwing the disk in my old desktop machine, where it was used as a “real” IDE drive instead of a USB external drive. And it turns out that most of the programs can cope with it being 500GB.

Of course, this is one of those classic problems where I have no idea what actually “fixed” it. I ran a bad block check (which takes forever on a 500GB disk!), and was actually somewhat irritated when it finished having found nary a bad block. But as I poked around looking at other options, I found that filesystem tools were showing me files on the drive. All my old data? Intact!

Seriously, burn yourself a copy of UBCD and keep it with your computers. It’ll save the day. Previously, I’ve used it to reset computer passwords for a professor, and to fix a broken (err, missing) bootloader.