View from our backyard at 9am. Taken straight out of the camera, white balanced to sunlight. It looks like a photo taken on Mars. đ
đđ» Hello!
Blog Posts
For those who appreciate clean air…

It seems like every year, late in the summer or early in the fall, the air in the Bay Area fills with thick smoke from raging infernos happening around northern California. The air is hazardous to breath, preventing you from taking kids to the park, walking your dog or even opening your windows.
Last year, we made the wise decision to purchase an air purifier, which admittedly, looks like a giant iPod shuffle.

As fires continue to burn around these parts, weâve started to rely on air quality data from PurpleAir, which monitors air quality data from a series of IoT sensors that people can purchase for their homes or businesses.
You can view a map featuring realtime data collected from their sensors. Here in the Bay Area, the sensors are quite ubiquitous and can give a more realistic pictures of air quality near your home.
For example, here is the current air quality around the Bay Area from PurpleAir while I write this post.

For comparison, here is the current air quality map for Bay Area Air Quality Management District (BAAQMD), which we used to reference when trying to determine local air quality.

The fidelity you get from PurpleAir is pretty amazing.
Knowing this, I decided to write a Node app that periodically queries PurpleAir for air quality data from a sensor located a few blocks from our house. It continuously runs on a Raspberry Pi setup in our entertainment center and sends me a text message to close our windows when the AQI crosses above 100.

Iâve made the source code available on Github. Check it out!
Comet NEOWISE from Oakland
Comet NEOWISE, captured from our backyard in Oakland. See you again in 6,800 years!
It’s kind of fun when a band gives you a call out…
In the early 2000âs, one of my favorite punk bands was Tsunami Bomb. I followed them up and down the West Coast, going to a ton of shows and meeting a lot of cool people in the process. They went on hiatus in 2005. In 2009, the had a reunion show up here in the Bay Area, so I went and took a number of photos.
(Interestingly, they reformed again in 2015 with a slightly different lineup⊠and I sadly havenât gone to see them live yet).
Anyway, they recently had an Instagram post celebrating their anniversary and posted one of my photos. Nice!
It was a pretty awesome show. A few more photosâŠ
Book Review: “The Wax Pack” by Brad Balukjian
The premise: a baseball fan fondly recalls his childhood memories of obsessively opening and collecting packs of baseball cards.
While watching an Aâs game one afternoon at the Coliseum (which he rightly describes as a âpost-apocalyptic crater ringed with hot dog standsâ), he wonders what the players featured on the cards he collected as a kid were doing with their lives after their baseball careers had ended.
After purchasing a pack of cards on eBay from 1986, (the first year the author remembers having baseball cards), he sets off on a road trip across America to find and hopefully meet the 14 players featured in this 30-year-old card pack.
High jinks, hilarity and even important life lessons ensue.
This was just a great read and I highly recommend it for any baseball fan. Check it out on Goodreads.
A simple dark-mode hook for React
I recently wrote a simple hook for React to automatically detect a deviceâs dark mode preference (as well as any changes to it) and style your web app accordingly, using something like ThemeProvider
from styled-components
.
It was developed as part of a side project I was hacking around on using my personal React Starter Kit, which is my own React project for quickly getting prototypes and side projects up and running.
Iâve released this as a standard GitHub repo instead of an NPM module due to the simplicity of this hook, especially in light of one-line packages breaking the Internet. To use it, just copy it into your project where needed.
Iâve released this under an MIT license. Feel free to use as-is, fork, copy, tear apart, profit, and share as you wish.
You can check out the code on Github.
Benson is all of us

Pandemic problems.
This might explain why I enjoy washing dishes
Fun fact: I like washing dishes.
In light of current events, Iâve found myself doing it much more than usual. However, Iâve never really been able to explain why Iâve enjoyed it so much but Iâve felt there is something relaxing and even meditative about it.
It turns out, Iâm not alone in this line of thinking and itâs been mentioned by ThĂch Nháș„t HáșĄnh as a way to cultivate mindfulness.
Adam Hanley randomized two groups of college kids and had half read Thich Nhat Hanhâs instructions for mindful dish-washing while the others read simple, mechanical instructions.
After the students washed the dishes, members of the group that had read mindfulness teachings reported having a better experience, a joyful experience, and had lost track of time.
Hanleyâs study was published in 2014. Some notes from the abstract are below:
This study sought to investigate whether washing dishes could be used as an informal contemplative practice, promoting the state of mindfulness along with attendant emotional and attentional phenomena. We hypothesized that, relative to a control condition, participants receiving mindful dishwashing instruction would evidence greater state mindfulness, attentional awareness, and positive affect, as well as reduce negative affect and lead to overestimations of time spent dishwashing. A sample of 51 college students engaged in either a mindful or control dishwashing practice before completing measures of mindfulness, affect, and experiential recall. Mindful dishwashers evidenced greater state mindfulness, increases in elements of positive affect (i.e., inspiration), decreases in elements of negative affect (i.e., nervousness), and overestimations of dishwashing time.
Fixing rendering issues with React and IE11

