The Wayback Machine - https://web.archive.org/web/20170630063409/http://www.advogato.org/person/raph/diary.html?start=159

Older blog entries for raph (starting at number 159)

LeBe

I've always wanted to design a font. That's actually why I started gfonted. That project is now dormant, but it spawned gdkrgb and libart, so it was certainly interesting.

Anyway, when pfaedit crossed my radar screen, one of the first things I tried is tracing the font a specimen sheet I had fallen in love with. The program is crude, let me tell you, but strangely usable anyway. Before too long, I had all of the letters in the original sample, uppercase and lowercase, drawn.

There are some letters which are standard in the alphabet now, but weren't standard when the specimen sheet was printed (only a bit more than a hundred years after Gutenberg). I would have to draw these myself.

So over the past few days, I did. I'm pleased with the results. None of the people I've showed it to have been able to guess which four letters I drew from scratch. Can you?

Assemblies

I had a dream last night that I was asking miguel about assemblies. Inspired by the dream, I stopped by #gnome and had a very nice chat with miguel, bjf, and others about the topic. I still haven't found a good document that explains them - bjf's advice was to play with Microsoft's implementation. In any case, I'm convinced that there are some very good ideas there. Most of the time, when we build larger systems out of components, we just throw the pieces together and cross our fingers. Sometimes it works, sometimes Murphy's Law reigns. The idea of assemblies is apparently much more systematic.

As an old-timer, the name tickles me a bit. The name "assembly" used to refer to assembly language, which is basically obsolete these days, so I guess Microsoft decided that the slot in the namespace was free. In any case, it evokes a much older time.

Miguel is certainly right about one thing: Microsoft has a lot of very smart people who are paid to think about difficult problems. To ignore their work, for any reason, is stupid. Embrace and extend!

jbig2

Jbig2 implementations are starting to dribble out into the real world. We had a customer file come in recently that was created by Cvision's Cvista product. I hacked around a bit yesterday on jbig2dec, which is our (GPL) decoder project. It's fun stuff, and I hope we decide to ramp up the development on it. rillian is the main developer on it, but he hasn't had too much time for it either.

7 Feb 2002 (updated 7 Feb 2002 at 07:22 UTC) »

Anyone who is alarmed at goingware's latest diary entry is advised to take a close look at the URL.

Nice spoof, though. I'm kinda planning something like this for 4/1. bbs.porncity.net indeed.

The rest of my diary (worth reading imho) is here

6 Feb 2002 (updated 7 Feb 2002 at 00:04 UTC) »
Ghostscript

Well, there are a couple of new releases of Ghostscript out now, for both GPL and AFPL branches. There's a fairly significant security fix. You should upgrade.

These releases also contain IJS and autoconf. I haven't gotten much feedback yet from actual IJS users - I know this stuff takes time.

Mono

It's really good that we're having this flamewar^W discussion. I can definitely sympathize with the desire for better languages and tools, but adopting new stuff being driven by a highly proprietary company comes at a significant cost. I am not convinced yet that C# is dramatically better than choose-one-of C++ and Java. Add to the mix the fact that both languages are at least modestly mature and have half-decent implementations.

In a few years, when C# is also modestly mature and is half-decently implemented, it might be worth reconsidering. Of course, by that time, C++ and Java will be a lot more mature and well implemented :)

I found this article to be quite good, providing solid technical refutation of the clr's language neutrality claims. Despite the javalobby.org url, I found the article to be not especially biased towards Java either.

C# ultimately has the same problem as Java: the standard libraries are dictated by a proprietary company. It's very likely that Microsoft won't fuck them up as badly as Sun has, but it's also certain that the standard libraries won't be tuned for the needs of free software developers either.

SVG

The ksvg project is starting to come along pretty nicely. They use libart for the rendering, which is a good choice :)

It's something of an NIH project, given that there's a reasonable start at an SVG implementation in Gill and rsvg (which are based on the same codebase). There are quite a few things that rsvg does correctly (like opacity in groups), but ksvg doesn't do yet. It's sometimes irritating to see people struggle with problems you've solved a long time ago.

On the plus side, the ksvg developers have the Gill/rsvg code available as a reference, and also frequently invite me to their irc channel. NIH does not always mean a total waste of duplicated effort :)

Rebar

I've been hacking a little on a project which has been dormant for a while: rebar, my NuPerfect autoconf/make replacement.

