Older blog entries for donscarletti (starting at number 12)

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.

20 Nov 2004 (updated 20 Nov 2004 at 15:29 UTC) »

This evening I watched the movie Thirteen Ghosts. I didn't really like it, and so I am planning to use the remainder of this blogging session to whine about it.

*SPOILER WARNING* (not that anyone should care)

This was a really lame horror movie. I won't insult anyones intellect by commenting on the uninspired, cliched dialogue, so I will complain about it's boring plot instead.

There are these ghosts, trapped in this house in special prison cells made for them. They wait around, and do nothing except for antagonising people as they go past with threatening gestures. Eventually they get out, and what do they do?

Well, one goes upstairs to take a bath, and just sits there in the bath as Shannon Elisabeth barges into the room, and proceeds to wash her face in the same bath she is bathing in. If I was a heterosexual woman (as opposed to a desperate male who would relish the experience), I wouldn't take that sort of thing. I'd probably smack her around a little bit to teach her to respect my privacy. Instead she just sits there with an awkward, uncomfortable look on her face that implies a longing desire to somehow ask the interloping girl to leave the room until she's finished in the bath. Hell, this supposedly savage ghost is more patient and civil than I am, and I'm not even undead.

Then another ghost walks around trying to help her living son get out of trouble. If anything freaks me out in a horror movie it is definitely loving, maternal care. The mere thought of a mother tucking her son into bed and reading him a bedtime story sends chills down my spine.

Many ghosts had noble purposes. There was a pair of ghosts who were committed to their cause and were both dedicatedly striving to achieve their goals, which were: to feed a giant kid beans, and eat beans, respectively.

Some ghosts were of cause threatening, such as some jock with a baseball bat. But, as a nerd, I've escaped injury during confrontation with similar adversaries during highschool so many times, the prospect doesn't scare me much anymore.

Most of the others were incapacitated or disabled. Such as the woman with her hands tied to a piece of wood behind her back, the dude who can't walk or really do anything much because he doesn't have a head, and of cause: the eight year old kid. If this collection scares you, then you might be the sort of person who wouldn't attend a lecture by Stephen Hawking because he might come down an beat you up.

All in all, excluding in the opening scene, the total number of good guys killed by ghosts amounted to the grand total of one (done by the least creepy out of all of them). The number of bad guys killed by ghosts amounted to a grand total of one (and it took twelve of them to do it). How is this a legitimate body count after a horror movie?

It turns out that these ghosts were being exploited for the ambitions of a living person and in the end they go free and everything is happy. I think that this movie was more like the sixth sense. More post-modernist crap about the ghosts being the victims. Something about a ghosts existence being one of pain and exploitation, and it is of cause natural to feel pathos and all that sort of sappy crap. This is stupid. I don't care if ghosts aren't really bad. I'm sure that sometime during the thirties and forties that there were many members of the Nazi party that loved their families, life, peace, wildflowers, and jolly conversation by the fireplace. I don't want to see that in a movie though, I want to see those bastards get up to evil like shooting RAF escapees in cold blood, or stealing relics off Indiana Jones or Tibetan monks. I don't want to see ghosts that I can pity any more than female lead characters in action movies that I can respect. It just doesn't work!

*END SPOILER WARNING*

Wow, I havn't written in this for a long time.

The librsvg hacking has been going fairly well. We have heaps of features now that we didn't have when I was still blogging. Masks, clip paths, transformable, decent quality text. We have much nicer images now, we have relative urls and filenames so images look great in context. We have a completely overhauled high level structure so it does all the parsing before it attempts to render anything. It also allows inter-file linking. We now have patterns that display nicely. The gradient transformations have been fixed so they look good. We have markers, we have well... pretty much most static things I guess.

The cool thing is that we now can use the batik test suite to test our program, and for the most part, it looks awesome. We are really catching up to pretty much every other renderer on the planet in terms of standard support, but we are still second to none in terms of speed. Basically, if you can't already tell, I'm feeling pretty happy about the project.

