FOSS4G 2017 Recap

A few weeks ago, 1,141 amazing people attended the 2017 FOSS4G conference in Boston representing 48 countries and 45 U.S. states (Side note: Minnesota was ranked 11th in U.S. states with 20 attendees)!

This was my first FOSS4G conference and one of the best conferences I’ve ever attended. There were so many great talks in Boston – so much expertise, countless outstanding projects, and all-around amazing work in the community. It was incredible to hear the great work happening throughout the community and learn tidbits from folks. Everyone was open to sharing their work, successes, and struggles which made the conference so fantastic.

It’s impossible to fully sum the conference, so definitely check out the blog posts, slides, and videos on the FOSS4G post-conference page. I’ve also compiled comprehensive notes from the talks I attended at JS.Geo and FOSS4G.

Boston is an expensive city to visit, and FOSS4G is certainly not a cheap conference. In fact, it’s the most expensive registration for a conference I’ve attended to-date. But it was worth every penny to attend.

Speaking of pennies, I tracked every penny spent to keep expenses down with the hopes to share with others looking to attend future conferences at a lower cost. Ultimately, the final price tag was $1,455.11 including:

  • Non-stop round-trip flight to/from Minneapolis to Boston
  • Airbnb lodging
  • Early bird conference registration and all conference events
  • Geo conference
  • Food and incidentals
  • Ground transportation/Uber
  • Miscellaneous costs: A sunset cruise around the Boston harbor and Red Sox ticket

Planning tips:

  • Buy and pay in advance! Before arriving in Boston 80% of my total costs were paid for in full. I started planning 8 months in advance, making it much more manageable to fund the trip. Also, purchasing in advance ensured lower conference costs, conference event admission, and a lower cost Airbnb within walking distance of the conference location.
  • If possible, use frequent flier and credit card miles. I was able to cover almost a quarter of my flight costs and 100% of my Airbnb stay between frequent flier and credit card miles.
  • Add a day or two to the beginning and/or end of the conference. Why not check out the awesome city you are visiting?
  • Have plenty of snacks handy at all times.

Priceless experiences (in no particular order):

  1. Boston sunsets are seriously beautiful; every evening was a treat!
Boston harbor sunset
Boston harbor sunset
Sunset over downtown Boston
Sunset over downtown Boston
Sunset from South Boston
Sunset in South Boston
  1. Watching the U.S.S. Constitution shoot off a cannon during sunset.
U.S.S. Constitution shooting off a cannon at sunset
U.S.S. Constitution shooting off a cannon at sunset
  1. Walking the Freedom Trail from the Boston Common to the Bunker Hill Monument.
Freedom trail emblem
Freedom trail emblem
Make Way for Ducklings Statue
Make Way for Ducklings Statue
Paul Revere Monument and Old North Church
Paul Revere Monument and Old North Church
Bunker Hill Monument
Bunker Hill Monument
  1. Attending my first JS.Geo conference which included: the latest projects Vlad is working on, learning the difference between 2.5D and 3D, seeing Hanbyul’s amazing 3D geographic models, wise words of wisdom from Andy Woodruff, and much more!


  1. Attending my first FOSS4G conference. The keynotes, sessions, speakers, attendees, events, and organizers were fabulous and made for a spectacular conference.


  1. Seeing so many amazing new and old friends, including those visiting outside of the conference and local Boston friends able to meet up! It’s impossible to name you all, but it was priceless to meet, hang out, and enjoy Boston with you.


  1. Coloring a map on a t-shirt. I mean, this was the most ingenious thing.
BoundlessGeo T-shirt Coloring
BoundlessGeo T-shirt Coloring
  1. Making new friends at the Thursday night Gala event at the New England Aquarium.
Penguins at the New England Aquarium
Penguins at the New England Aquarium
Having a brew with a lobster at the New England Aquarium
Having a brew with a lobster at the New England Aquarium
Touching cownose rays at the New England Aquarium
Touching cownose rays at the New England Aquarium
  1. Maptime MSP and Maptime Boston celebrating Thursday #Geobeers.