Rebar is, of course, also very much an NIH project, given that the autotools teetering-house-of-cards already exists (the word "toolchain" conveys much more dignity than auto* really deserves), and there are plenty of other projects aiming to replace it as well. I'll try my best to read and understand the related work before releasing rebar upon the world. So far, my biggest inspirations have been auto*, Vesta, Python distutils, and jam. I've also looked at Ant, SCons, and OS X's ProjectBuilder. There are a bunch more I need to study, I know. At the top of the list is .NET's "Assembly" mechanism. (note: does anyone have a reference to a reasonable document on this mechanism? thanks in advance)

In any case, the current rebar snapshot currently compiles a hello world example :)

Thesis

I've also got a bit more written on my thesis. It's challenging finding time for it on top of everything else, but I'm determined to finish it sooner or later.

IJS

I just posted a snapshot of the new Ghostscript IJS client. If you have a printer with an IJS driver available, I encourage you to test it. Currently, that's HP printers, and you can also try Russell Lang's patch for gimp-print.

In other news, hpijs is now free software, under an BSD-minus-advertising license no less. This is very cool. I provided some nice quotes that will probably be used in their formal announcement.

Microsoft and security

The comments to the recent Slashdot story that Microsoft was going to focus on security had a childish, bickering tone. Fact is, this is a good thing. Microsoft's weakness in security has caused a lot of suffering, and it's just luck that it hasn't been worse. The free software community can take a lot of credit, I think, for inspiring Microsoft to take this initiative. Now they can chase OpenBSD's taillights for a while :)

NIH

NIH is just as rampant in the free software community as anywhere else, if not more so. The threadlet here on vector graphics libraries is certainly a case in point. I hadn't heard of the anti-grain geometry library until now, but it looks vaguely interesting. In any case, I guess a lot of times it's simply more fun to start a new project of your own than to contribute to one that already exists.

I'm not sure whether this is a good thing or a bad thing. I think NIH is responsible to some extent for the relative abundance of half-finished components, and the relative paucity of finished systems. If we're to improve on this, I think it would be a good idea to think about how to make collaboration more fun.

Life

Life is good!

Another quick update:

I just finished reading The Brothers Lionheart to Alan aloud. I broke into tears while reading the final chapter. This isn't something that happens a lot, mind you.

It's preposterous that one of the most beautiful children's book ever written, by a well known author no doubt, is not in print. Someone has posted a text copy online, and I consider this to be an "ethical copyright violation", specifically that the public good of making this work available outweighs the loss of incentive for copyright owners to reap profits from their legal protection, in this case utterly squandered.

You may find that the above link fails. Fortunately, archive.org preserves the text, though the broken HTML format makes this version quite unusable. Even so, it brings up a question: can archive.org continue to exist in this age of huge liability for copyrights?

Ghostscript

We're closing in on a new trio of releases. For one, I have the gdevijs driver successfully printing with hpijs 1.0 server. I'm looking forward to getting this into people's hands.

The free software community

I'm feeling more positive about the community than I have in months. Of course, there's a lot of stupidity and childishness, but there's also some serious wisdom, and some good work being done. I want to write about what I see, but my thesis comes first.

A quick update. My friend Robert and I saw "A Beautiful Mind" last night. Highly recommended.

There's a new IJS implementation, with Ghostscript client. Read about it here. I participated in the last conference call of the Free Standards Group, and it went well.

Is Free Software dead?

No, of course not. I never meant to suggest that it was. I did question whether there is as much interesting stuff going on as before, and I'm still not sure.

rasmus, in his very thoughtful response, puts his finger on a key point: the standard for things being "interesting" is probably much higher than it was. The application that got me truly excited about free software, the Gimp, was truly trailblazing in its day. Nobody had ever done a modern GUI application as free software before. It changed the world. Nowadays, if a pair of Berkeley undergrads started cloning a proprietary GUI app, it would be old news. Similarly, the Linux kernel isn't very interesting to me any more because it just works.

There was definitely a hype wave around free software and open source. Probably the biggest damage it's done is create a lot of unrealistic expectations. People who do free software as a hobby simply cannot tackle huge software efforts as quickly and effectively as those who are being paid full time. Also, the hope that Corporate America would find it in its best interest to fund lots of free software development has largely failed to pan out (it was never true before - what had changed to make people expect that it would, other than the publication of Eric Raymond's essay?).

