What It Costs to Run Let's Encrypt - <AUTHOR> https://letsencrypt.org/2016/09/20/what-it-costs-to-run-lets-encrypt.html <comment><USER2> To everyone complaining about the $250K (see edit, it's actually 200K) per person in salary (which seems to be everyone at the moment), a few things to keep in mind:

1) That includes benefits

2) They are in Silicon Valley and have to compete with everyone else in Silicon Valley

3) Given what they have accomplished with such a small team, these are probably high caliber people.

4) In SV there is a good 25% premium you pay for engineers with security expertise.

As someone who runs a business and has to hire talent, I can say that I'd consider myself lucky to get such a team for such a great price.

Edit: A bunch of people are saying "why not remote". I think they are in fact mostly remote, but they still have to _compete_ with SV wages because really good people command those wages whether they are here or not.

Edit2: As has been pointed out multiple times, the blog post was not clear, and it is actually 200K per person, all in.

<comment><USER3> I think $200K/person is fine, but I do quibble with this:

> They are in Silicon Valley and have to compete with everyone else in Silicon > Valley

Why? Why compete for talent in Silicon Valley when there are people all over the country who'd love to work on something like this? I can get why they might prefer not to do remote teams (it's a challenge), but there are cities like Seattle, Boston, Denver, Dallas, Kansas City, Houston — all of which have folks quite capable of building this.

In fact, for some folks not being located in SV is a huge plus!

<comment><USER2> As covered elsewhere, most of the team is remote. But they still get SV salaries because great people get those salaries no matter where they are.

<comment><USER4> that is ridiculous, do you have evidence to back that statement up?

<comment><USER5> If you consider anecdotal evidence then I have received, with no negotiation, similar (statistically identical) offers in low cost of living areas and high cost of living areas.

<comment><USER6> I'd love to know where. Not trying to be snarky.

<comment><USER5> I work in a pretty small niche that's concentrated in high cost of living areas so I would prefer not to get too specific. One example was a company in the same country as Omaha with similar cost of living.

A different company was in a different country than Omaha and the naive cost of living was higher, but the cost of living, after adjusting for taxes, was actually very similar.

I hope that gives enough information. I really enjoy living in high cost of living areas so that's where I ended up, but I did have the choice to live somewhere cheaper.

<comment><USER6> Country, or county?

<comment><USER5> Country.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Funny to see people quibble over a few hundred thousand dollars when they're doing a substantial amount of the heavy lifting to encrypt the web. At over 10 million certificates issued in the past year, their staffing costs represent $0.20/cert. For those who've deployed with Let's Encrypt, did you get a quarter's worth of value from their service?

<comment><USER8> > For those who've deployed with Let's Encrypt, did you get a quarter's worth > of value from their service?

The certificate price isn't even the issue. It's the signup + auto-renew!

Before LE came out, I would have paid $100 to not have to 1) Not go through the hassle of manually ordering certs and 2) Not having to log back into servers to periodically update them.

I get both of those with LE ... the fact that it's free? That's just icing on a very delicious cake!

<comment><USER9> How about donating $100 to Lets Encrypt then? :P

<comment><USER8> > How about donating $100 to Lets Encrypt then? :P

That'd require me getting a refund :P

</comment></comment></comment></comment><comment> nappy-doo Fascinating. Everyone here is complaining that 2M for 8 employees seems steep, but I think this seems really cheap. Admittedly, I work at Google, but we bat around the number of 400-500k per employee when discussing them here. 250k/ in SV seems really reasonably priced in comparison.

<comment><USER10> Maybe SV is not the best place then. Especially when they are working remotely. One thing is to make money and pay salary as you want, and another one is "we want such salaries, please donate".

But don't get me wrong, I'm going to subscribe for monthly donation to them. They save a lot of my time monthly.

<comment><USER11> I'd say it's a true statement. The reason you start a company in SV is to get access to the people who live and work in SV. If you don't use that pool of resources, there is no point in being in SV and paying to be in SV. Might as well move to Madison, WI and halve your expenses. And there you'd have access to University of Wisconsin graduates and can compete on wages with Epic instead of Google and Apple.

</comment></comment></comment><comment><USER12> When considering the salary for their staff, it is important to point out that LetsEncrypt only works if there is trust. They need to have high caliber people that they can trust and this costs money. Hearing that LE Is paying their people a fairly good wage, makes me much more comfortable using and supporting them.

<comment><USER13> Lots of people are talking about how expensive Silicon Valley is and how they have to compete with other salaries... but this is the justifying reason to me. If you pay enough that money is off the table, you can trust them a lot better.

</comment></comment><comment><USER14> They are not paying $250k per employee. You have to factor in payroll taxes, paying accountants to keep books and CPAs to do taxes, benefits, and a multitude of other regulation-imposed payroll costs.

All of this is to support salaries of around $125k - $150k.

The same goes for pretty much any employer. If a fast food restaurant hires someone at $8/hr, it actually costs them around $16/hr to hire the employee.

In a free market Let's Encrypt could probably cut its expenses to close to half what it's at now.

<comment><USER15> In Sweden the head of state earns less money than the average Let's Encrypt employee.

<comment><USER16> The Swedish head of state does not live in Silicon Valley (and I would be surprised if the Swedish state is spending less than $250k/yr. in total on its monarchy).

<comment><USER15> My point was not that Sweden i great and cheap, it was that you can get allot for those sums of money.

</comment></comment></comment></comment><comment><USER17> I'm quite surprised - $2.06 on staffing seemed steep, so obviously read on as I was thinking that there must be a lot of employees. But 8? OK, I'm just a teacher, and I earn around £30k a year... not the kind of figures I've seen bandied about on here for graduate programmers who seem to be pulling in 8-10 times that for their first job... So I'd be interested to see a breakdown of the payroll (which I doubt would happen) - an average of $250k seem normal to others on here?

<comment><USER18> people who seriously know how to code mission critical X.590 root CA PKI infrastructure are __not cheap __when you 're looking at total benefits/compensation per head.

<comment><USER19> Creating a certificate is easy.

<comment><USER20> It sure is! Just go to [https://letsencrypt.org](https://letsencrypt.org)

<comment><USER11> It's so easy, I have a cron job do it for me!

(That is a comment on how easy LetsEncrypt makes generating certificates, something I very much appreciate).

<comment><USER19> I agree, LetsEncrypt has done a great job. My original comment was snarky though accurate in a focused sense concerning the actual creation of a self- signed certificate (which can be easily cron jobbed). Of course I understand and appreciate that there is the whole negotiating the larger certificate scene, multiple companies, politics, etc. and that takes time, talent, effort and money. If LetsEncrypt had just come out from the start and said, "we can offer this service for X dollars" then it would have been more transparent.

</comment></comment></comment></comment></comment></comment><comment><USER21> All the complaints about salaries are dismaying. Why not consider that plenty of other places seriously undercompensate engineers instead of trying to cut this organization's pay structure down?

<comment><USER22> People overwhelmingly want others to have less than them more than they want themselves to have more. It's ridiculous, but true.

<comment><USER21> Yep. The same phenomenon augmented by racism applies to certain demographic populations of the US with respect to minimum wage, welfare, etc.

It's just completely irrational.

</comment></comment></comment><comment><USER23> > We're currently working to raise the money we need to operate through the > next year. Please consider donating or becoming a sponsor if you're able to > do so! In the event that we end up being able to raise more money than we > need to just keep Let's Encrypt running we can look into adding other > services to improve access to a more secure and privacy-respecting Web.

Wouldn't they want to secure funding for 5+ years for existing services before considering adding other services?

<comment><USER24> I'd guess that the company-sponsors are on the hook for more than a year.

</comment></comment><comment><USER25> It is astounding to see so many people here who think employee cost == employee salary.

</comment><comment><USER26> To Let's Encrypt: if you guys took bitcoins as donation I would give $10 in an instant. The friction of filling out this long Paypal form is just too high for $10... [http://i.imgur.com/oZZWeuG.png](http://i.imgur.com/oZZWeuG.png) (And, no, I don't have a Paypal account.)

 _Make it easy to give, and you will receive more donations!_

