Older blog entries for donscarletti (starting at number 21)

12 Jun 2005 (updated 12 Jun 2005 at 06:45 UTC) »

Three months ago I resolved to keep a semi-regular blog. This is the next post after that. My resolutions arn't worth the 80 bytes of space that they are stored on.

Librsvg status update

Librsvg development has been slow, but still plodding steadily. I have pretty much ripped up the internals and rewritten them, as I am prone to do (out of necessity, not by choice). Now librsvg is theoretically at the stage where one could write a DOM level 1 interface for it and the internals could do most of the things asked of it. Also, the API for creating new backends for it is pretty much finalized and it can now be compiled without libart and almost can be compiled without gtk, so it seems like if someone wanted to write a cario backend for it it could be THE cairo SVG renderer (in reality, this someone is probably me, but it could be Dom or a cairo developer if I called in a favour from Satan).

Despite the progress, librsvg is making me increasingly depressed. I am beginning to realize just how huge the task of maintaining and expanding something that covers the vast requirements that rsvg is expected to cover really is. And on top of that I am beginning to realize just how close to being alone on the development team I am most of the time. When I think about how much bigger and more complex SVG is to HTML, and how long and how many people it took to get gecko the way it is, I feel like a bit of an idiot for ever thinking about attempting what I am still in the process of doing. When I started developing librsvg a year and a half ago, it was the second most accurate open source native SVG renderer behind Sodipodi, then we edged out Sodipodi and became the second most accurate open source native SVG renderer behind Inkscape. My work over the last couple of weeks has probably nosed in front of Inkscape to gain the illustrious title of "open source native SVG renderer that will be the second most accurate behind Mozilla SVG in a matter of weeks if their progress keeps up."

I got an email from a cairo developer a little over a week ago, asking me why I haven't committed any of my cairo backend code into CVS, and why I am keeping the cairo mailing list completely out of the loop with my progress. Such correspondence was clearly worthy of an amused snort, but it got no such thing. I simply gave it a reply that everything I have done on cairo was committed and the whole world has been told about every that was passed. It's easy giving progress reports if there is no progress. I sometimes wonder what it would all be like if I had chosen to work on libxsvg instead and thus the library with the patterns, filters, markers, clip paths, masks and all the other features would be the same library with the cairo renderer, the modularity and the hype.

My motivation for getting off my butt to make a cairo backend has been, up until this point in ascending order: idealism for progress, concern that without cairo rendering librsvg wouldn't be used and nagging on IRC. My motivation now is simply that libart is so hated to me that if it were human I would kill it's mother to spite it, even if we were brothers. In libart you can't apply a transform to a linear gradient, in libart, you have to deliberately use values just a tiny bit wrong to make it less likely to hit a sweet spot and misrender. Libart has NO documentation, NO comments and the code has clearly been optimized for speed, rather than the ability to work out what the hell half of it does. I'm looking forward to never having to touch it again except for minor tweaks for backward compatibility.

OK, I'm done moaning about the software development component of my life, I'm sorry if I've got anyone to the point of wanting to shoot themselves in sympathy.


I finished my classwork for this last semester. I'm glad I switched to straight CS now, the duel degree was a pain in the butt. My exams start in a week, enough time for some study and possibly some more hacking. I am effectively still in second year for one more semester than I would have been if I just did comp sci to begin with. Thus, my courses this semester were easy but pointless but frankly, I don't mind that since during this semester I was able to finish the following important tasks: Rome: Total War (5 times), Prince of Persia: Warrior Within (2 times), Soldier of Fortune 2 (1 time), Half Life 2 (3 times), Grand Theft Auto: Vice City (1 time), Deus Ex (1 time), Quake III (1 time), Half Life (1 time). Does counting the amount of games I played (and conquered)in a 15 week period make me feel cold and dead inside? You bet your arse it does. Is that going to change anything? Hell no.

