I just set up my laptop to print on my color laser printer

It's a Brother MFC-L3780CDW.

I used the local IP address like so:

socket://192.168.1.102:9100

And it just worked.

It also gave a deprecation warning.

I don't expect it to keep working.

Ah! #linux!

A #poem

But I was able to print tonight.

I now have a picture of my son.

With a cat.

He rounded out the edges with a scissors.

He's 9.

I am 47 or 48 or something.

I'm on Mastodon,

posting 500 characters:

linux printer drivers!

@poleguy i have this snippet in one of our systems. It’s so dumb and so cool that it just works like that. No drivers!

cat production_rack_support.pdf | ncat 172.16.0.5 9100

@karlcswanson @poleguy

You can thank Apple for that.

About 15 years ago, they strong-armed the printer manufacturers into implementing the server side of a standardized, open-source protocol stack in their printers.

Now macOS (and also other platforms like Linux) can drive any printer by implementing the client side of that protocol stack.

Apple calls it AirPrint. Everyone else calls it driverless printing.

@karlcswanson @poleguy

The specifics are:

* Printers must be IPP servers.

* …including IPP over USB.

* When connected to a network, printers must announce themselves on Zeroconf (aka Bonjour).

* Printers must accept a standard format for page images called PWG Raster (though they may accept other formats too).

@karlcswanson @poleguy

IPP has been around for a long time, as have page description languages like PostScript.

But it used to be that you needed to run print server software on a computer, and it would use a printer driver to translate those into the vendor-specific commands understood by the printer.

By 2010, it was feasible to move all of those functions onto the computer embedded in the printer itself. Now the printer *is* a print server.

@karlcswanson @poleguy

Also, Apple eliminated things like PostScript and PCL.

These page description languages are fancy, but they're also complicated to implement and use. PostScript, in particular, is a full-blown programming language, which the printer or print server has to compile and execute!

PWG Raster, on the other hand, is a simple, dumb image format, like BMP or PNG. Rendering an image of the page to be printed is now the computer's job, not the printer's.