RSSAmplifier

Blog

mjswensen.com

Matt Swensen, Front-end Software Engineer

mjswensen.comRSS feed ↗43 posts

Latest posts

Rejoicing in His coming

Christ did not come for humanity in the abstract. He came for people. For individuals with histories, contradictions, hopes, and fears. He came for you. Personally. With full awareness of who you are, with full awareness of what you carry, and full awareness of what you fear might disqualify you from His love. Because you matter.

Clean + Format: a UX pattern for high-quality user input fields

Forms are at the core of how users get data into web applications. At Rivet, we've spent some time crafting what we believe is a nice balance between user-friendly, forgiving input fields and real-time validation and formatting.

The single most important factor that differentiates front-end frameworks

There are tons of blog posts on the internet about how frameworks differ and which one to pick for your next web project. Usually they cover a few aspects of the framework like syntax, development setup, and community size. This isn't one of those posts.

How to set up a WireGuard VPN for personal use

VPNs are a great way to level up your privacy online. Here's how to set one up from scratch.

Cascade layers,, and container queries: What's new in CSS

As CSS inches closer to its 30th birthday, it continues to evolve and improve more rapidly than ever.

Extending object-like types with interfaces in TypeScript

Interfaces are one of TypeScript's core features, allowing developers to flexibly and expressively enforce constraints on their code to reduce bugs and improve code readability.

How to develop over HTTPS on localhost

There are a number of reasons you may wish to use HTTPS as part of your web application development workflow. Find out how to set up SSL locally.

Mastering mapped types in TypeScript

Mapped types are a handy TypeScript feature that allow for types to be automatically derived from other types.

How to set up a simple web server development container for VS Code

Sometimes it's nice to have a lightweight development container that automatically serves the contents of a directory, for rapid prototyping or building static web pages—without having to setup a tool chain on your local environment or install web server software on your local machine.

Using tsm as a shebang interpreter in TypeScript

Executing TypeScript code typically involves transpiling it down to vanilla JavaScript for use in common environments like Node.js or the browser. tsm is a TypeScript module loader for Node.js, providing native TypeScript support without the need to transpile it to JavaScript first.

Using SVG vs. Canvas: A short guide

Canvas and SVG are both technologies that allow web developers to draw images onto the screen, but they have very different APIs and approaches to doing so.

What's new in TypeScript 4.2?

Version 4.2 of TypeScript was released on 23 February, 2021, and with it a number of nice features, bug fixes, and performance improvements. Here are the most important ones you should be aware of.

The case for using frameworks

Like any other tool, the stackless approach can be useful philosophy when approaching a problem. But when working on a team, or on a project with even moderate complexity, leveraging modern frameworks will likely yield dividends throughout the life of the project.

How polymorphic JavaScript functions affect performance

Polymorphic APIs can be convenient to use due to their flexibility. In certain situations, they can be more expensive to execute, as JavaScript engines cannot optimize them as aggressively as simpler, monomorphic functions.

Creating compound components in React and Angular

There are many different approaches to authoring components. In this post, we'll talk about the compound component pattern and when it may be an appropriate choice for component authors.

Should you drop support for IE 11?

Each app, business, and project will have a different answer and timeline for dropping legacy browser support. Here are some different aspects of this question as you consider dropping IE 11 for your app or web site.

How to Make an .ico File Using the macOS Terminal

Suppose you have an icon or logo at multiple resolutions and would like to combine them into a single `favicon.ico` file for your website. These are the commands you need to get up and running from the comfort of your own terminal.

You Might Not Need Sass: Modern CSS Techniques

Sass and other CSS preprocessors have some great features and have been widely used for years. CSS is rapidly evolving, though, and some of the features that were previously only possible through preprocessors are now achievable in plain CSS.

The Book of Mormon: An Ancient Guide to Modern Times

As millions of members of the Church of Jesus Christ around the world study the Book of Mormon together this year, I have been impressed by how similar the challenges, attitudes, and behaviors are between the ancient people in the record and people today.

Building Stripe.com's Tabbed Preview Widget From Scratch in 30 Minutes

In this video I try to build a fully functional tabbed preview widget in HTML and CSS from scratch in 30 minutes—without looking at the original code. After the time's up, I peek under the hood to see the approach of the original author and compare and contrast it to my approach.

