Older blog entries for gtaylor (starting at number 15)

Mandrake 7.2b1 seems to be out; it's got CUPS and foomatic-built interfaces in it. This is a good thing, and Kurt et al went on at some length about this in the Linux Today story's discussion area. If anyone finds bugs in these PPDs, you can poke at the underlying data on linuxprinting.org.

raph mentions:

...miguel said some things to me last night on IRC about inkjet printer drivers which strongly suggest that he values corporate support over high quality and involvement from free software hackers.
Ack!!! Some people just don't get it, I guess. Printer companies are among the worst offenders with some practices which free software can simply eliminate:
  • Most vendor drivers aren't terribly good. The recent competition on software-driven quality from color inkjets has helped this somewhat, but they're still a bit klunky to use.
  • Printer vendors have often tended to discontinue support for older models well before those models are nonfunctional.
The stp driver is a marvelous example of what life might be like if free software developers have their way. As far as I can see, it's no contest.

I was able to dedicate a full day to foomatic over the long weekend. This turned out well; the system now contains full execution data for the not-quite-released stp driver. I added some more flexibility to the logic for option constraints, and more or less finished up the web forms for entering data. I also split up the big form, since it kept making netscape consume 200MB of memory, at which point my box crashes.

I need a really good mailing list engine which I can drive directly from an existing Postgres database. It needs to handle bounces and generate "dead address" events so that I can expire people in sql. Ideally it would also solve the archival problem. The goal: people should be able to sign up for mailing lists related to each printer in the database. Developers could contact users, users could contact each other, and changes in the database could notify the people who care. This will, of course, amount to around 1000 mailing lists run on my workstation at home. It must be totally automated.

Someone bought an Epson Stylus 860 through an affiliate link; this marks the first dollar I've made explicitly through free software efforts. Hopefully this will happen often enough to provide me a cushion upon which to jump-start a free software consulting business. If not it ought to at least pay the network bills...

Went out on Saturday with the guys (plus Alli) to see the Tao of Steve. A pretty good movie; we ended up having one of those "why don't nice guys get dates" discussions afterwards.

Well, things have been busy. I've just completed the code rearrangement; foomatic is now an external GPL'd program instead of a web-based tool. This should allow for significantly more community involvement; as it was I got lots of bug reports that anyone could now fix. Hopefully the Debian and Mandrake folks who want to use it will be kind enough to fix a bug or two.

I'm trying out one of those affiliate programs as a sort of experiment in self-funding. It would be nifty if I could afford an intern to do some of the drudge work from time to time. And if there is enough money from this, I'll pay myself or others to do useful free software printer-related projects. For example, there are any number of ratty drivers out there that do dots, but don't dither at all; any of these could stand to be integrated into stp.

I attempted to catch up on my email over the past few days. I failed, after nearly 8 hours of constant emailing. There are 400 more important messages left to process, stretching back a full year. Fortunately, as the messages get to be older than a few weeks, I can start sending "sorry, was this still important?" form letters...

Saturday we went sailing with Paul. Fun.

Robert wrote a little program to extract all the argument information from his stp driver, so now Foomatic contains complete details on executing that driver for Epson printers. It has the Canon data, too, although I haven't finished marking the stp driver on the Canon printers themselves. And of course I didn't get to the PCL driver yet.

I did asorted minor rearranging of LinuxPrinting, including proper toplevel pages for foomatic and the database itself, rather than having them accessed in various ways from random points in the rest of the site. And I added a long overdue little form for people to directly select a particular printer; before, confused people had occasionally mistaken the "new printer" dialog for a search box, resulting in random new empty printer records from time to time...

I've settled on a design scheme to get the bulk of Foomatic's code out from my web server to where other people can hack at both the raw data-to-ppd/pdq/lom code and the filter scripts. Letting people work on both ends like this should improve the appeal of the thing to sensible cathedral-wary folk.

The Linux Hardware Database was sold to ZDNet. LinHardware is very similar to my own site, differing mainly in having broader but shallower device coverage. This spawned a bit of soul-searching on my part. I've got a website that represents some 8 years of effort on my part, not to mention a delightful hobby. Viewed from an accounting perspective, however, it's a large nonliquid asset, and something of a resource hog: I give it most of my free time, and derive fewer benefits from it than my time is worth by most any metric. As it expands, it will surpass my spare-time capacity, and it's unclear what happens then. So I'm formulating two opposite plans from which to chose: an exit path (sell? give away? let rot?) and an "entry" path (self supported, for profit full time operation). The entry path is, I think, viable, but I'm rather risk averse, and it doesn't fit in with the rest of my life right now. So I'd like to identify an exit path which preserves everything that's good about the site (voice, interactivity, focus, free licensing, etc). Unfortunately the traditional exit path-outright sale-provides no guarantees for these things. I'm stumped.

