14 ms·
I'm not even mad about Google making my artificially wait 5s for using firefox. I'm mad that such a big company with suposelly decent engineers, are making me
by kjhgksjdfhg 3y ago
I'm not even mad about Google making my artificially wait 5s for using firefox.
I'm mad that such a big company with suposelly decent engineers, are making me wait 5s with literally a sleep, how is even possible to do such thing in such a rudimentary way? I would be like damn that was smart, this feels like, seriously this is the level?
- throwaw12 3y agoIMHO, this kind of things are not done by engineers. * Marketing/Sales asks engineers to add a feature flag to sleep N milliseconds for their research: "how slowing down impacts your revenue" * engineer adds a flag, with different control parameters * Some genius in Product figures this out and updates the experiment to slow down for competitors When company gets a backlash from public: "oops, we forgot to clean up all parameters of feature flag and it accidentally impacted Firefox"
- lotsofpulp 3y ago> * Marketing/Sales asks engineers to add a feature flag to sleep N milliseconds for their research: "how slowing down impacts your revenue" “Research”
- HlessClaudesman 3y agoResearching how best to fuck with your competitors.
- actionfromafar 3y agoNext: researching regulatory capture?
- Jensson 3y agoThey have done such research before, Google published this at a time when developers were all "100 ms more or less web load time doesn't matter". Since then webpages has gotten much more focused on performance. https://blog.research.google/2009/06/speed-matters.html https://blog.research.google/2009/06/speed-matters.html
- kevin_thibedeau 3y agoThe dog slow load times of ad infested AMP pages would suggest otherwise.
- Jensson 3y agoThe prevailing developer discussions going from "Load speed doesn't matter, stop complaining about useless stuff" to "load times matters, but here we choose to make it slow for other reasons" is a massive improvement though. Today speed is valued, it wasn't back then. There are many such tests being written about in blogs today. So now a developer can get time to optimize load times based on those blog posts while before managers would say it was worthless.
- b112 3y agoUntrue. I optimized pages pre-2000, and it had always mattered. It's always, always mattered. If anything, people care less today, with the entire ridiculous 100 loads per page.
- Jensson 3y agoOf course it always mattered. But at the time lots of people argued it didn't matter, which is why the headline is "Speed matters". You thinking it did matter at the time doesn't mean the general community thought so.
- b112 3y agoBut the general community did care about speed. Everyone worked towards small load times, optimized (for example) image size for optimal load time, everyone cared. Whomever didn't care was weird.
- xxpor 3y agoAMP pages load way, way faster IME
- progval 3y ago"oops" https://www.zdnet.com/article/former-mozilla-exec-google-has-sabotaged-firefox-for-years/ https://www.zdnet.com/article/former-mozilla-exec-google-has...
- Jensson 3y agoGoogle stopped testing stuff in Firefox, that is all they did afaik. We all should know how many bugs and "oppsies" you get when you don't test before releasing new features. Test code snippets being pushed to prod etc. Engineers tend to create paper trails on what they work on, code reviews and bug logs etc are everywhere, so I doubt there is any of those where they say "Make things shit for Firefox to hurt our competitors", that would net them an easy loss in court. But not testing in browsers with small userbases will hold in court.
- progval 3y agoFirefox has a small userbase partly because of the early "oopses" described in the article I linked. Those happened a while ago, when Firefox had more users than Chrome.
- Jensson 3y agoChrome was bigger than Firefox by 2012, the accusations that Google intentionally made things worse for Firefox came many years after that.
- toyg 3y agoBut they referred to behaviour that was present pretty much from the start. It's just that Mozilla folks were extremely tolerant and assumed good faith for a very long time. Google have been disgustingly anticompetitive for a very, very long time at this point.
- acdha 3y agoYeah, one of the biggest examples being the HTML 5 video push and Chrome’s claims around H.264: Google promised they were going all in on WebM and would remove support soon, but never did. That meant that Firefox users got more errors outright but also that for years even sites like YouTube would leave Firefox using 100% CPU with your laptop fans on high doing software WebM while Chrome users got hardware accelerated H.264. That became moot after Mozilla and Cisco struck that deal and video hardware acceleration for other formats shipped but there was a multi-year period where Firefox suffered badly in comparison to other browsers.
- n4r9 3y agoVery good point. It's important to recognise that developers in many companies are often not fully aware of the intended use of features they're asked to create. Another example that springs to mind is Uber, who used a tool called "Greyball" to avoid contact between drivers and authorities: https://www.reuters.com/article/uk-uber-greyball-idUKKBN16B00E/ https://www.reuters.com/article/uk-uber-greyball-idUKKBN16B0... My initial reaction was astonishment that the engineers would happily implement this. And maybe that is what happened. But the alternative possibility is that product and senior management assigned different parts of the feature to different teams e.g. one team develops a pattern recognition system to detect users' professions, another team develops a spoofing system for use in demos, etc...
- no_wizard 3y agoThis doesn’t add up. In order for someone to slow down the by browser they need someone to have coded the following: - UA Detection - Branching for when the flag is on or off - a timeout that only runs when these two things are true That takes an engineer to do the work. Marketing and product managers are not writing this code certainly. If they’re abusing a differ t flag, then the real question I have is what the flags purpose is and why is it screening Firefox. Either way there is an intention of UA checking and throttling based on the UA and that takes an engineer to do it
- patchguard 3y agoNot so hard to believe tho. I work on a product that has parametrized feature flags. This means that, from a web interface, someone can say things like "activate feature X, on machines running operating system Y, at version Z, and are running product version W with license type Q". This is not a hard thing to build, and once you have it you can mix and match filters without being a software engineer or knowing how it works behind the scenes.
- squarefoot 3y agoAt least they didn't rewrite the sleep code to do crypto mining.
- kristopolous 3y agoBecause it works. Good engineering isn't about being obtuse and convoluted, it's about making stuff that works.
- asddubs 3y agowhen the purpose is to abuse your monopoly to further your business interests in another area, being obtuse and convoluted to get plausible deniability is good engineering. This is just sloppy.
- lucideer 3y agoI think this is a good example of corporations being made up of people, rather than being contiguous coordinated entities as many of us sometimes think of them. An engineer doing "good engineering" on a feature typically depends not only on them being a "good engineer" but also on them having some actual interest in implementing that feature.
- asddubs 3y agoI would imagine that in a well coordinated company engaging in this kind of thing, the order wouldn't be "slow down firefox", but something along the lines of "use XYZ feature that firefox doesn't support and then use this polyfill for FF, which happens to be slow". Something that doesn't look too incriminating during any potential discovery process, while still getting you what you want.
- kristopolous 3y agoNah, that's got a risk profile. They could implement whatever your strategy is in the next release. You aren't going to necessarily get the longevity of the naive approach. Plus a Firefox dev would discover that more easily as opposed to this version which they can just dismiss as some JavaScript bug on YouTube's part
- 3y ago
- agumonkey 3y agofollow the money employees will follow orders, orders are made by people who control the money
- _fizz_buzz_ 3y agoMaybe the engineer that was tasked with implementing was annoyed with the task and did it on purpose this way.
- skupig 3y agoYou're mad that they're using a function for its intended purpose?
- vsnf 3y agoSpeaking as someone who only very occasionally does browser related programming, what is the supposed sin committed here by implementing it this way?
- another2another 3y agoYep, curious to know the same thing myself.
- alias_neo 3y agoIn programming in general, sleeps are generally considered....(I'm lacking the word)...distasteful? If your code needs to wait for something, it's better done with some sort of event system or interrupt or similar; the reason being that a 5s wait is a 5s wait, but if, say the thing you're waiting for returned in 10ms, if you're using an alternative solution you can carry on immediately, not wait the remaining 4.99 seconds. Conversely, if it takes longer than 5s, who knows what happens?
- vsnf 3y agoSure, but assuming we take it as face value that this is a straightforward attempt to force a UX-destroying delay, I don't see what makes this so terrible. It's meant to force a 5 second wait, and it does it. Problem solved.
- ascagnel_ 3y agoThe 5-second wait is the issue, not the means it was obtained -- a fixed wait time either wastes the user's time (by making it take longer than necessary) or is prone to bugs (if the awaited task takes >5 seconds, then the end of the timer will likely break). The better question is _why_ a 5-second wait was necessary, and there's almost certainly a better way to handle that need without the fixed wait time.
- saynay 3y agoOPs point, I think, is that wasting the user's time is part of the point of the code. This specific code seems partially meant as a punishment of the user for using an adblocker.
- otabdeveloper4 3y agoGoogle employs 30000 engineers, it's impossible for them all to be decent.
- CalRobert 3y agoI'm more mad about the complete failure of regulators to break up an obvious monopoly than I am with the engineers (though they're not saints either)
- shultays 3y agoIt is not literally a sleep though, isn't setTimeout more like a creating a delayed event? (I am not a webdev)
- yencabulator 3y agoThat's Javascript for you. Don't want to block the one thread from doing other things in the meanwhile.
- Izkata 3y agoYou can't directly do a sleep in Javascript because it runs in the same thread as the UI - it would block the user from interacting with the page. This is effectively a sleep because after 5 seconds it's running the code in the passed-in function (not firing an event). The code in the function then resolves a promise, which runs other functions that can be specified later by what called the one using setTimeout.
- shmerl 3y agoReminds me A Ticket to Tranai by Robert Sheckley where they deliberately asked to slow down robots in order for people to be angry and destroy them.