Older blog entries for Pizza (starting at number 120)

And then there were two more

Just added support for Kodak 6800 and 6850 photo printers to Gutenprint. The main difference between them is that the 6850 is faster -- 8s (vs 11s) for a 4x6 print -- and natively supports 5x7 media.

There are many thousands of these printers deployed in self-serve photo kiosks, and they're trivial to find on ebay. Cost per 4x6 print is under $0.17 and media refills are very easy to obtain.

Meanwhile, the 6800/6850 has been superceded by the 605, and the 1400 has been superceded by the 805. If I'm still motivated I may try to add support for those models too..

Syndicated 2012-12-25 04:06:30 from Solomon Peachy

Pre-Holiday Hackery

It's been a busy few days, and my vacation hasn't even started yet.

I accomplished two major tasks this weekend. First, I finally kicked off new attempt to mainline a Linux driver for the ST-E CW1100/CW1200 WLAN chipsets. The first post to linux-wireless went over fairly well, and the suggestions (many of which were already on the pending list) kicked off a flurry of updates culminating in a second revision posted later that day.

Those submissions have spawned a fair amount of commentary and some patches; I've spent most of the day so far incorporating a massive code drop from Sony, for example. That's undergoing some testing now, and I'm hoping other interested parties will step up and get some wider test coverage in so we can get this driver into the next Linux release cycle (3.9). I created a public git repo of my working tree, which will live on until the driver is accepted upstream:


I'm going to hold off on submitting a v3 patch until I get more feedback and testing, which means it probably won't happen until after the new year. Apparently most folks take it easy this time of year.

Thankfully, I've had another project to keep me busy. I've spent a fair amount of time working on the Gutenprint printer driver package too, fixing support for the Kiosk-scale Sony UPP-DR150 photo printer (~8 seconds for a 4x6 print!) and adding support for the larger-format (8x10/8x12) Kodak Professional 1400 printer. I don't own either printer; instead I reverse-engineeried the raw data generated by the printers' Win32 drivers.

Not bad for two and a half days' work, eh?

Meanwhile, there are now twelve Canon SELPHY photo printers on my desk. The entire line is supported except for the CP-790, CP-530, and CP-520 -- and then only because we don't know what their USB PIDs are. The only one with known problems is the positively-ancient CP10, which locks up after the first (successful!) print. All other models JustWork(tm) now. I should start getting rid of most of these.

If I find myself with more time on my hands I may try to add support to Gutenprint for another Dye Sublimation printer. Ideally it would be one still commercially available, not too expensive, and a larger format (eg 8x10) because I can put that to use. We shall see..

If I'm feeling particularly masochistic, I'll continue with my fumbling efforts to implement dock detection for Rockbox on the Sansa Fuze v2. I haven't made much headway on that gargantuan reverse-engineering effort; it's mainly an exercise in learning a new set of skills.

I've also started reworking my website's CSS to improve its curb appeal. Like any other software undertaking, days when you delete more than you add fill me with joy. If I'm feeling particularly ambitions, I'll try doing the same to my photo archive; it could use some sprucing up too, but its underlying plumbing is what could use some real hardcore loving. It's been neglected for far too long, but even that's beginning to pick up, as I've begun to experiment with different workflows.

I'm really enjoying this burst of coding. It's especially nice when you have something to show for it!

Syndicated 2012-12-24 20:34:21 from Solomon Peachy

Pondering Photo Organizer's Future

Last week I formally released an update to Photo Organizer. It was the first release in two years, and had no new features whatsoever -- just a largeish pile of bugfixes.

I've been thinking about PO's future lately; where I'd like it to go, and to a lesser extent, how to get there. I still don't have a good answer. Pretty much every feature on the wishlist is pretty invasive, and I just don't have the drive to make it happen, because PO has largely done what I've needed.

Most features I've added over the years have been due to my workflow requirements, and I've largely hit a dead end on that front. I've started to experiment with alternative workflow models, but until something gels into a new ideal, PO won't change much.

Since I started on a photo-a-day commitment, my workflow has had to cope with more regular postings, and it's exposed a few cracks in how I used to do things. I'd like to automate some things better, but I'm running into bigger-picture limitations in how I combine PO with my blogging software. For example, none of my "witty" captions have made it back into PO. Fixing this properly means writing a RESTful API to manipulate arbitrary data, which is a huge undertaking.

That said, the biggest driver of change is the massive event-type photography binging like what I got up to last weekend. (Last night I batch imported 44 gigabytes of NEF files; 3,588 images) -- I need a better way of grouping, tagging, and ranking images to manage this sort of thing better. Proper hotkey support would make this a lot easier.

Meanwhile, if the other seeds I've been sowing come to fruition, I'll be working with models on more formal shoots. This will require yet another type of workflow -- less organization, but considerably more post-processing. This means the current versioning system must be beefed up to handle multiple RAW renderings and sidecars. Distributing the final images also exposes weaknesses of PO's permission system.

At the of the day, PO's just a tool that's supporting my needs as a photographer. I'd rather be behind a camera than in front of a computer, especially given that I already spend eight or so hours a day writing software for my day job.

Anyway. As I type this, my PO instance houses some 143,434 images, of which 120,070 are mine. Not counting filesystem overhead, they take up some 1,509,037,063,959 bytes of disk space. Yowza.

In other words, PO's going to be maintained pretty much forever.

Syndicated 2012-12-11 00:29:50 from Solomon Peachy

66/354: IT WORKS!

This deceptively simple printer test page has been literally five years in the making. It is the first time anyone's been able to successfully JustPrint(tm) with the "newer" Canon Dyesub printers under Linux, at least without jumping through some annoying hoops.

But it's not quite done yet.

I still need USB PIDs for the Canon ES3, CP-200(*), CP500, CP520, CP530, CP710(*), CP770(*), and CP790.

