Cheesecake, Printers, and Morality

One night, I wanted a slice of cheesecake.

This would normally be no real issue; for many years prior in my life, I would have simply walked to the grocery store, picked out the least healthy looking cheesecake, and reveled in it for hopefully more than one sitting.

Unfortunately, several years ago I swore off carbohydrates, which cheesecakes are (unfortunately) full of.

I had to solve this problem, so naturally, I took to the internet to find a solution. A few clicks after searching for Keto Cheesecake recipes and low carb cheesecake I found a delightful recipe for a low-carb brownie-base cheesecake.

At the time, I didn't have a tablet, so I did what you would expect: I printed out the recipe so that I didn't get my laptop all mucked up with cheesecake batter.

As an easily distracted young man, I waited a few minutes before heading to the kitchen (where the printer was located, oddly enough) and picking up the printouts. My plan was simple: go shopping for some missing ingredients and make this bad-ass cheesecake. Funnily enough, I had all the ingredients except for baking Truvia (which I must say, makes a world of difference to use the baking kind).

By the time I got to the printer, something peculiar had happened: it had run itself out of paper and ran through all of my color ink. You see, the contents of the recipe printed fine by page 2. Unfortunately, there were approximately 30 page of comments printed after that, all with colored links and images that absolutely massacred my ink cartridge and paper stock.

In its defense, it really was a popular recipe. I should have seen that coming.

Unfortunately, there was also a statistics homework due that night that required me to print out charts with multiple colors on them.

The night went as you may have expected; first, the panic set in.

Then, the anger. I knew enough about web development at that point to know one thing: 3 lines of CSS in a print stylesheet would have pretty much avoided this issue:

#comments {
  display: none;
}

Years later, as I told a (slightly) embellished version of this story during a lecture, it got me thinking about content digestion. Particularly, it made me wonder if web developers had an almost moral obligation to making sure our content is digestible across as many different scenarios as possible.

Lately, I think often about this concept of moral obligation in terms of programmers and technology and what it can do. It originally stemmed from a question that had bugged me for a few days:

Now that we have digitizing technology, is there a moral obligation to digitize all writing so that it could be archived before it is lost forever?

Which led to:

Is there something fundamentally moral about archiving knowledge? Is allowing something to disappear forever immoral?

While that's a larger debate in my mind, let's hone back towards print stylesheets.

In the last 18 months, a close friend of mine made me painfully aware of how bad the web was in terms of accessibility and what we can do to make it a better place. I think a lot of these questions stemmed from topics he's brought up.

As a web developer, I often think that my job is less about making pretty pages and more about the translation of information. As I identify more accessibility concerns, I also start to think of my job as a web developer as someone who translates intents. When I started to think that way, API design and Web Development seemed a lot less different; isn't a website just how the user interacts with a data source? Not much different than a REST call, to be honest.

I don't get to dictate how people consume my content. I am simply a translator. Maybe that's why progressive enhancement is catching on; you integrate more and more as you can, but the core of your content should still be accessible. The cheesecake recipe was essentially only consumable on an electronic device due to the fact that it did not hide things that would appear during printout. There's nothing inherently wrong with that; I was still able to read the recipe after all.

That night I did not have my cheesecake. Instead, I had regret as I bought new ink cartridges.

I learned a few lessons about print stylesheets that night:

  • Hide non-essential images
  • Minimize your usage of print colors
  • Hide non-essential blocks of content
  • Focus on readability, not on prettyness.

I was left with more questions than answers. What bugs me now is:

Where do I draw the line? If I think it's moral to make content available everywhere, shouldn't I still support IE6?

I would really love not to, but if I believe in making all literature, all written and recorded information, all records of any sort digitized so that they aren't lost and can be seen by later generations, shouldn't I still care about the people using IE6 that are still alive today?

Sometimes, I'm left with more questions than answers. I'll have to have quite a think on this one.