Chris X Edwards

Whoever made the browser warning "server is redirecting" without saying WHERE, should be dropped at a random point on the earth's surface.
2018-06-21 12:55
It used to be a point of pride but now when `uptime` returns something like "up 1115 days" I think, oops. True story this morning.
2018-06-20 11:51
"If you are having a medical or psychiatric emergency...." being on hold with this phone menu will probably exacerbate it!
2018-06-19 14:32
Just learned that for most of my life US chickens were commonly fed organoarsenic compound Roxarsone. Must I grow/raise all my own food?
2018-06-19 13:17
Sometimes people touch my laptop screen to click, which is adorable.
2018-06-15 10:01
Blah Blah

Review: Probabilistic Robotics

2018-06-07 13:09

I have been interested in Probabilistic Robotics by Sebastian Thrun, Wolfram Burgard, and Dieter Fox since I first heard about it while learning about the rocket science of Kalman filters from Professor Thrun himself in last year’s grand educational experience with Udacity (a company started by, yes, Sebastian Thrun). I was finally able to put my employer’s library to use and borrow this massive and expensive book. I found the topic to be interesting and important enough that I wanted the hardcore experience and this is definitely it!


A good summary of the book’s mission is on page 488:

Classical robotics often assumes that sensors can measure the full state of the environment. If this was always the case, then we would not have written this book! In fact, the contrary appears to be the case. In nearly all interesting real-world robotics problems, sensor limitations are a key factor.

And we learn, not only is it sensors that are not telling the truth—it turns out that actuators don’t actually do exactly what you tell them either. Oh and the maps you have or make are never quite right. These are the problems that this book tries to come to grips with.

Another way to think of it is that the existence of this book explains why a Roomba navigates the way it does (randomly). Or put another way, "stupid" easy navigation may be just as smart as fiendishly difficult hard navigation if you can get away with it. This book is not looking for the easy solution!

A big topic was SLAM which stands for Simultaneous Localization And Mapping (note Professor Thrun’s DARPA Challenge car, Stanley, in the SLAM Wikipedia page). This is where the robot is dropped into a place and has to figure out what’s there and how to reliably not hit it, even when all sensors are a bit wonky. This is fine, but I think there is more to this topic than the book even thought about (despite covering EKF SLAM, GraphSLAM, SEIF SLAM, multi-agent SLAM, etc). SLAM in rooms or controlled indoor environments which the book spent a lot of time on may be necessary for SWAT teams and turning off a serious nuclear reactor malfunction, but for everybody else (and the nuclear plant actually), just mount cameras on the walls! This may not be a terribly hard problem unless you really want it to be! But hey, what do I know?

If I had to provide a one word answer to all of the problems this book worries about, I would say: Bayes. Apparently using Bayes Theorem early and often can really provide a lot of help with these tricky problems. How exactly that is done can be tricky.


Page 233 quotes (Cox 1991) by saying, "Localization has been dubbed the most fundamental problem to providing a mobile robot with autonomous capabilities." It is definitely hard, but if they still believe that after doing some work on the autonomous car problem among idiot human drivers, then I think they need to take another look at things.

Every chapter concluded with (some freakishly microscopic print in) a section called "Bibliographical Remarks". I found this interesting because they did a decent job of summarizing the history of this weird little corner of robotics math nerdery. However, many times the saga would build up until the final word on the topic was Thrun et al. Which is fine but I sometimes wondered if I was reading a Thrun biography. On page 144, we are reminded that, "Entire books have been dedicated to filter design using inertial sensors." So it could be even more painfully specialized I suppose than Sebastian’s greatest hits which are genuinely impressive.

I was quite frustrated to read this on page 329, "Little is currently known about the optimal density of landmarks, and researchers often use intuition when selecting specific landmarks." It goes on to say, "When selecting appropriate landmarks, it is essential to maximize the perceptual distinctiveness of landmarks." I’m a big proponent of making these gruesome algorithmic/computation problems as easy as possible. Yet never is the topic of how to eliminate the uncertainty with environmental augmentation mentioned. It would be like fretting over how hard it was to train people to memorize all street names and features because putting up street and road signs would be expensive. But, hey, my little thoughts on how horrifically hard problems might be simply averted with a dirty trick are probably not appreciated by people whose job it is to solve hard problems.

There were some interesting fun bits of knowledge that I had never heard of. For example, the fact that terramechanics is a thing is interesting to me. And I learned that the Aurora CEO Chris Urmson once worked on an autonomous robot to search for meteors in Antarctica which is very cool (in many ways). That reminds me of my concept for autonomous archaeology robots which also would use a lot of the ideas from this book to make very accurate maps of where items were found.

