What I can't believe: Facebook shipped a feature to drain users' batteries. What I can believe: Engineers at Facebook were micromanaged into dismissing issues such as users' batteries being drained.
Here's how I imagine it was introduced: Engineer A: Hey how would we know whether loading this image as a .webp vs a .jpg would perform? Our lab testing is one thing but the different hardware out there vastly differs from phone to phone -- we need some data on the whether the average phone has enough optimizations for one versus the other. Engineer B: Oh, what if we just run a background task on some of the phones t…
Distributed unit testing ... as you note I like the idea.
If a 'unit test' is "high CPU load during usage" they kill people though at their scale just by the fact that people can't call 911.
What I can't believe: Facebook shipped a feature to drain users' batteries. What I can believe: Engineers at Facebook were micromanaged into dismissing issues such as users' batteries being drained.
Here's how I imagine it was introduced: Engineer A: Hey how would we know whether loading this image as a .webp vs a .jpg would perform? Our lab testing is one thing but the different hardware out there vastly differs from phone to phone -- we need some data on the whether the average phone has enough optimizations for one versus the other. Engineer B: Oh, what if we just run a background task on some of the phones t…
But there is beta version fot that, right? I don't see anything wrong doing this in beta. If i installed beta, i consent to be a lab rat
What I can't believe: Facebook shipped a feature to drain users' batteries. What I can believe: Engineers at Facebook were micromanaged into dismissing issues such as users' batteries being drained.
So they didn't explicitly ship a feature to drain users' batteries, they seem to have shipped a feature that does tests (testing how long downloading different image downloads take etc.) that drains a users batteries.
It's not clear to me why they wouldn't run a few tests for a few seconds across many/all of their hundreds of millions of users so the battery drain would be unnoticeable, rather than enough on a single user where it would be noticeable.
Well, if you work for facebook, ethics is not your priority in the first place. On the other hand, if I ever decided to throw mine on the toilet and work for a company that manipulate people, and perform mass spying on them, then I would go all the way and just do things like this.
I wouldn’t work for Facebook because I don’t hate myself enough. But I also don’t clutch my pearls and think that any for profit company is feeding starving children. You can make a negative case for any of the large tech company.
> You can make a negative case for any of the large tech company.
Yes you can, but it's a spectrum. Microsoft abusing their monopolistic position to strangle competition and adding adware and spyware in an OS people pay for is ethically and morally bad, but is much less bad than Facebook profiting from and doing nothing to stop an actual active genocide. Facebook is by far the worst, ethically and morally, offender of the big tech companies not actively involved in the military industrial complex.
I miss the part that explains WHY they would drain a battery. What kind of outcome has this test?
i don't find it too compelling, but this test could potentially help you understand, to some degree, how important battery consumption of an app actually is to users. so you run a test where you intentionally consume more of some cohort of users' battery power (you could have several cohorts where you consume more and more power, even). and you look to see if the rate at which your app is deleted/force-quit by the co…
hard to make that study work, it presupposes that users (a) understand that their battery life is decreasing and (b) understand that this application is responsible for it (and to what degree). Those are two big if's, it's more likely they'll chalk it up to battery aging than to a malicious application that used to be well-behaved. That doesn't however prove that users don't care - it only takes one article with a headline "Phone draining quickly? Facebook battery usage has increased by XX% the past year and responsible for majority of its users battery drain" to completely swing the pendulum to the other side where more users are deleting your app because of this new reputation, than would proportional to the actual battery drain; but without that trigger the study is not complete.
You could buy 100 iphones... Or you could "borrow" a million for free, to get rock solid stats. Also there are hundreds, if not thousands, of different phone models. The allegedly used way of negative testing is much better than buying phones, and is virtually free.
I think Facebook Can afford to buy thousands of different phone models (and presumably already does?)
Handling low battery states isn’t exactly rocket science anyway. Do less computation. The rest is up to the OS.
Another regular reminder: install as few apps as possible on your phone, and treat all apps in an adversarial manner. Every single app you install may come with multiple downsides (usually just tracking and advertising, but apparently also draining your battery during A/B testing.) and there must be clear and necessary benefits in order to justify the cost.
I've recently migrated to Pixel 7 Pro with GrapheneOS and noticed that my battery was lasting for about 6 hours. And there was nothing unusual in the battery usage report. Initially I thought that something is wrong with new Pixels or GrapheneOS.
So, I've started reading ADB logs and assumed that something might be wrong with Meta apps - (which I installed in work profile). The logs were full of various messages and stacktraces from their background services. So, I put them (facebook, messenger, whatsapp) into "restricted battery" mode and disabled background data. That was enough to keep battery for 12 hours.
I thought that it might be an issue with Graphene sandbox and bad Meta code, not a deliberately created "feature".
In the end I've also restricted Telegram and now my battery lasts for 17 hours.
So, I went to the extremes and now I do the same (restricted battery + disabled background data) for all the apps by default.
I’ve read this short article carefully twice now and I still find myself trying to guess why Facebook would do this. I conclude it’s not a good article.
Why? Just like for other telemetry: all they have to do is push a small modification somewhere and they instantly get access to millions of data points which they can then use to analyse what works best for them. Though I agree it is very, very vague if the 'battery draining' is really just that or it's more a result of something like 'for _ in range(10000000): measurePerfOfAvsB()'. But I assume the original source d…
I had assumed it was something like “we could cache this locally on the device, but then our telemetry would potentially be delayed, where if we always fetch live from the network then we get to see what they wanted immediately which is better for facebook for (insert reasons)”. The network fetch would be much more expensive in terms of battery life.
Full disclosure: I have had to implement telemetry collection and have faced this kind of trade-off against power budget, but not for social media/personal/phone apps.
I can't shake the feeling of how 'double' this is. One one hand, yes this is like criminal behavior. On the other hand: the difference in battery drain rate between a phone running stock Android vs the same phone running for instance LineageOS for MicroG is also pretty big whereas for the user-facing functionality it can do the exact same thing. In other words: in my view if you get a smartphone these days you are in…
Agreed. As much as it's noble to say technology companies (especially the successful ones) should care more about their users/customers, these sorts of conversations can really get off into the trolly-problem weeds of ethicizing generic tools, and generic entertainment tools going by what users spend most of their time on. At some point we, the public, have to take responsibility for our own security (or whatever else as the specific case may be) by coming up with a plan slightly more sophisticated than "Hope my angry birds machine is up to the task of literally saving my life". It feels like back in the bad old days before smartphones, every suburban dad in cargo shorts understood that if he wanted to make sure he could call into work, he had to bring an extra battery along and not waste juice on superfluous calls, and preferred separate pocket computers for time-wasting entertainment or non-critical business applications. Nowadays we've integrated the two together for convenience, but still get this outrage cropping up every so often over not matching the reliability of the older machines that were designed to primarily just be reliable. Something had to give to, erm, give us our angry birds, and customers bought giving up reliability in emergencies for convenience in the 99.9% of time that's not an emergency. Not preparing for the off chance that the computer in your pocket will prioritize something other than utility-level uptime for call-making by carrying a second phone or extra power, regardless of who, what, or how, is a naive failure to plan that needs to be addressed more deeply than whatever nonsense Facebook's up to this month. Which doesn't have to be a problem, so long as we're not pretending things are different. Users are perfectly capable of running their battery down all on their own, or installing software (or as you point out THE OPERATING SYSTEM) that runs the battery down all on its own "naturally" because everyone involved has different wants until after they've actually had a heart attack at 2% battery.