Added new post. Minor fixes.

Franco Masotti 5 years ago
parent beeddfc597
commit ff8bd4d221
  1. 3
  2. 2
  3. 65

@ -3,6 +3,7 @@
# Copyright (c) 2017 Franco Masotti.
# See LICENSE file for details.
PORT = 3050
all: build serve
@ -12,7 +13,7 @@ serve:
@jekyll serve
@jekyll serve --host=
@jekyll serve --host= --port=$(PORT)
@rm -rf _site

@ -1,5 +1,5 @@
title: An O(n) Python 3 algorithm that halves the number of characters to be removed.
title: An O(n) Python 3 algorithm that halves the number of characters to be removed
tags: [algorithm, string, python]
updated: 2018-03-02 17:00
description: A Python algorithm that halves the number of characters to be removed

@ -0,0 +1,65 @@
title: Add a remote shared printer with a couple of shell commands
tags: [printer, CUPS, share]
updated: 2018-03-05 13:00
description: How to add a remote shared printer within CUPS using a couple of shell commands
If you happen to have a USB printer without WiFi and a computer that will
act as server, then you can use [CUPS]( to share it.
Once you setup CUPS to allow non-localhost connections, on port 631, you can
use the web interface for the configuration. At the time, I tried to add the
printer from a client computer using the web interface and selecting the
driver, just like I did on the server. I got a `Filter failed` error.
Basically, I think that the problem was that the file got through the printer
filters twice (see `$ man 7 filter`). To avoid this, the printer needs to be
added as *raw* from a CLI shell:
# This must be the exact same name
# as the one reported on the server.
description="Remote printer"
location="Connected to the server"
lpadmin -p ${local_printer_name} -v \
ipps://${server_hostname}:631/printers/${remote_printer_name} \
-D "${description}" -L "${location}" -E
Please note that `lpadmin` needs root privileges.
The only thing to do is to edit the variables appropriately and then do a printer test.
Recently I experienced encryption certificate problems using `ipps://` but
everything worked fine using the plain `ipp://` protocol. If you are
in a trusted network this shouldn't be a problem.
You can now set the new printer as the default system one:
lpoptions -E -d ${local_printer_name}
Just like `lpadmin`, `lpoptions` also needs root privileges.
In case you need to remove the printer you have to run the following:
lpadmin -r ${local_printer_name}
See `$ man 8 lpadmin` and `$ man 1 lpoptions` for all possible parameters.
That's it...
## Note
This post is an adaptation of the original one at