On Edges

I use a lot of subtle effects in my mapping work. Knockouts, inner glows, blurs, and other such tricks help me separate land from water, or keep my text legible. Until recently, I thought of all of these tools separately, each one for use in its own situation. However, in the last year or so, I’ve slowly come to understand how they’re all related to each other, and how, when I’m using any of these effects, I’m getting at the same overall idea: the manipulation of edges.


By an edge, I mean a shift between colors. The stronger the contrast between the two colors, the stronger the edge. Likewise, the more abrupt the shift, the stronger the edge.

I’m sure there are more refined definitions, used by people who study visual perception, but I’m making this up as I go along.

In any case, edges help our brains separate objects (or perhaps we might say graphical marks) from each other and understand their shapes. In fact, I recall reading once that our brains even have special cells that detect edges. In the example above, the sudden shift in color sets off those edge-detecting cells, and they then allow you to perceive the shape of a circle, as a separate object on the page.

As I have come to understand, many of the cartographic tricks that I regularly use are, in essence, about making edges stronger or weaker. 

An Example: Glows

Let’s consider glows. Here I have two islands, one with a glow, and one without:

On the left, the edge between the two shapes is weak because there’s not a lot of contrast between the colors, so it’s not easy to perceive (though you can probably manage it). On the right, the edge is stronger. Let’s zoom in on what’s going on:

The glow has darkened the color of the land by a small amount at its edge. This means that the contrast between land and water is much greater there than it was, and the edge is thus stronger and easier to detect. The glow then fades away quickly, so that most of the land polygon remains the original color. In essence, we’ve changed the color of the land temporarily, just to give the edge a boost and help our brains tune in to the shape.

It’s also quite possible to use glows to make edges weaker. Here again I have two islands:

The one on the left has no glow, but has a good color contrast and so the edge can be perceived. On the right, the glow has muddied things. By darkening the water along the coastline, I’ve made the water’s color closer to that of the land. Thus I have weakened the contrast and made the edge harder to see.

Understanding all this has been very helpful to me. For a long time, I knew that glows could help one part of my map stand out against another, but I would apply them rather naively. I would often accidentally make an edge worse, as above, because I either put my glow on the wrong side, or made the polygon darker when I should have made it lighter. Understanding that glows are all about edge enhancement has helped me pick the correct option the first time.

But glows are just one example. There are plenty of other little effects I use in my work that are also about edges. And we can break them down into two groups: techniques that enhance edges, and those that reduce them.

Edge Enhancements

Let’s quickly go through the list.

Inner & Outer Glows

We just went through these, so you probably get the idea. While they are generally used to increase edges, you could also use them to weaken edges, but that’s not usually how they get applied. Note that outer & inner glows are really the same thing, but are separated in software like Adobe Illustrator, where the terms just refer to whether the glow effect goes on the outside or the inside of the polygon you’re applying it to.

Drop Shadows

These are actually just glows that are slightly offset:

Once again, I’ve simply darkened the edge of the island, thus improving the contrast between the land and the water and making the edge stronger. The island on the left relies on a contrast between pale yellow and pale blue. The island on the right is defined by the much better contrast between pale yellow and dark grey (which then fades down into the pale blue). The fact that the shadow is a little heavier on one side of the circle also tricks our brains into perceiving a little 3D effect, but that’s a separate matter.


Sometimes people put a stroke around their text to help it stand out against a busy background.

Notice that the text on the right is easier to read. Here, I haven’t really enhanced the old edge so much as I’ve replaced it with a new one entirely. On the left, there’s a weak edge between the dark green text and the busy green background. On the right, there’s now a strong edge between the green text and the white stroke around the text. And then there’s another strong edge between the halo and the background. So we’ve effectively doubled the number of edges and strengthened them, meaning the shapes of the letters are much easier to pick out.

Sometimes I (and other mappers) use the term “text halo” to refer instead to an outer glow or drop shadow effect applied to text. It still works to make text legible by enhancing edges, but it’s subtler (I’ve exaggerated it a bit here so you can see it easily):

It draws less visual attention because there are fewer edges. There’s still a strengthened edge between the text and the rest of the map, but now there’s no hard edge between the halo and the background. That’s been made to gradually fade away.

Edge Reductions

Sometimes we want to make edges weaker, instead. Why? Because they draw attention. Here’s an example I used in a recent tutorial:

Notice how the text can easily be read when it’s against a light or dark grey background, but when the background gets striped, things get more difficult. Those stripes make edges that demand your brain’s attention. They act as a form of noise, making it hard for you to pick out the important edges: the ones that define the shape of the words.

Sometimes we want to get rid of competing edges that pull attention away from the ones that we want readers to notice.


In the above example, the solution was to blur the background:

By blurring things, the stripe edges get weaker and draw less attention, letting us focus better on the harder edges of the text.


Another solution (again, often used with text) is to do a knockout. This simply hides features that are getting in the way:

The red lines vanish near the text (and the black dots, for that matter). Now the only edges that are in the vicinity of the text are the ones formed between the text and the background, meaning there’s nothing interfering with our ability to perceive the shapes of the letters.


A feather is often not much different than a blur. Instead of giving an object a hard edge, you can let it fade away gradually, on one side or all around. Here, I’ve feathered one side of a dashed line:

There’s a hard edge on one side of the line, but a weak edge on the other. In this particular case, I used the distinction to subtly indicate to the reader which area was inside of the polygon (the area bounded by the feathered edge) and which was the outside (the area bounded by the hard edge).

Parting Thoughts

Blurs are sort of like feathers, and feathers are sort of like glows, if you think about it (a glow is just a stroke with a feathered side). Again, these various techniques, each with their own name, are all aspects of the same central idea: strengthening or weakening the contrast along an edge.

And that’s really the point of this whole post. Most of these techniques are probably already in your toolkit, or are at least not unfamiliar to you. However, I think it’s valuable to not only understand that a tool can make your work better, but to understand why it does so. For my own part, I think that understanding the bigger picture of how these techniques fit together will help me use them more intelligently in the future.

