Details
-
Aboutwebdev and programmer
-
Skillsphp, js, java, c#, python, android, html, css, sql, symfony, polymer, vue
-
Github
Joined devRant on 11/7/2016
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
-
Client: I need you to fix my website
Me: Okay, can you send me your existing website files for me to fix.
Client: here is the screenshot
Me: -_-5 -
bf is starting his first job as a dev and asked me how to prepare. i had no clue what to tell him lol. any suggestions?30
-
Can we take a moment to recognize how absolutely retarded JS' event system is?
Events aren't objects. No, they're managed by an object, and identified by a string.
To subscribe to an event, you call object.addEventListener(name, callback). Because for some reason we can't just have an event object. Events MUST have an owner.
But to unsubscribe you don't call the function addEventListener returned, you don't use the token it returned either. No, you pass the same function to removeEventListener.
Because we don't use serializable tokens like in PP, and we don't return functions like in FP, no, we use functions as tokens, realising idiomatic DFP.2 -
The colleague:
- I can't work, my chair is uncomfortable
- I can't work, my chair is not ergonomic
- I can't work, my desk is too small
- I can't work, my legs are uncomfortable
- I can't work, my keyboard is not ergonomic
- I can't work on this task, John knows how to do it better
- I will only work on <this> type of tasks. I will not work on others
*gets assigned <other> task; browses the internet all day; at the EOD task isn't even touched*
- I can't work with Jack, he's too noisy
- I can't come to the office on time, there's traffic in the city
- I couldn't come yesterday, I was out of town. No, I will not log a vacation day - I was NOT on vacation. It's personal
- I can't<...>
Manager, 2 days to the end of said colleague's probation period:
- I am very sorry to tell you this, but our attitudes are not in line and we cannot continue working together. Since this is your 5th warning, we have to let you go.
The colleague:
- What?? How come?? I did NOT see this coming... You can't do this! I work here! This is where I work and you can't fire me!
*got his things from his desk and left. Never came back*
Everyone at the office:
- YAYYYY!!!! Let's have a shorter day today and let's celebrate this riddance in a pub! (manager agreed)7 -
My local government made a website where you can check whether your registration for covid vaccination has been successful because the bureaucrats keep losing people's applications.3
-
So, you start with a PHP website.
Nah, no hating on PHP here, this is not about language design or performance or strict type systems...
This is about architecture.
No backend web framework, just "plain PHP".
Well, I can deal with that. As long as there is some consistency, I wouldn't even mind maintaining a PHP4 site with Y2K-era HTML4 and zero Javascript.
That sounds like fucking paradise to me right now. 😍
But no, of course it was updated to PHP7, using Laravel, and a main.js file was created. GREAT.... right? Yes. Sure. Totally cool. Gotta stay with the times. But there's still remnants of that ancient framework-less website underneath. So we enter an era of Laravel + Blade templates, with a little sprinkle of raw imported PHP files here and there.
Fine. Ancient PHP + Laravel + Blade + main.js + bootstrap.css. Whatever. I can still handle this. 🤨
But then the Frontend hipsters swoosh back their shawls, sip from their caramel lattes, and start whining: "We want React! We want SPA! No more BootstrapCSS, we're going to launch our own suite of SASS styles! IT'S BETTER".
OK, so we create REST endpoints, and the little monkeys who spend their time animating spinners to cover up all the XHR fuckups are satisfied. But they only care about the top most visited pages, so we ALSO need to keep our Blade templated HTML. We now have about 200 SPA/REST routes, and about 350 classic PHP/Blade pages.
So we enter the Era of Ancient PHP + Laravel + Blade + main.js + bootstrap.css + hipster.sass + REST + React + SPA 😑
Now the Backend grizzlies wake from their hibernation, growling: We have nearly 25 million lines of PHP! Monoliths are evil! Did you know Netflix uses microservices? If we break everything into tiny chunks of code, all our problems will be solved! Let's use DDD! Let's use messaging pipelines! Let's use caching! Let's use big data! Let's use search indexes!... Good right? Sure. Whatever.
OK, so we enter the Era of Ancient PHP + Laravel + Blade + main.js + bootstrap.css + hipster.sass + REST + React + SPA + Redis + RabbitMQ + Cassandra + Elastic 😫
Our monolith starts pooping out little microservices. Some polished pieces turn into pretty little gems... but the obese monolith keeps swelling as well, while simultaneously pooping out more and more little ugly turds at an ever faster rate.
Management rushes in: "Forget about frontend and microservices! We need a desktop app! We need mobile apps! I read in a magazine that the era of the web is over!"
OK, so we enter the Era of Ancient PHP + Laravel + Blade + main.js + bootstrap.css + hipster.sass + REST + GraphQL + React + SPA + Redis + RabbitMQ + Google pub/sub + Neo4J + Cassandra + Elastic + UWP + Android + iOS 😠
"Do you have a monolith or microservices" -- "Yes"
"Which database do you use" -- "Yes"
"Which API standard do you follow" -- "Yes"
"Do you use a CI/building service?" -- "Yes, 3"
"Which Laravel version do you use?" -- "Nine" -- "What, Laravel 9, that isn't even out yet?" -- "No, nine different versions, depends on the services"
"Besides PHP, do you use any Python, Ruby, NodeJS, C#, Golang, or Java?" -- "Not OR, AND. So that's a yes. And bash. Oh and Perl. Oh... and a bit of LUA I think?"
2% of pages are still served by raw, framework-less PHP.32 -
I've already ranted about this before, so I will summarize, but users passwords would be placed in plain text at the bottom of a webpage if you interacted with the page in a certain way. This page did not require a login, so user passwords were basically public. Gg.2
-
So I just found out that multi-line editing can copy a matrix of letters and paste it on other lines. This is amazing. Imagine being the person who thought of this feature.1
-
All fun and games until you inherit a legacy c project with 30k+ lines of code and a habit of leaking memory and segfaulting intermittently.
That's my worst nightmare at least.3 -
QA: There is a problem
Me: Ok how do I reproduce it?
QA: You do x
Me: I have done x and there isn’t a problem
QA: Oh it only happens sometimes
Me: Fair enough, I’ll try a few times
...
Me: Are you sure x is how you do it?
QA: Oh no actually it’s y
FML2 -
I forgot to eat today, but I have boiled down the devRant theme system into just a few classes... and the "window" one is redundant-ish
Now that I can dynamically theme Qt widgets, my client will be able to support custom themes, confirmed!2 -
A long time ago I started a project to make a devRant client with Python and Qt5.
I got far but got bored, or whatever. Was still in school, etc.
I have started from scratch again. Including a nogui mode. Sharing because I actually have made some pretty good progress in the past two days.
Plans: Besides the obvious fully-featured client: full support for plugins, custom themes, custom CLI commands. Multiple logins.
Considering a system that allows you to run a bot, and a bot framework (parsing arguments for you, marking notifs read, etc.)
And yes, it's called qtpy-rant (Pronounced cutie pie rant)3 -
I really want to know the thought process behind this PMA error simply saying "Failed to import file".
It's bad enough when user-facing software hides error details to seem less threatening, but PMA is literally designed exclusively to be used by technical people, who know how to handle an error message. -
Our CTO has been told, this morning by management, that our development department is "too quiet" and that it's spoiling "the atmosphere" of the office space.
So we've ordered mechanical keyboards.21 -
Since Microsoft is racist and is trying to remove the "master" term on GitHub to "fix the World" I hope they won't forget about the "master" volume in the audio settings of Windows.12
-
This week in Programming Language appreciation: the multiplication operator in Python. You can use it on strings and arrays for incredible ease of use. For a horizontal line in a terminal?
print("-" * 30)
Very helpful, and I have used it a lot. And I miss it in other languages.15 -
The Linux sound system scene looks like it was deliberately designed to be useless.
ALSA sees all my inputs and outputs, but it can't be used to learn (or control) anything about software and where their sound goes. Plus it's near impossible to identify inputs and outputs.
PulseAudio does all sorts of things automatically, but it's hard to configure and has high latency.
JACK is very convenient to configure, has great command line tools (like you'd expect from Linux), is scriptable, but it doesn't see things.
Generally, all of these see the others as a single output and a single input, which none of them are.11 -
On the screen: four text boxes cycling through rainbow color backgrounds and spinning wildly in circles.
Manager walks in.
Here's the context.
We were pair programming and working on a simple form. We were just finishing up the style, and I suggested we use a CSS3 animation to make the invalid fields pulsate a light red once.
I'm the young guy in the office, so I am most familiar with the "new" front end stuff like flex and CSS3.
My colleague was unfamiliar with CSS3 animations, so I implemented the red flash quickly and showed him.
He was curious what else you could do with CSS3 animations, so I changed my "to/ from" to a "0%/ 25%/ 75%/ 100%" style animation to show how keyframes worked. Then I made the animation iterations infinite so it went on forever. Of course, I didn't have any normal colors on hand so I just went with my debug colors: red, green, blue, yellow, etc.
We submitted the form with invalid inputs and sure enough, they flashed rainbow colors. It looked pretty funny so I thought "haha, lets quickly add rotation while we're at it"
That's the point where the education turned to a little fun but it wasn't going to take more than a second.
So we did it and it looked pretty funny and it actually made me laugh. Then we started discussing next steps on the form (back-end). Discussion lasted maybe five minutes before our manager visited to update us.
As we were discussing, the invalid controls were still spinning and rainbow colored in the background. Whoops.
The words we managed to say were just "It's invalid" and then we broke out laughing.3