Tool Safety

Tool Safety is a zine I wrote in 2017 about what writing Beautiful Soup taught me about software development.

You can download Tool Safety as a single sheet. The WikiBooks "Zine Making" book shows how to fold this sheet into an 8-page zine with a single cut.

You can also read the individual pages of the zine online:

Tool Safety cover

Tool Safety

A mini-zine by Leonard Richardson

Tool Safety
        page 1

In 2004 I started work on Beautiful Soup, a Python library for getting information out of web pages.

$ pip install beautifulsoup4

Before Beautiful Soup, web browsers could parse bad HTML:

<a href=">
<b>link text<a></b>

But it was really difficult to do it from within your own computer programs.

Tool Safety
        page 2

Beautiful Soup has been used in thousands of public Python projects.

(And probably at least as many private/individual projects.)

Most of these projects make peoples' lives better in small ways:

  • Get sports scores 🏈
  • Record Internet radio streams 📻
  • Download astronomy data 🔭
  • "Unofficial APIs" for data export ➔
Tool Safety
        page 3

Sometimes beautiful Soup is used to do something really important, often as a piece of journalism. (My favorite example.)

But it's also been used as a tool for spamming, doxing, and other things I think are unethical.

And it's often used in ways that make rich people richer. 📈

Maybe not unethical per se, but not the best use of the power we have as computer programmers.

Tool Safety
        page 4

Beautiful Soup is just a tool.

It isn't good or bad on its own.

But I chose to make this tool instead of a different tool.

I choose to work on it now instead of doing other things.

- - -

I can't use "just a tool" as an excuse.

If I'm going to feel pride about the good people do with my software, I have to share some responsibility for the bad.

Tool Safety
        page 5

In college I took an Engineering Ethics course. It focused heavily on mistakes.

  • Bridges falling down 🌉
  • Radiation poisoning caused by a software bug ☢

This stuff has consequences.

Mistakes can cause a lot of harm.

I wish this course had covered the idea that people might be harmed not because of an implementation mistake, but because an engineer did a good job building the wrong thing.

Tool Safety
        page 6

I used to ask for donations from people who used Beautiful Soup.

Image of donation button.

But I didn't write Beautiful Soup to make money. I wrote it to make the world a better place.

I wrote it to be a tool for good.

If you've used Beautiful Soup over the past 10+ years and want to say thank you, the best way is to be thoughtful about how you use it.

You have power. Use it to make things better.

Tool Safety
        page 7

When I work on a piece of software I ask myself:

Could this be used to hurt someone?
Is there something better I could do with the same idea?

That's what I mean by being thoughtful.

It's similar to the mindset you need to write secure code.

Help people who want help.
Think through the consequences.

Thanks for reading. I'd like to hear what you build with Beautiful Soup. You can email me at

Beautiful Soup website

© 2017 Leonard Richardson, CC-BY-ND

This document (source) is part of Crummy, the webspace of Leonard Richardson (contact information). It was last modified on Friday, August 11 2017, 14:55:06 Nowhere Standard Time and last built on Wednesday, March 29 2023, 01:00:01 Nowhere Standard Time.

Crummy is © 1996-2023 Leonard Richardson. Unless otherwise noted, all text licensed under a Creative Commons License.

Document tree:
Site Search: