Despite the last post about the intentional fragility of CNExtend, it looked like it just was not feasible to continue having the page parser break whenever unexpected rows were encountered. Two things changed this: the frequency with which people were starting to encounter the “Actions Taken” row, and the fact that “Alliance Seniority” now appears (and only when you’re in an alliance).
Now, instead of expecting a certain row order, CNExtend now just iterates through each row on the page and checks it against a hash of row “signatures”. If it doesn’t find it in either the hash or a lookup table, then it will throw an error. This means that CNExtend will no longer complain if a particular row is missing, but it also won’t break when rows that only sometimes show up appear. I may eventually add something that specifies that certain rows are always required to validate a view.
The layout editor also got some tweaks, with the addition of the ability to make custom headers appear only in the extended view. This was necessary because some headers only make sense alongside rows that only appear in the extended view. This was already present in the normal layout, but it was hard-coded and you couldn’t change it in the layout editor.
I did some profiling with Venkman, and optimized the drawing speed of layouts. There are probably a couple more optimizations I could do, but it is reaching the point where it’s as fast as it’s going to get. The improvements were pretty substantial, around 50%+, and I will reprofile it again next week to see if I can find any other hot spots.
There’s a new options tab called “Register”, but at the moment it does nothing. It’ll eventually integrate with tech and trade networking capabilities, but there are still a few things that need to be fixed up before that can go into production.


May 5th, 2009 at 6:11 pm
Very sweet… can’t wait for AID and TRADE!
May 21st, 2009 at 10:28 pm
Thanks a lot for this awesome script and know thats its deeply appreciated through out CN!