I'm Ben and this is my website and dumping ground. I'm interested in the climate crisis, open source software, photography, interior design, and video games.

Find me at Mastodon, LinkedIn, or [email protected].

My most recent posts are below.

Brown Note

published 2024 May

I've been working on an iOS app recently, which is new for me. The app is called Brown Note and it is a food journal designed to solve the biggest problem I have had with other food journal apps: logging entries is so complex that my brain unconsciously stops doing it.

Customer Need

I'm slow to realize biological correlations. There are several weird things about my body, so it's not always obvious that when I eat A it causes poor experience B. Lots of things cause poor experience B, and also poor experiences C, D, and E, so I'm not always on the lookout.

It took me months just to realize that I didn't always have "stomach issues", a phrase I'll use as a shorthand for some combination of urgent, painful, and/or frequent poops, and that they might be fixable.

When my doctor suggested food journaling, I was diligent about looking for a high-tech solution in the form of a mobile app, and I found several.

Thus started a cycle:

  1. I choose a fantastic mobile app to use for food journaling.
  2. I use it to log every meal and poop.
  3. ?
  4. Weeks later, I realize I have stopped logging and completely forgetten about it.
  5. Repeat from 1.

As I tried more apps this way, and became more conscious over time about my falling off the wagon, I realized my issue was the friction of log entry. I would be eating among friends, or sitting down in pain, and a lightweight thought of "I should log this" would brush over my arm only to be dismissed"I'll log it when I'm free". Only when later came, it was still too heavy a process (and too delayed a gratification) to convince myself to do.

I realized I needed to remove as much friction from the process as I could. I would simplify my process so much that that light brushing over my arm would be a strong enough signal to log immediately.

Product Discovery

I carried a pen and a folded up piece of paper in my pocket, writing down everything that went into and out of me, occasionally copying them into a spreadsheet by hand, and doing some eyeball analysisand later some Python scriptingto find problem foods.

I did this because the physical pen would literally poke me whenever I sit down to do my business, but there was something magical about how the small size of the folded piece of paper forced each log entry to be brief. That magic allowed me to build a routine around it.

Version 2 was opening the aforementioned spreadsheet on my phone and directly logging there, but this slog quickly led me to version 3, an iOS Shortcut placed on my Home Screen that prompts for a single line of text, which it appends to the spreadsheet.

Simple Works

All I'm entering in these lines is plain text like "Good poop", "Bad poop", or a few words describing a food item. In some iterations, I didn't even include a date; order was enough.

  • Bad poop
  • Mango lassi
  • Chinese
  • Taco Bell
  • CookUnity
  • Soylent
  • Good poop
  • Taco Bell
  • Whiskey
  • Good poop
  • Chinese
  • Bubble tea

An excerpt from my v2 spreadsheet.

I'm not separating "foods" and "poops" into two categories of thing. I'm not typing out a bunch of tags or ingredients with every food item. If I zero in on a food that's too ambiguoussay, "pizza"only then will I start logging its components: cheese, bread, tomatoes. Until and unless that happens, simplicity wins. Keeping the routine going is more important than anything.

Into Swift

In the background of all this I'd become more and more interested in native iOS development, for several unrelated reasons.

After stalling out trying to make an unrelated app with a lot of complexity, I figured this was the perfect do-over to start simple. I started learning Swift and SwiftUI again, this time with SwiftData too.

The result is Brown Note.

A screenshot of Brown Note showing how a specific food, chai in this case, impacts poops, including percentages of good vs. bad poops that come after.

It was insanely easy to get Brown Note to a stage where I can use it for personal logging. The complexity all lies in the analytics and insights, which aren't part of its everyday use cases and so didn't block me from onboarding myself as a user.

A screenshot of Brown Note showing the user some meals they have tracked.

This helped immensely with design, as I would personally use the app several times a day, noting every rough edge and feature need.

A screenshot of Brown Note showing the user a poop they have tracked, and the estimated inputs (recent meals) to that poop.

I'm still in constant development, but the simple use cases are covered. As I build out more advanced ones, I'm being cognizant about keeping the logging experience dead simple.

For example, the app can understand food components (e.g. latte contains milk and coffee) but I'm shielding the logging experience from being impacted by it. When the app needs more info, it asks asynchronously.

