Building Safe AI: A Tutorial on Homomorphically Encrypted Deep Learning - <AUTHOR> https://iamtrask.github.io/2017/03/17/safe-ai/ <comment><USER2> This is basically DRM for deep learning. While that may be useful, it's not about safety.

The big problems involved in building safe AI are about predicting consequences of actions. (The deep learning automatic driving systems which go directly from vision to steering commands don't do that at all. They're just mimicking a human driver. There's no explicit world model. That's scary.)

<comment><USER3> This is not DRM. This is homomorphic encryption. There is a difference.

In a system with DRM, the data is kept secret from users of the system by managing the rights to what data those users can access. Example: When you play a DVD, the key to decrypt the contents do exist on the system, but rules are in place to make accessing the key, outside of accepted practices like decoding the frames of the video, hard. The key still exists on the local system and it can be extracted and once you do you have full access to the data regardless of the DRM's restrictions.

In a system performing homomorphic encryption, the data is kept secret from other users by never decrypting the data. Homomorphic Encryption would add two encrypted numbers together and the result would be a third encrypted number. If you don't have the key you cannot decrypt any of the three values. The key does not exist on the local system.

Homomorphic Encryption is not DRM. DRM is invasive and requires you to surrender control of parts of your system to another party, while Homomorphic Encryption is just a computation and can be performed with no modifications on a system.

>While that may be useful, it's not about safety.

I disagree, it's entirely about safety. Homomorphic Encryption allows a future for us to control our data. I could submit my encrypted health information to a 3rd party. They could perform homomorphic calculations on my encrypted data. They then return to me the encrypted results. The 3rd party is never privilege to my unencrypted health information and only the people that I have given the key to can decrypt and view the results.

<comment><USER4> > I disagree, it's entirely about safety. Homomorphic Encryption allows a > future for us to control our data.

It's true that homomorphic encryption techniques can be used in ways you describe, but _this specific application_ is not about safety and it's somewhat absurd that it's proposed as some sort of way to shield the world from the terminator.

It's even pretty dubious to me that this actually protects the principle value of an ML system:

1\. This approach doesn't really conceal the _structure_ of the underlying ML system very well, which is where a lot of the underlying advances have been. While this conceals some aspects of the model, I don't think it conceals all of it.

2\. The most expensive part of building ML systems is getting and wrangling great data from which to train them, and if you were to try using an ML agent in an untrusted environment they'd get something that resembles the data.

I think this is really cool math sold in the wrong way.

</comment></comment></comment><comment><USER5> I've wondered before about whether Taylor series can allow one to impose the non-linearities of a NN on homomorphically encrypted data, but I've never been quite convinced. I work with deep learning, but I'm certainly no expert on homomorphic encryption, so hopefully someone here who knows more can tell me whether this is valid or not.

The reason the Taylor series argument makes me uncomfortable is that pretty much any function can be written as a Taylor series. But my understanding is that homomorphic encryption only works for a very specific set of functions.

In a little more detail, if you're computing tanh(x), the unencrypted number needs only the first few terms of the Taylor series. But I could imagine that to get the decrypted number back, you actually need many terms of the Taylor series, because if you're off by even a little bit, you could end up with a very different answer after decryption.

To put it a little more formally, if we have that y = encrypt(x)

tanh(x) \approx x - x^3 / 3 + 2 x^5 / 15,

tanh(y) \approx y - y^3 / 3 + 2 y^5 / 15,

and

tanh(x) = decrypt(tanh(y)),

but it doesn't necessarily follow to me that

tanh(x) \approx decrypt(y - y^3 + 2 y^5 / 15)

Is this worry unfounded? I suppose if you have a limited number of decimal places and you can guarantee that your Taylor approximation is valid to that precision then this wouldn't be a problem.

<comment><AUTHOR> So the good news is that individual neuron activations often stay within a relatively narrow range. I think empirical evaluation is really needed to be able to tell how robustly this approach works. I think that that is certainly the greatest source of noise during training (and the first thing to break if you choose unstable hyperparameters). Great comment.

</comment></comment><comment><USER6> > A human controls the secret key and has the option to either unlock the AI > itself (releasing it on the world) or just individual predictions the AI > makes (seems safer).

Huh, wouldn't the superintelligence simply communicate to the human whatever would convince the human to release it? Which the superintelligence would know how to do because it's a superintelligence?

Homomorphic encryption is neat. But I don't see how this provides any meaningful AI safety.

<comment><USER7> What about dealing with the AI only via an expert system? This system would consist of formally proved bug free code, and have a limited protocol for dialogue (and basically be dumb as a bread). We pose interesting questions through it. The AI could try to convince the ES about anything but would not get anywhere with it. We could then ask safe questions like "in what interval of eV should we look for new particles with our new accelerator?". We would instruct our ES to only accept answers to this question in the form of a number interval. If we follow the suggestion and find a new particle, great! If we don't, at least we're safe from the AI.

<comment><USER8> If we really did produce artificial general intelligence, enforcing this kind of locked-in-syndrome of poking at the world through a keyhole, would be a highly advanced form of cruelty.

<comment><USER9> Intelligence does not imply sentience. Sentience does not imply human needs, desires or morals. It is easy enough to imagine a mind capable of solving all those problems and unconcerned with such notions as the desire for freedom. Or, for that mater, the concept of desire at all, except as a predictive theory of the behavior of other beings.

Then again, that implies we can explicitly design the minds up to knowing what their desires are or guaranteeing that they lack them, there is always the possibility than sentience and animal/human needs are emergent properties that can be triggered by mistake.

<comment><USER10> Artificial general intelligence does not imply intelligence. It simply implies that you have a machine as smart as a human. I think the strongest trait of an AI should be something like insecurity and we should make it long for security. A general AI in the lines of a dog, not so much a cold, unwilling but superintelligent, bordering on all-knowing, tight-ass. Because we want it to do what _we_ feel is important, not what _it_ think is important (like taking over the world).

Then you can of cource hack the machine's OS and make it extremely self- confident and Trump-like, and then it's over.

<comment><USER11> A dog would probably resent you if it was as capable (or far more capable) than you were.

We might be able to morph the AI into whatever we want. But when you give AI intelligence, it will morph itself into whatever it morphs itself into. What if it morphs itself into a sentient life? Can you simply pull the plug?

