SkillsC, C++, Python
Joined devRant on 2/18/2021
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
CMAKE, YOU PILE OF SCRIPTING SHIT!
WHY THE FUCK CAN I NOT CHANGE MY BUILD DIRECTORY? I HAVE WASTED AN HOUR ON THIS UNBEARABLE SHITWEASEL OF AN EXCUSE FOR A BUILD SYSTEM!!!!
STOP SHITTING YOUR STUPID CACHE FILES INTO MY SOURCE FOLDER!!! AAAAAHHH!11
Worked for a friend of mine in the early 2000s. Had to implement a booking system into PHP for some private customer. This was PHP 4.something, the CMS was some alpha release of an open source project that my friend was sure was the future (it wasn't), and the specs were one A4 page of pencil scribbles that he took while talking to the customer.
Deadline was insane, nothing worked. I worked from getting up to laying down to get shit done, not being able to sleep, feeling stressed all the time. One week before roll-out I actually managed to get it running and we showed it to the customer. He was like "nope, that's not what I meant" and demanded lots of changes but accepted only one or two weeks of roll-out delay.
I did finish the job, made some good money, but then quit as soon as it was done.
This experience broke me so much that I worked in a workshop for 2 years to get away from programming as far as I possibly could.2
Had to add some functionality to another guys GUI code.
He gave me a "template" file (copy of another module), pointed at several places and said: "Make your changes here, here, and here. Do not ask why, do not even think about it. Just do it."
At the institute I did my PhD everyone had to take some role apart from research to keep the infrastructure running. My part was admin for the Linux workstations and supporting the admin of the calculation cluster we had (about 11 machines with 8 cores each... hot shit at the time).
At some point the university had some euros of budget left that had to be spent so the institute decided to buy a shiny new NAS system for the cluster.
I wasn't really involved with the stuff, I was just the replacement admin so everything was handled by the main admin.
A few months on and the cluster starts behaving ... weird. Huge CPU loads, lots of network traffic. No one really knows what's going on. At some point I discover a process on one of the compute nodes that apparently receives commands from an IRC server in the UK... OK code red, we've been hacked.
First thing we needed to find out was how they had broken in, so we looked at the logs of the compute nodes. There was nothing obvious, but the fact that each compute node had its own public IP address and was reachable from all over the world certainly didn't help.
A few hours of poking around not really knowing what I'm looking for, I resort to a TCPDUMP to find whether there is any actor on the network that I might have overlooked. And indeed I found an IP adress that I couldn't match with any of the machines.
Long story short: It was the new NAS box. Our main admin didn't care about the new box, because it was set up by an external company. The guy from the external company didn't care, because he thought he was working on a compute cluster that is sealed off behind some uber-restrictive firewall.
So our shiny new NAS system, filled to the brink with confidential research data, (and also as it turns out a lot of login credentials) was sitting there with its quaint little default config and a DHCP-assigned public IP adress, waiting for the next best rookie hacker to try U:admin/P:admin to take it over.
Looking back this could have gotten a lot worse and we were extremely lucky that these guys either didn't know what they had there or didn't care.
Seriously WTF TP-Link?
Bought an Archer T4E Wifi adapter card for my PC. This has got to be the worst piece of shit hardware ever sold.
I mean are you kidding me? This card has two TWO!! antennas sticking out of its back and won't maintain a connection to an access point that I have NO PROBLEM AT ALL connecting to with my fucking phone? And don't even try to connect to the 5G network with this embarrassment of a WIFI card.
Looking at the support forums and loads of people complain about the exact same thing without any reply from this shit company.
Seriously screw you TP-LINK I will never buy any hardware from you again.17
Not strictly a dev-goal, but anyway:
Now that I am responsible for a few people in the company I work for, my goal is to find a balance between managing and dev, and to help them develop their skills, be productive, and enjoy their work.
Let junior dev design module.
Make code review.
What junior dev says: "It is a totally flexible concept!"
What junior dev means: "It is extremely shitty to use for the one use case it was meant to do, but it will be equally shitty to use for all the use cases we will never have."
Back to square one.9
That the most important thing in any project is to first make sure YOU have understood what the customer/management wants and that THEY have understood what you are going to do.
Seen so many projects (other people's and my own) go down the drain because people had false expectations.
Also, good management is enormously important for any medium-sized endeavour. I cannot count how often I have seen mediocre to bad middle management screw things up, and devs pull off overnighters and 60+hours work weeks for this super-important project that then goes to the bin because "it turned out to be not so important in the end, sorry."1
Devs complaining about the automated test system cuz it reports errors all the time are like trapeze artists complaining about the safety net cuz it hurts when you hit the ropes.7
That glorious moment when you realize that the toy project that everyone scorned you for wasting time on three years ago has become a central building block of your company's software lineup.5
Kindergarden teacher... have 3 kids myself, love to teach them stuff and do activities with them. Kids between 2 and 6 are great. They can already tell you what they need but are not yet under the pressure to perform in a competitive school system. They're the most authentic human beings imho.
Other than that, maybe something in academia. Holding lectures can be huge fun if you got at least a few motivated students.
Absolutely no one:
Microsoft: "What about if our camera app stops recording as soon as its window is minimized because there is no such thing as people filming themselves reading from screen?"
You have to be impressed by the ability of these fucking morons to make common use cases artificially hard to do with their software.3
Not myself but friend of mine. Early 2000s working at a large university. Top notch office PCs for the time, best internet connection in the country.
He discovers this "Bittorrent" program. Meh, just another file sharing thing... but who cares, it's 2003-ish so everyone downloads shit from the internet.
Installs it on his office PC, because its university so no one cares.
Friday afternoon, he starts download of his favourite music album (some hard to get live version or something), then goes off into the weekend, computer is left running as always.
Download is finished after an hour or so, then his Bittorrent client starts seeding. Lots of people want this album. Bittorrent adapts to bandwith and when your connection is good you get upvoted in the network and everyone is connecting to you.
Monday comes, my friend arrives back at his desk, bit late because he slept in and its university so no one cares.
Suddenly realises many missed calls on his desk phone. Calls back, it's from the IT department.
Friend: "You have called me? What can I do for you?"
IT Guy (screaming): "WHAT THE HELL ARE YOU DOING??? YOUR PC IS CAUSING 50% OF THE UNIVERSITY'S INTERNET TRAFFIC.!!!!"
IT Guy (hysterical): "WHATEVER YOU ARE RUNNING STOP IT NOW!!!!"
Friend: *stops Bittorrend client, enjoys his favourite album*
Lucky him, it's a university, so in the end no one cared.4
Home office / lockdown story
Last year, when the first lockdown happened, everyone in my office started working from home. Including myself of course.
I decided to use x11vnc for remotely accessing my PC cause it is super convenient.
A few days into the home office and suddenly the remote keyboard acts weird, with random keypresses that I didn't do, and then the letter L was written over and over like it was stuck.
Assuming a bug in x11vnc, I restart it several times, but no luck. Whenever I open a terminal it is full of "L"s within a matter of seconds.
So I restart my PC remotely and reconnect the x11vnc, which is a huge pain in the arse if you have ever done it. And can you believe it... Still the same problem!
So, finally I gave up and went to the office to see what the hell was going on with my PC. I entered my office room and could not believe my eyes.
What had happened? The room cleaner had wet-wiped my desk. To create enough free space for that, she had first cleaned up the mess, putting the scattered paper nicely on the side, but then also *putting the bloody mouse on the bloody keyboard*.10
Wrote my first programs on my Commodore C64.
First program was a number guessing game where you needed to guess a number between 1 and 100. Shit had 300+ lines because I only new the if clause and the equals comparison.
I was 9.
Later a friend showed me Modula 2 and I was instantly in love with that language.
Real programming then in school (C, C++, µC assembler).
Guy: *hands me sheet of paper* What does this code do?
Me: *looks through code written on the paper* Well, most likely segfault.
Serveral users complain that the error messages our software produces are completely useless, so I get assigned to improve the error reporting.
Starting the task by checking what's there and how it works together.
Looking through the code I discover 4 completely different error reporting implementations, each having the same intent and promised functionality. All of them are used somewhere, sometimes next to each other. Needless to say: None of the implementations actually implements all it promises.
My favourite part is the setErrorMessage(string) method that is defined in one header and used in many places, which has the implementation
Fuck my life.2
Re-implemented a Perl-based log analysis script in plain old C to make it faster.
Horrible implementation... Good times.6
WTF why does Visual C++ show an error in some system include BUT NOT THE FUCKING INCLUDE CHAIN DESPITE /showincludes GIVEN???
How the fuck are you supposed to find a wrongly defined macro that way? Go through all 20 layers of includes and map out what could POSSIBLY be the include chain? Seriously WHY??
(Surprisingly) unpopular opinion: Multiple inheritance is a bad design practice and should not be used.17
I love how C++ is getting better and better with every new standard. How preprocessor-hacks become less and less relevant.
Now C++ 20 is finally giving us modules, and we only had to wait 26 years longer than the Fortran guys. Well done, people. Well done.
Parts of the code I am working on date back to the early nineties, written in ancient C++ with lots of special cases for ancient compilers by people with 0-2 years of coding experience.
My favourite coding moment is every time when after refactoring a part of the code, it has about 1000 lines less (no exaggeration), is more reliable, AND can do a lot more than before.6
Okay, after avoiding it for years, I have now for the first time tried ninja-build and have to say I like it A LOT.4
What the hell has happened to Hewlett Packard?
They used to make the best notebooks around. 10-15 Years ago, basically all notebooks my family bought were from HP. These devices lasted for at least 6-8 years each.
Now I have a fucking expensive OMEN series notebook failing after 2 years with the most embarrasing hardware problems: Once a shielded piece of plastic from the bottom broke off and made a short on the mainboard, next time the way too thin power line that goes from the power plug to the PCB was placed alongside a sharp metal piece that damaged the isolation and again produced a short. When the display is moved, the webcam disconnects, which is also a hint at the production quality.
From my daughter's HP notebook the Display just broke off after like 18 months of use. When we brought it to service I asked the guy whether this happens a lot, he was like "I have 6 other notebooks of that type with the same problem in repair right now". After a repair that took forever because they couldn't get the proper replacement parts, the integrated webcam has died.
Never ever going to buy anything from this shitbrand again.6
Why the hell does it take twice as long to compile my software project under MSVC and Windows 10 compared to a GCC on a Linux *virtual machine* running inside the same Windows 10?!?9
WHAT THE FUCK?
CMAKE you pathetic collection of loosely bundled scripts written in a shitty macro language!
WHY? WHY? WHY?
WHY DO YOU REFUSE TO OUT OF SOURCE BUILD?
IT WORKED FINE LIKE 2 SECONDS AGO! I HATE YOU WITH THE FIRE OF A THOUSAND STARS!2
Why the heck does the C++ committee let Microsoft have so much influence over the language?
I mean they do not give a flying flamingo about language aesthetics!
No, no, we cannot have `typeof` in the C++ standard because Microsoft pulled `decltype` out of their nullptr.3