RSSAmplifier

Blog

Building Better Software Slower

Recent content on Building Better Software Slower

bbss.devRSS feed ↗12 posts

Latest posts

Components Are Just Sparkling Hooks

Here’s a question you might encounter while interviewing for React developer roles: “What is the difference between a component and a hook?” The answer that the interviewer is likely looking for is along the lines of “A component is a building block for the UI, and hooks are utility functions for managing state and side-effects 😴” . It’s a satisfactory answer…

Default Audio Input (or Output) Device for MacOS

As a recent Apple convert, I enjoy a lot about Macbooks. My main gripe, however, is that anything I don’t appreciate is often difficult-to-impossible to fix to my liking. A particular pain point for me has been around my wireless headphones ( Sony WH-1000XM4 , by the way) which come with a mediocre microphone built-in. Usually, I wouldn’t care about a suboptimal headset microphone…

Learn Suspense by Building a Suspense-Enabled Library

Suspense ( along with concurrent rendering ) has been a feature in React since v16.6.0 . Despite this, I haven’t seen much of it in action beyond React.lazy and limited applications of “suspense-enabled libraries”. What’s going on? As of the impending React v19 release, Suspense is still not quite ready for primetime. The story of its APIs and internals still seems…

Understanding React Concurrency

React v18.0 has broken ground by introducing a long-awaited feature: Concurrency ! Unfortunately, despite a deluge of resources explaining how to use it , explanations of how it works are sparse. As it is a low-level feature, it’s not critical to understand React’s idea of concurrency, but it doesn’t hurt! This post does not attempt to exhaustively document React’s…

Practical Guide To Not Blocking The Event Loop

JavaScript runs in a single-threaded environment with an event loop, an architecture that is very easy to reason about. It’s a continuous loop executing incoming work. Said work can schedule more of it for the future. while ( hasWorkToDo ) { /* Run timers, I/O callbacks, check for incoming connections, and so on... */ doWork (); } Synchronous work runs immediately; asynchronous work runs…

Effective Higher-Order Components

Before the introduction of contexts and hooks in React v16.8 , Higher-Order Components (or HOCs for short) were a common sight. Today, it is an under-used pattern. HOCs are Wrappers You've Got Mail! No more than five emails per year, all densely packed with knowledge.

Skipping Outdated Refs with GitHub Actions

If you use GitHub Actions for deployments in a “push to master, deploy to prod” sort of flow, you’ve likely wanted to avoid deploying conflicting refs. By default, GitHub Actions will want to run a deployment for every commit as soon as you push it: name : Deploy on Push on : push : branches : [ master ] workflow_dispatch : jobs : deploy-public : runs-on : ubuntu-latest steps : -…

Writing a Recursive Utility Type in TypeScript

I recently dealt with a tricky TypeScript situation. GraphQL servers have a feature where for any response it returns, it adds a __typename within every object corresponding to its type’s name. This is what a typical response looks like: { '__typename' : 'SolarSystem' , 'id' : 123 , 'name' : 'The Solar System' , 'star' : { '__typename' : 'Planet' , 'id' : 123 , 'name' : 'Sun' , 'size' :…

The State of Copy-Pasting in JavaScript

I recently did some work on a VS Code extension whose purpose is to handle rich pastes. It prompted me to survey different copy-pasting libraries and the state of the NPM ecosystem as a whole. How do clipboards work? You've Got Mail! No more than five emails per year, all densely packed with knowledge.

PageSpeed for NGINX -- Fresh Debian Packages

Important Notice: Google has retired the underlying project which made integration with NGINX possible. As a result, the version maintained in my repository is stale , and is not receiving feature or security updates. Using this project is now discouraged and should be removed from your system. To remove it from your system, follow the instructions at the bottom of the page. You've Got Mail! No…

Adding WSL Support to a VS Code Extension

I have a few dozen projects on GitHub. I put a lot of effort into my README.md files, making them complete with descriptions, instructions, and screenshots – the last one being the most time-consuming to manage. Rich Editors are Easy You've Got Mail! No more than five emails per year, all densely packed with knowledge.

About

BBSS is published by Slava Knyazev. I began writing software in my early teens, fell in love with it, and never stopped. Building Better Software… Slower Writing software is an artisanal process: quality comes not from the development methodology du jour but from the passion of the individual contributors. To be happy as a developer, one must find a space where they practice perfectionism…