The ES20, ES3, CP-10, CP-100(*), CP-200(*), CP-220, CP-300(*), CP500, CP710(*), CP770(*), CP800, CP810, and CP900 models are theoretically supported but, need testing/confirmation.

Finally, the ES40 and CP790 are unsupported until someone comes along and either donates a printer (or cash) or is willing to be a guinea pig.

So, if you have one of these printers and want to use it under Linux (or modern OSX), drop me a line.

* == Already in the mail, so to speak.

Syndicated 2012-11-13 23:57:05 from Solomon Peachy

63/365: They're Breeding...

I'm now up to eight Canon dye-sublimimation photo printers, with two more bundles of joy on their way, all in the name of Free Software. It's interesting; a proprietary printer driver was the spark that spawned the Free Software movement, and I'm continuing the tradition with these.

The Gutenprint stack is far more capable than the original Canon dyseub printer drivers.

On a slightly related note, Anyone out there have a coloriometer I can borrow? I'd like to fully calibrate these things.

Syndicated 2012-11-10 22:56:24 from Solomon Peachy

27 Oct 2012 (updated 7 Nov 2012 at 00:08 UTC) »

Photo printers and libusb, oh my!

A while back, I picked up a Canon SELPHY ES1 dyesub photo printer, only to discover it didn't work properly under Linux, thanks to it needing an intelligent spooler to prevent lockups, and being just different enough from earlier models to require tweaks to gutenprint.

So, in the spirit of Free Software, I patched gutenprint, and wrote the spooler. Over time, the spooler got smarter, supported more printers, achieved sentience, and brought about world peace.

...Until Apple revved OSX's printer subsystem and Canon neglected to release updated drivers for, well, most everything. Since my tool was written to use linux's native usblp support, OSX users were SOL.

Last night, I finished rewiring it to use libusb, and accept input on stdin. This enables it to be used in a CUPS filter chain, and theoretically supports OSX. But that remains to be tested..

...And I finally moved it to version control:


It still needs USB IDs for most of the SELPHY line, but otherwise seems to work fine with my ES1, ES2, and ES30 printers, at least on Linux.

Syndicated 2012-10-27 15:48:49 (Updated 2012-11-07 00:08:27) from Solomon Peachy

Oooh, I can haz missle launcher?

[pizza@stuffed ~]$ lsusb
Bus 001 Device 003: ID 04f9:0039 Brother Industries, Ltd 
Bus 002 Device 002: ID 1941:8021 Dream Link WH1080 Weather Station / USB Missile Launcher
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Unfortunately, what I have hooked up to my system is a rather pedestrian weather station, not the more interesting missile launcher. And yes, I know it just fires nerf darts or something like that, but I can still dream about an Anti-Air missile installation controlled via USB, can't I?

On the other hand, I doubt .mil publishes their interface specifications, and reverse engineering a missile launcher is likely rather expensive. Not to mention mildly dangerous..

Syndicated 2012-09-18 17:19:14 from Solomon Peachy

I can haz kernel hacker?

My employer is looking for another software engineer. Not to toot my own horn, but they basically need another me -- a low-level system hacker type. We design and manufacture our own hardware, so there will be a ton of device driver work, board ports, and general kernel hacking work for both Linux and various RTOSes. There will also be a healthy amount of network protocol and general "big picture" system design sort of stuff.

An ideal candidate will be able to code C in their sleep, and have a pretty healthy understanding of the intracacies (and harsh realities) of the IEEE802.11 alphabet soup.

We also are in need of a kickass QA person.

Oh, we're located in Melbourne, Florida, but we're open to long-distance relationships. If you're interested, drop me a line.

Syndicated 2012-06-13 00:22:44 from Solomon Peachy

Good lord, can we get new account creations turned off? The spambots are creating accounts almost as fast as I can flag them as spam...

9 Jul 2011 (updated 19 Feb 2012 at 04:12 UTC) »

The (continuing) joy of photo printers (and free software)

Way back in 2007 I picked up a Canon SELPHY ES1 compact photo printer. After some gnashing of teeth, I hacked support into gutenprint, and all was good. Canon meanwhile announded three successive generations of their ES-series of printers, and I just assumed they worked the same way, since the CP-series were all compatible with each other.

It turned out the ES-series weren't. In fact, every generation was subtly incompatible. (Indeed, the latest generation of CP-series is also incompatible with everything else!). But thanks to a motivatd soul, I was supplied with printer dumps for nearly every dyesub printer Canon created. It piqued my interest, and I started generating dumps for the rest of the ES-series, filling in the support matrix for all paper types. The code was committed to guetenprint about a week ago, but remained untested.

I decided to trolling eBay for the second and third-generation printers (ES2/20 and ES3/30, respectively), and much to my surprise, my lowball bids on two of them won. My "new" ES2 turned up a couple of days ago, and the ES30 should be here tomorrow. I spent late last night and part of tonight rewriting the smart print spooler the ES1 needed, and about 30 minutes ago I finally succeeded with successful prints with the ES1 and ES2.

The ES2 is slightly larger than the ES1, has a better UI and a more efficient paper path. It also adds Memory Stick support. Otherwise, it's identical under the hood, with the same print speed and output quality as the ES1. We'll see what the ES3/30 brings to the table when I eventually end up with one.

But in keeping with tradition, here's the first picture I (successfully) printed with the ES2:

This was shot outside my office a couple of years ago.

I'd like to find a colorimeter so I can get a calibrated printer profile, but as usual, there's an endless line of more important stuff I'd like to get first -- like some grids for my studio flashes. Damnit, photography's an expensive thing to dabble in..

Syndicated 2011-07-09 02:28:13 (Updated 2012-02-19 04:12:21) from Solomon Peachy

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