• 0 Posts
  • 36 Comments
Joined 1 year ago
cake
Cake day: November 23rd, 2024

help-circle





  • I am one of those happy taskwarrior users. For more advanced recurrence syntax in taskwarrior there’s also the relatively new nautical extension. It essentially splits recurrence into things that recur based on calendar/clock events (e.g. every first workday of the month, every second Sunday, etc.) or based on previous completions (e.g. do something 3 days after last time, or every x hours after last doing it).

    It’s pretty neat and functional but, fair warning, also early on in development and changing quite radically through its versions still.




  • Very happy you had fun making the little script! One thing that will become important pretty quick if you continue making these scripts is that it’s almost always better to wrap your variables in quotes - so it becomes yt-dlp -x “$a. It’s okay here but if you ever paste something that has a space in it, this will keep it together ‘as one’.

    If you want to expand your knowledge with this, some fruitful paths to go down are the following:

    • can you find a way to download multiple urls one after the other if you paste them all at once? (Multiple arguments)
    • can you find a way to ask the user for these multiple urls one after the other? (loops)
    • and can you find a way to have it ask until you hit enter without a url pasted and only then it starts? (conditionals and test)

    The last one is already quite a bit advanced but if you can do that you have enough of the ‘programming’ basics of the shell down to a degree that you can create many little helpers like this with ease.

    Of course don’t feel forced to do any of that - if you’re happy with the improvement as-is, that’s all you need to enjoy the fun of Linux!



  • It uses a completely different paradigm of process chaining and management than POSIX and the underlying Unix architecture.

    I think that’s exactly it for most people. The socket, mount, timer unit files; the path/socket activations; the After=, Wants=, Requires= dependency graph, and the overall architecture as a more unified ‘event’ manager are what feels really different than most everything else in the Linux world.

    That coupled with the ini-style VerboseConfigurationNamesForThatOneThing and the binary journals made me choose a non-systemd distro for personal use - where I can tinker around and it all feels nice and unix-y. On the other hand I am really thankful to have systemd in the server space and for professional work.






  • The code forge is gitea/forgejo, and the proxy in front used to be traefik. I tried fail2ban in front for a while as well but the issue was that everything appeared to come from different IPs.

    The bots were also hitting my other public services pretty hard but nowhere near as bad. I think it’s a combination of 2 things:

    • most things I host publicly beside git are smaller or static pages, so quickly served and not draining resources as much
    • they try to hit all ‘exit nodes’ (i.e. links) off a page, and on repos with a couple hundred+ commits, with all the individual commits and diffs that are possible to hit that’s a lot.

    A small interesting observation I made was that they also seemed to ‘focus’ on specific projects. So my guess would be you get unlucky once by having a large-ish repo targeted for crawling and then they just get stuck in there and get lost in the maze of possible pages. On the other hand it may make targeted blocking for certain routes more feasible…

    I think there’s a lot to be gained here by everybody pooling their knowledge, but on the other hand it’s also an annoying topic and most selfhosting (including mine) is afaik done as a hobby, so most peeps will slap an Anubis-like PoW in front and call it a day.


  • I’m providing hosting for a few FOSS services, relatively small scale, for around 7 years now and always thought the same for most of that time. People were complaining about their servers being hit but my traffic was alright and the server seemed bulky enough to have a lot of buffer.

    Then, like a month or two ago, the fire nation attacked the bots came crawling. I had sudden traffic spikes of up to 1000x, memory was hogged and the CPU could barely keep up. The worst was the git forge, public repos with bots just continuously hammering away at diffs between random commits, repeatedly building out history graphs for different branches and so on - all fairly intense operations.

    After the server went to its knees multiple times over a couple days I had to block public access. Only with proof of work in front could I finally open it again without destroying service uptime. And even weeks later, they were still trying to get at different project diffs whose links they collected earlier, it was honestly crazy.