Biology Is Eating the World - <AUTHOR> https://a16z.com/2019/10/28/biology-eating-world-a16z-manifesto/ <comment><USER4> Or: Biology is really hard, and returns to investors in the space have been pretty tame, and taken longer than promised (expected). See commentary by Peter Thiel in Zero to One for more on this topic. In response to this reality, one tactic is to create a narrative that sells the vision of biotech as a tech or engineering discipline to an investor audience that is naive about biology and uber bullish on tech eg, this article). "Biology? It's just engineering, we can engineer things, we'll just engineer biology (please invest in us as if we're tech]". Never mind that engineering is a tradition built on minimizing variation, while biology is a science founded on understanding a built-in mechanism for generating variation. "Life finds a way". Indeed. I've been on numerous synbio projects and one thing is certain, evolution is always driving against the engineered design. And by driving against, I mean undoing. Entropy might slowly undue engineering, but mutation and selection? It's an entropic accelerant for engineered outcomes. Also, engineering is about "parts" and synbio is constantly dreaming of building things by putting parts (promotors, genes, etc) together from a catalogue. In reality, biology is interactions, where the expression of almost everything is dependent on the context of all the other parts. So outcomes aren't simply "the sum of the parts". When they are it's for a minority of cases. Finally, as you scale a process (say from a test tube to a 1,000,000L industrial sized fermentation tank, biology almost never cooperates.

Biotech's dirty secret is that biology is Not engineering (it is still a discovery science)...but the music is still playing folks, dance on! (Sorry, it's early, I'm still pre caffeinated, and this topic always rankles me).

<comment><USER5> This seems a fairly narrow view. In my field (oncology), there are many drugs saving lives that are the result of what is engineering in biological systems. Certain immunomodulating antibodies are the most recent example, one of which is earning it's pharma company many billions of dollars a year. Another proven class of drug is conjugating chemotherapy to the back end of an antibody. These drugs have undergone incremental improvement, with the latest versions showing greatly enhanced efficacy. This to me meets the criteria for engineering. Then there are CAR T cells. Researchers in this field actively describe their work as 'immuno-engineering'.

Synbio has been disappointing admittedly, but then engineering an organism is orders of magnitude more difficult than any engineering problem in existence. It is bottlenecked by the lack of a truly useful DNA synthesis platform. One day, when you can dial up a genome and have it into a cell in < 24 hours, and do it in a high throughput fashion, things will be very different. This will happen in under 10 years I think.

<comment><USER6> The top selling check-point inhibitors ie "immunotherapy", Keytruda and Opdivo, were not found by anything remotely resembling 'engineering'. It was a traditional lab science and drug discovery. If anything those two drugs have expanded their lead commercially, with no other PD1 drug approaching it. None of the top 10 selling Abs are drug-conjugated. CAR-T is struggling mightily in the clinic - it is the opposite of "scalable" due to the personalized nature, and has a terrible side-effect profile.

TCRs are far from 'engineered' in any real sense, highly dependent on patient MHC and the specific neo-antigen, with no one able to rationally design from scratch a TCR.

Synbio's challenge is not necessarily engineering a genome faster. It's that no one knows what to make, per se. What should we print? We don't know how to design proteins or enzymes. Designing assays to measure a good vs bad design is often the rate-limiting step.

<comment><USER5> I see you have a specific idea about what 'true bioengineering' should look like. But you have just made this up, based on your own ideas, which I simply reject.

Your first paragraph glosses over all the work that goes into making a useful antibody candidate, a process of iterative modification to meet certain specifications. I don't see a problem calling this engineering. Your point about market penetration as a judge of 'engineeringness' is also silly. There are antibody drug conjugates that serve a specific patient population very well, the fact they aren't in your 'top 10' is irrelevant.

So what if CAR-T cells are struggling in the clinic? It is an entirely new treatment modality. There are people walking around who would be dead without it. You deride it because it isn't an instant global panacea?

Your point about Synbio is also wrong. Leaders in the field just wrote a position piece in Science and genome writing was listed as one of the major challenges. You're trying to tell me that George Church 'doesn't know what to build?' Pure bunk.

<comment><USER6> Dear Gatsky, My point is not that there is no engineering or no biotech in the world - to the contrary. There is antibody engineering, biomedical engineering, and many other types of engineering. I am a computational biologist. I actually worked at the George Church Lab, playing with the Polonator (an early sequencer prototype). I started a computational biology company (Seven Bridges Genomics), and then spun a biotech from it. So I truly believe in engineering.

Try to think of my argument as trying to add higher resolution to the debate, instead of being against/for your argument.

My main argument is against over-crediting what the _software and algorithmic component_ of this is, precisely because I think it is too important. Another wider argument is are humans rationally designing anything / do we understand the wider design principles.

So let's go back to immunotherapy. Neither the target PD1/PDL1, nor the therapies themselves were enabled in particular by "in-silico" methods. Nivolumab and Pembrolizumab were not designed with much algorithmic or software input, but discovered through good old experiments / lab science/engineering. There is no human designer or algorithm in the world where if I give a target, they can rationally design an antibody. What we do is brute force + affinity selection / "directed evolution" to force nature come up with an answer still. We have no clue how to design it like one would design a bridge.

I think CAR-T is amazing technology - my point there remains: the therapies so far did not at use in-silico design of the Chimeric Antigen Receptor so far (the CAR part).. The low success in the clinic is precisely due to our inability to actually design these things properly. Similarly, neoantigen selection remains a big challenge due to lack of rational principles. A CAR is not too different from a TCR or Antibody, which we don't know how to rationally design.

I believe that genome writing is a major challenge. Again you are widely missing my point: Suppose you had a very cheap, abundant, perfect genome writer. What would we write? George, who was an advisor to my first company and kicked off our Hackathon, would be the first to admit that protein design is a major challenge.

Venter wrote an entire organism - and it was mycoplasma verbatim.

We are only able to copy nature or cajole it at the moment, because fundamentally we don't know how to design biology. It is because we don't really understand it very well, which makes it such an exciting time to be in the field.

None of this means these won't be done, or that teams around the world are not trying to do it this moment. There are amazing labs and companies working on these. What I am saying is more specific: Immunotherapy, CAR-T, or genome writing, in its first generation, as it exists, cannot be recruited as a showcase for computationally led, "in-silico" driven advances in biology.

I do believe this will change shortly.

</comment></comment></comment></comment></comment><comment><USER7> Imagine a solar-powered, self-replicating, self-repairing machine that can do carbon capture, clean the air, and improve biodiversity in one go and it's ridiculously cheap and easy to operate and maintain.

Yep a tree.

