Second Gravitational Wave Detected at LIGO - <AUTHOR> http://journals.aps.org/prl/abstract/10.1103/PhysRevLett.116.241103 <comment><USER2> For those curious about the future of LIGO...

At present there are two LIGO facilities - one in Hanford, Washington and another in Livingston, Louisiana. This is necessary for both denoising (it's unlikely that a seismic event or random perturbation would effect both simultaneously) and triangulation via parallax.

Right now having just two facilities (that are relatively close together) limits localization to broad regions of the sky. Additional facilities are under way/in discussion for Europe, Japan, and India. This would significantly improve both the sensitivity of the array and its ability to localize events in a smaller region of the sky. Hopefully these projects get funded. LIGO stands to resolve some of the biggest open questions we have in cosmology.

<comment><USER3> One thing I don't understand in your post: given how ridiculously far away these black holes are, how could you possibly even dream of triangulating them with two facilities on Earth via parallax...?

<comment><USER4> You don't use parallax, rather you calculate the direction of the source by using the arrival times of the signals. The nearer detector will receive the signal slightly earlier by an amount that will typically be on the order of a few hundredths of a second. This is essentially the same method that geologists use to determine the epicenter of an earthquake.

<comment><USER5> This seems horribly prone to manipulation by cosmic radiation, gravity, and a million slower alterations like the rotation of the earth which when combined produce a noticeable effect.

The assumption here is that no force has acted on the energy arriving enough to distort two arrays on earth.

<comment><USER6> > seems horribly

No physicists here but you don't seem to be either. Irc from what had been said with the first event gravitational waves pass through matter and aren't disturbed like em waves, that's why they supposedly open new doors. Secondly, just take it at face value, if they say so it is so, it might seem improbable and "horribly prone to manipulation" but they probably thought of that and have machines precise enough to compensate for whatever effects you or me imagined e.g. "LIGO is designed to detect a change in distance between its mirrors 1/10,000th the width of a proton"[1]. It's like your grandma, never having touched computers, expressing opinions on the next release of some developer tool.

[1][https://www.ligo.caltech.edu/page/facts](https://www.ligo.caltech.edu/page/facts)

</comment></comment></comment></comment></comment><comment><USER7> ""It is very significant that these black holes were much less massive than those observed in the first detection," Gabriela Gonzalez, LIGO's spokesperson, said in a statement. "Because of their lighter masses compared to the first detection, they spent more time—about one second—in the sensitive band of the detectors. It is a promising start to mapping the populations of black holes in our Universe.""

from [http://arstechnica.com/science/2016/06/ligo-data-includes- at...](http://arstechnica.com/science/2016/06/ligo-data-includes-at-least-one- more-black-hole-merger/)

</comment><comment><USER8> My wife has this really stupid (or brilliant?) question - if during the collision one solar mass turned into gravitational waves is it possible to create mass from gravitational waves?

<comment><USER4> In principle, yes. The Einstein field equations are time symmetric, so you could reverse the situation by pumping in gravitational waves from a great distance in a spherically symmetric way, and have them converge in some central region in such a way as to increase the mass of a black hole at the center, or have it split up into two more massive black holes.

<comment><USER9> Isn't it in principle equally difficult as generating concentrial waves on the surface of a swimming pool in such way as to eject a swimmer back on the podium where he jumped in from?

<comment><USER10> Like this? ;)

[https://youtu.be/WffR6HrEqTA?t=39](https://youtu.be/WffR6HrEqTA?t=39)

<comment><USER11> So you could theoretically build a black whole generator by building a sphere that could emit gravitational waves with precision?

<comment><USER12> You'd need the sphere to be more than massive enough to collapse under its own gravity, into a black hole; such a structure wouldn't be hypothetically possible. Building black holes with anything other than stars or giant gas clouds (in the early universe) turns out to be hard; your black hole generators inevitably keep collapsing into black holes or at least neutron stars.

<comment><USER13> > You'd need the sphere to be more than massive enough to collapse under its > own gravity, into a black hole; such a structure wouldn't be hypothetically > possible.

I don't think that's technically true. You could build a bunch of catapults on the edge of the sphere, and when they all launch rocks at the center of the sphere, they would eventually form a black hole. The catapults could be arbitrarily far from each other as the radius of the sphere increases, such that they would not really do much to each other gravitationally. You'd just have to wait a real long time for the rocks to hit the middle.

> Building black holes with anything other than stars or giant gas clouds (in > the early universe) turns out to be hard;

Well yes, galaxy-sized intelligently designed structures don't really happen.

<comment><USER12> I think by "Black hole generator" the other person meant a device which could create black holes remotely through some kind of process, not just a mass that collapses under its own gravity. In that sense, if you could find an old, spun-down neutron star (and man wouldn't that be a fun search! Massive, but tiny and dim...) then as you say, you could just keep adding mass until _crush_.

<comment><USER13> Any black hole generator that doesn't itself become a black hole is essentially throwing part of itself in the black hole (Yay conservation laws!). You can replace the catapults with lasers or plasma guns or whatever.

<comment><USER12> Sure, but I think the original commentator was imaging a massive sphere that could emit such powerful and precise gravitational waves, that you could create more black holes as a result. My point was just that any mass capable of achieving that, even hypothetically, would have long since collapses into a black hole.

I take your point however, that you could coordinate in some way separated masses, but at some point you'd probably run into issues with the aforementioned galactic-scale of engineering.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> The article linked from that page is more useful to the physics-challenged such as myself: [http://link.aps.org/doi/10.1103/Physics.9.68](http://link.aps.org/doi/10.1103/Physics.9.68)

</comment><comment><USER15> How come: 14.2 + 7.5 == 21.7 != 20.8 ?

Does the gravitational wave contain 0.9 solar masses of energy?

<comment><USER16> Because the event is _extremely_ violent.

Just as a nuclear bomb converts a small amount of mass to radiant energy (grams?), a merger can convert mass into other forms of energy, too.

Gravitational waves, of which there are probably many passing through us all the time from many sources, carry a lot of power. The only reason we don't see them every day is that spacetime itself is extremely stiff.

<comment><USER17> Isn't it also that power decreases over the cube of the distance to the event? A truly gargantuan amount of power (1 solar mass equivalent) distributed across a 3-dimensional shell dozens or hundreds of light years across should be minuscule at any Earth-sized point along that shell.

<comment><USER18> Wouldn't it be inverse square, not inverse cubed? Or do gravity waves behave different than other things we're used to, like light?

<comment><USER19> Actually the nice thing about gravitational waves is that we are sensitive to their amplitude, which scales as 1/r, and not to their energy, which scales as 1/r^2.

</comment></comment></comment></comment></comment><comment><USER20> This signal was reported on months ago. Can anyone explain what they did to move the GW151226 signal from 2-sigma to >5-sigma?

"The data is in fact completely open and you could analyse it yourself! In addition to the GW150914 event there are also two others that rise somewhat above the background ("GW151012" and "GW151226"). You can see them by eye in the above plot. They are clearly not statistically significant enough to announce a discovery alone, but still they are tantalising... with room for improvement to design sensitivity (by a factor of ~2 which increases the spatial reach by 2^3) and the construction of a third detector in India to triangulate the signal, the future of gravitational wave astronomy is exciting." [http://syymmetries.blogspot.com/2016_03_01_archive.html](http://syymmetries.blogspot.com/2016_03_01_archive.html)

<comment><USER21> Their background analysis is data-driven; the more data they take the better they know their background noise. They are now at the point where they can definitely say that what looked like an unusual fluctuation above the background noise months ago was in fact very unusual. Enough for discovery significance.

<comment><USER22> Citation, as it says in the article:

"Two matched-filter searches used coincident observations between the two LIGO detectors from September 12, 2015 to January 19, 2016 to estimate the significance of GW151226. One of these searches was the off-line version of the online search discussed previously. The off-line searches benefit from improved calibration and refined data quality information not available to online searches."

[http://journals.aps.org/prl/abstract/10.1103/PhysRevLett.116...](http://journals.aps.org/prl/abstract/10.1103/PhysRevLett.116.241103#fulltext)

</comment></comment></comment><comment><USER23> Can someone who has expertise explain the significance of this in plain English please?

<comment><USER24> I'm definitely not a good person to explain or comment on this, but in a nutshell:

Black hole collisions were expected to be a fairly common occurrence, but we had no way of knowing for certain how frequent they are when only one had been detected. Now that another one has been detected a fairly short time afterwards, it supports the prediction that we should observe several of them every year.

If black hole collisions were very rare events, it would be harder to use them as a natural laboratory. It's much easier to demonstrate that some small deviation from theory is real when you have multiple observations of it.

Therefore, this second observation in a short time confirms that gravitational waves are likely to be a useful tool to explore fundamental physical principles.

<comment><USER25> Also, this event is much closer to what they would "Expect" e.g. a much more common predicted size of black holes; the first event was rather on the extreme end of things (which is why it was so much easier to see in the data).

</comment></comment></comment><comment><USER26> Some nice visuals to explain the concept [http://www.npr.org/sections/thetwo- way/2016/06/15/481934630/...](http://www.npr.org/sections/thetwo- way/2016/06/15/481934630/gravitational-waves-from-colliding-black-holes-shake- scientists-detectors-again)

</comment><comment><USER27> When gravitational waves are released from the merger of two black holes, the combined mass of the resultant black hole is less than sum of its component black holes, because some of the mass was released in the form gravitational waves.

Questions.

What are the implications of this on black hole entropy and temperature? Can black holes evaporate from gravitational radiation alone without Hawkins radiation?

What are the implications of this on the mass of any object in the universe, since all objects are related to each other gravitationally and the universe is expanding? Does it mean objects are constantly loosing mass and the universe is filled with energy from this release? Can dark energy be related to this process? Can universe be expanding because matter is constantly lost into the gravitational waves?

What are the implications of gravitational waves on the fabric of spacetime, if objects are constantly leaking gravitational waves in a nonstatic universe?

<comment><USER28> My understanding is that gravitational waves are only radiated when there's a dipole moment: two (or more, I guess) objects in rotation around each other. A black hole just sitting on its own doesn't radiate any gravitational waves at all. According to [http://www.ast.cam.ac.uk/public/ask/2519](http://www.ast.cam.ac.uk/public/ask/2519) , the Earth and Moon should also be radiating gravitational waves (and therefore losing a little bit of energy) but this is surely dwarfed by other effects and not measurable.

<comment><USER16> Important pedantic point: There are no gravitational dipoles, as there is no repulsive gravitational interaction.

A dumbbell-shaped mass is the sum of a gravitational monopole and a gravitational quadrupole. That gravitational radiation originates only from quadrupolar sources (which are far less-efficient radiators than an equal- sized dipole) is one reason that gravitational waves are hard to detect.

</comment></comment></comment><comment><USER29> Data and audio files relevant to this event are available to the public at [https://losc.ligo.org/events/GW151226/](https://losc.ligo.org/events/GW151226/)

There are also Jupyter tutorials on processing GW signals at [https://losc.ligo.org/tutorials/](https://losc.ligo.org/tutorials/)

</comment><comment><USER30> How do we know that these waves they're detecting are from collisions of black holes? How do they locate these black holes and how do they make these conclusions that what they detect is coming from black hole Alpha & Beta colliding?

<comment><USER29> The waveforms are predicted by our knowledge of general relativity; specifically what the gravitational wave profile would be for two objects of certain masses spiraling into each other.

A semi-hand-wavy way we know that the objects in this particular inspired are black holes is that for them to be orbiting each other this fast, they must be very close. For them to be this close, they must be very small. Together, this implied the objects have a certain size which is smaller than their Schwarzschild radius, which means they are probably black holes.

</comment></comment><comment><USER31> I was lucky enough to be in an astrophysics faculty (doing a research project) when the LIGO paper was published. Everyone was super excited and was printing off papers and discussing the experiment, results and future of astronomy. It was really something else to see that many clever minds so excited about a result that many scientists involved in the field of cosmology and relativity didn't live to see.

</comment><comment><USER32> Interesting to note that the y-scale on figure 1 is 10^-21 (units of strain). Measurement at that scale is absolutely insane. The power of good engineering, incredible optics, and lots of averaging.

<comment><USER16> There's minimal averaging, as the signals are transient.

<comment><USER4> Depends on what you mean by averaging I suppose, but the signal is a measure of the average path length from several hundred reflections in the cavity. Furthermore, the signals are generated from the average interference of many photons. Even still, shot noise from the limited number of photons in the cavity is a major source of uncertainty.

<comment><USER16> All true.

To give perspective on where I was coming from: from the (human) perspective of looking at noise in 1/sqrt(Hz) units, the signals are actually less-than- averaged if they're less than a second in duration.

It's not like a continuous-wave source where one can integrate for months and hammer down the uncertainty to far lower strain values.

</comment></comment></comment></comment><comment><USER33> Something I've asked before but got no answer - at these extreme masses, velocities, and forces time dilation has got to be immense.

Yet the article makes no mention of this whatsoever.

<comment><USER19> Something to keep in mind is that gravitational waves are linearized solutions to Einstein equations. That is, they can only be meaningfully defined far away from those sources. What happens close to the black holes cannot be described in terms of waves. You should not think of the gravitational waves as being emitted directly by the black holes. Instead what happens is that the black holes distort spacetime in complex non-linear ways, which turn into gravitational waves at large distances (hundreds of Schwarzschild radii). As such, the time dilation imprinted in the waves depends on the motion of the "center of mass of the binary" and the cosmological redshift.

<comment><USER34> I keep trying to picture how this would work using a 'drain in a bathtub' image in my head where the water rushing down the plug is like a black hole pulling things in with gravity.

Is there any way thinking like that I can get an approximate idea of what the gravitational wave would be in that scenario?

<comment><USER33> It's not like a bathtub. (And let's ignore time dilation.)

Imagine you have a large mass (sun) moving in a straight line, and an object (sensor) 1 light minute from that mass. The gravity from the sun takes 1 light minute to reach the sensor - that would mean that the sensor is attracted to where the sun was 1 minute ago.

That can't work - it violates all sorts of conservation laws.

Instead what happens is that the gravitational force itself is ALSO moving in a straight line! So when the gravity from the sun reaches the sensor it attracts the sensor to where the sun is now because both the sun, and the gravitational force, are moving together.

This works out very nicely.

But what happens if the sun is moving in a circle? Otherwise known as accelerating?

The gravitational force can't know what the sun will do in the future (that it will move).

So as the sun moves it forces the gravitational force to change - before the force was moving in direction a, now it's moving in direction b. This change in the gravitational force is known as a gravitational wave.

This wave, because it is accelerating, has the ability to impart change in other objects, otherwise known as imparting energy. So gravitational waves can carry energy! Potentially huge amounts of it.

(And since they carry energy, they themself have mass, and therefor gravity, but these second-order effects as they are called, are too confusing, and weak, and everyone ignores them.)

Back to the black hole - as it orbits the other black hole (as they orbit each other), they change direction very very rapidly, causing huge gravitational waves - the waves steal energy from the orbit, causing the two black holes to fall into each other with smaller and smaller orbits, i.e. a spiral.

My problem is this: Near a black hole time dilation is enormous, huge gravity, plus huge velocity. So to an outside observer the black holes appear basically frozen and don't move. If they don't move they don't make gravitational waves, so we should detect nothing.

I have no answer to this question.

<comment><USER35> FWIW, for supermassive black holes, the curvature at the horizon can be arbitrarily flat.

</comment></comment></comment></comment></comment><comment><USER36> So, I remember hearing about LIGO when the first wave was detected, and was excited by it - but I had never heard of it before that.

What other experiments are running that would generate similar excitement from the science community that I probably haven't heard of yet?

</comment><comment><USER37> >he signal persisted in the LIGO frequency band for approximately 1 s, increasing in frequency and amplitude over about 55 cycles from 35 to 450 Hz

Would love to hear an audio facsimile of what this might "sound" like.

<comment><USER29> For this particular event, see [https://losc.ligo.org/events/GW151226/](https://losc.ligo.org/events/GW151226/), near the bottom of the page

<comment><USER38> It's truly incredible that I can sit here, plug my headphones into this little electrical box and "hear" the gravitational sound of two black holes colliding. If only Mr. Einstein could be here to listen.

<comment><USER39> I love that the data-as-sound is so cute: [https://losc.ligo.org/s/events/GW151226/GW151226_template_sh...](https://losc.ligo.org/s/events/GW151226/GW151226_template_shifted.wav)

<comment><USER40> Truly an unbelievably jaunty little sound considering that it represents the _entire mass of our solar system being converted into energy_. Yow.

<comment><USER41> Indeed. And to put that into perspective:

"The amount of matter converted to energy in the atomic bomb dropped on Hiroshima was about 700 milligrams, less than one-third the mass of a U.S. dime."

(From [http://discovermagazine.com/2010/jul-aug/24-numbers- nuclear-...](http://discovermagazine.com/2010/jul-aug/24-numbers-nuclear- weapons-bomb-stockpile-peace))

</comment></comment></comment></comment></comment></comment><comment><USER42> One of my favourite things to do, when I'm back in California, is attend SLAC Public Lectures [1]. (There is a disturbing paucity of scientific cultural institutions in New York.) The most recent one was by Dr. Brian Lantz about LIGO [2].

[1] [https://www6.slac.stanford.edu/community/public- lectures.asp...](https://www6.slac.stanford.edu/community/public- lectures.aspx)

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

</comment><comment><USER43> Is there any correlation between the fundamental vibrating of atoms in a vacuum at absolute zero, which I think is known as the zero-energy state, and gravitational waves? Meaning, I know quantum mechanics describes why they vibrate, but do gravity waves have any play in this, or effect? So exciting to have lived long enough to see some more theory become real with measurements!

</comment><comment><USER44> I have a side question. If gravity (i.e. warping of space time) propagates at the speed of light. Then does that mean that the Alcubierre warp drive is fundamentally incapable of supra-light speeds?

</comment><comment><USER45> What does the last line of the abstract refer to, about "deviations from general relativity"? Is it simply a statement that this (and other) observations of gravity waves are another tool for verifying GR's predictions?

<comment><USER16> Yes. These gravitational wave detections are the only direct measurements anyone's ever made in regions of such strong gravity. If strong-field gravity betrays any failing of the theory of GR, we'd expect to find it in gravitational-wave waveforms.

That these waveforms (the first one, in particular) appear to follow the basic GR plan at the time of the merger is actually kind of a bummer. As a physicist who makes precision tests of gravity for a living, I'd really hoped that we'd see something unexpected. Instead, the new thing that we learned is that GR continues to be an accurate model, something that was perhaps unexpected on its own.

<comment><USER29> I'm not so surprised that there are no GR deviations in these early days of detections that are just becoming significant over the instrument noise.

GW physicists are hard at work on the future generations of GW detectors... In 50 years, a signal like GW150914 might have an SNR of >1000, so we'll see all kinds of detail that may hold more information than what we've seen so far.

<comment><USER16> People have been testing GR really hard for a century, especially in the last fifty years. Nobody's convincingly found a single chink in the armor.

Clifford Will's "The Confrontation between General Relativity and Experiment" is an excellent introduction to the state of the art (this is the stock reference for everyone in the field).

[http://relativity.livingreviews.org/Articles/lrr-2014-4/](http://relativity.livingreviews.org/Articles/lrr-2014-4/)

</comment></comment></comment></comment><comment><USER46> Gem YT chan: [https://www.youtube.com/watch?v=MOVArup3jfg](https://www.youtube.com/watch?v=MOVArup3jfg)

</comment><comment><USER47> How far are we from creating Gravity Shockwave Generating Division Tool? A.k.a Goldion Crusher.

</comment><comment><USER48> Could black holes lose their mass through the propagation (generation?) of gravitational waves?

<comment><USER49> It seems that it happens when they merge, since:

> The cataclysmic event saw the black holes, one eight times more massive than > the sun, the other 14 times more massive, merge into one about 21 times > heavier than the sun. In the process, energy equivalent to the mass of the > sun radiated into space as gravitational waves.

So the final black hole had rather less mass than the sum of the original two.

[https://www.theguardian.com/science/2016/jun/15/gravitationa...](https://www.theguardian.com/science/2016/jun/15/gravitational- waves-detected-from-collision-of-second-set-of-black-holes-ligo)

</comment></comment><comment><USER50> I thought the shaking was Santa on the roof!</comment>


It ain't about the callbacks, it's about the flow control - <AUTHOR> https://idea.popcount.org/2013-09-05-it-aint-about-the-callbacks/ <comment><USER3> > _It 's impossible to slow down the pace of accepting new incoming client > connections._ > _A noisy client will be able to crash our server, as c.write > is non-blocking_

Correct me if I'm wrong (I haven't done Node.js server programming), but what do these have to do with the callback model? First, what does it mean to "slow down the pace" of accepting connections? I'm assuming you could code a limit to the number of connections, and then immediately drop new connections as they're made? Or put them into a queue?

And what does c.write being non-blocking have to do with crashing the server? Again, just program it so that we stop writing data if the buffer's gotten too big.

Sure, it's more code to write, and the flow control is harder to write, but even if you're doing everything synchronously, you've still got to manage all that stuff. If every connection winds up on its own thread, you've got to manage those threads. You've still got to worry about too much data coming in.

I completely fail to see, given the specific kind of flow control and resource control the author wants, how the asynchronous model is harder than the synchronous model. Maybe someone can enlighten me?

<comment><AUTHOR> > _First, what does it mean to "slow down the pace" of accepting connections?_

In C, if you don't call 'accept' new connections will:

\- first: get queued in a kernel queue of SYN+ACKed connections

\- second: when queue is full Linux stops sending SYN+ACK, thus forcing the client to re-send SYN.

Not calling 'accept' pushes pressure back to the clients, without sending RST, without introducing any state on the server.

> _and then immediately drop new connections as they 're made_

That's not the same as pushing back the pressure. Dropping connections means: "go away, I'm broken". Not calling 'accept' means: "I'm busy right now, wait".

> _And what does c.write being non-blocking have to do with crashing the > server?_

If 'write' is non-blocking _and_ always succeeds (as in Node) the node.js process may be asked to 'write' plenty of data. As it can't send it to the kernel, it'll get buffered in the node process, and eventually run out of memory. This is the case if you don't have any flow-control mechanisms: you'll accept all the requests and buffer in memory all the responses, possibly leading to a crash.

> _but even if you 're doing everything synchronously, you've still got to > manage all that stuff._

Yes indeed! But at least it's obvious that you're spawning too many threads, or that all the threads are waiting on particular slow thing (disk for example). The state still need to be handled, but it's much easier to reason about it! (it's easier to count threads / coroutines than to count how many times a callback X was called and haven't yet called back the next callback on the path)

> _Maybe someone can enlighten me?_

I wanted to avoid the discussion about credit based flow control. It's possible to write flow-control aware code using callbacks, but it's generally harder. And requires a programmer to be aware of the problem.

Also, IMO flow control in callbacks style introduce spaghetti, as after the last thing ('write') succeeds you need to inform the first thing ('read') to proceed. But that's aesthetics and another discussion.

<comment><USER3> Thanks for replying. I still don't ultimately see that much of a difference -- if the Node server wants to accept the connections in a queue instead of disconnecting them (but not turn on echoing yet), that's still pretty easy to do with a couple of lines of code.

And looking up socket.write, Node actually tells you with the return value, if the data was written immediately or queued in user memory, plus there's a callback when it gets written. So you certainly do have flow-control mechanisms.

In the end, maybe it takes a few more lines of code with Node (since you have to take care of the queues yourself), but you're also getting a lot of flexibility in handling things exactly the way you want, it seems.

<comment><AUTHOR> > _if the Node server wants to accept the connections in a queue instead of > disconnecting them, that 's still pretty easy to do_

But then the queued connections are using file descriptors, and this is a limited resource, right? In real world sometimes not being able to handle all the traffic is an error condition, and disconnecting the client is okay. In other circumstances you'd like to be able to slow down the clients if the server can't cope. I claim this particular API in node can't express the latter.

> _So you certainly do have flow-control mechanisms._

Yes you do! And Streams API is a great attempt to unify flow control mechanisms. The problem is: those mechanisms are a secondary citizen, invented as node matured. And in fact, they are pretty complex, see the documentation of Streams. I think most node.js users can't be bothered with this - <USER2> that's the point: flow control requires thinking in node, and you get it for free if using "blocking" coroutines / threads.

> _maybe it takes a few more lines of code with Node_

Agreed. A decent programmer can write a good program in any paradigm. But I claim that callback API's require more thought to use correctly (due to flow control). Thus, most users will write poor programs using callbacks.

<comment><USER4> File descriptors and RAM for the buffers.

</comment></comment></comment></comment></comment><comment><USER5> If you find this post interesting I strongly recommend looking at how Go, Clojure's core.async, and similar CSP systems attempt to address these issues.

One big advantage of a good CSP model is that you can express push/pull sensibly because you have a (buffered) channel abstraction between communicating processes.

<comment><USER6> "Concepts, Techniques, and Models of Computer Programming" also covers flow control using similar methods IIRC. They use the dataflow variables of Oz which act like channels.

</comment></comment><comment><USER7> > ... but it becomes an issue when a platform forces you to use only the > callback style. I'm talking about you, JavaScript.

JS definitely doesn't force you to use the callback style. NodeJS HTTP module (the culprit in the discussion) does, but JS as a language doesn't.

<comment><USER8> Explain me how to do any async operation without a callback in ECMASCRIPT 5 ? You just cant. Callback is the only way to do async in JS <= ES5 .

<comment><USER7> Read the article again. The statement, in context, has nothing to do with async. The author is claiming that JavaScript forces users to only use the callback style, but that's not true (especially given the last few paragraphs, where the author explicitly points out synchronous code).

The reality is that you could build up a C-style flow (loops with select/poll/epoll/...) in JS if a javascript platform exposed those primitives (you would need something slightly lower than libuv)

<comment><AUTHOR> If I understand correctly you're saying that JavaScript is a neutral language. It's only a coincidence that in Browsers and in Node.js it heavily relies on the callback style. As a language itself, it could be synchronous.

Well, my friend, with this logic I claim that C is purely functional (it's only a coincidence that some implementations use rw memory) and there's nothing stopping Lisp from having mutable data.

<comment><USER9> Unfortunately such a claim is false. The event loop and callback oriented asynchrony model is baked into the ES spec itself; future ES features rely on it explicitly.

<comment><USER10> You are probably confusing ES spec with DOM spec, if not, at least I cannot find anything in ES spec even remotely related to how anything built on top would have to be asynchronous.

<comment><USER9> The concept of an event loop and event loop 'turns' is backed into ES promises the last time I read the draft spec and kept up with the spec discussions. It's not something you can polyfill in older versions of JS, it's a platform feature designed around how browsers work.

<comment><USER11> Hmm, do you recall where the ES promises spec lives? I can't find it in the ES6 draft ( [http://people.mozilla.org/~jorendorff/es6-draft.html](http://people.mozilla.org/~jorendorff/es6-draft.html) ), but it's in the DOM spec ( [http://dom.spec.whatwg.org/#promises](http://dom.spec.whatwg.org/#promises) ). ES6 does end up having iterators, which does look useful for promises, though... see task.js.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Interestingly, the ease of reasoning about flow control when pulling data from a source, versus pushing it to a destination, is one thing that can make reasoning about Haskell space usage particularly tricky.

<comment><USER13> As a person who loves Haskell, I generally agree. Because it's about as declarative as you can get, you have no insight into the execution model. In particularly, following the lazy/strict chain is hard (it's occasionally hard, especially in multithreaded scenarios to know what statement will be fully evaluated, or just "thunk"). The hope is, of course, that the compiler will get so good that it can leverage the purity of the code to do what you want as fast as possible (it's a throughput language after all).

Note, however, that Haskell can easily solve the problem mentioned in this article, and you have several ways of doing it.

</comment></comment><comment><USER14> If you want to get some of the benefits mentioned in the article with Node, check out my Common Node projects which uses fibers to emulate threads and a synchronous environment: [https://github.com/olegp/common- node](https://github.com/olegp/common-node)

Here's a slightly more advanced version of a Telnet server written for Common Node: [https://github.com/olegp/common- node/blob/master/examples/ch...](https://github.com/olegp/common- node/blob/master/examples/chat.js) \- it should be pretty straightforward to add the logic necessary to throttle the rate at which new connections are accepted.

</comment><comment><USER15> As a node junkie and LiveScript apologist, I'm surprised I hadn't heard these complaints against callbacks before -- fascinating stuff. I might be doing more things in Go from now on. ;)

</comment><comment><USER16> I'm working on a library for C++ called Team where this kind of flow control is possible. At its core it's got coroutines, so you can write code in a blocking style.

The current (early!) socket APIs can all be called with a callback (which act like Node and call it as fast as possible), or without one (in which case they block). Here's an echo server that accepts connections as fast as possible, but does blocking reads and writes so only one chunk per client gets buffered at a time:

[https://github.com/Sidnicious/team/blob/b157ea2c58177a2587c9...](https://github.com/Sidnicious/team/blob/b157ea2c58177a2587c9735f855cfbd15080d2f2/examples/echo_server.cpp)

The callbacks-as-fast-as-possible version is just implemented on top of the blocking one, so it'd be trivial to add flow control via a blocking callback (or by calling `accept()` in blocking style and making your own decision about when to call it again):

[https://github.com/Sidnicious/team/blob/b157ea2c58177a2587c9...](https://github.com/Sidnicious/team/blob/b157ea2c58177a2587c9735f855cfbd15080d2f2/team/net.h#L119-125)

</comment><comment><USER17> > A noisy client will be able to crash our server, as c.write is non-blocking > and will buffer an infinite amount of data in memory (this can be partially > solved with a node.js Stream API, more on that later).

This doesn't make any sense at all.

First, c.write would not buffer what the other server sends. It only takes what you give it. Maybe that was a typo.

Second, non-blocking and buffering are practically in perfect opposition to each other. For a system call to buffer an indefinite amount, it would have to block. That's exactly what node was designed to never do. node never buffers anything -- not when I tried it, at least. If the client sent a long stream of data, node would call the read callback every time the kernel received a packet or a kernel buffer filled up. c.write() would return immediately every time, and a return packet would get sent out. Nothing bad would happen.

</comment><comment><USER18> This is not exactly my area of speciality, but could you use iptables to limit incoming connections to your Node.js port?

[http://www.cyberciti.biz/tips/howto-limit-linux-syn- attacks....](http://www.cyberciti.biz/tips/howto-limit-linux-syn-attacks.html)

</comment><comment><USER19> So the issue here is that Node needs backpressure on events as well as pipes, right?

</comment><comment><USER20> One attempt to solve the problem, just by being able to accept more connections: [https://github.com/lloyd/node- toobusy](https://github.com/lloyd/node-toobusy)

</comment><comment><USER21> Interesting article... my 2c is that you might want try a library like async.js, that handles asynchronous code with explicity flow-control based structure. Async has throttling ( [https://github.com/caolan/async#queue](https://github.com/caolan/async#queue) ) and all kinds of things built into it that can address some of those things.. for other things where you are worried about buffers, you could use things like RabbitMQ or AWS-SQS to mitigate situations where you have mismatch in push/pull.

<comment><USER22> async.js still suffers the lack of real flow control that the article is talking about. In fact that queue you linked to is a perfect example of a naive implementation with no back pressure at all.

The question is: how do you guarantee that your queue never grows beyond a certain size? The library doesn't even attempt to help with that. And anything that you implement yourself would still suffer the race condition mentioned in the article.

<comment><USER23> Agrred. I want to add that this is why systems engineering is its own thing. Application developers seldom understand what's going on at the copying bytes around/syscall level.

<comment><USER22> People sometimes mock the idea of "rockstar" developers, but this is one of the things that separates the merely good from the great.

A developer who can jump up or down four levels in the technology stack with ease is an entirely different species, when compared with someone who lives at one level.

All abstractions leak.

</comment></comment></comment></comment><comment><USER24> Interesting article. Though I think in most serious production environments there is an NGINX or varnish in front of node.js which handles all these cases (and more)

</comment><comment><USER25> Marek,

Streams return `false` when a write will buffer past a configurable highWaterMark. The first hand-rolled `on('data', write)` pipe doesn't take this into consideration, and so yes, backpressure is not handled. `r.pipe(w)` does the right thing here.

The single "extra read" that you're seeing is just filling up to that configureable highWaterMark, which is an intentional feature. In the real world, connections are often of extremely variable speeds. Consider sending data from a database on localhost to a client on a 3G or 4G network. The mobile connection is extremely bursty, but with a high max speed and periods of very high latency. The database connection is extremely steady, but with a slower max throughput because of hard disk latency. In that case, you absolutely don't want to miss a chance to send data to the mobile client during a burst, so the ideal default approach is for Node to smooth out those highs and lows by buffering a small amount of data in memory. We don't consider 64KB to be a large amount for most purposes, but as I mentioned, it is configurable.

There is no way to pause the accept call, it's true. We've considered adding that feature, but no one has ever asked for it. Perhaps if you explain your use case in a github issue, we could do that. You can `server.close()` but that also unbinds, so clients get an ECONNREFUSED. Except in the cluster use- case, bind() and accept() are typically very tied to one another. It wouldn't be too hard to expose them separately, but like I said, no one's ever asked. If your complaint is that we haven't implemented a feature that no one's ever asked for, well, ok, that's just not how we do things, so maybe it's just a cultural difference in our approaches to creating software, I don't know.

        First, I believe most node.js programmers (including myself)
        don't understand Streams and just don't implement the Stream
        interfaces correctly.

Ok, well, there's not really any excuse for that any more. They're thoroughly documented, base classes are provided, there are blogs and examples all over the place. Maybe start with [http://api.nodejs.org/stream.html](http://api.nodejs.org/stream.html) and if you have questions that aren't answered, complain about it at [https://github.com/joyent/node/issues](https://github.com/joyent/node/issues) and mention `@isaacs` in the issue.

It's literally a single method that you have to override to implement a well- behaved Readable, Writable, or Transform stream.

        But even if Streams were properly implemented everywhere
        the API suffers a race condition: it's possible to get
        plenty of data before the writer reacts and stops the reader.

This is not true. The Writable stream object has a highWaterMark. Once that much data is buffered in memory, it starts returning `false` to its consumers. If you'd like to set that to 0, go right ahead. It will return `true` only if the data is immediately consumed by the underlying system. This doesn't happen "some time in the future". It happens at the first `write()` call that pushes the buffer over the high water mark. The example you describe is quite easy to simulate with setTimeout and the like. Perhaps you could post a bug if it behaves in a way that is problematic?

I have a hard time sussing out what you're actually complaining about in this article. You certainly seem upset about some things node does, but I can't figure out exactly what's bugging you. Is it the inability to delay accept() calls? Is it callbacks? Is it streams? Is it non-blocking IO as such?

Streams aren't really a "callback based" API as much as an event-based one, and actually, a more strictly callback-based stream API would be quite a bit _easier_ to get right, in my opinion, with much less ceremony: [http://lists.w3.org/Archives/Public/public- webapps/2013JulSe...](http://lists.w3.org/Archives/Public/public- webapps/2013JulSep/0355.html)

A similar approach could be taken to the listen/accept stuff you write about. `server.accept(function(conn) {})` and then call accept() again when you're ready for another one. A convenience method can then be trivially layered on top of that to call accept() repeatedly:

        Server.prototype.listen = function(cb) {
          this.accept(function onconn(conn) {
            cb(conn);
            this.accept(onconn);
          });
        };

I could be wrong, but I suspect, at the root, the cause of your distaste with Node is actually EventEmitters, rather than any of that other stuff you mention. And if so, I agree 100%. The "evented" part of Node is a mistake which can only be properly appreciated with the benefit of hindsight. It's too late to easily change now, of course, and so that's the design constraint we were faced with in building streams2 and streams3. But I think that platforms of the future should avoid this landmine.

Fair warning: I'm going to be offline first for NodeConf and then for vacation, for the next several weeks, so this is is a bit of a hit-and-run comment. Feel free to reply to email@example.com or post issues on the Node.js github page. I probably won't see replies here.</comment>


JetBrains IDEs subscription is 50% OFF for the next 3,5 hours only - <AUTHOR> https://blog.jetbrains.com/blog/2018/07/30/celebrate-this-friendship-day-with-jetbrains-and-unwrap-your-presents/ <comment><USER2> I have now bought it .... glad I saw this post ... awesome value for an incredible product.

One thing.... I had to open a new account because it would not let me buy because I have a perpetual fallback license for an earlier purchase of pycharm.

<comment><AUTHOR> That's a bit strange. Can you please send us a note at firstname.lastname@example.com and my colleagues have a look and merge accounts for your convenience? Thanks!

</comment></comment><comment><USER3> argh...</comment>


Eric Schmidt: "Our competitor is Bing" - <AUTHOR> http://www.liveside.net/bingblog/archive/2010/09/24/google-s-eric-schmidt-our-competitor-is-bing.aspx

<comment><USER3> On my first day of giving Bing a go (I used it for about two weeks to try to fairly assess) I ran into a problem: It can spellcheck words, but it cant get it right contextually.

Let me give you an example:

<http://www.google.com/search?q=how+I+won+the+waer>

<http://www.bing.com/search?q=how+I+won+the+waer>

I meant to type "how I won the war" and only Google picks up on this.

"waer" alone into google instant will bring up water (country), but with the context of my search phrase it gives me something far more accurate.

<comment><USER4> Sounds like Bing uses just spell checking rather than n-grams on search queries as Google does.

<comment><USER5> That's a pretty big whole for Bing to miss. Probably doesn't track as well since it requires a mistyped query -- most people doing comparisons of relevance compare correctly typed queries. But a big hole for real world usage... at least I'd think so.

<comment><USER6> I agree. The first thing I would do, if writing a search engine, would be to do Google-style phrase corrections.

(Although lately, I find it too aggressive. When googling obscure error messages, it usually "do you mean"-s it into a less obscure error message that I already understand. Sigh.)

<comment><USER7> I really think Google is getting to be too clever for its own good. When I try to search for some Mac API, it will give me a blog post about an iPhone app, no matter how much I beg and plead. Bing returns precisely what I wanted for those "Where the heck did Google get that SERP from?" kind of queries.

</comment></comment></comment></comment></comment><comment><USER8> Google needs Bing to be moderately successful to avoid an anti-trust lawsuit.

Bing is a win for Microsoft either way. If it gets about 30% market share, then Bing makes Microsoft money and forces Google to invest more in search. If even the largest software company after investing billions can't stop Google's growth in search, then Microsoft and others will claim that that Google is a monopoly. So it should be subject to anti-trust laws.

In the old days, when General Motors completely dominated the car industry, they made sure to keep their market share under 25%. They believed, probably correctly, that a higher share would bring anti-trust sanctions.

<comment><USER6> Isn't anti-trust designed to prevent people from _abusing_ their monopoly position? For example, Microsoft was the top OS vendor. They wanted to dominate the highly-lucrative Web Browser Vendor business. So, they forced everyone using their popular OS to use their web browser.

The government thought this was an abuse of the monopoly, but the charges didn't stick.

What Google's doing is nothing close to that, though. Nobody uses other search engines because they suck. The results are irrelevant and the ads are irrelevant. That's not anti-competitive action, that's competitive action -- they make a good product that people like. Seems legal to me.

<comment><USER9> I don't know about you, but to me Google is already pretty scary. Google has the power to completely destroy your business. They have little to no human communication, thus not allowing for any real follow-up, they're like this god, or black box. You have to hope and pray your begging will correct things.

For example, lets assume you have a somewhat successful product, getting pretty good search results for your category, and one day your site throws some errors, or it goes down, or something of that nature, your site is now no longer showing for your category. They don't tell you anything, not even if you use their Webmaster tools, all you know is that according to their search query result performance that all of a sudden you stop showing up for any other term than your name. Previously you were showing up for many terms. After you correct these issues, which you can only really guess at, you submit a re-consideration request describing the issue, your solution, and why you think whatever thing you think is the problem should be corrected. Now you wait. Not for some response, but just an automated reply saying that your response has been dealt with, not whether they did anything, or if in fact you had an issue. This will come 2-3 weeks later, your business may already be dead. But if it's not, and magically you show up for Google results again, and webmaster tools shows you that your previous search terms have relevance, you will most definitely not be in your previous position. Time to get out there again, get fresh in-links, and re-build your business.

This is the current status quo. This is very very scary. Even Credit Cards have to tell you why you were rejected, not enough credit history or something like that, you can even get one free credit report in response that will explain things. Not Google. I would sleep much better at night knowing that there was some process that would tell you if there's a problem, and if possible what the reasons were, in general terms. Once you correct them you should be able to submit that you did, and hopefully that would address the situation in some reasonable amount of time.

It's crazy that most of us are ok with a search engine dominating 70% or so of search, without any ability to resolve conflicts, ask questions, or anything. We can only click buttons and hope that after enough times the great Google will listen.

<comment><USER6> This doesn't bother me. If my website got delisted from Google, I'd find traffic in some other way. If my ads didn't get run by Google, I'd just advertise somewhere else.

Honestly, Google is not that big of a company. I checked out the Fortune 500 list, and Google is not even in the top 50. Amazon.com, Bank of America, and CVS Carkemark know a lot more about you than Google. And they don't care -- you come to them, and they sell you their product, and it's often a good deal for both sides. Google is just like this, except smaller.

In the IT industry, we like to think that Google is important. We see their logo a lot, we hear how nice it is to work there... but they are really small potatoes. Advertising is nothing. Giving people money, giving people drugs, selling gasoline, shipping books to your house overnight, and making light bulbs and jet engines is a lot more profitable than sending clicks to your website. Sorry, that's the reality... there is a lot more evil to be done in the world than Google is capable of. (Look at the number of Fortune 500 companies that are primarily military contractors. Their corporate mandate is to _cause people to die_ as efficiently as possible -- Google manages your RSS feeds and cat pictures! Sorry, not evil.)

(Why isn't Google as heavily regulated as banks? Because they really don't matter that much. Yeah, you can search for your name on Google and see content that you put up on the web under your name. But the banks collect information about you, to make business decisions, without you ever even knowing. Right now, their computers are deciding whether or not you are a credit risk, and if they decide you are, they are canceling your credit card. That vacation you wanted? Gone. That house you wanted? Never. That's power that Google simply doesn't even come close to having!)

<comment><USER9> Unlike the other companies mentioned there is very little alternative to Google. Especially if you target the technical demographic. If CVS does something bad, I can go to Rite Aid. However if Google delists you, your customers most likely won't go to Bing, or DuckDuckGo, you'll be dead. Furthermore, if you're not "relevant" to your search term, then advertising for that term will be prohibitively expensive. So you're screwed two ways.

I'm just saying their current status quo coupled with the power they have is scary. They should, like the banks, communicate with you. Even if it's not that detailed, a little bit of interaction goes a long way. They already have humans reading your reconsideration requests, they should allow them to issue a response, instead of just an automated reply. It shouldn't be this guessing game that we play. It's not OK that something that controls almost all of search is that inaccessible to communication, follow-up, and resolution.

<comment><USER10> How much do you think they can tell you without revealing the signals they use to determine relevancy?

The fact is their current policy is in all likelihood the one that allows them to serve relevant results to the greatest number of people for the lowest cost. If they start giving it the personal touch as you say then the cost will go way up it won't bed just you and the occasional accidental delisted site owner but will be every spammer, con artist, and fly by night SEO expert. The support costs would be astronomical. And your hoped for solution is to have a government entity step in and mandate they spend that money in a hopeless attempt to let you talk to someone in person? In short you want the government to force Google to reduce its profits, potentially drastically, for your own personal benefit.

<comment><USER6> Won't someone _please_ think of the OP's failed business model? The government _needs_ to protect the lucrative business of owning a link farm!!

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Seems pretty logical to me. As much diversity as Google has, they are still a search company. A lot of the tech they leverage in other areas seems to come from competencies they acquired while improving search.

I never understood why people think they are positioned against FB.. Google and FB don't solve very many of the same problems.

<comment><USER12> > I never understood why people think they are positioned against FB.. Google > and FB don't solve very many of the same problems

They don't, but they share one common goal: Get money from advertisers, who are targeting people looking for some thing.

This "some thing" is obvious on Google, its users are in buying mode even before entering the query term.

Now, _if_ (and that's a big if), FB can connect advertisers and buyers, it'll slow down Google, because people will have spent their money with FB advertisers.

Google and FB customers are their advertisers. They might do completely different things but their revenue source is similar.

I personally don't believe in this. Facebook doesn't share the same easiness of monetization as Google, and it has some huge issues of making its visitors enter buying mode.

But there you go... even if I disagree, that's why some people think of a FB vs. Google fight. Follow the money :)

<comment><USER13> If you think of advertising as "traditional advertising" and "internet advertising", then FB and Google are certainly rivals. However, in pure marketing terms, they are actually very different.

Google search ads EXCEL in "Demand Fulfillment" - say you want need a plumber now since your toilet is overflowing. I don't think Facebook will ever beat Google here. Google sort of created this niche where they were better than any competitor that had ever existed.

Facebook, on the other hand, is better at demand generation. Consider advertisers who want to reach teenagers who would want to buy videogames - <USER2> new game is coming out, and they want you to know about it. Before, you'd have to find the TV shows that they would watch, or billboards that they would see, or queries that gaming-teens would search for, and advertise there. These are all competitive and difficult proxies for the audience you want to reach. Facebook is a much better place for that than Google.

In fact, you can imagine synergy between FB ads and Google ads. FB tells people, "you should listen to this band that you haven't heard of", and when you Google that band name, you see ads for places to buy tickets and albums.

<comment><USER14> Google has AdSense / Doubclick network. This is a huge number of eyeballs with many banner types. And Google knows my basic browsing history via cookies and my entire search history. At least for me, Google knows exactly what I'm interested in, tend to purchase, and tend to click on. Facebook knows my basic demographic profile, which isn't really that valuable. I'd say the value of Google's data is about 50 times Facebooks.

</comment></comment></comment></comment><comment><USER15> I like how his cool confidence stands in contrast to Steve "I'm going to fucking kill Google" Ballmer's aggression. Notice how generous he is with compliments for Google's competitors.

<comment><USER16> Probably easier to do when you're on top. If he seemed anything but confident it would raise a fair few flags (media would be all over it too).

</comment></comment><comment><USER17> can somebody explain how being on facebook stops people from searching on google?

<comment><USER18> I guess, the more time they spend on Facebook, the less time they spend googling?

<comment><USER6> Two different activities. If I want a map from 123 Fake St. to 742 Evergreen Terrace, I am going to use Google Maps, not Facebook. If I want to know how many degrees Fahrenheit 100 Celcius is, I'm not going to ask Facebook, I'm going to ask Google.

If I want to look at drunken pictures of my friends, though, then I will definitely use Facebook. I use each tool for what it's good for, and I think most other people do the same because it comes naturally.

(I hate structured socialization, though, so I don't use Facebook. But I can accept that I'm abnormal in that respect.)

</comment></comment></comment><comment><USER19> Very good interview. I think it's smart that he is not underestimating Bing. Mr. Schmidt also has great comments clarifying Google's position on the net neutrality announcement with Verizon (about 12:00 mark).

<comment><USER20> Agreed. I also found it a very informative video

</comment></comment><comment><USER21> It makes a lot of sense, android and phones are a complement to their business. Android is simply a way of reducing the cost for producing more phones. Facebook while large doesn't pose a serious threat to "organizing the worlds information" once Facebook sells their social graph information Google will simply purchase it and use it to further optimize search results. Neither Facebook, nor Apple are real competitors to Google's core operations. Google is a much more serious threat to Apple with Android than Apple is to Google with iPhone. Facebook and Apple ARE threats to mind share, but that pales in comparison to a threat to the bottom line.

Bing IS a threat also because Microsoft has a large stake in Facebook and could ostensibly find itself with preferential rights to Facebook's social graph. If Bing could integrate the graph into results first it could give them huge search advantages. Traffic from Bing also costs about half of what it does from Google.

</comment><comment><USER22> I felt really annoyed by the interviewer. It seemed like along with information gathering, he was equally interested in creating controversy.

Did you notice how, instead of asking Schmidt questions, he posed contentious statements? "CERTAINLY Google must be scared of Facebook!" He did that with everything. Look how Mr Schmidt scrunches his face at about 2:00 when the interviewer tells him how he must be feeling.

</comment><comment><USER23> Isn't it likely that FB is making google _more_ ad money without google having to lift a finger? On FB, a good chunk of links to "outside world" stuff pass around. Websites do fbconnect 'cos FB&twitter drive traffic to them. Google places contextual ads on these sites and in youtube videos _without_ anybody needing to search for anything. Even youtube has "share on FB" button.

I don't think FB can keep their soc graph to themselves for much longer .. if as ES says people will just give the data to google ... just as they probably do for FB now. (You can tell FB to crawl your gmail contacts and link up.)

So by that argument I can buy ES's "FB is not our prime competitor" statement. Apple is somewhat obviously not a competitor since google can also push ads to iOS devices and pull data like location.

That leaves Bing .. which makes me scratch my head. The only reason I can think of for google considering Bing to be their main competitor is to avoid antitrust suits by not looking like a search monopoly.

Side note: FB's ads are pretty funny actually. I keep getting "Download Chrome, a fast browser" ads on my FB page despite the fact that I'm viewing the page in Chrome.

<comment><USER23> To put it another way, when I hear "google is a search company", I take it to mean "google's business depends on searching the internet" instead of "people use google to search the internet" - the former being much wider in scope than the latter.

</comment></comment><comment><USER24> Facebook and Apple? Where'd they come up with that one?

</comment><comment><USER25> To me Bing sounds too much like "bling". Does anyone else have that silly word association stuck in their head?

<comment><USER26> I always think of Ned Ryerson from Groundhog Day. <http://www.youtube.com/watch?v=xkW_ZkMtmlQ>

</comment></comment><comment><USER27> It's funny, in my mind I always think Eric Schmidt looks like Egon from the Ghostbusters, and whenever I see his picture I always think to myself, 'Who is _this_ guy?!'</comment>


Domino's trials pizza delivery by robot - <AUTHOR> http://www.telegraph.co.uk/technology/2016/03/18/dominos-trials-pizza-delivery-by-robot/ <comment><USER2> > _can currently reach speeds of up to 20 kilometres an hour._

That's quite impressive. I guess Domino's will indeed have to choose the neighbourhoods they deploy this to carefully, as at best some would graffiti it and at worst they would steal or destroy it.

> _customers will be required to complete their orders on the kerb._

Bit of a deal breaker there - I don't want to have to put on proper shoes and clothes, navigate rain, wind and snow to negotiate with a machine! On a positive perhaps it won't expect a tip.

The original lifehacker article has more details:

[http://www.lifehacker.com.au/2016/03/dominos-is-launching- an...](http://www.lifehacker.com.au/2016/03/dominos-is-launching-an- autonomous-pizza-delivery-robot/)

<comment><USER3> I'm from the East Island of New Zealand (Australia), we don't tip here and I don't believe tipping in NZ is a thing either. NZ has a minimum wage of $15.25[1], so the delivery bot should be able to feed it's family and pay the rent without tips.

1\. [http://employment.govt.nz/er/pay/minimumwage/](http://employment.govt.nz/er/pay/minimumwage/)</comment></comment>


Why Amazon's Data Centers Are Hidden in Spy Country - <AUTHOR> http://www.theatlantic.com/technology/archive/2016/01/amazon-web-services-data-center/423147/?single_page=true <comment><USER2> I wish I had the writing aptitude to commit to paper 1000+ words on a visit to an industrial park and surrounding suburb.

</comment><comment><USER3> FWIW, AWS openly publishes where their data centers are physically located. Customers who wish to order direct connect circuits have to know where to have their carrier to drop the other end of the circuit. Alternatively, some customers who want a hybrid cloud but would like the physical gear and AWS instances to be just a short fiber cable or two away and avoid a circuit altogether need to know where to buy a cage.

[http://docs.aws.amazon.com/directconnect/latest/UserGuide/Co...](http://docs.aws.amazon.com/directconnect/latest/UserGuide/Colocation.html)</comment>


Ask HN: What are the best charities that do some good? - <AUTHOR> I mean, don't just hold the money and pay obscene salaries to their executive teams - and have demonstrative, quantitative evidence that they contribute to solving the problem they are focused on.<p>Thanks <comment><USER2> [https://www.givewell.org/charities/top- charities](https://www.givewell.org/charities/top-charities)

</comment><comment><USER3> I like Software Freedom Conservancy:

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

</comment><comment><USER4> Charity:Water

[https://www.charitywater.org/](https://www.charitywater.org/)</comment>


Javascript Security Wonderland - <AUTHOR> http://continuations.wenger.us/post/35834226/javascript-security-wonderland <comment><USER2> So, cross-domain restrictions are easily bypassed by creating a <script> tag with document.createElement and setting its src property to whatever you want. I am surprised that I didn't know about this simple trick. Javascript dynamicness strikes again!

The author's upset about this, but the legitimate uses seem pretty exciting.</comment>


Ask HN: Can a detailed CGI animation serve as prior art for a patent? - <AUTHOR> I've got a robotics idea that I don't have the time to pursue right now, but I don't want to be prevented from pursuing it in the future by someone else patenting it.<p>If I made a CGI movie of the idea and disseminated it publicly, could that count as prior art that would prevent someone else from monopolizing the idea? <comment><USER2> Patents are a joke. Fancy CGI is overkill considering that patents are based on black and white line drawings. The best way to prevent a patent is probably to file an application yourself then don't pay the issuance fee. AFAIK the first thing patent examiners look at is previous patent applications.

</comment><comment><USER3> Best thing you should do: consult a patent attorney.

Given that, anything that is published publicly, and upon which a date of publication can be proven, can serve as prior art for a patent.

But, also keep in mind that after one year, your movie would also block you yourself from patenting the material in the movie as well.

<comment><USER4> Also note that the "1 year" thing is only true in the US (I think), and that in most jurisdictions, disclosure immediately prevents patenting.

IANAL, etc.

<comment><USER3> You are correct, the 1-year part is specific to US rules.

</comment></comment></comment><comment><USER5> IANAL, however in general ideas are not protectable.

Even if your animation is admissible as prior art, there is nothing stopping someone from pattenting so much of the implementation process that you are still effectively prevented from pursuing it.</comment>


Show HN: DNS server with ad sites blocked - <AUTHOR> https://dns.dbalan.in/ <comment><AUTHOR> This is DNS server version of the excellent host blocking rule maintained here: [https://github.com/StevenBlack/hosts](https://github.com/StevenBlack/hosts)

This was setup in mainly to stop my android loading ads all the time. This is no way standards compliant (for starters, it caches everything for a fixed time and discards TTL values) but worked well so far. Comments are appreciated.

</comment><comment><USER2> This is awesome (I don't have a valid evidence to prove it but these guys are my friends and whatever they do turns out to be awesome)</comment>


Lab-Grown Diamonds Come into Their Own - happy-go-lucky http://www.npr.org/2016/12/01/502330818/lab-grown-diamonds-come-into-their-own <comment><AUTHOR> I've been running a lab-grown diamond company since 2005. I'd be happy to answer any questions in the morning.

<comment><USER2> How cheap can good quality diamond get?

If you're buying raw carbon in the form of coal, it costs about $40 per ton.

The rest is manufacturing details. I know there's a _lot_ of manufacturing details, but the cost of the inputs suggests that diamonds in bulk could be much much cheaper.

<comment><AUTHOR> If a large enough production facility (no R&D) had nearly every growth cycle yield large enough, colorless, flawless diamonds (or close to it), the retail prices could come down more than they currently are. However, that does not reflect the current reality and all producers today are basically in R&D mode with mixed success rates and mixed finished quality.

If someone showed up tomorrow with a check for several million dollars, I believe we could "disrupt" the current diamond pricing within 3-5 years. However, as I mentioned in another post in this thread, raw cost of production will still keep those "disrupted" non-R&D diamonds much more expensive than moissanite, CZs, sapphires and other gemstones.

Diamond is a form of carbon, and its growth is more-or-less determined by nature. The cost of production over time will be more similar to an industry like steel, than assembled goods like TVs or computers. There are improvements to be made, but they are more linear over time, than exponential breakthroughs.

For raw carbon, we use a highly refined and purified form of graphite. If you used the $40/ton coal, you would not be successful in growing jewelry-quality diamonds, and even if you did, the other costs wouldn't really change your ultimate price much.

Another analogy is gold. You can buy a 1 Troy-ounce bar of 24 karat gold for a bit over $1000. However, a solitaire engagement ring with much less actual gold content can cost more than $1000. People ask why the jewelry is more expensive, but don't include the cost for refining and alloys, design, 3D printing or molds, casting and investments, polishing, setting, shipping, ring boxes, and all the other overhead associated with turning that gold bar into a sold, ready-to-wear ring.

</comment></comment></comment><comment><USER3> In addition to created diamonds, there are other stones that are different from and in some aspects better than diamonds.

The best one seems to be Moissanite, which also has the rather pedestrian name of silicon carbide. See [https://en.wikipedia.org/wiki/Moissanite](https://en.wikipedia.org/wiki/Moissanite)

Here's a strong opinion about why diamonds suck and you should go with alternatives: [http://diamondssuck.com/](http://diamondssuck.com/)

Lastly, a more dispassionate analysis: [http://www.doamore.com/diamonds-vs- moissanite/](http://www.doamore.com/diamonds-vs-moissanite/)

Moissanite can be 90% cheaper than equivalent diamond, not just 30%.

<comment><USER4> Yep, my now fiance loves her Moissanite stone. I actually got it from AliExpress and then had it appraised by a jeweler to check it's authenticity. Saved a bunch of money and got a great product.

<comment><USER5> Pictures?

<comment><USER6> Diamon vs Mossanite: [https://www.youtube.com/watch?v=XZE3Vkb85Z4](https://www.youtube.com/watch?v=XZE3Vkb85Z4)

<comment><USER5> Thank you!

Both pretty but I can't see myself spending much on either.

</comment></comment></comment></comment></comment><comment><USER7> The fact that there is so much concern over how to differentiate mined diamonds from grown diamonds seems like insanity to me. I understand that the diamond trade has a vested interest in differentiating, but why would end consumer care? They're the exact same product to the unaided eye. This is a purely emotional response. I guess the thing that bothers me the most is that it's a misguided emotional response -- it seems clear that it would reduce human and environmental suffering to purchase the grown diamonds.

<comment><USER8> Because the purveyors of diamonds, and you could argue jewelry in general, have positioned themselves as proxies for love and sex. Those are the things we value and the reasons we spend money, but we're not allowed, either by societal convention or law, to spend money on them directly. But we're allowed to spend exorbitant amounts of money on a glittery status symbols that serves as a measure of devotion. It's not the rock itself that's important, it's the willingness to sacrifice a substantial amount of money.

So if the point of buying a diamond is to show your love for someone by sacrificing a meaningful amount of money, it becomes important to distinguish between stones that someone actually sacrificed a substantial amount of money to purchase and stones where someone didn't sacrifice as much.

We'd do better to address the insane custom of needing an expensive proxy for love. Think about it...if the custom were for a man to take two months salary, withdraw it from the bank in $100 bills, drop to one knee and present it to his girlfriend while asking her to marry him, we'd find that insulting. It would be like he's paying for love/sex, which our society deems dirty or objectifying to women. But substitute a glittery rock mounted on a hunk of metal, both largely obtained by heaping further misery on various third-world locations, and we somehow find that acceptable? Accepting the money would make her a whore, but accepting the ring just means her boyfriend loves her?

It's illogical and hopefully more women start making it known to their boyfriends that the ring isn't necessary and all that extra money, if it needs to be spent on something impractical, can be spent on making the wedding just a bit more lavish.

<comment><USER9> Very wise. It's going to be up to the women to tell their men they don't want this crap. At the end of the day us men are just going to get you what you want to make you happy.

</comment></comment></comment><comment><USER10> I shopped for created diamonds a year or two ago, and like others was disappointed with the cost savings. It seems awfully odd that on the spectrum from $0.01/caret to $1,000,000/caret, that created diamonds ended up costing exactly the same as a mined diamond, less maybe 30%. It's clear that there are only a couple players in the clear created diamonds market, and no one is too eager for a price war and to stop printing money. In which case it doesn't sound all that different from the mined diamond market

<comment><USER11> It's different in that there are a lot less slaves and warfare involved in the production of these new products.

</comment></comment><comment><USER12> This is wonderful! I can't comprehend the need to mine for diamonds any longer. Such a dangerous, dirty, damaging practice. It is sad to see that the industry is trying to paint these as inferior.

I would love to see some sort of tariff or sanction placed on mined diamonds to make them restrictively expensive. There is simply no need for them any longer.

<comment><USER13> Not all diamond types/classes are being manufactured. Synthetic diamonds will always be different from natural stones specifically because they lack natural imperfections. Not everyone wants perfection.

<comment><USER14> Imperfections can be added

<comment><USER15> Imperfection are naturally formed, you cant naturally create imperfections that just become by definition artficially created imperfections.

<comment><USER16> Well, what if it's done randomly? (like, by software that controls the machine that grows it)

Or, modify the growing process so that it has a greater element of chance to it? (this is likely multi-dimensional)

<comment><USER15> Whatever randomization isn't natural (and it can't be completely random as it needs to look natural). But it's not really the point.

A diamonds primary value is the history of it's making. People are unfortunately always going to be paying more for a diamond which has been digged out by hard labour than created in a lab.

Keep in mind the value of diamonds is mostly a perceptive one. I am pretty sure if you only did synthetic diamonds it would soon fail to be valuable as the "womans best friend"

</comment></comment></comment></comment></comment></comment><comment><USER17> > His lab can tell the difference — they use microscopes and other instruments > to look for subtle features that reveal a diamond's origin.

Wild guess as to why anyone can tell the difference: Lab-grown diamonds are more perfect than mined ones. It's probably pretty trivial to introduce impurities to degrade the color, or change the deposition temperature in order to create faults in the lattice. Hell, throw in a microparticle or two for inclusions.

I'd love to know more though, anyone got a reference?

<comment><AUTHOR> Diamond growers try their best to keep out impurities and imperfections. Elemental impurities do add color (nitrogen=yellow, boron=blue), same as mined diamonds, and faults and inclusions do naturally happen in the process. However, at an atomic level, they are different than inclusions and imperfections in mined diamonds.

As a producer, I don't see any incentive to make them imperfect on purpose, yet still distinguishable from mined diamonds. All larger diamonds intended for gemstones come with independent grading reports, which will still identify it as grown regardless of presence or lack of impurities and imperfections.

While not technically correct, some of the advanced detection equipment can be thought of like looking at growth rings on a tree. You (probably) can't replicate the growth rings of a 200 year old tree in a 5 year old tree, yet both are perfectly valid sources of wood (sustainability, etc. aside).

</comment></comment><comment><USER18> It's funny to see this pop up now. I've spent the past few days researching my big experiment project for next year: an open design CVD reactor for artificial diamonds.

I don't intend to commercialize it at all, but if I can 1) learn a lot, 2) make an open design that others can build on, and 3) (the long shot) make small diamonds for my wedding ring at the end of the year, I'll be a happy man.

If anyone is interested in working on this (particularly if you have experience designing systems dealing with pressurized gasses), my email is in my profile.

<comment><USER19> I would love to get into hacking/tinkering based on processes like MBE/CVD etc. Does anyone know where to get started in terms of reading, what are the options for a hobbyist?

<comment><USER18> I can't speak to MBE, but for CVD I mostly just googled around and read any papers I could find. However, IIT Madras has an entire course on the subject, all of which are on youtube: [https://www.youtube.com/watch?v=fsDO7gUBYjg](https://www.youtube.com/watch?v=fsDO7gUBYjg)

I've been learning a lot from that, though it's focused on laying down semiconductor layers; most of the info on CVD diamonds seems to be locked away in proprietary processes for various manufacturers. I foresee a lot of failed experiments in my future!

</comment></comment></comment><comment><USER20> Let's give Moissanite a new catchy, less complex name. Else, it will remain unknown.

I propose the name Moon Stone.

Star fire would have been great but it'll be confused with Sapphire.

See ffg for effect of company name pronunciability on market share, stock price, brand value...

[http://m.pnas.org/content/103/24/9369.full](http://m.pnas.org/content/103/24/9369.full)

[http://russelljame.com/Fluency_JFE_2013.pdf](http://russelljame.com/Fluency_JFE_2013.pdf)

<comment><USER21> "Sanité" \- it's related to 'moissanite', the 'é' makes it sound classy, and of course it's pronounced 'sanity' as that is what it brings to the whole ridiculous diamond situation.

</comment></comment><comment><USER22> At some point in the near future, maybe 1 year, maybe 10, anyone with a spare couple million dollars will be able to buy a machine to grow diamonds indistinguishable from mined diamonds, defects and all. No one will be able to tell at all, and the market will be flooded. Prices for mined & manufactured alike will crater.

There is no future for mined diamonds.

<comment><USER23> at some point 15-20 years or so ago De Beers started laser etching logos on the diamonds for exactly this reason.

<comment><USER24> Wasn't the public reason for laser etching to prevent conflict diamonds from having a market?

</comment></comment></comment><comment><USER25> The largest diamond in the world still is natural, isn't it? Will it ever be synthetic and if so when?

<comment><USER26> >The largest diamond in the world still is natural, isn't it?

It's most definitely a natural diamond, and it's also most definitely undiscovered in some incredibly rich diamond deposit.

</comment></comment><comment><USER27> Only 30% cheaper?

I once heard a dollar a caret from one of the startups a decade ago...

<comment><USER28> Without actually knowing anything about the subject my guess is that the very cheep synthetic diamonds you heard about were / are intended for tools, (Where all that they care about is the hardness, so they can be small, yellow, and messy)

Also, I do know that you can get synthetic ruby for ~$1/carat on ali-baba. (I actually bought a few)

</comment></comment><comment><USER29> Aren't pearls cultured for decades now? They are still sought for, nothing is more beautiful in a woman's neck than a pearl collar.

<comment><USER30> Not that it really matters at the end of the day, but there's probably some charm in knowing that your "cultured" pearl was still formed inside a bivalve living in the ocean, versus being made in a machine like a porcelain gobstopper.

That said, check out this cool picture: [https://media.licdn.com/mpr/mpr/shrinknp_800_800/AAEAAQAAAAA...](https://media.licdn.com/mpr/mpr/shrinknp_800_800/AAEAAQAAAAAAAAZTAAAAJDVmNWFlMzJmLWU0ZWYtNDM5OS04YzAxLWIzYmRjZGQzNDY4ZQ.jpg) I didn't realize it was so industrial...

</comment></comment><comment><USER31> > And larger stones get laser-inscribed, so that the manufactured stones > literally have words like "lab-grown" written right on them.

Why?

<comment><USER32> Manufacturers want their product to be accepted for what it is, rather than a vehicle for defrauding others.

If someone bought a manufactured stone expecting it to have been mined (and paid the premium currently accorded to mined stones), the buyer might direct a fraction of their disappointment at the manufacturer, instead of the deserving fraudulent seller.

Adding a nigh-invisible mark makes it trivial for a jeweler to tell the difference, and stops all but the least-informed fraudulent sellers before they begin.

</comment></comment><comment><USER33> Is it true that it's actually illegal to pick up a diamond off the ground in South Africa?

</comment><comment><USER34> Are these also going to be artificially inflated like mined diamonds?</comment>


Google launch 'Tech Support Care package' for parents - <AUTHOR> http://www.teachparentstech.org/

<comment><USER2> The site needs better division between Mac and PC hints.

Some of them, e.g. "resize a picture," are Mac-specific but not marked as such.</comment>


EU Referendum results data - <AUTHOR> http://www.electoralcommission.org.uk/find-information-by-subject/elections-and-referendums/upcoming-elections-and-referendums/eu-referendum/electorate-and-count-information <comment><USER2> What I found surprising is how close it was in places that are being cast as representing one side or the other. Scotland, which is portayed as wanting to remain in the EU so much that independance is now likely, still had 38% wanting to leave. Wales, which is being painted as being in solidarity with (non-London) England, still had 47% wanting to remain.

</comment><comment><USER3> Very nice data. But strangely Northern Ireland has no detailed area information. Every other region seems to.

<comment><USER4> Northern Ireland was counted as one block, there was no regional voting.

<comment><USER5> There was some breakdown for Northern Ireland, but I haven't found the raw figures

See the map here - [http://www.bbc.co.uk/news/politics/eu_referendum/results](http://www.bbc.co.uk/news/politics/eu_referendum/results)

(Edited added see the map for clarity)</comment></comment></comment>


Four years of token sales in one animated graphic - <AUTHOR> https://elementus.io/blog/token-sales-visualization/ <comment><USER2> Love this visualization!</comment>