Older blog entries for gtaylor (starting at number 20)

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.

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":

Please send me a Word version of your resume.
Um... no.

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