Personally speaking, my life isn't quite as positive. I'm getting kinda bored with university, it is beginning to look like I just really don't like education. I've submitted an application for transferal from the civil engineering/computer science degree that I am in at the moment to a straight computer science one, since I'm not really as interested in civil engineering as I thought I was when I chose it. I am not sure how it will go though, since university bureaucracy is hard and inflexible. I had hopes of temporary respite when Uraeus tried to get funding for librsvg's continued advancement, which would have allowed me to defer my education for a year in favour of full-time work. But that didn't really work out. If it had however it would have been really cool.

I've been doing a little hacking on the side, apart from librsvg. I am working on a little space rpg called "ripoff", so called because it was originally going to be a ripoff of "Escape Velocity" by ambrosia software. However with the massively multi-player capabilities I'm building in, it will be far more than a ripoff, but I still havn't thought of a name for it. It's already quite playable, although it kinda lacks content. I havn't actually put it online yet, because I can't be bothered making packages. I really should release it though. There is a copy on my university webspace somewhere

Oh, and also, a few weeks ago I fell in love with the language known as "brainfuck". It's quite a challenge. I made an interpreter for brainfuck written in assembly. And I also made a compiler that transforms simple c into brainfuck through the miracle that is bison. If anyone's actually interested with this, um, "unique" technology, email me and I'll put the source code online.

Anyway, I've been having quite a good hackfest recently and I've been loving it. It's a shame that uni has to get in the way :)

Uraeus just posted an article on the scalable vector graphics format, it was pretty good, but after all, how could I possibly object to something that refers to me as a "superb hacker" :).

The comment thread that follows it however is quite disturbing, expecially the comments regarding Christian's English skills. Apart from the obvious fact that he is not a native speaker, his current medium is the internet, home of d00d 5p33k, irc typos and unproofread slashdot stories. Personally, I would not be in the least supprised if after complaining about Christian's spelling, punctuation and grammar that most of the posters went streight onto IRC and stated to their friends "osnews is teh suxors, ph33r teh power of teh 1337 h4x0r who will pwn all of j00 SVG l4m3r5".

In honor of this unique part of the internet that I love, I have decided not to even spellcheck today's blog. After all, I am a coder, and the thing about coders is that when they declare something, they spelled it right, and if they spell it differently later they spelled it wrong, nomatter what the oxford dictionary has to say on the matter. I do not see what good spelling has to do with good communication even when one is not coding, for example, Geoffrey Chaucer became one of the most famous people in english literature without spelling a single word right in his life.

For thousends of years the English language was like jazz music. It was freestyle expression, unfettered by rules and tunes and as long as one keeps somewhat within the chord structure. Then the normans invaded, french became the official language of England but the English languaged remained, so we got that french influence in the language and it became like jazz fusion or linguistic creole as you will. But somewhere down the line guys like Samuel Johnson tried to turn its freestyle grooves into constricted lexiconographical chamber music (to labour a stale metaphor). Now when heroes like Uraeus try to get back to the soul of the language they are labeled as "wrong". I say that if you can understand someone's meaning they are writing correctly. I understood this article if you can't too, then it's not because of a couple of punctuation errors.

Last night, instead of my traditional custom of sleep, I instead participated in a late-night librsvg code jammin' session with cinamod and uraeus. Basically it would go like this, Uraeus would complain about a bug, and dom and myself would scramble to fix it quickly. Until this point I had never engaged in any coding activity so fast and frantic (I have a habit of completing my coding assessments early). It was great, with all of us working we not only routed many bugs that had haunted the codebase since its inception we also left the bug's women raped and their children cut and mutilated in the gutter. There shall be no mercy to segfaults and misrenderings.

Between supporting the standard and supporting cairo we have our work cut out for us, the goal is to have it working with cairo and rendering most things by the time gnome-2.8 comes out. It is seeming more and more evident that Cairo is not an overly appropriate api for a svg backend, we need access to those pixels before they hit the screen to do some of the mandated effects. But it seems like the powers that be want cairo, and cairo is what they shall get, amongst other backends.