I don’t think that this book was remarkable for a graduate level textbook, but wow, what a crappy way to teach something! The first thing to complain about is that pseudocode equals pseudoquality. As it says on page 596 "This algorithm leaves a number of important implementation questions open, hence it shall only serve as a schematic illustration." The "algorithms" were to me useless. Implementing them from the opaque pseudocode scribbled with frantic Unicode hand waving seemed no easier than thinking of a decent algorithm myself directly in code. It’s like betting someone that you climbed Mt. Everest but instead of just showing them a picture of you on the summit, you say that they’ll need to climb the mountain too to see if there really is proof of the deed up there. Just write real code! This isn’t probabilistic abstract thinking! Everyone who looks at this book will want this technology on a machine that runs software. Showing some real code could highlight good practices throughout, easily demonstrate algorithm effectiveness, and easily prove they even work at all.

I was really not delighted with the gruesome math and just unnecessarily harsh, but no doubt typical, syntax throughout. It certainly was great practice for slogging through such muck. I definitely feel more prepared to read obfuscatory stuff like this in the future. It was so baroque that it was hard for everyone to keep it straight. In Table 16.3-7, for example, there is Q(u) = 0 but then in the text on the next page it talks about it as "all Qu's." Yuck. I did not spot a rho, nu, iota, zeta, or upsilon — though I could have overlooked them during my quick census. All other Greek letters made an appearance, at least half in both forms! Did I mention that just writing software, a language that all roboticists must speak, would be much better?

Sometimes even the algorithm outline was not especially encouraging. On page 366, for example, "A good implementation of GraphSLAM will be more refined than our basic implementation discussed here." Gee thanks!

I feel like with the intense level of math, theory, and algorithms that mentioning real world robots at all may be premature. I got the feeling that all of this math would be more intelligently applied to abstract computer models only and talking about real applications just muddles things. I even was reminded of automata curiosities and that is finally explicitly mentioned (referring to Rivest and Schapire 1987a,b) in the final paragraph of the book’s text!

I sure wish I had this book’s TeX source because I would love to search and count the occurrences of these words: "straightforward", "obvious", "of course", "simply", "easily", "clearly", "standard simplification", etc. I would bet $50 that some condescending word like that appears more than 600 times, or on average at least once per page. I’ll leave that as "an exercise for the reader". Ahem. Provide some source code proof that this stuff works and then I’ll start feeling like I’m the dumb one for not having implemented it!

I’ll make a list of errors I found to give you a sense of the production quality in general.

  • p167 "…pre-cashing…"

  • p213 "…represents uncertainty due to uncertainty in the…"

  • p267 "…the type [of] sensor noise…"

  • p281 "…can easily be described [by] 105 or more variables."

  • p370 "The type map collected by the robot…" [type of map?]

  • p388 "…SEIF is an … algorithm…for which the time required is … logarithmic is data association search is involved."

  • p403 "Here mu is a vector of the same form and dimensionality as mu."

  • p411 "…sometimes the combines Markov blanket is insufficient…"

  • p414 "…but it [is] a result…"

  • p419 "Once two features in the map have [been] determined to be equivalent…"

  • p433 "…this techniques…"

  • p433 "…to attain efficient online…"

  • p460 "…advanced data structure[s]…"

  • p480 "…fact that [it] maintains…"

  • p487 "…running the risk of loosing orientation…"

  • p525 "…the vale function V2 with…"

  • p550 "xHb(x)"

  • p554 "…when b_ is a sufficient statistics of b…"

  • p592 "MCL localization" is redundant.

Really, that’s pretty good for such a massive tome (in English by German dudes, also Hut ab).

I’m glad I read this. It was definitely an experience and I feel more like grad students who have been hazed in this way, but if you really want to learn this stuff for practical applications, I’d just pay Sebastian for Term 2 of the Advanced SDCarND program and save yourself a lot of trouble. And get some working code instead of just a mental workout!

GeoGad Blended

2018-05-27 16:31

I was doing some work on tire dynamics while planning a vehicle physics engine. In the course of that project I wanted to visualize some triangles. Easy right? If you saw my previous post about learning Blender you’d think that would be especially easy for me. But strangely, it was not.

In Blender you can make an equilateral "circle" with 3 sides. You can make an icosahedral sphere (made of triangles) or a triangular fan or a cone made of triangles. You can create triangles out of rectangles with quads_convert_to_tris() or poke() and then delete the triangles you didn’t want. But simply generating a lone arbitrary triangle is weirdly hard to achieve. It is weird because from a computer science standpoint, 3d computer modeled geometry is composed only of triangles.