Because of my university student status, I decided to take a shot at that google money thing. Not a serious attempt or anything, I just put my name down, put down what I plan to do in the near future anyway and begged for money that would make it far easier for me to do it. I don't really think I'll get considered seriously, firstly, because I didn't suggest anything that had anything to do with the suggested bounties (frankly, I think the're dumb, no offense to whoever's ideas they were). Secondly, because those bounties are to attract new open source developers. I've been working on the stuff for longer than I've been a university student so I probably don't count. That said, it could be claimed that I am no longer an open source developer and that I'm a "disillusioned open source developer" (see above). I became a Gnome contributer in first year, became a co-maintainer in second year, became a silent name in planet.gnome.org in third year and now, three months later, I've gone all the way to completely hating Gnome and OSS in general so I am ready to begin the cycle anew before even graduating. I figure I'm back in the pool for recruitment but already have CVS access, experience, trust and internal contacts. By my reasoning, I'm the perfect candidate. I guess there is a third reason as that in the southern hemisphere there is no summer and thus no holidays right now. That is an even easier one to solve, my attendance is appalling so I have a three month holiday anyway. Just ask one of my lecturers if I attend as much as I should and you will get an answer like "Caleb who?"

Opinionated review of a book you've probably already read.

I finally read "The da Vinci Code" (don't worry, for what it is worth, there are probably no plot spoilers here) I was sick of hearing about everyone reading the da Vinci code and talking like it was the new foundation of their lives, so a little while ago I decided to read it when I was bored, but not bored enough to start blogging since that only happens when I'm REALLY bored. I read it over the course of two days since it was overall a very easy read.

I think that it would have to be both the one of the most entertaining books I've read and the most thoroughly stupid book I have ever read. It starts out really good, but about half way though the author forgets to pretend that he isn't pushing a strange religious agenda. At that point the suspense in the plot ceases to be about holding one's breath guessing how characters shall escape a perilous situation, but holding one's stomach contents back guessing what historical, artistic, cultural or biblical reference Dan Brown will misinterpret to fool the audience into forgetting that they are reading fiction.

I can't remember the last time I was actually offended on the grounds of my religion. I really have no problem with "Jesus Christ Superstar", I've seen "The Life of Brian" no less than eight times, but for some reason the treatment of Jesus in that book really bugged me. It's not really because of the claims he makes (which are well within the realms of things I have read before), but because of it's encapsulation in fiction with a well crafted suspension of disbelief that is designed to pass out of the context of the book into the readers psyche while never exposing itself to debate like an actual theological treatise would.

Even though my father teaches theology, I'd hardly call myself a hardcore puritan (or even pious unfortunately) but even though I have spent an entire bible study looking up a young female parishioner's skirt, that book almost managed to bring out the hard core militant fundamentalist in me, and believe me that is a HARD thing to do. I really think this goes deeper than a story and I think Dan Brown has something to say about Christ and I think he should just come out and say it and stand behind it. (they have got to be his actual beliefs since nobody writes anything as boring as the middle twenty chapters of the book if they are just doing it to entertain the audience). Heretics don't get burned anymore (well, not here they don't) what's the harm?

But enough of things that could be judged as my own religious prejudice, let's get into why the book REALLY sucked for everyone shall we?

It irritated me that he advocated a theology based on a divine female yet never discussed spirituality from a female's perspective. He argued how connection with the divine female through sexual congress brings completion and wholeness in a male worshiper. He explains how the feminine nature can help a man understand himself. Yet he never once mentioned how this would effect a female in her worship. You'd think that having a female god, rather than the largely asexual, slightly male God of Christianity would effect women too and if Mr Brown was so in tune with the spirituality relating to women, why didn't he mention it? I don't know. I unusually act like a borderline misogynist when critiquing literature and a lack of female perspective has never bugged me before so I'm not sure why it bugged me this time, but it really did. The only real female character in the whole book also comes out very undeveloped and bland, quite out of place with a philosophy about the richness of the feminine soul. I kind of figure that the author just doesn't understand women and wisely just doesn't risk writing something stupid. I guess I can't claim to understand women either, but still, I don't try to explore the issues of sexuality and religion.