Well, I've finally gotten back on the keyboard again, so to speak. Over the past two days I've made excellent progress on my foomatic data entry code, to the point that I'll be able to easily enter execution data now. More importantly, it will be possible for other people to do so; this will capitalize better on the strengths of my existing database and the community in general. Anyway, the immediate goal is full stp/gimp-print driver support (well, for Epsons, anyway) over the next day or two.

In doing this work, I finally found a case where I needed something JavaScript could do, albeit mainly to work around the fact that Netscape is a pathetic memory hog. Basically I approximated nested menus, since having 500+ selectors with 750 choices each gives Netscape or Motif a fit. Who would have thought that such ugly things could work together in a useful way? The resulting menus are nifty enough that I'll reuse them as a nicer search interface to the printer listings.

VA wants me to be a volunteer editor person for the Printing Foundry. I really must decide and get back to that fellow...

I attempted to get a prescription put into my bicycling glasses, but after two attempts the optician threw his hands in the air and gave up. The problem is the wraparound fit of the things; the prescription lenses need to be somewhat flatter than the frame allows. Fortunately I have contacts, but I had hoped to retire them.

Today at work there was a system design document review. As with all reviews for networking products, most of it consisted of arguing over which lights should blink in what color when. Thankfully there was a ten minute diversion to discuss whether the slots should be numbered from bottom to top or top to bottom. All of this would have been fine if I'd remembered the fine Nerf weapon I got last week. Alas, it was not to be...

Some bonehead recruiter emailed me "in response to my resume":

[babble]
Please send me a Word version of your resume.
Um... no.
Jeff and I appear to have completed handshaking; now it's up to me to find time to implement the missing code to make foomatic really sing. I blew it this weekend; between the festivities and the overdue lawn care it didn't happen. Ah, well.

Friday was my birthday; Kelley gathered a bunch of friends and we had a neat little BBQ affair. A few folks even brought presents; these ranged from the geeky (a nerf gun) to the geeky (a geek bookstore certificate) to the nostalgic and geeky (recordings from my days on the college TV station). Thanks all!

I spent part of Friday afternoon writing a Perl module to show my Datebook.pdb as part of my web page at work. This was well and good, but it turns out that Palm::Datebook doesn't have anything that seems to match the "Private" bit on appointments. There's an "other_flags" member, but none of the bits there appear to match the private setting; I don't get it. Hmm.

Speaking of Palms, the guys in my geek club now want to get into Palm programming, after we found that several projects already exist to build virtual communities atop Crystal Space. The lack of free software for Palms seems like a nice problem to attack. I'm not sure, though, if this will matter with the advent of useful Linux PDAs...

Mom needed a bit of help with kmail; it turns out that if an outbound message fails to get sent, all future outbound mail will get stuck in kmail until you go into the outbox and delete or fix the broken message. This is poor, but at least the rest of kmail is better than Balsa was. There are really too many gui mailers out there, and most of them suck. Oh, for a nice GUI Pine equivalent!

Mulad wonders about where to get good weather data. I've found that the METAR system provides reasonable data; more or less every manned airport operates a small automated weather station, and all of this data is available from a central FTP repository. It's updated hourly. I graph my local temperature in mrtg using metar data; it works pretty well.

Even though I've been on vacation on and off for nearly two weeks, the rest of the world has been moving:

  • IBM has finally posted their OMNI printer driver system. The architecture is the thing here; they provide only drivers for a smattering of Brother and various Epson devices, all of which I think were already supported by free software. The Epsons, in particular, are supported better by free software.
  • Robert reports that we have finally found a printer which really does require bidirectional support - the Samsung ML-85G.
  • Work on integrating the gimp-print drivers in with cups continues; Mike has made them into cups-raster drivers.
Meanwhile, somewhere in there I agreed to give a 45 minute presentation at the Multifunction Peripheral Association's conference in October. The main complaint against multifunction devices (those cheap fax/copier/scanner/printer things) under Linux is that AFAIK not a one of them works. Aside from this observation I'll tell them about how to work with free software folks, and point them at all the related projects. Apparently the audience will be engineering managers and marketing.

At work I'm unhappy and trapped. Our management is incredibly awful, and the organization is simply not viable. I really must find a job working on free software, where I can do something useful, instead of just twiddling my thumbs half the time wating for the division to self-destruct. Unfortunately I cannot offer a representative portfolio of my software because I mainly write proprietary network firmware. The networking industry is not really a free software kind of place, and it's not obvious how to escape without becoming either a peon at a Linux house or going broke. Or both.

On my own project front, I'm swamped as usual, and see no end in sight. This will never do; it's time to do some triage. The obvious thing to cut is foomatic, which is suffering from the second-system effect (despite being a third system) and not attracting much community interest. I'll give a go at a web interface for it this weekend, but if that fails, foomatic will be retired. If it succeeds, of course, community involvement will be possible and the driver execution information section of the database wills stand a chance in hell of being populated. I remain convinced that a database-driven solution to printer configuration is the correct one, and I am convinced that most other implementations of this concept are rather poor. I just wish it were a practical problem for me to solve in available time.