Thursday #Geobeers with Andy Woodruff
Thursday #Geobeers with Andy Woodruff
  1. Watching the Red Sox come from behind against the Yankees on a beautiful summer evening at Fenway.
Red Sox vs Yankees at Fenway Park
Red Sox vs Yankees at Fenway Park

2016 Minnesota GIS/LIS Conference Recap

Last week the Minnesota GIS/LIS Consortium wrapped up its 26th annual conference. Each year the conference is held at different locations throughout the state, and for the second consecutive year the conference was located in Duluth, Minnesota.

The City of Duluth and Minnesota’s North Shore are incredibly beautiful and among some of the places to visit among Minnesotans and out-of-state visitors alike.

Climbing Eagle Mountain

Before the start of the conference, I arrived in Duluth a day early and made the 2.5-hour one-way drive near the Canadian border to complete a solo hike to the summit of Eagle Mountain, Minnesota’s highest point (2,301-feet). The hike is approximately 7-miles round-trip and crosses into the Boundary Waters Canoe Area Wilderness.

Eagle mountain trail crossing into the Boundary Waters Canoe Area
The Eagle Mountain trail crossing into the Boundary Waters Canoe Area Wilderness (BWCA).

While I’ve completed the hike before, this was my first solo hike up to the summit, and one of the most secluded hikes I’ve ever experienced.

I didn’t see or hear another vehicle or person for over four hours. The air was full of cedar and pine and I could only hear bird wings fluttering, squirrels sounding, water flowing across rocks in nearby streams, and leaves rustling in the wind. The hike was one of the quietest and most serene I’ve ever experienced.

Crossing a creek along the Eagle Mountain trail
Crossing a creek along the Eagle Mountain trail.
Whale Lake, located along the Eagle Mountain trail
Whale Lake, located along the Eagle Mountain trail.

The view on top of Minnesota’s highest point was out-of-this-world spectacular, as is the journey throughout the Eagle Mountain trail.

View from the Eagle Mountain Summit
The view from Minnesota’s highest point, the summit of Eagle Mountain.

Upon returning to Duluth, I was able to visit Minnesota’s lowest point, Lake Superior (602-feet). Like Minnesota’s highest point, Lake Superior is extremely beautiful and mesmerizing.

Lake Superior
The view from Minnesota’s lowest point, Lake Superior.

The Conference Begins

The following morning was the start of the conference with this year’s theme focused on Your Geospatial Destiny.

Wednesday’s luncheon speakers featured work by local high school students using GIS technologies to solve questions. One of the students created an interactive map preparing the Duluth community for a zombie apocalypse and shared his efforts, struggles, and findings with the geospatial community.

After workshops concluded, on the way to dinner some colleagues and I were able to watch a large vessel crossing under the Duluth Lift Bridge!

A ship crossing under the Duluth Lift Bridge
A ship crossing under the elevated Duluth Lift Bridge.

Human Stories

Thursday morning’s keynote speaker, Carrie Sowden shared her experiences and stories around the Great Lakes’ shipwrecks. One of her most exhilarating stories was when her team recovered the warning bell from the Courtland shipwreck near Avon Point, Ohio. The iron bell was rung before the ship collided with the Morning Star in June 1868. The more Carrie and her team learned about the bell, the more they learned about the Courtland and her story. In fact, it is possible the ship’s name and the bell, possibly taken from a Courtland homestead, were used as a reminder of the creator’s hometown.

Carrie mentioned her research wasn’t just about the objects found, but the human stories behind the ships, the wrecks, and the Great Lakes.

After Carrie’s keynote address conference sessions were on!

5k Fun Run/Walk

The next morning at 6:15 am, the annual 5k Fun Run/Walk began along Duluth’s Lake Walk.

Mile marker along the 2016 Minnesota GIS/LIS Fun Run/Walk route
Mile marker 2 along the 2016 Minnesota GIS/LIS Fun Run/Walk course.

The out-and-back course has amazing scenery along Lake Superior and incredible views of Duluth’s Canal Park and Aerial Lift Bridge before the finish line.

View of Duluth and Canal Park from the Fun Run/Walk course
The view of Duluth’s Canal Park near the finish of the 2016 Minnesota GIS/LIS Fun Run/Walk.

