Amazon S3 will no longer support path-style API requests - <AUTHOR> https://forums.aws.amazon.com/ann.jspa?annID=6776 <comment><USER3> One important implication is that collateral freedom techniques [1] using Amazon S3 will no longer work.

To put it simply, right now I could put some stuff not liked by Russian or Chinese government (maybe entire website) and give a direct s3 link to [https://](https://) s3 .amazonaws.com/mywebsite/index.html. Because it's https — there is no way man in the middle knows what people read on s3.amazonaws.com. With this change — dictators see my domain name and block requests to it right away.

I don't know if they did it on purpose or just forgot about those who are less fortunate in regards to access to information, but this is a sad development.

This censorship circumvention technique is actively used in the wild and loosing Amazon is no good.

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

<comment><USER4> You cannot solve a political problem with a technical solution.

<comment><USER5> Sure you can. Weapons research is a very common counterexample; people have been solving political problems with technical solutions ranging from sharpening spear-heads to achieving nuclear chain reactions.

(Of course "who is politically right" and "who has the most technical expertise on their side" are at best tenuously related, but that's a different and longstanding problem. If you believe you're politically right and you have technical expertise on your side, use it.)

<comment><USER6> Are there any non-violent technical solutions? I think we all know that's what that person really meant.

<comment><USER7> Radio Free Europe is a technical, non-violent solution to a political problem.

Viagra solved tiger poaching political problem.

</comment></comment></comment></comment></comment><comment><USER8> What kind of company deprecates a URL format that's still recommended by the Object URL in the S3 Management Console?

[https://www.dropbox.com/s/zzr3r1nvmx6ekct/Screenshot%202019-...](https://www.dropbox.com/s/zzr3r1nvmx6ekct/Screenshot%202019-05-03%2019.32.48.png?dl=0)

There are so, SO many teams that use S3 for static assets, make sure it's public, and copy that Object URL. We've done this at my company, and I've seen these types of links in many of our partners' CSS files. These links may also be stored deep in databases, or even embedded in Markdown in databases.

This will quite literally cause a Y2K-level event, and since all that traffic will still head to S3's servers, it won't even solve any of their routing problems.

Set it as a policy for new buckets, if you must, if you change the Object URL output and have a giant disclaimer.

But don't. Freaking. Break. The. Web.

<comment><USER9> Also in millions of manuals, generated PDFs, sent emails... Some things you just can't "update" anymore.. It's really disastrous change for the web data integrity.

<comment><USER10> One of the magicians in Las Vegas (the one at the MGM) even used s3 image links in emails to send emails to everyone "predicting" the contents of something that hadn't happened.

<comment><USER11> David Copperfield does that.

</comment></comment></comment></comment><comment><USER12> Amazon explicitly recommends naming buckets like "example.com" and "www.example.com" : [https://docs.aws.amazon.com/AmazonS3/latest/dev/website- host...](https://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting- custom-domain-walkthrough.html)

Now, it seems, this is a big problem. V2 resource requests will look like this: [https://example.com.s3.amazonaws.com/..](https://example.com.s3.amazonaws.com/..). or [https://www.example.com.s3.amazonaws.com/..](https://www.example.com.s3.amazonaws.com/..).

And, of course, this ruins https. Amazon has you covered for * .s3.amazonaws.com, but not for * .* .s3.amazonaws.com or even * .* .* .s3.amazonaws... and so on.

So... I guess I have to rename/move all my buckets now? Ugh.

<comment><USER13> The point of that is solely for doing website hosting with S3 though - <USER2> you'll have a CNAME. Why would you name a bucket that way if you're not using it for the website hosting feature?

<comment><USER14> It also comes up when working with buckets of others. Right now if you build a service that is supposed to fetch from a user supplied s3 bucket the path access was the safest.

Now one would need to hook the cert validation and ignore dots which can be quite tricky because deeply hidden in an ssl layer.

<comment><USER5> How does the S3 CLI handle this? Do they hook cert validation? (I assume they _must_ actually validate HTTPS...)

<comment><USER14> Pretty sure you get a cert error or they still use paths. Boto (what it's build on) has an open issue for this for a few years now.

</comment></comment></comment></comment></comment><comment><USER15> Does anyone have insight on why they're making this change? All they say in this post is "In our effort to continuously improve customer experience". From my point of view as a customer, I don't really see an experiential difference between a subdomain style and a path style - one's a ".", the other's a "/" \- but I imagine there's a good reason for the change.

<comment><USER13> Three reasons -

First to allow them to shard more effectively. With different subdomains, they can route requests to various different servers with DNS.

Second, it allows them to route you directly to the correct region the bucket lives in, rather than having to accept you in any region and re-route.

Third, to ensure proper separation between websites by making sure their origins are separate. This is less AWS's direct concern and more of a best practice, but doesn't hurt.

I'd say #2 is probably the key reason and perhaps #1 to a lesser extent. Actively costs them money to have to proxy the traffic along.

<comment><USER16> So "improving customer experience" is really Amazon speak for "saving us money"

<comment><USER13> Makes it faster, reduces complexity and would allow them to reduce prices too

<comment><USER17> Pricing is set by markets based on competitors' offerings. Reduced costs could simply result in monopoly rents.

</comment></comment></comment></comment></comment><comment><USER18> Does the "you are no longer logged in" screen not infuriate anyone besides me? There doesn't seem any purpose to it just redirecting you to the landing page when you were trying to access a forum post that doesn't even require you be logged in.

Absolutely mind boggling with as much as they pay people they do something so stupid and haven't changed it after so long.

</comment><comment><USER19> This is going to break so many legacy codebases in ways I can't even imagine.

Edit: Could they have found a better place to announce this than a forum post?

<comment><USER20> Couldn't they do a redirection (301) to not break code ?

<comment><USER21> No, because path-style bucket names weren't originally required to conform to dns naming limitations. I don't know how they're going to migrate those older non-conforming buckets to the host-style form.

</comment></comment></comment><comment><USER22> I wonder how they'll handle capitalized bucket names. This seems like it will break that.

S3 has been around a long time, and they made some decisions early on that they realised wouldn't scale, so they reversed them. This v1 vs v2 url thing is one of them.

But another was letting you have "BucketName" and "bucketname" as two distinct buckets. You can't name them like that today, but you could at first, and they still work (and are in conflict under v2 naming).

Amazons own docs explain that you still need to use the old v1 scheme for capitalized names, as well as names containing certain special characters.

It'd be a shame if they just tossed all those old buckets in the trash by leaving them inaccessible.

All in, this seems like another silly, unnecessary, depreciation of an API that was working perfectly well. A trend I'm noticing more often these days.

Shame.

</comment><comment><USER23> One of the weird peculiarities of path-style API requests was that it meant CORS headers meant nothing for any bucket pretty much. I wrote a post about this a bit ago [0].

I guess after this change, the cors configuration will finally do something!

On the flip side, anyone who wants to list buckets entirely from the client- side javascript sdk won't be able to anymore unless Amazon also modifies cors headers on the API endpoint further after disabling path-style requests.

[0]: [https://euank.com/2018/11/12/s3-cors- pfffff.html](https://euank.com/2018/11/12/s3-cors-pfffff.html)

</comment><comment><USER24> A similar removal is coming in just 2 months for V2 signatures: [https://forums.aws.amazon.com/ann.jspa?annID=5816](https://forums.aws.amazon.com/ann.jspa?annID=5816)

This could be just as disruptive.

Difficult to say that they will actually follow through, as the only mention of this date is in the random forum post I linked.

<comment><USER25> Doubtful, sigv2 is not supported in all regions. So all current software that wants to be compatible with more than a portion of regions has to be compatible.

This is a great way of introducing breaking changes. Imagine that for example, ipv6 would be at near 100% adoption if "new websites" were only available over v6.

</comment></comment><comment><USER26> Amazon is proud that they never break backwards compatibility like this. Quotes like the container you are running on Fargate will keep running 10 years from now.

Something weird is going on if they don't keep path style domains working for existing buckets.

<comment><USER27> Only 10 years. Shame that that is a boast. 100 years would be better.

</comment></comment><comment><USER28> Is there a deprecation announcement that does not include the phrase "In our effort to continuously improve customer experience"?

Edit: autotypo

</comment><comment><USER29> Fun fact: The s3 console as of right now still shows v1 urls when you look at the overview page for a key/file.

</comment><comment><USER30> I was already planning a move to GCP, but this certainly helps. Now that cloud is beating retail in earnings, the 'optimizations' come along with it. That and BigQuery is an amazing tool.

It's not like I'm super outraged that they would change their API, the reasoning seems sound. It's just that if I have to touch S3 paths everywhere I may as well move them elsewhere to gain some synergies with GCP services. I would think twice if I were heavy up on IAM roles and S3 Lambda triggers, but that isn't the case.

</comment><comment><USER31> This is most likely to help mitigate the domain being abused for browser security due to the same-origin policy. This is very common when dealing with malware, phishing, and errant JS files.

</comment><comment><USER32> `In our effort to continuously improve customer experience` , what's the actual driver here, I don't see how going from two to one option and forcing you to change if you are in the wrong one improves my experience.

<comment><USER33> [http://chainsawsuit.com/comic/2017/12/07/improvements/](http://chainsawsuit.com/comic/2017/12/07/improvements/)

> We asked our investors and they said you're very excited about it being less > good, which is great news for you!

</comment></comment><comment><USER34> There are millions of results for "[https://s3.amazonaws.com/"](https://s3.amazonaws.com/") on GitHub: [http://bit.ly/2GUVjDi](http://bit.ly/2GUVjDi)

<comment><USER13> GitHub search is really poor. It is also including the uses of the subdomain style.

<comment><USER34> Agreed. The search could use some love for doing exact match.

The scale at which different libraries, tools, and systems depending on hard- coded S3 urls will break by this change is insane.

</comment></comment></comment><comment><USER35> I see a problem when using the s3 library to other services that support s3 but only have some kind of path style access like minio or ceph with no subdomains enabled. it will break once their java api removes the old code.

</comment><comment><USER36>
        ag -o 'https?://s3.amazonaws.com.*?\/.*?\/'| awk -F':' '{print $1, $4}' | sort | uniq | cut -d'/' -f 1 | sort | uniq -c | gsort -h -rk1,1

For anyone interesting in finding out the occurrences in their codebase. (Mac)

</comment><comment><USER37> AWS API is an inconsistent mess. If you don't believe me try writing a script to tag resources. Every resource type requires using different way to identify it, different way to pass the tags etc. You're pretty much required to write different code to handle each resource type.

</comment><comment><USER38> This will hopefully prevent malicious sites hosted on v1-style buckets from stealing cookies/localstorage/credentials/etc.

<comment><USER39> Care to elaborate? Why would there be any secrets stored via s3.amazonaws.com?

</comment></comment><comment><USER40> I'm so glad I saw this. I would have been very confused when this went live had I not seen this post today. I wish I could upvote this more.

</comment><comment><USER41> Hm. I had a local testing setup using an S3 standin service from localstack and a Docker Compose cluster, and path-style addressing made that pretty easy to set up. Anyone else in that "bucket?" Suggestions on the best workaround?

</comment><comment><USER42> Commercial platform breaks things people have built on it for "the sake of continuously improving customer experience. "

Also: see photos of your favorite celebrity walking their dog and other news at 11.

</comment><comment><USER43> So much for customer obsession.

<comment><USER44> I don't think "never change" is customer obsession. Improving products is customer obsession.

<comment><USER45> this goes beyond "never change". never changing your product is a bad thing, but never changing your URLs is a mantra everybody should live by.

</comment></comment></comment><comment><USER46> [https://github.com/search?q=%22https%3A%2F%2Fs3.amazonaws.co...](https://github.com/search?q=%22https%3A%2F%2Fs3.amazonaws.com%2F%22&type=Code)

Over a million results (+250k http). This is going to be painful.

</comment><comment><USER47> TL;DR

Migrate

from: s3.amazonaws.com/<bucketname>/key

to: <bucketname>.s3.amazonaws.com/key

no later than: September 30th, 2020

</comment><comment><USER48> For other folks looking for announcement feeds, see [https://forums.aws.amazon.com/rss.jspa](https://forums.aws.amazon.com/rss.jspa) \- announcements are the asterisks.

</comment><comment><USER49> How does this impact CloudFront origin domain names? I have an s3 bucket as a CF origin and the format the AWS CF Console auto-completes to is:

<bucket>.s3.amazonaws.com

Do I need to change my origin to be, Origin domain name: s3.amazonaws.com, Origin Path: <bucket>

This is a sneaky one that will bite lots of folks as it is NOT clear.

<comment><USER29> I think you have this backwards.

<bucket>.s3.amazonaws.com is the V2 url formula.

</comment></comment><comment><USER50> "In our effort to continuously improve customer experience, the path-style naming convention is being retired in favor of virtual-hosted style request format. Customers should update their applications"

How does forcing customers to rewrite their code to confirm to this change, improve customer experience?

<comment><USER51> Maybe as the technical debt continues to come due with the current architecture, it's time to make the hard choices to keep a good customer experience?

<comment><USER50> It's on amazon to pay off their technical debt. Not their customers. They are turning off a feature at their customers expense.

That's the exact opposite of good customer service.

</comment></comment></comment><comment><USER52> IMO, this is an improvement - it makes it clear that the bucket is global and public, whereas with the path you could believe that it was only visible when logged into your account.

It also helps people understand why the bucket name is restricted in it's naming.

<comment><USER53> > it makes it clear that the bucket is global and public

How does it do that? You can host a private bucket at foo.s3.amazonaws.com just fine.

<comment><USER5> I think the claim is that the _namespace_ is global and public, i.e., you and I can't both have buckets named "foo". There is only one S3 bucket named "foo" in the world.

If it's [https://s3.amazonaws.com/foo/](https://s3.amazonaws.com/foo/) you could believe that it's based on your cookies or something, but if it's [https://foo.s3.amazonaws.com/](https://foo.s3.amazonaws.com/) it's more obvious that it's a global namespace in the same way DNS domain names are (and that it's possible to tell if a name is already in use by someone else, too).

</comment></comment></comment><comment><USER54> This will break software updates for so many systems, probably even some Amazon devices.

</comment><comment><USER55> Always confused me how they had two different ways of retrieving the same object. Glad that they're sticking to the subdomain option. Sucks to go back and check for old urls though. This change might break a good chunk of the web.

</comment><comment><USER56> One way to do this without breaking existing applications would be to charge more for the path style requests for a while. Then deprecate once enough people have moved away from it, so that less people are outraged by the change.

</comment><comment><USER57> > _In our effort to continuously improve customer experience,_ [feature x] _is > being retired_

In this case, the most highly improved experience I can think of eould be that of sundry nefarious entities monitoring internet traffic.

</comment><comment><USER58> Does anyone know if this will affect uploads? We are getting an upload URL using s3.createPresignedPost and this returns (at least currently) a path- style url...

</comment><comment><USER59> The title is misleading. Path style request "/foo/bar/file.ext" are still supported.

What changes is that the bucket name must be in the hostname.

<comment><USER60> Path style can be used in hostnames?

</comment></comment><comment><USER61> I switched to MinIO for anything new. Happy user - [https://min.io/](https://min.io/)

</comment><comment><USER62> this looks to be largely resolved: [https://aws.amazon.com/blogs/aws/amazon-s3-path- deprecation-...](https://aws.amazon.com/blogs/aws/amazon-s3-path-deprecation- plan-the-rest-of-the-story/)

</comment><comment><USER63> Anyone know if this will affect the internal use (e.g. EMR) s3 schema: s3://bucket/path/key?

<comment><USER64> No. The file system implementation uses the AWS S3 client, which will automatically use virtual-host style when possible (if the bucket name supports it).

</comment></comment><comment><USER65> Hmm I don't understand why this change is happening. What does this gain? Removal of tech debt?

</comment><comment><USER66> I didn't know path style was possible.

I'd have found it really useful. :-/

</comment><comment><USER67> They should produce a free redirect service at least.

</comment><comment><USER68> Boo. Now old packages won't work.

</comment><comment><USER69> This is going to be the Y2K of September 2020.

</comment><comment><USER70> TL;DR [https://news.ycombinator.com/item?id=19821813](https://news.ycombinator.com/item?id=19821813)

</comment><comment><USER71> Does that mean people still have tons of public-by-mistake s3 buckets because of their clumsy UI, and they just gave up and are swiping what's left under the rug?

<comment><USER72> You really have to try to make a bucket public. Even when you do, you get warnings within the UI, and there is a column showing you it's public.

Is there even a UI option to make a bucket public anymore? I always edit the bucket policy and add the JSON to make it public read only.

<comment><USER53> A lot of that is a fairly recent development, though. Lots of buckets laying around from the years it largely didn't warn you.

</comment></comment></comment><comment><USER51> I'm kind of shocked at some of the responses here... everything from outrage, to expressing dismay at how many things could break, to how hard this is to fix, to accusing Amazon of all kinds of nefarious things.

How hard is it for 99% of the developers and technical leaders here to search your codebase for s3.amazonaws.com and update your links in the next _18 months_?

<comment><USER73> > How hard is it for 99% of the developers and technical leaders here to > search your codebase for s3.amazonaws.com and update your links in the next > 18 months?

I've got a number of hobby projects, some hosted on AWS, that I built ages ago. I have no idea how this change will effect those projects because ... I just frankly don't remember the codebases. I built them on a weekend, set them up, and now just use them.

It isn't the end of the world. But I'm not really excited about having to dig up old code, re-grok it, and fix anything that changes like these might break.

I suppose that's just the nature of a developer's life. But I think many of us long for a "write once, run forever" world. Horror stories about legacy software aside, it was nice to be able to write software for Windows and then have it work a decade later.

<comment><USER51> _I suppose that 's just the nature of a developer's life. But I think many of us long for a "write once, run forever" world._

Well, I think AWS developers are in the same boat right? Here we are.

An architectural decision that many years ago was the approach now needs to be rethought and updated.

<comment><USER11> How is that the same boat? Seems like the opposite.</comment></comment></comment></comment>


Show HN: Komodo IDE 11, we overhauled CodeIntel, added DevDocs.io integration - <AUTHOR> https://www.activestate.com/blog/2017/09/komodo-11-released-revamped-codeintel-devdocsio-integration-and-more <comment><AUTHOR> In case we have any Arch users, I took this opportunity to learn more about AUR and created a Komodo-IDE package for it

[https://aur.archlinux.org/packages/komodo- ide/](https://aur.archlinux.org/packages/komodo-ide/)

So installing on Arch should be as simple as `pacaur -S komodo-ide`

</comment><comment><AUTHOR> Hi guys, I'm the lead developer for Komodo IDE. Excited to share our hard work with you. Happy to answer any questions you might have.

<comment><USER2> Do you support code refactoring yet?

Eg, rename a symbol and have all usage of it updated (could be a local scope variable could be a class name used project wide)

I previously used Komodo IDE but for the last few years I've found IntelliJ IDEA to be more robust/full featured.

I'd love to be able to switch back, because the jvm definitely makes idea seem "heavier" somehow.

<comment><AUTHOR> I believe this was introduced in version 9. So yes, we do support code refactoring.

One major difference between IDEA and Komodo that you may not be aware of is Komodo is based on Mozilla (XUL) and does not use Java.

<comment><USER2> I did know about it being xul actually (I used it for my day job back in 2006-8) - that's the big draw for me, not being java.

The simpler licensing is nice too. I'll have to check this out in a few days (laptops don't work well without fans).</comment></comment></comment></comment>


Why You Should Test Your CSS - <AUTHOR> http://blog.derrickko.com/why-css-testing-could-be-huge

<comment><USER2> Speaking of testing visuals, there's an interesting project called Sikuli[0] that seems to do exactly the thing.

Core idea looks like easy inexact image matching + Python scripting environment. This approach seems to eliminate the need to test CSS, accounting for all kinds of cross-browser issues. It's like the most high-level integration test possible, which looks kind of appealing. I haven't had a chance to try Sikuli myself yet though. Probably there are other similar tools.

[0] <http://sikuli.org/>, was featured on HN a couple of times as well.

</comment><comment><USER3> A test looks like this:

        Cactus.expect("p", "font-size").toEqual("12px");

That doesn't make any sense. It's exactly the same as

       p { font-size: 12px; }

just in a more verbose language. CSS has no logic, just rules. Rules are already "tests" for themselves.

Visual matching is whole other story that might be useful. Set some tolerance for deviations that trigger alarms on deploy - that could be a lifesaver for IE and mobile support.

<comment><USER4> You wouldn't be using it in this case. This would be being used to test inheritance (p {font-size: 10px} #aPTag {font-size: 12px} etc), and the like. If you work on any large scale site, there can be all kinds of things that crop up because a dev thinks they aren't going to impact anything by removing a tag in a class selector.

</comment></comment><comment><USER5> I think this could definitely help with some of the bulk testing which would be fantastic. It seems like it might be difficult to test really complex CSS (which is the stuff that probably needs the most testing) like drop-down menus, interactive hover effects, etc.

I've definitely had those times where we've tweaked a stylesheet only to find out later that some page deep in the site now caused a floated div to move to the next line and mess up the layout. It would be so great to have unit testing to keep an eye on these kinds of things.

<comment><AUTHOR> _It seems like it might be difficult to test really complex CSS like drop-down menus, interactive hover effects, etc_

Such complex CSS behaviors are probably better off being tested by an integration test.

 _It would be so great to have unit testing to keep an eye on these kinds of things._

Agreed! The Cactus approach does work well for unit tests.

</comment></comment><comment><USER6> The single most annoying aspect in CSS (IMO) is class and id names, or better: keeping them predictable (we already used that one) and concise (that one should be named _that_ ).

I'd like to know if there's a simple "namespace convention" that works. As features get added, I always end up making up class/id names or waste time hunting them down. Especially dynamically generated stuff.</comment>


Trump orders colleges to back free speech or lose funding - <AUTHOR> https://apnews.com/7b50a833699d4ccbae38450fff9c1524 <comment><USER2> Colleges are already bound to uphold free speech by the First Amendment, so I'm a little unclear what distinguishes this.

Having said that, I do think that today's students are a bit too sensitive to ideas that they don't agree with, so perhaps we need to reinforce that ideas we don't agree with aren't tantamount to fascism.

<comment><USER3> Only colleges run by state and local governments, to which the Bill of Rights applies (due to the 14th Amendment), are bound by the First Amendment. Private colleges are not.

</comment></comment><comment><USER4> "The new order directs federal agencies to ensure that any college or university receiving research grants agrees to promote free speech and the exchange of ideas, and to follow federal rules guiding free expression." Non- compliance means loss of grant funding. The problem is: who decides when a college or university is not in compliance?

<comment><USER5> > The problem is: who decides when a college or university is not in > compliance?

The "federal rules guiding free expression"?

</comment></comment><comment><USER6> "Free speech"

</comment><comment><USER7> Huh.

To me it seems like "Trump threatens to punish colleges which challenge conservative or Christian views."

I'm sure I'm reading too much into it, though.

It's not like his party considers academia to be a cesspool of Marxists, liberals and radical feminists that needs to be purged for the good of American culture or anything.</comment>


The Western diet has nearly killed our ancestral microbiome - <AUTHOR> http://nautil.us/issue/30/identity/how-the-western-diet-has-derailed-our-evolution <comment><USER2> So in Northern China, most food is

\- raw food is rarely eaten unless it has a thick / peelable skin \- mostly veggies are cooked in oil \- starch heavy (flour for dumplings or baked goods, and rice) \- spice heavy (chili, Szechuan peppercorn) \- sodium heavy (soy, bean pastes, and preserved vegetables) \- lots of odd ingredients from a western point of view (mushrooms, fermented beans) \- no set "breakfast" foods vs "supper" foods per se; more like "banquet" foods vs . "Everyday"

I've been told from my Chinese friends they find our penchant for salads and raw food to be barbaric. Evolved people eat cooked food, or so the saying goes.

I can next talk about India, Pakistan, Bangkadesh and its varied regional diet...

My point is that there are a couple billion people that articles like these completely ignore and treat as if these people are martians...

<comment><USER3> > _I 've been told from my Chinese friends they find our penchant for salads > and raw food to be barbaric_

I'm no expert, so please correct me if I'm wrong. My understanding is that they need to cook their vegetables in China to make sure they are safe to eat. Tap water isn't generally potable there, or is that just in cities?

<comment><USER4> As I understand it, safe water was historically a problem, which led to the prevalence of hot tea for drinking. I guess culture in Asia tended towards boiling water, as opposed to Europe's tendency to ferment beverages to make them safer?

I forget the source where I read this, but there were supposedly vendors who only sold hot water. Water is a really cheap commodity, so the currency reflected that. Those lightweight, fractional-cent coins with the holes in them were kept on a string by the water vendors to easily take/dispense for selling hot water.

It's been years since I read this, so I may be totally off base with my recollection. But it makes sense given the problems associated with very dense populations and potable water in pre-industrial times.

<comment><USER5> Some people say the "alcohol was safer than water" thing is a myth. [https://news.ycombinator.com/item?id=9031856](https://news.ycombinator.com/item?id=9031856)

Some people aren't convinced.

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

</comment></comment></comment></comment><comment><USER6> This is an interesting angle on the gut microbiome knowledge that we are just now starting to explore and establish. It is also an intriguing sidebar to Jared Diamond's essay "The Worst Mistake in the History of the Human Race" [1] (see this [2] discussion for a more balanced commentary that tackles the essay's actual points instead of the misleadingly sensationalist title).

There are some pretty sensationalist claims asserted for the gut microbiome at the moment, but it's early days yet so we're not certain what works for who, when, where, and why. I can say on a personal anecdote that after decades of not being able to eat the spicy foods that I enjoyed in childhood, I went through a course of probiotics for a year (they actually hang out here on HN), and now I can dial up the heat. It wasn't a controlled, double-blind study, but I'm sufficiently satisfied with my N=1 experiment to tentatively ascribe the result to the probiotics until new evidence arises to show me otherwise.

[1] [http://discovermagazine.com/1987/may/02-the-worst-mistake- in...](http://discovermagazine.com/1987/may/02-the-worst-mistake-in-the- history-of-the-human-race)

[2] [http://www.internationalskeptics.com/forums/showthread.php?t...](http://www.internationalskeptics.com/forums/showthread.php?t=184150)

<comment><USER7> Is the probiotic you took the one from General Biotics? I was interested in trying them out but I never got any feedback on whether a one-month supply would be enough to notice any benefits or if it's something that requires a few months to kick in.

<comment><USER6> Yes indeed, that's who I used. I didn't notice any change after just a month, it took a year; I'm taking a break at the moment to see if any symptoms resurface. The original article for this thread mentioned that the mouse model the researchers are building indicates that successive generations of mice with weaker biomes did not improve after starting on a heavier-fiber diet (though long-term, who knows if it might start improving). Might there be a possibility that biome damage has a similar pathology, and reconstitution via probiotics takes an especially long time? Nobody knows at this point.

GB is not exactly cheap if you are on a student budget, so in the interest of full disclosure and crufty, messy, crowd sourcing pseudo-science, I'll offer some caveats of what else I was trying at the same time that might have also yielded my results. I tried two other brands of probiotic before settling on GB: Dr. Ohhira's and Bio-K+. Six months on Bio-K+ followed by two months on Dr. Ohhira's. At the same time, I went to a 20 mg / day maximum net carbohydrate, high-fat, moderate protein diet. I used testing strips to verify that I actually went into ketosis, and cycled to a 100 mg net carbohydrate day once 1-2 months to break weight loss plateaus. So before you "follow in my footsteps" and commit to a year of GB, be aware I had confounding factors that might also explain what happened to me (the ketogenic diet is the next candidate for a cause, but I've never heard of anyone being able to eat spicy foods again by starting that diet).

If I had the time and access, I'd pay to try bacteriotherapy using donor material from an athletic donor who likes spicy food. I suspect bacteriotherapy is good for more than just CDI.

The GB guys are super helpful and friendly, and you go month-to-month. I found suspending or cancelling super easy and hassle-free. So if you are curious to partake in your own N=1 experiment on gut microbiome reconstitution for just a month (though they themselves say don't count on any changes before within months), I encourage you to try it out and share your results.

</comment></comment></comment><comment><USER8> On a cellular level for most all animal life, "nature"/evolution doesn't care about a long healthy _post-reproductive_ lifespan (there was never and couldn't be reproductive selection pressure for that) --- since most everyone can handle western diet approximately up to their reproductive/prime age without adverse effects on their reproductive capacity, I see no "derailing of evolution". Heck, evolution is a never-ending series of derailings by definition.

Sure, they breed kids with a gut flora that deals with indigestable cellulose even worse than previous generations, but will they make it to their own reproductive prime age? Chances are, they will.

Which is all "evolution" cares about, harsh as it may sound.

<comment><USER9> There is very much pressure for that. Natural selection is just about passing genes to the next generations. If by living longer you can increase the safety, and the reproductive success, of your offsprings, you select for that.

Reproductive success in a natural selection context is not only about the sheer number of offsprings you have, it's about how good you can disseminate genes to the next generations. If genetic mutations allow you to increase that dissemination by caring for your offsprings, then it's selected.

<comment><USER8> I'm not saying parents are programmed to fall over and die exactly the moment they have sucessfully reproduced, clearly in those species incl us only the offspring of caring+longer-lived parents have survived to reproduce themselves --- past that prime age we just lose that comparative youthful invincibility against "environmental stress and accumulated damage and the resulting ever- accelerating degeneration" (incl "western diet") because there never was selection pressure favouring people who thrive well into old age and age in supreme health on any chow or fodder without suffering severe degeneration and disease.

<comment><USER9> "there never was selection pressure favouring people who thrive well into old age and age in supreme health on any chow or fodder without suffering severe degeneration and disease"

Can you back that up? Actually having living healthy grand-parents can be a boon to reproductive success: they can take care of kids, while parents are out hunting or gathering. So yes, if you have genetic mutations favoring living old enough to be grand-parents, it is subject to selection pressure.

Plus, it's been a while since we started caring for old people. In that context, because evolution is all about context, having healthy elderly is also a boon to reproductive success since it doesn't divert resources from child care to elderly care.

Any genetic mutation that is expressed and results into higer reproductive success in a specific context is subject to selection.

</comment></comment></comment></comment><comment><USER10> Does this mean someday the cross-population fecal transplantation might be a thing in the future? Say at GNC there would be varieties of "Tanzanian Microbiota Pill" or "Burkina Faso Immune Boosting Smoothie".

<comment><USER11> I'm sure there are 5 startups already hard at work on packaging up exotic feces and delivering it by bicycle via an on-demand mobile app.

<comment><USER12> It will be drone delivery. And nobody will dare shooting them down!

</comment></comment></comment><comment><USER13> Each part of the world developed a fitting diet. You couldn't expect a Russian to have fiber rich diet, it's mostly fat and proteins you can get during the long winters. I'm curious about the role of these bacteria as an anti- inflamantory. I know many adult immigrants coming to Canada started to have hay fever in matter of couple of years since their arrival. Big drop in gut flora as a result of a diet change?

<comment><USER14> Russians and Eastern Europeans eat vegetables, even in winter, at almost every meal. But these are veggies that are easy to store through the winter: root veggies like beetroot, cabbage and potatoes, not leafy stuff like letuce or cress, which obviously does not store. The Americans stereotypes about this part of their diet is indeed true. They also like to have fruit for desert, even for feasts, sometimes offered before pastries or cakes. They associate Christmas with eating sweet oranges or clementines as well, not just cakes or meats.

<comment><USER15> > _Russians and Eastern Europeans eat vegetables, even in winter, at almost > every meal. But these are veggies that are easy to store through the winter: > root veggies like beetroot, cabbage and potatoes, not leafy stuff like > letuce or cress, which obviously does not store._

Also, food conservation! Pickled veggies and sauerkraut have always been stapled foods for me.

Speaking of diets. During the last ten-fifteen years people in Russia have developed a taste for fresh vegetables and fruit available immediately from the supermarket shelves. This trend is being reversed quite quickly due to skyrocketed prices (and the ridiculous embargo on agricultural production from eu and some other selected countries). Well, back to dachas, I guess.

</comment></comment></comment><comment><USER16> It just added another criteria to natural selection process, not derailed anything

</comment><comment><USER17> This is an anti-fat, anti-meat rant guised as journalism with a noble savage and quasi-scientific tint.

<comment><USER18> I am intrigued - what is the argument to be made for a pro-fat, pro-meat diet?

<comment><USER19> I would expect the Atkins and Paleo diets, and the controversies around them, to be a good starting point -- or even Gary Taubes' _Good Calories, Bad Calories_.

<comment><USER18> I've found quite a detailed and critical review of Tabues. What do you think of [http://plantpositive.com/1-the-journalist-gary- taubes-1/](http://plantpositive.com/1-the-journalist-gary-taubes-1/)

</comment></comment></comment></comment><comment><USER20> Far fewer babies die at birth and our life expectancy is, what, twice what it was historically?

<comment><USER21> Unfortunately, due to abortion, I wonder if more babies die than before...

</comment></comment><comment><USER22> And so what?

</comment><comment><USER23> Search for "evolution" in this article and you will find nothing about the headline topic. Just a couple token mentions of how things are different now than during most of our evolution--a fancy way of saying "before."

Rather than derailing our evolution, the "Western Diet" _is part of_ our evolution. Our children's hair does not fall out due to malnutrition, and that's pretty cool (if you want to see a place where it does, go to Papua, where they do a mostly simple vegetarian diet like the Burkina Faso folks praised in this article).

As for the "Western" part of the headline...a diet lower in fibre and higher in protein, fat, and sugar can equally be found in China and Indonesia, which happen to be two of the largest countries in the world, and very much in the East. So don't feel too bad about which hemisphere you were born in.

<comment><USER24> Modern processed food managed to increase our daily calories intake while decreasing the essential nutrients that we need. Malnutrition is becoming a problem again and worse, for the first time in history you can see overweight kids that are malnourished. And I disagree that the "western diet" has anything to do with our wins against malnutrition.

> _a diet lower in fibre and higher in protein, fat, and sugar can equally be > found in China and Indonesia_

On what basis have you arrived to those conclusions? The normal diet in China and Indonesia is plant based. Yes, they eat a lot of rice, but that rice is much more healthy than the vitamin-fortified substance made out of bleached, white flour that we call bread nowadays.

And don't mistake the food that you can eat in your local Chinese restaurant to what the Chinese are actually eating. For example much of the food promoted in western Chinese restaurants (at least the ones where I've been) is unbelievably greasy and sweet. But guess what, the food being eaten in China is not sweet, sugar and soy sauce being used only sparingly in only some meat- based dishes, but that's not the norm.

Also singling out one nutrient or another is reductionist science and represents everything that's wrong with western nutrition and health-care. Remember cholesterol? That was a fucking fiasco for which the medical community never apologized for. We need more Omega-3? Sure, put some in the supermarket sliced bread. Does our food have so much high-fructose corn syrup or other corn derived substances in it, that we can effectively be called the corn people? Oh, point to the Chinese for also eating sweat stuff. Do the French eat saturated fats and wash it with wine? Call it a paradox.

<comment><USER25> >> The normal diet in China and Indonesia is plant based.

Speaking of a group of about 1.6 billion people as if they were a monolith is not particularly productive.

Just looking at China itself, there is huge variation in the "average" diets between different provinces (e.g., Shanghainese dishes tend to be sweeter, Sichuanese dryer and spicier, etc.). And even at that provincial level it's kind of silly to lump everyone into a single average.

<comment><USER26> I find it funny when people see China as a single country imagine if someone referred to Europe with all its cultures as a single culture who all ate the same thing. Now picture China with probably 5,000 years of culture must be immensely more diverse.

<comment><USER27> Exactly. I am kind of annoyed when people assume I speak Cantonese simply because I am Chinese. Cantonese speakers only constitute 5% of total Chinese population. Nobody assume if you are European, then you speak Italian.

</comment></comment></comment></comment></comment><comment><USER28> This is an entirely moot premise.

Human evolution is no longer in the hands of nature in the sense that people most commonly think of it. It will never be again.

We've taken over direct control of our evolution. That's not an exaggeration, it's a fact of our present circumstances. These are the early days, yes, but non-the-less. The time scale of meaningful human evolution is about to shift from tens of thousands of years, to decades.

In that time we'll start altering the general human genome, and likely remove countless inherited conditions out of it either directly or indirectly. The technology will accelerate at an incredible pace from here, becoming very common; leading edge CRISPR knowledge and capabilities today will be laughable in 30 years.

Our evolution has done anything but been derailed, it's about to leap forward.

Who here really thinks humans ~500 years from now, will have much in common with humans of today? I don't think what exists at that point will be reasonably considered human at all, as we know the term. Nothing can really stop that outcome except an extinction event. The only question is what we become, not whether we change; and taking over control of our evolution is part of that.

<comment><USER29> Newborns of wild animals raised in captivity cannot be released back to the wild, because they lack the survival skills they could otherwise have learnt from their parents. It is true with many species - a species' accumulated and inherited knowledge, passed down generation to generation, about how to survive and thrive in the environment, is _part of_ that species' evolution history. This apply to humans as well as to almost all other animals. It is misguided to think human evolution is "not in the hands of nature", because the accumulated inherited knowledge we have about the world, the capital we build that is passed down to our children, and technology we implement, are part and parcel of nature itself. Are our bodies nature? Are our gut bacteria nature? Do our neurons work apart from nature? Is the tendency to want to be "better than the joneses" to attract a better mate ourselves, or help our children to do so, part of nature, or an artificial phenomenon? What about our desires to live in shelter of our construction, impulse to educate our children, to pass them what we have and improve their ability to thrive? I think all of these behaviours are nature in and of itself, and because all things we do spring from nature, those things _are nature too_ , even down to our computers and any AI we may build in the future - because products of nature is nature itself.

 _Nature, in the broadest sense, is the natural, physical, or material world or universe_ [1] If humans are separate from the universe, then where does the universe end, and we begin?

However, besides this nitpick, I agree with all your points. In the future, nature will select some genes based on their fitness _as predicted by nature_ , as well as actual fitness at the current moment.

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

<comment><USER30> Surely there is also instinct at play here. A cat raised in captivity still can hunt mice and if its released into the wild it could survive and reproduce. And of course there is the famous california condor story where they are now all either raise in captivity or decedents of those.

<comment><USER29> _Survival data were available for 169 kittens. Overall, 127 of the 169 (75%) kittens died (n = 87) or disappeared (40) before 6 months of age. ...Eighty- one of the 169 (48%) kittens died or disappeared before they were 100 days old._

Well, some of them are bound to make it... [http://pets.stackexchange.com/questions/9571/can-cats- surviv...](http://pets.stackexchange.com/questions/9571/can-cats-survive-in- the-wilderness)

</comment></comment></comment></comment><comment><USER31> You know what _really_ derailed our evolution? Western medicine. Those pesky doctors have virtually ended the selection pressure against people with myopia, or those who are vulnerable to pneumonia.

If we really wanna get evolution back on course, we need to start letting the weak die. Personally, I think that sounds awful, and I think derailing our evolution is a small price to pay.

<comment><USER32> That's why the concept of "derailing" evolution is silly. There's no set course for evolution to be derailed from... in fact that's the entire basis of the concept of evolution. Diet and medicine are just evolutionary pressure, just like every other part of the environment since life began.

</comment></comment><comment><USER33>
      s/Western Diet/Western Food Industry/</comment>


Save and Invest - <AUTHOR> http://www.avc.com/a_vc/2009/12/save-invest-and-export.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+AVc+%28A+VC%29&utm_content=Google+Reader <comment><USER2> I already do this. I don't need the government interfering.

Welcome to the nanny state. We know better than you do, just ask us.

<comment><USER2> To clarify. I'm doing this to bootstrap my business.

Now if the gov't gets involved and forces me to put my savings into some kind of plan for the future, where I can't touch my money without a gov't sanctioned reason, how am I better off?

Make it tax free? But if it's savings, what is a "qualifying event" that would allow me to withdraw my savings? With retirement there's an age qualification. What about savings?

<comment><USER3> I don't think he was talking about making it mandatory. Just automatically deducated from the pay check, _once you sign up_. Either way, not a very well written post...

</comment></comment></comment><comment><USER4> I'm not sure I would recommend investing in mutual funds in the blog post. It makes me feel cheated and sick to know that the mutual fund "managers" there (whom for the most part switch out every few years or so) get paid more for doing the same amount of "work" as the fund grows due to them taking a percentage of the fund size vs. a performance based fee.

<comment><USER5> Use index funds, a subspecies of mutual funds which replaces the manager with a computer that simply tracks the composition of a particular index (and thus the overall economy, for sufficiently broad indicies -- total market funds, for example).

The idea is "Well, mutual fund managers might take in hundreds of millions a year in fees, but they don't reliably actually do better than the market average anyhow, and those hundreds of millions come straight out of the investors' money. Instead, let the computer mathematically guarantee you get the average pre-fee, and then pay a much lesser fee to cover the transaction costs."

For more on this general topic, see anything written by Bogle.

<comment><USER6> My favorite trick is if you start with 10 funds the first year. The second year kill off the bad ones and merge all the assets in to the good ones. Do this for several years and your funds look like they have really good performance! It is the same as asking everyone to flip a penny in a classroom of 100 students and every time someone gets tails sit down until there is 1 student left. Then take bets on if they will get heads or tails the next time.

</comment></comment></comment><comment><USER7> Yeah, more Buffet, less Goldman-Sachs.</comment>


Show HN: Locent – Mailchimp for SMS - <AUTHOR> https://locent.com <comment><USER2> Cool product, bookmarked for future use. There are some weird bugs in your landing page though.

Firstly, since you're using a responsive front-end framework (Bootstrap), you should configure the viewport meta tag:

        <meta name="viewport" content="width=device-width, initial-scale=1">

should work nicely. Add 'minimum-scale=1' to the meta tag's content to enable rasterization (better FPS when scrolling etc.)

You also have a bug in your markup which causes content to overflow outside of the viewport, resulting horizontal scrolling being possible at 1x scale when it shouldn't be.

This is because the #benefits row should be wrapped by a containing element with 15px left and right padding to balance out the Bootstrap row element's negative margins.

This issue is actually present on other pages as well. You'll want to add 15px left/right padding to the #support element, the #login element, and the .register element on their respective pages.

Typically, rows in Bootstrap are intended to be wrapped by a div with either the 'container' or 'container-fluid' class, which add the aforementioned padding.

The beauty of the Bootstrap grid is that the rows' negative margins allow grids to be nested without squashing columns with ever increasing gutters. This negative margin comes at a price: it adds to the containing element's width, meaning that padding must be added to eat this inflation.

Finally, the mixpanel link is clickable just beneath the clients image, when the button is actually at the bottom of the page. This is because the image is positioned relatively and offset by 250px, yet the containing anchor is not, and appears in its normal place.

To fix this last issue, replace this:

        #home #mix {
            position: relative;
            top: 240px;
        }

and with this:

        .featured a {
            position: relative;
            top: 240px;
        }

<comment><AUTHOR> Excellent feedback, we'll get these fixed. Thank you!

<comment><USER2> No problemo.

I noticed that the Features page is a bit broken, probably not finished yet. The markup is a bit odd-looking to me. Not because Angular's involved, but because it looks like it tries to re-invent some wheels Bootstrap already has covered.

I'm not an Angular developer per se, as I've largely avoided frameworks by rolling my own over the years, but I did mock-up what might be a simple but effective way of structuring the page using Bootstrap's grid system.

The trick would be to use whatever the Angular equivalent of Bootstrap's jQuery-based tabs is.

Hopefully it's of some use as well:

[https://output.jsbin.com/sekato](https://output.jsbin.com/sekato)

[https://jsbin.com/sekato/edit?html,css,js,output](https://jsbin.com/sekato/edit?html,css,js,output)

<comment><AUTHOR> This is truly awesome, thanks for your help

</comment></comment></comment></comment><comment><USER3> Is this service ethical?

I hope users who would like to see bulk messages on their phone chose to opt- in (manually, not auto-opt-in). Your terms of use do not demand this.

In the US: "FCC rules ban text messages sent to a mobile phone using an autodialer unless you previously gave consent to receive the message"

I would wonder deeply about opt-in rates as well. How are you keeping track of how much users enjoy receiving these messages? (Not just click rates because people might click something they hate to receive)

Also, confusingly, your terms of use state:

> You agree that You will not use the Service to send.. "promotional > materials"...

But that's what's shown as an example on the front page?

<comment><AUTHOR> Thanks for the feedback - SMS is a highly regulated industry and we follow all rules and regulations as specified by the TCPA and relevant case law. Our terms reflect these regulations. You should take a look at the _full_ clause you identified "...That contains spam, non-permitted, unsolicited or unauthorized advertising, promotional materials, chain letters, pyramid schemes, gambling or any other form of solicitation". The key modifiers are 'non-permitted, unsolicited or unauthorized'. When a subscriber opts-in, they authorize the messages. We require explicit opt-ins for all subscribers in our service, regardless of whether they opted-in using another service.

Our business model is built around keeping subscribers opted in. When subscribers decide they no longer want to receive messages, we lose money. We track satisfaction by examining - among other variables - opt-out rates, click-through rates and response rates. The crux of our business is subscriber satisfaction and we take it very seriously.

<comment><USER4> How do subscribers opt out?

<comment><USER5> Not related to the company and remembering off the top of my head, but I believe the rules state that two commands must be implemented by all SMS short code users: HELP and STOP. HELP returns information about the service whereas STOP must remove someone from the system instantly, after a final text (may be) sent.

</comment></comment></comment></comment><comment><USER6> I started to write something like this for my non-profit projects using Twilio, but it's crazy feeling to have to reinvent the wheel and do something so rudimentary. Will definitely try to use your service, Matt, but here are my suggestions:

\- having a single opt-in code is not enough;

\- it would be nice to offer lower prices for non-profits;

\- any plans for an API?

<comment><AUTHOR> Thanks for the feedback and for creating an account! We do plan to release an API in the coming months. We'll also take into account your thoughts on opt-in codes and non-profit discounts, smart thinking.

</comment></comment><comment><USER7> This may have been mentioned somewhere but I don't see it on the pricing page: is there limit on how many campaigns or total messages I'm able to send in a month, or do I just pay per subscriber? For example, if I have 100 subscribers and run a single campaign at the end of every month, that's a lot less volume than having 100 subscribers and running a campaign every day. Are both options still costing me only $10?

<comment><AUTHOR> Good question. We have restrictions on campaigns. Our Starter Plan contemplates 36 campaigns - each additional campaign incurs additional expenses.

</comment></comment><comment><AUTHOR> Hey guys,

Thanks for reviewing our product! We built Locent to help you reach customers more effectively using SMS (text messaging). Think of us as Mailchimp for SMS. We help you build a full text marketing program in minutes. All the ordinary email use cases apply with text messaging, we just have higher read rates and conversion rates particularly on smartphones. Really appreciate your feedback!

</comment><comment><USER8> Slightly off topic, but I wish there were a mailgun for SMS service. 10,000 (or whatever number) free messages per month, a simple API, key, and secret, and boom. You're ready for sending out monitoring alerts for your side project that won't cost you anything until you're big enough to need to pay for it.

<comment><AUTHOR> Twilio, Nexmo and Plivo aspire to be that - no free messages from them though!

</comment></comment><comment><USER9> "Smart Messaging" kind of alluded to this for me, but do you plan to offer demographic targeting?

Also, what about templating based on user profile data? For example "We will be launching product Foo in {{ user.city }} soon. Stay tuned!"

The service looks cool and I'll give it a shot for my next side project.

<comment><AUTHOR> Thanks for checking us out! We do plan to expand user profile data to include further demographic information. Combined with forthcoming grouping functionality, you'll be able to target users for messaging based on a range of different variables as well as A/B test messaging across a subgroup.

</comment></comment><comment><USER10> Until the phone image loads (which took 6.1 seconds according to chrome timeline on fast internet), the page looks not so great: [http://i.imgur.com/8aIDB4Y.png](http://i.imgur.com/8aIDB4Y.png)

<comment><AUTHOR> Thanks for the comment, we'll look into it!

</comment></comment><comment><USER11> Is this available for use in South Korea? We're an on demand cleaning service in Korea ([http://getmiso.com](http://getmiso.com)) and use SMS for a lot of purposes but would love something like this.

<comment><AUTHOR> That sounds like a great use case, thanks for sharing. We're not in South Korea yet but please create an account and we'll update you as we expand.

PS your site looks great!

<comment><USER11> Signed up! :)

</comment></comment></comment><comment><USER12> Out of curiosity, is it possible to DIY your own SMS notification system?

Are there volume limits that would get you blocked from carriers (ie. AT&T, Verizon, Sprint, T-Mobile) even if you have two way consent?

<comment><AUTHOR> Yes, you can use developer APIs like Twilio, Nexmo or Plivo to create your own SMS application. Carriers have different ways of identifying behavior they dislike in their network - if you're transparent about what you're doing, follow the rules, and get opt-ins from your subscribers you shouldn't have issues.

The specific limits vary based on a number of factors like volume per period, inbound/outbound ratio and so on, but carriers empowered the short code industry (5 or 6 digit phone numbers) to allow mass messaging to happen on terms they're comfortable with. When you create a short code, you specify what they should expect from you and if they approve you get to send 30+ messages per second.

That said, DIY gets complicated very quickly in this space (hence why we built Locent).

</comment></comment><comment><USER13> Are you planning to release a "Mandrill for SMS" sister service?

<comment><AUTHOR> Stay tuned ;)

</comment></comment><comment><USER14> a similar product I've used [https://textit.in/](https://textit.in/)

not as turnkey though and not really marketing based

</comment><comment><USER15> Can you please advice how its different from CallLoop.com?

<comment><AUTHOR> On the surface we operate on different business models. CallLoop charges a flat rate per month with overages charged on a per message basis. That means they charge you a flat rate whether or not you succeed with your target subscribers.

We charge you per active subscriber per month, meaning that you only pay for people who have agreed to receive your messages. We have skin in the game to make sure you do well. If you don't, we don't get paid.

</comment></comment><comment><USER16> Is this entirely automated?

<comment><AUTHOR> Yes! All the messages run programmatically. We let you set the message content and timing, then we deliver texts on your behalf.

</comment></comment><comment><USER17> This is amazing!

<comment><AUTHOR> Thanks! Glad that you like it :)</comment></comment>


Early Adopters Have Already Let Go of the Past - <AUTHOR> http://www.skmurphy.com/blog/2011/01/07/early-adopters-have-already-let-go-of-the-past/

<comment><AUTHOR> Primarily about early adopters in a B2B market. Some key points:

Early adopters focus on useful intermediate results they can use as building blocks or viable interim solutions. They exist in state of ongoing active evolution.

Pragmatists focus on end states and end results: they don't like change and want to get to an outcome without spending a lot of time on the transition. If an early prospect for your new product is focused more on the outcome than on managing the transition your team had better be good at managing the introduction and bringup of your offering or the prospect may lose heart.

Early adopters often find a startup before the startup can find them. This can lull a startup into a false sense of optimism that the majority of the market has recognized the value of their solution.

Having a bona fide early adopter on your customer advisory board acts like a force multiplier on your startup.</comment>


Show HN: QuadTree with finite sized objects - <AUTHOR> http://xqt2.com/p/mtree.html

<comment><USER2> The project is great, and code is very nice...but what is the license? If you think others could benefit, perhaps consider putting it in an open source repo with a license of some kind. Right now, nobody else can use the code, since the absence of a license means no copy/paste allowed :)

<comment><AUTHOR> If anyone want to use it, I've put it out under the MIT License (available now in the updated source).

However I think most people will look at the ideas involved and implement it in there own way as I've made a few assumptions about the structure of the objects being put in the tree.

</comment></comment><comment><USER3> This looks great! precisely what I needed.

If I want collision-detection in 2D, are there other alternative algorithms? Is this the most efficient method? (for objects with finite sizes)

<comment><AUTHOR> I wrote this for a small game I'm updating, which has about 30 objects colliding. However in my situation because it has so few objects the overhead is greater than the time saved. This system works really well when there are many objects.

See if you can use a regular quadTree if you can find a way to do it. It'll be faster than this.

I don't know about the _most_ efficient method. That is a field of research bigger than my weekend project.

Good luck.

<comment><USER3> I'm also working on a 2D game. I end up with hundreds of objects so maybe this solution will make more sense in my case. I have to run benchmarks...

I like the approach of finite-size objects since I'm mostly working with creatures that collide or not based on their radius. I also have some polygons, but I can easily simplify them into circles ([https://en.wikipedia.org/wiki/Smallest- circle_problem](https://en.wikipedia.org/wiki/Smallest-circle_problem)).</comment></comment></comment>


UK has a 'digital skills gap' says technology firms - <AUTHOR> http://www.bbc.co.uk/newsbeat/23339815

<comment><USER2> Sub-title: Technology firms want to pay the minimum they think they can get away with for people with "digital skills" and then complain when no-one wants to work for them.

<comment><USER3> Also they want people who know their(the company's) internal systems inside out before they even get an interview.

</comment></comment><comment><USER4> I think it is mostly that devs often don't have an online presence. Building your online presence and contributing to open source projects really helps recruiters see what you are capable of in the real worl.</comment>


WebExtensions in Firefox 52 - <AUTHOR> https://blog.mozilla.org/addons/2016/11/18/webextensions-in-firefox-52/ <comment><USER2> Is there going to be a permissions system where I can specifically choose which set of APIs I allow to dispose to each extension?

<comment><USER3> Yes, there already is. Firefox enforces the same manifest permissions in WebExtensions as Chrome.

<comment><USER4> I assumed that the GP meant a permissions system for users, not for WebExtension developers. I don't believe there is that. It seems like it would be relatively trivial to add given the manifest permissions system is already in place though.

<comment><USER5> > I assumed that the GP meant a permissions system for users

This seems far beyond the capabilities of most users to understand. Perhaps someone can make an add-on for power users who are interested.

<comment><USER6> Android and iPhone do it, so....

<comment><USER7> For _some_ privileges. You can say "No, don't allow photos access," but there are other permissions like internet access that you can't block.

<comment><USER8> Actually for certain classes of iOS 'apps' you can do exactly this - to enable third party iOS keyboard access you need to go into Settings and enable an extended privilege set (which includes internet access)

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Will I be able to keep my tree style tabs?

[https://addons.mozilla.org/en-US/firefox/addon/tree-style- ta...](https://addons.mozilla.org/en-US/firefox/addon/tree-style-tab/)

The moment this plugin stops working is the moment I stop upgrading. Seriously!

<comment><USER10> Tree Style Tabs should continue to work. It's a very popular extension. Mozilla should probably include a disclaimer about Tree Style Tabs still working with any blog post about WebExtensions. :)

Mozilla is now beta testing a prototype of native Firefox vertical tabs, though it is not as advanced as Tree Style Tabs:

[https://testpilot.firefox.com/experiments/tab- center](https://testpilot.firefox.com/experiments/tab-center)

<comment><USER11> Vivaldi has a nice Tree tab style that I constantly use, it has become second nature - we're even looking at replicating it for our enrollment software, crazy enough.

</comment></comment></comment><comment><USER12> Firefox should concentrate on its biggest asset, ability to customize natively. For example I would like option to customize right click so when i right click term i would like to have ability to search by all search engines that i want to use not only default.Also most annoying thing in both browsers is not having ability to copy link as text not only its address.

<comment><USER13> You can copy links as text (at least in Chrome): just right-click and choose "Copy".

<comment><USER14> It's weird, I remember a similar option being there, but it's not (neither in Firefox nor Chrome)

[http://imgur.com/a/ncvyt](http://imgur.com/a/ncvyt)

<comment><USER6> WFM on Mac: [http://i.imgur.com/67G6R1p.png](http://i.imgur.com/67G6R1p.png)

<comment><USER15> Doesn't work unless you select the text for me.

<comment><USER6> On a mid-2014 Macbook Pro, I'm having a hard time right-clicking _without_ selecting the text using the touchpad. I think its automatic. How are you doing it?

<comment><USER15> I am using right click with a magic mouse on an early 2011-mbp. FWIW I just tried it on my touchpad without selecting anything and it doesn't show that copy option in the context menu. It is possible that it's a setting somewhere.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> The thing I like about Mozilla is that it isn't Microsoft or Google. Should I be buying more tinfoil?

<comment><USER17> No, that's ok. That's one of the reasons I use ff as well.

<comment><USER18> It's a good reason IMO. MS browsers push MS services and Google does the same with Chrome. For example, I have to be logged in with my G account to download an extension for my browser. I am struggling to see the connection between the two.

Finally, google links everything together (as we saw with the resold Pixel debacle), so why would I want to increase the risk of breaking Google TOS by using their browser.

<comment><USER19> Firefox pushes Mozilla services, such as their "Sync". They've also pushed commercial services, such as "Pocket", over user objections.[1] And, of course, they were paid to make Yahoo (of all things) the default search engine.

[1] [https://groups.google.com/forum/#!msg/mozilla.governance/2PY...](https://groups.google.com/forum/#!msg/mozilla.governance/2PYq2w8tejs/i_IindFDxxgJ)

<comment><USER20> They don't really push Sync. Most people are unaware of it.

I disagree with many of the concerns over Pocket as they are alarmist and overblown. The Pocket code is MPLv2 (open-source) and it isn't "spyware". This is trivially verified by looking at the code.

Mozilla used to have a partnership with Google that accounted for 85% to 91% of their revenue. Mozilla needs funding to survive, and Yahoo! provides some of that funding.

It is a false equivalence to suggest that the way Microsoft or Google pushes their services is anything like Mozilla's actions. Mozilla has always pushed for an open web and strong privacy protections. Google only implemented Do Not Track after Firefox did. Mozilla just released an ad-blocking browser for iOS to go along with their ad-blocking add-on. Comments like these only push that false equivalence.

</comment></comment></comment></comment></comment><comment><USER21> The post indicates that 52 was released this week, but Developer Edition still shows the latest update is 51.0a2 for me. Anyone else?

<comment><USER22> Same here.

</comment></comment><comment><USER19> This is basically "we have to be compatible with the guys with the bigger market share". Unclear why. Nobody installs add-ons on Chrome. I have the same add-on for Firefox and Chrome, and it has 100x the installs on Firefox that it does on Chrome.

<comment><USER23> They needed to revamp the plugin architecture in order to support multithreading. The current FF extension API relies on the fact that the browser UI and the Web content share the same OS thread.

Google Chrome was built with multithreading in mind from the ground up (well, even multiple processes), and its extension API was designed around that architecture.

I think Mozilla made the right choice by picking and extending an existing API that has seen a lot of real world code written against it, rather than inventing a new, incompatible one.

<comment><USER19> _They needed to revamp the plugin architecture in order to support multithreading. The current FF extension API relies on the fact that the browser UI and the Web content share the same OS thread._

No, it doesn't. The long-obsolete XUL API did, but the current Jetpack API does not. There's a per-addon task and a per-page task, which communicate via message passing.

<comment><USER3> Jetpack/SDK still isn't fully E10s compatible, see [https://developer.mozilla.org/en-US/Add- ons/SDK/Guides/Multi...](https://developer.mozilla.org/en-US/Add- ons/SDK/Guides/Multiprocess_Firefox_and_the_SDK)

<comment><USER19> Only if you use low-level APIs from the "privileged module" list.[1] The main high-level Jetpack APIs are multiprocess-compatible.

[1] [https://developer.mozilla.org/en-US/Add-ons/SDK/Low- Level_AP...](https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs)

</comment></comment></comment></comment></comment><comment><USER24> Cool work, and When do WebComponents become enabled by default, does anyone know?

<comment><USER25> Doesn't look like they are really actively working on it:

[https://bugzilla.mozilla.org/show_bug.cgi?id=889230](https://bugzilla.mozilla.org/show_bug.cgi?id=889230)

[https://bugzilla.mozilla.org/show_bug.cgi?id=1205323](https://bugzilla.mozilla.org/show_bug.cgi?id=1205323)

Which is weird because FF devs are active in spec discussion for web components. Maybe they are working on some lower-level infrastructure stuff before they can tackle these, I'm not sure.

<comment><USER26> Firefox already has most of the pieces for web components because XBL (an XML thingy for building UI widgets that is basically WebComponents but older). I suspect it's just blocked on deciding when the spec is ready for implementation in Firefox.

<comment><USER24> Most web component websites suffer badly on Firefox, due to polyfills. I m still hopeful.

</comment></comment></comment></comment><comment><USER27> So, is this the version of Firefox that kills all existing add-ons?

<comment><USER28> Haven't they been working with add-on makers to port things over?

<comment><USER29> Yes.

* [https://blog.mozilla.org/addons/2016/08/02/multi-process-fir...](https://blog.mozilla.org/addons/2016/08/02/multi-process-firefox-and-add-ons-a-call-to-action/)

* [https://developer.mozilla.org/Add-ons/Working_with_multiproc...](https://developer.mozilla.org/Add-ons/Working_with_multiprocess_Firefox#Adapting_to_Multiple_Processes)

<comment><USER30> So, when will we be able to use WebExtensions to modify the main UI's scripts and DOM?

I want to add tab previews with screenshots on hover (as in vivaldi), I want to use custom history (and completely change the way the omnibar works by searching through that custom history server with fulltext indexing of all visited webpages).

When can we expect that (which is possible with existing extensions) to land in WebExtensions?

<comment><USER3> Not any time soon. They're aiming for maximum compatibility with Chrome extensions, and Chrome doesn't have anything like that, so I wouldn't expect it to be a priority in Firefox either.

<comment><USER31> This seems like literally the stupidest thing they could prioritize.

<comment><USER32> The new multi-process architecture is fundamentally incompatible with many of their old extension APIs. The new multi-process architecture is one of their priorities (they're the last popular browser to get a multi-process architecture -- even IE has had this forever -- and it will solve many of their performance issues), and so another priority is implementing new APIs for extensions to use.

</comment></comment></comment></comment></comment></comment></comment><comment><USER33> Why do browser makers keep implementing new ways for companies to spy on end users? I had expected better of Mozilla.

The response to the web of trust shit show should have been to neuter add ons.

<comment><USER34> Mozilla has been gradually restricting what add-ons can do in Firefox precisely because of problems with malware. This is another step in that process.</comment></comment>


Ask HN: Anyone remember this thread? Please help - <AUTHOR>

	This has been on my mind for a while, and I have forgotten the website/original submission on HN. From what I remember it was a beautiful website that he was using to document his travels and also fitness/health related information. The comments were mostly about how great the site looked. It was a blue with awesome animations between pages. If someone remembers and can point me to the site/HN submission I will love you forever. <comment><USER2> [http://aprilzero.com/](http://aprilzero.com/)

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

<comment><AUTHOR> You are my hero</comment></comment>


Code-breaking quantum algorithm run on a silicon chip  - <AUTHOR> http://www.newscientist.com/article/dn17736-codebreaking-quantum-algorithm-run-on-a-silicon-chip.html

<comment><USER2> This is interesting, and may have useful applications, but it's not a validation of quantum computing as it's usually conceived, in that it appears to be doing the computation with multiple photons, so it could be relying on different photons being in different states. True quantum computing relies on the Copenhagen interpretation of the current framework for Quantum Mechanics: that the probability distributions it operates on are, in some sense, real, rather than merely reflections of our uncertainty regarding the system's state. It assumes that by operating on a superposition of these probability distributions _within a single system_ , multiple computations can be performed simultaneously. In the system described, that apparent superposition in the probability distributions is potentially being "faked" by superposition in the concrete, individual states of the multiple photons involved in the computation.

But I'm biased. I'm quite dubious about the Copenhagen interpretation of Quantum Mechanics, and I think quantum computation is a _reductio ad adsurdum_ of its conclusions, which may one day be used in its experimental disproof.

<comment><USER3> This _is_ a validation of quantum computing as normally conceived. Photons are just as valid a quantum particle as anything else -- most importantly they can exhibit entanglement, which classical "light waves" can't.

<comment><USER2> You're begging the question. I'm aware that most physicists believe photon states can be entangled. My point is that it's not clear that quantum entanglement is used in this computation. There are so many photons being used that it would be possible for the probability waves to be approximated by the frequency distribution of the photons' states.</comment></comment></comment>


Show HN: PostOffer.io – Startup job offer visualization - <AUTHOR> http://www.postoffer.io Had enough friends asking me about ways to value their startup offers that I created this site. It uses the binomial options pricing model to calculate the value of stock options to give you the fair market value of your offer.<p>Tell me if its useful or missing anything, any feedback is welcomed! <comment><USER2> anchoring the exit valuation at $1B means any valuation that's already greater than that at time of grant (if user chooses that option) produces a zero outcome for equity value.

You should consider making outcome valuation a flexible number, or capping the current valuation at < $1B.

This also lacks a concept of future funding rounds that inevitably produce dilution.

<comment><AUTHOR> Thanks for the feedback!

Yep I did realize the $1B issue too. Am building a way to dynamically set the exit valuation, probably next weekend.

As for dilution there isn't really a good way to factor that in. I still believe that using the BSM options model is a much better gauge of value than what most people use so hopefully it provides some benefits there.

<comment><USER2> yeah - the whole point here is that many people aren't sophisticated enough about how this stuff works to accurately predict future dilution (or to be aware of how various kinds of preferences work).

you could do something crude like extrapolating a data point such as size of last financing or TTD financing to estimate future dilution.

<comment><AUTHOR> Good point actually, will try to create some kind of visualization for dilution.</comment></comment></comment></comment>


Some π-ography for Pi day - <AUTHOR> https://julialang.org/blog/2018/03/pifonts <comment><USER2> For obvious reasons, I'm going to love today. There are so many fun things with pi.

1\. It's roughly equal to ln(6) ^ (ln(5) ^ (ln(4) ^ (ln(3) ^ ln(2))))

2\. It's not exactly hard to figure out whether pi ^ e is greater than e ^ pi (years ago I did it sans calculator on a test in a fast but brutish way), but there are some pretty terse, beautiful solutions that can be elusive.

3\. Aside from the whole e^(pi * i) - 1 = 0 just looking too crazy to be true, I also love how it includes the basics tools of mathematics / philosophy. Subtraction (or addition if re-arranged), Multiplication (or division if re- arranged), exponentiation, true / 1, false / 0, equality, geometric ratio (pi) which can be thought of as representing the physical world, a growth ratio (e) which can be though of as representing life, and a number (i) literally name after an aspect of human thought / imagination.

<comment> 52-6F-62 That's fun. I'm recently working my way back through my fundamentals prepping for some future hopeful coursework and had to play with number 1.

        #include "stdio.h"
        #include "math.h"

        long double ln ( long double n ) {
          return log(n) / log(M_E);
        }

        long double pi ( void ) {
            return pow(ln(6), pow(ln(5), pow(ln(4), pow(ln(3), ln(2)))));
        }

        int main( void ) {
          printf("%LE\n", pi());
          return 0;
        }

Or in JS

        function ln(n) {
          return Math.log(n) / Math.log(Math.E);
        }

        function pi() {
          return (ln(6) ** (ln(5) ** (ln(4) ** (ln(3) ** (ln(2))))));
        }

If anybody else wants to toy with it.

Getting older and working outside of the fields that employ a lot of certain technicals doesn't leave as much time for exploration as one would like.

<comment><USER3> Both log() in C and Math.log() in JS are natural logarithms, so there's no need to define your own ln() functions.

<comment><USER2> If I ever make a programming language the log function will take two parameters, value and base. It's too confusing when engineers, mathematicians, and computer scientists all use different implicit bases.

<comment> 52-6F-62 I had to do a double take for that reason. They're 100% correct, but I assumed what I'd learned from math.

Whenever I otherwise work with logarithms in programming I choose to work explicitly to at least save myself confusion. By default I assumed log()/Math.log() referred to common logarithms.

I usually end up re-implementing the log function with 2 values, as with _ln /logE_ above, but substituting the constant.

       long double logn( long double n, long double x )
       {
         return log(x) / log (n);
       }

But, yes, all my above code could be shorter.

I haven't worked with any explicitly scientific languages like Mathlab— do any languages take a more traditionally mathematical approach? Or any libraries that have taken that torch up?

<comment><USER3> For common cases of n=2 and n=10, consider using dedicated functions log2() and log10(), because they are more precise. For example:

      log(1E42)/log(10) == 42 - 7.105427357601002e-15

      log10(1E42) == 42.0

<comment> 52-6F-62 Noted. It's more for other cases. While doing any algebra coursework I usually (loosely) confirm my thoughts by running them in a repl with said functions to at least keep me on track— so _logn_ usually serves uncommon bases. My thinking that way might not make much sense, but I start to explain it in other comments.

Anyway— thanks, I appreciate the insights. That's the reason I like this forum

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> The author of this post is the creator of the Julia visualization package Luxor.jl ([https://github.com/JuliaGraphics/Luxor.jl](https://github.com/JuliaGraphics/Luxor.jl)). One thing I like about it is the nice turtle graphics feature ([http://juliagraphics.github.io/Luxor.jl/stable/turtle.html](http://juliagraphics.github.io/Luxor.jl/stable/turtle.html)).

</comment><comment><USER5> Is anyone else a bit sick of these 'pi days'? Every year we get the same old shtick.

Pleasingly, under the one true date format [0] there are no pi days. (Well there are, but long past the heat death of the Universe.)

[0] [https://xkcd.com/1179/](https://xkcd.com/1179/)

<comment><USER6> You might appreciate one of my favorite Pi Day related comics, then: [http://www.qwantz.com/index.php?comic=955](http://www.qwantz.com/index.php?comic=955)

<comment><USER5> The value on pi approximation day (22/7) is closer to pi than the value on pi day (3.14).</comment></comment></comment>


The Rise of the Religious Left - <AUTHOR> https://www.theguardian.com/us-news/2018/may/21/christian-religious-left-william-barber-poor-peoples-campaign <comment><USER2> Once upon a time the religious left was extremely powerful in U.S. politics. Determinative, in fact. (The abolition movement was largely church based, including some of my relatives.) That echoed with the Civil Rights movement in the sixties, of course.</comment>


Warren Buffett calls insurance Berkshire Hathaway's most important sector - <AUTHOR> https://www.fool.com/investing/2017/03/18/why-warren-buffett-loves-the-insurance-industry.aspx <comment><USER2> Search for any recent year and "berkshire letter", then, in the PDF, search for "insurance", and you'll see Buffett saying something similar going back as far as you can find Berkshire shareholder letters.

<comment><USER3> The real genius of Buffet is not the ability to make series of good investments, it's how he has structured his business.

Berkshire makes steady amount of money (float and profit) from insurance business. They have always cheap money to invest, even in bad times when money is expensive.

When there is downturn and buying opportunities arise, other investors must sell something good, arrange expensive financing, or dilute their stock to buy something new. Buffet just buys.

<comment><USER4> It's actually both. He's also able to buy whole business cheaper than what they'd go for in an auction. And he gets access to deals that allow him to leverage his brand name. (Example: Goldman Sachs [https://qz.com/67052/heres- how-warren-buffett-made-3-1-billi...](https://qz.com/67052/heres-how-warren- buffett-made-3-1-billion-on-his-crisis-era-bet-on-goldman-sachs/))

<comment><USER3> GS investment was prime example of Buffet having money when others don't during crisis.

Money was tight, others tried to stay liquid and hoard cash. Only the government and Buffet were there with large amounts of money to spend.

</comment></comment></comment></comment><comment><USER5> There's also his ownership stake in NVEnergy, which exploits Nevada's citizenry using a government sanctioned monopoly.

Solar died in Nevada in no small part due to Buffet's lobbying; don't be fooled by the aww-shucks demeanour, the dude is a shark.

<comment><USER6> "We do not want our million plus customers that do not have solar to be buying solar at 10.5 cents when we can turn it out for them at 4.5 cents or buy it for them at 4.5 cents," Buffett told CNBC Monday morning during a wide-ranging interview. "So we do not want the non-solar customers, of whom there are over a million, to be subsidizing the 17,000 solar customers."

The real shark was Musk, who was just mad that he wasn't able to force consumers to buy solar at more than twice the cost of other energy to subsidize his solar business, like he got the poor taxpayers of Nevada to subsidize his factory.

<comment><USER7> Nevada residents don't pay income taxes. They pay sales and property taxes (primarily). The majority of the income in the state, however, comes through sales taxes. Almost certainly not all from residents. Nevada itself is subsidized by outsiders visiting the state.

The people of Nevada lose more money in what they choose not to tax the casinos that whatever they may have directly or indirectly put into Musk's factory.

Some details on Nevada's revenue: [https://ballotpedia.org/Tax_policy_in_Nevada](https://ballotpedia.org/Tax_policy_in_Nevada)

<comment><USER2> So you're saying the taxpayers fund things through an _even more regressive_ process than income taxes.

<comment><USER7> Well, there is that. But also a large percentage of the sales tax (which includes hotels and such) comes from tourists, not residents.

<comment><USER5> People trotted that one out a few days ago when trying to justify spending $80MM on a ball park in Summerlin: we didn't pay for it, the tourists did!

Guys, you realize that that $80MM could have been used to make the CCSD _not_ the butt of national education jokes, right?

</comment></comment></comment></comment></comment></comment><comment><USER8> Well that's not surprising. He uses the float to generate investment returns, so he needs it to work.

There's possibly an extra bonus; if your investment division is good at generating returns, which it is, your insurance division doesn't have to take the same risks that other insurers do. This can mean that you net end up making money on that side as well, since you don't get burned by as many hot potatoes. No idea if this explains their profitable insurance division, I don't have the insight on the insurance side to say.

<comment><USER6> It's actually the reverse. Buffett requires his insurance companies write profitable policies, so that interest earned on the float is gravy. When one suffers through an inevitable bad year (Gen Re a recent example) float interest is a greater margin of safety.

Most insurers write unprofitable policies and use float interest to cover those losses and make a profit. When they have a bad year, they often lose horrendous amounts and can be forced to raise more funding at unattractive rates just to stay in business.

And the value of float seems to be over-rated on this site. Float almost never can be invested in the stock market or other high yield aggressive investments. Because it represents policyholder's premium dollars it has to be invested very conservatively, usually in safe fixed income investments. The way Buffett uses it adds a nice bump to earnings, but it's far from a key to his success. He never owned any insurance companies when he had his highest return decades.

<comment><USER2> Berkshire entered insurance in 1967; were their best years prior to that?

<comment><USER6> Buffett's best years were the Buffett Partnerships, from 1956 to 1969 (iirc), where his returns averaged 40% per year.

Berkshire has benefitted from insurance float for a long time, but it's a minor benefit. Float can't be invested in the stock market, it's extremely restricted in it's usage, and it's only been helpful because of the incredibly disciplined way Berkshire runs it's insurance companies. Proof is it never gave Berkshire Hathaway remotely the returns the Partnerships achieved.

<comment><USER9> That's not proof at all. 60 years ago markets were much less efficient than they are today, and Buffett Partnerships was incredibly small compared to the size Berkshire is now.

Buffett has said it ad nauseum- the anchor around his neck is the size. Beating the market with what $200 billion to invest? That's leagues different from beating it with $10 million.

</comment></comment></comment></comment></comment><comment><USER10> That's how he made his money, with GEICO. And there's so much that can be done with the "float".

<comment><USER6> Berkshire Hathaway didn't purchase shares in GEICO until the mid to late 70s (he was already worth hundreds of millions) and didn't buy it outright until 1995 (when he was a multibillionaire).

Before purchasing GEICO, Buffett averaged a 40% annualized return in his investment partnerships over 13 years, then averaged a 25% annualized return in Berkshire Hathaway for two and half decades. He was already the greatest investor in history before buying GEICO, and since purchasing it Berkshire Hathaway returns have dropped significantly (though not because of GEICO). GEICO has had only a small part to do with Berkshire's success, in fact it's a small portion of their insurance companies, which include General Re.

Float can be negative. In fact, the vast majority of insurers carry negative float, they lose money on the policies they write and squeeze out profits only with the interest they earn on float. Buffett's use of float is only successful because Berkshire is incredibly disciplined and doesn't own any insurance business without demanding it produce an underwriting profit.

Lastly, GEICO's float is probably the least useful float of all their insurance companies. Float's value is in proportion to the insurance contract duration, auto insurance is a short term contract and the float has to be returned quickly, greatly restricting the types of investments that can be made with it. Ajit Jain's group writes insurance contracts that have durations up to decades long, and that float can be invested much more aggressively.

<comment><USER9> Even if Berkshire didn't produce an underwriting profit, it'd still be very successful because of the returns they make on their float. There's a line obviously you can't cross but even if they had a combined ratio of like 1.05 they'd be fine. I like their discipline though.

Berkshire has always had a huge insurance component. They bought NICO in the late 60s and built the business to a large part around that.

</comment></comment></comment><comment><USER11> I think whats interesting is the role of insurance in economics going back to the fourteenth century or earlier.

Trade demanded ship insurance. Risk capital was locked up behind usury laws (can't lend money and be a good christian, and we killed or expelled all the jews so thats a ... bit of a problem right there..) but insurance for profit at end was legal. The whole UK debt finance from life expectancy, actuarial tables, the long-term rate of insurance as a cost..

Maybe Buffet is just looking into deep economic time and deciding he can live with backing a form of capital investment which pays back over the 100+ year model.

<comment><USER12> That is interesting, where did you learn about the longer term history of insurance? It sounds like it would make a good book.

<comment><USER13> Well, here's the first result for "books on the history of insurance"

[https://play.google.com/books/reader?id=kkiFKCO5BAgC&printse...](https://play.google.com/books/reader?id=kkiFKCO5BAgC&printsec=frontcover&output=reader&hl=en_US&pg=GBS.PA44)

</comment></comment></comment><comment><USER14> Buffetts reinsurance team is legendary. I have a theory (my gut feel from reading numerous letters) that Buffett makes a point of saying this every year as a way to publicly recognize their contribution as the force behind Berkshire.

</comment><comment><USER15> maybe that was a joke and i missed it. deeply interesting? no idea why it's on here.</comment>


Antikythera Machine built out of Lego - <AUTHOR> http://www.youtube.com/watch?v=RLPVCJjTNgk&feature=mfu_in_order&list=UL

<comment><USER2> That was much more impressive than I thought it would be given the title. The presentation gives a very nice demonstration of how the gears do calculations.

<comment><USER3> The mechanism seemed overly complex to me; e.g. to multiply by 5/19ths, why not just use two cogs, one with 5 teeth the other with 19 (or some multiple thereof)?

<comment><USER4> Lego gears only come in specific sizes (and therefore are limited to certain ratios).</comment></comment></comment>


How to keep your users safe - <AUTHOR> http://blog.clef.io/post/40530686153/how-to-keep-your-users-safe

<comment><USER2> "Two-factor ... These devices can be expensive ... "

This is not true at all (the expensive part). The hardware component for setting up two-factor auth for users is effectively free if your users have smart phones (i.e. Google Authenticator and equivalents). Honestly, users that don't probably have smart phones probably aren't going to use two-factor auth anyway.

Similarly the server software side isn't that complicated to implement either. In my experience with implementing it, most of the complexity is in handling emergency codes for resets as implementing the TOTP/HOTP parts are pretty straight forward.

I remember hearing that single purpose two-factor hardware token (i.e. something like those RSA SecurID keychains) are on the order of $5-10 per user (was a couple years ago, price is probably lower now). If you're dealing with less sophisticated users but the cost of compromising a user's account is high (ex: you're a financial institution) then I think that price is well worth it.

<comment><USER3> Many companies still charge $50/user/year for two-factor authentication (Wells Fargo wanted to charge me $180/year for it) and even programs that use smartphones can be expensive. What you're suggesting is that companies do it in-house, which is possible with a sophisticated IT department, but still takes significant time (cost) to implement and manage.

You're right that this technology is getting much better, but cost is still a barrier to entry for this space.

<comment><USER4> I'm a programmer and it took me about an hour to implement and test a basic Two-Factor authentication algorithm using Google Authenticator. That includes creating the QR code, creating the secret string and calculate the current one time password. If you have a decent programmer for your web application then the one time cost involved is very minimal for the benefit that it provides.

</comment></comment></comment><comment><USER5> Really looking forward to seeing Clef on more sites</comment>