A screenshot of Brown Note asking the user for the ingredients of saag paneer.

Let me know what you think, or join the TestFlight group to give me some feedback before proper release.

Wholesome Great Filters

published 2024 April

The Fermi paradox is the idea that based on the number of stars in the universe, each's probability of having a habitable planet, each of those planets' odds of developing life, and so on; statistically it's virtually certain some other civilization has become obscenely advanced, far beyond our own.

If such a civilization exists we should have heard from them by now, but we haven't. That's the paradox.

The Great Filter is one solution to this paradox. It proposes that some big bad event inevitably happens in the course of any developing civilization that dooms it, and it's the same event or events for every civilization.

Usually, ideas for possible Great Filters are dramatic and looming like nuclear war, climate change, hyperintelligent AI, plague, or exhaustion of resources.

I'd like to propose some more wholesome alternatives, each a little more unhinged than the last.

Stopped Having "Happy Accidents"

When speaking about populations, replacement is when the average person produces 1.0 children. Mathematically replacement is vital to the continuation of any species. An average production of even 0.9 children per person means each generation is smaller than the last, until there is simply no next generation.

We already know that as populations develop, birth rates decline. Contraceptives, family planning, education, individual freedoms, and opportunity all work together to create more thoughtful and intentional reproduction.

Historically, reaching replacement has been easy. It has had to be. Sex is fun, and sex makes children, so children get made.

But as we approach a world that disconnects recreational sex from conception, it's possible we won't reach replacement. It's possible we won't even get close. How many couples do you know who plan to have 3+ children?

Perhaps the largest human generation ever to exist already does. It will be a fantastic thing for each individual to lead their life how they want. It might also end the species. Lack of reproductive freedom is one of the more sinister evolutionary necessities. Perhaps once a species advances enough to fix it, it's the beginning of the end.

Perhaps countless civilizations have already gone through this.

Purposefully Stopped Inventing

Humans are unique on the planet for two reasons. First, we’re toolmakers. Second, we pine for more. More everything. The richest and most accomplished among us still want more. This carnal desire has brought us far evolutionarily, intellectually, and economically.

This desire for excess is probably a prerequisite for any species to become advanced. But perhaps that desire eventually causes enough planet-scale issues that it forces the realization that it can be overcome.

A small problem is ignorable and a medium problem is annoying, but a big problem is fixed.

Maybe we’ll reach some philosophical understanding of the universe and our own nature that shuts down that desire for excess, that makes every human being happy and healthy but doesn't also advance science, or at least spacefaring science.

If so, civilizations that have those two properties necessary for growth are stopped from growing by those very same properties' eventual destructive tendencies.

Once overcome, perhaps we'll stop extraplanetary operations and live out our lives on the planet we grew up on, solarpunk style.

Perhaps countless of civilizations are currently doing this.

An illustration of a solarpunk landscape, heavy with greenery and windmills.

Stunted by our Carrier

We're only starting to understand the complexity of the gut biome. It is an entire colony of bacteriaa civilizationthat operates inside us in symbiosis.

The bacteria in the biome probably don't know that their world is inside a person, who lives in an even larger world.

Maybe we're in someone else's gut biome. In the same way a bacterium doesn't have concepts for a coffee table or a planet, we could be missing concepts much larger than usoutside the visible universe, maybethat influence our world or galaxy or universe the same way our bodies influence our gut biomes.

Maybe that larger being has some defense mechanismlike we have white blood cellsthat prevents civilizations from getting into a bad state, and intersolar operations are a bad state.

Perhaps countless civilizations have already gone through this.


Maybe every civilization advanced to the point where they found a way out. Out of our universe, or our of our spatial or temporal dimensions. Maybe they discovered time travel and there’s some reason they really wanted to use it, so they time traveled their entire civilization far into the future, like past the heat death of the universe.

Maybe that’s what dark energy isplanets or star systems or galaxies that are time traveling from the past into the future, pulling the metaphorical fabric of spacetime up instead of weighing it down.

Perhaps countless civilizations will meet each other on the other side.


Maybe everything is perfect and many extraterrestrial civilizations exist just fine, just not in ways we can perceive, and maybe they equally cannot perceive us. Maybe they are what dark matter is.

Maybe there are entire empires spread across the galaxies thriving, but they somehow exist and have always existed in a perceptual level of the universe we don’t even know about, like how my dog doesn't know about wifi.

Perhaps countless civilizations are out there, existing among us.

Would It Be Bad to be Filtered?

Some of these Great Filters would actually be advancements. It would be great to reach fully reproductive freedom, or to re-achieve symbiosis with the resources available to us.

It pulls at me, though, that in these scenarios the species will stop existing, because I really want us to continue existing. I'm a curious person. I'm so curious, that even after I'm dead I want others to uncover all my unsatisfied curiosities of physics and the universe, even if I won't be around to be curious about them anymore.

But that's not my choice to make. If everyone alive is happy, and our species dwindles into nothingness because of it… is that bad?

Maybe countless civilizations have already gone through it.

Effective English

published 2024 January

Like a programming language, English's purpose is to taxi ideas. As well, there are many ways to do the same job, some more effective than others.

But unlike code, English presents two roads that ideas can drive down: the spoken word and the written word. They lead the same place, but one is a windy one-lane dirt road full of intersections and backtracking. The other is a coastal highway.

When we write, we pave the highway. We put in an enormous amount of effort up front to benefit people we don't even know will come. If we instead write as if we are speaking, the highway is quickly eroded by waters of disinterest.

Here's how to pave a highway.

Leave Something Out

Laura Shapiro shares an anecdote in Something from the Oven that box cake mixesthe ones where you just add eggs and waterat one point embedded the eggs directly in the mix, dehydrated to be as shelf-stable as the rest. Consumers merely added water, but sales were low.

Psychologist Ernest Dichter suggested leaving out the dehydrated eggs and directing the consumer to add their own. Consumers felt more engaged, and sales skyrocketed.

Let the reader add their own eggs.

Writing is Code Golf

Code golf1 can be fun, but it is infamous for yielding unmaintainable real-world code. Squishing as much information as possible into as few characters as possible inevitably sacrifices reader understanding.

The better code golf would be to optimize for reader time, not character count. That is, measure density as:

\[\dfrac{meaning\,gleaned}{time\ spent\ reading}\]

In writing, this kind of density means everything. There is no compiler, scaling, or even syntax to worry about. There is only the reader. They float in orbit, moving from piece to piece until they spot something interesting to land on. Clear words are like electromagnets that pull them in.

Be Nontechnical

Technical ideas can be expressed nontechnically a lot more often than you may realize. It is a matter of time and effort.

What is a static website generator? Take ten seconds to describe it in your head before continuing.

Here is mine:

A static website generator turns documents into websites.

What is Markdown? Again, try it yourself.


Markdown is an agreement on how to indicate rich text in plain text.

Your descriptions were probably more precise. Maybe you meandered a little and used some technical terms. The result of those actions is slightly more meaning, but it's a lot less understandable to laypeople.

Usually the trade is not worth it. Readers not in your mindset will be exhausted easily. Spend the effort to be at least one step less technical than is your instinct.

Use Imagery

Recall the seeds planted in you by your grade school training on imagery. It’s difficult to nurture the habit, but even a little thought can bloom beautiful prose.

Instill Understanding, not Correctness

\(E=mc²\) is technically wrong. The actual equation for energy is

\[E=\sqrt{m²c^4 + p^2c^2}\]

where \(p\) is momentum. \(E=mc²\) is a simplification that works well enough for human-scale speeds. But it is still taught in classrooms, all the way until reaching the point where it breaks downwhich most disciplines never reach. It is easier to teach that way.

Mold your concepts to be taught easily. Do not fret about being correct at the edges. Do not even mention the edges. They are a distraction from the teaching.

Prefer Understanding over Grammar

A grammar exists to make communication easier. But the English grammar was not constructed; it grew and grows organically. Patterns in sentence structure existed before anyone wrote them down, and new developments aren't decided by some council of elders. They're decided by popular use.

The English grammar is a description, not a prescription. Grammars and dictionaries are continually updated to match current usage, not the other way around.2

Aim to be understood. Don't let any rule get in the way.

Use Staging

Like code, the worst person to test what you've written is you. Find a friend who enjoys reviewing your work constructively, or stash the piece in some staging area and look at it in a month with fresh eyes.

You'll learn what works and what makes you bored of reading.

