Subscribe: Advogato blog for donscarletti
Added By: Feedage Forager Feedage Grade B rated
Language: English
blog  bug  cairo  don  gnome  libart  librsvg  magic eye  make  mono  much  people  release  renderer  support  svg  time  work 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Advogato blog for donscarletti

Advogato blog for donscarletti

Advogato blog for donscarletti

Published: Wed, 28 Jun 2017 01:06:51 GMT


18 Jul 2006

Tue, 18 Jul 2006 00:37:23 GMT

I havn't blogged for a very long time, possibly because I've had nothing to say.

Anyway, today I'd like to talk about Mono and its inclusion into Gnome. I have not commented on it in my blog so far, because I only use C and thus have no relevant opinion on the technical merits of the platform and have always thought it best to shut up in these circumstances. Today on the gnome-devel-list I read an email on the subject by someone called Tsume who directed readers to his personal web site containing his views on the issue.

Wow, some insightful stuff there. With brilliant points like "I've nothing against Python. I'm a ruby programmer, but would be very happy with Python" this is sure to raise eyebrows. Also the shocking revelation that Miguel is trying to get Mono into Gnome really set me aghast. The IRC logs especially were a great touch, they proved once and for all that mono has bugs and that some bugs are given lower priority than others because they are seen as more difficult or less harmful.

Sarcasm aside however, all is not lost. It does demonstrate by far the largest problem with mono. Technical merits or the lack thereof aside; mono is a political quagmire. Choosing mono is like painting your bikeshed pink, it's a warm colour and it reflects light well, but it will always be obvious that the bikeshed is pink and the conversation will never be over with people with suggestions as to why it should have been painted a different colour. Mono calls its bytecode files .exe and .dll for a start, while that means nothing more sinister than .jar or .pyc do, it is instantly recognisable as something uncool. Every slashdot article, review and blog will mention it and think they are insightful, just like this guy did. The jeering and booing will be annoying and possibly even affect peoples willingness to participate lest they associate themselves with something that is surrounded with spook stories about Novell and Microsoft (especially young people).

However good mono might or might not be, is it worth it?

26 Oct 2005

Wed, 26 Oct 2005 17:23:43 GMT

Philip (sorry to everyone else syndicating or hosting this blog and are reading strange chatter). What I mean is that the filter primitive element has the attribute id="SourceGraphic" when clearly it is supposed to mean in="SourceGraphic" (i.e. reading the input to this filter primitive from the element the filter is applied on). There is no real reason to set an id on a filter primitive since there is not instanceable anyway. Of cause it was a bug, it was a nasty crasher that could be invoked on valid input, but it wasn't really holding up much functionality since there is no practical reason for that attribute to be there. B.t.w. there is no requirement that all elements have ids which is why there was nothing like that in the test suite.

We messed up a month ago with a regression, we fixed the problem within a day and we rolled out a new version. The fact that you decided not to remove the redundant id attribute "because I don't want to set a precedent for accounting for every minor release of every library" and it caused problems with those unlucky enough to not be able to access the new release hardly makes me feel sympathetic to you that you are being blamed for the crash. Sure, it was within your rights to leave the id attribute in, because it is valid according to the standard, but standing on your rights doesn't exactly help people who's software is crashing all around their heads.

The fact remains, we screwed up. Actually, I'd go so far as to say that I screwed up, being the one who made the regression in question. I screwed up, we fixed the bug within a day of discovery, we then made a new release. You diagnosed the bug exactly as being related to an id attribute on a filter primitive, you evaluated whether to work around it, you decided against it, SUSE users got pissed off. In situations like this where you have users to satisfy, making two blogs about the bug a month apart making it look like you are currently waiting for us to pull our thumbs out of our arses is hardly fair when you had the means to avoid the bug to begin with.

