Resources Software Development Web Development

CDN content delivery network links and resources

Using a CDN to Speed Up Static Content Delivery – very nice short article about how CND’s work in general
What is a CDN? | How do CDNs work? – Cloudflare documentation about CDN’s

Cloudflare free CDN


What is a Content Delivery Network (CDN)?

GOTO 2016 • What is a CDN and why Developers should Care about using one • Artur Bergman

Resources Web Development

How to install and update NVM node version manager on Ubuntu

New to node and need to install npm, node.js? Use NVM node version manager so you can install more than one version of nodejs.

I had to look for the answer to this until I found it. You update to a newer version of NVM node version manager the same way you install it regardless of how you install it.  I am not sure what happens if you install nvm with curl then try to update it in another way.

For example I used the following in my terminal as not the root user, just a plain user
curl -o- | bash


When I want to install the next version  I replace the v0.35.3 with the next version and it does all the work.  If you installed nvm as a root user then you will not be able to access it easily as any other user.

In fact, if you type nvm –version in the command line as a regular user after you installed it as a root user, you will be told it is not installed, or nvm is not a recognized command would you like to install.   I did this, so that is how I learned not to install it as a root user.

Never ever, ever, not ever use sudo when installing node, npm, nvm or anything like yarn it totally fucks every last thing up.

If you accidentally use sudo follow these instructions to fix the bowl of mashed spaghetti you end up with.

The node world feels as disorganized as Scala here is a link to the latest version

If you are using windows you can install nvm by following these instructions

More info and resources about nvm here.

More info and resources about node package manager

Resources Software Development Web Development

node package manager npm resources and links

Javascript eco system sucks so bad we have to have tools on top of tools on top of tools to even be able to write any functioning code. The chaos of Javascript makes it my least favorite and most hated language. Once you use almost any other language, using Javascript is about as fun as jabbing a fork in your eyeballs.


Why it’s finally time for developers to address the chaos of Node.js and NPM – I am not alone in my observance of the chaos of Javascript
A Beginner’s Guide to npm, the Node Package Manager – good intro article
Installing Multiple Versions of Node.js Using nvm

NVM – node version manager home

NPM scoped packages – more info on naming packages like @mycompany/mypackage

NPM package.json explained – everything you need to know about npm package.json

NPM configuration – everything you could ever know about configuring NPM

How to Publish NPM Packages

How to publish packages to npm (the way the industry does things) 

Understanding NPM Versioning With Git Tags 

Bumping a node npm project version  – NPM documentation about version numbering



NPM crash course

@32:00 mark he talks about global modules and installing nodemon

@34:30 mark he mentions live-server for running your directory code in a server very handy

Resources Software Development Web Development

node version manager nvm resources


Getting started with nodejs, nvm, npm


How to Install Node Version Manager on Ubuntu

Resources Software Development Web Development

GIT resources and links


Semantic versioning with Git tags 


Introduction to Git – Core Concepts

referenced in video – Pro Git 
Visual Git Reference by Mark Lodato

Introduction to Git – Branching and Merging

Introduction to Git – Remotes

Resources Web Security

Web App security resources

Practical HTTP Host header attacks – Must read to understand how hackers use HTTP headers to hack websites.

Link to OWASP cheatsheet  – a good cheat sheet

Website security by MDN – covers some very basic information about website security such as SQL injection

Resources Software Development

Neo4j and graph database resources

Introduction to Neo4j and Graph Databases

@28:30 the link to the article about streaming with kafka and neo4j

Link to a whitepaper article about streaming with neo4j

A Skeptics Guide to Graph Databases – David Bechberger

Resources Web Development

Webpack resources, links and videos

Frontend development has become a challenge. These days we need all kinds of tools. Instead of having one large Javascript file or one large CSS file, you need to develop modularly and therefore you need to break up your files into many smaller files. This leads to all kinds of issues, especially with javascript since the order that your javascript is loaded can mean errors or not. “path”: __dirname+’/static’,
“filename”: “[name].[chunkhash:8].js”

javascript pro tip
javascript pro tip meme

I have used many tricks in the past such as creating my own BASH scripts which collected the files from folders and checked the order and trans-piled and minified them to single files. Even that process got to be a pain because it is hard to make sure things are loa “path”: __dirname+’/static’,
“filename”: “[name].[chunkhash:8].js”ded in the right order.

Webpack makes it easier

Instead of explaining webpack in a lot of paragraphs, I will create a list of videos and articles  I find helpful. First off what is Webpack? I found this video to be very helpful.
“path”: __dirname+’/static’,
“filename”: “[name].[chunkhash:8].js”


Customize Bootstrap 4 with Webpack | Webpack tutorials

Webpack 4 Tutorial – Getting Started for Beginners

Learn Webpack – Full Tutorial for Beginners


Resources, Articles & links

A Beginner’s Guide to Webpack 4 – A great article to get started with.

An introduction to source maps – An article about using source maps in javascript

Webpack using Source Maps – Webpack documentation page for source maps

Webpack source map devtool – Webpack documentation for the devtool that creates source maps, this lists the options

Webpack SourceMapDevToolPlugin – documentation, this plugin aids the source map devtool to add more features and options.

A mostly complete guide to webpack (2020) – a great article about webpack

Creating a custom webpack plugin – decent article about the basics of creating a webpack plugin

Resources Software Development

Linux how to fix Command ‘go’ not found, but can be installed with:

Command ‘go’ not found, but can be installed with:

So you just installed Go on Linux huh?

go not found
go not found error

This means you probably set the environmental variable via the command line which is temporary.  Don’t install go this way. You could do as the documentation says and add :

export PATH=$PATH:/usr/local/go/bin

However if you look in that file it has some important looking code in it. This is because it is a script.

linux profile script
linux profile script

It felt dirty to place the above code in that file so I did some research and found a better alternative. You simply create a new file in the /etc/profile.d directory and place the above export line of code in it and save it. You can name the file anything and add .sh to it and it will be found and loaded. Then you logout and back in like the documentation suggests and open a terminal and type “go version” and it works properly.

See my file :

profile.d directory
linux profile.d directory

Doing it this way instead of adding it to the ~.profile file is better because it reduces the chance of messing up the code in a file. The script actually reads all of the files in the profile.d folder and this is why it works. For more information see this article in the section “Persistent environment variables”. You can do any other environmental variables you need set this way too.

Resources Software Development

How to easily add a desktop icon in ubuntu 18

They decided to make adding a desktop launch Icon even harder in Ubuntu 18, because you know we all love wasting our time googling all day trying to figure stuff out. It’s a repeating theme in the Linux community for decades now. Making things harder makes you feel smarter.

If you can avoid the UI and go for the command line, then go for it right. We all love typing in 120+ characters into the terminal, looking closely squinting, comparing character to character. It makes us feel smart like pretend hackers in movies right!!!

Why would anyone want to work efficiently anyways? Surely memorizing 1,000 linux commands and how the entire system works makes you feel smarter right? No? Me neither. My time is precious to me and maybe yours is to you too.

Here is a video that shows how to create desktop launch Icons. It still works in Ubuntu 18. Everything else you find suggests locating a file and typing a whole lot of lines of code.  And since it is so obscure  I will never remember it,  I am creating this post so  I can find it again later.