Open-sourcing a 10x reduction in Apache Cassandra tail latency - <AUTHOR> https://engineering.instagram.com/open-sourcing-a-10x-reduction-in-apache-cassandra-tail-latency-d64f86b43589 <comment><USER2> _> The graph shows that a Cassandra server instance could spend 2.5% of runtime on garbage collections instead of serving client requests. The GC overhead obviously had a big impact on our P99 latency_

No, this is not obvious. If you have a fully concurrent GC then spending 25 out of 1000 CPU cycles on memory management does not "obviously" have an impact on your 99th percentile latency. It would primarily impact your throughput (by 2.5%), just like any other thing consuming CPU cycles.

 _> We defined a metric called GC stall percentage to measure the percentage of time a Cassandra server was doing stop-the-world GC (Young Gen GC) and could not serve client requests._

Again, this metric doesn't tell you anything if you don't know how long each of the pauses are. If they are at the limit infinitesimally small then you are again only measuring the impact on throughput, not latency.

Certainly, GCs with long STW pauses do impact latency, but then you need to measure histograms of absolute pause times, not averages of ratios relative to application time. That's just a silly metric.

And neither does the article mention which JVM or GC they're using. Absent further information they might have gotten their 10x improvement relative to some especially poor choice of JVM and GC.

<comment><USER3> > If you have a fully concurrent GC then spending 25 out of 1000 CPU cycles on > memory management does not "obviously" have an impact on your 99th > percentile latency.

I try to understand the meaning. Is it saying the latency caused be GC is applied to all requests, not just the ones that observe 99th percentile latency?

<comment><USER2> No, that would be an incremental GC working in very small time slices.

A concurrent GC spends CPU cycles on different cores to do its work, which means it will not cause latency outliers in the threads processing the requests. They are still CPU cycles you don't have to serve other requests, hence they still affect throughput.

That is a simplified explanation of course, there are a lot of caveats.

In my original post I was mostly speaking about the measurement though, since they are measuring throughput when they are concerned about latency, those are somewhat related but depending on circumstances only weakly so.

<comment><USER4> What about the requests that are processed by a core that's doing a GC? Wouldn't that cause a higher P99 latency exactly as you'd expect?

Spending 2.5% of cycles on GC doesn't mean those cycles are perfectly distributed. The distribution of GC work onto cores is bound to have some cores doing more work than others, which would (I would think) manifest itself as some requests that land on an unlucky core getting more latency. Isn't it totally expected that this would cause a P99 latency spike?

<comment><USER2> Maybe if you operated your system at the saturation point, which you really don't want to do in practice. Instead you want your queues to be mostly empty. Bursts are inevitable but bursts coinciding with GC doing work hopefully is a beyond 99th percentile thing. Of course if we're speaking purely theoretical we could also assume spherical cows in a vacuum and say that requests don't burst and simply arrive in a metronome-like trickle and then the spikes evaporate too. This is basically queuing theory.

And you could also use more CPU cores than request workers, that way you will always have spare core capacity and thus your latency will not be directly impacted. That is if you _really really_ value latency more than throughput.

Again, my main point is that throughput and latency are not the same thing. There is some relation in so far that you cannot fulfill latency promises if your throughput is insufficient and your queues start filling up. But below the saturation point it's a lot more complicated, especially in parallel systems with bursty arrivals.