Lastly, the rise of the hype wave was, I think, fueled by two very, very good ideas that were enthusiastically adopted in the free software world, but with much more reluctance in the Windows world. First, the Unix philosophy of processes with separate address spaces, and a relatively simple, file-centric interface for dealing with the rest of the world. Second, TCP/IP and the Berkeley sockets API for programming them.

Now that the latest generations of consumer platforms have adopted these ideas, it's easy to forget how much of a lead we had. In 1994, when I started doing free software, Windows was at 3.1, and you'd get on the Internet with all kinds of strange hacks (anyone else remember TIA?). Those, such as myself, who ran Linux boxen enjoyed a commanding lead in terms of robustness, connectivity, and a sane programming environment, even as we sacrificed on the GUI front.

I don't think there's anything now, at the end of 2001, that is comparably such a good idea. Java might have been, if Sun hadn't botched it up as a desktop software delivery platform and shown an attitude of indifference shading to hostility to the free software world. XML certainly isn't - as Phil Greenspun has written, it solves a relatively trivial syntax problem, without helping at all with the meaning of all that tree-structured data. P2P is very interesting, but it's too hard.

It's not all bad news, though. There used to be things (like GUI's and WYSIWYG word processing) that proprietary software did pretty well and we absolutely sucked at. Now, there are at least mediocre free counterparts of just about everything in the proprietary world, and in some cases quite a bit better than mediocre.

So I think the bar will keep rising, we will learn to do more things, and slowly the good ideas will rise to the top. I think patience will reward those who expect a lot from free software. And I think the reasons to take part in it now are just as strong as they were before the hype wave. So I plan on doing free software for a while.

Xmas

We had a nice Christmas at Heather's father's house. Alan got a lot of games this time, including the 3D Harry Potter one. He, my mom, and I played Set, and again I was amazed at how quickly he caught on. Max got a couple of motorized trucks, and spent a lot of time happily driving them around.

Spam

I get a lot of spam. When I moved my mail and web server, I decided to try out some free spam filtering software, so I installed Spamassassin and Razor on casper.

The good news is that it works pretty well. It actually does filter out most of the spam, and passes most of the real mail.

The bad news is that it's far from perfect. A half dozen or so spams a day get through the filter, and it's also blocked some legitimate mail. I'm worried that its effectiveness will drop dramatically as spammers get wise to it and figure out workarounds. Quite a few of the rules in spamassassin imply test RFC compliance. Many of the others could be trivially circumvented by a spammer who was trying to do so.

Something else that bothers me deeply is that the rules are very harsh on non-European languages. One of the legitimate mails it blocked was from a Russian colleague, whose default mailer signals a koi8-r character set (even though the mail in question was all in English). A lot of the spams out there are in random languages, but blocking non-Latin alphabets seems like a step backwards for world unity.

In the long term, I really do belive that trust algorithms are the answer. In the mean time, I guess we'll just keep pouring in time and energy on our side of the arms race.

Printing - fun

Good 'ol Slashdot has an article today on printing. One of the comments links my last diary here, spinning it as a "negative review of Argyll." Sigh.

Actually, my latest results with Argyll are very encouraging. I've made a number of profiles since the last post, and each is quite a bit better than the previous version. I now feel I have a good understanding of why my amateurish attempts had the quality problems they did.

I really like doing this kind of work. Learning and doing is the true spirit of free software - learning without doing gets you academic sterility, and doing without learning is all too often the way things are done in proprietary software.

Color science is continuing to evolve quickly. I think people got seduced by the fact that you can measure color rigorously and precisely, and characterize the color transformations done by actual devices such as monitors and printers. Color management, then, should be a snap - just make the colors on the printer match the colors on the screen, and you're done.

In fact, the way colors are perceived on the screen and on paper are quite different. Even worse, not all printers (or papers) are created equal. A ratty old inkjet on plain paper can't produce anywhere nearly the same range of colors as an Epson 870 on photo glossy. You have to do something with the colors outside the printer's capabilities. This process is called "gamut mapping", and the scientific understanding of how to best accomplish has only recently started to come into focus. Two important works from the last five years include Jan Morovic's thesis, and Fairchild's paper on hue linearization.

The goal of all this, I think, is to package up "best practices" in color management so that mere mortals can make and use color profiles with good results, without having to understand all the details of color science or our particular implementation. It still won't be for everybody - spectrophotometers still run around $1500, but I'd like for there to be a good solution for people serious about graphic arts.

