Older blog entries for donscarletti (starting at number 2)

Life has been pretty much as normal over the last few days. I am still coding librsvg filters, they seem to be going quite nicely although they don't actually work (or even compile) yet. I am enjoying my holidays, I have been playing some golf and getting into a few flamewars online. I happened to notice in mpesenti's last entry his lamentations of such flames, I kind of realize that I may in fact be the reason for this. I guess my flames wern't about epiphany so I doubt I was, but still, they were ample in number and offensive in nature (and excellently written in my own extremely humble opinion) and I am sure they vexed someone even if they didn't blog about it.

I have started to realize that if I am trying to fit into a community then maybe the best idea is not to blow my top and "shoot my mouth off" whenever an OSNews article is posted on its forums. Uraeus mentioned that he would like to see me on planet.gnome.org and my resolution is that before that happens I will try to stop pissing people off. It would seem inappropriate to have my diary entry, next to a badly taken picture of my ugly face with the faces and entries of the people that I am currently tirading against above and below mine.

I would have to say that I mainly suffer from the "slashdot complex". It takes some transitioning between slashdot and gnome. For example in slashdot Havoc Pennington is some kind of one dimensional grinch character, the type that might be played by Tim Curry or Christopher Lee. Someone who seeks only to destroy options, usability and fun the same way an antagonist on captain planet would seek to destroy the ecosystem simply for the hell of it. However in the gnome community he is more of a comrade (even though I don't know him personally), one is of cause free to dislike him if one wants to, but one would not be modded to +5 for doing so.

That said, morons need to be shown their place and if I don't flame them who will? Some jerk on slashdot implied earnestly today that mars was owned by America. In my reply I used more colourful language than a sailor on crack could say in a month and I make no apologies for this.

I am now implementing filters in librsvg. I enjoy doing such things because writing per-pixel algorithms seems to be one of the things that I like to think I am good at. I always enjoyed that sort of thing and have been doing filters and other graphical manipulation code since I was about 12 (no, I am not joking, I just had a very nerdy, depressing childhood).

Back then of cause I only could use QBasic. If you have never seen a DX386 chugging along doing an erosion algoritm in an interpreted language your life is effectivly a week longer than it would have been if you had. And of cause I didn't have your fancy off-screen pixmaps back then either (I guess most people did, I didn't because I was using a stupid language where you can't declare an array big enough to fit in a 640x480 screen). Now I am coding these filters in C I really appreciate the fact that I don't have to cut my screen in half and copy backwards and forwards betweeen the halves just for a simple blur (not to mention how difficult and pointless a blur is in a 16 colour palette)

The most challenging part of this rsvg thing is actually integrating it into the library itself. If I was coding it myself from scratch I would have used DOM, or failing that I would have used SAX but stored the objects in structures like a tree so I could go back to other information in case I needed to use it again (like multiple instances of an object etc.) Librsvg on the other hand renders everything as it reads it while only preserving data that has been explicitly placed as definitions and even then without their original heirachical context, which makes re-instancing (Is that even a word?) groups impossible. This will need to be fixed in the future, however the annoying thing at the moment is that since it does not preserve the data at lower levels, it relies on stacks for things like transperancys, which means I'll have to code a filter stack, or hack another stack to cover filters as well.

I am starting to like this advogarto thing, I am running into people that I have met before like Penix who I attended a lan with where he refused to run even a pirate copy of windows, so I couldn't kick his arse at anything but UT or Q3 :), and Stevey who contributed to late (my crappy game)

This is my first entry so I should probably introduce myself.

My name is Caleb Moore. I live in Kingsford which is a suburb in Sydney, Australia. My time is spent as a student in the University of New South Wales, as a Free Software coder and also squandered away in many futile activities. I am, at the time of writing this: twenty years of age, one hundred kilogrammes in weight and a bit over one hundred and eighty centimetres in height. But such things seem of little import on the Internet.

Throughout my life I have held by my assumption that since I am not interested in my own life in the slightest that nobody else would be either. I now realise if one is browsing the web at four A.M. when one has little purpose, anything is worth reading. Due to this realisation I have joined up to advogato and have became certified a couple of times in order to spread my inane babblings to the world.

Being socially awkward but a skilled coder has lead me in the past to sometimes wish that society could be expressed algorithmically. Ironically, Advogato seems to be such a society but I can currently understand less of it than the real society I humiliated myself in during highschool. What I have gleaned is that I have a distance from a seed of 2 (Alan->Uraeus->Donscarletti) which gives me a capacity of 200. Although I currently do not understand what that means, I suspect that it means that I am not being ignored as thoroughly as I possibly should be.

Currently I am involved with the Gnome project, specifically librsvg. It is not my first project, nor even my first Free Software project (the honour for that goes to late, a little computer game which's sole redeeming feature is that it only took me a few hours to write). My participation in the Gnome project has been mainly centred around scalable vector graphics. My first experience with them was with the sodipodi-flags project, a project where the flags of the world are drawn in a scalable format and distributed so they can be used as a resource for any other project.

The ability to be used as a resource was what got me into librsvg. The sodipodi-flags project was part of gnome, but gnome however couldn't render them properly. This had to be fixed and since I was the one who wanted it fixed, I was the one who did so. I have since kept contributing to this project, however my contributions have become regrettably less frequent over the last few weeks.

I think I should give a bit of background information about librsvg. Librsvg is, unsurprisingly the library in gnome for rendering scalable vector graphics. It job is very simple in essence, to load up a file, render it as an SVG and dump it out as a GDK pixmap. Librsvg is also pretty much a condemned library, as its cairo based competitors grows its usefulness wanes. However it will still be used for many versions of gnome to come despite this both because of the incompleteness of the alternatives and the difficulty of converting the applications that have it as a dependency.

Librsvg is not by any means a complete implementation of the svg format, and that's where I come in. I try and make it more true to the original specifications. Interestingly the project was started by Raph Levien so if I wanted to make some comments about what I think about the structure of the librsvg codebase this would be an inappropriate medium to do so in.... Lets just say that attack resistant trust metrics was not the only thing that he has coded that I have found hard to initially understand ;-)

Apart from that I usually write games, quite a few games actually. However I seem to often loose interest fairly soon and they are rarely finished. The work put into them is often lost. However I have resolved that the next time I start a promising game that I will dump it into sourceforge and recruit a few interested people so it will not fall into the same dismal end that the earlier ones did.

Anyway. I think that this serves as an introduction and I will leave it as this.

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!