Older blog entries for bernhard (starting at number 15)

Hacking

Spent a few more hours on AutoTrace. Martin had fixed most memory leaks, but there were still a few more present. Now there are only 6 left. At least this number is independent of the input image, which probably means that they're somewhere outside the actual tracing or curve fitting code and hopefully easier to find.

I also discovered that the number of mallocs I mentioned yesterday wasn't correct. Some mallocs were counted twice. The real number of mallocs for that image is 1 127 388. I've now replaced the hacked malloc/free/realloc counting code that only counted calls through the macros autotrace uses in most places with a cleaner implementation that uses the hooks provided by glibc. That way I really get all calls and it requires far fewer changes in the sources.

Still, the code is decidedly ugly. In this particular case, open source doesn't mean better code quality. These memory leaks probably weren't a problem in limn which was 'only' a command line tool that was executed over and over again. But some people want to use AutoTrace as a library someday, so they have to be eliminated.

AutoTrace is in what you might call the 'bugly duckling' phase of development. It's buggy and maybe a bit cumbersome to use and somewhat limited in what it already can do, but it has the potential to someday turn into a beautiful swan. Of course even with a swan gliding majestically through the water you normally don't see the hectic paddling underneath...

Anecdote

This evening some guy started singing a capella (does one say that in English?) in the street right in front of my window. Another guy was filming him with a video camera. His intended audience were apparantly some peope in a flat above mine.

Among others he sang Tom Jones' "Sex Bomb", Sinatra's "My Way" and Presley's "In the Ghetto", some of them slightly modified. He was quite a good singer good even.

Hacking

After a few last minute bug fixes and changes, I put the last finishing touches on Sketch 0.6.6 today and released it. I had some problems with the web-page update because SourceForge wouldn't let me log in. A few hours later it worked again, though.

A couple of days ago, Martin Weber contacted me about adding color support to the output filters for the next release of AutoTrace, so modified the svg, sk and eps/ai filters accordingly. It took just a few lines.

He also asked me to look for memory leaks and as it turns out the situation is awful. On one particular image, autotrace makes 1 452 546 mallocs, but only 290 458 frees. Most of the leaks are hard to find because of inconsistent use of malloced vs. automatic variables and strange data-structures, e.g. there's an array of structs that also seems to be a linked list.

This isn't Martin's fault, however, because these leaks are already present in limn, a part of the GNU fontutils on which autotrace is based. I gave him the advice to reimplement the algorithm from scratch. That seems to be the sanest solution.

Maschinen-Menschen Mensch-Maschinen
(Machine-Humans Human-Machines)

That's the title of an article in the current issue of c't. It contains reports from Intel's Computing Continuum Conference and Hofstadter's Spiritual Robots Symposium. I had read about Hofstadter's April 1st event on Slashdot, but the Intel one was new to me.

Especially noteworthy for me as a python-fan is that among such luminaries as Bill Joy and Hans Moravec it also mentions Guido van Rossum and his Computer Programming for Everybody.

Terry Pratchett

There seem to be a few Terry Pratchett fans on advogato. I haven't got the time to read all the diaries here, but at least mjs, stephane and dria have referred to him or his books.

For those who don't know him yet, PTerry (as he's usually called on alt.fan.pratchett or alt.books.pratchett because of Pyramids) is mostly known for his Discworld books, a series of at the moment 24 volumes of comic fantasy. The first few were just fantasy parodies, the newer have grown into their own special brand of comic fantasy.

I'm not much of a Fantasy fan in general, although I read and liked Tolkien, but the Discworld isn't really Fantasy somehow. It has lots of popular science and technology terms strewn in like "trouserlegs of time", "quantum" and the rubbersheet model of gravity. Then there's Hex, a computer built with among other things an ant-farm (complete with "Anthill inside" sticker) in the High-Energy-Magic building in Unseen University. One sentence I particularly liked in Witches Abroad is "The witches flew along a maze of twisty little canyons, all alike"...

Photogenics

Another beta of a commercial graphics program was released on Monday, this time it was Photogenics, a pixel oriented painting program. I downloaded and tried this one as well.

The archive was amazingly small (ca. 360K) but that seems to be mostly because it's a very limited demo/beta version. It only has very few import filters, only one export filter (jpg), and many of the painting modes are not available.