How about three 2d lines? Amazingly, no. Blender is also not at all ideal for modeling a simple pair of endpoints connected by a line. Weird, right? I was actually so blown away to learn this that it kicked off an odyssey of heroic software engineering designed to sort this out once and for all. That odyssey is today’s story!

I had been working on learning the arcane art of controlling Blender with Python. That topic was exactly as confusing and muddled as I expected for such a baroque piece of software. But doable. And speaking of baroque, after some experiments with Blender’s Python console, I started to have a dangerously stupid idea…

It turns out that I, Chris Edwards, have written a geometric modeler. It is called GeoGad, short for Geometry Gadget. I started this project in 2004 and until about 2014 it was really only a programming language. Yes, that’s right, a programming language. A delightful Turing complete bad-ass programming language that I’ve used pretty much every day since 2004. I know it’s bad-ass because it was heavily inspired by HP calculator RPL and if you think that was not bad-ass, you’re an idiot.

The GeoGad logo is a triangle. And yes, GeoGad’s mascot is a sloth (Motto — Slow but happy and lovable).

In 2014, I added the geometry model and its functions to the language. In my system, geometry can only consist of simple lines and triangles. The lines are visible and the triangles exist only to provide occlusion reference i.e. allow for hidden line removal. And that hidden line removal was done by a Unix command line rendering engine called to2d. That C++ program is the most obscure rendering engine in the world because I wrote that too. While developing the geometry capabilities of GeoGad, I would pipe the raw geometry model to to2d and then dump the resulting 2d vectors in a file formatted as SVG. I could have a browser constantly polling and reloading this output and there was a display system. But that was not very user friendly, even for users like me who have different ideas about what friendly means.

At this point in the story:

  • I wanted to do some simple geometry that is overly complicated in Blender and which GeoGad is especially good at.

  • I was playing around with Blender’s Python interpreter.

  • GeoGad is written in Python.

Hmmm…… Could I maybe run GeoGad inside Blender? It turns out, the answer is yes! Check out this screenshot.


This shows how I tell the Blender Python interpreter where GeoGad lives by editing the sys.path variable. Now this Blender Python can import the important components of the GeoGad system (you can see these exact components in a similar project, dated 6 years after mine, by Peter Norvig, Google’s Director of Research).

With GeoGad’s code ready to run there was just one problem — the Blender Python interpreter did not implement the Python input command. This means I couldn’t just run GeoGad interactively like I normally do. It may be possible to hook up interactive input to some GUI element, but for now I simply define a function gg() that takes as input a string of GeoGad code. And it’s ready to use! I start by running the GeoGad version command to demonstrate that everything is hooked up.

The next couple of commands import GeoGad’s memory model output code. If I’m running a text only version of GeoGad, I don’t ever need to send the memory model (the geometry) anywhere special. But the real point here is to actually control Blender. So this passes a hint to the output code about where it can use Blender functions.

And finally, I demonstrate a classic programming language test.

0 1 |[dup2 +::!] 18 repeat

Can you figure out what that complete GeoGad program does? The answer and a nice comparison to other languages can be found here.

I’ve been making this look easy, but in reality, this has been a real grind. The first obstacle was that Blender, sensibly, uses Python3. In 2004 there was no Python3 and I took this opportunity to convert the entire GeoGad code base from Python2. The next ordeal was figuring out Blender’s interface functions and what might work. Blender uses a list of points and refers to them by their position; I use a dictionary of points and refer to them by numeric ID. My way allows everything to work without changes if some points are removed from the collection. The funny thing is that both ways are the same until some points are removed. I spent quite a while figuring that out while sometimes it would work and sometimes I would get a Blender seg fault.

Once I had added a blender command to GeoGad that could reliably put GeoGad’s geometry into Blender, it was time to start writing some stuff in GeoGad to do that. I quickly got sidetracked wishing GeoGad had Vim syntax highlighting. So of course I worked on that. Once I had rough highlighting finished, I was so delighted by it I went through GeoGad and added color to the runtime interpreter. It looks great! I’m loving that new feature but annoyingly, the Blender Python console just makes a mess of it. So I had to go back and make the colors optional. You can see some of that mess on the version string which I haven’t yet fixed.

Here’s an example of a GeoGad program showing off the syntax highlighting.


Even though some of the highlighting is not quite right (p0 should be white, not mixed colors) it is already a huge improvement for me and immensely helpful.

