Doom on the Big Screen

Caliban Darklock wrote this terribly early in the morning:

The Doom movie is pretty much what I expected. It’s exactly like the game: solid action, cool concepts, and well-executed. Story? Not so much. Bioengineering experiments on convicts. You can fill in the blanks, it’s an old story.

What impressed me about the movie was the pacing. It hits like a sledgehammer. I’m sitting there watching previews, and then here comes footage of the Olduvai station and people screaming and running and alarms going off. I have about enough time to think “why are they showing a preview of the movie we’re here to see?”, when I realise THIS IS THE MOVIE. They waste ZERO time. The screaming and yelling and blood are in your face from about two seconds in. I’ve seen other movies start fast and hard, but never like this. I was honestly impressed.

In fact, I was consistently impressed throughout the movie. The sets are amazing. The graphics are incredible. And amazingly, they managed to get pretty good actors. I literally cannot find anything bad to say about this movie. Every time I think I’ve found something bad to say about it, I think “no… that was actually pretty cool”.

Granted, this is no Resident Evil, but Resident Evil always had more pretentions of story than Doom did anyway. Doom is fundamentally an action movie. You should expect Doom to be about as good as, say, XXX. (Haven’t seen the “State of the Union” sequel yet, so can’t say where it sits in relation to that.) Roughly the same level of believability, because the focus isn’t on whether this could really happen, but on whether this would look cool. If you can live with Vin Diesel riding a waiter’s tray down a handrail, you can live with everything that happens in Doom.

Besides, Doom looks MUCH cooler than a musclebound bald guy sliding down a handrail.

The movie unfolds pretty much like it really would, given the somewhat unlikely scenario it involves. There are some minor shockers which are surprising, not because of their weirdness, but because of their sheer normalcy. Of course that would happen. Duh. We should have known that. Why didn’t we expect it? Because other movies have conditioned us to believe that these things don’t happen in movies. As a result, when a Hollywood cliche does pop up later, it’s still surprising because we’ve been conditioned not to expect it. There’s a pretty good balance between the two strategies in the movie, which helps to keep the whole thing fresh.

Why Open Source Software Sucks

Caliban Darklock wrote this around lunchtime:

What’s the common thread binding these three things?

- Broadcast television
- Large charity organisations
- Open source software

Answer: the CONSUMER is not the CUSTOMER.

- Broadcast television has a public consumer and a corporate customer
- Charities have a needy consumer and a wealthy customer
- Open source software has a nontechnical consumer and a developer customer

Whenever an industry is funded by one group and serves another, conflicts of interest are resolved in favor of the funding group, not the group the industry serves. The only way to avoid those conflicts of interest is to be funded by the group you serve, so the interests of your consumer are by definition the interests of your customer.

The idea behind having this situation in the first place is that the chain propagates. The consumer is not the customer, but he is the customer’s customer, so theoretically the customer wants what his customer wants. But then you have the marketer; he has propagated a vast injustice that happens to work, in a short-sighted way. The marketer says that it really doesn’t matter what your customer wants; it only matters what he THINKS he wants. If you THINK you want the Popeil Pocket Fisherman, you will order it, and pay for it, and even with a money-back guarantee you will probably keep it. And the marketer follows this up with a very true observation: it is easier to change what people think than to know what they are thinking. So don’t waste your time trying to have what people want. Just make people want the things you have; it’s much easier.

There’s a critical element here, however. When a user wants something, and you make him want something else, you have not REPLACED what he wants. You have simply added a new want. He still wants what he already wanted. When a man is hungry because he hasn’t eaten for several hours, and he is inspired to want a candy bar by an advertisement, that candy bar is only a temporary fulfillment. The man is still hungry; his body still needs quality proteins, fats, and complex carbohydrates. The advertisement has merely created a different desire for a candy bar. Even if he buys and eats the candy bar, the original need and desire do not go away. No amount of marketing can replace a desire; it can only create a new and different desire. It may distract the customer from his original desire, but this is a temporary situation.

