SkillsJava, Go, C
Joined devRant on 6/12/2018
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
I'm getting really tired of those dumbass programmers that do not understand shit and then come to me when production breaks. (I am also a programmer, not really a DevOps engineer, but I'm the least worst at DevOps stuff, so it's my job...).
We're programming some kind of document management tool. Today we had a release, and one of the new features is to download all of your documents as a zip file, which is asynchronuously generated. When it's done, the user gets a mail with the download link to the zip file.
The feature works basically, but today it broke our production service, as somebody was running a test of it.
Turns out all the documents are loaded into memory to be zipped. So if you have 2 gigs of documents, a container with memory restrictions in that area will crash.
I asked the programmer who reported this «ops problem» to me, why he didn't just shit the files into a temp foler in order to zip them in there.
He told me that he wanted to do so, but did not know how to mock this for a unit test, and therefore went to the in-memory «solution», which was easier for him to mock.
For fuck's sake, unit tests and mocks are fucking tools, not ends in itself! I don't give a fuck about your pointless mocking code when the application crashes!
When I got to deal with such dumbasses, I'd prefer to mock those motherfuckers with a leaky bucket of liquid shit, which basically accomplishes the same task from my perspective: dripping shit all over the place and make everything suck as fuck.3
As I understood the Adapter pattern, you start with two given (!) interfaces that are incompatible, create a class that implements one interface, and has the second interface as a property. Then the methods of the implemented interface wrap the calls to the interface referred to from the property.
Everything is fine with that.
Now I wonder, why every other class in our code base is suffixed with "Adapter". There is some external thing to be used, like a file storage, a message queue, an email service or just something outside of the system. But the class that makes use of that external interface is made up on our own, no interface given.
So I think Adapter is a misnomer, because we do not adapt thing A to thing B, we just use thing B and call it from some class.
What are your thoughts on that?5
My slacker coworker attached a spoon to his monitor serving as a rear view mirror, so that he knows when somebody is standing behind him and can see his screen, which allows him to better slack off the whole day.
He's sick today (he often is), and I am looking for a nice prank idea, ideally involving this spoon. I thought of rubbing a piece of butter against it to make it murky and greasy, or maybe attach a photo of our boss to it.
But I need a better idea, so please comment! Thank you, much appreciated!25
Ken Thompson. Zero ambition but incredible achievements. Bottom up programmer, no bullshit, and a great sense of humor.
I hate it when (Java) programmers produce such clutter just because their OOP 101 professor told them to do so in 2005.
I refactored it using `git rm`.12
Fuck this Kibana shit and give me back my old grep (or even better: ripgrep). In 2008, I used to find shit in my fucking logfiles. Now I have an ELK stack that smells like liquid shit.3
My personal highlight this year. We used an old backend technology, which required the use of the old Java Date classes, because changing the model was not possible any longer (end of life modelling tools). So we had to fall back to those kinds of hacks.4
I hate it when suddenly one app icon is missing on the home screen and I cannot even figure out what app I'm missing.4
Let's get rid of the developer training: Pair Programming
Let's get rid of the software testers: Test First Programming
Let's get rid of the project managers: Agile
Let's get rid of the project planners: Scrum
Let's get rid of the system admins: DevOps
Let's get rid of the security guys: DevOpsSec
Let's get rid of the hardware budget: Bring Your Own Device
Let's get rid of the servers: Cloud Computing
Let's get rid of the other scruffy guys: Outsourcing
Let's get rid of the office space: Home Office
Let's get rid of the whole fucking company: Takeover8
Learning Angular, starting with a hello world example:
$ ng new wtf
added 1180 packages from 1294 contributors and audited 21849 packages in 18.753s
found 13 vulnerabilities (9 low, 4 high)
Oh, great! Broken from the get-to! But wait, there's more joy!
$ vimdiff wtf/node_modules/is-odd/node_modules/is-number/index.js wtf/node_modules/is-number/index.js
Fresh project, is-odd requires is-number, the project itself requires is-number. And is-number is there twice in two different versions. The notion of a number must have changed drastically in the last couple of years!
Seriously? Angular doesn't even give me the chance to fuck up the dependencies on my own!7
Former Boss: "We need a messaging framework!"
Me: "What do we need a messaging framework for?"
Former Boss: "To send out messages to the App and by Email!"
Me: "We already have everything in place for that."
Former Boss: "But it must be _one_ generic solution, not _two_ solutions."
Me: "Both content and form are totally different for those messages. They have nothing in common besides being 'messages'."
Former Boss: "But it's better to have a messaging framework!"
We had that discussion in every fucking weekly team meeting. So I decided to put a concept together that was so overdesigned, generic and complicated, so my boss wasn't able to understand it at all, and of course didn't read it entirely.
He never mentioned the term "messaging framework" again.3