• 0 Posts
  • 272 Comments
Joined 10 months ago
cake
Cake day: December 6th, 2024

help-circle

  • Not to mention that the frequency of inspections even for the kind of planes amateur pilots fly is insane compared to cars.

    Something like a Cessna 152 (common single seat, single prop, plane) has in addition to the annual inspection another one every 100h of flight, plus of course before using it the pilot has to conduct a pre-flight inspection (which is mostly visual).

    Imagine if before starting your car you had to check that the steering wheel actually turns the wheels or that the brakes actually work and every 100h of use you have to take it to a mechanic for a more thorough inspection, plus the engine only lasts 30,000h and you have to replace it after that.


  • Yeah, I do the same thing.

    Curiously, the installer of my ISP - which is one of the smaller ISPs around here - says it’s very common for their clients to just want the ISP’s box to do bridging (or even just act as a Fiber-modem) and use their own router behind it.

    Guess the techies tend to flock to the more obscure ISPs that pretty much just provide “data pipe to the Internet” rather than use the big ISPs which tend to do stuff like push their own TV Boxes and even bundles of Home Internet + TV + Mobile.

    I am very happy with this ISP - cheap, fast, reliable, no bullshit.


  • My ISP does give my router a public IP.

    However my VPN provider does not give my client machines public IPs and instead gives them internal IPs.

    So from any machine in my home, my normal (via ISP) connection is via my own router (which does NAT for all machines in my home network and which I fully control) which has a public IP address on its external interface (so, no double NAT), whilst a VPN connection is via the VPN provider’s router (as that’s what’s on the other end of the VPN pipe) which also does NAT, but that router I don’t control and the VPN provider I use doesn’t allow Port Forwarding hence all the trickery I described above to make sure I actually seed more than I download.

    Around here ISPs giving internal addresses is not very common unless it’s on a mobile connection.





  • You should have pretty much everything on your router disabled for access from machines on the external network side of the router.

    The typical example is the web admin interface, which should never be enabled for access from outside, only for access from machines on your internal network. The same applies to all other sorts of control interface, be they human interfaces or machine interfaces.

    For any machines reaching it from the outside network interface the router should look the same as the most basic, dumbest router there is with no way to configure or control it.

    So, yeah, enabling uPnP for external use is asking to be hacked, probably worse even that enabling the web admin interface for external access since the latter usually has username:password authentication, which although pretty crap (most people don’t even know its there and leave it at default and when not it often has character limitations that make it guessable or possible to brute force) it’s still way better than NO AUTHENTICATION WHATSOEVER which is what uPnP has.


  • In a VPN your own machine sits behind a Router from the VPN provider in a NAT configuration (meaning that during VPN tunnel initialization that router gives your machine an IP address from one of the so-called “internal” IP address range - most commonly one in the 192.168.x.x range - which are NOT valid to have visible in the Internet) and which multiple machines all over the world sitting behind other routers can use at the same time (for example: even though it only has 254 valid addresses, there are probably millions of machines running right now with an IP address in the 192.168.1.x range, which is by far the most popular range of internal IP addresses).

    The IP address which is visible on the actual Internet has to be one which is not from an internal range or other kinds of special ones, and that’s the one that the VPN provider Router shows to the outside. (There are a few “tell me my IP address” websites out there which will let you know what that address is).

    This is also how home routers work in providing multiple machines in your home access to the internet even though its on a single ISP connection which has only one IP address valid for the Internet.

    To make all this work, such routers do something called NAT-Translation: connection requests from the INSIDE to the OUTSIDE go to the router, which changes ip:port information of those requests from the internal ip and a port in that machine to be the router external ip and a port the router has available, and then forwards the request the outside. The router also records this association between the external machine, the port the router used for it and the internal machine and the port on it the connection came from, on an internal table so that when the OUTSIDE machine connects to the router on that specific port, the router treats that inbound connection request as associated to the earlier outbound request and does the reverse translation - it forwards that inbound request to the internal machine and port of the original outbound connection.

    However - all this only works when your machine first connects from the inside to an machine on the outside, because that’s when the router translates the IP address and Port and memorizes that association. If however you gave the IP address in some other way to that remote machine other than connecting to it via the router (for example, you have registered a Domain Name pointing to it, or you just gave the IP address and port number to a friend and told them “this is my Jellyfin machine”), any connection coming from the outside will not be routed by the router to your machine, because the router never had an original outbound connection to make the association for any return inbound connections: from its point of view some random machine is trying to connect to one if its ports and it simply doesn’t know which internal machine and on which port on it is supposed to get this connection from that unknown external machine.

    Also all this is dynamic - after a while of one such association not being used, the router will remove it from memory.

    Port Forwarding is a static way to explicitly configure in a router that all connections arriving at a specific port of the router are ALWAYS to be forwarded to a specific internal machine and a specific port on that machine.

    Given that the association is static, you can give the outside world in any way you like without involving the router (for example, listing in some kind of shared list, which is what the Torrent protocol does), the IP of the router + the forwarded router port, as the address for a “service” that’s running on your internal machine, and any request coming from the outside on that port even if your machine never connected to that remote machine, ever gets forwarded to the internal machine and the port you configured there.

    With port forwarding you can for example host your own website behind a VPN or in a home machine that’s not directly connected to the internet because any requests coming into a specific port on the router that does have a direct connection to the internet always get forward to that machine and the port on it you configured.

    In the old days Port Forwarding had to be manually configured on the Router (for example, via a web-interface), but nowadays there is a protocol called uPNP that lets programs running on your machine automatically request that the router sets up a Port Forwarding for them so this is often done transparently, which how most networked applications sitting on a machine at home behind a home routers, work just fine since those routers always support port forwarding.

    PS: All this shit is actually one enormous hack, that only exists because IPv4 doesn’t have sufficient IP addresses for all Internet connected machines in the World. The newer IPv6 does have more than enough, so it’s theoretically possible that all your machines get a valid Internet IPv6 address and are thus directly reachable without any NAT on the router and associated problems. However I’m not sure if VPN provides which do support IPv6 actually have things set-up to just give client machines a direct, valid on the Internet IP address, plus a lot of protocols and applications out there still only work with IPv4 (byte . byte . byte . byte) addresses.



  • Unfortunately my VPN provider doesn’t support Port Forwarding (they’re great in everything else, but suck on this) so if I just start seeding from scratch no peers will ever manage to connect to my machine. The only way I can contribute back to the community is when a Download session ends and starts seeding (basically all those peers that my machine checked during the download stage get recorded in the VPN’s Router NAT as associated with my machine so if they try to connect to my machine later, for example to download a block, they get through), so my torrents are just left to seed after downloading (if I stop it and start seeding later, it might not work anymore depending on how long has passed).

    Fortunatelly I have a fast internet connection and torrenting is done in a server machine, so I just leave it setup to a 2:1 seeding ratio for as long as it takes to get there and pretty much all torrents I download reach that seeding ratio (it pretty much only fails to reach that on really obscure torrents with very small swarms).

    I’ve been sailing the high seas for over 3 decades and long ago saw the importance of doing my bit to keep the whole ecosystem alive.

    So I might not be seeding everything I have (and as it’s been 3 decades, I do have some stuff which is now very obscure), but everything I get from the community I seed 2x as much so that others can get it too.



  • Proton is integrated with the Steam app in Linux, so usually you just install the game and then run it from Steam and it just works in Linux even though it’s a Windows game, without you having to know anything about Proton.

    Similarly you can use something like Lutris or Heroic which does the same for Wine and game stores like GOG (it’s even integrated with the store and downloads the game for you, same as the Steam app does for the Steam store).

    For some games you might have to learn enough to tweak settings, though for Steam and Proton that’s often just changing the Proton version you’re using for a game in its game launch settings in Steam, which is hardly complicated.

    The need to really understand what’s under the hood is generally only when leaving these standard paths: for example if you’re trying to run a pirated version of a game (which might even be for perfectly legit reasons: for example one of my Steam games won’t run in Linux no matter what I do, but the pirated version works fine, probably because of the DRM in the official version) or some old obscure game CD you have around, as the scripts in Steam, Lutris or Heroic that silently configure Proton/Wine correctly for a game might not at all exist for those unofficial or older installers.



  • It’s not the AIs which are crap, its what they’ve been sold as capable of doing and the reliability of their results that’s massivelly disconnected from reality.

    The crap is what a most of the Tech Investor class has pushed to the public about AI.

    It’s thus not at all surprising that many who work or manage work in areas were precision and correctness is essential have been deceived into thinking AI can do much of the work for them and it turns out AI can’t really do it because of those precision and correctness requirement that it simply cannot achieve.

    This will hit more those people who are not Tech experts, such as Lawyers, but even some supposedly Tech experts (such as some programmers) have been swindled in this way.

    There are many great uses for AI, especially stuff other than LLMs, in areas where false positives or false negatives are no big deal, but that’s not were the Make Money Fast slimy salesmen push for them is.



  • I had to do this myself at one point and it can be very frustrating.

    It’s basically the “tech makes lots of money” effect, which attracts lots of people who don’t really have any skill at programming and would never have gone into it if it weren’t for the money.

    We saw this back in earlier tech booms and see it now in poorer countries to were lots of IT work has been outsourced - they still have the same fraction of natural techies as the rest but the demand is so large that masses of people with no real tech skill join the profession and get given actual work to do and they suck at it.

    Also beware of cultural expectations and quirks - the team I had to manage were based in India and during group meetings on the phone would never admit if they did not understood something of a task they were given or if there was something missing (I believe that it was so as not to lose face in front of others), so ended up often just going with wrong assumptions and doing the wrong things. I solved this by, after any such group meeting, talking to each member of that outsourced team, individually and in a very non-judgemental way (pretty much had to pass it as “me, being unsure if I explained things correctly”) to tease from them any questions or doubts, which helped avoid tons of implementation errors from just not understanding the Requirements or the Requirements themselves lacking certain details and devs just making assumptions on their own about what should go there.

    That said, even their shit code (compared to what us on the other side, who were all senior developers or above, produced) actually had a consistent underlying logic throughout the whole thing, with even the bugs being consistent (humans tend to be consistent in the kind of mistakes they make), all of which helps with figuring out what is wrong. LLMs aren’t as consistent as even incompetent humans.


  • If the post was about themselves, saying “I am queer” is fine IMHO (as would’ve been to say “I am straight” or imply it for example by saying “I’m a man” and “I have a wife”) as that’s about that person so sharing what they feel defines them as person is the whole point and restricting mentions of one’s sexual orientation there is at best idiotic.

    Had it been on a post about something Canonical or Ubuntu, in my view mentioning one’s sexual orientation would probably not have been appropriate, mainly because it would be raising an irrelevant and (sadly, in the present day) ideologically charged subject, same as it would be inappropriate to mentioning one’s political allegiance in the same context.

    All in all I hope the moderator who made that mistaken moderation action has been taught the difference and been alerted to how their own internal biases are leaking into the professional sphere, which they shouldn’t.


  • I see, with your clarification that does make more sense.

    Frankly I would’ve rather have avoided Intel because, well, they’re Intel, but from what I saw when I looked around, the N100 was an x86 designed for that kind of use, had far more computing power than the dissapointing cheap ARM based Android TV boxes I had tried before (I’ve been using TV Boxes for since well before they were common and the last one was so old that it couldn’t handle newer media anymore, so I started looking around and first tried replacing with with a cheap Android TV box) and I could get a Mini-PC for roughly the same price as a good Android TV box for making my own thing fully under my control (i.e. Linux with my chosen media player and services, rather than a closed Android riddled with bloatware), so I went for it and am happy with the result.

    As for desktop environment, in practice the thing just runs Kodi all the time as the frontend, hence is perfect for controlling with a remote, like the one I linked in my original post. Any linux style kind of management I do remotelly from another computers, either from the command line via SSH or via web interfaces. In practice whilst I do have a keyboard and mouse connected to it, they’re very rarelly used.

    I later found out that using LibreELEC (a whole Linux distro meant specifically for use as a TV box were Kodi is the frontend) would probably have been an optimal choice for a TV box rather than starting from a light ubuntu variant and customizing it myself, plus LibreELEC would’ve worked just as well on an ARM based SBC (something like an Orange Pi 3) which would’ve been cheaper and would’ve used even less power. That said, I had intended from he start to hang more services from that box (for example, I wanted to replace the NAS “solution” I had in place using my router, which only supported SMBv1) so starting from a more generic Linux distro probably made more sense that using a TV Box specific light distro.

    The thing is a bit of a Frankenstein monster on the inside but doesn’t at all look like it when used in my living room to play media on the TV.


  • If the thing is not meant to use as a Desktop, why load it with heavier applications that aren’t delivering anything useful?

    No matter how efficient a core is at most tasks, it can’t beat the power savings of not actually running needless code.

    My homemade TV Box isn’t running a lightweight desktop because I had to “limit myself”, it’s running one because I’m not losing anything by not having that which I don’t use and if that even just saves a few Watts a week, it still means I’m better off, which is satisfying as I like to design my systems to be efficient.

    For fancy Linux Desktop things I have an actual Desktop PC with Linux - the homemade TV Box on my living room is only supposed to let me watch stuff on TV whilst I sit on my sofa.

    Further, there are more than one form of efficiency - stuff like the N100 (and even more, the ARM stuff) are designed for power consumption efficiency, whilst desktop CPUs are designed for ops-per-cycle efficiency, which are not at all the same thing: being capable of doing more operations per cycle doesn’t mean something will consume less power in doing so (in fact, generally in Engineering if you optimize in one axis you lose in another) it just means it can reach the end of the task in fewer cycles.

    For a device that during peak use still runs at around 10% CPU usage, having the ability to do things a little faster doesn’t really add any value.

    Even the series 4000 Zen2 being more optimized for power consumption is only in the context of desktop computers, a whole different world from what the N100 (and even more things like ARM7) were designed to operate in, which is why the former has a TDP of 140W and the latter of 15W (and the ARMs are around 6W). Sure the TDP is a maximum and hence not a precise metric for a specific use case such as using something as a TV Box, but it’s a pretty good indication of how much a core was optimized for power consumption, and 15W vs 140W is a pretty massive distance to expect that any error in using TDP to estimate how the power consumption of those two in everyday use as a TV Box compares would mean that the CPU with 140W TDP consumes less than the one with 15W.

    PS: All that said, if the use case was “selfhosting” rather than “TV Box (with a handful of lightweight services on the side)”, you suggestion makes more sense, IMHO.