All Blog Posts
Browse the following posts, or view all tags.
-
Published on
Add 30 Seconds
What do microwaves have in common with user interface design? Apparently, a whole lot.
-
Published on
Detecting Nested Components in React with the Context API
The React Context API is normally used to avoid prop drilling. But it can also be used to detect if a component is nested within another instance of itself or as a child of a particular component.
-
Published on
An Interactive Guide to JavaScript Events
Learn how event capturing, targeting, and bubbling work in JavaScript; how to prevent an event's default behavior; how to stop event propagation; and more.
-
Published on
A Font-Face Faux Pas
When using the font-face local() function to load fonts installed on a user's system, double-check that sure you're requesting the right font family.
-
Published on
Writing Better Documentation
Documentation is one of those things that you don't appreciate until you have to work without it. Good documentation should go beyond the code itself and also cover your team, the product, your work process, areas of specialization, and many other key areas.
-
Published on
Serializing HTML Form Data with JavaScript
Learn how to use JavaScript's FormData, URLSearchParams, and URL constructors to serialize an HTML form's data into a well-formatted and encoded URL.
-
Published on
The Cost of Tech Debt
The longer you leave tech debt unresolved, the more problems it will create for your team, until one day it becomes unbearable.
-
Published on
11ty Serverless and Object Permalinks: Hybrid Rendering
Learn how to reuse a single source template in 11ty Serverless to generate both a static and server-rendered page.
-
Published on
Modular Arithmetic and the Diffie-Hellman Algorithm
Using the properties of congruence modulo, Alice and Bob can generate a shared private key and communicate publicly, while Eve will struggle to decipher their messages.
-
Published on
Are Password Composition Rules Counterproductive?
Registration systems often ask users to create a password containing certain characters. Unfortunately, in doing so, these systems encourage bad habits that can weaken a user's password.
-
Published on
Tech Twitter Burnout
Twitter can be a great way to network with other people and learn new things if it's used in moderation. But there's the rub.
-
Published on
Creating an Accessible Image Carousel
Learn how to build an accessible image carousel that supports multiple input modes and is progressively enhanced with CSS scroll snap and JavaScript.
-
Published on
Limiting Memory Usage in WSL2
By default, WSL 2 may reserve a significant chunk of your host RAM. Thankfully, we can limit its memory usage with a .wslconfig file.
-
Published on
A typeof Typo
When a pair of quotes makes a world of difference.
-
Published on
Add Build Info to an 11ty Site
Expose information about your 11ty site at build time to all templates using global data. Among other things, this can be used to show your site's build time, package version, and the latest Git commit hash.
-
Published on
16 Shades of Gray
The one where I create my first generative artwork and still refuse to use any color on my site.
-
Published on
A Set of Useful 11ty Filters
One of my favorite things about 11ty is its flexibility and how easily you can customize your chosen template language without having to leave the familiar comfort of the Node ecosystem.
-
Published on
Use Rems for Font Size to Respect User Preferences
Of all the CSS units, rems are the most accessible for font sizing, allowing you to scale text responsively when users change their preferred font size settings.
-
Published on
Implementing the Caesar Cipher in JavaScript
The Caesar cipher is named after Roman emperor Julius Caesar, who used the technique to encrypt his military and political communication. Learn how to implement both a simple and keyed Caesar cipher in JavaScript.
-
Published on
Design Mode in 11ty
Sometimes, I prefer to compose text right in my browser and copy it over to my source files. In 11ty, we can enable this behind a keyboard shortcut in our development environment using environment variables.
-
Published on
Overzealous Destructuring
Destructuring in JavaScript has many clever uses that can make your code more expressive and compact. But overusing it can make your code harder to read, trickier to debug, and more error prone.