Taking it all apart

It’s one of those things I love: You start with a simple premise, in my case “let’s reduce the amount of synchroonous loading in Anarchy Online”, and end up with weeks of work. The reason: tentacles.

A lot of AO code doesn’t like when you load a mesh asynchronously, so especially when new characters get into your vicinity, their meshes are loaded in the same frame (well, not exactly true, there’s some throttling). This is mostly because the animation code really hates not having a mesh, but also the special effects code and some other bits and bobs. While looking at that, I noticed that in other places, people don’t use the asynchronous resource-loading thread, mostly because it is hard to use, and got added as an afterthought. It was clearly time for some refactoring.

So I started not with more synchronous loading, but with changes to the Resource Loader itself. The first test I made gave 25% faster loading times for synchronous loading, so even with no change to the rest of the system, I would increase framerate for those laggy you-entered-a-new-zone moments.

So I rewrote that, and also changed the API. This is where the trouble started. Changing the Resource Loader API meant chnging a lot of classes that were inheriting from the Callback class to using a separate callback class (which lets me then also load objects that did not previously inherit from that class go through the Loader. I’d need a diagram to explain this properly). So suddenly, nothing compiled, and I was in the middle of rewriting those classes when I decided that the callback mechanism was a bad design in the first place, and that I rather wanted to use ACE_Future objects and cleer notification. Around this point, I also decided to make meshes load _only_ asynchronous from now on, because the ACE_Future objects will allow me to make the transition between now and fully async loading as smooth as I want it – well, or so I hope. I haven’t even started fixing the mesh class.

And if you go through that much code, you see all those things that are bugged. Dangling pointers, bad design, inefficiencies. And I just can’t let those be, so I end up taking a detour of one, two hours to fix some smaller thing. It spreads. And now it’s the weekend, and I can’t tear myself away from the machine, although I have no hope of getting this stuff to work any time in the near future…

I love my job 🙂

Arthur C. Clarke is okay

After the tsunami, the first thing I checked for in the news was whether one of my favourite writes was okay. Today I found confirmation that Arthur C. Clarke and his family are okay. He’s suffered some material damage, but no personal loss. The email mentioned in the article is here

Which reminds me that I need to finish reading Time’s Eye.

Where does Spam come from?

The original SPAM comes from Hormel Foods, of course. But as Ben Goodger writes, Spam emails and Viruses come from Microsoft’s Outlook products. He says he’d like to simply block them all.

I’ve done a count through my spam: For 298 emails I received from Outlook (and OE), I received 2269 viruses and spams from them. During the same time frame, I got more emails from Thunderbird users, but only 9 spams.

Outlook and it’s little brother Outlook Express are the prime tool for the propagation of spam, viruses and phishing emails these days, and I think it’s almost getting to be a good idea to reject mail originating from them. After all, if 89% of all phonecalls you get were from telemarketers, wouldn’t you get an unlisted phonenumber? Damn right you would. Now that 89% of the mail reaching me through Outlook are bad, I don’t want Outlook to reach my mailbox anymore.

Well, not quite yet. But I’m *this* close.