Past EED rants

Labels

Live leaderboard

Poker leaderboard

Voice of EED

Monday, 11 September 2006

The Path To 9/11 [DrDave]

Last night, BBC2 showed the first part of the ABC docu-drama The Path to 9/11. Ostensibly to commemorate the fifth anniversary of the September 11th attacks on New York and Washington, this miniseries appears to be part of a wider agenda.
On the face of it, it was very well done and remarkably compelling. Big names like Art Malik and Harvey Kietel, slick production values and a fascinating story make this as watchable as any Tom Clancy film. A rare case of real life being just as good as fiction. However, when you look at it in context, there is a very obvious and very blatant subtext being presented here.
Firstly, it has been widely reported that veterans of the Clinton administration are up in arms about the portrayal of their role in the build up to the attacks. Clinton is shown to be distracted by the Lewinski affair, Madeline Albright at one point warns the Pakistani government of a cruise missile strike (and in turn warns Al-Queda of the attack - a charge she vigorously denies) and George Tennet (former head of the CIA) is portrayed as ineffectual in his role, unwilling to take responsibility for actions that could come back to haunt him.
Secondly, and more worryingly, is the not-so-subtle way that the drama apparently aims to justify recent changes in US policy. Numerous scenes feature exasperated CIA operatives exchanging glances that say "if only we could torture this guy, we'd get results" or "without the contraints of evidentiary procedure, we'd do better". The message put into viewers' minds seems clear: "if you don't want another 9/11, you need to accept the Patriot Act, or Guantanamo Bay, or a number of other draconian measures".
I can't help but think that there is Republican agenda being put forward here. With the forthcoming congressional elections in November, Bush et al. seem to be positioning themselves to capitalise, once again, on the events of five years ago. George Tennet seems to be being set up as the patsy who will take the fall - Condoleeza Rice is already shifting eyes that way, and this program only reinforces that.
Of course, it could all be bollocks conspiracy nonsense, which I tend to shy away from. Maybe ABC were simply aiming to tell a story and this was one particular valid interpretation of it? It will certainly be interesting to see the second part, and compare how they treat the Republican adminsitration's build up to the attacks.

Friday, 8 September 2006

Pipex buys Bulldog [Lurks]

It seem as if Pipex has bought Bulldog the broadband ISP that's renowned for it's London-based ADSL2+ service. You might view this in the same way as EA buying a developer you're quite fond of, nothing is likely to be the same again. What leads me to such a spurious claim? Well because a couple of years back Pipex bought Nildram. That established a pattern of behavior I don't think it's unreasonable to expect to see again.
Nildram was the clan's favorite ISP, a relatively small ISP with a large number of gamers. In fact the Jolt gaming service was a spin off from Nildram originally. Support was personal and generally excellent and highly technically competent and performance was in the top tier of anything you could buy for the home. They were also innovative, pioneering ADSL bonding. Unfortunately after Pipex took over, it promptly turned the whole thing into your standard British company. Rubbish support, emails that take weeks to answer, telephone voicemail hell and performance, for WoW at least, was basically hosed. Oh and forget anything innovative like bonded ADSL, far too much hassle when you're just part of the numbers-game collective. Pipex, in short, fucked our favorite ISP so I have difficulty becoming enthused at the subject of this blog.
Still, Bulldog is a very different ISP than Nildram was. It was never a particularly small, friendly and service driven ISP aimed at a niche from the outset. It was just telling the country that you could get faster Internet with them, even though the fine print ended up being "* a tiny bit of London" at the time. If what it ultimately means is that Bulldog has the financial wings to get their ADSL2+ unbundling out to more exchanges then, unlike the Nildram buy-out, it might actually be a good thing. At least Pipex isn't buying something with amazing support in the first place. And let's face it, we'll be waiting a long time for BT to pull the finger out and roll out ADSL2+ nationally.

Monday, 4 September 2006