Open source software tries to convince people they want freedom from the tyranny of commercial software, by raising the spectre of past tyrannies most people didn’t experience. The vast majority of companies never had a major problem with their installed software being discontinued by the developer, or support drying up, or anything like that. These problems were more or less unique to large-shop mainframe and Unix customers, and stemmed primarily from a lack of competition. On the IBM 370 mainframes, you only had one C compiler, and it was from IBM. You didn’t get a choice. You paid what IBM wanted to charge. If they said you needed to pay eight million dollars for it, you either paid IBM eight million dollars or you just plain didn’t get a C compiler. If IBM decided you needed to upgrade your C compiler, they would tell you to pay them another eight million dollars or else you would no longer receive support.

The open source community wants you to believe that this is because they didn’t have the source code and the right to freely distribute it. And that’s true. If they’d had the source code and the right to freely distribute it, the street price of the C compiler would have rapidly dropped to zero. This is precisely why IBM did not give them the source code and the right to freely redistribute it.

But the real desire of the consumer is not freedom from tyranny, it’s quality software that gets the job done. The consumer doesn’t want freedom from the tyranny of software companies so much as he wants freedom from the tyranny of SOFTWARE: the need to install, to support, to upgrade, to configure. Open source makes all these things worse, but by redirecting the consumer’s attention to the potential tyranny of software companies, they prevent the consumer from noticing the actual tyranny of open source software… until it’s too late.

Consumers are told that they can get professional-quality software for free, so they download and install some open source product. Inevitably, they don’t know how to install it, they can’t figure out how to make it work, and they get frustrated. Heading over to the support forum, they receive little real assistance, finding the forum filled with incomprehensible jargon and incredulous reactions to the consumer’s lack of understanding. When the consumer claims that this is not an acceptable level of service, the open source community responds that there is clearly something wrong with him. (This is a crucial point: when the open source community do not have a particular problem that a consumer reports, it is not because the consumer is different, but because the consumer is wrong.)

Economically, Microsoft has an excellent model. Microsoft is funded by people who use their software, and only by people who use their software. They are not funded because they think the right things or support the right causes, but because they produce software people want. If they produce a product that nobody wants, like Microsoft Bob, then nobody buys it and Microsoft stop producing it. When the public saw a little cartoon paperclip giving them advice in their Office apps, they said “get rid of Clippy”, and Microsoft got rid of Clippy. (Sort of. You can still “Show the Office Assistant” in the Help menu.) Microsoft does what their consumers want because their consumers are also their customers. This is the model for all commercial software: do what the consumer wants, and the consumer will pay you for it. This is a long-term strategy. Marketing your product into the customer’s pocket will get you some short-term sales dollars, but it will not get you a customer for life, and software needs customers for life to succeed.

The open source world simply doesn’t understand this. They believe that if what you build is good, then people will want it. In truth, when you build what people want, it doesn’t matter if it’s good.

Open source sells products based on an ideal, a dream, a fantasy. Wouldn’t you like to get all your software for free? Even your tech support? Even your version upgrades? Wouldn’t you like to never pay Microsoft another dime? Use open source software! The only catch is, it takes significantly smarter and more self-sufficient people to use it productively - so you may need to replace some of your workforce, or invest heavily in training, and that’s a major expense. But the open source advocate doesn’t say that, because we all know smarter employees are much more expensive than commercial software.

That’s where the different/wrong distinction comes in. The open source advocate expects that you will already have smart employees, just like him, who are actually being held back by your Microsoft products. When it turns out that you have regular old everyday people who don’t learn new things very well, the open source advocate finds this horrifying. You hire dumb people? Why do you hire dumb people? You should hire smart people.

It completely escapes him that dumb people need jobs, too. We can’t all hire nothing but smart people, because there are only so many smart people to go around.

