Older blog entries for raph (starting at number 139)

Is it time for some rocket science?

I've been playing around a bit with antialiased x-terms using the X render extension, with a particular eye toward font quality. It's not as good as it should be. Meanwhile, proprietary platforms such as the Macintosh have truly excellent font rendering. Check out this OmniWeb screen shot, for example.

Extremely high quality antialiased font rendering is a hard problem. It's also one with a somewhat limited span of interest - as soon as 200 dpi displays become ubiquitous, non-hinted aa will become the ideal solution. The big problem with non-hinted aa at lower resolutions is loss of contrast.

A long, long time ago, a group of rocket scientists did some serious rocket science, resulting in a very impressive font rendering system for hinted, non-aa fonts. However, as it was too difficult to use, very few fonts were made in this system, and the fonts that were made did not excite graphic designers. The proprietary world later adapted bits of this technology in stripped-down, but far more usable, form. TrueType carries forward the concept of using a programming language to compute the hinting, while Adobe Multiple Master fonts carry forward the concept of adjustable font-wide parameters. No current proprietary system implements all of the original rocket science vision.

At the time these rocket scientists did their work, nobody was really thinking about antialiased font rendering. The displays just didn't exist at the time. Heck, even mono-bit displays of sufficient resolution where you'd want to use proportionally spaced fonts were still a bit on the cutting edge. Thus, the original rocket science, while an impressive bit of technology, is not particularly suitable for today's needs.

Meanwhile, free software hasn't been standing still. FreeType is an impressive renderer for the proprietary font standards. However, Type 1 isn't particularly well suited for screen resolution fonts, and while TrueType is, it's saddled with a particularly nasty patent situation. Thus, US users can't legally use a free desktop with good quality fonts.

There is a solution: do some more rocket science. I recently dusted off an old prototype of mine, code-named "procedural screen fonts". It shares from the original rocket science the concept of using programs to determine the geometry of the glyph. I hacked up an interesting antialiased stroke renderer that can handle the (primitive) PSF stroke geometry, which is lines and 90 degree sections of elliptical arcs. The results, as a proof of concept, are encouraging. In particular, stroke contrast is quite near the non-aa case. These fonts don't look much like the "real" fonts they're supposed to represent, but that can be fixed.

Like all rocket science, there's quite a bit of work to be done to make it real, no matter how encouraging the proof of concept. I have a fairly clear vision of what needs to be done: generalizing and tuning the stroke renderer to handle arbitrary cubic splines and varying stroke weights, adapting the Hobby's global curvature optimizer so font designers don't have to fiddle with Bezier control points, actually drawing enough glyphs to be usable, and of course integrating with other applications out there.

Should I spend serious time on this? There are a lot of other things competing for my attention. Would I get significant help from the rest of the free software community? Past experiences have been mixed. To a large extent, I just don't know how important this work is. Perhaps everybody is happy with the status quo, happily ignoring the TrueType patents. If so, I should be spending my time on something else. And, as I mentioned before, as soon as 200 dpi displays come along, the work becomes a bit moot. I can buy an IBM T220 for far less than it would cost me in time to push this project forward. So I get a fabulous aa display soon no matter what. This affects the users, the poor huddled masses who can't afford 200 dpi displays. You can tell me how useful this work would be, but talk is cheap. Can you back it up with action?

motb: I think the best fix is to change the wrap in the HTML text entry fields from hard to soft. That will also fix the annoying spaces that show up in some links.

In any case, Advogato runs mod_virgule, not virgule. mod_virgule is hosted on Gnome CVS, not SourceForge.

I had a nice chat with Nick Moffitt at LinuxWorld about merging in the mod_virgule changes he and Neale Pickett have made. Right now, I'm up to my ears in things to do, but I hope to have some time to garden Advogato a bit soon. I find myself with a renewed sense of the importance of an independent site for free software developers, not vulnerable to the fortunes of a corporate sponsor.

Speaking of which, you may find it intriguing to compare the cash on hand with the market capitalization of LNUX. Ghostscript can't afford a sudden loss of hosting services, so I'll be putting a server in colo soon for our CVS, bts, etc.

