AboutI hate everyone and everything. But, above all, I hate Laravel.
Joined devRant on 3/12/2019
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 using the @use directive to avoid bundling the same thing a hundred thousand times.
Sass doesn't give a flying fuck and bundles the same thing a hundred thousand times
Why you must hurt me like this5
But what did Webpack do to my named capture groups?4
Hurr durr master-slave is racist blacklist is racist robot is racist ('cause in some language it apparently means "slave"...?)
just let me coode ffs6
> mmmmh this old code I wrote for my previous job could be handy now, lemme just git pull the thing real quick
> clone the repository in my new pc
> can't deploy because I intentionally didn't commit any of my old credentials, no env files other than the example, and everything is smooth clean to prevent some dumb fuck like me from just grabbing the project and do whatever
There's an old IHateForALiving giving me the middle finger.
> Laravel lets you create migrations to manage the state of the DB
> your colleague doesn't give a flying fuck, just raw SQL on the db to perform every change
> performed initial insertions without seeders, can't reproduce his db on my local environment
> can't even run migrations anymore 'cause it would break everything6
> new job, receive new pc
> everything looks cool, but they didn't go with Windows's setup
> it pops up now
> whatever, let's make windows happy
> No I don't want Edge
> No I don't want Office
> No I don't want OneDrive
> Windows move everything inside onedrive folder anyway
> have a heart attack when all of my fucking codebase disappeared
Luckily it was just moved (didn't know where, though), but wtf Windows, if I wanted to deal with these antics I'd buy Apple. I'm sticking with Windows precisely to avoid these strange unmotivamed fuckeries, why are you doing this to me12
Laravel being easy to use is far from a strong point. "Easy to use" is a cool thing for pro developers who know what's going on under the hood and don't wanna write the same thing a hundred times.
It should translate into good developers being able to work immediately, not in bad developers getting away with whatever without getting even a slight warning just because the framework itself accepts whatever weird crap you can come up with while you're training.
But that's what it became: a free for all for every noob out there. You find yourself working with a slow application (and by "slow" I mean "slow even by Laravel's standards", which are fairly low), and as soon as you look what's going on you find someone decided to load a hundred thousand middlewares, queries optimized like ass on top of Eloquent, and the whole application breaks as soon as you just run config:cache to try speeding it up a little bit, because env-ing your way out of whatever problem is so quick. Easy to use needs to be there for pro developers; give such a tool to a newbie, you end up with a maintenance nightmare3
LARAVEL MEME OF THE DAY
If 60> requests are sent in a short amount of time (and you have Laravel Passport installed) you will not receive an IlluminateResponse instance anymore; you will instead receive a slightly different SymfonyResponse.
Why? For the glory of Satan, of course.
If your code doesn't account for that undocumented garbage, your code will start throwing middle fingers here and there.
Tell me again the productivity joke with Laravel, I've just lost an hour and a half 'cause unit tests were failing and I had no idea why.6
DAILY LARAVEL PROBLEMS
I need to parse a JWT with some custom claims. There's a JWT library with Laravel; documentation really lacking, kinda hardcoded to work with Laravel but whatever; it's already installed, let's see what can I do with it.
It turns out I can't say something like "take this token, parse it, tell me it's valid". Let's see how that goes.
You need to build a parsing class with a manager, some auth stuff, a parser.
To build said manager you need a provider that implements a contract, a blacklist, a factory (of what?)
To build the factory (of what?) you need a claim factory and a payload validator
To build the claim factory you need a request
To build the blacklist you need a Storage
To build the storage you need a CacheContract
To build a CacheContract you need IDK it's a mess
To build the contract you need... IDK for real
WHY LARAVEL IS SHIT: 'cause only in this framework it seems reasonable to build this clusterfuck to parse a base64 encoded string, throw some json_decode and check a signature. And have it work only to authenticate a user.1
From my work -as an IT consultant in one of the big 4- I can now show you my masterpiece
INSIGHTS FROM THE DAILY LIFE OF A FUNCTIONAL ANALIST IN A BIG 4 -I'M NOT A FUNCTIONAL ANALYST BUT THAT'S WHAT THEY DO-
- 10:30, enter the office. By contract you should be there at 9:00 but nobody gives a shit
- First task of the day: prepare the power point for the client. DURATION: 15 minutes to actually make the powerpoint, 45 minutes to search all the possible synonyms of RESILIENCE BIG DATA AGILE INTELLIGENT AUTOMATION MACHINE LEARNING SHIT PISS CUM, 1 hour to actually present the document.
- 12:30: Sniff the powder left by the chalks on the blackboards. Duration: 30 minutes, that's a lot of chalk you need to snort.
13:00, LUNCH TIME. You get back to work not one minute sooner than 15.00
- 15:00, conference with the HR. You need to carefully analyze the quantity and quality of the farts emitted in the office for 2 hours at least
- 17:00 conference call, a project you were assigned to half a day ago has a server down.
The client sent two managers, three senior Java developers, the CEO, 5 employees -they know logs and mails from the last 5 months line by line-, 4 lawyers and a beheading teacher from ISIS.
On your side there are 3 external ucraininans for the maintenance, successors of the 3 (already dead) developers who put the process in place 4 years ago according to God knows which specifications. They don't understand a word of what is being said.
Then there's the assistant of the assistant of a manager from another project that has nothing to do with this one, a feces officer, a sys admin who is going to watch porn for the whole conference call and won't listen a word, two interns to make up a number and look like you're prepared. Current objective: survive. Duration: 2 hours and a half.
- 19:30, snort some more chalk for half an hour, preparing for the mail in which you explain the associate partner how because of the aforementioned conference call we're going to lose a maintenance contract worth 20 grands per month (and a law proceeding worth a number of dollars you can't even read) and you have no idea how could this happen
- 20:00, timesheet! Compile the weekly report, write what you did and how long did it take for each task. You are allowed to compile 8 hours per day, you worked at least 11 but nobody gives a shit. Duration: 30 minutes
- 20:30, update your consultant! Training course, "tasting cum and presenting its organoleptic properties to a client". Bearing with your job: none at all. Duration: 90 minutes, then there's half an hour of evaluating test where you'll copy the answers from a sheet given to you by a colleague who left 6 months ago.
- 22:30, CHANCE CARD! You have a new mail from the HR: you asked for a refund for a 3$ sandwich, but the receipt isn't there and they realized it with a 9 months delay. You need to find that wicked piece of paper. DURATION: 30 minutes. The receipt most likely doesn't even exist anymore and will be taken directly from your next salary.
- 23:00 you receive a message on Teams. It's the intern. It's very late but you're online and have to answer. There's an exception on a process which have been running for 6 years with no problems and nobody ever touches. The intern doesn't know what to do, but you wrote the specifications for the thing, 6 years ago, and everything MUST run tonight. You are not a technician and have no fucking clue about anyhing at all. 30 minutes to make sure it's something on our side and not on the client side, and in all that the intern is as useful as a confetto to wipe your ass. Once you're sure it's something on our side you need to search for the senior dev who received the maintenance of the project, call him and solve the problem.
It turns out a file in a shared folder nobody ever touches was unreachable 'cause one of your libraries left it open during the last run and Excel shown a warning modal while opening it; your project didn't like this last thing one bit. It takes 90 minutes to find the root of the problem, you solve it by rebooting one of your machines. It's 01:00.
You shower, watch yourself on the mirror and search for the line where your forehead ends and your hair starts. It got a little bit back from yesterday; the change can't be seen with the naked eye but you know it's there.
You cry yourself to sleep. Tomorrow is another day, but it's going to be exactly like today.10
My fellow programmer, you came here for a rant?
I apologize, you can have no rants. I won't rant for you today.
But you can still help me. What do you think of TypeORM? I'm starting a new project and I'm thinking about using it.5
First day of new job. No more rants about Blue Prism, that's in the past now. New year new me!
Time to go back to rant against backend developers and their fucking Laravel.
First lesson of the day: if I see another select2 I'm gonna commit war crimes. You see this nice plugin for jQuery, you use it everything's so cool and modern and you think you're the smart one of the team 'cause you don't know you've just polluted an otherwise perfectly fine web page with the dirtiest js shit you could possibly find, just because you didn't feel like searching one more minute for whatever replacement for a drop down you can easily find.
You're not the smart one. You're a criminal.4
We all make Blue Prism the receving end of our jokes and that's actually very unfair, they even developed their own sorting algorithms, fuckYouSort, and that's something I want to acknowledge.2
> Blue Prism just stopped working
And that's how 12 time-critical processes in production just went out of the window for no fucking reason other than the sheer malice of those beasts of burden who designed BP in the first place :)
0 days since last catastrophic blue prism crash6
Want to hear another joke?
Blue Prism allows you to export stuff from version 6.7 to 6.3.
However they changed 𝘷𝘦𝘦𝘦𝘦𝘳𝘺 slightly the way they store the position of the nodes. No new features -or at least nothing that you would care about- but the structure of the node itself want went from
<position x=1 y=2 w=3 h=4></position>
The whole project collapsed to a single point, catastrophic consequences as far as exception handling. A generic "fuck you" for no real reason other than the sheer malice of those beasts of burden who developed Blue Prism in the first place.
And I have two different versions of Blue Prism on dev and prod :)2
THE CODE USED IN MY MANDATORY ONLINE TRAINING ABOUT CYBER SECURITY AND STUFF LIKE THIS:
Oh boi it would be a real shame if someone proxied your precious function :)2
ON MY ONGOING QUEST TO FIND A JOB
I didn't think I'd see the day when I would be sent an offer requiring knowledge in vTiger, Wordpress, machine learning and accounting.
And yet here we are, adding yet another point to the already long list of reasons why we need to crucify the CEO of the HR
A CASE AGAINST BLUE PRISM
Let's review one of the worst weeks I had with Blue Prism
Monday: Yay! Solved one of the problems we've been carrying around for a week before.
One of the robots suddenly became slow. Like, REAL slow. A process that would take 3 minutes per record now takes 45, and that broke apart all the following schedule.
There were no updates on the application server, the production machine, the robot, it just became slow. And not always slow; a process manually run from console room would work, a process in debug room would work, it's just the scheduled part that caused problems.
It turned out, BP didn't seem to like that particular combination of schedulation + process + machine. Moving the process to a different machine seemingly fixed that. IDK why.
Tuesday: One of our processes waits for a code to appear in the page, and when that happens, it memorizes this code. However, now it is always returning blank. Worked for months, now it breaks every single time.
After half a day of debugging a bug which DIDN'T HAPPEN IN DEBUG MODE YET AGAIN, at 11pm I decided to just place a nonsensical timeout in page before reading and call it a day.
WEDNESDAY: a scheduled process didn't start. "No sessions created". Thanks Blue Prism, very cool.
THURSTAY: This time, schedulation did start, but the process is "waiting". As in: it's 9:30 am, the process has been stuck in the same step since 6:00 am. Turns out, it blocked during a navigate stage; you need to send a string to clipboard using the standard BP action for that, then paste and click "enter", but for some reason the standard BP object sent "ORRCO" instead of "ORRICO" to clipboard, which obviously returned no results and then... the process just didn't feel like doing things anymore. No errors, no logs, nothing: just sitting on its ass. Because fuck you that's why.
Friday: another process uses a very moderate amount of scripts to work. Nothing really fancy, just a couple of lines of code to place in page some IDs and selector to help BP do its thing, otherwise selecting these elements would be a nightmare.
The same script -it's not dynamically generated-worked yesterday, the day before and the day after. But sometimes it will not. Why? The answer, my friend, is blowin'' in the wind
Making some changes to a Blue Prism process I have never seen before
Q: Can we test these changes before going live?
A: No. We are going to pinpoint the problems on the road
Q: Nasty. However we can retry the process if anything goes wrong
A: No. It runs 5:00 to 17:00
Q: Wait, so I have one shot at making this shit work and it's tomorrow?
Yesterday at 2:00 I noticed 2 of the 3 machines are dead, now the process is self destructing every 5 minutes and my mentor, who usually spend weeks without answering phone calls, apparently learned again how do smartphones work 'cause this time he did fucking call.2
Recruiter writes to me on LinkedIn for a job
Have an interview with the recruiter, everything smooth
Then interview with the HR of the company, everything smooth
Then the HR talks to the CTO, and the CTO is like "mmmmh this guy works as a consultant, I don't like this. Yeet him".
This absolute madman out there not giving a single flying fuck about consultants, head hunter, HR, only pure coding, literally living the dream.1
9 months ago my boss promised I would not be working on RPA anymore.
Monday, at 12:00, my boss assigned to me the maintenance of 13 robots.
Monday, at 15:00, I was talking to a recruiter and discussing my next job.
> Mister IHateForALiving, we have an automated procedure which downloads files from a website. You should update it and use the new webservice instead.
Sounds cool, just send me the documentation
> Oh yeah, have this example of a request
... Dude, this thing has 10 parameters. None of them are named, and 7 of them are actually nulled. How do I fill this thing?
Oh, ehm... Let's ask the client then!
> NONONONO, we told the client this update was live at least 3 months ago, we can't begin asking questions now
Ouch. How much time do I have to make sense of this mess?
> The new supplier should take charge by the end of the month, I'd like this to be live by Tuesday
Needless to say, it's not going well, but that ain't none of my business1
I'm working again with blue prism on a very very old SAP website. A hundred thousand nested iframes with a hundred thousand nested tables.
Please kill me, I long for the sweet embrace of death5
I wanted to post a rant about Spring and all, but the thing is so fucking huge I'm not even sure which part should I hate first, if any at all2
An assistant manager asked to SOMEUNREALISTICEXPECTATION, and said it had to be done within SOMESTUPIDLYCLOSEDAY.
I said, of course, I would not do it.
He answered "no problem, we can go with SOMEPARTOFTHEUNREALISTICEXPECTATION before SOMEEVENCLOSERDAY (ie: tomorrow).
I have already said a "no" before, didn't feel like saying no again.
After all, I said, what could possibly go wrong?
The time I left office, Friday night, it everybody's guess.3