SEC Modernizes the Accredited Investor Definition - <AUTHOR> https://www.sec.gov/news/press-release/2020-191 <comment><USER2> These are good steps, but abolishing all wealth-tests entirely would still be better.

There's no wealth-test that prevents a person from losing all their money in highly-leveraged investments - from real-estate to fancy public-market securities. (Over-leveraging into real estate is practically encouraged by public policy.)

There's no wealth test against putting all one's cash into gambling, which can be arbitrarily worse than even the riskiest non-fraudulent startup investment, depending on your choice of wagers. (Official state lotteries are among the worst games, with the most manipulative marketing - to a level of deception that would generate lawsuits & legislation if attempted by private actors.)

There's no wealth test before purchasing legal but addictive & judgement- impairing substances like alcohol & marijuana.

But if you want to put $5-$20K into a friend's business, or a business you know well, the SEC makes it hard unless you're already a millionaire. It's insanely paternalistic & economically destructive - a ghostly holdout from some bad experiences in another era, the 1930s, when the ranges of available information, experience, and alternative temptations were all tiny & quaint compared to the 2020s.

<comment><USER3> There's a strong financial incentive for the market to engage in fraudulent activities against investors. And the smaller the investor, the greater then incentive.

Public companies have regulations that help prevent such fraud by requiring things such as audits by third party accounting firms, and regulating how these audits may be performed. Such regulations came about specifically as the result of fraud committed by the owners and directors of companies.

Private markets don't have these regulations because the assumption is that past financial success is indicative of financial sophistication. It doesn't prevent fraud, but at least it helps reduce the likelihood of success.

If you start making private markets open to everyone, then there's no reason to differentiate between public and private markets anymore. Companies will go back to all being "private" because there are fewer regulations, then there will be another Enron, and a subsequent shift towards regulation to prevent another such scandal.

<comment><USER4> It's a matter of principle though. You don't restrict the freedom of individuals to protect them from other individuals that are bad actors. You go hard and strong after the bad actors. What other examples of laws outside of finance can you cite where individuals are restricted in order to protect them from other bad actors? It's absurd and not in the scope of what government should be doing.

<comment><USER5> >What other examples of laws outside of finance can you cite where individuals are restricted in order to protect them from other bad actors?

Pretty much any consumer safety or mandatory licensing law.

Even something as simple as buying a beer - we insist that legal adults are not allowed to buy a beer until they are older.

We insist that adults must be over 21 to buy a handgun in many states, or that (in other states) they must show that they are sophisticated gun owners by passing a firearms safety course.

We let people with special licenses and training (pharmacists) buy opiates openly, yet deny individuals the right to do so without receiving written permission.

We don't allow non-specialists to buy certain kinds of explosives, but we allow others with credentials to do so. The same applies to all kinds of things, up to and including varieties of river frogs (!).

We insist on documented "informed consent" for things like surgery, again to protect vulnerable people from bad actors.

We don't let adults buy many kind of fireworks out of fear that they will harm themselves or others, yet if someone can prove (through obtaining a license) that they are competent, we let them buy and fire huge commercial fireworks.

In short: there are an enormous number of similar restrictions. A lot of them exist because the previous state (no law) caused enough damage that restrictions were added.

<comment><USER4> Every one of your examples are of the case of protecting the individual from hurting themselves or others. This is quite different from the question, which is to cite a law that restricts someone in order to protect them from others.

<comment><USER6> I agree that some of the examples GP gave don't quite fit, but their insight about consumer protection laws is key.

Say a consumer protection law that prohibits an appliance company from selling me a cheap heater that isn't up to code. That law restricts the appliance company's freedom, but it also restricts _my_ freedom to contract with the appliance company. The law is restricting _my_ freedom to protect _me_.

(Personally, I'm fond of Matt Levine's "stupid investment license" proposal, but I would not be in favor of an "unsafe heater" license)

<comment><USER4> But they aren't restricting your freedom. They would be restricting your freedom if _some_ people could buy those appliances but not you. Saying they are restricting your freedom using your example is like saying your friend was put in jail, and thus they are restricting your freedom to hang out with that friend, which IMHO is a bad interpretation.

<comment><USER6> They're restricting my freedom in the sense that, in the absence of government, I would be free to contract with the seller of the non-certified heater.

<comment><USER4> You are still free to contract with the seller, they are just unable to deliver to you.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> The two big changes:

1\. permitting natural persons who have "professional certifications" or "credentials issued by an accredited educational institution".

2\. include as accredited investors, with respect to investments in a private fund, natural persons who are "knowledgeable employees" of the fund.

Most of the other changes fill in gaps that shouldn't have existed: expanding the definition of spouse and adding orgs with >$5MM assets (including tribes, family offices, etc.). YC relevant: "demo days" will not constitute a general solicitation.

Overall a welcome change. I assume that they'll use an existing set of professional certifications in finance, which tend to require non-trivial self-study, so it'll probably also create a market for short educational programs offered by accredited institutions.

<comment><USER8> Do you think "credentials issued by an accredited educational institution" would include things like an MBA? Or even a BA in Business?

<comment><USER9> In theory, the SEC _could_ decide to count those. In practice, that's basically unthinkable.

<comment><USER2> It's been discussed, so it's definitely thinkable.

And if getting an accredited-institution MBA, for tuition payments of anywhere from $22K to $200K, after about 17 years of other education (K-12, undergrad) isn't enough for someone to protect their own wealth from scams, what's the point of all that credentialing, anyway?

<comment><USER10> An MBA is not a licensure. There are overlaps between what an MBA and an accountant may have studied, but the CPA is what gives you a license. Lots of MBA students do not pursue financial courses beyond what is requires to pass. They may have interests in marketing, innovation, or other areas. They can be ill-equipped to deal with investments.

The same pattern exists for law and many other professions. There are plenty of people with law degrees who fail, or decide to not pursue the bar exam.

<comment><USER2> But an MBA who's a millionaire _is_ competent to do any amount of private- investing?

And an MBA who's not a millionaire _isn 't_ competent to do _any_ private investing, even with just a small amount of their own money?

Why should their net-worth be legally dispositive?

<comment><USER11> The millionaire can fuck up a few times and still be fine that's the real difference.

<comment><USER2> Only if they're wise enough to leave themself that wiggle room. It's a binary test, the 'accredited' can risk any amount.

So why not let anyone take a proportionate risk?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> My biggest problem with this is that I have had multiple opportunities as a young professional to invest in my friends' small funds, only to be turned away at the last minute when they decided to only accept accredited investors.

On the other hand, I could participate in sh*tcoin ICO's, get rich quick "courses", and become a real estate "investor" by attending presentations at a Holiday Inn conference room.

The law as it currently stands, does not work, period.

I've been prevented from investing in the funds and businesses of my high integrity friends, while being allowed to participate in lotteries, gambling, MLMs, ICOs, the list goes on...

I was really hoping this would be a huge announcement, but unfortunately its a couple tiny steps towards the ultimate end goal of opening up private markets to individuals.

Many people like to reference scams that this law helps avoid, but I call BS.

Has it limited some cons from raising money from middle class people, yes. Has it limited a lot of middle class people from participating in areas with the highest returns, yes.

I've read about several people that weren't accredited checking the box anyways, and no enforcement actually happens, which makes me think it's a BS regulation to begin with.

<comment><USER13> > I've read about several people that weren't accredited checking the box > anyways, and no enforcement actually happens

That's because it's not a prohibition on individuals as it wouldn't be constitutional. It is a prohibition on issuers, who can face civil and criminal sanctions while also having the entire offering rescinded retroactively. The government effectively achieves what they were going for either way. (A strategy to curb/steer any behavior is to regulate the intermediary.)

So if you, the individual, want to lie and constructively get into a private offering and be quiet like an actual wealthy investor, there is no consequence except you might overextend yourself due to the minimum investment amount set by the issuer.

Regarding law, the government can still place any number of restrictions on issuers, but the current law does not work and I think it can be argued that it "chills speech", and doesn't make sense. Always remember, the entire SEC is a creature of the New Deal, and although this is heralded in our history books, most of the new deal was quickly declared unconstitutional, and the rest wasn't challenged. Here we have something that doesn't affect rich people and they might not be aware of it, while issuers are prohibited from marketing to poor people and poor people generally aren't aware of it either. There are just a few upper middle class people that get to say "what the heck is this"

<comment><USER12> Good explanation of it. I've yet to find a single case this has actually happened for.

I get the gut feeling that the SEC doesn't have the audit capacity to focus on the _likely smaller_ deals where non accredited people lie.

Please share any cases you've found

<comment><USER13> Thats because you are looking for the wrong thing.

Companies and individuals get fined and sanctioned for non-exempt offerings of securities all the time all day every day.

Non-exempt means that the issuer either didn't bother to care, or tried to comply with a registration exemption but failed. One way of failing is the inclusion of non-accredited investors. Depending on the exemption being leveraged.

No sanction will say "aha we found non accredited investors" it will just say the exemption wasn't used correctly.

Sometimes its just a fine.

Sometime the sanction is proper registration and financial reporting like a publicly traded company has to. This is often a death knell to small issuers due to the time and expense of ongoing compliance as well as unsavory information that deters future investment, which is why so much energy goes into avoiding it, even in VC backed companies which now aim to go public at the end of their growth cycle.

