Musings of a mad man



Astro form to a google sheet /01

I have been using astro for about a year now and I have been loving its simplicity while getting some cool things done. I had a client need a special form to submit to a google sheet of theirs so they can manage the data there. Their site is hosted in cloudflare pages so that complicated things a little...

8 free Javascript learning resources /02

Here are my top 8 free resources I used to learn the fundamentals and still reference all the time. I may put together a list of paid resources in the future as well but I wanted to get started with these too. This is, by no means, an exhaustive list. There are many more out there and they continue to grow! Also these are not in any particular order, they are all great resources.

Javascript array methods /03

Welcome back to another fundamentals post. This time about javascript array methods. We will go over several and some tips & tricks for each. These will greatly help you out as you do not always have to come up with the boilerplate code for preforming some algorithms., This is a newer method added relatively recently. Make sure to checkout...

Async Await in JavaScript and a helpful utility function /04

Basically they are a way to handle handling asynchronous actions and then do things after the value returns. For example, in the browser you can make a fetch request and then wait for the request to complete before trying to read the response. Or in nodejs, make a request to the server's file system and wait for the OS to return the file request before working with that data. In this article we are going to go over some really cool ways to work with promises using async/await syntax. Async Await was introduced to add some sugar on top to reduce some of the complex parts of working with promises.

How to host nodejs with nginx using reverse proxy /05

There are a lot of different types of proxies in computer networking. A reverse proxy is when you have a server(Nginx) in front of a group of client machines(browser's in our case). When requests come in from those client's the reverse proxy intercepts them and then talks to other server's on behalf of the client. It is very possible to host your nodejs app on ports `80`(HTTP) and `443`(HTTPS) but you loose out on some really cool capabilities that Nginx brings when you do that. Some examples...

How to add FREE SSL/TSL and HTTPS to nginx using Let’s Encrypt /06

The internet is a big place, and when we request a website our request ends up going through several other people's servers before hitting the website's server. Then it needs to come back too! In those 'in-between' routes there could be malicious actors that could read and even alter the website that comes back to you! For example, if you are using a website that is not secure, aka not using HTTPS but only the HTTP. Then someone can read the website before you do. Log into your banking website that is only using HTTP, someone could be reading your bank account numbers and records, along with reading your password you entered into their login form.

How to host sites with nginx and server blocks /07

If you are coming from Apache then a server block is pretty much the same as a VirtualHost in apache. If not, then a server block makes it so you can host many different websites on the same server. Create a new NGINX server block

How to install NGINX on Ubuntu /08

Nginx, pronounced like “engine-ex”, is one of the most popular web servers in the world and is responsible for hosting some of the largest and highest-traffic sites on the internet. Need an extremely fast and easy to configure web server and reverse proxy? Look no further than nginx!... On Ubuntu it is very easy to install due to it being in the default repositories using `apt`.

Javascript Variables and Scopes /09

Variables are one of the foundational building blocks of any programming language and JavaScript is no exception to this. But, how do they work? When you are trying to read someone else's code, including past you's code, the meaning of the variables are changed based on where and how they are defined. Let's dive into it!

Deep clone in Javascript with structuredClone /010

Lets start off my asking what is a "deep" clone as opposed to just a regular old "clone"? Or better yet, "Why would we need to know about cloning anyway?" Wow, what great questions! To answer that we need to do a review of how JavaScript primitive values and assignment works. Most programming languages have values called `primitives`. These are the most basic types of values you have to work with to create programs. For example, in JavaScript there are 7 primitive types

About Michael Erb /011

I am a self taught full stack web/software developer. I love learning all things programming and never want to stop learning about new things. I spend most of my time coding, coming up with new project ideas, playing games, and being outside with my family. If I am not at my computer, I am outside exploring and enjoying time in the mountains.

Let's get started together/01