All Blog Posts
Browse the following posts, or view all tags.
-
Published on
Creating Aspect Ratios in CSS
Learn how to give any element an aspect ratio in CSS, using the modern aspect-ratio property or a trick with percentage padding.
-
Published on
Hesitation Is Defeat
After a one-year hiatius from Sekiro, I returned to face the final boss—and, through painful persistence, triumphed.
-
Published on
JavaScript Promises: Practical Use Cases and Examples
Promises are a powerful tool for writing asynchronous code in JavaScript. Here are a few interesting use cases.
-
Published on
Optimizing Images with WebP and Lazy Loading
Images make the web a more beautiful place, but this sometimes comes at a price. Learn how to optimize images for the web using the WebP image format and lazy loading with JavaScript.
-
Published on
Blue People Illustrations, or How to Kill a Brand
There's a recent trend in web design of using illustrations of blue, generic, faceless people. And it's killing brands.
-
Published on
Don't Mind the Leetcode Grind
Leetcode is a polarizing topic when it comes to technical interviews. But what exactly is it? And does it deserve your attention?
-
Published on
Easily Sort Ant Design Tables
The Ant Design UI library lets you sort tables by one or more columns, using a sorter prop. But the syntax can get quite repetitive. Let's fix that!
-
Published on
An Introduction to HTTP Cookies
Learn why HTTP cookies are needed, how they're used on the client and server side, where they're stored, and how they impact security and privacy on the web.
-
Published on
Semantic HTML: Building a More Accessible Web
Accessibility is a hot topic, but it's not always executed correctly. Learn how to use semantic HTML to create an accessible user experience on the web.
-
Published on
How to Test Localhost on Mobile (with ngrok)
Learn how to easily test localhost on mobile using ngrok, without deploying a single line of code.
-
Published on
Add Comments to Jekyll with the GitHub Issues API
Add comments to your Jekyll blog with the GitHub issues API and lazily load them for improved performance.
-
Published on
A Simple Webpack Config
Webpack is one of the most popular code bundlers available. Here's a simple webpack config to bundle your JavaScript.
-
Published on
Binary for Beginners: The ABCs of 0s and 1s
The binary number system underlies everything in computation and software. But what's the deal with all those 0s and 1s?
-
Published on
Goodbye, GitHub Pages—Hello, Netlify
GitHub Pages is a good option for hosting simple static sites, but it doesn't scale well for more complex use cases. Netlify offers the best of both worlds: simple hosting and plenty of advanced features.
-
Published on
Creating a Responsive Navbar with HTML, CSS, and JavaScript
Learn how to create a responsive navbar that arranges links horizontally on desktop devices and collapses to a hamburger menu on mobile.
-
Published on
Stuck in Tutorial Purgatory?
Tutorials can help you grow as a developer. But they can also hold you back. Stuck in tutorial purgatory? Here's how to get out.
-
Published on
Is JavaScript Pass by Reference?
Developers are often taught that JavaScript passes objects by reference. In reality, JavaScript is a pass-by-value language.
-
Published on
SEO Tips for Getting More Traffic
SEO is the art of making strategic improvements to a site's content or performance in order to rank higher in search results and attract more traffic. Learn how to use tried-and-true SEO strategies to draw more visitors to your site.
-
Published on
How to Add a Copy-to-Clipboard Button to Jekyll
Add a copy-to-clipboard button to your Jekyll blog with a simple include and a few lines of JavaScript.
-
Published on
Getting Started with Jekyll and GitHub Pages
Jekyll is a static site generator that makes it easy for you to create a website. Learn how to get started with Jekyll and GitHub Pages.
-
Published on
Implementing a Finite State Machine in C++
Finite state machines (FSMs) are used in lots of different situations to model complex entity state. In this tutorial, I'll help you understand the FSM design pattern by building one from the ground up for a simple use case.