Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "backwards compatibility"
- Sure! What do you need?
Oh, it’s very simple, I just want to make a static webpage that shows a clock with the real time.
- Wait, why static? Why not dynamic?
I don’t know, I guess it’ll be easier.
- Well, maybe, but that’s boring, and if that’s boring you are not going to put in time, and if you’re not going to put in time, it’s going to be harder; so it’s better to start with something harder in order to make it easier.
You know that doesn’t make sense right?
Okay, so I want to parse this date first to make the clock be universal for all the regions.
- You’re not going to do that by yourself right? You know what they say, don’t repeat yourself!
But it’s just two lines.
- Don’t reinvent the wheel!
- One component per file!
- It happens, and you’ll get lost managing your files as well. You should use Webpack or Browserify for managing your modules.
- Yes, but some people still have previous versions of ECMAScript, so it wouldn’t be compatible.
Why is it called ECMAScript then?
- It’s called both ways. Anyways, after you install Webpack to manage your modules, you still need a module and dependency manager, such as bower, or node package manager or yarn.
What does that have to do with my page?
- So you can install AngularJS.
Oh, that’s great, so if I modify one sentence on a part of the page, it will automatically refresh the other part of the page which is related to the first one and viceversa?
- Exactly! Except two way data binding is not recommended, since you don’t want child components to edit the parent components of your app.
Then why make two way data binding in the first place?
- It’s backed up by Google. You just don’t get it do you?
I have installed AngularJS now, but it seems I have to redefine something called a... directive?
- AngularJS is old now, you should start using Angular, aka Angular 2.
But it’s the same name... wtf! Only 3 minutes have passed since we started talking, how are they in Angular 2 already?
- You mean 3.
Okay, I now know Angular 6.0, and use a component based architecture using only a one way data binding, I have read and started using the Design Patterns already described to solve my problem without reinventing the wheel using libraries such as lodash and D3 for a world map visualization of my clock as well as moment to parse the dates correctly. I also used ECMAScript 6 with Babel to secure backwards compatibility.
- That’s good.
- But did you use TypeScript?36
"Is it sexy when I talk in nerd words? Ie 11....backwards compatibility....fallback..."
3 rants for the price of 1, isn't that a great deal!
1. HP, you braindead fucking morons!!!
So recently I disassembled this HP laptop of mine to unfuck it at the hardware level. Some issues with the hinge that I had to solve. So I had to disassemble not only the bottom of the laptop but also the display panel itself. Turns out that HP - being the certified enganeers they are - made the following fuckups, with probably many more that I didn't even notice yet.
- They used fucking glue to ensure that the bottom of the display frame stays connected to the panel. Cheap solution to what should've been "MAKE A FUCKING DECENT FRAME?!" but a royal pain in the ass to disassemble. Luckily I was careful and didn't damage the panel, but the chance of that happening was most certainly nonzero.
- They connected the ribbon cables for the keyboard in such a way that you have to reach all the way into the spacing between the keyboard and the motherboard to connect the bloody things. And some extra spacing on the ribbon cables to enable servicing with some room for actually connecting the bloody things easily.. as Carlos Mantos would say it - M-m-M, nonoNO!!!
- Oh and let's not forget an old flaw that I noticed ages ago in this turd. The CPU goes straight to 70°C during boot-up but turning on the fan.. again, M-m-M, nonoNO!!! Let's just get the bloody thing to overheat, freeze completely and force the user to power cycle the machine, right? That's gonna be a great way to make them satisfied, RIGHT?! NO MOTHERFUCKERS, AND I WILL DISCONNECT THE DATA LINES OF THIS FUCKING THING TO MAKE IT SPIN ALL THE TIME, AS IT SHOULD!!! Certified fucking braindead abominations of engineers!!!
Oh and not only that, this laptop is outperformed by a Raspberry Pi 3B in performance, thermals, price and product quality.. A FUCKING SINGLE BOARD COMPUTER!!! Isn't that a great joke. Someone here mentioned earlier that HP and Acer seem to have been competing for a long time to make the shittiest products possible, and boy they fucking do. If there's anything that makes both of those shitcompanies remarkable, that'd be it.
2. If I want to conduct a pentest, I don't want to have to relearn the bloody tool!
Recently I did a Burp Suite test to see how the devRant web app logs in, but due to my Burp Suite being the community edition, I couldn't save it. Fucking amazing, thanks PortSwigger! And I couldn't recreate the results anymore due to what I think is a change in the web app. But I'll get back to that later.
So I fired up bettercap (which works at lower network layers and can conduct ARP poisoning and DNS cache poisoning) with the intent to ARP poison my phone and get the results straight from the devRant Android app. I haven't used this tool since around 2017 due to the fact that I kinda lost interest in offensive security. When I fired it up again a few days ago in my PTbox (which is a VM somewhere else on the network) and today again in my newly recovered HP laptop, I noticed that both hosts now have an updated version of bettercap, in which the options completely changed. It's now got different command-line switches and some interactive mode. Needless to say, I have no idea how to use this bloody thing anymore and don't feel like learning it all over again for a single test. Maybe this is why users often dislike changes to the UI, and why some sysadmins refrain from updating their servers? When you have users of any kind, you should at all times honor their installations, give them time to change their individual configurations - tell them that they should! - in other words give them a grace time, and allow for backwards compatibility for as long as feasible.
3. devRant web app!!
As mentioned earlier I tried to scrape the web app's login flow with Burp Suite but every time that I try to log in with its proxy enabled, it doesn't open the login form but instead just makes a GET request to /feed/top/month?login=1 without ever allowing me to actually log in. This happens in both Chromium and Firefox, in Windows and Arch Linux. Clearly this is a change to the web app, and a very undesirable one. Especially considering that the login flow for the API isn't documented anywhere as far as I know.
So, can this update to the web app be rolled back, merged back to an older version of that login flow or can I at least know how I'm supposed to log in to this API in order to be able to start developing my own client?10
Just got my Christmas present from Shopify:
You have 45 days to integrate with our new Billing API or lose your app on our app store.
Because I just LOVE dropping everything to deal with yet another mandatory Shopify change. Have you guys not heard of backwards compatibility?
My coworker just spent *weeks* getting our app approved, including submitting an obscene amount of information and multiple live reviews and now they're threatening to remove our listing from their app store if we don't adopt their new API by the end of January, requiring a complete re-submission and review to get it back on.
This is apparently a completely normal way to do business to Shopify.4
Game Streaming is an absolute waste.
I'm glad to see that quite a lot of people are rightfully skeptical or downright opposed to it. But that didn't stop the major AAA game publishers announcing their own game streaming platforms at E3 this weekend, did it?
I fail to see any unique benefit that can't be solved with traditional hardware (either console or PC)
- Portability? The Nintendo Switch proved that dedicated consoles now have enough power to run great games both at home and on the go.
- Storage? You can get sizable microSD cards for pretty cheap nowadays. So much so that the Switch went back to use flash-based cartridges!
- Library size/price? The problem is even though you're paying a low price for hundreds of games, you don't own them. If any of these companies shut down the platform, all that money you spent is wasted. Plus, this can be solved with backwards compatibility and one-time digital downloads.
- Performance on commodity hardware? This is about the only thing these streaming services have going for it. But unfortunately this only works when you have an Internet connection, so if you have crap Internet or drop off the network, you're screwed. And has it ever occurred to people that maybe playing Doom on your phone is a terrible UX experience and shouldn't be done because it wasn't designed for it?
I just don't get it. Hopefully this whole fad passes soon.19
JUST SHUT THE FUCK UP AND DONT TOUCH ANYTHING FUCKING IDIOT!
Changes my code while I’m in holidays, deletes the tests that fail and pushes it to master. No backwards compatibility or anything..
Now I can spend a week to revert all his changes because they break lots of stuff and pray that he didn’t mess up the data too much..9
The first two stories on slashdot's homepage are:
1. Google releases Angular 2, breaks backwards compatibility
2. Apple releases Swift 3, breaks backwards compatibility
If you use either of those tools, why do you put up with this? When did software engineering stop being about building useful or enjoyable things for our customers, and start being about doing thankless make-work for Silicon Valley billionaire companies? Is this the legacy we want to leave to the world?4
So we were supposed to have another good build today.
This one guy on our team gets weird sometimes, and refuses to commit his shit until the last minute. He says "Don't worry, I'll handle all the merging, it'll be fine!"
What he forgets is that much of our code relies on his! His latest commits reworked a couple entry points and a class definition. No backwards compatibility.
He made his commit, and nearly our whole stack shit the bed. Jesus jumping Christ. Weekend? Nope.2
Fuck jQuery. The only reason I see anyone using it legitemately is because of backwards compatibility. Almost every jq method is either native js or native css. The problem is, some devs become practically dependent on a library. By then, they are no longer js devs. They are jQuery devs. When you find yourself going to the docs of a lib before native methods 9 times out of 10 you've gone past the turning point. When you find yourself including jQuery instinctively, you're gone. StackOverflow is a great example of this:
Question - 1 up
Pure JS answer - 0 ups
jQuery answer (same length) - 2 ups and accepted
Come on man. It's 2018! We shouldn't be writing jQuery anymore. Native methods ftw!15
My condolences are with this ranter:
Client:"We absolutely need to support browsers from earlier then 2010!"
Sitting at work. Just had a convo about older versions of Visual Studio. I was like "you youngins with you intellisense and backwards compatibility. In VS2005 we had to climb 15 miles in the snow. Uphill. And when we only had 200 compatibility issues with VS2008 we thanked Microsoft for the privilege. What Linux? You think my school provided Linux? Linux is for earners. Top sellers. Leaders of men. Cross-platform compatibility meant that it worked on a Dell with Windows and a Gateway with Windows. I tell you those were dark times."
So star wars republic commando and the only battlefront games just got added to backwards compatibility on Xbox one... Well there goes all my development time and hello childhood!2
Dependencies and backwards compatibility
Can shit just fucking work instead of me having to download old shit that doesnt fucking work on the newest version of the OS that I use because the fucking program can't use new dependencies?
I'm looking at you you fucks that don't want to update to VS 2019 and force me to uninstall it to download VS 2015, its 4 years old for fuck sake!2
Someone explain this logic?
Contractor makes changes and then I have to fix because he can't as it's no longer backwards compatible.
I make changes and I need to enforce backwards compatibility. Yet these contractors are my seniors1
Why does noone implement autoupdater, especialy on linux side? Is there a reason i dont get? Sure, most system stuff is better in apt, but if i install servers, i do not want to wait for these stupid linux release timings! If it were hard, id understand. But most of this is possible with something like GitHub API and 20 Minutes of time. I mean, yeah backwards compatibility and what not, but then handle that internaly.
Example: I use dnsmasq on a raspberry pi. RPI is running raspbian. Raspian is debian 8. Debian 8 has a version of dnsmasq with a pretty annoying bug, which prevents me from using dnssec, as i cant open any cloudflare pages. Why, o why isnt this updated at MY will? Then, if it isnt, why is it so impossible hard to compile this myself, no docs for that, no binaries, NOTHING? Dear server devs, please add atleast basic autoupdate functionality without having to rely on the base os.
Or, give me easily deployable binaries, if you cant write something integrated.12
Is this a technological metaphor?
For some Hacker challenge I was reading up on different keyboard layouts, Dvorak and stuff. And the technological lock in is baffling me: The rationale for qwerty was to reduce jamming of the typewriter letter arms. Today that doesn't make sense anymore, yet we stick to it. Wondering how much of today's tech is dragged down by things like that.
This stuff often also makes me weary of the first decisions, like choosing a protocol or data base - its kind and layout, because we might be stuck with it for reasons of backwards compatibility.... Like when Microsoft opted for the backslash as a directory separator..33
Why is customer support sometimes so shitty? A coworker good a Win10 Laptop (Win7 before) and one program wasn;t working there anymore. So we reached out to the support asking to help us fix it. After over a month later and x-amount of E-mails back and forth. The answer was, you have to upgrade everything (Webserver, Database, Client) to use Win10 (no backwards compatibility). Which is fine, I don't mind upgrading and understand that software sometimes is not backwards compatible. BUT THAT IS SOMETHIGN TO STATE IN THE 2nd E-MAIL. Not an infinity later after a tiring back and forth of nonsense.
I started with cakephp 2. I did a TON of projects with it and made my own reusable plugins for future projects and everything was nice and smooth.
then cakephp 3 came out with breaking changes and was not backwards compatible. I learned the new rewritten ORM and tried to do a project with it along with plugins.
then cakephp 4 came out with breaking changes and was not backwards compatible...
ok... look i dont claim to know more than the people writing frameworks but u want people to use ur framework u cant fuck them up in every major release and render their old projects unupgradable... fuck you im switching to laravel this was the last straw3
I fucked up my Windows installation by moving AppData to a secondary (1TB HDD) drive... dude... I wish they started a new and better Windows without all the backwards compatibility shit for new computers like mine, so we can do not complex, but not simple shit like freaking moving a "system" folder (that should only be for *apps data*).10
Why can we deprecate a regular language like Python 2 (26 months can't come by fast enough) but yet it seems web development is impervious to the idea? If you want to make a website, you must use HTML, CSS, AND JS (or a transpiled language).
I get we use it for backwards compatibility but this combo makes web development so messy and weird, it's hard to understand from a newcomers perspective.
Maybe I'm just too stubborn to understand 🤔3
Ok see this "trend" of adding a number 2 to a class name. To denote the new version of an object, surely I'm not the only person who thinks this is horrible. E.g Entity2, Renderder2 etc. It just creates a really bad API, I understand it's needed for backwards compatibility, but honestly there must be a better way....5
We have a project with source==target==1.7 in the compile plugin.
But on our servers we actually run it using 1.8 JVM. Is there any reason why we can't see it to compile with 1.8?
Or is it like the Windows backwards compatibility options?
Software or hardware design solutions that are retrofitted for Legacy systems. I understand the value of backwards compatibility, but Gah damn!