SEC tightens the noose on ICO-funded startups - <AUTHOR> https://decryptmedia.com/2018/10/10/sec-tightens-the-noose-on-ico-funded-startups/ <comment><USER3> The SEC seems to be sorting the list of ICOs by level of criminality and size, and working down the list. First they went after the ones which were large, obvious, out and out criminal enterprises. As in [1], or "they really didn't have the real estate and diamonds they said they had." And [2], or "they really didn't have deals in place with PayPal, Boeing, and Disney".

Then the SEC went after the ones that were merely flaky. As in [3], or "a blockchain based food review service with in-app purchasing of tokens". This actually got going, not that anybody used it much. They hired a "YouTube influencer" and claimed "199% GAINS on MUN token at ICO price! Sign up for PRE-SALE NOW!"

Along the way, the SEC found some ICOs from the usual suspects in the penny stock market. Those got shut down.

Then they started sending out letters along the lines of "Hello, ICO promoter. What you're doing is probably illegal. Do you want to give the money back now, or do we bring out our big hammer?" This stopped a lot of potential ICOs.

If you haven't seen it, see the SEC's fake ICO site.[3]

I have yet to find an ICO that resulted in a real, operating, profitable business that wasn't some other cryptocurrency/blockchain based thing. We're not seeing ICOs to build factories or farms or do real stuff.

