The Byzantine Generals Problem (1982) [pdf] - <AUTHOR> http://lamport.azurewebsites.net/pubs/byz.pdf <comment><USER2> Taken from [0]: There is a problem in distributed computing that is sometimes called the Chinese Generals Problem, in which two generals have to come to a common agreement on whether to attack or retreat, but can communicate only by sending messengers who might never arrive. I stole the idea of the generals and posed the problem in terms of a group of generals, some of whom may be traitors, who have to reach a common decision. I wanted to assign the generals a nationality that would not offend any readers. At the time, Albania was a completely closed society, and I felt it unlikely that there would be any Albanians around to object, so the original title of this paper was The Albanian Generals Problem. Jack Goldberg was smart enough to realize that there were Albanians in the world outside Albania, and Albania might not always be a black hole, so he suggested that I find another name. The obviously more appropriate Byzantine generals then occurred to me.

[0] [https://www.microsoft.com/en- us/research/publication/byzanti...](https://www.microsoft.com/en- us/research/publication/byzantine-generals-problem/)

<comment><USER3> The original is a well known problem in logic which my lecturer touched on. If you have each general on a mountain and a valley between the two, then you have no way to know whether the other received the message. If you send back a confirmation, then you have no confirmation confirmation... etc.

In my (at the time occasional) drunken state I may have thought every now and a again, after 13 confirmations of confirmations surely you can just attack! But alas, it all falls flat: You have no way of knowing the final confirmation, the one before that, etc. until you are back where you started.

By the way, this only applies to _lossy_ communication without feedback. A Whatsapp text syncronises via a server. As long as the server is up and confirms both sides, you can be quite sure the other side received the message. This is manifested these days in the form of the infamous blue ticks.

<comment><USER4> How does a server fix the problem?

The server still doesn't know whether the sender knows that the server received and acknowledged your message, so you might want an ack from server, but again, the server doesn't know if you received the ack, so you ack the ack, but again ...

<comment><USER5> Basically, the server assumes that if the client has ACK'd the message, it can continue sending data. The client assumes that the server has received their ACK if it continues sending data.

If no data is being sent, the connection is closed via timeout eventually.

<comment><USER4> I am talking about the Two General's problem which I thought original commentator was referring to as the original problem.

In this situation you are describing a server that wants to send a client a message, and both parties need to be sure that they are in agreement when to attack a common enemy they can't deal with alone because the message contains the attack plans and timestamp for attacks.

Wikipedia has a good explanation:

"The first general may start by sending a message "Attack at 0900 on August 4." However, once dispatched, the first general has no idea whether or not the messenger got through. This uncertainty may lead the first general to hesitate to attack due to the risk of being the sole attacker.

To be sure, the second general may send a confirmation back to the first: "I received your message and will attack at 0900 on August 4." However, the messenger carrying the confirmation could face capture and the second general may hesitate, knowing that the first might hold back without the confirmation.

Further confirmations may seem like a solution—let the first general send a second confirmation: "I received your confirmation of the planned attack at 0900 on August 4." However, this new messenger from the first general is liable to be captured, too. Thus it quickly becomes evident that no matter how many rounds of confirmation are made, there is no way to guarantee the second requirement that each general be sure the other has agreed to the attack plan. Both generals will always be left wondering whether their last messenger got through. "

There is no solution, only a decreasingly smaller change of disagreement e.g. by sending many messages or keep acking each other x amount of rounds (there are other strategies).

No timeouts, only death.

<comment><USER6> What if they send a message that general 1 is going to fire a flare at 0900 and if general 2 fires one too then they both attack. Basically make the confirmation something that you can get without relying on the same method of communication

<comment><USER7> A single line of communication is a constraint of the problem. And anyway, how does general 2 confirm the answer flare was seen?

<comment><USER8> With a reciprocal flare :-)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I'm reluctant to broach the subject, but is a _" Blockchain"_ based system a solution to the "The Byzantine Generals Problem"?

> _A. All loyal generals decide upon the same plan of action._

All actors arrive at an immutable consensus (the current transaction group in the blockchain).

> _B. A small number of traitors cannot cause the loyal generals to adopt a > bad plan_

It has protection against a small number of bad-actors as they require proof of work/stake which prevents against bad-transactions up until 51% attacks.

I don't have much knowledge in the area though, any thoughts?

<comment><USER10> I am quite sure Satoshi Nakamoto suggested it as a probabilistic solution, yes, but not a full one[0]