Printing - not fun

I don't like standards committees, and I get the distinct impression that they don't like me. Thus, I think that one of the keys to happiness for me is to never get involved with a standards committee again.

I've been working on a protocol for hooking in printer drivers, called IJS (it's based on HP's hpijs, but driver-independent). I think it's going pretty well - HP's latest driver uses the IJS protocol, I've drafted a halfway decent spec, and I expect versions of Ghostscript to ship with IJS built by default pretty soon.

But life can't be so simple. As it turns out, the Free Standards Group has a Printing Working Group (not to be confused with the Printer Working Group, which is responsible for IPP) that is working on a standard to do pretty much the same thing as IJS. Well, I guess what they say is true: the great thing about standards is that there are so many to choose from.

I sent a rather passionately worded mail to their mailing list, requesting that they adopt wire protocol compatibility with IJS, but I'm really unsure how best to proceed. If I was a masochist with lots of extra time on my hands, I'd take active part in the PWG<2> and try to bully them into making a good standard, but it's just not how I want to spend my time.

I guess I'll be updating here as this thing plays out.

OpenSourceJapsEye

Awww, how cute. Our first determined troll.

These posts don't personally bother me that much, but I can imagine others not liking them. I think there's a good chance that our troller will get bored and go away, but of course I might be wrong. Obviously, there are other community sites where trolling is a deeply integrated part of the culture.

Amusingly, the concept of the trust metric seems to be working - OSJE is not certified. The problem is that one of the most popular parts of this site (the recent diary summary) doesn't use the trust metric at all. The simple thing to do would be to tighten up the recent diary list to only include cert'ed members. In the past, uncert'ed diary posts have been a good thing, largely because people can talk about the free software work they've done and thus elicit certifications. But at this point, it might be worth sacrificing, and I would ask that people use other channels of communication than Advogato diaries to get initial certs. After all, the site is pretty well established now. It should be reasonably easy for any serious free software developer to find somebody with an account here who they know well enough to ask for a cert.

I'm disheartened to hear reports that Advogato's S/N ratio is declining. It may well be true. If so, I'm not sure why. I fear that one reason may be that there's simply not as much interesting stuff happening in the free software world these days. It's hard for me to evaluate.

In any case, I think Advogato's S/N is pretty good. It's not fabulous, though. I'd like it to be better, and am definitely interested in tweaking the site to make it so. Of course, this work has to compete for time with the other stuff I'm doing (like actually doing free software, not to mention finishing my thesis), and it's especially hard to find motivation when I'm so unsure what would actually be effective. But I'm sure I'll find some more time to play with this site over the next few months.

As always, constructive suggestions are welcome.

Family

My mom is coming tomorrow (Christmas Eve). We'll all pile in the car and pick her up from the airport. It ought to be fun.

Max is at such a beautful age right now. Watching him begin to master language is such a joy. My favorite word of today was "chicken soup", which suggests that he's just about to break through the 2-syllable barrier. He asked for "Goodnight Moon" tonight, and I read it to him, twice. So sweet.

He's also into physical and spatial stuff. Alan and I were playing Hoppers this afternoon, and Max of course wanted to play too. He didn't seem to grasp the rules of the game at all (not surprising), but he did very much enjoy putting the little frogs on their pegs, and the patterns that resulted.