And in egregious cases the company and individuals behind it will have a criminal securities fraud and wire fraud charge.

Its not _because_ a "poor person" lied. You really have nothing to worry about.

<comment><USER14> ''Companies and individuals get fined and sanctioned for non-exempt offerings of securities all the time all day every day.''

where are those published?

<comment><USER13> Some here

[https://www.sec.gov/page/litigation](https://www.sec.gov/page/litigation)

I dont think SEC reports all

All states have an equivalent agency

CFTC gets involved sometimes and there are some capital offerings and issuance solely under its purview

<comment><USER14> I checked that link but can't find a single one concerning non-accredited investors. Can you post one? I want to get familiar with this matter.

<comment><USER13> As I detailed to the other person I was replying to, you won't find that. Try to re-read what I wrote.

If you are looking for that you are looking for the wrong thing. If you are on the fence about trying to qualify for a private investment because "law" its not your problem.

But if you are issuing an investment, it definitely is your problem.

<comment><USER14> I understand but then show me an example it has become a problem for those that issuid an investment and accepted a non accredited person.

<comment><USER13> A sanction from the regulator will say that the issuer "sold to investors without registering the security with the regulatory body" or "without an applicable exemption", because the issuer tried to rely on an exemption but the regulatory disagreed. Not all the reasons that the regulator disagreed will be stated.

Sorry man, not everything that occurs and why it occurs is on Google for your independent review. You just have to talk to people, and lawyers, and come to an average-right conclusion.

Maybe there is some blog somewhere about someone talking about their fine from the SEC or a case study, but its unlikely because people don't want to out themselves like that, or typically settlements (in general, not necessarily with regulator) bar people from talking about them.

<comment><USER14> "sold to investors without registering the security with the regulatory body" I knew you would say that, because there are countless judgements against companies to be easily found with that exact scenario. That's actually not the same situation as finding out a non accredited individual was allowed to purchase a security in a private offering. And "without an applicable exemption" is too vague and can mean anything. No way to know.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> The accredited investor restriction on private equity seems like the most anti-free-market law I've ever heard of. You're not allowed to put your own money into a business unless the government deems you Smart Enough (c) (tm) to do so. If the vast majority of citizens here are not smart enough to invest our own money, then what is all the higher education for?

This change sounds like a good one but there's not enough information to know if it will really open up any opportunities for regular people.

<comment><USER16> This is a pretty clear Chesterton's Fence [1] example. The scams that occurred prior to enacting these standards were massive.

If you want to look at a modern example of such things, consider the cryptocurrency ecosystem and the many scams that occurred [2]

1 - [https://en.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fence](https://en.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fence)

2 - [https://twitter.com/patio11/status/1032024732214812673](https://twitter.com/patio11/status/1032024732214812673)

<comment><USER17> Right, but it's not the 1920s any more. We live in this highly connected, information rich, rapidly changing world, that is fundamentally different than the 1920s in many ways. The general public is far more savvy about investments, risks, and bubbles in general than they were in the past. Today, private equity tends to capture almost all of the value before a company goes public. The crazy thing is that a foreign citizen can invest in an American start up without any of these credentials, yet a US citizen cannot.

<comment><USER18> The 90's heralded a lot of optimism about the Internet's role in making information ever easier to access. What we've discovered in the 21st century is that it also makes _disinformation_ easier to access. And perhaps more so, since democratization of content generation means there's fewer chances for curators to pull disinformation.

I don't think it's easier for an average person in the 2020's to differentiate between investments, risky investments, and outright scams than the 1920's, were all the regulations to be waived away.

<comment><USER17> I think a person in 2020 is far more savvy about the risks than someone in 1920. For one, they're aware of crashes, bubbles, etc. and have probably even lived through at least one of them. They also don't have to trust the advice of a single broker over the telephone. The 2008 real estate bubble was driven by the same kind of speculation that drove the 1920s stock bubble. We are probably already deep into a stock bubble today, in 2020. And yet retail investors can plop down tens of thousands of dollars on stocks through Robinhood or a myriad of other apps, paying no attention to underlying fundamentals in the business.

<comment><USER18> > For one, they're aware of crashes, bubbles, etc. and have probably even > lived through at least one of them.

The Panic of 1929 was far from the first crash of the 1900s, let alone the only large crash in history. The Panic of 1893 would have been the big crash that everyone was afraid of before 1929, but there were more minor crashes in 1901 and 1907. Railway manias and land speculation-driven crashes litter pretty much every decade of the 19th century. The 21st century is unusual because it's pretty much the first time in modern financial history you make it an entire decade _without_ some sort of recession.

<comment><USER19> Not much more than a decade, it seems.

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> Too bad they didn't adopt the "Dumb investment certificate" [1] instead.

[1] [https://www.bloomberg.com/opinion/articles/2018-09-24/earnin...](https://www.bloomberg.com/opinion/articles/2018-09-24/earning- the-right-to-get-swindled)

<comment><USER21> Is there a reason why the idea suggested _just before_ the "Dumb investment certificate"[1] can't be implemented? It can be implemented like a Roth IRA (ie. a special account type). IRS would be in charge of keeping track of how much "dumb money" was "spent" in total, and all the issuer has to do is ensure the money came from a "dumb money" account.

[1] the paragraph starting with "A better approach might be to lower (or eliminate) the wealth bar for investing in private placements"

</comment></comment><comment><USER22> I'm an accredited investor. I've had a series 7 license and was in a finance PHD program.

I've had the chance to see a lot of investments that require you being an accredited investor. Almost all of them have had some highly problematic issues. Most of them have a outcomes where you can lose all of your money and there is NO WAY to get out of the investments.

What I tell other people is run away from investments that require you to be accredited.

Seed round investments are probably the "best" opportunity BUT you have the risks of being screwed by cap table games. A "regular" person could put money into a startup and get really screwed.

<comment><USER23> The liquidity aspect is key. There is basically none with private investments. You can get in, but may not be able to get out for 5 or 10 years... or more likely, never. For this reason alone, the average person is better off with public markets.

</comment></comment><comment><USER24> This is great for employees of private funds and other things like that. It makes no difference at all to the average person complaining about the accredited investor rules preventing them from investing in sure-fire wins.

It really doesn't matter how much of a genius you are at recognizing investment wins. If you can't give them enough cash to finance their operations for a significant period of time, the company isn't going to be interested in taking your money. If you can't meet the wealth guidelines, you're not gonna be able to give them enough money to be worth their time dealing with.

<comment><USER25> The average person can now take the Series 65 exam for $60 or so and, if they pass, become an accredited investor. This is a huge change. Taking the wealth requirement from 1 million dollars to $60.

EDIT: It's not $60, but $175, still a far cry from a million.

<comment><USER26> This is likely not true. You can't just sign up for FINRA exams as an individual; an eligible entity (broker-dealer or investment advisor) has to sign you up. And even if you have passed the relevant exam recently enough, you're not considered licensed unless you're working for an eligible entity who has submitted the appropriate paperwork to claim you as a registered representative.

The easiest path this opens for someone not in the securities industry is to become a state registered investment advisor. In my home state of Illinois, that would require paying $400 a year to the state and $150 a year to FINRA, as well as subject you to a number of non-trivial regulatory requirements.

<comment><USER27> You need a sponsor for most FINRA exams, but Series 65 (and the introductory SIE exam) allows self-registration with no sponsor.

I just reread the new accredited investor final rule, and as per footnote 102, people who qualify via Series 65 need to maintain in good standing a state- granted license or registration. No other requirements exist on top of that.

</comment></comment></comment></comment><comment><USER25> This is a wonderful change. Before, you had to be rich to invest in funds. Now, the SEC has opened up the ability to participate simply after having met certain educational thresholds. The Series 65 exam can be undertaken by members of the public, without any requirements.

Great news for small investors! And a vital change for minority and marginalized communities, who are often forced to seek capital outside their community, because it is incredibly difficult to meet accredited investor requirements otherwise.

</comment><comment><USER28> Interestingly, many Canadian provinces have had accredited investor exemptions for some time. Here's an overview for anyone interested (note that the exact rules will vary by province):

[https://financialpost.com/personal-finance/managing- wealth/s...](https://financialpost.com/personal-finance/managing-wealth/soon- you-will-be-able-to-invest-like-the-very-rich-with-all-the-rewards-and-risks/)

</comment><comment><USER29> This is classic gatekeeping. You can bring all your money to a casino, buy lottery tickets, make bets on horses. But somehow investing in early stage startups is suddenly an issue the government wants to protect you against.

</comment><comment><USER30> Did they really not have anything except a wealth test previously? Nothing for people working in the industry etc?

<comment><USER13> It was a "self-certified" wealth test

People working in the industry know that self-certified means lie through your teeth all day every day with a straight face.

People working in the industry know that you can create illiquid investments, trade one unit of it and say you own the rest at the same price, and viola you are a multimillionaire. I did it with crypto assets 6 years ago using Counterparty.

People working in the industry know that you just need a lawyer or CPA to sign off on that.

The prohibition is on the companies selling securities, not on the investor, so the company just needs a way to cover their ass (CYA) and there is no consequence for the investor. "Self-certification" is a code word for lying, or stretching the truth, just checking the box.

<comment><USER31> > People working in the industry know that you just need a lawyer or CPA to > sign off on that.

In your experience how willing are CPAs or lawyers to do that for you?

In theory they're putting their credentials on the line for you, so I imagine it's either hard to find ones that will do that or very expensive to the point where it eats into the investment return with the amounts of capital being invested below the accredited investor limit.

<comment><USER13> lol _maybe_ 10 years ago and briefly.

There have been a SaaS services for this the whole decade, and that's only because the issuer exemptions were expanded to even need a lawyer because an investor saying "yeah Im accredited" wasn't good enough for some securities issuance exemptions.

You don't lie to the lawyer (or most lawyers), you show assets. Assets which so happen to have a value and are totally illiquid. You trade a single unit of something you create for $1 and you happen to have 2,000,000 more units. You're accredited by any standard. No different than your portfolio of houses in a place nobody wants to live in, which still happen to have appraisals totaling over $1mm.

If that doesnt feel "right" to you then you might be confusing who actually has the consequence here and might have been unproductively conditioned to "follow the letter of the law" compared to the consequences and implementation of the law. Again its a prohibition on the securities issuer which they pass on to the investor. Its not a prohibition from the government on the investor or the lawyer. And the securities issuer simply has to go through the motions. Check, check and check. And the investor has to pony up the cash. If they don't have the $25K or $100K minimum anyway then get out. The government's role in this is just a redundant deterrent.

<comment><USER31> I understand who has the consequences here.

My curiosity is about that conversation with the lawyer when you say "I traded a single unit of something I created for $1 and I happen to have 2,000,000 more units." where something is cryptocurrency (what else could it be?).

Would most lawyers go "Yep, just another routine accredited investor check, $200 please."

Or would most say "I'm being asked to affirm this person has $1m in assets and in the off chance that somehow this is checked by someone I could be penalized because I didn't do my diligence to make sure this isn't just funny money".

<comment><USER13> the latter would only happen if dubious value propositions by poor/middle class people became too commonplace after they started complaining about losing their money and management in private securities offerings. the company will then double down on covering their ass by looking into who is making complaints.

if they start predictably acting like non-accredited investors after jumping through those hoops, then there will be more scrutiny.

right now not enough people that are actually poor jump through those hoops. there are a lot of people liquid with $25k-$100k or can get it, that don't make $200k/year or have $1mm in assets when not excluding their home. the wealth requirements also don't account for cost of living by area. Some of them jump through the hoops to get access to things they really should have access to. The rest don't and poorer people can't because the investment minimums so that nobody's time is wasted is too high.

</comment></comment></comment></comment></comment></comment><comment><USER32> Putting up a basic barrier to entry to people with low net-worth people causes some people to say "if the market is sky-rocketing, why can't I get in on that".. but the problem is whether or not you can "afford" to lose the money.. like if you have 50k to your name that you saved up over 20 years, then you blow it all in one bad investment, then you see people doing rash things like trying to take out their revenge on people or other super destructive behaviors. If your annual income is high, then losing 50% of your annual income might hurt, but you can earn it back in a reasonable amount of time.. losing say 10 years of annual income would hurt basically anybody..

So it makes more sense to have various lower risk investment vehicles that are attached to those markets -- like if real estate is booming in your part of the world, then it should be possible to create some kind of investment group where 100 people put together their money and buy various properties.

Allowing people who don't know much about options to buy them in a leveraged position is incredibly risky for tons of reasons. Many people's understanding of options is basically like if the stock goes up, then the call option that is above the current stock price goes up -- the option price could easily could go down if the expectation was that it would go up even more than it did, or the price volatility decreases! Not easy to explain all of the horrible ways you can easily lose money in the markets... I've sometimes thought, maybe I should just do the opposite of everything I've thought I wanted to do.. maybe that'd be better than what I'm doing..

<comment><USER33> What's weird is that there's nothing stopping someone with $1M from blowing it all on a risky investment, while someone with $900K can't invest even 1% of their net worth in the same thing. A limit on percentage of net worth invested, as in the JOBS Act, would make more sense.

</comment></comment><comment><USER34> They also eased risk disclosure requirements [https://www.sec.gov/news/press- release/2020-192](https://www.sec.gov/news/press-release/2020-192)

It's honestly laughable that their top priorities in the height of what appears to be a massive stock bubble is weakening investor protections at a time when they should be strengthened

</comment><comment><USER35> Most of the changes involve organizations, not individuals. The main change for individuals is that having a Series 7 qualifies you. (A Series 7 is a test about finance you take to become a broker. Covers stocks, bonds, options, terminology, how to evaluate risk, trading rules, ethics. that sort of thing.)

Mostly, this is about hedge funds, not startups. "Accredited investors" can invest in hedge funds that don't report their returns publicly in a standard way. Usually they don't report them because hedge funds as a class underperform the Dow.

Useful rule: any investment where they call you is no good. If it needs paid salespeople, it's a dud.

</comment><comment><USER36> Note that the process of reforming equity fundraising began at least ten years ago as the JOBS Act was drafted. Powerful financial lobbying watered down provisions, such as the designation of accredited investor and anything else that would enable a viable crowdfunding marketplace to exist. After TEN YEARS, across several political administrations controlled by both political parties, this change finally takes a baby step forward. It's still not democratizing access to private investment. The reasons for this remain the same: those who control the flow of capital demand it.

</comment><comment><USER37> Matt Levine would be having a field day today. I hope he's having a nice time off.

</comment><comment><USER14> Do international investors in a USA based startup need to be ''accredited'' acording to SEC rules even if their own country allows them to invest freely?

</comment><comment><USER38> Would the easiest way for someone that doesn't meet the wealth or multi-year income thresholds to become an accredited investor now be to take the Series 65?

</comment><comment><USER39> Great, now that all the valuable companies have done their IPO and the stock market is about to collapse, let's allow the peasants to come in and buy all our bags of crap before they become worthless.

It's all for their own protection of course. We really care about the peasants. Especially when they bail us out.

<comment><USER40> The "peasants" don't have to buy anything, dude. I know friends with all their money in bonds, metals, and Vanguard. No one's making you go by TSLA 4500 calls expiring this Friday.

<comment><USER39> They don't have to, but they will, now that we finally allow them... At this very convenient time.

<comment><USER40> Let them do so, then. May we all be free men, acting for ourselves, not slave to the whims of states.

</comment></comment></comment></comment><comment><USER41> Looking over it, it seems like it's still highly restrictive.

</comment><comment><USER42> 16% of the US qualifies. Not a very high threshhold.

</comment><comment><USER43> Hope Canada similarly updates their definition !

</comment><comment><USER44> Am i the only one who thinks we are not giving credit to Trump administration for more de-regulation specifically this one? Relaxing the regulation to be fair.

<comment><USER45> Rule 14 ^^

</comment></comment><comment><USER46> Seems like a top signal.

</comment><comment><USER47> wtf is a natural person?

<comment><USER25> A natural person is an individual human being, rather than a corporation, the estate of a deceased individual, a trust, a partnership, etc, which are all legal persons, but not natural ones.

</comment></comment><comment><USER48> Someone have the TLDR?

</comment><comment><USER49> Hilarious. I'm not sure how any of this counts as "modernizing", and none of it amounts to any substantive change. I'd compare this to rearranging the deck chairs on the Titanic, but doing that is probably more productive.

So... now people who hold a couple of niche, finance industry specific licenses - _which you can 't obtain unless you work in the finance industry_ \- can be "accredited investors." Wow, golly gee whiz, color me gobsmacked.

So finance industry insiders get more access to opportunities to build wealth, and nothing changes for regular old everyday Americans? Am I supposed to be impressed by this?

The ONLY way this would actually be worth trumpeting would be if anybody could study, sign up for, take, and (hopefully) pass the various FINRA exams mentioned, and get their license without needing to go to change jobs. But, sadly, as we see here[1]:

 _Candidates must be associated with and sponsored by a FINRA member firm or other applicable self-regulatory organization (SRO) member firm to be eligible to take FINRA representative-level qualification exams._

and here[2]:

 _In order to enroll for FINRA qualifying exams, a candidate must be sponsored by a state regulator or regulatory authority approved to sponsor candidates for FINRA qualifying exams._

Edit: there is some verbiage here[3] that claims that you can take the Series 65 exam without being associated with a member firm. IF true, I might change my opinion on this a bit. But this seems to contradict what is on the FINRA site itself.

 _Unlike many other FINRA Series exams, the Series 65 exam does not require an individual to be sponsored by a member firm. If you are not Form U4 registered or affiliated with a firm through FINRA's Web CRD system, you should use the Form U10 to request and pay for the Series 65 exam._

[1]: [https://www.finra.org/registration-exams-ce/qualification- ex...](https://www.finra.org/registration-exams-ce/qualification- exams/series82)

[2]: [https://www.finra.org/registration-exams-ce/qualification- ex...](https://www.finra.org/registration-exams-ce/qualification-exams/enroll)

[3]: [https://www.kaplanfinancial.com/resources/career- advancement...](https://www.kaplanfinancial.com/resources/career- advancement/how-to-get-your-series-65-license)

</comment><comment><USER50> So these are 'smart' people who somehow can't meet the relatively low traditional income requirements ($200k/yr) but who are now assumed to be financially sophisticated enough to take on the risk of these securities without the protection provided by normal regulatory disclosure filings. This strikes me as insanely stupid akin to the ownership society nonsense which precipitated the housing crisis.

VC follows a power law and the vast majority of these investments will fail.

<comment><USER51> > relatively low traditional income requirements ($200k/yr)

$200k/year may be "relatively low" in certain areas, but it borderline unattainable in many parts of the country.

People can be smart, and perfectly capable of understanding the risks with offerings in their own industry, without making 200k/year. Don't automatically discredit people with airquotes based on their salary alone.

There are also many people who make more than $200k/year who are, quite frankly, not "financially sophisticated enough to take on the risk".

<comment><USER52> Yeah, the $200k/year threshold excludes something like 97% of individual income earners ([https://dqydj.com/income-percentile-by-age- calculator/](https://dqydj.com/income-percentile-by-age-calculator/)). That's not relatively low, its a significant barrier to entry. Worse, a $200k income in SF or NYC (where an outsized portion of those income earners live) is a different beast when it comes to disposable income if compared to Johnson City, Tennessee.

Matt Levine has it right- just peg the total amount of investments in these sorts of vehicles to 10% of cash, stocks, and bonds, until the investor crosses the $X million dollar mark.

<comment><USER50> Yes, it is a significant barrier to entry. That is its purpose.

Upper-income households (double the national median) account for 20% (side note: yeah, we have a yawning wealth gap). Those household incomes are $207,400 in 2018. So I'm not going accept your 3% number.

[https://www.pewsocialtrends.org/2020/01/09/trends-in- income-...](https://www.pewsocialtrends.org/2020/01/09/trends-in-income-and- wealth-inequality/)

<comment><USER53> >> 97% of _individual_ income earners

> Upper-income _households_ (double the national median) account for 20% (side > note: yeah, we have a yawning wealth gap). Those _household_ incomes are > $207,400 in 2018. So I'm not going accept your 3% number.

You are comparing two different things, so your objection is invalid.

Also, as noted elsewhere, part of this change was to expand what incomes in the household count towards the accredited investor threshold. Some number of those households didn't qualify because some portion of their household income didn't.</comment></comment></comment></comment></comment>


I made a native Python module for MS Word docx - <AUTHOR> http://github.com/mikemaccana/python-docx

<comment><AUTHOR> Hi Hacker News,

I was recently wandering around StackOverflow and PyPI and wondering why the only solutions to make MS Office documents from Python seemed to be based around either COM automation, OpenOffice automation, or calling Java or .net libraries.

So I made this module, which reads and writes Microsoft Office Word 2007 docx files. These are referred to as 'WordML', 'Office Open XML' and 'Open XML' by Microsoft.

They can be opened in Microsoft Office 2007, Microsoft Mac Office 2008, OpenOffice.org 2.2, and Apple iWork 08.

The docx module has the following features:

Making documents

• Paragraphs

• Bullets

• Numbered lists

• Multiple levels of headings

• Tables

Editing documents

Thanks to lxml module, we can:

• Search and replace

• Extract plain text of document

• Add and delete items anywhere within the document

• Run xpath queries against particular locations in the document - useful for retrieving data from user-completed templates.

It's only a couple of hundred lines - lxml does most of the heavy work - <USER2> it's incredibly simple to use, check out example.py in the link.

Hope you find it useful.

Mike

<comment><USER3> Thanks Mike for providing such a useful module!

Some plans I have to add to this module (if you don't plan too already):

Add support for:

* Pass a font-size, bold, italic, bold+italic and spacing to paragraph method to modify font

* Pass a table row header to table method

* Specify table column widths

* Change text alignment for table rows/headers, etc.

* Change text style in table cells

* Ability to change background color for every other table row

* Create method to insert a page/section break

* Create a method to add an image at a specific position in document page

On one other note:

I'm not 100% positive, but thumbnail.jpg/thumbnail.wmf may result in inadvertent disclosure of sensitive data if using this to generate report documents...

<comment><AUTHOR> Awesome! I welcome contributions. Could you send me something for page & section breaks?

I'm already working on images and 100% nose coverage. I'm intending to do document properties after that.

Re: zebra striping for tables, we already have that via the inbuilt styles. But more options to control styles would be useful.

Coding style is:

* Functional

* Google style - <http://code.google.com/p/soc/wiki/PythonStyleGuide>

* Unit tests are handled with nose / coverage

</comment></comment></comment><comment><USER4> Awesome, thanks. Are you putting this in the public domain, or are you licensing it under any particular license agreement?

I couldn't find anything about a license or copyright on your project's github page.

<comment><AUTHOR> Good point. I've licensed it under MIT (originally I thought github made me pick a license, but it seems not), see the updated README.

</comment></comment><comment><USER5> Python also has a native Python module for reading and writing Excel files. It's pretty simple to use and also doesn't require any COM nastiness. <http://www.python-excel.org/>

</comment><comment><USER6> docx has been a real boon to people writing things like search engines and want to use the text inside of the files.

We've been using <http://b2xtranslator.sourceforge.net/blog/> to convert legacy binary office formats to openXML, then using XSLT to transform the XML into our preferred schema for text extraction.

</comment><comment><USER7> Thanks! I've had to deal with docx files from time to time. I'm going to try this out.

Does anyone know of a good way to read xlsx files with Python? I think I tried one library and it didn't quite work for this 20,000 row file, and I wound up using OpenOffice to convert it to csv. If not, hopefully this can be used as a starting point for developing a nice xlsx library.

<comment><USER8> I wrote the following python script to read xlsx. It's extremely basic, but works very well for me.

<http://github.com/brendano/tsvutils/blob/master/xlsx2tsv>

I've never tried it on a 20,000 row file. I suspect it would work. A really large file might need to switch to a streaming XML parser, but probably Excel itself wouldn't handle that use case too well.

</comment></comment><comment><USER9> A quick hack for if you need .doc not .docx format: generate .rtf and rename it to .doc :)

PS, .eml and .mht are actually the same format.

<comment><USER10> An even worse hack, that unfortunately has worked really well for me in the past: generate a simple HTML file (em, b, u, ul/ol, etc.), rename it to .doc, and Word will open it without appearing to notice or comment. This saved my butt once when I discovered mid-project that the Textile library I was using couldn't generate RTF... I felt more than a little bit dirty, but it worked without a hitch.

</comment></comment><comment><USER8> Great, thanks for doing this!

A while ago, I wrote a little Python script to read from xlsx Excel files. It's nice that these Microsoft Office XML files can be processed in pure Python.

<http://github.com/brendano/tsvutils/blob/master/xlsx2tsv>

</comment><comment><USER11> Just wanted to add my thanks to the list. This was one of the bigger holes in document processing and now it's been filled for the most part.

</comment><comment><USER12> Is there something similar that will support .doc and / or .ppt files that doesn't rely on com or the open office Uno bridge?

<comment><USER13> About the closest you'll get is the apache POI library. It's mostly an excel 97 lib, but it supports word to some extent.

</comment></comment><comment><USER14> Thanks for this. This will make other people's lives so much better. This is good for everyone.

</comment><comment><USER15> this is great. thanks.</comment>


The Things That Come to Those Who Wait - <AUTHOR> https://www.racked.com/2018/1/17/16897160/lines-waiting-history <comment><USER3> > The first historical description of the line only appeared in 1837, in > Thomas Carlyle's The French Revolution

I grew up in a country where probably nobody has ever seen that 1837 book, and almost everyone systematically refuses the very concept of a line.

Instead, people "optimize" their way towards their target, be it the door of a public transport bus or the physician's office.

Pretending not having seen you, they literally pass sideways, over and - <USER2> necessary - under you, if you happen to be on their way for more than a couple of seconds.

Try to affirm your rights, they'll push back with twice the physical and verbal strength. Any hope for the authority to mitigate this is an illusion, because those who are in charge of enforcing the rules are expression of that same culture, and transparently dismiss any stride towards predictability as a waste of time.

Lines? A conquest of civilization, hope for a better humanity, prohibited dream!

But you can have a very good pizza almost anytime...

<comment><USER4> You and I are probably from the same country, I'd guess.

</comment></comment><comment><USER5> Reading that article felt like being stuck in a long queue. I mean, kudos for capturing the experience so viscerally I suppose, but about a third of the way through I reached a point where continuing became absolutely intolerable. :/

</comment><comment><USER6> Nothing comes to a 50% page size cookie notification without an opt-out option.

</comment><comment><USER7> I hate lines and usually are willing to take a slightly worse serving than a long line. I appreciate if I can pay more to jump the line.

Why wait 1h if you can jump the line for 10 bucks.

<comment><USER4> Paying is a bad incentive.

Similar example: poor government services become incentives to bribe officers to "get ahead". That's why in many government offices, inefficiency or friction is actively introduced by its officers, and doesn't just come from the top down.

<comment><USER8> Governments don't have competition in any meaningful sense, so they _only_ have bad incentives.

</comment></comment></comment><comment><USER9> Reminded me of: [https://www.newyorker.com/magazine/1980/11/17/within-the- con...](https://www.newyorker.com/magazine/1980/11/17/within-the-context-of- no-context)

</comment><comment><USER10> All good things come to those who wait.</comment>


Apple-Google contact tracing tool now usable without state-sponsored app - <AUTHOR> https://www.vox.com/recode/2020/9/1/21410291/apple-google-exposure-notification-express-coronavirus-covid-contact-tracing <comment><AUTHOR> At least on the Google side, I've been frustrated because the app requires the GPS to be turned on, despite swearing up and down that it's not using the GPS data. The Google/Android help page that explains "why" you need to turn on Location services says that Android requires Location Services to be turned on for the Bluetooth part to work.

Q: Hey Android, why did you force Location Services to be on for your Exposure Notification service to work?

A: Because Android requires Location Services to be on in order for Exposure Notification to work.

I did not find their explanation very compelling.

<comment><USER2> It's not that it uses GPS, it's that Bluetooth may leak location. Location may be trivially determined from the list of nearby Bluetooth devices when compared to a database of Bluetooth devices with known locations, and so they tied Bluetooth permissions with Location permissions.</comment></comment>


US Customs isn't backing down, says seized OnePlus Buds violate Apple AirPods TM - <AUTHOR> https://www.theverge.com/2020/9/14/21436760/us-customs-statement-oneplus-buds-seized-apple-airpod-trademarks <comment><AUTHOR> Seems that this is the only logical next step if you publicize a false confiscation and don't want to look bad.

</comment><comment><USER2> Next step is an executive order to ban One+ for being Chinese.

Does Apple seriously have a trademark on the shape of the human ear?

It's doubly ironic because Apple's trademark traditionally has been a circle shape for products that definitely should not be circles (mouse, earlier earbuds, office buildings).

<comment><USER3> Apple probably wasn't involved at all. Someone just saw they could make a career out of seizing "800K" of counterfeit American products without doing any diligence.

</comment></comment><comment><USER4> Someone somewhere is looking for brownie points from the Administration... pathetic

</comment><comment><USER5> Correct me if I'm wrong, but isn't it the trademark holder that gets to decide if their trademark is being violated, not the border force?

</comment><comment><USER6> Has apple made a statement?</comment>


Show HN: Anonymously share short messages and photos with people around you - <AUTHOR>

Hello Hacker News! In the past few weeks I've been working on a side project that allows you to post anonymously a short message and a photo that is tied to your location.
Other people can see posts around them in a radius of 1 kilometer. Posts are ephemeral and disappear after one day. That's all.
It started as an exercise to try to write a geohash index and to try nodejs and Redis.
I'm not sure if/how it could be useful. Maybe it could be used as a quick way of sharing something with someone next to you, or to leave a reminder for someone at a specific location. Or it could be abused in many creative ways.
If you want to try it out, I'd be happy to get any kind of feedback.
Thank you!
Link: http://quagga.ml/ <comment><USER2> I visited the page and left a question and picture of a duck. What now?

Edit: refreshed the page; the message is still there but my duck has been ab- duck-ted.</comment>


Practical Cross Platform SIMD Math - <AUTHOR> http://www.gamedev.net/page/resources/_/technical/general-programming/practical-cross-platform-simd-math-r3068

<comment><USER2> I'm not sure if I understand why is he returning from the functions. Wouldn't it be faster if result variable was passed by pointer or reference instead?

<comment><USER3> No, pass by value is a lot faster if the values being passed can be passed in registers, which is the case with SIMD vector values and inline functions. Passing by pointer adds restrictions to what the compiler can optimize and in the worst case you actually end up pushing values to the stack just to read them back to registers in the called function.

I recently spent a good deal of time looking at assembly code emitted by compilers when doing SIMD code with C and intrinsics. On GCC and Clang pass by value and force_inline functions gave the best results (at least until link time optimization becomes more mainstream). This was even the case with 4x4 matrix structs, not just SIMD vectors.

The speed is not in getting individual functions to work fast, but to let the compiler inline and combine several function calls together and keeping live values in registers from one function to another.

Here's my SIMD math lib: <https://github.com/rikusalminen/threedee-simd>

<comment><USER2> Compiler knows best. Again. Thanks, I wasn't really aware of this. I'll have to make a habit of reading asm output from my compiler... something I haven't done in years.

Your math lib look nifty! Which license would you share it with? Also, why in particular std=gnu99?

<comment><USER3> > Your math lib look nifty! Which license would you share it with?

Thanks! zlib license.

> Also, why in particular std=gnu99?

Because I use some c99 things and using -std=c99 will disable some posix/gnu extension features. I think it was time.h and clock_gettime which I was using for benchmarking.</comment></comment></comment></comment>


Where to learn the math for data science? - <AUTHOR> Hope you all are doing great. I would love to do lower-end kaggle competitions in the coming months. In high school we have not learnt any advanced math yet. I know python well. Where would you recommend to learn the math essentials for starting to learn machine learning/data science from like basics? <comment><USER2> Don't aimlessly learn math. Even if its from a statistics or machine learning book. Choose a well regarded model and then study all math that it takes to understand and use the model well. Learn nothing outside of this. Rinse and repeat.

<comment><USER3> I'm currently in a data science traineeship and got this exact advice from my teachers.

We had to go through the following article two, three, four times and recreate it ourselves and then explain all the principles to our fellow students. This helped me a lot in understanding the math behind it.

[https://towardsdatascience.com/netflix-and-chill- building-a-...](https://towardsdatascience.com/netflix-and-chill-building-a- recommendation-system-in-excel-c69b33c914f4?gi=97d42649c468)

PS. I'm a sucker when it comes to math. When I got the infamous math questions with metaphorical elephants on weight scales I couldn't stop but wonder why the elephant was on the scale.

</comment></comment><comment><USER4> Since you know Python, this book called Think Stats would be a good start, I think. A free PDF is available here: [https://greenteapress.com/wp/think- stats-2e/](https://greenteapress.com/wp/think-stats-2e/)

</comment><comment><USER5> Not sure you need any maths for Kaggle competitions. Learn XGBoost and random forests for regression and classifications and learn how to evaluate the models and some of the tricks for coercing different types of data into them for good peformance. Then curve fit on various data to your heart's content.

It'll take ages before you need maths more complicated than arithmetic.

Taking a stats course won't help you at all. The way canned ML algorithms work has nothing whatsoever to do with data generating models which is what stats is about.

You'll start to need maths when it comes to dimensionality reduction and embedding and that'll come in the form of 95% linear algebra and 5% calculus. Still no stats though.

Wayyyy down the line if you get into the information theoretic view, or pick up the fetish of justifying everything via a Bayesian methodology then you'll need lots of stats.

</comment><comment><USER6> This course from carnegie mellon university has recorded lectures you can watch and extensive notes which will give you a crash course in the applied math needed like a linear algebra crash course, probability [http://www.datasciencecourse.org/lectures/](http://www.datasciencecourse.org/lectures/) but of course these are just scratching the surface and you can get as advanced as you want like [https://mml-book.github.io/](https://mml- book.github.io/)

</comment><comment><USER7> You need mainly probability, statistics, multivariable calculus and linear algebra. It's a lot of material to cover and it takes years. I would suggest to pick a mathematics course/book that's just above your current level (whatever that is) and start there.

That shouldn't stop you from doing kaggle competitions right now though if thats' what you like. Personally I dislike kaggle but there's no reason why you can't just grab a dataset, experiment with different algorithms and learn as you go.

</comment><comment><USER8> Google around and look for multiple lecturers's powerpoint pdf slides online for classes named things like "intro to big data", "beginning data analysis", or something similar. I find that powerpoints are actually a decent way to learn math if the exposition and explanation of reasoning is half-decent. It's good to have multiple examples to cross reference

You may have to learn a little multivariable calculus, or at the very least look at enough examples of its notation to be able to comfortably skim equations

</comment><comment><USER9> Mathematics for Machine Learning [https://www.amazon.com/Mathematics-Machine- Learning-Peter-De...](https://www.amazon.com/Mathematics-Machine-Learning- Peter-Deisenroth-ebook- dp-B083M7DBP6/dp/B083M7DBP6/ref=mt_other?_encoding=UTF8&me=&qid=)

</comment><comment><USER10> Learn about chain rule. Then learn how to multiply two matrices. Look up the definition of a vector norm. This will cover almost everything you need to know.</comment>


SpaceVim – A community-driven Vim distribution - <AUTHOR> http://spacevim.org/documentation/ <comment><USER2> Shouldn't this be "Show HN"? And has anything changed significantly since the last show HN?

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

<comment><USER3> Very confusingly there is 'space-vim' [1] and 'SpaceVim' [2]. Your link is about the former, this submission is about the latter.

[1] [https://github.com/liuchengxu/space- vim](https://github.com/liuchengxu/space-vim) [2] [https://github.com/SpaceVim/SpaceVim](https://github.com/SpaceVim/SpaceVim)

</comment></comment><comment><USER3> Somewhat tangential, but I have been pushed, due to certain laptop problems, into 'living on the terminal'. However I couldn't bring myself to become fluent in Vim or Emacs as I felt my time to return to Sublime or Atom would come again. I in fact ended up configuring Vim to behave exactly like a 'conventional' editor - therefore no Normal Mode, unless for panes that require it like NERDTree. From this experience there are 2 things I would like more people to know;

1\. Vim is way, way, way more than its modal keybinding paradigm, it has some 15,000 plugins - significantly more than any other editor I know of.

2\. Neovim has much better key chord (ie, key combination) support. The only thing it is yet to support is case sensitive combinations involving CTRL - actually that's still a pretty significant shortcoming.

So it is indeed very possible to live in the terminal as a developer. I wonder if I even need a window manager, the only 2 GUI apps I now use are Alacritty (GPU-based terminal written in Rust) and Chromium.

<comment><USER4> > case sensitive combinations involving CTRL

Historically, pressing the CTRL key would set the 6th and 7th bits of the pressed key to 0.

So CTRL+J would turn both J (1001010) and j (1101010) into Line Feed (0001010).

I suppose some modern systems may have a way to distinguish between these signals, but some systems would not be able to easily generate a different signal for ^j and ^J.

</comment></comment><comment><USER5> A question: I am an Emacs user. Is SpaceVim similar to the Spacemacs setup? I do a lot of work in the terminal, and am always interested in improving my setup.

<comment><AUTHOR> yeah. SpaceVim is something like spacemacs, but for vim and neovim.

</comment></comment><comment><USER6> Title needs change. The link is for SpaceVim's documentation.

<comment><AUTHOR> hmm, What the title should be?

</comment></comment><comment><USER7> wow the 4 core pillars is exactly the same as spacemacs. Are you the same team?

</comment><comment><USER8> just installed, and it fucked up my vim. good job</comment>


The Web Platform Is Too Low-Level - <AUTHOR> https://medium.com/@maxlynch/the-web-is-too-low-level-7a4ea4933366

<comment><USER2> Used Ionic, it's a joke just like the rest of hybrid app frameworks, imo. Just save time and go native.

Frankly, if you can't replicate the native UI elements of the target platforms you intend people to develop on as a baseline, I don't know what you're doing. It's laziness, and to blame it on the premise that developers need to create their own look and feel, well guess what, you've just dropped the experience bar below native.

Default Ionic themed apps no longer look like native apps, they look like Ionic apps.

</comment><comment><USER3> Interesting so the idea here is that developers of native apps will use high level ready made widgets/components but on the web they'll more likely try to make them from scratch.

I believe that's what Google has been trying to solve with polymer and web components.

<comment><USER2> It's funny because native developers put more time, effort, and budget into creating rich experiences than web developers do in general, and Ionic doesn't readily enable web developers to create the same caliber work.

You still end up putting in the time, effort, and budget native developers will, so what's the gain?

<comment><USER4> I think the gain that people are aiming for is "write once, run everywhere."

Especially if you're a lone developer - it's one thing to learn the intricacies of one platform (like web), but learning the ecosystems for Android, iOS (maybe you don't even own a mac to develop with), and native desktop apps... it's just too much work for one person. But if you could just write it once and have a good experience on each platform, wouldn't that be amazing? I guess that's what React Native is trying to solve, too.</comment></comment></comment>


Why Open Source Failed - <AUTHOR> https://medium.com/@johnmark/why-open-source-failed-6cae5d6a9f6 <comment><USER2> > So when I write that "open source has failed" I'm obviously not writing from > a technology perspective,

Well perhaps you could add a few words to the title so that the title _actually reflects what the article is about_.

The article is actually a critique of capitalism and intellectual properly law in the US disguised as a discussion about open source software.

At the beginning of the article:

> To say that open source contributed to the overall innovation of the world > would be a shameful understatement.

> Better would be to say that the world's computing innovations owe their > existence to the triumph of open source development

> I don't know how to calculate the total value of open source software to the > world, but I do know that if open source software suddenly went away, the > results would be catastrophic, an existential crisis for humanity.

> One could claim, without any exaggeration, that our current world runs on > open source software or that our modern world would not exist in its current > form without open source software.

Near the end of the article:

> If the proliferation of open source software cannot begin to resolve our > issues with concentration of wealth in the technology industry, and in fact > exacerbates it, then what good is it?

Sure, open source is literally responsible for the world's computer innovations, providing an incalculable value to the world _but what good is it anyways_ if it doesn't seize the means of production and cast away the chains of the bourgeoisie?

Terrible article.</comment>


Linux: A Portable Operating System (1997) [pdf] - <AUTHOR> https://www.cs.helsinki.fi/u/kutvonen/index_files/linus.pdf <comment><USER2> Turns out the most important part of the entire text is the acknowledgements section.

<comment><USER3> for the lazy:

> While the Linux project has been closely associated with me personally, > partly due to the name, I would like to make it very clear that the Linux > operating system is a huge project done co-operatively by lots of people all > over the world. Even if you discount all the user-level programs that are an > integral part of any running Linux system, just the kernel contains code > from hundreds of people from all around the world. Thanks to all of you

</comment></comment><comment><USER4> Was he so talented or has the bar for CS master thesis lowered significantly since then?

<comment><USER5> He was far above the bar. From Wikipedia:

> In 1997, Torvalds received his master's degree (Laudatur Grade) from the > Department of Computer Science at the University of Helsinki.

Also surprising to see that he didn't pursue a Ph.D., although he does have a doctor status:

> Two years later he received honorary doctor status at Stockholm University, > and in 2000, he received the same honor from his alma mater.

Anyway, I'd like to see the theses of Elon Musk and Jeff Bezos.

<comment><USER4> Cool. I'd expect him to get the Ph.d. in like 20 years after graduation, not two. That's significant.

<comment><USER6> Honorary doctor is not the same thing as a PhD.</comment></comment></comment></comment>


Bleem language: perfect speed and concurrency - <AUTHOR> https://github.com/kstrauser/bleem/blob/master/README.md

<comment><AUTHOR> I got tired of hearing friends saying that they'd rewritten their frontend in [trendy language of choice] because their backend was slow.

Bleem is a placeholder for these conversations. If replacing everything in an infinitely fast, no-resource-using language won't fix your performance issues, then maybe you need to take another look at your architecture.

Example application:

"Our API servers that make 1,000 concurrent requests to MySQL are slow. We're thinking of replacing them." "Would Bleem fix that?" "I guess not."</comment>


Dear Facebook Employees: Here's The Truth About Your Stock - <AUTHOR> http://www.businessinsider.com/dear-facebook-employees-heres-the-truth-about-your-stock-price-2012-8

<comment><USER2> What I like about this article is that it is a good example of how to think about how the stock market evaluates tech stocks.

</comment><comment><AUTHOR> tl;dr (most important):

Facebook's stock is not likely to bottom until one or more of three things happen: 1) revenue growth reaccelerates, 2) margins stop declining and start expanding, 3) the stock falls to a level that is objectively "cheap," at which point value investors will start buying it. We're a long way from that level.

Also, he is very wrong about Amazon (comparing company selling products that is not a matter of trend, but rather a matter of, for lack of better wording: life or death). But I understand he just tries to BS his engineering team by telling them "work hard like Amazon emps did and we will be fine and stock will go up", which, as you know, is not a case here.</comment>


Ask HN: Advances in technology yield deadlier weapons.  What do we do about it? - <AUTHOR> As with an attack stemming from a major vulnerability in an open source project, mass shootings give us a spotlight on the vulnerability that persists in our fragile flesh bodies in the face of advances in ballistic (and other firearm) technology.
The attack in Las Vegas was not possible with black-powder weaponry (ie, the best weaponry available at the time of the American revolution).  It was probably not even possible with an M1 Garand (the semi-auto rifle that gave US troops an advantage in WW2).
Although I think we're all allergic to the ongoing propaganda which muddies the technical specifics of different firearms - which are significant - it is true that that AR15 platform and 5.56NATO round have brought a new capacity to American civilians.
So, I'm looking for good ideas in response to the following questions:
1) Does it make sense to have the same "gun control" policies the world over?  Or is it better to have different laws in different places?
2) Does it make sense to have one set of rules for military and police, and a different set of rules for other citizens?
3) Does the evolution of firearm technology demand more restrictive laws? <comment><USER2> 1) Not now it doesn't. That would have been smart to put in the universal declaration of human rights in 1948, but no one foresaw this coming up. Not that everyone follows the UDOHR anyways.

2) Yes, absolutely. Civilians aren't subject to the same training and filtering as M&P. Nor are they subject to the same rules and oversight. Red blood cells and white blood cells both flow around our bodies, but they have radically different shapes and functions. Of course the analogy breaks down, don't be a pedant.

3) Absolutely. But the sad fact is that legislation is always at least 10 years (more like 100+) behind technology. For the most part slow government is a good thing. No civilization could survive a few generations of whiplash laws, changing from one extreme of values to another and back and forth. It would be a bit like shaking a baby.

In the end I think we need more people from STEAM fields to sacrifice their health, sanity, and well being to serve in government to fight the inevitable entropy that all systems suffer. Why? Practical knowledge and experience vs. career politicians more interested in getting re-elected than solving problems.

</comment><comment><USER3> You can generalize the situation to a graph with year on the x axis, and something like kinetic energy available to an individual on the y axis. So in ancient times, you'd have chariots, then mounted Knights, then cross bows, then black powder weapons, then automobiles, modern firearms etc. recently jumbo jets (9/11). In the current era, Elon musk is an individual with access to essentially ballistic missiles.

This analysis illustrates that lots of things can be used as weapons, and as using vehicles as weapons indicates, gun control has limited effect if some one really wants to hurt people.

Extrapolating to the future, long awaited flying cars could be another bump on the curve due to much higher velocity and kinetic energy than a terrestrial vehicle. Then there was the character in Snow Crash that had a nuclear warhead he carried around wired with a deadman switch that set it off if he died. See also techno anarchism.

</comment><comment><USER4> I would argue that gun control is a "local" problem so there is no need for uniform worldwide policy and regulation (unlike e.g. global tragedy of the commons problems like global warming)

Many countries have different rules for military/police and citizens when it comes to regulation of firearms.

Extreme thought experiment: suppose technological breakthrough makes it possible for John Random Citizen to cheaply home manufacture a nuclear bomb / weaponized smallpox etc. understatement: it may be a good idea to heavily regulate this given that some tiny but nonzero fraction of citizens are violent/angry/suicidal. I'd draw the line well before this (but I'm not from north america)

</comment><comment><USER5> I think the downsides are much bigger than a few dozen people killed a year. Yes, it's a tragedy. But gun homicide rate in the US is not terrible, and most of it happens between gangs rather than civilian shootings. Many of them will get guns from other sources anyway, and like banning drugs or alcohol, it will give criminals more sources of income.

Disclosure: I'm not American and I think someone needs to keep Trump in check.

</comment><comment><USER6> We should be looking into motive and psychological makeup, was the person on antidepressants for example? I feel all of those non religious based mass shootings were done by regularly medicated people - they were normal for years and all of a sudden snapped... more needs to be done testing long term effects of medications designed to change peoples brains...

</comment><comment><AUTHOR> This might already be obvious, but to my way of thinking, the answers are:

1) No

2) No

3) In the case of the USA, no.

I think gun restrictions work very well in some places, but I'm terrified of having a ban on guns inside the belly of the imperial hegemon of the world.

<comment><USER7> Setting aside guns for a moment, the Las Vegas attack could have been just as easily, and far more cheaply, accomplished with high explosives or a nerve agent; both of which can be simply manufactured with common, well-published knowledge and little more than a high school glassware set.

The assailant yesterday decided to save himself a few hours under the fume hood, and just buy a fully automatic firearm (probably on credit, because he's going to off himself anyway) after passing a background check and getting his tax stamp.

<comment><USER4> Similarly, there's a disturbing trend in recent years where people figured out you can just drive a truck/van through a crowd.

One option could be to ban/heavily regulate use of trucks/vans. Another option could be defensive architecture (build bollards everywhere). Another option could be to fund extensive surveillance efforts. Yet another option could be to treat it as a mental health issue (it often isn't "terrorism"). Another option could be to decide that the cost of any of these options exceeds the benefits, and it is best to leave cities vulnerable to this kind of thing.

<comment><USER7> Not to mention, the technology to manufacture fully automatic weapons (especially if the intention is to fire into a crowd indiscriminately) is straightforward.

Anyone with a machine shop and standard industrial materials can build an open bolt machine gun. There are about seven or eight parts involved if you want to be able to stop firing in the middle of a burst, about five parts if you don't care.

If the parts are crude enough, and the aim doesn't matter that much, you don't even need modern manufactured ammunition.

<comment><USER5> Machine guns are hard to make. They may be theoretically easy, like building something like Facebook. But something portable that doesn't jam or fall apart is much harder.

<comment><USER8> Hard to do isn't a deterrent, it's a market. Making it criminal simply creates a criminal market.

<comment><USER5> It's a cost. If it costs too much, someone might go for another option.</comment></comment></comment></comment></comment></comment></comment>


It's all about the team.  - <AUTHOR> http://lsvp.wordpress.com/2007/03/05/its-all-about-the-team/ <comment><USER2> A nice article detailing a truth that may apply to all things team-oriented. Think March Madness. You can have all the talent in the world, but you have to have a good team to be a champion. Go Heels!</comment>


Ever been micromanaged? 6 symptoms micromanagers share - <AUTHOR> https://blog.weekdone.com/lead-or-manage-6-symptoms-micromanager/

<comment><AUTHOR> Turns out 79% of employees have been micromanaged at one point or another, 91% of managers are unaware of employees changing their job due to their micromanagement behaviors. Here are 6 most common symptoms you might be dealing with micromanagement. Any additional symptoms to add to the list?</comment>


Memory management in C programs (2014) - <AUTHOR> http://nethack4.org/blog/memory.html <comment><USER2> I'm going to claim that the problem being solved here fundamentally comes from attempting to shoehorn early exit into an ancient codebase that wasn't designed for it, via longjmp. Exceptions can be a handy language feature, but plenty of modern code written in languages like C++ (whose exception support is often eschewed) and Go gets by without them. It just has to be written so that most functions manually propagate error codes they receive, potentially after manually unwinding some core state. C code can be written that way too: the manual cleanup that must be written then extends to mundane buffer freeing, but that's a tractable and local requirement; no need for complicated global reasoning around static buffers and custom allocation schemes.

<comment><USER3> > _plenty of modern code written in languages like C++ (whose exception > support is often eschewed) and Go gets by without [exceptions]._

I would not consider C++ code that eschews exceptions "modern". To eschew exceptions almost always entails giving up RAII, and if you give up RAII you've done yourself a huge disservice: you're now stuck manually managing memory and resources, and suffering all the bugs that come with that. While RAII does not outright prevent these bugs (which is one of the reasons I'm a huge fan of Rust), coding along its principles greatly reduces the risk that you will run into problems.

If you're wondering: giving up exceptions means a constructor has no way to signal failure, as the result of a ctor in C++ is always either an exception, or a constructed object. Most "no exceptions" C++ code I've seen opts to construct what I call "zombie objects"; internally, the object tracks that an error has occurred, and all uses of the real object must be first checked against that internal error flag to ensure the object isn't a zombie (or if it is, then error). The object is effectively a null pointer, and has all the trouble that entails.

(I also won't pretend that exceptions aren't without problems; in particular, the argument against them because you can't tell, at a particular point in a function's code, if an exception can occur, or where it would be caught, is completely valid, but no different in many popular languages, such as Python, C#, and in some ways, Java. However, I think the advantages of RAII — and exceptions — outweigh their disadvantages.)

> _It just has to be written so that most functions manually propagate error > codes they receive_

When I've had to write C, I've found this to be exceptionally tedious to do correctly, and all too easy to ignore.

<comment><USER4> I've not seen a large production C++ code base that did anything with exceptions other than to catch them, record some debug information and restart.

This is especially true when third party code is involved. C++ is hard enough to get right without exceptions; dealing with failure in bodies of code that you didn't write and maybe don't have control over (or even source code of) is death on wheels.

If that means the code I'm working on isn't modern . . . I think that's fine. But the first volume (of three?) of Herb Sutter's _Exceptional C++_ should be enough to convince anyone that dealing with exceptions "correctly" is time better spent eschewing exceptions and restructuring your code so you can do _worthwhile_ hard things.

<comment><USER3> > _C++ is hard enough to get right without exceptions_

In what manner? If you use exceptions, you _must_ (IMO) use RAII, or yes, it will be painful. Every example of "painful C++" I've seen involved someone ignoring that, and that is fighting the language. I understand that's a bit of a strawman argument, but you didn't elaborate enough in your post to debate it.

If you are using RAII, exceptions shouldn't be terribly hard to "get right"; an exception propagating up the stack will free resources as it goes. (This is the same behavior, again, as numerous other languages; except in C++, I have the benefit of RAII, in others, I generally do not.)

> _dealing with failure in bodies of code that you didn 't write and maybe > don't have control over (or even source code of) is death on wheels._

It's peculiar that I only ever hear this argument against C++, when Python, C#, and to an extent Java¹ work in the same manner. Were you writing a C++ webserver, for example, I expect that you would do exactly what my current job's Python webserver does: if an uncaught exception makes it to the main request handler, it is caught in a catch-all, duly logged, and a 500 served in response. This is appropriate both in Python and C++ IMO. (Whereas in the hypothetical C++ side, I gain the benefits of static typing and RAII that I can never have in Python.)

In my day-to-day Python, we quite often learn about uncaught exceptions — from third-party code that I didn't write and maybe don't have control over — in production; sometimes, we will add a handler for that particular exception where appropriate (it was a bug) or fix the underlying symptom (the exception indicates a larger problem, and allowing it to propagate to a good catch-all point was appropriate, as was 500'ing the request).

But again, "death on wheels" is not really something I can provide worthwhile argument against. Perhaps where third-party code has caused pain (at least, for me) is when a very low level (say, socket error) propagates through the stack; there might not be a good way to catch these beyond "catch everything", but again, that's not unique to C++. The biggest problem I've had with these is that they lack context: _what_ caused this socket error? Or, if some library catches & re-throws its own exception class, too often do they discard the inner error, and I lack the root cause (a different lack of context). But you see this in Python as well. Error codes are perhaps the worst, as they will quite often force you to lose context; do you expose error codes for all of your inner error conditions? (And theirs, transitively?). (I've never seen a non-exception C++ or a C codebase use anything aside from error codes as a substitute.)

<comment><USER5> >> C++ is hard enough to get right without exceptions > In what manner?

I guess he's referring to noexcept/basic/strong exception guarantees. Yes, writing code with strong guarantees is hard, but what makes it hard is that you have to write your code "transactionally", i.e., either 1) prepare changes and "commit" them in one go, or 2) roll back changes if an exception occurs.

But writing code with "strong guarantee" is just as hard, if not harder, with error codes.

<comment><USER6> Its not harder. You know exactly where that function can return, with exceptions its very hard to know what might throw in practice.

<comment><USER5> With exceptions you can use something like scoped exit ([http://www.boost.org/doc/libs/1_61_0/libs/scope_exit/doc/htm...](http://www.boost.org/doc/libs/1_61_0/libs/scope_exit/doc/html/index.html)) for automatic rollback and neat cleanup even in multilevel "transactions". With error codes, nothing happens automatically, hence it's easy to mess up cleanup/rollback.

Yes, you can still use RAII for rollback/cleanup in combination with error codes, but then you get the worst of both worlds: the (minor) complication of writing RAII classes AND code cluttered with manual error-checking.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Hmm, for C programs I use [https://talloc.samba.org/talloc/doc/html/index.html](https://talloc.samba.org/talloc/doc/html/index.html) or the more cut-down ccan/tal [http://ccodearchive.net/info/tal.html](http://ccodearchive.net/info/tal.html)

There's sometimes a great insight available in viewing your allocation hierarchy on a running program, too.

</comment><comment><USER8> Happened to go look up the Nethack.org page, and hey, the author just "ascended" to the DevTeam earlier this month:

[http://www.nethack.org/#News](http://www.nethack.org/#News)

 _" ""

The DevTeam would like to welcome its latest members. Both of these folks should be familiar to the members of the NetHack community:

Alex Smith, who created the AceHack and NetHack 4 variants. Alex is an expert on the inner workings of the game and the ways in which they can be exploited.

Patric Mueller, who is probably best known as the creator of the UnNetHack variant. Patric also created NetHack-De (German translation of NetHack) and has considerable involvement in the Junethack tournament. Before contracting the dreaded coding bug, Patric was a long time player, having started out on NetHack 3.0 on the Amiga back in the late 80s.

Alex has indicated that, at least initially, he'd be concentrating on improved interface, improved internals, and new features in areas that don't affect the game's gameplay, drawing on some of the features introduced in AceHack and NetHack 4.

Patric's initial focus will be to identify and incorporate changes from a variety of variants into NetHack, in order to expand the gameplay while keeping NetHack's spirit and appeal intact.

Please join us in welcoming Patric and Alex to the DevTeam as we start plans for the next major release.

For the DevTeam, Mike Stephenson

"""_

</comment><comment><USER9> In my opinion, writing code that consists of malloc/free pairs is inviting all the problems RAII and garbage collectors were designed to solve and which rust can now statically check for correctness. So that's basically it: at this point, I don't use the heap to manage memory in C, because if I did I'd instead use either rust or, more likely, a garbage collected language. The fact is, despite going out of their way to use the stack as much as possible in this article (including copying into the stack), its sort of a wonder they didn't realise a second, manually managed stack would be easy to manage _and_ be orthogonal to the program stack. Yes, it has a top, but so does the program stack, and so does the memory backing the heap (yes, yes, pages, et cetera). It doesn't get you all the way there, but for many small programs, which might otherwise do a lot of mallocing and freeing as it dutifully initializes and destroys objects, you can get away with just _one_ call to malloc, and _never_ pop the second stack. Allocate a few stacks in your stack, throw them in a free list, and now you're cooking with gas

<comment><USER10> Yes because pretending it does not exist and not understanding how things worked prior to rust is totally realistic.

<comment><USER11> For all the good things Rust brings, one should not forget Rust isn't the first language having RAII, regions or being memory safe for systems programming by default.

</comment></comment></comment><comment><USER12> With C, at least for me, it all starts with memory management and data. Specific use of it dictates what I'm going to do (mostly image manipulation and processing). I tend to allocate one or more big malloc buffers and manage them with TLSF. I've also looked into halloc for hierarchical allocations.

</comment><comment><USER13> if you remember NASAs rules for programming, and MISRAs rules, then dynamic allocation is out of the question. Certainly for most all embedded devices I've worked on all significant memory is statically allocated, and the rest are stack variables. Ideally with proofs of maximum stack depth.

<comment><USER14> This page is about an old game, though.

</comment></comment><comment><USER15>
        case OPTTYPE_KEYMAP:
            str = malloc(1 + sizeof "submenu");
            strcpy(str, "submenu");
            return str;

There isn't a good reason for this not to be

        return strdup("submenu");

is there?

<comment><USER16> malloc+strcpy is standard C, strdup is not.

<comment><USER3> While I agree, strdup is POSIX. In the exceedingly rare event that you're on a system without it, it's simple enough to roll your own. (And if this occurred more than a couple of times, I'd roll my own anyways to keep the code obvious.)

<comment><USER17> In the exceedingly rare event that you need to target Windows?

<comment><USER3> Honestly, when I wrote the post, I thought I recalled that Windows _had_ strdup (Windows does include some limited POSIX functionality, IIRC; e.g., "select" definitely exists, and is also a POSIX function, so I figured surely strdup was there.) MSDN seems to indicate that Windows does in fact have strdup — and that it's "deprecated" in favor of "_strdup", which appears to do exactly the same thing as strdup… what on earth is going on here?

</comment></comment></comment></comment></comment><comment><USER18> > In C++, the use of RAII means that exceptions can be made to free any > dynamically allocated objects whose owners went out of scope as a result of > the exception. In C, we don't easily have that option available to us, and > those objects are just going to stay allocated.

In GCC and Clang, there is the "cleanup" attribute which runs a user-supplied function once a variable goes out of scope, so you can have scope-based destructors:

        static void do_cleanup(char **str) {
            free(*str);
        }

        void f(void) {
            char *s __attribute__((__cleanup__(do_cleanup))) = malloc(20);
            // s gets freed once the function exits
        }

<comment><USER11> Which is inherently not portable across other C compilers.

</comment></comment><comment><USER19> This is a very interesting intro to some ways that a C program can manage memory.

</comment><comment><USER20> <offtopic>As someone obsessed with writing C code, something just clicked. I think I understand better why there are so many JavaScript programmers, so many tools and frameworks written in and around JS every day.

For me, C is the gateway to the computer. It's ubiquitous. It's deceptively simple. I can literally write anything I want in C. It's an exciting thing to have an open main.c file sitting in front of me.

That must be how JS developers feel about the browser. The browser is a natural way to start learning programming for someone new to it these days. When I was growing up, we didn't really have JS and the web was brand new. I had to learn from QBasic's "Help" menu!

I bet there's an age correlation, too. I bet over a certain age, it's way more C programmers, and under it is way more JS people. (And above us is probably FORTRAN and above them is probably COBOL.)</div>

<comment><USER21> I agree completely about C being the gateway to the computer. It really is the only way to go if you want to learn real programming. That doesn't mean I'm discounting JavaScript developers, but I like C better and it's more fun.

<comment><USER22> Slightly off topic: The way I look at it, C and C++ are the bedrock of all programming languages, because the popular compliers (llvm/clang, gcc and VisualStudio) are written in C and C++.

JavaScript, for example requires a browser to compile, which requires gcc or clang to compile. Python, Rust, etc all depend on programs written in C and C++.

Go is one recent exception of a popular language whose main implementation is completely self hosted. Though, Go doesn't host other popular languages.

<comment><USER23> I hate that way of looking at it because I think it's totally wrong.

C (this view is usually presented as only about c) isn't fundamental or bedrock in any way. Most of our current stacks just happen to be written in it.

The original Mac OS for instance was written in Pascal and C. The most popular open source compilers are written in c++. Most browsers are written in c++ not in c.

And there's no reason these days you couldn't rewrite llvm (a set of compiler libraries and compilers mostly written in c++, not that rust compiler uses llvm for code generation but the frontend is in rust) in haskell or java or javascript(they'd be slower but they would work). Haskell has useful features for writing compilers and a lot of language analysis libraries already. If you re-wrote in in rust it'd be just as fast.

Hell this guy ([https://github.com/jameysharp/corrode](https://github.com/jameysharp/corrode)) wrote a rust-c source-to-source compiler in literate haskell. Also in a few years servo will be a full browser in rust and Firefox is already adding components written in rust.

Other then os interface & c binary api linking there is nothing special about c or c++.

<comment><USER22> > Most of our current stacks just happen to be written in it.

Sure, there's nothing special about the languages themselves, but _currently_ C and C++ are the foundation for (almost) all other languages. In theory you could rewrite llvm (or use a different complier), but I don't see that happening any time soon. That's why I call it bedrock, because it would be very hard to change.

(Though, I do wonder when llvm will stop depending on Python 2 :)

</comment></comment></comment></comment></comment><comment><USER24> > Sprintf(...)

Seriously? Why would anyone use sprintf() in 2013 without knowing the size of all possible arguments.

<comment><USER25> The article does touch on this...</comment></comment>


StackOverflow – a missed opportunity - <AUTHOR> http://vimvq1987.com/2016/05/stackoverflow-missed-opportunity/ <comment><USER2> I wouldn't call it missed opportunity, they just decided they wanted to be the page you go to when you search on Google rather than the place you go to discuss and debate, and they succeed wildly at that. But yes, it's a shame that community wikis and information "compendium" type of threads had to be sacrificed. Sometimes I wonder if they wouldn't be better off creating a spin off site just for debates and open ended threads reusing the existing SO community, but then they'd argue there's reddit for that, even though reddit isn't quite the same.

</comment><comment><USER3> How could StackOverflow work as effectively for such a broad set of topics with a small community?

I suppose I don't understand the point of the article as written.

</comment><comment><USER4> Might want to change the "Expert-sexchange" (sic) typo :)

<comment><USER5> It's kind of an in-joke/meme for some people to write it like that.</comment></comment>