What's wrong with WoW? [Lurks]

It's always been cause for concern that Blizzard, due to their publisher connection, chose to run World of Warcraft's servers out of France. A country not exactly renown for their hard core Internet expertise. Still, deal with it they did but more or less as you'd expect. Every patch-time downtime was longer than the US. Servers in general are less reliable than the US. Latency to the servers is generally higher than that to the US (from folks in the US) and so on.
However at time of writing, things have taken a dramatic turn for the worse. The game is essentially unplayable in the context of 40-man raiding which is basically most of what we're doing in WoW these days, since we've been playing it since it came out. It takes an enormous amount of effort to put together a raid. People have to sign on our web raid calendar, an officer makes selections. Then people show up, someone passes out potions from the raid bank, substitutions are made, player stuff and potions are crafted/brewed on the spot, groups are set up, tactics explained, everyone sorted on teamspeak and you're ready to go.
Only to have half the raid disconnect as soon as you pull. Meaning a wipe, which means everyone has to run back and buff up and you do it all over again. Blizzard are nothing if not a modern e-commerce firm in that they make it pretty much impossible to engage them in a one on one way unless, of course, it's a billing issue. So people have had to turn to the technical support forum. That filling up with crap they finally made available WoW*ConcernsEU*blizzard.com (delete first, replace second with an @) to email. So I sent them an email, largely in futility, but the nuts and bolts are:

At the moment you're chucking a party every night and everyone shows up to discover there's no beer. Tell us there's no beer and we'll go to another party instead.