[1] [https://www.sec.gov/news/press- release/2017-185-0](https://www.sec.gov/news/press-release/2017-185-0)

[2] [https://www.sec.gov/news/press- release/2018-94](https://www.sec.gov/news/press-release/2018-94)

[3] [https://www.investor.gov/additional-resources/news- alerts/pr...](https://www.investor.gov/additional-resources/news-alerts/press- releases/company-halts-ico-after-sec-raises-registration)

[3] [https://www.howeycoins.com](https://www.howeycoins.com)

<comment><USER4> "that wasn't some other cryptocurrency/blockchain based thing."

This is probably intentional on the part of all of the promoters, investors, and potential users. The idea of the cryptocurrency world is to completely replace the existing global financial system; if a company uses an ICO to build a business that then takes payment in dollars, they've lost, and their backers will be very angry. The whole _point_ is for the ICO token to be the primary means of payment for services within the company's ecosystem, and the backers are rewarded by having an advance claim on those services by virtue of owning the tokens.

The question I'd look at to see whether an ICO is a scam or not is "Are goods or services of non-monetary value being exchanged for tokens?" I suspect the answer to this is negative for the vast majority of tokens, but it's also pretty early in the development cycle: most ICO-funded companies are <1 year old, while it typically takes 2-3 years to build something somewhat useful.

<comment><USER5> I think the larger issue here will eventually be that the concept of 'the code is law' breaks down when you need to rely on the actual law and law enforcement to to enforce your 'code law'.

<comment><USER4> I think that's most likely true, but the wildcard is that "actual law" is breaking down for an increasing number of people. There is an increasing perception that existing government institutions and law enforcement are a tool for the wealthy & powerful to oppress the poor, and - whether I agree with that perception or not - when it comes to government legitimacy, perception is reality. This trend comes from outside of cryptocurrency, and is driven by things like international terrorism, perpetual war, drug cartels, state corruption, Occupy Wall Street and the continuing anger that few if any of the Wall Street Bankers that got us into the global financial crisis were punished for it, the Tea Party, police brutality, a legal system that's unaffordable for anyone that's not rich, increasing political polarization, filter bubbles, and the rise of authoritarian governments. Cryptocurrency's just stepping into the void left behind when institutions fuck themselves up; if they continue fucking up, it's only a matter of time before you start seeing crypto-legal systems with automated drone enforcement.

If you suggested in the late 1990s that people would be spending real money for cryptocurrency, I'd think you were crazy. (Actually, Cryptonomicon _did_ suggest exactly that, and I thought that particular plot point _was_ crazy.) Now, I'd give it maybe an 85% chance of being a crazy passing fad and a 15% chance of being the social organizing principle of the 22nd century.

<comment><USER6> > crypto-legal systems with automated drone enforcement.

Or read Snow Crash by Neal Stephenson and experience it today. :)

<comment><USER4> I was thinking more Diamond Age, but yes.

</comment></comment></comment></comment></comment></comment><comment><USER7> > All of this SEC action may sound like very bad news for ICOs, but many in > the industry have a more optimistic take: regulatory clarity will bring > growth

It will be an interesting test I suppose. If ICO's are in fact a novel technology that offers some kind of advantage, then this statement will be correct.

If the entire and total value of ICO as a concept was that it was a means to sidestep existing regulations by pretending they didn't exist, then this statement will prove laughable.

Personally, I lol'd

<comment><USER8> As someone whose generally bearish on crypto currencies, I do see one clear benefit to ICOs over traditional exchanges. Namely the fact that you can trade them 24 hours a day, 7 days a week, from anywhere in the world with an internet connection, in any currency (theoretically) and on no fixed exchange (although it's likely that the number of exchanges will be limited to reduce price instability).

<comment><USER9> > _you can trade them 24 hours a day, 7 days a week, from anywhere in the > world with an internet connection, in any currency (theoretically) and on no > fixed exchange_

This describes securities, generally. You and I can transact to trade shares of Uber in renminbi on a Saturday. We can transact, over the counter and using a broker, to trade shares of Apple in Canadian dollars the following day. The Apple trade would need to be reported to the national ticker, for transparency purposes, but that's about it.

We concentrate public equity trading into fixed windows and currencies to increase liquidity. It's a convenience. Privately-negotiated trading is still common for large blocks of public securities.

<comment><USER10> The obvious difference is transactions without a third party. You can also verify ICO token integrity on the blockchain yourself (via open source apps).

<comment><USER11> The obvious question is whether that actually matters all that much for securities, since the broker/exchange adds negligible risk and overhead for the buyer relative to the trust in the public company needed to buy a stake in it and the costs of meeting regulatory requirements for public companies.

Anybody who's more worried by the potential complications of T+2 settlement when purchasing blue chip stocks than the Wild West world of ICOs shouldn't be investing.

<comment><USER10> That is indeed the right question to ask.

Maybe it's less about trust and more about permission. With token based securities I could trade with whomever I choose whenever I want.

Interesting to see how it turns out in the end.

<comment><USER12> What happens if a trade that is illegal under the law of the country of the seller/buyer/exchange? The courts would be completely powerless to undo the transaction. Again it seems to me the main and only attraction is evading regulation.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> Had an interesting conversation if you have been involved in any ICO sales and live in North America, seek legal counsel _immediately_. Do not listen to idiots telling you this is good for the space, they don't know just how much reach SEC has when it comes to securities fraud. The investigation will likely span many years but they will eventually get to your ICO and will hit you with wire fraud and felony, which won't go away and it will impact your employment and possibly overseas travel.

If you were one of those companies that helped ICO launches, there's a good chance you will see jail time accordingly.

Remember, the SEC has the manpower and allegedly a technology to uncloak elaborate laundering on the open ledger, which opens up a whole new can of worms called anti-money laundering orgs that become activated.

Im glad I walked away from ICOs.

<comment><USER14> The SEC can't impose jail time as punishment for securities law violations, as their tools are limited to civil sanctions (see, e.g., the slam dunk case they had against Elon Musk). However...they can refer cases to the DOJ for criminal prosecution (see Martha Stewart, Elizabeth Holmes, etc.).

</comment></comment><comment><USER15> From the article:

> _subpoenas... focusing on those that failed to properly ensure they sold > their token exclusively to accredited investors..._

The idea of an accredited investor in this context seems either a little silly or like a major philosophical problem for tokens, depending how you view it. What does it mean to be an accredited investor, anyway? From Matt Levine[1]:

> _Under U.S. law, some financial products, like hedge funds and private- > company shares, are generally available only to "accredited investors." > There's no actual accreditation -- there's no test -- it's just that if you > have enough money you're "accredited." The theory is partly that if you have > a lot of money you can afford to lose some of it on dumb private > investments, and partly that if you have a lot of money then probably you > know things about money and won't make dumb private investments. Both of > these are terrible theories: If you have a lot of money, you still can't > afford to lose all of it in dumb private investments, and there are plenty > of rich dentists who don't know much about investing. The result is that it > is both too easy to be an accredited investor, in that unsophisticated > investors can be accredited, and too hard, in that fancy investing products > are available only to the rich. (Rich-ish: The threshold is basically > $200,000 in annual income or $1 million in assets.)_

1: [https://www.bloomberg.com/view/articles/2015-12-21/fraud- bon...](https://www.bloomberg.com/view/articles/2015-12-21/fraud-bonuses-and- accredited-investors)

<comment><USER16> The point is not to protect individuals, but to protect society from the blowout of every possible stupid investor getting wrecked all at the same time, by limiting the pool of stupid investors. With enough advertising, working and middle class people can be convinced to mortgage their house, their property, their cars, etc. to shovel debt into a stock market that would never go down because the advertisers told them so. That's how the Great Depression started, and this has repeated itself in every market that didn't restrict some investments to accredited investors.

Is it blunt? Sure. But it's better than repeating 1929.

<comment><USER17> Personally, I think we should stop sheltering people from being able to make stupid mistakes. Then maybe people will learn to be a little more skeptical about everything.

<comment><USER18> On balance, it's everyone's right to be stupid and burn their money to the ground. But realistically, in the interconnected world we live in, that will often involve burning other people as well and that's not something that should be OK. The housing crisis had greedy unchecked bankers, but it also had greedy unsophisticated (in a financial sense) individuals over-leveraging themselves and we all paid the price as taxpayers. Some people lost their homes and some people merely got a slap on the wrist, and however you feel about each, we ALL paid for it.

<comment><USER17> The "greedy unchecked banker" narrative is cute, but it completely absolves the distortive effects government policies had on the market before the crash. This included incentivizing subprime loans, Fanny Mae and Freddy Mac, and previously bailing out banks (a signal that your risk will be subsidized in the future).

There is no rule that the State must step in during bad situations, in fact many would argue that the government stepping in makes things worse. We don't all have to pay the price.

The market needs those corrections to learn. If the government steps in every time, it doesn't have a chance to.

<comment><USER19> No.

The government needs to step in to prevent a total collapse. When the government refused to step in to rescue Lehman Brothers (precisely because of the moral hazard problem you allude to), all hell broke loose.

Since the expectation (correctly) is that government will step in, we need regulation (before a crash) that limits risk taking, for example capital requirements (=equity) for banks.

Your narrative has been, in my opinion, comprehensibly refuted by, for example, Anat Admati & Martin Hellwig in *The Bankers' New Clothes" [1], or Krugman already in 2008 [2]. An overview over the debate is given in [3], including this quote from Krugman:

> "for any public figure to go with the Congress-did-it argument at this stage > is for him to reveal both that he is grossly ignorant about the central > policy issue of the day and that he gets his 'analysis' from right-wing > flacks."

This is not to say that government policy has been perfect; but taking the government out of the equation is not going to fix anything.

[1] [http://bankersnewclothes.com](http://bankersnewclothes.com) [2] [https://www.nytimes.com/2008/07/14/opinion/14krugman.html?_r...](https://www.nytimes.com/2008/07/14/opinion/14krugman.html?_r=1) [3] [https://www.outsidethebeltway.com/bloomberg-dont-blame- banks...](https://www.outsidethebeltway.com/bloomberg-dont-blame-banks-for- mortgage-crisis/)

</comment></comment></comment></comment></comment></comment><comment><USER9> Cooley's invention of the Simple Agreement for a Future Token (SAFT) [1] was genius. Not only did they earn fees on selling people the boondoggle, they'll also cash in on defending every company, and every employee at said company, who unlawfully sold these securities.

[1] [https://saftproject.com/static/SAFT-Project- Whitepaper.pdf](https://saftproject.com/static/SAFT-Project-Whitepaper.pdf)

<comment><USER20> Isn't this just an interpretation of the law? Yes, the SEC may try to enforce their view of the law, but is it actually the correct one?

It only takes one SAFT token company to take things to court, and have a judge rule in their favour, to basically legitimise all tokens - no?

(Note: I have no clue who is right here, but just because it's the SEC doesn't mean they are automatically right. Same applies to the IRS etc)

<comment><USER21> or go to prison if you lose.

<comment><USER22> The SEC does not have the authority to bring criminal cases; only civil. They can refer to the DoJ for criminal prosecution.

</comment></comment></comment></comment><comment><USER23> The great hope of the JOBS act was to allow unaccredited ("mom and pop") investors to get exposure to early-stage startups, in a safer way, so that the huge gains went to average people instead of well-connected rich people and VC's.

The problem currently with crowd-funded securities offerings is the overall cost of capital (legal and regulatory), lack of liquidity post-raise, and that most of the good opportunities are scooped up by hungry VC's chasing returns in a fast money, low-interest environment. When the world is awash in easy capital, crowdfunding is simply too much of a hassle for solid companies.

In comes ICO's. It fixed a lot of the issues with crowdfunding. Low cost to start (just deploy a smart contract), instant liquidity, and global capital raising. Obviously there are tons of issues (breaking securities laws, sketchy companies, bubble mentality, and why actually do any work when you already have the money, among many others). But this shows that demand for small seed- stage companies is there.

The recent JOBS 3.0 act[0] will make 2 important changes to merge crowdfunding and ICO's. One is the change to accredited investor laws to allow people to prove investor competence without meeting arbitrary income / asset requirements. This was to solve the paradox of twenty-something MBA's on Wall Street giving professional advice on investments to wealthy people without they themselves being able to invest.

The second important change is to create "venture exchanges", which have been theoretically possible before, but have never been created. This will provide liquidity to early-stage startups at new regulated crypto exchanges like Coinbase, Poloniex, etc. I believe that blockchain, at a bare minimum, enforces standard protocols. Whether security trading needed blockchain or not to have protocol standardization accomplished is a separate argument, but either way the technology encouraged and allowed it to happen organically. Strict protocol enforcement of assets (ERC20, etc.) allows crypto exchanges all over the world to inter-operate, and allows securities to be traded much more freely all over the world as each country's crypto exchanges match their rules with local security laws. This will allow offerings based in the US to be bought and traded legally in Japan, South Africa, the EU, etc. It will also allow smaller companies to raise capital more cheaply by tapping into a global pool of investors.

[0] [https://www.dandodiary.com/2018/07/articles/securities- laws/...](https://www.dandodiary.com/2018/07/articles/securities-laws/house- passes-jobs-act-3-0/)

<comment><USER7> > Obviously there are tons of issues (breaking securities laws, sketchy > companies, bubble mentality, and why actually do any work when you already > have the money, among many others). But this shows that demand for small > seed-stage companies is there.

It's worth noting that absolutely nobody is confused about there being demand for highly speculative investment in small sketchy seed stage companies.

That demand has been around, literally, for hundreds of years. The entire point of this category of securities laws is to prevent people from meeting that demand, since doing so tends to have disastrous outcomes.

<comment><USER24> Disastrous for anyone other than those who jumped in without doing their due dilligence?

My main gripe with the whole "accredited investor" thing is that its literally legalized classism (and I'd argue a violation of the equal protection doctrine, but that's another theory), as the income requirements eliminate a huge swathe of investing for anyone but the 1%.

Nothing is stopping an uninformed investor from loading their net worth into a single reuglar stock (you know, those perfectly safe instruments that never ever lose their value and leave you with nothing), so I really, truly don't see what these requirements are protecting anyone from, or why that protection is necessary.

If it's really about protection, then education and nondiscriminatory licensing based on testable knowledge would fill that goal, but instead we have income minimums.

<comment><USER7> As a society we believe that allowing people of modest means to be swindled out of their savings is an unacceptable outcome and have enacted a large battery of laws to avoid it.

These laws came about from very real and serious experiences that were, in fact, catastrophic for many communities. It's a real live problem, and it goes back a long way.

If you want to argue about the details that's great, but any discussion has to start with the reality that an unregulated market leads to really unwanted outcomes here.

You can also do the "who cares if people want to get swindled let them" approach, but recognize that you've been outvoted on this topic, we've decided to protect people like we try to protect people from unsafe food, consumer products scams, and many other situations.

<comment><USER25> I'm not sure that OP was referring to people being swindled, specifically, so you speaking on behalf of society (the "we" stuff) probably wasn't needed.

I think it is understood that the regulations are in place to mitigate risk for the most vulnerable. Whether this has been the right implementation (income vs some other means) is what I think OP was getting at.

</comment></comment></comment></comment></comment><comment><USER26> The "utility token" meme was hilarious in the community basically talking itself into the idea that the SEC was going to write a bunch of new laws and/or interpret the existing ones in the most favorable light to those raising ICOs. Playing with fire.

<comment><USER27> The SEC doesn't create law. Courts do. It can claim anything it wants, but until its argument is tested by a court, it's not law.

There continue to be strong legal arguments for utility tokens not being securities:

[https://www.coinbase.com/legal/securities-law- framework.pdf](https://www.coinbase.com/legal/securities-law-framework.pdf)

This attitude of deferring to regulatory agencies, which have their own set of institutional biases, on the question of the applicability of securities laws to smart-contract executed issuances of digital tokens that confer zero legal title to a common enterprise, is dangerous to liberty and innovation.

<comment><USER14> Courts don't create the law, they interpret it (...except in India, where the Supreme Court actually does make laws). The Legislature writes the law.

A security doesn't require a common enterprise, it simply requires that one thing represents an interest in something else. The underlying asset is usually financial or intangible in nature, but that isn't required. There are more specific rules and exceptions, but those vary by jurisdiction.

<comment><USER27> Courts create common law, which determines how statutory laws are interpreted.

>>A security doesn't require a common enterprise, it simply requires that one thing represents an interest in something else.

Investment into a common enterprise is the second prong of the Howey Test.

<comment><USER14> True, but the Howey test is not the the sole test of determining what a security is. Context matters.

</comment></comment></comment></comment></comment><comment><USER18> Plenty of real companies making real revenue offer JOBS Act compliant equity crowdfunding, such as [https://invest.hylete.com/](https://invest.hylete.com/) though they don't come with the promise of the moon or Lambos or any implied notion of anything at all besides an opportunity to invest in a business. But you do get a real equity claim that's worth _something_.

But, as per usual, human greed trumps all, and many latched onto incredibly terrible ideas created by woefully unqualified individuals because of a bull market, cognitive dissonance out in full force. History sure has a way of repeating itself.

</comment><comment><USER28> I wonder how much money the SEC has been bringing in this year—probably a record year. Does anyone know how this is reported?

<comment><USER29> I don't think the SEC takes the money from people - the SEC tells them to give it back to investors.

</comment></comment><comment><USER30> Before we say everyone is going to jail and add to the fear-mongering. Like any tech company who are placed on the fringe-- DLT/ Blockchain included -- get a good GC/Lawyer. They can easily shepherd you through the ever changing matters of remaining compliant.

</comment><comment> village-idiot Given the amount of stunning fraud in the ICO market, it was only a matter of time before it was regulated just like every other security. The interesting question is whether or not ICOs have any actual value beside fraud.

</comment><comment><USER31> I wish the SEC would investigate NEM. I was an initial stakeholder. They refuse to release coins to hundreds of stakeholders who missed some un- publicised deadline a couple of years ago.

</comment><comment><USER32> If you have a ICO startup it would be pretty stupid to be in the USA.

<comment><USER33> Why? Just follow the law. You can easily launch a Reg D 506(c) offering.

<comment><USER34> If you "just" use Reg D, then you can't take money from non-accredited suckers so you'll raise far less money and your security token can't trade on any exchange (yet).

<comment><USER33> Well, there is no dependency between being able to take money from non- accredited "suckers" and the total amount one can raise. You can raise a shit ton of money with accredited investors only. It's just more complicated.

</comment></comment></comment></comment><comment><USER35> ICO's were just a cash grab by unscrupulous entrepreneurs. SEC should police the hell out of this stuff, that's their job.

</comment><comment><USER13> it seems like there can be no bad news to crypto. any piece is taken as good for the space but they should read the fine print, the SEC is putting an end to all ICO

</comment><comment><USER22> And by "tightens the noose", they mean, "Advise to follow existing securities law, like everyone else".

<comment><USER3> Yes.

 _" From the SEC's perspective, there is no lack of clarity. The sniff tests are the same as they have been for decades. The SEC is applying the same securities laws to ICOs that it always applies."_

 _"Everybody's holding their breath for the SEC to create some kind of coin rule, and they're not going to," says a securities attorney at one high- profile Silicon Valley firm. "They're applying the same laws, the same statutes, the same rules, to stocks and bonds and everything else."_

In other words, "what part of "no" did you not understand."

It's hard to find a successful ICO, in the sense that they did whatever they said they were going to do, and did it profitably. From Medium's list of "successful ICOs:"

ICONOMI is held up as a successful example, but they're a "digital asset management platform". They probably should have a broker/dealer license.

Solve.care claims "Solve.Care makes healthcare affordable and easy for everyone". All they have is some kind of "physician wallet".

Truegame is gambling.

Play2Live is like Twitch.tv, except that it costs to watch.

StopTheFakes.io: "Token sale is finished. Thank you for your participation". It's like Mechanical Turk looking for copyright infringement. On their actual site, "[http://web.stopthefakes.co/"](http://web.stopthefakes.co/"), no new tasks since 2017.

This is pathetic.

</comment></comment><comment><USER36> They need to create new regulation, not cack-handidly apply old regs to entirely different technology

<comment><USER22> Why do they? There's nothing special about an ICO, other than it's "on a computer". When it comes to the concept of investing, they're not doing anything new.

<comment><USER37> Well, tokens sold on ICO mean nothing and does not represent share of the company, or anything at all. They are just vapour.

Personally i don't think that ICOs should be banned or regulated - <USER2> anything, they are frequently done by anonymous or fake identity people and cashed out using monero, anyway.

Just explain people that they are a scam, and a crime if (unlikely) caught, just like they explained about nigerian prince scam.

</comment></comment></comment><comment><USER38> opportunities, ICOs, money; flowers, bees, and honey.

just because you're callin' that pollen dust -- don't mean your allergic nose won't sneeze bust.

</comment><comment><USER39> Where does all of this leave Brave's BAT token?

</comment><comment><USER40> There's an argument to be made that it was irresponsible for the SEC to wait this long to clarify their position on enforcement. My guess is they want to deflate this nonsense slowly instead of pop it. It metastasized into a somewhat 'too big to fail' situation before they had time to react properly.

<comment><USER41> >It metastasized into a somewhat 'too big to fail' situation before they had time to react properly.

What harm could come from indicting scammy ICO pushers too quickly, or those who had crowdsourced too much money?

<comment><USER34> Hypothetically it might have caused a "blockchain winter" scenario where investors refused to invest in anything, even legit stuff like Filecoin.

</comment></comment></comment><comment><USER42> I never had strong feelings one way or the other on the SEC until recently. Now, from their unjustified behavior due to Elon's tweets (what's more important to our future as a planet, punishing someone for a gray area tweet they could have chosen to go either way on, or letting Elon continue to innovate at full capacity?) to ruining ICOs, I feel like we'd all be better off if the SEC was reduced by at least a factor of half along with the number of regulations they enforce.

</comment><comment><USER27> The laws need to change. The SEC should only get involved when someone defrauds another party through misrepresentation. Mandatory disclosure, registration, and KYC requirements are all infringements on the right to privacy and free contract.

That the poorest households spend 9% of their income on state-run lotteries, yet people can't try their hand at investing their own money in businesses/projects that haven't been vetted by a centralized government agency, shows the opportunistic and disingenuous appeal to virtue that's used to sell the public on the need to be controlled.

<comment><USER43> > The SEC should only get involved when someone defrauds another party through > misrepresentation.

So basically ICOs, then.

<comment><USER44> Exactly. The average ICO made buzzword promises much more insane and fraudulent than even Theranos.

As someone who watched all this quite closely back in the day I cannot believe the amount of money these hucksters pulled out of people and still are to this day.

<comment><USER27> >>As someone who watched all this quite closely back in the day I cannot believe the amount of money these hucksters pulled out of people and still are to this day.

I don't like people promising the moon to hype up speculative investments, but there are non-government solutions to this, like reputation markets.

In fact we see these non-government solutions working already: token investors today are unrecognizable from those that were giving a website with a white paper $40 million worth of cryptocurrency in 2016. This transformation has occurred completely independently from any regulatory action. The collective intelligence of the market has increased from hard-won lessons in the need to do due diligence, and the emergence of numerous sites for rating token sales (mind you, there's still a lot of room improvement in the curation market).

Regulations can obviously address some of these problems too, but any restriction on how consenting parties choose to interact is going to have massive unintended consequences, and in my estimation the unintended consequences do much more harm than what's alleviated by the regulations.

Also worth mentioning is that the regulations that the SEC is trying to impose on token sales go far beyond prohibiting issuers from promising big gains. They try to micromanage how an offering is conducted with inflexible cookie cutter rules that inhibit innovation and make the entire market dependent on a centralized gatekeeper, which is a monopolistic and fragile situation prone to systemic failures.

It's obvious to me that a free society should not tolerate this level of control being exerted on how people engage in voluntary interactions with other consenting adults.

The problem is that the idea that we ought to be free to do with our money what we wish threatens many powerful special interests, so we get a never- ending stream of rationalizations and emotional appeals for restricting people's contracting rights, and for funnelling commerce through centralized gatekeepers.

<comment><USER45> I mean, ok. But you are basically arguing that fraud should be allowed, because it is between "consenting adults".

If that's what you want, fine. But you should be open and honest about the fact that you believe that financial fraud should be legal.

And I'd like to point out that fraud is not a new concept. It is something that has been explored in many aspects of society, and most people oppose fraud. Fraud on a Blockchain is still fraud.

<comment><USER27> Fraud by definition is non-consensual, since it means someone not consenting to a material fact that was withheld from them about the interaction. It's fundamentally theft through misrepresentation of facts and should always be illegal.

Someone saying "We believe this token will go up 200% in two years" is probably not a misrepresentation of facts, and thus not fraud, and should probably be allowed, and they should suffer the reputational damage when their predictions don't pan out.

But if we created laws that did prohibit people from hyping up the investment potential of a token they put for sale, or laws that require token sale organizers to disclose the general risks around investing in speculative assets, like requiring them to include a statement on their website like "this is a highly speculative asset that has not been registered with the SEC. Speculative investments have a high likelihood of losing all of their value. It is recommended that you get professional investment advice before making an investment into a speculative instrument like this, and that you avoid investing a large portion of your wealth in them", that would probably be fine. It wouldn't be a major impediment to voluntary exchange.

Like I said though, what the SEC is seeking to do goes far beyond barring token sale organizers from hyping their project's profit potential, or requiring such warning messages on their websites. If that's all the SEC wanted to do, I wouldn't be nearly as opposed, if at all.

</comment></comment></comment></comment></comment></comment><comment><USER46> In the eyes of SEC, ICOs are nothing more than equity crowdfunding. It means that SEC doesn't like any sale of unlisted assets to unaccredited investors.

By SEC definition accredited investor is an investor who has either $1M of liquid net worth or stable income not less than $200k per year.

Original intent of the government was to bar unsophisticated investors from high risk investments.

While I understand logic of the law - many people are completely financially irresponsible and are not capable of critical thinking (that's what politically correct term "unsophisticated investor" actually means), I find this law extremely frustrating.

For example, I had no chance to buy Spotify when it was well under $1B valuation because the government baby-sitting me by excluding me from opportunity to invest into early-stage startups.

If you want to downvote me on "not capable of critical thinking" and at the same time support barring people from making their own financial decisions, please think twice because it's clear contradiction.

There is a compromise: Why not lower entry level of becoming accredited investor? For example, you could be semi-accredited investor with lower capital but with limits on investments. Or making some government exams on risk taking and investing? Or having special government-approved platform for early-stage investments for unaccredited investors. There are lots of combinations.

Right now, there is a huge hunger among people for early-stage investments. And if you are not making it legal, it just go underground and as a result with more dangers for unsophisticated investors.

<comment><USER47> Even without the SEC, you would not have been able to invest in Spotify. They had zero interest in taking your money when they could raise money much more easily from professional investors capable of writing 8 figure checks.

It's very important to understand this and the adverse selection problem that would emerge if laws were changed. There's a reason that only scammers did ICOs.

<comment><USER46> > only scammers did ICOs

This is absolutely incorrect. One of many examples - Tezos.

<comment><USER47> Oh, I probably overstated a little bit. But I'm confident that 90%+ of them were scams.

Re: Tezos - "Inside the Crypto World's Biggest Scandal"

[https://www.wired.com/story/tezos-blockchain-love-story- horr...](https://www.wired.com/story/tezos-blockchain-love-story-horror- story/)</comment></comment></comment></comment>


Stolen Tesla Splits In Half and Explodes Following Police Pursuit - <AUTHOR> http://losangeles.cbslocal.com/2014/07/04/7-injured-after-tesla-crashes-into-west-hollywood-building-following-police-pursuit/

<comment><USER2> It did not explode. The scattered batteries burned. There was no explosion.

Stop with the stupid sensationalism.

</comment><comment><USER3> Why a high speed pursuit, can't the Tesla be remotely tracked and disabled?

<comment><USER4> This is disabled by default due to privacy reasons from what I understand. The company only have tracking and analytics enabled on their own cars (such as those tested by the press).

<comment><USER5> Wasn't this stolen from a dealership? Surprised they wouldn't have it turned on before they sold the car.

<comment><USER4> I didn't see where it said anything about being stolen from a Tesla Store. Tesla doesn't sell through dealerships.

</comment></comment></comment></comment><comment><USER6> Sensationalist headline... this is not news. Any vehicle stands a significant chance of splitting in half and exploding in a collision at 100+ MPH</comment>


Can non-yc companies post job openings on hacker news? - <AUTHOR>

Can a start-up outside the yc network post job openings? I realize one could just post a link to the job post...but is it frowned upon in the community to do so without being yc-affiliated? <comment><USER2> We can't let everyone post jobs or they'd swamp the site. But once a month there's a Who's Hiring thread that anyone can post on.</comment>


The Wheels Come Off Ofo as Another Tech Megatrend Stumbles - <AUTHOR> https://news.crunchbase.com/news/the-wheels-come-off-ofo-as-another-tech-megatrend-stumbles/ <comment><USER2> Having just been to Shanghai recently, it's amazing how well their bike sharing programs work, compared to where I live in the U.S. in a major city like Boston.

I used MoBikes over there so much at like $.15/hour. It was always convenient (unlike finding a BluBike Station here).

I really wish we could advance more with urban transport around here.</comment>


Nokia tries to reinvent itself: Bears at the door - <AUTHOR> http://www.economist.com/businessfinance/displayStory.cfm?story_id=15213843

<comment><USER2> I think Nokia's future is really going to be determined by their ability to make great software. There is no question that they can make great hardware, but pretty much in all cases their software is letting them down. Can this hardware engineering dominated company make the shift to an organisation that can make great software? Do the managers and executive team know how to hire, motivate and manage great software people? Beyond that: Can they get their software teams to release quality products that get deployed to end-users? Can they do effective developer support and platform evangelism?

I kind of always root for Nokia because they are a successful European tech company. Unfortunately for the past 10 years they haven't failed to let expectations down. Maybe all this increased competition will get them to make all the changes they need - they certainly sounded serious at a developer outreach event I went to last year. The event still didn't leave me convinced they understood hackers though, or how to inspire application developers to write for their platforms.

</comment><comment><USER3> Dupe: <http://news.ycombinator.com/item?id=1039390>

But I voted it up since the original didn't get any attention.

I think Nokia is at an 'interesting' point. Here in Europe, they are way more important than either Apple or any of the various Android things, but they look wobbly. I will be curious to see how things work out for them, if they are indeed able to reinvent themselves.

<comment><USER4> I was one of the few who voted it up. It's a well written article with good comments.

<comment><USER5> The economist is the best magazine today. I just got a subscription for christmas, and I'm delighted with the print edition.

</comment></comment></comment><comment><USER6> "While giving Symbian a makeover it is also pushing a new operating system, called Maemo, for the grandest, computer-like smart-phones."

I guess that quote shows quite well what's wrong in terms of attracting developers.

<comment><USER7> What do you try to hint at? Do you mean they should just go with some form of Unix, a proven way to attract hackers?

Actually <http://maemo.org/> does not look too bad. (And maemo may actually be close to Linux or so. I haven't checked in depth, yet.)

<comment><USER6> No, what I'm saying is that they should commit themselves to one OS for high end devices. As a developer, how do I know whether Maemo or Symbian has a future? Neither has a significant installed base outside of Nokia. Right now Nokia doesn't exist for me as a developer. I don't believe a word they say. They are confused and I believe they could announce Android support tomorrow.

</comment></comment></comment><comment><USER8> The question "When is Nokia going to announce an Android phone?" and their known response captures pretty much everything that's wrong with Nokia.

<comment><USER9> The answer is hopefully never. Android is an over-hyped mobile OS in geek circles (The Google Andoid Army), but it is not well known in the market. It is almost unheard of in Europe for instance...

Personally I dislike Android from all possible points of view. Both technically (Java, HTC) and philosophically (Ad-OS, cloud).

</comment></comment><comment><USER10> Us & Europe, Yes, thay are in Trouble . But in Emerging Markets, it's only the top 10 % who can afford/ will want the RIM/Apple/Google phones. So they still have some legs there for the nxt 5 years.

It's a fundamental change in the way mobile phoes & their markets work that has caught them. and i guess there'll never be that Nokia Domination again in US & Europe.</comment>


Rockstar CEO Test - see if you're a rockstar executive or a lowly wantrepreneur - <AUTHOR> http://startupceotest.com/

<comment><USER2> Hrm. I got a 0 but it didn't tell me what that means. Am I neither lowly nor a rockstar?

</comment><comment><USER3> Not sure how the scoring works. The choices are hilarious though.</comment>


Nicehash down – rumors of $60M in Bitcoin stolen - <AUTHOR> https://www.reddit.com/r/NiceHash/comments/7hxxp3/hicehash_hacked/ <comment><USER2> Confirmed. Posting this here rather than a new thread... [https://www.reddit.com/r/NiceHash/comments/7i0s6o/official_p...](https://www.reddit.com/r/NiceHash/comments/7i0s6o/official_press_release_statement_by_nicehash/)

They owed me (edit: was myself) ~USD100 , being a week or so away from payout. I'm only mining to an external address - so that's only lost if they go out of business then I guess? Didn't like the thought of mining to their own wallets after trying it once before.

I hope they recover. I really like their software.

<comment><USER3> They owed _me_ , unless you are them.

<comment><USER2> Cheers. Whilst entirely off topic, as a Norwegian expat in an English speaking country I do appreciate the correction. :) I found [https://writingexplained.org/me-vs-myself- difference](https://writingexplained.org/me-vs-myself-difference) which was a nice explanation.

</comment></comment></comment><comment><USER4> It seems as though Bitcoin is the least secure of all the 'stores of value'. I can find few examples, outside of military operations, with more than $10M in gold lost to a heist, yet it happens multiple times a year with Bitcoin. And it's not like someone is logging into your Fidelity account and taking all those APPL shares.

<comment><USER5> It's not like in 1800 news of stolen gold was instantly broadcasted to the whole world.

<comment><USER4> Yes, but even the largest known gold heists are, for the most part, smaller than what we're seeing in bitcoin.</comment></comment></comment>


Evidence that Sun could release 'superflares' 1000x greater than recorded - <AUTHOR> http://www.kurzweilai.net/evidence-that-our-sun-could-release-superflares-1000x-greater-than-previously-recorded <comment><USER2> isn't billion megaton bombs only a factor of 10 larger than 100 million megaton bombs? It's a 1000% larger but not 1000x. I'm just saying.</comment>


Xcode 6 Beta with Swift Available to All Registered Developers - <AUTHOR> https://developer.apple.com/news/?id=07112014a

<comment><AUTHOR> Xcode 6 was previously only available to members of the iOS and OS X developer program who paid $100. It is now opened to all developers.</comment>


Ask HN: Companies using MongoDB, suggestions to deploy at scale? - <AUTHOR> We are using MongoDB for past 1 year, but with time, the aggregation framework is getting slow with 1M+ documents in a collection, even with indexes.<p>People who are currently using MongoDB in production, what kinds of performance optimizations did you have to make in order to deploy it in scale? Any tips, stories, suggestions are welcome! <comment><USER2> We moved to PostgreSQL.

Our performance problems went away, with almost no work other than the initial migration. We fixed many data integrity problems during the migration, and have not noticed any problems since. Our uptime has become near perfect. We now get to use all of the other great features that PostgreSQL offers.

<comment><USER3> We have thought about this. We are interfacing via Mongoose to MongoDB. Is there an easy way to still use Mongoose while transitioning to PostgreSQL?

<comment><USER4> Mongoose is such a brilliant library right? If I was writing something in nodejs - the existence of mongoose itself would justify simply going for a mongodb backend.

</comment></comment></comment><comment><USER4> Want to see other replies as well - but here are some of my thoughts.

1\. Run your query with explain - to confirm that your queries are indeed indexed[1]. There have been a couple of times where we discovered that a specific branch of a complex query was not hitting index - so discovering that was useful.

2\. One thought on slow reads with aggregation framework and 1M+ documents is that you are bottlenecked on memory. Even though all your queries may be indexed - you may be hitting disk too often (and doing a lot of random I/O) which is expensive. Check out MMS - and specifically the page faults graph - and you will get an idea about how many times a second you hit disk. For my specific application - response time was very important - so we tried to keep our page faults close to zero. Is increasing the RAM in your instance a viable option? If so this would definitely give you some breathing room.

3\. You should try and verify if your response is slow because the query processing time itself is high, or if it's because you have several concurrent queries competing for system resources (CPU / memory etc). If it's the latter - the fix is easy - just add more machines to your replicaset (balance this with adding more RAM).

4\. Check your lock %. My guess - from your brief description - this will not be an issue for you. If this is an issue - you __may__ need to shard your system - or do 5.

5\. I think the most scalable solution would be to rethink your data pipeline. Why do you need to apply complex aggregation queries on 1M+ documents? Can you build a processing pipeline that takes in your data - and builds "prepared views" for the queries you expect out of your aggregation pipeline? In my application - we used stream processing pipeline that aggregated all the messages we got - in all the different ways we needed - and inserted them into different databases (to work around the DB level locking :( ) in mongo. Each collection had exactly ONE type of query that would be executed - this would be an extremely simple query and would be indexed. This pattern is common - even outside of mongo.

Good luck :)

[1] [http://docs.mongodb.org/manual/reference/method/cursor.expla...](http://docs.mongodb.org/manual/reference/method/cursor.explain/)

<comment><USER5> In addition to verifying you are hitting an index for all of your queries, you should verify that all of your indexes are in memory. Depending on the size of your dataset, trying to fit more (or all) of it in memory may be an option worth trying.

</comment></comment><comment><USER3> We've had slowness on [https://Clara.io](https://Clara.io) because of what we believe was excessive file system fragmentation as we were running on zfs and then later brtfs. We were on zfs and brtfs because it allowed for easy and quick backups via snapshots. But eventually writes were slowed leading to long lock times and making everything basically unworkable. A reinstall would always fix the issue for a while. We believe that the same reasons that backups were fast, the copy on write feature, is the same reason we got excessive fragmentation after a while.

I believe it was because we were not using xfs as our file system, which we have recently moved over to. So far the issue hasn't re-occured.

Other than this issue, MongoDB has been pretty good. Indices are important and formulating queries so that they are index based is also important (the same result can be obtained in multiple ways, some of which likely do not use the indices, while other formulations will use them.)

We use Redis as a cache in front to reduce the unnecessary repetitive load on MongoDB for common operations.

We have MongoDB cluster setup and it has saved us a number of times. Also it is really just a live backup system -- we've had a few hardware failures and we still have never had to restore for an archive backup, we just resync from one of the failover servers. But using that is likely a no-brainer, and you are likely already doing it.

<comment><USER6> We had similar issues with MongoDB on btrfs. While the snapshot features were nice, the write performance was abysmal. We moved to xfs at some point and got a massive increase in write throughput.

So far I've worked at two separate companies deploying MongoDB into production and we've never had any real issues, mostly because in both cases the lead engineers really knew what they were doing, had read the manual front-to-back, and they knew exactly what kind of OS and filesystem setup to use for maximum effectiveness.

</comment></comment><comment><USER7> There are ways to get around the latency you're seeing without (or while) moving away from Mongo. If you rewrite your queries as mapreduce operations, then you can run them at a scheduled interval to update a reports table with the previous interval's data. This is called incremental mapreduce and Mongo has a great guide on how to get started: [http://docs.mongodb.org/manual/tutorial/perform- incremental-...](http://docs.mongodb.org/manual/tutorial/perform-incremental- map-reduce/)

You won't get real time data any more, but switching to batch processing will speed up your users' experience.

The cynic in me, however, wants to just tell you that you've outgrown Mongo and should move on. It happens; not every database is designed to support every need, and Mongo happens to be a spectacularly shitty fit for the kind of OLAP scenario you're describing.

If you absolutely must have real-time analytics crunched on the fly, I recommend that you look at data stores that are a better fit for your application. InfluxDB is great for time series data. Aerospike is getting a lot of press in the AdTech industry. And old standbys like MySQL or Postgres can handle queries over a million records without breaking a sweat.

</comment><comment><USER8> I'd worked on a couple of Mongo DB projects a year and half ago. It could not scale for performance, it was supposed to be fast datastore for simple lookups and heavy updating (multiple 10s of updates/sec - spiking to hundreds of updates) (no matter what we did), eventually had to switch out to other tools (either inbuilt custom ones or off the shelf).

I won't claim that we did everything under the sun to optimize it, we could have probably optimized it to work eventually. It was just easier to switch and not deal with the headaches of maintaining/optimizing the mongoDB setup after days/weeks of headaches.

<comment><USER9> >heavy updating (multiple 10s of updates/sec - spiking to hundreds of updates)

In what world is 100 updates/sec "heavy"? I don't mean to come off rude, but even with a full disk write per update that fits into normal magnetic disk IOPS without even batching transactions.

For comparison, with zero work on our end, and running off a 2-disk RAID 1 array with a 10 or 15K HDD, it was trivial to pass 10K/sec updates.

<comment><USER10> It is heavy for MongoDB.

It's a weird phenomenon you see these days, people talk about 10 updates a second on a million records as some sort of intense load that needs "sharding" and God knows what else, when a DBA from 20 years ago wouldn't even blink at it.

</comment></comment></comment><comment><USER11> 1m records? We have 25 million+ in normalized MySql tables with proper indexing and run 20ms queries on modest Xeon E5-1650, 12gig ram dedicated to db, Samsung 840 Pro.

Seems like a drop in the bucket to be experiencing performance problems... What are your use cases? Why did you pick MongoDB i the first place?

<comment><USER12> Heck, I have a SQLite dB I'm working with right now that has ~30 million rows across a few dozen tables. Queries against the indexed fields are returning in 130ms on my rMBP.

</comment></comment><comment><USER13> I really don't understand why RethinkDB, a seemingly superior tool, is not getting more traction. MongoDB was and still is a hack, a simple design that's prone to blow up.

<comment><USER14> The last time I checked using it in producing wasn't even recommended by the authors [http://rethinkdb.com/stability/](http://rethinkdb.com/stability/)

<comment><USER13> Hm. They should call it webscale and be done with it.

</comment></comment></comment><comment><USER15> Change your data model so that you don't need to aggregate. Duplicate if necessary, handle the resulting potential inconsistency.

Have the right indexes; especially with complex aggregation you might be surprised to find they aren't being used due to a quirk of your query.

A single mongo instance can handle a beefy load, but not if every read is an aggregation over a million by million by who knows how many docs.

<comment><USER16> I second the idea of denormalizing your data. It feels odd because that's exactly what you're trying to avoid with relational databases, but honestly, mongo is designed to handle denormalized data [http://blog.mongodb.org/post/88473035333/6-rules-of-thumb- fo...](http://blog.mongodb.org/post/88473035333/6-rules-of-thumb-for-mongodb- schema-design-part-3)

</comment></comment><comment><USER17> Reading these comments, I get the curious impression that people don't think MongoDB is webscale.

<comment><USER11> I loled.

</comment></comment><comment><USER16> Definitely take a look at Mongo's recommendations: [http://docs.mongodb.org/manual/administration/monitoring/#di...](http://docs.mongodb.org/manual/administration/monitoring/#diagnosing- performance-issues) This has gotten much better since I last used mongo heavily. I ended up using the slow query log, but it looks like the tooling has improved significantly and now there is a list of common problems

</comment><comment><USER18> Use TokuMX (I don't have a stake in TokuMX, I'm just a happy customer). It's mostly a drop-in for Mongo 2.6 (though converting data is a downtime operation). To your point specifically, we're running aggregation stuff on collections with >1 billion documents and it hums along great. Massively better disk usage, clustering keys, ACID guarantees, document-level locking, tunable compression, and a bunch of other small improvements make it a really excellent choice.

TokuMX does have one significant problem in that the technology they use for indexes experiences performance degradation over time if you do lots of deletes from the head of the collection (ie, if you're processing data that gets inserted and deleted roughly chronologically), but it is fixable with reIndex() (which is an async operation analogous to OPTIMIZE TABLE). That's really the only large problem we've had with it, and it's surmountable with regular maintenance. In the case of monotonically-ordered data though, you can address the problem with partitioned collections, which lets you split a collection up into chunks, and then drop chunks as they become unnecessary, without having to do expensive things to the whole collection.

It looks like WiredTiger should provide many of the same benefits, so you may evaluate that first before taking the plunge, but I haven't personally compared it with our tokumx setup yet.

Outside of that, you probably need to start sharding your dataset. Figure out a shard key that will let you distribute your data well, and start splitting your load among multiple replica sets. Figure out if your issues are IO, CPU, or whatever - there's a lot of documentation on how to do this, so I won't rehash it here, but in general, you first need to understand what is slow before you can fix it. Chances are very good that your culprit is disk IO, though (because it always is in databases), and you can probably get some of that performance back with more RAM (to keep more of your working set in RAM at a given point), faster disks, and/or a striped disk array. Depending on your platform, some kernel tuning may help, as well, though it's going to be specific to your platform and setup.

You might also look at other tools and see if they're better-suited for your purposes. We use Elasticsearch as our ad hoc query layer on top of TokuMX, and are doing some stuff with Cassandra and BigQuery for bulk analysis of historical data. I'm not suggesting that you replace your whole stack, but if you're trying to shove a square peg through a round hole, you're just going to be frustrated. Scaling is all about specializing your toolset to fit your problem domain - there is almost never a single solution that is the best thing for all use cases. If you need to add another tool to the stack to offload one part of your requirements, do it!

</comment><comment><USER19> 1M records? Bro you are seriously scaling.! Good job!

</comment><comment><USER20> well by asking this question to mongo users you miss the audience of the people successfully scaling up -for less money- that may belongs to the people NOT using mongo.

Business is about costs and prices not about thinking that business is about the religious adoptions of mongo, agile, C#, python, linux ....

This question is saying that your business is ruled by the techs not anyone with the common sense needed to pay the bills (thus your paychecks).

The feedbacks I have to give you is that TCO per mb stored increase more than linearly with mongodb, with weiredly enough a decrease in SLA (due to the weired unexpected incident hard to troubleshoot) so if you look at the probability you have success, it is bad news. Customer expect cost to diminish with volume, thus prices (investors too). If the fat of your business model is around document storage, you have a problem.

You should not trust me, and do some real costs analysis of the cost per documents for your business case with more than one scenarii and make some costs analysis and some projections. Because even if someone else optimization worked for them, it may not be relevant to your business case: at one point you make money, so you issue a transaction that cannot be handled in a distributed system (CAP theorem + NoSQL==NoACID) and this point differs than fellow devs.

Mongo could be -not is- killing your business. If you do mongo because that is the only techno you know, consider that you have been taken hostage, and call SWAT to have your mongo guru arrested. They may look nice and harmless, but you are the hostages of dangerous fanatic religious techs. Maybe call an exorcist, it could be as efficient.

And then go back to thinking what is the most efficient way to have your bills paid, and how to diminish cost as your business grow. Forget technical stuff as a compass for making successful software solution. Success is about benefits only

Je dis ça, je dis rien, hein?! My .02 eurocents.

<comment><USER21> This is an unbelievable waste of a comment and the OP should not even consider this as feedback.

You completely ignore the question, make a comment about "religious adoptions of mongo" and then do an about-face by showing your OWN religious zeal AGAINST mongo.

Mongo is not killing his business. Your comment should be deleted.

To the OPs question: can you post any more specifics? 1M documents with an index shouldn't be an issue for the aggregation pipeline. What are the specs of the machine? What are your indexes? I think it would be tough to help without having that info, and sadly a question requiring that type of info may be best suited for something like Stack Overflow.

<comment><USER2> SFjulie1's comment is a good one, mikegioia.

Taking a look at the economics of a technology that's being used is a very sensible thing to do, especially for a business. If this analysis shows that one solution is inferior to another, it does not mean that the analyst has a "religious zeal" against the economically-inferior technology.

<comment><USER21> My entire point in this entire thread is to __for once __keep the conversation on topic about MongoDB without everyone going into a tangent on switching to Postgres or something else. I just want one post where we can actually talk about MongoDB scaling.

<comment><USER2> Somebody came here asking for help with a real world problem.

It would be doing this person a disservice to not mention alternative technologies that have solved very similar problems that have affected many other people/organizations.

It is total absurdity to avoid bringing up these solutions to the problem merely in order to maintain some vague purity of the discussion, or to otherwise keep the discussion unnecessarily and unhelpfully focused.

<comment><USER21> I feel like you're just ignoring what I'm saying. It is NOT helpful to suggest alternative technologies all the time, especially in this specific post.

If I asked on a forum for help with the engine on my Dodge Dart, and you posted "Just buy a Prius", that __would not __be helpful. Do you see how that isn 't helpful? That's what I'm trying to say, that I would like to see, __for once __a post stay on topic when it 's about MongoDB (heck, even PHP for that matter!).

<comment><USER2> If using a Prius instead of a Dart would very likely solve the problem(s) being experienced, then it is a perfectly reasonable thing to suggest. It would be wrong not to suggest it.

This submission is about a problem involving MongoDB. It is not about MongoDB itself. The submitter clearly wants a variety of ideas here. That's why the submission says, and I quote, "Any tips, stories, suggestions are welcome!"

"Any" means "any", including the suggestion that some other technology be used.</comment></comment></comment></comment></comment></comment></comment>


The Difference Between Building a Business and Building a Brand - <AUTHOR> http://adage.com/columns/article?article_id=133561 <comment><USER2> _In 2003, Dell Computer Corp. dropped "computer" from its name and became Dell Inc. (That's always a bad sign.)_

Are they calling a top for Apple? ([http://www.engadget.com/2007/01/09/apple- drops-computer-from...](http://www.engadget.com/2007/01/09/apple-drops- computer-from-name/))</comment>


The weirdest bug I've found in a compiler: MSVC 2017 - <AUTHOR> https://medium.com/@ryanhaining/the-weirdest-error-ive-found-in-a-compiler-msvc-2017-ade2e9da0e20 <comment><USER2> I found years ago that (at least with older versions) VC++ implemented templates essentially as internally generated macros. All the non-standard behaviour they had could be explainined by considering how they would act if they were macros. This bug strikes me as being consistent with that. T is leaking across structs because it is internally #defined and seen by another struct.

I think Microsoft has managed to prop up this massive template-as-macro hack all the way through VS 2017.

<comment><USER2> I just found this statement from Microsoft:

[https://blogs.msdn.microsoft.com/vcblog/2017/09/11/two- phase...](https://blogs.msdn.microsoft.com/vcblog/2017/09/11/two-phase-name- lookup-support-comes-to-msvc/)

"MSVC previously recorded the body of the template as a stream of tokens and stored that stream away to be replayed at instantiation time. The behavior of MSVC's template substitution from a recorded token stream somewhat resembled the behavior of macro substitution in that limited analysis was done of a template's body."

<comment><USER3> As someone who is admittedly not an expert in template metaprogramming by any means, thinking of templates as an extension of macros feels like the intuitive and simpler way compared to the more complex two-phase algorithm, so it's no surprise that MSVC did it too... then again, I prefer simpler languages (like C) and see the difficulty of implementing the standard as a sign that its complexity may be too high.

<comment><USER2> There's a reason why templates work like this. If they didn't work like this then template specializations that you write can break somebody else's code which is dependent on the template behaving a certain way.

</comment></comment></comment></comment><comment><USER4> I tried remember reading an article on HN a couple of years ago about how MSVC got initial C++ support and added more and more features over time, despite having _not_ being designed with C++ in mind originally. The result was a combination of clever hacks after clever hacks, with the consequence being the reputation MSVC got over time (I'm not saying this is one the consequence shown in the OP)

Anyway, does anybody still have this article somewhere? I couldn't find it anymore :(

<comment><USER5> I'm a two decade Windows developer so this isn't a "M$ Sucks" comment, but Windows itself is a series of hack on top of hack because Microsoft refuses to break backwards compatibility.

As much as MS had the reputation of "Windows isn't done until Lotus won't run" back in the day. If you follow some of the MSDN blogs, you'll find the extraordinary hacks that MS has done over the years to keep the most obscure programs running.

People complain about how Apple will drop support for backwards compatibility but this a consequence of the MS culture of doing just the opposite.

<comment><USER6> There's a very good business in maintaining backwards compatibility. Any large enterprise is not going to buy from a company that they can't rely on having a roadmap that will fix security issues but won't break their deployed software.

<comment><USER7> Most software on Linux is backward compatible as well, you can get some 90s software, compile it and run it, however it does not have as many hacks as Windows has at the moment to achieve that.

<comment><USER3> _you can get some 90s software, compile it and run it,_

The "compile" is the tricky part; with Windows, you can get a binary from the early 90s and it will just run. My experience with Linux software is that while the kernel-userspace interface remains stable, userspace is itself full of breaking changes, and software has so many dependencies that trying to compile it quickly turns hairy.

<comment><USER8> Make that 1985 for windows 1.0

Can't find the site again, but someone figured out you can use an older version of the Borland resource editor to convert the embedded resources to a newer format, than patch the exe header to say it's a windows 2.0 binary and it will run even on windows 10 (32bit version only since of obviously needs the 16bit subsystem).

I was seriously impressed when I saw that.

<comment><USER9> > 32bit version only since of obviously needs the 16bit subsystem

And afaik, MS only retired the 16-bit subsystem because AMD64 can't switch between 64 and 16 bit modes. You can either run it in 16/32 or 32/64 modes, but not 16/32/64.

<comment><USER3> Not really: [https://www.dkia.at/en/node/180](https://www.dkia.at/en/node/180)

 _Interesting enough you can still mark a code segment as 16 Bit and the CPU will execute it in 16 Bit mode._

[https://www.wine-staging.com/news/2016-02-10-blog- wine-16bit...](https://www.wine-staging.com/news/2016-02-10-blog- wine-16bit.html)

 _The tricky part is that a LDT entry also contains flags which define if a segment contains 16 bit, 32 bit or 64 bit code. If you change to a segment, the CPU will automatically start interpreting the code inside the segment according to this value._

In other words, 16, 32, and 64-bit code can all coexist simultaneously and the CPU can switch between those automatically --- MS just decided not to implement it. Linux with WINE does, however.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10>
       template <typename U>
       using func_type = decltype(U{}.func());

I admit I'm not following all the new stuff that is added to C++. What are that two lines supposed to mean? I don't know what the U{}.func() and using x = decltype() constructs should mean or their names.

The names of these and links highly appreciated. Thanks.

Moreover, regarding the "bug": if "U" is actually special as an identifier (e.g. some predefined macro or something) it's a pity that the author hasn't investigated a little more. Even not knowing the meaning of the lines I've quoted, the symptoms look somewhat familiar to me with these "special behaviors" of identifiers.

<comment><USER11> Didn't you read the rest of the article? They tested with arguments with different names. Further they showed that T was accessible from within the other template when it didn't have a template parameter T, making this even more bizarre.

Also, just to be completely sure, I tested it myself.

Using X: [https://godbolt.org/g/B9YEgZ](https://godbolt.org/g/B9YEgZ)

Showing the template parameter leaking with neither T nor U: [https://godbolt.org/g/CKe2wG](https://godbolt.org/g/CKe2wG)

<comment><USER11> Sheesh, I'm not exactly obsessed with internet points but I am kinda curious why I got so downvoted. I wasn't really trying to be condescending, but the article kinda does answer this concern (regarding U being reserved) in a couple ways.

<comment><USER12> At risk of being downvoted, myself, as this is off-topic, but since there is no 'meta' and you're clearly looking to understand what happened, I suspect the issue originates in the first statement made from the original comment, which was posed in the form of a question:

        Didn't you read the rest of the article?

My rule of thumb is that if a question can have ", moron?"[0] appended to it and _both_ the meaning and tone remain unchanged, then it's going to be taken as condescending. You'll probably find that people who are particularly sensitive to keeping Hacker News a "civil place" (among which I count myself) will read that sentence and skip the rest of the comment before hitting the downvote button. Had it been left off, the rest of your comment offered clarity to anyone who simply skimmed the article or otherwise wasn't understanding what was being presented and might have missed that point. Removing the sentence also doesn't affect the information being conveyed[1].

While I'll take you at your word that it wasn't meant as condescending, a variant of Hanlon's Razor[2] applies which I had shared with me as "Where there are gaps of understanding, people tend to jump to the worst possible conclusion." and this serves as a pretty good example. You assumed the reader didn't bother to read the article, when it was equally likely that they simply didn't understand what was being presented -- a fair estimate since this is C++ templates, which is not something everyone encounters in their day-to-day. And folks who are able to downvote likely did so because they assumed you were being condescending, when it's equally likely that you may have simply written the comment hastily or meant the question in a less-sarcastically sounding manner -- a fair estimate since verbal queues are missing from written text and most of us type near the speed that we think.

[0] Or "dumba$$" or "?, God!" (followed by a gesture of hands being thrown down in disgust)

[1] I once had a great manager who, at a yearly feedback session, told me rather bluntly that I am too verbose and worked with me on how to convey a message by learning what is _unnecessary_ for conveying it. As you can tell if you glance through my comment history, the lesson was _entirely_ lost on me. While I'm much better at eliminating things that add negativity to my intent (often by adding _more_ to my statements), I'm pretty terrible at identifying when brevity has higher value than precision and completeness. Though, when it really matters, I can pull it together if I take enough time... and on and on and on.

[2] [https://en.wikipedia.org/wiki/Hanlon%27s_razor](https://en.wikipedia.org/wiki/Hanlon%27s_razor)

<comment><USER11> Fair enough, I can just remove that sentence I suppose. ¯\\_(ツ)_/¯

The internet is a fickle mistress.

edit: Nevermind, I can't. Guess the edit threshold is somewhere under 2 hours. Oh well.

<comment><USER13> It's one hour. And deletions work until someone comments or one hour has passed.

</comment></comment></comment></comment></comment></comment><comment><USER14> Copy of the article that works with JS disabled:

[https://gist.github.com/jwilk/b9f9142f204dfa634d3ec338af9172...](https://gist.github.com/jwilk/b9f9142f204dfa634d3ec338af917232)

</comment><comment><USER15> I've crashed MSVC 15.7 repeatedly while writing templates - usually due to an error in my code, but sometimes on valid code. I really do appreciate that Microsoft has been developing their C++ compiler a lot faster than in the past, but this seems like a buggy release.</comment>


An artificial womb successfully grew baby sheep – and humans could be next - <AUTHOR> http://www.theverge.com/2017/4/25/15421734/artificial-womb-fetus-biobag-uterus-lamb-sheep-birth-premie-preterm-infant <comment><USER2> My wife argued in a college essay that these would be used at an abortion to save the life of the baby - that someday, an abortion would come to mean the removal of the fetus from its mother, and not its death.</comment>


Greg Chesson has died - <AUTHOR> https://plus.google.com/u/0/+LaurenWeinstein/posts/bRdbj1B1qQG <comment><USER2> Could someone please explain who he is? Not trying to be flippant, but to gain some context.

<comment><USER3> Try a Google search?

<comment><USER4> A single comment with a brief background (like ChuckMcM's) spares everybody else from having to Google him.

</comment></comment></comment><comment><USER5> I worked with Greg just a few months ago at Google. He was an amazingly generous person, and I will miss him greatly.

</comment><comment><USER6> In answer to all of your questions and comments, which are greatly appreciated, I am his sister, Laura.. He is survived by his daughter, Jackie... my son and daughter (his nephew and niece). We are having a remembrance at Spangler, 399 S. San Antonio Road, Los Altos, on Thursday, 7/2 at 11:00... with music, food, and frivolity to follow.

<comment> uiuc-76 Music, food and frivolity - just what Greg would have liked. Jackie, Laura and family, I am truly sorry for your loss.

</comment></comment><comment><USER7> Greg was a friend. He will be missed.

</comment><comment> uiuc-76 I was in grad school with Greg at the UofI. Yes, he was a brilliant student. He also had a sense of humor and zest for life that wouldn't quit. He was an avid reader. And a musician - drummer in a band as I recall. And a vet, who survived having been in the service during the Viet Nam era. Greg was one of the treats of our social circle during that time. We went separate ways after school, and I haven't seen him in decades. I find it interesting that tonight, two days after his passing, from out of the blue I thought to search for him online. Greg, hope you're having a grand time hanging out in the afterlife. I'll always treasure my memories of our times together.

</comment><comment><USER8> Among many other contributions, Greg was one of the brains behind the eXpress Transfer Protocol (XTP), and in my direct experience he was really one of the first experts in "computication". No one I know could integrate so many different aspects of networking theory, physics, computer science (many aspects), and chip technology as well as Greg. \-- Dan Pitt

</comment><comment><USER9> Sorry to hear this. Condolences and best wishes

</comment><comment><USER10> Who is Greg and why should we care?

</comment><comment><USER11> Who is he survived by?</comment>


Nile shipwreck discovery proves Herodotus right - <AUTHOR> https://www.theguardian.com/science/2019/mar/17/nile-shipwreck-herodotus-archaeologists-thonis-heraclion <comment><USER2> One of the main points of the article was that although Herodotus described what he saw know one could turn his words into a mental picture. In other words until we actually found a wreck and could observe how it was built did we come to understand that Herodotus' description was accurate.

BUT THEY DONT PUT A PICTURE OR DIAGRAM IN THE ARTICLE.

They pulled a "Herodotus" on us and I am pissed.

<comment><USER3> Thankfully the paper [0] has a ton of diagrams and photos.

[0] [https://www.um.es/cepoat/arqueologiasubacuatica/wp- content/u...](https://www.um.es/cepoat/arqueologiasubacuatica/wp- content/uploads/2017/01/A_new_type_of_construction_evidenced_by.pdf)

</comment></comment><comment><USER4> previous publication about this shipwreck by the same author, with illustrations:

      Alexander Belov (2014)

      A New Type of Construction Evidenced by Ship 17 of Thonis-Heracleion

[https://www.academia.edu/4452101/A_new_type_of_construction_...](https://www.academia.edu/4452101/A_new_type_of_construction_evidenced_by_Ship_17_of_Heracleion- Thonis) [https://www.um.es/cepoat/arqueologiasubacuatica/wp- content/u...](https://www.um.es/cepoat/arqueologiasubacuatica/wp- content/uploads/2017/01/A_new_type_of_construction_evidenced_by.pdf)

<comment><USER5> 'download with facebook" OR "download with google"

An astounding set of choices with which to transfer TCP/IP packets if I do say so myself.

cough sci-hub has doi 10.1111/1095-9270.12078 cough

<comment><USER6> I don't like everything about Richard Stallman but damn was his wiriting (in the 90's!) about this trend prescient.

[http://www.gnu.org/philosophy/right-to- read.html](http://www.gnu.org/philosophy/right-to-read.html)

</comment></comment></comment><comment><USER7> Reading Herodotus' "The Histories" was life altering for me - I highly recomend it - but you MUST read a quality translation. I read the translation by Robin Waterfield. There are other good translations. What you should not do is download any old version you find online. Bad translations ruin the book.

<comment><USER8> I just read the Robin Waterfield myself, and I found it absolutely wonderful. It was the first ancient writing I've read in my adult life, and I was shocked by how clear and easy to understand it was. I know there are arguments for preserving the original prose of a text, however reading Waterfield's translation, it's clear that Herodotus wanted to be understood. He spoke clearly, and often caveated his speech to as to be clear to the reader.

I can grab some verbatim excerpts if anyone's interested, but his clarification when telling of Darius of child ("But he didn't say Darius, because no one knew he was called Darius yet") and then his explanation of a metaphor in Getae blew my mind. ("They probably don't mean the northern lands are literally covered in feathers, and this was likely just a metaphor for snow.") This is how a precise, scientifically-minded modern writer would communicate.

I had always always equated ancient writing with the Old Testament, or some of the more metaphor-laden prose for old plays (Oedipus) that were pretty opaque to my young mind. But reading Waterfield's translation of Herodotus was a different experience altogether: every sentence is easy to understand, and you can sympathize strongly with Herodotus and the ancient peoples he talks about: there's quite a bit of talent and intelligence, but not much concrete information. And, if you read the Histories without a reference nearby, then you're on equal footing with Herodotus himself.

<comment><USER9> To add to your comment, this is one of the examples I still remember from reading parts of the Histories:

"As for Libya [Africa, apparently], we know it to be washed on all sides by the sea, except where it is attached to Asia. This discovery was first made by Necos, the Egyptian king, who on desisting from the canal which he had begun between the Nile and the Arabian gulf, sent to sea a number of ships manned by Phoenicians, with orders to make for the Pillars of Hercules [the strait of Gibraltar], and return to Egypt through them, and by the Mediterranean. The Phoenicians took their departure from Egypt by way of the Erythraean sea, and so sailed into the southern ocean. When autumn came, they went ashore, wherever they might happen to be, and having sown a tract of land with corn, waited until the grain was fit to cut. Having reaped it, they again set sail; and thus it came to pass that two whole years went by, and it was not till the third year that they doubled the Pillars of Hercules, and made good their voyage home. _On their return, they declared- I for my part do not believe them, but perhaps others may- that in sailing round Libya they had the sun upon their right hand._ In this way was the extent of Libya first discovered."

So Herodotus passes on us a piece of information he doesn't understand or believe in, but that seems to prove that the circumnavigation of Africa actually happened because the sailors, having passed the equator, kept seeing the sun on their right side at midday- since they were moving clockwise around the continent. Shivers :)

<comment><USER10> "...and having sown a tract of land with corn, waited until the grain was fit to cut."

It has to be a grain other than corn (maize), since that one came from the Americas.

<comment><USER11> Corn was actually a generic term.

<comment><USER12> It still is in British English (though this is apparently beginning to change? Bloody Americans :p).

<comment><USER13> It's generic in Norwegian too, although spelled with a k.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> This reminded me of the Uluburun shipwreck[1]. This ship was built using "pegged mortise-and-tenon joints"[2]. It's not entirely clear how the Nile ship's construction was different -- as another commenter mentioned, it would have been nice if they'd included a diagram.

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

[2] [https://nauticalarch.org/projects/uluburun-late-bronze- age-s...](https://nauticalarch.org/projects/uluburun-late-bronze-age- shipwreck-excavation/)

<comment><USER15> Page 11 of [https://www.um.es/cepoat/arqueologiasubacuatica/wp- content/u...](https://www.um.es/cepoat/arqueologiasubacuatica/wp- content/uploads/2017/01/A_new_type_of_construction_evidenced_by.pdf) has a very nice diagram.

<comment><USER16> Also top of page 7 for a close up of a tenon rib.

</comment></comment></comment><comment><USER17> See also [https://en.wikipedia.org/wiki/Tessarakonteres](https://en.wikipedia.org/wiki/Tessarakonteres) and [https://en.wikipedia.org/wiki/Thalamegos](https://en.wikipedia.org/wiki/Thalamegos)

</comment><comment><USER18> is there no illustration what it may have looked like? I have no idea what they are talking about but it sounds interesting...

<comment><USER15> [https://www.um.es/cepoat/arqueologiasubacuatica/wp- content/u...](https://www.um.es/cepoat/arqueologiasubacuatica/wp- content/uploads/2017/01/A_new_type_of_construction_evidenced_by.pdf)

page 11

</comment></comment><comment><USER19> For all of those who missed the picture:

[https://www.theguardian.com/science/2019/mar/17/nile- shipwre...](https://www.theguardian.com/science/2019/mar/17/nile-shipwreck- herodotus-archaeologists-thonis-heraclion#img-2)

though I still find it confusing (I think it's just the bottom of the hull).

<comment><USER15> See page 11 of [https://www.um.es/cepoat/arqueologiasubacuatica/wp- content/u...](https://www.um.es/cepoat/arqueologiasubacuatica/wp- content/uploads/2017/01/A_new_type_of_construction_evidenced_by.pdf)

</comment></comment><comment><USER20> If anyone is interested in seeing other artifacts from this "dig", the Minneapolis Institute of Art has a special exhibit entitled "Egypt's Sunken Cities" through April 14th of this year. One Egyptologist I know saw the exhibit in St. Louis and says it's the most spectacular ancient Egyptian exhibit he's ever seen.

</comment><comment><USER21> One of those occasions where a clear picture really would be worth a thousand words.

<comment><USER15> Page 11 of: [https://www.um.es/cepoat/arqueologiasubacuatica/wp- content/u...](https://www.um.es/cepoat/arqueologiasubacuatica/wp- content/uploads/2017/01/A_new_type_of_construction_evidenced_by.pdf)

</comment></comment><comment><USER22> I really enjoy this type of article; technical facts about history. I'm also reminded that I miss similar stories from National Geohraphic. Finally, I'm impressed by the method of monetization The Guardian has opted to use while I loathe the paywall option others are pushing these days.

I just added Nation Geographic to the "Idle" bookmark folder I use to catch up on interesting facts during short breaks from my work. Now I'm off to contribute to The Guardian.

<comment> frosted-flakes Just out of interest, how many people actually contribute to The Guardian? Is depending on reader donations a sustainable business model? Apart from Wikipedia, are there other publications that also follow this approach?

I was contemplating paying them a couple bucks, because I am quite impressed with the quality of their publication—at least the parts I've read. The plea for support at the end is almost as long as the article itself, and it's very convincing:

 _We made a choice…_

 _… and we want to tell you about it. We made a choice which means our journalism now reaches record numbers around the world and more than a million people have supported our reporting. We continue to face financial challenges but, unlike many news organisations, we have chosen not to put up a paywall. We want our journalism to remain accessible to all, regardless of where they live or what they can afford._

 _This is The Guardian's model for open, independent journalism: available for everyone, funded by our readers. We depend on contributions from our readers. Will you support our choice?_

 _Readers' support powers our work, safeguarding our essential editorial independence. This means the responsibility of protecting independent journalism is shared, enabling us all to feel empowered to bring about real change in the world. Your support gives Guardian journalists the time, space and freedom to report with tenacity and rigour, to shed light where others won't. It emboldens us to challenge authority and question the status quo. And by keeping all of our journalism free and open to all, we can foster inclusivity, diversity, make space for debate, inspire conversation – so more people have access to accurate information with integrity at its heart._

 _Guardian journalism is rooted in facts with a progressive perspective on the world. We are editorially independent, meaning we set our own agenda. Our journalism is free from commercial bias and not influenced by billionaire owners, politicians or shareholders. No one steers our opinion. At a time when there are so few sources of information you can really trust, this is vital as it enables us to give a voice to those less heard, challenge the powerful and hold them to account. Your support means we can keep investigating and exploring the critical issues of our time._

 _Our model allows people to support us in a way that works for them. Every time a reader like you makes a contribution to The Guardian, no matter how big or small, it goes directly into funding our journalism. But we need to build on this support for the years ahead. Support The Guardian from as little as CA$1 – and it only takes a minute. Thank you._

</comment></comment><comment><USER23> Aside "well that 2500 yr old manuscript happened to mention this type of ship" why is this significant?</comment>


OO JS in 15mins or Less  - <AUTHOR> http://beardedocto.tumblr.com/post/21920818233/oo-js-in-15mins-or-less

<comment><USER2> The text is quite misleading. Where it says "When using Object literals, if we copy an object and change a property or a method that method/property will be changed for all instances."

And in the code, there is only one instance. No copying has taken place, but there are two references to the same object.

<comment><AUTHOR> Agreed. I could see how that line could be confusing. Why don't we change it for the better in that case? How about something like this:

In the example above we create a new variable sally, and assign it the value bill. Both sally and bill reference the same spot in memory. As such we can't change bill out w/ out changing Sally, specifically when a change is made to an object literal it will affect that object across the entire script.

<comment><USER2> Something like that would be right.

How about: In the example above we create a new variable sally, and _make it equal to_ bill. Both sally and bill now reference the same _object in memory_. Changes made via one affect both of them.

<comment><AUTHOR> Awesome, you rock! Officially updated the post w/ the above :)

</comment></comment></comment></comment><comment><USER3> A small nit:

 _Specifically the sayName function was created in the global scope, so when it came across the statement this.name it looks in the global scope for the value of name._

It doesn't matter where a function is created, but it matters how it's called. A pretty simple example is that typing sayHello() by itself desugars to sayHello.call(window);, where window is the global scope[1]. JavaScript function invocation is fairly confusing until you learn the rules.

I also really liked Yehuda's JS prototypes article[2]. It really helped me understand them.

[1]: Except in JS strict mode apparently? I don't know too much about that. See [http://yehudakatz.com/2011/08/11/understanding-javascript- fu...](http://yehudakatz.com/2011/08/11/understanding-javascript-function- invocation-and-this/)

[2]: [http://yehudakatz.com/2011/08/12/understanding-prototypes- in...](http://yehudakatz.com/2011/08/12/understanding-prototypes-in- javascript/)

</comment><comment><USER4> A few days ago this guide appeared here in Hacker News: <http://www.gabordemooij.com/articles/jsoop.html>

I think that it is far better than this article.

<comment><USER5> yes. quote: "Note that we did not use a lot of confusing JS stuff: no this, no new, no prototype. Therefore this approach is not only easy, minimalist and elegant but it also works in the most ancient and exotic browsers."

This is the correct approach.

...not because those operators are bad, but because they _are_ confusing, and will confuse some people who work on the code base. Simple javascript is elegant and maintainable.

</comment></comment><comment><USER6> This is okay, but you talk about "cloning" objects by giving them a different variable name, then you talk about constructors, and then you VERY briefly mention the "prototype" property -- which is actually the secret behind it all.

I feel like in any overview of JavaScript you HAVE to mention two things: 1) constructors aren't classes, they're non-magical functions (it's the "new" keyword that actually does the magic) and 2) inheritance works through a prototype chain, not through a class chain. Once you understand these two things (which will blow your mind) the rest is easy. (EDIT: okay, then there what "this" does in different contexts, but that's details)

This article is pretty elucidating: [http://livingmachines.net/2009/02/creating-javascript- classe...](http://livingmachines.net/2009/02/creating-javascript-classes- part-1-with-screencast/)

</comment><comment> jarek-foksa This is yet another article on JS OOP that jumps straight to constructors without explaining the fundamental concepts of prototypical inheritance.

Please take your time to understand how things really work, it will pay off in the future. A good starting point is [http://killdream.github.com/blog/2011/10/understanding- javas...](http://killdream.github.com/blog/2011/10/understanding-javascript- oop/)

</comment><comment><USER7> An OO JS tutorial should also include a discussion of the _this_ pointer, and how it's _not_ like other OO languages.

In JS, _this_ reflects the context of the _caller_ , not the _object_ (which I think is messed up), so you have to learn _call_ and _apply_.

<comment><AUTHOR> My first thought here was holy cow yes it should! My second though was ack, there's a lot to go over. Sounds like a good topic to cover in a second post. However if you see a way to nicely integrate into the current post in brevity I'm all ears and would be happy to update the post :) Thanks!

</comment></comment><comment><USER8> There is no _zelda.prototype_. It should have been:

      Game.prototype.heartIt = function() {
        console.log( "I heart " + this.title );
      };

See: <http://jsfiddle.net/a9asJ/1/>

<comment><AUTHOR> Thank you, corrected!

</comment></comment><comment><USER9> "Constructor notation is preferred when you need to set initial properties and methods on an object or you plan on creating multiple instances of an object where the properties and methods of each instance need to be unique."

Love it when they don't just tell you how to do something. Would like to see more people write on when you should use something.

<comment><USER10> > Love it when they don't just tell you how to do something.

Or why. None of the examples seem like constructors provide any advantage over literals.

<comment><USER11> So that the methods don't need to be re-defined for every object.

<comment><USER10> Object literals don't require you to duplicate any code:

        function getObject(val1, val2) {
            return {
                foo: val1,
                bar: function() {
                    return val2;
                }
            };
        }

<comment><USER12> In this instance the "bar" method is redefined every time you call getObject.

</comment></comment></comment></comment></comment><comment><USER13> Folks might also be interested in this article on implementing other common design patterns in JavaScript - [http://addyosmani.com/resources/essentialjsdesignpatterns/bo...](http://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript)

<comment><USER14> Thanks, I found this section from Addy on constructors helpful as well (to clear up some prototype confusion). [http://addyosmani.com/resources/essentialjsdesignpatterns/bo...](http://addyosmani.com/resources/essentialjsdesignpatterns/book/#constructorpatternjavascript)

</comment></comment><comment><USER11> This is a very good intro to JS OO. Keep up the good work.

<comment><AUTHOR> Thank you! I cleaned up the issues noted here and in the comments. I'd like to create another post on inheritance or digging into prototype as well :)

</comment></comment><comment><USER15> small correction:

       bill.sound = function(noise) {
           console.log( sound );  // should be console.log(noise)
       }

<comment><AUTHOR> Good call, I just updated it. Thanks!

</comment></comment><comment><USER16> What about inheritance?

</comment><comment><USER17> (> fn OO)

<comment><USER18> I think you mean FP. And I agree with you.</comment></comment>


Three.js, JavaScript visualization and 3D rendering - <AUTHOR> https://threejs.org/ <comment><USER2> Every time I go back to look at the latest WebGL demos posted on the THREE.js website there's new interesting stuff. It's taking a while to gain traction, but WebGL offers some really cool possibilities for the web.

I though this one was well done.. [https://predictiveworld.watchdogs.com/en/hello/](https://predictiveworld.watchdogs.com/en/hello/)</comment>


Footage of cubicle rage aka why not to work in a cube-farm. - <AUTHOR> http://gizmodo.com/5012983/security-cam-footage-of-cubicle-rage-to-the-extreme-is-every-cube-dwellers-fantasy Following on from http://news.ycombinator.com/item?id=210775 <comment><USER2> This looks awfully like a fake 'viral' video campaign. In fact I'd put money on it.

<comment><USER3> Yeah, strange how the monitors didn't have any cables attached to them. I'd expect the computer case to hitchhike for at least part of the ride.

<comment><USER4> i think that the second monitor had cables connected, you can see it suddenly stop and fall while flying in the air.

<comment><USER3> It did suddenly stop - because it hit a wall. The first one gave him absolutely no resistance at all. He just picked it up and threw it.

Also, those have to be cheapest cube walls I've ever seen. The desks are the only things holding them upright.

</comment></comment></comment></comment><comment><AUTHOR> After reading lurkage's post (<http://news.ycombinator.com/item?id=210775>), just thought I'd post this.

</comment><comment><USER5> If this is real then all the other males in there are absolutely sackless for not kicking this guy's ass after he threw the monitor at that lady.

<comment><USER6> Unless, of course, she had it coming.</comment></comment>


Ask HN: Software pricing criteria for startups/freelancers? - <AUTHOR>

Can anyone share how do you price your software? As startup/freelancer the software will not be as popular compared to the big players out there, so high price may hurt. Likewise too low will starve you.
Is there an effective mechanism to price based on customer? ie. if customer is individual, low price, otherwise, high. But it seems to be easily exploitable.
Any insights? It would be great to know exact methods you use to measure LOCs, intangible costs such as time spent, and anything else. <comment><USER2> Pricing is mostly a dark art / finger in the air analysis, here's what I think you should do:

<http://news.ycombinator.com/item?id=677396></comment>