Older blog entries for donscarletti (starting at number 25)

Magic Eye Renderer

I checked up with "the man" and I'm allowed to release my "special project A" GPL. So here it is!

Source code to the actual renderer

A shallow, easy to view cone.

The Stanford bunny ~60k polygons.

The Stanford dragon ~1M polygons.

If you have not encountered these types of images before and wonder what is so special about them, they are a type of 3d optical illusion. You should be able to find viewing instructions for them somewhere.

Librsvg

A huge amount of work has gone into librsvg recently. We now have our cairo backend looking totally gnarly. All that remains to be implemented with this backend is filters and masks. Already our cairo backend shows some tremendous improvements over the libart one, gradients always go in the right spot, stroking patterns get scaled properly. Problems that took months to solve with libart fall together in a single night with cairo. I have my gnome desktop now using this plugin and it works accurately and reliably. I'm very excited about the progress. A comparison sheet (that's fairly out of date at the moment) can be seen here

Nokia 770 hacking

My work on making a game for the 770 continues. It can be aquired here. It's now beginning to resemble a proper game. I hope I'll have something to run it on soon.

14 Sep 2005 (updated 14 Sep 2005 at 16:28 UTC) »

Well, it's just about time to do my quarterly blogging session. I don't blog much, so I'll give a summary of the last month or two of my computer-related life. For anyone who might be interested, I'll list some of the things I've been working on.

Librsvg

Librsvg is going ahead slowly but surely. We now have a 2.11.1 release which probably qualifies as the best release ever. It's more stable than anything before and will render far more of the svg standard. There is no reason not to upgrade. Sadly there has been some technical difficulties in uploading 2.12. Possibly this will end up like when 2.9.5 was the standard release in the 2.10 series because nobody got around to publicising the 2.10.0 release. Releases are really such frustration. CVS is far nicer.

Librsvg-cairo is coming along very well. It's already blindingly fast when it does fairly standard things. I'm very hopeful about its future. It seems like the whole librsvg development team (Dom, Carl and myself) is tied up with other work at the moment, so unfortunately the development isn't going quite as fast as it renders.

Magic Eye Renderer

This semester I enrolled in a course that basically consists of writing something big and cool and getting it marked. Since graphics are pretty much "what I do", I chose to write a renderer for "magic eye" pictures. If you know how to see magic eye pictures, you can check out a stereogramme of the Stanford bunny I rendered here(fairly big .png). I wrote the software over the course of 4 weeks in an effort to get much of my university work done as soon as possible. In hindsight I pushed myself a little too hard but I got some great results. I'll upload the source as soon as I can double check the university intellectual property arrangements (as it was part of a degree program but did not require university supervision). My uni tends to be very GPL friendly so that should go off without a hitch very soon. It only took about 40s to render that picture on my amd64 (using a raytracing algorithm) which I am kinda proud of (both the optimization and the 1337 system I have).

Scorched Earth clone

After finding out about the Nokia 770 development program, I decided that I wanted to get one and make some software for it. Well I've kinda jumped the gun on it and started work on a neat game for it. It's more or less a clone of scorched earth with a few modifications that I think enhance the game. Check it out here if you like. It's known to work on a standard linux system with both SDL and gdk_pixbuf installed and on scratchbox, I'm not sure if it actually works on the 770 yet. The whole thing is terribly over-optimized so it should work well on anything. I'd be interested to know how it goes on REALLY low end systems.

Other stuff

University has gone from too easy to insanely stressful this semester since I'm actually doing 2/3rds more comp sci courses than most people do in third year. Some of my subjects are great, such as "cryptography and security" which is taught by the most charismatic and engaging lecturer in the school and partially consists of practical labs such as writing buffer overflow exploits, sniffing network traffic, breaking WEP keys and other such fun things, in a completely legal environment. Some of the courses are slightly less brilliant, such as "software engineering" which is a melange of every single variety of frustration known to exist.

Apart from that, I've been playing a bit of Battlefield 2, by Digital Illusions CE. It's really great fun so I'd recommend it to anyone that likes to go online to shoot other people.

P.S. Blogging is like vomiting. When one is finished doing it, there is a horrible mess, but it's probably good to get it out of one's system if one feels the need to do it.

Recent Trip

