• 7 Posts
  • 656 Comments
Joined 1 year ago
cake
Cake day: June 15th, 2023

help-circle

  • lemmyvore@feddit.nltoSelfhosted@lemmy.worldWeb printing
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    11 days ago

    You don’t have to install drivers or CUPS on client devices. Linux and Android support IPP out of the box. Just make sure your CUPS on the server is multicasting to the LAN.

    You may need to install Avahi on the server if it’s not already (that’s what does the actual multicasting). The printer(s) should then auto magically appear in the print dialogs on apps on Linux clients and in the printer service on Android.

    On Linux it may take a few seconds to appear after you turn it on and may not appear when it’s off. On Android it shows up anyways as long as the CUPS server is on.



  • short of all using the same wordpress or whatnot hoster, that is.

    That’s the thing, that’s common practice. It’s basically a given nowadays for shared web hosting to use one IP for a few dozen websites, or for a service to leverage a load/geo-balancer with 20 IPs into a CDN serving static assets for thousands of domains.





  • You should consider if you really want to integrate your application super tightly with the HTTP protocol.

    Will it always be used exclusively over a REST-ful HTTP API that you control, and it has exactly one hop to the client, or passes through hops that can be trusted to never alter the HTTP metadata significantly? In that case you can afford to make HTTP codes semantically relevant for your app.

    But maybe you need to pass data through multiple different types of layers and different mechanisms (socket protocols, pub-sub, file storage etc.) In that case you want all your semantics to be independent from any form of transport.


  • It’s a perfectly fine way of doing things as long as it’s consistent and the spec is clear.

    HTTP is a transport layer. You don’t have to use its codes for your application layer. It’s often done that way but it’s not the only way.

    In the example above the transport layer is saying “OK I’ve delivered your output” which is technically correct. It’s not concerned with logical errors inside what it was transporting, just with the delivery itself.