AUR. If it doesn’t exist on AUR (very unlikely, but happens sometimes), I make a package for it.
On non-arch distros, I often use LURE.
I fuck numbers.
AUR. If it doesn’t exist on AUR (very unlikely, but happens sometimes), I make a package for it.
On non-arch distros, I often use LURE.
Navidrome does that. I think you just used a bad frontend. Try Tempo if you’re using Android. Or Feishin on desktop.
I’ve been very happy with Navidrome. I have it accessible on a subdomain, so I can just use it from wherever I want. Feishin is a great frontend for Linux desktop, and Tempo is a great frontend for Android.
My friend uses Jellyfin instead of Navidrome, and he’s also happy with it. Both the frontends that I mentioned work with Jellyfin as well.
I’ve heard many people complain about DuckDNS. Personally use desec.io for DDNS and it’s been solid.
What I’ve realized in my (very limited) experience in selfhosting, it’s always best to use a general purpose server OS rather than anything geared to a specific usecase, unless that’s the only thing you’re gonna use it for. So, if you want a separate NAS drive, then it’s a good idea to use TrueNAS on it. But on your main server, it’ll be best to use some sort of RHEL downstream distro like AlmaLinux.
I use Syncthing and a bunch of rsync scripts to keep my machines in sync. The stuff I want synced continuously is handled by Syncthing. Other stuff is synced on a daily basis using the rsync scripts and anachron. For Photos, I use PhotoPrism. I simply sync the Photos from my smartphone to a folder and make PhotoPrism scan it on a regular basis using ofelia. For cameras, I need to copy the photos manually, but I don’t think there’s a way around that.
Don’t mean to necrobump. But I have Syncthing GUI working over a very similar setup. Let me know if you still need help setting it up.
I haven’t really done much recursion in Python, but can’t we do a tail-recursive version so that it (almost) never reaches recursion depth issues?
You’re pretty much right on the money. In Haskell, a String
is a type synonym for [
, so we can use the list concatenation function ]++
to join strings. ++
is an infix function i.e. [3,4,5] = [1,2,3,3,4,5]
(which will be equivalent to doing ] ++ [(++) [1,2,3] [3,4,5]
by virtue of how infix functions work in Haskell). When we do (++ "a")
, we create a partially applied function. Now, we can supply another string to it and it will add "a"
at the end of it.
iterate f x
produces a lazily evaluated sequence [
. So, to get the nth entry, we can do ]wine !! n
where we use another infix function !!
. With partial application, we can modify the definition of wine
to create a function that takes an Int
n and spits out the nth entry of it by doing
wine = (!!) $ iterate (++" Is Not an Emulator") "WINE"
We needed to wrap the !!
inside parentheses because it’s an infix function. just changes the order of application. (IIRC, it’s the least significant function.) You can think that we’re wrapping whatever’s on the right of the
by parentheses. Now we can do
wine 2
instead of wine !! 2
to get "WINE Is Not an Emulator Is Not an Emulator"
.
I’m by no means a Haskell expert. (I’m not even a professional programmer lol.) So, if someone would like to add some more details, they’re more than welcome.
Edit: A much more readable version might be
wine 0 = "WINE"
wine n = wine (n-1) ++ " Is Not an Emulator"
Sorry, I should’ve specified, it’s in Haskell. Idk where you tried running it.
wine = iterate (++" Is Not an Emulator") "WINE"
Some people are also building a reverse proxy using pingora called river.
Come on, it was right in their name. CrowdStrike. They were threatening us all this time.
For media, I host the some of the arr apps, qbittorrent, Jellyfin, gpodder2go, and navidrome. For personal photos, I host PhotoPrism. I host a file sharing service fileshelter, and a link shortening service chhoto-url. I host Wiki.js for mostly recipes, and some notes. I’ve recently started hosting Forgejo for my git repos. I also host SageMath for computation, it’s especially useful when I only have my phone with me and need to use it. I use caddy as a reverse proxy and serve these through a VPS using a Wireguard tunnel.
Idk, installing Linux was pretty easy 10 years ago too. Can’t comment about anything earlier than that though.
Then that’s actually against what was wanted. To get real certs, you have to open up the server to the internet.
Okay, I may be the stupid one here. But after a quick search, I don’t see an obvious way to generate self-signed certs using certbot. Even letsencrypt’s own website suggests using openssl.
To me, (and it seems for OP as well), installing snap on RHEL in itself is fucking things up.
I only use my own installer scripts with LURE, so I’m not sure about the safety of the publicly available repos. But the project itself seems to be pretty solid and reliable.