Show HN: CryptoHack – a fun platform for learning cryptography - <AUTHOR> https://cryptohack.org/ <comment><USER2> This is really cool, I discovered hackthebox last year and love the gamified nature of it and how well it resonates with younger people.

I got to the top 10 in HTB for a while and was pretty surprised that I was probably one of the oldest people in the rankings, lots of high school and uni students.

Have you thought about potential ways to monetise this through classroom "ladders" for students to attempt alone and then walk through in class? Company trainings would probably be another route

<comment><AUTHOR> We haven't really considered monetisation yet but you've given some interesting food for thought, thank you!

</comment></comment><comment><AUTHOR> Hey all, I would like to present a side project which I have been building with a friend.

We bonded over our shared passion for solving crypto CTF challenges, and found that infosec people are often curious about crypto - but see it as an intimidating topic. We wanted to build a "HackTheBox of crypto", where users are encouraged to learn about how crypto works, and how to break it on a fun gamified platform.

We have categories on RSA, block ciphers, ECC, mathematics and other schemes, and will be continuing to release new challenges to stay up-to-date with the latest attacks and techniques.</comment>


Republican engineer fired by Google hits back - <AUTHOR> https://www.wsj.com/articles/fired-by-google-a-republican-engineer-hits-back-theres-been-a-lot-of-bullying-11564651801?mod=rsswn <comment><USER2> Why does google continue to have these internal message boards about non-work topics? What I've heard from friends at google is that discussion is dominated by a tiny, vocal minority with extreme views, much like a college campus. It seems like 99% of googlers and certainly the company would be better off if they just dropped the "bring your whole self to work" message and closed these forums.

<comment><USER3> Yes let's make work even more alienating. Hurray

<comment><USER4> Does closing the message boards make work more alienating? Or does their _existence_ make work more alienating (for most of the workers)?

<comment><USER3> Just look up the definition of alienation. Parent poster suggested to not bring your whole self to work.

<comment><USER5> Nobody gets to bring their "whole self" to work. Not unless "theirself" never steps outside social protocol for an office. It's a con. They want your mental investment, but what extra leeway do they give you to be yourself beyond what you already had?

Being yourself especially doesn't exist in tech. Everything is so non- conformist conformist. I can't even have a conversation as myself at work. My roommates work in the trades, how I talk to them at home would get me fired so fucking fast if I tried it at work.

</comment></comment></comment></comment></comment><comment><USER6> > "I very much regret joining Google," he says. "I figured it would be a good > place to see intelligent arguments through."

Um, here I thought it was a place to get some work done, not have political arguments? I don't see why so many people bring politics into the workplace unnecessarily. I have very strong political feelings, and I just try to keep them to myself at work, and talk about them outside of work. Especially if other people voice opinions to the opposite.

Work is hard enough to get done with just normal feelings about one's work, let alone getting politics involved.

<comment><AUTHOR> It's the nature of work today. The lines between "work" and "life" have been blurred. The whole "burnout" phenomenon is a direct result of the fact that people are more emotionally invested in their work than ever, so it's not really fair to suggest that employees leave "politics" at home when society is prodding you to bring your whole self to work everyday.

<comment><USER7> Whatever our personal philosophies or politics, I think it's obvious that the nature of technical work has changed in America. Google's campus is lifestyle- designed. It's meant to maximise the time engineers spend on campus, with meals, laundry, massages, snacks, and other amenities.

Is it any wonder that, even if employees try to create a mental/emotional strict separation between work and home life, they would be tempted to bring their personal beliefs into work with them? It's human nature and inevitable, and Google, Facebook, et al opened the Pandora's Box on this effect.

</comment></comment></comment><comment><USER8> It will be very hard for anyone outside of the people directly involved to have an informed opinion about this, simply because Google will never release their side of the story.

That being said, I have seen several people claiming "I was fired/removed/banned for having opinion X" and in MOST of those cases my view was that they were at a minimum being very insensitive on multiple occasions.

Engineers often seem to have a tendency to treat Internet debating as a sport, relentlessly pointing out small logical flaws or playing Devil's Advocate, and then to entrench themselves further when facing backlash. If you pair that with political topics (where other people can get very, very emotionally invested quickly) on a workplace message board it's a recipe for a hostile discussion.

<comment><USER9> > That being said, I have seen several people claiming "I was > fired/removed/banned for having opinion X" and in MOST of those cases my > view was that they were at a minimum being very insensitive on multiple > occasions.

In the article it says that he wanted to buy lunch to talk about the deep thinker that circulated a memo saying women aren't going to be as good as men in tech.

I'm just saying, don't think he was let go because he was posting that he loves trickle down economics or small government. That there is no actual examples in the article of the type of thing he believes he was fired for doesn't bode well either.

</comment></comment><comment><USER10> I wonder what he was actually saying on these boards. Sometimes people clothe fairly repugnant stuff in 'political free speech'. Being toxic in the workplace shouldn't be tolerated, even if the would-be bully happens to claim some political leaning or another. The fact that the most damning quote we saw called him a "toxic asshole" and not a "conservative asshole" or something seems to imply he was just a not so great human being.

For the record, and I regret having to say this, but I do enjoy debate and have a healthy respect for free speech etc, and I'm by no means a pro-Google or pro-any hegemony type.

<comment><USER4> Hard to say. If I'm mad at you because you're conservative, I can still call you "toxic" because it sounds worse. I can even justify it if, from my perspective, all conservatives are toxic by definition.

Note well: I'm not saying that's what happened. I'm just saying that someone choosing that word doesn't tell us much.

<comment><USER10> Sure, it just seems like if there were anything more damning the guy would likely want it front and center (unless there are legal terms around that sort of thing etc).

</comment></comment></comment><comment><USER11> "I figured it would be a good place to see intelligent arguments through. It didn't really turn out how I expected."

When the urge gets irresistible, I post my "intelligent arguments" about politics to reddit, anonymously. Strangely, no one ever seems to change their mind! Odd, that. I'm under no illusion that this is healthy or productive, even less so that it will win me friends and accolades. It's hard to imagine the mindset of someone who thinks it would be a good idea to do this at work.

<comment><AUTHOR> I mean, I think the underlying issue this person has (and others, most likely) is the perception that it is "OK" to be very vocal about left-leaning views in the workplace but it is not okay to be the same about right-leaning ones.

The whole point is that it's unfair to those workers to have to "hide" in anonymous forums to express views that are held by half the country, especially if the workplace has made it clear there are no consequences (or that it's encouraged) to vocally express the views of the other side.

<comment><USER12> We don't know what he means by "right leaning views".

The one near example we had was that he told someone that she needed to be more resilient. This is obviously a bad idea.

<comment><USER13> Is resiliency not considered a virtue? Is an addition of resiliency not a net benefit, all other things being equal? Coming from a work/lifestyle culture where "Harden the F-- Up" is uttered almost daily, I'm not seeing how urging a coworker to upgrade their fortitude is a problem.

</comment></comment></comment></comment><comment><USER14> You know, free speech is a right in this nation. But, when I go to work I would leave my views of religions, politics and now guns at home. I just want to go to work, get things done and get the heck out. Heck, I don't even want to stay after dark to socialize anymore. I am really concerned that if I say something stupid after a few drinks, I would be vilified like a sexist, antisocial or whatever the label is nowadays.