Give Yourself a Break

After all this, it's better to publish something 90% done than to toil away trying to reach 100% forever. Give yourself some slack and hit the button.

  1. Code golf is a form of entertainment where programmers try to solve a programming prompt in as little code as possible, however unreadable or unmaintainable the result may be.
  2. As an example of the bleeding edge between popular use and description: According to all major dictionaries, songs must have lyrics. If you go by that, the Mario theme is not a song. Much of the EDM genre is not songs.

2023 in Review

published 2023 December


Every December, I challenge myself to concentrate the harvest of photos I take during the calendar yeareach year's more bountiful than the last'sinto a dense 13-photo album.

I've just selected and published the photos from 2023. See them at photos.html.

My photography gear this year has been the Olympus OM-D E-M5 Mark III with the 14150mm ƒ4.0 as my everyday carry / daytime lens, and the 17mm, 25mm, and 45mm ƒ1.8 lenses for low-light.


In 2023, Summer and I were fortunate enough to go to France, Japan, and China.

I've never been a traveler. I bond with this style:

I spend most of the day psyching myself up to do one thingvisit a museum, perhapsand the rest of the day recovering from the only event on my itinerary.

John Green, The Anthropocene Reviewed

So it was not entirely surprising to discover this year that Summer and I enjoy spending 47 days in one city and dwelling, with at least half of those days planless, then going home.

Interior Design

I continue my interior design hobby in the background, but improvement comes slowly. I discovered Sweet Home 3D this year, which has helped me visualize options quickly. I've learned to not be picky about furniture visualizations.

We expect to move in 2024, so I have been playing around with ideas. I hope to share more later in the year.

Ignore Individuals. Fix Systems

published 2023 December

Companies don't make evil decisions. Companies don't make decisions. Companies cannot make decisions because companies are lifeless automata which react to stimuli.

An Example

In any population of companies, some companies will make parts offshore and some will not.

Maybe each company's reasons are rational, or maybe not, it doesn't matter. Maybe someone's cousin knew someone who knew someone. Maybe someone had a spreadsheet. Maybe someone went to an inspiring talk. It doesn't matter.

Zoom out.

Some companies will make parts offshore and some won't. Those companies compete with each other. One sells a product for $5, the other $9.

The company who sells for $9 can't get any sales. They go out of business. Now, the only companies left are the ones that already decided to make their products offshore.

Or maybe the $9 one is such better quality that consumers spend the extra money, and the $5 one goes out of business.

A citizen cannot complain that these companies are greedy or unpatriotic or don't care about quality and should be punished, because companies are lifeless automata. Punishment doesn't exist for lifeless automata. You can't punish a virus, or a bacterium. Well you can, but it won't help.

But you can edit the system so the virii, or bacteria, or companies you want to survive survive. You can tax things, or subsidize things, or require disclosure of things. You can say, "if you want to import a thing, the thing must have been made humanely, even if offshore". Or, "if you want to import a thing, you must pay X% tax which will be used to improve lives", or some such.

You can say, "if you want to take carbon or methane or nitrous oxide or hydrofluorocarbons out of the ground and put them into the sky, you have to pay 200% of the downstream cost to remove it".

Or, "if you want to take carbon or methane or nitrous oxide or hydrofluorocarbons out of the ground and put them into the sky, you need to buy the rights for the quantity you want to emit, and the rights are sold on the free market in a limited supply".

We don't need to name any companies. We don't need to call for the firing of any CEOs. We don't need to complain that they are not humane. The companies are automata. We need to fix the system to align the improvement of lives with companies' survival of market forces.

The Internet

This applies to the internet too. Why do YouTube thumbnails have clickbait titles? Because the channels that made clickbait titles, outcompeted the ones that didn't.

Why do recipe sites have 40 pages of nonsense before getting to the recipe? Because the sites that do that, had better SEO the ones that didn't, and so the ones that didn't couldn't afford to pay people to keep publishing new recipes.

Why do some news websites have more area on the page dedicated to ads than not? Because the ones that did that made more money than the ones that didn't, and invested that money into growing bigger, making more stories, and doing better SEO.

These are automata reacting to stimuli. It is useless to imagine an evil genius at the helm of these companies rubbing their hands together on a pile of money. It doesn't matter if that is what they are doing, it matters that our market, as we have built it, apply a sort of evolution that only leaves these companies behind.