Blurring Backgrounds to Improve Text Legibility

In past years, I’ve talked about how to improve the legibility of text using both knockouts and halos. Since I wrote those guides, I’ve added one more tool to my arsenal: blurring. This is a technique that was shown to me by Joshua Stevens, who suggested it in a Twitter conversation a few years ago.

Below, we have some text on a busy background. Have a look at the labels for Cold Bay and Unalaska. I’ve given them a hand by knocking out the coastline, but they are still a little tough to read.

Of course, I could have also adjusted the text color/size to help further, but sometimes that’s not always practical or desirable. So, let’s keep the text as-is, and just blur the background a bit.

The difference is significant. The text is foregrounded now, and more easily legible. It’s a simple change, conceptually, but it makes a big difference, especially if the text is smaller or lower-contrast.

Why does this help so much? Because it reduces the number of edges! Humans have special cells in their brain to detect edges, where one color abruptly changes to another. We’re attuned to them, and so they draw a lot of attention. They’re also what text depends upon. For you to perceive the shape of a letter (or any other shape for that matter), your brain has to pick out its edges. And having too many other edges around can make that harder. Notice how you can easily read the black text below when it’s placed against either a light or dark grey background, but it suddenly becomes difficult when those same two background colors are striped.

The problem is all those edges, demanding your attention and adding, in effect, noise. The many edges in the background are distracting you from the important edges that define the shape of the words. If we blur them, the edges of the text become much easier to perceive.

This is also one reason why making knockouts can be helpful — by getting rid of lines underneath our text, we’re reducing the number of competing edges.

So, let’s dive in to how to make this happen. We’ll cover Illustrator and Photoshop, starting with the former. As usual, though, the concept’s the big thing, and if you have a handle on that, you should be able to make this work in plenty of other programs. And in future versions of Illustrator/Photoshop, if they end up changing what the interface looks like.


Let’s go back to the first example. I’ll zoom in on the Cold Bay label.

You can see I’ve got a bunch of layers with text, thematic data, and more. The bottom-most layer happens to be a raster file containing the terrain and the hexagons. By itself, it looks like this:

To begin, I’m going to duplicate that base layer. In my case it’s just one file, but you can do this with a bunch of artwork if you want. The technique is the same, no matter what you have in your basemap layer (including other layers inside that layer). I put the copied layer atop the original, and then I click on the layer’s appearance selector (the little hollow circle to the right of the layer name). It’s important to click the appearance selector for the overall layer, rather than targeting the individual appearances of each item in the layer. If that doesn’t make any sense to you, have a look at my Even Fancier Type Knockouts in Illustrator tutorial, which goes into the distinction.

I’ll head up to the top menu and choose Effect → Blur → Gaussian Blur. The amount of blurring that gets input here will vary based on what’s going on with your basemap, so I can’t give you a number. I’m going to start with 6 pixels, and I can always change it later.

Now it’s blurry. If we turn on our other layers, we can see how it’s starting to look.

Of course, we really only need it to be blurry around the text. Everywhere else, we want to keep our data looking sharp. To do that, we’ll turn to our old friend the opacity mask, which we’ve relief on heavily in some past tutorials. I recommend you have a look at those before we go on, if you’re not familiar with what they are or how they work — I’ll be skipping over the details this time.

First I create an opacity mask for the blurred layer. By default, Clip is set, and (for once) we want that to remain checked. Clip tells Illustrator to hide the layer by default, and only show areas that we specify via the opacity mask’s contents. So at first my blurred layer will disappear. Next up, I select all my labels, copy them, and paste-in-place them into the opacity mask.

Next up I’m going to get rid of the dark halo I have on some labels, and make all of these label copies white. In an opacity mask, remember that white = 100% opacity, and black = 0% opacity. That means that the blurred base layer should show up where the text is. If I quickly switch back to the main map view (outside the opacity mask) and then turn off the text, you can see that happening. Since Clip has been selected, any part of the blurred raster beyond the text areas is hidden.

See how there’s a bit of blurred raster where Cold Bay is? That’s not enough, of course. We need it to blur somewhat beyond the text to be effective. So, I’ll go back to my opacity mask, and give all my labels there a white stroke. I’m going to go with 3 points, though you may want to play around with that. Since my text is white, and the view of my opacity mask is white, there’s not much to see. But if I go back outside the mask and have a look (and turn my text layers back on), we can see that it’s working.

Now the blurred layer extends beyond the text! We’re pretty much done, though there’s one fine-tuning bit that I prefer to do. I like it if the transition between the original and the blurred part is smoother. So I’m going to go back to my opacity mask one last time and select all my text in there. Then I’m going to go to Effect → Stylize → Feather. Note that “Stylize” appears twice in the Illustrator menus; you want the first one.

Feather creates a softening effect on edges. Again, because my text is white, there’s not much to show here. But, here’s what it would look like if my text were black:

I just quickly changed it to black to make things visible, but the real thing needs to be white. The text in the opacity mask controls where the blurred raster shows up, and now it has a fade-in effect, so the blurred raster will, too.

And we’re all set! Note that doing this in Illustrator tends to slow the program down a bit, and lead to large file sizes, so I recommend saving it for the end when you’re finished up the rest of the map. And the labels in the opacity mask are fixed, so if you move a label on the map, don’t forget to move it in the opacity mask, too.

As I mentioned, you can do this to a layer, or a layer that contains layers, or just to a single background image. It’s all the same. You can also make use of the Appearance panel to go back and tweak the amount of blurring. Or you might adjust the feathering or stroke width of the text in the mask, as you prefer.


As you might imagine, you can do the same thing in Photoshop, via a pretty similar process. Here (in this somewhat contrived example), I’ve got some text against a shaded relief background. It’s not too illegible, but it could be a bit better.

Once again, I duplicate my background layer, and I give it a blur (Filter → Blur → Gaussian Blur). In this case I went with 8px, but it will vary with each map. I just turned it up until it seemed like the text was standing out well against the background.