What does this code do? Since I was frustrated about triangles, I decided to make tetrahedra. So the function (GeoGad thinks of it as a live list stored in the symbol table, but same thing) tetra makes a tetrahedron’s geometry. Then there are some functions to randomly rotate and scale something (the tetrahedron presumably). The function ptsonline calculates points on a line that are evenly spaced at the interval _i (i.e. 0.6 as shown). What this allows me to do is send some lines and replace them with a trail of random tetrahedra.

Another program that I worked on (but won’t bore you with) takes the SVG logo shown above and extracts the geometry (check this HTML page’s source to see it) and builds a GeoGad model with it. By feeding this set of lines to the program shown above, I get the following result.





That is a superb result! I’m delighted with how perfectly GeoGad’s strengths compliment Blender’s. A lot of times when I model something I want a bunch of reference lines that clearly lay out geometric constraints and known geometry that must be designed to. I generally am less concerned with how it looks and more concerned with how it is. GeoGad helps me feed Blender explicit data that adheres to hard constraints. If there’s latitude in other parts of the modeling process to sculpt something to look nice, great, that’s what Blender excels at. Having Blender and GeoGad working together is really the best of both worlds for me.

Fatal Crash Rate

2018-05-22 08:06

The brilliant Randall Munroe of XKCD recently presented a nice visual summary of the kind of thinking I do all the time.


I love how this plot helps to illustrate this statistic that I have previously posted.

If I can hasten the practical deployment of autonomous vehicles by one hour, I will have saved 100 lives.

I actually believe in this more than that statement would suggest.

I’m too lazy to belabor details of joint probability distribution calculations that are wildly speculative, but I feel it. Like Randall, I also have an intuition about these things. And like Randall, I can creatively illustrate those intuitions with fanciful plots.


My big intuition is that "general safety improvements" have been overtaken by "general safety impediments". Of course I mean mobile phones. It’s too early for the statistics to properly tell the story but early results don’t look great.

And then there is the fact that if safety has gone to hell and the cause is people staring at their phones instead of controlling their high energy giant machines at terrifying speeds, then this safety retrogression will not befall us all equally. I and the gutter caste will take the worst.

I have survived brawls with SUVs in the past but I am at an inflection point. I have never been entirely invincible and I am wise enough to know that I become less invulnerable every day. Here is a fascinating plot of Dutch cycling fatalities in 2017 and Dutch cycling levels in 2016 organized by age.


You can see that crashing bikes does not age well. Will the intersection of my senescent frailty and the murderous stupidity of people texting while driving come before autonomous cars can save me? Stay tuned! We’ll find out.

On Microbes

2018-05-14 06:24

Last year I reviewed Ed Yong’s book I Contain Multitudes. After writing it I felt my review didn’t really do the topic justice. I joked that the microbiome is a bit like the Force from Star Wars. Besides a few uncanny functional parallels, what I really wanted to convey was that if we were to suddenly learn of the existence of a thing exactly like the Star Wars Force that was not fictional, it would be no more interesting or important than what we are currently learning about microbiomes.