<comment><USER15> Relevant xkcd: [https://xkcd.com/1357/](https://xkcd.com/1357/)

Free speech refers to the speaker and the government. It does not mean you are free from the personal or professional consequences of speech.

<comment><USER3> Stop thinking that this is some universal definition of free speech. Free speech can only fully be free speech if it's everywhere otherwise it should be called liberal speech.

Lookup the difference between freedom and liberty</comment></comment></comment>


A September 11th Catastrophe You've Probably Never Heard About - <AUTHOR> http://www.theatlantic.com/national/archive/2012/09/a-september-11th-catastrophe-youve-probably-never-heard-about

<comment><USER2> updated link: [http://www.theatlantic.com/national/archive/2012/09/a-septem...](http://www.theatlantic.com/national/archive/2012/09/a-september-11th- catastrophe-youve-probably-never-heard-about/261959/)

</comment><comment><USER3> page not found yo</comment>


Radio 4 Interview with Adrian Bowyer, RepRap inventor (at ~20:00) - <AUTHOR> http://www.bbc.co.uk/iplayer/console/b015bqbr

<comment><USER2> On the subject of radio four - any opportunity to post the In Our Time archives:

<http://www.bbc.co.uk/radio4/features/in-our-time/podcasts/>

Like a warm bath in university juice.

(Hope the links work outisde the UK)

</comment><comment><USER3> Speaking of RepRap does anyone have a list of things that are either impossible or incredibly expensive/difficult to manufacture in traditional ways, but with a 3d printer are easy?

<comment><USER4> As a 3D printing dude - right now the main emphasis is either hobbyists can DIY print stuff at home (since they couldn't do that before) or you can use 3D printers to make really crazy geometries that aren't possible - think of nuts lattice-work.

Here's group that have amazing algorithmic 3DP art: <http://n-e-r-v-o-u-s.com>

Other practical uses are like InvisAlign mouthpieces that are each 3D printed to your specific teeth. It would've been possible using CNC, but would have been very hard to do.

<comment><USER5> (you've got an extra <http://> on your URL.)

<comment><USER4> Thanks - fixed it!</comment></comment></comment></comment>


If seniors wealthier than ever, why discounts? - <AUTHOR> http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2011/11/08/BUNP1LRN7V.DTL&tsp=1 <comment><USER2> Customer acquisition often has a high cost. Identifying a group as "senior citizen" and offering a discount is just another such cost.

You see "student discount" at least as often. It is not about giving a "gift" to the students but making an offer to a self identifying group. Otherwise it is a hard and costly marketing slog reaching individual consumers.

</comment><comment><USER3> I'm in a joking mood:

 _Because they're cheap and everyone still wants their business._

Joking aside, we're all quite familiar with the distribution of wealth here in the US of A. The top 1% isn't going to account for 99% of purchases at IHOP.

I guess the fact they're discussing the median value makes my previous statements moot. Still funny.

<comment><USER4> You beat me to it. I was going to note that in my experience, a lot of folks that fit the "senior discount" age bracket make a hobby, or even a lifestyle, out of cheapness. My parents and my in-laws certainly do.</comment></comment>


An Introduction to the Theory of Computation - Eitan Gurari - <AUTHOR> http://www.cse.ohio-state.edu/~gurari/theory-bk/theory-bk.html <comment><USER2> Awesome! I'll have to pour over this as my summer project before the actual class next fall. Thanks!

</comment><comment><USER3> As a graduating senior, I'm still curious: Is there a course number this book is used with today?</comment>


Show HN: Skizze – High-throughput probabilistic data structure service - <AUTHOR> https://github.com/skizzehq/skizze <comment><USER2> Some more details are available at [http://seif.codes/skizze-behind-the- scenes-of-alpha-2/](http://seif.codes/skizze-behind-the-scenes-of-alpha-2/) and [https://njp.io/skizze-alpha-release/](https://njp.io/skizze-alpha- release/) , including what's coming up in future releases.

We're really excited to be working on solving real-world problems we've come across with Skizze, hopefully others will find it useful too as it matures!

</comment><comment><USER3> Great work on putting this together! Amazing idea really.

I'm specially looking forward for the streaming metrics/statistics feature.

PS: Could you go into a bit more into the threshold specification per domain and what kind of memory requirements it yields?

<comment><AUTHOR> Sure thing.

So imagine you have a domain with a expected cardinality (which you pass) of 1 million and a threshold of 10k.

What will happen is every time you insert an event it will be multiplexed into all 4 sketches. Each one of them will have a dictionary "thDict" (I will look into having them shared in a domain to reduce memory) that can take up to 10k keys. the keys will be the "strings" passed in and the values will be counters (+1 every time the key is inserted). Using a dictionary of 10k keys we can then give you precise 100% accurate:

* memebrship: check if key exists in "thDict"

* cardinality: count number of keys

* frequency: for a given key check the value

* top-k: sort the dictionary by values/keys

once the 10k keys threshold is reached, we can just replay them into all sketches.

Does this make sense?

Cheers and thanks for the kind words :D

<comment><USER3> I get the multiplexing and I think that's a great concept. One other thing that you might also want to consider (to reduce unneeded interaction with the server) is allow specifying counts of the keys - useful, for instance, when you want to know not only which IPs are the most frequent hitters but also which IPs are the most "heavy" hitters (by number of bytes transferred instead of individual requests).

But I didn't quite get the semantics behind the threshold though (I might have to look at the code to fully get it), but building up on your example of 1M keys and 10k as the threshold, you say the error rate would be 0% for all the sketches (which is great - but why 0%?). So suppose all keys are 32 bytes long and the counters are 32bit integers - for simplification lets also suppose that there's a single shared "thDict" dictionary - this would give a raw memory usage of 10,000 * 32 * 4 bytes or 1,250 KiB.

Then, if I understood correctly - it seems that the threshold determines the memory usage (unless the "sketch replaying" part that I also didn't fully understand affects this in some way). But what I would like to know is in what way the cardinality / threshold ratio influences the expected error rate. Given that any probabilistic data structure should work on the basis of the expected error and memory requirements, it seems crucial to know how to plan for both sides of the equation, but somehow after reading both links and the GitHub repo README I still can't understand it.

</comment></comment></comment><comment><USER4> Looks useful. However, how does the bloom filter and HLL implementation compare to the ones available in Redis?

<comment><AUTHOR> Redis provides a bitset that can be used as a bloom filter. You'd end up having to hash k times on a client side, while also calculating the ideal size of the bitset for the expected "n" values and "e" error rate.

The HyperLogLog is actually the same. We intend to provide a threshold feature that is variable to guarantee 100% accuracy up to a specific cardinality.</comment></comment>


Calculating Burn Rates in J - <AUTHOR> https://www.hillelwayne.com/post/burn-rate-j/ <comment><USER2> Just to clarify: % is integer division in J? In C based languages it's modulus. Whilst having diversity of language is great, it feels odd to choose to make an operator mean something opposite.

<comment><USER3> Yes, `%` is division. It's not that odd, if you look at the symbol - it looks quite similar to the division symbol `÷`.

It's almost better asking where C got the idea that it should be mod from!

<comment><USER4> So where did C get the idea to `%` for mod?

<comment><AUTHOR> It looks like % has a different use in BCPL, but it's used for mod in B [0], so I'm guessing it's a Thompson/Ritchie invention? (unless it came from some other language that came before B)

[0] [https://www.bell-labs.com/usr/dmr/www/btut.html](https://www.bell- labs.com/usr/dmr/www/btut.html)

</comment></comment></comment></comment><comment><USER5> I naively thought it was about calculating energy expenditure in Joules.

</comment><comment><USER6> > It's a sort of hybrid of a general purpose language and a DSL. Let's call it > a Specific Purpose Language, where the purpose in this case is "doing stuff > to numbers"

While I do appreciate and like both APL and J, I wonder why the author does not (or does he?) use Python + Pandas for this type of calculations.

<comment><USER7> I've used Pandas a bit and it certainly works well, but there are a lot of library functions to learn while J seems to basically be learn the two uses for every symbol and know how to do all math stuff ;).

I'm always impressed to see derivative and both matrix inversion & transpose as elementary operations instead of googling for a library that is most likely poorly documented. Furthermore, since the vector is the basic data type, things like matrices crop up a lot more in J & APL. In Python they are for scientific pursuits. In J they will often crop up even if you're writing a blackjack game. I think this is why it doesn't appeal to many programmers without a strong mathematics background, but it's very appealing to those who have that kind of background and grow tired of writing incessant loops.

</comment></comment><comment><USER8> Is that J an outlook-smiley?</comment>


The SubC Compiler - <AUTHOR> https://www.t3x.org/subc/ <comment><AUTHOR> "SubC is a fast and simple public domain compiler for a clean subset of the C programming language.

It can compile itself and passes gcc -Wall -pedantic."

Related: An implementation of the SubC language in Go: [https://github.com/qeedquan/gosubc](https://github.com/qeedquan/gosubc)</comment>


Google's Titan Security Key has been removed from the store - <AUTHOR> https://store.google.com/product/titan_security_key_kit <comment><USER2> It just let me add it to my cart.</comment>


Omnistream: a state-management tool for React built with RxJS - <AUTHOR> https://github.com/soup-js/omnistream <comment><USER2> What a cool idea! Observables are by far the most efficient way to handle asynchronicity within applications. I'll definitely be trying this out.

<comment><USER3> agreed

</comment></comment><comment><USER4> Big fan of both Redux and RxJS.. Really looking fwrd to trying this out- looks like a great way of bringing them together!</comment>


Claude: Common Lisp Library Audience Expansion Toolkit (2014) [pdf] - <AUTHOR> https://www.nicklevine.org/claude/paper.pdf <comment><USER2> Tangential thought, as I don't have time to read the paper in full now: I wish authors would _timestamp_ papers. It really matters whether this is 2019, 2017, 2007 or (since it's Lisp) 1997. Papers exist in larger context of community, which evolves over time. Given no date on this one, I don't know how to evaluate it.

<comment> banana-slug Just a side note: the reference to 1997 seems to be making the point that Lisp has such a long history that a paper about it might be from as far back as 1997. In fact, Lisp was designed and described by McCarthy in 1959 ([http://www.bitsavers.org/pdf/mit/ai/aim/AIM-008.pdf](http://www.bitsavers.org/pdf/mit/ai/aim/AIM-008.pdf)). Lisp was basically a practical software version of the mathematical lambda calculus of Alonzo Church ("The Calculi of Lambda Conversion" [https://en.wikipedia.org/wiki/Lambda_calculus](https://en.wikipedia.org/wiki/Lambda_calculus)) as first(?) described in his 1936 paper "An Unsolvable Problem of Elementary Number Theory" ([https://www.ics.uci.edu/~lopes/teaching/inf212W12/readings/c...](https://www.ics.uci.edu/~lopes/teaching/inf212W12/readings/church.pdf)). This was apparently related to the Church–Turing thesis ([https://en.wikipedia.org/wiki/Church–Turing_thesis](https://en.wikipedia.org/wiki/Church–Turing_thesis)) but that is way beyond my intellectual depth, so I am not sure.

<comment><USER2> All correct. _Common Lisp_ , the topic of this paper, was made an ANSI standard in 1994, but in a less official capacity it's many years older, and of course its lineage reaches the 1950s.

On top of that, within the Common Lisp community, one of the most important transformation happened in 2010, with the release of Quicklisp - the de-facto community standard package manager, which drasticly simplified working with Common Lisp libraries (espetially for beginners). Given all that, and the ongoing community evolution, it _really_ matters what year is a paper about CL library ecosystem from.</comment></comment></comment>


New Intel Instructions for Alder Lake, Also BF16 for Sapphire Rapids - <AUTHOR> https://www.anandtech.com/show/15686/intel-updates-isa-manual-new-instructions-for-alder-lake-also-bf16-for-sapphire-rapids <comment><USER2> This doesn't mean ADL will actually see a wide release.

I am still dead convinced we will never see a wide release of a 10nm desktop chip. It will be delayed then cancelled in favor of 7nm.

Server wise, same, limited releases, more smoke and mirrors etc etc

Intel will limp along with 14nm until 7nm. 10nm is utter broken and they can't fix it.

<comment><USER3> I think that's true if 7nm progress is independent of 10nm, and the mistakes made with 10nm aren't also delaying 7nm.

My understanding is that Intel's 14->10nm shrink was the most aggressive in the industry, promising to yield a greater increase in density than the geometry would imply, when usually there's a loss factor and the density increase isn't as good as you'd naively expect.

Even after 10nm was delayed by quite some time, Intel pointed to this and declared they weren't lagging the industry as the shrink was closer to a 1.5 node shrink.

If the 10nm delay was the result of this aggressiveness and Intel was well in to developing 7nm in a similar fashion before it became obvious how 10nm was going to turn out, this may not be a matter of skipping over a single bad apple.

<comment><USER2> > I think that's true if 7nm progress is independent of 10nm, and the mistakes > made with 10nm aren't also delaying 7nm

That is exactly what's happening

<comment><USER4> 7nm was planned for 2017 as of 2014. Ouch.

[https://www.tweaktown.com/news/41582/intel-to-hit-10nm- in-20...](https://www.tweaktown.com/news/41582/intel-to-hit-10nm- in-2016-with-7nm-cpus-arriving-in-2018/index.html)

<comment><USER2> That's just early optimism, as far as these things can be known from the outside, the process is fine very much unlike 10nm which was known to be broken for years even before Cannon Lake.

</comment></comment></comment></comment></comment><comment><USER5> Possibly a meta question on instructions: is there such a thing as having 'too many'?

I know transistors are cheap, but at what point is it diminishing returns on new instructions? How many different use cases need to be handled? Certainly there are new situations that need to be handled (e.g., H.264/5/6, AV1 video), but will there ever be a point where we can say "this is enough"?

<comment> throwaway-9320 I remember reading somewhere that nowadays a significant chunk of the instructions isn't actually implemented on the CPU using transistors, but by using CPU microcode to sort of emulate these instructions by combining existing ones. Someone correct me if I'm wrong.

<comment><USER6> Micro-ops are the actual things that can be executed by the hardware. A floating-point FMA unit is going to support a floating point addition, subtraction, fused multiply add (with various intermediate sign twiddles), and integer multiplication and wide multiplication--all without adding much more hardware: you're adding a few xors or muxes to the big, fat multiplier in the middle of it all. Each of these might have distinct micro-ops, or you might be able to separate the processing stages and use a single multiplier micro-op with distinct preprocessing micro-ops for the different instructions. Realistically, though, you are adding new micro-ops, although the overall hardware burden may be light.

The motivation of adding new instructions is generally to get higher performance, so there's going to be pressure to have hardware to execute it well, as opposed to a more naive emulation. But sometimes people add support without making it fast--AMD chips used to (still do? I'm not sure) implement the 256-bit AVX instructions by sending the 128-bit halves through their units in sequence, so that it technically supported AVX instructions but didn't see any improved benefit from it.

</comment></comment></comment><comment><USER5> Is there a rationale behind Intel's codename scheme?

With (e.g.) Ubuntu they go through the English alphabet, so you can get some idea of the order things have/will come out, but it seems that Intel is using a random word generator for their _X_ Lake names.

<comment><USER7> I think all the X Lake names are taken form real lakes in the state of Oregon.

<comment><USER5> Sure, but how are the names chosen?

If Ubuntu _et al_ it is alphabetical order, and you can generally tell the timeline of releases. But how can one really tell what the current product from Intel is, and what came before, and what are the upcoming releases?

It's not like they're going through Oregon lakes in some kind of order, or are they? By discovery, by size/volume, other?

<comment><USER8> As in most code names there is no order, if you want an order, maybe in terms of favourite to least favourite parks/lakes of the Intel staff.

What you are looking for are monotonically increasing version numbers, which code names are definitely not.

If you are looking for details about generations of chips, [https://ark.intel.com/](https://ark.intel.com/) is your friend.

<comment><USER5> > _What you are looking for are monotonically increasing version numbers, > which code names are definitely not._

They are not, but given that Intel seems to put them in their public information / marketing material, it seems like the "codenames" are being used as version numbers. If they were strictly internal-to-Intel I could see that POV, but that doesn't seem to be happening.

And the Intel's model numbers / SKUs also seem to be created from a random number generator. :)

<comment><USER8> What's wrong with having names that are public that doesn't match with a version number?

Like you said, even model/sku numbers are mostly random. Why the expectation of a monotonically increasing version number if intel has almost never done it before?

<comment><USER9> > Why the expectation of a monotonically increasing version number if intel > has almost never done it before?

"Almost never" except for 8086/80286/80386/80486, you mean.

But who remembers those obscurities?

<comment><USER5> Pentium 2/3/4:

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

<comment><USER9> And the "Pentium" itself, arguably, being a "penta-" name coming after the 80486.

But the Pentium broke the numbering scheme to an extent, with the Pentium Pro wedged between the Pentium and Pentium II.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> The article says "LBRs (Last Branch Recording) in order to speed up branches". Reading the PDF seems to be more about recording it (for profiling?). If it really is about speedups can someone summarise how, and how that differs from using branch predictors.

<comment><USER11> I think it's for tooling like profilers, not directly for performance. But you could use that tool to improve performance in your code, so maybe that's what they mean.

<comment><USER12> That's correct. Info on LBR in general: [https://lwn.net/Articles/680985/](https://lwn.net/Articles/680985/)

</comment></comment></comment><comment><USER13> Is it clear to anyone if the BFloat16 support in these chips means they have extra-low precision multipliers internally, or are the dot products still implemented with the single precision guts? Does it actually increase compute over FP32 or is it just a bandwidth win?

<comment><USER6> The new instructions are, I believe:

* VCVTNE2PS2BF16 — Convert Two Packed Single Data to One Packed BF16 Data [i.e., float32 -> bfloat16 conversion]

* VCVTNEPS2BF16 — Convert Packed Single Data to Packed BF16 Data [ditto]

* VDPBF16PS — Dot Product of BF16 Pairs Accumulated into Packed Single Precision [i.e., multiply two v2bf16 with each other, and then sum the two results into a f32.]

The last instruction is the only computation instruction, and that can be implemented by breaking the 23-bit multiplier of an FMA unit into two 7-bit multipliers, one for each bfloat16, as well as duplicating the normalization logic beforehand.</comment></comment>


OpenAI Five - <AUTHOR> https://blog.openai.com/openai-five/ <comment><USER3> Disclosure: I work on Google Cloud (and vaguely helped with this).

For me, one of the most amazing things about this work is that a small group of people (admittedly well funded) can show up and do what used to be the purview of only giant corporations.

The 256 P100 optimizers are less than $400/hr. You can rent 128000 preemptible vcpus for another $1280/hr. Toss in some more support GPUs and we're at maybe $2500/hr all in. That sounds like a lot, until you realize that some of these results ran for just a weekend.

In days past, researchers would never have had access to this kind of computing unless they worked for a national lab. Now it's just a budgetary decision. We're getting closer to a (more) level playing field, and this is a wonderful example.

<comment><USER4> I would just want to comment that while this is true in principle, it's also slightly misleading because it does not include how much tuning and testing is necessary until one gets to this result.

Determining the scale needed, fiddling with the state/action/reward model, massively parallel hyper-parameter tuning.

I may be overestimating but I would reckon with hyper-parameter tuning and all that was easily in the 7-8 figure range for retail cost.

This is slightly frustrating in an academic environment when people tout results for just a few days of training (even with much smaller resources, say 16 gpus and 512 CPUs) when the cost of getting there is just not practical, especially for timing reasons. E.g. if an experiment runs 5 days, it doesn't matter that it doesnt use large scale resources, because realistically you need 100s of runs to evaluate a new technique and get it to the point of publishing the result, so you can only do that on a reasonable time scale if you actually have at least 10x the resources needed to run it.

Sorry, slightly off topic, but it's becoming a more and more salient point from the point of academic RL users.

<comment><USER3> I hear you. I would say that this work is tantamount to what would normally be a giant NSF grant.

Depending on your institution, this is precisely why we (and other providers) give out credits though. Similar to Intel/NVIDIA/Dell donating hardware historically, we understand we need to help support academia.

<comment><USER4> Yes, thank you for that by the way, did not want to diminish your efforts. Just wanted to point out that papers are often misleading about how many resources are needed to get to the point of running the result. I have received significant amounts of money from Google, full disclosure.

</comment></comment></comment></comment><comment><USER4> So as someone working in reinforcement learning who has used PPO a fair bit, I find this quite disappointing from an algorithmic perspective.

The resources used for this are almost absurd and my suspicion is, especially considering [0], that this comes down to an incredibly expensive random search in the policy space. Or rather, I would want to see a fair bit of analysis to be shown otherwise.

Especially given all the work in intrinsic motivation, hierarchical learning, subtask learning, etc, the sort of intermediate summary of most of these papers from 2015-2018 is that so many of these newer heuristics are too brittle/difficult to make work, so we resort to slightly-better-than brute force.

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

<comment><AUTHOR> (I work at OpenAI on the Dota team.)

Dota is _far_ too complex for random search (and if that weren't true, it would say something about human capability...). See our gameplay reel for an example of some of the combos that our system learns: [https://www.youtube.com/watch?v=UZHTNBMAfAA&feature=youtu.be](https://www.youtube.com/watch?v=UZHTNBMAfAA&feature=youtu.be). Our system learns to generalize behaviors in a sophisticated way.

What I personally find most interesting here is that we see qualitatively different behavior from PPO at large scale. Many of the issues people pointed to as fundamental limitations of RL are not truly fundamental, and are just entering the realm of practical with modern hardware.

We are very encouraged by the algorithmic implication of this result — in fact, it mirrors closely the story of deep learning (existing algorithms at large scale solve otherwise unsolvable problems). If you have a very hard problem for which you have a simulator, our results imply there is a _real, practical path_ towards solving it. This still needs to be proven out in real- world domains, but it will be very interesting to see the full ramifications of this finding.

<comment><USER4> Thank you for taking the time to respond, I appreciate it.

Well I guess my question regarding the expensiveness comes down to wondering about the sample efficiency, i.e. are there not many games that share large similar state trajectories that can be re-used? Are you using any off-policy corrections, e.g. IMPALA style?

Or is that just a source off noise that is too difficult to deal with and/or the state space is so large and diverse that that many samples are really needed? Maybe my intuition is just way off, it just _feels_ like a very very large sample size.

Reminds me slightly of the first version of the non-hierarchical TensorFlow device placement work which needed a fair bit of samples, and a large sample efficiency improvement in the subsequent hierarchical placer. So I recognise there is large value in knowing the limits of a non-hierarchical model now and subsequent models should rapidly improve sample efficiency by doing similar task decomposition?

<comment><AUTHOR> The best way we know to think of it is in terms of variance of the gradient.

In a hard environment, your gradients will be very noisy — but effectively no more than linear in the duration you are optimizing over, provided that you have a reasonable solution for exploration. As you scale your batch size, you can decrease your variance linearly. So you can use good ol' gradient descent if you can scale up linearly in the hardness of the problem.

This is a handwavy argument admittedly, but seems to match what we are seeing in practice.

Simulators are nice because it is possible to take lots of samples from them — but there's a limit to how many samples can be taken from the real world. In order to decrease the number of samples needed from the environment, we expect that ideas related to model-based RL — where you spend a huge number of neural network flops to learn a model of the environment — will be the way to go. As a community, we are just starting to get fast enough computers to test out ideas there.

<comment><USER5> Yo, this probably isn't the type of HN comment you're used to, but I just wanted to say thanks for enriching the dota community. I know that's not really why you're doing any of this, but as someone who's deeply involved with the community, people get _super_ hyped about what you guys have been doing.

They also understand all of the nuances, similar to HN. Last year when you guys beat Arteezy, everyone grokked that 5v5 was a completely different and immensely difficult problem in comparison. There's a lot of talent floating around /r/dota2, amidst all the memes and silliness. And for whatever reason, the community _loves_ programming stories, so people really listen and pay attention.

[https://imgur.com/Lh29WuC](https://imgur.com/Lh29WuC)

So yeah, we're all rooting for you. Regardless of how it turns out this year, it's one of the coolest things to happen to the dota 2 scene period! Many of us grew up with the game, so it's wild to see our little mod suddenly be a decisive factor in the battle for worldwide AI dominance.

Also 1v1 me scrub

<comment><USER6> Agreed! Can't wait to not have to play Dota 2 with humans :p

</comment></comment></comment></comment></comment></comment><comment><USER7> This article (like pretty much all from OpenAI) is really well done. I love the format and supporting material - makes it waay more digestible and fun to read in comparison to something from arxiv. The video breakdowns really drive the results home.

<comment><USER8> To be fair, there is very little technical content... I don't think they could repackage this content into an arxiv-style paper if they wanted to.

<comment><USER7> Good point - but I think that the difference is valuable. If that is the average person's first touch point with the content, then it would do a better job of making it accessible than a technical paper. Agreed that a follow-up detailed post or paper would be awesome!

</comment></comment></comment><comment><USER9> This is a really interesting writeup, specially if you know a bit more about how Dota works.

That it managed to learn creep blocking from scratch was really surprising for me. To creep block you need to go out of your way to stand in front of the creeps and consciously keep doing so until they reach their destination. Creep blocking just a bit is almost imperceptible and you need to do it all the way to get a big reward out of it.

I also wonder if their reward function directly rewarded good lane equilibrium or if that came indirectly from the other reward functions

<comment><USER10> It's not really "from scratch". The bots are rewarded for the number of creeps they block, so it's not impossible that they would find some behavior to influence this score.

<comment><USER11> That was true for their original 1v1 bot, but in the latest blog post they mention bots can learn it on their own if left to train longer.

<comment><USER12> That's not rigorously supported. It's just an anecdote they mention off-hand. The final version of the bot does use the creep block reward.

<comment><AUTHOR> To be clear:

\- The 1v1 bot played at The International used a special creep block reward (and a big if statement separating that part of the agent from the self-play trained part). It trained for two weeks.

\- A 2v2 bot discovered creep blocking on its own, no special reward. It trained for four weeks.

\- OpenAI Five does not have a creep blocking reward, but neither (to our knowledge) does it creep block currently. Trained for 19 days!

<comment><USER12> I see. Thanks! So it manages to win lanes without even creep blocking? That's quite good. Any chance you could share the last hits @ 10 mins for the games it has played (for both bots and humans)? I think that's a crucial number to judge how OpenAI Five is winning its games.

<comment><USER13> I believe the article said that Blitz rated the bot last-hitting at about average for humans, although he might over-rate what an average human player last hits like.

<comment><USER12> Yeah, he might be overestimating 2.5k mmr players, and there's also something to be said about the consistency by which the bot last hits. A human player would have a high variance of last-hit performance, while the bot will probably guarantee a minimum amount, thus ensuring a minimum set of items needed for the mid-game transition.

But my larger point is, the early game doesn't have a lot of strategic elements in it. You have to last hit, not die, harass opponent, get items. You can play it by the book pretty much. The challenge in early game is to be able to handle 5 different things at the same time. So there's never really a question of what to do, but doing it does require mechanical prowess, which we know bots can easily be better at, than humans.

The team composition chosen is very early game snowball oriented. So is the bot winning simply due to mechanical superiority and early game advantage? Access to last hits @ 10 mins, gold and net worth graphs would allow us to answer that question.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> They are using preemptible CPUs/GPUs on Google Compute Engine for model training? Interesting. The big pro of that is cost efficiency, which isn't something I expected OpenAI to be optimizing. :P

How does training RL with preemptible VMs work when they can shut down at any time with no warning? A PM of that project asked me the same question awhile ago ([https://news.ycombinator.com/item?id=14728476](https://news.ycombinator.com/item?id=14728476)) and I'm not sure model checkpointing works as well for RL. (maybe after each episode?)

<comment><AUTHOR> (I work at OpenAI on the Dota team.)

Cost efficiency is always important, regardless of your total resources.

The preemptibles are just used for the rollouts — i.e. to run copies of the model and the game. The training and parameter storage is not done with preemptibles.

<comment><USER15> If these (or other similar) experiments would show viability of this network architecture, the cost could be decreased a lot with development of even more specialized hardware.

Also one could look at the cost of the custom development of bots and AIs using other more specialized techniques: sure, it might require more processing power to train this network, but it will not require as much specialized human interaction to adapt this network to a different task. In which case, the human labor cost is decreased significantly, even if initial processing costs are higher. So in a way you guys do actually optimize cost efficiency.

</comment></comment></comment><comment><USER16> >OpenAI Five does not contain an explicit communication channel between the heroes' neural networks. Teamwork is controlled by a hyperparameter we dubbed "team spirit". Team spirit ranges from 0 to 1, putting a weight on how much each of OpenAI Five's heroes should care about its individual reward function versus the average of the team's reward functions. We anneal its value from 0 to 1 over training.

A bit disappointing, it would be very cool to see what kind of communication they'd develop.

<comment><USER17> Would be interesting to see if when one agent declines to help another several times, the other one would decide against helping him when he calls. The logical explanation would then be that the agent would come to value his life more than his comrade's (because he is helping, and his comrade has refused several times). The human explanation would be that he refuses to help out of spite. It could even lead to those two agents "hating" the other, though it would be more like cold calculation.

</comment></comment><comment><USER18> I wanted to add the observation that all the restricted heroes are ranged. Necrophos, Sniper, Viper, Crystal Maiden, and Lich.

Since playing a lane as a ranged hero is very different from playing the same lane as a melee hero, I wonder whether the AI has learned to play melee heroes yet.

<comment><USER12> Not only are they ranged, but this lineup is very snowball-oriented, i.e. the optimal play style with this kind of lineup is to gain a small advantage in the early game and then keep pushing towers together aggressively. The middle- to-late game doesn't really matter. Whoever wins the early game wins the game. And we do know that bots are going to be good at early game last hitting.

<comment><USER19> The article states the bots are actually rather mediocre at last hitting.

</comment></comment></comment><comment><USER20> I've played DotA for over 10 years so this development is quite relevant to me. So excited to see this next month!

Although it's extremely impressive, all the restrictions will definitely make this less appealing to the audience (shown in the Reddit thread comments).

<comment><AUTHOR> Thanks! The restrictions are a WIP, and will be significantly lifted even by our July match.

</comment></comment><comment><USER21> > Partially-observed state. Units and buildings can only see the area around > them. The rest of the map is covered in a fog...

Actually, this is true on multiple levels. There is fog of war, but then there is the fact that a human player can only look at a given window of the game at a time, and has to pan the window to see the area away from their character. (The mini-map shows some level of detail for the rest of the map, but isn't high resolution and doesn't show everything that might be of interest.) Also, you can only issue orders on what is directly visible to you, so if you pan away from your character that restricts what you can do.

Is OpenAI Five modeling this aspect of the game? Otherwise it's still "cheating" in some sense vs how a human would be forced to play.

<comment><USER22> I'm pretty sure they are not. From [https://blog.openai.com/openai- five#differencesversushumans](https://blog.openai.com/openai- five#differencesversushumans):

>OpenAI Five is given access to the same information as humans, but instantly sees data like positions, healths, and item inventories that humans have to check manually. Our method isn't fundamentally tied to observing state, but just rendering pixels from the game would require thousands of GPUs.

</comment></comment><comment><USER23> While this is a cool result, I wonder if the focus on games rather than real- world tasks is a mistake. It was a sign of past AI hype cycles when researchers focused their attention on artificial worlds - SHRLDU in 1970, Deep Blue for chess in the late 1990s. We may look back in retrospect and say that the attention Deepmind got for winning Go signaled a similar peak. The problem is that it's too hard to measure progress when your results don't have economic importance. It's more clear that the progress in image processing was important because it resulted in self-driving cars.

<comment><USER24> Firstly, research into Chess AI has had a surprising amount of beneficial spin-off, even if we don't call the result "AI".

Secondly, while it's still a simplification and abstraction, DotA's ruleset is orders-of-magnitude more similar to operating in the real world than Chess's is.

Thirdly, I'd argue that the adversarial nature of games makes it _easier_ to track progress, and to ensure that measure of progress is honest.

There's a lot of ways you can define "progress" in self-driving cars. Passengers killed per year in self-driving vs. human-driven cars? Passengers killed per passenger-mile? Average travel time per passenger-mile in a city? etc.

With games, you either win, or you don't.

<comment><USER25> Another benefit of showing off progress with games is it allows the everyday reader to follow and understand it as well. It works great as a public awareness standpoint, especially when an AI can beat a human (i.e. Gary Kasparov vs Deep Blue). Awareness is a good thing in the space.

</comment></comment></comment><comment><USER26> Will the agent controls all 5 players or will each agent control a single player?

One of the hard challenge of DOTA is whether or not to "trust" your teammate to do the right action. I.e. One can aggressively go for a kill knowing that their support will back them.. but one can also aggressively go for a kill while their support let them die, and then the whole team starts blaming and tilting because the dps "threw". It's a fine balance.. From personal experience, it seems like in lower leagues it's better to always assume that you're by yourself, whereas in higher leagues you can start expecting more team plays.

Another example is often many players will use their ultimate ability at the same time and "wasting" it. It would be easy for an agent controlling all 5 players to avoid this.. but how would a individual agent knows whether or not to use their ult? Are the agents able to communicate between each others? If so, is there a cap to "how fast it does it?". I.e. on voice, it takes a few seconds to give orders.

<comment><USER27> Seems it's five individual agents with no communication, just a reward function that shifts towards team-based rewards:

"OpenAI Five does not contain an explicit communication channel between the heroes' neural networks. Teamwork is controlled by a hyperparameter we dubbed "team spirit". Team spirit ranges from 0 to 1, putting a weight on how much each of OpenAI Five's heroes should care about its individual reward function versus the average of the team's reward functions. We anneal its value from 0 to 1 over training."

So pretty much like pubs.

<comment><USER13> It would be pretty interesting to see one or two of the bots playing with humans on their team.

</comment></comment></comment><comment><USER28> I think this is quite impressive. I'm a bit confused about the section saying that "binary rewards can give good performance". Is it saying that binary rewards (instead of continuous rewards) work fine, but end-of-rollout rewards (instead of intermediate rewards such as kills) work poorly?

<comment><USER29> Binary rewards (win/loss score at the end of the roll out) scored a "good" 70.

With sparse reward (kills, health, etc), scored a better 80 and learned much faster.

Normally, "reward engineering" uses human knowledge to give more continuous, richer rewards. This was not used here.

<comment><USER28> Perhaps we are looking at a different graph, but in the one I am looking at, blue is "sparse" (plateaus at 70) and orange is "dense" (very quickly hits 80). I believe "dense" means they are doing reward engineering.

<comment><USER29> The "sparse blue graph" is just the binary win loss outcome - learns ok-ish but slow

The "dense orange graph" \- uses more dense rewards - kills, health - <USER2> learns better. I referred to this as a "sparse reward" \- since it is still a fairly lean and sparse function.

But this is just my opinion. Also note this is for the older 1v1 agent.

The current reward function is even more detailed, and they blend and anneal the 5 agent score, so i dunno...

[https://gist.github.com/dfarhi/66ec9d760ae0c49a5c492c9fae939...](https://gist.github.com/dfarhi/66ec9d760ae0c49a5c492c9fae93984a)

</comment></comment></comment></comment><comment><USER30> I want to see this datapoint on their AI and Compute chart: [https://blog.openai.com/ai-and-compute/](https://blog.openai.com/ai-and- compute/)

</comment><comment><USER31> >Each of OpenAI Five's networks contain a single-layer, 1024-unit LSTM that sees the current game state (extracted from Valve's Bot API)

This will likely dramatically simplify the problem vs. what the DeepMind/Blizzard framework does for StarCraft II, which provides a game state representation closer to what a human player would actually see. I would guess that the action API is also much more "bot-friendly" in this case, i.e., it does not need to do low-level actions such as boxing to select.

<comment><USER32> Definitely reduces the problem excessively, even inside the game itself they have a big list of restrictions for items and heroes.

It makes sense to solve this easier problem first as there will be more headlines faster

<comment><USER33> The problem they're trying to solve is also not how to recognise actions from pixels, it's how to outstrategise and outexecute players at the game. Conceptual rather than mechanical advantage.

</comment></comment></comment><comment><USER34> Wow, very excited about this. I don't know too much about RL, but for me the "170,000 possible actions per hero" seems far too large an output space to be feasible. What happens if the bot wants to do an invalid action? Nothing, or some penalty for selecting something invalid?

</comment><comment><USER35> OpenAI is cover up research AI for the CIA. The main goal will be to kill innocent folks with this type of AI research. These folks are working for CIA without noticing the involvement of The Spy Agency. They are ostensibly private institutions and businesses which are in fact financed and controlled by the CIA. From behind their commercial and sometimes non-profit covers, the agency is able to carry out a multitude of clandestine activities—usually covert-action operations. Many of the firms are legally incorporated in Delaware because of that state's lenient regulation of corporations, but the CIA has not hesitated to use other states when it found them more convenient. The NSA/CIA's best-known proprietaries are Amazon, facebook, Microsoft, Palantir, OpenAI (cover up research AI via non-profit) and Google.... Good luck with working inside a military research without decoding the source of funding.

</comment><comment><USER36> Are those 180 years of games "seeded" by real games, or was it entirely self play?

Also, how does this system cope with gameplay changes that arise when the game is patched? It's new news to any experienced Dota player that even small changes can have major impact on the meadow gam that even small changes can have major impact on winning strategy. Would it need to be re-trained every patch?

<comment><USER37> > Are those 180 years of games "seeded" by real games, or was it entirely self > play?

The writeup implies that it's entirely self-play.

> Also, how does this system cope with gameplay changes that arise when the > game is patched?

From the sound of it, they don't. Since it's a policy gradient method, which learns only from the last set of samples, hypothetically, they could simply swap out the DoTA binary on the fly in parallel and let it automatically update itself by continued training. (The difference between optimal pre/post- patch is a lot smaller than the difference between a random policy and an optimal policy...)

<comment><USER36> Makes sense on both counts.

The fact that it's not seeded at all is very interesting. A lot of Dota expertise derives from knowing what the opponent is going to do at a particular time. I remember many comments from experienced Go players that AlphaGo made moves that no human player would make, so I wonder if that will appear in this case as well.

<comment><USER37> They do discuss some current differences in playstyle toward the bottom, like faster openings and more use of support heroes, which the self-play has invented (along with rediscovering standard tactics). So it's at least a little different.

Whether these are _better_ is hard to say. It's not superhuman, after all, unlike AlphaGo, so it's not presumptively right, and you can't doublecheck by doing a very deep tree evaluation (because DoTA doesn't lend itself to tree exploration - far too many actions and long-range).

</comment></comment></comment></comment><comment><USER38> What are the 170,000 discrete actions?

Rough guesses for available actions:

      32 (directions for movement)

\+ 10 (spell/item activations)

      * 20 (potential targets. heroes + near by creeps)

\+ 15 (attack commands. 5 enemy heroes and ~10 near by creeps)

Which still leaves... approximately 170,000 actions unaccounted for

<comment><USER33> You can attempt to attack / move to / cast many spells on arbitrary pixels on the map. The bots are shown casting spells on targets that aren't visible in the demo. The amount of available targets probably blows up the count.

<comment><USER39> I figured this much as well, and I think this also begins to explain why some of the restrictions exist, and how difficult it would be to generalize this to the entirety of the Dota action space. I'm assuming they were pretty smart at defining and limiting the possible action space to get down to 170K. For example, restricting the hero pool down to 5 heroes which only have a reasonably small number of options in a reasonably small radius around them (I think Sniper's Q ability might lead to the highest number of discretized actions among their chosen hero pool), banning Boots of Travel (though I suppose this shouldn't add too many actions since you have to TP to a friendly unit of which there are not that many, so maybe this doesn't pose a problem with respect to the action space size, but it does have strategic implications), etc.

For a hero like invoker who can cast Sunstrike anywhere on the map at any time, would you try to come up with domain heuristics (only consider locations in the map near enemy heroes), or deal with an explosion of possible actions (and this applies to a ton of different hero mechanics that are not in scope here)?

<comment><USER10> If the goal of the project is generalization, you likely want to shy away from opinionated heuristics like the former you mention.

In the development for the Magic the Gathering AI (Duels), one of the restrictions is "don't cast harmful spells on your targets" even though for some edge cases this is actually the optimal thing to do. They traded a smaller search space at the expense of optimality.

</comment></comment></comment></comment><comment><USER40> Any thoughts from the Dota team on how drafting heroes will work by the time we get to TI? Am also curious if you've seen more experimental drafts in early results that aren't as popular in the pro scene.

<comment> forgot-my-pw The OpenAI bots are still very limited. Current set of restrictions:

\- Mirror match of Necrophos, Sniper, Viper, Crystal Maiden, and Lich

\- No warding

\- No Roshan

\- No invisibility (consumables and relevant items)

\- No summons/illusions

\- No Divine Rapier, Bottle, Quelling Blade, Boots of Travel, Tome of Knowledge, Infused Raindrop

\- 5 invulnerable couriers, no exploiting them by scouting or tanking

\- No Scan

</comment></comment><comment><USER29> Any thoughts from the DOTA team on handling a world map which not bounded in size ?

In my projects, the "world" size can change (unlike Go, Chess where the board size is fixed).

Is the DoTA board size fixed?

I guess the LTSM encodes the board history as seen by the agent. But this probably slows the learning.

Some people suggested auto-encoder to compress the world, and then feed it to a regular CNN.

Any comments would be welcome.

<comment><USER41> Played DotA. The map is fixed size.

</comment></comment><comment><USER42> I'm a Legend dota2 player and also a Machine Learning researcher and I'm __fascinated __by this result. The main message I take away is, we might already have powerful enough methods (in terms of learning capabilities), and we 're limited by hardware (this also makes me a little sad). My thoughts,

1) "At the beginning of each training game, we randomly "assign" each hero to some subset of lanes and penalize it for straying from those lanes until a randomly-chosen time in the game...." Combining this with "team spirit" (weighted combined reward - networth, k/d/a). They were able to learn early game movement for position 4 (farming priority position). For roaming position, identifying which lane to start out with, what timing should I leave the lane to have the biggest impact, how should I gank other lanes are very difficult. I'm very surprised that very complex reasoning can be learned from this simple setup.

2) Sacrificing safe-lane to control enemy's jungle requires overcoming local minimum (considering the rewards), and successfully assign credits over a very very long horizon. I'm very surprised they were able to achieve this with PPO + LSTM. However, one asterik here is if we look at the draft, Sniper, Lich, CM, Viper, Necro. This draft is very versatile with Viper and Necro can play any lane. This draft is also very strong in laning phase and mid game. Whoever win sniper's lane and win laning phase in general is probably going to win. So this makes it a little bit less of a local optimal. (In contrast to having some safe lane heroes that require a lot of farm).

3) "Deviated from current playstyle in a few areas, such as giving support heroes (which usually do not take priority for resources) lots of early experience and gold." Support heroes are strong early game and doesn't require a lot items to be useful in combat. Especially with this draft, CM with enough exp (or a blink, or good positioning) can solo kill almost any hero. So it's not too surprising if CM takes some farm early game, especially when Viper and Necro are naturally strong and doesn't need too much of farm (they still do, but not as much as sniper). This observation is quite interesting, but maybe not something completely new as it might sound like.

4) "Pushed the transitions from early- to mid-game faster than its opponents. It did this by: (1) setting up successful ganks (when players move around the map to ambush an enemy hero — see animation) when players overextended in their lane, and (2) by grouping up to take towers before the opponents could organize a counterplay." I'm a little bit skeptical of this observation. I think with this draft, whoever wins the laning phase will be able to take next objectives much faster. And winning the laning phase is really 1v1 skill since both Lich and CM are not really roaming heroes. If you just look at their winning games and draw conclusion, it will be biased.

5) This draft is also very low mobility. All 5 heroes Sniper, Lich, CM, Necro, Viper share the weakness of small movement speed (except for maybe Lich). Also, none of these heroes can go at Sniper in mid/late game, so if you have better positioning + reaction time, you'll probably win.

Overall, I think this is a great step and great achievement (with some caveats I noted above). As far as next steps, I would love to see if they can try meta-learned agent where they don't have to train from scratch for a new draft. I would love to see they learn item building, courier usage instead of using scripts. I would also love to see they learn drafting (can be simply phrased as a supervised problem). I'm pretty excited about this project, hopefully they release a white paper with some more details so we can try to replicate.

</comment><comment><USER43> This feels like Ender's Game without Ender.

</comment><comment><USER8> Quite a good read! Impressive results, it seems. Still think much more useful to research learning complex things without absurd compute/sample inefficiency/various hacks eg reward shapring (which, lets be honest, this seems to have a lot of), but still interesting results.

</comment><comment><USER44> What are other killer applications of deep learning rather than CV and gameplaying?

</comment><comment><USER45> What's the estimated cost of a project like this?

<comment><USER34> Without considering salaries you can look up the costs for their compute: [https://cloud.google.com/compute/pricing](https://cloud.google.com/compute/pricing) 128,000 CPUs and 256 GPUs I think they mention training for 2 months in the video

<comment><USER46> another commenter near the top (with some experience posted), estimating ~$2500/hour. 60grand a day to use hundreds of thousands of cores to learn to play computer games, roughly 1.8mill for 30 days of active learning. It's cool, does seem a little bit greedy, that is still expensive as buck yo. you need a big ol bank to fund you. dropping 60k/day on compute doesnt fly for many smaller companies if you ask me.

<comment><USER26> As our understanding of "AI" gets better, it'll cost less and less and will start to be affordable for smaller players; but the initial R&D always cost a lot.

</comment></comment></comment></comment><comment><USER47> The live 5v5 match at TI should be great to watch.

</comment><comment><USER48> >OpenAI Five plays 180 years worth of games against itself every day.

Human players do it in a fraction of their much smaller lifespans.

<comment><USER37> On the other hand, humans couldn't play 180 years even if they wanted to.

</comment></comment><comment><USER49> pref list item view</comment>


List of Layoffs and Job Cuts by Industry and Employers [flash] - <AUTHOR> http://online.wsj.com/public/resources/documents/LAYOFFS0903.html

<comment><USER2> I could not understand why they placed yahoo under 'Telcom' industry. In my opinion 'Technology' is the most closely fitting category.

<comment><USER3> Other additions to the errata:

* Pfizer listed twice in Pharma

* "Macy" should be "Macy's"</comment></comment>


Pronouns Are Rohypnol - <AUTHOR> https://fairplayforwomen.com/pronouns/ <comment><USER2>
        You pay less heed to what you want to say,
        and more to what is expected of you.

Ah yes, the unbearable burden of being polite to other humans.

</comment><comment><USER3> Holy shit. This is weapons-grade WTF.</comment>


Belief in Free Will Predicts Better Job Performance (2010) - <AUTHOR> http://journals.sagepub.com/doi/abs/10.1177/1948550609351600 <comment><USER2> Two cynical explanations spring to mind.

1) Those genetically programmed to believe in free will might also genetically programmed to be more optimistic and work harder.

2) People who believe in free will have not yet run into their limitations. This would imply that they have not yet run into systemic situations where their energy or mental capacities have been overtasked, meaning they are healthy people who can handle things. This experience, of course, makes them optimistic about their future. They still believe they can accomplish anything they set their mind to.

Conversely, it might be that people who do not believe in free will think that way because they have experienced running into the limitations of their own brain and willpower. That is immensely discouraging, which of course dampens optimism. And if they have already hit that brick wall, then they are not so very healthy and in fact are reasonable to be less optimistic about their future and likely to not perform as well as their healthier colleagues.</comment>


Avoid distractions - Paul Graham - <AUTHOR> http://behindtheclock.timmyontime.com/post/83849801/10-avoid-distractions-paul-graham

<comment><USER2> It's a cliche but I think sometimes you just have to fall flat on your face to learn something. At the time we did not have the experience to know Graham was right. We acted as if he was wrong and we know the rest of the story. The good news is that we learned from it and that we'll try to never do this mistake again. It's hard to keep the focus and to not change your mind because almost everyone are in agreement with sentences like : "Well... you have no choice to do consulting. you have to live!".</comment>


Firefox's Fight for the Future of the Web - <AUTHOR> https://www.theguardian.com/technology/2019/nov/17/firefox-mozilla-fights-back-against-google-chrome-dominance-privacy-fears <comment><USER3> The article once more reiterates the fact that Apple doesn't allow other browser engines. You cannot even fight, there is no future ;-) on iOS.

<comment><USER4> How is it technically enforced though, I am curious. I mean, if I wrote an application that downloaded text files and rendered the text to the screen, I am sure that would be possible. If I wanted to add images to draw next to the text I am sure it is feasible. So how can one _technically_ prohibit doing that? Implementation-wise, how is a web browser really that different from e.g. a video game?

Or is it only policy-enforced? Reviewers see something in an app that resembles a "browser" too much and take you down?

<comment><USER5> One cannot have writeable executable memory on iOS (apple can, we cannot).

Thus one cannot make a JIT compiler for js and thus pages are slow.

Game engines such as Unity use il2cpp to go from the C# stuff into C++ that can be statically compiled as running the C# as bytecode would be too slow without a jitter.

<comment><USER4> Ah, so it is all about the javascript engine? Ok I can see how that might put up some major technical barriers, but still it should be technically feasible to have the firefox rendering engine make use of the iOS javascript engine, no? Maybe it's not worth the effort of course. I am just trying to get a feel for what the barriers are.

<comment><USER6> In addition to what the other replies said, feel free to eyeball the code required to embed SpiderMonkey in Firefox at [https://github.com/mozilla/gecko- dev/tree/master/dom/binding...](https://github.com/mozilla/gecko- dev/tree/master/dom/bindings). It's rather large and complex.

<comment><USER7> This is not at all the code to embed SpiderMonkey in Firefox, those are the bindings from DOM APIs to the implementation of those APIs in Firefox. Above that, calling into this layer, is another layer that transforms JS calls into C++ calls (roughly).

The interface between SpiderMonkey and the rest of Firefox is here: [https://searchfox.org/mozilla- central/source/js/src/jsapi.h](https://searchfox.org/mozilla- central/source/js/src/jsapi.h).

</comment></comment></comment></comment></comment></comment><comment><USER8> I hope Firefox succeeds, as I like the idea of not concentrating yet more power in few hands, but, on OpenBSD, I use Iridium (Chromium derivative), so I see these benefits, and am wondering what Firefox would add for me, privacy- and security-wise: 1) Iridium doesn't send info to Google like Chrome does (or that is the idea);

2) It is easier (last I checked) than with Firefox to leave some config tabs open so I can quickly turn on/off javascript, images, and/or cookies for those sites where I need them (by exception list or temporary exception, and easy to manage it without a mouse once the tab is open; separately, I do change the search engine also, and create search keywords), and

3) OpenBSD adds pledge/unveil system calls from the browser, to prevent it from reading/writing files where it should not (plus I browse under a different user than I do other things with high confidence there will not be a privilege escalation; also they say the pledge/unveil support is easier to implement in Chrome/Iridium than in Firefox because of the cleaner separations of concerns in the code organization (my wording; though they have probably also put pledge/unveil in FF also for all I know),

4) Maybe the security of Chrome/Iridium benefits from Google's bug bounties, more than what Firefox has done (ie, the security track record of each, frequency of major holes over, say, the last 1-3 years). I don't really know but I'm glad they try.

Given those things, what are the remaining biggest reasons I might prefer Firefox? (I am aware of OBSD removing DNS-over-HTTP from Firefox, indicating that is a choice that should be made by the user at the system level instead).

<comment><USER9> You're still on Blink. Contributing to that monoculture is no win.

<comment><USER8> I think this is among the best reasons I've heard in this discussion to avoid Chrome. The other reasons to not use firefox (at least for me on OBSD for now, given that pledge/unveil support for FF are still in progress, and no way I know to use exception lists for images/cookies/javascript without an external plugin), _might_ still outweigh it.

</comment></comment></comment><comment><USER10> I see a problem, though I have no alternative to offer, with the current model of organizations.

It seems you are either for-profit, and then you have no ethics and do everything you can to centralize the world around you with no concern for users or their benefits. Or you're a not-for-profit foundation or the Internet Archive, where you do good things but are destined to be "poor".

Are there are any "shades" between those two organization models?

<comment><USER11> > Or you're a not-for-profit foundation or the Internet Archive, where you do > good things but are destined to be "poor".

Not necessarily. Wikipedia is actually pretty damn rich with a large war chest.[1]

[1] [https://en.wikipedia.org/wiki/Wikipedia:Fundraising_statisti...](https://en.wikipedia.org/wiki/Wikipedia:Fundraising_statistics)

<comment><USER12> Wikipedia is the single greatest website on the Internet. That's what it takes for donations to _keep you afloat_. $100MM revenue? Google makes that in a _day_.

That aside, it's not entirely clear that Wikipedia can live off donations forever.[0]

[0] [https://en.wikipedia.org/wiki/User:Guy_Macon/Wikipedia_has_C...](https://en.wikipedia.org/wiki/User:Guy_Macon/Wikipedia_has_Cancer)

<comment><USER13> The article you link to points out that only a small part of what Wikipedia spends is directly used to keep the website up. Spending in 2008 was less than 5% of today, and the website was just fine.

</comment></comment></comment></comment><comment><USER14> Firefox's Fight for the Future of the Web, severely cramped by their complete economic dependency on Google and their inability to allocate their funds intelligently

<comment><USER15> What do you suggest Mozilla do instead?

Mozilla don't just fund the development of their own products they also fund research [1] and other projects [2].

[1] [https://research.mozilla.org/research- grants/](https://research.mozilla.org/research-grants/) [2] [https://www.mozilla.org/en-US/grants/](https://www.mozilla.org/en-US/grants/)

In a perfect world Mozilla would be funded by donations. I donate to Mozilla but it's a pittance compared to what they get from Google.

<comment><USER16> > What do you suggest Mozilla do instead?

Mozilla should sell two products:

1) Storage a la iCloud

2) Payment processing a la Paypal

And for marketing purposes they should get into discovery of free/open web services, a la old school Yahoo.

As a web site builder, I don't want to have to manage credit cards. As a user, I don't want to have to trust random web sites with my credit card info. I also don't want to be redirected to Paypal, I just want a secure wallet that can be used on web sites with a drop in <paymentframe recipient="firstname.lastname@example.com" usd="8999" description="BonsaiThing Pro 1 year subscription" /> or similar.

As a web user, I want to be able to store my photos, downloads, music, documents, etc conveniently in a little cloud-synced folder. I want to be able to quickly give fine-grained access to different web apps to different parts of that space. Photo app wants to access my photos? Great. Github wants to access my repos? Fine. Photo app wants to access my repos? No.

And the discovery thing... There's a ton of free software out there. Mozilla basically has shut the door behind it. "Thanks for the install. Good luck finding other Free tools to use with it." They should be building a directory of other free software that can be used with Firefox. I should be able to use my Mozilla account to post reviews, to discuss new apps that are voted up, etc. That will allow enthusiasts to start engaging socially with the brand in a way that Mozilla (not Twitter or Apple or Facebook) can control the identities.

From there maybe there is some social identity service, but if it's just a way to engage the community—great. Like Hacker News is to YCombinator, Mozilla should provide a place for us to discuss and share web services.

If they want to get into search, that's great. Write a new shitty open source search engine that any web site can federate with. Use Google for now, but use that money to dig us out of the hole Google put us in.

<comment><USER17> Could you explain a bit more? Why are you confident either would be profitable?

1) would be competing with google drive, onedrive and icloud, which are all funded by very big pockets and have other revenue sources. Furthermore, even dropbox has trouble competing with this.

2) Again competition by paypal, apple pay, google pay, ... . Also, banking business is quite far removed from what they are doing and hard to do while being a non-profit.

<comment><USER16> In both cases they'd have to bet on growing the Free Software pie. It would be the beginning of transitioning the company to trying to support the Open Web as an institution, supporting open source webservice developers on an equal tier with open source browser users.

No idea if that pie can realistically grown. But unlike their current strategy, it would be in line with their mission statement.

</comment></comment></comment></comment></comment><comment><USER18> I'd like to point out that it's still not possible to support the Firefox browser with donations directly, in a crowdsourcing fashion. Donations to Mozilla Foundation don't go to Firefox which is supported only by search/sponsorship payouts from large corporations.

<comment><USER19> Part of the problem is that the web has become so complicated that making a new web browser requires such resources.

Imagine a world where two or three people working for a couple of months could come up with a new browser?

</comment></comment><comment><USER20> Mozilla is right to fight for a brighter future of the web!

First Internet was started as academic network with little to no advertisements. Then came the adtech model, personal data are sold for profit. News Papers does not fully get funded and totally free when they are founded by ads.

Thus we should fight to keep an open democratic internet where quality journalism gets paid by end users not ads.

I thinks its important with an free open Internet for our democracy to work.

We have to somehow get away from adtech and attentiontech towards a user funded internet. Attentiontech is were personal attention span is what corporations fight to keep. We should have content which is good for end users.

<comment><USER21> I don't understand what subscriptions vs adverts has to do with being more or less democratic.

I also don't understand how subscriptions are compatible with privacy.

There is currently no widely used facility for making anonymous electronic payments. If there was, then governments (including democratic ones) would crack down on it hard.

Journalism has always been funded through advertising.

</comment></comment><comment><USER22> Mozilla really has a big challenge. It is hard to compete with such powerful companies, creating a sustainable business with their mission without succumbing to ads or stopping to protect user privacy. It looks like an unfair game.

I like the Brave business model. I wish to have the same with Firefox.

<comment><USER23> Too bad they built Brave on Chromium instead of Firefox. Which of course given that the company is run by Mozilla co-founder Brendan Eich is a bit of a shame.

Firefox is showing that they are more than technically competent to keep up with Chromium and deliver great performance and functionality. With the work they are doing rewriting Firefox component by component in Rust, Google will have their work cut out keeping up in terms of performance using their C++ implementation. Competition is good.

<comment><USER24> > With the work they are doing rewriting Firefox component by component in > Rust, Google will have their work cut out keeping up in terms of performance > using their C++ implementation.

I would expect Blink's C++ implementation to perform comparably; wouldn't the main benefits would be security-related?

<comment><USER25> Mozilla tried to parallelize their CSS engine multiple times in C++, and failed. Rust's guarantees made it possible to do so. There was a talk about it at a Rust conference called "The Story of Stylo"; I'm on my phone or I'd link you.

<comment><USER26> Following my curiosity, I found:

The Story of Stylo: Replacing Firefox's CSS engine with Rust

[https://www.youtube.com/watch?v=Y6SSTRr2mFU](https://www.youtube.com/watch?v=Y6SSTRr2mFU)

Woo, 9M lines of C/C++ to 85K lines of Rust..

Author's slides: [https://www.joshmatthews.net/rbr17/](https://www.joshmatthews.net/rbr17/)

<comment><USER27> No, for the style system is 160K lines of C++ down to 85K lines of Rust. Still a great win!

<comment><USER26> Those numbers sound much more realistic, ~53% reduction in code size - <USER2> you're right, it's a great testament to Rust's conciseness!

</comment></comment></comment></comment></comment></comment></comment><comment><USER28> These articles always seem to elide over the WHATWG/W3C fight. Firefox and other browser vendors chose a living, implementable HTML spec over a consensus-based standards body (with its own deep problems), and now we lament the lack of alternatives. If you let browsers create the standards and change them unchecked, the natural conclusion is to own the entire stack for yourself.

</comment><comment><USER29> It would seem that the Brave browser and Firefox share similar goals on privacy. It's hard to navigate the differences in their perspectives on this, why would one choose one of these browsers over the other if concerned about online tracking?

<comment><USER30> Brave stops ads from tracking you but the browser itself records your browsing behavior and allows ads to use that anonymized data to target ads to you. Their marketing always mentions the former and never mentions the latter. The goal of Brave is to build a model for web advertising that pays the user but gives Brave the lion's share; this essentially replaces the search engines and social networks as the nexus of web advertising with a browser.

<comment><USER31> the data stays in your computer though, doesnt travel to their servers. that's very significant

I 'm not sure Brave's model will work, but at least they are giving websites more options , which is more important imho than fighting for who will have the fastest rendering engine.

</comment></comment></comment><comment><USER32> It needs to fight for the present of the web, because it is getting worst.

</comment><comment><USER33> Viva la Firefox :)

</comment><comment><USER34> Not only does Firefox have to worry about Chrome and Safari, now there's Brave on Mac/Windows/Linux/iOS/Android.

Brave is co-founded by Brendan Eich, who co-founded Mozilla. Brave is doing all the things Firefox should have done: create a new ecosystem for a secure and private web, while Mozilla is still taking millions from Google in exchange for making Google the default search engine.

Although the invasive ads are blocked by default, users can opt-in to privacy preserving ads and get paid in Basic Attention Token, which can be used to support the over 300,000 and growing registered content creators.

On the desktop, Brave has Tor, IPFS and WebTorrent built-in—no additional plugins needed.

Yes, it's based on Chromium, which feeds into the monoculture narrative. But there's the irony of the guy who started Firefox using Chrome's engine to attempt to kill Google's surveillance capitalism system.

</comment><comment><USER35> > Macs remain a fairly open system, although the increasing focus on the Mac > app store, which Firefox isn't on, bodes ill for the browser's future.

Why not put FF in App Store? I'd even pay for clean, no "integrations", version.

<comment><USER36> I suspect that it's because Firefox makes extensive use of "private" Apple APIs to be able to efficiently render on the platform, and Apple doesn't allow such uses for apps distributed through the app store. Similar issues apply to electron apps: [https://news.ycombinator.com/item?id=21437255](https://news.ycombinator.com/item?id=21437255)

</comment></comment><comment> j-pb Never forget that mozilla puts meta bulls __* before solving problems.

Their "spec hackers" decided to kill WebSQL, because of they feared that the available implementation was so HIGH quality that there wouldn't be any implementation diversity.

Instead they gave us the indexedDB garbage dump.

Firefox and Mozilla can go straight to oblivion for all I care.

<comment><USER37> No, because the spec did not actually specify enough to allow implementation diversity or even just the available implementation be updated to a new version that breaks backwards compatibility, and apparently none of the proposers cared enough about the spec to do the work of documenting the intended behavior.

WebSQL implementations later proved to be insecure by not limiting the kind of queries allowed, and strictly speaking any fix of that would have broken the proposed specification.

<comment> j-pb Just use the SQLite implementation and documentation everywhere. SQLite is arguably the most well tested piece of software on the planet.

It would have been the only piece of every browser that 'just works'.

But hey having a "spec" on top to all the available documentation is super necessary so that some bloke on twitter can put it into their bio.

Even HTML doesn't have specs anymore, because they don't matter. They are a means to get all browsers to be compatible not the goal.

And Safari and Chrome still ship with WebSQL, so I don't think that "security issue" is actually there.

<comment><USER37> I'm not sure where you get the idea that HTML does not have a specification? It has a very extensive one.

<comment> j-pb Its not a specification though, its a "living standard" a.k.a. we document the stuff we build as we go.

<comment><USER37> A living standard is a form of specification. You can use it to implement a tool consuming HTML the same way the browsers do from scratch, and the browsers use the process to align their independent implementations.

<comment> j-pb Its not a specification though, because your implementation can never conform to it. You can't say "I have a html 5.x" compliant browser anymore because there is no fixed specification for it. You can only have something that is "currently compatible with the other browsers". Same thing you would have gotten with SQLite.

</comment></comment></comment></comment></comment></comment></comment><comment><USER38> On a free and open platform like OpenBSD, Firefox isn't even really an option due to performance issues. More than anything else, being forced to use Chromium for a decent browsing experience turned me away from using OpenBSD on a daily driver laptop.

<comment><USER39> How's that? Firefox is way better nowadays than it was a few years ago. I have been using as my main work browser for some time and I don't face any performance issues with it.

<comment><USER38> On a BSD? It's great for me in Windows or Linux, but it's really choppy scrolling or watching videos in OpenBSD. There was a post on the mailing list somewhere that blamed excessive mallocs. This was with version 69, so not some ancient version either.

<comment><USER40> I've been running Firefox on OpenBSD on a Thinkpad X260, for about a year, and it's been working great, including videos and scrolling.

</comment></comment></comment></comment><comment><USER41> Firefox is unfortunately becoming unrelevant. They have pretty much less than 5% global usage and it's not exactly increasing.

Mozilla needs to sharpen up in my view. I use Brave because I like Brendan Eich and I am not exactly a fan of Mozilla as an org. There is no way to fund Firefox development as a user and it seems like they have focused more on side products / services lately.

<comment><USER42> Firefox works great. I have to use chrome af work, so use both. Firefox lacks nothing.

</comment></comment><comment><USER43> The Guardian website is horrible when it comes to tracking. They don't tend to mention that in their privacy-focused articles.

Here's a tweet that sums it up:

'The irony is real... @Guardian headline, "The Guardian view on privacy online: a human right", while allowing trackers to spy on their readers.'

[https://twitter.com/Ghostery/status/989543132349034499](https://twitter.com/Ghostery/status/989543132349034499)

<comment><USER44> Isn't Ghostery the tracker-blocker that sold its users' data?

<comment><USER43> It is. I don't use them and recommend uBlock Origin to anyone who asks. But they are correct on this.

<comment><USER45> The Meta-irony is real... @Ghostery tweet about Guardian "allowing trackers to spy on their readers" while themselves selling their user's data.

<comment><USER43> That's why I find uBlock Origin so refreshing. The entire ad-blocking universe is so tainted with business interests it's hard to trust any of them. The uBlock Origin developer is genuinely principled from what I've seen.

<comment><USER46> Who should be getting a MacArthur grant or equivalent. I mean, it's literally gorhill or nothing, it's terrifying. Someone could walk up to him with $10M dollars and say 'Here. Stop making your thing and you can have this money." It would be a fraction of the revenue he's blocking and who could turn it down? Wladimir Palant suddenly became a big fan of whitelisting when he realized how much Google would pay for it. Everyone has a price.

<comment><USER43> Agree. Although I don't really understand gorhill's refusal to take donations for his work. I hope it's just that he doesn't need it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER47> Is there even a fight left?

Chrome was the newer, faster, better working option when the average user was acclimating to the web as a constant part of their lives. To a degree, Chrome became a status symbol - knowing to ditch IE and download chrome was a mark that you were minimally web and computer savvy.

For the average person to switch away from Chrome, FF would need to have an overwhelming advantage - and I'm not sure privacy is the place where the average user will register that advantage. With 100 other companies stealing and selling their data at any given time, why should they worry about their web browser?

<comment><USER48> For a long time, it was installing Firefox over IE that was regarded as the proof of being "computer savvy". I'll even admit that back in the days, I took great pride in introducing it to my whole family when most of them didn't even know there could be an alternative to IE. And back then, it was Firefox that was the fastest, safest, coolest kid in town.

Up until recently, I was sharing your pessimism over the crushing success of Chrome and how Firefox would never get back in the heart of people. This is why it amazed me when people – non-techies – around me not only did notice but were more than eager to know why I had stopped using Chrome. Small talk was enough, in many cases, to convert them back into Firefox, which isn't is what I wanted to as I never specifically advocate for personal software solutions.

It appears regular people are more aware of these issues than we, in the tech field, might think. Maybe it's because I live in Europe and we're being constantly bombarded with cookie compliance notices – which are obvious dark patterns 90% of the time – that acts as a systematic reminder that almost no website we ever visit "respect your privacy". I'll admit it's nothing more than empirical, biased observation, but maybe something's happening here, I believe we should at least try.

</comment></comment><comment><USER49> I think people are sometimes forgetting that Firefox is an ad-supported product. Firefox monetizes by sending people to Google. In some sense, Chrome is less directly funded by ads than Firefox, because Google (like Microsoft and Apple) has a reason to fund the development of a web browser even if it wasn't directly leading to ad revenue. On the other hand, Google is only paying for Firefox to the extent that Firefox users bring ad revenue to Google.

</comment><comment><USER50> Perhaps the fight should start with:

\- Not sending data to Google

\- Finding a different business model that does not almost entirely rely on Google

\- Not collecting user data

Source: [https://firefoxvschrome.com](https://firefoxvschrome.com)

<comment><USER51> Wow. This is so misleading that it borders on outright lying. What's your agenda?

<comment><USER50> Truth? I can understand 'unpopular', but 'misleading' without probably even looking at it?

1) This can be easilly reproduced.

[https://twitter.com/jonathansampson/status/11658588961766604...](https://twitter.com/jonathansampson/status/1165858896176660480)

2) Over 95% of Mozilla revenue comes from Google for using Google as default search engine [https://assets.mozilla.net/annualreport/2017/mozilla- fdn-201...](https://assets.mozilla.net/annualreport/2017/mozilla-fdn-2017-fs- short-form-final-0927.pdf)

3) [https://www.mozilla.org/en-US/privacy/firefox/#health- report](https://www.mozilla.org/en-US/privacy/firefox/#health-report) \- see first item

<comment><USER51> Your link implies that Chrome is more respecting of privacy than Firefox. Can you show me a single reputable tech journalist or online privacy expert that agrees with this premise?

No, you can't.

Your bulleted points are widely known. Could Firefox be even more private? Of course. Would it be better if it didn't rely on Google for the vast majority of it's revenue? Obviously! Heck, even Mozilla itself freely admits that.

Is Firefox worse than Chrome at respecting your privacy as your link implies? That's plainly ridiculous. Even Google itself has never made such a claim.

<comment><USER50> I understand how it may imply that, but my intention was to simply point to facts as often times we believe what we are led to believe vs seeing the facts with our own eyes.

To me a business model entirely dependent upon one entity whose policies they are supposed to fight against exposes a fundamental flaw - and that is a fact. Mozilla can make a number of choices to break the spell and they decide not to. For something as important as this, do or do not, there is no try.

</comment></comment></comment></comment></comment><comment><USER52> One new model Firefox can adopt (try) is being made possible by cryptocurrencies. Mozilla can follow Brave's path and "pay" clients in cryptocurrency for viewing ads (although I am not sure this is in line with Mozilla's interests or goals or even ethics).

This might be able to create a new incentive layer for the web. Most users really don't care about their browser (you'd be surprised how many downloaded Chrome because it was just "simpler" than Explorer and stuck with it for no prominent reason). Introducing an incentive to use Firefox might tilt the choice (why not use a browser that pays me a few bucks - which I will put back in the web).

I'll stop at this.</comment>