HNHacker News
TopNewBestAskShowJobs

mic47

481 karma · joined October 28, 2013

submissionscomments
mic47··on Marketing Firm Exactis Leaked a Personal Info Database with 340M Records
I think that the right title should be "Marketing Firm Exactis Exposed a Personal Info Database with with 340M Records on Internet". This is not a leak, at least there is no evidence of it yet. While this does not downplay this security "mishap", there is still big difference between "someone rob a bank" and "bank left their vaults open".

OTOH, it would be interesting to know how did they get hold on such data.

mic47··on After harsh criticism, Facebook quietly pulls services from developing countries
The problem was technical (due to the way it was initially built, I think it was using facebook domain for zero rating). Currently, encryption is supported: end-to-end on app, for mobile browser facebook apparently still decrypts the traffic.

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."

mic47··on Phabricator – GitHub Alternative written in PHP used by the Wikimedia Foundation
Facebook is using internal fork of phabricator (with facebook specific modification) for (almost) all the code-review (there might be exceptions). It's much better code-review tool than github.
mic47··on Why We Disagree with The New York Times
> "Facebook acknowledged that some partners did store users’ data — including friends’ data — on their own servers."

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.

mic47··on Facebook Gave Device Makers Deep Access to Data on Users and Friends
> I was surprised to see a Facebook rebuttal so quickly after an article like this.

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.

mic47··on Gnome has moved to GitLab
I think it's shame that lot of projects do. Why?

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.

mic47··on Germany Acts to Tame Facebook, Learning from Its Own History of Hate
Comparing those two numbers (removed fake account, and FB userbase) does not give you reasonable insights.

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.

mic47··on Leveraging the type system to avoid mistakes
That is why they call it pointless style sometimes.

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

mic47··on Google's Plan to Make Tech Less Addictive
"Shush" and "Wind Down" are already on Samsung phones, and FB is in good relations with Samsung (see oculus), so doubt this would be Facebook killer.

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).

mic47··on Facial recognition tech wrongly identified 2,000 people as potential criminals
That was under condition "if false positive means, that someone will point camera to that part of stadium and someone will manually check if it's correct [2]". That means that false positive does not know that it's false positive.
mic47··on Facebook Adds A.I. Labs in Seattle and Pittsburgh, Pressuring Local Universities
> how do they acutally pay the low-income personell, like guards or janitors?

They are most likely contractors. And they probably live far enough where they can afford living. But that means longer commute.

mic47··on Facial recognition tech wrongly identified 2,000 people as potential criminals
Article does not claim happening any one of those, as there is no information about how police handle this.

[edit] actually they claim that no false positive was arrested. But not others.

mic47··on Facial recognition tech wrongly identified 2,000 people as potential criminals
That assumes that both numbers are for the same period and that each arrest correspond to 1 match, which most likely will not be be true. For example if system identified only subset of people, but when you make arrest you arrest all. That means that now you have more arrest attributed to system, than number of matches.

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.

mic47··on Facial recognition tech wrongly identified 2,000 people as potential criminals
[I focus only on the performance of facial recognition system, not on whether it's good idea to have such systems in place.]

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.

mic47··on Facebook Warns Investors to Expect 'Additional Incidents' of User Data Abuse
> . You can do this do today, without agreeing to facebooks terms (i.e. go to github, get access tokens, connect to "open graph", no accepting terms or creating accounts needed

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.

mic47··on Facebook Warns Investors to Expect 'Additional Incidents' of User Data Abuse
> purported legal contracts != legal contracts

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).

mic47··on Facebook Warns Investors to Expect 'Additional Incidents' of User Data Abuse
It's still violated on agreed terms (even if not legally enforceable) so it can be called abuse.

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.

mic47··on Facebook Warns Investors to Expect 'Additional Incidents' of User Data Abuse
There are two aspects: technical and legal.

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.

mic47··on User IDs probably shouldn't be passed around as ints
If you need to mix them up, there is bunch of options. It all depends on what you need to do, and what language you are using, but usually there should be simple solution to this.

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).

mic47··on User IDs probably shouldn't be passed around as ints
Then maybe you should have manager's IDs done as separate type too?
mic47··on User IDs probably shouldn't be passed around as ints
Naming won't help, sooner or later someone will make similar mistake that will slip through code review.

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.

mic47··on It’s weirdly hard to steal Mark Zuckerberg’s trash
Well, if some rando on the internet is going to dig through your trash, and write a blog post about it, than maybe you are famous enough to justify more paranoid security.
mic47··on Software Testing Anti-patterns
You can solve this by test plan: You write into test plan what you have tested, and others in code review can suggest/require to test other things you missed.

In my previous job this worked quite well.

mic47··on Software Testing Anti-patterns
Why should other test your code?
mic47··on A Taxonomy of Technical Debt
Tracking "credit" score sounds like good idea, but I would not go as far and assuming that persons with bad credit scores are poor hires.

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.

mic47··on Zuckerberg denies knowledge of Facebook shadow profiles
> In order to "delete" my phone-shadow-profile, facebook needs to remove my phone number from their internal copies of my friend's contact lists.

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?

mic47··on Facebook Secretly Saved Videos Users Deleted
FB is/was regularly audited by Irish DPC, I think one of the topics was user data deletion. I think that the results were public.
mic47··on Facebook Secretly Saved Videos Users Deleted
Because FB deletes by flag so that content disappear instantly and then start the actual process of deletion (which can take while because of stuff like backup, cols storage)...
mic47··on Show HN: Tech Companies That Won't Delete Your Information
Please add reasons for each site why they have points they have and links that support those claims.

For example, you said that Facebook deletes data partially. What does it mean?

mic47··on Demand for American Sperm Is Skyrocketing in Brazil
Isn't Brazil in America?
← PreviousPage 5 of 6Next →