The Making Of Climateer

Climateer is an app that I recently released in the iOS App Store. As the tag line says, it’s an attempt at making climate change something you can see, something you can monitor to make up your own mind about what’s happening. Whether that will prove to be successful is still up for grabs, but I thought it would be interesting to explain the story behind it.

I started working on bits of code that eventually turned into Climateer about 3 years ago. I was tinkering with a much smarter form of social media where each post could be programmed to be interactive and to perform actions. That is itself an idea that merits its own post, but for now let me just say that one of the ideas was that a post could fetch data and display it graphically.

I had done a proof of concept of a post that, given:

  • A URL to a source of scientific data.
  • A regular expression describing the data format.

Would download the data and display it in a graph. That was all good and exciting but the smarter social media idea itself required more resources to pull off than I could put together and that effort just sat there unused.

A little while later, I was preparing for an upcoming climate march. Increasingly feeling like something has to be done to communicate the importance of what is happening, I was trying to think what I could do. And I thought of the smart post proof of concept in which I had used the CO₂ data from the NASA Vital Signs site.

I just wanted people to see the CO₂ level. I thought I’d just make a quick app that displayed the creeping CO₂ level in a Twitter-like timeline. So I wrote code that downloaded the historical data, extracted the data points, and displayed each one as a “post”. Reusing the graphing code from my proof of concept, I even made it possible to tap on each one to view the full CO₂ level graph.

I went to the climate march with this app in my pocket. I don’t know what I was expecting. I had put it together at the last minute so there had been no time to make it a shippable product, let alone submit it to the App Store for review. I also chickened out from showing it to anyone there because it seemed silly to show it to people who obviously already understood the urgency of the situation.

So I came home and continued working on it.

I added support for the global sea level data. I also did some UI work like adding pull to refresh to update the timeline.

And that was nice so of course I didn’t ship it. I added support for RSS feeds, not because it was super important, but just because parsing RSS feeds in Swift using XMLCoder is so much fun and displaying an RSS article in a WKWebView is so easy.

And then I realized it didn’t make sense for all these data sources to be built into the application. Oh the horror of having to ship an update each time I wanted to display something from a new source. So of course I created a JSON file on my web site that listed all the data sources, and modified the app to dynamically update its internal list from there.

I was happy with that. Did I ship it? Of course not. Greta linked to the Global Footprint Network and off I was adding overshoot days as my next pet feature. However this one was not a simple x/y data set, so I had to devise a new mechanism to describe it in my JSON source file in a way that the app could display.

That totally worked. My app was now able to handle different types of data sources while having minimal knowledge of them built-in. The next logical step then was to not ship it and implement the ability to extrapolate the data for cases where the available data did not extend all the way to today.

Obviously I could have polished what I had built up to that point and submitted it to the App Store. But there is so much climate information out there, each one more tantalizing than the previous one. This time I set my sight on the MCC carbon clock. Because displaying how much time we have left until doom was obviously a hard requirement to make this a shipping product. And at this point the app is agnostic, so I had to invent yet another way to describe this to the app without hardcoding it in.

This rigmarole of adding features went on for over two years. These episodes were interspersed with periods of polishing work that consisted partly of me repeating that if I can just finish x then I can ship it. But then I another possible feature caught my attention. This process is of course a very important part of software engineering that many developers out there who work on personal projects will handily recognize.

Over time I added support for entering personal notes, iCloud syncing, displaying country flags, showing temperature data, running the app on iPads, running the app on macOS, properly attributing data to their original sources, exposing customization settings, navigating the timeline with a scrub bar, displaying explanations of the data, and accepting donations. I also made countless iterations on the user interface. Not mentioning the making of an app icon that I thought I could stand looking at every day.

As time went on, the added complexity was not helping my case. Implementing features and moving to others without completely finishing the previous ones is rarely a recipe for success. The more features you have to polish, the more daunting the shipping effort seems to be. There was also the added anxiety that while I was doing this, climate change was continuing to get worse.

All that to say you sometimes have to just go for it. There is a ton of polish I feel is still missing in Climateer version 1.0. Better onboarding. Better UI. Better graphs. You name it. But at the end of the day, I’m happy it’s out there and I really hope some people find it useful.

The False Narrative of Changing our Behaviour to Fix the Climate

The Guardian published the results of a 10-country survey on behavioural changes people are willing to make to combat climate change. Foretelling the authors angle, two of the titles in the study presentation are “Accelerating behaviour change for a sustainable future” and “Sharing the responsibility for climate action”.

The implication from this form of phrasing is that we as individuals are responsible for climate change. We are not. And going down this path is buying into a narrative that has been peddled for years by business and industry with the specific intent to clean their hands of that responsibility.

We saw it with recycling. We were led to believe that if we recycled, things would get better. They did not. And the reason for this is that we are not responsible for materials being overproduced and wasted. Individuals don’t mass produce goods. Businesses do.

The premise of the study is therefore incorrect and the results void of any usefulness. A more sustainable future cannot come by asking people to change their behaviour. Expecting that this will happen is, in effect, saying that businesses are waiting for consumers to change, and if consumers don’t change, businesses won’t either, and therefore we’re all fucked and it’s our fault.

The madness in repeating this narrative is infuriating. Primarily because it’s entirely backwards. We are part of a system, so change has to come from the top down. Governments must put laws and incentives in place, businesses will then change how and what they produce, and finally consumers will automatically make the more sustainable choices.

Some of the survey questions frame the problem using “I” in a way that are immediate non-starters.

I don’t think there is an agreement among experts on the best solutions to preserve the planet

I disagree with the question. There is no set of solutions that will fix everything. We don’t need the best solutions and debating which ones are the best is pointless. We need all the help we can get and so we should apply all solutions. If a solution gets us one drop in the ocean closer to our goal, we should use it.

I lack information and guidance about what to do

I think I’m more informed than the average person, but again, the problem is not that every single citizen needs more information in order to solve the climate crisis. We do not hold the levers that can make these changes happen. I don’t have a billion dollar chequebook and I don’t control an oil multinational. Do you?

I believe environmental threats are over estimated

What I believe does not matter. If the captain of the ship says we’re about to hit an iceberg, what I personally believe has absolutely no bearing on what needs to be done. It’s not our job as citizens to decide what is the level of threat. We are seeing first hand during this pandemic the terrible damage that occurs when individuals unilaterally make societal decisions. We cannot ask the patient to decide on a course of treatment. That’s the doctor’s job.

Of course we do have to change our habits. Some of us don’t know it yet and that is fine. Because the problem is not us. We only consume the products and services that are offered to us. The idea that businesses are waiting to offer cleaner or more sustainable products until consumers start buying them is ridiculous. If the only car available is an electric one, that’s what people will buy. Businesses have to offer cleaner products and services. And it’s the government that has the power to force them to do it.