In that spirit I started to jot down some ideas I had about stuff that might be interesting to think about in the context of microbiology. Some of these things may be common knowledge but I tried to think of interesting new ideas that were at least at one time attributed to even more mysterious causes. Coming up with creative ideas is an important part of scientific thinking and since some of these ideas are in the form of testable hypotheses, they are indeed genuine science. After reading this list, maybe you’ll think of some crazy ideas that we can call science.


  • It’s not just the trees in the forest that are important but I speculate that the forest floor’s health is probably as important. Related topics include fungi, deadwood, natural vs. managed forests.

  • House pets are an interesting new development. Though until recently humans often did live very close to livestock to keep them safe and to use them as a source of warmth. The 5th plague of Exodus is diseased livestock and the 6th is boils. Probably based on a true story.

  • Dogs. Rolling in stuff. Sniffing butts. Detecting cancer. Ya, they can.

  • Hypothyroidism in cats is weird.

  • Hotel rooms. Don’t watch this interview with hotel cleaning staff; one cleaner summarizes nicely: "Sleep in your car." My question is how do these intimate spaces shared by travellers distribute microbes?

  • Kissing and non-reproductive sex. Basically when the product of "inexplicably weird" and "stuff we enjoy" is quite high, look to the microbiome.

  • The microbiome of the birth canal is now recognized as an important thing. What about early skin-to-skin contact and breastfeeding for newborns? Maybe vernix interactions or umbilical subtleties. Discussed here. Related: how to design proper twin studies to eliminate microbiome confounds? Separate C-section from v-birth? Are there "genetic" links better explained by microbiome transfer.

  • Pregnant women eating dirt. Yup, they sometimes do that apparently. It’s called geophagia.

  • Things kids do, thumb sucking, licking stuff, eating dirt, boogers. Adults can almost be defined as humans who don’t like to think about that stuff but since the number one job of kids historically has been to not die of disease, I’m guessing subconscious kid habits are as evolutionarily optimized as anything.

  • Nail biting. Microbes love fingernails. Although articles like this jump to the conclusion that cooties are icky, the fact that nail biting is mostly subconscious and a habit that declines with age (as nails become harder and more brittle) makes me wonder if there is perhaps an immunological basis for fingernails. Also are long vs. short nails as a rough gender proxy producing evolutionary effects? And do painted nails affect things?

  • Animals licking wounds ("kiss to make better"). Oligopeptides found in saliva do seem to be complicated and interesting.

  • Deodorant, mouthwash, and other first world chemical hygiene products. Whatever you think they’re doing for you, it’s probably a lot more complicated.

  • Unnatural air conditioning, recirculation, HEPA filtering, household dust. Also complicated.

  • Spending an inordinate amount of life indoors. Or, same issue, reliability of lab animal models who live microbially isolated in sterile cages their whole lives.

  • Sleeping with mouth open vs. closed seems like an interesting difference if we assume the nasal passages are doing some useful filtering.

  • Sleeping itself — if not directly caused by microbes, they’re certainly counting on it now. What are the effects of poor sleep on critical microbiomes?

  • Dining al fresco is something all humans used to do but almost never do now. Seems like eating would be a good time to recalibrate microbes with the environment for better or worse.

  • Digging roots, shelling nuts, picking berries, handling food in a natural state. Forks were only introduced to Europe in the 16th century. In most of history people ate almost everything with their hands.

  • It’s easy to imagine that drugs that subtly interact with the microbiome could lose (or gain) efficacy in the future (due to fast evolving microbes). What FDA implications are there for an "approved" drug that eventually becomes useless? There may also be non-pharma folk remedies that may not work but may once have (or it’s complicated), like cranberry juice for urinary tract infections, cod liver oil, etc.

  • Maybe old school poultices and chewed leaves really are effective wound therapy. (Though being a true king probably does not improve efficacy of chewed leaves as presented in the Lord of the Rings.)

  • Leeching, maybe not so crazy. Maybe it’s slightly better than nothing to grab any random swamp animal and let it interact with a very sick patient’s blood stream.

  • Perhaps the four bodily humors (black bile, yellow bile, phlegm, and blood) do control temperament. In all of known history the idea has only been ridiculous for around the last 100 years. With an increasing focus on microbes, it (or something similar) is getting less silly all the time.

  • As a serious athlete and back country hiker who lives in a desert, I know hydration can be the difference between life and death. However, I tend to find recommendations a bit excessive. (The CDC avoids official quotas.) I wonder to what extent microbiotas influence required water intake? What is the ideal way to modulate intake to recover from illness or microbial infection? Obviously dysentery, cholera, and other diseases cause water loss and show that these topics are not unrelated.

  • I’m a believer in the temperature effects of serious athletic activity. It is basically a controlled fever. What exactly those effects are is very difficult to say. Our species' (potential) athleticism could have evolved from persistence hunting or a microbe management strategy or both in parallel. Some people believe that cold is good. I have heard the speculative (testable) conjecture that cold water sports like surfing tend to produce fitter people per calorie burned than other types of exercise.

  • In addition to temperature effects, exercise in humans (and horses) may control skin microbes through mineral deposition.

  • The role of salt in the diet. Or, how salt started being used as an anti-microbial preservative in ancient times and affected our recent evolution.

  • As someone who lives near a beach that is regularly contaminated with dangerous bacteria I think the ocean’s salinity and mineral content are very interesting with respect to microbes and how they might have evolved and are still evolving. And beach sand. Let’s just say that I don’t do a lot of barefoot strolls on city beaches.

  • What is the importance of carrion birds in normalizing the world’s microbiomes? And birds of prey also eat carrion. Sometimes.

  • Some pooping in the lair/nest is tolerated by many animals. Birds build nests out of microbe managing tree parts.

  • Obviously radiation breaks atomic bonds that should not be broken in endogenous tissue, but how much of sun sensitivity is related to the microbiome’s tolerance for it?

  • What health effects can we predict from the microbial aspect of modern clothing, fur, leather, cotton, wool, foam bedding, upholstery, and related technology? Is polyester shag carpeting even more worthy of disgust than it seems?

  • The use of soap in laundry and bathing may be less important than the temperature of the water with respect to microbial activity. Obviously for modifying lipid polarity, soap is important by definition. The extent and nature of microbial interaction with such lipids is interesting.

  • What are the effects of clothesline drying in the fresh sunny air vs. baked in a dryer? Probably more than just evaporation.

  • What have the general microbial effects been of milk pasteurization, canned food, and other recent massively deployed food safety technologies? Food irradiation is interesting.

  • EMF effects on microbes? Mostly no it seems. Mostly.

  • Let’s rethink the hidden functionality of body parts that have been deprecated as expendable by modern humans, e.g. appendix, foreskin, gallbladder, tonsils, etc.

  • Besides saliva and sweat, it would not be shocking to discover extended microbial related functionality to menses, tears, urine, etc.

  • Burial vs. cremation (bury healthy corpses, burn sick ones?) A more radical idea: Could the urge for burial, i.e. an aversion to cremation, be a manifestation of a survival instinct of microbiota influencing human brains? Bear in mind our feline friends and Toxoplasmosis gondii.

  • Cramming workers into a cube farm or techbro mosh pit must surely have microbial consequences. I sometimes wonder if the modern office environment creates an intimate locale for microbiota that cause salarymen to all think alike.

  • Yawning. Though no one knows why we do it with certainty, I will add another hypothesis to the long list of suspects: microbe transfer. Unlike, say, the brain cooling hypothesis, the microbe transfer idea is coherent with the socially contagious aspects of yawning. Most likely there’s a combination of effects in play.

  • Conspecific fighting rituals are stupid. My hypothesis is that it is a way to spread the best microbes for an environment. The loser runs away with more of the victor’s microbes in his wounds. Again, combined with other important and complex effects.

  • Why do babies puke so much? Maybe the baby is giving the mom a chance to help selectively reinforce the developing immune system. Microbial activity could explain why pregnant women puke so much; I have no hypothesis for that though.

  • Microbe management could explain why a lot of animals, especially birds, feed their young vomit.

  • The system that causes vomiting (retroperistalsis) may have a role just moving gut microbes around even if actual vomiting is suppressed.

  • Traditional kooky food woo may have had some factual basis. Ironically halal and kosher probably suffer from literacy. Imagine some observant priests do some sensible causation correlation and give their tribe some weird food rules that turn out to be helpful. They thrive. But microbiomes evolve quickly. A tribe enjoying success with microbe management who are using written texts to lock their current practices into an unknown and changing future may not be doing themselves any long term favors.

  • Speaking of microbiomes evolving quickly — a key mechanism in our species' remarkable habitat adaptability — the entire premise of the paleo diet is idiotic.

  • Addiction. Seems there might be a link to various microbiotas.

  • Microbes make me think of a new hypothesis for alcohol. Perhaps its pleasurable effects evolved to induce animals to eat rotten foods, picking up new microbes. Like flowers inducing bees to help.

  • Ingesting edible substances is one dimension, but what effects do their temperatures have on microbe health? For example hot or iced drinks? A "hot meal"? Also capsaicin spiciness hot, and acidity?

  • Cootie-phobe Michael Arrington believes that handshaking developed to show that you’ve got no weapon. I’m not so sure. Besides spreading pandemics and general disease, are there any redeeming features to this social technology? Could the custom be to slowly inoculate neighboring friendly tribes and vice versa?

  • I think microbiotas are starting to explain why getting "nutrition" in a pill (or drink) is much harder than people thought it would be. Sadly I predict that this is the fundamental limitation to spacefaring. Sorry Elon, I’m as disappointed about it as anyone.

  • Microbes are surprisingly similar to human cells — bacteria and yeast are commonly used as model organisms. How do toxins or even intentional metabolites affect microbes? For example, BPA mimics estrogen and millions of women take contraceptives or hormone replacement and then discharge it out into the environment. That one has been studied on ecosystems at a macro scale, but what about natural microbial environments? What about other metabolites?

  • Allergies and asthma.

  • Acne. It’s the same kind of mystery as asthma. Have we really evolved to be disfigured by zits? Seems so weird. And weird usually points to the world of microbiology.

  • Healthy human skin is a thriving forest of microbes carefully kept in balance by our bodies and what we do with them. Although some companies may be slightly aware of the microbiome’s role in healthy skin, it’s crazy to me how careless most cosmetics users seem to be about it. It also intrigues me that many traditional cosmetics and skin care treatments involve mud, vegetables, and other things that might be of interest to a microbe community.

  • Smoking is bad. But second-hand smoke may be disruptive to skin surface microbiomes. Here is a paper looking at connections between smoke and microbes. Here’s another.

  • What about second-hand antibiotics i.e. from the meat of livestock treated with antibiotics? This excellent microbiome article hints at it. For example, this article pretty clearly exposes meat eating as linked to obesity. I propose that latent antibiotics, not necessarily the meat per se, may cause havoc in conjunction with all the other trash modern people eat.

