What I've been up to: WorldForge, basically. Maintaining and
polishing Eris, and continuing to re-factor, extend and
develop Stage.

Eris is getting quite stable, with lots of bugs being fixed,
a few things re-designed and various pieces of functionality
extended to make them more useful. Most recently 'logout'
support and OOG character browsing have been re-worked :
both of these were areas I stubbed originally back in June,
and hadn't really touched since.

Stage has survived a complete rebuild of the database
backend, including a move to dynamically loaded drivers, in
addition to hundreds of other clean-ups and changes over the
past few months. The core infrastructure (entity creation,
persistence and routing of Atlas operations) is working
pretty solidly, though we still need unit testing very badly
to avoid reggressions.

Last week Demitar got alriddoch's 'equator' editing client
interacting with stage, which should pave the way for
online, interactive content creation by non-coder types;
this is a rather important milestone, I think. I am current
working on trees and plants (in rim-bio), movement modes
(picking, droping, pushing and pulling) in addition to the
usual core clean-ups and fixing. Once the movement work is
out the way, mapping is waiting round the corner.

Woo - long time without an update. Excuse - I managed to
graduate from university. What's happened in the past few
months? Well, I've done very litte on Constellation;
considered it in hibernation. I have been doing lots of
WorldForge related stuff, however. Most important is the
creation of Eris, a client-side session library which makes
building a functioning (and Atlas compliant) client about
twenty times easier than it was previously. To prove the
point, someone has assembled a CrystalSpace based client in
about a week. Eris is getting semi-stable now, with a few
big tasks and lots of bug fixing ahead.

Recently I hacked up the ODBC driver for STAGE to produce a
native MySQL one; this is working pretty well (given the
limited usage it currently gets from Echo). In the process
of testing the driver I ended up re-writing big chunks of
the Mercury authentication code. Oh well.

Once Eris settles down I'm planning to turn my attention to
COAL and get it speaking Atlas. Also the relationship
between the Semantic Maps paper (ask aloril) and COAL needs
to be assesed. Hopefully Coal and Eris (especially with
Python wrappers) wil become sufficently reliable and generic
that most clients can take advantage of them.

Unrelated to WorldForge, I've been working on a GPS for
FlightGear. Initally I'm cloning the venerable KLN-89b,
since the docs are available and I can compare with the
example in Fly! The basic output is working, but there is
not yet any paging or input to the unit - hopefully comming
soon.

A worrying sign - when I really need to be working on my
final year project, I've been getting lots of work done on
Constellation. The admin client is running, browsing the
name service and systems, and editing configs. The next step
is to write the ghost library and rendering frame, and then
plug it into the waiting GtkGLArea.

Building a user-client should take all of 24 hours once
those two tasks are done; but I can't really verify the
dynamics layer works until the positional data is being
output, so much debugging ahead. Reassuringly, the overall
architecture does seem to work and make things easy ...
perhaps spending five years (re-)designing the codebase was
not a waste of time.

I really need to spend some time on the website and
infrastructure, probably stealing Tim's PHP system.

A rather late diary update; been busy catching up on
coursework, especially my project : I've discovered Fly! 2
is using similar technology which is re-assuring, I think.
Also got accomodation sorted out for the GDC so I won't be
sleeping on a San Jose sidewalk.

The Constellation framework is progressing very nicely; I
have light-weight archive and message layers, which appear
to work and do all the right things, and I'm slowly building
up the infrastructure to get a server running. Most of a
first-pass dynamics model is incorporated too; no collision
detection yet, and before it will work I've got to stub out
the Vehicle::Thruster component to get control from the
Nav-Daemon to the physical entity.

Finally I've been moving networking code over from the
the previous code base, and extending it to communicate via
messages, using the archive layer to encode/decode. Not
tested yet, but looks good and the code is compact. So
overall, pretty reasonable progress

Christmas holidays are here! And fortunatley I managed to
get a large amount of shopping done on Monday, leaving lots
of time for coding. XClient now works pretty well in Linux;
interleaved arrays + glDrawElements is working, and all the
core stuff seems to be behaving. Furthermore I found the
courage to autoconf/make the whole thing, there are several
hacks unitl I understand autoconf properly but it does
build. And most importantly, the X11 native calls have been
replaced with SDL, so Mac or Be ports are now possible.

As regards Constellation, the design and basic framework
coding progresses; I really need a working persistence layer
so I'm going to hack one up over the next few days ...
probably not a perfect solution but a reasonable one. I love
the CORBA Name service; if the Notififcation service works
as well I will be delighted. So I think I'm on target to
have multiple client connecting by January.

Coursework is taking up far too much of my time, fortunatley
it'll all be over (one way or another) by Friday. I've been
sorting out flights and a pass for the GDC in March, should
be fun.

In WorldForge land I wrote up a walk-through of LEMon, MELon
and Pegasus in action, and sent it off to John (Sheets) for
review; after a bit of replying and re-replying I feel like
we're making good progress on getting a usable API without
too much delay. I still want much more participation from
the other developers ... hopefully we shake some loose.

XClient is being funny: the broken console seems to be
caused by something far away from my GL hacking; I suspect
it really is related somehow, but I need to crawl through
bits of image loading code and see what's going on.

And in Constellation land my CORBA name service stuff has
mgaically started working, and I've started building POAs
for entities and agents ... I'm still finalising the whole
activator / factory / persistence model for entities,
hopefully some UML to follow soon on the CNX website.

Saw the Halo demo, and now I really want good trans- and
sub- orbital dyanmics models ... lots of problems but so
much fun. Get me a dropship !

Spent a few more hours debugging the GL renderer for
XClient; I'm getting INVALID_OPERATION errors in weird
places (from glEnd). The 3D projection code is behaving
itself I think, and the fonts are rendering okay; the
console image is still messed up. Once the console is back,
I will have equivalent functionality to the old code, so
I'll check the new version in, and then start getting meshes
displayed.

The CORBA startup code for Constellation is being
annoying;
I've got reference counting issues somewhere, because all my
NamingContexts are mis-behaving. So for now I'm ignoring
naming and just getting the server class sketched out. I
have a reasonable implementation for tasks, thanks to
STL::priority_queue.

Using an STL map to implement FindEntity right now; the
long-term solution is probably using the entity POA's AOM
instead, and letting CORBA activation do it's magic.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser
code is live. It needs further work but already handles most
markup better than the original parser.