Next we need to once again confine our blurred raster to just the areas around the text. I’m going to hold Cmd (or Ctrl on a PC) and click on the “Some Text” layer. This will select all the pixels in the text. Next, I’ll make that selection a little bigger by going up to the top menu and choosing Select → Modify → Expand. I picked 14 pixels, but, again, your mileage may vary depending on the map.

Next, I go to the Layers panel and make sure I’ve highlighted the blurred layer. Then I hit the Add Layer Mask button along the bottom of the Layers panel, which looks like a dark dot in a light rectangle.

Clicking that creates an opacity mask for the blurred layer, and confines it to the area of our selection (around our text).

Once again, it would be nice to soften that transition a bit. For that I’ll go to the Properties panel (if you don’t see it, go to the top menu and choose Window→ Properties). The contents of the Properties panel vary depending on what you’re doing in Photoshop. I’ll click on the opacity mask in the Layers panel to highlight it, which causes the Properties panel to show me options for adjusting my opacity mask. Then, I can drag the Feather slider, or just type in a number, to soften the edge of my opacity mask.

And now it’s got pretty much the same effect as we achieved in Illustrator. Improved legibility, without having to add a halo or change text/background color. It’s very handy in these sorts of monochrome situations where your palette is restricted.

So I hope you found that useful! And don’t just confine yourself to text — consider using this to boost other parts of your map. Here’s a before/after example of a situation where I used it on a river:

Besides giving the text a boost, it also helped the river stand out better without needing to change its color. The blurring, in effect, smoothed out the terrain underneath the river, giving it a clear valley to flow through. My vector rivers lined up pretty well with the terrain, but this is a good solution when you have a misalignment between the two: just use blurring to carve new river valleys.

I hope you found this useful! Blurring is a great way to get people’s eyes to focus on the edges that are important, and tune out the background.

This tutorial is, and will remain, free. But if you draw value from it, I hope you’ll consider supporting my teaching work using the links below. Thanks to all my patrons who keep content like this going!

Trying a Kickstarter

Kindly readers, the time has come, as it must for all Internet denizens, for me to venture into the land of Kickstarter: https://www.kickstarter.com/projects/pinakographos/the-landforms-of-michigan-offset-print-edition

Over the years, I’ve featured a lot of maps on this blog and on my Twitter account, and almost none of them have been printed. Those that do get end up in my store are offered as print-on-demand products, produced one at a time. But I’m hoping your support on Kickstarter will enable me to try something new: getting my work out there as an offset print poster.

My Landforms of Michigan piece recently won Best in Show & Best Reference Map at this year’s CaGIS Awards, and now I’d like to move it from my hard drive and into people’s homes.

So, if you’re so inclined, please check it out. And if you know people who might be interested, I hope you’ll help me spread the word!

And if this goes well, there are more than a few other map posters I’d like to try getting printed. Some already exist as files on my computer, and some remain in my imagination. This is a new frontier for me, and I hope you’ll consider helping me reach it.

Financial Transparency: 2020 Edition

As is now my annual tradition, it’s time for me to tell everyone how much money I make!

Why? Well, I find the financial opacity of the freelance world a bit intimidating, and I suspect that some others do, too—particularly those who are interested in freelancing, but haven’t yet jumped in. So I’d like to do my part to lend transparency by laying out my financial picture for all of you. And if you’re interested in more stuff like this, check out the results of the 2020 Cartographic Freelancer Survey.

My business income comes from a few different sources:

Freelance Cartography:

I mostly make my living by doing freelance mapping (and an occasional bit of freelance GIS) for clients. This number, like others here, represents my gross earnings, before taking out business expenses, etc.

Other Freelancing:

I also earn money from some other non-mapping freelance work. I do editing and layout for Cartographic Perspectives, and I’ve done some bits of paid writing, other design work, etc. I also got a $2,500 coronavirus relief grant that’s counted here.


I do a fair amount of pro bono work, and I’ve been much more shameless about asking for support for my tutorials, Project Linework, and other resources that people seem to draw value from.


Instead of making maps for clients, I sometimes (or often) spend time making maps for no one in particular. And then I’ll put them up for sale in case anyone wants to buy them. This year’s value is super-high because I sold one of the only copies of my cyanotype atlas for $1250.

The Summary

So, that works out to a gross business income of $48,654.68. Here’s how that compares to the last several years:

My Income is not Quite a Salary

If you’re only familiar with earning money as a salaried employee, my income might seem higher than it really is. After business expenses, I earned about $46,000 in self-employment income. For my personal tax situation (single, living in WI), my take-home pay would have been similar if I had worked a salaried job (with health insurance, but no other benefits) that earned about $37,000.

This difference is because self-employed people pay a much higher tax rate, and have to cover their own health insurance. This comparison doesn’t figure in any other benefits an employer might offer, like retirement savings contributions. If we count the amount that I should be saving for retirement (but can’t afford to), then the gap is a few thousand dollars larger.

Concluding Thoughts

As mentioned above, I earn income from prints of my work. Most of the things in my storefront have never sold more than a few copies. It’s pretty much all income from River Transit maps. But, it doesn’t cost me anything to offer things for sale, so if I can earn $10 from one of the less popular items every once in a while, I might as well take it.

I greatly appreciate the kindness people have shown me over the years through donating to support the unpaid parts of my work. It’s becoming an increasing fraction of my overall income. If you’d like to add your own support, here are some handy buttons:

Finally, I hope all this stuff above offers some useful insight as to one freelancer’s life. I’m sure some others earn more, and some others earn less. I’d encourage others who are comfortable doing so to share their own financial information, to make the picture a little broader.

Critique with Empathy

When I gave my NACIS 2020 talk, A Few Thoughts on Critique, I was very careful to avoid the appearance of telling people what to do. I offered only suggestions that people might consider if they chose to improve their critique practices. I feared that any stronger language, saying what I thought people should or should not do, would probably just lead to endless squabbles over details that did not matter, and which only distracted from the problem that needs addressing: how often we fall into the trap of critiquing for the needs of our own ego, rather than for the benefit of our community. And how the effects can, and have, caused real damage to our colleagues.