The UI seems to some bugs (e.g. popups pop up in the wrong position and you can't use them correctly) but the program appears to be very stable and fast.

So far, I haven't seen anything that you couldn't do with Gimp, although drawing new images seems to be easier in Photogenics, but I'm not much of an artist, so that's not all that important to me.

There are two things that I find interesting in Photogenics. One is the way drawing is handled. Drawing effectively selects pixels and applies an affect to the selection. The two stages are actually completely separate. You can change the effect thats applied even after you've finished drawing. That's pretty neat and I think GIMP should have something similar.

The other interesting thing is how undoing drawing works. Photogenics doesn't just save the pixels that were affected, it remembers the actual strokes you did with what tool and settings. This has the big advantage that it takes less memory but it also means that undoing a stroke can take very long because all previous strokes have to be repeated.

It'll be interesting to see how Photogenics can compete against GIMP and PhotoPaint which Corel wants to make available for free download.

Diaries

schoen, your diary entries are beautiful[1] and I for one like to read them. They tend to be quite long, but I don't mind. Nobody's got to read them if they don't find the time. And even on the recent diaries page, its easy to skim over it.

On licenses and requirements to comply with applicable laws: isn't that requirement always implicitly present? I mean, copyright and contracts are regulated by law and laws can state that certain clauses in contracts or license agreements are not applicable even when they are written into the contract/license.

Of course, there might be differences in this regard in different parts of the world. But that's a more general topic. It's not immediately clear that a license that was written with US law in mind also works as intended with, say European law. Anybody interested in how compatible the GNU General Public License in praticular is to German and European law should have a look at the current issue of c't or at IfROSS (Institut für Rechtsfragen in der Open Source Software)

Feetnotes:

[1]Well, OK, I probably have to explain this pun[2]. The German word for beautiful is "schön" and if no "ö" (o umlaut) is available it can be replaced with "oe".

[2]That's something PTerry's German translator likes to do sometimes even when it's not necessary. In Reaper Man, for instance, there's the following exchange between Windle Poons (a recently deceased Wizard who can't pass into after life because Death has been retired...) and the Librarian (who was turned into an orang-utan by a magical accident):

'Olé'
'Oook?'
'No, Not "with milk".'

In the german translation theres a second sentence in the last line: 'You mean "au lait"' (In the German version it's in German, of course :-)). Aaaarrrgggghhh. I'm glad I read it only after the English original and that it was the only Pratchett translation I read. I was just curious how good the translation was. The other volumes don't seem to be much different.

Downloaded the beta of Deneba's Canvas and played around with it a bit. Like Corel's ports of their windows applications, Canvas uses WINE, but the executable itself is a native Linux ELF executable, WINE is only used as a library.

First impression: It's awfully bloated and slow and uses 100% CPU constantly. It's certainly slower than Sketch, at least it feels like that. Well, it's a beta version, so maybe the final version will be better in this regard. On the plus side, it didn't crash so far...

Second impression: The user interface is a bit of a mixture between that of Adobe Illustrator and Corel Draw. It has tons of features of which I've only tried a few so far, but it seems to be strangely lacking in some areas. It has import filters for a variety of raster image file formats but absolutely no vector import filters (apart from its own file format).

After Mediascape's Artstream, this is the second commercial vector drawing program that's available (at least in beta) for Linux and Corel Draw will follow in the summer. Makes me wonder when Illustrator will follow.

What does this mean for open source drawing programs like sodipodi, KIllustrator, GYVE or Sketch? I have no idea, but it depends on what the users will do. Will they even look at open source alternatives or will they just use what they already know from Windows or Mac? Here, "users" mainly refers to Linux newbies who come to Linux because its an alternative to Windows, e.g. because it's more stable and cheaper but not because they prefer open source software on principle. Can these users be convinced that open source is better even for end user applications, not just for the infrastructure (e.g. OS, servers and the like).

Not that the above mentioned programs don't have users or aren't successful (Hmm, I haven't heard much about Gyve lately), but I do wonder how the availability of commercial applications, especially those that can be downloaded for free, will affect the open source end user programs.

Of course, much of the above applies to all end user software. In the particular case of graphics applications, there are some prejudices to overcome and technical problems to solve before the open source solutions are even acceptable for professional artists.

Many professional artists seem to think that only Illustrator and Photoshop and perhaps Freehand are tools for real computer artists. Corel's programs, for instance, are only toys. Is there a chance that they might be persuaded to use open source tools?

At the moment, no open source graphics program really fits their needs, not even GIMP. The most important missing feature usually being support for pre-press stuff like separations/CMYK/process colors. Supporting commercial color models like Pantone may even turn out to be impossible or at least difficult in GPL programs, but I haven't even looked into that yet.

Enough of this rambling. There is more that I could write about this and I have the feeling that there's an article in here, if I only could frame my thoughts more coherently. Well, if I find the time, I might try my hand at an article.

Diaries

Everybody seems to be commenting about the advogato diaries, so now might be a good time to share my thoughts about them.

What makes the diaries here on advogato so interesting is that so many people keep their diaries in one place. Before advogato, there were already some hacker diaries, the best known ones are probably Alan's and Miguel's, but they were kept separately. Here, people read each other's entries and comment on them in their own entries.

Suggestions

I think it would be nice if it were possible to directly refer to one specific diary entry of another person, so that it I wanted to point out that Ankh's diary entry was really ugly, I could refer to that so that it's clear which one I'm referring to (At the moment it's very clear which the ugly one is, I think).

This one would be relatively simple to implement, I guess. If the entries are numbered, you could just use a url like "/person/name/diary/123".

Furthermore, it would be cool if such references were also visible the other way round. That is, if I were to put a comment about one of raph's entries into one of mine, there would be a link under raphs entry pointing back to mine. This would be a good way to find out what other people think about an entry, and whether anybody comments on your own one.

For a start, it would perhaps be enough to scan diary entries for links to other entries when an entry is added or modified and use that information to generate the links under the referenced entries.

Perhaps I should also have a look at mod_virgule...

There's a discussion going on on comp.lang.postscript under the subject "Will Adobe ever complete PostScript" about translucency/alpha channels in PostScript and why Adobe hadn't put it into language level 3 and why it's difficult or not so difficult to implement.

There's certainly demand for this, but unfortunately it does seem as if any good implementation of this will require lots of memory, either to hold the entire page in at least 24 bit color in printer resolution in memory or to hold an arbitrarily large display list. Then there's the question in which color space the color blending should take place.

So far the people who maintain that it isn't difficult haven't provided any good argument AFAICT. Even if only gray-scale output is required you probably still need a full color image in memory.

Sketch News:

I've put the first draft of an FAQ list on the web-page.

Over the last several days, I've received several interesting drawings from a Polish user of Sketch. I think I'll add some of them to the Gallery if he doesn't object. So far he's been insisting that I can do with them whatever I want...

Much ado about a "sex link" on the home page of the Bundesministerium für Familie, Senioren, Frauen und Jugend (brief translation: Ministry for Family and Women) today here in Germany.

Said web-page features a "link of the month" and this month it pointed to a webcatalog for women that among other things indirectly contained links to sex sites.

The issue was raised by the Bild-Zeitung (the leading German tabloid), and the major opposition party, CDU. Needless to say, you can also indirectly reach a sex site from the CDU home page...

Sketch 0.6.6 should be available in a few days. The main thing that's missing is the Spanish translation and I've received the first update for that. The rest will be done soon, I hope.

I think I'm also going to include most of the scripts that were posted to the Sketch list yesterday. One of the scripts creates a rough approximation of an Archimedean Spiral. I'm not sure whether that's the correct English term, but mathematically, it's the set of all points whose polar coordinates satisfy r = k * phi where k is a constant.

I'm not sure whether it was meant to be an approximation of that particular kind of spiral, but as I wanted to work out how do that approximation for quite some time, I finally put pencil to paper and did it. Today, I posted a better approximation to the list. Even though there is one part that may not be exactly correct, the difference between a spiral approximated with my version and a polygon approximation is negligible.

The part I'm not sure of yet is a "magic" factor that I just took from the circle approximation. It should be correct in the limit phi->infinity because then a quarter revolution of the spiral is just a quarter circle. It seems to work for small phi as well.

Not much Sketch hacking today, but I read an interesting Article in the new issue of c't (no link to the article this time, as it's not online), which I suspect might be an April Fool's Joke. If it is, it's a pretty good one.

A c't reader discovered some strange artefacts in an American DVD called "The March Is Over"[1]. The c't team investigated this and couldn't find anything at first, but eventually saw some flickering out the corner of the eye. Stepping frame by frame didn't produce any results but after they'd filmed the screen with a video camera they found the slogan "Don't drink and drive" on one image and they found two other such subliminal messages in two other scenes.

They surmise that the slogans are "subpictures" which are usually used for subtitles. Subpictures are normally not shown when single stepping.

Interestingly enough, these messages weren't present in a copy they created with DeCSS, although they should have been, so the question remains, just how they are embedded in the DVD data. Even though subliminal messages don't work, if this is a true story, things like this would be another good reason to be able to use DeCSS or similar tools legally.

The article goes on with some conspiracy theory that behind this is a scheme for mass manipulation and that this might be just another reason for DVD-Consortiums use of region codes.

[1] I had written most this entry when I realized, that this title alone is the strongest hint that it's indeed an April Fool's Joke...

On wednesday, I announced the new Sketch user documentation that Yves Ceccone and Frédéric Toussaint are working on. What they have so far is already better than what Sketch currently has to offer in some places. It also includes some beautiful cliparts in an objects and a typography section.

The documentation is in French because it's going to be used with young students in France. One of the reasons for the announcement was that we need to translate this into English and it seems we have found someone for this job.

Yesterday, I made another preview release for Sketch 0.6.6. There were more last minute changes than I expected, otherwise I might have released 0.6.6 immediately. On the other hand, the Spanish translations aren't updated yet.

Today, I made a new development release, 0.7.6. One 'new' feature is the reenabled support for PseudoColor visuals. François will like this.

Found and fixed a glaring bug in Sketch today. AAAARRRGGGHHH! If anybody wants to reproduce it: Assign an axial gradient to two objects at the same time and then transform one of the objects. The other object's gradient will also be transformed. You may have to force a redraw.

Yesterday, I learned about a newly introduced bug of the "brown paperbag" variety in the prerelease that would break loading of raster images on a lot of installations. I'm glad I did make a prerelease.

Google finally seems to have found Sketch's new home and "feeling lucky" again takes you directly to Sketch's homepage. Interestingly enough, it only works in the normal search engine, not in linux one, which takes you to the LinuxFocus article.

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