The best thing about cairo however is doing away with libart. Libart is poorly documented and to figure out what a function does, one has to read the actual source code, and to me it looks like it was written by a monkey with a PHD in low level programming. Also libart seems to be something that one must work around, for example to make paths do their first section again so that the corners would render right. I was told that whenever one commits a hack to CVS, god kills a kitten, I hope was just a sickly little runt that was going to die anyway.

Although my contributions to gnome-2.6 were mainly low-key bugfixes, I am still eagerly awaiting its release as the first major release of anything that I contributed to. It will be great to see.

Although I have not written a wikipedia article for months I have been reading it a lot recently, a favorite of mine was this page (which although is only discussing disturbing pages, may be disturbing in itself to some readers). Wikipedia seems to have a growing number of pages relating to the culture of the Internet itself, never since the witty Australian T.V. show Frontline has a medium published so much introspection. Through Wikipedia, as well as gaining knowledge on a whole range of important subjects one can also learn about the culture of sites such as Slashdot and Something Awful in great detail here and here respectively. I am truly glad to know that the people of the Internet are documenting their heritage and celebrating their culture in a way that will ensure its survival.

I have been doing yet more librsvg hacking, I officially hate the current high-level architecture of the entire project (except for maybe paint servers). I recently added an ability to reference symbols and other parts of the document and use them again and again and again to save document space, but the whole system seems still a little buggy. My aim is at the moment to support all of the non-scripted svgs that come with batik. I believe that clear goals are good and they don't get much clearer than that.

I havn't been blogging for a while. With all the free time I have gained by not blogging I have completed librsvg filter support.

With every filter supported one can do some really cool stuff. For example by using diffuse lighting and about 5 other filters in sequence one can turn a boring flat SVG flag that won't be used by gnome for political reasons into a wavy beautifully 3d shaded SVG flag that won't be used by gnome for political reasons. The drawbacks is not all political however, there is also the obvious fact that running a sequence of five per-pixel nested loop based functions in series on a 2000x1000 bitmap isn't exactly instantaneous. Mind you, having a flag adorned desktop is always rather pretty and very cosmopolitan.

Of cause, filters were by no means the last frontier as far as librsvg development is concerned, primarily we need to fix text support and get group based symbols. However with cinamod now working on text support and myself working on making symbol support better, becoming competitive with batik as far as spec support is not all that far away.

I am now back in Sydney and once again attending the fine University of New South Wales. Being in Sydney allowed me to attend Sydney Linux Users Group an organisation that I ironically found out off Uraeus, a Norwegian. There I met jdub who I congratulated on his irreverent release names, I payed my subscription fees there and I hope to attend it regularly. Unfortunately most of the events I see there seem to have something to do with debian, which I by no means oppose but I unfortunately it is not to my taste.

I have taken to cooking Thai food over the last twelve months. In Sydney, finding ingredients is fine because I live in a predominantly Asian suburb in the east so one can find an Asian grocer because, generally grocers in the eastern suburbs are Asian. Lemongrass, galangal, jackfruit, everything is just lying around fresh ready to be picked up as casually as one would pick up a carrot.

Up north in my small regional city of Coffs Harbour however it is not so simple, out of those three ingredients mentioned before I could only find lemongrass and even that was a dollar per stalk and as hard as bamboo. I was tempted to whittle the vile stuff into a short taper and jab the eyes out of the person who sold it to me. Adding the availability of fresh exotic ingredients to the general boredom I am feeling after two months away from university and the unbearable heat of this latitude I sort of want to return to my quiet, antisocial life in my Sydney apartment, forgoing the mildly rich social life I have here in the town I grew up in.

I'm still tinkering with librsvg. I don't know if spending all my time hacking on the one project is healthy, SVGs are cool but I am not sure if I am going to send myself insane. My goal is to keep the project active enough for dom to be interested in them enough to start hacking at it himself. I guess dom really has better things to do though, Abiword is really cool. I am getting very good satisfaction from the project anyhow. Although nobody seems to be wanting to humor me by using my filters (I can hardly blame them, they have only been working for a few days) I am taking great delight from looking at the new screenshots of gnome-mahjongg and going through the tiles working out which ones wouldn't have worked if I hadn't hacked at the renderer, I would like to a bunch of working SVGs through an earlier version to feel like the guy from "Its a wonderful life" as I would gaze upon the field of half rendered garbage. This is truly the first time I have felt such satisfaction or really achieved anything from my work at all and I wonder why I didn't start earlier.

