Cloud Firestore: A New Document Database for Apps - <AUTHOR> https://firebase.googleblog.com/2017/10/introducing-cloud-firestore.html <comment><USER2> [Firebase founder] This new database has been in the works for 2.5 years, since shortly after we joined Google. It was developed in close collaboration with the Cloud Datastore[1] team, and uses Google's core database infrastructure.

We built it because we know it can be challenging to build complex apps with our original database -- Firebase Realtime Database -- where we optimized for ease-of-use & real-time sync over querying functionality. For more info, see this comparison between the two[2].

This is a open beta launch, so the product has limitations[3] you should be aware of. We'll be working to remove/raise these before General Availability.

A note on naming: Firebase launched in 2012[4] with a single product, the original database. As we added products (Firebase Auth / Firebase Hosting / etc), we began calling the original product 'Firebase Realtime Database', or RTDB for short. If you haven't followed us lately, we've grown to become Google's app platform, and now have 16 products to help you build/grow apps.

We're grateful for the support HN has given us over the years and we hope you enjoy Cloud Firestore!

[1] [https://cloud.google.com/datastore/](https://cloud.google.com/datastore/) [2] [https://firebase.google.com/docs/firestore/rtdb-vs- firestore](https://firebase.google.com/docs/firestore/rtdb-vs-firestore) [3] [https://firebase.google.com/docs/firestore/quotas](https://firebase.google.com/docs/firestore/quotas) [4] [https://news.ycombinator.com/item?id=3832877](https://news.ycombinator.com/item?id=3832877)

<comment><USER3> How goes the work to improve customer service and support?

Thinking about [https://news.ycombinator.com/item?id=14359801](https://news.ycombinator.com/item?id=14359801), what improvements have you made in the last 139 days that would make us want to build on this?

<comment><USER4> For their own sake, I hope the team gives this question attention and respect.

What sets Amazon apart from many other companies is their reputation for relentless customer service. Customers pay close attention to the quality of answer or lack of answers to questions like this one.

Every cloud company that asks us to invest our time in their proprietary API is asking us to trust them. If you violate one vocal customer's trust, we're going to notice. If you don't make things right, we're going to notice. Even before I read the article, I first read the comments to gauge the reception because I care more about the perception of trust before I even consider using something like this.

Customers don't always stop trusting companies for fair or valid reasons, but that doesn't matter. Trust is much more of a visceral thing than a cerebral thing.

So here's my question to other HN readers. What would Google need to do to improve its reputation for customer service? What would they need to do to make that commitment resonate with you on a visceral level?

<comment><USER5> For me it's pretty easy. I want to start hearing and seeing positive anecdotes about real time communication with Google Cloud support. That is to say, I want to hear people start saying things like "I rang them, and everything was sorted out" ideally with a platitude attached like "it was actually a pretty good experience".

I hear this about AWS all the time, and I've even experienced it myself. One client some time ago had an AWS novice who was confident they could handle setting up the auto-scale groups. They made a small mistake, which lead to the scaling trigger being permanently on, and it auto scaling to 1024 ec2 nodes within the first half hour. Immediately after deploying a fix for the scaling trigger, I phone AWS to see if there was anything that could be done about the cost of this accident, and I had a small monthly credit to compensate, and a respectable discount on the next appropriate AWS training course so that the novice could learn more and hopefully avoid future mistakes.

THAT is the kind of story I want to start hearing about Google Cloud. "I used it and did not have problems", and "It works and was cheaper than AWS" is just not enough.

</comment></comment></comment></comment><comment><USER6> We're one of the startups shown in the announcement (Crypto Portfolio Tracker [1] - bottom right logo). Firestore enabled us to build the first version of our app in under a week. We've been using the product for over two months now, and it's given us a competitive edge in being able to develop features rapidly and not having to spend time on operations.

One of the things we liked about Firestore is that it takes the best practices of Realtime Database and makes them more explicit. Before, your RD database structure would look like `collection/{id}` and `collection_sub_collection/{id}/{sub_id}` in order to avoid loading sub- collections in top-level queries. With Firestore, this collections pattern is now part of the API itself, and sub-collections aren't fetched when the parent is fetched.

Another feature we liked is that transactions are no longer limited to a subtree of your database. Before, you would have to structure all of your transactional data under a single path. This would sometimes lead to having to pile-in unrelated data into a single object, such as adding payment data under a users object instead of a separate collection, so that you could atomically modify both user and payment data. With Firestore, transactions are global, so this isn't a concern anymore - we are free to structure our data in any way that makes sense for our app.

Overall, we had a great experience with Firestore during the alpha, and we'll definitely be keeping it as part of our technology stack. Congrats on the launch!

(disclaimer: this post isn't sponsored by Firebase)

[1] [https://cryptoportfoliotracker.com](https://cryptoportfoliotracker.com)

<comment><USER7> Is your use of Firebase limited to Firestore? If not, Does Crypto Portfolio runs entirely in Firebase?

<comment><USER6> We run entirely on Firebase with Auth, Storage, Hosting, Firestore, and Cloud Functions. As a result, we actually don't have any backend to manage.

<comment><USER8> Do you think that the time-to-market advantage that using Firebase offers you justifies the (presumably) increased cost when compared to the cost of managing your own infrastructure?

<comment><USER6> Yes, as a data point, the other tracker apps are only now beginning to add exchange API integration, while we were able to develop and launch this feature over a month ago.

While I like self hosting (was previously a RethinkDB user), from a business perspective, it doesn't make sense to spend time on operations if it doesn't give you a competitive advantage. It's going to be very difficult to outpace a business that only has to focus on development versus one that has to do development and operations.

<comment><USER9> Can you give a rough estimate on the cost you pay based on the amount of traffic you get to this app? I'm considering using Firestore for my next project but I'd love to hear from your perspective if the cost outweighs the alternative of rolling your own backend.

<comment><USER6> The cost is actually _less_ than what we would be paying if we rented dedicated servers. I think the reputation for clouds being expensive comes from people running compute instances 24/7\. However, you don't run any compute instances on Firebase. You only pay for operations (read, write, function executions, etc.), and if you structure your app to avoid operations (i.e. through caching), you end up paying very little.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> I don't like this trend of creating new closed source database systems that only exist on a single cloud provider.

Your data is your most valuable asset, and by using this you're locking it inside Google servers. If they decide five years from now to discontinue it, or to raise the pricing 10x, you're screwed.

Are most developers only working on short term projects? Why would you put yourself in such a situation instead of using open source technologies that can be deployed anywhere?

<comment><USER11> > Your data is your most valuable asset, and by using this you're locking it > inside Google servers. If they decide five years from now to discontinue it, > or to raise the pricing 10x, you're screwed.

You'd be able to move your data off of firestore. And there's legal business contracts around pricing. Google can't just raise pricing 10x overnight.

<comment><USER10> Sure, you can move it, but how much code will you need to rewrite? How much effort to convert the data to a new database format? And how much more development time to migrate your data without taking your service down during the migration?

It's a very expensive move that I don't think people consider when choosing this kind of solution.

<comment><USER12> _how much code will you need to rewrite?_

If you're concerned that a service might shut down then you need to architect your application with that in mind, in which case how much of a rewrite is necessary is essentially up to you. Usually there's a tradeoff between going fast and engineering solutions that will work in the long term. Most startups never get to the stage where they need to swap out a service, so closely tying your application to a service is probably OK at the start.

If the service that shuts down is reasonably popular though it's likely there'll be very little code to change. API-compatible competitors will pop up to replace it. It happened when Parse closed.

<comment><USER13> The thing is, oftentimes these closed source database solutions aren't appreciably faster than choosing a managed solution that uses existing technology, like a hosted Postgres / MongoDB / whatever provider. In those cases your switching cost is vastly reduced, it's essentially a purely operational concern and your code doesn't need to change at all.

</comment></comment></comment></comment></comment><comment><USER14> This is great. I had a feeling something like this was coming given most firebase people were pretty open about what the shortcomings of the Realtime DB were and AngularFire received some much needed attention to its database API last week.

That said, I really hope there are plans for some full text search ability beyond the current suggestions[1]. I would very much like to ditch Elasticsearch in favor of db engine provided search. Even a small subset of the Elasticsearch/Solr feature set (similar to the full text search capability now available for Postgres[2]) would be a very welcome addition.

[1] [https://firebase.google.com/docs/firestore/solutions/search](https://firebase.google.com/docs/firestore/solutions/search) [2] [https://www.postgresql.org/docs/9.5/static/textsearch.html](https://www.postgresql.org/docs/9.5/static/textsearch.html)

<comment><USER15> Thanks for the feedback, this request is definitely been a frequent one. :)

</comment></comment><comment><USER16> Does any of you feel cheated by Google? Rather than improving the existing product and providing backward compatibility, Google has chosen to build a new product with its own proprietary API.

I have a client who has invested significant amount time and money in Firebase Realtime Database. Now with this move, I am not sure if Google will support Firebase Realtime Database for next 5 years. So a full rewrite might be needed.

Once more it seems that going Cloud Native on one of Google's proprietary tools is very risky. I know many of the readers will say that Firebase Real- time Database is still supported. But the main question is: will it stay supported for years to come?

Google please please make an announcement and make a commitment to keep Firebase Realtime Database alive for "X" years to come. Otherwise, you are just making us developers lose faith in you.

<comment><USER2> [Firebase founder] To offer better querying, improve the data model, and increase scalability we had to build an entirely new database. The original technical choices we made as a startup weren't able to support the featureset Cloud Firestore has. Even if we tried to improve upon the existing Realtime Database product, we would have had to make breaking changes that would have required you to rewrite your code (and likely shipped a worse product).

Regarding deprecation: you can be comfortable continuing to build on the Realtime Database. We don't intend to deprecate either database, since both are useful in different situations, depending on what you're building. We recommend using the Realtime Database for a number of usecases[1]

We're not posting a "Realtime Database will be supported for X years" statement because many may interpret this as "the Realtime Database is deprecating in X years", which isn't the case.

[1] [https://firebase.googleblog.com/2017/10/cloud-firestore- for-...](https://firebase.googleblog.com/2017/10/cloud-firestore-for-rtdb- developers.html)

<comment><USER16> Thanks for the clarification. I certainly feel better with the confirmation. I hope it will give some certainty to thousands of developers out there who decided to make Firebase Realtime Database a critical component of their product architecture.

</comment></comment></comment><comment><USER17> > _Document Database for Apps_

From linked page:

> _designed to easily store and sync app data_

Maybe I'm misunderstanding, but that's not what I understand a "document" to be.

For me a document

\- is a file that can be stored on a file system

\- can be send via mail

\- is using a standard document representation so can be used by different applications, such as markup (XML, HTML, SGML), or maybe PDF

<comment><USER18> Why the downvote ? The person is polite and genuinly doesn't know something.

Just answer.

Besides, a "document database", like many term in computing, can be very confusing. Come on, we all had to be explained what the difference is between a software server vs hardware. This is not different.

<comment><USER17> > Why the downvote?

Smells like ring voting: 4 downvotes in < 0.5 min? @dang?

<comment><USER19> Any post having to do with YC, Google, Microsoft, Facebook, Apple, etc are voting ringed to hell by their thousands of employees.

As the site has grown, HN has become a bit of a mouthpiece for large organizations through these de facto voting rings.

Best idea I have is for HN to add a profile field like: "Organizations: [google]" which would prevent voting on any Google-related submissions. It could also add a disclaimer in each comment of these submissions, so users wouldn't have to remember to do that.

<comment><USER20> It isn't even malicious - just a natural tendency people have. Like favoriting your friends picture on instagram even if it doesn't look too flattering.

I love that suggestion, but how would you validate it? Registering company domains would be an exhaustive process.

<comment><USER21> Or just punish big brand submissions slightly, to make it fairer for everyone else.

</comment></comment></comment></comment></comment></comment><comment><USER22> Sounds interesting, but is there any independent description of what it cannot do, or what would be hard to do?

I just noticed it's much easier to understand a new datastore by reading its limitations (usually carefully omitted from pr articles or documentation).

For example, I suspect that Firestore must be built on top of Spanner infrastructure, as it's the only way to get usable cross-datacenter many-row transactions. And Spanner's limitation is it's high price. And if it's not Spanner, but more like Cloud Datastore or the old Megastore, then there should be limitations on transactions.

Sounds amazing anyway, more datastorage choices is always better for the world.

<comment><USER23> We try to be honest about what the product can't do natively and provide best practices, take a look at the "solutions" section of the documentation: [https://firebase.google.com/docs/firestore/solutions/](https://firebase.google.com/docs/firestore/solutions/)

For example Cloud Firestore can't do native full text search, but we made sure it's easy to integrate with a search provider like Algolia.

As for your guess about Spanner, you're right that Cloud Firestore uses the same technology as Cloud Spanner to ensure consistency at scale.

Would love to know what you think about the product once you've tried it!

</comment></comment><comment><USER24> The firestore security rules dsl [1] looks like it could become cumbersome as the number of edge cases increases. I've briefly used firebase realtime database json rules [2] in a side project, and while basic acl scenarios can be covered cleanly, rules quickly tangle without a full programming language. It's hard to check syntax, lint, test, and collaboratively edit.

I believe this custom auth layer is best handled by allowing code with restricted api access and time constraints. The technical approach cloudflare used to implement its edge workers by embedding v8/js [3] would be perfect here.

[1] [https://firebase.google.com/docs/firestore/security/get- star...](https://firebase.google.com/docs/firestore/security/get-started)

      example:
      service cloud.firestore {
        match /databases/{database}/documents {
          match /{document=**} {
            allow read, write: if false;
          }
        }
      }

[2] [https://firebase.google.com/docs/database/security/](https://firebase.google.com/docs/database/security/)

[3] [https://blog.cloudflare.com/introducing-cloudflare- workers/](https://blog.cloudflare.com/introducing-cloudflare-workers/)

<comment><USER23> The new rules language (which was already used by Cloud Storage) _is_ a full programming language. It's not turing complete, but that's by design. Still, you can declare functions and do other complex things that were never possible with the Firebase Realtime Database JSON rules.

We're working on opening up the tools to work with the rules language so you can test and iterate more easily.

</comment></comment><comment><USER25> I'm still looking for a product that provides firebase-levels of ease of getting up and running (no API to design, rule-based authentication, etc) , but runs on your own infrastructure, off of a traditional RDBMS.

Someone tell me they've found the holy grail?!

<comment><USER26> You should check out Hasura ([https://hasura.io/](https://hasura.io/))!

It is exactly what you're asking about.

Disclaimer: I work at Hasura. Feel free to ask me anything you want to know about.

<comment><USER25> FYI, I couldn't even get it running because "hasuractl.exe local start" is not a valid command with the version of hasuractl (0.1.12) you have available for windows on this page:

[https://docs.hasura.io/0.14/ref/cli/hasuractl.html](https://docs.hasura.io/0.14/ref/cli/hasuractl.html)

:(

<comment><USER27> Sorry about that, we have deprecated local feature, but yeah docs lag behind.

Please login to [https://dashboard.hasura.io](https://dashboard.hasura.io) and create a free trial project.

<comment><USER28> "but runs on your own infrastructure, off of a traditional RDBMS"

"exactly what you're asking about"

"deprecated local feature"

Eh?

<comment><USER25> yeah. The search continues.

the following 3 have some potential:

[https://feathersjs.com/and](https://feathersjs.com/and) postgraphile [https://postgrest.com/en/v4.3/](https://postgrest.com/en/v4.3/) [https://www.npmjs.com/package/postgraphile](https://www.npmjs.com/package/postgraphile)

</comment></comment></comment></comment></comment></comment><comment><USER29> This is amazing! I just spent yesterday writing a separate app engine service to use cloud datastore even though the rest of our stuff is on Firebase (RTDB wasn't a fit for us). Great to see this is out

</comment><comment><USER30> How is the pricing? Firebase Realtime Database is fairly expensive ($5/GB of storage per month), so it makes economic sense for developers to migrate to their own backend once they hit a certain scale. This is why third-party mobile backends are nowhere near the popularity of non-mobile backends with Google Cloud / AWS.

Do you think $0.18 per 100000 writes solves this problem?

<comment><USER23> As you've noticed, the pricing model is totally different for Cloud Firestore. Link for others reading: [https://firebase.google.com/docs/firestore/pricing](https://firebase.google.com/docs/firestore/pricing)

If you're concerned about price per GB stored, Cloud Firestore will be much cheaper than Realtime Database (0.18/GiB/month). We evaluated many use cases when deciding on prices and we believe developers will be happy with the new model.

However since Cloud Firestore charges by operation, it's important to evaluate your use case when thinking about pricing. For example if you're running a fleet of IoT devices checking in a few times per second with very small payloads, you'd be doing a lot of write operations with very little storage and Cloud Firestore could be more expensive in that case.

<comment><USER31> So:

firebase <\-- presence, real-time editing, chat, in-memory things

firestore <\-- things that have a save/submit button, transactional database

quick question: So the real-time features in firestore are not ideal for real- time text editors and chats. But saving documents from firebase after to user has left is perhaps a good middle ground.

Would firestore charge read for each reader that's listening in real-time when a document is updated?

<comment><USER23> I wouldn't say the difference is exactly that clear cut. Presence is a clear example of a situation where you want to use Realtime Database over Cloud Firestore. And you're right, for something that you would otherwise do "in memory" or use memcached/redis/etc Cloud Firestore may not be the right fit.

In my experience both databases are totally appropriate for a chat app. Even though in Cloud Firestore you will pay a document write for each new chat message, that's only $1.80 for a million chat messages and you get all the rich querying from the Cloud Firestore API.

Regarding your pricing question: [https://firebase.google.com/docs/firestore/pricing#operation...](https://firebase.google.com/docs/firestore/pricing#operations)

> When you listen to the results of a query, you are charged for a read each > time a document in the result set is added or updated. You are also charged > for a read when a document is removed from the result set because the > document has changed. (In constrast, when a document is deleted, you are not > charged for a read.)

</comment></comment></comment></comment><comment><USER32> A couple of questions:

What's the underlying synchronisation mechanism?

Is it based on CRDTs?

How does this product differ from Gun.js and realm.io?

<comment><USER15> It does not use CRDTs as they cannot be used to handle all the update requirements of this system.

It uses Paxos as the consensus algorithm, along with internal systems like the TrueTime API to enable us synchronously replicate across multiple data centers.

</comment></comment><comment><USER33> Looks great, however, I still have hopes that something similar to a GraphQL interface for a SQL based database is coming.

NoSQL is cool, but ultimately GraphQL/Apollo serves many of the same issues but has the capability of a much richer, standardized and potentially lower cost backend.

<comment><USER34> It's coming [https://subzero.cloud/](https://subzero.cloud/) :)

<comment><USER33> looks cool, interested to see the backend you're using and if it requires lockin.

did Kreatank do that logo?

<comment><USER34> the stack is like this

graphql/rest -> openresty ( + custom code ) -> postgrest (custom) -> postgresql

yes he did :)

</comment></comment></comment></comment><comment><USER35> Couple of questions. For the querying:

[https://firebase.google.com/docs/firestore/query- data/querie...](https://firebase.google.com/docs/firestore/query-data/queries)

It seems as though there is just the capability for AND logic between the WHERE queries, is that correct. Is the any plans to add AND/OR and perhaps a concept for representing grouping like parentheses?

And for the data structures:

[https://firebase.google.com/docs/firestore/manage- data/struc...](https://firebase.google.com/docs/firestore/manage- data/structure-data)

Is there any capability to perform joins or have the data populated at query time?

And for the last thing:

It is mentioned multiple times in the documentation that nested collections will not be deleted if the parent is deleted. I'm just curious why there isn't the capability to insert a document with options that would allow something like a cascade delete. Since you allow indexes on collections, there is obviously some sort of metadata maintained, why not just add an additional flag that could be set so that whenever a record is deleted it can optionally have its subcollections removed as well?

</comment><comment><USER36> How is this different than using datastore?

<comment><USER15> Great question! I'm the PM for both Cloud Datastore and Cloud Firestore.

The biggest difference is the integration with Firebase, so you have access to Mobile (iOS/Android) and Web SDKs along with a native offline mode. This comes along with the real-time synchronization feature that makes serverless app development a breeze.

Cloud Datastore is great for large scale server-side development where you manage your own connection to your app, such as running your own website on App Engine or via Compute/Container Engine.

</comment></comment><comment><USER37> Just _never_ use Google for building applications.

They have invested heavily over the lifetime of the company in avoiding providing support. That reputation can never be revived.

Google does not have direct customer support in its DNA, it has the opposite, whatever that is.

They have not demonstrated relentless commitment to being available to resolve issues, and _nothing_ matters more than this if you've bet your company on their platform.

If something goes really wrong. Amazon has your back and you'll find someone who'll listen who has the power to resolve it. Google, you're stuffed. If you've built you're business around that thing that went wrong, well time for regret.

<comment><USER38> Personally, this has not been my experience of the Firebase team actually - for me they have always gone out of their way to help find solutions and give all kinds of advice.

</comment></comment><comment><USER39> I'm sorry if I overlooked, but no aggregations? Like calculating sums or averages?

<comment><USER23> That's correct, no native aggregations right now. See this doc for some more info on how to achieve what you want: [https://firebase.google.com/docs/firestore/solutions/aggrega...](https://firebase.google.com/docs/firestore/solutions/aggregation)

<comment><USER39> Ok,thanks for the helpful link. I'm hoping native aggregations come soon!

</comment></comment></comment><comment><USER40> What happens to "Backups" with Firestore? (Firestore console doesn't have a Backups tab)

<comment><USER41> Thanks for the feedback. We don't have backups for Cloud Firestore yet, but this will be available down the road.

<comment><USER42> What are our options until this is available? Will built in backups be available once you're out of beta, or further down the road?

</comment></comment></comment><comment><USER43> Grats! Can you talk a bit about your consistency model?

<comment><USER15> Sure, it's strongly consistent on the server-side part (strict serializability), whereas for the mobile/web clients we make sure we move you through consistency snapshots with the real-time sync functionality.

<comment><USER44> Congratulations on the release!

> multi-region replicated database [..] once data is committed, it's durable > [...]

> strongly consistent on the server-side

Do you mind elaborating a bit more here? Around perhaps what happens underneath the hood when failing over, etc. Do you have a single "co- ordinator" of sorts ensuring strict serializability, if so what do you do when failing this over? Or is it a quorum based approach like Paxos/Raft?

<comment><USER15> Quorum based (Paxos)

</comment></comment></comment></comment><comment><USER45> The offline database experience still looks really primitive compared to Realm, and all the documentation seems to purposefully avoid any details with regards to conflict resolution. Are there any plans to address this?

</comment><comment><USER46> Having a consistent relational db background, I always feel a bit lost about the patterns provided to associate models in no-sql land. Firebase db was 'weird' when it came to associations, don't see that much changes here. The feature is available, but... Fire store provide 3 ways to do so, but why ? Going through the docs the results/benefits for each patterns remains unclear, the way to query each of those is not really understandable reading the docs. is this state will remains or is it a field that is potentially to be improved in the next releases ?

<comment><USER46> It might just be me misinterpreting your example, but having created the required records to run the following command ('var messageRef = db.collection('rooms').doc('roomA').collection('messages').doc('message1');'), i don't see no results. Or people is expected to understand that 'message1' stands for an object ?

</comment></comment><comment><USER47> Very excited to see a Go SDK for it, too! Can I use it for real-time as well?

<comment><USER23> The Go SDK does not yet have realtime capabilities but that's on our roadmap! Right now you can use realtime with Android, iOS, Web, and Node.

</comment></comment><comment><USER48> Looks very exciting! I've used firebase for some small weekend projects and it's been very productive for me.

I'm curious, what's the react native support like for Firestore / firebase in general?

<comment><USER41> There's a pretty complete React Native library you can use to build with Firebase services, including Cloud Firestore: [https://github.com/invertase/react-native- firebase](https://github.com/invertase/react-native-firebase)

The Cloud Firestore integration is fresh out of the box, but I'd certainly recommend trying it out!

</comment></comment><comment><USER49> So read through the docs, decided to give the free tier a go and of course they are punishing me for being an existing customer.

"The Blaze billing plan (pay-as-you-go) for Firebase is required for Google projects with billing enabled.

To use the free tier, you must first turn off billing in your Google project."

I don't want 15 "projects". I want to add this to my existing one. Why on earth is this not possible?

</comment><comment><USER50> Should I really be so excited for built-in query support in 2017? For a mature product supported by a dominant tech company? Because I am.

</comment><comment><USER51> I do like the new solution more than the Realtime Database, but I see only this solution to fit smaller scale. Applications with heavy write could get really expensive. Also, the standard plan has only "Maximum write rate to a document 1 per second". The write is currently three times expensive operation as read hopefully, this would be lowered in future.

</comment><comment><USER52> Cosmos DB from Microsoft Azure seems to be a much better choose, because it provides tons of useful features, but it also compatible with MongoDB, so if they decide to increase prices or shut it down some day, you will be able to use regular MongoDB instead. With Firestore it's not the case and you are locked with a proprietary solution.

</comment><comment><USER53> Great update, congratulations. It sounds similar to [https://deepstream.io](https://deepstream.io) records - small JSON documents that are stored and synced in realtime across clients and can be arranged in lists and reference each other.

</comment><comment><USER54> I just hope your Firestore Status Dashboard is going to look very differerent than your Realtime DB one. I mean - much less yellow and red dots.

</comment><comment><USER55> Can this be used with the old firebase sdk? Upgrading looks like pain

</comment><comment><USER56> Hmm, is there react-native support?

<comment><USER2> Yes: [https://github.com/invertase/react-native- firebase](https://github.com/invertase/react-native-firebase)

</comment></comment><comment><USER57> Will GeoFire remain solely on RTDB?

<comment><USER23> Cloud Firestore has native support for the "GeoPoint" data type and will eventually have support for native geo queries without any external library.

For this reason we are not going to invest in making a GeoFire library for Cloud Firestore and spend that effort getting the native functionality ready.

</comment></comment><comment><USER58> What's the difference with Firebase RTDB?

<comment><USER59> Here's a document they wrote comparing the two: [https://firebase.google.com/docs/firestore/rtdb-vs- firestore](https://firebase.google.com/docs/firestore/rtdb-vs-firestore)

</comment></comment><comment><USER60> Why anyone still uses firebase when there's trivial to get running OSS ways of getting this done I'll never understand. People think stuff like this makes time to development smaller, I say it increases it deceptively

<comment><USER61> I'm a one-man shop and the less time I need to spend with servers the better. The Firebase + Google Cloud Functions approach has served me well.

<comment><USER60> Yea if I could give you a script to run which made setting up your own version of those would you?

</comment></comment></comment><comment><USER62> Another cool Google tech which will SUDDENLY go extinct when you need it most and which will ignore all of you support requests if it doesn't work properly and which will block you from all of you stuff in Google's system if you break smallest shady statement line in the TOS. Do you really want to base your business on top of Google's stuff? Come on, even MS is more trustworthy than modern Google.</comment>


Perfecting the Babel Fish - <AUTHOR> http://tomasztunguz.com/2011/05/17/perfecting-the-business-model-babel-fish/ <comment><USER2> When it comes to machine translators... Did you already try: <http://www.ackuna.com/></comment>


Research Areas of Interest:  Building scalable, robust cluster applications - <AUTHOR> http://googleresearch.blogspot.com/2010/01/research-areas-of-interest-building.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+blogspot%2FgJZg+%28Official+Google+Research+Blog%29 <comment><USER2> I currently work for IBM doing this exact sort of thing. Its called PowerHA pureScale (used by DB2). Cluster application service providing, for shared data and network data concurrency.

Its actually a pretty cool technology and I can imagine that similar solutions will enter the market soon. Clustered applications is the next thing until we break past the physical wall on processing power and speed.

But also, who knows. Maybe clustering will be to data processing like SOA and web services were to web apps. Doubt it though.</comment>


Free Email Verification API in Go - <AUTHOR> https://github.com/sdwolfe32/trumail <comment><USER2> Why on _earth_ is this exposed as a web service? This seems like the perfect example of something that should be done locally in email-sending code, via a library. This is why microservice zealotry scares me.

"Why can't we alert our customers about our security breach, Bob?"

"Well, Alice, it seems that we can't send them emails because the email- ability verification service we use before we attempt to . . . y'know, send the email, is crashing our app! Even worse, that service is taking so long to return error messages that our app is unresponsive for other requests!"

"Shit, Bob; couldn't we just email them ourselves to see if they are email- able?"

It also seems likely that repeated use of the "start to compose a letter then bail out" network behavior might get people using this added to a blacklist by programs that naïvely detect DDoS attacks on mail servers/relays.

Oh, and you now have another location where all of your customers' email addresses may be stored in plaintext: your email-verifier server's logs.

To be clear, I think this is a useful thing to be able to do, but designing it as a remote service seems misguided and unnecessary.</comment>


Ask HN: How to make regular team calls more productive and useful? - <AUTHOR> Hello,
We have a distributed (2, sometimes 3 countries) team of mostly engineers. We have bi-weekly conference calls to discuss the progress and set goals. The team is 8 people. The managers are the founders and they are often away from the core engineering team, so the engineers are trusted to be efficient working remotely (no issues on this part).
Although everyone is really motivated,  I feel our calls could be more productive. So far we follow just one pattern:
1) Person tells what they did.
2) Person tells what they plan to do for the week.
3) Everyone asks questions or the person asks.
Meetings are timed and run no longer than 1 hour. That's it.
What can we do to improve the process, without going deep down the rabbit hole of Agile etc.
1) Assign a person to take notes. Same person every time? Manager?
  What to do with the notes after? Send to the team? But everyone kind of remembers what they are supposed to be doing - they just presented it.
2) Send agenda the night before, so everyone is onboard?
  Concern is distraction for everyone.
4) Do some kind of STOP START CONTINUE?
  Here the concern is that it will be artificial and if we do it on a weekly basis it will make people come up with answers.
5) If someone wants to implement a new procedure (something related to testing for example) for their part and everyone kind of agrees it's a good idea - how to make sure it does get integrated?
6) Do video-calls? At least for the majority? Everyone is calling from the offices, so privacy is not a concern.
What we want to achieve is actually turn the meetings from something informational into something that actually pushes the company and project in the right direction, adds to the internal momentum.
Maybe someone can share their experience with doing productive and useful regular remote team calls? Any particularly good resources with information about such thing? Any advice is greatly appreciated. <comment><USER2> I'd just like to share something I found called [https://phrase.io/](https://phrase.io/) (for some reason cert is invalid, I'll be emailing them to find why just continue)

this is a video conferencing site, that has a function you might like called ''the hand''

its just a icon that pop's up on the chat avatar that looks like a little hand..

and when you click it it says ''raise hand to speak''

so here's my thought. everyone joins. starts the hand.

As soon as a person is done with their project notes, (which they type out) they take off the hand.

Chat then goes to the next person, who types out their project details, again using video to talk text to save data.

once they are done they take off the hand. as soon as all hands are off the chat, the person who's job is to save notes copies all chat and saves it wherever.

chat can then go to general chat, or end after leaving a message for the team.</comment>


Crypto flaws in Blockchain Android app sent Bitcoins to the wrong address - <AUTHOR> http://arstechnica.com/security/2015/05/crypto-flaws-in-blockchain-android-app-sent-bitcoins-to-the-wrong-address/

<comment><USER2> If I'm understanding correctly, "wrong address" really means "one whose private key is basically public, due to bad coding of the app." [https://www.reddit.com/r/Bitcoin/comments/37nlg1/i_was_the_g...](https://www.reddit.com/r/Bitcoin/comments/37nlg1/i_was_the_guy_who_lost_6_btc_using_blockchaininfo/crokzk8)

> the owner of the lucky 1Bn9ReEocMG1WEW1qYjuDrdFzEFFDCq43F address

There is not a meaningful "owner" of this address, because per above, lots of people could think they're the owner. They're actually very unfortunate, unless they've managed to profit off others sending money to it.

There's some good discussion at [https://www.reddit.com/r/Bitcoin/comments/37oxow/the_securit...](https://www.reddit.com/r/Bitcoin/comments/37oxow/the_security_issue_of_blockchaininfos_android/)

</comment><comment><USER3> It gets its random data in cleartext from random.org... and either no-one noticed and published that detail, or no-one cared?

<comment><USER4> That detail wouldn't have happened if android manufacturers had their shit together.

Faulting blockchain for not properly handling such ridiculous OS behaviour is pointless.</comment></comment>


Facebook Messenger 3.0 - <AUTHOR> https://www.facebook.com/mobile/messenger

<comment><USER2> It's interesting how they call it texting rather than messaging. I almost thought for a second they really meant SMS.

<comment><USER3> Correct me if I'm wrong, but I think it is more than just messaging and might include SMS. From the Play store description, "Not just for Facebook friends: Now you can message people in your phone book. And it's easy to add new contacts—just enter a phone number.". The android app also requires permission to edit/create SMS messages and make phone calls.

If so, does this mean we can be able to send an SMS from facebook now or just from our phones?

It's worth noting that the screenshot from the android phone also shows you missed calls.

<comment><USER2> I assume (but don't know!) that the "find people by entering their phone number" feature simply tries to find Facebook users with lax enough privacy settings such that (a) they expose their phone numbers to maybe friends or friends and (b) they allow non-friends to message them. Otherwise I feel like they would phrase it as "message people who aren't on Facebook!"

What Android screenshot are you looking at that makes you think it shows missed calls? I see two icons: a sort of bolt and a facebook "f". I think that the bolt means the user is using "Messenger" (i.e. fb on mobile) whereas the fb "f" means facebook.com.

<comment><USER3> Can anyone confirm or deny? I no longer have a facebook account and don't want one so I can't check.

The first android screenshot on the linked page, shows that there is 1 missed call from Mac Tyler. Just worth noting, not sure if it means anything but it is interesting.

</comment></comment></comment></comment><comment><USER4> To those complaining about this, you're not the target market.

I was on a train from Chicago to Detroit a week ago and there was a group of about 10 high schoolers sitting behind me. We got talking about iPhone apps and I asked what was popular.

They all agreed Facebook was not as cool anymore and confessed to being addicted to messaging apps that their parents couldn't check up on like they could with texts. Snapchat, Kik, and Whatsapp were among those mentioned.

It's interesting because if you look at these apps in the App Store, the screenshots are definitely targeting that age demographic as well.

Facebook is losing ground fast for this age group. The group that has grown up using Facebook and is now moving on to other mediums. This release looks very promising in helping to win back that interest.

<comment><USER5> Facebook isn't just losing ground to a specific demographic, they're losing centrality and relevance in a market they defined. While Facebook may be pervasive, it's pervasive in the way that Microsoft Office was in an era of Macs and Google Apps 2 years ago; We all kept a copy of Word installed for when someone emailed us a .doc or .ppt file.

Would love to grab lunch or discuss further where this is all headed from a broader market and societal standpoint, for anyone in the Bay Area.

<comment><USER6> Wouldn't the better analogy be "pervasive in the way MySpace was X years ago and America Online was, X years before that"? The question is, what's going to replace it? The "instant messaging" market is too fragmented right now (though one could argue the social network space was just as fragmented before FB exploded). SMS has no fundamental single 'owner' to drive change/feature improvements.

<comment><USER5> You're missing the distinction; Nobody kept their MySpace around or created a new one once is was replaced because it was unnecessary. You could say it's like AOL Instant Messenger, but if anything that's a weaker analogy since nothing really replaced it so much as IM became a commodity.

</comment></comment></comment></comment><comment><USER7> Based on the App Store screenshots, there's basically no Facebook branding. Just colors and a like button. Even the app icon doesn't say Facebook.

Interesting.

<comment><USER8> Indeed... When I saw the updated icon on my home screen I wondered for a minute what this thing was.

</comment></comment><comment><USER9> This is amazing. Now if only they took over email too. Facebook should completely pivot into an identification and messaging platform.

<comment><USER10> strong troll?

<comment><USER11> Sarcasm I imagine. [http://articles.latimes.com/2012/jul/02/business/la-fi-tn- fa...](http://articles.latimes.com/2012/jul/02/business/la-fi-tn-facebook- email-more-problems-20120702)

The email switch didn't work out so well.

</comment></comment></comment><comment><USER12> >'say it better with stickers'

Can't believe how much money is to be had from selling stickers in messaging apps

<comment><USER13> One of those asian messaging app companies makes 20%+ of their revenue from stickers (tens of millions of $ a month)

<comment><USER14> Source: [http://thenextweb.com/apps/2013/08/08/line-corp-brings- in-13...](http://thenextweb.com/apps/2013/08/08/line-corp-brings-in-132m-of- revenue-in-q2-2013-as-its-messaging-app-contributes-76/)

</comment></comment></comment><comment><USER15> If you install this, the messaging tab in the primary Facebook app now just switches you to the Messenger app. What a weird choice.

I decided to uninstall Messenger, I like being able to chat while browsing other Facebook pages.

<comment><USER14> Just tested, this happens on iOS. Not sure about Android. I definitely agree with you.

Pressing back brings you back into the standard Facebook app.

<comment><USER16> That's extremely strange behaviour. I can't imagine that sticking around in the long term. Switching views takes milliseconds, switching apps take much longer.

</comment></comment></comment><comment><USER17> Does anyone know how to remove the reminder to turn on notifications?

Details: \- Using latest iOS

\- All notifications are off in iPhone's settings

\- Every time I switch to the app, a full page message reminds me to turn on notifications (even just swiping to Control Center reproduces the full page message. Aggressive!)

\- In the Facebook messenger settings, there are only 2 options: to "Turn off until 8:00am" or "Turn off for 1h".

If this is intentional (or rather if it persists past today), Facebook just lost the last stronghold they had on me. I use them for nothing but messaging. And the one caveat I have for using them is that I only check in when the thought occurs to me not as I'm pinged.

If intentional (speculation coming), I bet they've run the engagement #s to show it makes sense. But this is a bad principle that is pretty restrictive for a company at their scale. They've pretty much increased the cost of cognitive cost of using their app.

The facebook messenger user in me is hoping this is a feature that times out after the first day of installs. Otherwise goodbye Zuck.

</comment><comment><USER18> I just prefer to use the FB app it self. When I was using the Messenger app, I would get a notification from Messenger and the FB app, it got rather annoying.

<comment><USER19> I didn't, but making it a requirement to enter your phone number to use the app with no mentions of what the privacy controls for people being able to message you with just your phone number are made the new app a quick uninstall.

Facebook, you've had enough privacy problems in the past, is it really that hard to outline what's going on here or even just not require the number? I've heard that GVoice numbers don't work, as well, which just makes it even worse.

</comment></comment><comment><USER20> The iOS release notes (on [https://itunes.apple.com/us/app/facebook- messenger/id4546384...](https://itunes.apple.com/us/app/facebook- messenger/id454638411?mt=8)) say:

"Not just for Facebook friends: Now you can message people in your phone book. And it's easy to add new contacts—just enter a phone number."

so perhaps it does include an SMS bridge.

<comment><USER21> Just checked. No SMS bridge, just a WhatsApp-like phone numbers based contacts system.

This means you can message anyone who uses Messenger if you have his phone number.

</comment></comment><comment><USER13> So this is a shot across the bow at WhatsApp and kik and MessageMe right? Those apps are incredibly popular in developing nations.

<comment><USER22> ... and LINE, and Kakaotalk, and ...

The thing is that many of these apps are both pretty good, and have _insane_ market penetration... It's hard to see why anybody would switch to a FB app that's very likely worse if they're already using something else (so all their contacts are there).

<comment><USER23> If they're on Facebook all their contacts will be on Facebook Messenger. Does Facebook have poor market penetration in Asia?

<comment><USER22> I do not have numbers, but while a fair number of people use FB in Japan, it's far from the juggernaut it is in the U.S. According to Wikipedia, Japan has about 17 million FB users, Korea about 10 million, and China only about 0.6 million!

LINE, in the meantime, just celebrated its 300 millionth user, and its user base is concentrated in Asian countries.

</comment></comment></comment></comment><comment><USER24> This appears to be a reaction to Google Hangouts more than anything else. From the Play Store description for Facebook Messenger, it sounds like you can indeed send messages to friends based on their phone number, but it does not appear to be via SMS. It's more similar to something like Snapchat, where it uses your phonebook to find people who have registered their phone numbers with the app.

Furthermore, last week, information leaked regarding Facebook dropping SMS support due to lack of uptake. One source for this: [http://thenextweb.com/apps/2013/10/29/facebook-testing- new-m...](http://thenextweb.com/apps/2013/10/29/facebook-testing-new- messenger-app-android-drops-sms-support/)

Long story short, this appears to be a data-only messaging app, not unlike pre-SMS Hangouts or some of the other apps people in this thread have mentioned (Kik, Whatsapp, etc.).

</comment><comment><USER25> Sleek, simple UI. Too bad no Windows Phone release just yet.

</comment><comment><USER26> What a coincidence. I just had a conversation with a friend about how FB failed with its Messenger to get the users of Whatsapp & other similar apps. Apparently they know this and are trying to improve it. Same discussion applies to Skype that was never able to make a fast user experience on mobile: every update of Skype on my iPhone seem to slow down the app and make it more crash friendly...

</comment><comment><USER27> so facebook saved 3billion dollars and rolled out a snapchat clone in 30 days, it can claim a billion user in next 60 days

<comment><USER28> If you're talking about Poke, no one uses it. It hasn't been updated for iOS7, and most likely never will.

[https://itunes.apple.com/us/app/facebook- poke/id588594730?mt...](https://itunes.apple.com/us/app/facebook- poke/id588594730?mt=8)

<comment><USER27> check the new Facebook messenger, with sms verification, send message to your contacts on phone and a lot more.

same as whatsapp and snapchat does

</comment></comment></comment><comment><USER29> I hate the direction FB is going with the messaging system. It doesn't work well when you try to send anything longer than a few words. Send an email you might say, many people don't read emails as much as they read FB. Sad but true.

/rant

</comment><comment><USER21> Note: I think the app is syncing your address book with FB servers.

<comment><USER30> Only if you opt-in to it.

When you launch the app you're prompted to decide if you want to sync your contact list so the app can be used to contact non-Facebook friends. It's not doing it without your explicit approval.

</comment></comment><comment><USER31> The android one has an iOS 7 aesthetic that feels really odd on Android. Also, Google Hangouts just absorbed actual SMS on Android, so that will be interesting.

</comment><comment><USER32> Is anyone else still seeing the old UI? I even tried removing and re- installing. On iOS.

<comment><USER32> Nevermind… waited a couple minutes, and the update showed up. Strange though, that a fresh install installed the old version…</comment></comment>


Dark Matter vs. Modified Gravity: A Trialogue (2012) - <AUTHOR> http://www.preposterousuniverse.com/blog/2012/05/09/dark-matter-vs-modified-gravity-a-trialogue/ <comment><USER2> After reading that exchange, it's pretty clear that Sean Carroll has basically ignored almost all the literature on modified gravity theories. It makes you wonder why he's commenting on it.

First, Bullet Cluster is not a problem for modified gravity. There have been numerous publications explaining why. In fact, it took much more effort to reconcile the Bullet Cluster with cdm than it did with modified gravity.

Secondly, clinging to the Bullet Cluster without mentioning Abell 520 is either ignorance or deception. Either way, there exist known celestial phenomenon (like galaxy rotation curves, the phenomenon that originally started the idea of dark matter) that are not adequately explained by dark matter theories (the same is true of modified gravity btw), and ignoring them in order to claim that we KNOW dark matter exists is intellectually lazy.

The problem with this discussion is that the intricacies of dark matter theories are much better understood by the cosmology community. Modified gravity on the other hand, it understood at best superficially by many cosmologists. As a result, whenever new findings in astronomy are published, there is a stampede of publications by people, who know dm but are ignorant of modified gravity, explaining why this "proves" once and for all why dark matter exists. The few modified gravity researchers out there are then left running around refuting all the false statements made about modified gravity.

I think Stacy hit the nail on the head with this quote:

I also agree that this [modified gravity theories] is contrived. But we are WAY into contrivance with LCDM(...). We've just gotten familiar with the contrived parts so that they no longer bother us. That doesn't make them any less contrived.

<comment><AUTHOR> While he doesn't always come off very well here, I think you're being too hard on him. He states outright in his earlier linked post[0] that he would prefer that modified gravity were true. He's at least familiar with TeVeS: I watched a video of a lecture he gave where he went into a fair bit of depth on it (i.e. way over my head). And he also seems to have done some small amount of modified gravity research himself (linked at the bottom of [0]).

My takeaway was that since the CMB spectrum seems to require dark matter, it's going to be there even if some form of modified gravity is also true. I've barely heard either side of the debate mention this in layman contexts. What's the modified gravity perspective on that?

[0] [http://www.preposterousuniverse.com/blog/2011/02/26/dark- mat...](http://www.preposterousuniverse.com/blog/2011/02/26/dark-matter-just- fine-thanks/)

<comment><USER2> The CMB spectrum does seem to require dark matter and it's a real problem for MOND. The point most MOND physicists keep trying to make is that dark matter has it's own share of problems but no one has discarded it as a theory yet.

</comment></comment></comment><comment><USER3> Can anyone explain what's going on there?

As far as I see, one argument is that there can be multitude of explanations for dark matter, both baryonic and modifications of known laws (gravity, newtown dynamics). But the other commenter says that all other explanations besides baryonic are ruled out by data. Did I get it correctly?

<comment><USER4> It is extremely challenging, perhaps impossible, to find a MOND theory that fits all available observations.

For me, a modification of gravity would be more aesthetically pleasing than dark matter, but that does not appear to be how Nature has chosen to be.

<comment><USER2> >It is extremely challenging, perhaps impossible, to find a MOND theory that fits all available observations.

All the commentators agree on this. What Ranier and Stacy are pointing out is that the same thing is true of LCDM. Dark matter does not do a good job of explaining galaxy rotation curves (even though this is the context which dark matter was originally proposed for), bullet cluster, abell 520, or lots of other galactic dynamics.

Of course, MOND has its own share of problems. Most importantly that Sean points out is the 3rd peak on the CMB. Stacy sounds like he's holding out for the possibility that relativistic formulations of MOND may explain this peak, though he admits that may not happen. To support his position, Stacy makes reference to other instances where MOND had unintuitive but correct conclusions (like for the bullet cluster).

</comment></comment></comment><comment><USER5> From a bit of armchair research this Friday, here are some articles on the connection between MOND and the Hubble constant:

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

[https://arxiv.org/abs/1204.6359](https://arxiv.org/abs/1204.6359)

[https://arxiv.org/abs/1703.06110](https://arxiv.org/abs/1703.06110)

[http://file.scirp.org/Html/1-4500356_51478.htm](http://file.scirp.org/Html/1-4500356_51478.htm)

[https://ned.ipac.caltech.edu/level5/Sept01/Milgrom2/Milgrom3...](https://ned.ipac.caltech.edu/level5/Sept01/Milgrom2/Milgrom3.html)

[https://academic.oup.com/mnras/article/438/2/1805/1016908](https://academic.oup.com/mnras/article/438/2/1805/1016908)

Basically what these are saying is that if the universe (and space around galaxies) is expanding, then stars would be dragged along with that expansion and move outward from the center of mass if they orbited at their expected Newtonian speed (they would gain potential energy as their "altitude" increases).

I'm wondering if this energy didn't go into the star (because it would violate conservation of energy to see a star moving faster and faster over time) then maybe the energy goes into space itself, showing up as "dark" energy, which has gravity by mass-energy equivalence. So basically the farther away we are from something, the heavier space appears in that region from our frame of reference. Or maybe the extra speed of distant stars has more to do with how long they've been pulled by the expansion of the universe than how much mass is near them. That could maybe explain the pictures of colliding galaxies that have uneven distributions of matter and dark matter that we don't see in individual galaxies. And why we're unlikely to detect dark matter as a particle locally (because the expansion of space is more easily observed over large distances).

I guess one way to prove this theory would be to look for unevenness in the Hubble constant (red shift), which would mean an unevenness in how fast (or how much) space is stretching in different regions. The last link seems to agree with something along those lines.

Anyway, I'm not a physicist, just throwing ideas out there! Feeling kind of embarrassed to post this layman's analysis but what the heck.

</comment><comment><USER6> "Science is dead" Poor Stacey. He is trying to be reasonable in the face of ideology.</comment>


Do Stocks Outperform Treasury Bills? (2018) - <AUTHOR> https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2900447 <comment><USER2> This is the second reason why indexing outperforms actively managed funds over the long term (The first reason is the fees).

Price weighed index fund rebalances regularly and never misses out those best- performing four percent. Actively managed fund manager might do a good job valuing companies and might catch some success stories, but it's unlikely that they catch them all consistently.

<comment><USER3> Isn't there only a handful of hedge funds that have posted profits every year of operation?

<comment><USER4> In my dreams, I create 1024 stock-recommending twitter bots.

If half beat the market in a year and half don't, i'll Still have one that goes up every year after 10 years, and sell it for a fortune.

<comment><USER5> > If half beat the market in a year and half don't

As per this article, that wouldn't happen: more than half of the bots would fail to beat the market.

This article finds that the vast majority of the positive return is explained by relatively few stocks, leading to a positive skewness. The median random choice has a below-mean outcome.

<comment><USER4> Right. Regression toward the mean is inevitable.

But I think people appreciate a story about picking the right stock more than the right stocks, which helps that problem.

</comment></comment></comment></comment></comment><comment><USER6> This isnt really surprising to me. What's the average lifetime of a company, even one that has reached maturity? I would guess much less than 100 years.

I suppose the waters are muddied somewhat by consolidation, in 1927 there were 10s(?) of thousands of car companies, today we're basically down to 20(?). No doubt many went bust, but many also got subsumed.

The fact that 3/7 companies have outperformed Treasuries since 1927 is the surprising thing for me, not that 4/7 havent.

<comment><USER7> Make it even more extreme. I bet that the Treasuries would also outperform if you take 10'000 year timespan. Simply because: Which company would really survive 10'000 years, huh? So the total return would be 0. And as long as Treasuries>0, that research paper is little more than a fairly obvious statement, at best.

<comment><USER8> What government survives 10K years?

</comment></comment></comment><comment><AUTHOR> Followup paper "Do Global Stocks Outperform US Treasury Bills?": [https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3415739](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3415739)

<comment><USER7> Note how this is about GLOBAL stocks, not US Stocks, which would be the better comparison

</comment></comment><comment><USER9> A little bit OT: did anybody come up with a way to graph two stocks such that you see individual long term performance but also relative performance?

I.e. you can plot them on different scales, so that they both start at the same position. Then you easily see which stock outperformed. But what if you want to see when it was a good time to switch as well?

<comment><USER10> Use a log scale, it makes easier to compare the performance in different periods and the spread between the two lines gives you the relative performance (when both stocks have the same performance the lines move in parallel, when the spread widens the upper line is performing better and vice versa).

<comment><USER8> This ask avoids the problem of having the entire comparison determined by the arbitrary or deceptive choice of start date for baseline price.

</comment></comment></comment><comment><USER11> Please note that this is GLOBAL stocks.

</comment><comment><USER12> I'm not going to buy any bonds in the current environment: Swedish 3-month bills yield -0.5%, 10-year bonds yield -0.2%. Whatever the historical data says, I can't see anyone buying at those prices unless they have to.

<comment><USER13> Well, if you're a US based investor then it might not be a bad idea to pick up some of those -0.5% yield bonds when you consider the effect of currency hedging.

Conversely, for EUR based fund managers you'll likely be better of sticking to negative yielding EUR denominated bonds vs treasuries.

Source:

[https://www.forbes.com/sites/vineerbhansali/2019/06/17/tradi...](https://www.forbes.com/sites/vineerbhansali/2019/06/17/trading- sardines-the-case-of-currency-hedged-negative-yielding-bonds/)

[https://www.ft.com/content/85c56472-bdcb-11e9-b350-db00d5096...](https://www.ft.com/content/85c56472-bdcb-11e9-b350-db00d509634e)

</comment></comment><comment><USER7> Why not compare Philippine Treasuries and US Stocks next? #1 rule in finance: use the correct benchmarks ;D

</comment><comment><USER14> Does this have any implication for indexing criteria?

</comment><comment><USER15> And who is the author? A graduate student?

</comment><comment><USER16> Do we really need a paper for something that takes 5 seconds to backtest?

[https://www.portfoliovisualizer.com/backtest-asset-class- all...](https://www.portfoliovisualizer.com/backtest-asset-class- allocation?s=y&mode=1&timePeriod=4&startYear=1972&firstMonth=1&endYear=2019&lastMonth=12&calendarAligned=true&initialAmount=10000&annualOperation=0&annualAdjustment=0&inflationAdjusted=true&annualPercentage=0.0&frequency=4&rebalanceType=1&absoluteDeviation=5.0&relativeDeviation=25.0&benchmark=VFINX&asset1=LongTreasury&allocation1_1=100&asset2=IntermediateTreasury&allocation2_2=100&asset3=ShortTreasury&allocation3_3=100&total1=100&total2=100&total3=100)

<comment><USER11> GLOBAL stocks. You linked to the Vanguard 500 index which is US only companies.

<comment><USER17> I tried to use ishares MSCI ACWI as the benchmark, but apparently that only goes back to 2009.

(Not that the paper is trying to do something like that. It is more about the performance problems of individual stocks. It is not claiming that treasuries outperform a stock market index.)</comment></comment></comment>


15 Successful Entrepreneurs Who Didn't Need College - <AUTHOR> http://www.college-startup.com/college/15-successful-entrepreneurs-who-didnt-need-college/ <comment><USER2> This is a very misleading article. Many of the people they use as examples come from an earlier era when college was much less common. Of the recent founders they mention, most did go to college; they just didn't graduate.

My advice would be: college is valuable, but what's valuable about it is the experience, not the degree.

<comment><USER3> My thoughts exactly but i am having tough time conveying that to others. I am not sure if it is inherent human "thing" to like titles or it will slowly fade away like having finished high/elementary school.

<comment><USER4> > will slowly fade away like having finished high/elementary school

The only reason that has faded away is that it is now taken for granted.

</comment></comment></comment><comment><USER5> See it's not that I wanted to go to college. What happened was, I turned 18, and what do you know I wasn't yet a billionaire entrepreneur.

College is a back-up option that lets you get a job and make 60k a year to support yourself, just in case you don't go IPO before your parents kick you out. In my experience it's pretty tough to get a job without a college degree, but if you're a brilliant hacker you'd probably get hired regardless.

<comment><USER6> It is difficult for a brilliant hacker to get hired, especially for what they are really worth, with no track record. Going to a good college and excelling is a good starting track record.

Also, you must continue to live in your parent's basement, who else would guard the fort?

<comment><USER7> Build your own track record (by writing code). After all, having a 4.0 GPA isn't much of a differentiator, and GPA is a poor indicator of programming ability anyway.

It's possible to get a good programming job without a college degree as long as you've done enough interesting coding projects outside of school. I didn't have any trouble landing interviews after I got kicked out of college, and I chalk this up almost entirely to the fact that I was able to fill out my resume with hobby projects I'd done previously. With a barren resume I would've been dismissed at the first filter, regardless of what I _claimed_ to be able to do.

<comment><USER8> 4.0 GPA shows the other side of you: discipline, be able to set your priority, focused and of course, intelligence. You wouldn't get 4.0 if you're not smart, except if you go to Podunk college.

Of course it doesn't necessarily translate to good programming ability because one has no 10 years programming experience. But it's what people perceived to be "RAW talent".

By the way, there are people who are good at programming but not great at solving complex problem. There's a reason why Google hired PhD and MSc to build the search engine. Compare that to Reddit people. Reddit people can code I give them that, but they can't write a site "search" feature.

<comment><USER7> A 4.0 GPA just shows that you can do all of the rote busy work and that you care about your GPA. It shows that you can memorize enough of the crap to regurgitate it on the test. Smart people can do that too, but you don't need to be smart to get a 4.0. You just need to give the professor whatever (s)he expects. If you want to do well in school, you'd do best to not think and just do exactly what you're told. This is the secret to earning a 4.0 GPA.

I agree that a 4.0 GPA shows "discipline", so if you're looking to raise an army of robots, you probably would do best to reject anyone who doesn't have a 4.0 GPA. I disagree that it indicates your "priorities" are straight -- all it shows is that your priorities are aligned with the priorities that are socially prescribed, not that you have your priorities figured out. Why _should_ someone place a high importance on GPA? Isn't it just a waste of time and effort? Aren't happiness, learning, and curiosity more important?

" _By the way, there are people who are good at programming but not great at solving complex problem._ "

I fully agree. But I think the implication here is that people with a 4.0 are good at solving complex problems. If so, that's total bullshit. You can get through a Computer Science degree never solving any hard problem nor thinking at all. You have to copy the example the professor gives and follow his recommendation as closely as possible. If you show any creativity or thought, you will be punished.

People with a 4.0 who solve hard problems aren't able to solve problems _because_ of their 4.0s -- they are able to solve them _despite_ their 4.0s. They were able to get a 4.0 GPA without turning into a robot, now _that_ is impressive!

If I was hiring programmers, I wouldn't dismiss someone for having a 4.0 GPA, but having a 4.0 doesn't tell me anything useful about them at all. They still have to prove themselves to me, from scratch. Having a 4.0 would put up one barrier though: they'd have to also show me that they didn't have a robot's personality.

/if it isn't already obvious from the acerbic tone of this post, yes, I had a bad time in the school system :)

<comment><USER9> Is there any substantial point to institutional higher education today? The only possibilities I can think of are: 1\. Research that isn't tied down by practical concerns. 2\. Professors can help people learn the material faster than on their own.

1 is good, and from my very limited knowledge seems to be fairly strong, but fading, in academia. 2, of course, depends on the person, and the emphasis on grades can slow a person down, as you say. I'm churning through the busy work right now in my courses, since grades still matter at least for their appearance.

In my opinion, our educational model needs to be majorly revamped, or augmented. I know a couple people here went to Amherst, and I quite liked what I saw on their website.

<comment><USER7> I think we need a cultural shift that places less emphasis on grades and college, and more emphasis on results and direction. I think most people will still go to college, but there need to be socially endorsed options for people who don't want to go to college, or can't handle college. But yeah, I agree that the educational system needs to be fixed, majorly.

My mom still wishes I had a college degree so that I would have the stamp of being a bona fide "educated person". She knows I am doing fine and that I have options in life, but she thinks it'd be great if I went back and finished my BS. At least she gave up on the idea that some day I'd grow up to be a neurosurgeon... :-)

<comment><USER8> What happened these days is that company like Google and Microsoft higher smart and experienced students.

If you have 3.2 GPA and have experience with open source, you're qualified to be interviewed.

If you have 4.0 GPA, you're also qualified.

If you have 4.0 GPA and have experience (internship), you'll get an offer :).

It's both. Everybody wants the best talent available. For students coming out the school, GPA is what differentiate them the most because companies do not expect them to have tons of experience. They're hiring talent.

I don't know why we need this huge cultural shift and stuff like that because clearly our current systems are working fine.

There are outliers (people who have 4.0 GPA but sucks at coding), it's unfortunate but everybody has to deal with outliers everywhere and anywhere.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Nice that they included Frank Lloyd Wright :)

</comment><comment><USER11> College happens to be a pretty good place to meet co-founders.

<comment><USER12> But somehow I only met pretty girls. I must have done it wrong.

<comment><USER11> Nah, Cisco did the same thing.</comment></comment></comment>


En-Roads Climate Change Solutions Simulator Launching December 3, 2019 - <AUTHOR> https://www.climateinteractive.org/tools/en-roads/ <comment><USER2> I made a scenario with this where I maxed out green-new deal type policies and minimized fossil fuel use...it's not great, still 1.6 C warming, IN THE BEST POSSIBLE CASE!

[https://en-roads.climateinteractive.org/scenario.html?p1=54&...](https://en- roads.climateinteractive.org/scenario.html?p1=54&p7=51&p10=3&p16=-0.03&p23=-20&p30=-0.04&p35=2&p39=239&p47=3.3&p50=3.2&p53=2.1&p55=2.7&p57=-3.7&p59=-55&p63=1.5&p64=2.1&p65=82&p67=38&g0=1&g1=86&v=2.7.6)</comment>


An even faster way to delete lots of files in a directory - <AUTHOR> https://gist.github.com/jzwinck/5692534

<comment><AUTHOR> This is an attempt to improve on this recent submission: <https://news.ycombinator.com/item?id=5801903>

On my system, this multi-process approach can work 2-3x faster than any of the standard Unix tools (including GNU parallel with rm, which in my testing suffered from too much runtime overhead).</comment>


The next Silicon Valley is probably going to be Silicon Valley - <AUTHOR> http://www.cbinsights.com/blog/trends/silicon-valley-financing-comparison

<comment><USER2> _And a quick Googling of the term "the next Silicon Valley" shows Seattle, Los Angeles, Bangalore, Tel Aviv and even the Brooklyn tech triangle (yes – really) have all thrown their hat into the ring thinking they could be contenders._

I am highly skeptical that LA or New York could be the next Silicon Valley because their costs of living are so high already. If you're going to pay that much for an apartment and want to do a startup, you might as well move to SV already.

Seattle's prices have been rising for years too, and, although it's much less expensive than NYC or coastal CA, building in Seattle is still difficult and expensive.

Austin, Texas is perhaps the most interesting possibility on a cost-of-living basis.

(For more on why this matters, see Yglesias, _The Rent is Too Damn High_ : [http://www.amazon.com/The-Rent-Damn-High- ebook/dp/B0078XGJXO](http://www.amazon.com/The-Rent-Damn-High- ebook/dp/B0078XGJXO)).

<comment><USER3> Having lived in Silicon Valley as well as some of the other prominent cities listed (and with a startup in Seattle currently), one of the most important things Silicon Valley has that is not found in most other cities is a deep and pervasive software engineering and computer science talent pool that startups can draw from.

That is not to say that other cities do not have talented technologists but that they are rare and/or uninvolved in startups relative to what can be found in Silicon Valley. Consequently, it makes it difficult to build a _tech_ startup in most other cities that can compete with Silicon Valley. Cities like LA and NYC have clear strengths when it comes to things like media but with the experience of having also lived in Silicon Valley it is unfortunately obvious that the average level of software engineering talent and experience available to startups in those cities is noticeably lower than what I was accustomed to in Silicon Valley. This handicaps success.

Seattle is the one real exception in my experience, due to its economy also being driven by several software and tech companies for decades. It is why when I decided to build a tech company outside of Silicon Valley, I did it in Seattle instead places like NYC (which I also considered).

<comment><USER4> > ...one of the most important things Silicon Valley has that is not found in > most other cities is a deep and pervasive software engineering and computer > science talent pool that startups can draw from.

I disagree with the notion that it's "difficult" to build a tech startup in most cities outside of the Bay Area, although I would agree that certain types of tech startups, particularly those seeking funding, have very good incentives to set up shop in Silicon Valley/San Francisco.

But to your point about talent, I think the Bay Area is a double-edged sword. Yes, candidates are in theory plentiful, but just about every startup I encounter is hiring and a common complaint is that it's very difficult to find "good" engineers. Is the pool of truly skilled/experienced candidates not large enough to support the ecosystem? Are startups being too picky? I don't know, but I don't see any evidence whatsoever that startups are generally finding it _easy_ to build a team here.

<comment><USER5> >but just about every startup I encounter is hiring and a common complaint is that it's very difficult to find "good" engineers.

My impression is that standards are higher here. I've worked in the central valley, and most of the jobs I had there? I was... like a little god. My arrogance was justified at every turn.

Here? generally I have to put in at least some effort to just make mediocre, and I simply am not made of the stuff required to be the best.

From that point of view, the salary difference might be justified just on skill.

(I mean, there are very good people living in the flyover. The density is just dramatically lower. I'm arguing here that the average engineer in the silicon valley is much better than the average engineer elsewhere. There /are/ outliers, and often looking for those outliers can be quite productive.)

</comment></comment></comment></comment><comment><USER6> I think people really underestimate how much Silicon Valley owes to the world- class universities we have here. Without them, we wouldn't dominate tech and biotech. Stanford pumps out CS/MBA/BioTech, Berkeley pumps out CS/MBA/BioTech, UCSF pumps out BioTech. Their influence can not be understated nor easily replicated to other cities even if they have a ton of VC money.

<comment><USER7> Is Harvard/MIT/BU for Boston any less? I think in addition to great universities, there is definitely something else to SV.

<comment><USER8> No, and that illustrates his point in a way. Boston has the second largest amount of VC funding, tons of startups, and more institutions of higher learning than pretty much any other metro area in the US [Citation Needed...last I saw it was 84]. But Boston's huge number of universities and hospitals is also one thing that makes it different from Silicon Valley. A lot more smart people can get into PhD programs, so there's a talent drain away from startups.

</comment></comment></comment><comment><USER9> Actually once the Government severely limits crypto-currencies for the protection of the American people we might find the next tech haven to be outside the USA.

How can the next Silicon Valley be in the USA when one of the major new paradigms in the tech world will soon be entirely banned?

<comment><USER10> The USA is basically accepting Bitcoins and the like as legitimate currency, with the recent FINCEN guidance and with the various positive results in the courts. I would be more worried about the EU banning BTC than the USA, because of all the issues the Eurozone is having financially, as part of a general effort to prop up the Euro currency and the many failed Eurozone banks.

</comment></comment><comment><USER11> VC money is a big part of the ecosystem but not everything. For example I'm from Texas and there's a lot of angel activity going on here which isn't captured by VC funding metrics. There is also an emphasis on startups which can be cashflow positive early and not require years and years of VC funding first.

</comment><comment><USER12> What this analysis didn't include was SV vs. other global hubs; as NYC is the only legit challenger domestically in the medium term, I heard the same about Tel Aviv internationally. It would also be interesting to see how SV's funding proportion holds up over time internationally.

edit for sentence clarity.

</comment><comment><USER13> I'd say that Toronto has a good chance of stepping up but the cost of living here is also too high.

</comment><comment><USER14> One of those cases where the title really does say it all.

<comment><AUTHOR> Ha. Very true. Although, if you look out over the medium-term, NY is making a good case for being a challenger. Massachusetts has really seemingly squandered the advantages it has.</comment></comment>


Ask HN: Did I miss a thread about this $900M acquisition? - <AUTHOR> Media.net acquired for $900M in mega ad-tech deal. Announced about 3 days ago.
Official announcement:
http://www.media.net/en/press
Coverage at various other sources:
https://techcrunch.com/2016/08/22/media-net-acquired-for-900m-in-mega-ad-tech-deal/
http://www.bloomberg.com/news/articles/2016-08-22/yahoo-ad-partner-media-net-sells-to-china-group-for-900-million
In my recollection, this is probably the largest exit in the Internet space where the company was not VC backed so I find this particularly interesting. What do you all think about this? <comment><USER2> There were 5 HN postings about it in the last few days [https://hn.algolia.com/?query=Media.net&sort=byDate&prefix&p...](https://hn.algolia.com/?query=Media.net&sort=byDate&prefix&page=0&dateRange=all&type=story) . The only one with comments (20) is [https://news.ycombinator.com/item?id=12342889](https://news.ycombinator.com/item?id=12342889) . It was flagged, fwiw. There wasn't the sort of discussion you are looking for.

<comment><AUTHOR> Thanks for the heads up. Looking at the deal size (and the nature of the company), I'd have expected there to be at least some good interest/discussion on this at the HN community but apparently, not.

</comment></comment><comment><USER3> This hit the front page of Medium on the day. I was surprised that I didn't see anything about the acquisition on HN as well.

[https://backchannel.com/two-decades-ago-he- borrowed-500-from...](https://backchannel.com/two-decades-ago-he- borrowed-500-from-his-dad-ef20be70f8f9#.atavfdz64)

</comment><comment><USER4> Ad-tech is such an odd-space. Every glimpse I get of it is fascinating: huge scale at minuscule latency, hard engineering problems, super-high valuations and exits: and yet, if you told me the top 10 names in ad-tech, I probably wouldn't recognize any of them. And I think most people are the same way. It's just a weird black-box sector of tech that almost nobody talks about. Not sure why though...

<comment><USER5> Probably we don't talk about it because it's a part of our industry that we're not exactly proud of.

</comment></comment><comment><USER6> HN doesn't care much about acquisitions, unless it's one of the hot-name startups. The company I worked for was bought for $1.1B a few years back. I don't think the thread on it got a single upvote.

<comment><USER7> What was the company if you don't mind me asking?</comment></comment>


TestRWD | RWD Tester Tool - <AUTHOR> http://testrwd.com/

<comment><USER2> It's nice, but it should really check for omitting the '[http://'](http://') from urls, because doing so will cause the site to be broken (showing a 404 page) until the page is reloaded.

</comment><comment><AUTHOR> Thanks omgmog, it was playing up a little, that is fixed now :D</comment>


Green Bonds Without the Bonds - <AUTHOR> https://www.bloomberg.com/opinion/articles/2019-12-06/green-bonds-without-the-bonds <comment><USER2> Absolutely amazing. If there is money to be rung out of the system, financiers will find it.

> A zero-coupon bond with zero redemption at maturity." There is something > final about that sentence; when you get to a zero-coupon bond with zero > redemption at maturity, you know you have come to the end of financial > engineering. It is the creation of financial value out of the absence of > cash flows. You will give Denmark money for this certificate, and in > exchange you will get a certificate. What will you get for the certificate? > Well, you will get the certificate.</comment>


Psychological encapsulation - <AUTHOR> http://www.johndcook.com/blog/2011/03/02/psychological-encapsulation/ <comment><USER2> I've always distrusted the black box model of object oriented programming. It sounds good in theory but in practice you hardly ever get it right the first or the fifth time.

Consider a complex component like an ftp library. There are so many quirks with hosting OS'es (e.g. VAX) that connecting to a new system may cause something completely unexpected to happen. Unless the component author is very good at predicting failure conditions and passing meaningful error messages to the client, you may be completely stuck. You cannot tell if it's a configuration issue, a library issue or if it's an issue in your code and the way you call the library.

The ability to inspect (and fix) source code is invaluable. Even Microsoft let's you at least look at the source code for .NET now.

<comment><USER3> You're conflating encapsulation, OOP and open source.

Encapsulation can be done (and is a good idea) in any programming paradigm, OOP or not. For instance, in C you can use the _static_ modifier to not expose a function to the outside world, or use a typedef to expose an opaque handle rather than exposing the struct definition in a public header file. In Haskell you can limit which functions and types are exposed by a module as well. These are just two examples: languages that provide no means of encapsulation whatsoever are few and far in between. BASIC comes to mind.

Likewise, a closed source component can expose internals in harmful ways and an open source component can over-encapsulate things to the point where it becomes useless for any use case except for a few select ones that the component author anticipated.

Of course it's helpful to be able to inspect the source but that doesn't really have a lot to do with encapsulation. (Although it does have to do with the concept of "psychological encapsulation" established in the article.)

</comment></comment><comment><USER4> Sticking with an operating system is a matter of convenience. Changing to a new OS requires learning a different way of doing things, be it different keyboard shortcuts, different names and locations for everything, different behaviors, and most importantly, a different set of unfixed bugs that you must discover as landmines.

The same goes for using a new piece of software or a new programming language. It's not so much the different paradigm that's the problem (though that does contribute to the friction against change somewhat), but rather the myriad different ways in which it is broken, that you must discover via trial and error.

Black boxes are great so long as you can actually look inside them when they don't work as expected. But even then, one approaches new things with caution because one cannot look inside some code and instantly spot the flaws.

But hey, there's no such thing as flawless, so encapsulation or no, you'll deal with this stuff all the time as a developer. At best, you'd restrict yourself to using popular code (since there would have already been a lot of pressure brought to bear to fix the most egregious flaws), well-established code (since it would likely be more mature, and more help would be available), or code from a reputable source.

</comment><comment><USER5> A breach of psychological encapsulation can do more harm to your career than a breach of logical encapsulation.

Once a client or manager loses trust your code, it may not be possible to regain their trust by doing high quality work from then on.</comment>


Show HN: Google Analytics Bot for Slack - <AUTHOR> http://brobot.io <comment><USER2> The signup button doesn't seem to work with an adblocker (uBlock) enabled.

<comment><AUTHOR> Thank you for reporting this issue. Going to fix it.</comment></comment>