[0] [https://ethereum.stackexchange.com/questions/40213/how-is- th...](https://ethereum.stackexchange.com/questions/40213/how-is-the-two- generals-problem-solved-with-proof-of-work)

<comment><USER11> The problem doesn't have a "full solution", like any fault tolerance in general, only probabilistic one.

</comment></comment></comment><comment><USER12> By the way, one of the paper authors – Leslie Lamport – is _the_ Leslie Lamport, creator of LaTeX. He is probably one of the reasons behind beautiful typesetting of this and other papers.

<comment><USER13> I always associate Lamport with distriubted systems. I forgot he did LaTeX, I think about TLA+ and Lamport clocks!

<comment><USER14> and paxos!

<comment><USER13> The mans a genius

</comment></comment></comment></comment><comment><USER15> A thread from 2018: [https://news.ycombinator.com/item?id=17702640](https://news.ycombinator.com/item?id=17702640)

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

Others?

(These links are just for curious readers; reposts are ok after a year or so—see [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html))

</comment><comment><USER16> This brings back memories, I worked on a system that had to be fault-tolerant during an internship and this paper gave me a lot of insight into why some design choices (ie the number of processors) were made.

</comment><comment><USER17> Can someone ELI5?

</comment><comment><USER18> Bitcoin fixes this

</comment><comment><USER19> My most frustrating thing about the crypto movement was how uneducated people were.

People had no idea that POW isn't scalable, yet would insist that a Bitcoin copy-paste would solve the problem. Or that a centralized coin was the future. Or that proof of stake was a working solution.

I still hear people wrong today. I only imagine that if people understood, there would be less altcoin mania.

<comment><USER20> I view the PoW problem as being a subset of a broader problem with otherwise- efficient markets: there are often game-theoretic incentives to be _intentionally inefficient_. An example from nature is a peacock's tail, wasting resources to signal genetic fitness [0]; an example from consumer products is the Veblen Good [1] (aka conspicuous consumption), where wealth is wasted to signal status.

At minimum, I think we need a carbon tax (ideally paired with a revenue- neutral dividend), which might alter the incentives for crypto mining. But I don't think it would be unreasonable for industrialized nations to ban useless PoW operations outright. While I've read cogent explanations of PoS having game-theoretic shortcomings relative to PoW, given the growth of bespoke ASICs and the capital requirements of modern mining operations, PoW seems to me to be indistinguishable from PoS with extra steps, while also being an ecological nightmare.

[0] [https://en.wikipedia.org/wiki/Signalling_theory#Sexual_selec...](https://en.wikipedia.org/wiki/Signalling_theory#Sexual_selection)

[1] [https://en.wikipedia.org/wiki/Veblen_good](https://en.wikipedia.org/wiki/Veblen_good)</comment></comment>


Community-developed Pivot Power strip now available to order - <AUTHOR> http://www.engadget.com/2010/06/29/community-developed-pivot-power-strip-now-available-to-order/

<comment><AUTHOR> Wow, I am blown away by the concept of community-developed hardware. The power strip isn't bad, either :-)</comment>


YouTube ordered to remove videos, filter future uploads by German court - Suraj-Sun http://www.dw.de/dw/article/0,,15900125_page_0,00.html

<comment><AUTHOR> I hope Google blocks Youtube in Germany. That will push the Pirate Party there to 30%. It won't be long until the laws will be changed and this will completely backfire against GEMA, which even Sony said they don't like because they are too aggressive with their content censorship in Germany.

<comment><USER2> Or, more than likely, if Youtube and others can't afford to deal with the restrictions imposed on them by GEMA and the courts - GEMA is now free to prop up their own front. Of course, at little to no licensing fees to the operators, while making a tidy profit by giving GEMA the control they desire.

It looks like a textbook regulatory capture play, through the courts rather than the legislature.

<comment><USER3> Uh... If Sony and all the other Record companies couldn't make it, then what makes you think that GEMA can do what they can't? It's not like they have any sort of innovative platform - they seem to be spending most of their time enforcing copyright!

That business model is... limited.

</comment></comment></comment><comment><USER4> YouTube is already unusable from a German IP, the most ridiculous example of which is that the German National Anthem can't be watched from Germany.

</comment><comment><USER5> I am from Germany and it is so sad.

I love to listen to Grooveshark while coding and a few months ago Grooveshark disabled their site for people from Germany because of high GEMA related costs.

To work around this I installed a Chrome extension called Grooveshark Germany Unlocker ([https://chrome.google.com/webstore/detail/docdgimmdejoiemdaf...](https://chrome.google.com/webstore/detail/docdgimmdejoiemdafcgeodchlbllgac?hl=de)) which does some proxy magic.

For accessing Youtube content blocked by GEMA I usually use Stealthy (another Chrome extension).

I never have thought that I need these kind of tools - but I do.</comment>


personal guidelines (by justin kan - kiko cofounder) - <AUTHOR> http://jkanstyle.com/2006/08/28/20/ <comment><USER2> Haha. As much as it sounds like self-help, new age material, I like them all.

Thanks!

Jimmy Lin</comment>


Trump Formally Notifies of U.S. Withdrawal from WHO Effective 2021 - <AUTHOR> https://www.nytimes.com/2020/07/07/world/coronavirus-updates.html <comment><USER2> From the 1985 movie clue, Professor Plum works for the WHO. —-

Miss Scarlet :

I hardly think it will enhance your reputation at the U.N. Professor Plum, if it's revealed that you have been implicated not only in adultery with one of your patients, but in her death and the deaths of five other people.

Professor Plum : You don't know what kind of people they have at the U.N., I might go up in their estimation.</comment>


Nest to build out IoT with acquisition of Revolv's home hub engineering team - <AUTHOR> http://www.networkworld.com/article/2838949/opensource-subnet/nest-to-build-out-iot-with-acquisition-of-revolvs-home-hub-engineering-team.html

<comment><AUTHOR> The next step for IoT in the home will enable devices from different manufacturers to communicate with each other.

Spending $3.2 billion for Nest in January, followed by a $555 million buyout of Dropcam in June and last week's acquisition of Revlov for an undisclosed amount, Google is moving quickly into the home Internet of Things (IoT) market.</comment>


Why We Need Innovative Nuclear Power - <AUTHOR> https://blogs.scientificamerican.com/observations/why-we-need-innovative-nuclear-power/ <comment><USER2> The Interchange did a great episode about Nuclear Power a while back [1].

They mentioned a few problems everyone knows about nuclear (NIMBY, financing, licensing, etc), but one of the unintuitive problems was the lack of institutional memory for construction. Westinghouse et.al. will design the core of the plant, but each plant is constructed by a series of contractors and subcontractors who many times, have never constructed anything this precise before. Jessica Lovering compared it to constructing cathedrals (in that each one was bespoke). This makes each one effectively as expensive as the last.

This is one of the many problems companies like TerraPower are trying to solve: Not just dropping up front cost (finance) or making it more stable (NIMBY), but also trying to build a living knowledge of how to build reactors repeatably.

Total tangent: My pet theory is that if it gets really bad, we'll just start building floating nuclear reactors and park them within transmission distance from cities. Ironically we have a ton of experience with floating nuclear reactors from maintaining a large nuclear-powered navy.

[1] [https://www.greentechmedia.com/articles/read/can-we-make- nuc...](https://www.greentechmedia.com/articles/read/can-we-make-nuclear- power-great-again#gs.2th7GMg)

<comment><USER3> Naval reactors are very different. They dont, most of them, generate electricity. Thier steam pushes propellers. And they are also self-contained within ships. Getting the power from the reactor to shore is a huge task, the bigger task imho. Naval reactors are also smaller and not as efficient than a civilian reactors. They are biult for different priorities (low manning, variable power, long operation at very low power, decades between refits etc). And they have a failsafe not applicable to a civi reactor near a city: evacuate and sink it to the bottom.

<comment><USER4> No comment on the other points but the reactors in the new Ford-class carriers generate electricity, not steam, which is part of the reason those carriers use electric catapult.

<comment><USER5> _"the reactors in the new Ford-class carriers generate electricity, not steam"_

All nuclear reactors generate steam. That steam then drives a turbine which generates the electricity.

The difference in the Ford class is that the steam turbine is bigger, powering most of the ship's systems via an electrical bus rather than by piping steam around the ship. This approach reduces complexity and maintenance costs.

<comment><USER6> High temperature reactors use helium as the coolant can use the brayton cycle turbines instead of steam turbines. [https://en.wikipedia.org/wiki/Brayton_cycle](https://en.wikipedia.org/wiki/Brayton_cycle)

[https://en.wikipedia.org/wiki/Very-high- temperature_reactor](https://en.wikipedia.org/wiki/Very-high- temperature_reactor)

</comment></comment></comment></comment></comment><comment><USER7> Love this. Close to my heart - Nuclear power is key to making a clean, reliable, safe, and robusts electrical grid. Plus - this is the only realistic way _right now_ to phase out fossil fuels!

Great advancements to keep an eye on: [https://www.energy.gov/ne/nuclear- reactor-technologies/small...](https://www.energy.gov/ne/nuclear-reactor- technologies/small-modular-nuclear-reactors)

Specifically Molten Salt (Liquid Floride) Thorium Breeder reactors are my personal favorite technology I hope to see come around!

[https://en.wikipedia.org/wiki/Liquid_fluoride_thorium_reacto...](https://en.wikipedia.org/wiki/Liquid_fluoride_thorium_reactor)

Great place to start: [https://www.youtube.com/watch?v=D3rL08J7fDA](https://www.youtube.com/watch?v=D3rL08J7fDA)

Great videos to follow: [https://www.youtube.com/user/gordonmcdowell/featured](https://www.youtube.com/user/gordonmcdowell/featured)

<comment><USER8> For years Greenpeace and other "eco" organizations were fighting nuclear energy and now we have what we have. I understand that using solar or wind sounds sweet and in some places on the Earth it might even make some sense if we learn some day how to efficiently store energy. But we need something that works regardless on the weather.

Nuclear energy does not comes for free, there are nuclear wastes, but the dangers and difficulties were greatly overblown in the course of anti-nuclear propaganda.

I believe we can find the way to reuse nuclear wastes - my guess is that nobody was doing serious research in this area since being "pro" nuclear was not fashionable (and it is still not in many places).

<comment><USER9> >but the dangers and difficulties were greatly overblown in the course of anti-nuclear propaganda.

The nuclear waste generation is a _HUGE_ problem, the problem is so big that very few (if any) country really know how to solve it, look a the US for example as a really frightening example of an out of control waste problem, both from civil and military sources...

[https://en.wikipedia.org/wiki/Radioactive_waste#Long_term_ma...](https://en.wikipedia.org/wiki/Radioactive_waste#Long_term_management)

<comment><USER10> The problem isn't big, it's only _tricky_. Countries deal with orders of magnitude more of even more toxic "regular" waste from chemical industry. Not to mention the (again, orders of magnitude more of) waste coming out of powerplant chimneys, that's out of mind because it quickly gets out of sight.

It's tricky because of a combination of factors like long half-lives and unusual suitability for some of the material to be reprocessed into a weapon (both fission devices for nation states and terror devices for small groups, the latter more thanks to public perception than any actual effectiveness). This creates a lot of political obstacles, as it's easier to pass responsibility to someone else than it is to double-down and implement methods to reprocess, transmute or reuse the waste.

<comment><USER11> Organic chemical waste decomposes relatively quickly. Few of them survive 1000 year, and those that do are ironically things we perceive as safe (PET bottles and bags).

<comment><USER10> Yes. But that's my point. Nuclear waste isn't a _huge_ problem, because there isn't much of it compared to any other kind of waste. It's tricky, because it lives longer, it's harder to neuter, and well... it's radioactive.

<comment><USER12> _> Nuclear waste isn't a huge problem, because there isn't much of it_

You just changed your argument. You originally said nuclear waste is less toxic than "'regular' waste from chemical industry," not just that there was less of it.

Even a smaller amount of highly toxic waste that stays that way for thousands of years is a huge problem.

<comment><USER13> I'm trying to find a charitable way to interpret your criticism, and I haven't been able to find one.

In every post in this thread, TeMPOraL has been making a consistent argument that nuclear produces orders of magnitude less waste than other not-routinely- treated-as-horrible industrial waste issues.

You appear to be making the argument that "because there isn't much of it" is a new argument, but that appears to be the core of their argument everywhere.

Perhaps you were confusing who said what?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> "But I could already see major limitations looming ahead: the huge amounts of land needed, the lack of scalable ways to match their inconstant power to society's unremitting thirst for energy."

I sometimes wonder if authors of these pro-nuclear articles are paid to astroturf for the nuclear power industry or if they are just unaware of what solar is capable of.

The "huge amounts of land" claim is incorrect ([https://www.forbes.com/sites/quora/2016/09/22/we-could- power...](https://www.forbes.com/sites/quora/2016/09/22/we-could-power-the- entire-world-by-harnessing-solar-energy-from-1-of-the-sahara/#7a8b60f5d440)) and in reality much of solar power could be deployed on urban hardscapes.

The second claim seems to ignore the possibility of batteries and other large scale energy storage, never mind that solar would be complemented by other renewable energy sources.

The other problem with the nuclear industry (ignoring all the much talked about safety and waste storage issues) is that it ends up being a centralized power source. Living in a solar unfriendly state with the most profitable energy utility in the country (no rate review in 30+ years) I do not want to see any more centralization and the corresponding corruption. Yeah, I know centralization doesn't imply corruption and abuse of power, but it sure makes it easier.

<comment><USER15> The article you cited said we need 43,000 square miles of solar to power the earth costing 5 trillion dollars, I consider that to be a huge amount of land and money. That would be half the area of Minnesota the state I live in devoted entirely to solar panels. Sure it wouldn't all be in one place but that is still a significant amount of land world wide that have to change land uses.

Also isn't that article also assuming that all of the solar panels would be in the Sahara desert? Where solar power is extremely efficient. If we spread these solar panels across the world we would need significantly more because they would located in places much less suitable for solar power.

<comment><USER16> Yet the UK, not exactly blessed with excess sun, has already reached a point of generating more by renewables than fossil. With little noticeable impact on anyone anywhere aside from a few windmills in hilly spots, or visible a mile or so off some areas of coastline, and a fair bit of roof mount solar.

If that is _all_ the space required to power the planet I find cause for much hope. I doubt there would be much impact on anyone once you distribute across all the countries. How much area is available globally that is currently empty roof? Car parks as others have noted. What of offshore, covering reservoirs, road and rail side verges and medians, wind, wave and nuclear. How much scrub and desert that provides little for us or the local flora and fauna?

Unless Minnesota plans on actually powering the world it doesn't seem a reasonable comparison or objection.

<comment><USER5> _" Yet the UK, not exactly blessed with excess sun, has already reached a point of generating more by renewables than fossil."_

Natural Gas is still the biggest source of electricity generation in the UK, by some margin. But it is declining, slowly.

By the early 2020s, it's likely that wind turbines will have overtaken nuclear as the #2 source.

UK electricity generation mix: [https://www.ofgem.gov.uk/data- portal/electricity-generation-...](https://www.ofgem.gov.uk/data- portal/electricity-generation-mix-quarter-and-fuel-source-gb)

<comment><USER17> I think they must be including nuclear in renewables (32.97% non-renewables w/o nuclear, 21.69% renwables w/o nuclear, 36.79% renewables w/ nuclear).

<comment><USER16> Correct. Nuclear + renewables as against fossil.

</comment></comment></comment></comment></comment></comment><comment><USER18> Isn't Myrvohld the same guy that runs Intellectual Ventures? This guy's like Bond-villian level bearish on humanity.

Anyway, as someone who lived on a nuclear vessel and responded to Fukushima and has degrees in physics and medicine, I'm honestly fine with nuclear power, but renewables, by having lower energy density, are just way more managable. The workforce problems being a major part of it. I have solar on my house. I'm not putting a reactor on my house, ever. I always go back to this: I'll grant that more people will die falling from roofs while installing solar, than will ever die in all nuclear events, including Chernobyl, Hiroshima and Nagisaki. Still, solar and wind are the better options. Energy density matters. Not to high. Not to low. Juuust right.

<comment><USER7> Why not a "nuclear battery"? ;-)

[https://phys.org/news/2016-11-diamond-age-power-nuclear- batt...](https://phys.org/news/2016-11-diamond-age-power-nuclear- batteries.html)

<comment><USER7> really this: [http://mragheb.com/NPRE%20402%20ME%20405%20Nuclear%20Power%2...](http://mragheb.com/NPRE%20402%20ME%20405%20Nuclear%20Power%20Engineering/Autonomous%20Battery%20Reactors.pdf)

</comment></comment></comment><comment><USER19> It is fun to see that Germany abandoning its nuclear power due to "green" protests, but in fact increasing the coal burning rate. Problem of political populism - it is probably what will destroy humanity one day.

<comment><USER20> Germany is ending nuclear power because there is no consensus on how and where to store nuclear waste. People tend to forget that the waste is dangerous for thousands of years to come and Germany doesn't have deserts to put it in. Putting it in the ground is a bad idea, as you can see if you just search the internet for "Asse nuclear".

<comment><USER21> Export to the sahara?

<comment><USER22> Maybe nuclear waste should be deliberately stored near population centers, helpfully incentivizing the populace to maintain the safety and integrity of long term storage.

</comment></comment></comment></comment><comment><USER23> _Here's why it's so crucial that we develop better nuclear that we can all live with: before this century is out, there's good reason to believe that we'll see almost everyone in the world consuming energy at least as fast as Americans do now._

No, there isn't. EU's emissions/energy use for example has been in steady decline for years now.

Also Americans tend to use an outsized amount of energy. An amount that also peaked around 2008, declining since then, so not even Americans will use as much energy as Americans today do.

My take is as follows: currently nuclear loses with gas + renewables on price alone and is not getting cheaper, while renewables are.

It takes and average of 7 years to build a nuclear power plant. Renewables haven't yet exhausted their price reduction potential so it's safe to say that in these 7 years their price will be even lower.

On top of that cheap energy storage in the form of zinc-air batteries is being deployed today for a price competitive with gas peaker plants. Needless to say its price has been decreasing as well.

<comment><USER24> > No, there isn't. EU's emissions/energy use for example has been in steady > decline for years now.

where do you get the data for this? I am not saying it's wrong, I'm genuinely curious.

Also, how much of this is due to heavy industries going to other countries?

<comment><USER23> The EU loves statistics: [https://www.eea.europa.eu/data-and- maps/indicators/primary-e...](https://www.eea.europa.eu/data-and- maps/indicators/primary-energy-consumption-by-fuel-6/assessment-1)

About the heavy industries: I don't know, but given that energy usage was actually increasing before the recession I would say that it isn't a large factor.

Heating is though and there's a lot of room for improvement here even given that ironically enough climate change reduced the need for it measurably.

</comment></comment></comment><comment><USER25> The way to get bright young minds thinking about nuclear power again is to start building the nuclear plants that we know we'll need to get out of this mess. This will signal to every student that there's a steady career in nuclear engineering. Random grants and Bill Gates' hobby investments aren't going to cut it. Job security will. And once we start investing in this again, of course we'll have new ideas, and the next generation of plants will be even better.

<comment><USER26> > we know we'll need

Do we? Everything points to renewables like wind now. Of course there are problems to overcome but they're not bigger than with nuclear power.

<comment><USER25> "Everything points"

Source (no pun intended)?

See my comment elsewhere on this thread about "workers per watt", which is about solar, but the same applies almost as drastically to wind. You do the math.

[https://www.energy.gov/downloads/us-energy-and-employment- re...](https://www.energy.gov/downloads/us-energy-and-employment-report)

<comment><USER27> Nuclear also has the lowest mortality rate of any energy source, 0.1 per terawatt-hour.

[https://www.forbes.com/sites/jamesconca/2012/06/10/energys-d...](https://www.forbes.com/sites/jamesconca/2012/06/10/energys- deathprint-a-price-always-paid/#3b97817709b7)

</comment></comment></comment></comment><comment><USER28> > This why it is imperative that we __turbocharge__ the pace of innovation in > nuclear power. TerraPower is just one of dozens of startups around the world > that are now exploring new and better kinds of reactors

As promising as nuclear power is as a renewable energy source, the last thing the world needs is nuclear powered by _innovative_ software from VC funded, fast returns oriented, move fast and break things types.

Nuclear reactors do not have the same economics as software. The field is a bad investment in comparison (and in comparison to __many__ other fields). Encouraging young, bright people to go into the nuclear power is dishonest. The future for nuclear researchers in uncertain. Change that before encouraging citizens with great potential to gamble their future away.

New, much more efficient reactor designs have and will be in the works. Theses designs are in various stages of regulatory approval. Most designs are not economically viable. Rigor is not quick, and is not to be _disrupted_. Again, change the incentives. (or just have Bill email fellow billionaires who can afford gambles).

I agree with the main point. The rest of the article is irresponsible and/or dishonest rubbish that leaves out important details and actionable ideas. Waste of readers' time and doesn't do much to actually educate the population. Maybe this article even encourages people to spread ill thought out and uninformed ideas in the name of the environment. Subpar editing and publishing.

\--- nitpick below ---

I've worked on embedded software in the nuclear industry (designing inspection tools). I've done work with formal methods and verifying programs. Anyone who jabs at "designs drafted during the slide-rule era and adapted from reactors used on aircraft carriers and submarines" is being disingenuous to the level of rigor that went into these PE signed engineering designs. Our modern software development methods are a joke in comparison.

<comment><USER29> The US invests a lot of money into researching advanced reactors only so the money can be sprinkled around to different labs, companies, and universities to keep our knowledge/workforce updated until they shift focus every couple years to a new 'important' reactor concept. With all that money and time we could have prototyped advanced plants and gone through licensing so we'd be building them today. Unfortunately I don't think that's a priority.

</comment></comment><comment><USER30> Nuclear is too scary. Last time there was an earthquake that wiped out 10000 people and shutdown a bunch of reactors (nobody died from the reactors), a country shut down all their nuclear power plants.

It would take a HUGE amount of effort to change people's opinion, that's gonna be 90% of the work to bring nuclear back.

<comment><USER31> It would only take mainstream media to change the way it portrays nuclear energy and a couple of years.

But yes, you're right.

<comment><USER32> > It would only take mainstream media to change the way it portrays nuclear > energy and a couple of years.

The media and government have limited ability to shift public opinion.

<comment><USER33> Seriously?

That might be true for certain values of "media", but not otherwise.

</comment></comment></comment></comment><comment><USER34> On a related note, Jacksonville Electric Authority is rolling on a 250 MW distributed solar supplement to their existing grid. Presentation from their October public board agenda can be found here[1], pp. 65-76.

There's some interesting visuals of their solar distribution, land allocation, and proposed panel layouts...but perhaps more importantly, a purchase power agreement comparison against a nuclear deal with the Municipal Electric Authority of Georgia[2] gone super sour (and currently under litigation).

Takeaway is, indeed, nuclear is in dire need of innovation.

[1] [https://www.jea.com/Events/Board_Meetings/2018_10_16_Board_M...](https://www.jea.com/Events/Board_Meetings/2018_10_16_Board_Meeting_Agenda_and_Package/)

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

</comment><comment><USER35> One crucial question when it comes to nuclear power IMO is, how to make nuclear power without profiting from A) the public and B) from future generations.

Nuclear waste is toxic, radioactive, hard to operate with, hard to contain and very often has half life times well beyond a few thousand years. The answer to the question who is going to be paying for a safe and controlled storage for a few milleniums has often been answered by the state taking responsibility (and very often the cost).

Storing anything for multiple thousand years without causing disasters or having the public take the cost is a non-trivial task, because this surpasses generations, maybe even nations. Even advancements like this one: [https://www.deepisolation.com/](https://www.deepisolation.com/) are not that fulfilling. Somebody has to continuosly check on these things for the future and a thousand years of guaranteed inspection is even something a nation state fails to provide. Maybe we should give it to the catholic church?

If you would have to pay the containment/inspection/insurance costs for every ounce of nuclear waste for the rest of its projected life (to be fair: lets say only while it stays dangerous), it would get uneconomical quite fast. Not to mention that this will cost money centuries after all nuclear fuel has been burned. Is there money layed back for a thousand years in the future? If not, it is profiting from future generations.

Maybe we find a better way to deal with nuclear waste than letting it rot in some underground location for centuries.

<comment><USER10> > _Maybe we find a better way to deal with nuclear waste than letting it rot > in some underground location for centuries._

We have ways, but not much is invested in developing and deploying them due to political reasons (some coming out of mass hysteria, but some that are pretty legit - like ability to weaponize substances involved). Those ways are: alternative reaction chains that produce shorter-living waste; reusing parts of the waste in other industrial applications (e.g. medicine); transmuting some of the waste into shorter-living elements, including ones reusable as fuel for different reactors. Unfortunately, I don't have the number on how much this would cut down the need to store anything long-term.

</comment></comment><comment><USER36> There's a big problem with building new coal and nuclear plants: the price per kwh is a moving target and it has trended down for years in clean energy projects and widely predicted to continue doing that for the foreseeable future. Coal plants are shutting down because they are getting too expensive to operate. Plans for new plants are shelved because they can't be operated cost effectively.

Clean energy is completely killing investment opportunities in this space. And that's just at the current price levels. They are predicted to go down further at around 7% annually for the next few years still.

This is the main reason investors are no longer eager to invest in either. Sure, nuclear is technically capable of delivering our power needs. It's even possible to do at vastly increased levels of safety given modern designs for plants, improved technology (relative to the 1960s era stuff used right now), etc. It's just that it will be very expensive to do it that way. It will take many billions to do the R&D, billions more to build the plants. In other words, these projects are prohibitively expensive and unlikely to be able to compete on price.

</comment><comment><USER37> There is innovative nuclear power already. It's fusion-based, causes no emissions, and is so modular it can be placed in massive desert arrays or even on top of anyone's home. Fusion-powered solar energy is here now, cheaper than nuclear, and far easier to produce and scale.

I'm all for modular nuclear reactors, safe pie-in-the-sky builds that don't suffer from the long list of problems the huge plants do. For now, the South Carolina nuclear debacle is enough to show that new nuclear based on old, clunky paradigms is not ready to compete without carbon taxes or some big financial incentive.

So yes, either nuclear needs to innovate or it won't beat out renewables and gas in the 21st century.

</comment><comment><USER38> Nuclear power unfortunately comes with invisible tail risk. No mathematical model can predict it. Unless power plants are built deep below the ground eventually something will bring the catastrophe.

<comment><USER39> I don't think that's true. We've used nuclear power for decades with exceptionally few problems or deaths. There are single hydroelectric dam failures that have killed more people than everyone who has ever died from nuclear power - including Chernobyl, Three mile island, Fukushima, etc.

Banqio dam killed 174,000. [https://en.wikipedia.org/wiki/Banqiao_Dam](https://en.wikipedia.org/wiki/Banqiao_Dam)

Chernobyl, on the other hand, the deadliest and worst nuclear power plant disaster in history killed 45 directly and was possibly responsible for increased cancer incidence adding another 4-6,000 cancer deaths.

Should we discontinue hydroelectric power because all dams will eventually fail and may flood inhabited areas? Nuclear power is incredibly safe.

<comment><USER38> I'm pretty sure no one has done the tail analysis for pesticides, cars, nuclear or hydro, before they were introduced en masse.

I'd much rather have close to 0 deaths from all of the above guaranteed, when catastrophe happens.

I'm aware that nuclear is probably the only thing that will solve the energy crisis. But I'm wary of the long term risks. Just like I would be with the dam.

</comment></comment></comment><comment><USER40> I don't understand why we are still obsessed with Nuclear. Nuclear produces toxic waste, plants are costly and take years to start functioning.

Compare that with what Tesla Energy did with the electric stabilising grid in Australia, within 100 days!

For a solar plant all you need to do is deploy panels and battery. Nothing else. And yet lobbyists, I presume, will advocate clean coal, clean petrol and whatever clean thing they are probably paid to market.

<comment><USER41> Nuclear has obvious advantages as a network baseline and if you think about it all energy is nuclear.

Also, usually the choice posed is not nuclear or solar, it's nuclear vs coal.

And, from my point of view,(although this might sound like an insane, non- pragmatic issue I am thinking about) if we, as a species ever want to become a multiplanetary species, mastering nuclear is a must. That way we will be able to create our own, micro-solar system wherever we will go.

<comment><USER42> > usually the choice posed is not nuclear or solar, it's nuclear vs coal.

usually? historically.

sure last century that was the choice. Today, no one in their right mind would build either a nuclear or a coal plant.

in my part of the world, there is no coal, no nuclear, only solar and gas. And the solar is cheaper than the gas. Coal and nuclear cant get a look in, and no one is going to build a new gas plant. But new solar is popping up all around me, at block, microgrid and array scale.

<comment><USER40> Exactly. We need solar because it is distributed. For nuclear we need a lot of money, and it is dangerous. Coal is horrible. Solar is cheap and much better

</comment></comment></comment></comment><comment><USER43> I really wait until one of this disaster is ripe to happen. Diablo, Palo Verde or South Texas to blow up one day, and we can finally bury those discussions then. Hurricane Harvey almost blew up South Texas, but nobody noticed or cared.

Those new designs have a double incident rate, they are not better, but much higher risk and more trouble. South Texas and Palo Verde are experimental versions of these 3rd gen reactors, and they are amongst the most risky in the world. Esp. Palo Verde with no cooling water, Diablo at the heart of ring of fire, and South Texas with the danger of polluted cooling water besides the troubling technical problems they have all the time. Once they blow up they'll carry the cloud all over the midwest, right to New York and then this business opportunity will be finally over.

The nuclear lobby only needs it to produce nuclear weapons nobody needs.

Nobody knows how to store the nuclear waste. This problem is still not solved after decades of false promises.

<comment><USER35> This also has conceptual issues:

Nuclear waste will remain dangerous much (very much) longer than it will produce energy. We might run on uranium for 200 years. The nuclear waste produced today has a half life of well beyond thousand years.

Today we do as if we can just bury and forget these things but they won't go away and they will produce cost for the public and future generations in one way or another (either we have to maintain it, keep it safe and inspect it all the time, or we loose patches of land forever or there are environmental/health costs). We speek of inspection, storage and insurance costs for multiple thousand years that are not paid by anybody using nuclear energy today.

So we can use up all uranium in the next 200 years, but what then? Who will pay the next few thousand years of dealing with that corroding, highly toxic, radioactive waste? I assume the companies who earn their money with nuclear power don't have that money laid aside. Because if they would, that stuff would not be profitable at all. These future costs should be paid with every ton of waste produced today, and not paid by the public and our grand-grand- children.

</comment></comment><comment><USER5> From the article: _" The amount of energy consumed by an average person in China (averaged over the year) has jumped by a quarter since 2006, to three kilowatts (kW) ... it's still less than a third as much as the American average, which at 9.2 kW is equivalent to nine toasters, running 24/7."_

According to eia.gov[1], average residential electricity usage was 10,399 kWh per year in 2017. That's about 28.4 kWh per day, or an averaged power draw of 1.18 kW. And that's per residential utility customer, not per person!

So the 9.2 kW claim seems extremely high. Is there really another 8 kW being used by business and industry? Or does the author not understand the difference between power (kW) and energy (kWh)?

[1] [https://www.eia.gov/tools/faqs/faq.php?id=97&t=3](https://www.eia.gov/tools/faqs/faq.php?id=97&t=3)

<comment><USER44> Yes. Wikipedia's number is quite close to that 8: "Primary energy use in the United States was 25,155 TWh or about 81,800 kWh per person in 2009." [https://en.wikipedia.org/wiki/Energy_in_the_United_States#Pr...](https://en.wikipedia.org/wiki/Energy_in_the_United_States#Primary_energy_consumption)

<comment><USER5> Right, but that's total energy use rather than electricity use.

Energy consumption tends to drop significantly where fossil fuel applications can be converted to electric. An electric vehicle is dramatically more efficient than a fossil-fuel burning one, for example. Likewise, an electric heat pump is much more efficient than a gas boiler.

<comment><USER45> Presumably the article is talking about total energy use too.

</comment></comment></comment></comment><comment><USER46> We overvalue the strong entropic and under estimate the weakly entropic forces. NASA has been trying to scale up nuclear heating as a means of propulsion but I've heard it's now being used in fracking. On the other hand I'm psyched about the future of fission and fusion.

</comment><comment><USER47> Mayor issues that were thought to use over the years are that fuel is not easy and ecologically good to mine. And it will run dry in two or three generations and where should we put the radiating waste.

Usually users from the states in these comments downplay the issue of radiation and the European media / society says it's a big problem.

Probably because Tschernobyl has shown many people what happens when it's going wrong.

I would like a good pro/contra argumentation for this issue.

</comment><comment><USER48> There is no need for better nuclear power; the stellarator works.

[https://en.wikipedia.org/wiki/Wendelstein_7-X](https://en.wikipedia.org/wiki/Wendelstein_7-X)

<comment><USER49> Works? Yes. Produces energy in a self-sustained reaction? No.

<comment><USER48> It can't do it with Helium, which was used to test whether it is operational. Still doesn't make searching for nuclear alternatives legitimate or warranted.

</comment></comment></comment><comment><USER50> There are some very practical problems with nuclear that people are hand- waving away. One of the most significant is simply longterm cost, because you have to consider what nuclear, at large scale, would entail. Because of the specifics here costs would likely go much higher, not decline - and it's already one of, and by some metrics, the most expensive methods of energy production. Right now nuclear accounts for 10-15% of the world's energy production, yet even at that level we only have known uranium reserves to run these for about 200 years. [1] Bump that up to where nuclear is a major player in energy production and we're suddenly running out imminently. This means we're going to need to turn to things like saltwater extraction and breeder reactors. But these technologies are going to send costs skyrocketing. And as well as scarcity becomes an issue, we can also expect to see the cost of uranium itself start to skyrocket.

And this is before getting into the other issues of nuclear at scale. Decommissioning is a lengthy, expensive, and complex process. Nuclear accidents are rare, but nowhere near as rare as they should be, on paper. There are currently about 450 plants operating worldwide. That's a disconcertingly low number given the number of accidents throughout the years. And breeder reactors would be absolutely required for longterm uranium perspectives, yet that technology not only greatly increases costs but also complexity and volatility. And another issue that becomes even more critical at scale is disposal. We already have some 90,000 tons [2] of nuclear waste (in the USA alone) the requires disposal. And this waste needs to be stored for thousands of years before it becomes remotely safe. And that also means we need to consider the waste that will pile up over centuries of nuclear usage.

And as the article mentions, we're likely to see major increases in global energy usage over the years to come which further exasperates these problems. These are very real practical problems that seem to have no clear solution. In my opinion solar is the most logical option for the future. The one and only downside there is the lack of production during the night, yet this can be resolved in a countless number of basic technical ways ranging from batteries to even just mundane things such as shifting objects (or liquids or whatever) to create potential energy that can be harvested during off times. If we take a utopic view of the future, it's even possible to envision worldwide high energy direct current lines transiting power worldwide. All of these things involve losses of energy of course, but as far as our needs are concerned solar can provide a practically infinite amount of energy and so optimal efficiency is not so relevant.

I also think that the decentralization of energy is also desirable. Even something as benign as rooftop solar will end up providing an immense amount of energy. Centralization of energy, let alone when it relies on a scarce resource is something I think we've learned a lot about for the past century. A bit of hindsight would be valuable here.

[1] - [https://www.scientificamerican.com/article/how-long-will- glo...](https://www.scientificamerican.com/article/how-long-will-global- uranium-deposits-last/)

[2] - [https://www.gao.gov/key_issues/disposal_of_highlevel_nuclear...](https://www.gao.gov/key_issues/disposal_of_highlevel_nuclear_waste/issue_summary)

</comment><comment><USER51> Maybe we need it, but we're definitely too dumb to use it safely.

</comment><comment><USER52> We need innovative ways to get rid of nuclear waste first. Otherwise nuclear power is dead.

</comment><comment><USER53> can someone recommend some good books/texts on nuclear reactor design and control (i.e. with accurate detailed breakdown of the operation controls and the computation graph for reverse-mode automatic differentiation (adjoint sensitivities) ?

</comment><comment><USER54> too dirty, too risky, too much burden on future generations, too centralized.

</comment><comment><USER55> Suppose we took the money being invested into nuclear research and put it into power storage research instead.

Wouldn't that be better all round?

<comment><USER56> Why should two of the best solutions try to starve each other? The premise that nuclear is inferior compared to wind or solar in terms of safety or cleanliness is wrong (especially with the current generation of experimental reactors), it is just different.

<comment><USER57> > The premise that nuclear is inferior compared to wind or solar in terms of > safety or cleanliness is wrong (especially with the current generation of > experimental reactors), it is just different.

There is no long term storage option for nuclear power in the US. The ability to recycle it is questionable at best. If you want to build nuclear, I wholly endorse it, as long as you provide both functional waste recycling facilities and storage repositories before you load one pebble or rod into a reactor core. As of today, recycling wind turbines and solar panels is feasible, and failure scenarios for both are benign. Recycling of batteries from utility scale storage systems is also readily available through existing supply chains.

"The United States has over 90,000 metric tons of nuclear waste that requires disposal. The U.S. commercial power industry alone has generated more waste (nuclear fuel that is "spent" and is no longer efficient at generating power) than any other country—nearly 80,000 metric tons. This spent nuclear fuel, which can pose serious risks to humans and the environment, is enough to fill a football field about 20 meters deep. The U.S. government's nuclear weapons program has generated spent nuclear fuel as well as high-level radioactive waste and accounts for most of the rest of the total at about 14,000 metric tons, according to the Department of Energy (DOE). For the most part, this waste is stored where it was generated—at 80 sites in 35 states. The amount of waste is expected to increase to about 140,000 metric tons over the next several decades. However, there is still no disposal site in the United States. After spending decades and billions of dollars to research potential sites for a permanent disposal site, including at the Yucca Mountain site in Nevada that has a license application pending to authorize construction of a nuclear waste repository, the future prospects for permanent disposal remain unclear."

[https://www.gao.gov/key_issues/disposal_of_highlevel_nuclear...](https://www.gao.gov/key_issues/disposal_of_highlevel_nuclear_waste/issue_summary)

Everyone can clamor on for nuclear while wind and solar continue to rapidly decline in cost, and manufacturing capacity for both continually increases. The hill for nuclear to climb gets higher every day.

Lazard just released their 2018 Levelized Cost of Energy Analysis (LCOE 12.0); check out how wind and solar cut the legs out from under every other generation source.

[https://www.lazard.com/media/450769/unsubsidized-analysis- ce...](https://www.lazard.com/media/450769/unsubsidized-analysis- certain-100.jpg?width=994&height=442)

[https://www.lazard.com/perspective/levelized-cost-of- energy-...](https://www.lazard.com/perspective/levelized-cost-of-energy-and- levelized-cost-of-storage-2018/)

<comment><USER58> Nuclear waste storage is a political problem, not a technical one.

The Yucca Mountain project _is_ the long term storage option. It's isn't really that hard, relatively speaking, to dispose of nuclear waste. Just put it in a hole and mark it so no one goes there. But no one wants to be the host - not because it's inherently dangerous, but because it's scary.

Yucca Mountain would already store all the waste if it weren't for one Senator from Nevada.

<comment><USER57> It doesn't matter _why_ it's a problem, all that matters is that it's a problem, and you have no ability to demand the residents of Nevada allow Yucca Mountain to open. With that said, there are valid geological and hydrological concerns as to why Yucca Mountain should not move forward. They are outlined here [1]. Therefore, there is no adequate solution, only a demand that a suboptimal solution be implemented to support a suboptimal generation technology.

[1] [http://www.state.nv.us/nucwaste/yucca/techcon1.htm](http://www.state.nv.us/nucwaste/yucca/techcon1.htm)

<comment><USER59> The salt deposits in New Mexico are a wonderful place for nuclear waste. It's almost a no-brainer [1].

"It doesn't matter why it's a problem, all that matters is that it's a problem..."

Intermittency of wind and solar is a problem by any stretch of any imagination. Year-averaged wind capacity factor in USA is 35%. Solar is 25%. There are massive seasonal variations that batteries don't solve. It's a legit concern. Nukes help alleviate that because they're the only known dispatchable 24/7 carbon-free energy that we can scale to the necessary scale. Just gotta figure out how to make the more cheaply. Curing fears spawning from the linear no-threshold dose response model will help with that.

[1] [https://www.forbes.com/sites/jamesconca/2017/02/09/americas-...](https://www.forbes.com/sites/jamesconca/2017/02/09/americas- high-level-nuclear-waste-is-gone/#2eb63c6f2e02)

</comment></comment></comment></comment></comment></comment><comment><USER11> It's amazing how quick HN switches to sucking up Myhrvold when it comes up to their favourite toy.

</comment><comment><USER60> stop global warming with tons of reactors adding to background radiation of the world, increasing decay and causing other further issues. great idea. let's go!

</comment><comment><USER61> Shameless.

</comment><comment><USER62> I support traveling wave reactors.

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

We need to clean up our stockpiles somehow.

The only other feasible option is dropping it all into the Marianna Trench. (Meanwhile, we really should store it all deep in a mountain.)

If we get some useful, usable energy out of TWV, terrific. But it's not a motivator.

(This is me being optimistic: Assuming enough humans survive the clathrate gun hypothesis that they'll need to bother cleaning up our messes. [https://en.wikipedia.org/wiki/Clathrate_gun_hypothesis](https://en.wikipedia.org/wiki/Clathrate_gun_hypothesis))

<comment><USER59> Finland is building a nuclear waste repository right now in deep bedrock [1]. It's totally reasonable scientifically. And in the US we have those Permian salt deposits [2]. Commercial nuclear waste really isn't nearly the boogeyman that people make it out to be in pop culture. It's solid, sitting around in dry casks, can be put safely in geologic deposits, and has yet to hurt anyone as far as I'm aware. Meanwhile fossil fuel kills hundreds of thousands per year from air pollution and god knows how many from climate change and we're sitting here saying "but what about nuclear waste?" while looking at 24/7 baseload carbon-free fully-scalable technology that's as safe or safer than wind.

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

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

<comment><USER62> That WIPP wiki entry reads like a strong argument to burn thru our stockpiles with TWR.

Thanks for Onkalo reference. Maybe the Finns will prove more competent than us.

Did I mention fossil fuels? No. Did I say TWR or fossil fuels? No.

Any survivable future scenario is wind, solar, and if we're lucky bioreactors (carbon capture).

It'd be nice if humans could be trusted with (non-TWR) nuclear. But we can't. And even if we could, anything started TODAY will be decades too late, so why bother.

Meanwhile, feasible affordable wind and solar capacity is doubling every 30 (?) months. It's happening.

Everyone forgets about the weapons. Assuming we survive to care, what are we going to do with all the decommissioned nukes? Answer: TWR.

I'm befuddled why anyone supporting nuclear power would oppose TWR. More power. Less waste. Less proliferation risk.

Probably makes too much sense. Or sounds like magic.</comment></comment></comment>


Facebook Doubles Down on Misusing Your Phone Number - <AUTHOR> https://www.eff.org/deeplinks/2019/03/facebook-doubles-down-misusing-your-phone-number <comment><USER2> Discussed earlier:

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

</comment><comment><USER3> The other day I logged out of Instagram on my phone, created a totally new account (for our dog), cleared all the cache and it STILL found my coworkers.

I didn't want my coworkers to see my dog account because I act silly and want to be professional.

I'm CERTAIN they just sent data I didn't agree to send (phone number, etc).

They didn't re-prompt to access my contacts so I assume they think that since the APP has permission every account I create ALSO has permission to access my contacts.

Fuck facebook!

<comment><USER4> Might be the wifi network if you logged in while at work...

</comment></comment><comment><USER5> So the only way to keep your number from being searchable on FB is by not having 2fa?

<comment><USER6> Or by not having a facebook, obviously. If you have one, you're part of the problem :)

<comment><USER7> not having an account won't prevent fb from creating one for you and storing your phone number when one of your contacts uploads their address book

<comment><USER8> True :(

Here's an idea. Use a service that generates phone numbers that redirect to your actual phone number. Maybe Twilio. Just as some do with email addresses.

Create a new number for each use. For each family member and friend. For each site registration. For each whatever.

Have an app that searches periodically online for all of those numbers. If any of them show up linked to Facebook, or whatever else concerns you, nuke them. And maybe ping whoever/whatever got that number with an admonition, saying that they're no longer a trusted contact.

That would be extreme, I know. And you'd need to cut some slack for close family, your employer, etc.

But would it be doable?

</comment></comment></comment></comment><comment><USER9> Is there any other authentication method like google authenticator for 2fa to use facebook?

<comment><USER10> Facebook supports U2F security keys for 2 factor auth [1].

[1] [https://m.facebook.com/notes/facebook-security/security- key-...](https://m.facebook.com/notes/facebook-security/security-key-for- safer-logins-with-a-touch/10154125089265766/)

<comment><USER11> The UX I'd say is following dark patterns for this.

You cannot enable U2F without first enabling SMS Auth and or OTP Auth. Once u2f enabled if you delete both SMS Auth and OTP auth it disables 2 factor auth and takes you to a welcome screen to get started enabling it again with the only 2 options SMS / OTP, once enabling one of them you can add U2F again.

Also I have "security.webauth.u2f" enabled in Firefox but Facebook is the only U2F service I use that doesn't work in Firefox so it falls back to the SMS / OTP methods on login.

<comment><USER12> > _Also I have "security.webauth.u2f" enabled in Firefox but Facebook is the > only U2F service I use that doesn't work in Firefox so it falls back to the > SMS / OTP methods on login._

I noticed this as well. I was able to add my security key via Firefox, but for some reason Facebook decided that you need Chrome to use U2F when logging in.

</comment></comment></comment></comment><comment><USER13> People say things like "what do you want, privacy or security?, you can't have both".

But something I always think about, we're talking about _Facebook_ here. It's a social media platform with pretty pictures and comments. What's the big deal?

It's not like we're talking about your online backing or medical records. Why does the "security" of something as unimportant as Facebook really matter enough to require 2FA?

To boogy-man "Security" has escalated so much it's like everyone wants it everywhere, no matter the cost.

<comment><USER14> Facebook is one of the main identity providers on the internet, next to Google and Apple. Access to facebook can imply access to a wealth of other apps.</comment></comment>


Borg, Omega, Kubernetes: Lessons learned from container management over a decade - <AUTHOR> http://queue.acm.org/detail.cfm?id=2898444 <comment><USER3> This is a great read. It's a fairly coherent summary of the things I intuitively felt great about Kubernetes, and discusses it plainly and explicitly.

Towards the end of the article, the authors mention the open challenges.

Unbeknownst to me, I had been working on something that attempts to address some of that. It is my sixth attempt at a tool like this. It came out from when I saw how many dev environments attempting to use Docker Compose ended up with a large, ad-hoc collection of Bash scripts.

The project is called Matsuri, and it is found here: [https://github.com/shopappsio/matsuri](https://github.com/shopappsio/matsuri)

It's intended as a framework for programmatically generating manifests and executing kubectl commands. It doesn't try to have a lot of opinions (at least, opinions that you can't change). The idea is that your platform support tool is like any other app, and should be tailored to your specific collection of apps.

It also has a notion of Apps, which are a bundle of K8S resources declared as dependencies. But that's as far as I gotten -- it has a fairly anemic convergence tool. I was more concerned about standardizing builds, pushes, updates (collection of rollouts, migrations, etc.), shell commands, "console" commands, etc. These are all achieved by expecting Apps to define callback hooks for those actions.

I don't know if this is useful or interesting to anyone else. But if anyone is interested, feel free to contact me about it.

<comment><USER4> Yes, the part "Some open hard problems/Configuration" was particularly interesting to me. Over time we evolved our tooling around k8s to a versioned (e)yaml + jq + rc.tpl.json => rc.json solution, with our own implementations for rolling-updates (to make them dependent on readyness checks) and node evacuation - all in bash. while being nifty, a wrong indent in a yaml file can still spoil the party and requires debugging at container level.

it did not occur to me that a robust, typesafe approach when dealing with k8s configuration objects could be a good idea.

<comment><USER3> That's an interesting solution!

Mine's isn't typesafe. But now that I'm thinking about it, it would be an interesting approach too. In Matsuri, debug options are available to show the manifest or kubectl controls. I specifically don't use yaml or json to define the template, and instead, have it programmatically generated from Ruby directly. This let me use Ruby class inheritance and module mixins to manage everything. So no indent problems, though, I sometimes run into specs that don't validate for Kubernetes.

The rolling-update in Matsuri still uses the kubectl rolling-update under the cover. What it does do is introspect to find the current revision numbers and the current image tag (if you do not provide them).

</comment></comment></comment><comment><USER5> It is interesting to see the evolution of cluster scheduling at Google. Mostly, it has been driven by the desire to improve resource utilization - with a second thought given to usability. Their first go with Borg was centralized, correct, and enabled global state to make good scheduling decisions. Then they tried Omega, which never made it to production. But they subsequently separated scheduling from resource tracking in Borg (one scheduler node, ~5 paxos nodes handling resource notifications/communicating scheduling decisions with workers). Again, all optimizing utilization. Kubernetes, however, is about making it easier for developers. So, one IP per pod - unlike Borg, where containers share the host IP. I like Kubernetes, but adoption has been slow. It will be interesting to see how it develops - whether it will subsume Mesos. How it will stack up against Hadoop/YARN.

<comment><USER6> Mesos and Kubernetes are not really competitors, in so far as Kubernetes is more than just a scheduler and there is a partial implementation and work ongoing to get Mesos plugged in as a scheduler for Kubernetes: [https://github.com/kubernetes/kubernetes/blob/master/docs/ge...](https://github.com/kubernetes/kubernetes/blob/master/docs/getting- started-guides/mesos.md)

I'm hoping that Red Hat's two Kubernetes based products will help kickstart adoption. Red Hat Atomic Enterprise Platform is basically hardened and supported Kubernetes ([https://github.com/projectatomic/atomic- enterprise](https://github.com/projectatomic/atomic-enterprise)) and OpenShift v3 is a PaaS built on top of Kubernetes ([https://www.openshift.org/](https://www.openshift.org/)).

Disclaimer, I work for Red Hat. But any way, Kubernetes is awesome and could change the way data centers are run.

</comment></comment><comment><USER7> The thing I'm still struggling to wrap my head around with kubernetes (and docker in general) is the management of data persistence.

If I have a pod of containers everything I read seems to say that containers need to be 'stateless' and if you're running kubernetes, will likely also be transient based on the system load & scale.

So if any container in a pod could go away or be spun up at any time, if it could live on any virtual machine in a cluster of physical machines...

where do you keep the physical database file so that it is accessible to all different instances? How do the multiple instances access it at the same time? Generally, how does the database layer "work" in container land?

It's the only piece that I really struggle to understand.

<comment><USER8> It's a good question! k8s has the concept of Persistent Volumes - these are either NFS volumes or block devices (e.g. EBS) that are attached to a single node. When k8s moves a pod to another node - it will re-attach the volume to the new node _before_ the pod starts. There is also Flocker by clusterHQ which has support for different volume types and works with k8s - disclaimer - <USER2> work for ClusterHQ.

[https://github.com/kubernetes/kubernetes/blob/master/docs/us...](https://github.com/kubernetes/kubernetes/blob/master/docs/user- guide/volumes.md)

<comment><USER7> Ok ... So that makes a little more sense. It really struck me that I just didn't know how to _trust_ the persistence. In a world where the application could run on any virtual cluster and even across different sets of physical hardware. (Looking at CoreOS for example as a system designed to appear as "one machine" despite spanning multiple hardware instances).

So when I specify the VOLUME (in a docker file/kubernetes-pod-spec) this is managed by the system.

And with respect to ensuring uninterupted service on the database layer then, how are ongoing changes synched? Or is that something I must design for by adding a queueing layer?

To make that concrete, I have one pod with MySQL and the associated VOLUME is configured on KUBERNETES instance.

I tell K to scale MySQL to 2 instances.

It points the second instance to the same physical files and starts up?

So VOLUMES live outside of KUBERNETES and do not spin up or down in a transient nature?

Can 2 instances of a database server use the same files without stepping on each other?

How does the VOLUME scale without becoming the new single point of failure?

Maybe that is the point where you use massive RAID striping and replication to scale storage? (That's far from a new concept and is a pretty stable tech).

If I'm on the right track here I might almost be ready to say I understand and trust persistence!

<comment><USER9> Your limitation is your database. Getting MySQL or Postgres to run on multiple machines is not trivial. You can do Master/Slave with failover (manual or automated), or try to find a clustered SQL database (Galera, or what I was working on at FathomDB).

If you have a single node database, Kubernetes can make sure that only a single pod is running at any one time, attached to your volume. It will automatically recover if e.g. a node crashes.

If you have a distributed SQL database, Kubernetes can make sure the right volumes get attached to your pods. (The syntax is a little awkward right now, because you have to create N replication controllers, but PetSets will fix this in 1.3). Each pod will automatically be recovered by Kubernetes, but it is up to your distributed database to remain available as the pods crash and restart.

In short: Kubernetes does the right thing here, but Kubernetes can't magically make a single-machine database into a distributed one.

<comment><USER7> This was very helpful. Thank you.

</comment></comment></comment></comment></comment><comment><USER10> I always admire papers that make the virtual things we wrangle with all day seem even more physical.

This achieves that with its (afaik) novel usage of "hermetic":

      The key to making this abstraction work is having a hermetic container image.

Poetry.

<comment><USER11> Not a novel usage at all. It's frequently used to mean "insulated" or "protected from the outside". E.g.:

[http://www.nytimes.com/2015/04/07/opinion/roger-cohen- iran-u...](http://www.nytimes.com/2015/04/07/opinion/roger-cohen-iran-united- states-embassy-tehran.html)

[http://learning.blogs.nytimes.com/2012/08/08/word-of-the- day...](http://learning.blogs.nytimes.com/2012/08/08/word-of-the-day- hermetic/)

[http://www.nytimes.com/2016/01/14/t-magazine/art/lucy- jorge-...](http://www.nytimes.com/2016/01/14/t-magazine/art/lucy-jorge-orta- antarctica-art.html)

(Googling lowercase "hermetic" is nearly impossible since the uppercase meaning is much more prevalent.)

Of course, talking about "hermetic containers" makes it a sort of pun.

</comment></comment><comment><USER12> This is gold.</comment>


Practical Examples in Data Oriented Design (2013) [pdf] - <AUTHOR> http://gamedevs.org/uploads/practical-examples-in-data-oriented-design.pdf <comment><USER2> Somewhat related: My periodic rants about the terrible database designs of games.

[http://www.dbms2.com/2014/04/16/the-worst-database- developer...](http://www.dbms2.com/2014/04/16/the-worst-database-developers- in-the-world/)

<comment><USER3> Hi! Long time follower of your blog here. As a general database-internals- enthusiast-in-training, this kind of stuff is really fascinating to read about.

In general, however, I kind of get the impression that game development is much less rigorous even than normal software engineering, and that things are less well-architected, much more ad hoc/hackier, etc. Is there any truth to this?

<comment><USER4> Hey, not the OP, but I did want to offer my 2c anyway, as someone into gamedev. I'd say you're both very right and very, very wrong at the same time.

In game development, especially with indies, in the early phases of development many developers take an approach of valuing "getting it going" over everything else. While this might sound short-sighted, it's actually a very canny decision, and often is the only way to gain enough of a foothold to ensure the long-term success of the project when you're working on a very complex piece of software like a game - see Jonathan Blow's youtube video on "The art of getting things going". Additionally there's the relationship of this approach with the game design process, where you need a very fast iteration time on prototyping game mechanics in the early stages, to start finding your way towards something interesting to flesh out into a full product.

With that being said, in commercial game development (and experienced indie developers), the performance standards are so much higher than most other fields of programming that it is actually absurd. The focus on performance of much of enterprise software, web apps, and even most native tools, is nowhere even in the same league as that of high-quality games.

I would also say that at the highest level of game development there is a very high quality level of code organization and architecture. Games are one of the most complex types of programs, involving physical simulation of a large amount of objects, skeletal animation skinning, very complex rendering and shading, realtime deterministic state synchronization over a network, audio streaming, and on, and on, and on, all happening on a realtime basis.

There's simply no room to be "ad hoc" or "hacky" in AAA gamedev because the systems involved are so complex that their architecture has to be extremely robust to _even be able to finish the game at all_. In my opinion, other fields of programming have a lot to learn from the lessons of game development, but unfortunately gamedev is a bit of an insular field and there's not much cross-pollination between gamedev and other industries.

Or you could just look at it like this:

AAA Gamedev: Formula 1 car

Google / AWS : State of the art metropolitan high-speed rail system

Enterprise Software: Diesel bus service

Native apps and tools: Sedans, hatchbacks, vans, sports cars

Web apps: Bicycles

Electron apps: Bicycle with a lawnmower engine welded to the frame that tops out around 20mph and gets 3 miles to the gallon

</comment></comment></comment><comment><USER5> Slide #3 is evergreen, seen that exact image in many talks and it's still just as relevant today as when I first saw it.

</comment><comment><USER6> These slides may be difficult for beginners to follow. A more in-depth treatment can be found at Robert Nystrom's wonderful game Programming Patterns resource available for free online:

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

And of course Mike Acton's classic talk:

CppCon 2014: Mike Acton "Data-Oriented Design and C++"

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

All these resources are CPU oriented. As next gen GPUs begin to dominate for data queries. It will be interesting to see how the game changes as well.

The Rise of the GPU: How GPUs Will Change the Way You Look at Big Data

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

<comment><USER7> I also found this to be a really good resource:

[http://www.dataorienteddesign.com/dodmain/dodmain.html](http://www.dataorienteddesign.com/dodmain/dodmain.html)

</comment></comment><comment><USER8> I love data oriented programming. It lets you worry on data instead of useless design patterns and others abstract languages paradigms which i never understand what it is trying to accomplish.</comment>


Painting a Picture of Mental Health - <AUTHOR> https://robots.thoughtbot.com/painting-a-picture-of-mental-health <comment><AUTHOR> I have been doing a lot of thinking on burnout and mental health recently. This is the product of a lot of research into these, as well as the effects of hobbies on mental illnesses such as depression and anxiety.

It was wonderful to be able to combine sharing my miniature painting hobby and some of this thinking.

It's especially important this time of year to be cognizant of mental health concerns. A big way to help spread this awareness is to talk and write about it.</comment>


Using Emacs - the good and the bad - <AUTHOR> http://www.surfaceeffect.com/thoughts/emacs

<comment><USER2> _... , though I use it exclusively as a text editor and steer clear of its other functionalities_

This is no way to use emacs.

I think it's great more people are using emacs, but there are optimal tools for everything. For programming languages such as C/Python/etc, emacs is quite powerful because you can bind it to compilers and point out syntax errors inside, have bindings to tag definitions in the depths of sources, and the ability to run the debugger and follow the source with it. But the op is using emacs for editing raw HTML, which I think would be more of a drag for the programmer, and better off using a more modern editor that supports HTML and web centric features.

His mention about M-x is the only way to access functionality is wrong. By default it is, but you can always add new key bindings to all the functions available, or write your own. If you aren't doing these already, you are severely underusing emacs (to the point it may hinder you instead of help you).

And he mentions the lameness of the .emacs file, but the biggest upside of it is, one can do all the worlds customization there and take with you where ever you go, that's the real power of it.

For any new emacs users, I highly suggest printing and hanging this reference card somewhere nearby [http://mentoring.csua.berkeley.edu/files/RefCards/emacs_22_r...](http://mentoring.csua.berkeley.edu/files/RefCards/emacs_22_reference_card.pdf)

And <http://www.emacswiki.org>

Long live emacs.</comment>


Race Condition vs. Data Race (2011) - <AUTHOR> https://blog.regehr.org/archives/490 <comment><USER2> This is something I learned through the course of trying to be clever in my early days of using Go (circa 2011) and it's something I wish my CS courses made explicitly clear, and I think all programmers should at some point learn this difference. Even in JavaScript, race conditions are possible.

In fact, I'm pretty sure my car's "infotainment" system has several race conditions (though I'm not sure about data races specifically). After years of dealing with these kinds of bugs, you can smell them a mile away especially on software you use a lot. Symptoms: highly sporadic / unpredictable behavior of a wonky state machine. These are hard to document and debug!

My car, for example, will sometimes exhibit these behaviors:

\- Volume changes Android Auto levels even though only music is playing

\- Backup camera is not on anymore, but steering alignment overlay remains when side camera is activated

\- Computer+screen stays on even though car is off

\- Audio is quieted for a notification but then never returned to its previous volume

\- Buttons change state as if the screen was showing something else

Race conditions are really common, I think. I know this is just my car as an example but you've probably experienced them on any moderately-complex systems you've used. I bet your TV has race conditions. And your router. And your ("smart") thermostat. I hope airplanes and spacecraft don't.

<comment><USER3> > Even in JavaScript, race conditions are possible.

I guess this was a joke/typo? Otherwise, are you implying that JS has any protection against them? This would be the last language I would think of.

<comment><USER4> I think that the "Even in JavaScript..." comment was written with the idea that race conditions might not be present/possible in single threaded environments, such as JavaScript...I read it as "Even in a single-threaded environment, such as JavaScript..."

I don't think that most folks would hold up JS as some sort of gold standard of language design, and it doesn't seem that the author is doing so here.

<comment><USER5> I have a little rant on this.

In the scale of "understanding imperative semantics", awareness of race conditions is probably near the very high end of difficulty, while pointers are only somewhere in the middle. And that's a problem, because there are plenty of languages, JS included, that free you from understanding pointers while still making it very easy to create racy code. As such there are a lot of programmers going around with a false understanding of whether they are writing robust concurrent code - because they don't think it is concurrent. It doesn't say "concurrent" on it - this is a footgun naturally achieved with any sufficiently complex loop - and often they have made some effort to tuck away mutability in tiny functions, hindering efforts to find and fix the resulting race conditions.

<comment><USER6> Inversely, it's relatively easy to abstract away the complexity of pointers (so we do), but useful abstractions that make race-y code impossible are horrendously hard to get right (so we don't).

Rust's borrow checker is a great example of the sort of complexity you _have_ to bring in to have your language protect you from data races.

<comment><USER7> You don't need Rust's complexity and borrow checking to protect you from data races. Actor model does that without the bad parts.

<comment><USER8> That's true but actor model achieves freedom from data races by forcing ALL messages to be synchronized. This can be useful in some situations but imo isn't a panacea for concurrency issues

<comment><USER7> > ALL messages to be synchronized

I'm assuming you mean implementation-wise. Only cross-core communications need synchronization and since messages are asynchronous you can pay synchronization costs only ones for the whole batch.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> > Are the data races on these flags harmful? Perhaps not. For example, in the > evening we might shut down all transaction-processing threads and then > select 10 random accounts that are flagged as having had activity for manual > auditing. For this purpose, the data races are entirely harmless.

My understanding of data races like that is that they can cause UB by, for example, leading the reader to take neither side of an if/else branch. If something can cause UB depending on timing, that seems like it must be a race condition too.

</comment><comment><USER10> The article sort of mentions this, but I thought it should be pointed out fully: in c/c++ from the language standpoint it's impossible to have a data race without a race condition, because a data race is undefined behavior and that means anything can happen, including race conditions.

<comment><USER11> I'd consider races of atomics with relaxed ordering data races, but those aren't UB per se.

<comment><AUTHOR> The C++ standard definition of a data race excludes races of atomics; [http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n429...](http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf) section 1.10.23, page 14 near the bottom:

"The execution of a program contains a data race if it contains two ... ,at least one of which is not atomic, and ..."

</comment></comment></comment><comment><USER12> I feel like, while it may be useful to distinguish the terms, a data race is really just an instance of a race condition. I'd say data races are race conditions, but not all race conditions are data races.

For example, with this line:

a = a + 1;

That's really multiple operations:

      1. Read a
      2. Add 1 to the read a
      3. Put the new value over the old a memory location.

And the data race is due to this. If this happened concurrently, for example:

      1. T1 reads a which is 10
      2. T2 reads a which is 10
      3. T1 adds 1 to its read value 11
      4. T2 adds 1 to its read value 11
      5. T1 puts 11 in location a
      6. T2 puts 11 in location a

And now if these had been synchronized, a would actually be 12, since you had two things increment it. But due to this data race, a is still at 11 only.

Now if you deconstruct the actual operations performed by a single line of code as I did here, you see that it is exactly similar to a race condition.

<comment><USER13> > I'd say data races are race conditions, but not all race conditions are data > races.

This is not the case according to the article. In the article, transfer4 is a data race but not a race condition.

Your example with T1 and T2 is a race condition and a data race.

Your example with a = a + 1 is neither a race condition nor a data race since there is no concurrency.

It's probably possible to argue that the terms should be defined differently to match the formulation you have instead of the author's. After all, definitions are created by people to help our thinking and we can change them or refine them. But I suspect that would be very a difficult argument to make in a compelling way.

<comment><USER14> I'm starting to be convinced that data races don't matter if the variable being raced is in the machine word size.

<comment><AUTHOR> It depends on context. It's true that many CPUs provide atomicity for aligned accesses of the machine word size. However, the C/C++11 standard defines data races to be undefined behavior, so a data race in a C program still matters.

</comment></comment></comment></comment><comment><USER15> Go's race detector (-race) does an excellent job of catching data races without false positives, but it does not detect race conditions.

This was my concern with sync.Map being added to Go's standard library: I saw many Java developers use concurrent hashmaps to avoid data races while creating applications riddled with race conditions. Your critical section is rarely just the map.{get,set} but rather the operations performed with the objects you get/set.

Luckily I've seen sync.Map used very infrequently as Go's lack of generics make it fairly awkward.

</comment><comment><USER16> Someone should fix en.wikipedia that redirects Data Race to Race Condition.

</comment><comment> awinter-py > Generally speaking, some kind of external timing or ordering non-determinism > is needed to produce a race condition

race conditions don't rely on non-determinism -- two overlapping CAS operations (compare-and-swap) with deterministic read-read-write-write order will race every time.

There are realistic code examples that produce this order in the wild -- the issue isn't non-determinism, it's lack of synchronization around the CAS.

<comment><USER17> Two overlapping CAS operations that deterministically get executed in a particular interleaving produce a deterministic result and as such are, by definition, not a race condition.

A race the result of which is known ahead of time is not a race.

<comment> awinter-py it's an order-dependent logic error caused by lack of synchronization

what would you call it if not a race?

<comment><USER17> If the order is deterministic, there is nothing "order-dependent", other than in the sense that every calculation is order-dependent, in that any calculation might give you different results if you changed the current deterministic order of operations to a different order of operations.

For the same reason, there is also no lack of synchronization. If the result is wrong, it's simply a wrong calculation/a logic error, and if that is because the order of operations is wrong, then that is because the order of operations is wrong, not because of some race that doesn't happen.

<comment><USER18> If you have a Hyperthreading CPU, the order of operations on a given code block can change from sequential to parallel depending on the availability of specific ALUs. Many times the code can be correct until something external either causes more or less hyperthreading to occur which exposes dormant bugs.

<comment><USER17> ... in which case the ordering of operations is not deterministic, so it's not relevant to this thread of the discussion?

<comment> awinter-py in my example I'm launching two compare-and-swap operations (op1 and op2) at the same time.

The correct order (in the presence of synchronization) would be [op1_read, op1_write, op2_read, op2_write].

The incorrect order (without synchronization) is [op1_read, op2_read, op1_write, op2_write].

In the second trace, op2_write will overwrite op1_write with the data from its stale read. The correctness issue here isn't dependent on nondeterminism, just on lack of synchronization.

<comment><USER17> > In the second trace, op2_write will overwrite op1_write with the data from > its stale read. The correctness issue here isn't dependent on > nondeterminism, just on lack of synchronization.

No, it's simply a wrong order. When the order of operations is deterministic, that means, by definition, that they are synchronized. The fact that you can change the order by inserting or replacing instructions does not mean that the code lacked synchronization, and it is irrelevant that you could use those same instructions in a different context to synchronize operations. In this context, operations are already synchronized, so nothing you could do can possibly "sychronize them more", you only can reorder them (or desynchronize them, potentially, by introducing non-determinism in the order).

Synchronization is what you use to restrict the ordering of operations. When there is only one possible ordering of operations (i.e., the order is deterministic), there is nothing to restrict there. When the order created by some synchronization is the wrong order for correctness of the software, that doesn't mean that the code is lacking synchronization, it simply means that it does order operations wrong.

<comment> awinter-py simple case of this is an increment operation

the programmer has written an incorrect function that does a SQL read, parses a value and then does an update. It doesn't use a transaction (i.e. no synchronization) so this is unsafe to use in parallel.

and someone else uses their function without reading carefully, spinning off two invocations without reading carefully and awaiting them both

I suspect you'll agree this is incorrect in that the value will be incremented once instead of twice.

If you don't call this a race condition, what do you call it?

<comment><USER17> Your original scenario was one with deterministic execution order, this one as far as I can tell is not ... so, how is this example relevant to the discussion?

<comment> awinter-py if you make some assumptions about how long IO takes and how the systems order IO, this overlapping-increment example will have a deterministic order and still be wrong every time (increment once instead of twice).

The assumptions are that op1 and op2 are started in order and that your database replies in the order received.

<comment><USER17> > if you make some assumptions about how long IO takes and how the systems > order IO, this overlapping-increment example will have a deterministic order > and still be wrong every time (increment once instead of twice).

So? Is every piece of code that gives the wrong result a race condition?

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> This guy really knows how to insult his audience. (By repeatedly saying "This is really obvious...")

<comment><USER19> The word "obvious" appears exactly twice in the article, and in neither place is it used in a way I would consider condescending or insulting.

<comment><USER13> > Everything in this post is pretty obvious

When someone is struggling to understand something, it's insulting to tell him or her that it's obvious. It's implying that he or she is a moron.

It's only not condescending or insulting if the material actually is obvious.

And in this case, it's not.

I had to re-read one part that he called "obvious," and I used to do computer science research in concurrency. Granted, I had been reading quickly.

There is no way any of this is "obvious" to a student learning about concurrency for the first time, and Regehr is a professor and has students, so that category of people is presumably part of his audience.

There are HN posters on this thread, presumably intelligent, who did not completely follow the post, so again, he's pretty much calling these people morons, since they didn't follow something that he _repeatedly_ insists is "obvious."

> Everything in this post is pretty obvious, but I've observed real confusion > about the distinction between data race and race condition by people who > should know better (for example because they are doing research on > concurrency correctness)

So there's another class of morons that can't understand the "pretty obvious"... some concurrency researchers.</comment></comment></comment>


US Funds: Overconfident, Overconcentrated, and Overcrowded - <AUTHOR> https://medium.com/@alexanderbcampbell/overconfident-overconcentrated-and-overcrowded-c8c0b93997d8#.58fstjfuj <comment><USER2> What does it mean for a stock to be overcrowded? It's a new term to me. I looked for a definition in the article, and couldn't find an explicit one.

Does it mean a stock has a lot of investors with relatively small positions?

Googling only turned up 'crowded short'.

[http://www.investopedia.com/terms/c/crowded- short.asp](http://www.investopedia.com/terms/c/crowded-short.asp)

Is that the same thing?

I've been investing in stocks for a while and this is a new term to me.</comment>


Floating-point calculations in ancient Mesopotamia [pdf] - <AUTHOR> http://cdli.ucla.edu/pubs/cdlp/cdlp0005_20160501.pdf <comment><USER2> Why do we find it fascinating when open minded researchers show us what we all know to be true anyway, that is, our view of history (and the literature their in) are horribly skewed by extreme ethnocentrism. Yes, the first mathematics comes from the same place the fist civilizations come from which is the first place people found that could support grand scale civilization -- old Mesopotamia, the Nile, and so on. Ideas, like people, spread from there on out to the rest of the world. Fringe science instead like to divide and talk about how advances in science can be linked to (get this) mixing with and extinct sub-human species which has never been conclusively proven to even use tools more sophisticated than what can be picked up off the ground.

Most articles like this have a big ol' elephant in the room that only the bravest dare to approach.</comment>