Maybe an unpopular opinion, but I think if you’re not sure if you need microservices, then you don’t need microservices. I’ve had to clean up too many overengineered systems to be convinced otherwise.
- 0 Posts
- 144 Comments
folekaule@lemmy.worldto
Technology@lemmy.world•Man Hires Swarm of AI Agents to Go on Epic Hacking Spree Against Major CompaniesEnglish
46·4 days agoLooks like this may be the original source. It’s about two articles deep from OP.
folekaule@lemmy.worldto
Programming@programming.dev•What can you actually do with programming?
36·21 days agoMy back hurts typing this, but… back when I was young there was a whole community called the “scene” to explore just that question. The demoscene is still alive, but it’s perhaps a little more mainstream and “clean” than it used to be? Anyway, people are still cranking out awesome demos that explores the question: what can we do with programming? There are tons of YouTube videos of demos, old and new, but here is a video that talks about the scene and the history behind it.
folekaule@lemmy.worldto
Technology@lemmy.world•Court Finds That Using Copyrighted Material as AI Training Data Is Not Fair Use: Could this be the moment copyright holders have been waiting for?English
4·22 days agoImmediately made me think of Betteridge’s law of headlines.
I will remain cautiously optimistic but until it makes it through Supreme Court it’s not a done deal.
I wonder what the sampling/reporting issue is? Why Chinese specifically? Are there droves of Chinese gamers flip-flopping between Linux and Windows? That doesn’t seem likely.
folekaule@lemmy.worldto
Programming@programming.dev•How do you handle cron jobs that depend on flaky external APIs?
4·1 month agoTwo ways I’ve handled this. If you have some orchestrator, like kubernetes, you can use the job feature to retry. In that case you just let the script exit with error status.
If we’re staying with just cron and shell scripts, look at using flock(1) with timeout in a bash script (example). You can create a lock to prevent multiple copies running and it cleans up automatically. You can combine this with time-stamped files to enforce a minimum amount of time since last run, or whatever you like.
I prefer having the retry handled outside the job itself, but I’ve used both approaches. I’ve grown to prefer separating the code for “doing the thing” from the code for “orchestrating the thing”, but it depends on what environment it runs in, how critical it is, and how who else may be supporting it.
Finally, set up something to monitor it and alert you if it hasn’t run successfully for some time.
folekaule@lemmy.worldto
Selfhosted@lemmy.world•Is Authelia enough without fail2ban or crowdsec?English
12·1 month agoFail2ban is just another tool in your toolbox. Defense in depth, as others mentioned.
Fail2ban is primarily a tool to prevent brute force attacks, especially useful for services that don’t do their own throttling. For example I usually put ssh in fail2ban, but if Authelia’s built-in protection is good enough, then use that.
Outside ssh, anything that could be used to brute force credentials should be in fail2ban if they’re exposed: web sites with simple auth, mail, etc.
folekaule@lemmy.worldto
Linux Gaming@lemmy.world•Is Linux on a laptop with an Intel Processor + an NVidia GPU still the absolute fucking nightmare it was 10 years ago?English
3·2 months agoI installed CacyOS on my MSI laptop with Nvidia m2060 + igpu and Intel CPU a couple of months ago. I can play genres through Steam just fine. It performs better than it did on Windows 11.
I’ll be honest, I was amazed I had no issues getting it running. CachyOS has sone great tools to set things up and their wiki is excellent. I just followed the steps in there to set up GPU switching. I disabled secure boot, since that can get in the way of drivers loading, but they have instructions for that as well.
Wi-Fi worked out of the box. I even have a luks encrypted root.
The main issue I had was MSI specific hardware, like battery charging control, normally managed by the Dragon Center. I found an open source replacement for that.
I can’t speak to the battery performance since I always use it plugged in. It’s a few years old so it’s probably not great anyway.
Your mileage may vary. It’s probably going to be more off a struggle with hardware specific to the model of laptop rather than Nvidia.
folekaule@lemmy.worldto
Programming@programming.dev•Beyond Lambdas: Raising the Abstraction Level of Functional Code
2·2 months agoYes, but Perl 5 did not, except for constant functions. Either way, the effect of that was outweighed by several orders of magnitude by the rest of the WTFs in that code.
All that is a bit beside the point I was trying to make, which is write readable code.
Use your own judgement to find a balance between readability and performance. Use profiling tools to find hotspots where performance is a concern and optimize those. Base your practices on evidence not dogma.
folekaule@lemmy.worldto
Programming@programming.dev•Beyond Lambdas: Raising the Abstraction Level of Functional Code
4·2 months agoYeah there is some overhead with a function call, but for our use case (low-traffic web and batch jobs) that wasn’t a big deal. And the rest of their code wasn’t exactly tuned for performance either.
Yes, it was the dogmatic approach to it that was the most infuriating.
folekaule@lemmy.worldto
Programming@programming.dev•Beyond Lambdas: Raising the Abstraction Level of Functional Code
22·2 months agoI once, many years ago, worked with a programmer who had a strict rule of not introducing any functions unless the block of code was used at least twice.
Every code base they were the main developer on had source files thousands of lines long with if-statements nested to the 9 levels of hell.
We worked mostly in Perl and Deplhi (Pascal). Reading old code was… interesting. It’s wild when your Perl code is more readable than your Pascal.
I’m happy to say I don’t work with them anymore.
So yeah, break things into functions and name your functions and variables sensibly. Your future self will thank you.
folekaule@lemmy.worldto
Technology@lemmy.world•Paint.NET now supports WINE/LinuxEnglish
10·2 months agoThe “what about second breakfast” meme comes to mind. Thanks for clearing that up!
folekaule@lemmy.worldto
Technology@lemmy.world•Paint.NET now supports WINE/LinuxEnglish
24·2 months agoMy guess is that it changed from open source to a proprietary license. From Wikipedia:
Initially, Paint.NET was released under a modified version of the MIT License, with the exclusion of the installer, text, and graphics.[9] However, citing issues with the open source code being plagiarized by others that had rebranded the software as their own and bundled user content without their permission, the availability of the source code was restricted, in December 2007 Brewster announced his intent to restrict access to components of the program (including its installer, resources, and user interface).[10] In November 2009, the software was made proprietary, restricting the sale or creation of derivative works of the software.[10][11]
folekaule@lemmy.worldto
Selfhosted@lemmy.world•My domain is accessible from external networks but not from my internal network. Might anyone know why?English
1·2 months agoYeah that’s my guess at well. Before I figured it out, I used a VPN connection into my local network (which works through hairpin NAT). I’m not a security expert, but that may be more secure than granting the permissions wholesale.
folekaule@lemmy.worldto
Selfhosted@lemmy.world•My domain is accessible from external networks but not from my internal network. Might anyone know why?English
2·2 months agoI had this happen too recently and only for certain apps. Turned out Android has a new permission that was being enforced: “Nearby devices”. Once I granted that to my browser, it could access my LAN again.
folekaule@lemmy.worldto
World News@lemmy.world•Sweetener used in chewing gum and jam linked to strokes and heart attacksEnglish
5·2 months agoI had not heard that one. That’s horrible.
folekaule@lemmy.worldto
World News@lemmy.world•Sweetener used in chewing gum and jam linked to strokes and heart attacksEnglish
24·2 months agoAvoid sugared gum. I also used to chew a lot of gum and was trying to stick with sorbitol because xylitol gave me stomach pains. That limited me to Wrigley’s. Anyway, due to my confusion after it went out of stock, I was buying sugared gum instead, and finally ended up having to fill 6 cavities before I checked the label and made the connection. All that sugar sitting on my teeth all day was not good, to say the least. I quit cold turkey after that (and also gum).
Which one, and why?
folekaule@lemmy.worldto
Linux@lemmy.ml•What are the worst distro-specific problems you have faced?
2·2 months agoI think it’s fair to want a more helpful error message, but that’s not necessarily the purpose for path. There is a real cost to every entry in your $PATH. Not as much as in the world of spinning rust, but some.
There are some completion modules for shells that will suggest misspelled or even installable packages if it can’t find the command. Those are arguably better options.
As for traditional systems, I remember a time where running arbitrary commands, even with an --help argument could be dangerous and we had to set least try ‘man command’ first.

That’s fair. I think they’re are definitely systems where micro services are the best choice, but also that they are way over used or implemented too early. Too often it seems service boundaries follow the organization and not the domain model, because they only exist so multiple teams don’t have to talk to each other as often. I guess I’m saying there are more incorrect ways of doing micro services than correct ways.
The worst I’ve seen though have been a single developer over engineering a system because they thought it was cool, but we replaced it with a simple batch script.