Amazon's Jeff Bezos Backs Nuclear Startup General Fusion - <AUTHOR> http://gigaom.com/cleantech/amazons-jeff-bezos-backs-nuclear-startup-general-fusion/ <comment><USER2> Disappointed, for selfish reasons, to hear that he's sinking money into fusion instead of thorium-based fission.

Still cool, though.

As a title nitpick, using the N-word to cover both fission and fusion glosses over how utterly different the two things are.

<comment><USER3> there is completely different regulatory landscape and thus price to enter the game. Any fission work would involve radioactive elements from the start. Licensing and approval on all the levels from federal to local require investments and political power on the scale well beyond ...

An even if you manage to develop and prototype the fission reactor, the deployment is still and even more subject to that approval problems.

The nuclear fusion work, as long a it is deuterium based (tritium can be bread during the process) and no dual-purpose equipment is attempted to be bought (like very large power lasers or extremely short-impulse discharge devices) can be conducted in your garage ... well until you start getting real neutron flux (or gamma flux before it if you're going fusor way) - either you and your neighbors get serious health damage/killed or you start installing protection from the flux - that would involve money and questions on why would you need so much of boron concrete :)

<comment><USER2> The fission startups out there (most notably TerraPower) do all of their work _in silico_ , and that's representative of fission reactor design in general. Fission reactors aren't prototyped, they're simulated exhaustively, approved, and then built.

You're right, though, that securing the materials for a fusion prototype is less legally fraught.

</comment></comment></comment><comment><USER4> The author's assertion that this project will be impacted by the Japanese disaster shows that she doesn't understand the technology. Fusion != Fission, and in this case there isn't even any radioactive material in the equation. If anything, the Japanese disaster will put _more_ focus on fusion research and development.

/facepalm

<comment><USER5> _Fusion != Fission, and in this case there isn't even any radioactive material in the equation_

Fusion reactors spew neutrons which can create a variety of radioactive isotopes. Most of these are very short-lived, fortunately -- but they do exist, and reactor designs need to take these into account.

(Also, some reactor designs use tritium as fuel, which is of course radioactive to begin with.)

<comment><USER6> It's worth mentioning here that coal-fired power plants also spew radioactivity into the atmosphere.

<comment><USER7> Especially old coal power plants which have not upgraded with filters...

<comment><USER8> Actually, a large part of the radioactivity is in the form of C-14 in carbon dioxide which is unaffected by filters.

<comment><USER7> 'Large part'? Numbers, please.

C-14 is not much contained in old fossil fuels due to radioactive decay. The literature also discusses the Suess effect, which shows that coal power plant reduced the effect of C-14.

</comment></comment></comment></comment></comment></comment><comment><USER9> What's with that photo? The shaven head, leather armchair, and expression, juxtaposed with the story about nuclear reactors, make it look like he's channeling a supervillain. Paging Hank Scorpio.

</comment><comment><USER10> Wait, there is a viable chance at (controlled) fusion within the next decade?

That would be massive news, I mean of the century, no?

<comment><USER11> Probably not the next decade. I've seen fusion researchers referred to as "the cathedral builders of our time"—their work will take decades, and they might not see success within the span of their careers, or even lifetimes.

But yes, controlled, sustained, repeatable fusion reactions could be a black swan on the order of the internal combustion engine for the 21st century.

</comment></comment><comment><USER12> Glad to see someone with a long-term vision. Tapping fusion power will solve the world's energy issues, and that is a good thing.

<comment><USER13> _Tapping fusion power will solve the world's energy issues, and that is a good thing._

Is it though? Exponential growth always has to end in disaster sooner or later.

Global energy use in 2008 was estimated at 474 exajoules. At a 8% yearly growth rate in consumption, it would take only 120 years to increase that to 5 million exajoules, thereby producing more waste heat than the energy which the earth receives from the sun. It's likely that we would be in serious trouble long before that.

(If the 8% growth rate seems high, I took it from the growth rate in oil consumption before the first oil shock in the 1970s. This seemed like a reasonable model for growth in a world with limitless energy supply.)

<comment><USER6> It's actually not reasonable; since the 70s there have been significant pushes toward efficiency on a variety of fronts which make pre-1970s energy consumption statistics inapplicable.

<comment><USER13> I know; my point was that this drive for energy efficiency would disappear again in a world with limitless energy supply from fusion.

<comment><USER6> But nothing's ever "limitless," though -- energy would still cost something (even though it could be 1/100th of what it is today). Transmission and storage of energy would still have costs and that's where the drive for efficiency would come from.

</comment></comment></comment></comment></comment><comment><USER14> General Fusion is taking a different approach to fusion than anything previous. Their website has a great summary:

<http://www.generalfusion.com/>

If they (General Fusion) can make their idea work... wow. Kudos to Bezos and the other investors for backing them.

Also did you notice the author chose to use a Bezos photo taken by Steve Jurveston (Managing Director of Draper Fisher Jurvetson)? It's a small world indeed!

</comment><comment><USER15> Here's the triad which must seem attractive to billionaires:

High Risk -- High Capital Cost -- High Impact.

By risk I refer to financial risk. By impact I refer to the changes the new thing would wreak and the concomitant profits that would follow.

Fusion fits the bill nicely. With a few billion bucks I reckon I would happily sling a million here and there for a low probability of obtaining still further billions.

</comment><comment><USER16> I submitted an old article about these guys last year: [http://www.popsci.com/scitech/article/2008-12/machine- might-...](http://www.popsci.com/scitech/article/2008-12/machine-might-save- world) the article includes a video of their proposed design and an interview.

</comment><comment><USER17> <http://www.hyperionpowergeneration.com/product.html> also sounds interesting

</comment><comment><USER18> Pity he isn't investing in Emc2, the maker of the Polywell. <http://www.emc2fusion.org/>

</comment><comment><USER19> General Electric...General Fusion...oh, I get it:)

<comment><USER20> It's a pretty common prefix. There was General Atomics, General Dynamics, and of course, General Motors. Probably more too.

</comment></comment><comment><USER21> Is the name Elastic Fusion Power appropriate?

</comment><comment><USER22> I hope he wasn't inspired by "Wall Street II"</comment>


Why we stuck with Maliki — and lost Iraq - <AUTHOR> http://www.washingtonpost.com/opinions/why-we-stuck-with-maliki--and-lost-iraq/2014/07/03/0dd6a8a4-f7ec-11e3-a606-946fd632f9f1_story.html?hpid=z1

<comment><USER2> Powerful, detailed stuff. The most important lesson from this is the need for continual focus - over time things change and develop, and there needs to be good people in the right position to react correctly. Never fun to see comments like "...the White House had settled on its disastrous Iraq strategy. The Iraqi constitutional process and election results would be ignored, and America would throw its full support behind Maliki..." when "Democracy and respect for human rights have long been central components of U.S. foreign policy" is the official line from the US State Department.</comment>


AeroMobil's flying car now available to preorder - happy-go-lucky https://venturebeat.com/2017/04/20/aeromobils-flying-car-now-available-to-preorder-for-only-1-3-million/ <comment><AUTHOR> for only $1.3 million.</comment>


Why You Shouldn't Use ReactJS for Complex Projects - <AUTHOR> https://www.infoq.com/articles/more-than-react-part-i <comment><USER2> I don't think the author of this article really understands what React is and what it is not. They repeat several times that React is a framework - it is not. React is a library, one which you can use to render components and build interfaces. It doesn't claim to be a Framework for handling data, and making comparisons between the number of lines required to write tiny TODO applications isn't exactly convincing when the argument is that you shouldn't use React for complex projects.

The author writes off solutions such as Redux which are designed to solve nearly all of the "problems" the author assigns to React because they add extra layers to the application, however in reality, separating your data and your views is EXACTLY the point - that's what helps to make complex applications manageable.

The article is really an advertisement for the authors own framework Binding.scala, rather than a critical look at React.

<comment><USER3> If you have to architect your project around the use of this "library" then it smells a lot more like a framework.

<comment><USER2> You don't architecture you project around React - you simply fit react in wherever you want to render the UI. React has a very small API, most of which are simple lifecycle methods for dealing with changes in the state of a component [1].

You tell React that you'd like to Render component X inside DOM element Y, and that's really all React does. There's no architecturing your project around React.

[1] [https://facebook.github.io/react/docs/react- component.html](https://facebook.github.io/react/docs/react-component.html)

<comment><USER4> Even though, the number of React's API is still larger than [Binding.scala's API]([https://static.javadoc.io/com.thoughtworks.binding/binding_2...](https://static.javadoc.io/com.thoughtworks.binding/binding_2.11/10.0.2/com/thoughtworks/binding/Binding.html)).

</comment></comment></comment></comment><comment><USER5> Most of this article seems to be complaints about using Javascript, a dynamically-typed and interpreted language, vs using a statically typed compiled language like Scala. The author also seems to dislike the idea of client-side logic and data fetching, as opposed to server-driven.

A number of the comments about React are very overstated or overblown. For example:

> Since the two versions of virtual DOMs are mutually independent, the React > framework has no idea about what is going on in data sources, randomly > guessing processing operations depending on just these two DOMs. This kind > of algorithm is extremely slow and inaccurate.

In reality, unless the component tree is dramatically changed (such as changing to an entirely different screen), the new VDOM contents are likely to be almost identical to the previous contents. React makes a number of educated assumptions about the structure of a VDOM tree to efficiently diff the changes. That does take processing time, but saying it is "slow and inaccurate" is just silly.

Ultimately, this article seems to be mostly about bashing React and trying to sell the author's Scala HTML bindings library instead.

</comment><comment><USER6> > The minimal reusable unit in React framework is React.Component

Wrong. And if you think the correct answer is "function" then you are wrong as well. The answer is: an Element. A pure, immutable value representing a React element. Example: const myReusableDiv = <div />;

> Developers have to manually replace class and for attributes with className > and htmlFor.

So? It's just syntax. You can teach that, along value interpolation and everything that a designer might need to be able to make changes to templates, in less than five minutes to someone who only knows HTML.

> [talking about propTypes]. Yet this mechanism is full of holes.

So is JavaScript. Nothing to do with React. Scala is better, obviously. Any statically typed language is better at that. And there even are languages which are better at that than Scala.

If you are all like 'lol JS has no types, look at my fancy Scala code' then I'll smack you with my Haskell ADTs. And then somebody from the Agda or Idris camp joins and gives you a taste of dependent types.

> [how async programming is bad]

Nothing to do with React. React is just for rendering the UI. How you manage the data is entirely up to you.

<comment><USER7> To be fair <div /> is a function when converted from jsx to js

<comment><USER6> <div /> is a constant. It's syntactic sugar for React.createElement("div"), which is at runtime represented as an object {type:'div', ...} and a few other fields.

typeof <div /> === "object"

<comment><USER7> I misspoke, yes it's a function _call_ to React.createElement

</comment></comment></comment></comment><comment><USER8> I'm a bit surprised to see this on a site such as infoq, and being written by a developer from Thoughtworks.

If you have a 'complex project' you are going to need more than just ReactJS. It's like saying Handlebars templating is no good for large projects.

The reusability of components in a large project, and specifically the issues the author points out about interactivity between components, isn't supposed to be done in react, you're supposed to have a data (store) layer which manages the state of your components. This means the component itself is essentially just an template for your output.

<comment><USER9> I keep talking to people that put too much business logic in their components and then complain about react's unmaintainability as the project begins to have problems. Most of the time is because of poor component design and lack of a clear state/data management

<comment><USER10> I am surprised that is still a thing given that React + Redux is very popular. I would expect anyone delving in React to at least be aware of it.

</comment></comment></comment><comment><USER11> This article purposefully misrepresents React in favor of the author's own framework Binding.scala, all the criticism are either superficial like class being className (which is a good thing because JSX is not HTML) or has nothing to do with React like JavaScript's dynamic typing system and handling of asynchronous updates.

He also seems to believe that React is framework when it's a library, if his knowledge of React is so shallow that he didn't even read the first sentence on the React website I can't take his opinions on it seriously.

I don't like these kinds of articles which are only thinly veiled advertisements that do not offer any thoughtful criticisms, what I would really like is to hear from someone who has actually worked on a huge project which includes React and what troubles if any they ran into.

<comment><USER12> I agree, as I read the article I got the same impression. This sentence did it in for me:

> However, after a few weeks, as I became more skilled in React

Do it for a year and a half and I'll accept your criticism. A few weeks is not enough time to claim enough expertise to be making the claims the article makes.

</comment></comment><comment><USER13> Some of these grievances might be better titled "things that thew me off when learning React".

I'm not quite sure how using "className" vs "class" materially affects a complex project.

propTypes are pretty shallow in terms of checking, but I've seen them more as something third party components should provide as metadata/documentation rather than replacing a type system. Large project should rely on Flow or TypeScript if they're worried about typings.

I'm not sure I follow the complaints against asychronicity? Maybe when dealing with improperly complex components it becomes tricky and that I think takes experience to get a feel for.

Additionally, if we're comparing what appears to me to be a synchronous two way binding pattern to React, I think it's really just a matter of choosing the wrong technology for a given preference. React and the omnidirectional data flow pattern are directly opposed to that.

<comment><USER14> >I'm not sure I follow the complaints against asychronicity? Maybe when dealing with improperly complex components it becomes tricky and that I think takes experience to get a feel for

I found this argument pretty confusing at first too. I think since the author is familiar with Scala he may be used to the Actor style of async programming used heavily in the Akka framework that abstracts most of the hard to understand control flow away from the programmer ([http://doc.akka.io/docs/akka/2.4/scala/actors.html](http://doc.akka.io/docs/akka/2.4/scala/actors.html)).

It's a valid complaint, but as long as Javascript is the only choice for developing on the web we don't really have an alternative.

</comment></comment><comment><USER15> > Though Binding.scala somewhat looks like React, the mechanism hidden behind > it is easier and more universal, which is completely different from React > and Widok.

> Apparently, Binding.scala is more flexible and powerful. We can use > Binding.scala to solve complicated issues that React cannot.

How did the author come to this conclusion?

He only complained about issues he saw in React, he didn't really compare them to how it would work in binding.scala. I'm sorry, but I find this post a badly written example of `software A is bad and therefore you should use software B, even though it is not examined critically`

*edit: formatting

<comment><USER16> The author of this article is the author of Binding.scala so presumably he is an authoritative source on it. However, not an impartial one.

</comment></comment><comment><USER17> Article bashing React, written by the author of the library he suggests you use instead.

</comment><comment><USER18> [https://github.com/reactjs/redux](https://github.com/reactjs/redux)

</comment><comment><USER19> I disagree with at least one of the authors critiques:

"Issue 1: React components are difficult to reuse in complex interactive web projects.

Such a lightweight component is very handy in rendering plain and static webpages. Nonetheless, when there are interactions between one component and another, passing callback functions as parameters are inevitable. Particularly for webpages with complicated structures, we have to nest dozens of components from the inside-out, where those callback functions are passed through from parent to child components across layers and layers. The only outcome for applying React framework in complex interactive web projects is that the codebase would become too messy to maintain."

Out of the box React is relatively spartan, which is great for small projects. At scale it only really comes into its own when used in conjunction with other things such as Redux and its wonderful ecosystem of middleware.

In this kind of situation, I would advise using something like Redux and following the advice of Dan Abramov (Redux creator). He wrote a wonderful article on how to split functionality between components and containers:

[https://medium.com/@dan_abramov/smart-and-dumb- components-7c...](https://medium.com/@dan_abramov/smart-and-dumb- components-7ca2f9a7c7d0#.6xmuhf2rx)

I think this is a great pattern to follow for larger scale projects.

"It is well-known that React is a great tool for implementing simple interactive websites, but how does it apply on complex interactive front-end projects?"

Facebook seems like a pretty complex website to me and they are all in on React.

As to his points about the virtual DOM performance, I'd love to hear a more experienced web dev chime in on that as my area of expertise is native development.

<comment><USER12> Redux (and various projects in its ecosystem) resolves alot of the criticisms in the article. To this:

> As to his points about the virtual DOM performance, I'd love to hear a more > experienced web dev chime in on that as my area of expertise is native > development.

His example of an <li> with a <ul> is wrong. Setting that aside..

Depending on the operation and the browser, you can do anywhere between 2000-100000 more operations per second in a virtual DOM than in the browser DOM.

The complaint that complex render functions are wasting precious resources is valid, which is why documentation makes it very clear that these functions should be as simple as possible and produce no side effects. Remember - library, not a framework.

Additionally, it belies the question of - why are you writing a complex render in the first place. In a well-structured app, components would be reasonably small and render functions relatively simple, for varying definitions of 'relatively.' That is, you aren't doing complex number crunching in the render. When I do React perf optimization, one of the most common errors I see people make is have render functions full of complex logic and branching render paths. If you are doing that, your component can be further broken down.

Apparently Facebook is built on over 100,000 individual React components. Damn.

<comment><USER19> I agree. Redux resolves a lot of his criticisms thats why I really didn't get why the author dismissed it so quickly:

"For example, besides the four facets above, the state management problem of React is non-negligible. If we introduce a third-party library such as Redux to deal with the state, the framework would become tangled and the number of layers would increase."

Given how widely used Redux is with React I would have expected him to expand on this point some more and provide a meaningful critique. It's a shame that the other parts of his series have not yet been translated into English. Perhaps he elaborates on what he means by the above statement.

</comment></comment></comment><comment><USER20> A quick correction to the following claim:

> ... if you wanted to insert <li> on the top of a <ul> form, then the React > framework would misjudge that you modified all components of <ul> and > appended <li> at the end.

Yes, that will happen ... but only if you don't assign a key property to each of the `<li>`s. React uses the key prop to uniquely identify nodes that were actually changed versus ones that were just moved around among their peers. So if you're dynamically creating lists of nodes of the same tag type, you really need to be giving them a unique `key`.

Also, it's not a framework, it's a library. A framework calls your code, a library gets called by your code. With React you call `ReactDOM.render` or similar.

</comment><comment><USER21> > Particularly for webpages with complicated structures, we have to nest > dozens of components from the inside-out, where those callback functions are > passed through from parent to child components across layers and layers.

Does anyone have any tips for avoiding this extremely irritating 'props- nesting' (as I like to call it)? I'm pretty new to React, and the one thing that's bugging me about it is that in more complex UI (for example, a toolbar that independently controls a nested component), is how you can't just go through a top-level component directly; you have to go all the way up and down the chain. This gets very messy once you decide to change some of the intermediate components fundamentally.

<comment><USER22> Yeah there is a bit of a learning curve there. I was doing the same when I first started.

It really depends on what you're trying to do, but it really comes down to storing state and data in a central location.

If it's a simple component, passing the on click callback to a child that updates the parent master state is pretty straightforward. So for example selecting an item in a list and updating the active item when a list item is clicked.

If it's a really deeply nested component though, that can get a bit harder. I've had some success passing simple string values via the context reference, which makes the values accessible to all the children.

Another pattern I've used is having a state store similar to the flux pattern using eventemitter. I'm using this pattern a lot on thebigpicture.io for the editor page. There's two main columns in the page that are very deeply nested, so I created a separate state store and individual components are able to listen to changes from different events.

</comment></comment><comment><USER23> I think React is a good framework but it's not as elegant as Google's PolymerJS in my opinion. React's main strengths are its large community (which means lots of plugins and add-ons) and its native device support (React Native).

My main problem with React is that it's more complicated than it needs to be - If following an architecture like Redux, you often end up with long complex chains of reducers and components which makes the logic very hard to follow - Especially if you like to split up your code across multiple files.

There are few things worse than having 10+ files open at the same time and having to figure out which one(s) is/are the cause of your problem.

<comment><USER24> React isn't redux.

<comment><USER19> Sure, but its very widely used in conjunction with React especially in larger projects. I think its fair game for critique in that context. Also, the author of the article specifically called out Redux:

"For example, besides the four facets above, the state management problem of React is non-negligible. If we introduce a third-party library such as Redux to deal with the state, the framework would become tangled and the number of layers would increase."

I like Redux but I think the actions/reducers structure can be a little cumbersome to follow at first.

<comment><USER24> IMNSHO, Redux is a footgun, and adds so much boilerplate and code discontinuity as to negate much of it's benefit outside of colossal codebases and teams.

Instead of reasoning in one file, now you have to reason through half a dozen. Poorly set up actions/reducers will _stay_ cumbersome to follow, and aren't appropriate for every application.

However, none of it's problems are due to react.

<comment><USER19> I agree. Dan Abramov the creator of Redux has a whole article devoted to this topic:

[https://medium.com/@dan_abramov/you-might-not-need-redux- be4...](https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367)

A lot of the work I'm doing right now is in a reasonably complex react native app with multiple screens. In that context its worth the added boiler plate. I wouldn't use it for a one or two screen app with little shared state.

</comment></comment></comment></comment></comment><comment><USER25> Nup - none of these criticisms seem valid to me.

And a particular comment about asynchronous programming - ALL JavaScript requires async programming and you need to know how to properly handle it no matter what you are programming.

</comment><comment><USER26> Well,

[https://github.com/facebook/react/wiki/sites-using- react](https://github.com/facebook/react/wiki/sites-using-react)

</comment><comment><USER27> Every front-end engineer knows - React is a library and not a framework. From my own experience one of the best ways to see where React shines is to try out one of Clojurescript libraries, and there are plenty to choose from: Rum, Re- frame/Re-agent, Quiescent, Om.Next. React plays extremely well with immutable data-structures. Om.Next is mind-blowing awesome.

</comment><comment><USER28> Having no experiences with it. The author calmed that is faster but the benchmark result in below chart was shown different word:

[http://www.stefankrause.net/js-frameworks- benchmark5/webdriv...](http://www.stefankrause.net/js-frameworks- benchmark5/webdriver-ts/table.html)

<comment><USER4> Given a component that contains n elements, and you want to update k elements at a time, ReactJS requires O(n) time for virtual DOM differentiation, and Binding.scala only takes O(k) time.

As a result, Binding.scala is fast when k < n (aka partial updating), even faster than vanillajs written by a common human for some cases. Check the rows "partial update", "select row", "swap rows", "remove row" in the benchmark.

<comment><USER29> Nobody cares when it is 6ms instead of 3ms for partial updates. What is really important is how fast you can create and remove huge amount of nodes (switching pages in SPA, etc), because it is already takes a huge amount of time, and Binding.scala just adds a huge overhead to this cases.

</comment></comment></comment><comment><USER30> Well, that's one way to turn people off to your new framework. Maybe something got lost in the translation? Maybe this reads better in the original language? Maybe not. But even then, as many people have already commented on, it's just plain wrong about React.

</comment><comment><USER31> I don't know, Facebook seems like a pretty complex project and they use React.

</comment><comment><USER32> React is not good enough since it's based on JavaScript. Swapping the language to ClojureScript or ReasonML, the situation will change.</comment>


History of Iterative and Incremental Development (2014) - <AUTHOR> http://wiki.c2.com/?HistoryOfIterative <comment><AUTHOR> If the above link is slow consider The Web Archive: [https://web.archive.org/web/20190225144916/http://wiki.c2.co...](https://web.archive.org/web/20190225144916/http://wiki.c2.com/?HistoryOfIterative)</comment>


How to Find 56 Potential Vulnerabilities in FreeBSD Code in One Evening - <AUTHOR> https://medium.com/@Coder_HarryLee/how-to-find-56-potential-vulnerabilities-in-freebsd-code-in-one-evening-4ecee6eebaf4 <comment><USER2> A duplicate of [https://news.ycombinator.com/item?id=14057568](https://news.ycombinator.com/item?id=14057568) submitted by the author xyrself.</comment>


Coronavirus (Covid-19) Overview for Startup Founders - <AUTHOR> http://blog.eladgil.com/2020/02/coronavirus-covid-19-overview-for.html <comment><USER2> Thank you Elad for writing this very succinct and useful document. One thing you may want to include is what sort of symptoms there are and when they appear. I've found the preliminary NEJM case study helpful to me as Figure 2 clearly drawn: [https://www.nejm.org/doi/full/10.1056/NEJMoa2001191](https://www.nejm.org/doi/full/10.1056/NEJMoa2001191) Another document I've found helpful is the Chinese CDC document: [http://weekly.chinacdc.cn/en/article/id/e53946e2-c6c4-41e9-9...](http://weekly.chinacdc.cn/en/article/id/e53946e2-c6c4-41e9-9a9b-fea8db1a8f51) in understanding the aggregate behavior of Covid-19. You may know of better more recent primary source documents, so I look forward to seeing the updates in your overview.

</comment><comment><USER3> Practical advice with links to more information. Additional updates will be posted on [https://docs.google.com/document/d/1hYPrTMKfcEFux2rETlK07TAm...](https://docs.google.com/document/d/1hYPrTMKfcEFux2rETlK07TAmW1wAW3003a00YRDn9qw/edit)

Probably the single most important "prediction" based on past epidemics (e.g. 1919 Spanish Flu, HN1 in UK in 2009) is his point 5: Expect A Second Wave

"In many epidemics disease course follows two waves. In wave one, an initial infection happens followed by governments tightening movements, shutting schools, and in general decreasing the spread of the diseases. Controls are eventually relaxed (people need to work, kids need to go to school etc.) and then a few months later a second wave of the disease hits and infects a subset of the people who were not infected in the first wave. Eventually, enough people get sick, develop antibodies, and there is a strong enough herd immunity in the population to decrease future out breaks in size."

I think this is the most likely near term prognosis for China as it relaxes it's "non-pharmacological measures" that have discouraged spread.

</comment><comment><USER4> What does this have to do with startups specifically? The advice here applies to any type of business/office.

<comment><USER5> I originally sent this out to the founders of companies I know. To your point it can apply more broadly.

Many larger company boards have already discussed this, but many startups have small or no boards to bring this up (hence the email I originally sent which turned into this post when founders suggested I publish more broadly)

</comment></comment><comment><USER6> > If your plan is to fundraise in 3-6 months, it might be worth considering > doing it now.

That's me... I sure wish my prototype/demo was farther along. It looks nice but is pretty feature lite

<comment><USER7> Just lie about your product status like everyone else</comment></comment>


Javascript or Flash Widgets debate. Help me choose what to use. - <AUTHOR>

What are your thoughts, tips, and/or best practices for either? <comment><USER3> I personally prefer lightweight javascript over the often slower flash equivalent. Rich UI functionality is generally easier to implement in flash though. But this can be a heated debate so watch out..

Some things to consider: The iPhone supports javascript but not flash, Adobe does not have flash out for x86_64 Linux, Flash is a proprietary closed platform.

<comment><USER4> "slower flash equivalent" ?

The basic file size of an empty swf file is approximately 35 bytes.Apart from this 35 bytes, everything else is developer contribution. The file size depends on what kind of assets you want to embed in your flash widget. If you embed more images,mp3s etc., the file size will increase. One of the greatest strengths of flash is the speed at which the 'flash virtual machine' initializes. A swf file churned out by a good developer will perform well.

Having said that i would personally prefer to go with a javascript version, if the widget doesnt require video or hardcore visual effects.Why lock yourself in a closed piece of software unless its acutely necessary ?

A major disadvantage of using flash is that, flash by default will place itself on top of everything else in a webpage. A work around for this is to set wmode as "transparent". But this will drastically reduce performance of flash widget in Gecko browsers.And hence, as far as possible, use javascript.

<comment><USER5> Keep hearing the same 'closed software' regarding flash and I don't understand why. There are quite a few open source platforms that produce swfs (open laszlo, aptana, even flex is open source now). Regarding the flash player, it is not any more closed software than IE is.

Also isn't it nice not to have to write javascript code for each browser that exists out there?

<comment><USER4> You are right. One of the greatest advantages of Flash is that, you need to code only once, and you can deploy the swf wherever Adobe's flash player works.But thats the catch! The format's license do not allow the creation of software that could 'play' SWF files. The license only allows the creation of software that could 'create' swf files. Aptana, Openlaszlo are all development environments that could 'create' SWF. In short, Adobe doesn't want anyone to mess up with the Flash Player.As you may already know, Gnash is an open source movement in this direction.

What if Netscape said only Netscape's browser could handle javascript although you could write the script in emacs or notepad or whatever .. ?

As a widget usually requires only very little coding, its worth coding it in Javascript ,if it isnt too Rich with animation,video or audio.When it comes to these rich factors, there is no question that flash is the best choice.

</comment></comment></comment></comment><comment><USER6> Pretty much everyone has JavaScript. While for what you are doing, probably everyone in your target audience has Flash, but keep in mind for different versions the % of the general population that has it installed is not 100%: [http://www.adobe.com/products/player_census/flashplayer/vers...](http://www.adobe.com/products/player_census/flashplayer/version_penetration.html)

Adobe (who has an incentive to inflate their numbers though I'm not saying they are) puts Flash 9 at 84.0%. Below that you get into the high 90s. But if your whole product is based on a viral loop, and you can achieve the same thing with JavaScript, that few % can be important when compounded over time.

</comment><comment><USER7> Any advice on making widgets in general? I'd like to make one for my site in a few months and I don't know the first thing about them.

How can a javascript widget even work with the browser restricting javascript to access other domains?

</comment><comment><USER8> Play to the particular technology's strengths... flash for video or performance and javascript for flash-disabled clients or working closely with the DOM

</comment><comment><USER9> for anything that needs to push data frequently - javascript/ajax for anything that needs to pull data frequently - <USER2>

and dont worry about that javascript widgets slowing thing! the web as we know it ,is fragmented in data anyway.

</comment><comment><AUTHOR> thanks for all the comments and thoughts</comment>


Transparency in electronic voting machines - <AUTHOR>

Is there a way to make a vote counting machine be fraud proof? Saying that it uses open source is not enough because there needs to be proof that the executing code is the same as the open source code. It doesn't have to use a computer at all if there is a way to mechanically engineer this or other solution then that would work too. I was thinking that something like bitcoin's system might work, but not sure. Btw, I'm not making this system, just curious. <comment><USER2> If you haven't already, you should read these two papers on this topic by Professor Alex J. Halderman of University of Michigan.

Security Analysis of India's Electronic Voting Machines -<https://jhalderm.com/pub/papers/evm-ccs10.pdf>

Attacking the Washington, D.C. Internet Voting System-<https://jhalderm.com/pub/papers/dcvoting-fc12.pdf>

source: <https://jhalderm.com>

<comment><AUTHOR> In both cases it sounds like the designer/developers were not qualified to make the decisions they did about their systems. Not to sound like a snob or anything, but using Rails plugins? Really? That just sounds sloppy.

<comment><USER2> I believe the Paperclip Rails plugin was only used in the Washington DC situation. I wouldn't call it sloppy to use a 3rd party plugin, in many cases, that is actually much better than a "roll your own" solution. Rather, I think the sloppiness here stems from the fact that the exploit in Paperclip had actually been documented previously so the developers should have performed filtering which would have prevented shell injection in file uploads. It does seem that overall the developers could have done a much better job, but it's also very difficult to build such a piece of software without a massive team and constant testing with realistic deployment (mostly due to the security requirement, any unaccounted for vulnerability could lead to the downfall of an entire election).

To quickly comment on the other paper, it seems that it is just as much a political commentary as a case study on EVMs (electronic voting machines). It appears likely that a corrupt government may have intentionally made the voting system "hackable" so that elections could be manipulated.

</comment></comment></comment><comment><USER3> You can never "look" into the machine, all you can do is to put the machines under tamper-evident seals and trust the authority which distributes these.

<comment><AUTHOR> I'm trying to think of a way that the machine could be designed where it's veracity is verified and viewable by all as it works. In other words there is some kind of mechanism that prevents falsifying the count. Something equivalent to being able to watch over people's shoulders as they count votes. A website that anyone can go to and monitor each machine and its code as it is working but with read-only ability.

<comment><USER4> Mechanical.... but still if one was crafty enough it still could be made to give a false impression....</comment></comment></comment>


Ask HN: Review my starup, vulners.com (vulnerability database) - <AUTHOR> https://vulners.com <comment><USER2> The navigation is broken for me, I need to click at least twice on the hamburger for it to toggle. The animation when clicking on the hamburger doesn't add anything of value either on the desktop.

It's a neat idea otherwise and seems to work pretty decently.

Out of curiosity, what's your business model around this? Safe for ads it seems pretty hard to monetise.

<comment><AUTHOR> Oh, can you provide your browser settings for replication of the navigation problems? Hamburger is useless for now, yes %( We made it as a future place to add feature links, help, etc.

Tank you for your feedback!

There is no business model :) Just trying to make this world little bit better.

</comment></comment><comment><USER3> If somebody just stumbles on your site, it's hard to guess what it's about, and what you're supposed to search for.

Maybe show the 5 most popular search hits on the welcome page?

<comment><AUTHOR> Looks like it really needs help page. Common examples are:

All public Yahoo vulnerabilities:

[https://vulners.com/search?query=type:hackerone%20team.name:...](https://vulners.com/search?query=type:hackerone%20team.name:yahoo)

Or maybe SQL injections?:

[https://vulners.com/search?query=type:hackerone%20sql%20inje...](https://vulners.com/search?query=type:hackerone%20sql%20injection)

For linux users... Vulnerabilities in SUSE:

[https://vulners.com/search?query=type:suse](https://vulners.com/search?query=type:suse)

Or some exploits for Windows 10:

[https://vulners.com/search?query=type:exploitdb%20%22windows...](https://vulners.com/search?query=type:exploitdb%20%22windows%2010%22)

Even take a look for info at the hackers forums, some articles by d0znpp?:

[https://vulners.com/search?query=type:rdot%20d0znpp](https://vulners.com/search?query=type:rdot%20d0znpp)

Lets search for Metasploit modules for Apache:

[https://vulners.com/search?query=type:metasploit%20apache](https://vulners.com/search?query=type:metasploit%20apache)

Thank you for your feedback!</comment></comment>


Implementing XKCD #688 - <AUTHOR> https://github.com/scottsievert/xkcd-688

<comment><USER2> This reminds me pangrams... total fun! [http://en.wikipedia.org/wiki/Pangram](http://en.wikipedia.org/wiki/Pangram)

<comment><USER3> Followed that to perfect pangrams. How many people would recognize these as English?

        Cwm fjord veg balks nth pyx quiz. (Relaxing in basins at the end of inlets terminates the endless tests from the box.)

        Cwm fjord bank glyphs vext quiz. (Carved symbols in a mountain hollow on the bank of an inlet irritated an eccentric person.)[1]

        Jink cwm, zag veldt, fob qursh pyx. (Cross valley and plain to steal coins from Saudi mint. – created by Stephen Wagner)

        Junky qoph-flags vext crwd zimb. (An Abyssinian fly playing a Celtic violin was annoyed by trashy flags on which were the Hebrew letter qoph.)

        Squdgy fez, blank jimp crwth vox! (A short brimless felt hat barely blocks out the sound of a Celtic violin. – created by Claude Shannon)

        Veldt jynx grimps waqf zho buck (A grass-plains wryneck climbs upon a male yak-cattle hybrid that was donated under Islamic law.)

        Bortz waqf glyphs vex muck djin. (Signage indicating endowments for industrial diamonds annoy filth-spreading genies. – created by Ed Spargo)

</comment></comment><comment><USER4> Lazy question: so how accurate is the original?

<comment><USER5> It's discussed here:

[http://www.maa.org/publications/periodicals/math- horizons/th...](http://www.maa.org/publications/periodicals/math-horizons/the- mathematics-behind-xkcd-a-conversation-with-randall-munroe)

The answer is something like to within 1 pixel of the bar chart.

</comment></comment><comment><USER6> Maybe I missed something: why did the author choose 3.7? Was it just arbitrary?

<comment><USER7> The logistic map

      x[n] = r * x[n-1] * (1 - x[n-1])

has chaotic behaviour for most values of `r` above 3.56995 so the author just needed to choose any value 3.56995 < r < 4.

The "most" in that sentence is interesting. For example, for values of `r` just above 1 + sqrt(8) ~ 3.82842 you can observe a stable oscillation between three different values!

The math isn't actually all that hard. The map is

      x <- r * x * (1 - x)

To find a fixed point, just set the left and right hand sides equal

      x = r * x - r * x^2

which is a quadratic equation -

      x * (r * x + 1 - r) = 0

which has solutions

      x = 0, x = 1 - 1/r

which are the fixed points. To find a period-2 cycle, you iterate twice and set the two sides equal to each other -

      x = r * (r * x * (1 - x)) * (1 - r * x * (1 - x))

which gives you a quartic (fourth order) equation. Ordinarily these have a very complicated solution, but in this case we already know two of the solutions, because any fixed point is automatically a period-2 cycle, so x = 0 and x = 1 - 1/r will satisfy the equation. We can get rid of those solutions using polynomial long division, leaving a quadratic equation, whose two solutions are the location of the points in a period-2 cycle!

We can do similar tricks to find period-4 cycles (an eighth order equation which can be reduced to 4th order by factoring out the fixed points and period-2 cycle) and period-3 cycles (a 6th-order equation that can be reduced to 4th order by factoring out the fixed points).

Proving the stability or instability of these cycles and fixed points is slightly more involved, but still not too hard - it just requires calculus at about the level you'd pick up in a late high school or early college course.</comment></comment>


An Entrepreneurial Life - <AUTHOR> http://boss.blogs.nytimes.com/2009/11/03/an-entrepreneurial-life/

<comment><USER2> This is where I was touched.

"Everyone talks about balance. There is no balance. Balance is perfect. There is nothing perfect in work/life balance. It is about compromise, choices and, often, regret. Here is the irony of ambition: The same ambition that drives people to be successful won't let them enjoy being successful. They pay a terrible price for their success, as do their families, but they are never successful enough. "

</comment><comment><USER3> On first read I thought this guy was just turning 30 :/</comment>


It Doesn't Have To Be This Way - <AUTHOR> http://techcrunch.com/2014/01/24/it-doesnt-have-to-be-this-way/

<comment><USER2> Must be a slow news day.

This same storyline, written over and over again by different writers, is really getting a lot of mileage.</comment>


Introducing Steam Reviews - <AUTHOR> http://store.steampowered.com/reviews/ <comment><USER2> I wonder how Steam reviews will factor into the ratings on steam?</comment>


TypeScript website just got a makeover - <AUTHOR> http://www.typescriptlang.org <comment><USER2> And it actually works well without javascript!</comment>


U.S. Income Inequality Hits a New Threshold - <AUTHOR> https://www.bloomberg.com/news/articles/2018-03-01/america-s-wage-growth-remains-slow-and-uneven <comment><USER2> What gets me is the job holders in the upper 20% who actively support a system that benefits the non-working (or don't need to work) top 1%.

I make a pretty high wage compared to a cashier at a store, but my interests align with them a lot more than a Walton. Yet my peers are convinced that because they have the trappings of the petite bourgeoisie and a well funded 401k that they have more in common with a Koch.

I'm not familiar with a society that experienced such high inequality and did not have very disruptive upheaval afterwards. One would think the wealthy would advocate for universal health care, education and safety nets as a small price to pay for their own self preservation. On the other hand, they haven't had much to fear from the lower classes for a long time now.

<comment><USER3> Because there has been a successful campaign to vilify the 1%. When you look at income levels, the 1% includes doctors, lawyers, lots of small business owners, and even many software engineers that got good stock grants in Silicon Valley.

So picking 1% as the threshold was very ill-conceived because now it includes many expert professionals and small business owners. So it's very easy to relate to them if you are also an expert or small business owner.

<comment><USER4> er, small business owners making $800,000+ a year? I don't think that's very easy to relate to.

Who is waging this campaign?

I don't think is a campaign to vilify the 1% as much as it's an increased awareness by the 99% that _no one_ needs to be making $800,000 a year. As people see home ownership being increasingly implausible, healthcare difficult to afford, fulfilling work unable to be found and less than $1000 in savings, is it any wonder people are upset, bothered and judgemental of people who make an impossibly larger amount of money than 99% of people?

<comment><USER3> The number you're looking for is $465k. [https://www.investopedia.com/news/how-much-income-puts- you-t...](https://www.investopedia.com/news/how-much-income-puts-you- top-1-5-10/)

>that no one needs to be making $800,000 a year.

And that's where the mistake is. A significant number of people (including me) are fine with someone creating a company, selling it for a few million, or just having 10 good years of operation and retiring. The rewards for creating something new need to be worth the risk of complete failure and loss of income for those years.

This is the problem with using 1%. The bottom of the 1% is filled with normal professionals that took huge risks (starting businesses) or spent a significant amount of time in training (brain surgeon).

>As people see home ownership being increasingly implausible

Not if you give up on living in the most expensive parts of the US. Even then, a housing shortage is hardly attributable to income inequality. Just look at the bay area where there are people making good money. The housing shortage has caused prices to sky rocket to absorb up all of that difference. If you have 1000 people fighting for 100 houses, 900 people are going to get screwed regardless of income inequality.

> healthcare difficult to afford,

A broken healthcare system can't be fixed by fewer rich people.

>fulfilling work unable to be found and less than $1000 in savings

Capping incomes of successful professions will not add more fulfilling professions nor will it increase their savings.

>Who is waging this campaign?

Well people like you who claim nobody needs to make a lot of money and then blame a bunch of unrelated issues on income inequality. I can't tell if it was just the mathematical ignorance of who started the movement or if it was partially orchestrated by the super-rich. But by making it include skilled professionals that had to put in huge risks to get where they are, they lost significant support of the population within 50% of that income.

>is it any wonder people are upset, bothered and judgemental of people who make an impossibly larger amount of money than 99% of people?

I don't know what "impossibly larger" is supposed to mean in this context. Someone who makes $250k will not see someone who makes $500k as making an "impossibly larger" amount of money than them.

If this whole movement had been more carefully crafted to exclude people that had to go to medical school and go $350k into debt, I don't think there would have been very much disagreement from a significant chunk of the US. As it stands, it just looks like an arbitrary cut-off screwing the people who managed to secure a good life rather than being focused on people with enough money to hire full-time Washington lobbyists.

<comment><USER4> > The number you're looking for is $465k.

The link references data from 2014.

> The rewards for creating something new need to be worth the risk of complete > failure and loss of income for those years.

New things are not inherently valuable by virtue of being new. I don't feel that we ought to reward people who for merely creating things that are new. And why should anyone be rewarded beyond having a comfortable, easy life? $465,000 is an insane salary, magnitudes larger than is required for a comfortable life.

> Not if you give up on living in the most expensive parts of the US.

You're thinking in a narrow context. For someone like me who moved from the midwest to the west coast, yah, I could just go back "home". The larger issue however is that, to borrow a tired phrase, it takes a village to raise a child. The jobs that make a city work are largely not high-income earning jobs. That is: paramedics, firefighters, teachers, bus drivers, road repairmen, linemen, auto mechanics, delivery drivers, locksmiths, and on and on. Much fewer of these people are transplants than the high-earners and don't have support networks in those cheaper parts of the country. Creating cities where only the wealthy can afford to live necessarily, forcefully pushes other people out.

> Even then, a housing shortage is hardly attributable to income inequality.

While I agree that it's vital to build enough housing for the demand, there is one reason alone that a house can cost $600,000. That is because someone has ~$120,000 in liquid, spendable cash. If everyone had only $1000 of cash, how much could a house possibly cost.

> A broken healthcare system can't be fixed by fewer rich people.

I agree, the healthcare system is broken and the problem isn't for lack of money. But when you see politicians attempting to gut medicare for tax breaks for the rich it doesn't little to instill confidence that that money could be better spent.

> Capping incomes of successful professions will not add more fulfilling > professions nor will it increase their savings.

I agree.

> But by making it include skilled professionals that had to put in huge risks > to get where they are

"Huge Risks"? If you have stories about skilled professionals who risked their security and failed I'd love to hear them.

> I don't know what "impossibly larger" is supposed to mean in this context. > Someone who makes $250k will not see someone who makes $500k as making an > "impossibly larger" amount of money than them.

Sure, but someone who makes $45,000 is likely to see $100,000 as impossibly larger. Referencing the professions I listed above, can those skilled professional expect to make $250,000 a year in their profession?

> If this whole movement had been more carefully crafted to exclude people > that had to go to medical school and go $350k into debt

While I only know a handful of people who have gone to medical school or law school, the path to repaying those loans seems to be pretty straightforward and perhaps a little nerve-racking at times, but I don't know anyone who's gone destitute as a result of those loans. Also, I'm critical of a system that puts the burden of risk on the individual for training individuals to do those important, necessary jobs.

Their risk-taking isn't what we ought to be rewarding, it's the value that those professions bring to the general population.

These problems are all intersectional. Is it the fault of rich people that there are poor people? Often not, in some cases yes. There have long been abuses of the lower economic classes by the higher economic classes. I think one the largest problems is how quickly wealthy people lose solidarity with lower earners and believe that it's their "hard work" that got them their wealth. People stuck in lower incomes know how ignorant that belief is. It's also exceedingly difficult for a person living paycheck to paycheck, raising a family or caring for dependent parent or whatever, to solidarity with someone who was in a position to go to med school or study law. Anger is often misplaced and I agree that the delineation between the %1 and the %99 percent is often fuzzed, but that doesn't make the anger an less real, any less meaningful.

<comment><USER5> > it's the value that those professions bring to the general population.

I suppose you will be heading up the committee to decide the value of what people do for the community.?

If only there were some automatic way where the markets could decide what is valuable and what is not.

</comment></comment></comment></comment></comment></comment><comment><USER6> The original link is more instructive:

[http://www.epi.org/publication/the-state-of-american- wages-2...](http://www.epi.org/publication/the-state-of-american- wages-2017-wages-have-finally-recovered-from-the-blow-of-the-great-recession- but-are-still-growing-too-slowly-and-unequally/)

The Bloomberg article didn't even mention whether the changes were adjusted for inflation (they are).

<comment><USER7> The Bloomberg article specifies them as "real wages", which are, by definition, adjusted for inflation.

</comment></comment><comment><USER8> This is in keeping with a long term trend in which the standard of living for the median American has been allowed to stagnate for a long time. The male median wage has been stagnant or declining since 1973. This was previously discussed on Hacker News:

[http://www.smashcompany.com/philosophy/do-men-become- warlike...](http://www.smashcompany.com/philosophy/do-men-become-warlike-if- they-do-not-have-women)

Also, consider that, when it comes to death-by-childbirth, the USA is among the very worst developed countries:

[https://maternityneighborhood.com/the-case-for-care-model- in...](https://maternityneighborhood.com/the-case-for-care-model-innovation- in-maternity-care/)

<comment><USER9> Median wage is a bad metric in a world where health insurance costs (and thus non-wage benefits) are rapidly rising. Median household wage is doubly bad in a world of changing household composition.

[https://www.minneapolisfed.org/publications/the- region/where...](https://www.minneapolisfed.org/publications/the-region/where- has-all-the-income-gone)

</comment></comment><comment><USER10> The statistics for gender are misleading. If you're just comparing the average wage of men and women then of course women are going to earn less: they work less than men on average. If you control for age and whether women have children the gap shrinks a lot (in some areas it reverses).

And an increasing share of wages going to the top income brackets isn't in itself cause for concern, only if the members of the top income brackets are largely static does it matter (since it means income is going to a small group of individuals, rather than a broader group of individuals who are swapped in and out of the top income groups).

So these statistics are hardly "disturbing", though they do merit further research to see how much of a problem these things actually are.

<comment><USER11> >And an increasing share of wages going to the top income brackets isn't in itself cause for concern, only if the members of the top income brackets are largely static does it matter (since it means income is going to a small group of individuals, rather than a broader group of individuals who are swapped in and out of the top income groups).

So a society in which there's competition to be among a handful of feudal lords, but where everyone else suffers tenuous and desperation is unconcerning? How so?

We've been through this in American history. It was called the Gilded Age and it was a nightmare for all but a handful of robber barons, resulted in widespread social and political instability, and violence.

<comment><USER10> No, that's not what I said. I'm arguing for the same thing you are. But income inequality isn't itself a problem if there is mobility between the income groups. They statistics in the Bloomberg article show income inequality but don't show lack of mobility, and then say we've hit "a disturbing new threshold".

There may be lack of mobility along with income inequality, but the article doesn't demonstrate it.

<comment><USER12> That's not what's happening though. First off, social mobility is declining, so let's get that out of the way:

[http://www.businessinsider.com/social-mobility-is-on-the- dec...](http://www.businessinsider.com/social-mobility-is-on-the-decline-and- with-it-american-dream-2017-7)

Second, I think it's still a problem if the income of 90-98% of the country _stagnates for decades_ , while the top earners get higher and higher income. Of course that affects inequality.

I'm also not sure it matters that much if the players at the top switch around if they have increasingly larger leverage on society.

For instance, we're seeing CEOs get rewarded larger and larger amounts of money every year, _even if the companies lose money_ , like in this absurd case:

[https://techcrunch.com/2018/02/22/snap-ceo-evan-spiegel- got-...](https://techcrunch.com/2018/02/22/snap-ceo-evan-spiegel- got-a-637-million-bonus-last-year/)

Where's that money coming from? The employees' potential salary increases? The retail investors' money? It seems to me that the rich keep siphoning off money from everyone else, and that's not sustainable.

They also get larger and larger amounts of money even when they _get kicked out of the company for failing_. This doesn't make sense to me _at all_. And I think the excuse that they need such amounts of money or otherwise they wouldn't take the job or something is utter BS. I'd more likely believe the board is giving them the money so the CEO doesn't sue the company, or better yet because the CEO was the one writing their checks before that, or something along those lines.

And this is just the corporate world. The US Congress seems to get crazier every year and listening more and more to corporations and their interests, and less and less to the people and solving real problems in the country (healthcare, infrastructure, etc).

It's like the whole American society is on the brink of collapse, and everyone just doesn't know it yet. Eventually, people will "suddenly" start to violently riot because of all this stuff added together, and it won't be pretty.

<comment><USER13> One thing I've never understood- in a fair society in which people are not artificially limited, wouldn't we expect social mobility to _decrease_ over time as successive generations "sort" themselves into the spots allowed by their genetics?

Let's say we've got a feudal society with dumb nobility that rules over a smart peasantry by force. If that society becomes free, we'll expect smart peasants to move up and dumb noblemen to move down across the first few generations... but once they've moved, they've moved. Ergo, declining social mobility.

<comment><USER14> > "sort" themselves into the spots allowed by their genetics

There's an extreme amount of assumption baked into that.

1\. Genetics is the only factor that determines merit for wealth?

2\. Genetics merits extreme differences in income/wealth?

<comment><USER13> 1\. No of course not, but if it's a factor _at all_ we'd expect to see the pattern I described.

2\. We're talking about social mobility, not the level of inequality.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> Wage inequality is just a labor aristocracy, divide the masses tactic. We should also be looking at non-wage income i.e. dividends, interest, and capital gains. The untold story: non-wage income in the US is increasing as a share of total income, and the richest of the rich pay the lowest in taxes

<comment><USER16> What do you mean by "the lowest"? Percentage wise? Because I'm sure they pay millions or even billions in some cases. I agree that the rich might not pay the same percentage that you pay, but that's not even the real problem.

The real problem is that we don't have equal opportunities. That gives the rich people a huge advantage when it comes to earning more money. We don't need to tax the rich more, that doesn't really help you when you're poor. We need to wisely use the money that we already have to create more opportunities for everyone.

<comment><USER15> As a percentage of their own income, of course. How does taxing the rich more not help you when you're poor? Those taxes could go towards funding for training and education, medical expenses, infrastructure, all of which would work towards creating more equal opportunities

<comment><USER16> It doesn't help you because the money don't go directly to you. They go to companies own by other rich people, companies that have contracts with the government. So you keep taxing the rich and they keep getting their money back.

</comment></comment></comment></comment><comment><USER17> These stats are pretty ridiculous. Not all advanced degrees are more valuable than a bachelor's. In my own company, we definitely have men with a BS in computer science earning lots more than women with master's degrees in English and education, but you can hardly blame the wage difference on their genders.

</comment><comment><USER18> Posted something along these lines a few months ago [1], but with a few more stats.

[https://erikrood.com/Posts/consumer_expenditures.html](https://erikrood.com/Posts/consumer_expenditures.html)

</comment><comment><USER19> What would you rather have? 1) Perfect income equality (1:1 poorest:richest), but everyone is starving and most don't live out of childhood 2) Perfect income inequality (1:~infinity poorest:richest)), but the poorest in the world have a much higher standard of living and that standard is going up 3-5% a year.

The point I'm driving at here is that income equality, by itself, isn't automatically desirable if the cost is a worse standard of living for the poor.

It makes perfect sense that income inequality would increase due to globalization. The economic ramifications of "correct" business decisions are amplified by orders of magnitude when compared to mercantilist economies a few hundred years ago.

<comment><USER20> Is standard of living increasing? At least in terms of wage growth adjusted for inflation that's not true.

<comment><USER7> Do you believe that the 25th percentile of income today has a higher standard of living than the 50th percentile person in "the golden age" of 1950? I do.

Today's 25th percentile person is likely to have air conditioning, refrigeration, internet, a cell phone, a microwave oven, an HDTV, and a reliable car that needs very little routine maintenance and has air bags and antilock brakes.

Today's 50th percentile is beating 1950s 75th percentile adding easy, affordable, safe, and reliable air transportation and living in a far larger house than their 1950s half-again higher counterpart.

Today's 75th percentile is beating the 95th percentile in 1950.

All of them have better health care options, and a longer life expectancy.

Real wage growth may not have arrived for those who trade their hours for wages, but the standard of living available from those wages has risen dramatically.

</comment></comment></comment><comment><USER21> utterly shocking that this story did not get instantly flagged.

</comment><comment><USER22> Those that are okay, with this are 'temporarily embarrassed millionaires' who don't have millions yet. Fact, remains only people that love capitalism are capitalists themselves. for the rest of us we're doomed, if we don't embrace BI, Unions and a massive welfare state. Also full 100% inheritance tax.

<comment><USER23> I don't think I will ever be as rich as Bill Gates but I would still rather live in a capitalist country as a middle class person than in a communist country as a rich person.

<comment><USER24> There are more than two alternatives. And there are many flavours of capitalism. Some great. Some not so much.</comment></comment></comment>


Wild Fox - Firefox including AVC (h.264) support with HTML 5 video - <AUTHOR> http://wildfox.sourceforge.net/

<comment><USER2> Very ambitious project, and very much in the Hacker Spirit, but I'm dubious- So far he has no code, and no solid plans for how to develop it.

I hope that he does release the project; It will be useful in and of itself, and it will also help push Mozilla's hand.

</comment><comment><USER3> Isn't sourceforge based in the US and therefore under US law? Maybe they should look for alternative hosting in other countries.</comment>


You don't really tell Twitter "what you are doing now" are you? - <AUTHOR>

Once upon a time we told Twitter what we did. Now we use Twitter to find out what to do. Or we don't use it at all. What are we supposed to use it for if it isn't to say what we are doing? <comment><USER2> It still works great for me for discovering new things going on in my city (if people I follow tweet about them).

Also I do sometimes twitter what I am doing.</comment>


Meet the top 10 startups in Latin America - <AUTHOR> http://pulsosocial.com/2012/01/31/ps10-meet-the-top-10-startups-in-latin-america/

<comment><USER2> NuFlick is applying to YC, with all the "Kill Hollywood" vibe going on. This is really cool!</comment>


How to convince any C developer to dump gcc and use clang - <AUTHOR> http://fseek.me/2010/03/how-to-convince-any-c-developer-to-dump-gcc-and-use-clang/ <comment><USER2> According to the clang home page as of March 7th 2010, "Clang's C++ support is currently alpha quality at best, but is evolving rapidly."

Obviously, clang does not mean to attract C++ developers. For a while, I'd been adamant about developing in C and not C++. One day I discovered that I'd hand-coded a vtable in order to allow polymorphism in structures of function pointers. The next day, I halved the project complexity by writing 3 classes and changing a flag in the make configuration.

I use Gnu make through the Eclipse CDT on Ubuntu. It's a clunky and ugly toolchain/IDE combo that took days to configure. It compiles C, C++, CUDA and Brook+ in the same project across 3 different computers. A better C frontend would be nice, but I do not look forward to getting that working with everyone else in this chain.

<comment><USER3> The clang developers fully intend to support C++. It's just a more complex language, and as an Apple-supported project, C and Obj-C were higher priorities. clang itself is written in C++ and is self-hosting. I expect that by the end of next year, it will be able to handle Boost and any other reasonable C++ code.

</comment></comment><comment><USER4> I've had 40% speed-ups on some math-heavy C code simply by switching from gcc to clang.

<comment><USER5> Which version of gcc?

I had a 2x speedup a few years ago on math-heavy code (FFTs) by switching from gcc 4.2 to gcc 3.4 -- apparently there was a known issue in gcc's optimizer where it would flag too many values as "keep this in a register" and end up spending lots of time moving data to and from the "register overflow space" on the stack. (I don't know if this has been fixed -- as I said, it was a few years ago that I ran into this issue.)

<comment><USER6> I second that on gcc version. On many math related code gcc-4.4 is amazing. Specially if vectorization and/or SIMD is possible.

</comment></comment></comment><comment><USER7> Since when is it hard to find and correct syntax errors that are preventing your C code from compiling?

<comment><USER8> Why not make it easier if you can? Vagueness is hardly a virtue for a programming tool. Also, I don't think the ladies are impressed by your cryptic error fixing skills ;)

What this feature needs now is code correction on the fly. Any error reporter smart enough to ask "did you mean 'x'?" should allow me to answer "yes", and write the changes to the file. That would sell clang to a lot of people.

<comment><USER9> there's a command-line option to do just that

</comment></comment></comment><comment><USER10> I am currently switching between gcc and clang for my codebase. The performance is mixed. For some programs (2-level hashtable, for example), the clang version got about 50% speed up against gcc and icc. But other programs (sobel filter for example), clang version slows down about 25% (against gcc 4.4). The result certainly machine specific, but I think clang can do better in a long run.

<comment><USER11> Although cryptic, I'd say that gcc's error messages are manageable. I'd hold other factors, such as performance of compiled code - across platforms - to be more important. Alternatively, they could improve on the C++ template error reporting (when they get around to taking C++ support beyond alpha) and that may be enough to sell me.

a quick search yields <http://clang.llvm.org/performance.html> (favourable, but somewhat skewed results). [http://forums.cocoaforge.com/viewtopic.php?f=10&t=21016](http://forums.cocoaforge.com/viewtopic.php?f=10&t=21016) indicates improved compile times, but it's purely anecdotal.

That said, does anyone else have any experience moving a performance-centric or cross platform project to clang?

<comment><USER12> If clang could come up with better C++ template error messages that would be really sweet. STL related error messages in g++ (and MSVC) are really hard to figure out, especially when C++ is not your main language; so you're not exposed to those problems on a daily basis.

</comment></comment></comment><comment><USER13> As a dynamic language guy, I can't help but look at the static analysis here and feel a twinge of jealousy. There really isn't anything like this in the Ruby world.

Some stuff is starting to emerge, but we're still largely dependent on tests to catch stupid mistakes. When I'm chasing down a bug, it would be nice to have a variety of tools to throw at the problem.

<comment><USER14> I spend most of my time writing C code, but like to work with Python when I get the chance. There isn't anything like pylint for Ruby? A dynamic runtime doesn't necessarily mean you have to give up static analysis.

<comment><USER15> roody, rufus, reek, flay, flog, probably more. Sadly, in the current state of the ruby community it's even hard to find a library that will run with ruby's own warnings enabled.

<comment><USER16> Isn't clean code valued in the Ruby community?

As a contrast, I had the impression that the Python guys care more about this in their code. They also avoid eval and other runtime code generation. (Though I do not if that's related.) It seems these two languages are further apart than in their culture than anything else.

<comment><USER15> clean code, yes, but some of the warnings are actually generated in situations where the code won't be cleaner (e.g. lazy initializing an instance variable not declared in the initialization method) and since quite a lot of the most common libraries have _a lot_ of warnings, it becomes unlikely that you will have them enabled in your app, and so the thing self propagates

<comment><USER16> OK. So people should suppress the warning in those cases, so as not to desensitize?

<comment><USER15> well, I do, but I understand why people don't. The likely better solution would be to have structured warnings you can enable/disable by, selector such as warning class, declaring namespace, using namespace or whatever, but that seems quite unlikely :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> An even better reason to use clang: it supports Apple's new syntax for blocks. I'm trying to think of a new project to write in C now just to take advantage of the simple anonymous functions and closures that are possible.

<comment><USER18> Proprietary extensions are one reason that gcc is so hard to unseat. You're always better off writing standard code if you want it to work in ten years.

<comment><USER19> Hardly proprietary. Apple gave the "block" patches to the gcc team. Gcc isn't interested in them, they are holding off for some future C++ syntax, though I don't see how that helps C programmers.

Meanwhile, I got seduced by gcc's nested functions which are not supported by clang. Apparently they are non-trivial in clang so won't appear soon if at all.

Two incompatible mechanisms for function decomposition are annoying.

("blocks" does a lot more, but for the afflicted project I don't need that. Just nested functions would be spiffy, it saves the plethora of arguments being passed to each function if you keep them at file scope.)

<comment><USER20> "Gcc isn't interested in them, they are holding off for some future C++ syntax, though I don't see how that helps C programmers."

You are assuming that C programmers need to be helped.

The beauty of C lies in its simplicity, not in its features. That's what has kept C alive to this day despite its shortcomings, and despite the existence of C++.

C does not need new constructs. C needs to be kept as simple and as close as possible to the hardware, it needs to continue to be a high-level assembly. That's what C is mostly used for.

If you feel C needs more features, you are probably using the wrong language for the job.

<comment><USER19> Closures in C make me uncomfortable, but lexically scope subfunctions are just syntax that serve two functions for me.

First: organization. If I grab a chunk of function and put it in nicely named subfunction, even if it is only called once it lets me keep each function to a nice size. This could be done with a static function, but then you always have to think: "What else in this file might call this function?"

Second: (And much more empowering) Gathering together repetitious code can be cleaner. Consider implementing some network protocol. You will probably have a "get next byte from buffer" function which will need access to the buffer, the current position, the number of valid bytes in the buffer, and who knows what else. You could make this a static function and pass all the arguments in, correctly, each time and if you only need a single value back that works. With a lexically scoped subfunction you can just reference these in the outer scope and if you need to set an error condition or message just set it in the outer. Very clean. No scary runtime code.

</comment></comment></comment></comment></comment><comment><USER21> I think for many large projects (> 100k lines of code at least, I guess) compilation speed can be critical.

GCC is not perfect, but works well enough, is stable enough, that to switch without a strong argument is going to be a slow process at best.

<comment><USER22> Clang is supposed to be faster than gcc.

</comment></comment><comment><USER6> Now, now. LLVM and clang are very interesting projects but changing compilers just because of one feature isn't smart. GCC is good enough in that area and the code it generates is amazing, it often beats every other C compiler out there. And that helps keeping readable code optimized.

<http://lambda-the-ultimate.org/node/3674>

<comment><USER23>
        >> often beats every other C compiler out there

Microsoft and Intel are well-known to generate better code than GCC. So I don't know what you are referring to with "every other C compiler out there."

</comment></comment><comment><USER24> I use it as a static analyzer for iPhone projects and it creates a nice summary of issues (as linked to) on a web page

<comment><USER25> Same here - for missing retain/release calls (i.e., stupid memory leaks) it works great.

</comment></comment><comment><USER26> Part of being a C developer (or C++ template) developer is in fact understanding what the compiler spits out. So, this did't convine me enough because "two or more data types" made me skip right a head to the definition of Point. :-)

My point is Clang is good but friendly error messages is not the only reason I would change to Clang.

<comment><USER27> But it is a compelling reason. Imagine all of the brain cells you can reclaim by forfeiting that C++ error message intuition that you now have.

First we need full C++ coverage in clang. Onward!

<comment><USER22> > Imagine all of the brain cells you can reclaim by forfeiting that C++ > intuition that you now have.

Orders of magnitute more than just for the error messages.

</comment></comment></comment><comment><USER28> I'm not sure this screenshot is convincing. Do you see the last error message?

In the second error message clang found that `horisontal` doesn't exist and suggested `horizontal`. That's fair enough. The last error message actually assumes the code said `horizontal`, which is just horribly wrong. I think that the compiler should never ever report an error on code that is not really there. What would happen if the programmer got a list of error and started fixing from the end? What if the guessed name was wrong? The programmer would spend time chasing some bug which doesn't exist outside of compiler's "that's what you probably meant" version of code.

<comment><USER29> "What would happen if the programmer got a list of error and started fixing from the end?"

I always fix the first 1 or 2 reported errors and try to recompile. I assume everyone did. A traditional "report on errors which are actually there each time they happen" compiler will give you tons of completely spurious errors which happily disappear once you fix the first few.

In the instance you point out, it could just uselessly say "no member named horisontal" but it knows it already gave you that error. So instead of repeating itself or shutting up, it reasons in the alternative--even if the name was corrected, the type is wrong. I would actually find that far more useful for fixing all the compiler errors at once.

<comment><USER30> I usually try to fix as many errors as I can identify before recompiling. And yes, I usually fix from the bottom up, because that way my changes don't alter the line numbers of future fixes. On large projects, recompile time can be significant.

<comment><USER31> Yes, sure, large projects can take time to compile, but doesn't your compile environment just try to recompile the last file that it failed on during the build? That is, if in trying to build my app FooBar, and foo.c compiles ok but bar.c fails, when I try to run the build the next time having modified bar.c, it starts by trying to compile bar.c anyway... So I guess what I'm trying to say is that I don't understand the advantage you are apparently getting by woring from bottom up.

<comment><USER30> I don't want to get into the specifics of the build system since it's proprietary, but there's a non-trivial startup cost for it. It's optimized for being able to compile really huge projects in a tractable amount of time, not being able to recompile individual files in the shortest possible amount of time. The latter will execute quickly enough (yes, it only recompiles what you've changed), but the startup time is still annoying enough to want to batch up edits.

</comment></comment></comment></comment></comment><comment><USER32> You don't have to convince me — you have to convene me.

I'm excited about clang but it's not _that_ important: gcc is good enough. I'll just wait until I can install it from Ubuntu repositories, and then I'll happily try out and hopefully switch over to clang.

</comment><comment><USER33> clang has a nice interface, but also a long way to go; gcc has earned people's trust because it's been around for a while..

</comment><comment><USER34> Wow, the clang error messages are really good. I've never seen a compiler produce such user-friendly error messages.

<comment><USER35> That is pretty impressive. I use colorgcc to make gcc's messages easier to spot and sort, and I always thought gcc had the best error messages (better than MSVC last time I tried it). I might just try clang to see if its messages are better in all the cases I typically encounter.

</comment></comment><comment><USER36> It's intuitive and shows new-world thinking. Most gcc developers are too old to care about doing such enhancements to gcc. They wouldn't change it just for the sake of status quo. As of 2010 we do need stuff like this, though gcc still has enough many traits not to switch to another compiler.

</comment><comment><USER37> better error messages are really sweet, but ultimately the most important things are 1. better performing code and 2. shorter compile times.

</comment><comment><USER38> you're saying I should port all my code just because the ui is more user- friendly? what about performance, options, special warnings, builtins, and everything else?

I've been using gcc for a while now, and every time I use it I found a new feature. It's rock solid and had never let me down.

<comment><USER39> _just because the ui is more user-friendly?_

Those better warnings aren't just due to a simple UI patch ... clang is doing better and deeper static analysis than gcc in order to even be able to produce those more intelligent warnings.

<comment><USER40> gcc with the dehydra plugin is doing better and deeper static analysis than clang.

<comment><USER41> Doesn't dehydra do static analysis for C++ code? In which case, of course it would do better then clang; clang doesn't even claim to have complete c++ support yet.

</comment></comment></comment></comment><comment><USER42> By this logic it should be easy to convince people using gcc to switch to Xcode.

<comment><USER43> XCode uses gcc & clang (llvm) & llvm-gcc. So what's your point?

<comment><USER44> "Apple!!111!!", I think.</comment></comment></comment>


Tesla Motors says car dealers are trying to hinder its sales - <AUTHOR> http://www.mercurynews.com/business/ci_24134024/tesla-motors-says-car-dealers-are-coordinating-efforts <comment><USER2> California car dealers accuse Tesla of misleading sales techniques? Is that really the best move for them?

Maybe Tesla should hire Ian Ayres[1] as a consultant, give him a team to go around the country exposing misleading and aggressive sales practices at dealerships.

[1] The Ian Ayres who uncovered systemic discrimination in auto sales for the Harvard Law Review: [http://digitalcommons.law.yale.edu/cgi/viewcontent.cgi?artic...](http://digitalcommons.law.yale.edu/cgi/viewcontent.cgi?article=2539&context=fss_papers)

<comment><USER3> Have you seen the calculator on Tesla's web site? I saw it several months ago and my reaction was that it was a load of crap. I'm a huge fan of Tesla's and the sooner car dealerships go extinct the happier I will be. But there's something wrong about that calculator.

Check it out for yourself:

[http://www.teslamotors.com/true-cost-of- ownership](http://www.teslamotors.com/true-cost-of-ownership)

Any reasonable person would see that page and think they can get a Tesla for $601 per month. But that's the "Effective Monthly Cost". The actual monthly cost for the lowest cost model is $980 per month for a 6 year loan. Seriously, a 6 year loan?

Honestly, they don't even need to do this. The people buying a Tesla now aren't shopping for a car strictly on price and they're smart enough to not be fooled by such gimmicks.

<comment><USER4> I don't know, "Estimated Payment" is pretty clear at $980 a month, just below effective cost.

<comment><USER3> _I don 't know, "Estimated Payment" is pretty clear at $980 a month_

I disagree. $601 per month is in bold almost-black and on my screen is about 115 pixels wide. $980 per month is in dark gray on gray, not bold and on my screen is about 82 pixels wide. In addition, the $601 per month has right under it a giant red button that says, "ORDER" which strongly conveys the idea that you are ordering a car for $601 per month.

Then consider even the $980 payment is pretty silly. It's for a 6 year loan. Who gets a six year loan? My opinion is that Tesla is engaging in very misleading tactics here and it tarnishes my otherwise very high opinion of them. I guess there must be a population of people that would reject a car immediately if they saw that it cost $1,157 per month after putting 10% down on a 3.30% five year loan. I guess the person is supposed to initially think they can afford it, fall in love with it, then find a way to make the numbers work? I have no idea.

<comment><USER5> From the link below, 17% of the loans in the last quarter of 2012 were longer than 73 months...

[http://online.wsj.com/article/SB1000142412788732364660457840...](http://online.wsj.com/article/SB10001424127887323646604578403191117526644.html)

</comment></comment></comment></comment></comment><comment><USER6> Bypassing car dealers is quite important. I don't think its to to screw dealers over but to make sure margins are needed to make their car for the masses, especially being so nascent with the different parts required. I hope this is successful for the prospect of close to $0 marginal cost of travel.

<comment><USER3> _I don 't think its to to screw dealers over but to make sure margins are needed to make their car for the masses_

It's also because they're completely unneeded for many transactions. I walked into a Nissan dealership utilizing USAA pricing and a cashier's check. It still took FOUR HOURS to drive out with the car. I had to wait two hours just for the "finance guy" even though I wasn't financing anything. I threatened to leave the entire time - I still had to talk to him and he had at least 7 people in front of me in line that were financing.

How refreshing would it be to research a car, test drive a car, purchase a car without all these shenanigans meant to upsell you into ridiculous things?

<comment><USER7> The only way franchises make money is on the backend and service, so the quick transaction you want is a loss for them. It's interesting, because getting you out the door without using their employee's time is probably the best way to handle you, but habits.

</comment></comment></comment><comment><USER8> Car dealers these days are often large conglomerates that go out of their way to ensure dominance. I bought a car from one dealer which was surrounded by 5 other dealers all owned by the same national group. I think that's real common today. Oligarchy is the new monopoly.

</comment><comment><USER9> Tesla is the new Tucker. Hope it will be more successful.

<comment><USER10> Tucker shipped less than 100 cars, so I think Tesla can say they are more successful than Tucker.

<comment><USER11> Mostly for my own curiosity, I looked at total domestic auto sales when Tucker was producing as compared to today to get a proportion of sales for each company.

Tucker closed in 1949, when about 7mm cars were sold in the US annually. [1] So Tucker's 51 cars produced, out of 7mm total leaves them with a .0007% market share.

Tesla sold 2,650 cars in the US in 2012 [2], while there were 14.5mm total sold [3]. Tesla therefore had a .018% market share.

Tesla is at least 25x the company Tucker was!

[1] - [http://en.wikipedia.org/wiki/American_automobile_industry_in...](http://en.wikipedia.org/wiki/American_automobile_industry_in_the_1950s#Production_by_year)

[2] - [http://en.wikipedia.org/wiki/Tesla_Model_S#Sales_and_markets](http://en.wikipedia.org/wiki/Tesla_Model_S#Sales_and_markets)

[3] - [http://news.thomasnet.com/IMT/2013/01/10/u-s-auto-sales- hit-...](http://news.thomasnet.com/IMT/2013/01/10/u-s-auto-sales-hit-5-year- high-in-2012/)</comment></comment></comment>