Older blog entries for gtaylor (starting at number 22)

I see rlk has joined us. Hi Robert!

As of Friday, I will no longer be a 3Com employee. Apparently I'm leaving at about the same time as Eric, so news of my departure has been eclipsed in the media. ;)

I spent a little time identifying suitable mid-range lasers for the suggested printers page and, while I was at it, added a price display thing so people can know what the things cost.

With the possible exception of amazon, affiliate marketing programs suck horribly - not in conceptually, but rather from an implementation standpoint. They're constructed in such a way as to make it impossible to programatically compute a URL from a vendor's website (from a part number or whatever); instead you have to use a mind-bogglingly crappy search engine by hand. It's like they want anyone who might actually be in a position to sensible recommend products to run screaming. I'm thinking that this experiment may be futile. Pity.

There certainly seem to be a lot of brusque responses to Raph's letter on LinuxToday; mostly centered around a mention of using a library from Gnome to spruce up the X11 driver. This seems odd to me; I had rather thought that the lack of forward progress on properly free licensing was far more contoversial. And controversy or no, Raph represents new blood of exactly the sort necessary to have Ghostscript survive in the future. Cursing him and his children and his children's children for mentioning Gnome hardly seems useful.

It looks like Foomatic suffers from the usual Ghostscript buglet; the interpreter's stdout goes to the Unix process's stdout, which is inconvenient if you're trying to pipe. Doh! In the good news department, Foomatic was implicitly mentioned in a review of Mandrake 7.2b; the review spoke of his Canon inkjet just up and working automagically. Good.

There's now a section on Slackware in the Printing HOWTO. It's a bit spartan; someone who actually uses it should read and contribute some more details.

I formalized the job hunt on my website just in time to receive a fairly interesting offer from a neat startup I've been talking to. Doh! I'd still rather go to an open source related job, rather than one which will merely use free software to build things with or from, but really this offer is from an exceptionally well-pedigreed company, and it is an interesting project and good people, so I just can't refuse. We'll see how it turns out.

Speaking of turning, I'd typed the wrong class of SKUs into my database, so the experimental project in making my website pay for itself ran aground. I've corrected this and we'll start a new trial period. (ObPlug: if anyone wants to buy a printer, buy one of my suggested printers).

Yesterday I had a moderately interesting idea for the implementation of a distributed search system. The original intent was to replace dejanews, which has dropped the proverbial ball as de facto keeper of the world's archives, but as it turns out my envisioned implementation has wider applicability than that: in fact it could help correct the "silo" characteristic of web discussion forums and the non-spiderable character of many database-driven websites. So forget the homemade Tivo; I've reserved a week between jobs to implement a proof of concept of this search system.

20 Sep 2000 (updated 20 Sep 2000 at 06:25 UTC) »

I created a suggested printers page on LinuxPrinting.org. It's gotten about 400 visitors in two days; obviously this was way overdue. Thanks go to Robert for helping identify the best inkjets in the low and mid range categories.

Lpdomatic should now handle ASCII jobs as well as Postscript, barring any embarassing silly bugs.

Cupsomatic should now handle options in all the usual CUPS and PPD ways, be they defaults in the PPD file, embedded in the job, or specified as CUPS job attributes. Various other minor bugixes happened as well.

I really must find a free software job. Many seemingly good nonfree prospects keep saying things like "we mostly use Word" and "we do Windows work, but are branching out into Linux". Urgh.

How to build a tivo

I've thought through how to construct a device with tivo-like functionality in my house, all for only four times what a tivo costs, albeit with better functionality, flexibility, and freedom. The end goal is a TV in the bedroom operated in normal remote-control style, that can watch live TV or anything from an assortment of automagically prerecorded stuff. There should be no computers etc in the bedroom; they're all in the basement or machine room, accesed via Ethernet or serial.

The key is that the second such TV I add to the system must then operate jointly with the first, so that it's one recording backend with two TVs seamlessly sharing data. The real fun comes in distributing backends across the net so that my freinds and family can share shows. But I digress...

