Ask HN: Stripe or Braintree? - <AUTHOR> Any stance on choosing which in your SaaS / e-commerce? <comment><USER2> You can search HN and find this question many times.

My 2 cents, I don't trust any company owned by Paypal as Paypal has a very strange, aggressive and non-transparent and inflexible process to holding funds from businesses, charities etc (even after providing all the extra "evidence" they ask for).

Stripe has a lot of advantages, API being a huge one. I have heard of a few people that complain about delays in responses from them, but at least for me I have never had that. In fairness too, 99% of the time the answers I have needed are in their documentation.

If I were you, no matter who you choose to integrate, I'd encapsulate it behind your own payment "service" so that even if you have to switch or you need to add more then one (highly recommended), then you can. Some will argue this is overkill, but I have done a lot of payment integrations, with specific banks, First Data and Stripe, Paypal etc. Having it encapsulated means a little more design but a lot less breakage and lets you minimize risk if a vendor decides to shut you down or freeze funds etc.

IMO if you are accepting payments you should already have encapsulated your payment vendor, as a real risk to business continuity exists if they decide to freeze your ability to charge or like Paypal freeze funds during charge back windows etc.

<comment><USER3> Dumb question, wouldn't rolling a wrapper over existing payment service also require me to store credit cards myself somewhere so I can easily switch integration later? If so, isn't that risky.

<comment><USER4> gentle plug - spreedly is a service that handles this for you. one of the guys in our coworking space uses this for his service, and it allows his customers to be able to swap processors relatively easily, as spreedly acts as a middle- man secure vault to hold that info away from any one particular service.

there may be other services that do something similar, but if you're concerned about switching services, and don't want to have all your customers reinput billing info, spreedly (or similar) would probably be worth investigating.

<comment><USER5> So you are spending a few $100 to a few $1000 a month in case you need to switch payment gateways down the road? I am not getting the business model.

<comment><USER4> Or... you need to support multiple, and they might change?

They support something like 90+ gateways around the world. Not everyone will necessarily need that flexibility.

But on the topic of switching....

How much is it worth to you to be able to switch without losing any recurring revenue? If you're OK with a potentially large portion of your recurring billing going away because you want or need to switch gateways, DIY is fine.