Open source still has something important to teach commercial software: that you can leverage a steadily increasing level of technical sophistication in the public by releasing the source code to your application. Of the four fundamental freedoms the FSF demands for free software, three are protected by law (freedom to use, freedom to examine, and freedom to modify), and the last one - freedom to distribute - is partially protected (you can distribute your own modifications separately from the original). Releasing the source code makes all of these things easier for the consumer, and the incidence of source piracy will be statistically no higher than the incidence of binary piracy… and it will be committed by the same people, so the problem will not change.

That’s good for everybody. It doesn’t make anything worse, and it has all the same effects of making everything better that open source advocates advertise at every opportunity. The one and only thing you *can’t* do under this setup is distribute someone else’s work without their permission, and there’s nothing to prevent “true” open source projects from giving blanket permission.

Which is where the open source agenda really becomes clear. They don’t want better development, they want the right to profit from other people’s work. All the claims to want better development are just the smokescreen they’ve blown up to conceal their right to sell other people’s work, and they’re diligently working to convince you that you want the smokescreen and everything in it.

Don’t believe the hype. You don’t understand why the open source community wants to build the software you want, because they *don’t* want to build it. They want someone else to build it so they can sell it to you. Or, even better, they want someone else to ALMOST build it so they can give you the incomplete version for free and charge you for service and support into the foreseeable future.

Times are screwy

Caliban Darklock wrote this mid-afternoon:

Times on this blog are messed up. I don’t really know why. I need to go through and fix some things somewhere.

Judaism and Zionism

Caliban Darklock wrote this mid-afternoon:

The Angry Arab reported on anti-Semitism yesterday, and I weighed in with a comment down around number 60 or so.

The substance of that comment is that Israel was offered by someone who had no right to give it, and knowing this we had no right to accept it. But, being a stiff-necked people, we happily took it and ran over to abuse the indigenous population for no good reason. And then, of all things, they actually became angry! Why? What possible reason would they have to become angry?

What if it was your house?

Imagine that you’re in your house watching “Desperate Housewives” on television. Suddenly, the door opens and in comes a family of eight. “This is our house now,” they announce. “Bob down the street told us we could have it.” They dump their luggage on the floor, telling you to take it back to the bedroom. Then they unceremoniously dump your family off the couch, complain that the couch is ugly and needs to be replaced, and change the channel to HBO so they can watch “Rome”.

In most countries, this is against the law. Since it’s not altogether different than what the Jews have done with Israel, maybe they need to… I don’t know, apologise? We can’t very well put them all in jail.

Zionists are just plain crazy.

Difficult choices

Caliban Darklock wrote this just before lunchtime:

As is inevitable in any business, I am suddenly faced with a client who simply refuses to pay.

He called me at 9:30 on September 18th and asked me to meet him in downtown Seattle to pick up and rebuild his web server, which had fallen victim to persistent hard drive seek errors. I said no - I didn’t want to rebuild a server, and I had advised him not to buy that server (used, from his hosting provider, when another client of theirs had abandoned it in the data center), and I had previously made plans to spend the day with my wife. He called me back repeatedly for two hours, and my wife suggested that we could actually use the extra money so why don’t we go ahead and do the rebuild. After all, she pointed out, it’s at least *one* thousand dollar job with a fifty percent surcharge for emergency service, and if the hard drive has failed sufficiently we’ll need to do another one for the data recovery.

We picked up the server, recommended building out the system on other known-good hardware, and he asked if we could have it up by 6 AM Eastern (a 15 hour turnaround). I said yes, provided we could still access the data on the hard drive. We went off to pick up the known-good server and dragged the whole lot back to our office. There, we discovered that the failing server would no longer boot. Cracking the case, we found serial ATA drives, which the known-good server didn’t have. We went out and bought a computer with serial ATA, so we could get to the hard drives. The hard drives turned out to be configured in an ext3 volume set, so we had to set up a Linux system that could mount it. Once we could mount it, we had to meticulously go through the drive one directory at a time to get the data we needed and keep a careful record of what we couldn’t recover. This took slightly more than twelve hours.

Meanwhile, the client was calling me repeatedly. We were calling him at every major development. We informed him that there was simply no way we could have it up in time. He asked if we could have it up by noon. We considered this, and decided that it was a plausible target, so we indicated that we might very well be able to do that if all went well. The client then, without our knowledge, set up a placeholder website promising the site would be back up by noon.