But today I feel bolder, and my thoughts have grown new wings. And so I will tell you directly what I think you (and I!) should do to reduce the toxicity that can creep in when we opine on the works of others.

Critique with empathy.

Assume that the designer is, like you, a human being capable of both complex thought and honest mistakes.

Ask yourself how this competent and well-intentioned person could reasonably end up making decisions that you consider laughable, erroneous, or ill-conceived. That was unlikely their intent.

Consider the tools, privilege, and knowledge that this person did not have access to, and which you might.

Ask questions before offering assumptions.

Remember that the answer is always more complicated than “the designer is just stupid.” You know that the real world is richer than that.

Reflect on the ways that you could have fallen into making that “design mistake.” Perhaps you did once, in the past.

Don’t mock your past self for the sin of combining honest effort with inexperience. Critique yourself with the same compassion that those around you deserve.

Accept that other designers’ goals may differ from yours. Realize that the things that you want to change, may in fact be unimportant to what they are trying to do.

Remember that most of the design details that we teach and debate at conferences are usually unimportant in the big picture. This is liberating.

Admit your goal to yourself. If you offer a public opinion because you want attention, that is natural. It feels good to be acknowledged as an expert, or as entertaining. Own this honestly, and without shame.

Ask yourself how you can earn this good feeling without demeaning or otherwise harming someone else.

Remember that critique is always personal. There is no clean separation between the artist and the art that allows a wholly dispassionate discussion of someone’s work.

Think about how you’ve been stung in the past by critiques, no matter how well-intentioned, or how much you agreed with them.

Be kind when wielding the benevolent scalpel.

Understand that it’s OK for a designer, including you, to not want feedback. Sometimes it’s fine to let a work be what it is, and move on to other things.

Enjoy the unintended laughter that you sometimes find in the works of others. Share that quietly among friends, not with the world.

Never feel bad for wanting to improve someone else’s work, but accept that it is not always productive to share those ideas.

I offer this semi-poem as a moral framework for giving critique that can enlighten, without resorting to shame or ostracism. Add to it, remix it, or ignore it. It’s a list that I’m going to try to keep living up to, and continue to think about.

A Few Thoughts on Critique

Every year I look forward to attending the NACIS conference in October; it’s a chance to reunite with old friends, learn a bunch of new things, and come away inspired to improve my own cartographic practice. While I’m there, I also like to share my thoughts with whoever will pay attention to me, by offering a talk of my own.

Of the presentations I’ve given over the years, I think the one at NACIS 2020 (held online this time around) was perhaps the one that is most worth hearing. It encourages us to address an ongoing toxicity in our profession, so I wanted to share a transcript of it with you here. While it does exist in video form if you want to watch it that way, I know that text is more accessible, and, for many situations, just more convenient.

The reason that I have this text version is thanks to my colleague Travis White, who suggested that NACIS presenters offer transcripts to accompany their talks. I wrote up mine shortly before I actually spoke, so I drifted a little bit from it during the live performance, but it’s got pretty much all the same ideas. It’s just missing the useful(?) hand gestures that I often make while talking.

Also: wow, it feels weird to see this written down. My speaking manner is grammatically and structurally looser than my usual writing style.

Rough Transcript

Thanks for joining, everyone! I’m coming to you from south central Wisconsin, on lands seized from the Ho-Chunk people. And from this place, I’m going to talk a little bit about map critique. Critique is a great tool in our profession. We put our work out there for feedback, and the advice we get helps us learn new things and grow as designers. But, like any tool, critique can be used for good or for ill, and for all the good and growth that critique promotes in our community, it’s important to recognize that sometimes the way in which we offer our opinions on others people’s work can do real harm to our colleagues or potential colleagues. I’ve seen critique used to shame people or gatekeep: to push them away from our community because they’re judged to be doing things in the “wrong” manner. And, look, I’m not here to give you a set of rules that tell you how you must critique. Instead, I’m just going to share a few ways that I happen to think about critique, and you can take or leave them, but I hope you might find them valuable, as I do, in helping keep our critiques away from the toxic side of things, and more toward the constructive side. That’s all.

And the first of those ways is that I try to focus on listening first. When someone asks me, “Hey, what do you think about my map?”, I try not to just jump in and say, “well, you should change that projection, or you should use a different set of colors, etc.” Instead, I might turn some of those potential changes into questions, and ask, “Well, why did you choose that particular projection? What was your reasoning behind these particular colors, etc.?” In order to give this person the most relevant advice possible, I need some context; I need to know how the map got to be this way, and that comes from listening. Maybe this person is operating under certain restrictions, for example: limitations of their data, or design constraints imposed by a client. And so certain things on this map are that way for a reason, and can’t be changed, and that’s useful for me to know. Or maybe this person’s goals for the map are different than I had assumed, and certain things that are important to me, aren’t to them, and vice-versa, and that’s good for me to know when I offer feedback. Regardless of the situation, I just don’t want to give my opinion based on a bunch of assumptions about what’s going on; I need facts, and those come from listening.

This can also create opportunities for learning. If I tell a student, “hey, change that projection on your map,” they might just do so because I said so, without really understanding. But if I first pick that student’s brain and ask, “What do you know about projections?”, I might find some gaps in their knowledge, some opportunities to teach them. And I think this is true for most critique situations, not just with students. The more I understand about what this person knows and thinks and is trying to accomplish, the greater the chance that my advice might be able to teach them something.

This sort of back and forth—this dialogue—is not always practical in every critique situation. I understand that. But, I think it’s a nice goal to aim for, because when you can get it, you’ll get a lot more done together.