It always amazes me that people get excited about a new car, new phone or a new software release from a technical angle ( not what you can do with it - that's fine ) - but also don't see the amazing machines called life all around us as interesting at all!

You are always the most complex type of machine in the room - by many orders of magnitude.

Yep, the risks are higher in biotech, yep the rewards are perhaps not as good as a Google etc, and it's way harder. On the other hand it's more interesting and in the end these companies are creating new treatments for cancer or heart failure etc.

Disclosure: I was part of a biotech 'unicorn'.

In terms of whether we are at the cusp of a biotech revolution - I'd say it really kicked off 20-30 years ago and is already here - the new wave of immuno-oncology drugs transforming cancer treatment are a good example.

I think the role of computers in the future is a little overhyped - it's necessary, but not the fundamental driver - the drivers are the new experimental technologies generating the data at unprecedented scale.

<comment><USER8> I think the tree example is silly, trees aren't good tech because they're not very controllable and often very difficult to modify. And like many biological things, they're not really optimized for our convenience.

Imagine a disease/bug-prone, space inefficient, waste dropping, telemetry- less, allergy-inducing machine that requires continuous water deliveries and a multi-year build process. Yep a tree.

I won't try to tell you that you can't find trees and other biological constructs more interesting, and they certainly pose harder problems, but I'd think (and hope) that the future isn't overly complicated biotech adapted from even more complicated and wasteful natural systems. Right now we have to deal with heart failure and cancer because our crappy bodies are the best we've got, but I would think that the long-term future belongs to engineered systems that we can control, optimize, and understand.

<comment><USER7> I'm saying it's an amazing _machine_ rather than the perfect machine for a particular task. Ever wondered how it works? It's much more complex that it appears - does the energy capture use quantum phenomena? Do tree's communicate via via fungal network intermediaries?

Do you realize that they grow out of the air - ie all that bulk comes from captured atoms from the air, not stuff pulled in through the roots.

In terms of our crappy bodies - they are incredibly complex machines trillions of cells, each one unbelievably complex - it's astonishing they work at all.

But you are right eventually they fail - and natures answer is to simply reboot ( build a new body from scratch ) - the consciousness you are so keen to protect is simply RAM state that get's blitzed on reboot, while the cycle of life goes on....

We are made from mostly ( 99.85 % ) 11 elements - some gases, carbon, bit of metal

Not saying we shouldn't make stuff - just that people seem to have a blind spot on what we can learn from nature, and _technically_ how amazing it is.

> I would think that the long-term future belongs to engineered systems that > we can control, optimize, and understand.

And if we could understand, optimize and control biology - it would be so much more amazing - cells are nanobots - they can already sense, move, change shape to squeeze through gaps, replicate, signal, repair, kill, and control their environment.

In fact those trillion cells - cooperate to make you - you are a collection of cooperating nanobots. Take a look at some forms of life that take this to an extreme, that live as single cells and then come together to build a much more complex structure - [https://en.wikipedia.org/wiki/Dictyostelium_discoideum](https://en.wikipedia.org/wiki/Dictyostelium_discoideum)

Big Hero 6 nanobots - biology - been there - done that.

<comment><USER8> Agreed that nature has plenty to teach us, where I slightly disagree is that controlling and optimizing biology is the better path to future tech.

Yes, cells are nanobots, but they're nanobots "designed"/evolved by nature with deeply complex goals and incentives often orthogonal to ours. Cells come with a lot of evolutionary baggage and many constraints owing to its extensive optimization.

From my perspective, it's like hijacking a crazy project that doesn't belong to us. It's not clear to me that taming insanely complex cells to serve our goals is better than building traditional engineering up to do the same thing.

I compare this tension to ARM vs x86 for mobile devices. Mobile devices uniquely require extreme power efficiency, and ARM processors are dominant because they satisfy that critical requirement even though they're less capable than other processors. Intel wanted to enter the mobile market and they already own the more capable x86 platform, but its power efficiency is a lot worse. Can Intel retrofit ARM-level power efficiency onto its deeply complex and desktop/server-optimized x86 processors before ARM builds up to x86's level of capability?

Honestly, I don't confidently know the answer and you could be right. But I think it's telling that centuries of medicine and decades of biotech have been a slow grind producing very narrow solutions (eg. invented a chemical cocktail to treat one type of cancer, tweaked a plant to contain more of a certain type of nutrient and be resistant to a handful of common diseases/bugs) while ground-up engineering is seemingly exponential, where today's tiny portable processor is orders of magnitude more advanced than the state of the art only a few decades before.

Yeah, nature and biology has a headstart, but we don't have to spend a thousand years figuring out how to develop an appendix.

<comment><USER7> I'd agree that we can only guess at the future - I'd just saying there is almost a fetishism for man made technology, and a blind spot for nature as it is pervasive.

You say we have made little progress in biology technology - yes and no.

Yes - there is _so much_ more that could be done.

No - you are again ignoring the stuff in plain sight - the vast majority of our food comes from 'engineered' animals or plans - very little from wholly engineered chemical processes.

Breeding is low tech engineering - but it's still engineering - <USER2> productivity of commercial wheat is vastly superior to wild grasses for example.

Or look at the variety of dog breeds - each one developed for a particular purpose - from sheep herding & rabbit hunting to guiding blind people.

Now it's perhaps too easy, and not intellectually completely understood - <USER3> if you are focusing on outcomes - it's bloody effective.

The right virus - a tiny thing much smaller than a single cell - could wipe out a huge proportion of the population - it's happened in the past.

You can imagine a future where Iron Man fights for human survival with rockets, missiles and high tech, but you ignore biology at your peril.

</comment></comment></comment></comment></comment><comment><USER9> Biology has been eating the world for 4 billion years.

MA: "Bio today is where information technology was 50 years ago."

Bio today is still in the pre-transistor era of IT. There is no tool that doubles our capabilities to manipulate molecular processes every 18 months. No, genome sequencing does not count, it is "read only." No, as amazing and as promising as it is, CRISPR does not count. For the present we continue to merely tinker, which is invaluable and necessary to more forward. Maybe once we figure out how to efficiently, reproducibly engineer enzymes, which truly accelerate molecular processes, we can claim that human-directed bio is eating the world. Until then, nature-driven bio is still on top.

</comment><comment><USER10> "People who excel at software design become convinced that they have a unique ability to understand any kind of system at all, from first principles, without prior training, thanks to their superior powers of analysis. Success in the artificially constructed world of software design promotes a dangerous confidence."

[http://idlewords.com/talks/sase_panel.htm](http://idlewords.com/talks/sase_panel.htm)

</comment><comment><USER11> A VC hyping-up its own book & strategy. Biology is certainly not an engineering discipline. This claim that it is reflects how little the authors know about biological systems and our limited understanding of biological diversity. Reads like lame sell-side broker research. I recall the promises of biotech of the mid 80's, the promises of bioinformatics etc etc. Same story, different decade.

<comment><USER12> Is this the hype train? Yes to a large extent. However some people at a16z do know what they are talking about. Ex: Vijay Pande is a partner there and an (adjunct) professor of Bioengineering at Stanford. He and the team around him do have an educated guess how biotech today is different from 20 years ago.

<comment><USER11> I'm quite sure that a16z folks are smart, and perhaps the hyping-up does achieve an intended purpose. What bugs me is the non-stop need to feed narratives which dum-down and embellish reality.

<comment><USER13> Well said.

</comment></comment></comment></comment><comment><USER14> This seems horribly naive and dramatically understates just how difficult drug development is. We simply don't understand enough of the complex interactions that happen in a biological organism, and in the end we have to do very expensive trial and error to determine whether any drug or intervention actually works.

<comment><USER15> Yes to this. At the Very Big Pharma where I work about 20 years ago we took some baby steps toward adopting an engineering approach toward bio-based systems engineering. Systems biology and in silico modeling of disease had long promised to short circuit the protracted process of drug development. And maybe one day that may yet prove true. But after 15 years of building models of disease or therapy based on data gleaned from lab assays and preclinical/ clinical studies, we found that there were still far too many 'degrees of freedom' in the parameter space of interest to convince the biologists that our models could add sufficient real value to their work for our work to continue.

Fortunately, medicinal chemists have fared better in silico, often employing computational techniques to reduce their search space for a compound desired behavior. But I think no one would describe their models of molecular docking / binding as manifestations of engineering or systems biology.

</comment></comment><comment><USER16> One thing about this that scares me is looking at the negative parallels, black mirror style, between computing and biology.

When I hear "iterative" design I think of shitty car infotainment or router software that only works half the time and never is updated/supported... Except its under my skin and I cannot get it out.

When I hear designer molecules + DNA I think of DRM and a lack of "right to repair" . But now its inside your body and the business owns it.. err you...

</comment><comment><USER17> I am very bear-ish on biotech. These are not systems we humans have built from the ground up. Computers _are_ built by humans from the ground up: literally every aspect of a computer is deterministic and documented. And yet even computers can throw up surprises to programmers on a pretty regular basis.

The idea that our understanding of molecular biology is as mature and stable as our understanding of the field effect transistor was in the 1950s is frankly laughable. I predict many many investors getting burnt by biotech, as well as some pretty nasty externalities if regulators buy the hype.

edit: improve sentence structure

</comment><comment><USER18> I think the biology revolution will look less like the computing (1940s-2010s) or transportation (1890s-1970s) revolutions and more like the chemistry revolution (1800s-1950s). It will be less iterating on one process and more years of seemingly stagnant progress while people tinker with the last big thing until the next big thing roars out of the gates. Iteration will be brief and seemingly unimpressive. The only real progress will be, that which was expensive and hard will become cheap, but unlike compute that won't necessarily be the driver of progress.

For instance early genetic testing revealed a huge number of disorders that could be linked to single genes that changed the game for how a certain sub- population has kids and treatment for a handful of disorders. Then it turned out a lot of stuff was multigenic or only very partially genetic and progress has stalled. As genetic testing has gotten cheaper we have learned more, but actual usable insights are rare.

Or take lab grown insulin from 1980s, it was a huge deal, everyone worked on similar technologies and knock ins and for a handful of disorders it was a complete game changer that petered out medically speaking. It saw a weird second life in farming and GMOs for a time that helped improve processes but didn't really move the needle in a big way. Then as it got cheaper, and new more efficient tools emergedm it reexploded as the field of biologicals, which have been great drugs since the mid-2000s. And as the technology gets really cheap we are seeing products like lab meats, Impossible leading the charge there, emerge.

Now we are on CRISPR, RNA-sequencing, CAR-T, and tissue engineering all of which, when they hit will have massive impact, but then slow down for a bit until the next big thing revs up.

This parallels chemistry where the theories of thermodynamics and gas laws emerged, sped everything forward, then petered out. Then organic chemistry emerged using a lot of the ideas developed by the previous field, sped everything forward for a while then slowed down. Then inorganic and solid state chemistry etc. But there was never a 18 month doubling it was more like a 10 year lull followed by 1000x in 5 years, if you were counting for example, the number of compounds developed. You could smooth the curve and pretend it was like compute but it's not. We'll just look back in 20ish years, or even look back today at the 1950s, and say 'wow there is a lot of stuff in our life that was based on biological research where did that come from'. Just like someone in the 1940s would look back and be like 'wow where did all this plastic/metal fab come from'.

<comment><USER7> Good points - but the thing that struck me the most with the comparison to chemistry was how many of those new wonder materials turned out to be more dangerous than we originally thought.

The risks with poorly conceived GMO's are _so much_ higher... but fortunately the technology to do it has been out of the reach of all but a few large companies or institutes who have by and large been very careful.

But now the technology is becoming accessible even to individual enthusiasts.....

It's like nuclear technology becoming in reach of the ordinary citizen.

</comment></comment><comment><USER19> I've been wondering how long it would be until a16z said something along these lines. I agree completely and am blown away by the progress we have made on informational medicines in the past decade. I would highly recommend to you, if you're a tech-focused person, to get into the field now. I feel like the internet era has matured significantly to the point where the frontier aspect of it has been tamed. Now it's time to move into biology. Look for foundational companies that power the biological information revolution.

<comment><USER20> I wanted to do this for years now. It´s clear to me, that biotech will become a complete game changer. But what can you do, if you know only the computer science part? It seems like you can contribute only peanuts, if you don´t know one of the natural sciences.

<comment><USER19> We hire data scientists constantly. We also hire along the full-stack because we make all our software in house. There is tons of low-hanging fruit right now in biotech for CS problem solvers.

<comment><USER20> I currently live in Switzerland and had no problems getting several job offers for consulting, traditional software engineering companies, insurance companies, Fintech companies and so on.

I also applied to some companies that work in biotech related ares, zero response (full-stack job offers). Well, I think I send one application and two inquiries, still no response. That was very irritating, as it did not happen before anywhere else. But all of them wrote that they want a bit of a bio background, so I attributed it to that.

<comment><USER19> Eh, the bio requirement is weak but I get it. Without the bio background, best would be to know someone who can refer you to the hiring manager (LinkedIn, etc.) or to be super persistent and asking good questions.

</comment></comment></comment></comment></comment><comment><USER21> Ugh. We've heard all of this before for decades. Yes, progress is being rapidly made on understanding biological processes, but with as many steps back as forward, as we realize there are entirely new _categories_ of things that we didn't even know we don't know.

The hubris on display here is typical of tech VCs, who eventually believe their own hype. If it's hard for humans to comprehend, just rub some machine learning on it... ignore that we're finally realizing that machine learning's limitations are significant, but that we can only discover how wrong they can be on results that humans can double-check.

And the naive application of software engineering buzzwords like "modular" and "iterative" to drug development and biological processes is seriously dangerous. You don't want to move fast and break things when we're talking about human health and genetics.

This article is full of misleading claims and overstatements of reality. It's easy to make things sound great when you entirely ignore the _reality_ of existing and potential technology, but of course I don't expect anything different from these folks.

</comment><comment><USER22> > _The bio companies of the future will take learnings from predecessors in > other spaces: consumer, enterprise, fintech, and beyond._

The horrors have just begun.

</comment><comment><USER23> Let's say you're a tech expert, how do you get involved with the biotech revolution. Is there any resources to learn what is currently available, how you can contribute, etc? I think this field will likely yield some of the most impactful tools and innovations we've ever seen.

<comment><USER24> This is something I have dealt with a few times. There really isn't a good resource to point someone from a math, informatics, physics, etc. to so they can get an understanding of how the field works. People end up recommending books like Alberts or other things that provide lots of pictures and names in a particular, small area of biology but don't give any idea of what the field covers or what thought processes work in it.

The closest thing I have is twenty-ish pages of notes I braindumped for a colleague who had just entered bioinformatics from computer science, but those already assumed lots of conversations and information already in place.

It's made even weirder because biology is three fields inextricably intertwined (genetics, physiology, natural history). For each one you can start at the beginning, but how do you provide some kind of linear path through all three at once?

<comment><USER25> With age and humility has your view of the field tempered with time from "Fuck you, bioinformatics. Eat shit and die."[1]?

I totally get your point, and it maddens me daily but I take the interesting + meaningful work/money tradeoff and enjoy being one of the best coders in a building (much harder in pure tech)

[1] [http://madhadron.com/posts/2012-03-26-a-farewell-to- bioinfor...](http://madhadron.com/posts/2012-03-26-a-farewell-to- bioinformatics.html)

<comment><USER24> Oh boy, that rant. Doubtless the most far reaching and influential thing I have ever written. It gets assigned in bioinformatics classes around the world, which puzzles me in the extreme, and I get emails every couple of months from new readers of it asking my position.

My usual response these days is that if it's raising red flags for them, they should explore what troubles them until they have satisfied themselves rather than taking the word of some random guy on the Internet.

From here inside my head, I think my criticisms are still accurate, nor have I seen any actual refutation of them. Lots of ad hominems. Many people not understanding that terms like "computationally difficult" are precise terms of art, and have nothing to do with intellectual or conceptual difficulty.

With age and humility and, more importantly, absence, my attitude is probably better described as "meh."

</comment></comment></comment></comment><comment><USER26> If anyone is interested in a revolutionary new type of medical records system where you can copy/paste your entire medical records in a safe way, we are working on a system here called Pau ([https://github.com/treenotation/pau](https://github.com/treenotation/pau)).

Imagine if you could just copy/paste your medical records in an email to change doctors. Or participate in a new medical study via a simple copy/paste. Or if you were in an acute care setting and your healthcare providers could instantly call up all your relevant medical history. We are going to enable those sort of things.

</comment><comment><USER27> Shouldn't we (at least in the US) be more concerned with getting health care costs under control and universal? This manifesto is mostly about making money rather than about general human welfare. The issues are not due to technological limitations.

<comment><USER28> I mean, yes, we should do that, but we also need medical advances. Right now, if you get Alzheimer's disease, it doesn't matter how much money you have: you will suffer a long cognitive decline until you are no longer recognizable, at which point you will die. The entire process places an enormous social and financial burden on society. We need to fix that.

</comment></comment><comment><USER29> The world is eating itself

</comment><comment><USER30> If the last time was an indication I fear we might be in for an spate of "X is eating the world" posts again.

</comment><comment><USER31> >We are at the beginning of a new era, where biology has shifted from empirical science to an engineering discipline.

What the hell do they think doctors and other healthcare providers have done for all of history? What do they think surgery is? This is such fluffy hype, I feel insulted.

</comment><comment><USER32> Immune related diseases won't really be solved unless we really understand how the immune system works. Because of the complexity there seem to be little incentive to fix root causes rather than just inhibit the immunes response I.e. patching

</comment><comment><USER33> _> Bio today is where information technology was 50 years ago: on the precipice of touching all of our lives._

Bio has been touching all of our lives for a long time now, from vaccines to food to basic research yielding large advancements in medical understanding.

What we are on the precipice of _may_ be personalized or customized biochemistry, which is something we _desperately_ need if we ever want to attack diseases like cancer, enable radical regenerative intervention, or tackle the effects of aging.

On a side note, I feel that we should put a moratorium on the phrase "X is eating the world". Right now we're using it whenever something needs to be hyped and it's becoming quite cringy.

</comment><comment><USER34> A16Z has only published "Eating the World" articles two other times, to great success:

Mobile is eating the world (2016)

Software is eating the world (2011)

</comment><comment><USER35> Engineering is the opposite of evolution. No?

<comment><USER36> Engineering is evolution.

When a chimp uses a tool, like a long twig, to pull ants out of the ground, it has used basic engineering (tools) to solve a problem. The species advances because of this.

<comment><USER37> I think people here are discussing the notion of sharing proven models rather explicitly rather than only trying at random.

</comment></comment></comment><comment><USER38> Interesting summary of biomedical progress, but the extrapolation at the end is a leap too far.

</comment><comment><USER39> Hype and cliches are eating the world. You heard it here first.

</comment><comment><USER40> For context, simply click all 37 links in this article.

</comment><comment><USER41> Biology _is_ the world.

The single most important aspect of all of this is the _metaphysics_.

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

> Buber's main proposition is that we may address existence in two ways:

> 1\. The attitude of the "I" towards an "It", towards an object that is > separate in itself, which we either use or experience.

> 2\. The attitude of the "I" towards "Thou", in a relationship in which the > other is not separated by discrete bounds.

Biology is Thou.

\- - - -

When Prof. Michael Levin talks about "What Bodies Think About: Bioelectric Computation Outside the Nervous System" (youtube.com) [https://news.ycombinator.com/item?id=18736698](https://news.ycombinator.com/item?id=18736698) he keeps saying, "What if our technology could do this?"

The answer is, our technology already does "this". We are 4By-old _nanotechnology._ You've heard of Grey Goo? It turns out that the oceans are already "Blue" Goo.

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

> Gray goo (also spelled grey goo) is a hypothetical global catastrophic > scenario involving molecular nanotechnology in which out-of-control self- > replicating machines consume all biomass on Earth while building more of > themselves,[1][2] a scenario that has been called ecophagy ("eating the > environment", more literally "eating the habitation").[3] The original idea > assumed machines were designed to have this capability, while > popularizations have assumed that machines might somehow gain this > capability by accident.

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

> Marine viruses, although microscopic and essentially unnoticed by scientists > until recently, are the most abundant and diverse biological entities in the > ocean. Viruses have an estimated abundance of 10^30 in the ocean, or between > [10^6 and 10^11] per millilitre.

> Although marine viruses have only recently been studied extensively, they > are already known to hold critical roles in many ecosystem functions and > cycles.

We keep making discoveries (like the bacteriophages) that show us that we have no real idea what's going on in the biosphere, which includes our bodies. I think it behooves us to wait a few centuries before we go hog wild on the only known ecosystem in the entire Universe, eh?

</comment><comment><USER42> Literally.

</comment><comment><USER43> It's called 'millenium' non-plural.

</comment><comment><USER44> Welcome to MaddAddam

</comment><comment><USER45> #1 Supercomputer today is Summit - IBM Power System AC922, IBM POWER9 22C 3.07GHz, NVIDIA Volta GV100, Dual-rail Mellanox EDR Infiniband

#1 Brain today (unknown but someone like Terence Tao, Edward Witten, Magnus Carlsen, or Donald Trump) [https://aiimpacts.org/brain-performance-in- flops/](https://aiimpacts.org/brain-performance-in-flops/)

        #1 Supercomputer
        performance: 148,600 TFlop/s
        power:        10,096 kW

        1# Brain
        performance:   9,000 - 337,000 TFlop/s
        power:         20 W.

Biology (=organic chemistry) has has huge computational power/watt advantage.

<comment><USER46> > 1# Brain > performance: 9,000 - 337,000 TFlop/s > power: 20 W.

Yeah, not really.

These measurements mostly rely on the entire brain firing all at once, while a real brain does not do that.

<comment><USER47> I wouldn't even call them "measurements"; last time I checked, the brain didn't run on IEEE 754.

<comment><USER48> I did my own measurements, I got about 0.01 floating point multiplications per second out of my brain.

<comment><USER49> It's almost like your brain doesn't even have an FPU

<comment><USER31> It does! But it's only good for counting up to 3 or 4.</comment></comment></comment></comment></comment></comment>


Shinichi Mochizuki and the impenetrable proof - <AUTHOR> http://www.nature.com/news/the-biggest-mystery-in-mathematics-shinichi-mochizuki-and-the-impenetrable-proof-1.18509 <comment><USER2> OK, I have no idea how the proof works, but I think I read the abstracts well enough to do something that might qualify as pretending to pretend to know how the proof works: (please note: I'm not qualified to pretend to know how this works, I have to pretend twice to get anything that sounds like both math and English)

* Part 1: All chaotic systems are isomorphic to an elliptic curve [traditionally y2 = x3 + ax + b] for some extended definition of elliptic curves

* Part 2: A general method of constructing isomorphisms of chaotic systems to extended elliptic curves

* Part 3: Using the method from Part 2, construct a more understandable model of the chaotic structure of the natural numbers

* Part 4: Using the model constructed in part 3, construct a proof for abc

Hopefully if you understand any of this you can point out why I'm obviously wrong.

<comment><USER3> A for effort, since apparently mathematicians themselves are quite reluctant to do this...

</comment></comment><comment><USER4> > And most mathematicians have been reluctant to invest the time necessary to > understand the work because they see no clear reward: it is not obvious how > the theoretical machinery that Mochizuki has invented could be used to do > calculations.

I find this _deliciously_ ironic since that is the position most students have towards mathematics in general (replace "calculations" with "anything relevant in their lives").

<comment><USER5> I am a research mathematician. I don't think this quote is an accurate reflection of how 99% of experts feel about Mochizuki's work. Most experts expect that if Mochizuki's work is correct (and even if not) it contains a lot of valuable ideas. Proofs of this kind are almost never mathematical dead ends - they are difficult because they require fresh insights and these insights can always be applied to other areas.

Mathematics is not solely about the proof. Good mathematics is about the communication of the proof and the ideas in it. I think it is fair to say Mochuzuki's work is not being communicated effectively. Though I am not saying the problem lies with Mochizuki alone.

<comment> iso-8859-1 After Perelman's proof, there have been some "filling in of details". [1] Would you say that Perelman's proof is comparable, and that he could also have been more pedagogical? Do you see any parallel at all?

It sounds to me as if you are implying, that it is Mochizuki's responsebility to be pedagogical. If being pedagogical is good (because it is more social?), how is mathematics different from any other discipline? Surely one ought to be social in every regard.

If the proof turn out to be correct, would you still say Mochizuki communicated it wrong?

[1]: [https://en.wikipedia.org/wiki/Grigori_Perelman#Verification](https://en.wikipedia.org/wiki/Grigori_Perelman#Verification)

<comment><USER5> From what I understand (not exactly my area) Perelman's proof was quite intelligible. Yes there were lots of details to fill in, but for the expert it was clear how this should be done. Perelman's proof also had a long background (it implemented ideas outlined by Hamilton earlier) so for experts it made a lot of sense. I don't think there is a lot of similarity between the two situations.

Research is a social activity. Being a successful researcher means being social. What social means depends on the norms of the relevant field. Yes, we should reflect on those norms and allow innovators to push boundaries but for the science to evolve it has to take everyone with it.

Mochizuki and those around him have a responsibility only if they want take part in the mathematical community - which I think and hope they do.

I am taking the word of experts in the area of arithmetic geometry who say there isn't being enough done to communicate his ideas. Regardless of whether he is right or wrong (really it isn't about this - it is about whether his new ideas have merit - the proof of the abc conjecture would be strong evidence for this) I think the current situation speaks for itself.

Edit: Also, you are entirely correct, we are humans, we should be social in every regard!

</comment></comment></comment></comment><comment><USER6> Links to the papers themselves:

[http://www.kurims.kyoto-u.ac.jp/~motizuki/Inter- universal%20...](http://www.kurims.kyoto-u.ac.jp/~motizuki/Inter- universal%20Teichmuller%20Theory%20I.pdf) [http://www.kurims.kyoto-u.ac.jp/~motizuki/Inter- universal%20...](http://www.kurims.kyoto-u.ac.jp/~motizuki/Inter- universal%20Teichmuller%20Theory%20II.pdf) [http://www.kurims.kyoto-u.ac.jp/~motizuki/Inter- universal%20...](http://www.kurims.kyoto-u.ac.jp/~motizuki/Inter- universal%20Teichmuller%20Theory%20III.pdf) [http://www.kurims.kyoto-u.ac.jp/~motizuki/Inter- universal%20...](http://www.kurims.kyoto-u.ac.jp/~motizuki/Inter- universal%20Teichmuller%20Theory%20IV.pdf)

Looks like understanding these doesn't only require reading 500 pages, but also 4 other preceding papers of this author.

</comment><comment><USER7> It somehow fits that this is halfway up the front page, and there are no comments on it.

A good metric for the vitality of an academic field is the level of genuine interest researchers take in the substance of their peers' work. A good proxy for this metric is the use of preprint servers. Math and physics dominate, obviously. Interestingly, these are also the fields which the Soviet scientific system screwed up the least.

Even in math, as the case of Mochizuki (and de Branges) shows, there are limits.

What's the actual tangible reward for investing a year or two of your career in learning Mochizuki's world? Suppose you showed that inter-universal geometry was really, truly, a new major subfield of mathematics? Would math departments all over the world hire the faculty needed to make this subfield a reality? Making you, the reviewer, who didn't do original work but only checked someone else's work, a big shot? Not #1 in IUG, but maybe #2 or #3?

I'm not a math guy, but it's hard to see. And yet, 40 years ago, this might well have been the outcome. Conclusion: maybe we really do live on Trantor.

<comment><USER8> There is a lot to read and it has only been posted here for around three hours. What kind of substantial comments are you expecting in such a short amount of time? The linked article itself is a decent read and the papers (conveniently not directly linked to in the article) themselves are quite long.

>What's the actual tangible reward for investing a year or two of your career in learning Mochizuki's world?

I'd guess that would greatly depend on what Mochizuki's world allows one to do.

<comment><USER7> > I'd guess that would greatly depend on what Mochizuki's world allows one to > do.

Um, it's abstract math, it's not going to help you build a flying car. Isn't proving a major conjecture enough?

Most of mathematics predates the modern American academic system. This immense body of work wasn't developed by people with a careful eye on the best way to get a good tenure-track job. It was developed by people who did math for one main reason: they were fascinated by math.

I am not a mathematician, but I haven't seen anyone suggest that Mochizuki's world is _boring_. It's difficult for me to imagine 19th-century mathematicians resisting the opportunity to become students again in a new, promising, and unfamiliar world.

The 21st-century reaction seems to be: I already got that degree, you want me to start over? WTF? Why? What's in it for me? How do I make a name for myself by studying someone else's theory, which might not even be true? And it's a pretty sensible reaction, given the institutions we have.

<comment><USER9> > Isn't proving a major conjecture enough?

Not necessarily. And not because of a lack of tangible rewards, but because of a lack of mathematical ones.

Mathematicians are not just after true statements, or proof, but understanding, and new theories that open up new areas of study. For that reason, a new proof of an old theorem is often quite interesting.

I seem to recall reading that Wiles' proof of Fermat's last theorem was sensational, but ultimately less exciting than it could be--the proof did not create a new way of viewing or systematizing things so much as apply very specialized machinery to a specific problem. Take that with a grain of salt--I don't have a hundredth of the mathematical background to judge it myself.

<comment><USER10> Your general statements are correct but your example of Wiles is quite wrong. Wiles ideas and their developments in the general area of "modularity of Galois representations" (which this comment box is too small to explain) led to a huge explosion of results. Taylor's work on the Artin conjecture and the Sato-Tate conjecture, Khare-Winterberger proof of the Serre conjecture,...

<comment><USER9> Thanks for the correction. My memory is hazy, and I must have read that about some other result, or merged different comments into something no one said.

</comment></comment></comment></comment></comment></comment><comment><USER11> The situation described strikes me as a contemporary analogue of the sorts of dilemmas we might expect in a future of increasingly complex AIs -- more and more solutions to problems that even the best among us can't possibly understand fully...

<comment><USER12> It also sounds like a motivating example for machine-checked proofs: if one could feed Mochizuki's proof into Coq or something and be assured that it was correct, even if only in a purely formal sense, I suspect there would be much more interest in grappling with the concepts to understand what the proof is doing, whether it's acceptable, and _why_ the proof is correct. As it stands, there's the risk of a wild goose chase.

<comment><USER13> If Mochizuki were able to write a machine-checkable proof, he would also be able to write a human-checkable proof, which is far easier to write.

<comment><USER14> Well, supposedly he _did_ write a human-checkable proof--it's just that the reviewer must be familiar with several of his novel ideas. Like any human- intended proof, there's an assumption of foreknowledge.

</comment></comment></comment></comment><comment><USER15> Tangentially to the topic at hand, but coming from the article:

> Mochizuki has estimated that it would take an expert in arithmetic geometry > some 500 hours to understand his work, and a maths graduate student about > ten years.

That's a 40x gap (500 hours assuming 40-hour work week is about 3 months-ish). Assuming that math grad student is active albeit junior researchers, that's a huge gap. I thought our notion of 10x programmer is already something considered extremely wildly stupid and doesn't exist? (I know the last sentence sounds a bit snarky, but it's too amusing to not point out).

<comment><USER16> 40x sounds pretty conservative to me. I did graduate school in math (did not get a Ph.D.) and my advisor indicated that he assigns problems assuming a 200x multiplier between his capability and the students'. That is, he'd assume that something he could see how to do and could execute inside of a week would be a good thesis problem to keep a Ph.D. student busy for two years.

As far as the 10x programmer stuff... Obviously there are 10x and probably even 100x programmers. They're the experts, and there are not many of them.

<comment><USER17> Yep -- my advisor figured he could do my thesis problem in a week. It did take me only 1.5 years to find a counterexample and kill my own thesis, but these are estimates after all.

<comment><USER18> If he could have proven the theorem in a week despite its having a counterexample, that is impressive.

</comment></comment></comment></comment><comment><USER19> I think a big problem is that he is not doing enough legwork to get out and talk about his ideas. Researchers should not publish major papers without doing a 'roadshow', especially when it is so dense with new ideas as Mochizuki's abc-conjecture papers. Accounts of proofs and discoveries always have a climax where the author delivers a lecture announcing the discovery. Like Wiles announcing a proof (later shown to be flawed) of Fermat's last theorem at a lecture in Cambridge's Isaac Newton Institute for Mathematical Sciences in 1993. It is immensely helpful to talk through the proof in person facing an audience of experts.

<comment><USER6> I don't understand. He has already spent 10+ years of the time of his life putting it together, has given it to the world freely, on his own and made no demands whatsoever. Are you possibly arguing that he has any obligation at all to do anything more? If so, on what basis?

<comment><USER13> The sad reality is that without a good presentation, genius will take a long time to be discovered, if indeed it is genius.

There are many examples, but doubtlessly the most dramatic ones are Ramanujan and Galois. Ramanujan had no training and at first glance his work looked indistinguishable from the flood of crank mathematics that most professional mathematicians are familiar with. Were it not for Hardy's work in giving form to Ramanujan's ideas, they may have been lost forever.

In Galois's case, he was _terrible_ at explaining his ideas, brilliant as they were. The anecdote of him throwing the eraser at his examiners is an example of his frustrations in trying to communicate to others. He himself was aware of his bad presentation, as he even called his work "gâchis" (mess).

Even now, with the hindsight of knowing what he's talking about, it's extremely hard to read his original papers. For example, he doesn't write down formulas and he doesn't fix notation. He just _describes_ them in very ambiguous terms, talking about "this" or "that" where it's difficult to always determine what "this" or "that" refers to. This is why it took over 30 years after his death for Liouville to notice that Galois was a genius.

<comment><USER20> "gâchis" doesn't mean mess but waste.

<comment><USER13> Definition 3:

[https://fr.wiktionary.org/wiki/g%C3%A2chis#Nom_commun](https://fr.wiktionary.org/wiki/g%C3%A2chis#Nom_commun)

</comment></comment></comment></comment></comment><comment><USER21> When someone works really hard on a problem and then puts it out there openly, you have to respect their work. And from their perspective, they've put weeks/months/10 years into a piece of work, and it can come off really bad if you approach them and ask them to explain it to you so that you can understand it in a fraction of the time. For complex ideas, you can talk at somebody and they can get the general gist of it, but for many technical things you don't understand it until it "clicks" from gears moving in your own head. I understand this case is pretty drastic, but his claim that one needs to break down the barriers in their mind shows how much he expects from an individual to understand his work.

<comment><USER22> > it can come off really bad if you approach them and ask them to explain it > to you so that you can understand it in a fraction of the time

But it works like that with software libraries. Even if they are the product of arduous work, they should come with documentation, examples, introductory material. Why should proofs be any different?

The Curry-Howard isomorphism should apply to documentation, too!

</comment></comment><comment><USER23> Wasn't this a plot device in 'The Hitchhiker's Guide to the Galaxy', where they gave some scientist an award on the off-chance what he said even made sense.

</comment><comment><USER24> I had a look at one of the papers and, although I have absolutely no ability to understand any of it, I get a kind of quiet joy from the knowledge that reality has such fractal-like _depth_ that things like this can be created/discovered. And that some of us can dive down there and bring them back, even if I can't.

(Also, I like the term "Frobenioid". As in "precise specification of the relevant monoids/Frobenioids within each Θ±ell NF-Hodge theater".)

</comment><comment><USER25> I first read about his proof a year or two ago. I'm surprised so little progress has been made. Is there no formal collaborative effort in trying to verify his proof?

This seems like an opportunity to me. Host the proof (and ones like it) and allow commentators to annotate and explain parts, and then replace all the ambiguous parts with formal explanations.

</comment><comment><USER26> Ted Nelson believes that Mochizuki is the real Satoshi behind Bitcoin, because of the way both projects were dumped into the world's lap. I just saw his video last night: [https://www.youtube.com/watch?v=emDJTGTrEm0](https://www.youtube.com/watch?v=emDJTGTrEm0)

<comment><USER27> Ridiculous. The mathematics of one has nothing to do with the other.

<comment><USER28> All the same, couldn't Mochizuki could chew up the Bitcoin mathematics for breakfast and spit it out? Being Satoshi could just be a kind of footnote in his life. (I don't suspect this myself, but it's can't be dismissed _that_ easily; certainly not on grounds of different mathematics.)

<comment><USER29> No. Cryptography is complicated, it's not just something you dabble in and then put together a complex protocol like Bitcoin with few mistakes. Not even mentioning the large programming task to implement that effectively. Cryptography is it's own sizable field of study that takes a lot of work to master.

<comment><USER13> The bitcoin protocol is nowhere nearly as complicated as Mochizuki's proof. The Bitcoin whitepaper can be understood without difficulty by most "laymen", i.e. common programmers of modest ability such as myself. And Satoshi's original code was decidedly amateurish. Satoshi was clever in solving the consensus problem, but he's not some master cryptographer.</comment></comment></comment></comment></comment>


OpenBSD 4.7 released - <AUTHOR> http://undeadly.org/cgi?action=article&sid=20100519134552

<comment><USER2> Anyone on HN deploying on OpenBSD? Any thoughts?

<comment><USER3> I've got a home router running on OpenBSD, for a mix of practical and educational purposes.

I've found pf to be particularly nice - it's much easier to work with than iptables for me.

Like all the BSDs, it has man pages for _everything_ , which is an extremely nice aspect.

The main thing that I don't like about OpenBSD is the increased update hassle as compared to, for example, Debian.

I'd probably use OpenBSD everywhere if there was some reasonable equivalent of what you'd do on Debian with "aptitude update && aptitude upgrade".

<comment><USER4> The OpenBSD packaging system's update infrastructure has really improved within the last year. It might be worth another look. I do porting, and very frequently update to a recent snapshot, then update all ports. I haven't had problems with it for a while.

And yeah, best router/firewall OS _ever_.

<comment><USER3> How do you find running snapshots? I always figured just from the name you could expect them to have problems.

<comment><USER4> The snapshot computer is my main desktop (amd64), and in general, I haven't had problems. (On second thought, updating "very frequently" is probably an exaggeration - more like monthly/biweekly.) One time I noticed that my CD burner had stopped working, but I hadn't used it for several months before that anyway, and it went away on a subsequent update. Other than that, no problems.

</comment></comment></comment></comment></comment><comment><USER5> <http://news.ycombinator.com/item?id=1361473></comment>


Being Data Driven – Analysis the Lost Discipline - <AUTHOR> http://diego-pacheco.blogspot.com/2020/08/being-data-driven-analysis-lost.html <comment><USER2> > being data-driven is not an alien thing, it quite simple actually

No it is not always simple. As a beginning you need to know some basic principles which are not always intuitive, for example the need to design a test in advance and never stop it until you have reached the designed limits.

And then you need to know what to test and avoid reinforcing popular usage, you'll also need to be patient since changes sometimes takes a while to stabilize themselves in the eyes of the users.

It's and art and a discipline, there's a lot to learn and a lot is done by "feeling" or experience.</comment>


Ask HN: How to learn small electronics and HW interfacing? - <AUTHOR> I, probably like many of the people who read HN, am satisfactorily competent at slinging code but have absolutely no clue how to make that code talk to the physical world.  Like, suppose I wanted to attach a motion sensor to something: unless the sensor comes with a USB cable and a well-documented Python API, I'd be out of luck.<p>HN, what are your recommendations for strategies, books, projects, etc. to learn this stuff? <comment><USER2> At age 62 (18 months ago) I took a 1 day "ham cram" and got my technician license, and bought a couple of $25 vhf/uhf walk-in talkies. And played with homemade antennas for a while.

A year ago I enrolled in my local community college's Electronics 101 course, which meant resistors, voltage, current, capacitors, and inductors. And voltmeters and power supplies.

Six months ago I took Elec 102, which are transformers, diodes, AC to DC rectification, transformers, and, voila, transistors.

Next step: microcontrollers, sensors, and relays.

Future: relearn imaginary exponents and Euler.

It's a _big_ field!

</comment><comment><USER3> As others have stated, start with an Arduino. Have fun.

But I would recommend as a next step is to find a component that is more complex than an LED or Switch and with relatively good Arduino libraries (e.g., a 2x16 LCD screen) and try to write your own driver for it (e.g., a library that does all of the handling of the IO pins), using the data sheet of the component to figure out how to use the IO pins. Feel free to look at the Arduino library source code (or libraries for other languages).

I have done the same, using Rust and a Feather M0[1] and am now finding it easier to look at the datasheet of the more complicated ATSAMD21[2] microprocessor.

1\. [https://www.adafruit.com/product/2772](https://www.adafruit.com/product/2772)

2\. [https://www.microchip.com/wwwproducts/en/ATsamd21g18](https://www.microchip.com/wwwproducts/en/ATsamd21g18)

</comment><comment><USER4> I'm just getting started with arduino. This is the tutorial I followed for my first project. Pick something that interests you and find a tutorial.

[https://www.reddit.com/r/PUBATTLEGROUNDS/comments/9q4rph/hea...](https://www.reddit.com/r/PUBATTLEGROUNDS/comments/9q4rph/heavy_duty_leaning_pedals/)

Other projects that are in the queue:

Similar to the first but with a sensor on the headset- [https://www.hackster.io/news/easily-add-head-tracking-for- an...](https://www.hackster.io/news/easily-add-head-tracking-for-any-modern- game-04bb8e36d723)

Overhead Garage Door status indicator lights- [https://www.instructables.com/id/Yet-Another-Garage-Door- Sta...](https://www.instructables.com/id/Yet-Another-Garage-Door-Status- Indicator/)

Roomba Virtual Wall- [https://github.com/MKme/Roomba/blob/master/Arduino%20Code/Ro...](https://github.com/MKme/Roomba/blob/master/Arduino%20Code/RoombaArduinoVirtualWallEASY/RoombaArduinoVirtualWallEASY.ino)

You don't need lots of parts and most are inexpensive, for the soldering gun and holder I got those at harbor freight, I order all the other parts off amazon. I did buy one of elecrontics part kits with lots of small components and a few breadboards.

</comment><comment><USER5> Go get you one of the cheap Arduino clones (or several!) and a starter kit with sensors and lights to play with. The Arduino Mega clones at $15 or less are worth keeping a few in stock; and you'll never worry about burning one out or leaving a thing assembled for a while to blink its light because its fun.

[https://www.adafruit.com/](https://www.adafruit.com/) is a good place to go for information, parts, and excellent service.

</comment><comment><USER6> I think arduino is a good place to start. If you want something slightly different I like the teensy which is arduino compatible and can plug into a breadboard. I'd pick up a basic electronics kit as well that includes a bread board and a bunch of components and then you can actually make some basic circuits with LEDs and sensors.

[https://www.pjrc.com/teensy/teensy31.html](https://www.pjrc.com/teensy/teensy31.html) [https://www.amazon.com/s?k=basic+electronics+kit+for+breadbo...](https://www.amazon.com/s?k=basic+electronics+kit+for+breadboard&sprefix=basic+electronics+kit+&ref=nb_sb_ss_i_2_22)

</comment><comment><USER7> I recommend you also check out Ben Eater.

[https://eater.net](https://eater.net) [https://www.youtube.com/beneater](https://www.youtube.com/beneater)

</comment><comment><USER8> h20dragon mentioned [https://adafruit.com](https://adafruit.com). Just comb through the info and tutorials on this site and grab yourself a basic Arduino kit and get started.

</comment><comment><USER9> Documentations on Sparkfun is also very useful.</comment>


Chrome just got faster with Profile Guided Optimization - <AUTHOR> https://blog.chromium.org/2020/08/chrome-just-got-faster-with-profile.html <comment><USER2> Firefox has done this since forever. It's why official builds will generally be faster than compiling from scratch yourself. I'm surprised Chrome wasn't already taking advantage of PGO.

<comment><USER3> I'm surprised that there isn't a way to do PGO when compiling from scratch. A way of telling the compiler exactly what parts are, but build it into the codebase so that one could get the best of both worlds.

<comment><USER2> You can pass a PGO flag to the build system [0], but IIRC from when I was there last, Mozilla puts some serious machine hours into PGO cycles for each release and that isn't easy to replicate as an individual developer. The profiling captures things which are very specific to the actual build being optimized, so inlining that information into the codebase wouldn't be so helpful. Though there are already static optimization hints spread throughout the code (off the top of my head, MOZ_LIKELY/MOZ_UNLIKELY for marking conditionals).

[0] [https://firefox-source- docs.mozilla.org/build/buildsystem/pg...](https://firefox-source- docs.mozilla.org/build/buildsystem/pgo.html)

<comment><USER4> Mozilla could publish their profile data for a given release image.

<comment><USER5> They are public, but you have to know where to look. I do think they should be published alongside the builds on archive.mozilla.org. (disclaimer: I work for Mozilla)

</comment></comment></comment></comment></comment><comment><USER6> 10% faster is a pretty nice improvement, especially in 2020.

Here's a little Wikipedia stub about Profile-Guided Optimization, for those who'd like to read more about the technique.

[https://en.wikipedia.org/wiki/Profile- guided_optimization](https://en.wikipedia.org/wiki/Profile- guided_optimization)

<comment><USER7> 10% is impressive. Albeit a web browser isn't quite the same situation but shaving even a percent off a program could save millions for a company like Google.

<comment><USER8> I do not doubt you, but for my own education could you elaborate a little on how Google or any othr company could save millions.

<comment><USER9> If you had a backend workload that draws 20MW and you make it 10% faster, you saved a million dollars per year in electricity alone.

Math may vary depending on cost of electricity.

<comment><USER10> but the executable that is built with these optimizations is running on people's computers, not as a backend on google servers.. or am I missing something?

<comment><USER9> Perhaps I didn't understand the question. I thought the question was about why anyone would save a lot of money from software going "only" 10% faster. Most large datacenter operators will get unreasonably excited about even 1%. But you're probably right that Google itself will not directly benefit from making Chrome faster on macOS.

</comment></comment></comment></comment></comment></comment><comment><USER11> Where are the profiles gathered from?

Did they just render the alexa top 1M sites and generate a profile from that? It would seem some bits of the codebase might only be exercised by real users (eg. touch input during a mobile game).

Did they instead gather PGO information from real users? If so, how did they do that in a way to not degrade performance too much while profiling, and maintaining user privacy (sequences and addresses of branches in some cases will reveal user data)?

<comment><USER12> There's a small clue at [https://blog.chromium.org/2016/10/making-chrome-on- windows-f...](https://blog.chromium.org/2016/10/making-chrome-on-windows- faster-with-pgo.html) :

> _To gather this data, the nightly build process now produces a special > version of Chrome that tracks how often functions are used._

It doesn't say how Chrome is exercised (what pages are loaded, what user actions are simulated) during the nightly build. It seems like it must be some kind of fixed test data.

But that at least eliminates the possibility that they're gathering the profiling data from production builds used by real users, so the privacy concerns shouldn't be an issue.

(Also note that info is from 2016, so it could have changed.)

</comment></comment><comment><USER9> FWIW, ChromeOS has been built with PGO for many years. This is catch-up for the mac toolchain.

</comment><comment><USER13> > Tab throttling coming to Beta

This is nice, but I remember the pain trying make a multiplayer browser game run fine, even when you put it in a background tab. The problem is that the game had matchmaking, so players would change tabs while a match was found and for the first few seconds of the start of the game. While doing so, many of the CSS animations, sounds, JavaScript functions would be queued and all executed at once when you switched back to the tab, leading to a bad experience, or in some cases the game breaking. I assume this would only get worse with this tab throttling feature, but there are legitimate use cases where both developers and users would prefer a tab to still be running at normal speed even when not focused. We use this every day in desktop applications, where we start a game or some video encoding task and just let it run, non-throttled, in the background

<comment><USER11> As a developer, you probably ought to just send a message to the server saying "I am throttled", and then later when the tab is reactivated send another message saying "I am unthrottled, please send me the current state of the game".

You shouldn't be expecting to queue up thousands of messages from potentially hours of the tab being backgrounded and handle them all when the tab is unbackgrounded. Nor should you process all the state changes as they come in even though the tab is backgrounded - no user wants to spend data/power/cpu/battery/heat on something like that.

<comment><USER13> That's a good solution if your game receives game states, but in our case the game was deterministic and ran the simulation on the client at 50FPS, only receiving the inputs from other players. This means that if your game freezes for 10 seconds (or tab out for 10 seconds), when you go back it would have to simulate all those 10 seconds before it could continue.

Imagine having GTA 5 multi-player running in a background window, you would still want to hear the other people, hear the in-game sounds so you can come back to the game if something important happens, and also not have to simulate instantly all the events that you missed when you come back.

This also reminded me that we had problems with just playing a sound when a game started to let the players know they should come back to the tab. Players complained that sometimes the game does not notify them it has started, but it was just Chrome simply not executing JavaScript anymore.

<comment><USER11> I think the Chrome developers are trying to tell you you shouldn't be using your users devices as game servers...

How about when a tab is backgrounded, a server continues running the game and just streams an mp3 audio stream to the users device. Most devices can stream audio with the CPU _actually turned off_.

<comment><USER13> The devices are used as game clients, not game servers.

Streaming audio sounds like an interesting idea, so instead of the server sending an event and the client playing a sound when that event is received, the client would constantly stream a dynamically created audio file. This solution could work, feels a bit complex as you would still have to make sure stream catches up if user has a lag spike, instead of buffering the audio (timing should still be accurate).

That being said, what it the game is single-player and there is no server? Then the client itself would have to generate the audio stream and stream it to itself, which wouldn't work if the background thread is throttled.

</comment></comment></comment></comment></comment><comment><USER14> Sigh. I used to love Chromium, when it was the new kid on the block. But now, because of this browser monoculture, I wouldn't use it even if it was far better than Firefox.

How times change.

</comment><comment><USER11> What do these profiles consist of? Simply which branches are taken vs not taken? Or do they include a history (eg. if this branch is taken then that one will not be)?

Do they depend on the stack? Ie. when called from this function, that branch is always taken. That could encourage the compiler to inline the function so it can have a faster path on the branch.

<comment><USER9> This all depends on what hardware you use to capture your profile, but on recent (Skylake and later) Intel CPUs you can use the Last Branch Record (LBR) to get branch source and target, including the call stack.

This deck can give you some idea of what the modern Intel PMU can do: [https://protools19.github.io/slides/Eranian_KeynoteSC19.pdf](https://protools19.github.io/slides/Eranian_KeynoteSC19.pdf)

<comment><USER4> I think the GP question is, what data do GCC/Clang actually emit with -fprofile-generate?

</comment></comment></comment><comment><USER15> It sees it was already used for windows: [https://blog.chromium.org/2016/10/making-chrome-on- windows-f...](https://blog.chromium.org/2016/10/making-chrome-on-windows- faster-with-pgo.html)

<comment><USER16> Don't be misled, it was enabled for windows then got disabled when they switched to clang. To windows will get back this optimization so newer Chrome releases will get up to 10% more performance on windows

</comment></comment><comment><USER17> Sorry for the elementary question...

...but is PGO referring to the compilation of Chrome itself, or the compilation of JavaScript on sites?

The blog post doesn't actually specify which compilation is being talked about, and page performance could obviously depend on either.

<comment><USER18> Compilation of Chrome itself. Compilation of JavaScript is almost always profile-guided.

</comment></comment><comment><USER19> [https://github.com/greatsuspender/thegreatsuspender](https://github.com/greatsuspender/thegreatsuspender) is great on Chrome (up until now).

</comment><comment><USER20> One can hope that Linux would see similar optimizations applied to it at some point.

<comment><USER21> I'm surprised they aren't focused more on it. Not for us desktop Linux users, but for ChromeOS

<comment><USER9> Perhaps you will then not be surprised that ChromeOS Linux kernel has been built with profile-guided optimizations for a long time.

[https://chromium.googlesource.com/chromiumos/chromite/+/mast...](https://chromium.googlesource.com/chromiumos/chromite/+/master/cbuildbot/afdo.py#94)

</comment></comment></comment><comment><USER22> I wonder how far we can take this sort of effort -- collect exact usage statistics for users and optimize software exactly for known usage patterns. Of course some statistical technique would be needed to deal with the long tail of usage patterns -- surely some program branches are used extremely rarely (or not even seen in collected samples), but you still wouldn't want them to be extremely slow (slower than necessary) or crash just because they're rarely used. The cumulative usage of many of those long tail events can be large.

Either (regularized) statistical inference of branches or something like assuming a baseline usage for every branch would be necessary.

This is all significantly complex of course, so for anything that are not the consumer megaprojects of software (browsers and operating systems?), I wonder if those tools could be used as well. Perhaps there could be some automated, anonymized usage reporting that does all this work?

<comment><USER23> Ages ago I had a conversation with a coworker about why was it that if databases collect statistics for optimizations, that data structures in programming languages don't do the same thing?

This would come up a few more times in my career. The next time was a few years later when I was having to go through a code base removing premature optimizations for initial list size in a code base. The average length of our data had grown such that our lists were now bigger than the defaults would have been. That was added to my growing collection of "making code faster by removing code" examples.

We talk about using better algorithms instead of tweaking code with micro- optimizations but then we never talk about tuning the better algorithms. So they default to the average case or worse.

<comment><USER24> > Ages ago I had a conversation with a coworker about why was it that if > databases collect statistics for optimizations, that data structures in > programming languages don't do the same thing?

Lus tables in LuaJIT, Hack arrays, and JavaScript arrays can use different representations depending on what is stored in them.

NYU's SETL project also did some work on automatically identifying what data structure should be used.

IBM's Hermes project was also working on this; I'm not sure whether they shipped it.

</comment></comment></comment><comment><USER25> Chrome 87 vs Safari 14 on macOS Big Sur benchmark:

[https://imgur.com/a/gUX2CIF](https://imgur.com/a/gUX2CIF)

Safari/Webkit still the "fastest browser possible" on macOS.

</comment><comment><USER26> This is supposed to roll out today: [https://www.chromestatus.com/features/schedule](https://www.chromestatus.com/features/schedule)

</comment><comment><USER27> Will this filter down to MS Edge eventually?

<comment><USER28> It seems Google is running their nightly pipelines with additional profile generation, but sounds like that's restricted to their internal Chrome (not Chromium) pipelines.

Microsoft would have to do their own setup. Hopefully they do.

<comment><USER29> I wonder if PGO were at least part of the "toolchain optimizations" mentioned here: [https://blogs.windows.com/msedgedev/2020/02/13/performance-o...](https://blogs.windows.com/msedgedev/2020/02/13/performance- optimizations-edge-81/)

</comment></comment></comment><comment><USER13> Unrelated: my Chrome (on Windows) randomly freezes for 1-2 seconds whenever I focus one tab/window after I am away from it for a while. Is there any way to debug those kind of freezes?

</comment><comment><USER30> Chrome used to be a light weight fast browser and now it feels the need to use a GB of RAM to show a single new tab window.

<comment><USER31> I decided to measure the memory consumption of browser's new tab pages using a woefully unscientific method (simply looking at the memory usage tab in Activity Monitor and tallying everything up):

      Firefox  505 MB
      Safari   480 MB
      Chrome   464 MB

So it seems like they're about equal?

<comment><USER32> Are you including helper processes?

<comment><USER33> No he's not. He's also not looking at his CPU usage, where Chrome will literally go towards the high 70s for no fudging reason, while idle

<comment><USER11> Clear your browser profile. Chrome profiles get slow and CPU heavy after multiple years use.

</comment></comment></comment></comment></comment><comment><USER34> Does PGO support reproducible builds? If you pass the same profile at compile time do you get the same binary?

</comment><comment><USER35> Except on OnePlus where it just freezes randomly for 10 seconds unless you switch tasks and switch back.

<comment><USER11> Close all the tabs...

Somehow mobile Chrome keeps opening a new tab for everything I do, and I found I had over 1000. Since the tabs aren't actually loaded unless you switch to them, I assumed keeping 1000 URL's in memory wouldn't impact performance much, but when I closed them random freezes when clicking every link went away...

</comment></comment><comment><USER16> Will it be enabled on Android before Linux?

</comment><comment><USER36> So, HotSpot then?

<comment><USER18> No, this is AOT PGO, not online PGO like HotSpot made mainstream. The JavaScript compilers were already doing online PGO.

</comment></comment><comment><USER37> Wonderful!

Chromium is an excellent project but just sometimes slow to adopt certain features.

I love chrome and chromium browsers, I hardly have any issues with them.

Unlike garbage FF and unreliable Safari</comment>


Show HN: Wayzaway (Create and share personalized journeys) - <AUTHOR> http://www.producthunt.com/posts/wayzaway

<comment><USER2> sounds like a cool idea.

<comment><AUTHOR> Thank you! We've been working on sharing and discovery of science knowledge for 3 years. But our developers aren't molecular biologists and working on abstract science problems is hard. So Wayzaway is an extension of "share & discover" idea to everyday activity - our 10% side project.</comment></comment>


Mozilla to enterprise customers: "Drop dead" - <AUTHOR> http://www.zdnet.com/blog/bott/mozilla-to-enterprise-customers-drop-dead/3497

<comment><USER2> I've actually always hated this tendency for enterprises to require so much time to accept changes. This isn't the damned Space Shuttle. And this kind of over-caution means exactly one thing: "support" people who generally have _no idea_ how to respond to a _real_ crisis, because they've had little experience dealing with actual issues and spend all their time trying to avoid these minor inconveniences.

When you take your car into the shop, sometimes you find things are a bit worse than you thought and you need to adapt to a loaner for a couple of days. It's not the end of the world, either way you have a car and you end up where you want to be. People have been adapting to minor issues for a long time. Computer users are not completely stupid: if the new version of Firefox breaks something one morning, they can be told "okay, please use the old one for a few more weeks" and they're on their merry way. In the meantime, with a side copy someone can figure out exactly what's broken. It sure _doesn't_ require weeks upon weeks of revalidating who knows what "just in case" there's a problem.

<comment><USER3> No. If you called Sprint and the operator told you he/she can't update your customer details because the latest version of FF was incompatible with the CRM software they were using, you'd be rather unhappy. This is why I.T. departments have to test and certify the platform as being compatible.

<comment><USER2> Actually, what I'd expect is that they wouldn't tell me they even have a problem; I'd expect them to take down my requested changes according to their backup plan. (They do have one, right?)

For instance, there might be a form upon which an agent can _write down_ required customer changes, that is then filed so that the system can be brought up to date later when it's back online.

If an operator "can't update" something, it is the fault of the company for not having contingency plans. Suppose Firefox was upgraded without a hitch and passed all their tests, but then there was a power outage in the server room...why should the customer even care about the difference between these two? Often _the same_ contingency plan applies to many different cases, it's just a matter of actually having an organization with this kind of advance preparation.

<comment><USER3> So, let's say FF27 was incompatible. Should an enterprise then run FF4 where security patches are no longer provided? The correct conclusion would that enterprises shouldn't run FF in the first place.

<comment><USER2> At least compare it to running FF26, which is the overwhelmingly-likely backup plan in such a case (i.e. they were probably using FF26 before, so they continue to use it until they have time to fix things for FF27). Staying back one version is not unreasonable. If the company has waited 23 versions to upgrade, then it's basically their fault for being in that situation.

Security patches aren't always relevant; having a working browser (any browser) trumps all. If in fact there is no patched Firefox that works, but some other patched browser _does_ work, _then_ the more-patched browser wins. But if the only working browser is missing a few patches, big deal; use it anyway, and consider it added motivation to upgrade company infrastructure. You're not going to shut down the company for 4 weeks because the browsers are unpatched, I hope.

<comment><USER3> The actual practice in software houses is to certify their software against a limited number of browser versions. Otherwise, the testing costs would be too high. In addition, software couldn't be tested against unreleased versions, so no matter what, the certified environments would always be out of date. This is not a problem as long as security issues have been addressed.

You will not find any vendor who promises you that their software will work against the next version of Firefox.

So, as the I.T. head, you need to make cautious choices so that the technology mix will in fact work.

</comment></comment></comment></comment></comment></comment><comment><USER4> Mozilla's position really makes sense to me.

Look how stagnant IE became/is, largely due to 'enterprise' fears of changing pretty much..anything. Most enterprises still run windows XP, for that matter!

</comment><comment><USER5> Mozilla doesn't have any "enterprise customers", it's a free download, they're users. Their customers are Google and all the companies paying to appear on the search input.

</comment><comment><USER3> Someone will have to give Mozilla due credit for being upfront with what it is, instead of saying sweet nothings. The message from Mozilla is loud and clear. They are a consumer product, and have no enterprise aspirations. In contrast, compare this with the confusion Microsoft developers have in terms of what technologies they should be building on.

</comment><comment><USER6> Enterprises want more support from Mozilla. Mozilla says they don't have the resources to provide that.

I can't think of a group more able to provide funding for the resources that would solve their problem.</comment>