Scarily we have about 130 accounts in our guild which is well over a grand (in proper money) a month they're getting from us. Nice work if you can get it and it would be, you'd think, worth a simple communication to tell us what the hell is up and when they might fix it. The only thing they do say is that it's a network issue but generally our latency is fine. We just get disconnected.
This leads me to speculate on what's going on in a purely non productive and fun sort of way. Some of which I can deduce with evidence and some of which is just a guess based on a pretty rudimentary knowledge of how to do server stuff but mostly guesswork. I don't often speculate so please take this with a large pinch of salt.
We know that they run the continents seperately. Perhaps two game server processes on the same box. We also know that they have a seperate instance server. It's not clear how much hardware but it wouldn't need to be on the same box. Certainly the fact that they've implemented cross-realm PvP would seem to indicate that they use different boxes for instance servers or at least PvP.
There's three general 'lag' issues you see in WoW near as I can tell. First of all your standard network latency. This is a bit retarded since the in-game display is averaged over a very long time so if your latency comes good, it still stays read for ages. Which means people disconnect and reconnect just to make it green, thinking they've fixed their latency when in fact all they did was clear the latency measuring buffer. They really ought to fix that.
The second lag issue is what I'll call server lag. This is basically the game coming back and acknowledging an action you've performed. If you've got sever lag, you'll see the start of a casting animation for example, but not any more. The action wont complete. Also this manifests as chat lag too. This lag comes and goes all the time even when the servers are working okay-ish.
Thbe third lag is what I'll call database lag. Basically if you do anything that results in a write to yours or anyone elses character data, it's pretty obvious this requires a write to a database. The most obvious way this manifests is in 'trade lag'. You trade someone a simple item and it takes ages to complete after you've both hit accept. Warlocks also know this lag because unfortunately a db write is triggered when you soul drain just before killing a mob to get a soul shard. In fact eventually the game often gives up and you don't get your shard.
So, imagening a server topography, per 'server' like Runetotem, we have two realm server processes which act like game servers we're familiar with like Quake. This just handles people walking around and talking. The processes cover the two big island continents in WoW. Presumably they will add a third for the expansion. We also have a big ass database which, I think we can reasonably assume, is common to everything on the server.
Note: Further rampant speculation. For cross-server PvP, I think each PvP server game instance box has read/write access to the databases for each game server. When you zone in, it takes a copy of your current character and when you zone out, it writes it back to your server DB. This wasn't working very well post the patch and I suspect hardware upgrades were associated with this somehow.
We also have instance server processes. We don't know if they're on the same box or not. Potentially this is a really obvious way of spreading the server load since instances are by their very nature quite bandwidth intensive compared to the regular old world server. So I suspect they are on a different box but we can't know that. On the realms instance box, instances are, I guess, simply spawned as a processes when people enter.
Which brings us to the issue we're having right now. We all zone into the instance and people disconnect. Why? I don't know. I think it can be shown that WoW disconnects people when the server is trying to send them a lot of data and they can't keep up either there's a network problem along the way or it becomes a client issue. There has to be a client component to that because some people are more susceptable than others and some have influenced how likely you are to disconnect by removing mods. Which is quite strange.
But see here's the thing that's not immediately obvious to people running WoW. When you run a mod, they insert triggers based on events and when the event happens, functions are run and lua code starts doing stuff. Any time it does stuff, what it tends to do is use some predefined functions to check the status on this or that, normally just to initialise variables to use for later. I might not be explaining this very well. It's a bit like having a person that may be called upon telling you how many red objects are in the room. The only thing is, this person is in a black box. He has to gather information about the scene one time only before we close the lid on the box. WoW mods are like that. They don't run all the time, many of them are actually being triggered on instance zoning in. You can see them all trigger in your combat/general logs scrolling in the little windows.
No problem there you think? Well actually there sort of might be. I don't think WoW actually pulls down every bit of data about everything, in fact I know it doesn't. If you trigger a function which checks on, say, the reputation of a given faction of the targetted player, deep within WoW's binary it has to inject a request for that data into the upstream communication with the server. Then it has to get a result back (stalling your lua script and often your level load/zone incidentally) before the lua function can return the data your script is asking for. Why is this a problem?
Well, we run a LOT of mods. All of them are basically trying to memorise quite a lot of stuff from the instance and all of them end up injecting those requests into your WoW network communication to the server, and then sit back waiting for results back from the server before the lua scripts can exit. This takes awhile and it's quite a lot of data per client. At some point the WoW instance server process appears to become unhappy with this and disconnects you. Under exactly what conditions it's impossible to tell.
So why is it worse now than it was before? I have no idea. However, if I had to guess I'd say that the instance server is running on the cross-realm PvP server hardware. it might be being loaded by players from several servers now and is hence busier than it was. That's the only real change as of the last patch and that's what would reasonably require a hardware upgrade, which was the change that immediately preceeded the disaster we're currently seeing.
An instance server ends up facing the same sort of challenges that a busy web server does. Lots of people connecting wanting stuff. The more people that do it, the longer it takes to serve a connection and at some point you end up failing miserably to cope and the number of current connections all slowed to crawl becomes so long, you have no choice but to time them out or run out of memory. Also you want to time some out, to free up the process to try serve someone else. On a web server you get a "too many users" message, on WoW you disconnect.
You can, I think, improve things a bit by removing mods because you're asking for less data from your level load for the reasons I mentioned above, but really it's a straight capacity issue and a software design flaw.
Where it gets really strange, and which subverts the above theory to some extent, is that the disconnections issue does tend to resolve itself when you've reduced the amount of alive mob in the instance such as the famous Blackwing Lair 'suppression rooms' which are instantly crammed with many hundreds of monsters. I say subverts because your mods don't have any data to query regarding mob in your view other than one you have targetted. For the quantity of mob to be an issue, we start getting onto an issue which I do know a little bit about.
Network code in action multiplayer games. Normally games tend to try cull things you can't see if they are beyond a certain distance as the crow flies. They do tend to send you data of entities which you can't see who are within a certain distance because you might hear them and it cuts down on the computational cost of working out if you can see something or not.
I think it can be empirically proven that WoW sends the basic location and movement vectors of every mob in an instance regardless of whether you can see them or not or how far away you are. (Well okay, I think there's probabily a maximum visibility distance but it's a long way). You can often break WoW a little and target something through a wall from a mile away. AQ40 is a good example, you can target something much later in the incident by looking left around the left point of that rock outcrop. BWL is a particularly bad instance in this regard because it's built a bit like a cube. As the crow flies, you're very close to a huge quantity of mob right as you zone in from the front door.
Does it subvert my point or does it back it up? So now not only do we have your scripts and your general WoW client querying a load of variables and issuing server requests through your netcode connection, but also the damn instance server is trying to send you updates of every single mob in the instance at the same time. It's worse than that. Even the most basic netcode, and we'll assume WoW is exactly that, doesn't send 3D coordinates for ever mob and facing direction for every update. Rather it's somewhat compressed and while there are various schemes, basically it says 'mob x moved left 3 meters' or, if it's smarter, 'mob x is moving left at 3 meters per second'. The client then takes the previous know position and makes those changes.
There is one vital exception to this. When you zone. Your client has no idea where the mob are so it has to get full 3D positions, model ids and modification attributes, alignments, animation stage positions and so on all when you zone in. Only when it's done that can it send you those deltas in the compact form later.
So what we have is you're zoning in and the instance server is telling you about every mob in the suppression rooms and probably fecking Nefarian as well, and your scripts are screaming out for updates at the same time. The absolute data that was sent to you was right only for a bit and if mob is moving around (and it is in the suppression rooms) then you've got a bunch of stacking up delta data as well which you need to get before you're properly 'zoned in'.
This comes back to my original conclusion of bad or at least incomplete software design. Much of this issue has been solved by people making multiplayer computer games in the past and Blizzard kind of made things worse for themselves by having this event triggering system for interface add-ons. I shudder to think, with the amount of people playing, the impact it would have in having a modern network code strategy on the combined bandwidth. Significant, I think, highly fucking significant.
The strange thing is, Blizzard are no stranger to optimisation. You may not recall how bad IF was at one point. How long it took to load in to IF in particular. They changes the code to basically zone you in and kind of stream the entity updates to you after you'd loaded so players popped into the world. They do not, however, appear to have applied that strategy to instances and mob and now we're paying for it. There might be a reason, I guess, such as you could zone in and get past some mob near the door because it hasn't popped into your world yet. I would say the easiest fix would be to apply the incremental entity loading and just fix player position until it's complete and the world has caught up.
At any rate, I hope the above serves to illustrate that I actually believe the problems we're facing are less about levels of hardware and network performance issues than software design. That being the case you start to understand why they're not saying anything about the time frame. Or indeed anything at all.