Now, once I’ve listened and it’s my turn to speak, my second thing is that I try to speak in a way that acknowledges my subjectivity. Anytime we offer someone critique, it’s rooted in our own personal understandings of what we think good design is. But it doesn’t take much time looking around this community to see that there are a lot of different design opinions out there, and mine is not the only valid one. And so I just don’t want to speak in a way that implies otherwise. I said before that I don’t want to jump in and say, “change this, do that, etc.,” and that’s partly because I want to listen first, but also because “change this, you should do that” — those are words of command, that obligate people. And I don’t want to sort of arrogantly assume an authority for my opinion that suggests that it is the way that things should be done. Instead, I’d rather speak more cooperatively, saying, “Well, in my opinion, you should try moving the legend over here to balance the layout. If I were you, I might use different colors, etc.” Just language that emphasizes that this is my opinion. And as part of this, I’m not saying that you can’t try and convince people that your opinion is a good idea, or not to tell them that they should make changes. What I’m saying is that it’s all about the approach. You can come into a critique with language that commands, or language that cooperates and suggests. Which do you want to do? I think you’re more likely to find success with the latter in convincing people to do things the way you’d like.

The third thing I think about is motivation: what’s driving this critique? We offer people advice because we want to help them, and because it’s satisfying to see works improve and people grow, but there are also more selfish motivations that can filter in. Sometimes we critique because we want to show off to people, to get them to praise us, or to entertain them. And here I speak from experience. Years ago I ran a map critique blog called Cartastrophe, in which I would rip maps from the internet, and sarcastically break down everything that this person did wrong and that I could do better. I created that blog because I wanted people to pay attention to me—I was just starting out in the field, and I wanted to prove to myself, and to others, that I was good at maps and that I was better at it than some other people. And it was ugly, and I’m sorry I did things that way, and it’s gone now. But I bring it up because it’s important to recognize that these motivations linger within all of us. I think it’s natural as a human being to feel the urge, from time to time, to make ourselves look better, or get attention from others, at the expense of somebody else. And I think this is where the more toxic potential of critique comes in, when it’s driven by these sort of selfish, posturing, ego-driven motivations. And it’s something we’re all susceptible to. I think it’s an easy trap to fall into: offering critique more for the needs of your own ego than for the benefit of the person who made the map. I’ve certainly done it. So it’s just good to keep an eye on those tendencies, and make sure that ego-driven motivations aren’t getting in the way of the potential good that we can offer with our advice. Because it’s something that will always be there.

It was one thing for me to run that blog when I was just starting out, but if I were to do the exact same thing in the exact same way now, it’s important to recognize that that would be much worse. Because I’d be using the influence and experience I’ve accumulated over the years and using it to mock and punch down against people who might have less. And that brings me to my fourth point, which is that it’s important to recognize that context of a critique has an influence. A critique is not just one person in a vacuum giving their humble opinion to another person in a vacuum. How that critique is understood, and the influence it has, is affected by the stature, authority, power — whatever you want to call it — of the person who is offering it. Say, for example, you really like someone’s work and you go and praise them on social media. That’s great, but if the context also happens to be that you had a large social media following, then that praise can be career-making for someone. You might be putting them in front of an audience that can give them new opportunities that they never had before. It wasn’t just the opinion you expressed, but the context of how many people paid attention to your opinion, that mattered here. Or maybe you’re giving someone advice about things you think they should change about their work to improve it. And maybe they disagree somewhat — they have their own design opinions, and they think about engaging you in a dialogue to discuss them. But, maybe the context is that you’re an influential person at a company they might want to work at someday. So, instead, they think to themselves, “this person can influence the direction of my career, and I don’t want to push back against them, so I’m just going to shut up and tell them they’re right.” That’s not necessarily what you wanted to have happen, but it’s the sort of thing that does happen, and it wasn’t because of the particular opinions offered, or the intent, but just the context.

So, the bottom line is: a critique is never just about your opinion. There’s always a context of more stuff going on, and I think it’s our responsibility to just look around and be aware of what other influences our critique could have before going into that situation.

And know, too, that you might have more influence in these situations than you think. Because, in the end, it’s about how many people listen to you, or look to you as an authority — not how many people you think should listen to you. This is something that others put upon you, and even if you don’t think of yourself as important, you may still hold sway over more people than you think.

So that’s it — four things about critique. And, again, these are just my thoughts; you can take or leave them. But whatever you do with them, I hope we’ll all think from time to time about how to improve our critique practices, the way we absorb tips at NACIS for improving our design practices. And I think this kind of work is important because we have a problem. I think it’s important to acknowledge that our community is not always as welcoming as we sometimes hope it to be. And part of the problem — part — is the tone and manner in which we sometimes offer our opinions on the works of others. I’ve seen so many people come forward in the last few months, talking about how they don’t feel comfortable sharing their work with the cartographic community. They’re afraid of being publicly humiliated; of having their careers harmed; of being labeled a “#cartofail,” which is an ugly hashtag on Twitter in which shame is dished out to those who do things in ways that are “not allowed.” These people have seen what happens to their colleagues and they’re not willing to participate. Think of the damage that that does to our community. These are people who want feedback. They want to get better, and they want critique. But they want constructive critique with a helpful tone rather than a superior one. But the pool of that is polluted with these more selfish, ego-driven, gatekeeping critiques, and so it’s simply not safe for some people to participate in. And I suspect that goes doubly for those with marginalized identities whose careers are already more vulnerable. That’s why this matters, because this hostility is out there. And I’m not just talking about social media. It happens one-on-one, it happens in classrooms, and I’ve seen it happen during conference presentations. And it does harm.

So I hope we’ll work not only on how to improve our own critique practices, but those of our whole community, and those of our colleagues. And here I don’t just mean calling people out. If you see someone mocking another person on Twitter, mocking them in turn is probably not going to get you very far. Instead, I’d think back to the first couple of points I made — engaging in dialogue, asking questions, speaking cooperatively. And recognizing that this is ongoing work. This is something we’ll always be improving at. I just gave you four ways I think about critique, but I don’t live up to them nearly as much as I would like. They’re goals I work toward, and my goals will keep changing over time, as yours will. This is an area in which we’ll always be growing. But regardless of the particular goals you want to set for yourself here, I’ll leave you with one that I hope we can all agree is worth aiming toward. I would like it if, when people receive feedback from the cartographic community, they never walk away from that exchange feeling shamed or lesser, but instead that this is a community that cares about them. And more importantly, that this is a community to which they can belong.

Parting Thoughts

