Older blog entries for braden (starting at number 42)

Wow... It's May already.

Things have been going pretty well. Very busy.

ACE

ACE is used heavily where I'm working now. ACE comprises some very interesting concepts; and though I have some "issues" with the way it does a few things, one thing I'm happy about is that the project is transitioning to the GNU autotools. So I'm trying to help with that as I can.

Scripting

I need to be competent in more scripting languages. I know enough shell scripting to be dangerous (mostly to myself); Perl I've deliberately kept at arms length due to its superficial unseemliness; Python always looked neat, but I never had an excuse to learn it; my only significant exposure to Tcl was someone else's (ahem) "parser" code I had to suffer.

But I'm at a point in my career where I realize I'm really suffering from my lack of experience in at least some of these languages. So I've been working on my Bash-fu, and I've tackled Tcl; Perl's in my sights as well. I guess Python will have to wait. Even though I'd prefer to learn it rather than Perl, the fact of the matter is that I encounter more Perl code I need to understand than Python.

OpenVRML

Not a whole lot of time for OpenVRML lately; but I've been working on it bit by bit. I've finally tackled rewriting the I/O story to be asynchronous, for which I'm using Semblance as a driver program. And over the weekend, I made some headway on a patch to clean up some lingering text rendering bugs.

Well, I haven't written anything here other than a few replies since my 27 Jan entry. It's been an interesting and often unnerving few weeks. I am changing jobs. The circumstances that necessitated this were not the most ideal; but things have turned out quite well. I will start working here soon, and I couldn't be happier about it.

21 Feb 2003 (updated 14 Jul 2003 at 15:48 UTC) »
redi: Covariant return types are a bit of syntactic sugar that aren't a vital part of any design: they only save you a static_cast.

If you're using something like std::auto_ptr, just do the static_cast. If you're using a refcounted smart pointer, the smart pointer needs some additional smarts to allow it to be downcast from a smart_ptr<base> to a smart_ptr<derived>. Look at boost::static_pointer_cast .

trage: I hope your professor was somewhat more politic in his commentary than you conveyed; regardless, take the comments seriously. Try not to be discouraged, though. A vital attribute of a good software developer is persistence. You seem sincere in your desire to improve your skills; and that desire is really the most important part.

Blarg. Not a good day. I won't go into it now, though.

Phoebe

I tried Phoebe when it was initially released in December. Though it showed promise, it was a bit of a mess, and it wasn't too long before I had to reinstall Red Hat 8.0. After noticing that the ISOs had been refreshed about a week ago, I decided to give it another try on Sunday. So far, it looks like a keeper. GNOME 2.2 is really slick; Nautilus finally feels reasonably well-integrated into GNOME. The extremely irritating "Extras" menu layout of Red Hat 8.0 has been rethought, with pretty acceptable results. And gone are the kewl-but-headache-inducing transluscent X mouse pointers from the previous incarnation of Phoebe.

OpenVRML

Slow going. I checked in some minor cleanup over the weekend. But more tangible improvements that are in the pipe just aren't progressing as I'd like. Today's developments could exacerbate this situation in the immediate future.

The release I'd hoped to make over the weekend didn't happen. Hopefully I can do that tonight.

Semblance

I finally checked in some code a few weeks ago; and I updated the Web pages so as not to send Mozilla into convulsions. The code that's there still needs a lot of love before it'll be anything close to releasable. What's there now is basically the result of my attempts to learn how to use Libglade and how to use GtkGLExt to create a GTK+ widget. Libglade is really sweet.

24 Jan 2003 (updated 24 Jan 2003 at 23:03 UTC) »

mathieu: I don't like that use of const either. const should be used to indicate logical constness; and that's all. A reasonable C++ developer is not going to expect it to mean anything else.

I think the vast majority of these problems can be solved by smart pointers of one ilk or another. As a general rule, factory functions can return an auto_ptr to clearly indicate that ownership is being transferred to the caller. In that case, if the caller neglects to assume ownership, the object is deleted prematurely and things fail fast, as they should.

Semblance

About 18 months ago I had written a GTK+ widget for showing VRML using GtkGLArea. For better or for worse, GtkGLArea seems to be drifting; but a new project, GtkGLExt is pretty active. Importantly, there are releases of GtkGLExt that target GTK+ 2.0.

So I managed to rewrite my widget to use GtkGLExt. It's still buggy, but it shows the VRML world at least. I'll try to squash the more egregious bugs and check it into CVS. I suppose bringing this project out of hibernation means I ought to fix Semblance's Web pages not to give Mozilla fits.

Snow

Took the excuse to take a day off from work yesterday. I'd come back from Thanksgiving vacation a day earlier than I'd planned anyway, so what the hell.

Spent a good chunk of the day making OpenVRML's configure options more user-friendly (I hope). Now that there's finally a Mozilla version that includes a pkgconfig metafile for JavaScript that isn't horked, I can simplify that part of the configure.ac quite a bit; and users' lives will be a bit simpler as well.

Of course, it does seem lame to require the latest Mozilla for no reason other than that a pkgconfig metafile is fixed. But I think that's marginally less lame than requiring users to set CPPFLAGS and LDFLAGS just so our configure script can find JavaScript, which is the alternative.

Mozilla

Started using Mozilla 1.2.1 with Xft goodness. Very nice. But I miss Galeon's UI and superior bookmark management.

OpenVRML

The Fontconfig stuff has gone slowly; but I'm pretty pleased with the results. It's just about done.

Meanwhile I've swatted some low-hanging fruit; most significantly VrmlMatrix support in the JavaScript binding.

lmjohns3: Re. using automake to build Java bytecode, you might want to take a look at what I've done in OpenVRML; though it sounds like you've solved most of the problems already (and it sounds like your problems may have been more complex than what I've had to address in OpenVRML). OpenVRML uses Java as a scripting language, so we do JNI stuff and we have some classes in a jar that we install.

OpenVRML

Bose checked in some code a couple of weeks ago to use FreeType to render fonts. Our crappy text support has been an outstanding issue for some time. Unfortunately, I haven't been able to get his code to work on my box yet. Part of the problem is that the font discovery part of the code is ... lacking. So I've been giving it some fontconfig loving. I've also been refactoring/rewriting things a bit to isolate the FreeType dependency in the Text node implementation. Between learning about fontconfig and relearning things about graphics I'd forgotten, this has been a very educational experience.

But damn I need to make a release.

Work

... is hectic, but quite enjoyable lately. Using Java; and while I often don't find Java programming particularly engaging, using Java 3D and JavaBeans to design an app is pretty interesting.

33 older entries...

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!