Details
Joined devRant on 5/6/2019
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
-
Every ticket I work on involves some nebulous, undocumented BS nobody can satisfactorily explain. And worse, even if it’s something I’ve already worked with before, it’s almost invariably different from the last time I saw it, so it’s still nebulous BS. It’s like I’m walking through Steven King’s Mist, except the bugs are more metaphorical.
Everything is spec’d out, except for the views, and half of the logic. But the rest is still technically covered because tests indirectly call the code, so that means it won’t crash right? 😅 Also, the tests that are there are also fucking nebulous, such as calling helper methods that are heavily abstracted, or that are written to test completely different things but kinda sorta work for this too if you set things up just right.
I’m going insane.3 -
Update on my shitty manager.
He's been in HR training and leaving me the fuck alone. So it's a win so far.7 -
Fuck SAP!
I honestly can’t understand how anyone considers SAP a good ERP software. Either they’re brain-dead, or they actually enjoy the mind-numbing, repetitive work that turns them into the top rat in the race. AAAAAAAAAHHH!!!!
It’s an inconsistent mess—counterintuitive, clunky, and filled with absurd navigation and unnecessarily complicated database links.
And when people praise it like it’s some divine gift to humanity, I can’t help but wonder just how miserable their real lives must be.
There are some list views where you get to something you want, if there is some incomplete data in the list.
There’s a "POSITION" button to help you find what you need—but not everywhere.
Some fields require you to save at a certain step, while others don’t, leaving you to realize halfway through the next step that you forgot to save something.
Want to cancel halfway through? Too bad. You’re stuck unless you TCode your way out—because YOU HAVEN’T FILLED ALL THE FIELDS.
Every option, and its cousin, has a separate TCode.
Even for a simple concept, you need to memorize five different TCodes, create five similar-sounding tables, link them together, and at some point, connect one of them to company data—even if there’s only one company.
Why is it so complicated?! And don’t tell me “it has a lot of modules”—that’s not an excuse. Every menu is complicated on its own.
Instead of designing a logical workflow, they just wing it, throwing in sub-options as they go, then expect the end user to figure out how to link everything together.
Why not take a top-down approach—link all company-related data in one place while still allowing independent options to be linked elsewhere if needed?
I mean, you can’t even use Ctrl+Backspace to delete a word. The UI is that fragile.
And then I remember—it’s German software. That kinda explains it.
Speaking of which, the TCodes—the backbone of the system—are still based on German, even though the entire software is in English.
So the rest of the world is stuck trying to memorize bullshit codes with no logical reference.
FUCK ANYONE WHO SUPPORTS THIS SHIT.6 -
What do you do when you need good solder, but you can’t get EU/US/Japanese stuff where you live? No, you don’t buy Chinese. You buy ПОС-61, together with 500g of pure rosin, made in Smolensk, Russia.
The recipe and the supply chain didn’t change since the Soviet Union. They arrived today with the order number of, I kid you not, 666, and the set costed me $9 for 100g of solder and 500g of rosin. That rosin combined with ethanol gets you ФСКп flux that will last a lifetime. It does the job and doesn’t require cleaning.
Yes, some Chinese solder and flux are better, but I didn’t find a single AliExpress shop without at least one review telling that the thing they’re selling was fake. And you can be damn sure that if a Chinese listing says that there is 100g of solder, it will be 98 grams together with the spool and paper.
Soviet stuff is predictable. It says 100g, but weights 119g with the spool. If it says Sn61Pb39 that melts at 190℃, it will be exactly that, every time. And if it was good enough for Soviet tech, it’s good enough for my DIY endeavors.
And yes, it flows like syrup, and after it cools down, it shines like jewelry.
(can't upload pics bc pics are dead again!)3 -
Scared Christians like to say “God doesn't make mistakes” when discussing trans people. Well, you're right: God doesn't make mistakes, so he made me trans to test your ability to love.33
-
If you want a terrifying name for your metal band, don't call it “Whispers from the Abyss of Despair” or “Through the Veil of Darkness and Desolation”.
Call it “Surgery Robot From Temu”.2 -
Did devrant's backend downsize or something? I came back after a while and the whole app is like, 10 times less responsive, taking ages to load and respond etc18
-
mama kiki just went to two sentence horror subreddit and casually smashed those amateurs three times in a row with her writing chops4
-
Am I going crazy or is the web dev community on some otherworldly drug?
Now "server-side"-whatever is the coolest thing ever?
To the point where client side validation is not recommended anymore and actively discouraged? Are you kidding me? So, you mean to say after filling a long form with millions of fields, the page will RELOAD when I press submit and after waiting an eternity for your shitty server to respond then and only then will I know what fields are invalid?
GTFO with that bullshit.
How in the world is that good UX/UI?
I've always had this theory that we humans are the dumbest species to ever walk this earth. I mean, serisouly, how is this even a thing?
Imagine if a mobile app had to restart to tell you that your email is invalid in a simple form.
But.. but... but... what if the client has disabled javascript? Then fuck them! Who the fuck cares? What's next? Some dumb user is still using Android 2.1 Eclair and we should make our app support them? Fuck no! Fuck them, they should update.
Newsflash, if Javascript is disabled, then pretty much everything will be broken anyway.
Form validation should be instantenous. This isn't rocket science.
It should happen as the user types so they can see what's valid/invalid in real-time.
This does require effort and consideration, something many devs lack apparently.
This is just ridiculous.37 -
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 -
Linux Mint on an iMac.
I attempted to install Linux Mint on an iMac, unfortunately I did not realize how difficult that would be. And the current keyboard I was using didn't let me access the boot menu. when I finally found a keyboard that worked, I installed LM and found that some drivers just refused to work with LM. I then got my hands dirty and somehow managed to fix everything. This took me around five days to figure out.1 -
Things that happened yesterday according to Kiki's internal clock:
- Michael Jackson died
- Wi-Fi 802.11n
- USB 3.0
- Microsoft bought Skype
- Android 5.0 and Material Design
- GTA V
- Skyrim7 -
Hey, @dfox
Is there anything we can do to help?
We miss you, and we want to keep devRant alive too.22 -
1/2 dev and a fair warning: do not go into the comments.
You're going anyway? Good.
I began trying to figure out how to use stable diffusion out of boredom. Couldn't do shit at first, but after messing around for a few days I'm starting to get the hang of it.
Writing long prompts gets tiresome, though. Think I can build myself a tool to help with this. Nothing fancy. A local database to hold trees of tokens, associate each tree to an ID, like say <class 'path'> or some such. Essentially, you use this to save a description of any size.
The rest is textual substitution, which is trivial in devil-speak. Off the top of my head:
my $RE=qr{\< (?<class> [^\s]+) \s+ ' (?<path>) [^'] '\>}x;
And then? match |> fetch(validate) |> replace, recurse. Say:
while ($in =~ $RE) {
my $tree=db->fetch $+{class},$+{path};
$in=~ s[$RE][$tree];
};
Is that it? As far the substitution goes, then yeah, more or less. We have to check that a tree's definition does not recurse for this to work though, but I would do that __before__ dumping the tree to disk, not after.
There is most likely an upper limit to how much abstraction can be achieved this way, one can only get so specific before the algorithm starts tripping balls I reckon, the point here is just reaching that limit sooner.
So pasting lists of tokens, in a nutshell. Not a novel idea. I'd just be making it easier for myself. I'd rather reference things by name, and I'd rather not define what a name means more than once. So if I've already detailed what a Nazgul is, for instance, then I'd like to reuse it. Copy, paste, good times.
Do promise to slay me in combat should you ever catch me using the term "prompt engineering" unironically, what a stupid fucking joke.
Anyway, the other half, so !dev and I repeat the warning, just out of courtesy. I don't think it needs to be here, as this is all fairly mild imagery, but just in case.
I felt disappointed that a cursed image would scare me when I've seen far worse shit. So I began experimenting, seeing if I could replicate the result. No luck yet, but I think we're getting somewhere.
Our mission is clearly the bronwning of pants, that much is clear. But how do we come to understand fear? I don't know. "Scaring" seems fairly subjective.
But I fear what I know to be real,
And I believe my own two eyes.11 -
Hey guys, Been a while...
Quick status update
Moved out of my parent's house
Now a lead backend engineer at a crypto exchange.
Getting offers from startups without even applying, just referrals
Still underpaid by global standards but very comfortable locally.
1year+ of financial stability
Lots of motivation from the lovely people here when I started out, I'm grateful1 -
It’s strategy week. And I have flown to A COMPLETELY DIFFERENT FUCKING COUNTRY.
In their wisdom, it has been decided that I, master of all knowledge (not!) will outline a roadmap for potential tech to come and where our pain-points are. They don’t have the slightest. CORP only now talks about AI and NOTHING sane is even closely is being addressed.
Fucking retards.
It is all for show.
It’s just a game for them.
Fucking holistic people.
Fuck leadership in IT with no actual knowledge of the pain of database upgrades. Fuck em!
It’s all pretending and using big words. I been in meetings where people actually use the words AI, autonomous and digital twin. In the same fucking sentence. Fucking imbecils! Do they even know how fucking impossible that is in a company like this where we struggle every-single-day with a tech debt that is actually incomprehensible. Yesterday I found code from 1978 in use, with no knowledgeable maintainers. Which is very cool but will be difficult, to say the least, to migrate. At the core of one of the deepest core processes at a specific site (we kind of make things). 1978. Thousands of lines of code.
We are NOT in a position at all to say things like this. Autonomous. We are NOT ready. We are NOT staffed and we will not be since we have NO money to hire the necessary workforce of 100 people it would take to actually do something useful. Even if we could hire them the time it would take to actually hold on to them would be too short. Since people are LEAVING THIS COMPANY SINCE IT/TECH IS NOT CONSIDERED TO BE IMPORTANT to the company.
Fuckers. I can take out half the factory in one minute.
Autonomous? AI? It is such a shitshow. And really, really depressing.
I wonder if they know. What would happen. If key persons was to decide to leave.
The care that has been put in place for this factory (HUGE FACTORY!!! HUGE!!!!!!!) system support is just really… well, crazy actually.1 -
because the house I lived in was quite a hostile environment, and every place after that I rented, I grew up without the feeling of home. I was puzzled by how to acquire it. Should homeownership do the trick?
the answer came swift and unexpected — I got a cat. Now, my home is where my cat is. Simple as that.1 -
It's amazing how companies like Autodesk and Adobe see Linux as some "toy". When we talk about Linux we are talking about a professional workstation. My entire company uses Linux (currently Fedora 39) on its workstations, and all of our servers use FreeBSD. Not because it's free, but because it proves to be better than the alternatives to what we produce. We pay for licenses for JetBrains, BricsCAD, MATLAB and I still happily pay STEAM to play my Civilization, Doom Eternal, CS2 and I use Proton to continue my adventures in Diablo and Star Craft, all PAID. Adobe and Autodesk, be ashamed and instead of talking about market share, admit that you do not have competence.7
-
User: - I'm seeing a redcircle with a white dash.
Me: - What is a "redcircle with a white dash".
User: - It's like a stop sign.
I hope I won't meet this user on a one-way street.2 -
Have you ever been pair coding with someone who uses shotgun debugging? I am about to claw my eyes out! What is shotgun debugging you ask?
Code doesn't work... What do we do?
I start thinking about possible flow, how to go back to what works, where to insert debugging statements. My partner interrupts my thought and says - what if we change this variable name?
...uh what?
What if that fixes it
It won't!
Well how do you know if you don't try?
I change the variable name - of course nothing works and now I forgot the possible solution I was thinking about...
Starting over... I again start coming close to the idea... Interrupts me again. What if we comment out this random line?
Why what's your reasoning?
Answer: *Shrug* idk might work...
...rinse and repeat
WHAT IS WRONG WITH YOU???!
I literally started muting my computer sound so I can not hear him while I think and that helps tremendously. This is programming not magic, people!!! Stop throwing random "what if" suggestions!13 -
Say “bug fixes and performance improvements” one more time! I dare you! I double dare you, motherfucker! Say “bug fixes and performance improvements” one more time!2
-
Get spammed by some loser on substack and learn how to break the law in 50+ countries! yay!!!!
god
🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡
i swear i'm going to start a new SaaS equivalent to send your enemies glitter but its called send your substack enemies glitter and it just spams them forever with fake emails4