Friday, October 02, 2009

Reykjavik Blog, Day Three

Hmm, lots happened today.

Headlines (for EVE players): Dominion will be released on 1st December, with Walking in Stations sometime after that. I posted a video of the teaser shown here to the EVE Markets site, forgetting that I pay for bandwidth :-S See http://fanfest.mmmetrics.co.uk/ for a decent summary of all the chatter. Oh, and someone who wasn't me mentioned EVE Markets in a dev round-table!

Headlines (for non-EVE players reading this because you know me): More internet spaceships stuff. Surviving mostly on chocolate covered raisins and orange juice, though I managed to sell a couple of beer tokens for 1000ISK so might be able to afford nutrition today! It's been cold and wet, or at least it was this morning when I last saw the outside world...

Thursday, October 01, 2009

Reykjavik Blog, Day Two

FanFest proper opened today.

I'm sat on the floor next to just about the only plug socket I could find in the FanFest venue - and yes, that is the Jita 4-4 undock point you can see through the 'window' - because there's free wifi here.

Didn't manage to get a slot in the frigate free-for-all tournament, but went to round-tables on the EVE server architecture and web development team. There is only one database server for the whole game... (Actually, there are two - one is a hot-standby machine - but the 30sec of unavailability that a switch takes is enough to kill the cluster anyway).

An (ahem) interesting presentation from those idiots at Goonswarm concluded events today as part of an alliance leaders' panel. EVE really is a cold, dark, harsh universe, and that's reflected in some of the playerbase...

I met CCP Applebabe today too! Finally shook hands with DV of EVE University. And, I was in the same room as StevieSG. Wow, I'm mixing it up with the stars here at "Jita 4-4"! Now, I should head off and find some food - it's only 8PM but it feels like it's been a long day. If only there were an easy way of getting or making a cup of tea here...

Tomorrow's expected highlights: talks on COSMOS (nicknamed 'Spacebook' by pilots), the API, the in-game browser and the economy; a preview of the next expansion, Dominion, and throughout the day the main PvP tournament. It's an even longer day tomorrow!

Wednesday, September 30, 2009

Reykjavik Blog, Day One