Here’s a microbiome wiki: MicrobeWiki

I’ll probably add to this list as I think of or come across interesting topics that fit the theme. If you see something that you think should be mentioned here, I’d love to hear it; send an email.

UPDATE 2018-05-18

My employer is doing some amazing work researching this topic. The American Gut Project is run from UCSD and has already produced some very interesting results. You can send in a sample and participate yourself!

Review: Enlightenment Now

2018-05-06 22:32

I’ve glowingly reviewed other books by Steven Pinker. Here, here, here, and here. He’s a brilliant stylist of inviting English prose, a dazzlingly erudite scholar, a formidable rhetorical gladiator, and a wellspring of intellectual common sense that in his wake seems bloody obvious. I am clearly a fan.

When I heard about his 2018 book Enlightenment Now: The Case For Reason, Science, Humanism, And Progress I rushed to put my name on the library’s waiting list. Now having read it, I am not disappointed!

I’m going to let slide the fact that the first text you’ll read (on the cover) is a quote by Bill Gates — whom I am not especially impressed with — saying, "My new favorite book of all time." I never said Bill was an idiot and he’s right to like this book in particular. It strongly advises caution at bath time because, it claims, the baby of progress can be very hard to separate from dirty bathwater like Gates. It is like one of those behavioral economics experiments where you can penalize your adversary a dollar and get nothing, or you can receive a dollar if you award one to your undeserving adversary. I’m not an idiot either. If Bill Gates has to get richer for everybody to do better, fine. I’m not convinced that’s all in order, but Pinker sure makes a good case that rising tides do lift plenty of boats. Without exculpating Bill’s ill-gotten loot, it is true that just living in the first world is an analogous situation to being a billionaire at some level to some people. Ok, ok. What of it?