</comment></comment></comment></comment></comment><comment><USER5> We do want to contribute our work back to the Cassandra upstream, instead of keeping it as a fork. So that more users from C* community can benefit from the improvements. The pluggable storage engine is an ambitious project ([https://issues.apache.org/jira/browse/CASSANDRA-13474](https://issues.apache.org/jira/browse/CASSANDRA-13474)). Any help will be appreciated!

<comment><USER6> Saw you talking about this on the Distributed Data Show

[https://academy.datastax.com/content/distributed-data- show-e...](https://academy.datastax.com/content/distributed-data-show- episode-37-cassandra-instagram-dikang-gu)

</comment></comment><comment><USER7> RocksDB is used all over Facebook, powers the entire social graph. Great storage engine that pairs well with multiple DBMS: MySQL, Mongo, Cassandra... We'll be at Percona Live 2018 in April, giving several talks, and are looking forward to hanging out and talking with users in our lounge area. We're working hard to support our open source community as well! [https://github.com/facebook/rocksdb](https://github.com/facebook/rocksdb)

</comment><comment><USER8> I'm not an expert on these things, but it seems to me if you're implementing a database in Java you wouldn't want to keep your data on the JVM Heap, as this seems to indicate. My understanding is that in most applications (like servers) the average object lives for a very short period of time, and most GC implementations are built from that idea. But, in a database, especially an in-memory database, the majority of the objects are going to live for a very long time. That makes the mark phase of GC a lot more expensive, puts more pressure on the generations, etc.

Is my guess here correct, or are there things I'm missing or mistaken on?

<comment><USER9> This is correct; the standard approach here is to use regular c-style memory management for the data the system is managing, and the JVM heap only for the database "infrastructure".

This hybrid approach gives the benefit of a managed runtime and safety of GC for most of your code, but allows the performance of raw pointers/malloc for key code paths.

Some examples of this pattern on the JVM:

\- The Neo4j Page Cache, Muninn, [https://github.com/neo4j/neo4j/blob/3.4/community/io/src/mai...](https://github.com/neo4j/neo4j/blob/3.4/community/io/src/main/java/org/neo4j/io/pagecache/impl/muninn/MuninnPageCache.java#L58)

\- The Netty projects implementation of jemalloc for the JVM: [https://github.com/netty/netty/blob/4.1/buffer/src/main/java...](https://github.com/netty/netty/blob/4.1/buffer/src/main/java/io/netty/buffer/PooledByteBufAllocator.java)

<comment><USER10> If so any JVM based datastore could probably benefit.

I wonder how long before we see a similar result from ElasticSearch. (Only other huge JVM based store I can think of).

<comment><USER11> Hbase is going offheap as much as possible. Voltdb uses java for management and c++ for low-level.

They will write c++ in java eventually. Depending on how much performance you REALLY need.

The same for elasticseach, if you want performance you need to do the same thing scylladb did to cassandra (per-core-sharding, skip filesystem across cores etc)

<comment><USER11> In elasticsearcch terms, vespa.ai, which claims better performance/scalability/maintanability uses c++ for lucene layer and java for the solr/elasticsearch layer.

There are blog posts speeding lucene by 2x+ by changing some stuff to c/c++. There are libraries (trinity) claiming 2x+ performance .

There is google-engineer saying "bigtable is 3x faster than hbase" that I've read.

</comment></comment></comment></comment></comment><comment><USER12> "To reduce the GC impact from the storage engine, we considered different approaches and ultimately decided to develop a C++ storage engine to replace existing ones."

I wonder how the numbers would have looked with the new low latency GC for Hotspot (ZGC). [https://wiki.openjdk.java.net/display/zgc/Main](https://wiki.openjdk.java.net/display/zgc/Main)

Early results from SPECjbb2015 are impressive. [https://youtu.be/tShc0dyFtgw?t=5m1s](https://youtu.be/tShc0dyFtgw?t=5m1s)

<comment><USER13> Yes, also Azul Zing. Really anytime someone says they have a problem with GC and suggests spending a million dollars of engineer time building a new system, they should consider Zing first. It works and is a way more efficient way of spending money to fix GC latency problems.

<comment><USER14> For a small to medium sized shop, sure. For someplace with thousands or tens of thousands of nodes, the new system ends up cheaper in the long run.

</comment></comment></comment><comment><USER15> Weird, did they try to use [https://www.scylladb.com/](https://www.scylladb.com/)?

<comment><USER16> I was going to say the same thing. It seems pretty clear at this point that Java is not a good programming language to build a database on if you care about strong 99% latency guarantees. The engineers in the article came to this conclusion and so did the Scylla people years ago.

Scylla is AGPL for the OSS version though so testing it out would not be an option without getting a commercial license first.

<comment><USER17> Doesn't AGPL allow commercial use?

<comment><USER18> Per the AGPL preamble[0]:

"The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public.

The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version."

[0] [https://www.gnu.org/licenses/agpl-3.0#preamble](https://www.gnu.org/licenses/agpl-3.0#preamble)

</comment></comment></comment></comment><comment><USER19> For Stream's feed tech we also moved from Cassandra to an in-house solution on top of RocksDB. It's been a massive performance and maintenance improvement. This StackShare explains how Stream's stack works. It's based on Go, RocksDB and Raft: [https://stackshare.io/stream/stream-and-go-news-feeds-for- ov...](https://stackshare.io/stream/stream-and-go-news-feeds-for- over-300-million-end-users)

</comment><comment><USER20> Unrelated: as a CS undergrad, I read this article and was immediately inspired. This is definitely the type of work I want to be doing when I graduate (infrastructure engineering). But my next thought was: where do I start?!

Any advice?

<comment><USER11> Still in school ? (don't understand different <type>grad). See: GSOC Seastar Framework [https://summerofcode.withgoogle.com/organizations/6190282903...](https://summerofcode.withgoogle.com/organizations/6190282903650304/)

<comment><USER20> Yeah, still in school (3rd year). I have intern experience, but it seems like these type of positions are way too advanced for me at the moment. Just unsure how to progress...

<comment><USER11> 1\. see the other comment for CMU 2\. learn c++ + data structures 3\. try seastar (or any other lib?) and try to follow the tutorial 4\. go to mailing list and ask for help when you're stuck 5\. look into issue-queue for small tasks and grow little by little

Makes sense ? Another project you may look at is [https://github.com/phaistos- networks/Trinity](https://github.com/phaistos-networks/Trinity) which is a library and should be simpler than a whole framework/db (trinity is like lucene/rocksdb compared to full-db cassandra/scylladb).

</comment></comment></comment></comment><comment><USER21> In a similar situation we just adjust the GC and started to use G1GC which resulted in similar numbers.

<comment><USER22> I bet that didn't take N engineers 12 months to build out, either

<comment><USER23> Cassandra uses G1GC by default.

If it was as simple as tweaking a few GC settings to get 10x improvement pretty sure Datastax would've done it by now.

<comment><USER24> The problem with making a general purpose DB is you have to have general purpose defaults. The Cassandra defaults are "dont crash anywhere", not "be super fast and low latency". You can definitely do 5x better than the default with some basic jvm tuning.

That said: the IG folks certainly know how to tune JVMs. There are IG (and former IG, I saw rbranson post) folks in this thread that know how to tune the collectors, so assume that the 10x they see is beyond what you'd get from simple tuning.

</comment></comment></comment></comment><comment><USER25> Join our meetup to chat with some of the developers: [https://www.meetup.com/Apache-Cassandra-Bay- Area/events/2483...](https://www.meetup.com/Apache-Cassandra-Bay- Area/events/248376266/)

<comment><USER24> So sad I'm not in town that week

</comment></comment><comment><USER16> Has any tried running Casandra on Azul Zing[1]? The slowdown here is not surprisingly related to GC pauses which Azul has eliminated in Zing.

[1] [https://www.azul.com/products/zing/](https://www.azul.com/products/zing/)

<comment><USER26> The licensing cost of Zing generally makes this a bad trade-off. It's much cheaper to purchase more hardware. Zing is targeted at vertically scaling very large JVM heaps, where it's valuable to have massive amounts of data on a single, big machine.

<comment><USER27> As an ex-Azul employee I can say there's a good number of Azul clients using a Zing+Cassandra setup, so the price point is right for some people at the very least. Zing licence cost has also changed in recent years (3.5k per server last I looked, and that is before you haggle some bulk deal) so not sure if your impression is calibrated to that new price point.

</comment></comment></comment><comment><USER28> As a Java scoffer trying to be fair-minded, I resisted the urge to joke that "it's was the GC, stupid" and assume that a big project like Cassandra had somehow worked around the GC latency problems.

But, what? It turns out the article is really about replacing Java with C++.

<comment><USER29> It's about using something in one language for its features and only porting the critical sections to C++ via a clean API. This is the sort of advice we've been giving people for decades. Choose the language for what you want to build, measure and profile performance if necessary, find the bottleneck on the hot path, decouple that from the bulk of the code, and reach to a lower level for performance only in that clearly defined section.

They managed to generalize one application that meets their feature needs to be a front end to another existing application with fewer features but better performance as a back end. They're optimizing their hot path by decoupling it from the rest of the application and handing off to C++ code they didn't even have to write. Adding pluggable storage engines to Cassandra means that if they make the API smooth enough they can have engines in C, C++, Erlang, Go, Rust, ML, or whatever in the future without changing their front end. That's a big win even beyond this tail latency issue.

<comment><USER30> Well, other than storage engine, the next big part of a database software is the query planner/optimizer which Cassandra doesn't have (due to simple KV nature of it). So there isn't much remaining. In a long term plan, rewrite them all and you have single code base and you'll benefit from mighty C++ in other components of the database. And there is still room for more optimizations: SIMD, ...

The GC problem is not limited to C*. This shit(virtual machine) is hitting the whole Hadoop stack: HDFS, Hive, Spark, Flink, Pig...

Immense number of tickets in any fairly large cluster is related somewhat to GC and JVM behavior.

</comment></comment></comment><comment><USER31> I remember using quite early versions of Cassandra back in an ad-tech startup I was at back in 2009 or 2010, spending unfortunate amounts of time fighting the JVM GC and trying to tune things so it behaved responsibly. It was a real problem then and I know a lot of work went into fixing GC behaviour. Then I stopped using Cassandra for work, but it's unfortunate this is still an issue?

What I took out of that is that I really feel like something like Cassandra is better suited to implementation in a language like C++ or Rust. And I believe others have since come along and done this.

I really liked the gossip-based federation in Cassandra though.

<comment><USER32> It sounds like you might be interested in TiKV.

[https://github.com/pingcap/tikv](https://github.com/pingcap/tikv)

<comment><USER31> Thanks.

Since coming to Google I don't get the opportunity to compare/evaluate/deploy tools like this anymore. Smarter people than me make choices like that :-)

</comment></comment></comment><comment><USER33> Meanwhile scylladb looks like a better option for numerous reasons

</comment><comment><USER34> Or just try and benchmark Azul VM with pause-less GCs ?!

(I have used Azul in low-latency production environments. It has pros and cons but it certainly beats re-writing the storage layer... )

<comment><USER35> Curious to know the cons of using it, except being commercial.

<comment><USER36> > except being commercial

That's the biggest, especially for when it's a Facebook company. Otherwise it works well but can be pricey.

The JVM is getting a new fully concurrent collector though called Shenandoah: [https://www.google.com/search?q=shenandoah+gc](https://www.google.com/search?q=shenandoah+gc)

<comment><USER37> Not just shenandoah[1], it's also getting zgc[2], so the low latency future looks bright for the jvm.

1\. [https://wiki.openjdk.java.net/display/shenandoah/Main](https://wiki.openjdk.java.net/display/shenandoah/Main) 2\. [https://wiki.openjdk.java.net/display/zgc/Main](https://wiki.openjdk.java.net/display/zgc/Main)

</comment></comment></comment></comment><comment><USER24> Nicely done! Looking forward to the pluggable storage engine.

<comment><USER38> The JIRA tickets don't really shine with much hope :/

[https://issues.apache.org/jira/browse/CASSANDRA-13474](https://issues.apache.org/jira/browse/CASSANDRA-13474) [2 comments from 2017 Apr] [https://issues.apache.org/jira/browse/CASSANDRA-13475](https://issues.apache.org/jira/browse/CASSANDRA-13475) [~100 comments, but the last one is from 2017 Nov, by the InstaG engineer]

And the Rocksandra fork is already ~3500 commits behind master, so upstreaming this will be interesting.

Oh, and the Rocksandra fork is already kind of abandoned - no commits since 2017 Dec. (which probably means this is not actually the code that runs under Instagram.)

<comment><USER5> This is the rocksandra branch, [https://github.com/Instagram/cassandra/tree/rocks_3.0](https://github.com/Instagram/cassandra/tree/rocks_3.0), we develop it on top of Cassandra 3.0. It's the code we are running on our production servers.

<comment><USER38> Thanks for the git push and the reply! A few minutes ago it was still pointing to the older commit.

And upstream Cassandra is already 11 minor releases away. Won't that become a problem with something as fundamental/low-level as pluggable storage engines?

</comment></comment></comment></comment><comment><USER26> Did you all find that there were changes to the Java heap/GC configuration that would make tuning this setup different? I imagine if most everything that "sticks" is moved off heap, the GC could be tuned more heavily for young gen throughput vs trying to balance it with long-lived objects.

<comment><USER5> Yeah, for Rocksandra, we are able to use much smaller heap size, and most of the objects are recycled during the young gen GC.

</comment></comment><comment><USER39> > We also observed that the GC stalls on that cluster dropped from 2.5% to > 0.3%, which was a 10X reduction!

Umm .. shouldn't the stalls go to 0, because now you have moved to C++ ? Or is this the time it takes for the manual garbage collection to occur ?

</comment><comment><USER40> Why not use ScyllaDB ? (Serious)

<comment><USER41> Answered a bit before but they have a team that knows c* well. Cassandra is proven to handle petabytes at scale in production systems.

</comment></comment><comment><USER42> Is there any trade off after replacing LSM tree-based storage engine to RocksDB storage engine?

<comment><USER43> RocksDB is also an LSM structured KV store.

</comment></comment><comment><USER44> Great, now can you fix the Python Cassandra Driver to work in a multi-threaded application environment without the connection pooling bugs and default synchronous app-blocking (vs lazy-init) connection setup?

[https://github.com/datastax/python- driver](https://github.com/datastax/python-driver)

</comment><comment><USER45> So question:

Any thoughts on replacing HDFS + Yarn + Hive + HBASE with GulsterFS + Kubernetes + Cassandra

??

<comment><USER11> Hbase is sync+globally sorted, while cassandra is not, so probably not.

</comment></comment><comment><USER46> Can we add lz4 to the blend to reduce disk IO?</comment>


Can the MacBook Pro Replace Your iPad? - <AUTHOR> http://www.speirs.org/blog/2015/11/30/can-the-macbook-pro-replace-your-ipad <comment><AUTHOR> An iPad has been my primary personal device for years. I still do work on a PC (because I'm required to), and I sometimes go to my MacBook Pro for editing code. Most of my online reading happens on the iPad now. My only regular non- console gaming is on the iPad. And I even designed and printed a friend's wedding invitations on the iPad (Procreate is fantastic).

When I read articles criticizing iPad, I'm reminded of years of iOS vs Android articles that made up a competition of equals that simply didn't exist (I understand that for the last couple of years this is less true for flagship Android devices).

I thought this article was a funny take on this style of journalism that uses a vs-style competitive framing.</comment>


How does Dropbox sync photos in background? - <AUTHOR> http://stackoverflow.com/questions/12433824/how-does-dropbox-sync-photos-in-background-and-get-approved-from-apple

<comment><AUTHOR> my bad. background processing cuts off after 10 minutes. Dropbox should change their description: "Automatically upload photos and videos". Not automatic. Need to open the app after 10 minutes or after a new picture/video is taken.</comment>


To make cars lighter, automakers are dropping the spare tire - <AUTHOR> http://www.latimes.com/business/autos/laautoshow/la-fi-hy-spare-tires-20161115-story.html <comment><USER2> It has always been a (strange, admittedly) point of pride for me that a flat tire is no big deal, because I can change the damn thing myself in about 10 minutes and get the damaged tire replaced at my leisure. Ditching the spare probably makes sense, but I'll still miss it when it's gone.</comment>


APL is more French than English (1978) - <AUTHOR> http://www.jsoftware.com/papers/perlis78.htm <comment><USER2> > "What attracted me, then, to APL was a feeling that perhaps through APL one > might begin to acquire some of the dimensions in programming that we revere > in natural language — some of the pleasures of composition; of saying things > elegantly; of being brief, poetic, artistic, that makes our natural > languages so precious to us. That aspect of programming was one that I've > long been interested in but have never found any lever for coming close to > in my experience with languages of the FORTRAN, ALGOL, PL/I school. It was > clear in those languages that programming was really an exercise in > plumbing."

This quote by Perlis from the article sounds eerily similar to some of the stuff written about Lisp over the last decade. Perhaps there's something to be gained by combining the concepts of Lisp/Scheme/Clojure and APL/K/J together. Of course there's the problem of entering all those APL symbols, but surely that's solvable.</comment>


Research Chef: You're Not Allergic to MSG and More Culinary Secrets - <AUTHOR> http://www.chow.com/food-news/69604/you-re-not-allergic-to-msg-and-7-more-secrets-from-a-research-chef/ <comment><USER2> The actual troublemaker is free glutamic acid, a molecule with flavor- enhancing properties. It's one of the basic amino acids that make up proteins. No one reacts badly when they eat it if it's linked up to other amino acids, but when it's running around free it causes reactions in some people.

A largish dose of free glutamic acid will trigger a migraine for me (and my dad) consistently. It's anecdotal, but I'm confident that this particular anecdote would hold up in a double-blind test.

Monosodium glutamate (MSG) disassociates into sodium and free glutamic acid in food; that's why it's often added. But any ingredient that contains broken up protein can be an issue; e.g. hydrolyzed soy protein or autolyzed yeast extract. MSG has a bad rep, so often foodmakers will try to slip free glutamic acid in some other way (often while shouting on the package, "NO MSG").

Food that benefits a lot from the flavor enhancer, such as canned soups, will almost always have a lot of it. Lots of stuff has _some_ amount of free glutamic acid (such as broccoli, like the article mentions) but (speaking personally), it's not enough to trigger a reaction.

There aren't many foods our ancestors would've eaten that contained lots of free glutamic acid. We're talking about the same molecule that serves as an excitatory neurotransmitter in your brain. It turns out that if you eat a lot of it, it's possible to get a headache (other people claim other ailments). Not much is known about the specifics of the mechanism, but it's not that implausible.

<comment><USER3> So, you can't eat parm or tomato paste then? Both have high levels of free glutamic acid.

<comment><USER4> More on glutamates in parmesan and tomatoes (agrees with tptacek): [http://blog.khymos.org/2007/07/06/glutamic-acid-in- tomatoes-...](http://blog.khymos.org/2007/07/06/glutamic-acid-in-tomatoes-and- parmesan/)

</comment></comment></comment><comment><USER5> _Carrageenan is on a lot of labels, and I'm often asked, 'What is that chemical?' It's not a chemical. It's seaweed!_

Actually, it _is_ very much a chemical. All food is chemicals. It's just perverted advertising that convinced the masses that chemical = "something bad".

For more sad laughter on this topic, the Royal Society of Chemistry's blog has a category for "chemical free" living:

<http://prospect.rsc.org/blogs/rsc/tag/100-chemical-free/>

They even announced a £1 million bounty for anyone who can find a chemical- free cosmetic:

[http://www.rsc.org/AboutUs/News/PressReleases/2010/CTPA100Ch...](http://www.rsc.org/AboutUs/News/PressReleases/2010/CTPA100ChemicalFree.asp)

<comment><USER6> _Actually, it is very much a chemical. All food is chemicals._

That's literally true, but not the intended meaning. Chemical has become a synonym for "man-made". It's a useful distinction. If you were forced to choose between eating 100g of a random "chemical" molecule, or 100g of a random "natural" molecule, you would be much better off with the latter.

True, scientific studies can show that chemical X is harmless, but.... only if the study was done over a very long time. Only if it was done properly. Only if the scientists didn't receive their financing from BigCo.

It's perfectly reasonable to be wary of "chemicals", heuristically.

EDIT: To be clear, I'm not one of these people living in mistrust of chemicals. But I understand where they're coming from, especially if they have a poor grasp of science. A reasonable move for Kasparov (e.g.: sacrificing his queen for tactical advantage) might be a terrible move for me in the same situation.

<comment><USER7> > _If you were forced to choose between eating 100g of a random "chemical" > molecule, or 100g of a random "natural" molecule, you would be much better > off with the latter._

Here, have a delicious puffer fish. I prepared it myself!

Rating chemicals by whether or not they occur naturally is a really _piss- poor_ way of judging danger. There is a practically unlimited number of naturally occurring chemicals what will knock you dead, and there are similarly _tones_ of synthesized chemicals that are completely harmless, _or even beneficial_. Bringing _"synthesized vs. naturally"_ is _always_ disingenuous, we have had better ways of judging danger since the dark ages.

<comment><USER6> You make a good point, though I wish you hadn't called mine retarded.

 _we have had better ways of judging danger since the dark ages._

That's true. And if you trust scientists and the FDA to do their jobs, you're all set. But what if you don't? Let's say that I'm at the supermarket in a small, poor country with a corrupt FDA, and I want to buy some juice. Well, I'm going to favor those brands with natural ingredients (and hope that the ingredient list is correct). Maybe that's a stupid move, but it has served me well so far.

<comment><USER7> "You make a good point, though I wish you hadn't called mine retarded."

Apologies, I sometimes forget some people find that word particularly offensive.

<comment><USER6> No problem! In fairness, this "pick a random chemical component" idea was at least _moderately_ retarded, and most worthy of criticism.

</comment></comment></comment></comment></comment></comment><comment><USER8> The article's author demonstrates poor analytical skills.

Regarding poisons themselves, they all depend on how much you ingest. How much salt do you eat? Three pounds a day? Salt is a poison and if you eat too much you can get sick and die. Almonds contain cyanide. People eat almonds without dying. Does that mean cyanide is a beneficial substance in all quantities?

Regarding allergens there are similar dynamics. Someone allergic to cat dander will be able to walk down a street where cats have been. But they may not be able to sleep well in a bed that is normally occupied by 100 cats. Or consider peanuts. Someone allergic to peanuts will not do well eating a peanut butter sandwich. But most of them can handle being in the presence of peanuts, despite hysterical media reports of people dying after kissing someone who had recently eaten a peanut, all stories of which were discredited.

Glutamate content of some foods (mg per 100g) roquefort cheese 1280 parmesan cheese 1200 soy sauce 1090 walnuts 658 fresh tomato juice 260 grape juice 258 peas 200 mushrooms 180 broccoli 176 tomatoes 140 mushrooms 140 oysters 137 corn 130 potatoes 102 chicken 44 mackerel 36 beef 33 eggs 23 human milk 22

So people are claiming "It is in human breast milk and beef and eggs!" Yes, 22mg to 33mg of glutamates per 100g. Up at the top, parmesan is 1200mg per 100g. How much parmesan do you eat exactly? Is this a cheese that you slice off in giant wedges and gnaw on? Or is it grated and used like a spice in relatively small amounts by weight?

</comment><comment><USER9> > Chef Wendy, who works for a Canadian firm that develops private-label > products for companies like Whole Foods, Safeway, General Mills, and > McDonald's, would prefer not to reveal her last name, but that was the last > thing she was reticent about.

So, uh, why did she put her _real name_ on her Chow.com account, then? Once I had that, it only took a Google search to find out where she works.

<comment><USER10> Probably because nothing discussed in the article is actually something her employers would be worried about. The whole secrecy seems to be there to add sexiness and authority to the article. In fact the way she and her personal work and values are presented I would be pretty happy if I was her employer.

</comment></comment><comment><USER11> _Who made that microwave burrito you're eating..."It's all in code," says Chef Wendy. If the product has meat, poultry, or eggs in it, by law it must have an establishment number or name somewhere on the label_

I wonder if there is an opportunity for a mobile app where you scan a food barcode/code and see where it was made. You could rate the food and see ratings of other foods made by that company / at that facility.

The data is here: [http://www.fsis.usda.gov/regulations_&_policies/Meat_Pou...](http://www.fsis.usda.gov/regulations_&_policies/Meat_Poultry_Egg_Inspection_Directory/index.asp)

<comment><USER12> A local jam/sauce maker, Beerenberg, has a Provenance Pathway feature on their site:

[http://www.beerenberg.com.au/go/our-products/provenance- path...](http://www.beerenberg.com.au/go/our-products/provenance-pathway- andtrade)

Enter the barcode and expiry of the product and it will show you the recipe, when/where it was made, photos of the workers involved in its production, description of the process, the source of each ingredient, packing specs, etc.

</comment></comment><comment><USER13> Big deal, so it's not a real allergy. When I eat food containing a lot of added MSG, my brain feels like it's on fire. Maybe it's not anaphylaxis but it's still annoying.

<comment><USER3> What are the foods you eat that you perceive as containing a lot of added MSG? Maybe there's something else they have in common. Insulin responses can easily and predictably give you a headache.

<comment><USER13> Two foods have reliably caused symptoms that I connect with MSG: the fried rice from one particular place near where I went to school, and Doritos. I can eat equivalent amounts of other fried rice or corn chips without symptoms.

</comment></comment></comment><comment><USER14> My favorite part? The mystery chef actually appears in the comments herself.

Overall, though, the article is rather light on actual content.

</comment><comment><USER15> For reference, the link to Whole Foods "Unacceptable Ingredients" list is here: [http://www.wholefoodsmarket.com/products/unacceptable- ingred...](http://www.wholefoodsmarket.com/products/unacceptable- ingredients.php)

<comment><USER16> The list mentioned in the article was about Trader Joe's.

<comment><USER17> The Whole Foods list was also mentioned in the article.

</comment></comment></comment><comment><USER18> _Chef Wendy says it's absolutely possible to make a frozen meal that will knock you out of your chair with greatness. "But that entrée needs to cost $7 to $10. People are willing to spend that much in a restaurant for something mediocre but not for something fabulous from the grocery store."_

I would pay that in a second. I cook for myself and it ends up costing around $7 a dinner.

<comment><USER19> Okay, either you are cooking with some seriously high-end ingredients, live in an insanely high cost of living area, or you're doing something wrong.

I highly doubt that a prepackaged frozen meal that costs $10 is going anywhere near as tasty as what you can make at home for $7 a meal.

<comment><USER20> You only get ingredients cheap when you buy them in bulk. I can totally see a good steak and a veggie costing $7 when you buy them solo.

<comment><USER21> Pretty much.

Ever need to buy fresh thyme/bay leaf/parsley for a bouquet garni? Or lots of vegetables to make a sauce? Or if something calls for a chicken/beef/vegetable stock, even if I make it myself to save myself from the pre-packaged brands, it'll cost a few dollars per serving on top of the other ingredients that go into a meal.

</comment></comment></comment></comment><comment><USER22> I am not sure I agree with this. I routinely get frozen food from the grocery store that's $7.

<comment><USER23> Maybe a lasagna that feeds half a dozen people. That's all I've ever seen in that price range. What single-entre item costs $7?

<comment><USER22> Amy's organic stuff.

<comment><USER24> I think that is exactly the point the chef was making. Consumers in general are not willing to pay (or can't pay) for high quality frozen food. Look at how many brands are available in the $2-$3 range vs. higher cost items.

<comment><USER22> But I mean, I can buy it at the normal "cheap" grocery store. Stores like Whole Foods have even more options.

<comment><USER25> My "normal" grocery store has Amy's and the like in a special section I think of as the "food for hippies who didn't have time to go to Whole Foods today" section. They also keep all the "environmentally friendly" cleaners and such in the same area. (I believe it is technically referred to as the "natural foods" section, but none-the-less the point is that they actually segregate the expensive, organic, natural, enviro-friendly, etc stuff off into a little store within a store.)

</comment></comment></comment></comment></comment></comment><comment><USER26> [sigh] glutamate != monosodium glutamate. Those have glutamate but not necessarily MSG...

<comment><USER3> So you think maybe that by being paired with sodium in a salt, the glutamic acid that occurs naturally in many of the most popular natural foodstuffs in the world might "set peoples brains on fire" (see above)?

<comment><USER4> No, he probably agrees that they are functional analogs and is just making the point that if you are brought in as expert in an article, you should strive for as much accuracy as possible.

While I agree with her general precept that MSG allergies do not exist, and I personally have no more fear of glutamates than of sodium, I'm bothered by the level of inaccuracy in the statement: "Broccoli, mushrooms, tomatoes, inosinate, guanylate, and autolyzed yeast extract? Give up? They are all sources of monosodium glutamate."

Guanylate and inosinate are comparable to glutamate, and often used in conjunction with it, but I don't think it's even colloquially correct to say that they contain it. Am I wrong? In the same vein, it also seems fair to point out that the naturally occurring form is different than the purified salt. Would you say that corn on the cob 'contains' high-fructose corn syrup?

I'd normally just assume she was misquoted, but in the comments she attacks the discussants for "carrying on with this technical mumbo jumbo and further confusing the issue". Maybe she's a good chef, but I sure don't trust her science.

<comment><USER3> You make a good point, and I probably was being tendentious with my comment, but note that your point is slightly orthogonal to his; I'm just reacting to the implication that glumatic acid might be OK and MSG might not be, which rankles.

<comment><USER4> And for all I know, maybe this is what 'tingletech' meant, but I figured I'd give him the benefit of doubt. I also gave this benefit to the Chef in the piece until I read her comment on the commenters, where for me at least she 'removed all doubt'.

But agree with you completely on the conclusion: if you are allergic to MSG, there's a lot else you should be avoiding. It's wild how many traditional 'seasonings' like Parmesan, fish sauce, ketchup, and kombu are effective because of naturally occurring glutamate/inosinate/guanylates.

<comment><USER26> maybe TMI; but I have high blood pressure and am on a low sodium diet -- for me the tasty umami amino acid is okay; the sodium in the MSG not so much.

But my main gripe was about the technical accuracy.

</comment></comment></comment></comment></comment></comment><comment><USER27> Maybe not allergic to small amounts but if I eat a large amount of MSG I get really thirsty and sometimes it triggers a bad headache.

<comment><USER28> Have a large amount of coke (regular or diet). Hell, have a large amount of sea salt. Same effect!

You being thirsty is just because your cells are dehydrated when there is a large-ish concentration of salt on your blood. The headache you are feeling? Dehydration.

</comment></comment><comment><USER29> I am actually sensitive to MSG and I still eat the stuff. In large doses that it causes my lips/tongue/throat to numb. It took me years to figure it out since it would only happen after eating at certain restaurants or foods and I could never find anything in common.

It wasn't until I bought a bottle of MSG and started putting it on everything that I managed to reproduce it at home. Of course, I was putting it on things like pizza (I thought it was the greatest substance since salt!).

Most restaurants and snack foods don't put nearly as much on food as necessary to trigger my reaction.

I still think MSG is awesome.

</comment><comment><USER30> I found it interesting that the chef claimed that frozen food could taste better than restaurant food. I recently bought a few frozen dinners to see what they taste like. The more expensive ones definitely taste better than the $0.88 Banquet dinners. Claim Jumper was the best, IMHO. One area where the dinners consistently fail though, is texture. Things that should be crispy (like a deep-fried steak), are soft and mushy. Can you accomplish the wide- variety of textures in frozen-dinner format without additional preparation?

<comment><USER31> The lack of textural variety is the main thing that puts me off frozen foods as well. Choosing a frozen meal over a restaurant meal is like choosing to eat at an old folks home instead of accepting a friend's home-cooked dinner invite.

Also, people deep fry steak? Mind blown. I didn't know people did that.

<comment><USER32> also called "chicken fried steak" - usually it's 'cube steak" which looks a lot more like ground meat than like actual steak, then it's breaded, deep fried and smothered in gravy. It's a very traditional dish in the south, though it doesn't taste very much at all like what most Americans would call a 'steak'

<comment><USER31> Fascinating, first the concept of deep fried steak and then _chicken_ steak? ... American food never ceases to surprise me (a pescetarian from New Zealand). So different :)

<comment><USER33> no, chicken fried steak is beef cube steak breaded and fried. it's "chicken fried" meaning fried in the same manner as chicken. That said, like fried chicken it doesn't have to be made in a deep fryer it can be made with a good solid layer of very hot oil in a pan.

<comment><USER31> Oh, thanks! Steak, fried 'chicken style'. Hah.

</comment></comment></comment></comment></comment></comment><comment><USER34> Jeffrey Steingarten's excellent "It Must've Been Something I Ate" has a good chapter on MSG and the myths about it

[http://www.amazon.com/Mustve-Been-Something-Ate- Everything/d...](http://www.amazon.com/Mustve-Been-Something-Ate- Everything/dp/0375412808)

</comment><comment><USER35> Actually, some people are allergic to MSG. My wife is allergic to corn and corn derived foods such as MSG. MSG might also exist in broccoli but not in the MSG powder many people refer to when talking about MSG.

<comment><USER33> MSG isn't derived from corn, and even if the sugar that fed the yeast that made the glutamate came from corn, by the time it's commercially sold MSG it is so chemically pure that it would be irrelevant.

<comment><USER35> According to Wikipedia, it is made from starch, sugar beets, sugar cane, and molasses.

And starch quite often is corn starch.

As for the chemically pure aspect, I don't know enough to comment. No one really understands what causes allergies and no one can point out what aspect of corn causes it. For example, she also has a milk allergy (not intolerance), but does not have issues with milk that has been cooked, such as creme anglaise for making ice cream. Something with cooking the milk changes it. As for how this is related to corn, who knows. What part of corn caused the allergy? If you don't know, how do you know it was removed in the process of making MSG?</comment></comment></comment>


California Hiking Map – A map that shows all hiking trails in CA - <AUTHOR> http://www.californiahikingmap.com/ <comment><AUTHOR> Created by Jason Mandly, a meteorologist from Chico, CA, the map shows all the hiking trails in California on one map. This includes hiking trails, Class 1 bike paths, and fire roads closed to vehicles. [http://www.californiahikingmap.com/map- information/](http://www.californiahikingmap.com/map-information/)

This map was created with data obtained from the U.S. Forest Service, the National Park Service, the U.S. Geological Survey, the U.S. Fish and Wildlife Service, the California Protected Areas Database, and more.</comment>


Ask HN: Recommendations for free, easy in browser video meeting rooms? - <AUTHOR> I'm in France in quarantine, as are a lot of friends. I'd love to have a space where we can pop in and out of a video meeting – ideally a URL that's always available, where we can drop in and see who's online. It'd have to be free and ideally in browser so it's easy for everyone to use.
Does anyone know if this exists?
I'm sure I've seen a bunch but can't remember any names.
Thanks! <comment><USER2> Google meet does this if you have G Suite.

[https://whereby.com/](https://whereby.com/) looks promising as well, although I've never tried it.</comment>


Hackers expose 453,000 credentials allegedly taken from Yahoo service - <AUTHOR> http://arstechnica.com/security/2012/07/yahoo-service-hacked/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+arstechnica%2Findex+%28Ars+Technica+-+All+content%29

<comment><USER2> Despite of the state Yahoo! is in I find it very hard to believe that a company like Yahoo! would store it's passwords in plain-text. In addition, doesn't yahoo voice uses the Yahoo single sign on, that would mean that there is a very good chance that the central authentication server and not yahoo voice is authenticating the user and the password doesn't even touch yahoo voice. Of course, there is a possibility that Yahoo uses a simple API based authentication for own apps and the architect took the easy way out and just stored the plain-text password.

If it wasn't in such credible news source I would have found the entire thing very hard to believe.

<comment><USER3> Ex-Yahoo here. Anything on the yahoo.com domain uses the single sign on service. Yahoo doesn't distribute login cookies for the yahoo.com domain any other way.

That being said, the passwords are NOT stored in plain text. And individual properties don't get direct access to the user database. It's done through libraries and protocols with extremely restrictive ACLs. And one of the options isn't: "give me this user's password in plaintext".

Even if a Yahoo! property wanted to store user passwords, they couldn't. Every Yahoo! user logs in from login.yahoo.com.

Having a good understanding of how Yahoo!'s security is set up, I don't see how any of this is possible.

EDIT: It's starting to look (to me) as if those users got phished.

<comment><USER4> Successfully phishing half a million people without anyone noticing?

<comment><USER3> Yes, you'd be surprised how sophisticated these folks are. Yahoo! has so many layers of security in place in their infrastructure that to have any large scale attack I'd imagine you have to have some sort of insider info.

</comment></comment></comment></comment><comment><USER5> I used to work on the login system for Yahoo! and find this to be not 100% true. Passwords were never stored in plaintext, even the log files went through a library that would mask any passwords or sensitive information if it was sent over HTTPS in plaintext.

I would still trust Yahoo! to not leak my password ala LinkedIn.

<comment><USER6> I'm ex-Y! as well, but do you any basis for "I find this to be not 100% true"?

Is there any possibility of someone someone caching the details for convenience's sake on login, and said service not going through the Paranoid review process? I haven't done this personally, but I have had to work with some absolutely dreadful internal APIs that I needed to cache information from out-of-band to make them usable.

(In all fairness, though, I'm find it hard to believe this report. I'll guess we'll find out the truth pretty soon.)

<comment><USER5> I suppose a rouge developer can show their own login dialog box, but that is such a hack and should be pointed out by their boss, local paranoid (guess they are all gone?), or QA. They would have to capture the user's credentials and post it to the login handler themselves. Even the user might realize that it is not the login page and assume it is a phishing site.

The secret code for the encryption of the cookies is only installed on the login servers, and without that package installed, there would be no way to generate a valid signed cookie.

In short, there is no 100% guarantee a rouge developer could not do any damage, but it would be pretty hard to go unnoticed.

<comment><USER3> Ex-Yahoo and former local paranoid. I agree with you. That's so unlikely that I'd be willing to put money that it wasn't a rogue developer.

<comment><USER6> How does an Acquired Company fit in with all of this?

(An entire acquired company full of rogue developers? :-) )

</comment></comment></comment></comment></comment><comment><USER7> The server hosting it is a bit slow now, so here's the file compressed with bzip2: <http://www.mediafire.com/download.php?769gk65ix183vbd>

<comment><USER8> Thanks for the mirror!

</comment></comment><comment><USER7> I wrote a very cheesy Python script that runs through the file and counts the passwords and the amount of times they appear. Note that these may not even be correct.

This is what I got for the top 10:

        len(passlist): 342,514 # Amount of unique passwords.

        Password, Repetition

        '', 10,654 (Apparently, some passwords were blank.)

        '123456', 1667

        'password', 780

        'ninja', 333

        'abc123', 250

        '123456789', 222

        '12345678', 208

        'sunshine', 205

        'princess', 202

Edit: Source code at <https://gist.github.com/3096511>

<comment><USER9> cut -d: -f2- | sort | uniq -c | sort -k2 -n

<comment><USER10> What's the input to that? Is it lines like

        133438:email@example.com:combinate

<comment><USER9> I hadn't seen the original data. Should probably be cut -d: -f3- then.

<comment><USER10> Isn't the sort a bit odd too? To sort by uniq's frequency it's more like

        sort -k1n,1 -k2

<comment><USER10> Unsure why the downvote since the original is wrong. To be clear,

        cut -d: -f3- | sort | uniq -c | sort -k2 -n

would be sorting the output of uniq(1) by the password, treating them all as numeric. Depending on one's locale that gives results like

          1 00auditt
        100 babygirl
          1 00beetle

or

          1 100671105192
          1 100997162005jm
          2 102030405060
          1 102990091404

</comment></comment></comment></comment></comment></comment><comment><USER11> Doesn't Yahoo have an entire team called "The Paranoids" to deal with security? Were they not involved in setting up this service?

<comment><USER12> Nope. Most of the originals have fled; the few who remain have been renamed something lame. (I forget the exact name but I'm sure it contains some or all of the Standard Yahoo Corporate Buzzwords, which are: Global, Platform, Initiative, Strategy, and Partnership.)

<comment><USER13> They renamed the paranoids? That's the most depressing yahoo news I've heard in a while. Makes it seem like they're trying to squeeze out any last hints of engineering culture :/

</comment></comment></comment><comment><USER14> Searchable list available for users at <http://dazzlepod.com/yahoo/>

</comment><comment><USER3> So I dealt with something that seemed very similar while I was at Yahoo as a Local Paranoid (security person for a product).

There was an enormously successful phishing attack that had rendered a crapton (more than 450k) users in a compromised state. Their passwords were basically stolen.

The solution was a several month long effort by multiple engineers to get the proper owner to change/reset their password. Remember, their accounts are basically hijacked at this point and they don't even know. It was one of the most involved and complex issues I've ever worked on.

Having gone through that I gained a lot of respect for Yahoo! and how they treat/handle these types of situations. Nowadays everything looks different so I don't know who's doing what.

But the more I read and think about this my guess is that all those users were phished.

</comment><comment><USER15> I still see that Yahoo is hiring paranoids. There seems to be a team of paranoids at Yahoo still. Even if the login process of this particular subdomain was not monitored by paranoids, I doubt if yahoo uses separate login systems for each domain - and if there is a central code/library that handles logins, I seriously doubt if passwords are handled in plain texts and SQLs are not sanitized.

</comment><comment><USER16> Perhaps the best password I've found in this list is \0/

In the original SQL dump it also seems that some accounts don't have a password. I'm not sure how this is possible. For example:

        334860:email@example.com:

vs. a normal entry

        334868:firstname.lastname@example.com:password

<comment><USER17> This would support the idea that they were phished rather than straight from the database. The phishing site may have just dumped all the submitted form values to a file, regardless of whether a password was entered or not.

</comment></comment><comment><USER18> Looks like this is from a property of a recent acquisition (associated content, acquired in 2010). Most likely a dump of old tables before authentication was migrated to login.yahoo.com. Should've dropped these tables after the migration.

I personally have no sympathy for these "users", as they're professional content spammers :)

</comment><comment><USER19> I have an old Yahoo! Voice account and could not find my credentials in the txt dump. Anyone with an account find theirs?

<comment><USER20> I ran it against my contact lists in both yahoo and gmail (accounts I have over 6 years now) and could not match anyone.

Further, this list have Gmail and AOL and other providers on it... I dont get it how they got there. Any clues?

</comment></comment><comment><USER21> Most people here seem to agreed that it is very unlikely that this comes from Yahoo.

With the amount of compromised sites lately. Isn't it more likely that the credentials from other sites have simply been matched with yahoo services?

"Oh look at all these Linkedin passwords, I wonder which ones works on yahoo as well"

<comment><USER22> I think this may be from Yahoo indirectly, due to an acquisition. A number[1] of these passwords contain phrases like 'associatedcontent'[2], now Yahoo Voices after being purchased by Yahoo in 2010.

[1] 115 match associated.*content, 104 match yahoo, 25 gmail, 0 ycombinator. I think I saw a 4550c1473dc0n73n7 in there too. Then again, 135 match google. (all case-insensitive matches)

[2] <http://en.wikipedia.org/wiki/Associated_Content>

</comment></comment><comment><USER23> The TrustedSec blog post that ArsTechnica links to gave the link for the password dump, so if you want to check for a compromised account: <https://d33ds.co/archive/yahoo-disclosure.txt> (WARNING: That file is ~17 MB.)

<comment><USER8> It seems to be down. Anyone has a mirror of the file?

</comment></comment><comment><USER24> I found my account (different name) there, but with the wrong password. I think I remember using the one they had a long while back, but couldn't remember from where. Might be that these passwords are scrapped from various other sites, or were held onto for some time.

</comment><comment><USER25> I got an email from Yahoo yesterday saying I had sent a request to reset my password via secret question verification. The email was from yahoo, but maybe this is how they got the passwords. My account was still there at the time though.

<comment><USER3> Yes, it's entirely possible that these were phished.

</comment></comment><comment><USER26> I built this website to help you easily check if your credentials have been compromised: <http://voices.thatsaspicymeatball.com/>

</comment><comment><USER10> Is it mere coincidence that password `123456' is the most frequent with exactly 1667 occurrences?

<comment><USER27> I don't get it, is there a connection between the numbers 123456 and 1667 I'm missing?

<comment><USER28> Perhaps they were thinking of 1337?

</comment></comment></comment><comment><USER29> Please stop calling those persons Hackers... They are just parasites.</comment>


Detroit Has Had It with Cars - <AUTHOR> https://www.chicagobusiness.com/opinion/detroit-has-had-it-cars <comment><USER2> The number of SUVs and pickups sold in the US shows that gasoline is way too cheap there. Sure, a select few, maybe even a more significant portion, use pickups for work. But the SUVs are simply a waste, weighing several hundred kg more than necessary to do the job and less aerodynamic than a normal car. And I'm pretty sure a lot of the pickup owners use them mainly because of their image. I rarely see tradesmen in pickups here, stuff like VW Caddy is really popular though.

Very few people actually need an SUV. They like being in this large heavy thing because they feel safer and see further, so they buy it instead of a station wagon. If fuel was more reasonable priced to better reflect the external cost they would have to decide if the added cost of driving an unnecessarily thirsty vehicle was worth it.

Meanwhile the last time we had as much CO2 in the atmosphere as we have now were several million years ago, with sea levels about ten meters higher than they are now, we have severe droughts, wildfires, melting polar ice, rapidly diminishing glaciers, melting permafrost, and so on. And the American people not only elects a president that doesn't even believe the white house commissioned climate report, they continue to buy large vehicles that burn too much fuel.

I'm pretty sure we will see more and more conflicts and climate refugees in our lifetime when people are driven from their land by floods, droughts, or similar.

[https://www.globalpetrolprices.com/gasoline_prices/](https://www.globalpetrolprices.com/gasoline_prices/)

<comment><USER3> Cars aren't the primary green house gas issue. Animal agriculture and energy are. Plus, America only accounts for about 15% of greenhouse gas emissions.

So even if all of us hedonistic Americans drove tiny little cars the current global warming trend would continue.

You make decent arguments but the fact of the matter is it's a drop in the bucket.

<comment><USER4> 15% is huge. 1 in every seven tons of GHG is from a single country? That's wild. China is as bad. But neither are 'only'.

<comment><USER2> I actually find it a bit sickening when I hear people like Trump say that they don't want to stop polluting because China is polluting, and increasingly so. China have more than four times as many inhabitants, most of them live nowhere close the same lifestyle as the average or even most of the poorest Americans (or Europeans, I'm not putting all the blame on the US). A lot of western manufacturing is outsourced to countries like China, meaning that some of their pollution is actually ours. We in the west have also had a lot of time building our economy using fossil fuel, so we have a pretty significant climate debt. But the argument "others do it too" isn't a valid argument.

</comment></comment></comment></comment><comment><USER5> A lot of modern SUVs aren't like the SUVs of yesteryear. The Honda CR-V, Toyota RAV4, Ford Escape and the like are basically tall hatchbacks - they're not built on truck chassis like the GM Suburban or the Ford Expedition used to be.

If you're not driving aggressively, where you need minimal weight and a low CG, a modern SUV is generally more versatile than a car, and more stylish than a minivan, while still offering a ride and gas mileage that's on par with equivalent cars.

<comment><USER6> At over 1.6 tons a RAV4 is still hundreds of kg heavier than a sedan and has significantly more wind resistance and higher fuel consumption. It's not as bad as even bigger SUVs but it's hardly efficient. It's not difficult to find more efficient sedans with more legroom or equivalent trunk size.

<comment><USER7> 2019 rav4 hybrid does 41/37/39 mpg. (City/highway/combined)

<comment><USER8> Now imagine what it would do if it weighed 30% less and had lower wind resistance.

<comment><USER9> Like a Camry hybrid from which the RAV4's platform is based on? 44city/47hwy/46combined.

The Camry only weights 10% less though. 20% reduction in fuel economy for far more cargo space, AWD, and higher ground clearance seems like a reasonable tradeoff to me.

<comment><USER10> You might have a different opinion if your fuel costs priced in the negative externalities of that 20% additional fuel consumption. It might not seem like much at $2.25/gal. What about at $4? I'm paying about $4.25 USD/gal now in Canada and that's still lower than many European countries. At $5/gal you might start asking whether you actually need AWD or how many times you've actually needed higher ground clearance driving on developed-country quality roads.

<comment><USER9> I'd like the higher ground clearance daily just to avoid scraping up my bumper on the dips on my commute home on the residential streets. Instead I just take the 30% longer/slower route around.

Even if gas were $6/gal, at the typical American 12k miles/year, that's still less than $300/year extra to run the CUV over the sedan. That's less than the cost of a rental for a weekend trip.

<comment><USER11> > just to avoid scraping up my bumper on the dips on my commute home on the > residential streets

That sounds like you're saying we _also_ need a significant amount more investment in infrastructure in America.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Sure, Americans are buying fewer sedans but they're definitely buy way fewer American sedans. Domestics ones just haven't been as good as imports for a long long time. Why buy a Chevy Cruze when Toyota Corollas and Honda Civics exist? Add in Hyundai, Kia, and Volkswagen's offerings and it's no contest.

<comment><USER13> The US content of many Toyota and Honda sedans is quite high. They're "domestics", not "imports".

Toyota and Honda are able to build American sedans. Apparently GM isn't.

</comment></comment><comment><USER14> Bad news for pedestrians since SUVs are so much more dangerous than cars in a collision.

[http://www.governing.com/topics/transportation- infrastructur...](http://www.governing.com/topics/transportation- infrastructure/gov-SUV-rise-pedestrian-deaths.html)

<comment><USER15> Thing I and two friends noticed about newer cars, the wide low sloped A pillars create blind spots making it difficult to see pedestrians in crosswalks.

</comment></comment><comment><USER9> Modern crossovers (marketed as SUVs) can pretty much do everything well enough. It can haul people and cargo just as well as a car/wagon or minivan; wagons are generally not offered in the US so that's one less option for a cargo hauler. Poor road quality and consumer preference favors the higher ground clearance than a minivan. AWD is still a rare option on cars, but optionally available on every crossover on the market. Gas is cheap and crossovers are really close to cars in fuel economy. The biggest crossover drawback of increased rollover risk has pretty much been eliminated by modern stability systems.

</comment><comment><USER16> The worst thing about _other people 's_ SUVs is they obstruct your vision. I suspect there's an arms race going on with more and more people picking up SUVs to see around other cars.

<comment><USER9> My coupe completely fits below the window line of most crossovers. Driving is terrifying sometimes. I suspect part of the CUV trend is just an arms race to keep up height wise with the general vehicle population.

</comment></comment><comment><USER17> SUVs have moved into the role of the default family car. We are seeing a reduction in people without children owning cars. Trucks are preferred in more rural areas.

Therefore, this appears to be the effect of less new automobile purchases by people without children who live in urban areas. I wouldn't draw too many dramatic conclusions outside of that.

</comment><comment><USER18> The US (and probably Europe) are arguably ceding their ICE automobile manufacturing to China, who will manufacture future government controlled EV transportation. The authorities will decide what vehicle you are allowed to travel in and where to or not. Related article: Can Germany survive the 'iPhone moment' for cars?

[https://www.ft.com/content/61684fa6-d2f6-11e8-a9f2-7574db66b...](https://www.ft.com/content/61684fa6-d2f6-11e8-a9f2-7574db66bcd5)

</comment><comment><USER19> I think the sentiment here is not acknowledging the full picture of shift in car ownership in US.

While it is true that more families are opting for SUVs, but that is because more families are opting to share a car (preferably an SUV from utility perspective) rather than owning two or more cars/sedans. The increase in availability of rideshare (Uber/Lyft) is also playing a part in this gradual shift.

(I can't seem to find the study which stated above, but will keep looking and update this comment when I find it)

</comment><comment><USER20> Detroit automakers have for some reason been unable to complete with foreign carmakers in the US for some time now. Chevy sold about half as many Malibu's as Honda sold of the Accord, same goes for Cruze vs Civic. What I don't understand is how selling 180k vehicles (Cruze and Malibu) isn't enough to consider them viable?

At the same time, am I crazy to think these companies won't find themselves in or on the edge of bankruptcy again when the market changes?

</comment><comment><USER21> That's OK, because I've had it with Detroit's cars. In 2014 I went from an Impala to a Mazda 6, and this year from the 6 to a fully loaded Passat assembled in Tennessee. The closest thing from Detroit cost more, had lower fuel economy, a lower warranty, fewer features, and was less comfortable.

</comment><comment><USER22> How about small trucks, not the behemoths that are what most car makers are selling. Like even Toyota's pickups are bigger than I remember and seem to keep getting bigger. Almost all the trucks in the US are made for the US market because of a 25% tariff. It's really annoying.

</comment><comment><USER23> They're not good at it, and even if they were, there's not as much profit in it. And GM's approach of making a dozen cars that fill the same ecological niche stopped making sense many years ago.

</comment><comment><USER24> _Americans don't buy cars anymore. They buy SUVs and pickups.

OK, that isn't strictly true: Sedans, station wagons, hatchbacks and the like were selling at a 5.5 million-vehicle annual rate in October. But that's half the pace of three decades ago._

Only a slice of the overall vehicle market worth tens of billions of dollars. No big deal.

</comment><comment><USER25> Discontinuing the Bolt is a shame or are they shifting full production to South Korea?

<comment><USER5> It's the Volt they're discontinuing, not the Bolt. 2 different cars with unfortunately similar names.

<comment><USER25> Bah, probably should stop commenting via my phone - hard to proof a message when you can't see it all on the screen at once.

</comment></comment></comment><comment><USER26> SUVs existed 30 years ago?

My family has one vehicle, an SUV. I'm a newish dad and I don't understand how you do parent stuff without an SUV. I would have to have multiple vehicles if I had a sedan.

<comment><USER27> I have two teenage children.

I still drive a Mazda 5, even though they've been out of production for several years. Seats 6 (if two are small children) on the wheel base and drive train of a Mazda 3 hatchback. It was our only family car for several years with pets and kids and sports and all the normal family bullshit people do.

Our other family car is a Subaru Outback. It has much better ground clearance than the Mazda and seats 5 adults. You can lay the seats down and put a lot of crap in there if you need to move a bunch of shit around.

Neither of these are SUVs. We never came close to needing an SUV for everyday driving.

<comment><USER9> Depends on which generation Outback, based on your description of better ground clearance, I think it's 4th of 5th generation which is marketed as and considered an "SUV". That's the exact vehicle type that is replacing cars.

Even real SUVs (Tahoe/Expedition/4runner) are becoming replaced by CUVs.</comment></comment></comment>


Facebook picked Rust to implement Libra - <AUTHOR> https://www.reddit.com/r/rust/comments/c20aed/facebook_just_picked_rust_to_implement_their_new/erhsz9q/ <comment><USER2> And WindRiver just sent their first pull request[1] to support VxWorks as a target.

Shameless plug - I made a proposal[2] to create Business Applications Working Group to help promote Rust in enterprise software, quant and "normal" finances, taxes, and governance, the areas now completely dominated by COBOL and Java. Rust is a perfect fit for such applications, offering more safety and security, speed and higher levels of abstraction. Hopefully, formal verification will arrive soon as well.

[1] [https://github.com/rust-lang/rust/pull/61946](https://github.com/rust- lang/rust/pull/61946)

[2] [https://internals.rust-lang.org/t/proposal-business- applicat...](https://internals.rust-lang.org/t/proposal-business-applications- working-group/10400/2)

<comment><USER3> Please don't take this personally.

I think it's great that you wanted to push Rust to the area where Java flourished (by Java I'm guessing Enterprise?). I respect your passion.

Personally, I never like a language that has esoteric syntax utilizing various non-alphabetical characters. Perhaps this particular aspect is what drew me to languages like Java/JavaScript. I don't mind writing "public static void" because writing code is like 10-20% (the rest is code-review, meeting stakeholders/Product Owner/PM, come up with plans, write documentations, etc) of my activity throughout a decade of my career as a Dev.

There are some caveats (or rather ... personal dislike) with Java and JavaScript for example: I don't like the Closure syntax in Java and I don't like the fact that JavaScript lacks cohesiveness => People who write ES5 code do have to implement patterns specific to JS in order to re-create some of the OOP constructs. ES6 with Class/constructor/static syntax help but then they added generator via '*' (asterisk, but why? why don't use the keyword 'gen' or 'generator' just like async/await keywords?).

The other thing I realized lately is that I prefer GC platform/ecosystem so that I can focus less on the platform itself.

<comment><USER4> I'm curious what esoteric syntax utilizing various non-alphabetical characters you're talking about in Rust? I recently started learning it and nothing jumps out to me as particularly egregious.

<comment><USER5> There are three ways this objection is usually expressed:

1\. Long ago, Rust had some interesting built in syntax for different kinds of pointers, and so people checked out Rust then, and didn't realize we got rid of it. This objection has happened less and less since that was ~5 years ago (wow time flies), but sometimes it still comes up.

2\. The lifetime syntax uses a single apostrophe, like 'a. We took this syntax from OCaml (though slightly re-purposed), but if you haven't used OCaml, and many have not, it can feel very weird.

3\. Not everyone prefers the "curly braces and semicolons" style of systems languages, and so they feel the <>s and ::s and {}s and ;s are noisy. We kept this style to be familiar to systems programmers.

In general, Rust doesn't have a lot of unique syntax, but it does draw from two generally disparate areas: functional languages and systems languages. If you haven't used both before, some of it can feel strange. It happens.

<comment><USER6> > 3\. Not everyone prefers the "curly braces and semicolons" style of systems > languages, and so they feel the <>s and ::s and {}s and ;s are noisy. We > kept this style to be familiar to systems programmers.

Oh boy do I agree about the noise. I absolutely love Rust, and I definitely don't think it's noisy _(in normal examples)_ but before I first learned Rust generic code feat like syntax soup. It seemed bizarrely messy and convoluted.

Mind you, I _love Rust now_. This is not a criticism towards Rust. It's simply a reflection on how a non-Rust programmer, largely non-Systems programmer saw Rust's flavor of syntaxes for Generics and Lifetimes.

How time flies. Now I push Rust at work where it makes sense and use it for everything in my personal _(code)_ life.

My favorite part? Likely how it feels imperative while still offering functional features. Iterators, for example, are my favorite thing in the world. This is partially due to system shock I'm sure; the idea of iterators to this old Go programmer feels like magic haha, it was quite the change coming from Go.

<comment><USER7> > Oh boy do I agree about the noise. I absolutely love Rust, and I definitely > don't think it's noisy (in normal examples) but before I first learned Rust > generic code feat like syntax soup.

What's the alternative? Text-based syntax ala Pascal/Ada is actually _noisier_ than symbol- and short-keyword-based, because you don't ever get to file the "syntax" parts away as you become familiar with them; you _have_ to process them visually every time you read that code. There may be a case for that sort of overly-verbose syntax as a form of literate programming - an introduction meant for users who are as of yet unfamiliar with any given system; but as an everyday practice it's quite painful!

<comment><USER8> Significant whitespace a la Python.

When I first started learning Python I hated the idea of significant whitespace, now I think it is the best thing ever.

<comment><USER7> Using rustfmt consistently will get you basically 90% of the way towards the "Pythonic" benefits of significant whitespace. On the other side, having lexical block nesting be controlled by an explicit pair of characters { } is a pretty significant advantage, particularly so for Rust where placing a bit of code in its own block can have rather significant implications of its own!

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Someone has created a Rust crate called libra, which claims to be a "Simple fantasty Adventure MUD" (sic). It's currently just a "Hello, world!" program.

What are the chances it's a placeholder for malicious/trojan code intended to steal Libra coins? (c.f. the event-stream backdoor[2])

[1] [https://crates.io/crates/libra](https://crates.io/crates/libra)

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

<comment><USER10> Global unqualified namespace is a classic mistake. Causes all sorts of silly "squatting" and drama issues.

Should really be:

        https://crates.io/crates/someorg/libra
        https://crates.io/crates/facebook/libra

People like unqualified names because it's slightly cute, though.

<comment><USER11> The argument I saw was that a global namespace ensured:

A) Packages can change owners without changing names (and breaking downstreamers)

B) It encourages creative names, rather can calling something myusername/http, you have to give the package a real name like hyper, express, curl, etc.

<comment><USER12> But A) you could still implement giving ownership to another user without giving the other user your whole namespace and B) why would you even want B?

<comment><USER11> If you give ownership without changing the organization that owns the package it then signals trust..

Usually, orgs won't be comfortable with this..

(B) is brilliant... We all know what EC2 and S3 is... If Amazon had just called these services for: compute and storage, there wouldn't be any brand.

Branding makes things easier to search for and to talk about.

All this said, these downsides might be worth it

<comment><USER12> npm install @aws/s3 works for me.

npm install burrito doesn't.

</comment></comment></comment></comment></comment></comment><comment><USER5> Note that Facebook has also been previously using Rust for [https://github.com/facebookexperimental/mononoke;](https://github.com/facebookexperimental/mononoke;) as well as for some smaller things. They've been sponsoring Rust conferences too.

I am not personally interested in cryptocurrency, but it's always great to see more big companies using Rust!

<comment><USER13> URL isn't clickable because of a semicolon. This should work: [https://github.com/facebookexperimental/mononoke](https://github.com/facebookexperimental/mononoke) .

<comment><USER5> Ugh, thank you.

This is the second time this has happened to me today, you'd think I would have learned. Sigh.

<comment><USER14> But it's great that it is in your muscle memory, no linting errors at least :p

</comment></comment></comment></comment><comment><USER15> > We'll need to work together on challenges like tooling

If you wonder what is meant by that, I think I know of an example. They have done this (quite unusual) choice to not include a Cargo.lock into their project because it gives a bad developer experience on merge conflicts [1]. They'd love to have a merge tool for the purpose, see more in [2].

[1]: [https://github.com/libra/libra/issues/52](https://github.com/libra/libra/issues/52)

[2]: [https://github.com/rust-lang/cargo/issues/1818](https://github.com/rust- lang/cargo/issues/1818)

<comment><USER16> Can cargo report the test coverage yet?

<comment><USER17> [https://github.com/mozilla/grcov](https://github.com/mozilla/grcov) though it requires a nightly rustc for now since it uses some unstable RUSTFLAGS.

<comment><USER16> That is an improvement since the last time I looked. Thanks!

My ideal would be "cargo test --coverage=report/".

</comment></comment></comment></comment><comment><USER18> Bitcoin (Bitcoin Core) is implemented in C++. At that time, Go and Rust weren't born yet.

The most popular Ethereum implementation (Geth) is written in Go. The second most popular Ethereum implementation (Parity) is written in Rust.

Now, Libra is written in Rust.

So I guess the moral of the story is, if you want to write a greenfield high performance application, Go or Rust should be your choice compared to C++.

<comment><USER19> > So I guess the moral of the story is, if you want to write a greenfield high > performance application, Go or Rust should be your choice compared to C++.

I don't see how this generalization follows from the three examples you've cited?

<comment><USER20> Wishful thinking would be my guess.

Rust in production use tends to be found in circumstances where there is no need for mature tooling, and no expectation of a need to hire experienced coders. Of course there are exceptions.

<comment><USER21> It is not that hard for C++ developers to pick up Rust. The borrow checker makes explicit safety requirements that exist in C++.

The tooling does need to be more mature but for many projects the pioneer tax paid to improve the tooling may be worth it. Besides, it's not as if C++ dependency management is very mature either — most people build custom tooling for that anyway.

</comment></comment></comment></comment><comment><USER22> Surprised it's not OCaml; they've invested highly in OCaml.

<comment><USER23> The primary reason they stated is memory safety as this is gonna be really critical stuff dealing with money. Also no GC.

<comment><USER24> OCaml is more memory safe than Rust (as the "unsafe" parts are harder to access). But it does have GC, so GC is likely the primary reason.

<comment><USER25> I wouldn't label Rust as being less safe than OCaml. You have to explicitly opt-in to any unsafe operations. More often than not, the unsafe blocks are needed because the compiler can not check all of the invariant cases.

<comment><USER19> Does OCaml even have a way of shedding memory safety?

<comment><USER24> Yes, the `Unsafe` module (well, at least used to have it... fairly undocumented... maybe it's been removed?).

<comment><USER24> Oops, I misremembered the name. @pcwalton is right, it's called `Obj`.

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> And Cardano is already working closely with the Haskell community..

</comment><comment><USER27> Great. I think this is the kind of booster Rust sorely needed.

<comment><USER20> When security holes in Libra implementations surface, that will reflect badly on Rust.

There will of course be explanations why the holes are really not Rust's fault, and that bugs and security failings are possible in any language, but it will force a more realistic assessment of Rust's strengths.

<comment><USER28> There have already been such assessments. For instance, in [https://hacks.mozilla.org/2019/02/rewriting-a-browser- compon...](https://hacks.mozilla.org/2019/02/rewriting-a-browser-component-in- rust/) , Mozilla estimated that writing a given browser component (specifically the CSS engine) in Rust, 51 of its 69 security bugs (73.9%) wouldn't have happened. The other 18 weren't things that the implementation language doesn't inherently help with.

<comment><USER29> The problem with Mozilla's C++ code is that it was developed in a time where memory-safety was an afterthought and they're still paying for that. Rewriting it in anything will offer a great opportunity of improving it.

For example, the real fix for their vulnerable code example is using automatic bounds checking, just as Rust does. Replacing [] with at, eliminates the vulnerability. Most C++ programmers are allergic to at, so Mozilla could have created some container wrappers that do this by default. GCC and I think also clang have a macro which adds automatic bounds-checking to the STL containers.

<comment><USER28> > Replacing [] with at, eliminates the vulnerability.

And for decades of C and C++ programmers, [] is still the most obvious way to index an array. And the most obvious way creates potential security vulnerabilities.

See Rusty Russell's classic "easy to use versus hard to misuse" posts: [http://ozlabs.org/~rusty/index.cgi/tech/2008-03-30.html](http://ozlabs.org/~rusty/index.cgi/tech/2008-03-30.html) and [https://ozlabs.org/~rusty/index.cgi/tech/2008-04-01.html](https://ozlabs.org/~rusty/index.cgi/tech/2008-04-01.html) .

<comment><USER29> Historically, C and C++ programmers didn't care much about safety, especially if they had to give up performance to reach it. This is changing in the newest C++ standards and tooling (e.g. clang's -Wlifetimes).

Bounds checking is slower, so that's the main reason why it's shunned. Rust made it mandatory, but from what I've seen there are people disabling that to squeeze some drops of performance nevertheless. Luckily, I think Rust also has an option of replacing indexing with iteration, thereby avoiding the performance hit. I think it currently does this a bit better than C++, but I might be wrong.

Anyway, my critique still stands, that blog post is really low effort and doesn't prove much. I've looked at some of the fixes for Firefox security bugs and the code reminds one of the typical older C++ projects with raw pointers everywhere. Perhaps implementing a browser requires all sorts of unsafe access patterns.

<comment><USER28> The Rust compiler can eliminate bounds checking anywhere it can prove that it doesn't need it. And beyond that, you always have the option of writing an unsafe block, and people sometimes do in carefully selected cases driven by profiling. (That also encourages keeping such code carefully contained and well-scrutinized.)

I'm not arguing that bounds-checking should be mandatory. I'm arguing that bounds-checking should be the _default_ , and you should have to knowingly bypass it, rather than the other way around.

</comment></comment></comment></comment></comment></comment></comment><comment><USER30> Tangential:

Is there an easy way to map all links of form www.reddit.com/* to old.reddit.com/* on all my devices? (I assume /etc/hosts would work for linux?)

<comment><USER15> [https://addons.mozilla.org/en-US/firefox/addon/old-reddit- re...](https://addons.mozilla.org/en-US/firefox/addon/old-reddit-redirect/)

[https://chrome.google.com/webstore/detail/old-reddit- redirec...](https://chrome.google.com/webstore/detail/old-reddit- redirect/dneaehbmnbhcippjikoajpoabadpodje)

In order to redirect it on all your devices, install Firefox. It can install extensions on Android, too. Should solve it for everything except smart TVs (Firefox for Amazon TV can't install extensions) and iOS.

<comment><USER30> Well that's perfect. Thank you.

</comment></comment></comment><comment><USER31> I wonder if they even considered Ada/SPARK 2014, or are program languages like fashion trends, and Rust has the runway right now. I like Rust, but I would think the amount of work that has been put into Ada/SPARK 2014 would make it the better choice for the problem set.

<comment><USER5> I would imagine that Rust's advantage over Ada here is in the second paragraph. I don't know if they directly considered it or not.

<comment><USER31> Steve, I would agree; you are a large part for that momentum. Community is important, and the SPARK 2014/Ada community has proven itself to be very helpful, and has a long history behind it. I know big business decisions are sometimes made by advocates or evangelists, but you would hope somebody did their pros/cons matrix on top of that one criteria. SPARK 2014 has really surprised me in terms of what it brings to the table aside from Ada's legacy, which is also still evolving.

</comment></comment></comment><comment><USER32> off-topic: do you think it's safe to assume consent of a site's cookie policy by clicking/scrolling like on [https://libra.org/](https://libra.org/) ? I actually like it because these banners are just annoying, but I'd be afraid to do something like this (The first time I checked out that site I only noticed that something disappeared).

</comment><comment><USER33> The language of Libre "Move" is inspired by logic. It makes sense that they would pick a language that is also inspired by linear logic.

</comment><comment><USER34> Libra I thought?

</comment><comment><USER35> They want to be t _rust_ ed.

</comment><comment><USER36> Bruh. It's Li𝘣𝘳𝘢.

</comment><comment><USER37> I hate Facebook, but Rust is probably the best possible choice.</comment>


See how much Google (and now the government) know about where you've been - <AUTHOR> https://maps.google.com/locationhistory/b/0/dashboard

<comment><USER2> If you use (or have used) Google Now, this is eye opening.

</comment><comment><AUTHOR> Be sure to delete your data and turn off tracking</comment>


Introducing Telegram Passport - <AUTHOR> https://telegram.org/blog/passport <comment><USER2> Would Telegram and others please stop using phone number as a primary source of identity? It's 2018, I have a data only sim and I have no desire to have a phone number.

<comment><USER3> I cannot up-vote this more.

Many people don't realise that they don't own their phone number! It is possible to own a phone number but it is not widely available just like domains are. Hence it is a stupid idea to use it as an identity.

<comment><USER4> I recently learned this the hard way. I changed my phone number after moving cities, and AT&T just leased my old number to someone else!

<comment><USER5> There is a finite supply of numbers. Not recycling old numbers and just throwing them in a hole forever wouldn't be very prudent.

<comment><USER6> There is an infinite supply of numbers. You can just add extra digits. Mobile phone numbers used to be 8 digits in NZ, then became 9 digits when they needed more numbers.

</comment></comment></comment></comment></comment><comment><USER7> I'm not sure if I'd really trust any platform to store my personal documents without encrypting them myself before the upload.

But I'm always amazed at the pace at which Telegram keeps improving its feature set and UX. I haven't experienced a messaging platform that's anywhere close to it on these aspects. And for these reasons alone, it still remains my primary messaging application (while I keep checking the competition to see where they are).

</comment><comment><USER8> I really wish telegram would focus on being a messaging app and not whatever this is. I'm not going to trust them with my info.

<comment><USER9> Any reason in particular you choose not to trust Telegram? Or you're just (rightfully) distrustful of sharing that info in general?

<comment><USER10> Personally I don't trust telegram because of their funding source.

Additionally their first encryption protocol was extremely wonky and most people I know would correctly call it unsafe for use in a chat messenger.

Their second version is a tiny bit better but neither has been verified by any proper cryptographer I know.

Additionally Telegram as an App seems more like a Toy rather than a proper chat app, the stickers are big and completely destroy the flow of a conversation last I checked it. Other features are like this too.

Lastly, to my knowledge, end-to-end encryption is not enabled by default, neither for private messaging or groups. That's just a no-go for any chat application for me.

<comment><USER7> > Personally I don't trust telegram because of their funding source.

You could say the same for Signal (before Signal Foundation was created this year) or Wire (created by the people who created Skype) too.

> Lastly, to my knowledge, end-to-end encryption is not enabled by default, > neither for private messaging or groups. That's just a no-go for any chat > application for me.

The "secret chats" are always end-to-end encrypted. The normal chats are encrypted only in transit and not end-to-end. But secret chats are also tied to a single device (currently only phones), unlike Wire, which offers end-to- end encryption and synchronized conversations across devices.

<comment><USER10> >Wire (created by the people who created Skype) too.

Wire is also Open Source.

>The "secret chats" are always end-to-end encrypted.

Secret Chats come with too many drawbacks and other message applications seem to do perfectly fine. As you mention, only one device.

>The normal chats are encrypted only in transit and not end-to-end

That is TLS and not E2E encryption which is also a total no-go for me.

</comment></comment></comment></comment></comment><comment><USER11> I can't help not to trust telegram with my data, just gut feeling. You cannot use their service without giving your telephone nr. Now they like to have your ID's too. How can they honestly advertise "anonymus chat"? And the double ICO, over a billion fetched. So much money and data, where does that lead to?

<comment><USER12> I have a similar distrust of Telegram just because of where they started. (and I admit that isn't logical) But I think I trust someone with lots of data AND lots of money than someone who only has lots of data.

</comment></comment><comment><USER13> Wonder if this was influenced in part by the fact that Telegram is _the_ messaging service used by most ICO organizers. Could help in the KYC process that is becoming more commonplace.

</comment><comment><USER14> The unintented consequence of this will be that now any website can easily demand real life ID. Ordinary, non-financial websites (think Reddit, Twitter, Hacker News) will require ID to log in, to protect against spam and make the community safer.

This implements the dream of authoritarian governments that internet access should never be anonymous. Russian government officials have long wanted to establish a similar authentication system.

Is Pavel with us or against us?

<comment><USER15> Many people don't use Telegram and presumably most sites can't afford to alienate that many people.

</comment></comment><comment><USER16> Telegram has a history of including fairly obvious backdoors in their products [https://habr.com/post/206900/](https://habr.com/post/206900/)

Why should anyone trust them for identification or for storing sensitive documents?

(And no, that DH behavior cannot be explained away as a simple mistake)

<comment><USER17> I feel that your post is being a bit dishonest, as it ends with the following:

> UPD: The story ended well. Vulnerability is corrected, documentation and > applications are updated, treasure hunters of bugs are motivated, which has > already yielded results (1, 2). It is necessary to pay tribute to the > developers of Telegram, who immediately reacted to the article.

It's hard to say that it's not a mistake when the author of the article itself describes their response as "immediate".

Durov and Telegram have more or less shown their mettle; there was no money or profit in standing up to Russia, but they went ahead and did it anyways when it would have been easier to buckle. Yes, it has flaws in its implementation, but so far they've proven that when push comes to shove, they're willing to fight for their politics and to keep on fighting against such regimes. Once this changes, sure, it's fine to lay into them, but right now it really looks like they're true to their word.

<comment><USER16> None of this addresses the fact that there's no other realistic explanation for this besides an intentional backdoor.

<comment><USER18> Hanlon's razor?

<comment><USER16> Can you maybe explain to me how that could be applicable here?

I'd like to know of a vaguely plausible thought process that would result in this implementation.

</comment></comment></comment></comment></comment><comment><USER19> This looks rad. Unfortunately, I won't be able to use Telegram Passport. I can't even read this post without a proxy because my government actively blocks Telegram without a publicly given reason.

I wish they'd spend more time figuring out how to get around the domain fronting problem.

Then again I'm rambling.

</comment><comment><USER20> I wonder if its using the same "roll your own encryption" that the chat app is

</comment><comment><USER21> Their messaging application had horrible security in past, and there have been many discussions on HN about Telegram vs Signal. Why would I trust them for ID when their messaging was suspicious....

<comment><USER22> Please, provide sources if you're willing to say something like that.

<comment><USER23> [https://gizmodo.com/why-you-should-stop-using-telegram- right...](https://gizmodo.com/why-you-should-stop-using-telegram-right- now-1782557415)

<comment><USER22> Have you read the article you linked? Nothing in it is remotely closed to what one would call "horrible security".

</comment></comment></comment></comment><comment><USER24> I'd more happy if they would implement an option to turn-off link fetching and also ability to use their service without phone number.

As for this Passport - I'm not interested in this feature and I can't see where it would be useful for me. Not mention the security with just their assurances that nobody would have an access to my personal info - it's ridiculous to say least.

</comment><comment><USER25> If this is to deliver your ID for the purposes of KYC laws, then that's somewhat sensible, I suppose.

If, however, this is targeted at the providers who are actually collecting IDs as part of their AML compliance strategy, then there's a much simpler solution here: just become the ID equivalent of a Certificate Authority. Dedup Telegram accounts by using a unique constraint on accounts' validated ID documents' extracted creds; and then allow sites to use Telegram for Single Sign-On. Boom—instant surety that each of your users is a real person, and not fifty bots laundering one person's money; and no need for anyone besides Telegram to actually see your ID (i.e. a much lower chance of identity theft.)

Plus, if enough sites require SSO through an ID-document verifying identity provider, then even sites that ha d no legal reason to require it can free- ride off the benefit in user-deduplication it provides. Imagine, for example, a Reddit or a 4chan where users are still pseudonymous or anonymous, but where banning a user truly works, permanently, with no routing around it (unless you have the criminal connections required to buy yourself a new real-world identity.)

<comment><USER15> Companies that deal with money aren't going to use SSO; they want to own their login system.

<comment><USER25> Even governments are willing to use SSO if it's SSO using entities both they and their customers trust with their money, e.g. major banks. (At least, that's how it is here in Canada with [https://securekeyconcierge.com.](https://securekeyconcierge.com.))

Given that Telegram _is already a payment processor_ (i.e. something people trust with their money), it could serve a similar role, no?

</comment></comment></comment><comment><USER26> Well done telegram, I'm concerned some weird government might give a hard time before collecting these sensitive details.

While every third party is doing these things everyday, Telegram is under the risk of getting targeted.

</comment><comment><USER27> No, thanks

</comment><comment><USER28> The art is very interesting. Reminds me a lot of Fallout :P

</comment><comment><USER29> Pretty much ripped off Civic [https://www.civic.com](https://www.civic.com)

Wonder how the price of CVC is impacted today...

<comment><USER30> It takes a player with some size to move the needle on this one. And likely we'll have a few of these services. Civic still has a roll to play.

</comment></comment><comment><USER31> Upload all of my non-decentralized identification documents to a decentralized cloud? What could possibly go wrong?

</comment><comment><USER23> A cryptocurrency, now this? How long before the delicious Telegram™ Steaks™.</comment>


Ask HN: What's your real life superpower? - <AUTHOR> <comment><USER2> Imagination and Observation

</comment><comment><USER3> my memory is the clear winner there.</comment>


From Docker Straight to AWS - <AUTHOR> https://www.docker.com/blog/from-docker-straight-to-aws/ <comment><USER2> If you're looking to run Docker Compose dev envs in the cloud, I built Blimp ([https://kelda.io/blimp/](https://kelda.io/blimp/)). It has full support for compose features that are critical to the dev workflow, like bind volumes.</comment>