I'm not against people mentioning problems with librsvg, I don't think librsvg is bug free and I don't think anyone else does either. I simply think that mentioning a single, minor bug twice on your blog, the first time in great detail is unrepresentitive of our firm commitment to fixing bugs.

26 Oct 2005

Wed, 26 Oct 2005 13:07:10 GMT

behdad The latest public release is here

26 Oct 2005

Wed, 26 Oct 2005 11:09:17 GMT


Librsvg 2.13.2 was released late last night, it has a rewritten text subsystem and now supports trefs, it also judges the size of unspecified sized images far better and parsing should be a little more robust with malformed input. Also, dimensions specified in the SVG that are specified relative to the viewport or dpi are handled far better. Internally it's a hell of a lot cleaner as we consolidate the core in preparation for DOM level 1 support. Dynamic SVG support is getting very close with recent work, I sure hope people actually use it when we support it. Also this version has improved external reference support when used with the rsvg command, the command line utility is no longer worse than the x program/browser plugin at handling relative paths for resources.

I installed Tango a few days ago, I find it to be very nice, though to be honest I think I'll switch back to Gartoon soon since it's just so much of an awesome theme. For some reason I'm not to fussed on those grey folders, but that's just personal preference. Despite the grey folders, I think it possesses style, consistency and class. Now I think about it, I'm not fussed on the "lock screen" icon either but you know, worse things happen at sea. Tango also lead to my weirdest experience ever on bugzilla when I fixed a bug relating to tango but everyone else involved did not want to let me close it because I refused to acknowledge that it was a major problem before I fixed it. I don't know if this was sort of like a Alcoholics Anonymous step one of twelve where recovery cannot be made unless the problem was acknowledged. Or maybe everyone finally got sick of my insufferable arrogance and are trying to teach me a little humility, I don't know.

While I'm talking about bugs I've fixed, I'm amazed to see Philip Langdale making a second blog mention about a single closed bug in librsvg, especially when that bug was invoked by the misspelling of "in" as "id" in the document in question. Of cause we are grateful that this bug has been disclosed so it could be fixed, because our library should not crash on any input, no matter how unlikely. But to be honest I still don't get why the file in question was not adjusted by simply having a single line changed to work around the bug (and make the file make a lot more sense) but then again that's none of my business. I guess he's just trying to let everybody know that the crash isn't his fault, which is very fair in this situation. By the way, the version of librsvg 2.12 that fixed that problem came out in Ubuntu a couple of days after it was reported iirc. But then again, this may be just another case of me trying to understate the severity of bugs for my own personal gratification.

Magic Eye renderer

I renamed my deformed pattern stereogram renderer "Palantír", which is like the most awesome name for a renderer ever (in my personal opinion). I havn't actually brought out a version with that name, but I wanted to boast about the name I'm using anyhow. I sure hope Tolkien's estate doesn't have a crack team of lawyers out to kick my butt over this though. The next version to be released will use diffuse lighting for preview generation instead of making a heightmap. I've modified it to be able to render things in front of the focal plane, so they actually pop out at the viewer when seen with crossed (rather than diverged) eyes. As far as I know, I'm the first person to ever create images like this which is really cool and it is all open source of cause. You can see the stanford bunny in this way here.


I still don't have my cheap Nokia 770 yet, which sucks because I've already written stuff for it. It's probably because I live in Australia, I might have to get one by proxy.

14 Oct 2005

Fri, 14 Oct 2005 08:43:55 GMT

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.

9 Oct 2005

Sun, 9 Oct 2005 13:01:48 GMT


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

Wed, 14 Sep 2005 15:35:23 GMT

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.[...]

27 Jun 2005

Mon, 27 Jun 2005 01:44:27 GMT

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 b[...]

12 Jun 2005

Sun, 12 Jun 2005 06:44:57 GMT

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 d[...]

14 Mar 2005

Mon, 14 Mar 2005 15:00:20 GMT

Nervous Smalltalk

Apparently 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 and Please expect updates... but don't bet the farm on it.