meghavi comics#3 OPENPRINTthe rackthe room
meghavi comics

OPENPRINT

72 HOURS. 42 COUNTRIES. ONE SEVEN-YEAR-OLD PRINTER.

THE PRINTER THAT SHOOK THE WORLD!free · bring your own paper
→ the noteshow it works. no pictures.

june. i was bored. there was a printer in front of me.

it shook. it's old.

the company said it doesn't work on a mac.

(sound) LINUX ONLY

so i ran their own linux driver on a mac. in docker.

then i let strangers print on it.

what's the worst that could happen.

72 hours. 206 sent. 190 printed. 42 countries.

(sound) BRRRT BRRRT BRRRT

okay. that's a lot of corn.

russia sent a bear on holiday. it set the tone.

(sound) ЛЕТО!

teddy, from chicago. this is why i did this.

a fake $20,000 openai invoice. my name on it.

i panicked. briefly.

finland sent one word. 49 letters.

florida sent this. passive-aggressive. respect.

corn. three, maybe four times. i still don't get the corn.

190 pages. one i can't show you.

you don't want to know.

see every print
OPENPRINTthe notes

openprint

strangers printed into my room

the problem

canon says my printer, a pixma gm2070, doesn’t do macos. i tried postscript, pcl, ipp, airprint, gutenprint, usb. the light blinks, the queue says 100 %, nothing prints. it only eats data from a linux-only canon library.

for

mac owners whose printer only has a linux driver. me, first.

what i built

solo: the cups filter, the docker image, a socket proxy and an installer. canon’s own driver does the printing; i got it to run on a mac.

  1. mac app, ⌘p
  2. cups filter
  3. docker, qemu
  4. canon’s linux driver
  5. the printer on my desk
the hard call

the cups sandbox won’t let the filter run docker’s cli, or reach docker’s socket in my home folder. so the filter talks to docker’s rest api with curl, through a small socat proxy.

then strangers printed without a single port open on my mac. it polls the cloud, outbound only:

your browser → vercel → my mac polls → printer

what broke, and the limits

206 sent, 190 printed, and one i can’t show you. the first print after a reboot takes 15–30 s while docker and qemu wake up. canon’s driver lists 89 models; i’ve tested one, the gm2070.

the numbers

190 prints from 42 countries in 72 hours (7–9 jun) · 5–10 s a print once warm · c · docker

next

the readme’s open asks: pre-warm docker (the cold start is the bottleneck), a homebrew formula, more printers.

honestly? it was just a random experiment, while i was trying to reverse-engineer my printer.

the end.

of issue #3 OPENPRINT anyway.