XHTML 1.0 vs. HTML 4.01

If I may quote from:

http://hixie.ch/advocacy/xhtml

which is considered the ‘official’ piece on the subject –


Why using text/html for XHTML is bad
————————————

What usually happens to authors who decide to send XHTML as text/html
is the following:

1. Authors write XHTML that makes assumptions that are only valid for
tag soup or HTML4 UAs, and not XHTML UAs, and send it as
text/html. (The common assumptions are listed below.)

2. Authors find everything works fine.

3. Time passes.

4. Author decides to send the same content as application/xhtml+xml,
because it is, after all, XHTML.

5. Author finds site breaks horribly. (See below for a list of
reasons why.)

6. Author blames XHTML.

Steps 1 to 5 have been seen by every single person I have spoken to
who has switched to using the XHTML MIME type. The only reason step 6
didn’t happen in those cases is that they were advanced authors who
understood how to fix their content.

I don’t know whether or not I agree to this whole thing yet. I like some of the thinking. But here’s my thing – I like the style of XHTML. All my tags nesting properly and stuff. That’s cool. But I don’t like things busting. That’s not cool. So can I do something really vile and put an HTML DTD at the top? Then it gets parsed as soup.

Anyways, let’s look closer at those issues he lists. –

  • 1 – Number one sucks. We hate when that happens. You can’t stop ’em though.
  • 2 – Number two is unfortunate – our lives would be easier if this didn’t happen. Too late, genie, bottle, etc. Not a Christina Aguilera reference.
  • 3 – Yes it does.
  • 4,5, and 6 are ALL THE SAME THING. I don’t care about ‘blame’ – that has no technical merit in any thing. I don’t care who gets blamed for what. That’s not my problem.

4 and 5 happen at the _same_ time, unless idiot Author changes his Content-type and then doesn’t check his site. If so he is stupid, and we cannot design for people who are stupid. (Average is OK. Clever is OK. Typical is OK. Really Stupid is not OK). So the author actually has Tag Soup, and cannot serve it as Application/xhmtl+xml. He has to revert back to text/html. WHO CARES? I don’t care who he blames. I don’t care at all. As soon as he tries to serve application/xhmtl+xml, his site explodes, and he has to switch it back. Sounds like application/xhtml+xml is a very, very good ‘toggle’ of Real XML Content compatibility.

So what can we do, instead? Serve your semivalid XHTML as text/html. If you don’t like polluting the DTD that is XHTML, make your doctype HTML 4.01, and have invalid documents. The whole point of this is that we can’t fix the past (HTML 4.01), we can only try and set things up to work well in the future. And that’s precisely what’s happening in Hixie’s 4,5 and 6 steps, above. Those are in the future. And until Joe Blogger is serving his content as application/xhtml+xml, we can’t be absolutely sure that it’s XHTML, i.e. an XML document. We may want to treat it like Tag Soup. That’s what we do already.

I think also, that we’re dealing with a very, very subtle problem here, as well. Hixie publishes a nice plain text document, with the “Considered Harmful” lingo which sounds so RFC-like. And says some stuff about how valid XHTML is good. And people (programmers) like that. So they quote him and cite him. And it looks formal and correct and well-debated. But he’s wrong. Instead of moving us forward, he’s keeping us mired in HTML 4.01. I say, better to be invalid HTML 4.01 because you’re secretly striving for XHTML. Being valid HTML 4.01 doesn’t help you. But that tone and style in that document make it sounds already settled, and it’s not. So beware documents that sound like that – plain text, “blah considered harmful”, etc.

Ultimately, your choices are: do you want Validity? Do you want it to Work? Do you want future-ness? Do you want XML-itude? And if your primary concerns are Validity and Workingness, use HTML 4.01, and validate it. If you want Futurey bits, and XML-itude, you can try to make valid XHTML 1.0 and serve it properly. But you’ll probably botch it because it’s hard. If it’s too hard for you, and you don’t care about validity, don’t serve it as application/xhtml+xml.

I don’t care about HTML 4.01 being valid. Fuck it. But I do care about XHTML being valid, and I think the “Content-type as validity toggle” is a good step for now.

UrbanDead et al