Lots more I'd love to write about, but it's almost 2 in the morning.

27 Aug 2001 (updated 27 Aug 2001 at 07:42 UTC) »

I got a fair amount of interest from the teaser in my last entry, so I will write it up.

I'm tentatively planning on being at LWCE on Wednesday afternoon. I'm looking forward to touching base with hacker friends, even if the expo itself sucks rocks.

I briefly checked out dillo today, and was quite impressed. I think there is a niche for a stripped down, fast browser (the original gzilla plan), and it looks like the dillo folks are now doing a good job attaining that goal.

Yup, I doubled all the capacities on the certs, so the trust metric is no longer anywhere nearly as stingy. I found some silly performance problems in the mod_virgule code. At some point reasonably soon, I'll do some m/ maintenance, but not in the next couple of weeks, as there are more pressing things in the queue.

24 Aug 2001 (updated 24 Aug 2001 at 18:40 UTC) »
Misc

I got my A22p this week. The 1600 x 1200 screen is yummy!. I'm happily running Debian Woody on it, with pretty much all systems go. Here are the setup notes.

Numerically robust polygon intersection is a hard problem.

RAM is dirt cheap now. Pricewatch lists 512M PC133 sticks for $28, or less than five and a half cents a megabyte. Meanwhile, Apple is charging 78 cents for iMac RAM. It's a really good deal, too, 50% off!

I'm quite impressed by Raster's evas documentation.

Is it just me, or is VA's business model completely unrealistic? I think I'm going to write an advotorial soon on what to do in a post-SourceForge era.

I don't think these are very bright times for free software. In particular, I don't sense a clear vision of what we're trying to accomplish. I'm tempted to write a document describing my own, somewhat speculative vision, incorporating trust metrics, Athshe (a simplified DOM), configuration science, peer to peer networking, and general Raph insanity.

Portland was fun, although I'm not sure I recommend travelling with two small children. Probably the high point of the trip was Sunday evening, when we were sitting in the hotel room and trying to chill out a bit, but everybody was feeling tired and frustrated. Heather had the idea of going out for a walk, so we hiked by the Portland Community College, and had a number of fun experiences, including looking at spiderwebs, eating delicious blackberries, sitting on the seat of a forklift, and watching the sunset.

I got a really nice email from Stephen Hardy pointing me to Jonathan Shewchuk's work on numerical robustness in computational geometry algorithms. Interesting stuff, for sure, even though I've decided to take an error-tolerance approach to fix Libart's intersector. It turns out Shewchuk is in Berkeley. I'm going to try to meet with him.

I'm writing this from a hotel room in Portland, where our family is staying for a get-together for a mailing list of parents (mostly mothers) on a mailing list for kids due to be born at the same time as Alan. It's not easy to travel with a five year old and a 15 month old, even if the flight is only a bit over an hour. But we're all here in one piece (each), fed, swum, and reasonably well rested.

I forgot the "atdt" in my chatscript, leading to believe that the connector for my PCMCIA modem was broken, so I had a harrowing experience trying to use the ThinkPad 600's built-in ACP modem from Windows 95. There is now a GPL'd driver, but installation looks nontrivial, so I haven't done it yet - the PCMCIA modem works a lot better anyway.

I am reminded again of just how bad Windows 95 is. Bad. I hear that Windows 2000 is a lot better. I'm curious, but will find out soon, as my next computer buy is an IBM ThinkPad A22p, complete with 1600x1200, 133 dpi LCD screen. Yum. I'll dual-boot Debian Woody and W2k on it. About the only compromise on this machine is that it doesn't have an 802.11b antenna built-in. Oh well. It's also just a bit heavy, but with a screen like that, it's hard to bitch.

I can definitely see how Richard Stallman has acquired a reputation for being irritating. He asked me to patch the GPL'ed Ghostscript documentation to not refer to the newest Ghostscript versions. I told him I'd accept a patch, which is, after all, the free software way. He sent me back a somewhat snippish note saying that he was too busy, and that he works 50 to 60 hours, so it was not reasonable to expect him to do it personally.

