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
Search - "tragic"
-
Its Friday, you all know what that means! ... Its results day for practiseSafeHex's most incompetent co-worker!!!
*audience: wwwwwwooooooooo!!!!*
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: GASP!*
*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
*audience: ooooohhhhh*
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.
*audience: laughs*
Oh I assure you its no laughing matter. C was with us for 6 whole months ... 6 excruciatingly painful months.
Backstory:
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.
Yours truly,
practiseSafeHex20 -
I wrote a database migration to add a column to a table and populated that column upon record creation.
But the code is so freaking convoluted that it took me four days of clawing my eyes out to manage this.
BUT IT'S FINALLY DONE.
FREAKING YAY.
Why so long, you ask? Just how convoluted could this possibly be? Follow my lead ~
There's an API to create a gift. (Possibly more; I have no bloody clue.)
I needed the mobile dev contractor to tell me which APIs he uses because there are lots of unused ones, and no reasoning to their naming, nor comments telling me what they do.
This API takes the supplied gift params, cherry-picks a few bits of useful data out (by passing both hashes by reference to several methods), replaces a couple of them with lookups / class instances (more pass-by-reference nonsense). After all of this, it logs the resulting (and very different) mess, and happily declares it the original supplied params. Utterly useless for basically everything, and so very wrong.
It then uses this data to call GiftSale#create, which returns an instance of GiftSale (that's actually a Gift; more on that soon).
GiftSale inherits from Gift, and redefines three of its methods.
GiftSale#create performs a lot of validations / data massaging, some by reference, some not. It uses `super` to call Gift#create which actually maps to the constructor Gift#initialize.
Gift#initialize calls Gift#pre_init (passing the data by reference again), which does nothing and returns null. But remember: GiftSale inherits from Gift, meaning GiftSale#pre_init supersedes Gift#pre_init, so that one is called instead. GiftSale#pre_init returns a Stripe charge object upon success, or a Gift (and a log entry containing '500 Internal') upon failure. But this is irrelevant because the return value is never actually used. Pass by reference, remember? I didn't.
We're now back at Gift#initialize, Rails finally creates a Gift object using the args modified [mostly] in-place by all of the above.
Another step back and we're at GiftSale#create again. This method returns either the shiny new Gift object or an error string (???), and the API logic branches on its type. For further confusion: not all of the method's returns are explicit, and those implicit return values are nested three levels deep. (In Ruby, a method will return the last executed line's return value automatically, allowing e.g. `def add(a,b); a+b; end`)
So, to summarize: GiftSale#create jumps back and forth between Gift five times before finally creating a Gift instance, and each jump further modifies the supplied params in-place.
Also. There are no rescue/catch blocks, meaning any issue with any of the above results in a 500. (A real 500, not a fake 500 like last time. A real 500, with tragic consequences.)
If you're having trouble following the above... yep! That's why it took FOUR FREAKING DAYS! I had no tests, no documentation, no already-built way of testing the API, and no idea what data to send it. especially considering it requires data from Stripe. It also requires an active session token + user data, and I likewise had no login API tests, documentation, logging, no idea how to create a user ... fucking hell, it's a mess.)
Also, and quite confusingly:
There's a class for GiftSale, but there's no table for it.
Gift and GiftSale are completely interchangeable except for their #create methods.
So, why does GiftSale exist?
I have no bloody idea.
All it seems to do is make everything far more complicated than it needs to be.
Anyway. My total commit?
Six lines.
IN FOUR FUCKING DAYS!
AHSKJGHALSKHGLKAHDSGJKASGH.7 -
My dad was a Novell Certified Engineer and my mom a Bachelor in Computer Systems, so I kinda admired them until one tragic day my dad suggested "Hey son why don't you make it using Access".1
-
We made a software for hospitals in my old department. The senior Dev kinda gave me the software, because he thought it sucked and was perfect for a newbie like me. I really loved my work and gave everything I had to improve the quality of software, introduced tests, refactored old smelly code and talked with the product manager to overhaul the ui. Several months later this little shit project the senior gave the newbie, was a huge success and better than any thrash that the senior has created. The senior was really pissed, so everytime I had some days off, he tried to sabotage me in any way. I couldn't take that and many other things anymore, so I left the company. The most tragic part is, that my software could become a massive foundation for the company, but after I left they abandoned it. I still had some good contacts within the old company and they said, that the senior dev told everyone how bad everything was, that I have done through the years and that they can't even describe how bad the architecture of the software is. tl;dr fuck off!! I've done so much things for the company and they never appreciated it. I'm glad I quit that job. Best decision ever!!2
-
People that post shit like "if you believe/support x, then unfollow me" are some extremely conceited and childish morons.
For starters, surrounding yourself with only people who think just like you will make you extremely close minded, which is ironic as fuck because in my experience these people believe x and bitch at y for being close minded whenever they're just as guilty as y.
Secondly is your head that far up your own ass that you can't accept that people aren't gonna be like a flock of sheep and all believe one thing? That's the great thing about us: we're given the opportunity to have our own opinion but these retards don't like whenever people exercise that right. It's tragic how retarded some people actually are.30 -
BA: we have 16meg download yet mine is only going at 2..
Me: sounds about right.
BA: are you an idiot?
Me: *I don't need to explain myself to scum like you*2 -
I got an email from a seemingly random gmail address with 'essential!' written in the title.
Turns out that this was my university trying to contact me. They expect me to send my full name, university and other personal information directly over a Google survey in an email from an address I don't recognise with an unprofessional subject.
Safe to say, I didn't fill that one in.4 -
Onthisday in 1912, brilliant Codebreaker, genius computer scientist, Alan Turing was born.
As we remember his remarkable life, and tragic death. -
I fucking killed my hard drive by installing the guest additions in a Windows VM! Everything freezed and crashed suddenly, how the hell is that possible? How can Windows fuck everything up, even in a VM??
(Probably wasn't Windows fault, that makes me even more angry).
This hard drive wasn't even two months, his predecessor died heroically in a tragic magnet incident :(3 -
There are some people who do not want to talk about death. Others will simply talk about it out of curiosity. But sometimes, such a tragic subject can also bring out the best in you when it comes to writing. Let us talk about writing a death essay. This subject can be considered a good topic especially if you do not have one yet.
One important thing that you must know before we talk about the topic is the essay structure. By now you should already know the parts of a formal essay and what their functions are. In any case you need to input the introduction, thesis statement, body paragraphs and the conclusion. Now let us take a look at some possible topic scopes for your death essay.2 -
!rant
tl;dr I should start writing sitcoms
So my mind is going crazy. Last I night I had a dream about a colleague. He was working on a kind of smart photo frame thingie, which should be published to stores like walmart and so on. Also his 30th birthday was around the corner and his soon to be wife was driving him nuts. So the stage is set for some action. I was visiting him along to said store on the publishing day since he was that paranoid as his job was tightly connected to the success of this project. Anyway now the whole thing gets this tragic comedic type of feeling. He is about to go through a mental breakdown in the very store. Destroying things, yelling like a gramps and stuff you know from sitcoms. I swear at some point he did loose his pants. Also the staff didn't give a damn about him. I was trying to clean his path of destruction so that no one takes note of this. Of course I failed gloriously. This thing goes on for a while. Finally in some kind of credits scene he was sitting in front of his laptop reading a blog post about the success of this thingie. After an insanly long pause of suspension he was starting to kiss his monitor in relief. I swear to god there was fake laughter somewhere in the background like in the good old sitcoms.... Never eat pizza right before sleeping.... -
Dear future me,
Please avenge us. Ruin the lives and reputation of specific individuals of the university professors and assistants that have ruined my life. Damage they had done is fatal and irreversible. Consequences for their actions are mandatory. For our own sanity, I am looking forward to seeking vengeance that will only ruin their careers, and from there let the karma finish them off.
Life is unfair, but why is it unfair to good people? I'll be the batman and balance this unfairness to make the other side of individuals experience it, too.
If i caught a virus and was unable to study for exam and failed because of that and you say life is unfair, you are inhumane.
If my mother got diagnosed with cancer and i was unable to study for exam and failed because of that and you say life is unfair, you are inhumane.
If my dad experienced a stroke and i had to be with him to make sure he's fine and unable to study for exam and failed because of that and you say life is unfair, you are inhumane.
If police knocked on my door and said my whole family just died in a car crash and i am unable to study out of depression and failed the exam because of that and you say life is unfair, you are inhumane.
You are inhumane because you have a choice to show that you as a human have compassion and understanding in tragic life situations and therefore work something out regarding exam, instead of making that student fail and walking over corposes like a cruel emotionless devil.
But they wont. They wont show it because they're inhumane. They're working for the matrix and not for the people. All of the professors and assistants.
I truly hope, and wish to create a curse, for all professors and assistants in all universities, for some tragic life event to happen to them and their family members with a death outcome, so I can also tell them life is unfair.
In fact, I'll step it up a level by enforcing "life is unfair" policy onto them by anonymously, slowly, ruining their careers from the shadow. Internet is a wild place that can ruin someones life. They have pushed me off the edge of my morality. They have turned me into Joker.
I mentioned earlier that I'll let karma take care of them, but what if I am, their karma? They have created a Joker. They wanted this war. These robots we call "professors and assistants" would rather die for the matrix than show human compassion.
What i plan to do to them might be illegal; but so is illegal to be inhuman fascists. Therefore like a batman, I will fight crime with crime. I cannot let them turn me into a Joker, because the Joker ruins lives of the good people, too. Batman ruins lives of the bad people only.
Their careers will be ruined, their life will be falling apart, they will continue to live but this time in a special kind of pain, the same pain they have caused to me, just so they can maybe understand how does it feel when you're hopeless and being told "lifes unfair".
It is.
Sincerely,
Me from the past, good luck1 -
The worst documentation had to be students work in the sophomore programming course I was a TA for in college.
What was even more tragic was the actual code, but that's what you get for reading Facebook when you are in class.