Nvidia sucks [Lurks]

I reinstalled my server and having downloaded the latest nvidia drivers I got this pop up:

Now, I thought it was just confused because I had a previous Nvidia graphics card in - a crappy old GeForce 2 MX400. You can see why I'd think that looking at the message. However later I completely reinstalled the system so it could have no possible record that it had another Nvidia graphics card in it. It still popped up on a brand new install. If you click on it, you get taken to some web site that goes rah rah SLI is great etc etc. Slowly it dawned on me.
What these wankers have done is basically made this bubble pop up on any single-GPU Nvidia system each and every time you boot up. This EA-like thinking (the guys who bring you unskipable trailers every time you load a game up) has obviously been executed as a marketing drive to increase awareness of SLI and obviously try sell more graphics cards. It is, I think you'll agree, deeply fucking pathetic and my overall view of Nivida has gone down a notch. I think they probably factored that in and said, "So what, we have their money. We want to sell NEW cards."
So the bottom line is, if you have an Nvidia graphics card and you're installing the latest drivers, you're going to want this which is a reg entry to get rid of it. How generous of them. Twats.

Where the fuck am I? [DrDave]

GPS systems seem to be on their way to becoming ubiquitous for motorists in the same way that mobile phones with loudspeakers and MP3 playing capabilities are ubiquitous for cunts on buses. It really is a marvellous technology, and one that you can very easily come to depend on.
However, living in London and having no car, it often occured to me how useful a personal pocket version of these devices would be. Something with the same software as Tom Tom devices, but which could be stuffed in your pocket and whipped out only when you need specific directions to the Raymond Revue Bar (or whatever seedy haunt you're after).
Oh, you can already get such a device, many in fact, but they're all quite pricey for something you won't use very often. Besides, I've already got a PDA form factor device in my M500 mobile phone. Surely I could get something going with that?
Then I found this. Unbranded, cheap as chips, but with good reviews and compatible with most GPS software for the PocketPC. Enthused, I shelled out the 40 quid. Firstly, mobilefun were brilliant. I ordered at 4pm on friday after, paid £2.50 for delivery and it was with me at 10am on saturday. Second, the device is tiny. About the size of a matchbox so it can easily be dumped on your pocket and forgotten about.
Setup is quick: turn it on, pair it with your mobile over Bluetooth and you're away. The TomTom 5 software sees it as "other Bluetooth GPS device" with no problems. Like all GPS, it has problems getting a signal indoors, unless you stand by a window. Once outside though, you're fine and it acquires solid locks very quickly. Buses tend to hit and miss, and I couldn't get near enough to a window on the cattle truck train I used this morning.
To test it, I had a wander around central london yesterday with the device in my jacket. Navigation at walking speeds is a little weird and really shows up some of the extrapolation that the software does by necessity - one minute you'll appear to be walking up one road then suddenly you'll flip to another one as the +/-10m accuracy problems in GPS resolve. On the whole though, it is very useable. And with a headset on your mobile, you can get the directions without even turning the screen on, very useful for preserving battery life.
Very handy little gadget!

Thursday, 31 August 2006

Scary Movie [Spiny]

So this is how they breed them?...yikes. Trailer.

Core 2 Duo - holy cow! [Lurks]

I haven't been this impressed with a technology generation for some time and Intel's Core 2 Duo processor is so damn good, it has ramifications for all of us because you are going to want to upgrade. First a bit of a backgrounder; following the Intel Pentium III processor, they needed a new architecture because the existing one was running out of steam at higher clock rates. I can only assume Intel had a range of possible directions to take but ultimately they settled on Netburst, the architecture that ended up in the Pentium 4.
Choosing Netburst, I believe, was motivated by marketing. People didn't really understand the crazy performance vs megahertz ratings that were in the market place. Netburst meant big MHz ratings, bigger than what AMD could hope to achieve, so they went with that. Of course the processor was a LOT slower for a given MHz than the competition and even the previous Pentium III but they still thought it was a good idea. Let's be clear, nothing about Pentium 4s were good and they were particularly absurd when you examined the dual-core varieties which was dramatically slower than AMD Athlon X2s, hotter and more expensive.
Meanwhile, in Israel, a seperate Intel unit worked on mobile processors. With power to performance as a primary consideration, they settled on a revised Pentium III architecture which became known as the Pentium-m. I've blogged about this 18 months ago when I upgraded my lounge server 'Wench' to a 2.0GHz Pentium-m Dothan processor using a kooky specialist desktop board. Pentium-m was, basically, faster than Pentium 4 and managed to do it while using a fraction as much power. In fact Pentium-m was so good, it gave the highest end desktop processors a run for their money. Take a look at Digit Life's views at the time.
Intel's fortunes as a result of this internal politics fiasco that left them without a decent desktop processor, fell somewhat. To the point where the CEO issued a company wide memo saying that it was time to get the house in order. That was the first clue we had that Intel were going to get things back on track. What they delivered was a processor technology called Conroe. I work for a computer manufacturer and the chaps in R&D playing with these samples couldn't shut up about the sort of performance they were getting and then shortly thereafter, the press were saying it too.
Let's cut to the chase. Core 2 Duo is incredible. It's not just a little bit faster than AMD, it absolutely positively wipes the floor with AMD. I intend to do blog on creation of an ultimate games PC with Core 2 Duo later on but that's going to have to wait for the availability of the NVIDIA nForce 590 chipset motherboards to come out. First, however, I needed a little hands on. Wench, my lounge server, doesn't have enough grunt to playback H264 encoded HD video. The processing power this needs should be self evident if it can't play back smoothly in busy scenes on a no-slouch Pentium-m 2.0GHz processor.
Still, some crazy processor would be overkill for a lounge server so I went with the cheapest Core 2 Duo available. The E6300 which is clocked at a miserly 1.86GHz. This is a 266MHz quad pumped FSB (1066MHz actual) by 7 multiplier. It can be had for about £120 with a retail heatsink fan which sits somewhere between the cost of an AMD Athlon X2 3800+ and a 4200+.
First stop, let's just take a quick look to see how it compares in SiSoft Sandra's Arithmetic benchmarks versus my old Pentium-m.

Ah, quite alot faster then. Let's drop a caveat in though, this is a dual core processor. The benchmark you're seeing here is a multi-threaded benchmark so the E6300 is cheating by having two cores but that's kind of valid don't you think? Bare in mind that a Pentium-M of exactly the same clock speed, the Pentium M 750, costs £160 and is slower than the one shown.
See here's the thing though, Core 2 Duo isn't even stretching Intel's fab technology right now. Enthusiasts around the world are buying these things and overclocking the hell out of them. Anand has a great guide. Let's cut to the chase though, here's that £120 processor, overclocked on the standard reference cooler thrashing the AMD FX-62 in games and that's a processor which costs around £550. To do that Anand overclocked a humble E6300 to 2.592Ghz up from 1.86Ghz stock. That's a pretty nice overclock but in the end 186fps in Half-Life 2: Episode One versus 171fps from the AMD is really quite amazing.
So, anyway, I upgraded Wench with a brand spanking Gigabyte GA-965P-S3 motherboard and it all went without a hitch, booting into Windows right away. Then I went into the BIOS and raised the FSB from 266MHz to 357MHz. Set the FSB to DRAM ratio to 4:5. That gives a CPU clock speed of 2499MHz on an FSB running at 1.4GHz and a DRAM clock speed of 446MHz. PC6400 DDR2 memory running at PC7136 speed if you prefer to look at things like that. Fast, anyway. All on the stock air cooler which simply pushes on to the board, no faffing about. It booted, it's been running all day and night without a hitch. No CPU voltage hikes necessary, nothing. 2.5GHz out of an E6300. That's just a shade short of the speed Anand did in the above feature so you could expect benchmarks around that mark. Wench basically now has a processor faster than an FX-62. Bloody hell.

Needless to say it plays H264 HD video without hitch now :-) I also threw a cheap PCI-E GeForce 6300GT graphics card in the box to replace the previous GeForce 2 MX400 peice of crap and I just had to fire up World of Warcraft on my projector. Bah, I'd play from my couch, kicking back to a 9-foot screen if it wasn't for the fact I need a Logitech G15 keyboard for all my keys :-)
And here's running the SiSoft Sandra Multimedia benchmark running at 2.5Ghz and comparing it to a Pentium 4 Extreme Edition 840 and an AMD Athlon X2 4800+ among others:

I was expecting to need to buy a more expensive processor when going back to revisit the upgrade boogy with my gaming desktop but now I'm really not so sure. This little processor is basically running just a little shy of a top-end E6700 processor which is about £386 worth of processor. For an uber gaming rig I'd probably buy the E6400 processor for around £163 and then clock the thing within a fanny hair of Core 2 Extreme, a £771 processor.
Bottom line here, Intel done good. It's hard seeing how AMD are going to bounce back from this one any time soon.