

Cool stuff! For future projects, you might want to check out Typer, as it’d save you a bunch of the boilerplate and supports things like tab completion too.
Canadian software engineer living in Europe.


Cool stuff! For future projects, you might want to check out Typer, as it’d save you a bunch of the boilerplate and supports things like tab completion too.


Don’t do it. AI makes you stupid, and using it for school is counterproductive.


My girlfriend’s dad had hundreds of movies on VHS, pirated from cassettes he’d rented in the past and copied at home by chaining two VCRs together over coaxial cable.
Software was wild pre-internet. My buddy had Windows 95 on 42 3¼" floppies that we copied onto additional sets of 42 floppies that we kept in heavy boxes and then painstakingly installed onto computers belonging to friends and family around the neighbourhood.
I also had a whole bunch of audio cassettes that contained music I dubbed from radio, other cassettes, and later CDs (burning your own was at first, impossible, and later, expensive).
I’m 46.


I’ve used FluxCD in the past and have looked into ArgoCD, but honestly, I’ve not seen any big benefit from either to be honest. I use k8s both at home and at work, and in both cases, we do “imperative” deploys: you run helm install ... either directly or via the CI and stuff is deployed.
So for example at my last job, our GitLab CI just had a section triggered exclusively for merges into master that ran helm install ... for all three environments. We had three values.yaml files, one for each environment, and when we wanted to deploy a new version, the process was:
1.2.3) and push it to the repo. This would trigger a build and push the resulting image into the container registry.1.2.3 to development but not yet to staging or production, then the tag: value in each of the environment files would look like this:k8s/chart/environments/development.yaml: tag: 1.2.3k8s/chart/environments/staging.yaml: tag: 1.2.2k8s/chart/environments/production.yaml: tag: 1.2.2Once that change is pushed, the CI will automatically apply it with helm install ... and make sure that all three environments are what they’re supposed to be.
As for dependent services, that should all be in your Helm chart so they’re stood up and torn down together. The specific case you mention about “Service A” being dependent on “Service B” but stood up before “Service B” is ready is a classic problem, but easily solved:
The dependent service (“A” in this case) should have an entrypoint that checks for everything else before starting. Here’s what I’m using right now in a project:
#!/bin/sh
while ! nc -z "${POSTGRES_HOST}" 5432; do
echo "Waiting for postgres..."
sleep 0.1
done
echo "PostgreSQL started"
touch /tmp/ready
exec "$@"
I’ve even got some code that checks that all the Django migrations have run first for the same situation. The Kubernetes philosophy is that any container should be able to die at any time and be eventually be brought back up and that every container needs to be prepared for this. Typically this means that your containers should operate on the basis of “if I can’t work, die, and hope the problem is solved by the time Kubernetes redeploys me”.


Kubernetes. For a homelab, the stripped-down k3s is fantastic and surprisingly easy to get going.
Once you’ve got Kubernetes set up, you can lean on all the many tools already out there for things like deploying complex projects (Helm) and monitoring (Prometheus/Grafana). OpenLens is a nice piece of software you can use to monitor and control your cluster too, as is k9s.


As this is a new project, have you considered hosting your code somewhere other than GitHub? Codeberg and GitLab are similarly user-friendly platforms without the many downsides of supporting Microsoft.
A platform that’s down 10% of the time and that now has a reputation of locking people out of their accounts without reason for weeks at a time cannot, under any definition of the word, be considered “stable”.
I just… don’t get it. This whole community, we’re supposed to be building stuff for ourselves and each other, and for some reason people keep going to bat for a company that demonstrably holds every one of us in contempt.
Just… stop using their shitty tools already.
Why hasn’t he migrated to something more stable?


Don’t be that guy.


I imagine it’d be a case of: “scan this food that I just made by hand, store its structure, and replicate that exactly later”.
So the replicator could make Grandma’s soup for you, but it would always be exactly how Grandma made it that one time.


Yeah I’ve always been frustrated with this trope. Somehow, we’re expected to believe that a technology capable to creating and assembling all the atoms in a chocolate sundae is incapable of modifying the recipe.
In my head cannon I’ve always understood this to mean that the replicated food is “too perfect” and lacks the human imperfection/variation you get with real cooking.


This “1000 words to conversational” sourdough sounds really good to me. Thanks for sharing!


Oh I didn’t know this was available in Codeberg! Thanks for sharing.
I know it’s supposed to be a joke how a nerd will spend six hours writing a script to automate a 30second task but… it’s not really funny.
Working with less-experienced developers, I’m amazed at how slow everything is for them: No keyboard shortcuts, no automated scripts, just slow, plodding mouse-driven tinkering.
Automation, shortcuts, and scripting drive your ability to iterate and therefore learn.
Train your fingers, and spend those hours automating repetitive stuff. It’s worth it.


It’s true. They’re for-profit, so the motivations are still there. Fragmentation helps a lot though. If a third of us move to one, and another third to the other, that would cripple any party’s ability to enshittify.


That’s a worthy goal, but the problem isn’t so insurmountable that we have to wait for some theoretical new feature to be available and adopted. There are three dominant players out there, one of which has demonstrated a willingness to screw everyone and the “it’s not perfect yet” excuse is getting pretty thin.
Switch to Codeberg today and there’s a good chance that this federated login will be supported there when/if it’s ever available. GitLab could do it too, and moving there will give you a bunch of nice things you don’t even get in GitHub let alone Codeberg.
But it’s long passed time to move. Microsoft has stolen our code to feed into their slop machine and enshittified the platform. Sticking around because a perfect alternative isn’t available only serves to harden the network effect that keeps GitHub dominant.


What is it going to take to push FLOSS software out of GitHub? Everyone here can move their projects literally anywhere else today. I did it for my own (roughly 10 projects) five years ago and it only took about an hour:
I couldn’t abide such a wall of text, so I reformatted everything into a Markdown table: