X-Plane Sucks!

And while I’m sitting here waiting for my source to build, I’m going to rant a bit about the vaunted X-Plane flight simulator. Last fall I replaced my ailing Windows machine with a nice shiny new iMac 20″ G5. (About a month before the announcement of the Intel machines… Grr.)

I was a little worried about not being able to run Flight Simulator any more, but from the hype on the web, X-Plane was more than enough to keep me happy. Little did I know.

To put it simply, X-Plane sucks. It’s a matter of production values. First, let me say that the new global terrain graphics are perfectly adequate. Graphics are not the issue.

First of all, the simulation engine changes with practially every single minor revision of the software. That means that planes designed for one version of the software fly wildly differently on others. And since updates are released about every six weeks, this is a major problems for one’s enjoyment of the product.

Second, the planes are crap. If the have a 2D cockpit, it’s only good for one resolution, and doesn’t scale to others. So I have to downgrade my screen to 1024×768 to fly, either sssstttrrreeetttccchhhiiinnnggg to fit my wide-screen monitor, or leaving black bars on each side. If I’m in 3D cockpit mode, most of the planes just have the 2D cockpit hanging in empty space in front of you. Any change in viewpoint from the default results in a jarring cognitive dissonance.

Third, the interface is crap. You cannot get a joystick coolie hat to move your view in both 2D and 3D cockpit modes at the same time.

Fourth, the avionics are crap, as are plane builders’ instrument choices. If you’re going to simulate anything more complex than the S-TEC, include a FLCH function. Trying to level some wildly overpowered fantasy jet before I can hit altitude hold is an exercise in futility. And the autopilot . . . what can I say. Don’t eat a large meal before engaging it, is all I can say. X-Plane is singularly responsible for introducing me to the concept of AIO: autopilot-induced oscillation. In all dimensions. And don’t even think about mentioning the FMC. If it bothers to notice a turn at a waypoint, it takes its time telling the autopilot.

Fifth, the AI air traffic control is crap. It takes no notice of airspeed when commanding descent, so many’s the time I’ve been instructed to call the tower on ILS intercept — and found I was at angels 10, one mile from the runway. This is probably the reason it nags you every 30 seconds whenever your rate of descent slips above -6000fpm.

Ordinarily I’m all in favor of the little guy — I’m writing a spaceflight simulator I hope to release someday — but in this case, production values win out. As soon as I can I’m buying a windows machine to run FS X on. X-Plane is pretty much the most disappointing $60 I’ve ever spent on software.

Personal Programming Pet Peeves

So I’m getting into the swing of things here at work. It’s a pretty nice place to work — the people are relaxed and friendly, and charmingly cynical about their absentee managment. The code is innovative and of good quality.

But the build system. Oy.

Is it merely a pipe dream of mine to eventually find a place where setting up one’s build environment consists of one checkout, and the head branch — if the source control system is capable of branching at all — is always in a buildable state? These things can be made company policy, you know!

But no, the build master is a secretive gnome who’s never around. Checking out the source requires mapping a double dozen directories to random places in your working copy. There is a common include directory that has CPP files in it that are compiled multiple times in different projects. There are binaries in the source code repository. The Visual Studio project settings are massively inconsistent between projects and configurations. There exist multiple massive contradictory documents on the process, but building the system requires multiple tweaks.

I’ve done this twice now, the first time last week with the crap machine I had at first, and now the last two days on my good machine. It takes two days on a fast machine to set up and build the initial development environment. Oh well, it means I can read more blogs…

Here’s some policies for a sane and problem-free build system:

  • Use a source control system that supports branching. Perforce, Vault, Subversion, etc. NOT VSS. (Caveat: I haven’t tried the new VSS yet, but the old one is clearly from the hot place.)
  • The directory structure of the repository should mirror the structure of the working copy. You’d think this would be a no-brainer. The people who “designed” VSS’s “set working directory” functionality must have been smoking something powerful.
  • Checkins to the head branch must always build. Breaking the head build must be an officially reprimandable offense. This can be enforced in software, with a decent source control system.
  • Keep Visual Studio project configuration standardized across configurations. This means you have to learn about $(OutDir), $(TargetFileName) and friends. NEVER hard-code a directory in a project configuration except the initial output directory setting.
  • Keep VS project configuration standardized across projects. If all the binaries are going in one directory, point $(OutDir) at that directory in all projects. Don’t have batch files copying things around in some projects.
  • Binaries never go in the repository, unless they’re third-party software needed to build.
  • Make sure the entire thing can be versioned, configured, tagged, built and packaged with one click. Now schedule it for every night, and burn the resulting source and package to a CD. This way you’ll have a consistent record of development.

For more excellent advice, see Mike Gunderloy’s excellent Coder To Developer. If there’s one software book you buy this year, make this the one.

What is Fundamentalism?

The lovely Andrea has been in a discussion with some people regarding some aspects of Christian thought practice in which the word “fundamentalist” has been thrown around a lot. I’m going to expand on a post I made at Matt Jones’s Blog.

The term “fundamentalist” is certainly part of the cultural zeitgeist, what with the rise of conservative Christianity in the US and fanatical Muslims doing their best to destroy Western civilization. The problem is, it’s an emotionally loaded term that means many things to many people. If we’re going to have a real discussion, we need to be precise in our terminology.

