Older blog entries for jmturner (starting at number 5)

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 !

11 Dec 2000 (updated 14 Dec 2000 at 00:59 UTC) »

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.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!