I haven’t written anything in a bit because I’ve been working on the Volchok Store. When I get home, i’ve been playing katamari damacy. It is an awesome, extremely creative, game, though frustratingly short. But there’s definitely some replay value. I like replaying one level in particular, which I won’t spoil the details for…but it’s really cool. The soundtrack is extremely creative as well, which is nice.

However, the topic I am here for is an MMORPG called urbandead. It’s very simple, and not too time-consuming. There are humans and there are zombies. When a human dies, he becomes a zombie. When a zombie dies, he can get back up as a zombie. As you can imagine, this leads to a very disproportionate level of zombies. It’s possible to ‘revivify’ a zombie, though I’ve never seen it done.

As I’ve gone through about, say, 4 or 5 human characters now, I think I know the deal. Hindsight being 20-20, I would like to see some mechanics changed to keep it more interesting. Lots of stuff from “28 days later”. hunger – both Human and Zombie – would be intriguing. And dead zombies should have something worse happen to them – right now they just get up – that makes it so there’s no point in killing them. I understand that the author doesn’t want to punish zombies for dying too hard, but maybe moving them to the graveyard or something would be better? While we’re at it, I don’t like that we can have 5 guys in a barricaded building, armed to the teeth, and have them allow a zombie to break in and kill them all, without firing a shot. And how come I can walk in to a room with 8 zombies in it and casually root around for stuff without them taking swipes at me? It doesn’t make the game uninteresting, it just makes the game not-a-zombie-game. Or at least not a Classical Movie Zombie game.

So fine, very nice gripes – but how do you fix them? Autodefend? Let the server fight for you if you’re not there? Maybe. But I think the real problem is that it’s 24 hours happening in 24 hour time. You never encounter another user “there” at the same time as you. You log on and find out what they did, instead. And what they’ve done to you is usually spend all 50 AP’s on Deadifying you.

If you had features like ‘autodefend’ and ‘autobarricade’ – you’d come back after 24 hrs. “rest” to find that you had no ammo or AP’s…argh.

Also – and this is a minor point – if you did manage to face someone in real time, if they had a faster net connection than you, they could killulate you all the harder, with you not being able to respond in kind.

Getting killed while you’re logged off is lame. But I guess that’s just the consequences of your actions – did you hole up in the right place? but maybe ‘logging on’ means coming out of your hidey hole. And the same for the zombies. Then you’ll only be handling face-to-face battles. instead of AP’s you’d be dealing with stuff in real time, or delays in the seconds – it takes 2 seconds to do X, 5 seconds to do Y…You could still do defensive emplacements, and co-operation…dead people should still become zombies, but dead zombies should either die or go elsewhere? Die ideally…

But then, to play with your friends, you have to be on at the same time. . . Maybe you could have “territory” – human vs. Z controlled. If you “rest” in territory that gets overrun, well, then you log on Dead. And the same for them, shambling undead bastards… And maybe you make it so that only ‘n’ people can exist in ‘m’ space…i dunno…it forces some people to sleep on the front lines…maybe zombies should be NPC’s…

Let’s look at what the ‘sim’ should be simulating. Zombies take more damage than humans, but tend to do less, due to humans having those dirty, dirty opposable thumbs. Zombies outnumber humans. Dead humans become zombies – if infected. Humans need food. Do zombies need brains? Zombies are dumb, slow, and mindless. Zombies, when killed, die.

Urbandead keeps the Z population up by making being a Zombie pretty easy. And death being inconsequential. Under my system, zombies will tend to suicide and make a new human character…

Maybe you make it so that zombie players can pop up in another body (that isn’t being used), and carry some kind of identity and xp and skills into the new body…so if you, as a Zombie, die, you take over another body (elsewhere, probably) and kinda become them? You might make it so that you don’t get to play your Zombie char at all. You just have to take a new Human form? A la wow – spirits running around? And maybe something where you can kill dead bodies to prevent their zombifiction.

Anyways, I like some of my ideas, not others. Just wanted to jot them down.

Ooh ooh! You could have an effect be ‘knock unconscious’ and unco people might be indistinguishable from Z’s…then “joe schmoe gets up…” eek! Is he a zombie! Or “CHECK PULSE” – joe attacks you for +20 damage!