Alan is having a bit more of a difficult time right now. He spends a fair amount of time these days in a bad mood, easily getting frustrated, and obnoxious to boot. Heather and I have noted that it seems to be linked to time spent playing video games, particularly shooters like Nanosaur (which ordinarily we wouldn't let him play, but gave in because he likes dinosaurs so much). So we're going to cut down on the amount of time for video games and see if that helps.

His new passion continues to be stories. I'm reading him "Jurassic Park" now, and he's for the most part enjoying it, although it's a little too talky for his taste. It's amazing to me that he understands the story, not just what's going on, but the structure and texture of it as well. Early on in the book, he foresaw that Tina would get attacked by a dinosaur before any such thing was mentioned. Pretty basic for any fan of sci-fi thrillers, but impressive to me from a five year old.

Inkjets

Today I created my first color profile using Argyll and a Spectrocam. It sucked! I cut a lot of corners, I wasn't trying for quality, so it's not surprising. Even so, it's clear that just doing the ICC dance isn't going to give good results for unsophisticated users.

I've been playing a bit with my experimental rinkj inkjet driver. At present, it drives the Epson Photo 870 only, but it does do the 4 level variable dots and 6 colors. RGB->cCmMYK conversion is yucky, but I expect to drop in the ICC stuff soon.

Also, rinkj is still ppm based, rather than ijs. It needs to be ijs, but at present, it's strictly a spare-time project, so I just haven't got to it yet. Meanwhile, the newest HP release is ijs based, which is cool.

Trademarks

This story on how Red Hat is enforcing their trademark is interesting. Legally, my guess is that Red Hat is entitled to their trademark. Even if the GPL were to extend to names in addition to code, RH would have to explicitly release the distribution as a whole under the GPL in order to be bound by it. If (as I suspect) they're not doing this, the distro were GPL, I think they'd be protected by the "mere aggregation" clause.

Still, this raises some fairly deep questions. What if free software developers decided to enforce the trademarks of their program names vigorously against distributions? Obviously, vendors could change the names of the programs, but this would cause quite a bit of hassle (analogous to the hassle of having to download a distro from the net rather than using a CD). I consider the issue to be legally quite murky - the GPL really only talks about copyrights.

The ethical questions are equally murky. Balanced against the freedom for people to do things with the code (like making money selling CD's of it) are questions of fairness. If we accept that Red Hat has created valuable intellectual property with their brand, then is it not also the case that brands like "Linux", "Apache", "Gcc", "Gnome", and so on are also valuable?

So far, the lawyers haven't gotten involved in a big way in free software, but it's probably just a matter of time. Sigh.

Alt-Q

Alt-Q is a small microcosm of both the suckage and coolness of Unix. It's a horrible usability problem that the same key does paragraph reflow in one editor app, and quits losing all work in the editor window of another popular app. It's also kinda nifty that I was able to grep through /dev/mem and recover what I'd lost. Of course, grepping through /dev/mem doesn't exactly pass the "mom test".

Unix is very friendly, it's just picky about who its friends are :)

Toys

I'm typing this on my laptop wirelessly, thanks to the pair of DWL-650 cards I just got. One is on my laptop, one is on a discarded laptop I use as an access point (the lcd is flaky, hence its name: Nearly Headless Nick).

Setting up a laptop as an AP is not for the faint of heart. Originally, I planned on using plain old Potato, but wireless is just bleeding-edge enough to rule that out. I upgraded the kernel on both systems to 2.4.16, and am fairly pleased. Both the orinoco_cs (which I use on pixelelnvy) and the prism2 (on nick) drivers work. The latter is supposed to support master mode, but I only got it to work once, and wasn't able to replicate it. So they're both in ad-hoc now.

I'm also listening to oggs on my new Grado SR-60 headphones, which I got at the recommendation of the Vorbis crew. They're nice - bass response, in particular, is a lot better than what you'd usually expect of headphones. I can also really easily hear mp3 artifacts :)

I ordered the Grados from cadencebuilding.com. Poor taste in bgcolors, but they seem to know what they're doing, and have free shipping. I ran across a couple of glowing testimonials when I was searching for where to buy these, and knew I had to go with them even if there was a slightly cheaper price somewhere else. I'm glad I did.

Max and Alan

Max is rapidly making the transition from being essentially nonverbal to being verbal. A couple of months ago, he spoke probably a dozen words. Over Thanksgiving, Heather tried to write down and count the words he's now speaking, and arrived at over 200. He's also started on simple sentences - "Alan crying" and "Santa candy" :) It's just amazing to watch him develop.

I'm reading "Dragon of the Lost Sea" by Laurence Yep with Alan now, and enjoying it quite a bit. Alan is soooo sensitive. This evening, he lost a couple of Pokemon cards in the Pizza place, and was devastated. Nothing all that special about that, but his ability to articulate it is not exactly normal - "It wasn't a mistake, it was a horror." "I lost a piece of my heart". Any easy way to make an Eevee and a Scizors card magically show up?

Omi (my mom) is coming for Christmas. That ought to be fun!

Ghostscript

An important milestone was reached yesterday: no regressions in HEAD against 7.0 for our automated regression test suite. I had a pretty bad cold, and feel like I'm just now getting caught up on things, but it feels like it's coming along.

I also did a new release of Even Toned Screening. If you're into halftoning, by all means check it out.

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