Happy April Foolsâ Day. This post is no laughing matter because it deals with IE11. đ
Awhile back, we had an issue where visitors to our site would hit our landing page and not see anything if they were using Internet Explorer 11. The skeleton layout would appear on the screen and that was it.
Debugging the issue using IE11 on a Windows box proved to be difficult. Normally, we open up the inspector window, look for an error stack and start working backwards to see what is causing the issue.
However, the moment I opened the inspector, the site would start working normally again. This lead me down a rabbit hole and I eventually found a relevant post on StackOverflow: âWhy does my site behave differently when developer tools are open in IE11?â
The suggested solution was to implement a polyfill for console.log
, like so:
if (!window.console || Object.keys(window.console).length === 0) {
window.console = {
log: function() {},
info: function() {},
error: function() {},
warn: function() {}
};
}
Interestingly, we didnât have console.log
statements anywhere in our production build, so I figured it must be from some third party library that we were importing. We added this line of code at the top of our web appâs entry point to try and catch any instances of this. For us, that was located at the following path: src/app/client/index.js
After rebuilding the app, things were still broken, so the investigation continued.
We eventually concluded that the issue had to do with how our app was built. Our web app is server side rendered and we use Babel and Webpack to transpile and bundle things up. It turns out, Babel wasnât transpiling code that was included in third party libraries, so any library that was using console.log
for one reason or another would cause our site to break.
(The fact that IE11 treats console.log
statements differently when the inspector is open vs. not is an entirely separate issue and is frankly ridiculous.)
Knowing this, we were eventually able to come up with a fix. We added the polyfill I posted above directly into the HTML template we use to generate our app as one of the first things posted in the head block. The patches console.log
so that itâs available in any subsequent scripts (both external or not) that use it.
<!doctype html>
<html>
<head lang="en">
<meta content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0" name="viewport"/>
<meta charSet="UTF-8"/>
<script>
if (!window.console || Object.keys(window.console).length === 0) {
window.console = {
error: function() {},
log: function() {},
warn: function() {},
info: function() {},
debug: function() {},
};
}
</script>
After that, everything started working again in IE11.
#TheMoreYouKnow
Relevant excerpts from âSpilloverâ
In light of the current COVID-19 pandemic, Iâve been reading âSpillover: Animal Infections and the Next Human Pandemicâ by David Quammen, published in 2012 (!!). It takes a look into various zoonotic viruses that make the jump from animal to human. There have been a number of passages that have just jumped out and resonated with me as Iâve been reading.
One further factor, possibly the most crucial, was inherent to the way SARS-CoV affects the human body: Symptoms tend to appear in a person before, rather than after, that person becomes highly infectious. The headache, the fever, and the chillsâmaybe even the coughâprecede the major discharge of virus toward other people. [âŠ] That order of events allowed many SARS cases to be recognized, hospitalized, and placed in isolation before they hit their peak of infectivity.
And a few paragraphs later:
âThat probably helped account for the scale of worldwide misery and death during the 1918â1919 influenza: high infectivity among cases before they experienced the most obvious and debilitating stages of illness. The bug traveled ahead of the sense of alarm. And that infamous global pandemic, remember, occurred in the era before globalization. Everything nowadays moves around the planet faster, including viruses. If SARS had conformed to the perverse pattern of presymptomatic infectivity, its 2003 emergence wouldnât be a case history in good luck and effective outbreak response. It would be a much darker story. The much darker story remains to be told, probably not about this virus but about another.â
One section of the book that was especially chilling involved the monkeys that inhabited the sacred monkey temples on Bali. In 2014, Kerry and I took our honeymoon there and I had even posted about the crazy monkeys: âWhile cute looking, the monkeys here are ridiculously aggressive. It was a bit scary!â
Anyway, the monkeys on the island are all apparently infected with herpes B, which kills nearly everyone.
The monkeys arenât shy about accepting, even demanding, those handouts. They have lost their wild instincts about personal space. Enterprising local photographers run a brisk trade in photos of tourists posed with macaques. âAnd hereâs me in Bali, with a monkey on my head. Cute little guy, just wanted that Snickers bar. But the cute little guys sometimes bite and scratch.â
Engel, Jones-Engel, and their colleagues gathered two interesting sets of data from this place. They surveyed the monkey population, by way of blood samples; and they surveyed the human workforce at Sangeh, by way of interviews and also blood samples. What they found says a lot about the scope of opportunity for virus spillover between Asian monkeys and people.
The team drew blood from thirty-eight macaques, of which twenty-eight were adults, the rest youngsters. They screened the blood serum for evidence of antibodies to herpes B, the same virus that killed William Brebner and most of the other people ever infected with it. The results of the lab work were chilling: Among adult long-tailed macaques at Sangeh, the prevalence of herpes B antibodies was 100 percent. Every mature animal had been infected.
But, there is good news!
The researchers merely estimated that there must be thousands of monkey-bitten tourists walking away from Sangeh each yearâand Sangeh is just one such Balinese monkey temple among a handful. The odds of a human contracting herpes B under these circumstances seem vast.
But it hasnât happened, so far as anyone knows.
I recommended the book to my dad and he asked if it had a happy ending. I shared this passage toward to end of the book with him.
âThese scientists are on alert. They are our sentries. They watch the boundaries across which pathogens spill. And they are productively interconnected with one another. When the next novel virus makes its way from a chimpanzee, a bat, a mouse, a duck, or a macaque into a human, and maybe from that human into another human, and thereupon begins causing a small cluster of lethal illnesses, they will see itâwe hope they will, anywayâand raise the alarm.
Whatever happens after that will depend on science, politics, social mores, public opinion, public will, and other forms of human behavior. It will depend on how we citizens respond.â
He replied simply, âso much for the happy ending.â
â
I ended up rating this book 5 stars on Goodreads. I probably wouldnât have discovered it if not for the current global pandemic, but it is something I think Iâd have enjoyed before everything changed. David Quammen looks at a number of zoonotic diseases (SARS, Lyme, and AIDS among them) and their fascinating histories.