All did not go well, because it never does. We had package conflicts on the server. The installed packages on Fedora Core 4 did not match the needs of some of our software, and side-by-side installation was not likely to work. Apache and PHP compiled and ran, but crashed as soon as you loaded anything. On closer examination, we found that FC4 had installed Apache itself, even though we had told it not to do so. This gave us two conflicting Apache installs, which we needed to untangle and reconcile. Once we got that worked out, PHP refused to compile in some of the modules we needed. Both of these cases were a matter of running `./configure` with slightly different command lines, then running `make clean` and `make` to see if the process still failed with a fatal error ten to fifteen minutes into the process. The client is frantically calling us and demanding that we hurry up because he’s losing credibility by not having the server back up at noon like he promised his customers it would be. Somehow, his ill-advised announcement has become our problem.

Once we finally had the server up and running at the data center by late Monday night, we still had a number of nonessential services to set up. Once people came in to work the next day, minor configuration errors popped up left and right for us to resolve. Finally, around noon, we got it all fixed. I eventually calmed down enough to go to sleep at about ten thirty. I had been awake since just after five AM on Sunday the twenty-fifth, more than sixty-five straight hours.

All was fine for a while, until I went in to the office on October third with the expectation of collecting payment for the invoice I’d submitted on September 26th. The client had gone on vacation. He was not expected back until Friday. When he returned from vacation, he put a hold on all further work and demanded proof that all the things I’d invoiced over the past two months had in fact been done. I provided that proof, and he paid roughly a quarter of the outstanding charges.

His justification for this is that he does not have what he needs. His server was not backed up, because he had never made any arrangements for backups. His server was not monitored or managed, so he was vulnerable to hardware failure. His newly rebuilt server was inadequate to the demands of the system, and needed more memory. When I observed that I had warned him about these things, he denied any knowledge of such warnings, and when I recounted how he had responded to my suggestions he demanded proof that he had made those responses.

So on Monday morning, I have to go into the one and only reliable (well, formerly reliable) client I have and tell him that I won’t do any more work for him until he brings his account current, including a 15% late fee. Meanwhile, I’ve been working all weekend getting an application interface working for him that needed to be live by five minutes ago (and is), so I’ll be submitting a further $1,600 invoice for work done over the past week. So I’m essentially walking into his office and demanding $3,910 before I do any more work, with another $1,600 due within two weeks’ time.

I don’t like doing it, but I’m pushing the limit on all my credit cards and have less than $20 in the bank. If I don’t get paid in the next few days, we’re going to run out of food. My wife and I can subsist on ramen noodles for a while, but our eighteen month old baby needs something a bit more substantial, and our health insurance is going to be due soon.

Sometimes running your own business can really suck. I’ve been running this company for almost twenty years. It’s finally profitable, and I’ve made one of those stupid mistakes small business owners make: I let one client control my company’s direction. I can’t afford to do that anymore. I need more clients. I keep trying to get a solid website together for a marketing push, but I have no time.

The good news is, if I don’t have to do any work for this client, time will be the one thing I have in abundance. The only question is whether I can bring in new clients fast enough to keep my head above water. But I’ve been here before; the verge of bankruptcy and homelessness isn’t exactly new or frightening to me. Things always work out. I’ll still tear out my hair and gnaw my fingers bloody until they do, but they do somehow manage to always work out.

If all else fails, Google is hiring, and Microsoft is always an option.

Oh yeah!

Caliban Darklock wrote this in the early morning:

While migrating my comments, I found my first piece of comment spam.

Oddly enough, this is rather a proud moment for me. Someone thinks enough people read my blog for them to advertise there. I didn’t have to migrate it over… but I did.

After all, you never forget your first time.

Initial impressions

Caliban Darklock wrote this in the early morning:

Migrating from Blogspot to Wordpress was interesting because it identified a couple of things I hadn’t noticed.