And don't let anyone tell you that the market just exists as a natural system, with its own natural rules. We made the rules and we can change them with policy.

If you have the power to press a button and dismantle every evil company in an instant, and you pressed it, there would be some turmoil and then the market would drift back towards this unhealthy equilibrium.

We need to change the equilibrium.

Surprises in North China

published 2023 November

Summer and I recently stayed a few weeks with her parents in Harbin, China.

A satellite map zoomed out to see most of china. Harbin is circled in the far northeast.

Harbin is near the northern border, far from the popular coastal cities.

A few things caught me off guard about the culture. Things nobody really talks about, things even Summer remarked that she'd never thought about, but that affected my stay in subtle ways.

Natural Refrigeration

Kitchens this far north use their pantries as natural refrigerators, with the framing of the building set to expose 23 pantry walls to the exterior.

A photo of the outside of an apartment building, having a vertical slice jutting out with three walls of windows on it. Another photo of the same, but a different building. Another photo of the same, but a different building. Another photo of the same, but a different building.

More exposed surface area means more and faster cooling.

A photo of a wire rack with vegetables laying on it, like cabbage and green onions.

The pantry can be used to both cool and dry food.

Summer shared a half-joke that if you want a cold beer in the winter, you get it from the pantry. If you want a warm one, you get it from the refrigerator.

Hot Water

People in China drink their water hot, not cold, especially older generations. The tap water is not potable, so you have to sterilize it by boiling it. After generations of this, people prefer their water hoteven as filtering has become mainstream.

It's even embedded in traditional Chinese medicine that drinking hot water is necessary to restore your body's yang, and drinking cold water should be avoided.

And for what it's worth, for years after coming to the US Summer would get stomachaches after drinking cold water, especially on an empty stomach.

Whether physiological or psychosomatic it was clear the routine has an effect on a person, so I don't exactly blame anyone for the preference or belief.

It was a constant effort to convince her family I wasn't harming myself by drinking cold water.


Smoking is huge in China. China consumes about half of all cigarattes globally.

Smoking in restaurants is technically banned, but everyone does it because there's no enforcement. There's also no incentive to enforce it because tobacco is nationalized, bringing in ~7% of all government revenue.1

Like hot water, the tradition is stronger in older generations.


The food was by far the best part of China, though I've had a few years to acclimate my taste to authentic Chinese food in Seattle and Vancouver.

Some notable items I tried:

A photo of a clear bottle of gold-colored fizzy liquid, with a label depicting a loaf of bread.

Bread soda, with real yeast. My stomach doesn't recommend more than one at a time.

A photo of a small disposable bowl of wide noodles with veggies mixed in. In the background is a night market.

烤冷面 kǎolěngmiàn ("grilled cold noodles"), my years-long favorite Chinese food.

A photo of me, a white man, dipping a long donut-looking item in a cup of soy milk. We are sitting at a table on the street and the sun is rising.

Plain donuts (油条 yóutiáo) dipped in soy milk (豆浆 dòujiāng), a common if unhealthy breakfast.

A photo of seemingly normal cheese pizza.

Pizza Hut is a pseudodelicacy in China, similar to sushi in the US. It looks the same, but this pizza uses cream cheese and has a sweet, oily crust.

A photo of an egg tart in KFC packaging.

KFC sells egg tarts and a few other Chinese items. Neither of us enjoyed them, but it was interesting exploring international chains' local menus.

A photo of yumi lao, which looks like like (and is) a sugary mass of fried corn.

Fried corn fritters (玉米烙 yùmǐlào) are a sweet cross between popcorn, kettle corn, and corn. If you like those flavors, you'll love these.


No one carries cash in China; businesses universally accept and expect pay-by-phone. But there’s no tap-to-pay.

Instead, businesses have QR codes posted on their walls that point to WeChat accounts. The cashier tells you how much to pay and you send it over the internet, like a Venmo payment.

A nearby speaker announces incoming payment amounts automatically, signaling to the shopkeeper that payment was received.

City Limits

Before we left Seattle, Summer kept repeating to me that Harbin is a small town.