Also, he seems to like to play with history a little. He would like to have people believe that the divinity of Christ was first suggested at the council of Nicea. He seems to want to pretend that Certain documents concerning certain organizations wern't fakes. He goes to HUGE lengths to work in pretty much every secret, eclectic or occult order but Sea Org (that would be an impressive challenge) even when they have no point. Some of his tenuous links weaken the ones that are inherently stronger.

The writing style in the book does border on exceptional however. I could really tell that if Dan Brown wasn't such a preachy douchebag that it would have been a book of exceptional quality. Near the end though, I got the feeling that the author tried to put too many plot twists and they were getting a little weak and pointless.

Anyway, it was a fun read but I came out less enlightened on many subjects than what I was before I read it. Which is probably the reason it managed to compete with TV so well in the mainstream.

Conclusion, apology

That's about all I've got time to post. This whole process was mostly a distraction to help me stay awake long enough into the afternoon to get back into a diurnal sleep cycle. I'm sure some people must have worked out that I have been awake for 30 hours based on my language skills. If you actually took the time to read much of this, I apologize for any damage my innane drivil has caused from the deepest part of my heart.

Nervous Smalltalk

Apparently planet.gnome.org is now subscribed to my blog, or the other way around... I am not that familiar to rss terminology. Thus this entry shall serve three purposes, firstly, to test if everything works correctly (not that I lack faith in Jeff's ability to operate his own site). Secondly to introduce myself to those on that site who my infamy has not reached, and thirdly to prove to the faithless that I am actually serious about blogging.

Personal Introduction

My name is Caleb Moore, I live in Sydney Australia. Most of my meaningful free software contributions have been to librsvg the component of gnome that is used to render the beautiful vector graphics that you may or may not use for your desktop icons. I have worked on the library for about a year and I like to tell myself that I have made some fairly impressive improvements to it. Unless I am really angry about something, I spend a fair bit of time talking about librsvg whenever I blog because I don't find my personal life all that interesting. That is not to say I don't have a full compliment of self-righteous opinions that inevitably have been and will be stated regardless of whether people want to listen or not. Hopefully my style will mean that what I write won't be too painful to read if you choose to read it. I apologize in advance if it is.

Project promotion

Librsvg is currently the project that I am interested in. I hope some of you have encountered it at some time and have not been too infuriated with it. I originally started helping out with it when I got annoyed about how crap it was back when I was involved with the sodipodi flag collection. I've spent a lot of time working on it and have pretty much gutted it and restructured the insides. Personally I think it is much nicer now, especially given its enhanced standard support and now poor artists don't have to make their images "rsvg friendly" which was a drag to all involved.

Shameless project boasting session

We've decided to take a little initiative and lead the way into gnome adopting cairo. We figure that if gnome is to move towards being a vector based desktop, we're probably a good candidate to take the first step. This also hopefully will have the added benefit of taking stress of Carl Worth (Carl previously maintained an SVG library himself) so he can have more time for working on cairo itself. Anyway, regardless of gnome's direction, cairo support will make SVG loading FLY. We'll still have a libart backend of cause which will work in roughly the same way as it always has, it would be a shame to break backwards compatibility, it would also be a little rude to make a project started my Raph Levian cease to support his original vector rendering library at all.

Meaningless coda because I don't know how to end this

I am happy to be here and I hope that I can be a entertaining, agreeable and insightful member of this community (this of cause applies to both planet.gnome.org and advogato.org). Please expect updates... but don't bet the farm on it.

I havn't blogged in a long time.

For the last few days I've been fuming over This infamous article

Eugenia is claiming that hobbiests like myself are obliged to do whatever we are asked to by our "users" nomatter what we personally happen to think on the subject. I'm glad that the public has, as a general rule, responded to it as a blow to eugenia's reputation moreso than anything negative to gnome. I've already complained about this article on gnomedesktop.org , so if you like reading angry rhetoric and denounciations by the bucketload read here if not, you can ignore that link.

Ive been doing a little bit of free software hacking between my boughts of indignancy. We are putting in an optional cairo backend into librsvg by popular demand. It may even be possible to "merge" librsvg and libsvg-caro to save poor carl worth a lot of trouble that he just doesn't need. Carl has put many conditions on his endorcement of librsvg for cairo, and we are going to see how many we can do. Hopefully that means all of them. Who said volenteer hackers didn't do things that they arn't personally interested in to please others? Oh, that's right... Eugenia... I almost forgot.

Also, because of popular demand we are hopeing to give librsvg a DOM interface by next version, this will let us play with objects from the outside. We have had a string of requests for this feature and so we are going to do it, despite my ambivilance and Cinimod's almost open distain for the idea.

Hopefully with this new DOM interface we can base entire games on a single SVG file and use rsvg's half-completed cairo backend to handle the drawing, the new DOM system to handle the interaction and possibly a little bit of C or Mono to handle the remaining bits of game logic. I have a vision of using rsvg to take a lot of effort out of building and maintaining small games for gnome. I'd love to see this allow gnome to ship far more games without maintainance levels increasing, but this is of cause not for me to decide.

Anyway. I'm back to uni now. I'm glad I switched out of the double degree I was doing, straight computer science seems to suit me far better, and is fairly easy. I finished half life 2 today (having started yesterday) it was better than I would have guessed, it had some great bits in it. I really like the physics engine in it. Someday I've gotta write a phyics simulation like that for myself.

Ok, it has been ten days since I last used my beautiful computer, I am shaking, I can't sleep and I can't think, but for some reason I am feeling less pudgy and eccentric as well as far more attractive to women. My flatmate is supposed to be bringing the computer here but keeps delaying the time when he is arriving and I am starting to loose faith.

For the last few days I have been obsessed with the possibility of creating a program to make magic eye pictures. I have the process to make professional quality images all figured out, I am confident and ready to go, but I don't have an environment to code it on. I'm going crazy like a dog with an itchy behind that cannot be scratched.

I am also starting to feel a little scared at my dependance on my computer, sort of like I imagine it would be for a smoker or an alcoholic that does not know they are addicted until they have to go without for some reason. No wonder I can't find a girlfriend. However, luckely computer prowess has far better vocational prospects than smoking or drinking and computers are neither bad for your liver nor your lungs.

My parents may not have ADSL but they do have a beautiful pool that I have been swimming in. I have swum in it pretty much every day and have been enjoying it. My parents have a dog named Bjorn who is a Maltese/Staffordshire terrier cross and he has also been swimming a lot. He is an interesting combination of breeds in that he still looks like a malteese terrier, but is three times the size and he is of the laziest disposition imaginable. However if you mention the word "swim" around him he totally goes crazy, if one wears ones swimmers around him (for me that is green and black boardshorts) it has the same effect.

It's sad to see my friend cinamod didn't get on the gnome board thing. Even though I campaigned ernestly for him. I think dom's problem is that he spent most of his time coding and developing Abiword and librsvg rather than posting psudo-insightful garbage into his blog to raise his public profile. Mind you, if he was elected to the board it would mean that one of the other capable and deserving candidates would have had to miss out which would also be sad, but not as sad to me personally since only around a third of the candidates are actually known by me. Of cause I give my heartiest congratulations to the people who actually did make it onto the board, both those who I did vote for and those I didn't. Elections to boards like that of gnome are not as fun as national and state ones. I noticed very few people actually voted. That is probably because there was no insentive to vote without a petty us vs. them mentality. Now I think about it, the worst thing about democracy is that by definition, whenever something doesn't go your way, there is always more people to rub it in your face than console you.

Ok, that's enough psudo-insightful garbage from me for today.

I'm suffering my fifth day without my own computer, it's taking a toll on my sanity, my father's win2k machines are no help. Eventually after not using windows one starts becoming moderate and starts claiming that all operating systems have their place in the scheme of things during slashdot discussions. After using exclusivly windows for a week one realises that is not the case. It's pretty interesting how ignorence and moderation are so closely related. Perhaps objectivity is merely the state of not knowing enough to have a preference. I'm also just not comfortable on windows at the moment. I can't actually even think of a way to spellcheck todays blog on this accursed operating system. However, it's not like my dad runs a totally microsofty system, I'm using firefox for the first time and I really like it. I've been using epiphany for my web browsing needs recently but I think I like firefox better, and firefox should really fit in on my gnome desktop quite well by the looks of things. The problem is that even when I get my computer transported in a few days time, I will still be stuck hundreds of kilometers from my 512Kb/s internet connection and on dialup so I won't be able to download it, I fucking hate dialup.

Well I'm into my copious amount of holiday I get for being a student. I am trying to work out what to do with it. My half finished multiplayer space shooter-rpg (an old but almost stable version can be found at www.cse.unsw.edu.au/~cmmo862/ripoff.tar.bz2) needs love. But rsvg could do with some elbowgrease as well. I'm wondering what I should devote myself to first. Well, no, that isn't exactly correct, I'm really wondering whether to work on those two projects or just sit around, play computer games and drink beer for the whole three months (which is what is actually going to happen whatever I decide).

I'm going back to the beautiful Coffs Harbour to stay with my family for the last time ever. Even though I myself moved out of that city two years ago, it still seems like a second severance from my childhood to have my parents move from the town I grew up in. I imagine saying goodbye to the place and the people I know for the second time will be just as hard as it was the first. Having my parents move to the same city as me will also be strange. I have never properly used my new found freedom that I got from living 700km from my parents. I havn't yet used my freedom to run a pr0n site, a meth lab or an international governmental extortion syndicate, but I sure will miss it. Of cause it's not like I'm moving in with them, but I just would feel more comfortable the next time I wake up next to a transvestite midget prostitute with one arm after a night of hard drinking if I can simply assume that my parents were a day's drive away and therefore didn't see me.

I'll be teaching my little brother (who is 13 now) how to program while I am staying with him. I've already sent him a list of languages I'd be willing to teach him (Python, Haskell, Perl, Java, C, C++, 386 assembly). I also gave a list of pros and cons for each language. I've tried to make it fairly impartial and accurate, but you know, that's hard sometimes if Java's on the list. I stuck the asm there because I though hell, if people learned with assembly back in the sixties when nobody knew how to use computers then my brother who's been using computers all his life aught to be able to learn it as a first language. I didn't put basic in there because if I taught him basic he might keep using basic and that would shame me more than if I found out that one of my great grandfathers was really Hitler. Sure, I used basic for a while but that was before anyone told me any better. I really wonder what language he wants to learn and am kind of exited about teaching him.

My university teaches Haskell has a first language, it's kind of an odd choice. If you have never used Haskell before here is a short description: it is functional, before you say "oh, that's just like lisp, it isn't that odd" I will clarify my statement, and say haskell is not like lisp, lisp is a "functional language", Haskell is an "anally functional language", that is: no iterative elements, none. Haskell is what I'd call a bureaucratic language. It has it's weird ways of doing things and if you don't conform it will just send you away. So basically students come out of Comp 1011 not knowing what a variable or loop is (Before you say "monads dude, monads", we were told not to use them). 1011 is long gone for me of cause, I just thought I'd mention it because I was thinking about first languages.


Nope, my exam is in two hours time, and I just had eleven hours of sleep.

The staying up bit was mainly to make it possible for me to wake up freshly rested today, rather than yesterday afternoon.

I have my last exam for the year tomorrow. Since my usual sleeping pattern totally prevents me from waking up early enough for such things I elected to stay up last night, in the hope of going to bed this afternoon and awaking a couple of hours before dawn.

This time I tried employing a method of prolonging my waking status for longer. Coffee. I got the strongest coffee I could by in the local supermarket and made up a plunger with triple the recommended amount. All up I have consumed a litre and a half of espresso strength coffee, containing 16 or so teaspoons of the strongest preground beans I could find, and this was all consumed over the period of an hour.

This resulted in an odd, dreamlike state, where I was totally incapable of doing anything except for playing UT, which I did fantastically well. Possibly better than I have ever played it. I guess the stuff improved my reflexes. However this effect only lasted a few hours. Now all I feel is an upset stomach and a strange chill all around my body. Well, that and a huge feeling of remorse. You know the type if you've ever had another pleasant tasting liquid unsettle your stomach and change your state of mind. My heart is now going at about 100bpm (by my poor attempt at taking a radial pulse), faster than average, but nothing crazy.

All up, my excessive consumption of coffee was pretty stupid really, but it was fun to try. After all, people put far worse things into their bodies and live long enough the regret them. If I had to binge on anything, I guess coffee is a better than average thing to do so on.

But back to UT for a second. UT2004 has an awesome port to Linux. It actually comes on the disk. I never actually knew that, but it's kind of sad that I hadn't seen it before. I just downloaded all the bonus packs and patches that I could. It's really nice to see such an awesome game for Linux. Kudos to Epic, Icculus for porting it and Sam Lantinga, SGI, Nvidia (in my case) and the dudes behind OpenAL for making the libraries that makes it all possible. I had a little trouble with it first. It couldn't find the OpenGL library, but I preloaded it with LD_PRELOAD and everything worked fine.

Well, I've been up for 24 hours so far, so I'm not talking or typing the most sense. I talked with my flatmate yesterday about writing a realtime raytracer. Sounds like a fun project. Useless but challenging, a bit like my work with brainfuck a while ago. I'm quite in mood for a little bit of optimisation in librsvg, when sleep grants me the mental powers to do so. Uraeus has been talking a lot about liboil of late. Apparently there is nothing it can't do. I'm a little uneasy about introducing new dependencies but I sort of see this as a possible gain since with liboil we could manage optimisations quite well. It won't ultimately be my choice anyway, technically speaking it is cinamod's project to maintain and I wouldn't have the gall to just start adding dependencies without consulting him. I'm quite excited, mainly because I've never used SSE2 before, and I am itching to use it for filters. Especially gaussian blur. liboil seems to be a way that I could do such a thing without filling librsvg with messy and unportable inline assembly. The problem is that I could get the same degree speedups by just doing logical little tweaks that don't require any sacrifice in simplicity of compilation to do, so I should be doing them before I start linking to cirtain things. One such optimisation is pre-multiplied alpha: a simple process but would save us so much time all up.

I'm sure I've said something dumb, inacurate or downright silly due to my sleep deprived haze. I'll edit this later.

I just did my third exam this semester. It was on fluid dynamics; one of the only parts of civeng that I actually like. Despite it being the time for mass cramming I have been doing surprisingly little. Other things seem more interesting, anyway, I've already done all my exams for computing and the other stuff will probably be soon considered "space filler" electives.

I've been enduring huge mental anguish trying to figure out how to implement proper 100% standards conformant text into librsvg. If it wern't for bi-directional text, everything would be so much easier. From what I currently understand, all the RFCs relating to Bidi were originally contained in the necrombicon before they were transcribed into the dark grimoir known as the Unicode specification by Hitler himself from his place of hiding in Las Vegas, using Charles Manson's help to log in and commit the addition using the very computer that hosts www.goat.cx. Hitler had been researching into the occult for a number of years and during his research into black literature he found an incantation that causes everyone to read it to become instantly anti-semitic. As strong as I may have been, even I slowly succumbed to the spells dark verses as I read more and more about bi-directional text, images of Judas Iscariot and Osama bin Laden writing from right to left on a chalkboard filled my mind. I was overtaken by rage for all that do not write in the correct direction in which God intended. I started convulsing and shouting "Right to left text will be the downfall of family values", "won't someone think of the children" and even "Bush was right about those Arabs".

Ok, maybe that stuff didn't actually happen exactly the way I said, or, well, even happen at all. But bidi really does annoy me and I just know there is some daemon/Manson/goatse/Hitler related mischief going on somewhere in the Unicode specification.

12 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!