joe codes

x-cart guru & custom programmer

  • About
  • Archives
  • Contact

Powered by Genesis

Progressive Enhancement

December 28, 2020 by joecodes Leave a Comment

I learned about progressive enhancement as a way to take a simple html site and add styles and scripting to enhance its appearance and functionality, as needed, without interfering with the basic purpose of the site. This keeps it simple, fast, and compatible. If bandwidth and browser supports a feature, it will display it, but these enhancements should never interfere with the basic purpose of the site.

This has opened my eyes to other systems that could benefit from this perspective on purpose while integrating new designs and techniques.

A while back we had a truck that would be over 20 years old now. While towing a trailer down the freeway, it suddenly lurched and sputtered, losing power while sounding terrible. It still drove and we were not far from our destination. We took the next exit for the slower backroads. The shop found it suffered from an emissions warning and put the engine in limp-home mode. Perfectly functional, just reduced power to allow you to drive to a shop. I’m fine if you want to add emissions monitoring to a vehicle, but it should never get in the way of its purpose, especially since this can be dangerous or worrying. Why can’t a car’s basic function be separate from all enhancements?

Imagine an old military Jeep which the US Army was trained to fully disassemble and reassemble in just minutes. It is a simple and reliable machine with a specific purpose. You can paint it and add modern wheels without affecting its main purpose. You can add any electronic device and modernize the interior. You can even make dramatic style changes to give it a newer appearance. All this to give you a modern vehicle without affecting the true purpose. If one of those electronic additions fails, it should not cause the engine to go into limp-home mode or strand you somewhere by shutting off or refusing to start.

We can apply this to any system. Start with its most basic purpose, doing one thing well. My rule is that any enhancement should not affect this most basic purpose but either be cosmetic or add a feature that the main purpose never relies on and is never affected by.

Share this:

  • Click to share on Twitter (Opens in new window)
  • Click to share on Reddit (Opens in new window)
  • Click to share on Facebook (Opens in new window)
  • Click to share on LinkedIn (Opens in new window)
  • Click to email a link to a friend (Opens in new window)

Related

Filed Under: Personal, Programming Tagged With: simple, stability

Leave a Reply Cancel reply

You must be logged in to post a comment.

Quick Thoughts

  • I was surprised to learn that foreach in JavaScript does not have a traditional break. The loop will run to completion.

  • Who knew that combination sums across all permutation lengths of an array would be so difficult? It was a challenge but the final product looks good and takes a lot of resources. Limiting the max length for basic memory limits. Would only do something like this for occasional reporting.

  • Working on a new project that can have hundreds of forms on a page. The browser was spending way too much time in Parse HTML. Wasted a bunch of time before learning this is a long-standing bug in Chrome when there are many forms or inputs. Other browsers are fine.

Recent Posts

  • MacBook External DVD Player
  • Progressive Enhancement
  • Keychain Password Search
  • Smarty preg_match
  • iPhone Plus Experiment

Tag Cloud

Apple JavaScript Mason Perl PHP security simple Smarty speed stability Tax WWDC X-Cart

Search

Subscribe

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Recent Comments

  • Bad App Alert on Startup Item Help
  • iPhone Pre-Order Needs to Change on iPhone Pre-Order Warning
  • Apple vs Pro on My Personal Three S’s of Development