Well, I didn't ask him to do it personally. If it's so important to the Gnu project, then presumably there are hordes of GNU minions who would be thrilled to take on this earth-shakingly important task.

Of course, the suggestion that his time is so much more valuable than mine is deeply, deeply irritating. I mean, that's probably the best way to piss people off there is.

I responded, telling him that I asked for a volunteer in my Advogato diary. As it is, this request yielded a volunteer, so the work will get done.

RMS was even more unhappy with this response. Just asking for a volunteer, it seems, is not living up to my responsibility as GNU maintainer.

I see Richard's point, but I am not sure I agree with this. If the ideological purity of documentation for GNU programs is, as Richard asserts, so vital, then surely the GNU community will take care of the issue with dispatch. If no volunteer comes forward, that is a suggestion that it is maybe not as important as Richard believes.

As I write this, I am reminded of Richard's dedication to the cause, even when lots of other people think he is crazy. It is entirely possible that Richard is right about ideological purity in docs, even if very few other people agree with him. But, to me, GNU is (at least now) much more about the community than one person's vision.

I do believe in the goals of the GNU project, am proud that Ghostscript is part of the GNU system, and take my responsibilities seriously. If it weren't for this, I can easily imagine resigning over this spat. The work of the Ghostscript team on the GPL'ed version of Ghostscript is, after all, a gift, and it's not exactly nice to be presented with a picky dental report in return. It really saddens me to think of how many talented people the GNU project has lost because of Richard's personality quirks.

Of course, there may be silver lining: the people attached to the GNU project are, by and large, those truly committed to the ideals of the project, rather than shallow ego gratification (I hear rumors that the newer top administrative staff do fall in the latter category, but don't really know them, so can't really comment). That might ultimately make the project stronger than it would have been if Richard was a nice guy.

Sorry for ranting. It feels good to get this off my chest. I'm mailing Richard now to let him know I wrote this... I think he should hear it too.

I had a great time at Pacific Yearly Meeting. Right now, I'm spending all my attention on the Font API architecture for adding third party font renderers to Ghostscript (of which FreeType will probably be the most important). So I'm still underwater with respect to other free software stuff.

One thing, though. I receieved a request from Richard Stallman about cleaning up the GPL'd Ghostscript documentation so that it conforms to GNU standards (ie, s|Linux|GNU/Linux|). I don't have the bandwidth to do so right now. Any volunteers?

pfh: Chord.

I'll be here.

11 Jul 2001 (updated 11 Jul 2001 at 06:30 UTC) »

I finally have a draft outline and intro chapter of my thesis on the web: thesis.ps. It's 31 pages now (admittedly, somewhat padded), and starting to feel real. Yay!

It's definitely tricky to juggle Ghostscript and thesis, but I feel like I've been keeping up adequately. Of course, if you're waiting for me to review some code, you probably don't agree :)

Just a quick note regarding certification: I haven't increased the capacities assigned to subtrees in a while, so the metric is being pickier than usual, almost certainly too picky. Apologies to those who should be cert'ed but aren't. I agree that the choice of seeds could stand some revision, as well, but how exactly do you choose them? Put it to a vote?

Also on the subject of Advogato, I'm really tempted to add a field for geographical location. I think it would be neat to visualize the trust graph overlaid on a globe. To make things even more fun, I think I'll make it so that you can put in the location for your friends if they're too lazy to. Hopefully, I'll have a little time opening up soon and can hack on this.

Fixed some bugs in GS this week, which was nice.

I talked to the guy from Wired about Mono a couple of days ago. The result wasn't too bad at all - certainly not as bad as I was fearing from his post asking for comments.

I also talked to another reporter (Rachel Chalmers of the451), and am still waiting to find out if that's a disaster. One of these days, I will learn to keep my big mouth shut. Uhm, maybe.

I'm having trouble juggling between work and thesis writing. Hopefully, I will be able to take two solid days for writing next week, and have some pages to show for it.

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