I just got back from Albury which is on the NSW-Victorian border about 250 km north of Melbourne. It's actually far greener and wetter out west than I was expecting, the last time I saw past the great dividing range* it was in the height of the drought and there was nothing but empty fields, dry grass and skinny livestock. I can't say it was green and blooming, but it was not nearly as depressing as I had anticipated, mainly because of heavy rains in the time before. This was my first long distance family road trip since I left home two and a half years ago and the tension between some of the six members of my nuclear family was fairly high. Albury is a small city of 50 000 residents or about 90 000 residents when you add in the population of Wodonga which is on the Victorian side of the river. We were there mainly because it was where my father grew up and 2 other members of my nuclear family (including me) were born, and Dad wanted to see some of his school mates while his parents were still living there so he'd have someone to stay with. Because of my exams we were only able to stay one and a half days before returning, which made the 14 hours of total time on the road seem a lot more significant. The road was the Hume Highway which the main route between Sydney and Melbourne where B Doubles (articulated trucks with two trailers and 34 wheels) outnumber passenger vehicles for most of the year. The road starts off as a 6 lane freeway in Sydney, degenerates into a 4 lane highway past Canberra and peters off into a 2 lane goat track 80km or so before it crosses the state border. All up, I got to see where I grew up, I had an excuse not to study and I managed to get free food so I'm quite satisfied.

* The great dividing range is a tall mountain range that goes down most of the Australian east coast and provides a profound climatic barrier between the coastal and inland areas. It also contains all of Australia's ski slopes and provided a settlement barrier throughout Australia's early years of white settlement.

Sour Grapes?

This morning I found out that I didn't get that Google Summer of code stipend. To be honest I was slightly bummed out by it, though I never really expected to get it or really made more than a superficial effort to get it so I can't say I'm too surprised or pissed off. It's good to see that Behdad got one, his proposal looks like it would be pretty awesome if he gets it working. Frankly, if anything peeves me it's how little support Gnome was given in light of the enormous number of applications that were filed. Of cause, all up US$60k is a very generous sponsorship, and I think I speak on behalf of most Gnomers by expressing gratitude for it, but come on, it was half as many as KDE and they had far less submissions, that kinda seems lame. Of cause Mono, Gaim, Ubuntu and Fedora were all supported generously too and that could intersect a fair bit, but it is quite obvious that this is not the same thing. I think that a major part of the problem was the completely uninspiring list of proposed bounties given by Gnome. It's sad that nobody managed to think up something fun to do that may have got some development done or some new recruits. Nobody wants to have their first developer experience with Gnome involving tedious memory or CPU optimizations and nobody wants to do anything involving documentation. I think it is very sad that the bounties list did not reflect that obvious truth, having the least fun six suggestions first is just asking for nobody to consider doing any of them. Of cause that would never have helped me, since my problem is that from the beginning I wanted to keep working on librsvg, a project that it is universally accepted that nobody cares about, but it really could have done some good for other candidates to have something fun to aim for.

Orwell is 73H r0x0r

I've been reading a book of George Orwell's essays. I am renewed in my belief that George Orwell was the best writer ever born. George Orwell is admired by me for a few different reasons. Firstly, because he was compelled by integrity (or by his ego, according to him). This means that if he believed something, he would tell the world how he saw it. He spoke out against imperialism, communism, class inequality, mistreatment of the unemployed and totalitarianism in various essays and novels, each one covering at least of of these issues. He was compelled to represent the truth, even when it detracted from the overall aesthetics of the books. Secondly, his command of English prose has never been surpassed by anyone... ever. Orwell used the language for what it was designed for: saying stuff, clearly, succinctly and elegantly. Orwell understood rhyme, rhythm and the sound of beautiful phrases yet his linguistic beauty was that of sheer simplicity, a language that could be read by anyone and could be read smoothly and quickly and goes straight to the soul. Orwell was a great linguist but did not flutter around, wasting time with nice sounds or overly poetic imagery (except for maybe his first novel "Burmese Days", still a good book of cause). Orwell would never say that his "vocabulary is a canonical embodiment of the English lexicon" like a pompous git, although he'd probably have the right to (he'd be more likely to tell an allegory about George W. Bush then go back to his grave). An example of his awesomeness is the appendix to "Down and Out in Paris and London" where he gives a short treatise on bad language in English. However, before it could be printed, the publisher bowdlerized the dirty words out of it and of cause it lost it's meaning since one could not tell what words were being referred to, yet Orwell demanded it be included in it's cut form, just to make a mockery of that censorship. George Orwell's decayed, inanimate skeleton could beat Dan Brown in a fight easily.

I hate Dan Brown

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.

University

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.

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