This action will delete this post on this instance and on all federated instances, and it cannot be undone. Are you certain you want to delete this post?
This action will delete this post on this instance and on all federated instances, and it cannot be undone. Are you certain you want to delete this post?
This action will block this actor and hide all of their past and future posts. Are you certain you want to block this actor?
This action will block this object. Are you certain you want to block this object?
Are you sure you want to delete the OAuth client [Client Name]? This action cannot be undone and will revoke all access tokens for this client.
Are you sure you want to revoke the OAuth token [Token ID]? This action cannot be undone and will immediately revoke access for this token.
| Websites | https://jayvii.de |
|---|---|
| Introduction | https://social.jayvii.de/introduction |
| jayvii+social [AT] posteo [DOT] de | |
| Languages | DE / EN |

I've been in the fediverse since 2017 already, however with the recent growth in users and the switch to my own instance, I figured it is time for an #introduction.
I am a #Statistician and #DataScientist from Germany. I am also passionate about Free and #OpenSource #Software and am deeply involved in hosting, developing and advocacy of privacy friendly FOSS tools.
Besides above two topics, I share posts & ramble myself about #politics in Germany and the EU, #feminism, #veganism, #selfhosting, #rstats, #linux and whatever is currently happening. Posts are typically in English, shares are often in German as well.
If you have further questions, you are free to ask any time. You can find further contact info (incl. PGP) on my website https://www.jayvii.de

Still using fail2ban just for stopping SSH brute force attempts? Since OpenSSH 9.8 there is a new config option for sshd_config: PerSourcePenalties This option has several parameters where you can define how long a client, based on its IP address, will be blocked, according to the unwanted behaviour. The most important parameters are:
There is also PerSourcePenaltyExemptList, which is a comma-separated list of addresses to exempt from penalties.
As you can see the default values are quite lax. Let's tighten the rules a bit:
The resulting sshd_config snippet looks like this (for OpenSSH 10.3 and newer)
MaxAuthTries 3
PerSourcePenalties crash:3600s invaliduser:300s authfail:3600s max:86400s
Since OpenSSH 10.3 is quite new (released on 2026-04-02), most Linux users would want to omit the invaliduser parameter:
MaxAuthTries 3
PerSourcePenalties crash:3600s authfail:3600s max:86400s
This makes tools like fail2ban quite obsolete, if it is used in an default setup just for blocking SSH brute force attempts. Of course, if you're using them in more complex scenarios and not only for SSH, these tools are still useful.

Perhaps one of the most frustrating things about the usage of AI is, people are being pushed into it in order to poorly address previously-solved problems (e.g. web search) which have been taken away from us. I don't want ChatGPT, I want a search engine that gives me the results I requested and not what advertisers want on my eyeballs.

If you don’t have the resources to write and understand the code yourself, you don’t have the resources to maintain it either.
Any monkey with a keyboard can write code. Writing code has never been hard. People were churning out crappy code en masse way before generative AI and LLMs. I know because I’ve seen it, I’ve had to work with it, and I no doubt wrote (and continue to write) my share of it.
What’s never been easy, and what remains difficult, is figuring out the right problem to solve, solving it elegantly, and doing so in a way that’s maintainable and sustainable given your means.
Code is not an artefact, code is a machine. Code is either a living thing or it is dead and decaying. You don’t just write code and you’re done. It’s a perpetual first draft that you constantly iterate on, and, depending on what it does and how much of that has to do with meeting the evolving needs of the people it serves, it may never be done. With occasional exceptions (perhaps? maybe?) for well-defined and narrowly-scoped tools, done code is dead code.
So much of what we call “writing” code is actually changing, iterating on, investigating issues with, fixing, and improving code. And to do that you must not only understand the problem you’re solving but also how you’re solving it (or how you thought you were solving it) through the code you’ve already written and the code you still have to write.
So it should come as no surprise that one of the hardest things in development is understanding someone else’s code, let alone fixing it when something doesn’t work as it should. Because it’s not about knowing this programming language or that (learning a programming language is the easiest part of coding), or this framework or that, or even knowing this design pattern or that (although all of these are important prerequisites for comprehension) but understanding what was going on in someone else’s head when they wrote the code the way they wrote it to solve a particular problem.
It frankly boggles my mind that some people are advocating for automating the easy part (writing code) by exponentially scaling the difficult part (understanding how exactly someone else – in this case, a junior dev who knows all the hows of things but none of the whys – decided to solve the problem). It is, to borrow a technical term, ass-backwards.
They might as well call vibe coding duct-tape-driven development or technical debt as a service.
🤷‍♂️

Well, TIL that you can pipe tar directly into ssh. Need to play around with that a little. Maybe it overcomes the requirement to have enough space for a giant tar file on the host?

“On The Enshittification of Audre Lorde: "The Master's Tools" in Tech Discourse”
https://tarakiyee.com/on-the-enshittification-of-audre-lorde-the-masters-tools-in-tech-discourse/
> Read against the speech itself, Lorde's argument seems less concerned with whether antitrust law can break up monopolies and more with whose knowledge counts, who gets to define the problem, and what gets systematically erased when liberation movements reproduce the exclusions of the systems they are opposing.


LLMs do not "democratize programming". A 4-year-old can learn to program. LLMs throw up stupid barriers by convincing you that you can't learn to program and you have to rely on whatever shit the bobot spits out. Every asshole that says that AI "democratizes" fucking anything is trying to scam you.

In an attempt to use my smartphone a lot less, I am currently trying Newsboat's Podcast integration and a slim script I hacked together this morning. It automatically fetches podcast episodes, downloads and pushes them to the MP3-Player I bought a few months ago for taking to the gym.
It is of course a little bit more clunky than simply using Antennapod on my smartphone, but honestly, it is a quite smooth and pleasant experience nonetheless. Let's see how this goes for a few weeks.


For many people, the #Linux vs #Windows vs #Mac debate is a privilege — it assumes you can choose. But working with the Computer Upcycle Project, I've seen the real choice is often Linux vs no computer at all.
~95% of donated computers are "too old" for Windows 11 or macOS. Linux installs on them anyway, adding 10+ years of life to machines #Microsoft and #Apple called trash.
This isn't Linux vs Windows. It's Linux vs e-waste.

Perfekter Zeitpunkt, um die Miniserie "Adolescence" zu empfehlen.
Im Zentrum steht ein 13-jähriger, der verdächtigt wird, eine Mitschülerin getötet zu haben.
Es geht um die Auswirkungen von Patriarchat & Frauenfeindlichkeit, um Online-Radikalisierung, toxische Männlichkeit, die Incel-Bewegung & die Konsequenzen, die all das für Jungen & Mädchen hat.
Die schauspielerischen Leistungen sind legendär, der One-Shot-Dreh pro Folge ebenso, die Intensität kaum aushaltbar & erschütternd.