I take my shitposts very seriously.

  • 40 Posts
  • 2.58K Comments
Joined 2 years ago
cake
Cake day: June 24th, 2023

help-circle


  • rtxn@lemmy.worldtoSelfhosted@lemmy.worldVPN server on router or within home network?
    link
    fedilink
    English
    arrow-up
    8
    arrow-down
    1
    ·
    edit-2
    10 hours ago

    Tailscale. It does some UDP fuckery to bypass NAT and firewalls (most of the time) so you don’t even need to open any ports. You can run it on individual hosts to access them directly, and/or you can set it up on one device to advertise an entire subnet and have the client work like a split tunnel VPN. I don’t know about OpenWRT, but both pfSense and OpnSense have built-in Tailscale plugins.

    People are freaking out about their plan to go public, but for the moment, it’s a reliable, high quality service even on the free tier.

    I’ve also used Ngrok and Twingate to access my LAN from outside, but they simply use relay servers instead of Tailscale’s black magic fuckery.




  • rtxn@lemmy.worldMtolinuxmemes@lemmy.worldNever go full cringe
    link
    fedilink
    arrow-up
    5
    arrow-down
    1
    ·
    edit-2
    3 days ago

    I’ve been learning Rust by going through The Book… there’s some wack-ass syntax in that language. I’ve mostly used C# and Python so most of it just looks weird… I can more or less understand what while let Some((_, top)) = iter.next() { ... } is doing, but .for_each(|((_, _, t), (_, _, b))| { ... } just looks like an abomination. And I mean the syntax in general, not this code in particular.



  • rtxn@lemmy.worldto196@lemmy.blahaj.zonejob rule
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    7
    ·
    3 days ago

    Fuck university. Pick up a trade and get industry certifications. You’ll end up with real marketable skills without going into crippling lifelong debt. Some training agencies also offer help to find jobs. If you get lucky, your employer might even sponsor your education.

    Tradie life is not glamorous, but it’s better than working as a cashier while having a bachelor’s.



  • rtxn@lemmy.worldMtolinuxmemes@lemmy.worldThe end is near
    link
    fedilink
    arrow-up
    23
    arrow-down
    2
    ·
    4 days ago

    I’ll just copy my comment from the other day.


    Some people think it handles too many low-level systems. It’s a valid concern because if systemd itself were to become compromised (like Xz Utils was) or a serious bug was introduced, all of the userland processes would be affected. People who are stuck in the 90s and think that the Unix philosophy is still relevant will also point out that it’s a needlessly complex software suite and we should all go back to writing initscripts in bash. The truth is, it’s complex because it needs to solve a complex problem.

    Red Hat, the owner of systemd, has also had its fair share of controversies. It’s a company that many distrust.

    Ultimately, those whose opinion mattered the most decided that systemd’s benefits outweigh the risks and drawbacks. Debian held a vote to determine the project’s future regarding init systems. Arch Linux replaced initscripts because systemd was simply better, and replicating and maintaining its features (like starting services once their dependencies are running) with initscripts would’ve been unjustifiably complicated.


  • AI would be chronically incapable of implementing actually surprising plot twists that are both unexpected and consistent with the rest of the plot (and not somehow someone back into existence). If it hadn’t been written before, an AI would never make Darth Vader be Luke’s father unless specifically prompted, at which point, why even.

    (I’ve just finished a hexalogy marathon, my head is full of jedi.)


  • Some people think it handles too many low-level systems. It’s a valid concern because if systemd itself were to become compromised (like Xz Utils was) or a serious bug was introduced, all of the userland processes would be affected. People who are stuck in the 90s and think that the Unix philosophy is still relevant will also point out that it’s a needlessly complex software suite and we should all go back to writing initscripts in bash.

    Red Hat, the owner of systemd, has also had its fair share of controversies. It’s a company that many distrust.

    Ultimately, those whose opinion mattered the most decided that systemd’s benefits outweigh the risks and drawbacks. Debian held a vote to determine the project’s future regarding init systems. Arch Linux replaced initscripts because systemd was simply better, and replicating and maintaining its features (like starting services once their dependencies are running) with initscripts would’ve been unjustifiably complicated.





  • I meant games that had tutorial videos built into them. Stuff like Syphon Filter; a rushed, poorly voiced video that lists your controls and tosses you into the mission. The player is told what does what and isn’t given a chance to learn how to interact with the world.

    Soul Reaver 1’s first 20 minutes is what every game should be aiming for. You learn how to navigate the world, how health and the spectral/material realms work, how to solve the combat puzzles, and more importantly, how those systems interact; then you’re on your own. If a game needs the help of extrenal resources to convey such basic information, it’s a failure of game design. Not necessarily out of incompetence but because game design principles hadn’t evolved to that point.

    I’m not against external (including physical) resources, iff they’re used in a clever way. Shenzhen IO has a thirty-page manual themed as actual technical documentation about the electronics used in the game. Through this, the manual becomes part of the game. Same for Keep talking and nobody explodes. Volo’s Guide to Baldur’s Gate is a fantastic example of presenting supplemental information that is good to know but isn’t a roadblock in its absence. If a manual improves the game experience, it’s good material. If it’s necessary to make a game playable, it’s bad design.




  • Ansible is an abstraction layer over system utilities, shell, and other programs. You can specify what you want to happen, and it will figure out how to do it. For example, you can use the ansible.builtin.package module to specify which packages you want to be present, and Ansible will decide which specific package manager module should handle it and how.

    Ansible tasks are also idempotent – they are concerned with the end state instead of the action. Many of the modules (like the package module above) take a state parameter with the possible values of present or absent (instead of the more common “install” and “remove” actions). If the system’s state satisfies the task’s expected end state (e.g. the package is already present), the task will be skipped – unlike a shell script, which would simply re-run the entire script every time.

    Ansible also implements strict error checking. If a task fails, it won’t run any subsequent tasks on the host since the end states would be unpredictable.