Well, we are getting richer. All of us. What does that mean? Anything you want. Richer in purchasing power? Yes. In longevity? Yes. Health? Yes. Security? Yes. Not having to watch your kids die? Not dying in childbirth? Yes. Yes. Richer in knowledge? Yes. Culture? Opportunity? Free time? Safety? Yes. Yes. Yes. Yes….. 500 pages of yes. What could we do to make all of our dreams come true? If we step back and do the accounting, all of our dreams have come true!

Of course, a quick instinctive reaction to that assertion is: that’s crazy! No way! The road to Hell is not just ahead, but the hand basket we’re in is currently on its off ramp. But here’s the thing. Most of us are not starving to death. Or freezing to death. Or being shipped off to a gulag. I know this because Pinker just told me and backed it up with tons of actual data. We are, if we bother to check the numbers, doing objectively better than humans have ever done. Not only are we not doomed to Idiocracy, humans are, in point of fact, becoming measurably smarter (see Flynn effect). If you can’t believe we’re smart enough to measure such things, then the Idiocracy worry is moot by the same logic. Pinker doesn’t even make use of the fact that human brainpower has recently received a massive upgrade in the form of computational enhancement (e.g. Kasparov’s Law).

This can be a bit hard to wrap your head around at first. Like the premise of Pinker’s book The Better Angels Of Our Nature — violence in our species is decisively declining — it can be surprising to learn that our worst dread is actually not so bad at all. And getting a lot better all the time in a way that seems inexorable. It’s not just violence that’s getting better. It’s every damn thing. Maybe every damn thing is related to how much we kill each other?

I know it can be hard to take this victory lap. Thinking about all the idiots out there and all the suffering they’ve caused, it sure can seem bleak. But after World War II there really was a huge decline in massive genocides, pogroms, holocausts, wars, and so on. The 20th century seems like a giant skull and crossbones warning to the future that things are probably not going to go well.

What finally sold me though was thinking about all that death of the 20th century and then comparing it to one little statistic. In the 20th century, 300 million people did not die from smallpox. Many more were not maimed or partially incapacitated by it. Let’s all stop and take a deep breath and remind ourselves that smallpox was one of the worst foes of our species' history and we utterly vanquished it. In the 20th century. Hell ya.

