Author: david

Mechatronics, Software Engineering, Woodworking, and "Making" in General

Re-starting Raspberry Pi Web Server on Reboot

Recently, I’ve put together a home automation tool that uses a Flask project to control the state of the RPi’s GPIO pins. As an example, the pin state is driving a relay to control gas fireplace, decorative LEDs, etc. For the tool’s general “healthy state”, the web server from Flask needs to be running on…
Read more

Single Points of Failure in Software Applications

A single point of failure (SPOF) is a component or system that, if it fails, will cause the entire system to stop functioning. SPOFs are undesirable in any context, but especially in software engineering, where they can lead to catastrophic consequences such as data loss, security breaches, or service outages. In this blog post, I…
Read more

React Component Library Evaluation Selection and Pros/Cons of Popular Libraries

React is a popular JavaScript library for building user interfaces. It allows developers to create reusable components that can handle data and state changes. However, not all components are created equal. Some may have better performance, accessibility, documentation, or design than others. How can we evaluate and compare different React component libraries to find the…
Read more

NPM vs Yarn: Which One Should You Use for Your React Project?

If you are a React developer, you might have wondered which package manager to use for your project: npm or yarn. Both are popular tools that help you install and manage dependencies, run scripts, and automate tasks. But what are the main differences between them, and how do they affect your development workflow? In this…
Read more

Sentry for Web Application Monitoring: Setup

In this post I’m focusing mainly on how to set up an application to use Sentry for application monitoring. First, let’s introduce Sentry to give some context. What is Sentry? Sentry is a software platform that helps developers monitor and fix errors in their applications. Sentry provides real-time feedback, crash reporting, performance monitoring, and user…
Read more

Sharing Data Between Micro Frontends: React Context

React context can be used to share state data across micro frontends. React context provides a way to pass data through the component tree without having to pass props down manually at every level. This can be useful for sharing state data between different parts of an application, including micro frontends. To use React context…
Read more

Deploying React App with Vercel and Vite

If you’re building a React application, you may be familiar with tools like Create React App or Next.js for setting up your development environment and deploying your app. However, there’s a newer alternative that’s gaining popularity: Vite. Vite is a build tool that promises faster development and build times, thanks to its use of native…
Read more

Micro Frontends: Fundamental Concepts

What are “micro frontends” and how should they be used? Some fundamental concepts of micro frontends are: Converting Monolithic Application into Micro Frontends Enterprise Application Focus As enterprise applications grow in complexity and scale, it becomes increasingly difficult to manage them as a single monolithic application. Changes to one part of the application can have…
Read more

Future of UI/UX

Fundamental Incoming Changes to UI/UX Enabled by Progress in Compute Resources (i.e. Moore’s law)

Hallucinations in Generative AI: A Brief Overview

Generative AI is a branch of artificial intelligence that focuses on creating new content, such as images, text, music, or speech, from data. Generative AI models learn from existing examples and try to mimic their style, structure, and content. Some of the most popular generative AI techniques are generative adversarial networks (GANs), variational autoencoders (VAEs),…
Read more