Friday Sessions

Then sessions were on again early Friday morning! I learned all about web analytics to make and support better applications from Michael Terner. Michael used some of the applications he and his team have created, the web analytics behind the applications, and how they approached enhancements and modifications based on the analytics. In addition Michael talked about the application support and testing that was completed.

Concluding Thoughts

I have amazing group on people in my life that I am blessed to not only call my colleagues, but my friends. Each and every one of you is incredibly talented, ridiculously supportive, and out-of-this-world incredible. It was fantastic to see each and every one of you, and to meet new friends in Duluth.

Thank you for being who you are, doing what you do, and bettering our community together. Keep it up!



How to Create a Customized ArcGIS Style

As a user and supporter of accessibility, often times I use a set of specific ColorBrewer color ramps when designing maps.

QGIS has supported ColorBrewer palettes for many years. For more information on QGIS’ ColorBrewer color ramps support, I recommend Anita Graser’s blog posts QGIS Meets ColorBrewer for the step-by-step process and More Color Ramps for QGIS for the updated palettes.

While it’s relatively “easy” to style maps with ArcMap there aren’t any out-of-the-box style solutions incorporating ColorBrewer, leaving the cartographer with two options:

  1. Customize your colors on-the-fly (good for one time use-cases), or
  2. Create a customized style file that can be used anytime.

At one time there was a ColorBrewer style file on the no-longer-supported Esri ArcScripts website, but even when the file was accessible the file didn’t meet my needs. Some colleagues found it hard to distinguish the lightest color against lighter-colored backgrounds/basemaps, or when displaying white or gray in a map.

To accommodate the request, I changed the number of data classes in ColorBrewer to one greater than the number I needed. For example: If four data classes were needed in a map, I changed the number of data classes to five and selected the four “darkest” color options:

Color Brewer data classes
Figure 1: ColorBrewer data classes

It wasn’t practical to continually set colors manually in ArcMap, especially when colleagues were doing the same work at their desks. So I needed to create a style file for myself and others. Besides I like getting my hands dirty and finding out the “how” behind why things work. 😛

In order to create my own style, I needed to implement the colors above into my own style. It wasn’t easy; documentation was lacking and outdated. Between software changes and the seemingly less customizations of ArcGIS software, I found myself stumbling through the process. I hope the process below helps other curious cartographers seeking to improve their organization’s workflow.

To create a customized style file I could re-use and share with colleagues I performed the following tasks:

In ArcMap, navigate to the ‘Customize’ menu, and click ‘Style Manager…’:

The customize menu
Figure 2: The Customize menu

Once the Style Manager dialog is opened, click the ‘Styles…’ button located in the right side of the dialog box. In the prompt select, ‘Create New Style…’.

