Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "psychopath"
Its Friday, you all know what that means! ... Its results day for practiseSafeHex's most incompetent co-worker!!!
We've had a bewildering array of candidates, lets remind ourselves:
- a psychopath that genuinely scared me a little
- a CEO I would take pleasure seeing in pain
- a pothead who mistook me for his drug dealer
- an unbelievable idiot
- an arrogant idiot obsessed with strings
Tough competition, but there can be only one ... *drum roll* ... the winner is ... none of them!
*audience member: what?*
*audience member: no way!*
*audience member: your fucking kidding me!*
Sir calm down! this is a day time show, no need for that ... let me explain, there is a winner ... but we've kept him till last and for a good reason
You see our final contestant and ultimate winner of this series is our good old friend "C", taking the letters of each of our previous contestants, that spells TRAGIC which is the only word to explain C.
Oh I assure you its no laughing matter. C was with us for 6 whole months ... 6 excruciatingly painful months.
We needed someone with frontend, backend and experience with IoT devices, or raspberry PI's. We didn't think we'd get it all, but in walked an interviewee with web development experience, a tiny bit of Angular and his masters project was building a robot device that would change LED's depending on your facial expressions. PERFECT!!!
... oh to have a time machine
Working with C:
- He never actually did the tutorials I first set him on for Node.js and Angular 2+ because they were "too boring". I didn't find this out until some time later.
- The first project I had him work on was a small dashboard and backend, but he decided to use Angular 1 and a different database than what we were using because "for me, these are easier".
- He called that project done without testing / deploying it in the cloud, despite that being part of the ticket, because he didn't know how. Rather than tell or ask anyone ... he just didn't do it and moved on.
- As part of his first tech review I had to explain to him why he should be using if / else, rather than just if's.
- Despite his past experience building server applications and dashboards (4 years!), he never heard of a websocket, and it took a considerable amount of time to explain.
- When he used a node module to open a server socket, he sat staring at me like a deer caught in headlights completely unaware of how to use / test it was working. I again had to explain it and ultimately test it for him with a command line client.
- He didn't understand the need to leave logging inside an application to report errors. Because he used to ... I shit you not ... drive to his customers, plug into their server and debug their application using a debugger.
... props for using a debugger, but fuck me.
- Once, after an entire 2 days of tapping me on the shoulder every 15 mins for questions / issues, I had to stop and ask:
Me: "Have you googled it?"
C: "... eh, no"
Me: "can I ask why?"
C: "well, for me, I only google for something I don't know"
Me: "... well do you know what this error message means?"
C: "ah good point, i'll try this time"
... maybe he was A's stoner buddy?
- He burned through our free cloud usage allowance for a month, after 1 day, meaning he couldn't test anything else under his account. He left an application running, broadcasting a lot of data. Turns out the on / off button on the dashboard only worked for "on". He had been killing his terminal locally and didn't know how to "ctrl + c a cloud app" ... so left it running. His intention was to restart the app every time you are done using it ... but forgot.
- His issue with the previous one ... not any of his countless mistakes, not the lack of even trying to make the button work, no, no, not for C. C's issue is the cloud is "shit" for giving us such little allowances. (for the record in a month I had never used more than 5%).
- I had to explain environment variables and why they are necessary for passwords and tokens etc. He didn't know it wasn't ok to commit these into GitHub.
- At his project meetups with partners I had to repeatedly ask him to stop googling gifs and pay attention to the talks.
- He complained that we don't have 3 hour lunch breaks like his last place.
- He once copied and pasted the same function 450 times into a file as a load test ... are loops too mainstream nowadays?
You see C is our winner, because after 6 painful months (companies internal process / requirements) he actually achieved nothing. I really mean that, nothing. Every thing was so broken, so insecure / wide open, built without any kind of common sense or standards I had to delete it all and start again ... it took me 2 weeks.
I hope you've all enjoyed this series and will join me in praying for the return of my sanity ... I do miss it a lot.
What a great start to 2019 for me.
Uncles and aunties who don't understand a thing about development critiquing my work and offering their advises and vast wisdom based on their 1 second knowledge.
I almost turned to a psychopath.
How to Code...
“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live”
― John Woods3
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. 😂😂15
I saw one guy in Office writing unit test cases and documentation for his code .
Such a psychopath!!!9
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
John F. Woods
(found this in a demo snippet)6
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." - Rick Osborne1
The worst work culture I've experienced was at a local security company.
There was a reason why over 15 people come and go within 6 months (just 30 people work there):
The boss is a fucking psychopath and should be (mis)treated in a high-security mental health institution.
There has not been one sane day during the 90 days I had to work there.
A friend of mine still has to work there because he can't find anything else in his current situation...12
What is the longest time you spent for a single bug fix?
3 days and going here, this piece of shit doesn't seem to reveal itself until I go bald and be a psychopath. 😲15
I've run into problems with the app I'm working on, the problems are related to issues regarding code.
No in fact it's related the last guy who wrote the app, the code has no comments and the variable names make no sense, the only comments in the code are blocks of code... With no reason as to why it was commented.
I have to add in some checks to determine if a person that has logged in is a full member or not (full member has access to the feature I've added) and the way the guy has made this app works makes no sense to me at all.
I've tried my best to avoid all contact with his code because it makes me want to yell out in frustration.
But for this one case I have to work with what's there.
I know I've mentioned this before but I've hit my limit yet again.
And for those who don't know this guy managed to scrape together skeleton code from two apps to make part of this app, rather than using parts of the other apps he left out code that was specifically made for the other apps, (majority of the commented out code).
One app was a taxi app and from the looks of it the feature he used was to get GPS location (which I don't understand before Google maps is a think after all... The taxi app USES Google maps), the other app is some sort of funeral webcasting app (I found code imports for it, without any actual code).
I don't actual understand how this guy could put this together without not thinking "maybe this is a bad idea"
Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live
I'm that psychopath right now..... Fuck that guy (don't know where he lives though)2
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
— Rick Osborne1
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. - Martin Golding1
fuck you, man. eat a bag of dicks, a bag of shit and a shit load of dead animals.. you dumb fucking cunt ... go and die ... who the fuck modifies state of 3rd party object and think it is ok to do so.. the fucking prick deserves to get castrated with rusty, old school, gardening scissors...
through some mysterious, obfuscated, buried deep in the asshole code, the fucker decided to set a user-specific value in the default query params of guzzle so that every fucking object using it passes the fucking thing around like a cheap hooker at a dorm party... causing the API calls to misbehave because of the fucking thing.
you send the parameters you want to send but mister sucking-dick-up-the-ass-smarty-pants decided you don't want to do that and because of that I almost broke a core library a week before a fucking major feature release because half the functionality got broken automagically, worst thing is I have no fucking clue where the bloody thing gets inserted ...
I swear if you do that I will find you and I will get a rusty razor to cut your balls into paste and rectally infuse them untill your shit start to come out of every oriphise of your fucking empty head11
Well... I had in over 15 years of programming a lot of PHP / HTML projects where I asked myself: What psychopath could have written this?
(PHP haters: Just go trolling somewhere else...)
In my current project I've "inherited" a project which was running around ~ 15 years. Code Base looked solid to me... (Article system for ERP, huge company / branches system, lot of other modules for internal use... All in all: Not small.)
The original goal was to port to PHP 7 and to give it a fresh layout. Seemed doable...
The first days passed by - porting to an asset system, cleaning up the base system (login / logout / session & cookies... you know the drill).
And that was where it all went haywire.
I really have no clue how someone could have been so ignorant to not even think twice before setting cookies or doing other "header related" stuff without at least checking the result codes...
Basically the authentication / permission system was fully fucked up. It relied on redirecting the user via header modification to the login page with an error set in a GET variable...
Uh boy. That ain't funny.
Ported to session flash messages, checked if headers were sent, hard exit otherwise - redirect.
But then I got to the first layers of the whole "OOP class" related shit...
It's basically "whack a mole".
Whoever wrote this, was as dumb and as ignorant to build up a daisy chain of commands for fixing corner cases of corner cases of the regular command... If you don't understand what I mean, take the following example:
Permissions are based on group (accumulation of single permissions) and single permissions - to get all permissions from a user, you need to fetch both and build a unique array.
Well... The "names" for permissions are not unique. I'd never expected to be someone to be so stupid. Yes. You could have two permissions name "article_search" - while relying on uniqueness.
All in all all permissions are fetched once for lifetime of script and stored to a cache...
To fix this corner case… There is another function that fetches the results from the cache and returns simply "one" of the rights (getting permission array).
In case you need to get the ID of the other (yes... two identifiers used in the project for permissions - name and ID (auto increment key))...
Let's write another function on top of the function on top of the function.
My brain is seriously in deep fried mode.
Untangling this mess is basically like getting pumped up with pain killers and trying to solve logic riddles - it just doesn't work....
So... From redesigning and porting from PHP 7 I'm basically rewriting the whole base system to MVC, porting and touching every script, untangling this dumb shit of "functions" / "OOP" [or whatever you call this garbage] and then hoping everything works...
A huge thanks to AURA. http://auraphp.com/
It's incredibily useful in this case, as it has no dependencies and makes it very easy to get a solid ground without writing a whole framework by myself.
The worst I’ve experienced was a psychopath boss who liked to throw employees against each other with lies and gossips. He loved to talk shit about everybody, used to disappear during the whole project just to appear at end anticipating the deadlines and scolding everybody.
Plus he used delay monthly paychecks in 2 weeks minimum and liked to say that this practice was good to find out who’s loyal and thick skin.
But now my bosses are quite toxic too and I feel gaslighted because I’m unsure up to which point it’s my fault.
Guess things never change much.8
Looking back on my Christmas holidays while waiting for my train to come.
I wrote my last exam on the 22, took the train home on 23, spent Christmas and the 25 with my family, searched for a new apartment for 3 days, had two days left to do an assignment due to the 30, was packing till 3 in the morning today and will have my first day of work tomorrow. (Yeah, I spend new year's Eve home alone and completely sober...)
I wonder when I will have an entire meltdown and become some Joker level psychopath... Also happy new year everybody 😁6
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live5
"Always code as if the guy who ends up maintaining your code is a violent psychopath who knows where you live", which as I end up maintaining my own code, happens to be true.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live... because if I don't know now, I will find it out.3
I was brought into my new position as part of an transformation of waterfall to agile methodology.
We are now running 4 while projects and need to restart the remaining 29 projects using agile principles. The business management type people love agile, but somehow the people inside the current waterfall practices doesn't.
They are afraid their silo work will either expand or not exist thus making it hard to transform the company. Also the company have been subjected to the dead sea effect.
Therfore, the project that is currently in the space of transformation is making my blood boil because people just ain't passionate enough about software.
Either you craft software, or, well you sit and suckle other's money. People suckling should please grow up and start venturing beyond there cozy 9 to 5 and transform to be a professional software doer rather than a BA, DEV, IT GUY.
YOU BASTARDS GET A SHITLOAD OF MONEY AND DON'T DESERVE IT FOR THE EFFORT YOU BRING.
It is your software, own it, be proud of it. Read up to make it better. And as always, the people debugging your code can be a violent psychopath
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.1
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live"
Reviewing VBA code with least comments possible and out of nowhere there is an Application.Undo which crashes the macro
*Write comments as if the next dev is a psychopath who knows where you leave*3
"Always program as if someone who has to work with your code is a violent psychopath who knows where you live."
I am very close to being a violent psychopath from "Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live."
Foreach within a foreach with counters and a check if the counters match in the inner foreach and in that case do something.... And that's not even the worst part of the code I have to modify ever so slightly... Fml3
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live!
The beginning of my next blog post... at 6am.... Guess who hates his job and why?
<h1>Thinking Before You Code<h1>
The choices you make when you code a part of a program, or even the program itself, impacts everything around it. The importance increases as the size and the scope does.
Quick and dirty simple scripts that get a simple job done and rarely needs changing… fine.
A bunch of quick and dirty hacks all pieced together as part of a giant application... that constantly changes? That's duct tape code that will bite you in the ass later or will give birth to a maniacal raging psychopath that wants to kill you.
<b>SOLID, design patterns: saving yourself and others from you</b>
Bloody ISO7816/EMVco contact is a huge pile of exceptions to the rules.
I'm still not sure if there are any rules at all. Maybe it's just exceptions.
I will become the famous violent psychopath if I get to know where those guys live that invented such crap.
Write your <insert language here> code like the person who's going to be maintaining it 6 months from now is a vicious psychopath and knows where you live.