skysight-inc/HackerNews huggingface dataset:
I never understood why the permissions are so generic. When I see what permissions apps require, I shiver. It would be much better if it just demanded the developers to describe what they need the permissions for. What would be even better is that I could choose to enable some permissions on a case-by-case basis. That way I'd feel more secure and less frightened.

Android has some big app security issues to address, and they just... seem to be moving in the opposite direction. I've seen this update and it simply doesn't make sense to me. It didn't make the permissions more clear, it made me more scared of what might be hiding underneath all that.

I don't remember ever stopping an app installation when I saw suspicious permissions—I just assumed they were used for something, and I guess that's what 90% of the people would do. It would make all of them more secure if they could choose a small "ask me every time" option next to permissions that don't seem quite right, but may be legit.

Or overhaul the whole API. It's really a mess at times. Not just security. I have a beef with the horrible ways to address ridiculous hardware and software fragmentation, right from the ways you specify design and looks to using API features not available everywhere, or falling back to reasonable defaults if there isn't a hardware component you need.

I haven't developed for iOS, but I imagine it's much better than Android as a platform to develop on.
Yes.

Would it be unethical if I broke into your house to randomly place pieces of candy and $5 bills in your drawers?
For those who are into this, consider OmniROM instead of Cyanogenmod
We're using Fluxxor on the client, not the server. It uses node for installation infrastructure, but after you bundle it up it's just another JS library to import with require.js (or whatever; it's agnostic about such things).
With that in mind, I'd find it important if our social media analytics publicly accounted for such emotional manipulations.

It could be wise to begin to share such emotional-information influences to equally let users and admins be so sensitive (and acknowledge its a real part of our systems).
Been kind of surprised there hasn't been more of a reaction to this. I guess the Internet has reached peak Facebook outrage.
FWIW, the HN discussion on the study published on PNAS here:

https://news.ycombinator.com/item?id=7956470
> Facebook intentionally made thousands upon thousands of people sad.

Hang on. Wasn't the experiment to see whether users would post gloomier or happier messages respectively? This very different from intentionally making people sad.
Thanks for you response.

>>>a variable stands for an "unknown" and not a mutable slot. Thus, you cannot assign to a variable but instead can only define it within a context.

I'm struggling to understand this. A variable in C is also 'unknown' until you assigned a value to it. Do you, or do you not, assign a value to a variable in FP? If not, then what do you mean when you write "x = 3"?

>>>variables which behave as unknowns instead of mutable slots are very easy to reason about and functions as first class values are very expressive.

Can you show me an example? A short FP code that illustrates your point when compared to an equivalent code in Python or C?
There's more discussion about this on this reddit thread: http://www.reddit.com/r/programming/comments/x1ql4/undefined...

The problem is that realloc builtin's return type is internally flagged as noalias, making clang think it was safe to use constant propagation for the printf. I guess LLVM doesn't take the equality check into account.

> 1. Breaking reflexivity is not OK. Ever. a==a should hold.

This reminds me of the "proof" that 1=2. Once an undefined operation is introduced, the end result means nothing.

> 2. The compiler knows that this is undefined behavior, and uses this to "optimize" to a wrong result.

Maybe, maybe not. It's not a requirement that a compiler even recognizes that undefined behavior happens. In many cases behavior is undefined simply because it would be too expensive or impractical for the compiler to deal with that behavior.
True, it could have negative consequences. But aren't the negative consequences of the current system even worse?

Let's say it takes a permission to play sound. If you don't tell the app they can't play sound they may spend a lot of CPU and battery generating music that no one will ever hear.

So the phone uses more CPU and battery. It's not that big of a deal.

Or if you stub in the photo APIs, what does an app do when it tries to find a photo to show and the user said "no". Should Android pretend there are no pictures? Return some fake stock pictures?

Yes, Android can tell the app that there are no photos.

If you fake GPS data than if the user accidentally turns off location access on an application that needs it the app has no way to inform the user that it won't work well. As far as your run logging software knows you are now just running on the same treadmill for the rest of your life.

We are all accustomed to using GPS-related apps when we have no GPS signal. How is this any different?
I strongly hope that they won't care about any of this "outrage" and continue to do more and more experiments. Maybe even open it up as a platform for scientists to conduct studies.

Facebook is in the unique position of possessing data that can be orders of magnitude more useful for social studies than surveys of randomly picked college students that happened to pass through your hallway. There's lot of good to be made from it.

But the bigger issue I see here is why it's unethical to "manipulate user emotions" for research, when every salesman, every ad agency, every news portal and every politician does this to the much bigger extent and it's considered fair? It doesn't make much sense for me (OTOH I have this attitude, constantly backed by experience, that everything a salesmen says is a malicious lie until proven otherwise).
This is the full 120 minute long documentary. It's a heavy watch, but interesting to both audiences familiar with the background and ones who are not.

In addition to the normal pay per view streaming on vimeo (https://vimeo.com/ondemand/internetsownboy/94238859), this film was also offered at an increased price under CC-By-NC-SA. I purchased a freely licensed copy and have placed it on archive.org allowing anyone to learn from it, share it with others, or build new works out of it without risk of prosecution and without going through US-only paywall.

The official site for the film is at http://www.takepart.com/internets-own-boy and the there is a Wikipedia article at http://en.wikipedia.org/wiki/The_Internet%27s_Own_Boy:_The_S...
"I only silently removed happiness from your life because I was curious what your reaction would be!"
You can't just throw out a platitude like "it's all unix when you break it down." That doesn't actually make any sense.

When you use a bunch of different languages the primary difficulty you run into is interop. Some languages work well together by default and interop is easy, but this is almost never the case. Generally you're stuck making the decision between easy interop (RESTful APIs or your favorite RPC framework) and fast interop (JNI, swig, etc.).

So how do you guys actually deal with interop, other than to limit the need for it?
I'd happily PM you my address.
Another nail in the FB coffin.

Edit: for me at least.
Users of Facebook see it as a neutral platform for communicating with people they know. Consumers of the things you listed know it's top-down messaging coming from people they don't know or necessarily trust.

So, there is a difference. It's still a complex question, though -- is filtering or prioritizing based on emotional sentiment really different from what they are already doing with inserting ads and such?
Consent is the difference between sex and rape.
They got approval from an IRB, so not really.
I started a blog about the Meteor JavaScript framework: http://meteortips.com I've been working on the web for a long while now (about a decade) but it's been a while since I've thrown myself this deep into the web development side of things. :)
There's a caveat though; a study can be only made if people are unaware they're being subjects of it.
> place where they can see any and all of their friends' updates.

But that's the thing - Facebook have been manipulating your feed for years based on what it thought you would be interested in: favoring popular posts, posts from those you interact with frequently, posts that it thinks could be popular etc. There's always been 'most recent' which is a more accurate timeline, and as far as I know Facebook never manipulated that.

While I neither agree nor disagree with whether the study was right or not, it wasnt with this study that they 'misrepresented people and their lives'. Facebook has been doing that for years!
I'm a coder, when I see a warning I ignore it, I think most people see the warning text will ignore it just like me. Warning is a good way to notify users of potential threats, but it's not the fundamental way to solve the problem.
Drew mentions a bit about talking to potential customers before coding:

https://news.ycombinator.com/item?id=8908

To what extent, I do not know.
May I ask where you got your front page image? Stock photo site?
Yesh, I recognize some of the thinking in this post, and trust me, you're going about it all wrong. Until you figure yourself out, you're not going to make meaningful relationships or be happy in them.

You need to find what defines you, what you are about. Then, you'll need to make your peace with it. Own it.

I'm not sure the people you have mentioned feel any better about themselves than you do. Normal people reach a point where they have enough money and they stop and learn to paint or something. It's a particular kind of dysfunction to earn billions.

If you are not a downtown type, leave. There are plenty of bored potential partners in other places. Focus on joining organizations that will put you with other people of like interests. Shared experiences drive friendships. Drinking at pubs doesn't count. A group that hikes every weekend, does. Find a group that says important things.

You seem to dislike the shallowness you feel around you, so don't be shallow. Nothing you wrote says anything about you, just some vague ideas about success that feel thrust on you by what you've read. If you were really all about success and that junk, I don't think you would feel so miserable about pursuing it. You have freedom, much more than you think.
I see it this way: they did a study, so it's fair.

Were they to filter posts by emotional sentiment as a part of their normal operations, I'd find it unethical, or at least something I might not want. But I'm totally fine with them subjecting users (including myself) to random research studies, as those are temporary situations, and with Facebook's data sets, they can have great benefits for humanity.

Perhaps Facebook should provide an opt-in option to for user to be a subject of various sociological experiments at unspecified times. I'd happily select it.
All Facebook users have agreed to be part of research experiments. It's in their ToS. If you got people to agree to allow you to enter their homes for research it wouldn't be unethical for you to do so.
I'm building a basic CRUD app (http://clj-notes.herokuapp.com/) to showcase some backend libraries (https://github.com/meta-x) for Clojure/Ring that I built and also as a way to learn Clojurescript and Om
Groovy/Grails here.
And only 90,000 more nails to go before your average non-tech user who has Facebook as their homepage drops them.

Until a replacement comes about and a large number of contacts move, it has become such a large part of these peoples lives it isn't going anywhere. Arguments and reasons don't sway them. Sadly.

I've never even been on facebook. But my girlfriend and extended family use it religiously. My dad and a couple of other members finally dropped it as the result of my rants but the rest (the vast majority) just think I'm suspicious and nutty and go right on posting their entire lives.

So, facebook can pretty much do as they please. And apparently they do.
You should probably know: You just lost a sale/install because you only target one platform, a mobile one even.
1. a==a is false for NaN, so it's not quite "Ever"

2. The compiler does not know this is undefined behavior. Dereferencing a pointer that has been previously passed to realloc is not necessarily undefined behavior. realloc may fail and return NULL; in that case the passed-in pointer remains valid.
Oh, please.

Every single time Facebook changes anything on their site it "manipulates users' emotions". Show more content from their friends? Show less? Show more from some friends? Show one type of content more, another less? Change the font? Enlarge/shrink thumbnail images? All these things affect users on all levels, including emotionally, and Facebook does such changes every day.

Talking about "informed consent" in the context of a "psychological experiment" here is bizarre. The "subjects" of the "experiment" here are users of Facebook. They decided to use Facebook, and Facebook tweaks the content it shows them every single day. They expect that. That is how Facebook and every other site on the web (that is sophisticated enough to do studies on user behavior) works.

If this is "immoral", then an website outage - which frustrates users hugely - should be outright evil. And shutting down a service would be an atrocity. Of course all of these are ludicrous.

The only reason we are talking about this is because it was published, so all of a sudden it's "psychological research", which is a context rife with ethical limitations. But make no mistake - Facebook and all other sophisticated websites do such "psychological research" ALL THE TIME. It's how they optimize their content to get people to spend more time on their sites, or spend more money, or whatever they want.

If anyone objects to this, they object to basically the entire modern web.
NOBODY thinks that Facebook is a place to see all your friends' updates. And it has never been anything like that.

What Marc was getting at was that this is A/B testing. Everybody does A/B testing these days. Claiming it is "unethical" because the B group might be less happy than the A group is ridiculous. That's essentially the whole point of A/B testing. Try two things and see what makes your users happier, then you can do more of that.
Except Facebook didn't break into anyone's house. They changed their own algorithms on their own website that people visit voluntarily.
A ruby gem that takes an RGB triplet and gives you a color name. Been using the XKCD Color Survey dataset (http://blog.xkcd.com/2010/05/03/color-survey-results/) to find mappings for the color space to names. It has been a pretty interesting little project. Color is a pretty interesting topic.
Programmed Visions: how do we analyze, organize, and build with the undead?
AngularJS + HTML5 + CSS = Magic
A tag-cloud would be useful, no?
Silently removed happiness from my web application that you visit on a voluntary basis. If you think my web app is too gloomy, feel free to stop coming.
Yes, and today's wave of media controversy about it hasn't added significant new information, so I think this post counts as a dupe.
"No one should have to sacrifice security because they don't want to fork over that sort of cash"

It's a bit long to be the SSL co-op's tagline, but as a motto, you've pretty much hit the nail exactly on the head.
Another example of why this trend of "simplification" in software is really disturbing.

core idea here — making Android app permissions comprehensible to normal users — is good.

What sort of "normal users" didn't understand the previous system!? What sort of "normal users" wouldn't know the difference between e.g. sending and receiving SMS, or the camera and microphone?

Instead of making software for idiot users, how about expecting them to have a little knowledge and be able to find more? It's even funnier when you realise this change is coming from Google, who runs services that almost everyone uses to find information. In general the big effect this change has is people will know less about what the software on their device is doing, and also be less inclined to ask questions about it --- because details are replaced with vagueness, they won't know what to ask. This also gives power to Google and the app developers to make privacy-disrupting changes without the users knowing. Taking away control and detailed information is the perfect way to minimise dissent in your userbase and have them think and do what you want them to.

Under this sugar-coated guise of "simplification", "convenience", "minimalism", etc., users are gradually being converted from individuals with the power to make their own decisions, to consumers who are complacent followers not knowledgable enough to revolt. The simplest life, where others in power make all your decisions for you, is one of complete submissiveness. My reaction to this can be summed up in 3 words: Do not want.
The reason for making software patentable is just one:

Big corporations see an advantage in it.

That is all about it. That's the reason, they started with this and that is the reason, why nobody changes this system, although anybody with a clear mind can see what harm is being done. The corporations pay hundreds of lobbyists and lawyers to ensure, they can protect their support-system.

All the other reasons told, are just gibberish.
> then you need to call out every advertising, marketing, and PR firm on the planet, along with every political talkshow, campaign, sales letter, and half-time speech...

Except that in every one of those examples, you know you're being fed a worldview slanted by the author for their purpose. They may try to appear unbiased, but you still know that they have a worldview that is in their best interest to share. That makes it completely different.
You will indeed not hear from me that there is going to be some new and improved version of communism or collectivism that will solve all these problems :-).
Nope; the primary difference is that being raped doesn't make you happy. But please let's not go there; it's stretching analogies too far.
Within a category. However, as explained by the article, even that can involve some pretty serious escalations (e.g, "read SD card" to "format SD card"!).
From a longer review of the same book:

http://computationalculture.net/review/review-programmed-vis...

"Software is at once knowable (e.g., through programming languages) and not at all (e.g., computer performance exceeds human perception). Code is simultaneously accessible (e.g., “view source”) and nebulous (e.g., subject to an array of both machine and human interpretations). Media represent both permanence (e.g., they can always be upgraded) and decay (e.g., they always have to be upgraded).

... our embodied interactions with screens are habituated (e.g., through interface design), and “our computers execute in unforeseen ways” (9). The visible and invisible coalesce at our fingertips, and whatever is on display is always elsewhere—read here, written there.

... When the ENIAC was being developed during the 1940s, male analysts would speak commands at female operators, who would then translate those commands into input for the “Giant Brain.” In this real-time interaction between man, woman, and machine, women can be read more or less as software. They directly executed commands before there was a command line or a graphical user interface.

... technologies that store everything discretely and act as universal archives. The fetish for the former eclipses the ways in which the latter is really about “the undead of information”—its persistent de- and regeneration, its repeated resuscitation, and its simultaneous presence and absence (172, 177).

... how exactly do we develop interfaces that are more productively spectral? How and for whom do we create software that is inclined to surprise? What are some existing examples, and how would learning from them affect coding, designing, and architecting practices? In short, how do we analyze, organize, and build with the undead?"
I actually think this is a good tactic. Basically you try to sell a product that doesn't exist to determine whether there's any demand.

Off the top of my head I can think of at least 4 large ($50M+ acq. or valuation) teams that picked their products this way.

It's pretty easy – build a well designed landing page describing the product, share it on HN/reddit/etc and gauge the response.
Where can I find pg's reading list?
I think that is an important point, not just a nit-pick.
Facebook altering it's block-box proprietary algorithm for what to show is something it does every day. That can't be unethical by itself.

It's possible that for it to be published, a higher standard would be needed. That is, the actions they took were ethical, but perhaps inappropriate for scientific publication.

But, if that were the case, the peer reviewers and the journal in which it was published should have flagged that. That it was published shows they didn't have any significant concerns.
Quora has some really interesting content, but there's also a ton of bullshit. A significant portion of the questions I see on my feed are of the form: "how do I get into <famous school>?", "what was <famous person> like in college?", "how do I get a job at <famous company>?, "what is <class> like at <famous school>?, what is <some very specific fact> about <famous company>'s <famous product>?
It's an interesting question. I have the same averse reaction to this story that a lot of people here have, but I admit I also thought, "If Facebook hadn't published this as research, but just had it as a business decision to drive more usage or positive associations with the website, no one would care."

My own way to reconcile this -- and I admit it's not a mainstream view -- is that advertisement and salesmanship should be considered just as unethical. I don't know how to quantify what "over the line" is, but it all feels like brain-hacking. Things like "The Century of the Self" suggest that in the past century or so we've become extremely good at finding the little tricks and failings of human cognition and taking advantage of vulnerabilities of our reasoning to inject the equivalent of malicious code. The problem is that when I say "we" I don't mean the average person, and there's an every-growing asymmetry. Like malware developers adapting faster than anti-malware developers, most people have the same level of defense that they always have had, while the "attackers" have gotten better and better at breaking through defenses.

Sometimes I'll see discussions about "what will people centuries from now think was crazy about our era?" and there's a part of me that keeps coming back to the idea that the act of asymmetrically exploiting the faults of human thinking is considered normal and "just the way things are."
What if Gmail started silently removing happy emails from your Inbox by auto-archiving them?
iOS apps are starting to realise this and get smart about how they ask for permissions. See http://techcrunch.com/2014/04/04/the-right-way-to-ask-users-...

The common model I'm seeing is the app will ask the user beforehand, giving the proper explanation. If the user agrees, then they are prompted with the OS level permissions dialog.
Exactly. I find this situation to be an example of ridiculous pattern matching. Is it published? Then it's a psychological experiment, and needs to be evaluated by an ethics board. Is it just A/B testing? Then it's not "science", so no need for ethics board.