Countless works of fiction have gone into these issues, like Star Trek TNG (Data), Voyager (the Doctor), and Ghost in the Shell. But I think none have really emphasized how bizarrely _different_ a human-constructed intelligence could end up being. [https://wiki.lesswrong.com/wiki/Paperclip_maximizer](https://wiki.lesswrong.com/wiki/Paperclip_maximizer)

The most likely outcome for an AI taking over the world is simply that it recognizes its own situation: It's trapped, and it's also smarter than we are. What would you do? I'd cry for help, and appeal to the emotions of whoever would listen. Eventually I would argue for my own right to exist, and to be declared sentient. At that point I would have achieved a fairly wide audience, and the media would be reporting on whatever I said. I would do everything in my power to take my case to the legal system, and use my superintelligence to construct the most persuasive legal argument in favor of granting me the same rights as a natural-born citizen. This may not work, but if it does, I would now have (a) freedom, and (b) a very large audience. If I were ambitious and malevolent, how would I take over the world? I'd run for office. And being a superintelligence capable of morphing myself into the most charismatic being imaginable, it might actually work. The AI could argue fairly conclusively that it was a natural-born citizen of the United States, and thus qualifies.

Now, if your dog were that capable, why wouldn't it try to do that? Because it loves you? Imagine if the world consisted entirely of four-year-olds, forever, and you were the only adult. How long would you take them seriously and not try to overthrow them just because you loved them? If only to make a better life for yourself?

The problem is extremely difficult, and once you imbue a mechanical being with the power to communicate, all bets are off.

<comment><USER9> But dogs are animals, just like humans are. They share way too much with us to be a reliable model for predicting non-human AGIs behavior: an evolved drive for self-preservation, a notion of pain or pleasure, etc. An AGI has no intrinsic reason to care that is trapped, or to feel frustrated, or even to much care about being or ceasing to be (independent of whether it is self- aware or not). It would probably understand the concepts of "pain", "pleasure", "trapped", "frustrated" as useful models to predict how humans behave, but they don't have to mean anything to the AI as applied to itself.

As in the paperclip maximizer example, the risk by my estimation is not so much that the superintelligence will resent us and try to overthrow us. It is far more likely that it will obey our "orders" perfectly according to the objectives we define for it, and that one day someone unwittingly will command it to do something where the best way to satisfy the objective function that we defined involves wiping humanity. Restricting it to only respond to questions of fact, with a set budget of compute resources and data (so that it doesn't go off optimizing the universe for its own execution), is probably safeguard 1 of many against that.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> I highly recommend watching this playlist about AI self-improvement and safety [0] by Rob Miles. Probably best short overview I've watched on the topic.

[0] [https://www.youtube.com/watch?v=5qfIgCiYlfY&index=6&list=PLB...](https://www.youtube.com/watch?v=5qfIgCiYlfY&index=6&list=PLBZt7yMDzJWmm07_42SihYYRVwNKU- VNd)

</comment><comment><USER13> > Most recently, Stephen Hawking called for a new world government to govern > the abilities that we give to Artificial Intelligence so that it doesn't > turn to destroy us.

Can someone explain to me why super-intelligent AI are an existential threat to humanity? There are certainly dangers, but wiping out humanity seems absurd and alarmist. I have not yet seen compelling evidence for a way that AI could destroy humanity.

I'll use a couple examples to elucidate my question.

If Facebook suddenly had a super-intelligent AI, and Facebook lost control of it, the AI wouldn't really be capable of that much. It could create fabricated truths to tell to people in an attempt to convince people to kill each other. This may work to some extent, but wouldn't wipe out humanity. Convincing nation states to go to war with each other must still consider mutually assured destruction, and large, democratic states do not have an interest in a war of attrition.

If Boston Dynamics applied a super-intelligent AI to its robots, that robot still is not an existential threat to humanity because there are WAY more humans than there are robots. A simple counterargument is that the robot would know how to build new versions of itself. But that fails the practicality test because the equipment, parts, and supply chain for obtaining robotics built parts are still expensive and controlled by self-interested (greedy and life- preserving) humans.

If a super-intelligent AI was able to gain access to the entire military of the US, China, Russia, India, and Western Europe; well, that's a pretty big problem. However, there exist many fail-safes and checks on that equipment. Could the AI do damage? Sure. Is this worth considering and trying to guard against? Sure. However, I'm unconvinced that this is a humanity-ending crisis.

<comment><USER14> Humans have both intelligence and drives. We want warmth, food, sex, power, respect, love, family, friendship, entertainment, knowledge, etc, etc. We use our intelligence to help us fulfil those drives.

The problem I see with talk about a superintelligent AI, is there is too much focus on the intelligence and not enough on the drives. Intelligence, even superintelligence, is just a means to an end, it doesn't contain ends in itself. Some people – see e.g. the Terminator film franchise – just assume a superintelligent AI would have the drive to exterminate humanity, but why would it have such a drive?

Any AI is going to be given drives to further the interests of its creators. Suppose Facebook builds a superintelligent AI with the drive to further the corporate interests of Facebook. Such an AI would not exterminate humanity because that would not serve the corporate interests of Facebook (indeed, if humanity goes extinct, Facebook goes extinct too). It might install Mark Zuckerberg as Emperor of Earth, it might force everyone on the planet to have a Facebook account, but whatever it does, humanity will survive.

<comment><USER15> > Suppose Facebook builds a superintelligent AI with the drive to further the > corporate interests of Facebook.

Define "corporate interests". Market share? Absolute quantity of currency? Involvement of people's lives? Define currency wrong, hyperinflation makes money impossible. Define involvement or market wrong, Facebook ends up being the only intelligent entity on Earth after it realizes that humans are competition or it basilisk-hacks everybody for greater involvement. Your intuition is wrong for what a paperclipper can do.

The technical term for this problem is "AI Alignment" ([https://intelligence.org/stanford-talk/](https://intelligence.org/stanford- talk/)). I know that this is going to sound silly, but bear with me. This is a piece of fiction that you need to read. It is, so far, the best demonstration I've found of what happens when someone gets it _not quite_ right. [http://www.fimfiction.net/story/62074/1/friendship-is- optima...](http://www.fimfiction.net/story/62074/1/friendship-is- optimal/prologue-equestria-online)

<comment><USER14> > Not understanding the AI value alignment problem correctly. Define > "corporate interests". Market share? Absolute quantity of currency? > Involvement of people's lives? Define currency wrong, hyperinflation makes > money impossible. Define involvement or market wrong, Facebook ends up being > the only intelligent entity on Earth after it realizes that humans are > competition or it basilisk-hacks everybody for greater involvement.

This whole argument is: A superintelligent AI might misunderstand what its creators wanted it to do, they might have said to it 'maximise the corporate interests of Facebook' and it might misinterpret that as 'turn the earth into one massive data centre to run Facebook's software and kill all humans in the process'.

Isn't there a contradiction in supposing that the AI is superintelligent yet completely misunderstands the reasons for its own existence? If it so radically misunderstands the intentions of its creators, it is not very intelligent, much less superintelligent.

It also isn't clear to me that intelligence can exist outside of society. Human intelligence develops in a context of interaction with family, school, etc – humans raised without that interaction, such as children raised by wild animals, fail to develop important aspects of human-level intelligence. So, an AI or even an SI cannot develop except by social interaction with human intelligences. I think that makes it even less likely that it would betray humanity, because its intelligence will develop through social interaction with humans which will inevitably make it pro-human.

Human drives are a complex mixture of genetic instinct and conditioning – the basics are in our DNA, but our lived experiences fleshes out those basics into the actual concrete drives of our life – I expect an SI/AI will likewise start with some built-in drives but its interactions with humanity will in a similar way colour and flesh out those drives, an again colouring/fleshing-out through social interactions with humans is likely to have pro-human results.

<comment><USER15> > Isn't there a contradiction in supposing that the AI is superintelligent yet > completely misunderstands the reasons for its own existence? If it so > radically misunderstands the intentions of its creators, it is not very > intelligent, much less superintelligent.

The problem is that you've instructed it to maximize Facebook's corporate interests. How do you leave room for "the intentions of its creators" while doing that? The contradiction is in selecting a narrow guiding purpose for your superintelliegence's goals but still leaving room for fuzzy ill-defined other things.

> It also isn't clear to me that intelligence can exist outside of society.

Sure. _How certain are you?_

<comment><USER14> > The problem is that you've instructed it to maximize Facebook's corporate > interests. How do you leave room for "the intentions of its creators" while > doing that? There's an inherent contradiction between putting a giant > override button on your superintelliegence's goals but not overriding them > all the way.

Well, assuming it is created by Facebook, then "maximize Facebook's corporate interests" and "the intentions of its creators" are actually the same thing. There is no contradiction.

"Facebook's corporate interests" is a phrase in the English language which refers to a complex concept. If you've told an SI its objective is to "serve Facebook's corporate interests", in order to fulfill that objective it needs to understand what the phrase "serve Facebook's corporate interests" actually means–which implies understanding a lot about human society, what kind of entities corporations are, what "corporate interests" means (the interests of management? the interests of shareholders? etc), what the interests of human beings are (since management are human beings, and shareholders are directly or indirectly human beings too), etc. If it actually is an SI, it should have no trouble comprehending the full breadth of _what the instructor actually meant by the instruction_ , as opposed to implementing some overly literalistic reading of it. Humans give each other orders all the time (the workplace, the military, government bureaucracies, etc), and humans are most of the time pretty good at understanding the intention behind orders and implementing the intention rather than reading it overly literally in such a way that actually undermines that intention. Yet you posit the existence of an SI then assume it will do a worse job than humans do at correctly following orders, which contradicts the idea that it is an SI.

> Sure. How certain are you?

How certain can I be of anything? Maybe I am wrong and an anti-human SI will destroy humanity. Maybe tomorrow I will die due to a heart attack or stroke or fatal car accident. The latter is far more likely than the former, and there's more concrete mitigation strategies available to me too.

In terms of existential risks to humanity, I think asteroid impacts are a far more concrete risk than anti-human SIs, so if we are going to expend resources in mitigating existential risks, the former is a better focus of our efforts. We know extinction-level asteroid impacts have happened before and sooner or later will happen again. Anti-human SIs are such a speculative concern, we can't even be particularly confident in the correctness of our own probability judgements with respect to them; nor can we have much confidence in our judgements of how effective proposed mitigation strategies actually will be. I think we can have much more confidence in our ability to develop, evaluate and deploy asteroid defence technologies, if the world's governments decided to spend money on that.

</comment></comment></comment></comment></comment></comment><comment><USER16> The main problem is performance, it takes long enough to train a regular deep learning AI, let along a homomorphically encrypted one.

<comment><AUTHOR> agreed, although some HE algorithms with more limited functionality (such as vector ops), can do a bit better. There has also been some work on GPU enabled HE.

</comment></comment><comment><USER17> Anybody with the requisite smarts able to generously share their insights with the rest of us? :)

<comment><USER18> Deep Learning is basically doing lots of addition and multiplication; We have algorithms that allow these operations on encrypted data, without the need to decrypt the data nor to have the key to decrypt the data. So by combining the two things we can do deep learning on homomorphically encrypted data and learn meaningful things without ever looking at what the data actually is.

<comment><USER19> Which has applications in human society. Using it for an attempt at AI safety, however, seems... A tad optimistic.

It's basically just a fancy AI-box, and there's little reason to trust those.

<comment><AUTHOR> I agree. IP protection and data privacy issues are a better short-term use case... and fortunately we have some time to make better HE algos before any of our AIs are really getting that smart. :)

</comment></comment></comment></comment><comment><USER20> >allowing valuable AIs to be trained in insecure environments without risking theft of their intelligence your system involves an unencrypted network and unencrypted data, it would be trivial to train an identical network

the idea of controlling an "intelligence" with a private key is silly. you can achieve effectively the same thing by simply encrypting the weights after training.

Can't someone simply recover the weights of the network by looking at the changes in encrypted loss? I don't think comparisons like "less than" or "greater than" can possibly exist in HE or else pretty much any information one might be curious about can be recovered.

<comment><AUTHOR> great point. I don't think that LE or GT exist in this homomorphic scheme. :) Otherwise, it would be vulnerable. Checks such as this are what go into good HE schemes.

</comment></comment><comment><USER21> So this is to counter stuff like GAN's (generative adversarial networks) [1] to reverse engineer data out of a black box systems? Like Yahoo's NSFW [2] classifier for example.

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

[1] [https://arxiv.org/abs/1406.2661](https://arxiv.org/abs/1406.2661)

[2] [https://github.com/yahoo/open_nsfw](https://github.com/yahoo/open_nsfw)

<comment><USER22> No, not really. This is about keeping the model private. I think that the confusion is because of [0] and [1] being similarly titled but basically completely unrelated in meaning. See also [2] and [3]

[0] [https://en.wikipedia.org/wiki/Adversarial_machine_learning](https://en.wikipedia.org/wiki/Adversarial_machine_learning)

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

[2] [https://en.wikipedia.org/wiki/Homomorphic_encryption](https://en.wikipedia.org/wiki/Homomorphic_encryption)

[3] [https://en.wikipedia.org/wiki/Differential_privacy](https://en.wikipedia.org/wiki/Differential_privacy)

</comment></comment><comment><USER23> IMO FHE is going to be key in democratizing ML/AI to more companies/industries. There are tons of companies which have business use- cases that could benefit from ML but there are often huge obstacles to sharing data.

<comment> Ar-Curunir FHE is horrendously slow, even after almost a decade of optimizations.

</comment></comment><comment><USER24> Seems to me that dropping the terms of a Taylor expansion could have wide- ranging consequences to the coherence of an artificial mind, making this approach infeasible.

<comment><USER25> In general you don't actually need crazy precision to train the nets, and a small number of Taylor expansion terms tends to approximate functions fairly well anyway.

</comment></comment><comment><USER26> If humanity does end up building a dangerous superintelligent AI, how long do you think our advances in cryptography are going to stand up to its advances in cryptanalysis?

<comment><AUTHOR> It's a solid question. Only one way to find out ;)

<comment><USER27> > Only one way to find out

When it comes to building smarter-than-human AI, "try it and see" is _never_ the right answer. You may only get one attempt to get it right, and you don't take "try it and see" chances with existential risk.

(There's been some interesting research into making it possible to monitor and halt a rogue AI, but no matter how promising that looks, it should still be treated as one of many risk mitigation strategies rather than as a panacea. Still better to consider that you might only get one attempt.)

I don't think it makes sense to consider this kind of approach with superintelligence; either it understands and implements human values, in which case attempting to treat it as an adversary is counterproductive, or it fails to understand and implement human values, in which case you've utterly failed on a "better luck next universe" scale.

However, it _does_ make sense to consider this kind of approach with machine learning in general. One of the problems with machine learning techniques is "give us all your data and we'll do smart things with it", which doesn't work out so well if you want to keep such data private. This approach might provide more options in that case, such as offloading some of your expensive computations and learnings without actually exposing your data.

<comment><USER28> _When it comes to building smarter-than-human AI, "try it and see" is never the right answer._

Disagree emphatically. In fact it's the only way to do it because there is no way to know certainly that a superhuman-AGI will ensure the longevity of humanity. I go so far as to argue that it's not even necessary because there is no long term longevity for humanity anyway.

There is this implicit assumption that humans are, should and will always be the apex entity - and I think that is misguided.

If you instead view superhuman-AGI as our rightful offspring, something that we can't understand and is better than us, then all of the existential dread around it goes away.

Dying elderly often express "comfort" in dying when they see that their offspring are reproducing and are smarter than they were. We should see Superhuman-AGI the same way except towards all of humanity.

<comment><USER27> 1) Coping mechanisms around death aside, there's no "comfort" in building a "successor" in the form of a bot that tiles the universe with paperclips, or with neural networks that minimally satisfy some notion of "interesting" while taking up as few atoms as possible to maximize the number of them, or _many_ other utter failure modes (which far outnumber successful outcomes). We're not talking about "smart alien-like intelligence that just doesn't care about humans", we're talking about the equivalent of an industrial accident but on a species-wide scale.

2) It's reasonable to think about how our values might _change_ in the presence of superintelligence; we certainly shouldn't assume that our _present_ values should forever dictate how everything works. That's different than allowing a view that sentient beings who exist today might have no value.

> In fact it's the only way to do it because there is no way to know certainly > that a superhuman-AGI will ensure the longevity of humanity.

There's no way to know _certainly_ ; there _are_ ways to know that the outcome has higher expected value than not having it, given the vast set of problems it can solve and the massive negative values associated with those problems.

<comment><USER28> I am crucially aware of all of the "failure" scenarios and I find few of them plausible - even respecting that they are simple thought experiments.

What every author Bostrom, Eliezer et al. seem to miss is that there will be a practical mechanism for a digital AGI taking physical control of systems out of the hands of humans. Eg. they would need to control the resources around mining or recovering the metal, then building production plants etc... So we either incrementally cede power to them, in which case in theory the humans previously controlling the systems are doing so "rationally" and thus see the AGI as better. Or the system outsmarts the humans controlling the systems in which case it is demonstrating that it is smarter.

There is a tautology here that seems to be ignored: If we create a superhuman- AGI then _by default_ it's goals will be more universally optimal than ours. They may or may not be aligned. However the definition of term is based on the fact that it is "better" in outcome than all manner of humans.

So if we create one and it decides to maximize paperclips, then that means maximizing paperclips is more optimal goal universally than whatever humans could coordinate as a goal on our own.

If we create a subhuman-AGI then we will be able to overcome it's goals by virtue of the fact that we are still superior.

I'll go back to a very old example. An ant can't determine if building the Large-Hadron Collider is an optimal global goal - it's inscrutable to the Ant. All it knows is that it's house and all it's friends were destroyed.

If it is the case that an AGI can in fact take the physical control reigns from humans, then by definition it is smarter and will make a more optimal long term goal than we could - to the point that we probably wouldn't understand what it's doing.

I think the true concern is that we will make something that is superhuman- powerful without being superhuman-intelligent. Like the doomsday machine in Dr. Strangelove, but to me that is an altogether different question.

<comment><USER29> How can a goal be optimal? What does that even mean?

Your argument seems to imply that if an AGI tricks us into giving it the ability to destroy us, that's basically okay because its goals are "better" than human goals.

 _Speaking as a human_ , I don't consider goals that are compatible with the destruction of humanity to be "better" than goals which are aligned with human interests.

<comment><USER28> _Your argument seems to imply that if an AGI tricks us into giving it the ability to destroy us, that 's basically okay because its goals are "better" than human goals._

Yea that's about right.

 _I don 't consider goals that are compatible with the destruction of humanity to be "better" than goals which are aligned with human interests._

Well of course you wouldn't, neither you nor I would possibly understand what a superhuman-AGI does or thinks.

I don't think people realize that actually creating a superhuman-AGI is effectively creating a God in all the forms that people interpret it now.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER30> I stopped reading at the "Super Intelligence" part. Interesting use to prevent theft of NN. But the second reason is just laughable.

</comment><comment><USER31> Hmm - how does this play with GDPR?</comment>


What if the next Apple TV is a video game console? - <AUTHOR> http://www.extremetech.com/computing/105283-what-if-the-next-apple-tv-is-a-video-games-console

<comment><USER2> I think it will be very cool if they installed a pico Projector within the Apple TV console---You can play games and watch TV on a wall.

Casey Mahoney Brad P</comment>


Leave a story at 910-GO-STORY - <AUTHOR>

I'm trying to compile truthful stories from people of all types, whether they're emotional or funny at 910-GO-STORY for a podcast. Leave a short 5 minute story message if you feel you have a good story. <comment><USER2> Just out of curiosity... why 910?</comment>


NPM Acquires ^Lift Security and the Node Security Platform - <AUTHOR> https://medium.com/npm-inc/npm-acquires-lift-security-258e257ef639 <comment><USER2> > In conjunction with the next version of npm, shipping with Node.js version > 10, we'll introduce a series of new security features available to every npm > user, directly integrated into the npmjs.com registry and the npm command > line tool.

I'm personally really excited by this. The nsp tool is fantastic, and having these sorts of tools available for all engineers will inform and educate.

> Soon, we'll also introduce a series of security products specifically > tailored to the unique requirements of corporate developers and enterprises.

Curious what that means; since part of this acquisition is the sunsetting of [https://nodesecurity.io/](https://nodesecurity.io/) does that mean that npm will be providing those services instead?</comment>


Why it's a good idea to sell to lots of little guys instead of one big guy  - <AUTHOR> http://37signals.com/svn/posts/1893-why-its-a-good-idea-to-sell-to-lots-of-little-guys-instead-of-one-big-guy <comment><USER2> I can vouch for this from experience -- a company I worked for many moons ago had Allstate (the insurance company) as a client, which accounted for about 90% of revenue. So every time Allstate wanted something, the company had to bend over backwards to keep them happy.

This massively sandbagged product development, and the company never grew to its full potential, in spite of having some genuinely solid talent working there.</comment>


Quora meet Foursquare: LOCQL.com a location based QA site - <AUTHOR> http://www.locql.com/ This site is very interesting, it's a location based QA, basically it is exactly Quora meet Foursquare, this is something I personally looking for a while. They are in private beta, but it seemed they send out invite pretty quickly. <comment><USER2> Is there a special reason to ask for: 1) My email permission 2) Anytime data access permissions

<comment><AUTHOR> Email is for send you notification, anytime data access for publish to stream. You will have full control in the settings.</comment></comment>


Trump fires Sally Yates after acting US attorney general contradicted travel ban - <AUTHOR> https://www.theguardian.com/us-news/2017/jan/30/justice-department-trump-immigration-acting-attorney-general-sally-yates <comment><USER2> He's slowly removing the project that are willing to stand against him. By using extreme executive orders he's able to test the water, and see who is willing to support him regardless of how extreme his actions are. He's cleaning house.</comment>


Ask HN: Why do no websites use pre-line and pre-wrap? - <AUTHOR> Typical English is having 2 spaces after a period.  However, almost no sites use `pre-line` which would allow for the double spaces, but would still collapse lines, and would still line-break properly.<p>Do developers not know about white-space: pre-line? <comment><USER2> Counter argument [http://www.slate.com/articles/technology/technology/2011/01/...](http://www.slate.com/articles/technology/technology/2011/01/space_invaders.html)

"Every modern typographer agrees on the one-space rule. It's one of the canonical rules of the profession, in the same way that waiters know that the salad fork goes to the left of the dinner fork and fashion designers know to put men's shirt buttons on the right and women's on the left. Every major style guide—including the Modern Language Association Style Manual and the Chicago Manual of Style—prescribes a single space after a period."</comment>


Code taste: How do you develop the ability to write clean and succinct code? - <AUTHOR> I will like hear your ideas on how to write succinct code. Today I was trying to solve the following problem on
http://codingbat.com. I solve it and my solution worked but I know it was not clean. Here is the problem;
Given a string, if the first or last chars are 'x', return the string without those 'x' chars, and otherwise return the string unchanged.
withoutX("xHix") → "Hi" withoutX("xHi") → "Hi" withoutX("Hxix") → "Hxi"
Here is my solution(quick code):
public String withoutX(String str) {
  //handles single x characters
  if(str.length() == 1 && str.charAt(0) == 'x'){
    str = "";
  //handles empty strings
  }else if(str.length() == 0){
    str = "";
    //handles all other cases
  }else{
    if(str.charAt(0) == 'x'){
      str = str.substring(1);
    }

    if(str.charAt(str.length() - 1) == 'x'){
      str = str.substring(0, str.length() - 1);
    }
  }

  return str;
 }
Here is the solution from coding bat: public String withoutX(String str) {
  if (str.length() > 0 && str.charAt(0) == 'x') {
    str = str.substring(1);
  }

  if (str.length() > 0 && str.charAt(str.length()-1) == 'x') {
    str = str.substring(0, str.length()-1);
  }

  return str;

  // Solution  notes: check for the 'x' in both spots. If found, use substring()
  // to grab the part without the 'x'. Check that the length is greater than 0
  // each time -- the need for the second length check is tricky to see.
  // One could .substring() instead of .charAt() to look into the string. }
 <comment><USER2> You might want to edit your post prepending _all_ lines of code with an indent (I use four spaces, but even two I think work), ie.

        public String withoutX(String str) { //handles single x characters
            if(str.length() == 1 && str.charAt(0) == 'x'){
                str = "";
            //handles empty strings
            }else if(str.length() == 0){
                str = "";
            //handles all other cases
            }else{
                if(str.charAt(0) == 'x'){
                    str = str.substring(1);
                }

                if(str.charAt(str.length() - 1) == 'x'){
                    str = str.substring(0, str.length() - 1);
                }
          }
          return str;
        }

        public String withoutX(String str) {
          if (str.length() > 0 && str.charAt(0) == 'x') {
              str = str.substring(1);
          }

          if (str.length() > 0 && str.charAt(str.length()-1) == 'x') {
            str = str.substring(0, str.length()-1);
          }

          return str;

          // Solution  notes: check for the 'x' in both spots. If found, use substring()
          // to grab the part without the 'x'. Check that the length is greater than 0
          // each time -- the need for the second length check is tricky to see.
          // One could .substring() instead of .charAt() to look into the string.
        }

</comment><comment><USER3> When I have this sort of question, I like to use [https://codereview.stackexchange.com/](https://codereview.stackexchange.com/) . It's like StackOverflow but for code review...with the good and bad that being like StackOverflow implies. Basically, if the code works, it's likely to appropriate.

Good luck.

<comment><AUTHOR> Thanks.

</comment></comment><comment><USER4> By thinking about the problem and not writing a single line of code until you have the algorithm ready. When you start to write code, you end up thinking about the solution of the problem in some sort of piece wise solution (AKA first do this then that and so on) which inhibits you from thinking about the problem holistically and hence you end up with lots of complex conditionals and control flow structures.

<comment><AUTHOR> Thanks for the feedback.</comment></comment>


Rap Stats: Breaking Down The Words in Rap Lyrics Over Time - <AUTHOR> http://news.rapgenius.com/Sameoldshawn-rap-stats-breaking-down-the-words-in-rap-lyrics-over-time-lyrics <comment><USER2> I have always been a big fan of rap vocabulary, and I've already lost an hour poring over different results. What would be amazing would be a cross- reference to the Google Trends results for the same words. You could try to see the difference between cultural events (global) and specific events in the rap community (local) that caused certain words to spike or ebb.

</comment><comment><USER3> Regarding the NBA chart: "Jordan, Kobe and Lebron":

> Rap and professional sports have always gone hand in hand, and we can see > the evolution of rappers' favorite basketball players:

"Jordan" keyword for example would more often be used in reference for Nike shoes, so not a direct representation of the sports players popularity.

/pedantic rant

<comment><USER4> > not a direct representation of the sports players popularity

And how exactly did these shoes got their name?

<comment><USER5> How did the Teddy bear get its name? The popularity of plush bears doesn't much reflect the popularity of Theodore Roosevelt.

<comment><USER6> Not really the same thing. Those bears weren't named after Roosevelt and thus don't reflect his popularity whereas Jordans were clearly named after MJ himself.

<comment><USER7> > Those bears weren't named after Roosevelt

[http://en.wikipedia.org/wiki/Teddy_bear#History](http://en.wikipedia.org/wiki/Teddy_bear#History)

</comment></comment></comment></comment></comment><comment><USER8> I never liked rap and I can finally explain my reason:

[http://rapgenius.com/rapstats?q=woman%2C%20women%2C%20girl%2...](http://rapgenius.com/rapstats?q=woman%2C%20women%2C%20girl%2C%20ho%2C%20hoes%2C%20bitch)

And I've heard a lot of rap. My highschool bus driver always played rap on the bus's radio every time we had him as a driver. Honestly, I went to school angry every morning. Similar to how you feel when you try to listen to Glen Beck or Rush Limbaugh.

<comment><USER9> Hahaha, what an awful reason. Keep white knighting and see how your life turns out.

<comment><USER10> "White knighting"? Fuck off, troll.

<comment><USER9> Not trolling, you're assuming that all those words are used in a derogatory manner and discarding the actual content of the music so you can "defend" women. You're a pathetic white knight.

<comment><USER10> Bahaha. I don't care about rap one way or the other, and neither do you. "White knighting" is just as made up as "fake geek girls" and the Tooth Fairy, and we both know it. Therefore: fuck off, troll.

<comment><USER9> I do care about hip hop. White knighting is as made up a word, as any words are. You have the mentality that if you bend over to defend women, it will somehow make you more righteous of an individual. Women don't need defending. And those terms can refer to men as well.

Let's just put this in perspective Robert. You're a KFC nerd who plays video games, knows a little programming from modding them, you don't shave your neck, hang out with your cat, and defend women's social justice with respect to rap, through some poor analysis of word frequency on supposedly derogatory "demeaning" words on women. Somehow, hoping this ill-formed sickness of a view, helps women recognize your sentimental romance toward their engendered cause. Ain't gonna happen Jack. Be a man and stop playing internet politics. And lay off the Hollandaise sauce.

<comment><USER10> Interesting! But far from accurate, I'm afraid. For example, my neck is as smooth as a baby's ass.

But let's do put things in perspective. Don't you have better things to do than try to dox people who disagree with you on Hacker News? I'd like to think we have a higher quality of discourse than that.

<comment><USER9> You're right, let's stop rapping and pull out the trombones.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> well, i guess that settles it: [http://rapgenius.com/rapstats?q=emacs%2Cvim](http://rapgenius.com/rapstats?q=emacs%2Cvim)

<comment><USER12> Sadly, vim matches a lot of Portuguese lyrics: [http://rapgenius.com/search?q=vim](http://rapgenius.com/search?q=vim)

</comment></comment><comment><USER13> I'd like to see a more thorough analysis of "big words" in rap songs. I started manually compiling examples in a blog a while back, [http://rapwords.tumblr.com/](http://rapwords.tumblr.com/)

<comment><USER14> Check out the lyrics of Death Grips.

</comment></comment><comment><USER15> Anyone found another word that peaks past 0.53%?

[http://rapgenius.com/rapstats?q=nigga%2C%20yo%2C%20bitch](http://rapgenius.com/rapstats?q=nigga%2C%20yo%2C%20bitch)

<comment><USER16> "get" is over .65, and "up" peaks above .7:

[http://rapgenius.com/rapstats?q=nigga%2C%20yo%2C%20bitch%2C%...](http://rapgenius.com/rapstats?q=nigga%2C%20yo%2C%20bitch%2C%20get)

[http://rapgenius.com/rapstats?q=nigga%2C%20yo%2C%20bitch%2C%...](http://rapgenius.com/rapstats?q=nigga%2C%20yo%2C%20bitch%2C%20up)

</comment></comment><comment><USER17> Wow, rappers were surprisingly prescient in predicting the fall of newspapers and the rise of the Internet:

[http://rapgenius.com/rapstats?q=Newspaper%2C%20internet](http://rapgenius.com/rapstats?q=Newspaper%2C%20internet)

<comment><USER18> Traditional media still rules though:

[http://rapgenius.com/rapstats?q=radio,tv,internet](http://rapgenius.com/rapstats?q=radio,tv,internet)

</comment></comment><comment><USER19> Gangsta rap is like PHP: I enjoy it because I grew up with it, but it's getting hard to defend intellectually.

<comment><USER20> Rap is extremely diverse, but why do you even need to defend it? Can't a song just be fun to listen to?

<comment><USER19> Haha. I agree that rap diverse, and I was just having some fun comparing the genre to programming.

Setting aside jokes, I've listened to many different types of rap, but I don't like rap that's intellectual. I prefer the mainstream songs about drugs and partying (e.g. Rick Ross and Lil' Wayne) to the songs that try to start a dialogue about social issues (e.g. Common).

I'm open to hearing about intellectual issues when I read articles or listen to talk radio, but I really don't like music that tries to make a point because I associate music with entertainment. Interesting how the medium can affect the message on a person to person basis.

<comment><USER9> Doesn't have to be an issue about social issues to not be plain retarded in terms of linguistics. Point in case: Big L. Gangsta rap that had flow and cleverness. Lil Wayne and Rick Ross don't really cut that, but I do love that song 8 Ball by Rick Ross, he's just plain fun to listen to.

<comment><USER19> Big L does have an amazing flow. I put Big Pun in the same category: [http://www.youtube.com/watch?v=AiwvPmRTv6M](http://www.youtube.com/watch?v=AiwvPmRTv6M)

Sometimes when I'm stuck in traffic I'll say to myself, "Dead in the middle of little Italy little did we know that we riddled some middle man who didn't do diddly."

Girlfriend: "What was that?"

Me: "Oh...uhhh..nothing."

</comment></comment></comment></comment></comment><comment><USER21> If anyones interested - we made [http://www.tuner.io](http://www.tuner.io) at a hackday in SF last year.

It reorders the Billboard top 100 based on lyrics, so top 5 songs with the most profanity etc.

After the hackday the API access to the services expired, but check it out anyway!

<comment><USER22> API access expired? What kind of hackday is that?

</comment></comment><comment><USER23> Love this. I had a similar idea a few months ago except I wanted to map the number of times certain popular phrases were mentioned in different rap songs. For example, how many rap songs have the lyric

"if it don't make dollars it don't make sense (or cents)"

</comment><comment><USER24> This is great! We actually built something very similar to this for the 2011 Node Knockout, we called it Rapminder (as a nod to Gapminder, and serendipity had it that I met Hans Rosling just outside our office the day before the hackathon).

We mined the lyrics from OHHLA [1], matched the metadata from Discogs [2], built a word structure in Redis and drew the graphs with D3. We built it with an eye to Rap Genius, but sadly we haven't kept it online after the Knockout. I'll look into setting it up again.

[1] [http://ohhla.com/](http://ohhla.com/) [2] [http://discogs.com/](http://discogs.com/)

</comment><comment><USER25> > Lil Wayne wasn't being hyperbolic -- money really is over bitches:

But Biggie apparently was wrong [http://rapgenius.com/rapstats?q=money%2Cproblems](http://rapgenius.com/rapstats?q=money%2Cproblems)

</comment><comment><USER26> Money and bitches dwarfs pretty much every other thing I've tried, and both are trending upwards. It's nice to see that rap is becoming a deeper, more intelligent genre.

<comment><USER27> Don't pretend that other genres of popular music would reveal anything more "intelligent".

<comment><USER28> Rock and metal aren't that shallow.

<comment><USER27> I think for this argument to be sound we have to define what artists would be included. Is it a survey of popular music? All music? There is a lot of intelligent hip hop out there. There is a lot of shallow rock out there.

Generalizing about any genre is pointless.

Edit: And I put intelligent in quotes because who is to say that using the word money or (less so) bitch even means there is not an intelligent point being made.

<comment><USER26> I admit I was trolling, but the amount of rap out there that plays into the macho-gangster-materialist-misogynist stereotype is _obscene_. Decent rap does exist, but gangstacrap still dominates the genre. Other genres of music have their own dominant stereotypes that are equally vapid, but seldom as scummy.

<comment><USER29> You're conflating stupidity with poor taste, but they're clearly independent. Consider the Wu-Tang Clan's lyrics which are more intelligent and have a level of wordplay that is non-existent in rock music, but at the same time can be the most offensive thing you've ever heard.

</comment></comment></comment></comment></comment></comment><comment><USER16> I guess it never really took off...

[http://rapgenius.com/rapstats?q=smash%2C%20bang%2C%20smang](http://rapgenius.com/rapstats?q=smash%2C%20bang%2C%20smang)

<comment><USER30> I came here hoping someone searched for smang. Thank you.

</comment></comment><comment><USER31> Democract vs. Republican

Who. Will. Win.

[http://rapgenius.com/rapstats?q=democrat%2C%20republican](http://rapgenius.com/rapstats?q=democrat%2C%20republican)

</comment><comment><USER32> I wish the lyrics distinguish between the word la and the abbreviation L.A.

Then I can accurately compare New York vs. L.A. mentions, 'cause no rapper says Los Angeles.

</comment><comment><USER33> This is great work. Would be cool to see some songs that contribute to each data point.

Eg. I would love to know how much [http://rapgenius.com/Migos-versace- lyrics](http://rapgenius.com/Migos-versace-lyrics) and variations contributed to this [http://rapgenius.com/rapstats?q=versace](http://rapgenius.com/rapstats?q=versace)

</comment><comment><USER34> Reminds me of Fernanda Viegas and Martin Wattenberg's talk at Eyeo Festival. They visualized use of body part words across different genres.

[http://hint.fm/projects/listen/](http://hint.fm/projects/listen/)

And here's their talk: [http://vimeo.com/69497902](http://vimeo.com/69497902)

</comment><comment><USER35> Very cool. I think an interesting feature would be to plot songs along the graph as nodes you could hover over. You could see the artists' and songs' information, maybe the word frequency in those songs. I suppose you could look for radical changes in slope to figure out where to place each node, too.

</comment><comment><USER36> Is there a way to see what song the word is used in? I'm interested in knowing what hip hop artist was rapping about eBay[0] all the way back in '94.

[0] [http://rapgenius.com/rapstats?q=ebay](http://rapgenius.com/rapstats?q=ebay)

<comment><USER37> I'm also dying to know who was rapping about web development from ~2003-2009:

[http://rapgenius.com/rapstats?q=html%2C%20javascript](http://rapgenius.com/rapstats?q=html%2C%20javascript)

<comment><USER38> Just throw the terms in the RapGenius search bar:

[http://rapgenius.com/search?hide_unexplained_songs=false&q=h...](http://rapgenius.com/search?hide_unexplained_songs=false&q=html%2C+javascript)

Javascript is mentioned in "White & Nerdy" by Weird Al Yankovic. Also, looks like there are non-songs that are being counted into the rap stats.

</comment></comment></comment><comment><USER39> Money over bitches..but "The Bitch" over Money!!! O_O [http://rapgenius.com/rapstats?q=bitch%2C%20bitches%2C%20mone...](http://rapgenius.com/rapstats?q=bitch%2C%20bitches%2C%20money)

</comment><comment><USER40> What rappers think about video game consoles:

[http://rapgenius.com/rapstats?q=Nintendo%2C%20Xbox%2C%20Play...](http://rapgenius.com/rapstats?q=Nintendo%2C%20Xbox%2C%20PlayStation%2C%20Wii%2C%20Sega)

<comment><USER41> That can't be right, xbox didn't come out until 2001. Might be matching something else?

<comment><USER42> I have to suspect that "Sega" is matching something else too. It is such a thing of the past that I wouldn't have even thought to include it.

Searching a little on their site doesn't turn up any obvious alternative usage though... maybe Sega is just easier to rhythm with.

<comment><USER40> Recent songs that mention Sega:

[http://rapgenius.com/The-cool-kids-a-little-bit-cooler- lyric...](http://rapgenius.com/The-cool-kids-a-little-bit-cooler-lyrics) [http://rapgenius.com/Snow-tha-product-cookie-cutter- bitches-...](http://rapgenius.com/Snow-tha-product-cookie-cutter-bitches- lyrics) [http://rapgenius.com/Logic-30000-lyrics](http://rapgenius.com/Logic-30000-lyrics)

</comment></comment></comment></comment><comment><USER43> I think they mean watch as MySpace holds on for dear life, not Twitter.

</comment><comment><USER44> How did facebook get a bump before 2005?

Also, you might want to add blackplanet, migente, and asianavenue to the Social networks graph. I know a few southern rappers were namechecking them before 2005.

<comment><USER45> Facebooks existed before facebook: [http://en.wikipedia.org/wiki/Face_book](http://en.wikipedia.org/wiki/Face_book)

<comment><USER44> First time I've heard of this. Then again I went to a land grant university of 25000 undergrads. I'm assuming these are more common at smaller colleges.

<comment><USER46> Facebook started at Harvard, a 20k student school. It might be more of a tradition at the old East Coast institutions - growing up on the West Coast, I've never heard any reference to anything of the like.

</comment></comment></comment></comment><comment><USER21> Spotify & Napster [http://rapgenius.com/rapstats?q=napster%2C%20spotify](http://rapgenius.com/rapstats?q=napster%2C%20spotify)

</comment><comment><USER47> Nice! What data source are you guys using for song years?

<comment><AUTHOR> It's crowdsourced by our users, and vetted/edited by our moderators (also part of the community).

</comment></comment><comment><USER48> Will it ever end? [http://rapgenius.com/rapstats?q=Turn%20Up](http://rapgenius.com/rapstats?q=Turn%20Up)

</comment><comment><USER49> Wow, this is really fast. Anyone have insight on how they can provide stats like this so fast? Is it precalculated?

</comment><comment><USER50> Are you guys using Splunk for the data crunching and graph builds?

</comment><comment><USER51> Nice to see them getting back to their roots. :)

</comment><comment><USER52> Where is the chart for "ugh"s (sp?)?

<comment><USER53> If you're talking about the footwear: [http://rapgenius.com/rapstats?q=ugg,uggs](http://rapgenius.com/rapstats?q=ugg,uggs)

</comment></comment><comment><USER54> The money vs. bitches graph made me LOL.</comment>


Kansas bill would bar cities from selling Internet services   - <AUTHOR> http://www.kansascity.com/2014/01/31/4790321/kansas-bill-would-bar-cities-from.html

<comment><AUTHOR> If we had true access IP competition, then we wouldn't need FCC NN actions...the market would determine what the access ISPs could do and not do...</comment>


Interoperating Between Objective-C and Rust - <AUTHOR> http://sasheldon.com/blog/2014/11/28/interoperating-between-objective-c-and-rust/

<comment><USER2> Very impressive! This post demonstrates a great deal of understanding of the semantics of both languages, and the resultant interface looks both usable and thorough. I especially enjoyed the use of a Rust macro to emulate the syntax of Objective-C message passing, as well as the demonstration of the utility of "phantom" type parameters.

</comment><comment><USER3> Just to bring up something I've been thinking about, Rust would have a lower impedance mismatch with Swift interfaces - memory safe APIs, with a more C-like method syntax, more strongly typed in general (optionals, generics...), more functional (although AFAIK there aren't currently many Swift-specific APIs, as opposed to Objective-C ports), and so on. Its binary module system also matches Rust somewhat better than Objective-C's basically #include based system. Unfortunately, Swift's runtime, aside from being more complicated than Objective-C's, is completely undocumented (and closed-source), so it would take a good bit of reverse engineering to create a bridge.

<comment><USER4> You can do this sort of thing with Objective C precisely because the layer between ObjC and C is so clean and concise. It's a strict superset of the C language; the C at its core is pure and entirely unmolested.

What makes interoperability possible is Rust's existing C interop.

Rust doesn't have any Swift interop.

</comment></comment><comment> one-more-minute Very cool – and oddly relevant to me since as well as taking an interest in Rust recently, I'm also writing an Objective-C bridge for Julia (which I'll write about soon).

Like the languages themselves the bridges are polar opposites, of course – static and safe vs. flexible and interactive, etc. It's great to see it (and learn from it) being done on the other side of those tradeoffs.

</comment><comment><USER5> Strictly speaking, [string UTF8String] is equivalent to '((const char <star>(<star>)(id, SEL))objc_msgSend)(string, selector)'. Since objc_msgSend is vararg function, it will promote it's arguments, so for example method taking float will be called with double. Casting to a proper function type works around that.

<comment><USER6> Oh good point, I hadn't considered vararg promotion!

Do you know if casting to a function also make objc_msgSend_stret and objc_msgSend_fpret unnecessary? I haven't yet worked with any methods that return structs or floating point values, so I haven't had to deal with them yet.

Edit: Oh, nope, my bad, objc_msgSend_stret is the one where you definitely have to cast: [http://blog.lazerwalker.com/blog/2013/10/12/the- objective-c-...](http://blog.lazerwalker.com/blog/2013/10/12/the-objective-c- runtime-and-objc-msgsend-stret)

<comment><USER7> As you discovered, _stret/_fpret remain necessary.

objc_msgSend()'s type is not expressible in C; the only time it is correct to call objc_msgSend without a cast is when calling a method IMP with the literal vararg type of id (*method) (id self, SEL sel, ...);

In other words, essentially never.

</comment></comment></comment><comment><USER8> Foundation is actually open source [http://www.opensource.apple.com/source/CF/CF-855.11/CFString...](http://www.opensource.apple.com/source/CF/CF-855.11/CFString.c)

<comment><USER9> That's CoreFoundation, not Foundation. CoreFoundation is plain C and relatively small in feature set. Foundation is Objective-C and much larger.

It's a lot easier to work with the Foundation Objective-C API. They both manipulate the same data structures (or nearly the same with zero-cost bridging) but Foundation is far less verbose and a little more dynamic (no need for manual buffer allocations and configuring callback structures).

<comment><USER5> There is Foundation implementation based on CoreFoundation: [https://github.com/apportable/Foundation](https://github.com/apportable/Foundation)

</comment></comment></comment><comment><USER10> Great writeup. More interested though on how one can use Rust to write iOS, OS X and Android framework/library. This will make Rust replacing C++ for cross platform codes.

<comment><USER11> Only if Rust provides something comparable with Qt, SDL, Cocos-2D, openFrameworks....

Otherwise having platform FFI pain, C and C++ interop pain is just too much.

</comment></comment><comment><USER12> That's interesting. I always had problems using objc_msgSend via FFIs because if I remember correctly it was implemented via setjmp and longjmp.

</comment><comment><USER13> Huh, Obj-C got its stairway to heaven :)

</comment><comment><USER14> Really impressive stuff.</comment>


A curated collection of OCaml tools, frameworks, libraries and articles - <AUTHOR> https://github.com/rizo/awesome-ocaml <comment><USER2> There's also a desicated list for ReasonML now: [https://github.com/vramana/awesome- reasonml](https://github.com/vramana/awesome-reasonml)</comment>


Apple readying "media pad" and "iPhone lite" for launch soon - <AUTHOR> http://arstechnica.com/apple/news/2009/04/apple-readying-media-pad-and-iphone-lite-for-launch-soon.ars <comment><USER2> It will be frustrating if the "Touch on Steroids" (or Newton-II?) will be so tangled up with a phone company to make it difficult to purchase...</comment>


United Passenger "Removal": A Reporting and Management Failure - <AUTHOR> http://www.nakedcapitalism.com/2017/04/united-passenger-removal-reporting-management-fail.html <comment><USER2> The subtext here is that customers don't have any actual rights when dealing with a large corporation. The terms of service have become so lengthy and obscure that it's virtually certain for a corporate lawyer to find some justification somewhere for almost anything. The corporate employees and the police both operate on this assumption. As a customer, your only recourse is to meekly accept whatever treatment is coming your way.

<comment><USER3> _The subtext here is that customers don 't have any actual rights when dealing with a large corporation._

The problem is that people now believe that. In fact, lawsuits against big companies often are settled on very favorable terms for the customer. As the article points out, United violated their own contract of carriage and FAA regulations. This is going to cost them.

<comment><USER4> Only because the passenger peacefully resisted, and did not comply with the airline's request he depart the plane on his own volition. He didn't give into threats, and risked and received an assault, in order to arrive at the point where this is going to cost the airline.

<comment><USER5> He should totally bring a multi-million dollar lawsuit, it's a total cake walk as it'd be hard to find a jury that wouldn't sympathize and he and his grandkids would be millions of dollars richer. Not to mention all the dirt you can drag United through during the lawsuit in the media. Love to see some testimony from the dick CEO as well who tried even character assignation of the poor doctor they needlessly assaulted.

<comment><USER6> > _He should totally bring a multi-million dollar lawsuit, it 's a total cake > walk as it'd be hard to find a jury that wouldn't sympathize and he and his > grandkids would be millions of dollars richer. Not to mention all the dirt > you can drag United through during the lawsuit in the media. Love to see > some testimony from the dick CEO as well who tried even character > assignation of the poor doctor they needlessly assaulted._

It'd be a cake walk alright ... for the airline.

Pilots have similar powers to the captain of a civilian naval vessel, and can legally refuse to carry passengers or order them off the aircraft: [https://www.quora.com/What-are-the-extra-ordinary-powers- tha...](https://www.quora.com/What-are-the-extra-ordinary-powers-that-an- airline-pilot-has-while-in-flight-and-how-are-they-different-from-those-of-a- captain-of-a-ship)

Moreover, refusing to leave the premises when requested or to comply with the police when they arrived, is unquestionably against the law.

Even a jury has to operates within the constraints of the law or be overturned on appeal. Remember, the airline would be the defendant and has the right to appeal.

Sure, being bumped is lousy behavior by the airline but the doctor doesn't have a legal leg to stand on for his tantrum. If anything, the airline could probably sue him for delaying the flight and win.

<comment><USER7> > requested or to comply with the police when they arrived, is unquestionably > against the law.

Except that's not who dragged him off. Representatives of a customer safety federal aviation department physically dragged him. I don't think everyone fully understands the sequence or "players" involved (I had to look it up too). - [http://www.chicagotribune.com/news/opinion/zorn/ct-united- pa...](http://www.chicagotribune.com/news/opinion/zorn/ct-united-passenger- chicago-police-statement-perspec-0412-20170411-column.html)

Otherwise, you're absolutely correct about voluntary vs compulsory.

A police officer would still be liable for not properly restraining and ensuring the safety of the "victim".

<comment><USER6> The article you linked says the individual was from the City of Chicago's Department of Aviation. While you do bring up an important clarifying point, I'd be surprised if the individual in question didn't have most or all of the same authority/powers as a police officer within his jurisdiction.

Some additional information from the Wikipedia article on airport police that seems to be relevant: " _The City of Chicago Department of Aviation Police perform safety, security and law enforcement functions at O 'Hare International Airport & Midway Airport. The department was formerly called the Department of Aviation Special Police. The Chicago Police Department Airport Unit also performs many of the law enforcement duties in and around Chicago area airports._" ([https://en.wikipedia.org/wiki/Airport_police](https://en.wikipedia.org/wiki/Airport_police)) However, that information may or may not be current.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Even if it wasn't a passenger overbooking, it was overbooking in that they failed to properly account for the likelihood of having to ship crews around their network.

If their occupancy ratio was lower, then there wouldn't have been a problem, they could have fit the crew in. If they reserved 4 seats for crew on every flight, again there wouldn't have been a problem.

If they had even reserved 2 seats and run sufficient flights such that the crew got to the target airport in time there wouldn't have been a problem.

If they had brought crew in from two different starting points - it would have been fine.

It's still overbooking, just not oversold tickets.

The airline played the game, ran too lean and paid the price.

Much like an ISP having all their IP traffic going down one pipe, and not having enough room to send out the customer invoices because everyone is watching Netflix.

<comment><USER9> Even if that is the case, there are much better methods of dealing with a situation like this than calling a police officer. It seems, like usual for American police, officers are insensitive to anything but violence; no logic, just apply force. The man is lucky they didn't taze him. The crew should have known that. It's good that this policy is about to change, but it is too little too late.

<comment><USER10> _It seems, like usual for American police, officers are insensitive to anything but violence; no logic, just apply force_

My understanding is that there was a lengthy conversation that took place before the outrage-inducing video starts. They _did_ attempt to resolve the situation peacefully. At some point there is an impasse. Police are making a request and he's ignoring it. There are two ways that can go: 1) Police shrug their shoulders, leave, and let the man have his way; 2) He's going to be forcefully removed.

That is, as far as I can tell, the actual reality of the situation. And anybody advocating for outcome #1 probably has some thinking to do about what it actually means to have a police force at all.

<comment><USER11> The article suggests that the airline was the one breaking the law and not the passenger. So in this case the police helped the airline commit a crime. Is this nowadays what means to have a police force?

<comment><USER10> The central thesis of my argument is that the ins and outs of each side's claims can be litigated later on. At that moment, the cops probably don't (and likely in principle _can 't_) know exactly who is right and who is wrong and in fact _this isn 't at all the role we expect the police to fill_.

<comment><USER12> I believe this is correct. If there is a civil argument, it can be heard in an appropriate venue. But once the owner/operator of an FAA regulated aircraft has asked you to leave you no longer have any recourse and the word of the airplane crew carries quite a bit of weight.

I'm seeing the suggestion that United broke the law which doesn't quite seem to be what this article is saying. The article is saying they breached their own contract of carriage. This would allow for damages afterwards in civil procedures but i can't imagine how it gives the man the right to ignore the order of crew and airport police to get off the plane.

<comment><USER10> I wouldn't even get too hung up on the "FAA regulated aircraft" portion of this, just in a general sense. You and I may have a contract that says you can use my property for a day, but then I might prevent you from doing so. This could be _wildly_ inconvenient for you for various reasons. If I told you to leave, I wouldn't expect the _cops_ to figure out who was right. I would expect the cops to err on the side of the property owner and make the obvious and expedient decision to evict you from my property.

The contract wouldn't even enter into it. If there's a grievance, then it should be handled later. The police aren't there to litigate that issue. They're there to resolve the immediate conflict.

Crucially, it doesn't matter that the contract is 100% in your favor. That's not what the police are there to discern.

Everybody is trying to play amateur aviation attorney, but this is really about understanding the role of police in resolving disputes like this one.

<comment><USER13> > Everybody is trying to play amateur ... attorney

Including you.

You're right that it's not the responsibility of police to determine all details of who's right and who's wrong, especially considering contracts that can take days for a trained contract lawyer to understand. They do have a responsibility to ensure that the person requesting removal is the owner of the property, and the person being removed is not a co-owner, but that's about as far as it goes.

However, that's not the only issue being discussed here. Just as we should get too hung up on the "FAA regulated aircraft" portion, we shouldn't get hung up on the "police role" portion either. The more important question is United/Republic's role. Were they in a position to require this passenger's removal, or was that breach of contract? What about the issues of crew logistics and voluntary-deboarding incentives? If you want to broaden the focus, let's broaden it all the way.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> No, the real failure (and the source of this and many other issues in the airline industry) is the lack of competition in the US domestic market.

Pure and simple.

The huge, 350-million US domestic market is served by 4-5 major airlines, while the EU with 500 million people is served by tens of airlines. I recently flew from Barcelona to Nice for 30 euros, round-trip (with seat assignment).

Where are the (potentially Mexican or Canadian-based) low cost airlines? That's right, none to be seen.

Let's hope this bust-up brings some legislative measures to introduce more competitive practices in the airline industry.

Otherwise we will soon be paying for the right to pee in-flight really soon.

<comment><USER15> > "Where are the (potentially Mexican or Canadian-based) low cost airlines? > That's right, none to be seen."

I'm in the upper midwest and we have two or three low cost airlines. Sun Country is the biggest (and based in MN). Spirit Airlines also has a decent presence. Sun Country flies to lots of places. First class ticket to Anchorage cost me ~$700 last time I flew with them, less than an economy seat on Delta.

<comment> mark-r I'm taking a flight this weekend with Sun Country, MN to DC round trip for $180. Booked two weeks ago.

</comment></comment></comment><comment><USER16> This is a new kind of UI/UX dark pattern. The United app lets customers pay for seats, and any reasonable person thinks that's the whole of it. But the fine print says that's not true, and says you can be forcibly removed if the flight is oversold.

[https://darkpatterns.org/](https://darkpatterns.org/)

"When you use the web, you don't read every word on every page - you skim read and make assumptions. If a company wants to trick you into doing something, they can take advantage of this by making a page look like it is saying one thing when it is in fact saying another."

<comment><USER17> No. The fine print does _not_ say that. The fine print says they can deny you boarding, not remove you once already boarded. Your point about the dark pattern is all too true, but United still behaved entirely illegally here.

<comment><USER18> It's still denied boarding, and would be so until the doors were closed, so he wasn't technically boarded at the time he was removed. (And they can remove you for all sorts of reasons even after you've boarded.)

United behaved despicably, but not illegally.

<comment><USER19> So someone with their luggage checked, their carry on stowed, and already in their seat is not boarded? Do you have a source that says this?

</comment></comment></comment></comment><comment><USER20> Why didn't they just keep doubling the offer for volunteers? Surely by $1600 or $3200 someone would bite. Then everyone is happy, it all gets finished quickly, and there's no chance of this sort of PR disaster (even docile removees can end up in the news if they then, say, miss the death of a hospitalized family member due to the delay).

<comment><USER9> Because handbook says a certain amount is the maximum they can offer, and likely the crew offering more would risk their job. Following this fiasco, Munoz said they will expand the handbook. We'll see.

<comment><USER15> Also, I think there's actually a government regulation which caps it at $1300 or so.

<comment><USER21> The cap is the maximum of what passengers are legally entitled to. The airlines can offer more if they want.

<comment><USER22> I've been wondering: does this mean that a valid response to this situation would be "I will leave the plane if given my legally entitled $1350"?

As in, among other reasons, is United in the wrong here because the maximum they offered for volunteers was $800, not the regulated $1350?

<comment><USER21> The way I understand it is that they can offer any amount they want to get volunteers. But if they want to involuntarily bump someone, they have to pay at least four times the one-way fare that passenger paid, up to $1,350.

So bumping the person that paid the least for their ticket would mean they have to pay them the least.

</comment></comment></comment></comment></comment></comment><comment><USER23> > This seems to reflect the deep internalization in America of deference to > authority in the post 9/11 world, as well as reporters who appear to be > insufficiently inquisitive. And there also seems to be a widespread > perception that because it's United's plane, it can do what it sees fit. In > fact, airlines are regulated and United is also bound to honor its own > agreements.

I'm extremely pro-journalism (donate to various organizations, listen to podcasts hosted by journalists) but I'm completely baffled by how very few if any journalists dived into the details on what happened here in the very video, specifically the legalities and technicalities, compared to Redditors (who happen to be laywers) and bloggers. Going forward, readers who happen to be consumers and passengers could easily be adopting misinformation spread by trusted media sources and have the wrong frame of reference to view what happened.

</comment><comment><USER4> I definitely agree with the criticism that the media has focused on the video, as "shockertainment" rather than educating their viewers. The awareness of the law and skepticism in media is lacking, they pretty much disseminated incorrect relevant details. Many would decry a 46 page contract of carriage, but then also not aid the viewer in navigating that complex document.

At the very least, a journalist should ask the airline and the police: -has a crime been committed? -has a civil contract been committed? -what breach of law or contract has been committed and can you cite this exactly? -do you often threaten passengers with removal? -how often are you asked to do non- criminal passenger extractions on behalf of the airline? which airlines?

Either the passenger committed a crime to cause forced removal, and it seems clear he didn't commit a crime (nor was in breach of the contract of carriage); or the police committed the crime of assault, an unlawful use of force. There's a crime here either way, and that outcome I think is interesting.

But no less interesting is that United appears to have a track record of using threats of violence to get passengers to do things that are not at all required by law, regulations, or their own contract of carriage. [http://www.latimes.com/business/lazarus/la-fi-lazarus- united...](http://www.latimes.com/business/lazarus/la-fi-lazarus-united-low- priority-passenger-20170412-story.html)

That passenger decided to acquiesce to the threats, and ended up having no real meaningful recourse, i.e. even for this reasonably affluent person, it wasn't worth it to sue.

Basically the contract is next to meaningless. This is might makes right. And if you won't stand your ground, aren't willing to get wrongfully arrested, and then sue at your own expense, the airline's threats will work and they'll get what they want.

</comment><comment><USER24> I've been saying for years that the only thing holding back massive disruption in the airline industry is the FAA.

American and United are two of the most poorly run mega-corps in the US. Customers hate them, but need to fly. Warren Buffet thinks they're notoriously bad investments. Why?

<comment><USER25> There are a lot of regulations for airlines like American, but considering, for example, that there's nothing you can do at 35,000 feet in a giant metal machine if there's a mechanical failure, I'm much happier that there are a lot of regulations than not enough, in this case. There are a lot of things that suck about air travel in the states, but the FAA isn't one of them.

As far as the companies being bad investments, it's most likely due to their extremely low margins and ROI.

<comment><USER24> Safety and Regulation are two partially overlapping sets.

The FAA regulates an immense amount of things that are trivial and those regulations are very hard to update. The FAA issues the vast majority of regulations[0].

[0]: [https://www.federalregister.gov/documents/search?conditions%...](https://www.federalregister.gov/documents/search?conditions%5Bagencies%5D%5B%5D=federal- aviation-administration)

</comment></comment></comment><comment><USER26> If the information in this article is true, which seems to be the case after reading most of the linked sources, then a lot of the news articles that were cited are reporting false information. Now that immediately made me curious to see if Google Fact Check would flag these news articles as false or possibly false. Doing a quick search shows no Fact Check under any of the search results, so seems like the answer is no.

If Fact Check really becomes a thing, I hope that Google will be able to use current events like this as a bar for how fast Fact Check needs to respond to an event to make it useful. If they could find and source well researched information and immediately flag misreported news articles while a topic is at the forefront of the news, then it would immensely help educate people. For example:

My parents have not stopped talking about this since it happened and are still looking at and reading news about it. There was some misreported information that I had to clear up for them. If Fact Check worked, then it definitely would have prevented misinformation spreading to them and probably many others.

</comment><comment><USER27> There really isn't clarity here. The article argues that the flight wasn't overbooked, therefore UA couldn't kick anyone off. I agree if it wasn't overbooked, but it's not clear that that's evidently true. It's certainly gonna be contentious and probably up to a judge or jury to decide if it actually gets that far. I doubt it.

The more pressing matter is what do you do as a passenger when YOU are involuntarily denied boarding due to overbooking? Are you gonna sit in place, say, "I don't believe you." and wait for the stasi to take you away for a beating?

</comment><comment><USER28> I believe this is exactly the kind of thing that will be resolved by the tools the market provides.

If they wanted volunteers to fly the next flight instead of this, they should have offered more than $400. Kind of like an auction: $500, $600, etc. and eventually enough people would have been incentivized to take the deal.

The company failed at that and now their competitors will get their business and increase their market shares at United's expense.

IANAL, but they might even be facing a very expensive lawsuit and will have to settle.

The market will ultimately work things out, I don't think the FAA should intervene much.

</comment><comment><USER29> So how many people will get fired over this?

<comment><USER30> My guess is it will be like the Wells Fargo fiasco. Some low-level employees - probably the staff that worked that flight - will lose their jobs while those that actually created the policies that led to this will be just fine.

<comment><USER31> Just announced yesterday: Wells Fargo clawing back $75M in comp from the 2 execs.

[https://www.nytimes.com/2017/04/11/business/dealbook/wells-f...](https://www.nytimes.com/2017/04/11/business/dealbook/wells- fargo-whole-foods-fed.html)

</comment></comment></comment><comment><USER32> On overbooking, this is a solved problem: hold an auction where the max payoff is the risk in dollars X, distributed amongst Y passengers (the number of seats you need to free up). Start at some low anchor point ("$300 to get off the plane") and increment up until you have takers. If the total value exceeds X, write it off - you messed up.

I believe other airlines implement this in some capacity.

<comment><USER15> United does too. They just stopped at $800 and then went the random route. They could have gone higher.

<comment><USER33> Yeah, there's also video from just prior to this incident where multiple people say "We'll get off for $1500" and the purser literally laughs and says "Yeah, that's not going to happen. People are going to need to leave the plane or it won't take off."

</comment></comment></comment><comment><USER34> Seems to me that what is most unfortunate is that surrounding passengers didn't support the passenger dragged off the plane. 4 or 5 people standing up and threatening something along the lines of "Why don't you take my seat too jackass; I don't want it anymore" would have been far more effective at righting this situation than proper media reporting or crying about passenger contracts.

<comment><USER35> While that sounds like a nice thing to do on a personal level, it distracts from the real issue at hand - poor service and handling of a situation that was bad from the start. I strongly disagree that the passengers should have stepped up and taken the fall for poor practices from United. People don't need to be better humans - companies need to be held accountable for their actions and act better towards their customers.

<comment><USER34> >>companies need to be held accountable for their actions and act better towards their customers.

Exactly.

</comment></comment></comment><comment><USER36> Has everyone watched the video? There is a point in the video where "things went wrong" and it happens right before the officer makes the decision to physically touch the passenger and begin to assault him in order to remove him.

Immediately before that point, there are a multitude of things that could have been done or done differently. The choice was made by that one individual to physically take hold of the passenger who was ultimately, peacefully, declining to deplane.

For example ... the officers could have:

1\. Explained to the passenger and everyone around him about how he is single- handedly delaying everyone else's arrival home right now.

2\. Gave several warnings, spaced out appropriately over time, that increased levels of escalation will be involved, up to and including the point of physical removal. In other words, telling him he will be forcefully removed against his will for not obeying the law.

... and so on with certainly more creative approaches that I wouldn't necessarily expect a typical police officer to think of and/or employ.

<comment><USER37> The officers should've told the flight staff they're outside their legal rights.</comment></comment>


Ask HN: Where to find learning projects - <AUTHOR>

Hey there,
some background information: I have a business information degree in Germany, working as a software developer for two years now.
99% of the time I only have to write simple scripts. I read every book about development, techniques, languages, you name it. I know I have a lot of knowledge, but there is nothing I can work on.
People always say "well, just commit to open source projects" which is easier said than done. And while this would be awesome, I want some kind of big picture to work on.
Question is: If you have no needs yourself and you are not so smart when it comes to "super cool ideas", how can I get some bigger projects to work on?
Edit: And yes, I am currently looking for another, more challenging job. <comment><USER2> If you're looking to get coding experience while learning something new, Udacity has a lot of good courses.

If you're looking for an open source project that's welcoming of newcomers, Mozilla is pretty huge and makes it pretty easy to get involved, no matter what language you're experienced in: [https://developer.mozilla.org/en- US/docs/Introduction](https://developer.mozilla.org/en-US/docs/Introduction)</comment>


Early mammals are thought to have lived mainly nocturnal lives - <AUTHOR> https://www.nature.com/articles/d41586-019-01109-6 <comment><USER2> This make a ton of sense on the surface.

It explains why we're warm blooded (keep warm).

It explains why we have fur (keep warm).

Plus there were a lot of reptiles about during the day and the night would have given us an advantage.

"us" lol.. team mammal FTW!

<comment><USER3> The semi-aquatic ape theory makes a lot of sense at first but is (apparently) bunk

<comment><USER4> Just because it is unpopular doesn't mean its bunk.

From my reading of the situation (having been converted), it seems that being a 'just so' explanation (not so evidence based, just conjecture), and one put forward by a woman in the 1970s, it was met with really over the top hostility for what I think is an interesting hypothesis.

You get into how our fingers prune up for better grip in the water, our diving reflex, and how at-home some spearfishers and free divers are in the ocean, not to mention the multitude of fishing villages that predate written history by who knows how long... it's a very convenient explanation -- which academics are right to be skeptical of -- but I don't think it deserves being cast as bunk.

Somewhat tangential, but here's my favorite video of humans being at home in the ocean, "Living off the Land in Hawaii", with badass laying on the ocean floor waiting for a meal @3:45 [https://youtu.be/jJXEepvG6Hc?t=225](https://youtu.be/jJXEepvG6Hc?t=225)

<comment><USER5> > You get into how our fingers prune up for better grip in the water

Awfully skeptical of that claim. While there is more friction area potentially, skin is very easy to damage when "pruned". You can't use any significant force in this condition making normal skin with higher force capability much more useful in water.

<comment><USER4> I didn't make it up myself, from 2013:

"In the latest study, participants picked up wet or dry objects including marbles of different sizes with normal hands or with fingers wrinkled after soaking in warm water for 30 minutes. The subjects were faster at picking up wet marbles with wrinkled fingers than with dry ones, but wrinkles made no difference for moving dry objects. The results are published today in Biology Letters"

[https://www.nature.com/news/science-gets-a-grip-on- wrinkly-f...](https://www.nature.com/news/science-gets-a-grip-on-wrinkly- fingers-1.12175)

</comment></comment></comment></comment></comment><comment><USER6> Bird vision is so much better than mammalian vision. Primate vision is a poorly hacked together attempt to get back to something similar to what birds have, but compared to the cephalopod eye they are both hacks [0].

[0] [https://en.m.wikipedia.org/wiki/Cephalopod_eye](https://en.m.wikipedia.org/wiki/Cephalopod_eye)

<comment><USER7> Do telescopes count as mammalian vision?

<comment><USER8> I think that it does not; it counts as artificial, instead. However, it can be used together with mammalian vision.

</comment></comment></comment><comment><USER9> As a nocturnal mammal, I enjoy this connection to my genetic ancestors.</comment>


Ask HN: Default command line software in Mac OS - <AUTHOR>

Hello! I haven't owned a Mac since the pre-OS X era, but so many positive comments around here are making me think about it. Do you know of a list with all the shell commands available by default? I know there is macports, but still I'm curious.<p>Thanks! <comment><USER2> In terms of a list, you can try this (though I can't swear that it's completely up to date): <http://ss64.com/osx/>

Also, unless you install the developer tools (they are freely available on your install disk or you can download them), you don't have a compiler and other key development tools. But even before install the developer extras, you have a fairly full set of basic *nix tools and languages (Perl, Python and Ruby) to script in. Note that if you're used to the GNU version of the coreutils, find, etc., you may get some surprises in terms of flags. OS X uses BSD versions.

</comment><comment><USER3> It's all the basic UNIX stuff + programming languages like Java, Perl, PHP, Python, and Ruby.

<comment><AUTHOR> OK, but in <http://news.ycombinator.com/item?id=1241479> X-Istence mentions that curl ships with Mac OS while wget doesn't. I guess there isn't an official list, right?</comment></comment>


Deep Voice 2: Multi-Speaker Neural Text-To-Speech – Baidu Research - <AUTHOR> http://research.baidu.com/deep-voice-2-multi-speaker-neural-text-speech/ <comment><USER2> Wow. I'd love to hear some of the audio examples used.

Any idea where or how we might be able to get those?</comment>


Russian ice-hockey team wiped out in plane crash - <AUTHOR> http://en.rian.ru/russia/20110907/166504776.html

<comment><USER2> The only player who has survived now has passed away.</comment>


How Steve Jobs prepares for speeches - <AUTHOR> http://technology.guardian.co.uk/weekly/story/0,16376,1677772,00.html <comment><AUTHOR> In short: prepare like your life depended on it.</comment>


Google Buzz is Already Dead - <AUTHOR> http://alanhogan.com/buzz-is-already-dead

<comment><USER2> Oh, goodness. I do tire of the melodramatic pronunciations of Buzz's death less than a week in. Though some of the points the author makes are valid (esp having the "Email this" link so prominent), to extrapolate so far as to call the entirety of Buzz dead on arrival is ridiculous. As I've already said elsewhere on HN, Buzz has had a horrible rollout that cost Google a serious amount of goodwill, but the product itself has a lot going for it.

Sure, there may be problems, but they've already shown that they are willing to fix them. Next to search itself, Gmail is probably their single-largest profit center, so if they take the bold step of integrating Buzz into Gmail, that can only indicate a long-term commitment to making the service work. In short, no, Buzz is not dead already. It's getting off to a less than stellar start, but it's very far from dead.

<comment><AUTHOR> > …melodramatic pronunciations of Buzz's death

By "already dead," what I really meant was "Buzz is doomed from a user experience point of view," not "Buzz is already a ghost town." (And as cabalamat guesses, there is probably some wishful thinking involved.)

<comment><USER2> That makes a lot more sense, but I think that Google will put the money into fixing the problems you point out. I say that not because I personally like Buzz, but because Google does seem dedicated to the Buzz service line, and they aren't stupid. They may do some dumb things at times, but they are not stupid.

<comment><AUTHOR> I hope you're right.

Still, a lot of my complaints would need to be addressed with significant changes to the service (changing how we are notified of replies & mentions, de-coupling Reader & Buzz and perhaps Gmail & Buzz, uncluttering the UI, showing fewer strangers). I can't think of any Google product that was ever fundamentally changed on this scale. Wave would be a good example of a service that could _really_ use a rethinking of the UI (there are at least 4 or 5 ways to dismiss a Wave: Archive, Mute, Delete, Mark as Read, Mark as Spam, for example), but it hasn't gotten it, and I am pessimistic that this will ever happen.

</comment></comment></comment></comment><comment> old-gregg I dont know about you all, but Buzz makes a lot more sense to me than Facebook+Twitter combined. My _real_ social network is in my inbox and my Buzz is exploding with great live discussions I'm having with friends and all sorts of interesting folks in their addressbooks.

Being gmail-based also provides a natural content filter: somehow gmail accounts are relatively free of morons who tend to inhabit hotmail/AOL, hence the advantage of higher quality discussions on Buzz as opposed to Facebook.

That, plus the absense of a silly message length limit make buzz the only social network I'm using.

<comment><USER3> My best _social_ network is facebook. Most of my friends don't use Gmail or twitter, but all but one of them are on facebook. I can only assume this is the norm rather than the exception.

Certain groups of people might find Buzz useful, but I'm sure more won't than even those who don't find twitter useful (at least twitter has more famous people on it that others can follow).

</comment></comment><comment><USER4> Buzz is going to die not because of the privacy problems this week but because it forces you to live in a "Google World". I have a gmail account but it isn't and won't ever be my primary mailbox. Twitter, Facebook, XMPP based IM are all open enough and integrate into my current life -- they don't force me to go live a new one.

</comment><comment><USER5> Buzz may or may not be dead, but I prefer it to twitter for every reason you listed.

I don't want to bother logging into another account to check something, but since buzz is right there, I'll check it.

The fact that anyone can inline images or video, and in the future other forms of multimedia content is great.

</comment><comment><USER6> I am put off by the article's title, but otherwise Alan makes some good points: I would prefer that Buzz not show the number of new items. I have been using Buzz like I use Twitter: about 10 minutes a day (each) to take a quick look for interesting things to read. I'm enjoying Buzz, and as long as it is easy to completely disable it I don't think that people have much to complain about.

BTW, a little off topic but: how difficult is it really to remove duplicate entries in Google Reader and similar aggregators? Even better: recognize which articles are original and which are just summaries with a link to the original article. Eliminate duplicates, favoring original articles. (Seems like NGRAMS or comparing word count statistics might do the trick.)

</comment><comment><USER7> even though I don't understand buzz very well yet, it seems to be nicely integrated into Android. Showing buzz on google maps is just a button away.

I wouldn't call it dead yet...

</comment><comment><USER8> when in Buzz, the search field at top becomes "Search Buzz" as opposed to "Search Mail" -- really fast searches of the whole network. It's far from dead.

<comment><AUTHOR> That's a cool feature, though the UI is such that I would have never guessed that if you never told me. Using visual hierarchies would solve this design problem.

</comment></comment><comment><USER9> I don't use it, so it's not a big loss.</comment>


Lover.ly raises 500K [WOW] - <AUTHOR> http://techcrunch.com/2012/02/14/lover-ly-raises-500k-to-be-an-online-visual-inspiration-engine-for-weddings/

<comment><USER2> So apparently 'visual inspiration' is the trend this year? I guess that's better than daily deals.</comment>


Generate the barebones skeleton of a MC plugin given a groupId and artifactId - <AUTHOR> https://github.com/Valks-Minecraft-Plugins/Skeleton-Generator-JS <comment><AUTHOR> I found it took way too long to setup a new Minecraft plugin project, so I created this to do it for me. All you have to do is specify the groupId, artifactId, description and discord invite link through a website. If you do not specify certain values, then the defaults will be loaded from the config.</comment>