Left my flat at 7.30 this morning, got to Gloucester Green and on the Airline coach at 8. Checked in at Heathrow by 10.30am - I was amused by the EVE banter going on in the queue. The poor an behind me lost his Absolution the previous evening. (But it's not all bad; his son salvaged the wreck in his Paladin.)

The flight itself was about three hours, end to end - I got a window seat above the wing so got a few nice pictures, as well as some video footage that's just begging to be used at the next Late Service I run visuals at... Very smooth flight, and any form of transport where the tea is complementary is a winner to me.

Got to the hotel at about 5.00, and I went for a wander around the city while I had the chance... Managed to get thoroughly lost, and did actually end up going in circles for a while before I worked out I'd been right the first first time... It's not warm here, but above freezing, so I'm fairly comfortable with the temperature walking around.

Grabbed some food from the Subway across the road. This hotel's a little stingy - there's not even a "welcome to the hotel" pack, let alone a kettle or even any toiletries - and the WiFi is costly, so I've had to make the choice to leave the "leet haxor" skills in the toolkit and will use the FanFest area's free WiFi tomorrow!

Tomorrow's expected highlights: Free-for-all PvP tournament, plus some round-table discussions on the EVE server cluster and web development. More photos, thoughts and news from Iceland as it happens (and as I find free WiFi hotspots and the time to type!)

Sunday, July 12, 2009

So, here's one for you...

It's time for me to upgrade my mobile phone contract. Three give a "14 day peace of mind guarantee", so if you're not happy with your new phone you can send it back within two weeks.

But wait: there's more...

"In order to be eligible to return your mobile under the 14 -Day Money Back Guarantee you must not have used your handset to make or receive calls or texts, take photos, or download content."

So, I'm supposed to make up my mind based on... the colour?

Peace of mind? I'm tempted to give them a piece of mine...

Tuesday, May 12, 2009

I just don't understand how they broke it so badly...

"I know what the security settings for this wireless network are. But, they don't quite match what they were last time. Rather than use the proper settings, or let you change them, I'm just going to POINT BLANK REFUSE to try and connect."

And, actually, "channel" does not equal "security settings".

This stuff made it past QA?

Monday, April 27, 2009

It may be a game of internet spaceships...

...but I'm still not going to turn against someone who has a great deal of my respect (even if I have more scepticism about others). The ships may be pretend but the players are real, and that's enough for me.

Indeed, internet spaceships does turn out to be serious business.

Monday, March 30, 2009

Spoilt

Yesterday I had to install drivers for my printer on a housemate's laptop. It took about an hour to find, download and install them (and even then somehow we managed to get an installer in Dutch and muddle through).

It made me realise just how spoilt Linux users are that things Just Work...

Thursday, February 05, 2009

Big news from EVE

In the early hours of this morning, news came from New Eden: the largest alliance in the game, the Band of Brothers (BoB), has disbanded.

Details are still mostly unconfirmed - but talk is that a director of BoB's executive corp turned rogue, and booted all of BoB's member corporations from the alliance (thus disbanding BoB).

Goonswarm thugs are said to be pleased with this outcome.


Discussion thread (well, one of many) on EVE-O forums: http://myeve.eve-online.com/ingameboard.asp?a=topic&threadID=990387

This is possibly the biggest event to ever happen in EVE. With BoB out of the way (finally!) the resulting free-for-all to claim their former space will prove crucial in deciding the future shape of 0.0 politics and warfare.

Friday, January 23, 2009

Journalism 101: How not to review software

I was unfortunate enough to come across this "review" of KDE 4.2 (release candidate) today. Written by "Jacob W. B. ", it is perhaps the worst attempt at journalism I have seen in quite some time, and I'd like to explain why I think so.

First, a disclaimer: I like KDE. I prefer it to Gnome. I'm using KDE 4 quite happily at home and soon at work too. Even so, I feel entirely justified in the remarks I'm about to make.

Let's leave aside the deficient grammar, punctuation and coherence of the article and start examining the content:
we think that lately the KDE team version by version have been taking large steps in the wrong direction. They have been doing a good job at making a Desktop Environment that feels almost invisible, but the general design of the Environment itself seems a little too much like a Vista (i.e. Widgets) and Mac (i.e. the theme) clone and this isn't what GNU/Linux was originally designed to be, a clone.
Version by version? "Lately", there has only been one new major version of KDE: that is the KDE 4.x series. Its predecessor KDE 3.5 has been around years. The minor releases after KDE 4.0 - surprisingly, 4.1 and 4.2 (due soon) - haven't exactly been "large steps" but continuing on the path started by 4.0.

The first sentence, then, can be summarised as: the author doesn't like KDE4 and that is the approach they will be taking for the rest of the review. The second sentence seems to contradict itself: either the KDE team have been doing a good job with KDE4's design, or they haven't. And, incidentally, I'd say the theme was more Vista-ish; the "widgets" idea has been on Mac for years, and was adopted by Vista. What's novel in KDE4 is that a widget can live on the desktop or on the panel or both - it's a new take on an existing paradigm.

As for "what GNU/Linux was designed to be" - providing a choice, and providing an open-source alternative to proprietary software - I see no features of KDE that prevent this from being the case. Just because something's been used in proprietary software, does not make it a bad idea, and does not mean it should be avoided if it's a good idea.

Personally, I wasn't sold on the whole KDE4 theme until I used it. My first impressions were "it looks too much like Vista, and what's the point of the Plasmoids (widgets)?" Since the 4.0 launch, there are plenty more themes available, as well as some genuinely useful Plasmoids - from the usuals like the Wastebin and Pager applets to RSS feeds and the Folder View applet, of which I use three.

Back to the review, which continues:
"The second problem we have with KDE is the fact that they are somewhat breaking away from the easy usability and user friendly design of the GNU operating system...for example KDE 4.2 would not run on a computer with an 800MHz processor, less than 64MB of video, and 128MB of memory, where GNOME easily would."
I'm sorry - since when did "user friendly design" equal "low system requirements"? I think perhaps the author is conflating two quite different issues. If you're trying to run KDE4 on a machine with those specs then you're doing it wrong. Might I suggest that, say, Xfce would run much more smoothly on that hardware - because it's supposed to? If my Eee PC can (just about) run KDE4 then I see no reason why the system requirements should be a cause for concern.

Now we get to the real killer - the reviewer doesn't like the letter K. Indeed, the letter K is evil and therefore KDE must be bad! I mean, at least he doesn't drag in a mention of the Ku Klux Klan at this point, right?

Ah, crap, he did.
The "K Desktop Environment" when native programs starting with the letter 'K', are listed read "KKK" KKKKK ... they sometimes even designed artwork for the system that makes it look intentional to say "KKK", as seen in the image below. And we know that's not the case. It just seems as if they take pride in the letter 'K'... Though GNOME does the same thing i.e. "GGG", but this way is better because anything to avoid the "Ku Klux Klan" name similarity and reference.
Aside from being written in something barely approximating English, that such a substantial section of a software review would be taken up with such drivel is quite astonishing. Not only that, but it's accompanied with an image labelled "KKK KDE artwork - KDE 4.2" that's actually taken from an earlier version of KDE. The image is irrelevant - the prose even more so!

Now somewhat incredulous, I continued reading.
"And the KDE Desktop Environment has always made programs look more integrated with the Desktop Environment than as separate programs, and this kind of behavior is more confusing and takes away more from the usability than it adds. Additionally, the KDE team have designed their own replacements for programs, so that they integrate better, nice, but when there is something already out there, it would probably be better-- particularly for compatibility reasons --to use it instead, and just modify, add and remove features."
I'm sorry, but I honestly can't decide what point the author is trying to make here. A consistent "look & feel" is supposed to be confusing?Maybe he just doesn't want to use programs so obviously endorsed by radical pro-white groups? Come to think of it, don't Gnome applications aim for a consistent look across them all - shared icon sets and so on? I'd be surprised if they didn't.

As for "their own replacements for programs" - if you don't like a particular program, don't use it. That's the choice that Linux gives you. I'd always found the Kubuntu default package manager, Adept, more intuitive to use than Ubuntu's, Synaptic - mostly because of it's quick-search bar. In Ubuntu 8.10, the version of Adept that shipped is, honestly, pretty dire. So I switched to Synaptic (the Gnome default, remember), which now has a quick-search feature. So what? If you don't like a program don't use it, use something else. The author is clearly used to his Gnome applications and wouldn't want to switch. The "compatibility reasons" mentioned seem to only exist in the author's own opinion - fine, but not in a review of this sort.
"But over all, it's not our favorite Desktop Environment, mainly because we believe more strongly in the philosophy of the GNU project, and the stability."
"But"? Wow, didn't see that one coming. That's a huge shock. Now let's translate the reasoning: "We don't like things that use Qt, because at one point in the past it wasn't released under an open-source license and that makes it inferior." As for stability - remember, he's reviewing a Release Candidate, not a final release - it might have been nice to back up the suggestion of KDE instability with, you know, some evidence? Even something anecdotal would have been nice.

Then, halfway down the page, we find this.
"Here is our review of the new KDE 4.2 release candidate..."
So what have I just wasted my life reading? I thought you'd already started that. Or maybe, in your opinion, it's a good plan to prepend any review with a rant on just how much you're going to hate the thing you're about to review.

OK, then. So, what's the headline story you can bring me from KDE4?
"First, now when you start any file operation, the progress will be displayed in a notification "bubble" that appears above the panel. "
Well, that isn't exactly how I would open my review of KDE 4.2. Not exactly going for the "Ooh, that's quite nice" here, are we?

The next few paragraphs read like someone who's read the KDE press release once or twice, detailing a couple of the things that were looked at between 4.1 and 4.2. Then, another inexplicable comment, when talking about the Folder View plasmoid:

"Users who prefer the conventional desktop icon paradigm can get equivalent functionality in KDE 4.2 by setting the Desktop Activity Type to "Folder View" ... But this doesn't seem to reduce processor or memory usage."

Should it? I see no reason to expect that switching between the two would have much effect on performance at all. To add that throwaway comment at the end just seems like a poorly-veiled attempt to suggest that KDE4 is a resource hog. I would like to know why the author doesn't just come out and say it, rather than drop unsubtle hints like this. If the reviewer isn't being honest about the reviewee, what's the review worth?

"Lastly" - as if an exhaustive list had been given! - "Lastly, the 24 hour clock is still a big problem, there isn't an easy way to set it to 12 hour mode, if at all."
System Settings -> Regional & Language -> Time & Dates. If you were that stuck, Jacob, you could have used Google.

And that's the end of the review. I came away still not quite believing the drivel of the first half of the article, and wondering if the author had actually spent more than five minutes in KDE to write it or not. Sadly, I have no evidence to suggest anything but "not".

Well done for making it to the end of this post - I realise it's a little longer than most of my posts are. I was disappointed that the original article was the second hit on Google for "fedora 10 kde 4.2" - I can only hope that people read a few other reviews before deciding if they want to give KDE a try or not.

Speaking of which - I did promise a KDE review here at some point. I think I've just found my excuse to write one.

Friday, January 16, 2009

Oh, really?

Maybe you thought I was just being anti-Microsoft when I suggested that running Windows on warships was a bad plan, back in December?

Really. I wasn't.

Tuesday, January 06, 2009

Let's kill this myth: 64 > 32 after all

So why would you choose to install a 32-but Linux instead of a 64-bit Linux?

Flash player won't work
sudo aptitude install flashplugin-nonfree : It Just Works.

Java won't work
Yes, it will. I have Eclipse running quite happily (though am yet to run the Power MTR QA benchmark we set ourselves at work!)
Oh, maybe you meant the plugin? Well, if the GNU Java plugin didn't already float (double?) your 64-bit boat, then Sun have now released one too.

Wine doesn't work in 64-bit
I play the Windows binary version of EVE with premium (DX9) graphics content at entirely decent framerates. Again I say: It Just Works.

I like paying for RAM that my operating system can't see
Uh...

But there are loads of posts on the Interwebs about people not finding drivers for 64-bit...
...Windows. For Linux, if it's in the kernel tree, it's there (especially with the unification of the 32- and 64-bit architectures).

Coming soon: KDE 4.1, and why people are wrong about it.

Wednesday, December 24, 2008

Thanks to the unique way the BBC is funded...

... their lead Technology story today is that "people in remote locations, across the world, can use technology to get their Christmas messages back home to Britain."

Oh, really?

Thursday, December 18, 2008

We're doomed

After its success on the USS Yorktown, the Royal Navy have decided to run their nuclear submarine fleet on Windows.

The Register summarises:
But we just might, if things go wrong, be looking at ... British sailors of the future staring helplessly at what would shortly be literally a blue screen of death, as the shipkillers bored in without response.

Tuesday, December 16, 2008

Wednesday, December 10, 2008

On leading and serving

Things aren't perfect.

OK - hopefully that wasn't news to you. The question I pose to you is: when things aren't perfect, something goes wrong, or something is not done that needed to be - how do you react? I've seen about three different approaches recently, and I think it's a matter worthy of comment.

Take this scenario: at work (I work at a software firm) someone makes a commit that sets the build on fire[1]. Thanks to the wonders of version-control and continuous integration software, you can see exactly what set of changes was made, and who made them, to break the build.
At this point you have three options: you can leave it, and hope that someone else picks it up - or maybe somebody else is assigned to that area of the code, so they'll pick it up instead. (Fair enough, particularly at work.) Or, you could run an svn blame and find out who 'owns' the line responsible, then shout across the office, "${name}, you set the tree on fire!"

Maybe, and this is your third option, you could find out how the build is broken, fix it, then commit that fix (and receive the adulation of DeciBot[2] when it announces "All watched trees are now green").

Put like that, I guess it's reasonably apparent which is the best of the three options to take. But so often - and now I'm not just talking about work - people pick the wrong one!

I was reading Joel Spolsky's blog the other day; the entry entitled "My Style of Servant Leadership". In it, Spolsky tells a story from his time in the Israeli army:

Anyway, on my first day of work for the sergeant major, I didn't know what to expect. I was sure it was going to be horrible, a suspicion that seemed to be confirmed when he took me to the officers' bathroom and told me I would be responsible for keeping it clean. And then he said something I didn't anticipate.

"Here's how you clean a toilet," he said.

And he got down on his knees in front of the porcelain bowl -- in his pressed-starched-spotless dress uniform -- and scrubbed it with his bare hands until it shined.

To a 19-year-old assigned to clean toilets, which is almost by definition the worst possible job in the world, the sight of this high-ranking, 38-year-old, manicured, pampered disciplinary officer cleaning a toilet was a shock. And it completely reset my attitude. If he can clean a toilet, I can clean a toilet, I thought. There's nothing wrong with cleaning toilets. My loyalty and inspiration from that moment on were unflagging. Now that's leadership.

Those that know your Bible will already be thinking of Jesus' words to his disciples, after an argument breaks out over which of them is the greatest. Get this:
"If anyone wants to be first, he must be the very last, and the servant of all." (taken from Mark 9: 35, NIV)
Those words from Jesus - the very instrument of creation, the incarnate God of the universe, who washed his disciples' feet.

You can try the ostrich approach - that is, bury your head in the sand until it (hopefully) passes. You can take the "assertive" approach, and bang some heads together until (hopefully) everyone sees things from your point of view (or at least are speaking to each other again). Or, you could step out, and do something to serve them. There's truth in the cliche that actions can speak louder than words; how different things would be if, instead of shouting matches with harsh words thrown in both directions, we all opted for serving matches, both sides wanting to do things for purely the other's benefit?

That's both simplistic and idealistic; in truth, even in the best case it's rarely two-way, at least not straight away. But, leaders, persevere - not just because it's effective (it actually works!), but because it's the right thing to do, out of love for those you are serving. And it's not an easy road - because to serve others is to necessarily sacrifice some of your own ambitions and plans. Then maybe, just maybe, for the briefest fraction of time, you'll get a glimpse of better things to come. And when you get that glimpse, don't stop there - keep hold of it, keep "cleaning toilets", and perhaps you'll get there in the end.

Perhaps, God willing, we will.

[1] Note to non-software engineers: this essentially means 'someone breaks the program you're all working on'
[2] A friend of your friend, the DecisionSoft Continuous Integration watching IRC bot

Tuesday, November 04, 2008

US Elections: BBC News live feed

The BBC have their own Twitter-like feed of US election titbits. But I didn't want it in a browser... so I wrote myself a little Bash script to do the job for me. Run that through (say) watch:
watch -n 30 elections.sh
and Obama's your Presiden... I mean, Bob's your uncle.

I've a small window pinned to my screen with that in. Hooray for distractions from work!

EDIT: 11.55pm - At some point they changed their format slightly and it confused my regexp. Updated version for download now, same location.

Monday, November 03, 2008

On F1 2008, James Allen and the end of an era

(I can't sleep... so time for a brain dump!)

A few hours ago, some British bloke called Hamilton - heard of him?(!) - became the youngest ever Formula One world champion. He did it by about 5.4 seconds. In the very last corner of the very last race of only his second season in Formula One.

It's certainly the most exciting climax to a season in recent years, and certainly the most open championship in a long while. And yet it was so close to being remembered for all the wrong reasons... when even F1 greats like Niki Lauda call foul of the stewards, there's clearly something amiss.

At the very least the stewards have been horribly inconsistent (for example, awarding Massa a fine but no race penalty for unsafe release from his pit box... then a few weeks later for the same offence - when it wouldn't affect his race outcome - correctly awarding a penalty). At worst they've been outright opposed to anyone not in a red car - like Bourdais' penalty in Japan for, evidently, being driven into by Massa. And, of course, Lewis's penalty at Spa for, um, overtaking Raikkonen. Who then promptly drove into a wall. Wonder why there's not as much overtaking in F1 as people would like?

The officials in F1 seem to have a history of blatant bias in their decisionmaking. This year, it was all against Hamilton; but, not so long ago, it was all against Schumacher. Remember those days? The bias is always there; but, like the bias of a car's brakes, it does get adjusted back and forth from time to time.

Yesterday was the end of an era in Formula One in more than one way. It was David Coulthard's final race, having announced his retirement a few weeks ago. In keeping with the rest of his season, he got himself involved in a crash almost straight away, ending his race. (There must surely have been some races this season where DC wasn't involved in at least one incident... but I can't recall any of them right now...) It's not been a great final season for a man who, at his best, surely deserved more than the 13 victories by his name.

Thankfully, Brazil 2008 also sees the end of the grooved tyres introduced back in 1998. They were designed to reduce the car's grip and thus its speed, in the hope of both increasing the safety of the sport and (by limiting the speed difference across the field) give more overtaking. The actual result was pushing more of the car's grip to depend on aerodynamic downforce, triggering an increasingly complex array of appendages to spew from the wings and sidepods of just about all the field. This created such a "dirty air" effect behind the cars, that (you guessed it) overtaking became a whole lot harder - as you lose so much downforce travelling close behind the car in front.

As part of a plethora of changes for 2009, slick tyres are being reintroduced, together with restrictions on the rear wings designed to reduce the dirty air effect. Other changes include a "kinetic energy recovery system" (KERS) - which converts kinetic energy to an electrical store when braking, and can release that energy for a short horsepower boost when required. Alternatively, it can cause fires and electricute your mechanics. We'll have to see on that one...

There's talk of the FIA imposing a standard engine package for F1 cars, to reduce costs. F1 has always been, and should always be, the pinnacle of motorsport in both skill and technical prowess. It'd be a real shame to turn F1 into a more-hyped version of some of the lower formulae that use a same-engine (or even same-chassis) setup.

The 1997 season was the first time I watched a Grand Prix. I must have started watching halfway through the season, but my earliest F1 memory is Schumacher vs Villeneuve in Jerez, the title decider... that race said just about all you needed to know about Schumacher, and I loved it.

1997 was also the first season shown on ITV; 2008 is the last. Next year the sport moves to the BBC, along with commentator Martin Brundle. (I hope they don't keep interrupting it Grandstand-style for live "action" reports from Miscellaneous Golf Tournament. Though I'm told Grandstand is now, much like sport on the BBC in general, deprecated.)

Brundle's commentary counterpart, James Allen, has come in for a lot of stick from a vocal bunch of people. He took over the lead commentator job from the legendary Murray Walker at his retirement; to Allen's credit, he knew he couldn't fill those shoes and he didn't try. Instead he made his commentary his own; Yes, he could be repetitive on occasion - and, no, he could never be the next Murray Walker (could anyone?) - but Martin and James did a damn fine job, thank you. Please try and place the criticism where it's really due... after all this time, I still have yet to identify a single useful contribution from Mark "I Like Ferrari" Blundell. At least Tony Jardine sounded intelligent!

So we enter the long, cold and dark winter of the Formula One night, not quite sure what the 2009 season will look like. We have a new world champion, a new set of rules, yet more new circuits (that never approach the atmosphere of a Monza, Spa or Hockenheim), a new TV crew...

29 March 2009, Albert Park, Melbourne... bring it on.

Wednesday, October 08, 2008

Oxford At Night

Oxford awakes from its summer slumber
Youthful blood courses again through ancient streets
Yet still the city is steeped in darkness
With empty hearts following empty desires,
Lustfully pursuing the self-gratifying thrill driven away by the morning.
The blood of ten thousand pumps through cobbled veins,
Each one searching, and each one choosing not to see
Yet still, amongst them the dreaming spires point up out of the black
To the light that they once knew, and loved
And yet this light will reach down through the darkness
So this city will shine brightly again

Tuesday, September 16, 2008

I won't do it...

When you send me an E-mail with an attachment you want me to look at, why do you want me to pay circa £300 for the privilege? If your software is defective and can't save in free, open file formats that everyone can read, replace it. It won't cost you anything. It will save my time - that you've already asked me to spend doing a favour for you - because I won't have to spend twenty minutes looking for websites that can have a stab at converting it for me. Useful as they are, I have no clue if the end result I look at has any resemblance to the way it looked from within your proprietary prison.

Yes, I'm talking to you.

Sunday, August 31, 2008

Much to update... but for now just a code snippet...

A lot's happened since my last post - but for now I'd just like to share this line of JavaScript I came across a moment ago. It even comes with a helpful comment!
// Please, don't change below this line

// ----------------------------------------------------------------------------------

var menus=[],TMg,TM09=['click','mouseout','mouseover','mousedown','hide'];function TM0A(TM0B){for(var i in menus){if(TM0B&&menus[i].TM0C&&!menus[i].TMc)menus[i].TM0C.TM0D.menus[i].TM0E();menus[i].TM0E();menus[i].TM0F=true}this.TM0G=true}function TM0H(TM0I){var TM0J;if(this.width!=(TM0J=this.TM0K(window))){this.width=TM0J;TM0B=TM0I=true}if(this.height!=(TM0J=this.TM0L(window))){this.height=TM0J;TM0B=TM0I=true}if(this.TM0M!=(TM0J=this.TM0N(window))){this.TM0M=TM0J;TM0I=true}if(this.TM0O!=(TM0J=this.TM0P(window))){this.TM0O=TM0J;TM0I=true}if(TM0I){this.TM0G=false;this.TM0E(TM0B)}}function menu(TM0Q,TM0R,TM0S){this.TM0Q=TM0Q;this.TM0R=TM0R;this.TMh=[];this.TM0T=[];this.TMT=[];this.exec=TM0U;this.hide=TM0V;this.onhide=TM0W;this.onclick=TM0X;this.onmouseout=TM0Y;this.onmouseover=TM0Z;this.onmousedown=TM0a;this.TM0E=TM0b;this.TM0c=TMM;this.TM0d=this.TMd=this.TMQ=0;this.TM08=function(){};if(TM0S){this.TMQ=TM0S.zIndex||0;this.TM05=TM0S.onexpand&&typeof(TM0S.onexpand)=='function'?TM0S.onexpand:null;this.TM0e=TM0S.oncollapse&&typeof(TM0S.oncollapse)=='function'?TM0S.oncollapse:null;if(TM0S.wrapper&&typeof(TM0S.wrapper)=='function')this.TMp=TM0S.wrapper;this.TMc=Boolean(TM0S.frames);this.TMd=TM0S.popup?-1:0;this.TM0f=Boolean(TM0S.showroot);var TM0g=TM0S.frames;if(this.TMd){this.TM03=TMy;this.expand=TM04;if(document.images[TM0S.popup]){this.elements=[document.images[TM0S.popup]];this.TM07=TM0h}else this.TM07=function(){}}if(TM0S.forms){this.TMJ=TM0S.forms;this.TM08=TMF}}if(!this.TMp)this.TMp=TM0i;this.TM0j={'width':100,'height':20,'block_top':null,'block_left':null,'vertical':false,'expd_delay':0,'hide_delay':100,'table':[0,0,0],'css':{'table':'','inner':'','outer':''}};this.TMR=-1;this.TMP=this;this.TMV=function(TM0k){return this.TM0j[TM0k]};if(!TMg){TMg=new TM0();TMg.TM0l={'x':0,'y':0};TMg.TM0m=navigator.userAgent.indexOf('Gecko')>-1;TMg.TMm=TMenu_path_to_files+'pixel.gif';if(TMg.TM0n){document.write('<div id="TMAnchor" style="position:absolute">.</div>');TMg.TM0o=TMg.TM3('TMAnchor')}if(!TMg.TM0p)TMg.TM0p='onload';TMg.TM0K=window.innerWidth!=null?function(w){return w.innerWidth}:function(w){return w.document.body.offsetWidth};TMg.TM0L=window.innerHeight!=null?function(w){return w.innerHeight}:function(w){return w.document.body.offsetHeight};TMg.TM0N=window.pageXOffset!=null?function(w){return w.pageXOffset}:function(w){return w.document.body.scrollLeft};TMg.TM0P=window.pageYOffset!=null?function(w){return w.pageYOffset}:function(w){return w.document.body.scrollTop};TMg.TM0E=TM0A;TMg.TM0q=TM0H}this.id=TM0S&&TM0S.key?TM0S.key:menus.length;menus[this.id]=this;this.TMY=[];this.TMt=this.TM0Q.length;this.TM0r=Boolean(this.TM0R[0].block_top==null&&this.TM0R[0].block_left==null);for(var i=0;i<this.TMt;i++)new TM0s(i,this,this,i);this.TM0c(1);this.TMe=this.TMf;for(i=0;i<this.TMT.length;i++)this.TMT[i].TM0t();if(top!=window&&(TM0g&&(TM0g+'').indexOf(',')>-1||!TM0g)){TMg.TM0u=TMg.TM1||(window.opera&&document.appendChild)||TMg.TM0v?top.document.body:top;if(window.frameElement!=null)TMg.TM0L=function(w){return w.frameElement.offsetHeight};if(!top.TM0w){top.TM0w={'TM0y':[]};var TM0x,TMb=TMg.TM0u[TMg.TM0p]?new String(TMg.TM0u[TMg.TM0p]):'';if((TM0x=TMb.indexOf('{'))>-1)TMb=TMb.substring(TM0x+1,TMb.lastIndexOf('}')-1)+';';TMg.TM0u[TMg.TM0p]=Function(TMb+'top.TM0w.TM0z()')}if(!top.TM0w.TM0y[this.id])top.TM0w.TM0y[this.id]={'TM11':0,'TM0g':[],'TM19':[],'TM12':[]};if(this.TMc&&!top.TM0w.TM0z){top.TM0w.TM0z=function(){for(var TM10 in this.TM0y){if(this.TM0y[TM10].TM11<2){this.TM0y[TM10].TM12[0].TM0C=null;return this.TM0y[TM10].TM0g[0].setInterval('TMg.TM0q()',500)}for(var TM13 in this.TM0y[TM10].TM0g)if(this.TM0y[TM10].TM0g[TM13]&&this.TM0y[TM10].TM0g[TM13].TMg)this.TM0y[TM10].TM0g[TM13].TMg.TM0q()}setTimeout('top.TM0w.TM0z()',200)};top.TM0w.TM14=function(TM15,TM16,TM17){var TM12=this.TM0y[TM15].TM12;for(var TM10 in TM12)if(TM12[TM10]&&!TM12[TM10].TM0T[TM16])return setTimeout('top.TM0w.TM14("'+TM15+'","'+TM16+'",'+TM17+')',100);for(TM10 in TM12)if(TM12[TM10])TM12[TM10]['on'+TM09[TM17]](TM16)}}var TM18=this.TM0C=top.TM0w.TM0y[this.id];if(TM18.TM19[name]==null){TM18.TM19[name]=TM18.TM11;TM18.TM11++}TM18.TM0g[TM18.TM19[name]]=window;TM18.TM12[TM18.TM19[name]]=this;if(this.TMc){TM18.TM0D=window;this.TM0g=[];for(i in TM0g){this.TM0g[i]=[];for(var j in TM0g[i])this.TM0g[i][j]=eval('top.'+TM0g[i][j])}}window.onunload=function(){for(var TM10 in menus){if(menus[TM10].TM0C){menus[TM10].TM0C.TM0g[menus[TM10].TM0C.TM19[name]]=menus[TM10].TM0C.TM12[menus[TM10].TM0C.TM19[name]]=null}}}}else if(!TMg.TM1A)TMg.TM1A=setInterval('TMg.TM0q()',200)}function TM0b(){if(this.TM0C){this.TM0g=this.TM0C.TM0D.menus[this.id].TM0g;if(this.TMc){var TM1B=0,TM1C;this.TM0C.TM1D=[];for(i in this.TM0g){TM1C=0;for(j in this.TM0g[i]){if(!this.TM0C.TM1D[this.TM0g[i][j].name])this.TM0C.TM1D[this.TM0g[i][j].name]={'x':TM1C,'y':TM1B};TM1C+=TMg.TM0K(this.TM0g[i][j])}TM1B+=TMg.TM0L(this.TM0g[i][j])}this.TM0C.TMe=TMg.TM4(this.TMe,this.TM0C.TM1D[window.name].x-TMg.TM0N(window),this.TM0C.TM1D[window.name].y-TMg.TM0P(window),TMg.TM0v)}else{TMg.TMB(this.TMe,{'x':this.TM0C.TMe.x-this.TM0C.TM1D[window.name].x+TMg.TM0N(window),'y':this.TM0C.TMe.y-this.TM0C.TM1D[window.name].y+TMg.TM0P(window)});if(this.TM0f)TMg.TM8(this.TMe,1)}}if(document.layers)for(var TM10=0;TM10<this.TMt;TM10++)this.TMT[TM10].TM00(0);else if(TM1E&&!TMg.TM0n)for(var TM10=0;TM10<this.TMt;TM10++)this.TMT[TM10].TM07()}function TM0U(id,TM17){if(!TMg.TM0G)return;if(this.TM0C&&TM17){top.TM0w.TM14(this.id,id,TM17)}else return menus[this.id]['on'+TM09[TM17]](id)}function TM0V(){if(this.TM0d>0||!this.TM1F)return;if(this.TMI)this.TMI.TM03(this.TMd);this.TMI=null;if(this.TM0e)this.TM0e();if(!TMg.TM2&&!TMg.TM0m)this.TM08(true)}function TM0W(){if(this.TMI)this.TMI.TM03(this.TMd);this.TMI=null;this.TM0d=0}function TM0X(id){var TM1G=Boolean(this.TM0T[id].TMq[1]);if(TM1G&&this.TM0C)top.TM0w.TM14(this.id,id,4);return TM1G}function TM0Y(id){this.TM0d--;this.TM0T[id].TM00(0);if(this.TM1H)clearTimeout(this.TM1H);this.TM1F=setTimeout('menus["'+this.id+'"].hide()',this.TM0T[id].TMV('hide_delay'));if(this.TM0T[id].TMh.sb!=null)top.status='';if(this.TM0T[id].TMh.oo!=null)this.TM0T[id].TMh.oo(id)}function TM0Z(id){if((TMg.TM0m||window.opera)&&this.TM0T[id].TMx==1)return;this.TM0d++;for(var TM1I=this.TM0T[id];TM1I!=this;TM1I=TM1I.TMs)TM1I.TM00(1);var TM1I=this.TM0T[id];clearTimeout(this.TM1F);this.TM1F=null;if(TM1I.TMh.sb!=null)setTimeout('menus["'+this.id+'"].TM0T["'+id+'"].TM1N()',10);this.TM02=TM1I;if(TM1I.TMh.oh!=null)TM1I.TMh.oh(id);if(TM1I.TMs.TMT[0].TM1J<0)return;if(TM1I.TMs.TMT[0].TM1J)this.TM1H=setTimeout('menus["'+this.id+'"].TM0T["'+id+'"].expand()',TM1I.TMs.TMT[0].TM1J);else TM1I.expand()}function TM0a(id){this.TM0T[id].TM00(2);if(this.TM0T[id].TMs.TMT[0].TM1J<0)this.TM0T[id].expand()}function TM0s(TM1K,TMs,TMP,TM1L){this.id=this.TM1K=new String(TM1K);this.TMs=TMs;this.TMP=TMP;this.TMr=this.TM1K.split('_');this.TMR=this.TMr.length-1;var TM1M='';for(var i=0;i<=this.TMR;i++)TM1M+='['+(Number(this.TMr[i])+(i?3:0))+']';eval('this.TMq = this.TMP.TM0Q'+TM1M);if(!this.TMq)return;this.TMh=this.TMq[2]?this.TMq[2]:[];this.TMP.TM0T[this.id]=this;TMs.TMT[TMs.TMT.length]=this;this.TM00=TMw;this.TM1N=TM1O;this.TM07=TM0h;this.TMp=this.TMP.TMp;this.TM0c=TMo;this.TMV=TM1P;this.TMX=TM1Q;this.TM0t=TMv;this.TM03=TMy;this.expand=TM04;if(!TM1L){this.TM1R=this.TMs.TMh.bt||this.TMV('block_top');this.TM1S=this.TMs.TMh.bl||this.TMV('block_left');this.TM1T=this.TMV('top')<0;this.TM1U=this.TMV('left')<0;this.TM1V=this.TMV('width');this.TM1W=this.TMV('height');this.TMu=this.TMV('vertical');this.TM1X=this.TMV('wise_pos');this.TM1J=this.TMV('expd_delay')}var TM1Y=this.TMs.TMT[0].TM1V,TM1Z=this.TMs.TMT[0].TM1W;if(this.TMs.TMT[0].TMu){if(this.TMs.TMh.bw!=null)TM1Y=this.TMs.TMh.bw;if(this.TMh.sh!=null)TM1Z=this.TMh.sh}else{if(this.TMs.TMh.bh!=null)TM1Z=this.TMs.TMh.bh;if(this.TMh.sw!=null)TM1Y=this.TMh.sw}this.TMs.TMY[TM1L]=this.TM0c(TM1Y,TM1Z);this.TMt=this.TMq.length-3;if(this.TMt>0&&this.TMq[3]){this.TMT=[];this.TM1a=TMM;this.TM06=TM1b;if(TM1E&&!document.layers){this.TM06();this.TM1c=this.TMR==0&&this.TMP.TM0r}}}function TM0i(TM1d){return TM1d}function TM1b(){this.TMY=[];for(var i=0;i<this.TMt;i++)if(this.TMq[3+i])new TM0s(this.TM1K+'_'+i,this,this.TMP,i);else this.TMt--;this.TM1a();for(i in this.TMT)this.TMT[i].TM0t()}function TM1O(){top.status=this.TMh.sb}function TM1P(TM0k){var TM1e=null,TM1f=this.TMP.TM0R[this.TMR];if(TM1f)TM1e=TM1f[TM0k];return(TM1e==null?this.TMs.TMV(TM0k):TM1e)}function TM1Q(TM1g,TM1h){var TM1i=this.TMV('css'),TM1j=TM1i[TM1g];if(typeof(TM1j)=='string')return TM1j;for(var TM1k=TM1h;TM1k>=0;TM1k--)if(TM1j[TM1k])return TM1j[TM1k]}function TM0h(TMC,value){if(this.TMt>0){if(TMg.TM0n){TMg.TMB(TMg.TM0o,{'x':0,'y':0});TMg.TM0l=TMg.TM4(TMg.TM0o,0,0);TMg.TM0n=0}var TM1l=this.TMT[0],TM1m=TMg.TM4(this.elements[0],(this.TMh.bl?this.TMh.bl:TM1l.TM1S)-TMg.TM0l.x,(this.TMh.bt?this.TMh.bt:TM1l.TM1R)-TMg.TM0l.y,this.TM1c);if(TM1l.TM1U)TM1m.x-=TMg.TMD(this.TMf);if(TM1l.TM1T)TM1m.y-=TMg.TMD(this.TMf,1);if(TM1l.TM1X&&!this.TMP.TM0C){var wise=TM1l.TM1X,TM1n=TMg.TMD(this.TMf,0),TM1o=TMg.TMD(this.TMf,1),TM1p=TMg.TM0K(window),TM1q=TMg.TM0L(window),TM1r=TMg.TM0N(window),TM1s=TMg.TM0P(window);if(TM1m.x+TM1n>TM1p+TM1r)TM1m.x=(wise==1?TM1p+TM1r:TM1m.x)-TM1n;if(TM1m.y+TM1o>TM1q+TM1s)TM1m.y=(wise==1?TM1q+TM1s:TM1m.y)-TM1o;if(TM1m.x<TM1r)TM1m.x=TM1r;if(TM1m.y<TM1s)TM1m.y=TM1s}TMg.TMB(this.TMf,TM1m);if(this.TMn)TMg.TMB(this.TMn,TM1m);if(TM1E&&!document.layers)for(var TM10=0;TM10<this.TMt;TM10++)this.TMT[TM10].TM07()}}var TM1t=navigator.appVersion.split('MSIE '),TM1E=window.opera||TM1t.length<2||parseFloat(TM1t[1])<5||(navigator.appVersion.indexOf('Mac')>-1&&navigator.appVersion.indexOf('MSIE')>-1)||navigator.userAgent.indexOf('Konqueror')>-1;document.write('<scr','ipt language="JavaScript" src="',TMenu_path_to_files,'menu.',(document.layers?'lay':TM1E?'opr':'dom'),'.js"></scr','ipt>');

In order to preserve the layout of this page, I've added line breaks; that was, literally, a single line of code. A single, 9,911-character, line of code.

And that just about sums up the state of the codebase for this particular website...