December 29, 2012

PostScript

I bought a laser printer four years ago, and it's served me well. Today I wanted to print something on it, but because I've moved it to a different location I had to re-configuring it to connect via WiFi rather than USB. While doing so, I realized I'd never checked if it had a firmware update available. Turns out it was using firmware version 24, and there was a version 68 on the manufacturer's website.

When I had it upgraded, it's built-in webserver configuration system now offered a "telnet" option. I've never telneted to a printer before! But Windows 7 Ultimate doesn't have a telnet terminal, so I quick downloaded PuTTY and connected. It offered a rather boring configuration menu. Which was cool, but, well, boring.

But looking at the configuration menu reminded me that it offered a "Raw TCP/IP" printing option. That, I suspected, means one could just connect a terminal (like PuTTY) to the port the printer is listening on, and send it raw PostScript and whatever other languages the printer understands. It's been shown that PostScript is Turing complete; while it was invented as a way of describing documents to be printed, it's really a fully-fledged computing language. So I sent off a "Hello World!" program to my printer, and I could hear it printing, but I apparently missed the command that would cause it to eject the newly-printed page. So, off to the language reference to check what the relevant keyword was, when I suddenly realized that I'd originally turned on the printer with the intention of printing a document, and here it was an hour later and I hadn't printed that document, because I was having so much fun playing with my printer.

This is the same mental quirk that caused me to start with reading an assigned book on pirates and end up with a MA project on whaling that includes side sections on intellectual property law in mid-ninteenth century America and the career of actress Clara Bow.

UPDATE: When I telneted into my printer, the welcome message included the following line:
System Up Time: 0000:00:00:00:19:11 (YYYY:MM:DD:hh:mm:ss)
Note the four digits for years of uptime. Really? Who honestly expects that a printer is going to have more than 999 years of uptime? I assume that the telnet server code was copy and pasted from elsewhere, but who assumes that a computer of any type is going to have more than 999 years of uptime?

Posted by: Boviate at 05:55 PM | Comments (1) | Add Comment
Post contains 407 words, total size 3 kb.

Comments are disabled. Post is locked.
17kb generated in CPU 0.0186, elapsed 0.0693 seconds.
41 queries taking 0.0604 seconds, 195 records returned.
Powered by Minx 1.1.6c-pink.