In order to discuss fundamentalism, we need to distinguish between the “literal” meaning of the word, and its use as a technical term describing a certain historical trend or movement.

It certainly sounds good to say “I believe in the fundamental truths of Christianity.” However, when I use the term “fundie”, I’m thinking of a particular attitude that is characterized by spending immense amounts of energy on irrelevancies, supported by self-righteous isogesis, in order to be able to feel good about oneself while ignoring the massive real problems in the world.

This movement was formalized in the publication of The Fundamentals in the 1910’s. I am inclined to agree with those who suggest that its roots lie in southern slavery and racism — if you concentrate furiously on petty sins, you can ignore the far greater evil that surrounds you.

This is why “fundamentalist” is a perjorative term to so many. It’s frustrating to see all this energy spent on utterly peripheral issues when there are so many suffering and unsaved people all around the world. In my opinion the only “fundamentals” of the faith that matter were nicely summarized in the Nicene Creed, and all else is a matter of taste.

This is also why the term can be applied to Wahhabist Muslims who favor verses in the Qur`an like 2:191 (“And slay them [unbelievers] wherever ye find them.”), rather than 2:190 (“Begin not hostilities. Lo! Allah loveth not aggressors.”).

People who voiciferously condemn birth control (and Harry Potter, and the Horseless Carriage) would still keep women in virtual economic and intellectual slavery.

People like Crystal “Is Higher Education Appropriate for Women?” who automatically say “I believe in the authority of the Bible” are a clear example of this kind of thinking. What they uphold is a particular interpretation of the Bible that is often out of sync with the thrust of orthodoxy. The first step in geniuine reflection and dialogue on these issues it to acknowledge that we’re fallible humans reading fallible humans’ translations of the Bible, so our interpretations are always at least two steps removed from the reality of the Bible.

The church’s historical opposition (it seems ironical to me how US fundamentalists, who otherwise view Rome as the lair of Antichrist, parrot such a Catholic doctrine) to birth control is based on an erroneous interpretation of Genesis 38. Onan’s sin was not in preventing conception per se, it was in denying his brother’s wife the economic security of children who could care for her in her old age. To suggest that women now should be kept in a permanent state of morning sickness is to limit their economic, social and intellectual potential, and thus itself a sin.

And the argument that “I’m just going to leave it up to God” is a clear cop-out — an abject abdication of the free will that we have as a part of the Imago Dei. When I go out walking in rainy Vancouver, is it a sin to carry an umbrella? Shouldn’t I rather trust God to decide whether or not I get rained on? We make choices to modify our circumstances all the time, exercising a power given to us by God for our good.

What You Know About the Middle East is Wrong

From Victor Davis Hanson’s site comes a couple of essays debunking the received knowledge of the hard left, both in the military situation and the notion of media objectivity:

When Cynicism Meets Fanaticism:

Opponents of the war in Iraq, both original critics and the mea culpa recent converts, have made eight assumptions. The first six are wrong, the last two still unsettled.

  1. Saddam was never connected to al Qaeda, the perpetrators of 9/11.
  2. There was no real threat of Iraqi weapons of mass destruction.
  3. The United Nations and our allies were justifiably opposed on principle to the invasion.
  4. A small cabal of neoconservative (and mostly Jewish) intellectuals bullied the administration into a war that served Israel’s interest more than our own.
  5. Saddam could not be easily deposed, or at least he could not be successfully replaced with a democratic government.
  6. The architects of this war and the subsequent occupation are mostly inept (“dangerously incompetent”) — and are exposed daily as clueless by a professional cadre of disinterested journalists.
  7. In realist terms, the benefits to be gained from the war will never justify the costs incurred.
  8. We cannot win.

Pictures Worth a Thousand Lives:

In the media war, Israel has three disadvantages. The first is an open society, which allows reporters (and filmmakers and activists and human-rights observers) the freedom to roam, record, and interview in first-world comfort. This has saddled Israel with what may be the world’s highest per capita concentration of reporters. Jerusalem is host to 350 permanent foreign news bureaus, as many as New York, London, or Moscow; the volume of reportage on Israel, Gaza, and the West Bank is 75 times greater than on any other area of comparable population. This obsessive attention necessarily distorts, by casting the Israel-Palestinian war in a theatric, world-historical light.
 
In the last decade, around 4,500 Israeli and Palestinian lives have been lost to the fighting. The Russo-Chechen war has killed 50,000 (11 times as many), the Darfur crisis has killed 180,000 (40 times as many), and the Congolese civil war has killed 3.5 million (778 times as many). But very few Americans can call to mind images of the ghastly violence in Chechnya, Sudan, or Congo—or even identify the warring parties—because these are places so dangerous that the New York Times simply cannot responsibly send a reporter there, much less a bureau.
 
If freedom is disadvantageous, this goes double when you happen to abut a shameless, propagandizing Arab dictatorship. According to Gutmann, the Palestinian Authority under Arafat used “the combat theatre (the West Bank, Gaza, and inside Israel) as a kind of soundstage.” Those famous scenes of Palestinian boys with rocks confronting soldiers, for example, are usually choreographed. Palestinian youths, exhorted by parents, teachers, and their televisions to pelt Israeli soldiers, are so conscious of the media presence themselves that they often don’t start in with the stones until photographers arrive. Israeli soldiers are actually forewarned of clashes when film crews suddenly materialize. (Coalition forces have experienced the same phenomenon in Iraq.)