What she neglected to mention was that the population of this "small town" was 10 million. At first I attributed the number to China simply having 1.4 billion people, which is 1.1 billion more than I'm used to conceptualizing.

There's a different explanation though, and it is caused by a series of imperfect translations: China has no suburbs. Everything is city.

The city limits of New York, NY, USA overlaid on the city limits of Harbin, Heilongjiang, China. New York City's city limits are tiny in comparison, only about 2% of the size.

New York City (solid red, superimposed) is ~2% the area of Harbin (dotted red).

There is plenty of rural land. It's just that every square centimeter of it is technically in a city. Chinese cities have boundaries more akin to US counties or metropolitan areas.2

For example, take Beijing:

City Population Area Density
Beijing 21,893,095 people 16,411 km² 1,334 people / km²
New York, NY 8,336,817 people 1,213 km² 6,872 people / km²
Greater New York 19,617,869 people 8,936 km² 2,195 people / km²
  • Population
  • Area
  • Density

Beijing more resembles Greater New Yorka conglomeration of over 70 citiesthan it does New York City. A similar pattern holds for most Chinese cities.

Westerners in Social Media

I'm very white.

A photo of me and Summer dressed up at a nice dinner. I am white. Summer is Chinese. We are both laughing and I am showing the 'sign of the horns'.

Me and Summer.

Most people in China this far north don't really see white people. After two weeks walking the busy streets of Harbin, which has an (albeit small) international airport, I identified only one other non-Chinese person.

In Daqing, two hours away by car, children in the street stopped playing to stare at me. At the only Daqing restaurant we went to, several tables stared and one struck up a conversation with me.

Summer’s family had never met an American, but they had been exposed to the worst of the tropes and stereotypes on social media, mostly about the extreme political right. They were surprised by my kindness, politeness, and sunny disposition.


It's not omnipresent, but every few dozen breaths carry a sewage smell. Chinese plumbing tends not to use traps, which are plumbing tricks that prevent smells from traveling backwards up sewer lines.

A sketch of two types of traps, which look like capital 'N' shapes where the water comes in the top-right of the 'N' and leaves the bottom-left of it, leaving the middle section always full with a buffer of water, preventing air from traveling from the bottom-left to the top-right.

Traps make pipes airtight but not watertight. (Image: Nordisk Familjebok, 1921)

Traps are all over the place in western plumbing but virtually nowhere in Chinese plumbing, and you can tell within a couple of hours of landing. Trapless systems can be retrofitted with aftermarket trap-ish attachments, but the one we tried drained prohibitively slowly so was effectively a manual plug.

I hate to say it, but you get used to the smell.


Cameras are everywhere, literally multiple on every street corner. People like them because they make them feel safe, and indeed walking around the city at night does feel surprisingly safe.

As someone raised in the US, married to someone raised in China, this is the summary on this subject we've reached over the years:

  1. People raised in the US value freedom.
  2. People raised in China value safety.
  3. People raised in the US are apalled that anyone would live in a surveillance state.
  4. People raised in China are apalled that anyone would live in a gun state.
  5. When people raised in the US go to China, their friends and family worry for them.
  6. When people raised in China go to the US, their friends and family worry for them.

Pointing this out doesn't forgive either side for its issues, or even claim the issues are equal in importance. But it's interesting to see the same emotions come from concerned Chinese people towards the US, as come from concerned Americans towards China.

Maybe both are valid, or maybe not.

Personally, I'd opt for the one without a reputation for carefully crafting its own truths. But even that reasoning is influenced by where I happened to be raised.

Would I have the same preference if I were raised elsewhere? I'd like to think so, and people who know my neutral good side would agree. But we can't possibly be sure. Identifying bias doesn't disarm it.

In Sum

The few weeks we stayed with Summer's parents in Harbin were educational for me. A few things caught me off guard, things I'd not heard talked about or even things Summer hadn't consciously realized were different after emigrating.

I hope documenting them has helped you out. If so, I'd love to hear about it on Mastodon.

Thanks to Summer for feedback on drafts of this.

  1. https://www.theexamination.org/articles/how-china-became-addicted-to-its-tobacco-monopoly
  2. Officially it is far more complexfor example, 市(shì) is traditionally the word that translates to "city" but it actually has a lot more nuancebut I'm going by the conventional knowledge as I understand it.

Archives →