AboutYear 10 (2017 - 2018)
SkillsPython, VB (.NET framework)
LocationLeeds, West Yorkshire, UK
Joined devRant on 4/5/2017
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
My Texas Hold'em ML algorithm keeps deciding the best strategy to make the most money, is to lose the least. Which is why it constantly folds after a certain point... *sigh*
Kids, don't gamble. Math has spoken, you'd be wise to listen.8
Some empty-headed helpdesk girl skipped into our office yesterday afternoon, despite the big scary warning signs glued to the door.
"Hey, when I log in on my phone, the menu is looking weird"
"Uh... look at my beard"
"Just look at this beard!"
"Does this look like a perfectly groomed beard"
"Uh... it's pretty nice I guess"
"You don't have to lie"
She looks puzzled: "OK... maybe it could use a little trimming. Uh... a lot of trimming". "I still like it though" she adds, trying hard to be polite.
"I understand you just started working here. But the beard... the beard should make it clear. See the office opposite to this one?"
"Perfectly groomed ginger beards. It's all stylish shawls and smiles and spinach smoothies. Those people are known as frontend developers, they care about pixels and menus. Now look at my beard. It is dark and wild, it has some gray stress hairs, and if you take a deep breath it smells like dust and cognac mixed with the tears caused by failed deploys. Nothing personal, but I don't give a fuck what a menu looks like on your phone."
She looked around, and noticed the other 2 tired looking guys with unshaven hobo chins. To her credit, she pointed at the woman in the corner: "What about her, she doesn't seem to have a beard"
Yulia, 1.9m long muscled database admin from Ukraine, lets out a heavy sigh. "I do not know you well enough yet to show you where I grow my unkempt graying hairs... . Now get lost divchyna."
Helpdesk girl leaves the scene.
Joanna, machine learning dev, walks in: "I saw a confused blonde lost in the hallway, did you give her the beard speech?"
"Yeah" -- couldn't hold back a giggle -- "haha now she'll come to you"
Joanna: "No I already took care of it"
"She started about some stupid menu, so I just told her to smell my cup". Joanna, functional alcoholic, is holding her 4pm Irish coffee. "I think this living up to our stereotype tactic is working, because the girl laughed and nodded like she understood, and ran off to the design department"
Me: "I do miss shaving though"69
My boss says "cocker" once (referring to docker) a teammate and I make a meme of that, allways we have to talk about docker we say "dicker" or when we have to talk about git we say "dick" like "dick commit, dick pull, dick push".12
Networking Professor: Alright, how many of you disagree with the way Google collects and uses data?
*basically everyone in the lecture hall raises their hands*
Professor: Okay, now if you were offered a job at Google, how many of you would still take it?
*everyone raises their hands.*22
Ladies and Gentlemen,
I present you the API I'm working with...
That's a pretty fucking useful error description right there.21
Me: Oh I see were using a non-standard architecture on this app. I like this bit but what is this doing? never seen it before.
Him: Ah we use that to abstract the navigation layer.
Me: oh ok, interesting idea, but that means we need an extra file per screen + 1 per module. We also can't use this inbuilt control, which I really like, and we've to write a tonne of code to avoid that.
Him: Yeah we wanted to take a new approach to fix X, this is what we came up with. Were not 100% happy with it. Do you have any ideas?
Queue really long, multi-day architecture discussion. Lots of interesting points, neither side being precious or childish in anyway. Was honestly fantastic.
Me: So after researching your last email a bit, I think I found a happy middle ground. If we turn X into a singleton, we can store the state its generating inside itself. We can go back to using the in-built navigation control and have the data being fetched like Y. If you want to keep your dependency injection stuff, we can copy the Angular services approach and inject the singletons instead of all of these things. That means we can delete the entire layer Z.
Even with the app only having 25% of the screens, we could delete like 30+ files, and still have the architecture, at a high level, identical and textbook MVVM.
Him: singleton? no I don't like those, best off keeping it the way it is.
... are you fucking kidding me? You've reinvented probably 3 wheels, doubled the code in the app and forced us to take ownership of something the system handles ... but a singleton is a bad idea? ... based off no concrete evidence or facts, but a personal opinion.
... your face is a bad idea15
Last time, my friend said CSS stands for
"Custom Sexy Styles" (dig into my older rants)
This time, he said
"Centering Somewhat Sucks"
Now he knows the deal.12
*at work* (fictional names)
Kevin (linux support engineer): Bob, could you come for a second to take a look at something?
Bob (senior linux engineer): *tiny voice from a corner behind a desk* bob is not available right now. Please try again later.
Kevin: Bob, please, just for a second!
Bob: bob is not available right now, please try again later.
Kevin: Boooooooooooooob, come heeeeereeeee
Bob: as said before, bob is not available right now, try again later.
Kevin: but booooooob, come oooooon.
Bob: it seems that you might have a hearing problem since bob is still not available.
Kevin: but booooohooooob, come heeeeeeeeeeereee
Bob: it seems like the person on the other side of this line might be retarded. Bob is not available right now.
Kevin: But boooohooooohooooooob come oooohooohooon, just for a seeehehecond *starts fake sobbing"
Bob: Bob is getting real tired of your shit. Leave bob alone.
One Thursday noon,
operation manager: (looking at mobile)what the.....something is wrong i am getting bunch of emails about orders getting confirmed.
Colleague dev: (checks the main email where it gets all email sent/received) holy shit all of our clients getting confirmation email for orders which were already cancelled/incomplete.
Me: imediately contacting bluehost support, asking them to down the server so just that we can stopp it, 600+ emails were already sent and people keep getting it.
*calls head of IT* telling the situation because he's not in the office atm.
CEO: wtf is happening with my business, is it a hacker?
*so we have a intrusion somebody messed the site with a script or something*
All of us(dev) sits on the code finding the vulnerabilities , trying to track the issue that how somebody was able to do that.
*After an hour*
So we have gone through almost easch function written in the code which could possibly cause that but unable to find anything which could break it.
Head asking op when did you started getting it actually?
Op: right after 12 pm.
*an other hour passes*
Head: (checking the logs) so right after the last commit, site got updated too?. And....and.....wtf what da hell who wrote this shit in last commit?
* this fuckin query is missing damn where clause* 🤬
Me: me 😰
*long pause, everyone looking at me and i couldn't look at anyone*
The shame and me that how can i do that.
Head: so its you not any intrudor 😡
Further investigating, what the holy mother of #_/&;=568 why cronjob doesn't check how old the order is. Why why why.
(So basically this happened, because of that query all cancelled/incomplete orders got updated damage done already, helping it the cronjob running on all of them sending clients email and with that function some other values got updated too, inshort the whole db is fucked up.)
and now they know who did it as well.
*Head after some time cooling down, asked me the solution for the mess i create*
Me: i took backup just couple of days before i can restore that with a script and can do manual stuff for the recent 2 days. ( operation manager was already calling people and apologising from our side )
Head: okay do it now.
Me: *in panic* wrote a script to restore the records ( checking what i wrote 100000000 times now ), ran...tested...all working...restored the data.
after that wrote an apology email, because of me staff had to work alot and it becomes so hectic just because of me.
* at the end of the day CEO, head, staff accepted apology and asked me to be careful next time, so it actually teached me a lesson and i always always try to be more careful now especially with quries. People are really good here so that's how it goes* 🙂2
I am a PHP developer.
Yeah, "another PHP is awful" rant... no, not really.
It's just unsuitable for some ambitious projects, just like Ruby and Python are.
First of all, DO NOT EVER use Laravel for large enterprise applications. The same goes for RoR, Django, and other ActiveRecord MVCs.
They are all neat frameworks for writing a todo app, as a better-than-wordpress flexible blogging solution, even as a custom webshop.
Beyond 50k daily users, Active Record becomes hell due to it's lazy fat querying habits. At more than a million users... *depressed sigh*.
PHP is also completely unsuitable for projects beyond 5M lines of code in my opinion. At more than 25M lines... *another depressed sigh*.
You can let your devs read Clean Code and books about architecture patterns, you can teach them about SOLID & DRY, you can write thousands of tests... it doesn't matter.
PHP is scaffolding, it's made of bamboo and rope. It's not brick or concrete. You can build quickly, but it only scales up to a certain point before it breaks in multiple places.
Eventually you run into patterns where even 100% test coverage still doesn't guarantee shit, because the real-life edge cases are just too complex and numerous.
When you're working on a multi-party invoicing system with adapters for various tax codes, or an availability/planning system working across timezones, or systems which implement geographical routefinding coupled to traffic, event & weather prediction...
PHP, Python, Ruby, etc are just missing types.
Every day I run into bugs which could have been prevented if you could use ADTs in a generic way in PHP. PHP7 has pretty good typehints, and they prevent a lot of messy behavior, but they aren't composable. There is no way to tell PHP "this method accepts a Collection of Users", or "this methods returns maybe either an Apple or a Pear, and I want to force the caller to handle both Apple/Pear and null".
Well, you could do that, but it requires a lot of custom classes and trickery, and you have to rewrite the same logic if you want to typehint a "Collection of Departments" instead of "Collection of Users" -- i.e., it's not composable.
Probably the biggest issue is that languages with a (mostly) structural type system (Haskell, Rust, even C#/JVM languages to some degree, etc) are much slower to develop in for the "startup" era of a project, so you grab a weak, quick prototyping language to get started.
Then, when you reach a more grown up phase, you wish you had a better type system at your disposal...28
How not to give support..
Me: Creates ticket on support site, letting them know their webservice returns "maintenance" page.
Support: "It works on our end."
Support: *closes ticket*
Euhm.. excuse me?
Me: Creates another ticket with a screenshot and the curl response information..
Support: Sends screenshot back that it works on their end. "Maybe check your firewall"
Support: *closes ticket*
I ain't playing these games..
Me: Creates new ticket with more curl responses from 4 different servers to prove it's not "firewall" related.
2 days later
Me: Sends *friendly* reminder.
6 days later
Me: Creates ticket again saying I'm still having issues.
Support: "I'm forwarding this to our technical support"
Support: *closes ticket*
10 minutes later.
Technical Support: "Here's the manual for our integration .pdf."
Excuse me, you say what now? I KNOW HOW IT WORKS, I'VE WRITTEN THE INTEGRATION ALREADY. THE SERVICE JUST SEEMS TO BE DOWN FFS.. pls..
Me: Sends mail to their project manager who manages the clients dossier with support history and such.
Him: "I'll check it out and let you know."
1 day later.
Support: "We had some issues this and that, wasn't publically availble, works now, .."
What a nice way to waste your time..6
How i got to devRant.
Boss comes in, sees me super chill.
Other people enter, boss sees me not chill.
Sends me an email and says "Enjoy".
I love this guy :')
Ps. Hope he doesn't expect work today8
Pessimist: a O(2^n) algorithm's performance decreases exponentially as input increases.
Optimist: a O(2^n) algorithm's performance increases exponentially as input decreases.2
Me Vs a PHP teacher
And to do login, we just do SELECT username WHERE password = (userinput)
Really? Checking raw userinput against plaintext password?
There is no point in doing it securely here because if they want, the students can go take a seperate course on security
So no point in teaching students that they should write their code secure by default and just leave it as a afterthought?
Yes, because this is how i have always done it
Okay, time for a break
*Uses the break to teach all students about sql injection, password hash and salt, rainbow tables and user input sanitizing*
Students to teacher:
He's right, if you dont teach us to code securely by default, we are likely to end up causing a data leak or be hacked, if you dont teach us properly we have no point coming here
*Smiles at the teacher with a face that says: Pwnd*
Alright then, tell me whats wrong in my code
I was so proud that i helped the class understand secure by default principles61
Our current designer is convinced that 00FF44 bright green fits well with the rest of our soft purple/blue color scheme.
I am not a designer, but have worked in a color laboratory, so I've tried time and time again to explain CIE LAB color space, and how at least HCL is a good way to pick & group colors into palettes by using 2-3 luminances for equidistant hues while keeping chroma constant.
I've tried to tell him that the bright green almost physically makes my eyes bleed, because humans are quite sensitive to greens.
He just keeps using the phrase "but it makes the buttons pop nicely".
I just want to pop his skull open with my keyboard. 😫12
When I was getting my CS degree, in the first year (2003-2004) all projects had to be delivered in an envelop containing the printed document and a floppy disk with the code/program inside. Yes, a floppy disk.
So whenever I couldn't finish the project on time, I just dropped a corrupted floppy disk on the envelop, this way I got at least one more week to work on the project and when professor came to me like "Hey, your floppy didn't work" I was like "no way! oh man, I think I have a copy here, try this one instead".
Oh those good old times that will never come back.4