The above presentation was not the only one at NACIS 2020 on the subject of critique. If you’d like to hear even more interesting words on this important subject, I highly recommend checking out the presentation by Madison Draper & Vanessa Knoppke-Wetzel.

Meanwhile, thanks for reading, and please feel free to share this around. My hope is that, in 2021, we will work to treat each other with an even greater degree of kindness and respect. I have always been impressed by the cartographic community’s desire to be open and welcoming; let’s keep trying to live up to that goal.

Annual Report: 2020

Friends, each year you are kind enough to offer some financial support to my various map-related efforts, and in turn, as is my annual tradition, I want to be transparent in reporting back on what, exactly, those efforts were. With your support, in 2020, I was able to (in no particular order):

  • Organize How to do Map Stuff, a global festival of cartographic tutorial livestreams. This turned out far better than I had hoped, and was a highlight of the year. At one point there were over 400 concurrent people tuning in. Thank you to everyone who presented, watched, and spread the word. Most every presentation continues to live on YouTube, so make sure to check them out. Besides organizing things, I also wrote up a report afterwards on what it was like to organize something like this, in case you may find it valuable.
  • Continue my “Live Carto” series from 2019, with six new broadcasts. Some of these were tutorials/walkthroughs, and others were live looks at me working through a project in real-time. Thanks everyone who showed up! I have a few plans about how to keep these going in 2021.
  • Create a new mini-series: The Serene Practice. In a conversation with Meghan Kelly & Lauren Tierney, one of them mention (I can’t recall who) that people would watch a map being labeled. So, I put together a series of videos showing just that. There’s relaxing music, and the satisfaction of watching labels slide into place.
  • Make even more video content besides all that stuff listed above! 2020 was the year I started to learn Adobe Premiere and After Effects. I’m still a dabbler, but it’s been fun to play around with these two tools. As time goes on, I’m sure I’ll come up with new uses. For now, you can watch a spinning Mars globe that changes colors, and animations that show the geometric relationships between labels and features.
  • Send my cyanotype atlas on (what will eventually be) a world tour. Dozens of people signed up to receive my Atlas of Great Lakes Islands, and early in 2020, I sent it on its way and coordinated everyone to make sure it continued smoothly on its journey. However, it had only made about ten stops before I paused things due to COVID-19. While the atlas itself is unlikely to transmit the virus, I didn’t want anyone to have to make unnecessary trips to their local post office. So, it’s on hold until things improve. I look forward to restarting the tour in a few months!
  • Answer a lot of questions via email, Twitter DMs, YouTube comments, etc. People write to me each year asking for software help (especially Blender), career advice, interviews for school projects, or map critiques. I try to take the time to write back to everyone. It’s not really something I’d considered, when writing tutorials: the more resources you put out there, the more of these kinds of interactions they generate. I’m happy to help, and will try to keep up as long as the the volume remains manageable.
  • Conduct the second biennial Freelancer Survey with my colleague Aly Ollivierre, and special guest discussant Molly O’Halloran. Once again, we hoped to help empower carto-freelancers to know their worth by better understanding the state of the industry.
  • Keep my tutorials updated. As software changes, often these resources need updating to stay useful (it can be frustrating and confusing to read through a tutorial that doesn’t quite match what you’re seeing on screen). This time around, I needed to update my tutorial on Smart Type Halos to account for updates to Adobe’s interface.
  • Present at various (virtual) conferences. This year, I offered my thoughts on critique at NACIS 2020, in response to some of the unfortunate toxicity that’s been surfacing in our field. I also was honored to be invited to present at the 2020 Indigenous Mapping Workshop, where I gave a couple of tutorials on labeling and typography.
  • Create a bunch of random one-off mappy things that get released to the winds of Twitter. But, if you don’t want to search for them all, I’ve assembled most of them into a free PDF book: An Atlas of Minor Projects!
  • Continue my long tradition of pitching in to help NACIS, the main professional society for mappers in North America. It’s an all-volunteer organization, so the more we all help out, the better it becomes. In the last year I:
    • Served as a judge for the Atlas of Design
    • Served on the Diversity & Inclusion subcommittee
    • Joined the Nominations Committee
    • Helped oversee logistics details for getting reprints of the first three volumes of the Atlas of Design to customers
  • Coordinate a holiday shopping guide to boost the visibility of people who sell map-related products to consumers (posters, hiking maps, map apparel, etc.). Just a simple Google Doc, where people could sign up to list their map-related store. The link has been clicked over 1700 times. I think joining together has really helped boost our visibility.
  • Organize a nascent collective of map artists. It’s still very much in the early phases, but that shopping guide was the seed of an idea that I’ve long wanted to embark on: bringing together people who sell map products into a collective. A place where we can advertise our wares together, and have a bigger impact than if we were separate. A small group of us have organized as the Independent Map Artists, and hopefully you’ll hear more as time goes on.

It’s probably good for me to have written this, because 2020 was a challenging year, and this list makes me feel just a little bit better about how it all went.

Your patronage helps me justify taking time away from my freelance work in order to write, design, and help others. It also pays for things like conference fees, the cost of keeping this site ad-free, domain names, and other direct costs associated with all these side projects. Thank you for making this list possible!

As we move into 2021, I hope to continue to merit the support you have shown me. I never know exactly how much I’ll be able to do so in a given year, but I do know that I fully intend to keep up my efforts to contribute to the cartographic community. You have all taught me so much, and I will continue repay the favor as best I can.

If you’d like to support my ongoing work, one of the easiest ways you can do that is to spread the word — tell your friends and colleagues about my tutorials, YouTube videos, or whatever else you think they may like. And, if you’re in lending financial support to my efforts in the coming year, I have these two handy buttons for you!

An Atlas of Minor Projects

I spend a lot of my time making little cartographic pieces that don’t make it onto this blog. They’re just small, quick items that don’t really need a whole writeup, though I’ve previously collected some of them into “Odds and Ends” posts. Those entries, though, only cover a fraction of the cartographic ephemera I put together, most of which really has no permanent place to live on the Internet.

