OTOH, it would be interesting to know how did they get hold on such data.
481 karma · joined October 28, 2013
OTOH, it would be interesting to know how did they get hold on such data.
https://developers.facebook.com/docs/internet-org/platform-t...
"HTTPS support
We encrypt information for Free Basics wherever possible. When people use the Free Basics Android app, their traffic is encrypted end-to-end unless you specify that your service should be HTTP only. For the Free Basics website in a mobile browser, we use a “dual certificate” model to encrypt traffic between a person's device and our servers in both directions. If your server supports HTTPS, we will also encrypt traffic between our servers and yours. Even if your service doesn't yet support HTTPS, where possible we will encrypt that information between our servers and people's devices unless you ask us to not use dual certificate HTTPS. When people use the Free Basics mobile website, information is temporarily decrypted on our secure servers to ensure proper functionality of the services and to avoid unexpected charges to people.
We preserve the privacy of that information while it's decrypted by only storing the domain name of your service and the amount of data being used—the same information that would be visible using end-to-end encryption—as well as cookies that are stored in an encrypted and unreadable format."
This statement from the article is meaningless, as many legit things might mean "third party storing data" as: 1.) Storing and editing contact imports, if user wants. This is technically friends data, but it's my contact list. 2.) Proxy-ing and caching: we are talking about shitty phones mostly before android and ios were mainstream, so "store on their servers" could be as simple as an artefact of implementation of non-html facebook client app on that shitty phone. Example of such artefacts: custom notifications channels, caching, downscaling of images. I think that blackberry did proxy all of their communications through their servers (not 100% sure), so if Facebook was available, they probably also had to store something on their servers.
The journalist didn't even attempted to distinguish between "my device is calling this api" and "company is doing requests" and resort to conflating those two and ambiguous "some partners did store users". This is example of journalist trying to create a story instead of getting to truth. If they would dig deeper, and try to figure out which companies stored data, what type of data (was it contact import, caching, or did they download full graph?), and what was purpose, it would be valuable article.
Article contains Facebook's response, so they most likely read it before it was published. As far as I can tell, they probably didn't like the way reported interpreted things so they prepared at least part of the response before, so they can react when it will be published.
1.) Compared to Phabricator (which I used for almost last 4 years), github is really behind for code review (I didn't use gitlab, so can't compare). There is lot of missing features: I can't comment on selection of lines, see diff of subset of commits, do stacked pull request (one PR depends on another PR), view of open pull request is chaotic
Effect is that it's way harder to send small PR for review, unless you work on lot of unrelated things and multiplex.
2.) Github dominance is causing everybody using git, and stiffs competition in source control tools. For example, I find mercurial much better than git: it has similar set of features, but it's easier to use, my day-to-day chores I do with single command, and I am much less likely to screw up my repo.
FB ususally reports DAU/MAU (daily active users, weekly active users). That means, if you remove 500 million of not active users (not using facebook last month), these numbers are not affected. I don't think this would explain the majority of 500M number.
Most of the 584 million removed fake accounts were most likely created in the same period (and most of them were removed quickly after registration -- as said in the FB report). So they didn't decimate their user base, but additional 500M accounts that were deleted (so they shouldn't affect the user growth). This assumes vast majority of active fake accounts will be blocked.
Point free is good for short functions, like 1-3 compositions is fine (maybe little more), but if you overuse it, it's actually much less flexible and you have to rewrite more code if you want to change something.
"Point-free style can (clearly) lead to Obfuscation when used unwisely. As higher-order functions are chained together, it can become harder to mentally infer the types of expressions. The mental cues to an expression's type (explicit function arguments, and the number of arguments) go missing.
Point-free style often times leads to code which is difficult to modify. A function written in a pointfree style may have to be radically changed to make minor changes in functionality. This is because the function becomes more complicated than a composition of lambdas and other functions, and compositions must be changed to application for a pointful function.
Perhaps these are why pointfree style is sometimes (often?) referred to as pointless style. " https://wiki.haskell.org/Pointfree
Additionally, Facebook already turn down video in newsfeed (it decreased time-spent), and changed goals to 'meaningful social interactions'. Long term, being useful is more important than grabbing attention (and FB plays long-term game). The fact that FB, Instagram, Youtube, are "grabbing attention", is only byproduct of thinking that time-spent like metrics are good proxies for usefulness (and they were really easy to optimize), which turns out not to be true (or at least they don't tell the full story). Hackernews is grabbing my attentions the most for me, should I blame the ranking model?
Most engineers, managers, designers, ... in these companies are people who want to build useful stuff, rather than maximizing short term gains for share holders (additionally none of these companies are paying dividends, so if you maximize value for share holders, you should play mid to long game). If you can make these engineers realized that what they are building is harmful, they will change it.
Disclaimer: I worked at Facebook and it from inside, so have different "trust" model for these companies, and expectations how they work internally. I don't believe that there sinister master-plan behind every feature they release, instead, they are complex organisms with many players that are optimizing for different goals (sometimes sometimes seemingly opposite).
They are most likely contractors. And they probably live far enough where they can afford living. But that means longer commute.
[edit] actually they claim that no false positive was arrested. But not others.
Since article does not do any attempt to answer these discrepancies, there is high chance the devil is in the details of definitions of those numbers.
From the systems performance point of view, this is non-story. If you deploy detection system, you have to make trade-off between precision (how many false positives you will have) and recall (how many false negatives -- misses) you will have [1]. How you do this trade-off depends on cost of false positive, and cost of false negative.
For example, if false positive means, that someone will point camera to that part of stadium and someone will manually check if it's correct [2], and then arrest, then 2000 false positives might be good performance if recall is good, because there is no negative impact on false positive, only some wasted effort by police.
On the other hand, if this AI match would be used as evidence in court, then the it would be terrible, as it would cause much more harm than good. From the article it seems that police is using it more closely to the first case, than to the second case, so the performance of this system might be good, so really the article is non-story.
[1] I simplified the "precision" and "recall". [2] Or send more security guards / police to that area, or whatever discrete measure.
if I go to pastebin and find login credentials dumps, i can login to those services without accepting any TOS. Yet, I would probably go to jail of caught. This seems to be similar case. but I doubt that user access token (that you need to access that users data) is somewhere on github. app user token sure (as sometimes you have to ship it with the app, or app can be opensource), but user access tokens are like passwords, so they should not be in the code.
Oh, learned the new word today. Do they have also some analysis that say why TOS should be purported legal contract and not valid legal contract?
> If you grab data hosted on facebook or any other website, without having an account, where is the explicit contractual agreement?
I assumed that we were about platform API abuse. In such case, each developer had to agree with TOS before he is allowed to use the API. So in this case, developer explicitly agreed to terms that subsequently broke. So I think it can be called "abuse". It's not random HTTP request.
For random HTTP requests, that is much less clear. My stance on this is that as long as you are respecting robots.txt, and not trying to circumvent any blocking measures by the site you are using, everything is fair game (in general, maybe there could be exceptions). I don't think it's right/moral to violate those two. And whether it is legal, it depends on jurisdiction, who you are scraping (I am assuming we talk about automated access), if you respect robots.txt, if you try to go around blocks, ...
Two interesting cases in scraping I know about are these ones: https://en.wikipedia.org/wiki/Facebook,_Inc._v._Power_Ventur.... https://arstechnica.com/tech-policy/2017/08/court-rejects-li...
> MITM/DPI'ing facebook users who connect via your hardware contractual agreements?
I am no expert in law, but MITM/DPI to extract data sounds highly illegal. I don't think that TOS have to handle this case.
> The extent that is abuse, is that facebook (or any other site) service is engineered in such a way that makes such information it collects available to any degree in the first place.
So you are arguing that Facebook should be walled garden, with minimal possibilities for users to share their data with developers (not that I disagree). I don't think this is problem with existence of these platform / capabilities, but that the users are not understanding implications of what they are allowing (but doing that is gargantuan task, they will probably invent new nobel prize for anyone who manages doing that).
Also, how does the provided link support claim that they are not necessarily enforceable legally? I read it but saw only criticism of TOS in general, nothing about whether they are or are not legally enforceable.
Technical: companies got the data in a way that system was designed. No abuse there.
Legal: companies didn't adhere to TOS and used data in a way that were not supposed to. This is why is it called abuse.
For example, if you simply want to have functions that works for both of them (so that you don't duplicate code), you can either create function from Manager to User (so that you can reuse functions for users), or use whatever polymorphism stuff your language support (polymorphic function, OOP, ...).
If you want to mix User/Manager in same collection (or have function that returns any of those), OOP can help too (Manager is "child" of User). If your language have sum types, you can use those (have additional type "User or Manager", and accompanying matching/extraction function).
In some languages you can do this with no runtime overhead (i.e. the additional type will be erased during runtime, as it's already type checked).
Real problem is that it is possible to accidentally do this type of mistakes. If you can avoid doing it by leveraging type system, you should. Relying on humans to never make mistake is futile.
In my previous job this worked quite well.
Maybe person who creates tech debt is really great at prototyping, fixing urgent issues with unconventional methods (aka MacGyver) or do other tasks you find boring. While credit score of this person will be low, such people are also great assets in the team.
In general, this metric could be useful as tracking number of pull requests, lines of code, and so on: to spot anomalies and investigate: maybe that person is suddenly blocked by something, overwhelmed and need help, or just works differently, or on different tasks and the anomalous metric is ok.
This is (potentially) not viable. Your friend's contact list is not your data, it's their data (about you) and they store it on FB servers. Right now it's probably used only for ranking and friend suggestion, so what you suggest would work. But if FB would decide that say messenger should work also as contact sync app (it already allows you to send SMS to people in your contact list), this would cause that your contact could not be synced, and really break user experience, as you would be able to delete your phone number from your friend's phone books.
More philosophical question: if you should be able to do that [delete your phone number from your friend's phone book on FB], should you be able to do that also from google contact sync server? From gmail? From your friends phone? Or from your friends physical (manually written) phone book? Where to draw a line, or how to approach this?
For example, you said that Facebook deletes data partially. What does it mean?