Ask HN: What language should I learn first? - <AUTHOR> I want to learn to code. Which language should I start with, and why?  Just signed up for Codeacademy... <comment><USER2> There will be a thousand opinions. Ignore them.

The problem is that you're asking the wrong question. If you want to "get into" programming you need to do roughly two things to start.

        1. Find a reason to care. This can be a pet project,
           a particular question, an application domain, a
           partner or team you'd like to work with, the desire
           to understand someone's work you admire, etc.

        2. Learn how to think formally as a programmer. This
           is sort of like learning how to code, but it's
           different from learning any one language.

The point is that as you discover greater passion for something in (1) you'll discover greater need for (2). Simultaneously, as you improve (2) you'll become more sensitive to (1).

The other point is that languages are dumb. There are lots of reasons to learn one or another, but by and large becoming an "X programmer" is a non-goal unless it is somehow required for (1). For instance, joining a team of Ruby programmers may require becoming a Ruby programmer yourself.

So, discarding the philosophy, what do I recommend?

Learn whatever language you can the most quickly. Then learn another. Python may already be installed on your computer, so you can get started quickly. The story is probably the same for C, Ruby, Java, and Perl. If you know how to launch web pages online then PHP is probably available.

Recognize that programming has a large comparative linguistics component. No single language will teach you (2) above, but solving many diverse problems in a single language might get you a lot of it. Studying many languages expands your familiarity with _how to represent things_ and that can be a big boon to (2). Later on in your career, it's often very valuable to explore languages with vastly different background models and assumptions. Early on, I'm not convinced it's such a huge deal... so long as you don't get stuck with a single choice for too long.

And above all, have fun. CS/Programming/Software is a fascinating world for all kinds of reasons.

</comment><comment><USER3> Whatever you choose, learn git along with it. It helps to answer the question, "This used to work, what did I do to break it?"

Also, call me sentimental but I learned C/C++ as my first language and would recommend it. I don't see a codeacademy class for that though, and it's not really perfect for web development.

If you find that codeacademy isn't working out, I've also personally used codeschool.com and had great experiences there.

<comment><USER4> Actually, I should have mentioned this in my own post. I can't emphasise the point about git enough. I didn't _really_ get it at first so shied away. Version control is one of THE most important things you'll learn, for a whole variety of reasons.

When it clicked I remember thinking: "Oh, it's like save games for coding."

</comment></comment><comment><USER5> Here's my path (~30 years worth).

high school:

      basic
      6502 assembly
      a little FORTRAN
      a little pascal, but didn't understand it

mit:

      scheme (sicp omfg)
      symbolics lisp
      common lisp
      clu
      pdp-10 assembly
      connection machine
      a little C
      a little more FORTRAN

grad school / 90's:

      a lot of C (system programming / unix kernel hacking)
      Obj-C / NeXTStep (reappears later as OSX / iOS platform)
      MIPS assembly (branch delay slots ftw)
      x86 assembly (segment registers wtf)
      ALPHA assembly
      a little C++, but hated every minute of it
      Visual Basic

