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 - "it's this or netflix"
-
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 -
Three days ago I wrote a comment:
"It's weird how the internet shifted from protocols to platforms.
Devs still know the plumbing, but for most people IRC became Whatsapp, FTP became Dropbox, RTSP became Netflix, SIP became Zoom and RSS became Google Now... so people might eventually forget about SMTP and this whole "email" hype.
In a decade or two we'll have forgotten about URLs and HTTP and the "internet" as well. You just pay your monthly $10 sub to Google or Amazon or Apple to have your condensed streams of memes & bait funneled right into your eyeballs."
And now Chrome devs are considering removing URLs just like in Safari, just showing the domain you are on....
Enjoy your retard web, people.
What's next, new Macbook & Chromebook standardized designs to prevent people from being confused?43 -
this.title = "gg Microsoft"
this.metadata = {
rant: true,
long: true,
super_long: true,
has_summary: true
}
// Also:
let microsoft = "dead" // please?
tl;dr: Windows' MAX_PATH is the devil, and it basically does not allow you to copy files with paths that exceed this length. No matter what. Even with official fixes and workarounds.
Long story:
So, I haven't had actual gainful employ in quite awhile. I've been earning just enough to get behind on bills and go without all but basic groceries. Because of this, our electronics have been ... in need of upgrading for quite awhile. In particular, we've needed new drives. (We've been down a server for two years now because its drive died!)
Anyway, I originally bought my external drive just for backup, but due to the above, I eventually began using it for everyday things. including Steam. over USB. Terrible, right? So, I decided to mount it as an internal drive to lower the read/write times. Finding SATA cables was difficult, the motherboard's SATA plugs are in a terrible spot, and my tiny case (and 2yo) made everything soo much worse. It was a miserable experience, but I finally got it installed.
However! It turns out the Seagate external drives use some custom drive header, or custom driver to access the drive, so Windows couldn't read the bare drive. ffs. So, I took it out again (joy) and put it back in the enclosure, and began copying the files off.
The drive I'm copying it to is smaller, so I enabled compression to allow storing a bit more of the data, and excluded a couple of directories so I could copy those elsewhere. I (barely) managed to fit everything with some pretty tight shuffling.
but. that external drive is connected via USB, remember? and for some reason, even over USB3, I was only getting ~20mb/s transfer rate, so the process took 20some hours! In the interim, I worked on some projects, watched netflix, etc., then locked my computer, and went to bed. (I also made sure to turn my monitors and keyboard light off so it wouldn't be enticing to my 2yo.) Cue dramatic music ~
Come morning, I go to check on the progress... and find that the computer is off! What the hell! I turn it on and check the logs... and found that it lost power around 9:16am. aslkjdfhaslkjashdasfjhasd. My 2yo had apparently been playing with the power strip and its enticing glowing red on/off switch. So. It didn't finish copying.
aslkjdfhaslkjashdasfjhasd x2
Anyway, finding the missing files was easy, but what about any that didn't finish? Filesizes don't match, so writing a script to check doesn't work. and using a visual utility like windirstat won't work either because of the excluded folders. Friggin' hell.
Also -- and rather the point of this rant:
It turns out that some of the files (70 in total, as I eventually found out) have paths exceeding Windows' MAX_PATH length (260 chars). So I couldn't copy those.
After some research, I learned that there's a Microsoft hotfix that patches this specific issue! for my specific version! woo! It's like. totally perfect. So, I installed that, restarted as per its wishes... tried again (via both drag and `copy`)... and Lo! It did not work.
After installing the hotfix. to fix this specific issue. on my specific os. the issue remained. gg Microsoft?
Further research.
I then learned (well, learned more about) the unicode path prefix `\\?\`, which bypasses Windows kernel's path parsing, and passes the path directly to ntfslib, thereby indirectly allowing ~32k path lengths. I tried this with the native `copy` command; no luck. I tried this with `robocopy` and cygwin's `cp`; they likewise failed. I tried it with cygwin's `rsync`, but it sees `\\?\` as denoting a remote path, and therefore fails.
However, `dir \\?\C:\` works just fine?
So, apparently, Microsoft's own workaround for long pathnames doesn't work with its own utilities. unless the paths are shorter than MAX_PATH? gg Microsoft.
At this point, I was sorely tempted to write my own copy utility that calls the internal Windows APIs that support unicode paths. but as I lack a C compiler, and haven't coded in C in like 15 years, I figured I'd try a few last desperate ideas first.
For the hell of it, I tried making an archive of the offending files with winRAR. Unsurprisingly, it failed to access the files.
... and for completeness's sake -- mostly to say I tried it -- I did the same with 7zip. I took one of the offending files and made a 7z archive of it in the destination folder -- and, much to my surprise, it worked perfectly! I could even extract the file! Hell, I could even work with paths >340 characters!
So... I'm going through all of the 70 missing files and copying them. with 7zip. because it's the only bloody thing that works. ffs
Third-party utilities work better than Microsoft's official fixes. gg.
...
On a related note, I totally feel like that person from http://xkcd.com/763 right now ;;21 -
When I'm tired, I can't do a damned thing. If it takes effort or concentration, I'm useless. Games are just frustrating. If it's something enjoyable, I simply can't care enough to enjoy it. If I read a book, I can't focus on the words, and won't remember anything I read. If its mindless like watching Netflix, I won't remember the next day, or rather I'll remember just enough to ruin it for myself.
So why not sleep?
Because I've been feeling like this every day, all day long for months. No, that vile liquid called coffee doesn't help. If I rest my eyes and stop thinking for a few minutes, I wake up a little and can function normally for a minute or two before passing out again. I'm not depressed, or at least I don't think I am. I feel like my brain died or got replaced with a lizard's.
And this sucks because I'm still during the probation period at work, and learning the sprawling and intricate codebase is actually challenging. And they're giving me large tickets because I was a dummy and impressed them too much.
Idk what's wrong with me, but I hope it stops soon.
I miss being able to think and plan and do anything besides just struggle to stay awake. 😞16 -
TL;DR: Stop using React for EVERYTHING. It's not the end-all solution to every application need.
My team is staffed about 50/50 with tenured devs, and junior devs who have never written a full application and don't understand the specific benefits of different libraries/framworks. As a result, most of these junior devs have jumped on the React train, and they're under the impression that React is the end-all answer to any possible application need. Doesn't matter what type of app is, what kind of data is going to be flowing through the app, data scale, etc. In their eyes, React is always the answer. Now, while I'm not a big fan of React myself, I will say that it does its job when its tasked with a data-heavy application that needs to be refreshed/re-rendered dynamically and frequently (like Facebook.) However, my main gripe is that some people insist on using it for EVERYTHING. They refuse to acknowledge that there can be better library/framework choices (Angular, Vue, or even straight jQuery,) and they refuse to learn any other frameworks. You can hit them with countless technical reasons as to why React isn't a good choice for a particular application, and they'll just spout off the same tidbits from the "ReactJS Makes My Nips Hard 101" handbook: "React is the future," "Component-based web architecture is the future," (I'm not arguing with that last one) "But...JSX bro.," "Facebook and Netflix use it, so that's how you know it's amazing." They'll use React for a simple app, and make it overly-complex, and take months to write something that should have taken them a week. For example, we have one dev who has never used any other frameworks/libraries apart from React, and he used React (via create-react-app) to write what is effectively a single form and a content widget inside of a bootstrap template. It took him 4 MONTHS to write this, and it still isn't fully functioning. The search functionality doesn't really work (in fact, it's just array filtering,) and wont return any results if you search for the first word in an entry. His repo is a mess, filled with a bunch of useless files that were bootstrap'd in via create-react-app. We've built apps like this in a week in the past using different libraries/frameworks, and he could have done the same if he didn't overly-complicate the project by insisting on using React. If your app is essentially a dynamic form, you don’t need a freaking virtual DOM.
This happens every time a big new framework hits the scene. New young developers get sucked into it, because it's the cool hip new framework (or in React's case, library.) and they use it for everything, even when it's not the best choice. It happened with Angular, Rails, and now it's happening with React.
React has its benefits, but please please please consider which library/framework is the best choice from a technical standpoint before immediately jumping on the React train because "Facebook uses it bro."2 -
This new trend of platforms spamming with content discovery fucking suck. Nobody wants to follow multiple profiles with the exact same fucking content, especially when most of them are just people jumping on the bandwagon with more generic content and nothing to make it distinguishable. Also if 10 million people saw something on your platform, the it's pretty fucking sure already been posted and shared on every single platform out there, why the fuck would you still keep recommending it weeks or even months later?
I know spamming users with random (statistically more engaging) content leads to improved customer engagement as people sooner or later click these thing out of curiosity or boredom, but eventually they get tired of it altogether and leave for good. What happened to Netflix will also happen to YouTube, Instagram, and all other platforms unless they significantly improve the balance between content discovery and content continuity (i.e. the content each user follows and is coming back for).4 -
Ok, first rant, about my struggles getting reliable internet over the past 6 years. It's not too interesting of a topic, but here we go:
I'm living in a more rural part of Germany and internet here is shit. I pay more than 50 bucks a month for 700kb/s downstream (let's just not talk about upstream...), which is meh by itself but it gets worse. Before this I had roughly 230kb/s downstream using DSL. My provider came out with a new oh-so-fucking-fancy solution for giving people faster internet without upgrading their lame ass fucking backbone and POS infrastructure from 70 years ago: they sell you hybrid internet which combines your shit DSL and an LTE connection using TCP Multicast. Not only do I get only 6 of my promised (and payed for) 50 Mbit, no, It's also a fucking piece of nonworking shit!!!
Let me illustrate:
You constantly have problems with web content (or any remote content) not loading because the host server does not support TCP Multicast. It either refuses connection altogether or it takes about 30-50 seconds to establish a connection. Think about your live when it takes two or three fucking minutes to load 5 YouTube thumbnails or load new tweets at the bottom of the Twitter page! Also, you never know if you a) have an error in your implementation of a new API or if b) the remote host doesn't support TCPMC (there's never an error for that! Fuck you!), your SSH sessions ALWAYS drop in the most inopportune fucking moments because the LTE thing lost connection, you always have to turn on a VPN if you want to visit specific websites (for example your school's website) and so on....
Oh and also, my provider started throttling specific services again these days with Netflix and YouTube struggling to display 240p, fucking 240p video without buffering when I get 600kbit down on steam (ofc the steam download is paused when watching videos). When using a VPN, YouTube 720p and Netflix HD work like a charm again. Fucking Telekom bastards
Then there is the problem with VPNs. The good thing about them is that they solve all the TCP Multicast problems. Yay. Now for the bad things:
First of all, as soon as I use a VPN, access times to remote go up by like fucking 500%. A fucking DNS lookup takes 8-15 seconds!!! The bandwidth is there but it takes forever.. because reasons I guess. Then the speed drops to DSL speeds after a while because the router turns off my LTE connection when it is unused and it does not detect VPN traffic as traffic (again because... Reasons?) And also, the VPN just dies after an hour and you have to manually reconnect (with every VPN provider so far)
And as if that wasn't enough, now the lan is dying on me, too, with the router (the fucking expensive hybrid piece of shit, 230 bucks..) not providing DHCP service anymore or completely refusing all wifi connections or randomly dropping 5Ghz devices, or.....
You get the point.
The worst thing is, they recently layed down 400mbit fiber in my neighborhood. Guess where the FUCKING PIECE OF SHIT CABLE ENDS??? YEAH, RIGHT IN FRONT OF MY NEIGHBORS HOUSE. STREET NUMBER 19 IS SERVED WITH 400MBIT AND MY HOME, THE 20, IS NOT IN THEIR FUCKING SERVICE REGION. Even though there is a fucking cable with the cable companies name on it on my property, even leading up to my house! They still refuse to acknowledge it! FUCK YOU!!!!
Well anyways thanks for reading. Any of you got the same problems? :/2 -
In a meeting yesterday working through our WebAPI coding standards, starting from File -> New project..etc..etc.. and ironing out some of the left-or-right decisions so we can have a consistent coding style, working in a meeting room with an overhead projector and sharing keyboard around with one another.
Then we hit the routing 'rules' in the WebApiConfig, "api/{controller}/{id}"…
DevMgr: "Do we need the 'api' prefix? It seems redundant."
Ralph: "Yes it's needed. Prefixing the controllers with 'api' is industry best practice. Otherwise, how is anyone to know it's a web api"
Prancer: "Yea, it's part of the REST standard."
Me: "I don't think so. That is only part of the Asp.Net routing rule. We can put anything we want or take anything out."
DevMgr: "Yea, it looks silly. All the new services are going to be business process specific."
Ralph: "That's how everyone does it. It's kind of the point of why REST services are called WebApi"
Prancer: "What's the point of doing any of this work if we're not going to follow industry standards."
Me: "I understand if the service is part of larger web site, but we're developing standalone services. Prefixing routes with 'api' is redundant. I mean who are these 'everyone' you're talking about?"
<ralph rolls his eyes>
Ralph: "Lets see …uhhh… Netflix?. They're kinda a big deal."
Me: "Like I said, it's an integral part of their site and the services they provide. That's fine. I'm talking about the 12 other 3rd party services we integrate with. None of them have 'api' on any of their routes."
Prancer: "We're talking about serious web services."
Me: "Last time I checked, UPS is a big and serious service."
Ralph: "Their services are a fracking joke" – he didn't say fracking.
Me: "Our payroll system, our billing system, billion dollar companies, didn't have '/api' prefix anywhere. Heck, even that free faxing service we used for a while was a dead-simple routing path."
<I take the keyboard away from Ralph, remove the 'api' from the route.>
Me: "There. Done. Now, lets talk about error handling.."
Rest of the meeting Ralph and Prancer don't say much of anything, arms crossed…I swear Ralph looked like he was going to cry.
This morning I catch my boss…
Me: "What did you think of the meeting? I thought Ralph was going to take a swing at me when I took the keyboard away from him."
DevMgr: "Oh yes…I almost laughed out loud….blows my freaking mind how worked up people get about crap that doesn't matter. Api..or not…who the frack cares. Just make it consistent"
Me: "Exactly…I didn't care either way, but I enjoyed calling out that nonsense."
DevMgr: "Yes..waaay too much."
If I didn't call them on their BS and the 'standard' allowed to continue, I can bet my paycheck when the subject comes up in a few months (another mgr asks 'isn't this api prefix redundant?') Ralph and Prancer will be the first to say "Yea, its stupid. We fought really hard to remove it from the standard...its not our fault...its <insert scapegoat> fault." -
About two weeks ago i posted a rant containing an email from the big boss. Today they held a "virtual town hall" where people could ask questions, get answers, and generally just be online. Went fairly well, good info was handed out, and i think people mostly enjoyed themselves (even if it was at the expense of the higher-ups).
Then comes the email. The same person as last time had this quote:
"I’m good at giving advice, so I need to take some of my own. I intend to take it easy this weekend, watch Netflix, do some household chores, play the piano and maybe even read a book! "
Jesus christ. Remember those memes about zuck being a robot because everything he does it looks and feels like it's an alien trying to blend in? That's what this feels like. On a normal workyear i would hear from this person 10 times TOTAL. I have heard from them this amount in the past 2 WEEKS.
Maybe it's the virus, but this is driving me INSANE. If there's any lesson you can learn from this, it would be:
Dont pretend like you care by not knowing or learning anything about the people you work with.
Jesus they even sent out surveys to see what the telework experience is like... THE RESPONSES ARE RECORDED AND PUBLICLY DISPLAYED!!!
Ugh.1 -
The fires in australia killed something like half a billion animals, and it's kind of sad, all that potential barbecue going to waste.
We have the means to solve this. With KNAWWWWLEDGE.
What we do is hook up buckets to a bunch of big ass drones and have some sort of contest to see who can put out the most acreage of fire. People will come from all over for the annual "australian fire olympics."
Shit, put a $1 million dollar bounty on "most acreage put out" stream it on twitch, youtube, netflix, you name it.
Fires would be out in a day or three.12 -
FUCK YOU VODAFONE!
My internet broke down the weekend, 4 minutes after I left my house on Friday at 9.04am.
Issue resolved after work at 9pm, broke down half an hour later.
Total silence. Providers status page gave 500 response.
THE NEXT DAY: Woke up because Netflix was working at 8.26am again.
Great, I get up. Can't wait to do anything I want again! I can code, game, watch porn, possibilities are endless!
I get stuff to breakfast. Come back and guess what? NO INTERNET!
Got confirmation of existence of problems at noon. Something with streaming, possibly fixed by Monday.
Okay maybe streaming, but shouldn't the other stuff then work? I process.
Used up my mobile data. Tried again, now it works, but...
.. why.. so.. slow? It was worse than 3g. Time to get out lynx to Google.
It's Sunday. I woke up pissed, got myself a Coffee and tried to get some offline work done. I sipped, closed my eyes for a moment and opened chrome.
IT WORKED! omg, fuck yes! I almost cried I was that happy - can you believe it?
All fine an dandy Monday. So surely the streaming thing will also be gone now, cool.
Today's day is Tuesday. Guess why I am writing this.
Fuck these apprentice nigga cunts graaaaa!!! Or their infrastructure will finally break down.
How is it even possible to do any work on a very important node at a time where probably everyone wants to chill out with the web?7 -
Say I have 10 iPhones in a red bucket, and 10 Galaxy Notes in a blue bucket.
Now, I throw both buckets in the air with excessive force at the same time, and put the buckets on the ground next to each other before any phones start their decent.
How many phones land in the blue bucket?question it's this or netflix buckets of phones can't be assed bordem i should be working the joys of working from home13 -
I've been a consultant in the area of mobile apps for five years now and have stayed at the same company since getting my degree.
In the beginning I had an immense passion and worked on a lot of side projects/pro bono stuff during my free time. Around the same time as the pandemic hit I simply lost all my interest and energy, life has been going to work, go home, find something to eat and go to bed. I can't even find joy in playing video games, working out or cooking anymore, it's always browsing youtube/netflix because I can't find it in me to commit to anything that requires focus.
The project I'm currently in no longer gives me the ability to grow technically, it's just the same old stuff over and over with no opportunity to do proper maintenance or explore new approaches/frameworks/etc.
I recently found out that I make around 25-30% less than my peers in the same field and location, this was a blow for me since I keep getting praised both from customers, management and my fellow developers.
A year ago I asked management to find me a new project with the motivation that I don't want to stall my growth, they have yet to heed this request since I'm not easily replaced.3 -
My previous rant was still in my edit window while I wanted to create this random one and it was so bad, the effort of deleting it was even painful. Imagine reading it. You guys dodged a bullet like a Rust dev does with fun.
I was in my bed, just thinking about Rust people. Saying that Rust is saying that sex with a condom is great but we both know the truth and that you're only doing it because your environment like your parents and government (the Biden administration, fact) wants you to.
But while thinking this, I just found the real issue regarding declining child births in the west. Every time in history had it's issues, but we're doing fine. What changed that we don't have make those sweet kiddo's now? Well, we just don't have power outages anymore and we have the internet on a device with hours of battery to keep us entertained. We don't have to take the rewarding and exciting risk of a C dev anymore if we're bored (great sex without a condom).
My solution: planned internet outages executed by the MIVD (better than the CIA, the MIVD can at least keep secret what they're doing, I'm sure you've never heard of this tough bastards). The effects will be very easy measurable in a span of few years. But it has to be executed in secret so people don't cheat by downloading a Netflix movie upfront. Netflix & Chill is a hoax, else we would have a baby boom by now or we're all Rust devs.
Anyway, even if you're a Rust dev, admit that this is a great inharmful idea that could actually help.
I don't do jokes.
Phone is birth control, change my mind like I did yours.
You're welcome.random condom i should work for gvt chill rust internet phone outage netflix planned c dr conspiracy13