So, I’ve decided to combine a bunch of them into a book. Nearly forty little projects, all in a simple and mildly attractive PDF. I present to you: An Atlas of Minor Projects.

Grab your free copy and enjoy browsing through the various things that I make in my spare time!

While most of these projects were quick to make, they, together, represent quite a bit of effort. If you draw amusement, inspiration, or some other value from this collection, consider supporting my work. That can be as simple as just sharing this atlas with others! Or, if you have more to spare, you can use these donation links:

A Holiday Shopping List

When I started my first map-related website back in 2010(?), it had some text on there about how I thought it would be cool to bring together map artists into one place where people could buy our products. This may have been borne out of my own failed attempts to sell a couple maps of my own (things have gotten at least a little better since then).

After this idea sat in my mind for a decade, I finally decided to do something about it. Capitalizing on the holiday shopping season in the United States, I’ve put together a list of small businesses selling map prints and other products. Check it out and spread it around (and support independent map artists)!

(Click that there image to go to the list)

This is also the start, I hope, of something a little larger. I’d like to form a cooperative of independent sellers of map products. I think we are stronger if we band together. If you run a small business selling map products to consumers, feel free to drop on by The Spatial Community (thespatialcommunity.org), which is a public Slack group for, well, people who do spatial stuff. I’ve formed a channel there called #map-products-cooperative. Join the channel and we can start to organize ourselves!

The Quest for the Blue Moon

Where I come from, many ice cream places offer a flavor called blue moon. In the freezer case, its unnatural coloration immediately draws attention amidst the more pedestrian offerings of chocolate, vanilla, and strawberry.

Photo by Bill McChesney, via Wikipedia. CC-BY-2.0

Its actual flavor (and coloration) varies from purveyor to purveyor, each with their own secret recipe. According to Mashed.com, “Some say that the ice cream has a breakfast cereal sweetness similar to Froot Loops, while others take in notes of almond or citrus.” In truth, it’s been so long since I’ve had any, I can’t really remember. All I know is that it’s a standard offering at ice cream shops.

Or so I thought. In recent years, I have come to learn that it’s not widely available throughout the United States. It is, instead, a regional flavor, with various articles describing it as a “Midwestern favorite,” and an “iconic Midwestern frozen treat.” But nothing I read was able to give more detail about where blue moon was found — only anecdotal, unsatisfying generalizations about the Midwest. No one had hard data, and, most importantly, no one had maps. The true distribution of this flavor was a mystery that I needed to solve.

And so, I’ve spent a large chunk of the last couple of weeks doing so. Let’s start with the maps, and then later I’ll walk you through how I got the data. For fun, I mapped the data four different ways, so pick your favorite (and click on any to look at a larger version):

I think these maps show pretty clearly that blue moon is a regional flavor, though there are a few possible outposts elsewhere in the United States. However, they only sort of validate all the anecdotal articles about it being a “Midwestern” flavor. Minnesota is as Midwestern a state as they come, but it looks like blue moon is scarce in large parts of the state. Likewise Ohio and Iowa. The Blue Moon Core Area (BMCA), as I’m going to start calling it from now on, is really centered on a subset of the Midwest: mainly Wisconsin and Michigan, and parts of Indiana and Illinois.

These maps also explain why I didn’t realize that this wasn’t a popular flavor everywhere: I’ve lived pretty much my whole life in the BMCA.

Notice that while these maps show the distribution of blue moon, two of them also symbolize how much you should trust the map. What’s that about? Well, let’s talk about how these were built, and all the caveats that entails.

The Journey

Originally, I was hoping for some way to parse through a whole bunch of menus of ice cream parlors, searching for the term “blue moon.” There are large databases of restaurant menus out there, and there are APIs that let you access those data. But after looking through the data offerings of places like Zomato, Foursquare, and others, I couldn’t find a way to get quite what I wanted (at least for free). I considered doing some manual searches, instead — just picking a few example cities and looking at a few dozen menus of flavors, but that quickly bogged down, too.

Eventually, I gave up on trying to search for the occurence of blue moon on actual menus and decided instead to do keyword searches via Yelp. Through their API (and their website, for that matter), you can specify a location, and a search term. So, if I picked an area and searched for “blue moon,” I might get places that have blue moon ice cream. Might. And here’s where we come to the noise in the data, of which there are two kinds.

False Positives

When you search for “blue moon” on Yelp, one of the big places it looks is the text of user reviews. So, a place might turn up on my search because someone’s review said, “I like the blue moon flavor here best!” That’s great — that confirms that this place has blue moon. But, there are other ways a place might turn up on the search even if it doesn’t have blue moon. I spot-checked the data and found that sometimes a place would turn up because someone said something like “we only go here once in a blue moon.” Or one person who said, “if the prices were any higher we would just go to Blue Moon Bar.”

There’s also a brand of beer called Blue Moon, and there may be establishments that have Blue Moon in their name. Those are other sources of false positive signals.

For some other results, I noticed there were no reviews mentioning the term “blue moon,” but Yelp gave a result anyway. Not sure what they’re relying on — maybe menu information (though in the two examples I checked, Yelp didn’t offer a menu for that place)? So, here, I can’t really tell if that’s helping either the signal or the noise.

False Negatives

I have no doubt that there are ice cream places out there that offer blue moon, but that didn’t turn up on my Yelp searches. Maybe no one said anything about it in a review, or it’s not on a menu or website that Yelp could check. I would guess, though, that this sort of problem isn’t likely to be concentrated in any given area of the map. An ice cream place in Wisconsin, is not more or less likely to get overlooked in this way than a place in Arizona. So this shouldn’t affect the regional pattern we see.

And there are also, likewise, ice cream places (whether or not they have blue moon) that just don’t show up on Yelp, or weren’t correctly placed into their “ice cream” category (which I used to filter my results).

Mass Search

So, now that we have some caveats for our search data, let’s talk about how those data were collected. I did not just hang out on the Yelp website searching over and over for “blue moon” in different locations. Instead, I had a script do that for me.