And that leads to the book’s title which I just realized is a bit of word play. According to the IMDB

John Milius explained how he had come up with the title "Apocalypse Now". Apparently, this was derived from, at that time (1965), a very popular tattoo amongst the hippie community of a peace sign that said "Nirvana Now".

And that hippie community’s hopeful wish for something good is winning the fight against a more sinister apocalyptic outcome. Pinker rightly points out that it is not mystical woo that is winning this war — it is the intellectual framework of the Enlightenment.

Just as in The Blank Slate, Pinker had to anticipate his critics objecting to some pretty absurd stuff. In the Blank Slate, he knew some people were still adamant about the incorrect fact that no behavior, none, is genetically passed from parents to children. This stupid belief defies common sense and he had to forfend the same kind of nutty thinking in this book too. For example, he had to explicitly address the concerns of people who think that humans going extinct might be for the best. You may wonder who could possibly be against "progress"? Pinker reminds us and destroys their faulty reasoning. Some people gravitate towards disastrous (it has been shown by history) authoritarian regimes which restrict liberties we take for granted in the rich world. A rich world that has become rich precisely because of the liberties involved in tolerance, free expression, open-mindedness, scientific thought, impartial inquiry, free markets, evidence, logic, etc. If you think that everyone is on board with the Enlightenment, Pinker sets you straight. He then sets the doubters straight.

Almost all of the arguments in this book perfectly coincided with my beliefs. For example…

The lifeblood of science is the cycle of conjecture and refutation: proposing a hypothesis and then seeing whether it survives attempts to falsify it.

— p. 391

Popper’s book, completely changed how I think about science as I describe in my Review: Conjectures And Refutations.

Some points of agreement were uncanny. Check out these matches with things I’ve publicly said in the past.

Health care is being reshaped by evidence-based medicine (which should have been a redundant expression long ago).

— p. 380

The insane phrase "evidence-based medicine" did not exist before 1990. And even today it still needs to exist.

— @chrisxed 20171215 13:09

One technique [to avert Tragedy of the Belief Commons] was discovered long ago by rabbis: they forced yeshiva students to switch sides in a Talmudic debate and argue the opposite position.

— p. 379

In a debate if you can’t make your opponent’s best points, you can’t make yours.

— @chrisxed 20180305 19:13

…because what’s self-evident isn’t always self-evident.

— p. 413

If only the meaning of self-explanatory was.

— @chrisxed 20171128 08:46

But Pinker covers a lot of ground and he tips a lot of sacred cows. There’s something to make everyone grumble. I was most unsettled by his enthusiasm for nuclear power. But after reading his argument, I am convinced. Not that it is the way to go, but that it is worth exploring and keeping an open mind about. (In short, his argument is that first pass 1950’s reactors built on seismic faults are probably a bad idea, but new generation modern reactors are orders of magnitude safer and represent the only plausible way to do what really needs to be done with respect to climate change.)

Pinker definitely isn’t saying that there are no problems. He’s not saying everything is perfect. But he is saying that the best way to approach the problems that remain for our species is the way that we’ve met with dominating success beyond our ancestors' wildest hopes: Enlightenment values of reason, science, humanism, liberty, progress. He believes that framing our serious problems, like climate change, as engineering problems is not only the best hope at solving them, it is the only coherent non-stupid thing to do. By all means you can try prayer and crystal energy fields also if it makes you feel better but here in the real world, applying reason and scientific thinking is the only way to proceed.

An interesting reflection I had after reading this book is that it is the anti-news. In the "news", the goal isn’t to plainly inform (for that, I recommend the Wikipedia Current Events Portal). No, news agencies are trying to attract attention. They compete to generate the most sensational ledes possible. And our human limbic system is not wired to snap to attention when things are smoothly going well. It is designed to be deeply affected by potentially dangerous calamities. And, because of how our system is setup, that’s all we are ever shown, out of proportion to how much we really need to know about such terrible spectacles. But even that trend is highlighting strife and misfortune in a way that makes it even more intolerable for us compared to never knowing about it happening far, far away. As a consequence we are eradicating these problems at a pretty historically impressive pace.

This book is a wonderful antidote to the toxic news cycle. If everybody stopped watching the news for a month and instead read this book, the world would be a much better place. But as this book shows, if deep historical trends persist, it’s going to be a much better place anyway. We should not get complacent but nor should we be despondent. We are a species of extreme champion problem solvers! We got this!


For older posts and RSS feed see the blog archives.
Chris X Edwards © 1999-2018