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.
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.
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 :)
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.
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!