First, the idea of categorising a blog post is foreign to me, so I kept forgetting to do it. It seems pretty normal now, though.

Second, Blogspot is stupid. I wanted to disable all comments on my blog. How do you do this? Well, by individually turning them off on each and every post: click on “Edit Posts”, scroll to the message you want, click “Edit”, select “No” under “Allow new comments for this post”, click “Publish”, wait for publication to complete. Repeat for each and every damn post.

I’m not sure what a post slug is. It seems like I should be setting them. I haven’t been. I’ll make a decision once I get a handle on what they are and what they do.

Archival Stuff

Caliban Darklock wrote this in the early morning:

I’ve decided to migrate all my old posts to this blog. It seems a lot easier to have everything here, and I won’t lose it all if Blogspot decides to delete my blog there. So I’m going to spend the next several hours copying and pasting and duplicating timestamps. Call me crazy.

New Server

Caliban Darklock wrote this terribly early in the morning:

Blogspot just wasn’t doing it for me. I used to be over on cdarklock.blogspot.com, but I decided to get serious and move things over to my own server.

I’m not deleting the old blog, but I’m going to stop updating it.

Lack of Open Source Thinkers?

Caliban Darklock wrote this in the late evening:

Dave Rosenberg has some thoughts on how we don’t have enough open source thinkers.

I think the problem is more that we don’t have enough thinkers who support open source.

That is a rather significant difference.

I like to think that I’m an open source thinker. I think about open source a lot, and I’ve come to a basic conclusion: open source only works reliably under a set of circumstances that no longer exist. One of the most important circumstances in that set is the technology-centric nature of open source users.

Open source works when the people who use it also support and develop it. Until recent years, this was naturally the case because the only people on the internet in the first place were at least semi-competent developers. Chances were good that any random person you spoke to on the internet knew a fair amount of the C programming language and was reasonably comfortable with at least one Unix shell. So chances were pretty good that if some random person asked for help with application X, that same random person would at some point make a useful addition to the code of application X. Since we all want useful additions to our applications, it was in our best interest to help that random person.

Today, chances are pretty good that the person asking for help is not a programmer, will never be a programmer, and has absolutely no interest in ever helping anyone else. These people register for support forums, ask their questions, and check back until they get answers. Once they have the answers, they don’t even say “thanks” - they just run off. They take what they want and contribute nothing. Even in the most indirect sense, you generally find - when you’ve done some digging - that this person isn’t just contributing nothing to your project, he’s contributing nothing to any project, and he’s not even doing anything interesting.

It is no longer in our best interest to help this random person. Open source development is very much an economy of attention and expertise; we give our attention and expertise to the questioner, in order to receive his attention now and his expertise in the future. When we will receive neither, and we know this, our attention and expertise are frequently withheld simply because they have a nonzero value to us.

We’ve chaffed the community. All of our valuable, thoughtful, and useful members are now concealed in a vast cloud of the meaningless and worthless and pointless. That doesn’t make the valuable and thoughtful and useful members any less so, but it does dilute how valuable and thoughtful and useful the community is as a whole. And when the community is effectively garbage, so is open source. Without a solid, reliable community, open source just plain doesn’t work. Our community has gone rapidly downhill, and shows no signs of slowing or stopping its descent.

What’s worse, nobody is the least bit interested in doing anything about this. The general attitude of the community is that things will just work, the same way they always have. But they don’t. They haven’t been working for a long time. And until we get off our collective arses and fix it, things are only going to deteriorate.

Eventually, Larry Wall or Tim O’Reilly will say “the open source community is failing” - and people will listen. But nobody listens to people like me, and I’m sure I’m not the only person out here seeing this. It isn’t that there are no open source thinkers, it is that the open source community doesn’t listen to the thinkers. They only listen to the cheerleaders. Whenever I air my thoughts on Slashdot or some similar site, I’m dismissed as another “open source doomsday” prophet. But what I’m saying is not “we are all doomed”, it’s “we must fix this”.

It can be fixed.

We just have to want to fix it.