Seeing colors

« Keep two thoughts

Updates »

A Different Perspective

Emphasizing what's important

I'm updating my books and it's causing me to reconsider a lot of decisions. In some cases, the subject matter or our understanding of it has changed and so there are content updates.

But I'm also trying to clean up the look and feel of the books and make them easier to read on different devices.

One of the biggest problems I have is that I present my code differently than many books. In this post I'll use non-code/non-technical examples.

For example, suppose I'm discussing the text:

"This is a big deal."

Now I change this to be "This is not a big deal." I will emphasize the added word to make sure you notice it.

"This is not a big deal."

Or if I change a word or phrase I emphasize this change to direct your attention to it and I de-emphasize previous changes to focus on what's new.

"Eating cake for breakfast is not a big deal."

In my books I use colors not bold for these highlights because I'm often highlighting things in different ways.

Traditionally, programming books use syntax coloring. This would be the equivalent of coloring all of the nouns red, all of the verbs green, the adjectives blue, the adverbs... It just doesn't do anything for me.

We should only call out differences when they are important. Unless I am teaching linguistics or grammar, parts of speech are unlikely to be important.

Seeing the differences

As I said, in my books I use colors to call out these differences. Generally I use a blue for existing code, red for highlighted code, a gray for comments, and a fourth color for response the computer gives.

A reader wrote me to say, "I have color blindness and can't see the difference between the existing code and the new code."

He recommended an app that I could use to view my books as people with different forms of color blindness would see them.

Once I could see the code as he saw it, I was able to make the changes. I don't like the new colors as much as I liked the old colors but so what. The code listings now communicate well for this population I'd never thought about.

Until that email, I'd never really thought about how people who are color blind experience my book.

The "p" word

I have a lot of problems learning new material. It doesn't come fast or easy to me. I have to put in the work, find my metaphors, draw diagrams, write code, and sit with it for a while to see the point.


None of my difficulties come from color blindness. I see colors just fine.

Unfortunately, the word for this raises hackles and gets people defensive right away. Even my mentioning the word "privilege" is going to cause some of you to unsubscribe. I'll miss you, but I understand.

Here's what I want you to understand.

Me seeing colors fine meant that I never considered what it meant to not. It doesn't mean every area of my life is fine. It doesn't even mean my life is better than someone who is color blind. All it means is that I have the privilege of going through life seeing some things clearly that they can't distinguish.

I don't feel guilty that I can and they can't.


Now that I've been made aware that there's something I can do to make their life better, I try to remember to do it.

When my reader reached out and said you might want to consider people with red-green color blindness, I didn't respond, "all readers matter" or "blue-yellow color-blind readers matter." I looked into what I could do about it.

No one wins

So I sometimes have the same code examples but highlight the part of the code I want to discuss. So, for example I might have:

This looks great.

This looks great. and

This looks great.

And in the sections before each of those versions of the same sentence I will discuss the highlighted part. Again, I use colors to do this.

One of my friends wrote that he was reading my book and he thought I might have made a mistake and used the same code snippet three times.

I looked at the page he was talking about and it was the same code but in each of the different versions I had emphasized different parts in red.

Did he have a color blindness I didn't know about?

Before I could ask him, he followed up with a screenshot. He was reading it in Apple Books in Night mode. The background was black and the text (except for links) was white. All of my code highlighting was gone.


I opened programming books by other publishers. In Light mode they all had great colors and different ways of calling attention to things. In Night mode all of these differences disappeared.

No readers matter.

My books are written as epubs. This means that each section is essentially a web page. So I looked up Apple's support for Dark Mode (when the entire screen is set to dark) and it is quite good. With very little effort my pages looked great with white text on a black background with colors for code and highlighted code.

Then I packaged them up in a book and opened it in Books and all of this coloring disappeared. I'd just previewed it on a Mac and an iPad and it looked great. Once it was opened in Apple Books it was white text on a black background.

I found a hack online and used it but I worried because there was no documentation from Apple.

I contacted Apple and filed a bug report. Nothing.

What do you do when the system is keeping anyone from getting served?

I've used the hack and continue to try to get a response from Apple.

It's all we can do.

Notice when groups are being excluded. Care, even when the harm doesn't effect you. Listen when someone describes how they are harmed even if you can't see it.

For me I try to remember that it isn't that all readers matter, it's that each reader matters.

Link to the Podcast episode from September 29, 2023.

Links to my writing

I have a site where I post my essays that is named "Keep Two Thoughts". The title comes from the end of my eulogy for Kim which I delivered four years ago this past week. I've posted the entire eulogy on that site (you may have also seen it on the Dear Elena site or been with us on that day).

Oh also, this month's comic comes from the book rewrite and is a visualization of functions as vending machines.

As I mentioned, I've started updating my book A Swift Kickstart. I'll have some cool news about it next week. In the mean time I wrote about the update and also some issues I ran into with Swift Playgrounds.

I had two Apple related posts. One was on the need for a SwiftUI related Human Interface Guidelines document and the other was on Apple losing sight of two key audiences: the home office worker and education. Both of these are apparent during the pandemic.

Finally, I posted an adaptation of Maangchi's Easy Bulgogi recipe modified for mushrooms.


Margaryta Chepiga shared this picture of one of her coworker's coffee mugs which defines debugging as, "Being the Detective in a Crime Move where You are also the Murderer."

Justifying Evil

One of the many things I miss about Kim was her ability to explain how someone on the other side of a political issue could justify a belief that we found reprehensible. It wasn't that she agreed with their argument in any way - it was just that she could peer inside their head.

Greg Larsen challenged twitter followers to "Name someone who is universally agreed to be evil (genocidal dictator, serial killer etc) and I'll defend them and their actions using conservative logic."

As person after person (or someone's cat or whatever) was suggested, he deftly replied with arguments you've no doubt heard.


Marin Todorov links to an article he wrote about burnout based on his NSSpain lightning talk on the same topic in 2016.

Maggie's link

Maggie and I never discuss the topic of the newsletter so I'm amazed at how often we land on similar themes.

This week she links to an interpretation of The Odyssey in American Sign Language. Please read the description under the video for a description of the purpose of the project and some context for the performance.

Tuesday Triage

I don't remember if I've linked to this or not, but my favorite Tuesday newsletter is named Tuesday Triage and comes from Vadim Drobinin. It's full of great links and personal comments and reminds me of times I've enjoyed talking to him and is the best I can do until I see him again.

Other people's stuff

There were so many great features of Apple's yearly WWDC.

The sessions were well done and had the appropriate level and duration.

One of the few disappointments was that they didn't share a lot of their sample code. Often the devil is in the details and it's difficult to embrace what's being taught without being able to emulate their code or see how something is even possible.

It is particularly frustrating when the same app is used for multiple sessions as was the case for the sandwiches app. Sure, I love a great story about how this presenter or that loves sandwiches - but I'd much rather be able to see the code.

The great James Dempsey comes to the rescue with his Unofficial Sandwiches repo. He's created a git repository containing a version of the app that you can follow along with and learn from.

Newsletter 2020

Newsletter by Year