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
Search - "feature-flag"
The nightmare continues.
Currently dealing with a code review from a “principal” dev (one step above senior), who is unironically called a “legendary dev” by some coworkers. It’s painfully obvious he didn’t read the code, and just started complaining and nitpicking.
It’s full of requests to do things that make absolutely no sense, and would make the code an unmaintainable mess.
• Ex: moving the logic and data collection from the module’s many callers into the module instead of just passing in the data.
• Ex: hiding api endpoint declarations by placing them in the module itself, and using magic instance variables to pass data to it. Basically: using global functions and variables instead of explicit declarations and calls.
• Ex: moving the logic to determine which api endpoint to use, for all callers, into the view.
More comments about methods being “too complex” (barely holds water) right next to comments saying “why are these separate? merge them together!”
Incredulously asking how many times I’m checking permissions and how ridiculous it all is. (The answer? Twice.)
Conflating my “permissions” param and method names with a supposedly forthcoming permissions system overhaul, and saying I shouldn’t use permissions because my code will all have to get rewritten. Even if that were true, and it’s likely not, the ticket still needs to use the current permissions. I can’t just ignore them because they might be rewritten someday.
Requests to revert some code cleanup because the reviewer thought the previous heavily-nested and uncommented versions (with code duplication) were easier to read. Unsurprisingly, he wrote them.
On the same ticket, my boss wants me to remove all styling and clientside validation, debouncing, and error messages from a form. Says “success” and “connection failed” messages are good enough. The form in question sends SMS and email using arbitrary user input for addresses. He also says it shouldn’t be denounced on the server, and doesn’t want me to bother checking permissions. Hello, spam!
Related: the legendary dev reviewer says he can’t think of a reason why we would want to disable the feature for consumers, so I should remove the consumer feature flag.
You can’t make this stuff up.9
D=my Dumb boss
M: so how are you guys planning to implement the block all accounts feature?
C: oh it should be easy! We will just loop over every account and lock it!
M: what about implementing a flag that just blocks anyone from accessing the site till further notice?
C: what? I’m sure it’ll work. Just need a list of all accounts, we don’t need anything fancy!
M: what happens when we want to revert back to the pre-block state?
C: oh, so we will just unblock everybody
M: even people who were previously blocked for good reasons?
C: i guess so, unless you think otherwise
M: we r….
D: listen! We just need to be able to block all accounts, who cares about this details! So long as we block all accounts! We need this nuclear option in case something bad happens…
M: but what about when that bad thing passes and…
D: when it passes it passes who cares!
Arghhh so much rage here… like first at the stupid engineering design of looping over all of the accounts instead of using a simple flag. Like 1 http call (from one microservice to another) is a lot better than O(n)… not to mention, we won’t have to deal with failures and retries.
And second for my boss being a dumbass… ok you deal with being to afraid to unblock people after we used this “genius nuclear option”!6
The worst project is the one I am currently working on. I didn’t build it but have to manage it, because... Reasons.
The projects is made on Core PHP(red flag right there).
But when I dig in I get to see there is no authentication used in any of the REST service. Yup. What's the fucking point of login if you are just going to update profiles based on user_id you Twat! The querying used is simply mysql_query (I have to say I expected that).
No relationships defined in the Mysql table structure. No migrations.
There is an upload feature which is forcing the image to be saved as jpeg, therby corrupting the images being saved on the server.
No security, terrible logic, no classes, terrible architecture.
And I am the chosen one to maintain this shit!
Add a random string (like "AnyBrowser/1.2.3") to your user agent string, and get warnings about unsupported browsers, reduced functionality, and Google drive completely refusing to start at all.
It's the very same browser, just another user agent string. Ever heard of feature detection? Ever heard of usability, accessibility, progressive enhancement? How can developers be so lost in 2022?
I just tried to reproduce the reason why Vivaldi stopped adding their brand to user agent strings but sails under false flag pretending to be Google chrome. So it doesn't show up in browser statistics either and Google people can keep thinking everyone is using their shitware.3
!dev but rant
Samsung!! What the fuck is wrong with you?
Some longer time ago you earned forst red red flag called knox. What the fuck you mean there is physical diode in phone that will burn out when I do whatever I want with phone? Its my phone. My. I live in europe and european law is with me. Its **MY** stuff and Im allowed to be super user so fuvk off with knox bullshit.
Okay, now, more and more phone are missing critical feature to save few cents a phone. You were last bastion. You were **that** company who was loyal to audio jacks. And why the fuck you plan to remove it? You know what? That one thing brought your phones from one of best (becouse retained audio jacks and didnt do much of notch fuckupery) to literally worst one thanks to knox.
And before anyone tells me bullshit apple tried to say "thats space saving", no its not true to point where one of their very own Iphones had internally space and traces for audio jacks. Its to save pennies on phone for profit margins and to force us to use bluetooth stuff, that I dislike. I stick to my K518 few years now and I am super happy user of it. Why y'all want to take away good stuff?
Oneplus, your turn. Why the luving fuck your big bulletpoint of marketing was "yes, we will keep loyal to audio jacks" and later down the line you shown one big fat middle finger to all users.
Goos job, guys, well fucked up.
So any good modern alternatives for my OnePlus 5 when it becomes obstole in few years? Nope. Fuck nope.
OP7 pro is awesome but no audio jacks absolutely kills off this phone in my eyes to level of not existance and inability to be considered.17
What's wrong with Mozilla?!
Savvy webdevs use link preloading to break up dependency chains for late discovered resources, and users like the faster loading as result. Firefox 56 started supporting that two and a half years ago. Turned out they had screwed up and it didn't work with non-cacheable resources. So Mozilla "fixed" that by disabling the feature altogether behind some config flag.
And they left it at that - still not supported. They even had patches, but decided not to merge them and instead try something different, some day.
Is Firefox becoming the new IE or what?6
A program I was using did not recognize a flag that I needed, so I edited the EXE file (using notepad++, no hexeditor) to replace a flag whose name was actually checked with the one I needed. Worked like a charm.
The response for my bug report was "this feature should not be there in the first place, we will remove it". Lucky me they did not remove it earlier.
Does anybody else have the project where every time you try to change something, no matter how small, you always end up screwing it up and needing a bunch more time to fix it just to get back to the starting position?
I have this project I've done, a custom Ambilight system for my TV, and everytime I try to add a feature the lights stop working altogether... Tried adding detection of when I start my media player to automatically start the Ambilight mode (I made several modes, one of which is just shine a certain color all the time which is great if you don't want to use normal lights and want to be able to control the lights from your phone).
I had the code for detecting app start and stop from before when I implemented it for a slightly different system. I just changed the few things that are different and poof, no more lights... I managed to forget the other system checked a flag after every process exit and overrode the mode and I removed the setting of the flag, but not reading of it...
Every single time I do changes on this it's something... Other projects sometimes go smoothly, sometimes not, but this one just doesn't want to be kind to me....
Results are awesome, though :)5
Auto Login feature enables itself when a certain config flag is present - the app will login as an admin without requiring username or password.
I pray to the Continuous Deployment monsters that the config setting never gets copied to production by mistake.2
Is firebase remote config a good option for feature-flags/toggles for our development flow of team?2
Hey just release UpStamps (https://www.upstamps.com/).
UpStamps is a Feature Flag Management Platform to separate code from different environments and projects, this helps teams and developers deploy faster with less risk.
I want to know what you think and feedback is appreciated.5