Edit: I am not the only one who wants to donate BTC! Bitcoin was the number one request asked last year: [https://twitter.com/letsencrypt/status/581177744152784896](https://twitter.com/letsencrypt/status/581177744152784896)

<comment><USER27> That's an interesting way of putting it. I think I would spend longer double- checking a bitcoin transaction that I would one through paypal.

Name/address are easy to autofill even if you don't want anything saving your card info.

<comment><USER26> I'd do the bitcoin donation as such: unlock my phone, launch Bitcoin Wallet, capture on-screen QR code, type $10, hit send. Done.

<comment><USER27> I guess that's simple enough if you have two devices handy at the same time. But the simple flow for paypal is just as easy. Click to let my browser autofill payment info, type the CSC, hit submit.

</comment></comment></comment></comment><comment><USER28> $20m is such a great bargain to how much value LetsEncrypt provides to the world at large. I can hardly think of better money spent.

They have a donation page here: [https://letsencrypt.org/donate/](https://letsencrypt.org/donate/)

Let's keep it going.

</comment><comment><USER29> I wish there was a way to donate money towards a fund - like, give $100USD, that goes into some index fund, and then LetsEncrypt withdraws $3.50 (as per [https://www.bogleheads.org/wiki/Safe_withdrawal_rates](https://www.bogleheads.org/wiki/Safe_withdrawal_rates)) a year until the sun burns out.

I'd much rather spend my money knowing its a small ways toward making this kind of thing self sustainable.

<comment><USER30> You could set such a thing up yourself. It's basically a trust. Put your money in the index fund, and have a process to automatically withdraw the safe amount and donate it.

Now build a product around that idea, and be the next patreon. I heard of this great company that'll help you get ssh certs for free.

<comment><USER31> I've thought about this extensively, and it's actually not that easy to set one up yourself. For one thing, the overhead required to administer a trust is non-zero, and would be prohibitively expensive (non-sustainable) for a small amount. The _barest minimum_ endowment is at least $10k, and possibly $100k. Best case, you find a way to align the trust with a university, who adds it to their portfolio and administers the funds according to your/their goals.

This also presumes that there are public investment instruments which can get a reliably positive rate of return. In today's economy, it's difficult to get even a few percent reliably. Some places are toying with negative interest rates, even (which means that passive investments are deflationary).

<comment><USER32> How does the overhead scale when you go from, say, having $10k in the pool to $10m? If a service existed that ran a trust where you could put in money and then dictate where your share gets routed, would this overhead keep going up dramatically as it grows?

<comment><USER31> The overhead is nearly constant with respect to the number of dollars. But the cost goes up linearly with the number of shareholders (as each one needs at least a modicum of attention over time, to update records reflecting changes of dispensation, or to verify death certificates, etc). And the costs also go up with the complexity of the trust, e.g. if the money has to do anything other than being held and dispersed at appropriate times. (Someone has to file the taxes).

Banks often employ someone called a Trust Officer, who handles things like this related to the trusts that the bank is managing (and carrying). They make around $30/hour. And let's say that 100 people each put in $1000, or $100k total. At 3% interest, the fund would generate $3k/year. If each shareholder requires an hour of the trust officer's time over the course of the year, then all income from the trust goes to pay the trust officer, and there's nothing left over to be dispersed.

It sounds like a good idea, and I'd definitely take advantage of the service if it existed. But lawyers and accountants have to be involved, and they want to be paid. And they're expensive.

</comment></comment></comment></comment></comment><comment><USER33> The services of Let's Encrypt, let alone the cause they stand for, is well worth a small recurring donation. I think this is totally reasonable to pledge even $2/mo.

<comment><USER34> If companies that uses Let's Encrypt would chip in just 1/10th of what they'd pay for certificate from for profit providers, then Let's Encrypt won't be in need of donation anytime soon.

<comment><USER35> ICANN could just fund the whole thing.

<comment><USER36> That'd be a bit ironic, ICANN funding a project to verify assigned names and numbers because decades ago folks decided they couldn't trust ICANN to do its job.

</comment></comment></comment></comment><comment><USER37> I recently replaced my paid SSL certs using LE. I took what I would have paid in SSL costs over the next two years and donated it instead.

<comment><USER38> That's a fantastic initiative! Bravo!

</comment></comment><comment><USER39> So, what's the plan for when the bubble pops, Let's Encrypt runs out of funding, and meanwhile all browsers have switched to requiring HTTPS for all websites?

<comment><USER40> My guess is someone like Google would come in and fill the spot for free or very very cheap. I think Google/Microsoft/Apple/etc could donate the 10+ people they need without even batting an eye.

<comment><USER16> And Let's Encrypt have created open-source software and standard protocols for running an automated, free CA. So anyone (with sufficient money) could provide a drop-in replacement if needed or desired.

</comment></comment></comment><comment><USER41> So programmers mad that other programmers are making good money (although, taking into account overhead, salaries are rather normal). This is why we can't have nice things people.

</comment><comment><USER42> "Hardware/Software" and "Hosting/Auditing" seem to be weird things to lump together.

I wonder what software they pay for.

<comment><USER43> Hardware and software are both capex.

Hosting and auditing are both opex.

Makes sense to me.

<comment><USER44> Doesn't to me. Staffing/Auditing/Legal/Administrative are up to 2.7MM of their 3.0MM expenses. The way they grouped things is very deceptive.

</comment></comment></comment><comment><USER45> Funny to see that some of the sponsors on the Let's Encrypt website are linked without https even though they offer https.

</comment><comment><USER46> My multi-domain (3) cert just came up for renewal at $28.99 a year, instead I setup Let's Encrypt on 8 domains for free. I think I'll just setup a recurring donation to Let's Encrypt simply because I'll never have to do the SSL Cert song and dance ever again.

</comment><comment><USER47> Thanks for doing such a great job. It's truly amazing what you have achieved with such a small team.

</comment><comment><USER48> GEEZ - Those Legal and Administrative costs are INSANE. Especially if a lot of their stuff is handled by Linux Foundation. What the heck? 12%+ of total spend to lawyers and admin, and this is not salary? What's going on here?

</comment><comment><USER49> People are confused. The end salaries are probably in the $110k-$150k range.

</comment><comment><USER50> Surprised no one is commenting that their software has really poor usability. It may work well in providing secure certificates, but setup is a PITA and the documentation is abysmal.

<comment><USER13> Agreed. If I remember correctly it even destroyed a site once when it was attempting to make sure their validator could reach the verification file. I just did what everyone said: "it's so easy, just run it on auto mode with apache and it'll configure your cert for you". Turned out to be a huge PITA.

Recently I had to renew that site again (I've been postponing and dreading it) and looked for a different client. The getssl bash script[1] had its own problems (all caused by me not taking the time to read the readme, but the default settings were a bit odd), but overall a 10× better experience than the official client. Much less magic, much more a unix-like tool ("it does only one thing, and one thing very well").

[1] [https://github.com/srvrco/getssl](https://github.com/srvrco/getssl)

<comment><USER51> I'm not sure I like their "we'll do it all for you" approach. It seems like there are a lot of ways to accidentally break config files. In general, I'd rather not anyone touch those without me knowing what it will do.

Fortunately, the certonly script grabs the cert and puts it in an easy location. Updating the config from there is easy enough.

</comment></comment></comment><comment><USER52> Offering an alternative viewpoint. Many seem to be focused on the cost/FTE. The alternative view is that if this was a business then $3m a year to run it is "peanuts" for the services provided. In fact I prefer the for profit model. I'd like them to charge for each account/cert to cover their costs.

<comment><USER53> The whole point of Lets Encrypt is not to charge people for the certificates. But I agree that the amount they are spending per year is very modest compared to what they are doing.

</comment></comment><comment><USER54> So many people complaining 'why not remote', when half the staff is operations, and they run their own hardware.

It's going to suck when your ops staffer in Tahiti has to fix a physical server problem in the SF datacenter...

</comment><comment><USER55> Ya'll should get some swag for donors. I'd like a cool sticker :)

</comment><comment><USER56> Reading these comments, it's hard not to agree with the sentiment that being transparent about salary data is of dubious value to a company.

</comment><comment><USER57> 2m - ~200k in benefits. Looks like 180k per engineer. Thats high, but looks like they've got the corporate sponsors to support those salaries.

</comment><comment><USER44> They need to spend less or they're the next Tor foundation, an ineffective black hole of hacker wannabes and hanger-ons. Running high performance services don't cost very much as evidenced by their hosting entry. Maybe 5 engineers max. No way they are working on features every day. Should be very slow outside of patches. CA/SSL specification does not change weekly...

<comment><USER58> > CA/SSL specification does not change weekly...

The draft ACME specification does though.

</comment></comment><comment><USER59> Has anyone tried to incorporate signed executable loader into the Linux kernel ?

Hopefully letsencrypt can start certifying code signing keybase keys.

Also would be nice if someone would offer a service to build executables from open source code and code sign certifying that a particular executable was built from a particular source openly available.

</comment><comment><USER60> There is no problem with being located in sf but I would take issue with the idea its a job that 'requires' one to be located in sf or have access to the absoute 'highest quality' of engineers.

On the contrary there is a risk of adding complexity where none is needed because super high quality talent requires super high quality work and if the work of generating certs is not challenging enough, complexity is created, like Acme.

I am not sure why generating a cert is so involved with letsencrypt. Does Dns validation, file validation or email validation require a new standard. Perhaps a simple rest api and web frontend would be better.

Here is my domainname, my cert request and a file on my server or dns entry to verify, now can I have a cert please? This is the process. Why does it need a client, and one that can automatically update certs!! and an elaborate new standard? There is no way I am running this on a live server, so the automation is then moot.

I would rather pay $20-40 a year than babysit my ssl every 90 days, and this is for a wildcard.

The kind of folks who automate things spend hundreds of dollars a month on aws or gce, and willingly pay 10 times more for bandwidth than they would at do or vultr. Is $20 a year or $2 a month per wildcard domain in this context really an issue? So who does the automation target and benefit?

For others a manual process would have been more accesible, there are tons of others things to do with one's time, le is automated but that is one more thing to monitor and that can go wrong.

I can't help feeling the whole cert generation process could be simplified and artificial restrictions around 90 days and wildcards re-evaluated. That would be valuable to users, contribute to make running things simpler and money well spent.

</comment><comment><USER61> If the market crashes or they cannot raise needed funds, they could easily turn around and begin charging $1 per certificate per year and still be a much better value than other CAs.

</comment><comment><USER62> I would be interested to know how many certificates they currently issue. I would have no problem paying a small annual rate for using the service.

</comment><comment><USER63> I notice that they explain the purpose and benefit to the organization of every single category of employee - except the executive director.

</comment><comment><USER64> If any LE staff are in here, I'd happily chip in on a Patreon.

<comment><USER65> You can donate directly, either once off or recurring monthly - [https://letsencrypt.org/donate/](https://letsencrypt.org/donate/)

<comment><USER64> I'd rather avoid PayPal, and I like Patreon as a central clearinghouse for monthly donations.

<comment><USER65> On the flipside, Patreon takes a 5% cut on top of whatever fees there are for the payment method you use, so there's less of your dollar reaching the intended recipient.

<comment><USER64> [https://cms.paypal.com/us/cgi-bin/?cmd=_render- content&conte...](https://cms.paypal.com/us/cgi-bin/?cmd=_render- content&content_ID=merchant%2Fdonations) says PayPal takes $0.30 per transaction plus 2.2%, so that's a full 1/3 of my dollar gone there.

</comment></comment></comment></comment></comment><comment><USER66> At first glance, it looks huge. But then, honestly, when you just consider vast benefit all of us are getting from them, this is nothing and probably should be funded on a higher level. Like 10-15M.

</comment><comment><USER67> Curious where the 20K a month in hosting is spent? Perhaps Google or Amazon could throw in some credits to help out?

<comment><USER68> It is almost certainly necessary for them to have dedicated hardware in neutral datacenters. They can't just run their infrastructure on AWS or Google.

<comment><USER69> Maybe there's something very obvious I'm missing - but why?

If their environments are not bare-metal then moving from a virtual solution to a cloud one seems fairly simple. If they are bare-metal then it hardly seems necessary for issuing certs - but if you have more insight I'd love if you'd share it!

<comment><USER70> CAs require special hardware security modules (HSM) to contain the signing keys and have to control the entire path to them, so yes, you need to own your hardware for a public CA.

And independence from their sponsors is an important organisational feature for Let's Encrypt.

<comment><USER71> The second part of it is why they can't use cloud HSM products offered by various companies. If you're functioning as a CA, you _absolutely_ want restricted physical access to your root keys, which you can't guarantee otherwise.

</comment></comment></comment></comment></comment><comment><USER72> How many employees does it take to run Let's Encrypt? 8 2 to run the website 1 to ask for money 5 to say "are you sure you need a wildcard cert?"

</comment><comment><USER73> |$250k/employee

hmmmm

<comment><USER74> They should consider running the service in Canada, where software engineer / programmer salaries are a third of that

<comment><USER75> A follow up tweet clarified that it was 10 people and not eight. But even that is a pretty high cost per employee I agree.

But the question is: Can you get a team of engineers that have the ability and crypto know-how to build something like Let's Encrypt in Canada for 1/3 of the salary?

<comment><USER76> probably not. the best canadian coders are already here in the US.

<comment><USER77> Says who?

<comment><USER76> Says a Canadian who lives in the US who overgeneralizes.

It's not entirely true, but its way closer to the truth than you'd admit.

<comment><USER77> I mean I am a Canadian who lives in Canada and I disagree. So that's why I don't get your argument? I know plenty of very skilled people here.

<comment><USER78> But you gotta admit a lot of recent grads end up leaving. I'm another Canadian who left given I was offered doubled my salary in one move.

<comment><USER77> But isn't the cost of living also higher and you have medical expenses and things? Are you actually taking home double as much, or does a lot of that extra have to go to living expenses that you wouldn't have in Canada?

<comment><USER76> The cost of living is higher. Medical expenses aren't really a thing for recent grads, and good medical insurance limits your outlay. Normally most people with solid insurance and serious health concerns will max out at a few thousand dollars a year. And for the kinds of jobs we are talking about, that isn't a big deal.

Anyways, I'm making way beyond 2x as much as I ever could have in Canada. Also I get to work on world class tech, with world class people. And when I changes jobs, I don't have to take major compromises. There are way more high quality employers in the bay area than anywhere else for technology!

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER79> Bitcoin?

</comment><comment><USER80> no windows sadly

<comment><USER80> can you explain why I'm downvoted?

<comment><USER81> There are a number of client options for windows[1].

[1]: [https://letsencrypt.org/docs/client- options/#windows](https://letsencrypt.org/docs/client-options/#windows)

<comment><USER80> seriously has anyone actually got to work any of these third-party options? Don't they all depend on IIS which is not free?

<comment><USER81> Many of the clients above support something like certbot's webroot plugin, which is web server-agnostic and works by simply putting a verification file in your webroot and serving that to Let's Encrypt's validation server.

Also: As far as I know, IIS is included with any Windows version (definitely any version of Windows Server).

</comment></comment></comment></comment></comment><comment><USER82> Can the business model be charging for the certificate directly, just cheaper than others? I'm fine with that.

<comment><USER83> I'm not. I test a lot of ideas but don't have much money. I have already to pay for hosting and DNS. SSL is optional. I'm very thankful to let's encrypt for the opportunity to use SSL on my sites. Also SSL (and the web) is a broken technology, I'm not going to pay for something broken.

<comment><USER82> there is nothing really that is free beer in the world, the money has to come somewhere, either some "rich" guys donate the fund, so the rest gets a free ride, or everybody pays a little, say, $5 per year, what's wrong with that? I'm not a rich guy per se, but I want to pay reasonable fee for what I got.

<comment><USER38> You can still do so by donating 5$ per year or any other amount you'd like - which is awesome! More things should come around in this way. Talk about being inclusive.

<comment><USER82> yes but if you do the math since not everybody is paying whoever donates need pay more to take care of those who does not, which is really what the whole topic is about.

</comment></comment></comment></comment></comment><comment><USER84> $2.06M for eight employees seems very steep

<comment><USER33> Approximately 100% salary overhead is pretty standard, so eight $125k employees plus infrastructure and office costs sounds reasonable.

<comment><USER85> 8 x $125K would be $1M, not the $2M that is currently being spent on employees.

Edit: Missed the first part of that, I apologise. 100% overhead doesn't seem reasonable per employee to me though.

<comment><USER86> You missed the "100% salary overhead" part of the sentence. Consider taxes, benefits, insurance, other non-salary costs to employing people.

</comment></comment></comment></comment><comment><USER87> Many people here don't realize what it costs a business, in taxes, to employ someone. I think if more people realized this, we would have less people demanding a $15 pay-raise for minimum wage workers.

<comment><USER88> I strongly disagree. What the worker needs to make to have a puncher's chance at a life is not related to the amount paid in taxes.

<comment><USER87> Yes it does. As a business owner, more taxes means less money for employees (and less employees hired).

People that don't understand taxes never consider this and immediately think employers are just greedy.

Inflation is also never considered, which is exactly why we have to keep raising minimum wage in the first place.

Minimum wage increase will not help anyone in the long-run. It will only inflate the cost of goods and services for everyone within a few years.

The real answer is more education

<comment><USER88> Let's be really real for a sec: minimum wage does not, in any meaningful way, drive demand-pull inflation. Minimum wage doesn't even _track_ the rate of inflation. This is macro-averse horsepuckey.

This position of abolition of minimum wage is not seriously held by any macroeconomic experts except on the _extreme far right_. There is a reason that wage floors, in lieu of GMI, are accepted by even centrists: because the alternatives are literally unconscionable.

Further: capital _is_ greedy. It's functionally unable to be anything else. Throwing labor a bone once in a while is not, desperate hair-shirting aside, going to somehow kill it and destroy the jobs, homgz.

</comment></comment></comment></comment><comment><USER89> This does not instill confidence in Let's Encrypt's longevity. It sounds like a cry for help. $250k may be a reasonable sum for an established company to pay it's employees but for a company to have that kind of burn rate with out having next years funding secured is scary.

<comment><USER65> Have you seen their sponsors page?

Multiply the cost of the various sponsorships by the relevant sponsors and I think you'll find they're doing alright.

That doesn't even take in to account individual donations either.

The point of this post was not just fundraising, it was because they believe in transparency and openness.

<comment><USER89> It reads like, oh shit, if you don't donate we might not be around next year.

</comment></comment></comment><comment><USER90> Pro Link

<a href="[http://www.indo-news.ga">Indonesia](http://www.indo- news.ga">Indonesia) News</a> <a href="[http://www.tutorialgayarambut.com">Hairstyle</a>](http://www.tutorialgayarambut.com">Hairstyle</a>)</comment>


"Tampopo" restored and re-released - <AUTHOR> http://www.slate.com/articles/arts/movies/2016/10/juzo_itami_s_1985_classic_tampopo_is_restored_and_rereleased.html <comment><AUTHOR> One of my favorite movies ever. I've been begging for a Criterion release for years! It's a really deep dive into aesthetics, success, and what it is to be human. Plus it's funny as hell!</comment>


Ask HN: Methods to lock down an NPM environment for on-premise distribution - <AUTHOR> I have this project I'm working on (tinydevcrm.com) and I want to lock down dependencies from JavaScript for a React.js frontend. Ideally, I want to audit all my dependencies (and their dependencies), check them out at the commit level, and build it all with Bazel or something, in order to lock down the project for long term support. Is this done in industry or are there other ways in order to lock down JavaScript projects?<p>I understand this question might not be entirely appropriate for this forum and that I should try Stack Overflow instead, but I think it may be a concern others have faced and solved before (tiny SaaS grows into a large company, large enterprise customer wants an on-premise distribution of application on air-gapped network, SaaS updates build pipeline to support offline distributions). <comment><USER2> I'd suggest using Yarn's "offline mirror" functionality, which lets you commit the exact set of packages into the repo, then install them when the repo is checked out without needing additional network requests.

[https://classic.yarnpkg.com/blog/2016/11/24/offline- mirror/](https://classic.yarnpkg.com/blog/2016/11/24/offline-mirror/)

[https://blog.isquaredsoftware.com/2017/07/practical-redux- pa...](https://blog.isquaredsoftware.com/2017/07/practical-redux- part-9-managing-dependencies/#managing-dependency-packages-for-offline- installation)

<comment><AUTHOR> This is really cool, thanks for sharing! I'll see if this fits my needs, and maybe reach out to Yarn core devs to learn more about front-end build pipelines :)</comment></comment>


Kevin Mitnick Can Steal an Identity in Three Minutes - <AUTHOR> http://www.forbes.com/sites/ehrlichfu/2014/08/15/renowned-security-expert-kevin-mitnick-can-steal-your-identity-in-3-minutes/

<comment><USER2> You can't steal someone's identity, but you can go and impersonate someone. The reason why it's so easy to impersonate someone for the purpose of bank fraud is left as an exercise to the reader.

<comment><USER3> I always hated reading that phrase in my textbooks</comment></comment>


How air conditioning created the modern Republican Party                  - <AUTHOR> http://voices.washingtonpost.com/ezra-klein/2010/01/how_air_conditioning_created_t.html <comment><USER2> Cute, but really kind of dumb, unless you can trace the Civil Rights Acts, the refusal of the Democratic national conventions to seat all-white delegations, etc. to air conditioning. With obvious & rare exceptions such as the Bush family's displacement from Connecticut (The Grapes of Cash?), the Republican Party in the south is made up mostly of the descendants of the Democrats who dominated southern politics all those years.

</comment><comment><USER3> I wonder how much AC has impacted larger national government as well. I mean, have you been in DC in the summer? Not the kind of place I'd want to spend large amounts of time in a big room with a bunch of old fat guys.</comment>


Learning is possible only where free, reasoned and civil speech is respected - <AUTHOR> https://www.wsj.com/articles/middleburys-statement-of-principle-1488846993 <comment><USER2> TLDR: WSJ wants students to be nice to racists.</comment>


Linus: Don't Use ZFS - <AUTHOR> https://www.realworldtech.com/forum/?threadid=189711&curpostid=189841 <comment><USER3> Here's his reasoning:

"honestly, there is no way I can merge any of the ZFS efforts until I get an official letter from Oracle that is signed by their main legal counsel or preferably by Larry Ellison himself that says that yes, it's ok to do so and treat the end result as GPL'd.

Other people think it can be ok to merge ZFS code into the kernel and that the module interface makes it ok, and that's their decision. But considering Oracle's litigious nature, and the questions over licensing, there's no way I can feel safe in ever doing so.

And I'm not at all interested in some "ZFS shim layer" thing either that some people seem to think would isolate the two projects. That adds no value to our side, and given Oracle's interface copyright suits (see Java), I don't think it's any real licensing win either."

<comment><USER4> > And I'm not at all interested in some "ZFS shim layer" thing either

If there is no "approved" method for creating Linux drivers under licenses other than the GPL, that seems like a major problem that Linux should be working to address.

Expecting all Linux drivers to be GPL-licensed is unrealistic and just leads to crappy user experiences. nVidia is _never_ going to release full-featured GPL'd drivers, and even corporative vendors sometimes have NDAs which preclude releasing open source drivers.

Linux is able to run proprietary userspace software. Even most open source zealots agree that this is necessary. Why are all drivers expected to use the GPL?

\---

P.S. Never mind the fact that ZFS _is_ open source, just not GPL compatible.

P.P.S. There's a lot of technical underpinnings here that I'll readily admit I don't understand. If I speak out of ignorance, please feel free to correct me.

<comment><USER5> I am also not an expert in this space - but if I understand correctly the reason the linux Nvidia driver sucks so much is that it is not GPL'd (or open source at all).

There is little incentive for Nvidia to maintain a linux specific driver, but because it is closed source the community cannot improve/fix it.

> Why are all drivers expected to use the GPL?

I think the answer to this is: drivers are expect to use the GPL if they want to be mainlined and maintained - as Linus said: other than that you are "on your own".

<comment><USER6> My experience is that linux nvidia drivers are better than the competitors open source drivers.

<comment><USER7> Nvidia proprietary drivers work OK for me, mostly (I needed to spoof the video card ID so KVM could lie to the Windows drivers in my home VFIO setup, but it wasn't hard.)

But it means I can't use Wayland. Wayland isn't critical for me, but since NVidia is refusing to implement GBM and using EGLStream instead, there's nothing I can do about it. It simply isn't worth NVidia's time to make Wayland work, so I'm stuck using X. If the driver were open-source someone would have submitted a GBM patch and i wouldn't be stuck in this predicament.

I can't wait for NVidia to have real competition in the ML space so I can ditch them.

<comment><USER8> No you can use Wayland as long as your window manager/environment supports GBM. Gnome and KDE both do (Which for most Linux users is all that is needed).

Now you can't use something like Sway but their lead developer is too evangelical for my taste so even if I had an AMD/Intel card I would never use it.

<comment><USER9> > No you can use Wayland as long as your window manager/environment supports > GBM.

You can do that on Intel and AMD drivers and other open source graphics drivers, which due to being open source allow 3rd parties like redhat to patch in GBM support in drivers and mesa when required.

Nvidia driver does not support GBM code paths. Therefore wayland does not work on nvidia. And because nvidia driver is not open source, someone else cannot patch GBM in.

<comment><USER10> I'm fairly sure parent meant 'EGLStream', not GBM. KDE and GNOME's Wayland compositors both support EGLStream.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I'll give up Linux on my servers before I give up ZFS

especially so given the recent petulant attitude that broke API compatibility in the LTS branch just to spite the ZFS developers: [https://news.ycombinator.com/item?id=20186458](https://news.ycombinator.com/item?id=20186458)

compete honestly on technical merit, rather than pulling dirty tricks that you'd expect of Oracle or 1990's MS

<comment><USER12> Pretty much my view as well. If Linux becomes incompatible with ZFS in any way, I'll switch to FreeBSD.

That said, after the Oracle Java debacle, I can see why Linus would not be receptive towards merging ZFS into the kernel. I just wish he argued the point on legal issues alone instead of making up stories about non-existent technical flaws in ZFS. The whole thing is basically a work of art. Oracle should consider GPL-ing it and integrating it into Linux directly.

<comment><USER13> I have been using FreeBSD for its better ZFS support for years, and it's great. Highly recommended.

<comment><USER14> FreeBSD has been using the ZFS on Linux code for a while.

<comment><USER15> Not true, not yet.

<comment><USER14> Thanks for the correction, they decided to go that route in 2018, seems like it's not live yet.

</comment></comment></comment></comment></comment></comment><comment><USER16> As a heavy user of ZFS and Linux, what else is there that even comes close to what ZFS offers?

I want cheap and reliable snapshots, export & import of file systems like ZFS datasets, simple compression, caching facilities(like SLOG and ARC) and decent performance.

<comment><USER17> Bcachefs is probably the only thing that will get there. The codebase is clean and we'll mantained, built from solid technology (bcache) and will include most of the ZFS niceties. I just wish more companies would sponsor de project and stop wasting money on BTRFS

<comment><USER18> >stop wasting money on BTRFS

You're saying they should stop supporting a project that was considered stable by the time the other started being developed. Why do that? What makes Bcachefs a better choice?

<comment><USER19> Btrfs is the only FS I used that resulted in complete FS corruption losing nearly all data on disk, not once, but 3 times.

After that, none of the features like compression, snapshots, COW or checksums meant anything to me. I'm much happier with ext4 and xfs on lvm.

<comment><USER20> In the 26 years or so I have used Linux, I have had corrupted filesystems with reiserfs, XFS, btrfs, and ext[23]. In the case of reiserfs and XFS it was practically impossible to recover the filesystem (IIRC reiserfs would reattach anything that resembled a B-tree). For ext[23], it was surprisingly easy to get back most of the data. Never had any corruption with ZFS or ext4. I didn't try to fix the btrfs filesystem, since it was a machine that had to be repurposed anyway.

<comment><USER21> When was it that XFS got corrupted on you? I think as RedHat embraces XFS, I assume it's quite good now.

<comment><USER20> Somewhere between being merged in mainline and 2009.

</comment></comment></comment></comment></comment></comment></comment><comment><USER22> "Don't use ZFS. It's that simple. It was always more of a buzzword than anything else, I feel, and the licensing issues just make it a non-starter for me." \- Linus

I have a strong feeling Linus has never actually used ZFS.

<comment><USER23> I also think he took a reasonable licence issue and conflated it with personal opinion not backed by experience. Nobody who has actually run ZFS says its just buzzwords.

<comment><USER24> The license issue is not actually so clear. The actual license is a good one. Oracle itself it the bigger problem.

</comment></comment></comment><comment><USER25> He's not wrong. ext4 is actually maintained. This matters. ZFS hasn't kept up with SSDs. ZFS partitions are also almost impossible to resize, which is a huge deal in today's world of virtualized hardware.

Honestly Linus's attitude is refreshing. It's a sign that Linux hasn't yet become some stiff design-by-committee thing. One guy ranting still calls the shots. I love it. Protect this man at all costs.

<comment><USER26> "ZFS hasn't kept up with SSDs."

What does that mean?

<comment><USER27> ZFS (or at least ZoL) doesn't scale well to NVMEs:

[https://github.com/zfsonlinux/zfs/issues/8381](https://github.com/zfsonlinux/zfs/issues/8381)

</comment></comment></comment><comment><USER28> I don't blame Linus, but I use ZFS a lot.

I'll drop ZFS the moment I have an alternative with the same features:

\- disk management with simple commands that can create raids in any modern configuration

\- zero cost snapshots

\- import/export (zfs send/recv)

\- COW and other data integrity niceties

\- compression, encryption, dedup, checksums

I am very grateful to the OpenZFS community, and I think they deserve praises for their work. Saying the code is not maintained is quite unfair.

<comment><USER29> So why drop ZFS then?

<comment><USER28> I don't want to drop ZFS for technical reasons, but I do share some of Linus concerns about licensing.

</comment></comment></comment><comment><USER30> He mentioned that he didn't think it was being maintained. It's more or less been formed no?

Has Linus not seen the work that the OpenZFS folks are doing?

ZFS is amazing and I would soon go to a BSD flavor with a fun set of user land utilities than give it up.

<comment><USER31> > _He mentioned that he didn't think it was being maintained._

This news would come as a surprise to the folks at LLNL who work on ZoL:

* [https://github.com/zfsonlinux/zfs](https://github.com/zfsonlinux/zfs)

* [https://zfsonlinux.org/](https://zfsonlinux.org/)

<comment><USER21> Maybe meant not maintained by the first party?

<comment><USER31> ZoL is now the first-party for open sourced ZFS.

</comment></comment></comment></comment><comment><USER32> Remember kids: Oracle has no customers, only hostages!

<comment><USER33> Amen to that

</comment></comment><comment><USER34> Switching to FreeBSD now for my storage. Having a 8TB database setup. Primary DB is running with LVM(cache)/XFS, which gives very satisfying speed, but I really love my secondary mirror DB which storage is on ZFS. I do daily snapshots and daily incremental backups via send/rcv to another ZFS location. No other FS I am aware of provides me with this and that easy functionality. Linus seems to never used ZFS. Although I can understand his issues with the licensing, he is ranting about ZFS. That's a shame.

</comment><comment> yjftsjthsd-h Alright, Linus, I'll make you a deal: I'll consider dropping ZFS when you ship a production-grade BTRFS (or reiserfs or anything else with the same features).

<comment><USER35> Is reiserfs still maintained. After Hans went to prison I didn't think there was much left beyond stagnation.

<comment><USER36> They _really_ needed to rename it.

<comment><USER37> Hans is eligible for parole this month.

<comment><USER36> He still murdered a person. He is quite literally the worst sort of domestic abuser. The kind who kills their partner.

</comment></comment></comment></comment></comment><comment><USER38> Do you know that FreeBSD is actually a usable modern OS these days? ;) I run a FreeBSD desktop with Nvidia drivers without any issues. OpenJDK works great, among other things. And it supports ZFS natively, and root on ZFS is the default installation option.

<comment><USER39> Unfortunately some popular software (like Docker) doesn't work (afaik?) on FreeBSD which might hold a lot of people back.

</comment></comment><comment><USER40> ZFS functionality dwarfs the minor issues Linus has with it in my opinion. I find it to be well maintained, and not just bug fixes but new features keep being added as well. If I couldn't use ZFS on linux anymore, I wouldn't hesitate to setup another system just so I could keep using ZFS.

</comment><comment><USER41> Probably should add Java to that list. The sooner Oracle stops existing, the better.

<comment><USER42> Google and Microsoft too!

<comment><USER43> Microsoft and Google contribute more to open source than any other company.

Source: [https://www.techrepublic.com/google-amp/article/microsoft- ma...](https://www.techrepublic.com/google-amp/article/microsoft-may-be-the- worlds-largest-open-source-contributor-but-developers-dont-yet-care/) [https://techcrunch.com/2019/01/17/google-remains-the-top- ope...](https://techcrunch.com/2019/01/17/google-remains-the-top-open-source- contributor-to-cncf-projects/)

</comment></comment></comment><comment><USER44> "Oracle's litigious nature". What a beautifully short and concise phrase. I immediately had to write this down and stash it as an argument for the next time someone at work pushes to go for "Oracle $product" after having received a bottle of wine from their sales team.

</comment><comment><USER45> Honestly, at this point if I can't get ZFS in Linux I would move to FreeBSD whenever I need big filesystem. How does Linux® Binary Compatibility layer work on FreeBSD?

<comment><USER46> It implements the x86 and x86_64 Linux system call ABI. Linux ELF binaries get vectored to an alternate system call table implemented by the compatibility layer. There are some other components like an implementation of a Linux- compatible procfs. How well it works in practice really depends on how far off the beaten path you go. There are lots of non-essential pieces that are not implemented, but for example I know of people running Steam on FreeBSD.

</comment></comment><comment><USER47> Linus is correct in his arguments. As the lead for the linux project, he shouldn't merge things that he feels isn't up to stuff from a license point of view.

That's why we have different software.

If you asked Theo to merge an encryption algorithm for example into OpenSSH and OpenBSD - he's going to have an opinion about it - and that's his thing.

Why would this be controversial at all?

<comment><USER39> Because people like ZFS and Linux so they want to combine the two.

<comment><USER47> Then they can go ahead and combine the two! ZFS on linux has a whole team of maintainers.

Linus can do what he wants in regards to his branch (which because he's the lead, becomes official Linux), but there's no reason any one else (or any distro) can't do the integration. That's how open source works!

Of course, whoever does the integration may incur Oracle's wrath. Tread at your own discretion. If those people like it so much that they will put up their own money when Oracle's lawyers come calling, that's completely up to them.

In my opinion, people who constantly clamour for such things against the technical judgment of open source maintainers are freeloaders. They can propose ideas, but just because the maintainer doesn't want to do it doesn't mean they can scream bloody murder. Just put up your own money and fork it and/or maintain your own fork, which is exactly what the ZFS on linux community is doing - which is the right thing.

Anyone else can work with the ZFS on linux maintainers to take a bit of the burden on, whether it's rebasing or updating docs on how the integration works, etc. It's a group effort.

</comment></comment></comment><comment><USER48> It's too bad. ZFS is amazing and so ridiculously simple to use and manage if you can find the recent docs among all the old docs online.

Anyone using Stratis? Just noticed it recently went to 2.0. [https://en.wikipedia.org/wiki/Stratis_(configuration_daemon)](https://en.wikipedia.org/wiki/Stratis_\(configuration_daemon\)) Curious to know how it handles device failures, removals, additions and so on.

</comment><comment><USER49> Polite reminder that Kent Overstreet is still plugging away at a new copy-on- write FS for Linux called bcachefs. One day, I hope it'll replace ZFS for my uses.

I'm not involved with the project in any way, apart from sending him a few bucks a month on patreon. It's literally the only open source thing I sponsor; it seems like a really worthwhile effort especially considering Linus' advice here...

</comment><comment><USER26> Perhaps if one wanted to use ZFS they should just use a kernel that supports it?

ZFS is certainly "nice to have" on desktop, but the main use case is going to be servers and NAS. You can use BSD there, it won't bite.

</comment><comment><USER50> Or do use ZFS, just know that Oracle sucks and you have to go through hoops because of it...

Also, while ZFS for me has been performant, that seems like a silly reason to decide to use it or not use it. I think ZFS pools and snapshots would be among the deciding factors to use it or not.

FWIW, as some other commenters have said, I'd rather drop Linux than drop ZFS. I'm actually only even running Linux on my home server right now because I decided to try Proxmox out on it months ago and it was soooo obscenely easy to install I haven't bothered to reset it yet (though I need to for various reasons; Proxmox itself being the first, ha).

Really all I care about for my host OS these days is the ability to do virtualization and GPU pass-through... Linux is an option but not the only one. Having a robust storage system where drives can fail, exist as one logical drive, are replicated, has snapshots (including RAM), and I literally don't have to worry about it-- that though, that's really only available with ZFS.

<comment><USER24> Oracle has not actually done anything yet. Its the lack of believe in the license.

</comment></comment><comment><USER51> Yet another user testimony: For simple volumes and snapshots at home I switched from ZFS to BTRFS because ZFS on Fedora was giving me too many issues. It simply wasn't integrated well enough into the system. Had nothing to do with the ZFS FS implementation, merely the packaging.

Either way, BTRFS works for everything I need it to do and it's native.

</comment><comment><USER52> More technical version of the same discussion here: [https://lore.kernel.org/lkml/CAB9dFdsZb- sZixeOzrt8F50h1pnUK2...](https://lore.kernel.org/lkml/CAB9dFdsZb- email@example.com/t/)

</comment><comment><USER53> Typical Linus bullshit ...

 _" Don't use ZFS. It's that simple. It was always more of a buzzword than anything else, I feel, and the licensing issues just make it a non-starter for me."_

Yeah, just use XFS or EXT4 without ANY data consistency ... you can use FAT32 also, similar level filesystem.

</comment><comment><USER54> Until I have a viable alternative that gives me snapshotting (so I can make consistent backups), that advice is worthless to me.

<comment><USER55> in the application-level, snapshotting is not a way to do "consistent backup"s . consistent backup is a backup with a planned or known state when "restore"ing.

<comment><USER56> Sure it is. Quiesce your application, take a snapshot, then resume application. Then you can back up the snapshot. The alternative can be a lengthy downtime for your application.

</comment></comment></comment><comment><USER57> Maybe offtopic, but I'm impressed by the rest of the conversation that generated that message from Linus: there is a whole thread in which Linus gets to explain with detail various locking mechanism in the kernel, pros and cons, etc.

I think we don't see this normally happening; situations in which the (technical) responsible for the Apple or MS kernels get to answer question and explain with such level of detail.

I think also that is even more interesting than the original blog post that originated that thread. Someone should harvest all these Linus comments and order them in some kind of "lectures" library.

</comment><comment><USER58> His reasons may not be perfect but he's right.

If you use a filesystem that isn't mainline and it breaks it's all on you to figure it out and fix it. Having used experimental filesystems before and been burned I would rather stick with what I know and won't change overnight.

I'll keep an eye open for new filesystems of course but if it's not mainline unless it's for personal hacking no.

> I own several SBC's (Small Board Computer) that do not run mainline kernels. > The company that makes them provides their own patched kernel so if it > breaks I'm up creek but I know who to bitch at.

</comment><comment><USER23> I kind of wish somebody with money took Oracle into court on ZFS and established it doesn't have Oracle taint, so we can move on. Java would be good too but that fight went to the wrong point of law to argue. Opensolaris .. I feel meh about but perhaps it too needs this.

Money doesn't solve all problems, but money can solve legal problems c/f the lawsuits people like newegg do, to get rid of the IPR leeches. (And cloudflare?)

</comment><comment><USER59> So what would be a viable ZFS alternative on a Linux based NAS I'm planning to build in a few months? I'm currently running Nas4Free on a giant rack sized thing I built using a Mini-ITX Atom board years ago, and ZFS works like a charm, but I also intend to move some day to the ARM architecture which unfortunately the *BSD based NAS software doesnt support (yet). I'm tempted by this smaller hardware in particular: [https://wiki.kobol.io/helios64/intro/](https://wiki.kobol.io/helios64/intro/) So far the only viable option would be Openmediavault which supports ZFS only through external modules which I'd be not entirely comfortable with. I'd only arrange disks as RAID1 pairs however.

<comment><USER60> I use BTRFS and it works fine. Just don't use RAID5/6 and you should be good to go.

I've also heard success stories using ZFS on Linux, but I haven't bothered because I'd just rather use something that's in the kernel instead of something outside it.

</comment></comment><comment> geoff-dot Are there any lawyers that can verify the legal claims made? Anyone can file a lawsuit at anytime for whatever reason, that doesn't mean the lawsuit is valid. Sure using ZFS on your home system or even a small implementation is not a big deal but if there's a company with money lawsuits happen.

I would think the wide availability and usage of ZFS and the fact that this is no longer 20 years ago when companies would sue as if they were 19th century tycoons there must be some sort of "well you let ZFS be used this long without suing you can't just let it be open for so long and then sue when it is profitable" sort of statue in American law. Again I'm not a lawyer and I know enough about law to know I do not know enough about law.

<comment><USER61> To be honest, given Oracle's history, I'm not sure I would even trust a lawyer's opinion, since it could still cost you a lot of money to defend against an Oracle lawsuit even if you win.

</comment></comment><comment><USER62> Don't go too far people. Linus's criticism against ZFS is concise: buzzword & licensing.

Here, Linus is putting emphasis on license, not technical whatever details of ZFS. He clearly doesn't use ZFS and is not even interested in the problem ZFS solves. He is only "interested" is his (and community's) control over the ZFS source code.

So, his logic basically becomes this:

ZFS is not mainline-able, so veto it until Oracle changes its attitude - <USER2> simple old FOSS infestation tactic.

So, please, move on, people. The discussion is not even about file system...

<comment><USER24> Actually what stops mainline integration is the believe of the community in the strength of open source licensing.

</comment></comment><comment><USER63> mdam + LVM + ext4 does everything I need to do and more. Thin and thick provisioning, ssd caching, snapshots. If I were to use another file system it would be something like ceph or glusterfs.

</comment><comment> rvp-x Oracle doesn't own all the rights to OpenZFS, people are intentionally adding their own copyright to ensure it stays under a copyleft license, and Oracle can't make it closed source by owning the rights (which they did with the old version).

</comment><comment><USER64> Title is miss-leading tbh, I know its a direct quote from the article but it takes it out of the context of "I don't want to support your third party code".

</comment><comment><USER65> Nicely written Linus, very soft and considerate of other's feelings. Not so funny anymore but overall it will make more people happy :)

</comment><comment><USER66> Both my main servers at my house use ZFS, neither use Linux on bare metal. FreeNAS (multiple ZFS mirrors) and SmartOS running a ZFS mirror.

</comment><comment><USER67> I hope bcachefs will get to usable state soon.

</comment><comment><USER68> > and given Oracle's interface copyright suits (see Java)

This seems pretty ironic, given that the whole problem is Linux developers trying to claim and enforce that only other GPL code is allowed to use its APIs (which, IMHO, goes beyond both the intent and letter of the license). The issues aren't exactly the same, but Linux sure seems to be a lot closer to Oracle than to Google here.

</comment><comment><USER69> The situation rules out Linux for many potential applications and side projects I might undertake.

</comment><comment><USER70> Reminds me of Facebook and React licensing scandal back in 2016/17.

Can never trust someone who easily changes their licenses from private to public. Who knows in future they might change it back to private!?

</comment><comment><USER71> Yes, don't use ZFS! Use FreeBSD and ZFS!

</comment><comment><USER72> The Linux kernel broke user space by egregiously decreeing that kernel modules cannot use certain CPU unless they are GPL. Derived work, my ass.

</comment><comment><USER73> So is Linus back from his break now?

</comment><comment><USER74> linus mouthing off on something he doesn't care to learn about: news at eleven.

</comment><comment><USER75> Honestly ext4 is fine for most use cases, even SSDs. If you really need more performance look at HAMMER, it's meant for high availability. At that point you shouldn't be running Linux anyway, even with RT_PREEMPT it's not going to be the most performant for those kinds of RTOS workloads anyway.

<comment><USER76> HAMMER2 is now the default on DragonflyBSD. If I made a bunch of money during the boom and could spend my days doing open source (like Matt Dillon), porting HAMMER2 might be one of the projects I'd pick up.

<comment><USER75> That would be a neat project. It's hard to set aside the time when you don't have much in the time bank. I've been wanting to do a lot more research on kernel scheduling, writing my own alternative scheduler, and more research on RTOS design and real-time computing in general.

</comment></comment></comment><comment><USER77> So my take on this is that the future is Ceph and you would do better running single node ceph than ZFS or BTRFS.

</comment><comment><USER78> Oracle rears its head again lolz

</comment><comment><USER79> I'm glad Linus is now acting as legal council for Linux. It's scary that he is implying he's making these decisions without aid to council

</comment><comment><USER72> ZFS threatens the power of Linux and therefore Linus' job. That's the long and short of it. Mac and Windows have been able to maintain stable interfaces for binary kernel drivers for 20 years.

</comment><comment><USER80> i wouldn't use ZFS either. my guess is 90% of ZFS users have never run failure scenarios and grappled with potential failure modes of ZFS, nor even know that you really need ECC RAM to run ZFS without fear of existential data corruption due to bit flips.

furthermore, the allure of ZFS means people aren't testing their disaster plans until it's too late, bc ZFS is "resilient".

lastly, data recovery is expensive as all hell if even possible. i am talking order of magnitude four figures for 100s of GBs and sketchy probabilities.

ZFS is the ultimate "pet" in the pets vs. cattle continuum. in a world where shoddy engineering and "break things fast" is the zeitgeist, i'm happy to use a classic dumb FS like ext4 and pathologically backing it up and testing said backups.

i would not risk any of my personal treasured data to ZFS due to inherent existential threats. i would implore ZFS users to evaluate and test their setups, and especially use ECC RAM - like, starting now - to protect their assets.

<comment><USER81> > you really need ECC RAM to run ZFS

This is FUD. ZFS does as well, if not better than the average file system with its focus on integrity, online scrubs etc. On the other hand "use ECC RAM" is standard best practices for any mission critical data, no file system magic is going to fix computer RAM lying to you 100% of the time. Its the standard recommendation for ZFS because its rare to be deployed in environments that can tolerate data corruption.

> pathologically backing it up and testing said backups.

ZFS doesn't remove the need for backups and no one seriously makes that arguments. Though snapshots + send/receive make them very easy to do in ZFS.

<comment><USER82> I've detected broken memory chips thanks to BTRFS checksumming finding errors, luckily before it had a chance to corrupt any written data. So if anything, a properly checksummed filesystem makes non-ECC RAM less dangerous.

</comment></comment></comment><comment><USER83> So, is Linus pretty much the same guy? I know he took some time off and the kernel team adopted a code-o-conduct, and had that introspective e-mail ... but now that he's back ... is it any different?

<comment><USER84> Because he didn't attack any individual, use derogatory language, or break the code of conduct?

He never agreed to roll over and agree with every technological persuasion, he agreed to be nicer to people. This was nice to people, but rude to a technology (ZFS), that seems consistent.</comment></comment>


Ask HN: Self driving car startup ideas - <AUTHOR> I have been very interested by the self driving car progress that has been made thus far. There are lot of interesting computer science problems to be solved to make self driving cars work. There are also lot of companies and some very big ones that are involved in making self driving cars a reality.  Is there any niche space (like collecting more granular data) in this domain for a startup to exist? <comment><USER2> It's going to be hard to out data collect Google (think of all the Android- phone miles and uses of Maps over the last few years on top of the Street View project), or even Tesla with it's field deployed systems. Even GM has years of OnStar data.

There might be a data play on dark-data...all those tables local engineering department traffic studies only accessible as PDF's, but it's hard to see that as non-replicable for a company that can stream data from a cars sensors to its servers in real time.

For a startup, there's an open question of how self-driving cars change the landscape of tier-two and tier-three automotive suppliers. What I mean is that what sort of new opportunities are made available by self-driving cars that are equivalent to manufacturing actuators or air-conditioning subassemblies.

The problem in the space is that the automotive industry is capital intensive. A billion dollars isn't going to ripple the pond and there are lots of companies with the habit of spending many times that. That's the way commodity industries work.

Good luck.

</comment><comment><USER3> Think of new perspectives of the passengers and owners.

What would you do if you had a robotic chauffeur to take you wherever you wanted? Would you go places that you would not normally go to now? Cars drop you off at your destination and park themselves (maybe call you to agree to whatever the lot or garage, recharge station is charging)

SD-Cars make the driver the passenger... who will now be able to look out and see the roses... listen to an interactive on-the-raod tour. Read the billboards, notice that fruit stand etc. Former drivers will be asking "are we there yet?" Parents can truly interact with their kids on the road.

People that didn't travel as much due to health or medical reasons may be traveling more.

A lot more day planners, maps, review sites, etc. will probably interact more with the vehicle...

</comment><comment><USER4> I've been working on some for the past years. You should think of the interactions a vehicle will have. There are:

\- vehicle to vehicle (V2V)

\- vehicle to infrastructure (V2I)

\- vehicle to cloud (V2C)

Each of those niches has niches of their own. I just finished working on the V2C niche by developing an API to move data between vehicles and updating them automatically (not realtime, though). What can you do with that kind of data? Well, if you have cars operating data (engine temperature, speed, etc.) you can come up with a bunch of interesting stuff.

Don't wait too much. This self driving market is reaching peak hype soon.

</comment><comment><USER5> Data. A kaggle for self driving data would be fantastic.

As a computer vision researcher, getting my hands on data 'at scale' is a really tough problem.

</comment><comment><USER6> In-car entertainment would be nice, if we could eliminate the need for concentration.

<comment><USER7> I've wondered a bit about the future of infotainment systems for cars. It seems to me that infotainment systems arose out of a need for drivers to be able to interact with their multimedia and mobile devices in a safe manner. Will there still be a need for infotainment systems once we have self driving vehicles? I'm sure people will still want to be able to play audio over the car speakers for a better audio experience and have a large screen for watching video content. But, in general it seems most of the features infotainment systems have today will be unnecessary--people will just use their devices directly.</comment></comment>


Elvish – An experimental Unix shell in Go - <AUTHOR> https://github.com/xiaq/elvish <comment><USER4> Author here. Wow, I completely didn't expect this to hit HN this early. I did a talk at FUDCON Beijing 2014 (slides: [http://go- talks.appspot.com/github.com/xiaq/elvish-fudcon201...](http://go- talks.appspot.com/github.com/xiaq/elvish-fudcon2014/elvish.slide)) and warned that "this might eat your ~, so don't post this on HN yet". My original plan was to only post this HN when it's usable, and by "usable" I mean I use it as my login shell on my laptop. (My login shell is still /bin/zsh for now.) But apparently someone else just came across it on the Internet and I should have put up this warning in the README. :)

I'm on the go now, and will come back to add more details and try to respond to questions here.

<comment><USER5> In one example you pipe a list through some functions, does every function parse the list from a string or is there some protocolly side channel action going on for the typing?

You said you had read about powershell, would be interesting to know if you plan on doing something with datastructures as well as that is its power feature :)

</comment></comment><comment><USER6> Huh, wow. I was recently thinking about and prototyping a shell seemingly very similar to this. Explicit goals I have in common include:

\- Focus on the lispy parts of sh - prefix functions everywhere and a simple, regular syntax. Not that anything with FD redirections as a primitive can get anywhere near S-expressions' simplicity, but shell is naturally more regular than most programming languages (even if bash goes out of its way to be complex).

\- Be a real programming language that doesn't make you reach for awk or perl (separate, incompatible environments) to do moderately complex things sanely.

\- Emphasize using pipelines rather than 'backwards' function application to naturally string together operations.

\- Emphasize lambdas.

\- Typed (i.e. non-string) pipes.

\- Syntax highlighting.

\- Nonzero-exit modeled as exceptions. (I think elvish is doing this, but I haven't reviewed the code in detail.)

Things I want but don't see in the readme include:

\- A story for passing typed data around between processes (potentially in different languages) rather than just builtins. I'm not sure exactly what the story should be, but it should exist.

\- A somewhat more succinct syntax, with metaprogramming kept in mind.

\- A JIT, eventually.

There seems to be a lot more in the first category than the second... give up? But elvish isn't anywhere near done, and I want to do things all my own way for once. I'll keep going, and post my project on HN if it gets anywhere. :)

But to the OP, congratulations on elvish. Hope it gets finished and seriously takes off.

<comment><USER7> I think the points about types are really interesting. It sounds like a worthy project for that alone.

Does there exist anything like 'type protocols' across languages? Would it be feasible?

<comment><USER6> Well, there's JSON and variants. Probably a lot simpler than what you had in mind, but if Unix pipes were based on JSON (and had a suitable shell language to work with it), that would already make many tasks easier, like

\- Grep the output of ps, without having to count column numbers or do special work to preserve the header line after filtering.

\- Search for files matching some conditions, without remembering the weird and unique syntax of find(1) - instead you would write something vaguely along the lines of

        ls | filt {< $1.size 500} {eq $1.type file}

where the stuff after the pipe is the shell language, so theoretically more memorable than

        find -size -500c -type f -maxdepth 1

As a bonus, if you want to cache the output for multiple searches rather than going through the the kernel every time (OS X find is rather slow on huge source trees), you can save the output of ls to a file and keep the rest the same. Good luck doing that with find.

\- Handle filenames with spaces and newlines without issues. Simple, but newlines at least are near impossible to solve in the standard shell environment - only a few select tools support null-separated lists. Spaces are easier... unless you want such extravagances as multiple filename columns in a table.

Of course it's not that simple: structured data can sometimes be hard to work with and formatting for display is an issue; Unix's "everything should be plain text" philosophy didn't come out of nowhere.

But I honestly believe that it's time to reexamine that tenet.

<comment><USER7> Let's take a concrete example: Say you have a programming language L that has a parser that is implemented in lang. A, and an interpreter implemented in lang. B. Now if you want the interpreter (in B) to interpret the program, you need some structured data to come from the parser (in A). Abstract syntax trees (ASTs) are the usual conceptual tool for this. Now assume that the parser outputs an AST that is described by something, like for example an algebraic data type (ADT). Assume that the structure of the ADT conforms to some type protocol. Now the interpreter can implement the ADT in its language (B) and thereby take the ADT directly as input. Now you can use a "typed pipeline" to easily combine these two programs:

> parser directory/file.lang | interpreter

Does this make sense? Would it have some utility?

</comment></comment></comment></comment><comment><USER8> Tangentially related: readers interested in alternatives to bash might be interested in a golang library called Gosh that provides shell-ish dsl, which you can see an example of here: [1].

Author here; I use it regularly to replace bash scripts in system glue code -- using golang channels to pipe data between shell commands is awesome. It's heavily (heavily!) inspired by amoffat's "sh" library [2] which lets one call any shell program as if it were a function.

But, Gosh exists to scratch some itches as a shell scripting alternative. It's nowhere near the full-fledged interactive shell environment Elvish is gunning for. Elvish looks to have a very exciting future :)

[1] [https://github.com/polydawn/pogo/blob/master/gosh- demo.go](https://github.com/polydawn/pogo/blob/master/gosh-demo.go)

[2] [https://github.com/amoffat/sh/](https://github.com/amoffat/sh/)

</comment><comment><USER9> This looks really cool and promising! I was thinking of a shell along these lines, props to you for writing it.

I do take issue with one of the things you wrote though:

> a more complex program is formed by concatenating simpler programs, hence > the term "concatenative programming". Compare this to the functional > approach, where constructs are nested instead of connected one after > another.

There's nothing about the functional approach that necessitates writing "nested" functions, as you describe. With higher-order functions, you can structure your code in almost any arbitrary way. In particular, haskell's >>= operator has this behavior, and you can easily write an operator like

        x |> f = f x

to facilitate something like

        2 |> addOne |> timesTwo |> show |> reverse |> putStrLn

Or whatever one desires :)

<comment><USER4> I was actually shown this by another Haskeller once, and I agree that Haskell is a very expressive language allowing for a myriad ways of doing things, including the concatenative paradigm.

But I have always doubted that if the language doesn't explicitly endorse a particular paradigm, you will find it pretty awkward to work with other people. Which is why less expressive languages that emphasize particular ways of doing things still make sense.

</comment></comment><comment><USER10> Heavy use of backquote might be a problem because it's one of the first keys to drop when keyboards are localised.

<comment><USER11> +1. On German keyboards for example, the backtick is on a dead key, meaning that it is only printed if you press the spacebar afterwards. Thanks to dead keys, you can e.g. get "é" by typing <´> <e>. But it is a severe annoyance if you actually want to get "`" (<Shift>+<´>, <Space>).

<comment><USER12> I switched to using a compose key instead of dead keys, because I just end up writing much more code (and english) anyway, so it's more efficient than actually having dead keys in the end.

<comment><USER13> I'm glad I switched to Colemak way before having to type german umlauts, so I had to learn a few easy combos and keep the rest of the layout unchanged.

</comment></comment></comment></comment><comment><USER14> The shell looks great, good work!

On a side note, I have to say I love README's that look like this. The author did a couple things I really like. 1) They attributed feature ideas to the people they got them from. 2) They listed the good things right along with the bad/lacking. 3) Screenshots.

</comment><comment><USER15> Hey guys! For anyone who want's to try Elvish without having to deal with golang compilation and such, I just created a terminal.com snapshot. Just register and spin up my elvish container. [https://terminal.com/tiny/UtZ8VSgWJL](https://terminal.com/tiny/UtZ8VSgWJL)

As it's in development, I will upgrade it again in a couple days.

</comment><comment><USER16> Hey, that name looks familiar!

Best of luck to xiaq, a fellow fish shell contributor. It's definitely good to see more innovation in the ossified command-line shell space.

Assuming this is planning on using Go's concurrency support, it will be very interesting to see how it deals with the nasty interactions between fork and multithreading.

<comment><USER4> Thanks ridiculous_fish. I'm still more or less following fish development, and elvish owes a lot to fish.

For now syscall.ForkExec ([http://godoc.org/syscall#ForkExec](http://godoc.org/syscall#ForkExec)) is sufficient for me. It is written to avoid async-unsafe calls between fork and exec, which is also what fish does IIRC.

<comment><USER17> Out of curiosity, why do shells need to use fork?

Note: I am not familiar with the implementation techniques behind shells.

<comment><USER16> The essential function of a shell is to start processes. In Unix and Linux, the usual way to start a new process is to clone yourself (fork), and then have the clone replace itself with a new executable image (exec).

It's kind of roundabout, but the brilliance of this approach lies in what happens between those two calls. There exists process metadata that survives the call to exec, such as where stdout goes, or whether the process is in the foreground. So shells call fork, the clone sets up the metadata for the target process, and then calls exec to start it.

But when a multithreaded program forks, the clone is very limited in what it can do (before exec). In particular, the clone must not acquire a lock that may have been held at the time of fork (which usually rules out heap allocations!). Now say something goes wrong: the clone needs to print an error message, _without_ locking anything. But lots of functions acquire locks internally. How do you know what's safe to call?

fish solves this by providing its own known-safe implementations of printf() and friends, and being careful to only call those after fork. Go solves this by disallowing any user-code between fork and exec. Instead it provides a single posix_spawn-like entry point called ForkExec, and does some black magic (like raw syscalls - <USER2> [https://code.google.com/p/go/source/browse/src/pkg/syscall/e...](https://code.google.com/p/go/source/browse/src/pkg/syscall/exec_linux.go#39) ) in between the underlying fork and exec calls.

My hunch is that a shell written in Go will eventually bump up against the limitations of ForkExec. Happily Go has a strong FFI, so you can hopefully implement this stuff in C, if it comes to that!

</comment></comment></comment></comment><comment><USER18> If I type 'mplayer ' and press tab in a folder with only one video file, but multiple text files, does this shell autocomplete the media file? It's pretty frustrating that even the most basic stuff like these are not enabled by default on your average Linux distribution. I wonder if everyone simply stopped developing unix shells.

I'm aware that one can install support for proper autocompletion by installing additional stuff. That shouldn't be required, smart autocompletion should work out of the box. I don't want to configure and/or install stuff for every single application that I use.

<comment><USER19> Bash Completion[1] scripts are what provide this feature; perhaps fewer Linux distributions are including them. I recommend keeping them in your dotfiles[2] and loading them in your .bashrc[3]. This is nice because Bash Completion operates by filename, meaning you can take any project's bash completion script and install it at `$bash_completion/completions/script-name`.

[1] [http://bash-completion.alioth.debian.org/](http://bash- completion.alioth.debian.org/)

[2] [https://github.com/oinksoft/dotfiles/tree/master/lib/bash- co...](https://github.com/oinksoft/dotfiles/tree/master/lib/bash-completion)

[3] [https://github.com/oinksoft/dotfiles/blob/master/bashrc#L22-...](https://github.com/oinksoft/dotfiles/blob/master/bashrc#L22-L24)

</comment></comment><comment><USER20> I've been tinkering about with writing my own shell at home, as an excerise in learning more about unix etc but bumped up against the limitation in that proper job control is currently impossible to do from within go (off the top of my head it was something to do with the inability to set the process group correctly for forkexeced processes). How did the author get around this, or does Elvish not have the ability to put processes into and out of the background?

</comment><comment><USER21> It would be nice if

        put 1 2 3 4 5 | filter {|x| > $x 2} | map {|x| * 2 $x}

could be written just as

        put 1 2 3 4 5 | filter > $_ 2 | map * 2 $_

<comment><USER7> Some languages have a sort-of default variable name for cases like this, namely "it":

> put 1 2 3 4 5 | filter > $it 2 | map * 2 $it

<comment><USER22> As zokier was presumably pointing out, other languages have a _different_ sort-of-default variable name, namely `$_` ([http://c2.com/cgi/wiki?DollarUnderscore](http://c2.com/cgi/wiki?DollarUnderscore)). :-)

</comment></comment></comment><comment><USER23> Hmmm...it's not building for me:

      $ go get github.com/xiaq/elvish
      # github.com/xiaq/elvish/edit/tty
      dev/go/src/github.com/xiaq/elvish/edit/tty/termios.go:20:   undefined: syscall.TCGETS
      dev/go/src/github.com/xiaq/elvish/edit/tty/termios.go:24: undefined: syscall.TCSETS
      dev/go/src/github.com/xiaq/elvish/edit/tty/termios.go:49:   cannot use &term.Lflag (type *uint64) as type *uint32 in   argument to setFlag
      dev/go/src/github.com/xiaq/elvish/edit/tty/termios.go:53:   cannot use &term.Lflag (type *uint64) as type *uint32 in   argument to setFlag
      # github.com/xiaq/elvish/sys
      dev/go/src/github.com/xiaq/elvish/sys/select.go:66: not   enough arguments to return

I opened up an issue for you: [https://github.com/xiaq/elvish/issues/16](https://github.com/xiaq/elvish/issues/16)

<comment><USER24> I think this is because you are on an older version of Go. Try it with Go 1.3

<comment><USER23> I am using Go 1.3.

      $ go version
      go version go1.3 darwin/amd64

<comment><USER24> It builds for me with 1.3 (linux/amd64) on Ubuntu, so I'm guessing it somehow works on Linux but not Mac.

EDIT: Specifically, the first two lines are complaining about an undefined syscall and the next two are complaining about something terminal-related being 64-bit where 32-bit is expected, so those certainly seem like plausible things that would differ across OSes.

</comment></comment></comment></comment><comment><USER25> Clojure has -> specifically to facilitate writing pipeline code that doesn't read backwards.

<comment><USER26> Or, in this case, ->>:

      (def lols (->> strs
                     (filter #(re-find #"LOL" %))
                     (map upper-case)
                     sort))

How I read it: take strs, filter the strings that contain "LOL", turn them into upper case and then sort them. Basically it reads the same as the pipeline example in the README.

</comment></comment><comment><USER27> Many alternative shells popping up recently. Someone already mentioned the Fish shell [1] in this thread. There is also Xiki [2] and its recent Kickstarter campaign [3].

[1] [http://fishshell.com/](http://fishshell.com/) [2] [http://xiki.org/](http://xiki.org/) [3] [https://www.kickstarter.com/projects/xiki/xiki-the- command-r...](https://www.kickstarter.com/projects/xiki/xiki-the-command- revolution)

</comment><comment><USER28> Xerox PARC environments and their derivatives keep being partially reinvented.

I really wonder how computing would look like if those systems had succeed in the market, instead of UNIX.

</comment><comment><USER29> Unrelated, but I would like to note that you shouldn't use subpixel anti- aliasing in text in images, especially ones that will be shown by a web- browser. You never know whether the user's screen is rotated or not; if it has three subpixels per pixel, or if it's pentile or similar; or if it is high-DPI and therefore the image is zoomed; and even if none of those are the case, a lot of people dislike the coloured fringes.

<comment><USER4> Good to know that, thanks. I have captured and pushed the screenshots with subpixel turned off.

</comment></comment><comment><USER30> This is awesome! Necessity is the mother of invention, and all that. The idea of using lispy syntax while dropping the requirement for the outermost pair of parentheses is definitely a neat idea - I'll try the shell out in practice to see how much easier it makes usage, but it seems like it would allow for 99% of the consistency of Lisp/Scheme less 20% of the annoyance for general shell usage.

Looking forward to what's in store.

<comment><USER31> LispWorks:

        CL-USER 7 > + (sin 1) (cos 2)
        0.4253241

</comment></comment><comment><USER32> I get this error:

clang: error: no such file or directory: 'libgcc.a'

</comment><comment><USER33> I really like in-shell floating point operations. But this:

        > / 1 0
       +Inf

Is not the correct answer - even as a limit - since the limit of 1 / x (when x -> 0) can be +Inf or -Inf.

<comment><USER4> The 0 is a positive one.

        > / 1 -0
        -Inf

BTW this is just IEEE floating point.

<comment><USER33> Ah yes indeed [1], I didn't know.

[1] [http://en.wikipedia.org/wiki/IEEE_floating_point#Exception_h...](http://en.wikipedia.org/wiki/IEEE_floating_point#Exception_handling)

</comment></comment></comment><comment><USER34> So will it work with a gccgo?

</comment><comment><USER35> "It attempts to prove that a shell language can be a handy interface to the operating system and a decent programming language at the same time; Many existing shells recognize the former but blatantly ignore the latter."

Wasn't that the reasoning behind csh[1]? (She scripts csh by the c source). Did you have a look at plan 9's rc[2]?

I welcome attempts at new/better shells -- doesn't look like elvish will be my saviour (partly due to the heavy use of backticks) -- but there is always need for fresh blood in the battle for the terminal.

I suppose that "vi keybindings that makes sense" and "a programmable line editor" is meant to indicate that rlwrap isn't good enough? I must say, after a few years (has it really been years) of "set editing-mode vi" in .inputrc, I actually think it works kind of nice with (plain) bash. I suppose there's room for improvement in terms of history editing etc... But either due to lack of imagination or force of habit, I've never really felt a pull towards zsh (or fish, or other "improved" shells). But playing around with ipython and/or Conque for vim has made me consider looking for greener shells than bash.

The secret, I think, is to avoid doing to much in the shell, and rather try to subtly improve on the "simple programs build complex pipes"-idea. I actually think some rethinking of core command line tools (cat/tac/tee, grep/sort/uniq, seq etc) might be a better investment than "better syntax".

Not that better syntax is a bad idea -- a "strict" subset of modern bash would be good, with saner handling of words/expansion/substitution -- essentially defaulting to proper checking for empty variables ("${might_be_empty}a" == "a") (but isn't [[ -z "${var} ]] always better anyway..?), always defaulting to "${var}" rather than $var, ${var}, and preferring var="$(some_command_that_outputs)" to var=`dirty backtick command`...

Essentially getting rid of all the crazy old cruft that's needed for backwards compatibility, and defaulting to sane, modern versions (it's what's hard about scripting (especially posix [k|b])sh -- there are 5 wrong ways to do everything, 2 mostly right and 1 perfect -- but which is perfect often depends on context...).

[1] I'm _not_ a csh-fan, for some reasons, see: [http://www.faqs.org/faqs/unix-faq/shell/csh- whynot/](http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/) But mostly I'm just grumpy and conservative, and having mostly figured out how to properly get things right in ksh/bash, I stubbornly refuse to use something else ;-)

[2] [http://swtch.com/plan9port/man/man1/rc.html](http://swtch.com/plan9port/man/man1/rc.html)

<comment><USER36> Ironically, Rob Pike eschews big shell scripts.

If you want a programming language, you know where to find one.

</comment></comment><comment><USER37> Yep, I just read that as Elvis with Sean Connery's accent... Nice work though.

</comment><comment><USER7> > It attempts to exploit a facility Shell programmers are very familiar with, > but virtually unknown to other programmers - the pipeline.

Really?

It seems that Unix pipes are the go-to example of what you might call pipeline programming, as if it originated there or because every programmer is a shell- programmer first and foremost. But I'm not sure that this is such a secret technique exclusive to shell programmers - object-oriented languages can and does seem to like to use "fluent interfaces", I think its called, which has the same pipelining style. Functional programmers are able to and probably find it convenient to use a "pipeline style" on longer expressions that are essentially long chains of function application or function composition - <USER3> just have to flip the order of the operators for function application and function composition, respectively. This is possible in languages like Haskell, and I think it is even pretty idiomatic in F#.</comment>


Breweries Helped Keep a Pre-Columbian Empire Together - <AUTHOR> https://www.atlasobscura.com/articles/alcohol-wari-empire <comment><USER2> The article uses the term Ale, I understand that to _originally_ mean beer bittered without hops.

This doesn't have barley, or seemingly any malted grain, so is there a better word?

<comment><USER3> Other than fermented drink, I can't think of one. Cider can be extended to fermented fruits but maybe not berries or corn/maize.

<comment><USER2> Presumably berries would be wine?

I always understood cider to be apples, Perry was made with pears, recent branding seems to have got rid of the differentiation though. There's mead which is honey. I've tried googling for potato based drinks, but I only get results for potato beer which suggests it's potentially palatable.</comment></comment></comment>


Trump administration sees a 7-degree rise in global temperatures by 2100 - <AUTHOR> https://www.washingtonpost.com/national/health-science/trump-administration-sees-a-7-degree-rise-in-global-temperatures-by-2100/2018/09/27/b9c6fada-bb45-11e8-bdc0-90f81cc58c5d_story.html <comment><AUTHOR> _" The draft statement, issued by the National Highway Traffic Safety Administration (NHTSA), was written to justify President Trump's decision to freeze federal fuel-efficiency standards for cars and light trucks built after 2020. While the proposal would increase greenhouse gas emissions, the impact statement says, that policy would add just a very small drop to a very big, hot bucket."_

Unbelievably evil.

<comment><USER2> Fuel efficiency standards kill people by reducing crash safety.

<comment><USER3> That's a claim in the report, but it's not well supported by evidence. A fuller examination (which you should have written or linked to in some way) in this article: [https://arstechnica.com/cars/2018/08/epas-rationale-for- slic...](https://arstechnica.com/cars/2018/08/epas-rationale-for-slicing-fuel- standards-rife-with-logical-fallacies/)

On a related note, I can't help observing that the same people who complain about the uncertainties in climate science tend to have a childlike faith in economic models that say the cost of mitigating it is just going to be too much.

<comment><USER2> There is an intrinsic trade off between cost, fuel efficiency, and crash safety.

Let's not resort to a childlike claim things are complicated, thus agrees with whatever you want to be the null hypothesis.

<comment><AUTHOR> Since 90% of humans will die in the described climate outcome where we don't drastically change fuel efficiency it seems like - while you're right - there's really only one logical choice.

Also, your went right to the "accuse your opponent of some reductionist version of their point" disappointingly quickly (acknowledging that their "child like" jibe wasn't altogether called for, although it's not clear it was completely directed at you).

Arguing seems like a very poor use of a very limited time to solve this for the sake of the next few generations of humans.</comment></comment></comment></comment></comment>


What do you use for accounting/bookkeeping in your startup? - <AUTHOR>

Hello, I'm doing some research for a new product and i'm wondering what tools/solutions startups / small businesses use for their day to day book keeping/ accounting.<p>please share! <comment><USER2> Xero here.</comment>


Show HN: Product Manager Interview Question - <AUTHOR> https://pminterviewquestion.com <comment><AUTHOR> I would love to be a product manager at a great technology company so I built a quick app to help me step through various recommended interview questions in a way that mimics a real interview. It is also a good script for the friends I convince to give me a mock interview. I hope it will be useful for anyone else who is going through the same process.

I'd be happy to hear what you think of it.</comment>


"Only $4 of an iPod that costs $150 to produce is made in China" - <AUTHOR> http://online.wsj.com/article_email/SB10001424052748703312504575141790705775672-lMyQjAxMTAwMDIwOTEyNDkyWj.html

<comment><USER2> I don't understand it: why would the intermediate goods not be accounted for? Some stuff goes into a country, some stuff goes out of a country. The difference in value is probably what people are looking for? Why should it matter if the goods are "intermediate" or not?

<comment><USER3> Intermediate goods aren't accounted for because it's complicated and difficult to figure out.

It matters because it misrepresents the trade deficit, which is a sensitive political issue. As the article points out, the real U.S. trade deficit with China may actually be 30% lower while the trade deficit with Japan may actually be 25% higher.

<comment><USER4> This could be a case where the SourceMap project could provide useful info. e.g. <http://www.sourcemap.org/object/ipod>

</comment></comment></comment><comment><USER5> The previous WSJ article about that study:

[http://www.nytimes.com/2007/06/28/business/worldbusiness/28s...](http://www.nytimes.com/2007/06/28/business/worldbusiness/28scene.html)

$73 of the $299 price was a Japanese hard drive. $80 went to Apple in America.</comment>