The parts: a DC10-style MJPEG video card ($150?), a 30+ gig disk ($200?), my ratty old cyrix-based computer, a video overlay box ($100, run via rs232; it gives you esentially a 20x10ish text screen overlaid on the video, for control display), an Irman consumer IR input dongle ($30), an analagous consumer IR output dongle ($100! anyone got a cheaper source?), my existing cable box, my VCR (to demodulate the cable box's channel 3), and an RF modulator ($50-150).

The plan: cable-to-cablebox-to-VCR-to-DC10. Then DC10-to-overlay-to-RFmod-to-housecable. The computer itself is essentially headless. Control of all TV watching happens via IR input over cat5 to the computer in the basement; a w3m or similar web browserish interface displays on the overlay terminal to select the recorded show or live pass-through channel to watch, and whatever it is gets sent on channel 3 to that TV. The computer selects shows to record based on TV guide info parsed from yahoo, and records them by setting the channel on the cable box via IR out and writing mjpeg to disk.

It has the disadvantage of constructing mjpeg files, which aren't nearly as well-compressed as modern mpeg; my understanding is that mjpegs are essentially jpeg-encoded frames in sequence. Without the deltas, the compression is not ideal, although the hardware is much easier to build. This all stems from the DC10 card; I wasn't able to find a full-hardware mpeg implementation with linux drivers. If one exists, do tell...

Audio is also a bit uncertain. Apparently one often does the audio separately with a sound card and software encoding. I don't see how sync gets maintained, so a video editing-style card with integrated audio support would be the best deal.

I reimplemented my gimp-print-to-foomatic data importer, so it now runs in sensible time and produces properly correct results. If Robert ever stops changing the arguments around this'll eliminate all manual work for me.

I fixed the pdq part of Foomatic to handle ascii print jobs; similar changes in lpdomatic are overdue, although first I ought to make it work under SuSE's LPD.

Speaking of sensible time, I'm going to have to do timestamps and a cache thing; the foomatic getdat call now takes ages to compute. Since this is hit with every driver page just to get the documentation, not to mention daily as part of the cron builds, something really needs to be done. Perhaps someone should just send me a bigger computer...

There's something funky with my yahoo tv parser; every third invokation it fails. Hmm...

It took me 30 minutes to get sound working again on Kelley's machine after a kernel-package upgrade, what with all the compiling and all. I don't understand why they don't throw out the old oss drivers and just put the alsa stuff into the mainstream kernel. The oss ones appear to be a rather small subset of alsa functionality...

Sometime in the past week, Yahoo changed their tv guide web page format, so the tv guide in my palm has been broken ever since. Today I finally got around to fixing up my tv guide building script. Someday I ought to make it less horribly embarassing and distribute it for use with hacked Tivos or something.

This was a nice little diversion. I'm getting a bit burnt out, since I keep staying up until 4. Serves me right.

Chema sent me a note; apparently the gnome-print-admin project is doing the same sort of thing as Foomatic. I have yet to look at their system, but I'm sure it will contain some interesting ideas. Hopefully it will be straightforward to write an exporter to convert my database's printer/driver data structure into their schema; it ought to be, since we seem to have the same goal and same basic ideas. The biggest thing I might expect to find there that I don't handle in Foomatic would be sensible font or color support, plus of course a pretty installer. If anyone is interested in wetting their feet in Perl XML space, writing the Foomatic-to-gnome-print-admin data conversion code would be a nice little well-defined project.

11 Sep 2000 (updated 11 Sep 2000 at 04:56 UTC) »

It ended up being a busy weekend, not least because my dad came up to visit.

Big progress on foomatic happened this weekend. I blessed Till of Mandrake, and he promptly entered execution data for all known Lexmark inkjet drivers (!). Anyone with a Lexmark inkjet and the driver already installed should give a foomatic interface a spin and help us squash bugs.

I also blessed the pnm2ppa guy. He hasn't put in pnm2ppa data yet, but he said he'd try.

Assorted optimizations happened to the stp-interfaces foomatic bundle for gimp-print; Robert added me to the sourceforge project, so that users can report foomatic/stp bugs via the stp bug reporting thing there.

I have a free license quandry: I can't lay my hands on a good free database license. The goal is for data files (some of which are actually software themselves) computed from my database to be usable in most any way, by most any application free or nonfree. However, users must be able to replace the data files with new ones, regardless of the application. And users and developers should submit changes back into the Postgres "source" database, where the rest of the community can benefit from them. I'd kind of like to make that a must, but since it's difficult on a practical level to distribute the source Postgres database, this sort of devolves into a single-source/thou-shall-not-fork sort of license, which isn't what I'm after. OTOH, making it a must is the closest thing to the GPL's "thou shalt distribute the source" clauses I can think of. If anyone has any suggestions or pointers for free database licensing, I'd love to hear.

I put in for a sourceforge project to host the foomatic interface generating code and a bug reporter. Speaking of Sourceforge, I got annoyed at the HP-and-VA self-congratulatory Printing Foundry front page, so I pencilled in a recommendation for Epson Styli (which are of course the only inkjets that work properly with free software). I wonder if they'll leave it be; HP is paying the bills over at VA, after all.

I'll be giving a presentation at the MFPA (multifunction peripheral association-no, I'd never heard of it either) conference in October. Or at least I plan to if I can get them to send me the speaker registration form in something other than Word. I've completed the presentation; if anyone has anything to add, please feel free to review this and make suggestions.

I intend to represent the free software community at the conference, so if any developers on SANE, hylafax/efax, parport, hpoj/mlc, printer drivers, etc have any messages thay want me to deliver to a roomful of engineering manager types at all the usual companies, do tell...

Similarly, if any other free software people will be at this thing, I'd love to meet up with you.

LinuxToday posted my little PR thingy. Suddenly I'm getting 300 people an hour. No wonder my box is clattering so...

Anyway, I fixed a dozen little buglets all over, and one big one which made foomatic's data source broken; now all those stp foomatic tools should work properly.

Till clued me into the c2070 author's new Lexmark Z11 driver. We've really got to get all these scattered Lexmark efforts pulled into stp; none of them dithers with a darn, and stp dithers marvelously well but doesn't do Lexmarks.

Someone reported an LPD that doesn't pass any useful options to filters at all; apparently it's in SuSE. Neither the -J nor -C options get passed, and of course nothing useful like -z or LPOPTS happens. I guess I have to sit down and make lpdomatic find and parse the cf file. Ugly, but straightforward.

I switched my experimental affiliate links over to buy.com instead of outpost, since outpost prices are a bit high, shipping or no, and they tend not to carry many things.

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.

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