dotcom years to present:

      Java
      C#
      SQL (Oracle, Sybase, MSSQL, DB2, MySQL, etc)
      Python (scheme without parens!)
      ETL platforms (visual programming environments for data manipulation)
      PHP
      Obj-C / iOS (oh hi, you're back)
      Groovy / Grails
      a little Ruby / Rails

I'm a little weird because I did a lot of Lisp early, and then became an OS hacker. Once you can find single-line errors in assembly code, everything else is easy.

I learned a lot doing C and assembly; especially the importance of working clean, checking results, and being careful with pointers. Lisp teaches you how good the world can be; C and assembly teach you how to cope with how bad it really gets. However, I'm not sure I would recommend a new person to spend as much time on this since the world has moved to languages with garbage- collected heap storage.

I never cared for the functional languages (ML, etc), mostly because I found the functional programming zealots to be such insufferable bores.

If I were starting today, I would start with Java or Ruby, since they are modern OO languages with good deployment options. Once you know these, it's easier to "downgrade" to simpler languages like Python, PHP, and JS.

But the real takeaway is that you should learn them all.

<comment><USER6> "I'm a little weird because I did a lot of Lisp early, and then became an OS hacker."

+1 for introspection! (Or do programmers call that reflection?)

</comment></comment><comment><USER4> Slightly against the flow here: I chose Python (and Django) when I learned to code (and built our MVP for www.gmbl.io, still a few rough edges - plug, plug) Python's GREAT, no doubt, and Django is also very good.

But I've repeatedly found myself wishing I'd gone with Ruby/Rails (it was basically a coin toss.) because I've ended up in an environment where everyone else is working in Ruby for their pet projects - and it would be great to be able to tap their knowledge.

So, have a look around, what are people you know using? It's probably really useful to choose something that your friends know (if any of them code), or that you know there's a decent support for in your area - but beyond that, it doesn't really matter. And Python's really nice.

<comment><USER7> I agree, the opposite happened to me. I learned Ruby on Rails, but everybody around me was Python/Django, so inevitably I made the switch because friend knowledge makes it easier to pick up.

<comment><USER4> Shall we swap friend groups? :-D

I'm thinking about switching to Ruby (or at least learning enough I can join in.)

</comment></comment></comment><comment><USER8> Call me old fashioned, but I'm going to suggest learning C. It's one of the smaller languages around so you'll be quickly able to get past the "learning the language syntax" stage and into the "learning to program" stage. It's also still one of the most widely used and supported languages out there. It's also closer to how computers actually work so you'll learn more of what is actually happening when the computer runs your code.

Pick up a copy of K&R [1], read enough to do a hello world and start playing.

[1] [https://en.wikipedia.org/wiki/The_C_Programming_Language](https://en.wikipedia.org/wiki/The_C_Programming_Language)

<comment><USER9> I disagree. The C syntax is small and pretty easy to learn but the a learner will be stumped when it comes to installing the compiler, dealing with cryptic compiler errors, pointers and weak typing.

I'd recommend Python as it's easy to setup on any platform, has a clean easy to read syntax (newbies don't need to worry about generators or decorators early on), has a REPL and has a ton of good _free_ learning references [1].

[1] - [http://learnpythonthehardway.org/book/](http://learnpythonthehardway.org/book/)

</comment></comment><comment><USER10> Python is a good pick.

The goal of learning to program shouldn't so much be about one language, but learn about the concepts of what variables, control structures, operators, and data structures. So that you can apply them in different languages, and be more flexible.

</comment><comment><USER11> All languages present on codeacademy are worth learning.

But: if you have something in mind you want to build, pick a language and environment that fits it. If you want to code on microcontrollers, python and ruby are not a good idea. Want to build a website? python or ruby + javascript are a great idea! Use something that people commonly use to solve such a problem.

Your first implementation will be bad in any case, regardless of language. You will laugh at it in a few years. Rebuild it after a whilse. But thats no problem: everyone of us went through this process.

</comment><comment><USER12> What are your short, medium, and long term goals? How much do you understand about how computers and networks work?

If you want to start by creating web pages but eventually move to programming, learn HTML. Get really, really good at it - but without CSS. Then learn CSS, and learn how they work together, how they complement each other. Then add Javacript and DOM manipulation. You can do some very cool stuff, you'll learn a lot of logic along the way, make interesting mistakes, etc.

If you want to control a computer, get something that speaks Bourne shell (OSX, Linux, etc.) and get really, really good at defensive-minded shell scripting (by defensive-minded I mean always being alert for errors, always quoting variables, always checking return codes, etc.). You will learn a lot about how computers work, how they are structured, etc.

In both cases, you will also begin to feel the frustrations of working with these tools: Why doesn't this work, why is this so hard, etc., etc.

You could start with something more modern, more powerful, like Python or PHP or Ruby, but will you appreciate their power if you don't have a good understanding of the problems they were created to solve?

But that may not matter, if you want to build web apps using powerful modern frameworks. Where are coming from, where do you want to go?

There are many, many other ways to answer the question, depending on what it is you actually want to accomplish and how much you understand about how computers work.

</comment><comment><USER13> It depends what your goal is. Do you want to learn to be a good programmer, or are you looking to, for example, make a website as soon as possible? Is your vision to eventually make apps? Do you want to learn the "art" of programming or the "craft" of programming? You'll end up learning both if you pursue it, but this may impact where you start out.

Some people argue that starting with a functional language will make you a better object oriented programmer later on, while the reverse is less often true. If you believe in this, I would recommend Clojure from personal experience.

In my first programming courses at university, we used Lisp and ML. This was for learning the "art" of programming, i.e., learning to think like a programmer. Once you picked a course that was arguably more about the "craft", you were exposed to a language more native to the domain. As I choose to go towards front end related stuff, I was exposed to JavaScript and (at the time) ActionScript.

I ended up not working as a programmer; I'm UX designer. When I need to, I program most of my interactive prototypes in ClojureScript. Two years ago, that would have been JS, but I found that Clojure conforms to my thoughts rather than the other way around.

So, depending on where you are and where you are going, you might benefit from different advice, I think.

</comment><comment><USER14> It doesn't really matter, but Python is a good choice. It's intuitive, has a great ecosystem, and lots of different practical applications.

</comment><comment><USER15> How about learning BASIC first?

You'll hear people say that exposure to BASIC will rot your mind... But most of today's best programmers started out with BASIC simply because that's what you got when you started up a 1976-86 vintage microcomputer or played with MS- DOS. Clearly they were not permanently damaged by it.

The good thing about learning BASIC is that you won't be accidentally comparing your work to that of professional programmers. If you start with JavaScript, you'll be exposed to amazing JS tricks anywhere you look. Any Google search or "View Source" will show you stuff that you'll be struggling to understand. That can be very discouraging.

Here's a totally retro web-based BASIC environment:

[http://www.quitebasic.com/](http://www.quitebasic.com/)

There are of course much better modern BASICs around, e.g. Microsoft's Small Basic ([http://en.wikipedia.org/wiki/Microsoft_Small_Basic](http://en.wikipedia.org/wiki/Microsoft_Small_Basic)).

</comment><comment><USER16> I am sure others are going say, or have said, something similar:

If you had to learn a _second_ language, the question has many great candidates for answers. Python, Ruby, Scala, or a more functional language. Maybe a rapid prototyping language. If you believe in mobile first, then Swift, or Objective-C, or Java. If you need to manipulate data then Python, R or Julia. If you believe that you should learn the "foundations" first (read: legacy language) you could go back to C. If you like the Microsoft ecosystem, C#. If you work with Excel (what a beautiful product) then VBA and so forth.

But if you want the first language, then I think the answer is simple: Javascript.

I think it is an ugly language, and I wish another language had become to dominant, but history is what it is. Its in the browser, and so it is everywhere. You have to work with it for the most interfaces anyway.

A little sooner, and I am sure this would start a mini flame war, but as it is, this comment is safely tucked down the chain.

</comment><comment><USER17> javascript because

1) you can program anywhere, 2) it has incredible libraries for multimedia and interaction which makes it fun, 3) you can share the results with one click to anyone 4) it is a highly marketable skill

a lot of other people are recommending python which is fine if you are into the command line and file IO. if you prefer the web, then JS is the way to go.

</comment><comment><USER18> Python. Just pick it and move on.

</comment><comment><USER19> Does not matter, you will pick the wrong one. Thing is you will always regret not coding in X because of feature Y, when you actually have a project. On the other hand, you will not notice all the times that features A, B and C of your language of choice are helpful. So at least subjectively, another language would have been better.

As actual advice, it depends on your goals. If you want to build websites, then you should start with Java Script and perhaps another language for the backend. If you want to understand computer systems on a fundamental level or hack the Linux kernel, then you should pick C. And if you want to see progress, pick Python. But it is not too important, since a large part of programming is language agnostic. So just pick one, and learn another when the pain becomes unbearable. ( Then return to the first one, once you realize your mistake.)

</comment><comment><USER20> What do you want to achieve when you learn how to program? Mobile dev, web dev?

I'm on a similar path. I've been learning to code now for like 3 years, never really having the time. Now that I'm out of a job, I've got some free time and I've always had some web projects I wanted to work on. So even though I've been trying to learn python for the past 3 years, I've recently started following the reddit learnjavascript course that started last week [1]

I figured that with JS, I can learn Node.js and have some frontend and backend knowledge as well. Maybe someone much more knowledgeable than me can chime in on my approach?

[1]-[http://www.reddit.com/r/learnjavascript/comments/2c5aue/lear...](http://www.reddit.com/r/learnjavascript/comments/2c5aue/learn_javascript_august_2014_session_omnibus/)

</comment><comment><USER21> I'd lean slightly toward recommending Python to beginners, but don't get stuck on whatever you learn first. Try to learn at least one new language a year till you have several under your belt -- and even then, its not a bad idea to continue to do that.

And try to mix families -- each provides different insights. The first few might be something like:

1\. One of Python or Ruby 2\. JavaScript 3\. One of Java or C# 4\. Erlang 5\. C/C++ 6\. One of Haskell, Scala, F#, or OCaml (but I'd lean heavily toward Haskell)

(Also, if you are going to use relational databases, learn SQL -- yes, there are frameworks that abstract it largely away for you, but you _really_ want to understand what's going on behind the scenes. But that doesn't need to be in among the first things, unless heavily RDBMS-dependent stuff is going to be an initial focus...)

<comment><USER6> Good recommendations, I think.

Thank god you didn't recommend Perl or PHP.

 _shivers_

</comment></comment><comment><USER22> For serious work, starting with something like Python is probably a good idea (as many people have suggested), but if your goal is to learn about programming, I'd actually suggest you start with assembly. Assembly is really tedious to do anything practical with, but as a way to understand some of the most fundamental concepts in programming it really can't be beat. Doing the equivalent of hello world, in assembly and really understanding exactly what each line of the program is doing will pretty much make you better than most newbie programmers right from the start. If you jump to C next, do a little bit more there, and then finally jump to something like Python (bonus credit for calling C code from Python and vice versa) you'll be well on your way to being a fairly well rounded programmer.

<comment><USER23> Definitely NO. Assembly is okay as a second or third language, but not as the first one.

Python->C->ASM will have a much larger chance of success than ASM->C->Python; there's a good reason why college programs don't start with assembly first.

<comment><USER24> In my experience, there are two kinds of programmers. Top down and bottom up. Top down programmers have good success going from high-level languages to low- level. Though, learning a low-level language for them is not really necessary. Bottom up programmers don't grasp many of the fundamentals of programming until they can build them from basic underlying concepts. Some bottom up programmers may never get to a higher level language and end up as systems programmers or embedded programmers, maxing out with C as a high level language.

Personally, I am a bottom up programmer. I started with C and I found it confusing and ended up really disliking programming (I was in an EE program). Then in a later term we used assembly and once I got that foundation, everything clicked. I suddenly realized why C was necessary and what it provided. High level languages were then built up from there.

Everyone is different. There won't be one path.

</comment></comment></comment><comment><USER25> I believe that you can't go really wrong with any of the languages offered at Codecademy. If you have to pick one I would suggest JavaScript. It's not uncommon for projects to involve another language + JavaScript, so the syntax knowledge should be useful for years.

<comment><USER26> I would actually recommend against using JS as your first, since it's so atypical.

<comment><USER27> I would have to disagree. It all depends on how you learn JS. I really liked the book _JavaScript: The Definitive Guide 6th Ed._ which at many points talked about the differences between JS and C. As someone who learned JS as a first language, I find the syntax is close enough to C and C-Like languages to make picking them up fairly easy, but I'm still a novice and while I know JS pretty well I've only dabbled in C, D, and Rust as lower level languages. I found these languages to be almost like "extended" JavaScript because I didn't have many issues reading simple functions, and that's why I think it's a good language to start on, you can learn how to actually read and understand code with C-like syntax which, for me, made understanding lower level C-like code seem a lot easier.

Plus I think JS is fun to use because of how fast you can see your work "come to life". JS is also in high demand.

<comment><USER28> Choosing any language because it's in high demand is a bad decision, see "Why SICP matters"[0].

" I tell my students, "the language in which you'll spend most of your working life hasn't been invented yet, so we can't teach it to you. Instead we have to give you the skills you need to learn new languages as they appear." "

With regards to your statement, "It all depends on how you learn JS": That could be said of any language. The fact that you learned the differences between JS and C is what helped you when you were beginning, not that you learned JavaScript instead of Java, Ruby, or Python.

[0] - [http://www.eecs.berkeley.edu/~bh/sicp.html](http://www.eecs.berkeley.edu/~bh/sicp.html)

<comment><USER29> That is odd advice, the top programming languages currently used have been around for at least 19 years (python, ruby, javascript, php, java, c, objective c) and while there are new languages being developed I don't see languages like go, rust or swift pushing any of those languages out of the market.

If anything, programming languages are a long term investment and I think that learning a language that is in high demand isn't that bad of a decision, you could learn some obscure super expressive, highly functional, statically typed language, but there is large chance that you'll come in contact with javascript at one point in your career.

</comment></comment></comment></comment></comment><comment><USER30> Doesn't matter, pick one and move your focus to algorithms and data structures.

<comment><USER31> Exactly. Don't learn to write code, learn to program. Even BASIC or PHP will do; learn how to think about problems and how to bare different tools on it.

</comment></comment><comment><USER32> Why do you want to learn to code is a detail you left out, that's very important.

It's like saying, I want to learn to drive: If you are going to be a trucker, that's going to mean something different from being a biker.

I'd recommend Python as a first language. It wasn't my first language, but it's general purpose enough that you can do a lot with it, and popular enough that you can interview/get work/meet other people who use it. Oh and it runs from the command line straight off, and you are going to want to learn a bit about the command line.

</comment><comment><USER33> When you don't have a Jeep, don't take the shortcut that runs through the jungle. You're goal should be to keep moving and not get discouraged when you get stuck on something. I would learn a language that lets you take the highway instead of the shorter but trickier jungle road. Ruby, Python, Basic, and Javascript could be considered "highway" languages while C, C++, Java, and most other languages could be considered "jungle shortcut" languages.

</comment><comment><USER34> If you want to jump in and go, I highly recommend Ruby, though I will warn that Rails can be very imposing if you aren't familiar with web development already.

If you want to understand more low level concepts, you can never go wrong with C, and these days Rust is a good choice for that as well (though steep learning curve if you have no previous experience).

</comment><comment><USER35> C. It's low enough that you don't get to skip out on core concepts. I notice a lot of younger programmers who have only used high level languages use inappropriate data types because they do not understand the implications of their choices.

It's also high level enough that you won't waste time in minutia of just making something work.

</comment><comment><USER36> JavaScript. Why?

Extremely low barrier to entry: you already have everything you need.

Results are immediate: you don't have to wait around for an app approval process to share your stuff.

It sucks: teaching a healthy respect for learning a language _well_ and finding all of the pitfalls. Every language has them. Best not to start out assuming they don't.

</comment><comment><USER37> Python + Django, Ruby + Rails, Javascript + Nodejs..

Most people are in love with Python, Not everyone. You may or may not love it, So try experimenting and choose the one.

Codecademy is good place to learn syntax and language basics, but books are the best choice to improve your skills.

Never stop learning, Try some Open Source Project, You'll learn much more..

Have Fun, Good Luck

</comment><comment><USER38> [https://docs.python.org/3/tutorial/index.html](https://docs.python.org/3/tutorial/index.html)

It's very easy to learn, at the same time a very good language to be capable of writing code. It's multi paradigm, so you can learn a lot of different things.

</comment><comment><USER31> Whichever language you choose, pick a project you want to do with it. I find that having a goal, even a silly or small one, presses me through some of the more frustrating parts of learning a language and the time commitment it brings.

</comment><comment><USER39> Pick JavaScript or Ruby. JS because you can go full stack and can move on from some client-side work to full stack pretty easily with node.js. Ruby because it had beautiful data structures and I'm not a fan of forced whitespacing.

</comment><comment><USER40> Whichever one looks interesting. Once you get one down, picking others ones up isn't as challenging. The important thing is keeping your motivation up, so pick one that excites or intrigues you if possible.

</comment><comment><USER41> Why JavaScript is the language to learn.

[http://scripting.com/2014/08/15/whatLanguageToLearn.html](http://scripting.com/2014/08/15/whatLanguageToLearn.html)

</comment><comment><USER42> LISP, using Peter Seibel's book "Practical Common LISP": [https://cmdev.com/isbn/1430242906](https://cmdev.com/isbn/1430242906)

</comment><comment><USER43> I guess this will also help- [http://www.charlespetzold.com/code/](http://www.charlespetzold.com/code/)

<comment><USER44> That's a very very good book, although what he is probably asking for is a programming language :)

<comment><USER43> I think it would help OP to understand programming in general sense but then I am still a newbie so correct me I am wrong.

</comment></comment></comment><comment><USER45> I started learning with Python and then HTML, CSS, JS with Angular+Firebase! This allows you to start building stuff right away.

</comment><comment><USER46> What is your preferred computer? If Windows, then I must agree with myddle's recommendation of Python.

<comment><USER47> I don't get your comment. Python is great on each platform but Windows where you must put some extra effort to get it running.

<comment><USER48> Python is just some extra effort. While Ruby is much more of a pain on Windows.

</comment></comment></comment><comment><USER49> Python seems like a good choice as it is simple and can be used in a wide variety of applications.

</comment><comment><USER50> Python would be a good choice since it's easy to learn but very powerful.

</comment><comment><USER41> JavaScript. Everyone has the runtime already installed.

</comment><comment><USER51> Learn Swift. Mobile is the future.

<comment><USER21> Mobile may be the future, but Swift is limited to one vendors mobile platform, while there are a ton of languages (C#, JS, Python, Ruby, even Haskell) that you can use for mobile that aren't limited to one vendor''s platform. Plus, "mobile" usually has a server component, and those other languages can also be used for the server end.

<comment><USER51> Where can you run python on Mobile? Also, yes of course it's one vendor. One vendor that also has the world's most profitable app store. OP asked for a language to get started with. In my personal experience, being able to see items move on screen is a lot more intriguing to beginners than doing some server specific tasks like building an API.

</comment></comment></comment><comment><USER52> Why is everyone hating on PHP?

</comment><comment><USER53> Pascal.

</comment><comment><USER54> Python

</comment><comment><USER55> c#是我第一个学的语言。

</comment><comment><USER56> Pseudocode is a good start unless you already have a project in mind?

Remember there is no one-language-solves-all-problems, you gotta pick the right tool for the job and you shouldn't be afraid to hop between those tools.

<comment><USER50> Pseudocode is only good for theoretical algorithms as it does not provides immediate result, and can at most do the work of a Ti calculator. Learning a real language provides a lot more interest and satisfaction.</comment></comment>


Qwerty vs Dvorak: Dvorak cooked the books - <AUTHOR> http://reason.com/archives/1996/06/01/typing-errors

<comment><USER2> I'm a Dvorak user; I think the article is statistically correct but misses the broader point.

\- The most important part of the Dvorak keyboard is that the most frequent English letters are on the home row with the vowels pushed to the left. This means that you're less likely to move your fingers from the home row and more likely to switch between hands for each letter. Thats the theory of why Dvorak is faster and more comfortable. It's a little crazy that E isn't on the Qwerty home row.

\- It was much harder to switch to a new layout than I expected. It took about a month of typing with Dvorak every day and destroyed my ability to type on a qwerty keyboard. For a period during this transition I couldn't really type well on either keyboard, not fun, and not easy to explain to my boss why I couldn't fucking type. Interestingly I can still type fine on my iphone qwerty keyboard, so it is apparently a separate process in my brain.

\- I think the article is similar to saying "there's no statistical proof that using the metric system is faster". Using the metric system is the kind of thing that makes sense intuitively, but if you took 100 scientists using imperial measurements and retrained them to use the metric system, it would be hard to conclusively prove that it is _BETTER_.

\- To extrapolate a little bit, there I think there is a broader point here that statistics are usually used to make an argument, often deceptively. It is incredibly hard to create a clean sample in the real world, and even then its difficult to really extract meaning from those numbers. Remember, the average person has less than 2 legs.

\- My personal feeling is that Dvorak is a LOT more comfortable and I type maybe 10% faster with it, though I can't really back that up. Maybe its just the fact I learned it second, or maybe I'm just fooling myself, who knows. But I spend like 10 hours a day typing, so if I type 10% faster over my lifetime then I've... turned a profit? Maybe I'll spend those extra days at the end of my life doing a better study about how much faster sailors can type on Dvorak.

Even if you don't use Dvorak, I HIGHLY recommend switching your Escape and Caps-lock keys, especially if you use Vim. Think about how much more you use Escape than Caps-lock. I use something called PCKeyboard Hack to configure that feature and Dvorak on OS X. On Windows, theres something called Auto Hotkey.

<comment><USER3> I struggle to imagine why the caps lock key exists, and if so I can't imagine why it is typically so big and placed in one of the best spots on the keyboard. The only time I ever use the caps lock key is to turn it off after I have accidentally pressed it.

<comment><USER2> Agree

</comment></comment></comment><comment><USER4> Tum te tum..."answer a question to read the rest of this article".....pants to that.

<comment><USER5> Good lord that was awful. I had to think long and hard about whether or not I really wanted to read the article.

<comment><USER6> That was enough to make me hit the back button. Do they really think that is going to leave a good impression on readers and make them want to come back?

<comment><USER7> I choose the most nonsensical answer to throw off their results.

</comment></comment></comment></comment><comment><USER8> A kernel of information in a sea of free-market propaganda.</comment>


SetState() Gate: Navigating React SetState() Behavior Confusion - <AUTHOR> https://medium.com/javascript-scene/setstate-gate-abc10a9b2d82#.8yqb01kch <comment><USER2> > I still bump into rough edges now and then when I'm dealing with forms or > DOM element coordinates because, when you use setState(), you have to deal > with the component lifecycle directly.

Do you have an example of this? Why do you have to deal with the component lifecycle directly because of setState?

Agreed that it's not intuitive from the API signature that setState is an asynchronous operation, and this can trip up new devs the first time. This is a recognized and non-controversial point of confusion. I've never seen this be a substantial issue in real life, though. The article mentions having to frequently hack around setState's behavior, but I don't think I've seen this in any of the codebases I've worked in. I've also seen developers that are new to react get confused by this behavior initially, but never repeatedly after the first time.</comment>


Open-source energy visualisation - <AUTHOR> http://emoncms.org/

<comment><USER2> While I haven't tried it out yet, it seems useful for many things far beyond energy visualization.</comment>


WebP – faster decoding and rolls out across Google properties - <AUTHOR> http://blog.chromium.org/2014/03/webp-improves-while-rolling-out-across.html

<comment><USER2> These are impressive numbers. Are there technical reason why IE or Firefox haven't adopted it yet? Or just political ones?

[http://caniuse.com/webp](http://caniuse.com/webp)

<comment><USER3> Pointers to Mozilla decisions:

[https://bugzilla.mozilla.org/show_bug.cgi?id=600919](https://bugzilla.mozilla.org/show_bug.cgi?id=600919)

[http://muizelaar.blogspot.fr/2011/04/webp.html](http://muizelaar.blogspot.fr/2011/04/webp.html)

TL;DR: webp wasn't better-than-jpeg enough at the time it was considered, with even some rejection off the published Google studies. I feel like they thought it was still too experimental (although I haven't followed the process so I may be wrong).

<comment><USER4> The Mozilla WebP bugs are a mess due to loads of poor comments. Read at your own risk. The bug you cite has been superseded by a new bug with the same poor quality of comments.

I recently posted a more detailed summary of my own views on the second bug:

[https://bugzilla.mozilla.org/show_bug.cgi?id=856375#c174](https://bugzilla.mozilla.org/show_bug.cgi?id=856375#c174)

<comment><USER5> Since the bug is closed and we can no longer reply, i'll drop brief comments here:

1) We lack data showing that WebP is significantly enough better than JPEG in terms of compression. [...]

If we omit Google numbers (that this blog post and the ones before reported), Facebook reported 20% saving as a starting point for mobile ([http://internet.org/efficiencypaper](http://internet.org/efficiencypaper)). the Mozilla bug has good number reported (Netflix, Akamai and other CDNs, etc...) inbetween the noise.

2) Last time I checked, it was not possible to create large WebP images. I couldn't encode a ~20 megapixel image.

This was fixed in libwebp0.4.0. (but i hope no web site is going to send me a 20megapixel image while i'm on my phone)

3) I suspect it's unlikely that MS will agree to include WebP support in IE, maybe ever. Not having MS on board, given their market share, is problematic. It means lots more header/UA checks and double solutions for every use of WebP, possibly for a long time.

UA detection are here to stay for quite some time anyway, before all current browser versions are retired (if that ever happens). Responsive web put the load on server logic, then.

4) I haven't done extensive testing on this yet, but word is that WebP compression advantages fall off when an image gets larger than about 500x500 pixels. This might be why we see WebP perform a bit worse on the Tecnick image set (~1200x1200) than the Kodak set (~768x512) in my last study. This may also be impacting other peoples' tests. I'm curious to know more about this.

VP8 uses 4x4 transform, not 8x8. That's the main difference with jpeg that limit the efficiency at high dimensions. Although 500x500 seems a bit low. Let's also note that your study was also using a downsampling version of the SSIM metric, which could be interacting favorably with jpeg's larger transform block.

5) Users can't do much with WebP images today if they save them. As Facebook learned, this frustrates users. As this is a bit of a chicken-and-egg problem it's less important, but it is a consideration.

That was mostly an app problem. Android faces the same problem with the data proxy mentioned in the blog, but this is taken care of client-side.

skal

</comment></comment></comment></comment><comment><USER6> > The latest Chrome browsers for Android and iOS can significantly reduce > cellular data usage by using proxy servers hosted at Google to optimize > website content

Ah, I was wondering why Chrome on my Android was so broken lately. I checked "Request desktop" like usual and refreshed and just couldn't get a broken page to give me the working desktop version at all. That always used to work. Eventually I had to switch to the Dolphin browser, change my user agent, uninstall Dolphin Jetpack which was similarly broken, and finally I got the working desktop version of the page...

<comment><USER7> None of your response indicates that the proxy is the issue here.

</comment></comment><comment><USER8> If you have the bright idea of converting your JPEG images with precious EXIF metadata, beware you might not be able to get it back out. [https://code.google.com/p/webp/issues/detail?id=176](https://code.google.com/p/webp/issues/detail?id=176)

</comment><comment><USER9> On another notes, doesn't the H.265 has a image spec as well. How is that getting on?</comment>


That Time a Robot Asked Me to Lie for It - <AUTHOR> https://towardsdatascience.com/if-we-care-for-robots-who-will-care-for-us-3bc890dac04d?source=friends_link&sk=a9f31abac5845fe0971534f20aa7a640 <comment><USER2> Actual title: "If We Care For Robots, Who Will Care For Us?"</comment>


How to Protect Your Android Device from StageFright Exploit - <AUTHOR> https://www.twilio.com/blog/2015/07/how-to-protect-your-android-device-from-stagefright-exploit.html

<comment><USER2> Author here. If the steps to turn off auto-retrieval of media are different on your version of Android, could you let me know?

</comment><comment><USER3> Thanks for this post. How do things change if you use the default Messenger app vs. Hangouts?

I just updated my Messenger app settings to uncheck these options, but when I went into Hangouts to check there, "Auto retrieve MMS" was checked, but all of those boxes were greyed out and it said "SMS disabled - Touch to make Hangouts your default SMS app".

So the question then is whether that is a sufficient indicator that Hangouts is not used, and is Hangouts still vulnerable if I am just using the default Messenger app?

EDIT: Stock Nexus 4 running vanilla Android 5.1.1

<comment><USER2> You'll want to disable auto MMS retrieval in whatever your default SMS/MMS client is. And thank you for mentioning Messenger -- we just updated the post to include instructions for it as well.

<comment><USER3> NP. Is there anything to look for in past MMS's that could be indicative of an attack? Would it always be an unknown user with a video attachment? Or could they spoof a known user?

Since it has been in the wild for a while, I'm now wondering what I can do to look for symptoms of an infection.

</comment></comment></comment><comment><USER4> For my Xiaomi Redmi 1S running MIUI 6, the instructions are:

Go to Settings -> Messaging -> Additional Settings -> Auto-retrieve MMS and toggle the settings to off.</comment>


Apple Donates MacPaint Source Code To Computer History Museum - <AUTHOR> http://www.businessweek.com/technology/ByteOfTheApple/blog/archives/2010/07/apple_donates_macpaint_source_code_to_computer_history_museum.html <comment><USER2> In PaintAsm.a:

              .FUNC Monkey
     ;</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>---
     ;
     ;  FUNCTION Monkey: BOOLEAN;
     ;
              TST      MonkeyLives                ;IS THE MONKEY ACTIVE ?
              SGE      4(SP)                      ;YES IF >= ZERO
              NEG.B    4(SP)                      ;CONVERT TO PASCAL BOOLEAN
              RTS

According to [http://folklore.org/StoryView.py?project=Macintosh&story...](http://folklore.org/StoryView.py?project=Macintosh&story=Monkey_Lives.txt), this was used to detect an keypress/mousemove/mousepress-generating testing tool and turn off a few things (Apple menu, File menu, and Quit command, in this case).

<comment><USER3> MonkeyLives (aka low memory global address $100) was a system global that was usually off. If you saw it on, it indicated that the equivalent of a monkey was loose on the keyboard. IOW, don't do anything dangerous when true.

</comment></comment><comment><USER4> If you haven't been, and you're in the bay area, you really should go here. Sure, the nostalgia is wonderful, but they take their work seriously. Last time I went I was talking with one of the docents about an effort they were taking to get the original Unix v1.0 source collected and compiling.

<comment><USER5> As someone who visits the Bay Area and doesn't have a car, how can I reach that museum via public transit? BART doesn't reach that far down in the west bay.

<comment><USER6> It's up Shoreline. You can take Caltrain to Mountain View and get a taxi from there.

Or post here and maybe someone will drive you.

</comment></comment></comment><comment><USER6> Hooray!

Andy was my officemate when he was working on this. I have a copy of the thread mentioned in the article.

<comment><USER7> _Andy was my officemate when he was working on this_

Can you elaborate on this a bit? You'd have been about 10 at the time (1984), wouldn't you?

<comment><USER8> I think joshu meant "when he was working on getting the code released."

<comment><USER7> thanks.

could also have been when folklore.org was written too, I guess

</comment></comment></comment></comment><comment><USER9> What I want to know is why the latest Apple OS doesn't come with a paint program.

<comment><USER10> The closest modern relative to MacPaint is probably the paint program in ClarisWorks/AppleWorks, which was ported to Carbon and runs on OS X.

AppleWorks was bundled with all new Mac hardware up until the switch from PPC to Intel in 2006; I still have my copy that came with my iBook G4, still works in Snow Leopard, still reads files created with the original 128k MacPaint. (And my iBook G4 ran MacPaint v2.0, circa 1987, via the Classic VM.)

These days, there are all sorts of great indie and open source paint programs available:

\- Paintbrush: <http://paintbrush.sourceforge.net/>

\- Pixelmator: <http://www.pixelmator.com/>

\- Seashore: [http://seashore.sourceforge.net/The_Seashore_Project/About.h...](http://seashore.sourceforge.net/The_Seashore_Project/About.html)

\- Skitch: <http://skitch.com/>

\- Omni Graffle: <http://www.omnigroup.com/products/omnigraffle/>

<comment><USER7> \- Acorn: <http://flyingmeat.com/acorn/>

</comment></comment></comment><comment><USER11> At this year's edition of Stump the Experts at WWDC, Bill Atkinson went up to the mike and asked the experts what the original name for the HyperCard project was. He got a standing ovation and pimped his photo iPhone app.

<comment><USER12> Well, what was it? and did he stump them?

<comment><USER13> Wikipedia (<http://en.wikipedia.org/wiki/HyperCard#History>) reports: Work for it began in March 1985 under the name of WildCard

<comment><USER11> I believe they did phone-a-friend to a retired Apple employee that worked with Bill to get that answer.

The best part was the host paused and told us all that we most likely would not be here in the giant room if it were not for Bill's early contributions (QuickDraw). That was when we gave him the standing ovation.

</comment></comment></comment></comment><comment><USER10> Initially I wondered why MacPaint wasn't written in C, but I'm rather grateful it's in Pascal; it's surprisingly easy to read! Although, I suppose Bill Atkinson deserves the credit for that.

<comment><USER14> I double-clicked on the .rsrc file, since I still have a working resource editor (Resorcerer) on my OS X Mac. No dice; it's in the ancient MPW "Rez" format that acted as the original way to store resource information for development and source control before being compiled into the classic Mac dual-forked file format. I kind of wish I kept my CodeWarrior discs handy; they still had a Rez compiler that worked under earlier releases of OS X.

Interesting that they didn't use the "ellipsis" character in the menus, preferring to hardcode the three periods. The Human Interface Guidelines were clear to use the single character (which _does_ look different enough in the Chicago font), and these kinds of typographic details (via the MacRoman character set) were key selling points for the Mac early on.

<comment><USER15> There's a command line Rez compiler shipped with Xcode. The name is case- sensitive.

<comment><USER14> I never thought to look in OS X's command line only toolbox for that... but it's just as well. The Xcode version of Rez can't cope with way this format is written. Even re-saving the file as MacRoman/CR-delimited didn't help much; the file is using commenting and identifiers unknown to a "modern" Rez file parser. It's probably written in a dialect that only the Lisa Workshop or MPW can read.

</comment></comment></comment></comment><comment><USER16> Can anyone tell me what the eyes in the screenshots are? They look like xeyes, but I think that version of Mac predates xeyes. A friend of me claims Apple invented these eyes and the Linux people copied it from them, but I can't find anything about that.

<comment><USER17> I remember having an extension on system 7 that did that... Probably had been around for a while. There was also one that made footprints go across your desktop during the course of the day and one that made Oscar the Grouch come out of your trash icon.

</comment></comment><comment><USER3> One other piece of trivia wrapped up in QuickDraw is US patent 4622545 (inventor William D. Atkinson, assigned to Apple Computer). That patent covers the methods required for updating of non-contiguous 2D regions, which could have any imagined shape.

</comment><comment><USER18> Someone should take that QuickDraw source code and build a hyper-fast version of X-Windows on it.</comment>


Local TV set to air discredited 'Plandemic' researcher's conspiracy theory - <AUTHOR> https://www.cnn.com/2020/07/24/media/sinclair-fauci-conspiracy-bolling/index.html <comment><USER2> > Local television stations owned by the Sinclair Broadcast Group

As soon as I read the headline I knew it would be them.

Be careful. Your local station, that you might trust, may have been bought by them.

[https://duckduckgo.com/?q=sinclair+broadcast+group&t=fpas&ia...](https://duckduckgo.com/?q=sinclair+broadcast+group&t=fpas&ia=web)

<comment><USER3> John Oliver did a good bit on them on Last Week Tonight, including dozens of supposedly local news stations repeating the exact same Sinclair script verbatim. Highly recommend.

[https://www.youtube.com/watch?v=GvtNyOzGogc](https://www.youtube.com/watch?v=GvtNyOzGogc)

<comment><USER4> Media coordination is only slightly more advanced when we go "up" one level. Same talking points; they just bother to reword them or use more effective (and hence deceptive) psychological techniques. Mr. Oliver knows this, he is an integrated part of pretending his friends are being honest with their viewers. Consider watching CNN a year in the past, or any major 'news' source. Most of what they say is false, or worse.

[http://v6y.net/ownership.jpg](http://v6y.net/ownership.jpg)

[https://news.ycombinator.com/item?id=16352498](https://news.ycombinator.com/item?id=16352498)

<comment><USER3> I disagree but I doubt debate over it would be very interesting on HN.

</comment></comment></comment></comment><comment><USER5> Promoting conspiracy theories like this during a pandemic is extremely irresponsible, and making a target out of a single person even more so. Putting a target on people like this can have real consequences.

<comment><USER3> In what way? Do you mean that those who already believe the conspiracies will see this as even more evidence that "the mainstream media" is trying to sell some sort of false counter-narrative?

</comment></comment><comment><AUTHOR> It's interesting that this bounced back and forth and was flagged, not flagged, and is flagged again. And, of course, interesting that someone felt they needed to flag it.

</comment><comment><USER6> >The Sinclair Broadcast Group has drawn criticism in the past for pushing a conservative political worldview in its newscasts and programming decisions.

Why is CNN dignifying right-wing cranks by categorizing them as "conservatives"? Mitt Romney and George Will are conservatives -- these people are something very different.

<comment><USER7> Mitt Romney and George Will are what conservatism used to be, "these people" are what conservatism has become, what the anti-establishment backlash that started with the Tea Party and alt-right and which continues with Trumpism has turned it into.

<comment><USER6> So, all Webster's, Cambridge and American Heritage dictionaries are all of them wrong? If so, who decides what words mean? Twitter?

[https://ahdictionary.com/word/search.html?q=conservatism](https://ahdictionary.com/word/search.html?q=conservatism)

[https://dictionary.cambridge.org/dictionary/english/conserva...](https://dictionary.cambridge.org/dictionary/english/conservatism)

[https://www.merriam-webster.com/dictionary/conservatism](https://www.merriam- webster.com/dictionary/conservatism)</comment></comment></comment>


Ask HN: Did you installed linux on your macbook? - <AUTHOR> If not, are you against that? If yes, what are your comments? <comment><USER2> I Did but the camera didn't work until I did

[https://github.com/patjak/bcwc_pcie](https://github.com/patjak/bcwc_pcie)</comment>


Show HN: Mathup – A simple MathML authoring tool - <AUTHOR> https://runarberg.github.io/mathup/ <comment> jake-low This is pretty neat. A week or so ago when "MathJax turns 3.0" was on the frontpage [0], I followed a link to this very thoughtful comment [1] from 2019 by svat about the landscape of math typesetting on the web. Since then I've been thinking a little bit about MathML and how compilers from other more input-friendly formats to MathML might encourage wider adoption. So I'm excited to see this library.

I've heard of AsciiMath before but hadn't ever had a chance to play with it, so I appreciated the live demo on the project website. One thing I noticed is that AsciiMath uses whitespace around operators to determine binding order.

For example (AsciiMath on left, TeX on right)

        f(x) = x+1 / 2    ≡    f(x) = \frac{x + 1}{2}
        f(x) = x + 1/2    ≡    f(x) = x + \frac{1}{2}

When there's equal spacing around neighboring operators, normal order of operations seems to apply.

This seems fairly intuitive, but might not scale to large, complex equations as well as TeX's bracket syntax does. Nonetheless, I think I like it for simple equations.

Question for the author: you mention on the page that Mathup supports an input language inspired by AsciiMath [2]. What are the differences? Does Mathup accept a subset of AsciiMath, or are there cases where the syntax diverges? And if the latter is the case, what motivated devaiting from AsciiMath's syntax?

[0]: [https://news.ycombinator.com/item?id=22582343](https://news.ycombinator.com/item?id=22582343)

[1]: [https://news.ycombinator.com/item?id=19347737](https://news.ycombinator.com/item?id=19347737)

[2]: There's a typo in this phrase on your page, BTW: "insipired" has an extra "i"

<comment><AUTHOR> Thanks for the comment. This project was previously called _Ascii2MathML_ and I tried to stay as true to the original AsciiMath language as possible. But I've since then moved away from it (which is why I renamed it to _mathup_ ) as I found it could be improved upon in some minor ways (personal preference really).

There are some trivial differences: e.g. `bf` for boldface instead of AsciiMath's `bb`; or the `.^` infix for overscripts instead of the `over` prefix. The matrix syntax is also quite different: AsciiMath uses nested brackets, while mathup uses row separators (`;` or `\n`). Most significant is the difference in grammar (you've noted the significant white space which is not a feature of AsciiMath).

You can see my attempt of writing down the grammar here[1]. However I'm very much a novice when it comes to compilers and lexical analysis, so this grammar is probably not accurate—in fact when I originally wrote Ascii2MathML I wasn't even aware that I was writing a compiler. But in words, a set of tokens and operators with no internal white space tends to be grouped together. There are a few infixes (`/`, `^`, `_`, etc.) which generally take precedence but operate on a group of non spaced tokens if they are able to.

I originally wrote this because I wanted people that didn't necessarily know TeX to be able to drop in a simple expression in comment threads and forums. I also liked to provide as much expressive power as possible, but I found AsciiMath lacking a little in expressiveness. The white space significance I found made writing a little easier, but in longer expressions it is a bit hard to use, but then again, this tool was always intended for smaller expressions anyway.

[1]: [https://github.com/runarberg/mathup/blob/master/GRAMMAR](https://github.com/runarberg/mathup/blob/master/GRAMMAR)

</comment></comment><comment><USER2> Loading library fails on the page and the whole project looks like april's fools day joke, ie. the whole library being an identity function.

<comment><AUTHOR> The library translates into MathML which might not be supported by your browser. There is a 'MathJax polyfill' option you can opt into below the output.

<comment><USER2> That wasn't the case - now it works fine, before there were errors while trying to load resources.</comment></comment></comment>


Coronavirus: Justified Practical Advice Thread - <AUTHOR> https://www.lesswrong.com/posts/LwcKYR8bykM6vDHyo/coronavirus-justified-practical-advice-thread <comment><USER2> If copper surfaces can kill viruses would a copper metalized disposable plastic glove offer any benefit?</comment>


Critique our new website: Gatherama.com - <AUTHOR> http://www.gatherama.com/commenting.php?id=_news/20071117/US/Crimes-Law/7_Should_cyber-bullying_be We're planning to launch in December. Looking for some feedback before launching. <comment><AUTHOR> We're planning to launch in December. Looking for some feedback before launching.

</comment><comment><USER2> Looks too much like Digg. Is that what you are going for?

</comment><comment><USER3> what problem are you solving?

<comment><AUTHOR> It used to be that opinion polls are boring and expensive to collect the data. Our goal is to provide a website that is informative, collects polls data instantaneously, allows users to discuss the issues and connect with other people. It's a social voting website that combines polling with Web 2.0.</comment></comment>


An Update on Our Plans to Restrict Data Access on Facebook - <AUTHOR> https://newsroom.fb.com/news/2018/04/restricting-data-access/ <comment><USER2> None of these changes will do anything to fix the basic issue. All the following aspects were derived from watching the testimony Christopher Wylie gave before the UK House of Commons Select Committee. He's the CA whistleblower. It's a very illuminating watch - [https://www.youtube.com/watch?v=X5g6IJm7YJQ](https://www.youtube.com/watch?v=X5g6IJm7YJQ)

The problem is the foll:

[1] CA wrote a trojan FB app to derive psychographic user data for FB users. This let them determine for example how susceptible you were to misleading or fake news.

[2] They then used FB targeting to target these specific people at scale, pushing extreme fake news such as "Obama moving troops to Texas to ensure 3rd term". This is military grade psyops applied at unprecedented scale.

[3] These people, as they were susceptible to manipulation, would then convert at unusually high rates. He says 5% or higher conversion. Conversion was measured as an action like donating money or signing up for a mailing list.

In this way, the entire democratic process was corrupted. The issue is not that there were dirty tricks in the 2016 election. The issue here is that the existence of FB's app platform allows the detailed psychological profiling of millions of people on scale, and then allows them to be targeted at scale using that profiling. This is a clear and present danger to democracy.

Even with these changes, a rogue app such as CA's would be allowed on the FB platform. FB has no visibility into how app data can be used offline.

<comment><USER3> Note that eliminating the ability to do detailed profiling and precise targeting does NOT stop this kind of manipulation. It just makes it more expensive.

Those people who will respond to your fake news in a way favorable to you are still out there. It just means that instead of being able to target a group of say, 10 000 people that will give you a 5% conversion rate, you might have to pay to target 1 000 000 people with a 0.05% conversion rate.

This raises an interesting question: would we be better off if instead of restricting data we make it more widely available?

As suggested in the second paragraph above, restricting the data doesn't stop those with enough money from influencing susceptible people at scale. It just makes it more expensive, so only the very wealthy can do it.

If we make the data more open, we make the playing field more level, perhaps giving smaller, less well financed groups a chance to compete with the billionaire backed groups and causes.

<comment><USER4> The idea is to discourage people from using propaganda to manipulate democracy. I honestly don't think that throwing open the floodgates so that effectively anyone can would fix the problem at all. Realistically all you're going to do there is make it cheaper and easier for existing players and worse for everyone subjected to it.

<comment><USER5> One solution to OP's problem is to strengthen libel and slander laws to deter people from casually publishing fraudulent news, akin to a DMCA takedown request but perhaps a bit more bite. In this case I would distinguish publishing from 'sharing' with a bit more legal finesse.

The problem is the press will scream bloody murder at any attempt to reign in their right to publish, perhaps rightfully so. IANAL.

<comment><USER6> How enforcable would that be outside US borders, realistically?

<comment><USER5> Good point

</comment></comment></comment></comment></comment></comment><comment><USER7> I've had facial recognition off forever on FB and every time I've logged in in the past few weeks the following is one of the first entries in my feed:

[https://imgur.com/a/pMhoL](https://imgur.com/a/pMhoL)

It's a nag to turn on facial recognition. Feels like really bad form to be asking for such intrusive extra info with what they're going through right now.

<comment><USER8> I got that every time I used the site for _years_. It wasn't until I deleted my profile and created a new one where I never opted in to the recognition in the first place (or allowed any tags of myself for it to build the face profile, perhaps) that I was able to make it go away.

<comment><USER9> Random thought: when you created the new account you accepted their right to do this in the ToS and so they didn't need to explicitly ask?

<comment><USER8> Perhaps, but I believe I recall opting out of it. Also as I said, I never gave them any seed data under the new account to start with. My original account had plenty of old pictures that people had tagged me in (back when you had to do that manually!), and at some point I went through and deleted all those tags though I'm quite certain they still were cataloged.

</comment></comment></comment></comment><comment><USER10> The actual article title is "An Update on Our Plans to Restrict Data Access on Facebook". It details a list of new API restrictions for Facebook Apps, as well as planned notifications of users whose data was leaked to CA.

These additional API restrictions may be closing the door after the horses have bolted, but they will also restrict more scraping and data mining. However, I'm sure the value of Facebook data that companies have already collected just shot up significantly...

I also think that the step of planting an alert on affected users' News Feeds is a good one, and something that I didn't expect Facebook would go for. Curious to see what the report says when that feature goes live.

</comment><comment><USER11> Facebook: "We have no fucking clue how much data they took from us. We're not a company that specializes in data."

(shamelessly stolen from reddit)

<comment><USER12> The exact number requires to do operations that are non-trivial at scale: you have to check who accepted to share information with that version of the app (there were several) and take into account the accounts that have been deleted in the last four years; whether Facebook can access that particular information at all is unclear to me (I would believe not). Then you have to recreate a list of all their friends at the time (which is, again, not trivial with some friendships being deleted) and take care of duplicates -- doable, but not trivial at that scale. Whether people are American is also non- trivial: I'm not sure there was clear geographic entities to make that easy in 2013. People move and Facebook only has your location, not your passport. You then have people without a recognisable name, who forgot or who are too young to be in the voting registry. Do you count all the IDs, those who were still active in November 2016, those who match local registries?

People who specialise in data (like people who code professionally) are precisely those who would have all those questions on the top of their mind and know that old, graph-based, editable datasets that need to be matched with another dataset are bad.

 _Edit:_ I was a data scientist for Facebook and I can personally attest that most of those are genuinely hard, especially those that I intentionally overlooked.

</comment></comment><comment><USER13> I wish I could just pay a monthly fee to access Facebook but to be protected from advertising and from being the product.

I also wish I could client-side encrypt all of my content, share the keys with my friends who I want to have the ability to view my content, and somehow have this all be friction-less and transparent from my and contacts' perspective.

<comment><USER14> Even when you're the customer, you'll still be a product. They'll sell you just like credit card companies have for decades.

Companies are relentlessly profit-optimizing entities, and they cannot forego the extra revenue stream. Employees with ethics are like tissue holding back a tidal wave.

The only way to avoid having them exploit the data is to deny them the data in the first place.

<comment><USER15> There are some larger businesses that do right by their customers and employees, because the leadership has a strong sense ethics and of responsibility for the ethics of their whole company.

<comment><USER16> Can you give examples of such businesses, I'm genuinely curious.

<comment><USER17> IMO Apple doesn't data mine like other large tech companies. Especially since they shut down iAds.

<comment><USER14> That might be true now. What happens should Apple go bankrupt? Will those who buy the assets uphold the culture?

</comment></comment></comment></comment></comment></comment><comment><USER18> Doesn't beat Equifax who impacted 143 million Americans, jeopardizing consumer Social Security numbers, birth dates, addresses and some driver's license numbers. Just another day with no consequences for exposing what I'd label as highly personal information.

FB can limit what it wants but someone will eventually find the means to buying the necessary data today and build what CA did going forward. IMO the 2020 election campaign costs will be the billion $ candidate that competes, so just buy the data you need.

<comment><USER19> Yes, the Equifax breach is orders of magnitude more outrageous than this Facebook business.

</comment></comment><comment><USER20> I think we need a legal framework around sharing data. Even if Facebook did everything right some other companies will mess things up. In the end a person should always be notified when his/her information gets shared with another party and have the ability to approve. This will make the business model of many companies difficult but so be it. I don't see any other way.

</comment><comment><USER21> Nobody attacks the data collection itself. Anyone who accepts this is a fool for letting Facebook continue to pull the wool over your eyes. This human centipede of data collection needs to die.

<comment><USER22> I accept it. Facebook is probably one of the better companies out there when it comes to security. They haven't had a true breach; the scandals so far have been small, mostly because the mores of society have shifted before FB can roll out changes to match them (and they always do).

<comment><USER21> They haven't had security 'breaches' because nobody ever called it that, but FB has been leaking data out the back door for years.

The amount of info that you used to be able to pull from Facebook's API was incredible, and most people didn't realize it. Even information as bland as friends and friends-of-friends is enough to build a useful social graph around a person. (Years ago I did just this, and it was amazing how the graph clustered all my different social groups)

</comment></comment></comment><comment><USER23> "Until today, people could enter another person's phone number or email address into Facebook search to help find them. ... malicious actors have also abused these features to scrape public profile information by submitting phone numbers or email addresses they already have through search and account recovery. Given the scale and sophistication of the activity we've seen, we believe most people on Facebook could have had their public profile scraped in this way."

Hm. This seems like an interesting tidbit, I would love to know more. It seems to imply that many profiles have already been scraped in this way. A phone number is a really strong cross-domain identifier as we use it across a bunch of different online services. Collate your Facebook scrape with a couple data brokers and you've got a real strong profile of someone.

</comment><comment><USER24> I'm more concerned about fundamental privacy issues, such as so-called "data onboarding," in which Facebook (and others) helps marketers connect your online identity with your offline identity. That's where we need more transparency -- and perhaps more regulation.

</comment><comment><USER25> Facebook can't seem to behave in a trustworthy manner. Initial findings about the improper sharing happened in 2015. How many years does the "move fast, break things" company need to accurately assess damage, or does it NOT want to accurately assess at all.

<comment><USER26> > Facebook can't seem to behave in a trustworthy manner.

My goodness, this is the same issue, not a new one. Facebook is behaving in a trustworthy manner right now, over-communicating the scope and details of this issue, yet here we are to attack them anew over it.

<comment><USER27> Where is the trustworthiness in this that you are seeing?

They are just telling people what they think they want to hear given how they have been caught out.

<comment><USER26> > They are just telling people what they think they want to hear given how > they have been caught out.

Wait a second, let's back up. They didn't get "caught" doing anything. They purposely, intentionally, and with everyone's explicit knowledge shared friend list data with an app developer.

This is just a basic fact. No one, not even my mother, can realistically claim they did not know and understand Facebook was sharing graph data with app developers in 2012, or 2014. Not only was it crystal clear when you installed an app, even if you didn't, anyone that was on Facebook was inundated by messages from Farmville, and many other apps, letting them know what their friend's were doing.

Later, by 2014, Facebook decided they needed to be more restrictive with this data. They shutdown app developers access to the social graph, essentially killing Facebook Platform, which everyone expected to be a primary driver of future revenues. They shutdown Graph Search, an extremely useful tool, because it made it too easy to collect personal data.

But we need to be clear that Facebook was not "caught" doing anything at all. They did exactly what they said they would do, which was plain to everyone, even my technophobic mom.

Separately, in 2014, an app developer shared personal data with Cambridge Analytica. Facebook contacted both parties and requested that they certify they deleted the data, which they did.

The only reason people are upset now, is because:

a) politics is involved, and b) they are retroactively applying current best practices with personal data, which were not common in 2014 and before.

The incredible part about all of this is that so many other social networks (and other companies) continue to collect the exact same data, and many of them share it publicly. Almost all Twitter users have their friend list open to the public, for all to see, along with all of their tweets, because that's what the platform encourages. No one would say Twitter has been "caught" doing this.

In fact, Facebook has been extremely up-front about the situation. They fixed the situation 4 years before it came to light. They have announced important and strong changes to further protect data in the future. They have publicly and and widely announced their detailed findings in this case, and they have promised investigations of similar unauthorized usages of personal data that may have occurred with other app developers.

I mean, what more do you really want them to do?

<comment><USER27> To stop existing.

They are a net-negative for society.

</comment></comment></comment></comment></comment><comment><USER28> The optimist in me says these changes have been a long time coming. The skeptic in me says FB is doing this to avoid being regulated.

Anybody with more insight care to comment?

<comment><USER29> Well just take a look at the techcrunch article published today on how Facebook is not committing to GDPR standards for North American users. [https://techcrunch.com/2018/04/04/facebook-gdpr-wont-be- univ...](https://techcrunch.com/2018/04/04/facebook-gdpr-wont-be-universal/)

It basically says they are going to do the minimal effort required to protect privacy while avoiding regulation.

<comment><USER30> The TC article is unfortunately misleading.

As I posted elsewhere already. GDRP is more then just some rules around what you need to ask users for permission for. It's much bigger and very specific to the EU legal apparatus.

It hence makes no sense to ship globally. What you want is for the underlying privacy controls to be available for everyone...which according to Reuters is what FB is doing!

</comment></comment></comment><comment><USER31> Anyone have an archive? I blocked them in my hosts file.

<comment><USER10> Two weeks ago we promised to take a hard look at the information apps can use when you connect them to Facebook as well as other data practices. Today, we want to update you on the changes we're making to better protect your Facebook information. We expect to make more changes over the coming months — and will keep you updated on our progress. Here are the details of the nine most important changes we are making.

Events API: Until today, people could grant an app permission to get information about events they host or attend, including private events. This made it easy to add Facebook Events to calendar, ticketing or other apps. But Facebook Events have information about other people's attendance as well as posts on the event wall, so it's important that we ensure apps use their access appropriately. Starting today, apps using the API will no longer be able to access the guest list or posts on the event wall. And in the future, only apps we approve that agree to strict requirements will be allowed to use the Events API.

Groups API: Currently apps need the permission of a group admin or member to access group content for closed groups, and the permission of an admin for secret groups. These apps help admins do things like easily post and respond to content in their groups. However, there is information about people and conversations in groups that we want to make sure is better protected. Going forward, all third-party apps using the Groups API will need approval from Facebook and an admin to ensure they benefit the group. Apps will no longer be able to access the member list of a group. And we're also removing personal information, such as names and profile photos, attached to posts or comments that approved apps can access.

Pages API: Until today, any app could use the Pages API to read posts or comments from any Page. This let developers create tools for Page owners to help them do things like schedule posts and reply to comments or messages. But it also let apps access more data than necessary. We want to make sure Page information is only available to apps providing useful services to our community. So starting today, all future access to the Pages API will need to be approved by Facebook.

Facebook Login: Two weeks ago we announced important changes to Facebook Login. Starting today, Facebook will need to approve all apps that request access to information such as check-ins, likes, photos, posts, videos, events and groups. We started approving these permissions in 2014, but now we're tightening our review process — requiring these apps to agree to strict requirements before they can access this data. We will also no longer allow apps to ask for access to personal information such as religious or political views, relationship status and details, custom friends lists, education and work history, fitness activity, book reading activity, music listening activity, news reading, video watch activity, and games activity. In the next week, we will remove a developer's ability to request data people shared with them if it appears they have not used the app in the last 3 months.

Instagram Platform API: We're making the recently announced deprecation of the Instagram Platform API effective today. You can find more information here.

Search and Account Recovery: Until today, people could enter another person's phone number or email address into Facebook search to help find them. This has been especially useful for finding your friends in languages which take more effort to type out a full name, or where many people have the same name. In Bangladesh, for example, this feature makes up 7% of all searches. However, malicious actors have also abused these features to scrape public profile information by submitting phone numbers or email addresses they already have through search and account recovery. Given the scale and sophistication of the activity we've seen, we believe most people on Facebook could have had their public profile scraped in this way. So we have now disabled this feature. We're also making changes to account recovery to reduce the risk of scraping as well.

Call and Text History: Call and text history is part of an opt-in feature for people using Messenger or Facebook Lite on Android. This means we can surface the people you most frequently connect with at the top of your contact list. We've reviewed this feature to confirm that Facebook does not collect the content of messages — and will delete all logs older than one year. In the future, the client will only upload to our servers the information needed to offer this feature — not broader data such as the time of calls.

Data Providers and Partner Categories: Last week we announced our plans to shut down Partner Categories, a product that lets third-party data providers offer their targeting directly on Facebook.

App Controls: Finally, starting on Monday, April 9, we'll show people a link at the top of their News Feed so they can see what apps they use — and the information they have shared with those apps. People will also be able to remove apps that they no longer want. As part of this process we will also tell people if their information may have been improperly shared with Cambridge Analytica.

In total, we believe the Facebook information of up to 87 million people — mostly in the US — may have been improperly shared with Cambridge Analytica.

Overall, we believe these changes will better protect people's information while still enabling developers to create useful experiences. We know we have more work to do — and we'll keep you updated as we make more changes. You can find more details on the platform changes in our Facebook Developer Blog.

</comment></comment><comment><USER32> This is reminiscent of the yahoo breach where they said "some" and eventually upgraded the warning to "all of them"

</comment><comment><USER33> Are there any companies that rely on Facebook data that are going to face a rough patch (or cease to exist) because of the API changes?

<comment><USER34> One site, your question made me remember was a third party app for events, Heyevent.

[http://heyevent.com/](http://heyevent.com/)

Out of curiosity I just re-authorised them for access and was displayed the following message:

"We're sad to announce that due to dwindling traffic, expensive hosting costs, and new limitations of the Facebook API, we've decided to close down Heyevent. We're sad to have to do this, but we unfortunatelu we see no other option. Since the launch of Heyevent, Facebook themselves has added more event recommendation. They're not as good as Heyevent's recommendations, yet. Hopefully they'll get better. Thanks for using the service!"

I found it somewhat useful in the past to keep using facebook to a minimum, so I wish them the best.

There must be some other areas of data based servicing that experience difficulties that but I can't think of any other right now.

</comment></comment><comment><USER35> I find it ironic that they plan to let users know they've been compromised via the newsfeed. What about users who have either deleted or never log in? How will they find out? Is their likely defense 'ignorance is no excuse' really a great defense if the only way to avoid ignorance in this case to log into their platform?

<comment><USER36> It is not in the newsfeed... it is the News Room. I didn't login and I was able to read this.

<comment><USER35> Sorry, was reading multiple articles on this topic at once. Yes this is a newsroom post, however they plan to let individual users know via their newsfeeds: [https://www.bloomberg.com/news/articles/2018-04-04/facebook-...](https://www.bloomberg.com/news/articles/2018-04-04/facebook- says-data-on-87-million-people-may-have-been-shared) "Facebook says it will tell people, in a notice at the top of their news feeds starting April 9, if their information may have been improperly shared with Cambridge Analytica."

<comment><USER37> No, you were right, they mentioned the News Feed in this post too.

</comment></comment></comment></comment><comment><USER38> "Events API: Until today, people could grant an app permission to get information about events they host or attend, including private events. This made it easy to add Facebook Events to calendar, ticketing or other apps. But Facebook Events have information about other people's attendance as well as posts on the event wall, so it's important that we ensure apps use their access appropriately. Starting today, apps using the API will no longer be able to access the guest list or posts on the event wall. And in the future, only apps we approve that agree to strict requirements will be allowed to use the Events API."

Does this mean we won't be able to show FB events and rsvps in our app?

[https://qbix.com/calendar](https://qbix.com/calendar)

</comment><comment><USER25> Facebook can't seem to behave in a trustworthy manner. Initial findings about the improper sharing happened in 2015. How many years does the "move fast, break things" company need to accurately assess damage, or does it NOT want to accurately assess at all.

<comment><USER39> Facebook's problem is that it has no incentive to fix these issues, which it sees as "features" for the most part.

That's why it always seems to improve its privacy policy only as a result of regulations and scandals. Even then, it only does the minimum necessary that it believes will appease everyone for the time being and until the next scandal.

</comment></comment><comment><USER40> Anyone else find the font being used on that page incredibly hard to read?

<comment><USER41> Yes.

</comment></comment><comment><USER42> "improperly shared"

</comment><comment><USER43> How much was properly shared?

<comment><USER44> What was shared would be an additional question. Edit: Or maybe what was not shared would be easier to answer.

</comment></comment><comment><USER45> It seems that no one is addressing the problem of segmentation and microtargeting of ads, that's key. how the distorted message is delivered. we will not be able to build as easily psycograph models (but data will be aquired in other ways) but is every day easier to target super precisely with ads...

</comment><comment><USER46> Assuming that they have the info on the accounts to make that number estimate, are they going to contact those who were affected?

I mean to say, if- for example- my mom was one of the facebook users who had their information taken/used by CA, what should she expect?

<comment><USER47> Yes, they previously claimed that they will be reaching out to people affected by the Cambridge Analytica scandal.

</comment></comment><comment><USER48> Since #deleteFacebook started to gather momentum the active users number rose by about 30% in The Federation [https://the-federation.info/](https://the- federation.info/)

</comment><comment><USER49> What is hilarious is they still hide privacy controls from people esp by limiting access from desktop. They're awful and people will be slow, but leave in droves, those who don't find a lot of use for it.

</comment><comment><USER50> There's a sort of running gag at Google that "An Update On Foo" is how the company announces that they're canceling Foo. So my first read of this headline was.. different.

</comment><comment><USER51> The most important part:

> In total, we believe the Facebook information of up to 87 million people — > mostly in the US — may have been improperly shared with Cambridge Analytica.

</comment><comment><USER52> I am admin for a 'closed' facebook group. How can I find out which apps have accessed my group without admin permission?

</comment><comment><USER53> What'll the number be up to by the time Zuckerberg is in front of Congress?

</comment><comment><USER54> "We're really going to restrict it this time - pinky swear!"

</comment><comment><USER55> Were all those people democrats?

</comment><comment><USER56> Facebook, do no evil.

</comment><comment><USER57> Define, "improperly".

<comment><USER58> They mean in violation of their terms.

</comment></comment><comment><USER2> What's not being said is that the Russians likely had the data too for use in the 2016 elections.

See [https://www.theguardian.com/uk-news/2018/mar/21/facebook- row...](https://www.theguardian.com/uk-news/2018/mar/21/facebook-row-i-am- being-used-as-scapegoat-says-academic-aleksandr-kogan-cambridge-analytica) and the testimony Christopher Wylie gave before the UK House of Commons Select Committee. He's the CA whistleblower. It's a very illuminating watch - [https://www.youtube.com/watch?v=X5g6IJm7YJQ](https://www.youtube.com/watch?v=X5g6IJm7YJQ)

So to recap:

[1] Kogan writes a FB app for CA to create psychographic profiles of users. This data allows people to be targeted by how naturally susceptible you are to rumors and fake news.

[2] Kogan then accepts a position at St. Petersburg State University (so essentially Russian money) and moves there

[3] Russians subsequently magically gain a new superpower they didn't have before - the ability to target users on FB who are susceptible to manipulation towards extreme viewpoints.

<comment><USER59> The interesting question, whose answer will likely have to be forced through some leak or investigative reporting, is whether FB and the execs knew about the potential connection to Russia in 2016. If it was brought to the attention of Zuckerberg and Sandberg, in light of their adamant denials back in 2016 and 2017, I don't see how the company or executives walk out of this unscathed.

<comment><USER2> Yes, if they knew about it and didn't do anything, then that's willful negligence.

They are not helping their image - the latest is a rejection of GDPR for non- European customers. Seriously? Way to demonstrate commitment to user data protection FB.

This level of arrogance is a precursor to strict regulations. They are practically asking for it at this point.

</comment></comment></comment><comment><USER60> "Facebook, in fact, claims lofty goals, saying it seeks to "bring us closer together" and "build a global community."

Those are indeed noble purposes that social media can serve. But if they were Facebook's true goals, we would not be here.

The ideal competitor and successor to Facebook would be a platform that actually puts such goals first.

To do so, however, it cannot be just another data-hoarder, like Google Plus.

If we have learned anything over the last decade, it is that advertising and data-collection models are _incompatible_ with a _trustworthy_ social media network.

...

When a company fails, as Facebook has, it is natural for the government to demand that it _fix itself_ or face regulation. ...

If today's privacy scandals lead us merely to install Facebook as a regulated monopolist, _insulated from competition_ , we will have failed completely.

The world does not need an established church of social media."

Source:

Tim Wu, law professor at Columbia University

[https://www.nytimes.com/2018/04/03/opinion/facebook-fix- repl...](https://www.nytimes.com/2018/04/03/opinion/facebook-fix-replace.html)

<comment><USER61> It's easy to sit on the sidelines and criticise Facebook's business model.

The hard part is coming up with a business model that doesn't rely on advertising and is actually going to get any traction. Especially since people by and large like the model. If Facebook can simply lock down their APIs and handle state/nefarious actors better I think you will find the public moving past the current situation.

<comment><USER62> Does it have to be a _business_ model? Couldn't we search for ways to support the costs of federated.distributed platforms, as used to be the case with NNTP?

<comment><USER63> You're absolutely right! We could search for _funding models_ , plural, to support a network of federated and distributed platforms! We could even couple it with ways we know that enable distributed and federated platforms to interoperate and keep at bay the problem that come from that.

Of course, it's possible that this may be a sufficiently non-trivial problem where the best answer anyone's found to date is a centralized business. But hey, we won't know until we try! Also, email as a federated system and its history doesn't count, because that runs directly against the basic thesis that nobody has seriously tried.

</comment></comment></comment></comment><comment><USER60> "Morgan Stanley cut its price target on Facebook shares to $200 from $230 on Wednesday, citing concerns about the social media company's ad sales because of its data scandal.

...

"While we think FB's high advertising performance speaks to the value users get out of the ads served, _general consumer dislike towards advertising_ and increased data scrutiny could cause more users to _opt-out of sharing data with FB_ ," he said."

Source:

[https://www.cnbc.com/2018/04/04/morgan-stanley-lowers- facebo...](https://www.cnbc.com/2018/04/04/morgan-stanley-lowers-facebook- price-target-on-fears-ad-revenue-will-take-hit.html)

</comment><comment><USER60> "Facebook is asking users whether they think it's "good for the world" in a poll sent to an unspecified number of people."

Source:

[https://www.popularmechanics.com/technology/apps/a19671683/f...](https://www.popularmechanics.com/technology/apps/a19671683/facebook- asking-users-if-they-think-its-good-for-the-world/)

</comment><comment><USER60> "In that way and depending on how your personal data is manipulated, Facebook Login could almost fall under the category of a dark pattern - a method for websites or apps to _get you to give up more information than is required_ by playing on assumptions.

...

But it's fair to say that Facebook should be less trusted today than it was nine years ago.

...

Just like we should all be doing our part to detangle our lives from Facebook's web, app developers owe it to users to divest in their reliance on Facebook Login.

...

It's one thing to offer Facebook Login as an _alternative_ way to easily create an account, but to straight up _not offer any other way_ to log in to an app or game is just lazy on the developers part, and speaks to the way Facebook has lulled us all into complacency."

Source:

[https://www.androidcentral.com/its-time-app-developers- fall-...](https://www.androidcentral.com/its-time-app-developers-fall-out- love-facebook-login)

</comment><comment><USER60> "Today, however, the company [Facebook] announced sweeping changes to many of its most prominent APIs, restricting developer access in a number of crucial ways.

Soon after, Tinder users started noting on Twitter that they had been kicked off the dating app and couldn't log back on, as those who used _Facebook Login_ were caught in an infinite loop that appears to be related to an unknown bug.

Since _you need a Facebook account to log into Tinder_ , this bug has potentially affected Tinder's entire user base.

...

Tinder has responded in a tweet, "A technical issue is preventing users from logging into Tinder. We apologize for the inconvenience and are working to have everyone swiping again soon."

Source:

[https://www.theverge.com/2018/4/4/17200034/facebook-broke- ti...](https://www.theverge.com/2018/4/4/17200034/facebook-broke-tinder-down- privacy-api-fixes)

</comment><comment><USER60> "In a statement today, the social-media giant estimated 622,161 Facebook users in Canada had their data improperly shared with Cambridge Analytica through apps used by themselves or their friends.

Overall, Facebook says 87 million of its users were affected -- with nearly 82 per cent of them were believed to be located in the United States. ...

Canada's acting minister for democratic institutions has also said he'd be open to strengthening federal privacy laws, which don't currently apply to political parties."

Source:

[https://www.cp24.com/news/more-than-620-000-canadians- affect...](https://www.cp24.com/news/more-than-620-000-canadians-affected-by- facebook-data-breach-1.3871376)

</comment><comment><USER64>
      Zuck: Yeah so if you ever need info about anyone at Harvard
      Zuck: Just ask
      Zuck: I have over 4,000 emails, pictures, addresses, SNS
      [friend]: What? How'd you manage that one?
      Zuck: People just submitted it.
      Zuck: I don't know why.
      Zuck: They "trust me"
      Zuck: Dumb fucks

</comment><comment><USER65> If I was Mark@Facebook I would take a strong defiant stance to the assaults and further bolden my brand. Facebook is a mass sharing community program and they are attacking its core, defend it!

<comment><USER66> It's poetic justice for company that started by 'scraping' MySpace text entry boxes and calling it their own. The DNA of facebook was bad from the start on many different levels from zuckerberg using a biz card that stated "I'm CEO bitch", calling his users dumb fu*cks, starting a platform by copying Friendster+MySpace to voyeuristically spy on users across college campuses and not doing something on an algorithmic level that was difficult to duplicate as opposed to what Google did. This is the difference between social media and Search, which is now made up of AI/ML/NLP.

</comment></comment><comment><USER67> This is propaganda put out by intelligence agencies.

So what happened here? Facebook users who took a 'personality quiz' allowed the 'app' to access their information.

It is extremely depressing that 87 million people are idiots.

There are intrusive apps all over facebook and this is being released with a narrative that supports 'election interference'.

<comment><USER68> No, 87 million people didn't take a quiz, the whole point is that previously if _any of your friends_ took the test, _your_ information was shared.

That's how a few hundred thousand people taking a "personality quiz" gets turned into millions of user-data.

And the term personality quiz is used loosely, an example of a "personality quiz" can be "Which Game of Thrones character are you? This isn't rigorous psycometrics.

<comment><USER67> You are only partially correct.

Social networks were extrapolated from friend data. Cambridge analytica was able to use social connections to profile people and who they know.

That was the extent of it.

<comment><USER69> You are only totally wrong.

This isn't "propaganda put out by intelligence agencies", and there are not "37 million idiots" who "took a 'personality quiz' allowing the 'app' to access their information".

But he already explained that to you quite clearly, something you should have already known if you were following the real news, and you still don't get it.

But since you choose to subscribe to the conspiracy theory that this is just all deep state propaganda, and everyone whose privacy was compromised was an idiot who asked for it by doing something foolish and deserves what they got, then there's no use in discussing it with you.

Because you're their ideal target and they've already successfully targeted you and influenced your mind, even though you didn't take a personality quiz yourself.</comment></comment></comment></comment>


Hull teacher held in Chinese jail for 'not being a friend of the country' - <AUTHOR> http://www.hulldailymail.co.uk/hull-teacher-held-in-chinese-jail-for-not-being-a-friend-of-the-country/story-30239757-detail/story.html <comment><USER2> > "We got three meals a day, usually boiled cabbage"

> "In the afternoons, they screened really terrible films, usually with > Nicholas Cage in them."

Damn, they actually found the quickest way to psychologically break people!

<comment><USER3> Although this may seem to be a torture strategy to those not from China, I can assure you after living there for a few years, Nick Cage is extremely popular in China.

</comment></comment><comment><USER4> When Chinese police review this matter they might decide it wasn't the best way to minimize unflattering media coverage.

</comment><comment><USER5> Not a great way to make friends

</comment><comment><USER6> Surely if the goal is friendship they should force them to watch the Golden girls?

</comment><comment><USER7> It doesn't sound a lot different from "our moral compass", the U.S. of A. Pretty normal to treat unwanted civilians that way there, he should be happy he got off without being framed/jailed extensively/tortured/killed.

I'm not saying it's civil or good. Just not abnormal.

</comment><comment><USER8> Note that China has a seat in the United Nations Human Rights Council, along with Saudi Arabia and others like that. It is the ultimate irony. They just don't give a fuck and we western nations place our greed and capitalism over our morals. Nobody stands up to China because we need the cheap goods. What is described in this article is one of the purest forms of fascism. It makes me sick.

<comment><USER9> Western nations aren't exactly standing on a moral high ground, either.

<comment><USER10> [https://en.wikipedia.org/wiki/Whataboutism](https://en.wikipedia.org/wiki/Whataboutism)

<comment><USER11> Invocation of Whataboutism is an easy cop-out to never have to look one's self in the mirror. It's used by people in glass houses who only want to throw stones at their neighbors.

It's also not applicable here since the grandparent already did a relative comparison of China with the supposedly better "western track record", so this comparison warrants a response.

<comment><USER12> This argument is of the same quality as those made by people explaining how advocates of racial or gender equality are the real racists/misogynists.

<comment><USER11> No, the argument is more like saying that Germans calling the allies as beasts for what happened to Dresden should also look at what happened to the Jews.

The difference, in case you didn't notice, is that while racists are indeed racist and people against racism aren't, here the two sides are equally bad.

</comment></comment></comment></comment></comment></comment><comment><USER13> Well, at least it was made public that he was detainend. 9 out of 10 times, a foreigner just disappears tracelessly like that: [https://www.reddit.com/r/shenzhen/comments/5vvvdv/father_mis...](https://www.reddit.com/r/shenzhen/comments/5vvvdv/father_missing_shenzhen/)</comment>