Beyond foomatic, I think I can handle the workload; the question is, do I want to? I've offered the HOWTO and the database to the community for years, but the "community" has changed in the past few years; now some of my heaviest users appear to be support organizations inside Linux companies. While it's obviously correct for these parallel support organizations to share data, it's not obvious that a random unpaid volunteer should be that mechanism. It's also not obvious that the companies which use the data actually provide any new data; while I'm sure they do occasionally update a printer's info, they certainly don't make a practice of doing so. VA is the only company to provide any support at all, although I have yet to actually realize anything from that (note to self: send them a bill).

In any case, it's time to change things. I can't keep donating all of my free time to this one project without having anything to show for it, so either I need to find someone willing to hire me to do it, or it needs to be handed off to a new maintainer, or some other compromise needs to appear. Anyone with any suggestions can email me at the address on my web page.

I've put out a new version of the Printing HOWTO; it is of course at www.linuxprinting.org. Nascent sections on network printer administration and gui printing tools are included. I also finally fiddled my DocBook tools into doing vector pictures properly, so I added a simple illustration to the "How it works" section; they say pictures are worth a thousand words...

I finally got my free Palm V from work. Since I've already got one, I gave it to my wife as an upgrade. This was all well and good until it stubbornly refused to accept her old DatebookDB and ToDoDB databases. After a while of poking, I got pissed and wrote code to dump them into an ascii format and back again (four lines of code, thanks to Palm::Datebook and friends from coldsync). Turns out her old IIIxe had constructed a bewildering assortment of bogus appointments and todo items that had to be hand-fixed. I can't imagine how on earth a Windows/Palm Desktop user would ever have dealt with this. When you break with Unix tradition, you pay the price. Seemingly every time.

Things are really hopping on the cups-devel list; Till of Mandrake is planning to assemble the world's most wonderful printing system atop CUPS, KUPS, Ghostscript, Foomatic, and other projects. He's hobbled by not building atop Debian, of course, but the results should be nice just the same.

Robert's tidying up stp/gimp-print for a new release; besides his traditionally great Epson support, he's got his excellent dithering code running for Canons and HPs, all within Ghostscript now. This should shortly make most other canon and hp inkjet drivers obsolete...

LWN put my printing summit notes atop the development news section. Whee!

Robert sent me some additions for the vendor relations discussion part which I'll incorporate at some point.

Lexmark has asked me to review and comment on a printer. This is a fine thing, all in all, but they wish to use my comments in their ads. It seems appropriate for me to charge them for that privilege; they are evidently pondering that idea.

Mulad pondered the whole printing thing a bit:

I mean, I don't want to define a new printer in /etc/printcap just to be able to run at a different resolution or to print in color or whatever. This is something that has been missing for a long time. Of course, what's the best way to do this? You don't want every program that wants to print to be dependent upon a particular graphical widget...
So the approach currently used is to provide a defined interface between the spooler and print submission program, which includes data about the possible options. Currently, this interface is done in two parts: typically PPD files document the options, and job submission programs magically know how to specify options to the spooler (arguably, this is OK, since there are only 6 or so spoolers in the world). This approach is sligthly inelegant and not commonly used, but all the bits are there, so it's up to you to install it. Read the HOWTO. (Or rather, read the not-yet-published version of the HOWTO that has more data on this stuff).

I don't want more printers to be using proprietary languages...device manufacturers don't know how to make a `driver' for Ghostscript...
None of us like proprietary languges. Truth be told, however, most proprietary languages are little more than a few setup bytes and a compressed stream of bits indicating how to fire the jets. At the summit we clarified the needs of free software; since all the magic is in the dithering, and we can already do that, we may now see some vendors document the jet-firing information we need. As for Ghostscript, it does indeed have a collection of awkwardnesses that will probably be addressed in future versions. There's a sourceforge project for that; join and help.
I wonder if there are yet any programs for reading the status of my Epson Stylus Color 640. I'd kind of like to know how much ink is left.
Yes. Basic tools for that sort of thing are included with recent versions of the Gimp print plugin (aka the "stp" driver). It lives on SourceForge.

Sigh. I've really got to get around to some more work on the database and HOWTO...

My father in law is visiting; we're planning to eat out for the next five dozen meals. Urgh.

Yesterday I accidentally released a two foot snake in the locker room at the gym. Oops. Apparently he crawled into my bag when it was stored in the basement, and I never noticed until I unpacked to get dressed. Fortunately 3Com has a staff of comparatively expendable security guards useful for snake trapping and the like. Kelley won't go into the basement anymore.

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!