Again, not a direct user (though I've tested their API for a project), but I have colleagues using it, and for one in particular, the value it brings both in breadth of processors and potential for switching is extremely valuable to him (and his clients).

<comment><USER5> Ya this is tricky.

You can switch providers in a over time fashion by sending all new people to a new provider, and maybe sending out an "update your details" to existing people. If any existing users take action, move them over. If not keep billing on the old platform.

How often do you honestly need to switch gateways though? Most companies do it 0-1 times in the first 10 years of business I would expect.

</comment></comment></comment></comment></comment></comment><comment><USER6> I currently work at a medium sized startup which processes ~100 million dollars / year. We offer both Stripe and PayPal.

The vast majority of our users prefer PayPal (80%+). For one particular product we had to roll out using Stripe only, the number one customer service request we had was to provide PayPal as an option. Subscription numbers rose by over 50% overnight when including it as a choice (literally tens of thousands of people signed up after the change).

Internationally, PayPal seems like the de facto choice for making online purchases. In addition, outside of the Bay Area tech bubble, I believe people in the states are simply more comfortable with using PayPal over Stripe.

While PayPal gets a lot of hate, I'd think long and hard before deciding not to offer it as a payment processor. It's possible that you're leaving a significant amount of money on the table.

<comment><USER7> Interesting observations, thanks. We've been wondering about a similar thing for a small business we run that uses Stripe and sometimes gets requests from potential customers about PayPal.

My biggest concern with the latter is that if you want a vault+token system to avoid the serious PCI DSS hassles, PayPal seems to keep changing its mind about what the different options are: every time I've looked for quite a few years now, it seems like there are always several different things that each do (a different) 50-75% of what we're looking for, without any way to get the degree of control you have with some of the other services.

It's not like we have weird, exotic requirements, but we do want the flexibility to do things like moving a customer from one plan to another if they upgrade/downgrade, or reducing their payments temporarily or permanently as a result of a promotional offer, without them having to effectively sign up again with the payment service every time. Do you have any related issues with your startup, and if so, would you mind saying a bit about how you handled them with the different payment services you use?

<comment><USER8> I think the best thing to do with PayPal if you're doing an ongoing subscription with different plan levels or addons, is to use Pre-Approved Payments. This basically allows you to get a PayPal token which you can use like a Stripe token -- that is, you can tell PayPal "here's this token, I need to charge it $4.99" and they will do so anytime you ask.

As you might expect, they watch companies using this type of API very closely so obviously don't use abuse it. But we've been using it from around a year now with Roll20 an d have had great success with it. It allows our customers to link their PayPal account to their Roll20 account one time, and then buy subscriptions or digital one-off content without needing to log into PayPal again or anything like that, just as if they had a stored credit card on file with our Stripe integration.

The benefit from the consumer side is that you can log into your PayPal account at any time, and see exactly when and how much you've been charged over the life of the relationship, plus end the relationship on the PayPal side with one click. So it's really a win-win I think.

Note that we also do offer using a regular PayPal checkout flow for one-off content if you're not a subscriber, but as soon as someone wants to get on a subscription plan we have them do the pre-approved payments agreement with us.

</comment></comment></comment><comment><USER9> At face value Stripe's API is about a billion times better (at least it was a year ago when I looked into using both).

I ultimately went with Stripe because I couldn't stand Braintree's API. So even with getting $50,000 at 0% revenue sharing and having PayPal support I still went with Stripe.

My condition was a bit different than yours tho. Most of my market had credit cards and it was an expensive item ($200). Part of PayPal's value is it's great for impulse purchases, so for an e-commerce site I recommend you integrate with them just because it will provide you more revenue in the end.

<comment><USER10> Totally agree with this. Braintree will save you a little money but their documentation is horrible; some of the worst I've ever seen. Their email tech support can be responsive and somewhat good but I feel like I have to email them about every little thing cause I can't find the answer in their disconnected documentation.

<comment><USER9> Also Braintree's registration process was crazy when it came time to move past their sandbox and accept real payments.

They wanted so much personal information including my full social security # (not just the last 4), copy of my driver's license and a copy of a recent utility bill.

Then on top of that I got questioned because I don't have any credit (I purposely made a life choice not to use credit cards), so they demanded 3 months of my most recent bank statements.

It took days of this, combined with struggling with their documentation until I just gave up and went with Stripe. Never looked back since.

Stripe's registration process was painless and automated. They also requested the bare minimum to accept payments directly to my bank account. It was a flawless experience.

<comment><USER11> _Then on top of that I got questioned because I don 't have any credit (I purposely made a life choice not to use credit cards), so they demanded 3 months of my most recent bank statements._

That's not Braintree's fault. In fact, that's them being sensible. The problem is that having no credit records makes you harder to tell apart from a fraudulent user.

<comment><USER9> Yeah but Stripe just asked me for my bank account number and last 4 digits of my social.

There was no background check and having to send over copies of various bills, statements, license, etc..

I felt like Stripe requested the least amount of info to legally accept payments where as Braintree requested a million things to build up some type of profile that they'll benefit from later.

You know, it's like the guy who sends you to a form where you need to fill out 4 pages of crap when in reality all he needs is your name to perform the service you're requesting.

<comment><USER12> Ultimately they're both going to want the same information. If you had started processing more than, say, $10K per day, Stripe would freeze your account and demand the same information. The difference being that Braintree wanted that information upfront and without the stress of frozen funds at risk.

<comment><USER9> I can't speak from experience but I doubt Stripe would just freeze everything and demand my full social security number instead of the last 4 they requested.

If they ask for bank statements and other pieces of info, that's fine. The user experience is just better with Stripe because they know 99.999999% of people won't be doing 10k+/day.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> The only thing I will add about braintree vs stripe is that they are both aggregators that aggressively underwrite using algorithms. This means they are taking the risks upfront without full due diligence and then when any unexpected activity occurs (high ticket or high volume), your funds can be potentially held for a long time.

Other credit card processing companies may not be able to get you signed up in 5 minutes, but they follow a more traditional process of validating your business and documentation that gives you a more robust foundation for running transactions without problems.

Both of the vendors above however have extremely user friendly documentation and platforms and fast onboarding times. I would recommend them for startups.

Disclosure, I work for Fattmerchant, a fintech startup / payment processor.

</comment><comment><USER14> Need more information.

What is your price point?

Do you need to be able to manually bill? (i.e. for Enterprise and contract managed sales rather than self-serve... the difference being: invoicing, purchase orders)

Is this all subscription stuff, or are you doing one-off?

Does your market care about PayPal or is it all credit card?

You could probably boil it down to: If you care about PayPal then go Braintree, otherwise go Stripe.

But it's not as easy as that, something one can only learn through experience is which gateway will bill more transactions for exactly the same users and subscriptions? And yes, there will be a difference as banks treat different requestors differently, having different fraud profiles, etc.

It's so incredibly complex a question, that it needs vastly more information to answer.

But if you're early days, and cannot answer the questions fully, then just decide whether you think you care about PayPal and if not go Stripe to simplify everything.

Oh, and whatever you do... abstract away the payments and subscription stuff. Everyone changes their payments provider at some point, just put it all in one neat place so you can reduce the footprint of it for the time being.

</comment><comment><USER15> Be sure to be aware of country support.

HN is very US centric, but if you have plans for wide EU coverage for instance they can both pose challenges. When I looked recently Stripe was moving at a far more aggressive pace to comprehensive coverage in the region.

Neither have very good Asian/South American coverage.

However, with Braintree's Paypal integration it makes the above point moot (to a certain extent anyway).

</comment><comment><USER16> I've used Braintree for about a year in a mid-sized ecommerce situation. Not a single complaint to be had. I find the API very easy to work with, and the support to be very responsive. They have a nice drop-in payment form with built-in support for PayPal.

On the surface level, Stripe seems to offer more in the way of open source and integrations (POS, Analytics, etc..[https://stripe.com/docs/integrations](https://stripe.com/docs/integrations))

<comment><USER17> How are Stripe integrations surface?

</comment></comment><comment><USER18> I tried both, starting with Braintree. Even signing the contract was an issue with Braintree. I eventually went with Stripe, immediately when they launched their beta in France. The onboarding process was straightforward. The API, the documentation and the dashboard are great. I would choose Stripe again without any hesitation.

</comment><comment><USER19> Isn't Braintree owned by PayPal now?

I personally wouldn't trust PayPal for anything more than running a kids lemonade stand - there are far too many horror stories.

<comment><USER16> As a business, we've used PayPal since it's inception and Braintree as of last year. Both have been amazing experiences for us (Except for PayPal.com usabliity....ugh). Braintree, in particular, doesn't _feel_ like a PayPal company. Good API documentation, support and website usability.

We've never experienced any of the pains that I've read about PayPal. But, perhaps, it's due to our long-standing relationship.

<comment><USER17> I interpreted your last sentence as: "We've never had any problems with the Don, but that's because we've known him longer. Maybe you should make an effort to show him a little throat and he'll be nice to you."

</comment></comment></comment><comment><USER20> In Hong Kong Braintree made it so incredibly difficult to get an account started that we ended up abandoning it. When Stripe finally opened up their HK beta I tried again and the process to get approved took all of 3 minutes.

</comment><comment><USER21> Also for AU startups, consider Pin: [https://pin.net.au/](https://pin.net.au/)

No affiliation.

<comment><USER22> We use pin.net.au for [https://meanpath.com](https://meanpath.com) as the hosted payment pages they offer allow us to capture payment without needing to do any advanced programming. Their fraud protection is impressive and blocks 90% of the payment attempts we get from people dipping stolen cards.

For [https://www.betterteam.com](https://www.betterteam.com) we chose Stripe as our developers are more familiar with the API. Braintree do have some features Stripe does not but the documentation of their API is not as straightforward as Stripe.

</comment></comment><comment><USER23> Stripe's documentation and API design are both the gold standards in my mind. Braintree is good as well, but they fall just a little short of Stripe in almost all categories.

The most notable shortcoming for me has been Braintree's testing/sandbox environment. They require different dollar values in order to trigger certain payment processor errors, and a payment won't fail in their sandbox environment if you use a bogus nonce. This behavior alone caused me to mistakenly ship a placeholder nonce to production, and it took us a while to figure out what was going wrong in production since all purchases worked perfectly in the sandbox.

tl;dr Braintree has burned me, and Stripe has not.

</comment><comment><USER24> I just started using stripe and could not imagine an easier payment platform. I've used paypal and amazon in the past, and this was an eye-opening experience from ease of implementation alone. Customer support people are quick and knowledgable.

but - I have never used Braintree :/

</comment><comment><USER25> The biggest issue with Stripe is that it does not handle 3D-secure requests [1] which protects you against various frauds. Hopefully, they are starting to implement it for UE, US and also there are many FinTech SaaSes whose uses machine learning to help you improve protection.

[1] [https://support.stripe.com/questions/does-stripe- support-3d-...](https://support.stripe.com/questions/does-stripe- support-3d-secure-verified-by-visa-mastercard-securecode)

<comment><USER26> Hey there, I work at Stripe. We're working to roll out 3D Secure, and it's in private beta right now for European, U.S., Canadian and Australian accounts. If you're interested, send me an email at firstname.lastname@example.com!

</comment></comment><comment><USER27> The thing to realize here is that most of these payment processors have the same functionality. The key difference most of the time is the Documentation/Spec and the support provided by the processor.

I have been working on a Braintree solution for my place of employment and going from Authorize.net/First Data to Braintree was a pleasure! All support queries I've made to them have been answered in couple of hours. This to me makes the biggest difference.

</comment><comment><USER28> I wrote a comparison for Australian companies recently:

[https://medium.com/@grmcameron/stripe-vs-braintree-for- your-...](https://medium.com/@grmcameron/stripe-vs-braintree-for-your- australian-business-9795544b1795#.6p2hqoty2)

1\. Feature Related Main Takeaways:

Stripe vs Braintree feature comparison: Braintree allows payments through Paypal (This can increase conversion if you believe your customer base feels more comfortable when using Paypal, a name they will likely recognize, as their card details are not revealed.) Stripe accepts American Express while Braintree does not Braintree allows you to bring your own merchant account The stripe ecosystem is (arguably) more developed (i.e. Atlas)

2\. Cost Related Takeaways:

If you are going to be bringing in under $200k revenue, then Braintree will likely be the better option in terms of cost considering their first $50k fee- less revenue. However, if you are to be earning more than $200k, then Stripe will likely be the better option in terms of cost considering their lower % fee on transactions. Additionally, the number should be re-calculated based on your international/domestic split, your estimated no. of charge backs and your average transaction size.

<comment><USER29> Braintree does process American Express:

[https://www.braintreepayments.com/en-au/payment- methods/acce...](https://www.braintreepayments.com/en-au/payment- methods/accept-credit-cards)

</comment></comment><comment><USER30> There's more to the payment world than Stripe vs Braintree :) Actually, there's more to payments than cards! In many countries, local alternative payment methods account for more than 50% of e-commerce transactions. Do Stripe/Braintree support them? No.

Even more, you'll most likely have to integrate with each payment method's specific API/workflow!

(shameless plug...) I'm co-founder of Switch Payments ([https://switchpayments.com](https://switchpayments.com)) and we believe:

1) You're probably overpaying for credit card processing ([https://medium.com/switch-blog/youre-probably-overpaying- for...](https://medium.com/switch-blog/youre-probably-overpaying-for-credit- card-processing-63072f87ae65#.ldsn1o7fb))

2) Integrating with our API is the best way to remove the pain of supporting current and future payment methods! With one single integration you'll be able to support not only cards, but also dozens of Alternative Payment Methods from countries all over the world.

</comment><comment><USER31> I don't own a SaaS or eCommerce company, but I would be wary of a company owned by PayPal. It might be that the increased availability and PayPal integration is worth the risk, but it's something I would weigh pretty heavily against Braintree.

</comment><comment><USER32> For those selling to the EU from the UK - what subscription payment/accounts package combination can you recommend for pain free handling of VATMOSS type complexity?

<comment><USER33> All I know is from [https://rachelandrew.co.uk/archives/2014/11/25/how-small- com...](https://rachelandrew.co.uk/archives/2014/11/25/how-small-companies- and-freelancers-can-deal-with-the-vatmoss-eu-vat-changes/):

[http://rachelandrew.github.io/eu-vat/third- parties.html](http://rachelandrew.github.io/eu-vat/third-parties.html) [https://www.taxamo.com/](https://www.taxamo.com/) [https://quaderno.io/](https://quaderno.io/)

<comment><USER32> Thanks. Have you implemented any of these yourself?

<comment><USER33> No, I've not had need to (yet). Services FTW!

</comment></comment></comment></comment><comment><USER34> Sorry for going off topic, beginner here. Does anyone know of a solution to receive payments in LATAM / Central America?

And could someone link a few resources on how to encapsulate the processor?

The ones that I've searched for don't support this side of the world. Even with PayPal I haven't been able to figure out how to withdraw - or even to make online purchases. I'm probably doing something wrong but I'm stumped on all accounts.

</comment><comment><USER35> I use both. Braintree for SaaS income (monthly, one-off, client contracts), and Stripe for marketplace payments (Stripe Connect - event ticket sale service fees). It works well, and helps me reconcile the income easier into separate clearing accounts that I set up with Xero. I was originally enticed to Braintree because of the first free $50,000 of processing. I have been very happy with both.

</comment><comment><USER36> Besides Stripe and Braintree, I would like to recommend FastSpring. Accepts credits cards, Paypal, Amazon and others. Supports recurring payments (perfect for SaaS) and single payments for products. Has great support, and the fees are very low. I have been using them for more than 2 years, and have had no issues.

</comment><comment><USER37> Also consider what complimentary services you may need: Automated dunning, receipts / billing history management, sales tax calculations, subscription analytics, accounting integration, etc. Personally I found that the ecosystem around Stripe is better, and there's many great options for all of the above.

</comment><comment><USER38> i have used both APIs. i would say both get the shit done. but i liked stripe more. they have better admin interface. plus some what good documentation than Braintree.

</comment><comment><USER39> I personally would recommend Paymentwall, as it is a more international and complete solution.

I have tried multiple payment processors, but no one has such a wide coverage. In addition to card processing, Paymentwall allows you to accept payments made with bank transfers, prepaid cards, mobile payments, and different ewallets.

I never had any issues with expanding to new markets, and am currently processing payments from the United States, Europe, Latin America, Asia, and Middle East.

The API integration was straightforward and simple, and gave me access to all of their available options at the same time.

So far it is the best payment processor for international payments I have found.

<comment><USER40> Sounds a bit disingenuous since you just created that account to post this comment.

</comment></comment><comment><USER41> Stripe 100%. If you get over a threshold (say $100,000/mo), they will work with you on the rate so don't be afraid of the 2.75 + $0.30 will be forever

</comment><comment><USER42> Also - which of these service are strong in the fraud prevention area ?! Or integration with third party services for fraud prevention.

</comment><comment><USER43> I've used both stripe and braintree to build payment processing services that do hundreds of thousands of dollars in transactions per month.

I can't really tell you which is _better_ because it really does depend on a lot of variables that may be unique to your business (e.g., where you intend to operate, the payment methods your target customer base is comfortable using -- hint: it's not always credit cards and paypal, how you intend to bill).

Since I've got more experience with braintree, though, I can comment on some aspects of its use specifically -- primarily their drop-in UI, which has frustrated me at every turn. Their drop-in is probably one of the most frustrating pieces of technology I've ever integrated into a website. Not because it's poor, necessarily, but because it only feels about 80% complete. The user experience is really frustrating at times. Some examples:

* Last I checked, payment method removal wasn't possible in the drop in - you have to integrate their API specifically for that.

* Choosing what payment method you want can be really confusing due to the card number / email address obfuscation they use in the drop in. For example, if you have two paypal accounts, selecting between one of the other is difficult when they're listed as firstname.lastname@example.com and firstname.lastname@example.com. The same thing happens if you use multiple credit cards of the same issuer (two Visas for example). Simply allowing the user to set a card name in the ui (e.g. "Personal Visa" vs "Work Visa") would mitigate this problem.

* It currently isn't possible to set a Coinbase account as the default payment method in the Drop-in. Despite the Drop-in supporting Coinbase fully in every other way. So there's another reason to incorporate the API.

* Lack of other major payment methods. With BrainTree you get Venmo, Coinbase, CC, Apple/Android pay, and Paypal. Depending on your customer base, you could be woefully under-serving them. As my current business grows, we're now looking into incorporating other processors to use alongside braintree to support things like gift cards, ACH transfers, Amazon Payments, etc. This may just be unique to my industry, but I can't stress enough to do your homework ahead of time and understand how your customers expect to pay you.

* I get numerous reports from users of being unable to pay using paypal through the drop-in if they don't have a credit card attached to the paypal account. I've contacted BrainTree numerous times about this and have yet to get a definitive answer as to why this is the case. Additionally, if a credit card is connected to the paypal account, the withdrawal comes from that and not the paypal balance. If you want to frustrate your user base, let them use their paypal account but not their paypal balance...

As I've typed this, I realized it's a pretty ranty indictment of BrainTree. On the whole it isn't a terrible service. Uptime is good, money goes in, comes out, and my business keeps on running. It's not a bad service, I just have a lot of drop-in frustration. I kind of hope I get a reply that says, "The BrainTree drop-in does all this, you're just using it incorrectly."

</comment><comment><USER44> Go NMI or go home.</comment>


Blockstack's token offering is historic, but its dance with the SEC is not over - <AUTHOR> https://decrypt.co/7839/blockstack-token-offering-historic-but-dance-with-sec-far-from-over <comment><USER2> its sad that the operational risk is so damn high though.

you have to:

1) like the idea

2) trust the management team

3) hope infrastructure gets built around it so that there could be perpetual demand for these tokens

4) hope the regulators play ball

and if any thing incompetent happens with the management team, all liquidity evaporates permanently, no matter if the problem and solution were sound ideas

when really you just want to be able to "like the idea" and let it flourish on its own, where a management team doesn't need to exist, or a management team can be hotswapped for anyone

<comment><USER3> Correct. That's why we have an established, well worn process for raising funding for your business. You raise from accredited investors by selling the highest-risk equity, then as you become more mature, you raise from bigger, less risk-tolerant entities. Eventually, you're in a position to publish financials regularly, and raise money from a broader audience ("go public"). Your itemized list is why we do it that way. This "tokenize everything" end run around the SEC is a just a way to bilk low-income individuals of their hard-earned savings.

The crypto community continues to speed-run the history of finance.

<comment><USER4> Yet letting Uber's bag holders dump their stock on the public was ethically correct? Don't pretend our current system of only letting the rich get richer by banning access to early-stage ventures is the best society can do.

<comment><USER3> All of the data necessary for anyone to make an informed purchasing decision about $UBER is available per SEC regulation. It's up to each individual to decide based on that whether or not it represents a good value, and to hit "buy" on their preferred trading platform, and at what price. Nobody was forced to buy $UBER, and nobody was lied to, and if they were, they've got plenty of recourse via the SEC. Everything of value was in the S-1 for months before the first trading day.

Nobody is banned from investing in early-stage businesses except by virtue of their level of risk tolerance, and some of us angel invest regularly. However, just opening up access to everyone doesn't change the fact that a legitimate, well-funded company with great traction and a great idea (the kind of equity you want) has no interest in selling to some random small-time individual with no experience to bring to bear. As a founder, in early stages, I'd want smart money. Just as nobody was required to purchase $UBER nobody is required to sell shares of their startup to small-time investors who have no idea what they're doing and provide no value. I predict if accreditation rules were removed, the same pool of smart money continues to get all the wins, but now dumb money holds all the bags.

Yes, it's possible to make bad investing decisions. That certainly doesn't mean ICOs are a good idea.

<comment><USER4> Thank you for describing our current system to me. I am advocating for a new system that lets people take more risk even if they are not wealthy. There is nothing magical that happens when you make $200k per year, if you make $199,999 per year you are not an idiot that needs the government to protect you from bad investments.

<comment><USER3> To be clear the system you're asking for exists, it was brought in by Obama as part of the JOBS act. Anyone can buy equity under the JOBS act and the company has far lower documentation requirements. The 'good' companies (in-demand equity) don't do it because they won't want to pollute their cap tables with 'dumb money' and the ones who are okay with that are terrible investments. It's adverse selection. [1]

Getting rich isn't easy and opening up unregulated access to crap securities isn't going to change that.

[1] [https://www.finra.org/investors/alerts/crowdfunding-and- jobs...](https://www.finra.org/investors/alerts/crowdfunding-and-jobs-act- what-investors-should-know)

<comment><USER4> To be clear, the moment one is accredited they can make all the dumb investment decisions they would like. However, beneath a magical line of $200k per year salary the government prevents you by legal force from doing so. When you make above that number you are free to be dumb. I'm advocating letting everyone make their own decisions, for better or worse.

<comment><USER3> You seem to have ignored the key points.

(1) A program that meets that vast majority of your requirements exists and exhibits terrible adverse selection issues, so you propose... expanding it? In the hopes it gets... better? Any thoughts on why that would happen?

(2) The $200K salary line is "magical" but does represent middle-class in 100% of communities in the United States. IMO it should have been indexed to inflation ($3-4M in annual income inflation adjusted), bringing it quite a bit higher. You can also qualify on the basis of $1M in assets excluding your principal residence. This provides adequate buffer in the event your investments fail outright, which the vast majority of early stage investments do. It's the same reason a 20.9 year old can't buy beer. You draw the line somewhere, for better or for worse.

(3) To the best of my knowledge there are no legal repercussions for you for investing as a non-accredited investor, though there may be for the company for failing to follow proper procedure.

(4) These laws weren't brought in because too many poor were getting rich too fast and there wasn't enough room for all the yachts in Boston Harbor. It was due to large-scale speculation literally causing the great depression [1].

(5) Remind me who pays for the welfare programs when people who aren't in a place to take financial risks, the most desperate usually, are pushed into insolvency? Taxpayers. That's why taxpayers also get a say in who can invest.

(6) Your argument reads a lot like the people who want to kill off the EPA because the rivers haven't caught fire in a while. There's a reason they don't catch fire.

[1] [https://www.investopedia.com/terms/n/nonaccreditedinvestor.a...](https://www.investopedia.com/terms/n/nonaccreditedinvestor.asp)

<comment><USER4> It's a philosophical disagreement - I don't want the government picking who can and can't invest their own money into what investments. Many developed countries, such as Switzerland, have no such laws and the world isn't crashing down for them.

<comment><USER3> Which developed nations are you referring to exactly? Australia, Brazil, Canada, the entire EU, Israel, New Zealand, Singapore and the US all have accredited investor rules. The US is among the least strict. [0] It seems like Switzerland has a similar model [1, 2]:

(1) According to Art. 10 Para. 3 of the Swiss Federal Collective Investment Schemes Act (CISA), qualified investors are considered:

(e) High net worth individuals

(3) A high net worth individual is someone who can confirm in writing that they directly or indirectly have net financial investments of at least 2 million Swiss francs.

Either way, you've again side-stepped every salient point. It's fine to have a philosophical disagreement but we should be able to discuss the facts at hand. Philosophically I don't think the government should be able to tell people what they can and can't dump into the rivers because it's in their interests only to drop safe stuff in there. Reality, however, indicates that in fact that's an awful idea and we shouldn't let them.

Sadly, facts get in the way of philosophy. That's why we have regulations.

Either way you fall prey to the classic libertarian fallacy, that an individual doesn't affect the society around them in any way. Yeah you go broke investing in the South Seas 2.0 company, or BTC at $19K. Cool. You own and sell property at a loss, now you affect your neighbors property values. Now you're on welfare, and on medicaid, and now all of society has to pay for your poor investing decisions. The law is how society mitigates this risk.

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

[1] [https://www.swissfunddata.ch/sfdpub/en/group/info](https://www.swissfunddata.ch/sfdpub/en/group/info)

[2] [https://www.lexology.com/library/detail.aspx?g=a8e19e48-a4d0...](https://www.lexology.com/library/detail.aspx?g=a8e19e48-a4d0-4c15-97cb-84f4871b0826)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> Token buyers in this offering are paying 1000x to 2000x more than what early insider investors paid.

<comment><USER6> When I buy shares of lets say Uber - how much more than early investors am I paying?

</comment></comment><comment><USER7> Please... no token offering is "historic"

<comment><USER8> I disagree, I think they are historic scams

</comment></comment><comment><USER9> This is good for bitcoin.

<comment><USER3> I can legitimately no longer tell if this is sarcasm or not.

<comment><USER10> It's become such a meme, it's generally sarcasm.

<comment><USER3> It's a meme because so many people say it with a straight face haha

</comment></comment></comment></comment><comment><USER11> Still. Sounds hopeful for fundraising.</comment>


Show HN: Metaballs, Generative Art Piece - <AUTHOR> https://muffinman.io/metaballs/ <comment><AUTHOR> Author here, this year I started with generative art, and I'm absolutely loving it. This is my latest piece, and I wanted to share it with you.

The output are vector images which I plan to pen plot (I ordered AxiDraw plotter) and make them available on my site.

For those interested in how it works, I wrote a blog post: [https://muffinman.io/metaballs-generative- art/](https://muffinman.io/metaballs-generative-art/)

Cheers!</comment>


Crack in CRISPR Facade After Unanticipated in Vivo Mutations Arise - <AUTHOR> http://www.genengnews.com/gen-news-highlights/crack-in-crispr-fa-ade-after-unanticipated-in-vivo-mutations-arise/81254419?utm_medium=newsletter&utm_source=GEN+Daily+News+Highlights&utm_content=02&utm_campaign=GEN+Daily+News+Highlights_20170530 <comment><USER2> "Unanticipated?"

CRISPR is believed to be, at its core a bacterial immune system designed to 'knock out' problem viral genes by chopping them up at specific 'remembered' loci and hoping that the lossy repair mechanisms cause mutations that prevent the gene from functioning. It also evolved to work on the fairly small genomes of single-celled organisms.

So we've known for awhile that it's going to be quite tricky to get only the exact mutations that we want, at only the exact point that we want them.

It's not _magic_.

<comment><USER3> The mutations were unanticipated by the computational tools designed to identify likely off-target effects. This was in the article.

</comment></comment><comment><USER4> Pre-publication press release. Full text of article not available. How good was their control group? The press release says they used mice that had previously been edited with CRISPR/Cas9 and found off-target mutations, most of which were single nucleotides. Did they have a good control group so as to exclude random point mutations? Who knows? What is the theory on how CRISPR/Cas9 causes single nucleotide off-target mutations? No idea.

This is academic publishing at its absolute worst. Put out a sensational press release and whip up a fervour before the article is available. Those diving into the scrum to comment have not read the article.

Also, it's research by MDs. Just sayin'.

<comment><USER5> The article is available: [https://www.nature.com/nmeth/journal/v14/n6/full/nmeth.4293....](https://www.nature.com/nmeth/journal/v14/n6/full/nmeth.4293.html)

<comment><USER6> > "Co-housed FVB/NJ mice without CRISPR-mediated correction were used as the > functional-deficient control. Briefly, an sgRNAexpressing plasmid had been > coinjected, into FVB/NJ zygotes, with the single-stranded > oligodeoxynucleotide (ssODN) donor template and Cas9 protein to generate > mosaic F0 founders.1"

Following to reference 1:

> "The sgRNA plasmid was co-injected with the single-stranded > oligodeoxynucleotide (ssODN) donor template and the Cas9 protein into _FVB > /N zygotes to generate eleven F0 founders._

[...]

Double-strand breaks (DSB) were detected in 7 of 11 mice

[...]

The target region was sequenced, revealing that F0 3 and 5 incorporated the donor template precisely in 35.7% and 18.8% of somatic cells, respectively (Fig. 1c), while F0 7 and 8 incorporated indels in the integration, corroborating the unexpected results in the RFLP data.

[...]

A mixture of 3 ng/mL sgRNA plasmid, 3ng/mL of Cas9 protein (NEB Ipswich, MA), and 1mM ssODN (Integrated DNA Technologies, Iowa) was injected into the pronuclei and cytoplasm of FVB/N inbred zygotes. _Zygotes that survived injection_ were transferred into oviducts of 0.5-day post-coitum, pseudopregnant B6xCBA F1 females and carried to term. The resulting gene- corrected mice were backcrossed, initially into the FVB/N background, to determine the germ-line transmission efficiency of the repair." [https://www.ncbi.nlm.nih.gov/pubmed/27203441](https://www.ncbi.nlm.nih.gov/pubmed/27203441)

This is missing some crucial info isn't it? How many FVB/N zygotes were injected to generate those 11 original mice?

<comment><USER7> The more you work in the field, the more you discover how underwhelming the details in biology papers are. They give results without detailing the algorithms, hence destroying reproducibility, they hide datasets behind confidentiality, presents large-scale graphs without precise data, and so on.

Generally, reproducibility in biology papers is but a far away dream.

<comment><USER6> It is still awful but far better now than a few decades ago. The absolute worst is Nature/Science from ~2000. For someone trying to figure out what is going on (rather than just believe what the authors claim) most of those papers are not even worth reading.

<comment><USER8> Any time before the advent of "supplementary materials" pretty much meant that you had nothing more than a highlight of the method. It was terrible indeed.

However, even today I find that roughly half the publications are not worth the paper they are printed on, or the bandwidth to download them.

<comment><USER6> Check out pre-1940 papers (the year may be later depending on exact sub field). I've seen that they used to make it a point to include all the info (including raw data) to the point it was practical. Somewhere along the line the attitudes went wrong, I blame NHST personally.

<comment><USER9> NHST ? What's that ?

<comment><USER6> I explained it and provided some references in an earlier post here: [https://news.ycombinator.com/item?id=13483055](https://news.ycombinator.com/item?id=13483055)

Here is another reference you could check: [http://andrewgelman.com/2016/02/04/the-notorious-n-h-s-t- pre...](http://andrewgelman.com/2016/02/04/the-notorious-n-h-s-t-presents-mo- p-values-mo-problems/)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Most of the DNA that suffers random mutations is non-coding DNA. It's completely unknown what effects, if any, modifying non-coding DNA might have as its use is unknown.

I find it interesting that although anyone can experiment with CRISPR in their living room using something like this [http://www.the- odin.com/](http://www.the-odin.com/) that no one has just tried modifying the non-coding DNA a lot and then observed any changes (or lack thereof) in the specimen.

<comment><USER2> It's still fairly hard to do in a living room, if you want to do anything novel.

You need probably low 4-figures of equipment first; a -20C freezer for DNA/buffer storage, small centrifuge, thermal cycler, some way of getting genes into a target, and incubation space for whatever you're modifying. Preferably you'll also have consistent temperature control and an extremely clean environment. You also need a source of primer sequences, which are short customized sequences of DNA used to tl;dr get a lot of copies of a DNA sequence which you only have in small quantities.

Nothing too difficult, and much of that equipment can be DIY'd for the home lab. But many chemical suppliers also won't ship to residential addresses or onboard individuals as customers, so you'll need to incorporate and shop around a bit. And wet lab protocols can be very finicky; you'll probably need to run through your workflow a _lot_ before you get to the point where you can semi-reliably go from start to finish without fucking up. Often, you won't know exactly how you fucked up, but you can't argue with a lack of results.

It's possible, I think, but it's also time-consuming and difficult.

Anyways, if you did get a reliable setup working with say, micropropagated plant specimens, there are far more interesting prizes than seeing what non- coding DNA does. Plants make all kinds of cool stuff, from scents to flavors to alkaloids. And they've demonstrated an ability to take genes from things like jellyfish for e.g. autoluminescence, too.

<comment><USER11> Could the genes that produce THC be spliced into common lawn grass?

<comment><USER2> Yes, and they're all characterized. It would be difficult, though; you're looking at about a half-dozen genes for the intermediary steps from something common like acetyl-coa.

But with just THC, it probably wouldn't mimic the effects of cannabis very well. There wouldn't be any CBD, terpenes, etc etc.

Still, you could do it. It'd probably be easiest with something like tobacco which is well-understood and already has a system for sequestering cytotoxins.

Doubt you'd get something with appreciable yield stably transfected before wider legalization hits, though. And that would be some _expensive_ pot.

<comment><USER12> DMT would probably be the easiest. It's only three steps from tryptophan, and I believe ask the enzymes are pretty simple.

</comment></comment></comment></comment></comment><comment><USER13> Off target effects from CRISPR is not new. The method leverages DNA repair mechanisms in the cell to do the recombination. All errors involved in those DNA repair mechanisms (there are distinct ones) would apply here。

<comment><USER14> But if CRISPR cuts off a single DNA sequence, surely the repair mechanisms won't damage a random gene far away. My very limited understanding is this paper is reporting widely spread damage on the genome.

The original bacteria CRISPR can only cut off pre-defined sequences, but the artificial gene tech CRISPR can add and edit as well. I'm wondering if the later two modes are the sources of the genome damage.

<comment><USER15> > but the artificial gene tech CRISPR can add and edit as well.

I was under the impression that addition and editing capability were essentially done by injecting the sequence that is desired and performing the cut. Then you simply rely on the repair mechanisms to have a chance to put the new segment in instead of the old segment. Is that not the case?

</comment></comment></comment><comment><USER16> I seem to recall that in prior HN stories about CRISPR some poster was saying he believed CRISPR didn't work the way people thought it worked. He said it was simply killing cells that didn't have the desired mutation and biologists weren't realising that because of design errors in the experiments (or rather, sometimes mass cell dieoffs were being reported but not dwelled upon).

If CRISPR isn't actually editing the DNA but rather just selecting natural mutants that happen to have the desired edit, would that cause what's seen here?

<comment><USER14> Don't think so. Originally the CRISPR mechanism was discovered in bacteria, which only have one cell. It doesn't make sense for bacteria's anti-virus system to kill it's only cell.

<comment><USER17> This is a really interesting point.

I don't know if this experiment has been done, but I actually think that there's a good chance that a bacterial cell might acquire a sequence that it itself contains - CRISPR is known to work at the population level but my understanding is that the mechanism for acquisition of new sequences is unclear.

I'll take a look for any papers on the topic and repost should I find anything.

</comment></comment></comment><comment><USER18> I believe George Church published some work several years ago now using whole genome sequencing after CRISPR, saying they had neglible off-site integration or other mutations.

But going back,the findings were much more measured than that- they still saw off-site integration.

<comment><USER8> It seems to me that this high profile character often goes on record mentioning things that ultimately end up being just his wishful thinking and don't have much bearing.

<comment><USER18> I'm inclined to agree, except he did invent much of modern sequencing. He's great at technology, but limited in actual science.

</comment></comment></comment><comment><USER19> the article headline kinda belies a bias before you even read it

</comment><comment><USER20> Title is a bit dramatic. People just need to choose their gRNAs better based on available genomes.

</comment><comment><USER21> Unanticipated

I'm just a normal person with nothing to do with this, and I expected such "surprises" from the beginning.

I remain convinced mankind should not mess with this.

<comment><USER22> The rest of us will enjoy leaving you behind =)

<comment><USER21> Hammond, is that you? Jurassic Park was a cautionary tale about hubris. People with lots of money and smarts were convinced they could control nature.

</comment></comment></comment><comment><USER23> I couldn't be the only one worried about an "I Am Legend" type problem with this stuff. Obviously, that movie is an extreme, but the underlying problem of unintended mutation exists.

<comment><USER24> All known CRISPR systems work only under very specific conditions. You could drink a vial of Cas9 and it wouldn't do anything to you because it couldn't enter your cells.

</comment></comment><comment><USER25> i am sick of all the CRISPR; hype this is the cure being worse than the disease.

<comment><USER26> Not sure about it being overhyped, but similar sentiment, stated better is in this article (from last year):

[http://www.sciencemag.org/news/2016/05/gene-editor-crispr- wo...](http://www.sciencemag.org/news/2016/05/gene-editor-crispr-won-t-fully- fix-sick-people-anytime-soon-here-s-why)

It's pretty clear there are some huge hurdles before it's useful, even for your average biochem laboratory. But the effort put in to overcome those hurdles is probably worth it.</comment></comment>


System76 and LVFS - <AUTHOR> http://blog.system76.com/post/173801677358/system76-and-lvfs-what-really-happened <comment><USER2> Btw. regarding the Dell XPS advice found in the original post:

Three years ago I bought an Dell XPS 15. After a few month the touchscreen was broken (did not respond to any input). As I didn't really need it, it took me a few weeks before I contacted Dell. Their support tried to fix the devices remotely for nearly an hour (flashing firmware updates), the touchscreen was still broken. So they send a technician who tried to repair the device in my kitchen. Sadly he didn't have a replacement screen with him, so a few days later another technician came and replaced the screen.

Afterwards the touchscreen worked again. But a few weeks later the Screen started to flicker occasionally. At first I wasn't sure if it was related to the battery level or some software error, as it just happen from time to time and I wasn't using the device that often anyway. But after searching online for the issue and having used the laptop with Windows and Linux for months I am confident that it is another hardware malfunction. Sadly the warranty is long time over.

I liked the effort the support put into fixing the device, but I am a little disappointed to have had so many hardware issues for a device with such a high price. And while I had very few driver issues, the overall quality of the product didn't convince me to recommend it :-/

<comment><USER3> I had similar issues with an XPS 15. The battery started swelling and popped up the touchpad (I think that's covered under warrant with a recall; just need to take it in). The speakers have no over current protection and blew out (to be fair HPs don't have hardware protection either and can do the same thing).

I've also had a lot of cooling and throttling issues. I use to really like Dells and have had other really good Dell laptops. Maybe I just got a bad release and I probably shouldn't swear them off, but I'm probably going to avoid them for a while.

</comment></comment><comment><USER4> This is the whole open source community destroying (edit: maybe better term would be "damaging") itself.

Basically it starts civilly about finding the one best way to do something. They agree to disagree.

Then there 2 standards...Then 4, then 8 all not having the effort exerted to make each solution great.

Then one party writes something like "don't buy this it not free/ doesn't do this".

And in the end 99+% of people can't be bothered with the arguments and end up running Mac/Windows laptops, harming the open source adoption goals of everyone who was arguing before.

I still own redhat stock. Corporations love having a point of contact when things go wrong and will pay for that.

<comment><USER5> Hyperbole

Dozens of projects have gone this way and the open source community still exists

It's almost as if the notion of one size fits all is a utilitarian idea to simplify production of physical goods

We need to maybe look at why we keep trynna force that on more ephemeral ideas

I'm not obliged to speak English any one why. Why bother with making sure everyone runs the same code or manages only one or two key projects collectively?

Cause Big Corp? Meh.

<comment><USER6> Not hyperbole, a real problem that leads to interop issues. For example, the hellish filesystem wars of the mid 2000s.

Most distros STILL ship ext4 despite there being better options.

<comment><USER7> Hellish? I was running linux back then (since 97 actually) and while there was a fair amount of confusion, it wasn't due to the many choices we had, and there was nothing hellish about it. The confusion was because we hadn't realized that the right way to handle file system issues is to keep backups and have automated rebuilds. In some tiny minority of cases you also need some flavor of RAID. Other than that, why worry about file systems?

</comment></comment></comment></comment><comment><USER8> This article doesn't seem to explain why they have a hard dependency on a proprietary tool to flash the firmware.

There are no alternatives to AFUEFI?

<comment><USER9> I am the engineer at System76 that has been working on the low-level firmware update procedure.

The only alternative is to reverse engineer the SPI flashing method. We have switched to using FPT, the Intel Flash Programming tool, on new models. This means that we need to reverse engineer the SPI update method, which is something the flashrom project has had success in doing for older Intel chipsets.

<comment><USER10> SPI is a standard, right? What is the problem in using SPI?

<comment><USER9> SPI is easy, and well understood. For firmware editing I often use an external flasher for updating the ROM, and use flashrom to do so. Accessing the SPI bus on the Intel chipset, from the computer itself, is undocumented and usually requires reverse engineering.

<comment><USER11> Which chipset? It was documented (albeit not super well) in the handful of Intel chipsets I've had to support for firmware updates.

<comment><USER9> Kaby Lake and Kaby Lake R, for example

<comment><USER11> OK, neat, it looks like they haven't changed it in eons. It's PCI device 00:1f.5 and is documented in all of the PCH docs (so Vol 1 for overview, Vol 2 for registers). Sometimes it's disabled by firmware as a sort of 'security' mechanism.

Yeah, there's not a whole lot there in the docs, but it's PIO SPI that handles most of the flash addressing for you, so it's not the most complex thing in the world to begin with. More "fill the buffer and go" sort of deal.

<comment><USER12> But, if your firmware cares about preventing flashable rootkits, then these registers _should_ be locked such that you can only flash from SMM or during initial boot. The fact that AFUEFI works at all on a System76 laptop is a bad sign IMO.

<comment><USER9> It absolutely is locked, and needs to be unlocked and flashed while in EFI mode.

<comment><USER12> What do you mean "in EFI mode"? Do you mean EFI Boot Services or something else? I'm trying to understand what makes AFUEFI special that causes it to be able to write the SPI flash when regular software can't. If I understand your blog post right, AFUEFI run like any other .efi program, which seems insufficiently locked down to me.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> RE: Don't buy System76 hardware and expect to get firmware updates from the LVFS

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

<comment><USER14> My guess would be because AMI or their OEM (Cleve) requires they use it for support.

</comment></comment><comment><USER15> Since we are giving feedback to system76 I was shopping for a laptop 1+ year ago and was considering system76. When I inquired about buying an Oryx Pro they said that they would disable the onboard gpu and I could not use it. I ended up buying a laptop elsewhere. It took me ~ 6 months to find out how to properly use/switch_to the iGPU (spoiler: acpi_osi kernel parameter in grub) but now I do and can properly chose between battery endurance and performance. Ideally a linux vendor would fix these problems instead of limiting what one can do with the hardware. On the other hand requiring a user to change grub kernel loading parameters isn't a level of customer support that would get positive reviews. However a sizable number of linux users are "enthusiasts" (as people who don't use linux like to call us) and, personally, if I am to pay more for a linux laptop, I expect the manufacturer to facilitate tinkering to get the most out of it (ie allowing me to switch gpus or run any distro I want) instead of hindering that option.

</comment><comment><USER16> The whole "Be wary" section is a really unprofessional swipe borne out of pure retaliation. It isn't germane to the discussion at all, and it's simply FUD spread by System76 in retaliation to Red Hat's security and legal teams balking at System76 wanting them "to ship a untrusted nonfree binary which would get run as root on RHEL on customer machines".

<comment> m-p-3 To be fair, both sides are acting somewhat unprofessionally in this story.

<comment><USER17> _To be fair, both sides are acting somewhat unprofessionally in this story._

This. I think the whole "longer lever to move the boulder is to do this in public" is a very very bad trend. Posting stuff like this is inflammatory, on both sides.

<comment><USER18> Based on recent electoral trends from around the world, this sort of engaging spirited behavior may be exactly what consumers want.

<comment><USER19> That would be a belief that market behavior delivers optimal outcomes. If you instead think that market dynamics can deliver very bad results, this makes sense as an example of it: sure, consumers like seeing it, but it's not helping and the consumers are wrong to think it is.

</comment></comment></comment></comment></comment><comment><USER20> When a vendor talks about adding a "unique blockchain security infrastructure" for firmware updates... I don't even

<comment><USER9> Blockchain, however muddied it is today, does have legitimate uses. In this case, we use it to enforce a valid timeline of builds with cryptography.

<comment><USER20> I don't get it, do you allow adversary participants in on the network to vote on firmware consensus? What's wrong with regular vendor digital signatures, like everyone else does? :)

<comment><USER9> No. It is a blockchain, but is not distributed or mined. Firmware is built and signed with the signature of the previous build as part of the artifacts. This, in addition with a constraint that the timestamp can never move backwards, means builds must have a valid timeline and it becomes very difficult to hijack the publishing system.

Imagine you want to revert firmware for legitimate reasons. As the originator of the firmware, you could revert the source code and have a new build spawn that produces a valid artifact. With our system and with the typical system, this is possible.

Now imagine you are an attacker who wants to release an older firmware version, which potentially contains a vulnerability. You have access to the publishing system, but not the build system or signing key. With our system this is impossible, as consumers will not allow moving backwards to an older build. With the typical system, any signed firmware blob can be released at any time, meaning an older version can be made available without having to rebuild.

Our build system utilizes a firmware signing hardware device connected to the build server over serial with a strict protocol to ensure that leaking the key is not possible, even if the build server is compromised. In addition, the key is destroyed if this firmware signing device loses power (it does have a battery backup, but it disconnects if the case is opened), and we must deploy a new key in that event through software upgrades on client machines.

<comment><USER20> Sounds really complicated, couldn't you just replace all that blockchain verification code with an "if (firmwareToInstall.version < firmwareCurrentlyInstalled.version) return false" after the signature check?

</comment></comment></comment></comment></comment><comment><USER21> I personally dislike their hardware (I've owned Clevo / Sager for close to 15 years now, they've always felt cheap and plasticky), but I think their PPA and support are great.

The problem is that it's not clear what exactly is better out there for Linux enthusiasts who want a MacBook Pro-like experience out of the box. They're the least worst solution on the market as far as I can tell.

<comment><USER22> > Linux enthusiasts who want a MacBook Pro-like experience out of the box.

How big a group is this? Most enthusiasts like the ceremony of installing and configuring their favorite distros to their likings.

Or am I misunderstanding what you mean by "enthusiast?"

<comment><USER23> Well considering before I switched to my System76 laptop I had to deal with trying to get a proprietary video chipset working that also controlled my CPU fan. It was not any fun and the result was a machine that would just plain overheat when I ran Linux (also did it on Windows). On the other hand when I had issues with my System76 machine I bought second-hand I was able to get excellent support and the drivers all worked out of the box. So yeah I'd rather buy a machine that has working drivers out of the box than waste more hours of my life trying to troubleshoot getting some kind of proprietary chips working.

<comment><USER21> Right. I like Linux, but my company pays me to produce results, not to tweak my machine all day just to make it work.

</comment></comment></comment></comment><comment><USER24> The parts casting doubt about lvfs felt out of place to me.

</comment><comment><USER25> Just don't touch system76. They're just low quality rebranded Sager laptops with a crap version on Linux. You can just buy the same laptop and if you really like their horrible version of Linux, then put that on there.

<comment><USER26> Alternatively, there's Purism ([https://puri.sm](https://puri.sm)), who actually take security and build quality seriously.

Edit: looks like the system76 downvote brigade is hitting this discussion.

<comment><USER27> The cheapest Purism seems to be $300 more than the cheapest System76. Is the purpose of your comment to say that more expensive laptops are better?

<comment><USER28> Is that a controversial idea, that more expensive things are often better?

<comment> yjftsjthsd-h I might not phrase it that way, but notice that it's not exactly a one-to-one correlation. Given, y'know, that we are busy discussing hardware to run Linux... Which is free in both senses. It's a stronger correlation in hardware, but still imperfect; one brand being higher quality than another while undercutting them by a couple hundred dollars wouldn't shock me.</comment></comment></comment></comment></comment>


Quantum computing could be five years away - <AUTHOR> http://www.vancouversun.com/technology/Quantum+computing+could+five+years+away+expert+suggests/6176032/story.html

<comment><USER2> That has to be one of the most tortured opening metaphors I've ever seen in a tech news story. Could they really not come up with an analogy more elegant than, "This building over here is pretty big, but this building is REALLY BIG!!!!"?

<comment><USER3> yeah I thought that was really strange too. Perhaps they could have gotten away with the metaphor if they didn't choose the "small" thing as the Vancouver office tower. Why not compare it to a house or something every is familiar with?

</comment></comment><comment><USER4> Couldn't resist: <http://xkcd.com/678/>

</comment><comment><USER5> This is a vast oversimplification of quantum computing. Also, I think its pretty optimistic on the timeline of quantum computing. If you want to read more detailed content see Scott Aaronson's blog <http://www.scottaaronson.com/blog/>

<comment><USER6> Also agreed.

<comment><USER7> Don't understand why I was -4 for typing "agreed"

<comment><USER6> Neither do I.

</comment></comment></comment></comment><comment><USER8> >some problems in mathematics will remain beyond the limits of quantum computing

I don't think it's surprising that quantum computers, by themselves, will not be able to solve mathematical problems. Problem solving is not a feature of hardware per se, it is done by humans. Perhaps one day by AIs, too, if we can discover how to program them.

Two tantalising potential benefits of Quantum Computers:

(1) the ability to model all kinds of matter efficiently at the molecular level which will spur the development of nanotech

(2) people will ask 'Where are these humongous computations being performed?' and then embrace the 'many worlds interpretation' of quantum mechanics, which will in turn create further scientific and philosophical progress

<comment><USER9> Well, they're speaking in rigourous terms. Quantum computing will allow us to attack an enlarged set of problems in polynomial time. For example, integer factorization. However, there are still going to be other problems that quantum computers cannot solve in polynomial time (ie, much better than classical computers). For example, it's generally believed that they will not be able to solve NP-Complete (traveling salesman) problems in polynomial time.

For a nice description and diagram, take a look at the wiki page. [http://en.wikipedia.org/wiki/Quantum_computing#Relation_to_c...](http://en.wikipedia.org/wiki/Quantum_computing#Relation_to_computational_complexity_theory)

<comment><USER2> Shameless piggybacking: Also look into the work that complexity theorists have done with quantum complexity classes like BQP.

</comment></comment></comment><comment><USER10> Articles with titles that could've been true (but weren't) for the last decade are much like articles with titles consisting of questions to which the answer is no.

</comment><comment><USER11> Reminds me of:

"In a 5 year period we get one superb programming language. Only we can't control when the 5 year period will be."

<http://www.cs.yale.edu/quotes.html>

</comment><comment><USER12> Don't be ridiculous. Everyone knows that it's 'ten' years away, along with AGI and cold fusion.

<comment><USER13> ... and Linux on the desktop

</comment></comment><comment><USER6> "Quantum computing could be five years away"

They said this fifteen years ago on a radio broadcast. I was sitting there. I heard it.

Now, for the last time, _where_ is my _jetpack_?</comment>


Looking for a shell language meant to be programmed - <AUTHOR> I remember one being posted on here a while back, but I'd be open to any shell that's meant to be programmed.
The Dilemma: It's easy to start writing bash commands idly to do simple things, but when you want to wrap functionality into a library or program, bash is terrible and unmaintainable.
A shell language is designed to allow you to execute commands one-by-one on the command line and see their results easily. It's useful for small scripts, but anything large become unwieldy quickly.
A programming language allows you to create large readable and maintainable libraries. But using programming languages as an interactive shell is tough, while the functionality is all there, it's tough to access, and doesn't have the luxuries of autocomplete and other features, and the syntax isn't forgiving.
A shell language that is meant for programming would combine the best of these two and allow a programmer to just spin up a shell and test stuff and eventually wrap all of the shell commands they had tested out into a library.
Does anyone know of any languages like this? Established, or in-development? <comment><USER2> Have you tried ipython?</comment>


Ask HN: How do you keep your code elegant? - <AUTHOR>

I would love to have folks share tricks they use to keep their code elegant.
A little background for this request.  I am a self-taught hacker and when I work on projects, I typically spend a bit of time thinking through the structure of the code, breaking it down into functional modules, figuring out a good database schema, etc.  In order not to get carried away with over thinking the architecture, I usually set a time limit on how long this process can take and almost always end up with a very simple, straightforward design that gets the job done efficiently (enough) and, dare I say, elegantly.
The problem comes when the project hits the harsh light of day and I start getting feature requests from users that I never anticipated.  Once I start implementing these new features, I discover the code is no longer as streamlined or straightforward, the database schema is now less than ideal and I need to rely more and more on documenting my code instead of being able to trust that the flow is self-evident.
Now, don't get me wrong.  I'm pragmatic enough to realize users do not give a shit about the code and just want stuff to work but I care.  I'll throw in a hideous hack if that's what it takes but I like beautiful code and even if I am the only one who knows what's going on behind the scenes, I get a small sense of satisfaction knowing just how well it all hangs together.
So, let's hear your tips on how to ensure your code stays beautiful. <comment><USER2> The life of a developer goes through several phases, generally over- engineering is one of them, then generally comes clever, many times developers never get past clever and start to confuse it with elegance, but clever code is not by itself elegant, the mark of elegance is simplicity, when code is simple it becomes elegant, when it is simple and clever it is elegant. But if you have to choose between one or the other choose simplicity. Code that even a novice can see the beauty in the simplicity of it (and understand it) is where true elegance lies. It takes a true craftsman to take something complex and make it simple. That it what we do every day, we take complex processes and simplify them via automation and association. When one realizes the same principle applies to the development of their code, they then start down the path of writing truly elegant code.

Simple code is decoupled, simple code does not have tight dependencies, simple code is well organized and simple code does not rely on too much abstraction. If you strive to achieve those few things you will be a better developer than a significant portion of your peers.

decoupling code allows you the ability to extend the system without having to go back and modify existing code.

Avoiding as many tight dependencies as possible allows you to change portions of the code base without having the ramifications of those changes leak out into other areas.

Well organized code allows new developers to find what they are looking for, it helps document itself. Part of good organization is adhering to standards and best practices.

Relying too much on abstraction means that you can't see a complete picture of the code without understanding multiple layers. Abstraction, when used properly, allows you to reuse code which is a good thing, but it comes at a cost, it sacrifices conceptualization. Too much abstraction and the system or a portion of it cannot be easily conceptualized in the mind. It also creates tight dependency among components that sit on top of abstracted layers. It should not be avoided, but no problem can be abstracted away, if the code in question cannot be reused there is no reason to abstract it, rather componentize it into discreet blocks, so that it can be conceptualized as a black box.

</comment><comment><USER3> This is an art and over time you will get better. But I suspect there is no "solution" and this is part of being a programmer :)

I mostly do OO programming, so I'll speak to that. In general there is no magic bullet and the only way to guarantee code quality over time is to refactor. That's just how it is. That being said in practical terms there are some ways you need to be diligent.

Resist the "oh it's just one more...." urge. Whether that means a new method, data, condition, etc. If the scope of a class is increasing past what originally intended then split it up! No need to go crazy. When a class is becoming a PIT due to too much code or lack of flexibility then fix it. Don't plan too far in advance. This is hard and the urge will be strong but don't give in (unless the business demands it.. gotta make that $$$$).

When you encounter a situation where you clearly get a benefit by making things more flexible. Do it. Refactor. Don't wait it will only get worse.

I struggle with this all the time. In my opinion don't think too much about it and just do what feels right. You'll know.

</comment><comment><USER4> >takinola What do you code in?

If C, use the the one your project uses the most.

Personally I love Allman style, but that is not what my friends use: [http://www.freebsd.org/cgi/man.cgi?query=style&sektion=9](http://www.freebsd.org/cgi/man.cgi?query=style&sektion=9)

Pick one you like: <http://en.wikipedia.org/wiki/Programming_style> <http://en.wikipedia.org/wiki/Indent_style#BSD_KNF_style>

</comment><comment><USER5> Have you worked through any code katas? I find that the end 'solutions' are generally elegant and working through the steps is a helpful way to get there. Obviously your own work will vary, and you'll never have someone else's solution to compare against, but many of the skills and methodologies should carry over.

I think the original ones are the best, but if you don't know PHP (I wouldn't say that I do), finding some in your language(s) of choice would be best.

</comment><comment><USER6> Learn Python. Copy people who are better than you until you understand why they did what they did. Make mistakes. Ultimately, never be satisfied that you know all you can in your field

</comment><comment><USER7> Relentless refactoring.

<comment><USER8> Pretty much my life. So far, I've written an app in PHP and then rewritten it in Python 3 times, each time making the code more polished and complete.

I don't think I'll ever finish it :/

<comment><USER9> Rewriting is not the same thing as refactoring.</comment></comment></comment>


The Third Law – The future of computing is analog - <AUTHOR> https://onezero.medium.com/the-future-of-computing-is-analog-e758471fbfe1 <comment><USER2> Discussion a few months ago, [https://news.ycombinator.com/item?id=19183401](https://news.ycombinator.com/item?id=19183401)</comment>