It took many hours of false starts and revisions, but here’s the method I eventually came up with (on the sixth try). I created a grid of points that covered the US at an interval of 25km (in my projected coordinate system). Then I later added one for parts of Canada (I was curious if blue moon had crossed over the border from Michigan, but it turns out it largely has not). There were about 19,000 points in total.

I then had my script feed each of these coordinates, one at a time, into the Yelp search API. For the first pass, I searched for any place that was in their “ice cream” category, within 20km of the location I was searching (though Yelp warns that when you set a search radius, they take it only as a “suggestion” and will expand or shrink it without telling you, when they deem fit). The grid points are spaced at 25km, so this creates some overlap between them. The goal here was to basically find every single ice cream place that Yelp knew about. I got a lot of duplicates, which helped assure me that I was covering the area pretty well, and when I filtered through them all I came up with about 39,000 unique ice cream parlors.

I then repeated the search, but this time I included the term “blue moon” (in quotes, to keep the two words together), and I widened the search radius to 40km (the maximum) to really make sure I didn’t miss anything. This time, I came up with 771 unique places which were a subset of the total ice cream parlor dataset.

I lied: I actually did the searches in the opposite order, but I thought it would be easier to explain it if I talked about the simpler search first.



Now we know where (some of) the blue moon places are, and we also know where (most of) the ice cream places area — so we have something to normalize our data with. From here, it was just a matter of visualizing everything, to see what proportion of ice cream places also had blue moon. I first tried the ever-trendy method of hexagonal binning.

Note that there are no numbers on this map. Instead, your chances of finding blue moon just range from “not great” to “pretty fair.” Given the weakness of our data, it’s important not to say too much. Vagueness can be good, and I’m leaning here on what I have called salutary obfuscation. Giving numbers might lead people to place more trust in the map than is warranted.

Also the numbers might seem unimpressive. The largest hexagons represent areas where about 10% of ice cream places had blue moon. That doesn’t seem like a lot for an “iconic” flavor, but again, we’re likely missing a fair number of blue moon occurrences here. That’s also the reason I still showed hexagons for areas where I did not find blue moon. I don’t want to suggest that it’s actually absent from that area, because we cannot be that confident in our search. Instead I just say that the chances are “not great,” which is very different than labeling it “0%” or saying it’s not possible.

But what’s that bit about trusting the data? Well, see that giant hexagon in the southwest, on the border between New Mexico and Arizona? 9% of the ice cream places in the area came up on the blue moon search. So it looks like it’s fairly popular (given the caveat that 10% is pretty high in our data set). Except that if you look at the data, there were only 11 ice cream places in the whole hexagon, 1 of which had blue moon. So the small sample size means it’s hard to trust that this is real and not a blip due to noise. On the other hand, some of the hexagons have hundreds of ice cream places, and dozens of blue moon ones, making it them more robust and unlikely to change much due to noise in the data.

So, the “should you trust the data” question is really “how many ice cream parlors are there in each hexagon?”. Here, I’ve made the hexagons more or less transparent based on that number. Any hexagon with 250 or more ice cream parlors was fully opaque (an arbitrary cutoff), down to 20% opacity for hexagons with only one ice cream parlor. Locations with zero ice cream parlors were removed.

Kernel Density

I next tried doing a raster-based map, visualizing a kernel density surface.

Here, I did a 200km radius for blue moon places, and the same for all ice cream places. Then I just took the ratio of the surfaces. I didn’t play with the kernel density parameters too much, except for the radius. A wider radius basically means the end result is blurrier, and I wanted to be vague and blurry because, again, the data can only be trusted to give a general pattern. But, this large radius also creates false impressions at times. There’s a big thumbprint in Idaho, for example. There are a few blue moon places there, but they are all concentrated around one city. However, the kernel density spreads them out into the surrounding area, which is misleading. So there was a tradeoff here (though the large hexagons sort of offer a similar tradeoff).

Here I put stripes over the map in the areas of poor data (again, arbitrarily defined; this time to be locations that had under 100 ice cream parlors). The two symbologies don’t pair quite as “cleanly” as the hexagon method. The chance of finding blue moon is shown by a light-to-dark ramp. But the data quality stripes also darken areas, making them seem like less. It’s not too bad, but unideal. Maybe. Or maybe it’s good to darken those places and make them look like less blue moon is there because we’re not confident in them.

Two Choropleths

Now, since the first two maps in the series (hexes and kernel density) have problems with low sample sizes in some regions, I decided to make a simple choropleth map of the states.

Not much to say here, except each state had enough ice cream places that I didn’t feel the need to indicate anything about data quality. The result is that we now have a simpler visualization, which is a big advantage. Of course, states are arbitrary, and culture (including food) doesn’t stick to state lines. So this map misses out on some of the subtleties of the pattern — but, it’s also probably the most easily digestible by a mass audience.

Finally, I did one last map (a month after the others). It’s another choropleth, but this time I made up my own area units. Remember the initial list of 39,000-ish ice cream places from Yelp?

Well, I decided to use those dots to define arbitrary regions, such that each region would have roughly the same number of ice cream places. I defined 128 of them, such that each region had either 291 or 292 ice cream shops. This took a long time, because I did it manually rather than figuring out a better way. Then I made another choropleth.

The units are perhaps not always sensibly drawn. But, at least each area is now on equal footing: with the same number of ice cream shops in each, we once again do not need to worry about dividing by small numbers and getting noisy data, as we did in the first two maps.

Weird & interesting projects like this take me a long while, and I’m a freelancer. So, if you derive some value/amusement from it, please consider donating to support my continued work.

Of the four maps, I think the kernel density is the prettiest, but the hexagon map is probably best in terms of showing the pattern at the level of detail that it deserves. The two choropleths are simpler, and the state choropleth is definitely going to be most familiar to an audience.

So there you have it: some hard-won evidence for the distribution of a regional ice cream flavor. Given the subject matter, I’m pretty sure the ratio between “amount of time and effort I devoted to this” vs. “amount people care about it” is going to be pretty unfavorable compared to a lot of my other projects, but I will be able to rest easy at night knowing that I have done what I needed to.