Well, my filters are working now. I only have three primitives done but already they can do some pretty cool stuff. I never realized how controversial they would be. Both Uraeus and cinamod have commented on them in their blogs. I figure that I should post my own slant on the issue:

SVG is a format that is published by W3C in order to define structure, form and capabilities so they can be common on all platforms that implement that format. It is clearly preferable to fully implement all features in the standard, otherwise there is no point having the standard. This is not my decision to make, it is not Uraeus' either, it was made by w3c.

I acknowledge that many filters can take quite a while on large images, matrix operations particularly, however such operations will not be invoked unless they are explicitly used in the SVG file. The sqrt() operation takes a fair bit of time to perform and should be used sparingly, however the sqrt() function's prototype is lying about in math.h just tempting coders to use it. Is this bad? No indeed, coders learned long ago to only use time consuming functions when they need to and it is not an issue. Why shouldn't artists as well realize what they are actually telling the poor computer to do when they specify some huge filter chain. Humans should be stopped from committing suicide by hanging. Does that mean we should ban rope?

Oh, well, I stated my opinion on the subject. I will keep working on the filter system and after that I will work on another set of new features and just hope that nobody abuses them

Prologue

When I first started using advogato my plan was to include as little personal content or introspection as humanly possible. Well I messed that policy up with the last entry and I am starting to feel a little uncomfortable having it on a publicly accessible page.

My Beloved Filters

So on to technical matters: My filters are going on quite nicely, I have the framework for them running and the only thing that doesn't work is actually the loading of them from a file. Filters should be supported in a shot time.

The Odd Gentoo Experience

A friend of mine installed gentoo yesterday, the thing is that he had never used linux before. I don't know why I ever told him about it, but really it was the only livecd I had lying around. I warned him against it passionately, suggesting redhat or debian instead but he refused to download another distro's ISO (he was on dialup).

The odd thing is that without any more experience with unix than using OSX he booted the gentoo livecd. Then he proceeded to bootstrap gentoo from stage 1 without my help or the help of any other linux geek. I was shocked, I thought that bootstrapping gentoo would be enough to turn anyone off linux if that was the first time they had used it, but no, he's was loving every second! When I finally got around to his place to help him set up he was half way through emerging the base system. I apologized, because I was a little embarrassed since I knew he thought that all distro's were as counter intuitive as gentoo because this was his first experience of it. He needed no apology however, he seemed to be frolicking around in front of his keyboard like a happy little squirrel having more fun than I have ever seen anyone have. I then unpacked my computer, set up apache to share my distfiles directory, plugged it into his computer with a cat5 network cable and set his gentoo mirror to my ip address. This impressed him no end for some strange reason as the files retrieved almost instantly. We then set it to emerge his base system and went to chat up the hot chicks on the beach. We were not that lucky on the beach, a pretty group was just leaving when we got there but there is always another day.

We got back, the base system was done, so we configured the kernel (2.6.1), it worked perfectly the first go, even though my newbie friend configured most of it and soon enough we had booted a gentoo installation off the hard disk. We got X and gnome installed and eventually we installed dvd ripping tools and other such stuff.

Now my first-timer mate is thrilled with his installation, he loves its speed (he can encode divxs twice as fast now), he loves how one can customize and optimize it, and he loves all the fun things one can do with it. He wasn't at all annoyed about how long stuff takes to compile.

I have never really recommended gentoo to anyone, I use it myself, but I am constantly frustrated by it. It has driven many a seasoned hacker to annoyance, I was certainly hesitant about helping this guy with it, however it is strange that someone who has used nothing but macs for 15 years with a little bit of XP for the last six month was able to set up his gentoo system almost independently, and I am sure he would have been able to do it even without me.

"A gentoo user is a debian user with too much time on their hands" --Caleb Moore (me)

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