Aussie living in the San Francisco Bay Area.
Coding since 1998.
.NET Foundation member. C# fan
https://d.sb/
Mastodon: @dan@d.sb

  • 5 Posts
  • 627 Comments
Joined 1 year ago
cake
Cake day: June 14th, 2023

help-circle

  • dan@upvote.autoSelfhosted@lemmy.worldSoftware for manga/book reader
    link
    fedilink
    English
    arrow-up
    11
    ·
    edit-2
    11 hours ago

    Which OS?

    On Android, Moon+ Reader is pretty good.

    My wife uses the Amazon Kindle app on her Android tablet. You can use it for non-Kindle books by sending an email to a special email address for your Kindle account: https://www.amazon.com/sendtokindle/email.

    Calibre is useful for this. It shows an easy to use “send to Kindle” button, and can convert books in ePub, mobi, etc formats to the format that works best in the Kindle app (AZW3).

    If you want a web interface for Calibre (eg to run on a home server and download books when you’re away from your computer), Calibre-web works well.



  • dan@upvote.autoSelfhosted@lemmy.worldDNS?
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    2
    ·
    edit-2
    1 day ago

    A recursive DNS server and a local DNS cache/forwarder/are two different things with two different purposes. You will always need both.

    Why do you need two separate ones though? Recursive DNS servers also cache responses. Usually the only reason you’d run a local forwarder/cache is if you’re not running a local recursive server.


  • dan@upvote.autoSelfhosted@lemmy.worldDNS?
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    2 days ago

    Throw Unbound on there too as your upstream recursive resolver

    If you want to run your own recursive DNS server, why would you run two separate DNS servers?

    You don’t even need to worry about an encrypted session to your upstream anymore because your upstream is now your loopback.

    Your outbound queries will still be unencrypted, so your ISP can still log them and create an advertising profile based on them. One of the main points of DoH and DoT is to avoid that, so you’ll want them to be encrypted at least until they leave your ISP’s network.


  • dan@upvote.autoSelfhosted@lemmy.worldDNS?
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    edit-2
    2 days ago

    AdGuard Home is a better choice than PiHole since it uses DNS-over-HTTPS by default. There’s also an app called AdGuardHome-Sync to sync settings between multiple instances.

    I’d recommend running two DNS servers, and at least one of those separately from the rest of your infrastructure like on a Pi. That way, if you need to pull one of them offline, the internet still works.







  • it makes connecting to localhost as easy as http://0:8080/ (for port 8080, but omit for port 80).

    The thing is that it’s not supposed to work, so it’s essentially relying on undefined behaviour. Typing [::1]:8080 is nearly as easy.

    skimming through these PRs, at least for WebKit, I don’t see tests for shorthand IPs like 0 (and no Apple device to test with). What are the chances they missed those…?

    I haven’t seen the PRs, but IP comparison should really be using the binary form of the IPv4 address (a 32-bit number), not the human-friendly form.



  • From that RFC:

    0.0.0.0/8 - Addresses in this block refer to source hosts on "this"
    network.  Address 0.0.0.0/32 may be used as a source address for this
    host on this network; other addresses within 0.0.0.0/8 may be used to
    refer to specified hosts on this network ([RFC1122], Section
    3.2.1.3).
    

    (note that it only says “source address”)

    which was based on RFC 1122, which states:

    We now summarize the important special cases for Class A, B,
    and C IP addresses, using the following notation for an IP
    address:
    
        { <Network-number>, <Host-number> }
    
    or
        { <Network-number>, <Subnet-number>, <Host-number> }
    
    ...
    
    (a)  { 0, 0 }
    
    This host on this network.  MUST NOT be sent, except as
    a source address as part of an initialization procedure
    by which the host learns its own IP address.
    
    See also Section 3.3.6 for a non-standard use of {0,0}.
    

    (section 3.3.6 just talks about it being a legacy IP for broadcasts - I don’t think that even works any more)


  • Seems like a TCP/IP stack issue rather than a browser issue… 0.0.0.0 is not supposed to be a valid address (in fact, no IPv4 address with 0 as the first octet is a valid destination IP). The network stack should be dropping those packets.

    0.0.0.0 is only valid in a few use cases. When listening for connections, it means “listen on all IPs”. This is a placeholder that the OS handles - it doesn’t literally use that IP. Also, it’s used as the source address for packets where the system doesn’t have an IP yet (eg for DHCP). That’s it.




  • Dendrite is still in beta and isn’t feature-complete. I tried all three (Synapse, Dendrite and Conduit) and Conduit worked the best for me - I found it to be the most reliable and use the least amount of RAM. It also uses an embedded database (RocksDB) which makes setup a bit easier.

    I tried joining several large Matrix rooms from my server, and the experience with Synapse was dreadful. It was using 100% of one core for long periods of time. In some cases it would just fall over and not join the room. Dendrite and Conduit are better in that regard.

    Conduit’s weak point is its documentation. I had to read Synapse’s documentation to understand a few key concepts. I’ve been meaning to help write docs for Conduit but just haven’t had time. I’ve got a PR to improve the styling of the docs at least, but need to do some tweaks to it.