Details
-
Github
Joined devRant on 9/28/2022
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
MSAL, Microsoft's absolute dumpster fire of an authentication library. Who in their right mind designed this overcomplicated mess? The documentation reads like it was written by a committee of drunk orangutans throwing darts at a keyboard.
Want to do a simple login? HAHAHA GOOD LUCK! Here's 47 different configuration options you need to set up, three different flow types that are basically the same thing with slightly different names, and error messages that might as well be written in hieroglyphics. "AADSTS700054" yeah that's SUPER helpful, thanks Microsoft!
And don't even get me started on token caching. Oh, you thought your tokens would just... work? NOPE! Hope you enjoy debugging why your perfectly valid token is being treated like a expired coupon at a grocery store. The refresh token flow is about as reliable as a chocolate teapot.
I worked on a great project that was later axed and part of that was because of Msal issues. We literally only dealt with Msal issues. The app was otherwise stable. There were always issues with SSO, login, token validation...
It just couldn't work, like, at all.
I could see the clients getting fed up of the constant issues, yet, they couldn't move away from Microsoft since they'd already invested into their entreprise ecosystem. AzureAD, Office 365, you name it.
Shit like this is why I laugh whenever someone suggests that AGI will take over the world. Like, bro, we still haven't figured out how to make an auth library that actually works, and you think we're close to making a machine capable of thinking like a human?
Yeah right!4 -
JavaScript has an exciting API for monitoring changes made to HTML elements. The API is called the MutationObserver API, and it was invented at the prestigious W3C—the global organization comprised of our genius software engineer overlords.
Unfortunately, the W3C has a history of occasionally forgetting to proofread new specifications before publishing them, after their large army of monkeys with typewriters have produced working draft specifications, but I'm sure those mistakes are all in the past. The MutationObserver API is receiving praise online. I'm sure it's well designed!
Let's dive in to how it all works.
The API works by calling (1) a specific function of yours any time (2) a specific kind of change is made to (3) a specific HTML element—all three configurable by you.
When a change occurs, your function is passed a collection of information about the change, known as a "record".
If you ask, that record can even include information about the state of the HTML element before the change occurred, available under the `oldValue` property. How convenient!
Oh, and one more thing. If several changes happen in a short window of time, your function may receive a whole list of records—instead of being run once for each change. You know, to save on computer resources.
Anyway, let's start using this powerful API! But wait, what's that?
The record doesn't contain the state of the HTML element when the change occurred?
No problem! That information doesn't have to be included in the record. I can just look at the element as it appears right now.
But what's this, now? I'm receiving a long list of records. I guess lots of changes happened in a short window of time, so all the records are bundled together.
So how do I know what the state was for each record?
If I look at the element as it appears right now, I can only see the end result. That won't tell me what the state was after each individual change.
I guess there's only one way to find out. For each record, I need to look at the next record and check that record's `oldValue` property.
I need to write look-ahead logic just to see the state at each record!
What kind of monkey wro—oh, right. The W3C wrote the MutationObserver API.
Just forget that I asked.3 -
Yearly angular rant.
I am doing since 2023
https://devrant.com/rants/10263715/...
and yep, angular is still shit in 2025
And still maintaining a high level, business critical, giant angular set of web portals, and some more projects with an angular UI that has to do with AI projects.
Of course not my choice, I'm forced to use this pile of steaming shit.
Year by year they keep releasing a new version and I always hope they get their shit togheter.
Every year is worse.
Instead of fixing this half-baked, ill-fated, broken clot of hacks rigged togheter, they keep adding cosmetic shit and useless no-one-asked ever features.
They added signals when there are not 1, but 2 mature, battle-tested frameworks (rxjs, ngrx) that already do it better.
They added @if @else etc etc. syntax after 10 years people were telling them that using that shit *ngIf and ng-container and templates was a shitty hot mess.
The whole change detection system is still the worst, clunky designed, cake of shit, requiring for real world applications to juggle with change detection services, change detection policies and control value accessors, which basically forces you to reinvent the most complicated wheel ever for what a ton of other frameworks already do out of the box without getting you bald from hair-pulling late-night hours.
Even AI can't fathom it. Give it to Copilot, GPT, Claude or whatever, and as soon as you get something more complicated than a form that sends a class to the backend or some mapping classes they will flip up, get all worked up and write completely utter shit that doesn't work.
I won't get into the projects details but I had to build some complicated UI and it has baffled me what fucking triple backflips I had to write to make some UI elements work smooth.
Jesus, why the fuck people keeps unleashing this pile of shit on me?
Why is it even used? There are a TON of healtier alternatives.
As of 2025, my christmas wish is still to have an 1v1 with angular devs in an octagon to shove my fist in their skull to check out what kind of twisted donkey shit is in there.
Seriously some improductive dumbass framework here, and if you like it, you're a shit programmer.16 -
When I search for problems with npm libraries and StackOverflow's answer is
"just downgrade the package to {VERSION} and it should work"
It makes me wanna die. How in the clusterfuck is that an acceptable solution?5 -
What someone says or thinks about you says nothing about you. What YOU yourself say or think about yourself says nothing about you.
A man is a sum of their actions, nothing more and nothing less. Consequences of those actions will be here and affect the world long after you're dead and buried.
So, if someone disrespects you in the comment section, it doesn't mean you deserve/attract disrespect. Same goes for your workplace.9 -
Some two years ago I purchased a license for AV solution on Amazon UK which is my default place for shopping.
When attempting to activate the license, I kept getting this annoying error somewhere along the lines of:
'License from another region.'
I contact the support, they did their magic && the license got applied.
Fast forward some two years - the license is about to expire.
The software is actually good, so I make the choice to renew it.
Thing is, I keep getting redirected to the local site w/o an option of choosing the English language.
I edit the site's address to reach an English version of the site.
On UK's site I am unable to choose my country of residence so I can't complete the purchase form.
I try a few other things && finally reach the Global site where I am able to input the correct data for the purchase, but all attempts to finish the payment fail.
Fine... I'll purchase from the local site.
I purchased the license, activated it w/o problems, but when attempting to download the installer it keeps downloading the localized version which doesn't allow me to change the language.
I contact Support.
S: 'The license you've purchased can be used solely w/ localized version of the software. If you want to use the English version, you'll have to get a refund && purchase from our Global site here [link w/o redirection].'
_Fuck_ this trend of automatic redirection to localized sites && forced localized software.
One shouldn't have to go through all these hoops to get the software in the language of their choice, instead of having the localized version shoved down their throat.17 -
So, my wife's family has a "no shoes inside the house" rule, what is fine... until you realize that they mean "*no shoes inside the house*" - regardless if you are actually wearing the shoes or if those are in your luggage or something.
So you're supposed to leave all footwear on a shelf on this bench outside their door.
That proved to be tricky when my 10yo twin girls started freaking out that someone was going to steal their prized shoes if we left those outside the house during the night.
It would actually be a risk in our own neighborhood, infested with amazon-package kleptomaniacs, but here we are deep in the country.
Now, I've been to my in-laws place many times, and they absolutely cannot be reasoned with. I wish I could use their stubbornness to train a LLM into relentless compliance with company policy.
So, in order to spare my girls from some of my in-laws paranoia, I've spent some time before we came here rigging up a wifi cam to a facial detection service. (I know I've just exchanged their covid-style paranoia with my own surveillance-state-style paranoia. Those are the times we live in. But i can see the irony)
The server monitors the camera feed and stores the first few seconds before, during and after some face is detected.
I trained a facial rekognition model with our family's faces and had it notify me every time some unknown face appears on camera.
Finally, I've printed a "smile, you are on camera!" sign, taped it over the laces of my tracking boots, and hid the camera (and a powerbank) inside one of the boots.
My daughters were pacified with that solution, my wife laughed out loud with a devilish smile, and my in-laws completely ignored me when I tried to explain it all. Perfect.
The system has been up and running since before christmas. It notified us when some relatives arrived for celebrations and one package delivery - no shoe-related shenanigans. Until this morning.
My daughters have been playing with some neighbor kids, and a couple of those decided to fill their shoes with mud on this new-year morning, as a stupid childish prank.
I know because they kneeled in front of the camera earlier today.
Right when I was finishing up my stretches for the morning... less than 2m away from the door.
The wicked kids looked straight at the camera, and you can actually pinpoint the moment that they realize they have been caught. Then you can see when they hear me unlock the door...
I opened the door to find a bucket full of mud and no soul on sight.
I'm not posting the video, they are minors, after all. But my family is sure to laugh at it every year... and my in-laws will keep on bringing it up with the kids' grandparents forever :)12 -
Now's the last minute at current company. Very mixed feelings about leaving. Working with the people there was such an amazing experience and the working conditions there were amazing. But I decided to move on because the pay was absolutely shit and the work itself was like making me feel burnt out. Its not like that I'm overworked. Its like no challange and my own expertise is not valued at all. Everything I work on is constantly held back by every minute thing so that I finish it months later than actually planned. I feel kinda bittersweet. And finishing off with a blast kinda makes it even worse to leave. As for the last day before christmas there is a big happy hour with a lot of free food and alcohol. Talking to all the ppl I've worked with over the years makes me wish it would not be like this. I already miss them. Its like having to say goodbye to a good friend. I guess I'll stop. It will only make it worse.1
-
So I am navigating the hellscape called vcpkg. It is a hellscape to me because I don't understand fuck all about how its supposed to work. It has things like manifests and keys which point to repo commits and other weird shit.
I am trying to learn how to get it to install boost.asio today. It keeps installing this old as fuck version 1.80 instead of latest 1.86. I try specifying the version in the vckpg.json file of my project. Then it starts throwing hands and saying it doesn't have port shit for other boost libraries. I try to provide versions for those and it throws more hands. I search and search to no avail. So I give up and let it install 1.80 and all its dependencies. Then its starting fucking erroring out compiling boost.coroutines. So I search on that. Nothing of substance. Just flabbergasted at this point. Does boost work at all with msvc?
I am looking through the errors and is says run "vcpkg update". This fails because I am in manifest mode. Why didn't it give me the command for manifest mode, is it stupid? Then I find the command for manifest mode: "vcpkg x-update-baseline". This updates it commit number is some random file I don't know about. Still don't know what the fuck that does. Then I run the config again on my vcpkg.json. This starts installing boost-asio 1.86. Okay, that is what I wanted in the first place.
So I let it run and do its thing. It installs everything and compiles everything. Its all ready to go. At this point I am like what the fuck is this shit. I don't really want to learn any of this shit. Yet there is someone somewhere that probably can't get enough of this. At work I will probably eventually need to learn this, along with cmake, and all its quirks. It just makes me tired to learn this just to get to a point to write one line of code. I am sure vcpkg will save me time and energy at some point. But 2-3 hours of guessing is annoying at best.
The last time I used boost on windows I just downloaded the source and built it. It was simple and then I just had to provide paths. vcpkg is nice in this respect. Especially when I upgrade the library.
I don't know what the point of this rant is. Getting tired of fighting tooling I guess. Already learning black magic trying to setup my build environment for making skse plugins. Docs are almost non-existent. I did find a discord with some cool people though. Respect to the trailblazers of this art.9 -
Hey all, not sure what the mod rules are around this but.. I'd love some feedback on my project..
This project, I call it Thingtime, is my life's work..
It's a GUI for web development with a direct connection to HTML, CSS and JavaScript using React and Chakra UI..
It's like writing code and adding it to a runtime while being in that runtime, and that runtime is powering itself..
So, it aims to fully elliminate the gap between code editors and the end result.. I jokingly refer to it as code-no-code.
Anyway, it's a long 13 minute video which goes over the basics to a pretty cool demo..
I'm trying to work out what direction to take with the platform and idea.. private investment, shares, crowdfunding.. etc..
So I was hoping for some input from some fellow 9000 IQ devrant degenerates..
Here's the vid !!! 🥰
https://youtube.com/watch/...
Lopu 🌈💖✨♾️✨💖🦄19 -
What color are things that are smaller than 200 nm? You can't see them in an optical microscope anymore, so they're… they have no color at all. Yet, they exist and are perfectly visible to a scanning electron microscope.
The visible light itself has just too long of a wavelength to bounce off of an object this small.
So yeah, there are truly colorless things that aren't void.8 -
LinkedIn: You have one notification!!!!
Me: What is it?
LinkedIn: 10 types of horses that make your more employable if you don't fuck them
Me: What
LinkedIn: 10 types of h-
Me: No, I heard you, why did you send me a notification about this?
LinkedIn: You want a job, don't you?
Me: Yes, but don't send me this type of notification again.
LinkedIn: Updated your preferences!
The nefarious LinkedIn, two days later: You have one new notification!!!!!!4 -
Isn't it wild how everything’s turned into a subscription these days?
I’ve started building my own ad-free tools and plugins just to dodge all those monthly fees for AI, SEO, WordPress, server tools, and addons.
...Yet somehow, I’m still shelling out about $200 a month. The irony, right? 😅23 -
Copilot - not convinced. My experience after a few months is that the suggested code disturbs my line of thought, and for complex code I'd rather it just fucked off and stopped "helping".
It will dumb down developers, mark my words.8 -
went out for coffee. completely alone. nobody with me. no arguing. no drama. no stress. no worrying. no bullshit. no wasting energy entertaining stupid whores.
just me and peace
all i want is peace
peace for my soul8 -
A question for the people who say Macs are superior...
WHAT THE FUCK
I'm wrestling this iOS signing issue for the fourth day. How the fuck do people manage to build anything using tools broken by design and sold to them for the price of their mother.22 -
Deleted over 1'500 lines of code over the last 2 days and replaced it with 80 lines of readable, simple, generic code.
And I'm feeelin' gooood 🎶7 -
so, I quit my corporate 9-5 job in 2020. and decided to move out of the field completely.
Moved to a small, tier 3 city, joined my family manufacturing business, cut off my circle, and completely shut my laptop....
...for 4 months.
then started developing solutions for my business, inventory management, invoicing, accounting, and other small apps.
and finally, after 3 years, in 2023, decided to move back to IT. but not as an employee this time, but as an enterpreneur.
developed a social media app, called Dialogbaaz.
probably coding is a disease that doesnt seem to go away. lets see where it finally takes me!4 -
integration test passes on IDE and remote repository pipeline
but it fails locally when run with gradle
i don't understand spring (boot) and i fucking hate it4 -
You know the old adage "cost, speed, quality, pick two."
I've come up with my own.
Shitty jobs you'll forever be stuck in with no way out: unreasonable demands and coworkers that drive you insane, pay below the poverty line, no sleep.
Pick two.
More likely, pick three.6 -
Look, I get that it's really tricky to assess whether someone is or isn't skilled going solely by their profile.
That's alright.
What isn't center of the cosmic rectum alright with the fucking buttsauce infested state of interviews is that you give me the most far fetched and convoluted nonsense to solve and then put me on a fucking timer.
And since there isn't a human being on the other side, I can't even ask for clarification nor walk them through my reasoning. No, eat shit you cunt juice swallowing mother fucker, anal annhilation on your whole family with a black cock stretching from Zimbabwe to Singapore, we don't care about this "reasoning" you speak of. Fuck that shit! We just hang out here, handing out tricks in the back alley and smoking opium with vietnamese prostitutes, up your fucking ass with reason.
Let me tell you something mister, I'm gonna shove a LITERAL TON of putrid gorilla SHIT down your whore mouth then cum all over your face and tits, let's see how you like THAT.
Cherry on top: by the time I began figuring out where my initial approach was wrong, it was too late. Get that? L'esprit d'escalier, bitch. I began to understand the problem AFTER the timer was up. I could solve it now, except it wouldn't do me any fucking good.
The problem? Locate the topmost 2x2 block inside a matrix whose values fall within a particular range. It's easy! But if you don't explain it properly, I have to sit down re-reading the description and think about what the actual fuck is this cancerous liquid queef that just got forcefully injected into my eyes.
But since I can't spend too much time trying to comperfukenhend this two dollar handjob of a task, which I'd rather swap for teabagging a hairy ass herpes testicle sack, there's rushing in to try and make sense of this shit as I type.
So I'm about 10 minutes down or so already, 35 to go. I finally decipher that I should get the XY coords of each element within the specified range, then we'll walk an array of those coordinates and check for adjacency. Easy! Done, and done.
Another 10 minutes down, all checks in place. TEST. Wait, wat? Where's the output? WHERE. THE FUCK. IS. THE OUTPUT?! BITCH GIMME AN ANSWER. I COUT'D THE RETURN AND CAN SEE THE TERMINAL BUT ITS NOT SHOWING ME ANYTHINGGG?! UUUGHHH FUCKKFKFKFKFKFKFKFUFUFUFFKFK (...)
Alright, we have about 20 minutes left to finish this motorsaw colonoscopy, and I can't see what my code is outputting so I'm walking through the code myself trying to figure out if this will work. Oh, look at that I have to MANUALLY click this fucking misaligned text that says "clear" in order for any new output to register. Lovely, 10/10 web design, I will violate your armpits with an octopus soaked in rabid bear piss.
Mmmh, looks like I got this wrong. Figures. I'm building the array of coordinates sequentially, as a one dimentional list, which is very inconvenient for finding adjacent elements. No problem, let's try and fix that aaaaaand... SHIT IM ALMOST OUT OF TIME.
QUICK LYEB, QUICK!! REMEMBER WHAT FISCELLA TAUGHT YOU, IN BETWEEN MOLESTING YOUR SOUL WITH 16-BIT I/O CONSOLE PROBLEMS, LIKE THAT BITCH SNOWFALL THING YOU HAD TO SOLVE FOR A FRIEND USING TURBO C ON A FUCKING TOASTER IN COMPUTER LAB! RUN MOTHERFUCKER RUN!!!
I'm SWEATING. HEAVILY. I'm STEAMING, NON-EROTICALLY. Less than 10 minutes left. I'm trying to correct the code I have, but I start making MORE dumbfuck mistakes because I'm in a hurry!
5 minutes left. As I hit this point of no return, I realize exactly where my initial reasoning went wrong, and how I could fix it, but I can't because I don't have enough time. Sadface.
So I hastily put together skeleton of the correct implementation, and as the clock is nearly up, I write a comment explaining the bits I can't get to write. Page up, top of file, type "the editor was shit LMAO" and comment it out. SUBMIT.
This violent tale of brain damaged badmouth schizoid baby versus badly worded code challenges was brought to you by ButtholeSuffers. Tired of taking low-quality viagra before engaging in unprotected anal sex? Then try ButtholeSuffers, the new way to strengthen your everday erections! You'll be as fucking HARD as a WALL!
Visit triple doble minus you dot triple doble YOU dot doble-u doble www dotbit lyshAdy wwwwww academy smashlikeachamp ai/professional/$$%$X$/0FD0EFF~ \*¨-`++ ifyouclickurstupid for for a FREE coupon to get MINUS NaN OFF on a close-encounter with an inter-continental dick, and use my promo code HOPONBITCH if you'd like it *RAMMED* --FAR-- and D E E P L Y.
(lel ad break should continue I'm cutting it shortt) [CENSORED] grants *physical* access to your pants! Big ups to Annihilate for sponsoring this mental breakdown.
Also hi ;>5 -
Story time.
I worked on a project recently where the HTML was written just _perfectly_. Div elements were exactly indented as the blocks on the browser window.
CSS classes were self explanatory and altering them didn't introduce any new kind of bug on the browser window.
Introducing a new div block with CSS classes fit perfectly in the window along with responsiveness on different screens.
JS was also written in a self explanatory way.
It was such an Italian Chef's kiss grade of work that I just sat back and admired the glorious work for 10 mins. Totally deserved it.8 -
Me: Boss, i am not qualified for this. This is something totally different that what i do.
Boss: Just do what you can.
* Me does something which seems to work*
-- A few months or even years later:
Boss: Our distributed systems don't longer work. What happened?
Me, after checking different system: Oh, there is a key that expired. I didn't know this key had an expire date. So they can no longer connect.
Turns out we have to visit every remote system (driving distance of a few 100's km) and set a new key. We couldn't do it remotely since we lost access.
Maybe, just maybe, when your employee says he isn't qualified for a task, listen and search someone that know what he is doing.2