A ‘Save As’ dialog will appear, ensure the file is being saved into: C:\Users\<your-username-here>\AppData\Roaming\ESRI\Desktop10.x\ArcMap, and the .style file type is maintained (e.g. Click ‘OK’ to create the new style.

On the left side of the Style Manager dialog box, a new folder will be created:

Screenshot of the ArcMap Style Manager
Figure 3: Screenshot of the ArcMap Style Manager

There are many ways to create color ramps, as there are four types of color ramps:

  • Random: a random alternating band of colors;
  • Multi-part: a continuous band of color ramp combinations;
  • Preset: an individually-specified color ramp; and
  • Algorithmic: a linear stretch between two defined colors.

To create a ColorBrewer color ramp, I used two types of ramps. First, a Multi-part color ramp to combine multiple color ramps together. Then, multiple Algorithmic color ramps to create an algorithm of colors between two defined color values.

There are alternative methodologies to create color ramps, this is the method I preferred. Explore other possibilities while designing your own.

To create the color ramps, navigate to the ‘Color Ramps’ folder > ‘New’ > ‘Multi-part Color Ramp…’:

How to add a multi-part color ramp.
Figure 4:  How to add a multi-part color ramp.

Next, in the Color Ramp dialog, select the ‘Add’ button > ‘Algorithmic Color Ramp’:

How to create an Algorithmic color ramp
Figure 5: How to create an Algorithmic color ramp

In the Algorithmic Color Ramp select ‘Properties’:

How to alter the Algorithmic color ramp properties
Figure 6: How to alter the Algorithmic color ramp properties

To change the color, select the ‘More Colors…’ button to select a new pre-defined color:

The Style manager's edit color ramp dialog
Figure 7: The Style manager’s edit color ramp dialog

In the Color Selector dialog, switch to “RGB” or “CMYK”, as ColorBrewer lists both.

Change Color 1 to the lightest color and Color 2 to the second lightest color desired. For example: Referencing Figure 1 above, to create the same color scheme, assign Color 1 as (R:178, G:226, B:226) and Color 2 as (R:102, G:194, B:164).

Changing the color selector to RGB
Figure 8: Changing the color selector to RGB

Continue this process using the second lightest color, or Color 2 above, in the “Color 1” value (e.g. R:102, G:194, B:164) and adding in the next darkest value into Color 2 (e.g. R:44, G:162, B:95). Continue until all of the desired colors have been added.

Once completed there will be one less algorithmic color ramp than the number of data classes. For example: With four defined data classes, there will be three algorithmic color ramps.

An example of a customized color ramp using Color Brewer's data classes
Figure 9: An example of a customized color ramp using ColorBrewer’s data classes.

Continue to add in additional color ramps, and name them along the way (e.g. ColorBrewer Green). Color ramp naming conventions are important as an ArcGIS user can change the display of the color ramps from graphic to textual in the Layer properties symbology by right-clicking the color ramp and unchecking ‘Graphic View’.

Once all of the Color Ramps desired have been added, the style file created can be shared with others by copying the style file to the C:\Users\<your-colleagues-username>\AppData\Roaming\ESRI\Desktop10.x\ArcMap folder.

Hooray! 😀

Geo:Code 2.0 Recap

This past weekend was the second installment of Geo:Code, a multi-jurisdictional hack-a-thon event focused on geospatial open data and technologies held in Minneapolis.

Geo:Code was my first official hack-a-thon event. Before attending a “hack event” like this I’ve always wondered how the atmosphere fared for an entire weekend – where the majority of attendees volunteer their free time to create solutions for a community. Now, a solution can’t necessarily be made in one weekend, but “hack events” are a means to start the conversation.

Some of the awesomeness that unfolded:

  1. During the event, the University of Minnesota provided two full days of usability experiences in the Usability Lab. I was able to participate in a session on the first morning. It was incredibly eye opening to watch someone use something I built. This was my first experience watching someone without a health background look through my application, which made the experience even more valuable, and helped me remember how difficult it is to present health data in a meaningful way to the non-health professional.
  1. I ran into so many people with a wide range of backgrounds. There were students, GIS professionals, cartographers, designers, developers, community members, and many others. But more importantly, there was so much passion around the event that helped contribute to its success.
  1. I ran into some colleagues from my previous employer – some I didn’t think I would have the opportunity to work with again. Even though we no longer work under the same roof, and have very different goals in our day-to-day jobs, we were working together as a team (again), and building our relationships for the future.
  1. I had some amazing conversations with some Open Twin Cities folks, and other developers that work for the same employer – I can’t wait to see where our conversations lead us in the future. 🙂

Concluding thoughts:

  • There are a lot of talented people in the Twin Cities (obviously).
  • If you attend a hack event, you don’t have to participate in a structured group project. Start your own, and if you feel ambitious – try to find others to help you!
  • If you’re an introvert; Find a nice quiet location away from the action – hunt down a couch/recliner near a window, throw in your headphones, and work away! Or, if they are available – attend some introductory sessions to learn something new!
  • Data is like a song’s rhythm; it initiates structure, but its not always memorable on its own. For example: It isn’t always intuitive to pick out a song from clapping the rhythm, but it initiates the basics to get you started.
  • You don’t have to be a developer to contribute!
  • Talk to others, even if they aren’t working on the same project. You never know when you’ll run into each other again. Plus, they could be a great resource to you when your working on something at school/work.
  • Help others! This empowers everyone; finding solutions together, and understanding different methodologies together.
  • The end of any hack-a-thon is just the beginning!
  • Work together, build beautiful things, and change the world.

100 Lessons Challenge

One hundred and one days ago I embarked on a journey to learn something new each day, and share it with the world (check out my blog post from November).

First off, this challenge was so hard. There were so many things I learned, and this amazing experience made me realize how much I was learning each day 🙂

But, I wouldn’t always ship out the things I learned with the world. Sometimes I’d think, Nobody would care about this, or this isn’t good enough to share (I eventually got over these ridiculous thoughts).

Other days, I wanted to keep things to myself, was reviewing an awesome cartography book, QGIS Map Design (Side note: highly recommended once it’s available for purchase!), or wanted to keep tidbits within my circle of family, friends, and colleagues. And sometimes it didn’t make sense to share. I mean, do you really want to hear about my ridiculous geckos?

Some of my favorite lessons throughout my journey include:

While my #100Lessons journey is now complete, I have no plans to stop learning, or to stop sharing some cool things I’ve learned along the way… 😉

Accessibile Conversations

About once a month I receive a message from my accessibility coordinator at work asking to help out, or answer an accessibility question pertaining to cartography.

The latest question posed was related to cartographic color contrast on interactive, and printed maps. A designer tested out some color schemes against an approved color contrast tool, where all of the schemes failed the check.

Instead of trying to answer the question electronically, the accessibility coordinator and I met in person to discuss the problem, see the color contrast checker tool in action, and discuss the details together.

We discussed the problem, determined who was effected, and the next steps. Below are some of our discussions and findings:

What’s the problem?

ColorBrewer’s color schemes fail against Web Content Accessibility Guidelines (WCAG) 2.0’s color contrast ratio. One of the tools used to verify the contrast ratio was WebAIM’s Color Contrast Checker.

Screen Shot 2016-01-16 at 3.57.00 PM
Figure 1. WebAIM color contrast checker

Got it. So, who is affected?

This was the main focus during our discussions, and it’s where we started asking a wide range of questions. Does color contrast on maps even make sense?

This was one of the questions we couldn’t answer, and it led to a few others, such as:

  1. If you have a choropleth map, without any labels on it (Figure 2), is color contrast an issue for any audiences?
Screen Shot 2016-01-18 at 3.38.08 PM
Figure 2. ColorBrewer choropleth map
  1. If you have an interactive map with a basemap (Figure 3), how do you consider color contrast with the colors of the basemap, transparencies (if applicable), and colors of the data displayed?
Screen Shot 2016-01-18 at 3.33.19 PM.png
Figure 3. Interactive map with choropleth data over a basemap.

So let’s assume audiences aren’t effected… What does it look like now?

Using some of the tools I use to check my maps, both interactive, and print (on computer monitors, and printed on paper) we determined the colors checked out with visually impaired audiences. We already knew this from past meetings, but we confirmed it together to be sure.

Our concluding thoughts

After the testing, we determined, in most circumstances, if the cartographer isn’t layering color on top of color, WebAIM’s color contrast checker doesn’t do us much good.

The color contrast checker tool’s goal is to verify a foreground and background color have enough contrast between one another. The checker is not made to work with adjacent colors. There are other, more useful tools, to check on adjacent colors on a webpage, or in our case maps.

Final thoughts

So, why am I sharing this story with you? Because accessibility is hard, and not all answers are yes and/or no.

Accessibility is determined by people, which is why it can be so difficult. But the payoff for making an experience the same for all users makes it all worth it!

In the last year, I’ve learned three awesome takeaways when it comes to accessibility:

  1. Have discussions: When it comes to accessibility, there isn’t always a clear cut answer. My accessibility coordinator and I frequently sit down and talk about issues as they come up. Do we always come up with the answer(s)? No. Many times we come up with more questions than we started with. That’s the nature of accessibility!
  1. Ask questions: Accessibility is about people. If any components of your work fail an accessibility check, that doesn’t always mean you have to change anything. Always ask: Who does this effect, and why would it effect them? If you can’t answer either question, is it always necessary to build around them? Sometimes the standard rules won’t apply, and we could be overthinking the process, and forgetting about the experience.
  1. Accessibility is awesome. Accessibility inspires innovation, and makes it possible to deliver similar experiences to all audiences. I mean, that’s pretty cool, right? 🙂

2015 Accomplishments

It feels like 2015 just started, and we were talking about how accurate the Back to the Future series was with present day. Alas, 2016 is here, and so begins another year!

To cap off 2015 I wanted to focus on some of my accomplishments. Originally I set a top three list, but three wasn’t nearly enough, so here’s my top 15 accomplishments from 2015. Enjoy!

  1. Re-upped my blog, and actually putting some posts out there. More importantly, willing to be vulnerable in the posts.
  1. Released a new version of interactive maps at work. From buy-in of stakeholders, which could be an accomplishment in itself, to adding in enhancements.
  1. Worked with, and watched a visually impaired person interact with an application I built. This experience was eye opening, and helped shape my application to be both accessible, and usable by all audiences.
  1. I failed. It was horrible, and then it was awesome. I learned so much about myself when I failed, and had an incredibly supportive group of family, friends, and colleagues that helped bring me up.
  1. Attended, and helped co-organize MaptimeMSP, and met so many amazing people along the way. This accomplishment could have an additional ten attached to it. ❤
  1. Toured the last frontier. Alaska is one of the most breathtaking places I’ve ever seen. I learned so much about myself, and my husband on our ten-day excursion. It’s a trip neither of us will forget.
  1. Learned Git. If anyone would have told me a year ago that I would be using GitHub on the command line, I’d think you were crazy. I understand structure, and processes so much more as a result.
  1. Completed a rollerblading half marathon in Saint Paul for the second straight year, and for the third time. For the third straight time participating I set a new personal best.
  1. Attended my first developer conference focused on JavaScript.
  1. Made my work web applications touch and click compatible across desktop and mobile devices.
  1. Created two interactive maps for my local GIS community’s annual conference.
  1. Met Jack Dangermond, and it was amazing.
  1. Attended my first NACIS conference, and meeting so many incredible people able to join us in Minneapolis. The NACIS community is one of the most supportive, and friendly communities.
  1. Went on an impromptu road trip with my husband. This one confused even our family, since we never do this. It was an amazing weekend, after an incredibly difficult work week for both of us.
  1. Wrote my first python script. By far the most powerful language I’ve played with yet.

Here’s to 2016, and what’s to come! 😉

Lessons Learned: #100Lessons

Last year I participated in the #100happydays challenge, and it changed my life. During the challenge, I was able to focus on moments, and as a result my happiness each day. It was incredibly rewarding, and changed my life for the better. If you’re curious, check out the feed!

Since the challenge concluded, I’ve contemplated another round. Ultimately, I kept saying, maybe tomorrow, and it never happened. Then a few weeks ago I thought, Wait, I should do my own challenge and focus instead on something I truly believe we should all do daily: learn something new!

So, over the next 100 days, I will tweet, at the very least, once a day something new I’ve learned that day and use #100Lessons with the day (e.g. #day1).

But why #100Lessons? Because, its my challenge! 😉 Also, because of my emergency management background I can’t get away from the term lessons learned.

Follow along, and feel free to join me on this journey!

Cartography + Accessibility

Over the last several months, I had an incredible opportunity to collaborate with Alison Link and Mitch Schaps on some cartographic accessibility best practices and considerations.

Based on our joint presentation, and some discussions at NACIS 2015, I wanted to compile my own detailed list of accessibility considerations, and pose the following questions to the cartographic community (you can comment below, or hit me up on the Twitters):

  • Do you agree with our best practices?
  • What did we miss?
  • Are there any innovations you’ve done in your work? If so, what are they?


Our presentation at NACIS, best practices and considerations, and this blog post were implemented and written to serve as a tool, and to initiate discussions within the cartographic community. These considerations are not the catch-all answer to cartographic/web accessibility. In our work together we discovered the best starting point is to initiate discussions on accessibility and see where they lead you.

(Some) Accessible Cartographic Considerations

Maps are extremely difficult to make accessible, as their primary intent is to serve as a visual product. IMHO, each visual product has to be evaluated on a case-by-case basis as the intent and audience changes. The use case will change the delivery of accessibility, and in some cases, not all of the elements can be made completely accessible.

Some considerations I have implemented in the last year include:

  1. Provide an accompanying table of data with a map/visual. A table will provide context, or further support of your map/visual.

For example:

Accompanying table
  1. Ensure tabular data can be accessed by a screen reader. This step requires a small amount of effort on your part, but will be extremely helpful to those who rely on screen readers. To do so, add the scope attribute and note whether the item is a column (col) or row (row) in your HTML content.

For example:

     <caption>Population in the United States</caption>
          <th scope="col">State</th>
          <th scope="col">2010</th>
          <th scope="col">2000</th>

          <th scope="row">Alabama</th>

          <th scope="row">Alaska</th>

Producing the following content on your page:

Population in the United States
State 2010 2000
Alabama 4,779,736 4,447,100
Alaska 710,231 626,932
  1. If possible, use colorblind safe colors. Using these color schemes help all audiences, and make it easier to distinguish between elements in your map. Some resources to “add to your toolbox” to help verify your maps are cartographically-sound include:
  1. Enable a ‘skip to data’ link, which is similar to the ‘skip to content’ link. The ‘skip to’ allows screen readers to skip to the content that is most important to them. In most cases, the average user will not see this functionality (unless they tab through the website).

For example:
skip-to-table Skip to table

  1. Check keyboard accessibility ensuring users/visitors can tab through the site. To test your website, (re)load your site and tab through it to see what order is highlighted along the way. The order you see with “the tab test” is very likely what a screen reader will experience. While testing ask yourself, “Can I navigate through the page?” and “Does the tab order make sense with the content I’m displaying?”
  1. Don’t make people hover to find things. The click, focus, and hover functions should have relatively the same functionality throughout an application. If a user hovers over text, they should have a similar experience if they tab and/or click on the element. P.S. This really helps with mobile experiences, too! 🙂

For example:

Similar functionality example (click, focus, and hover)

:hover, :focus {
/* CSS goes here */

$('#target').on('click hover', function () {
// JavaScript goes here

  1. Ensure all other web accessibility requirements are met. A good resource/tool to verify accessibility requirements are met on a website is WAVE (Chrome extension), developed by WebAIM, which will check a site to see if it meets web accessibility standards.


It doesn’t matter what field you’re in – sometimes others think we are smarter when we tell, or show them something that seems complex. But that’s not a good thing!  In fact, complexity is confusing!

Simplicity Example
Image: Parks and Recreation (NBC)

What if the product you’ve created doesn’t make sense to anyone besides you? That means one mind is working on one product – a map, a database, a website, or whatever it may be.

No one can give you input for improvements, nor can anyone make improvements to it. Ultimately the product sits with you, and will not sustain the long haul.

What if the Albert Einstein’s, the Steve Jobs’, and countless other innovators weren’t able to use the inventions, ideas, and work of others to incorporate into their accomplishments? Would we still have the theory of relativity, Apple products, or other products as a result of their discoveries?

If anything it’s the journeys of these innovators we should learn from. The struggles they encountered lead them to the discoveries and innovations that changed the world.

So, how can we simplify our work? And how can we pass our knowledge on to others? Below is a short list of three items to keep us in check (because, simplicity)!

  1. Go back to the basics:

Stay on track! What is the purpose? What process drove you here, and why? Consistently check-in on the purpose, whether you are on day 1, or year 5.

The longer we work on something, the higher the likelihood we lose focus of our goals. This is when we overthink and over complicate our work!

  1. Explain it to an outsider (e.g. parents, spouse, kids, neighbors, etc.):

If an outsider doesn’t understand it, is the product really useful? The best way to make something understandable to someone is to simplify it as much as possible.

If it doesn’t make sense to an outsider right away, don’t fret! Sometimes in the process of simplifying you may find a solution that you couldn’t originally see!

  1. Don’t reinvent the wheel

Don’t write 100+ lines of code, create a new color scheme, or create a new font right out of the gate. First, go back to #1, does this thing serve your purpose? If it does, has someone else done something similar? Don’t reinvent the wheel, use resources available to you, then contribute to them later on to help others in their journey!