Playing the Numbers: A Millennial Engineer's Probabilistic Approach to Believing in God

Though faith is an essential component to any religious conversation, I'd like to set it aside for just a moment and focus instead on a pragmatic and logical way of thinking about religion.

From Electron to Progressive Web App

In this post I'd like to review my reasoning behind sunsetting an Electron-based application in favor of a Progressive Web App (PWA).

Zen and the Art of Software Engineering

As part of my on-boarding as software engineer at Nuvi, I had the opportunity to read the classic book "Zen and the Art of Motorcycle Maintenance" by Robert M. Pirsig. While the book delves deeply into abstract philosophical concepts, there were a number of concrete principles that I felt had direct application to writing high-quality software.

GitHub Pages vs. GitLab Pages

I've been a longtime fan of GitHub Pages. It is a wonderful option for hosting many types of sites. However, recent movements toward a more secure web and GitHub's lack of support for HTTPS on GitHub Pages with a custom domain prompted me to start looking at other options, including GitLab Pages.

Keeping Our Testimonies Up-to-date

We are constantly changing, growing, and learning as we progress through life. Because of this, our testimonies need to be growing at a proportional pace.

How to Learn From Mistakes

Mistakes are an inevitable and essential part of the human experience. Though everybody makes mistakes of some form or another, not everyone leverages the great potential for learning and growth that mistakes offer. Here are some ideas for taking advantage of our mistakes rather than simply letting them weigh us down.

Static Sites Are Awesome

When creating landing pages, content sites, or blogs, content management systems shouldn't be the first tool web developers reach for. Because of the many benefits that come with the simplicity of static sites, they are not only a viable alternative, they are a more practical alternative. And with the popularity of static site generators rapidly on the rise, creating and maintaining static…

Blissful Static Site Development with Jekyll, BrowserSync, and tmux

I was recently listening to the Shop Talk Show podcast where Chris Coyier shared a submission from a listener that outlined the development and deployment setup for her personal website. I thought I would add to the conversation by sharing my setup for developing mjswensen.com.

Key Takeaways to Common CSS Questions

One of my goals for Q2 2015 was to answer ten CSS-related questions on Stack Overflow. These are some of the key concepts I came across while doing so.

Practical Use Cases For The :empty Pseudo-class

At first, the :empty pseudo-class may not seem to be the most useful of the advanced selectors. However, there are situations in which :empty is the perfect tool for the job.

The Power of Education: Truly Thinking

We have the power to truly think, to choose what has meaning and what doesn't in the mundane moments of everyday life.

How Personal Revelation Helps Us Prepare For Eternal Life

Heavenly Father is closer to us than we realize. He wants to communicate with us and has given us the pattern by which we can ask Him for help.

Why Code Snobs Are Invaluable

Some argue that "code snobs" waste time on trivia. While I am sure this can be the case, I submit that their ideas and comments offer more benefit than cost in the long run.

How Well Do You Know Your Programming Language?

I was listening to a podcast about Scala by Scott Hanselman and Dianne Marsh where programming languages were briefly compared to foreign languages. The idea stuck in my mind for the rest of the drive to work.

Configurations for a Friendlier tmux Status Bar

I recently added a few configuration options to my local tmux configuration file to make the status bar easier to read.

Options For Git Status in Shell Prompt

When it comes to customizing your Bash prompt to give you more information about the status of a Git repository, there are a lot of options out there. This post covers using the built-in options that ship with Git.

How the Gospel of Christ Relates to Those Who Passed On Without It

The Plan of Salvation is a selfless plan of love.

What Really Matters

When life's challenges affront us, the superfluity of daily life suddenly loses its meaning.

Lucidpress: Publishing for Web and Print

Lucidpress is a new cloud-based-yet-desktop-caliber publishing application.

Basic Beliefs of the Church of Jesus Christ

The story behind the Church of Jesus Christ is remarkably simple and powerful.

CSS-only Text Gradients

The things you can do with CSS these days are amazing. I was inspired by the beautiful Jekyll logo and set out to see if I could do something similar using only CSS.

The Psychology Behind Open Source

I've always wondered what motivates people (including myself) to contribute to the open source community. Dan Pink hits the nail on the head and the RSA animation drives the point home.

Git

This post is intended for the budding programmer who is ready to take their productivity to the next level. Git is one of the best ways to do just that.