Algorithms

State Machines

Demystifying Regular Expressions

Remote Procedure Calls

CMake

Introduction

DevOps

Docker Two-Stage Builds

Docker Volumes for Persistent Storage

Linting with clang-format 

Git

Git 1: Why Git?

Git 2: Initial Setup

Git 3: Collaboration on GitHub

Git 4: Correcting Mistakes

Git 5: Blobs and Trees

Git 6: Branching

Git 7: Merging

Git 8: Remote Branches

.gitignore files

Git Stashing

Git SSH Keys for Windows and WSL

Rewriting History: git interactive rebase

GNU

Make

Advanced Make

GNU Project Debugger Introduction

Octave Introduction

Readline

Linux

Blazing Fast apt Download Speeds

Networking

Quickstart: gRPC in C++

Protocol Buffers

Network Sockets

Network Sockets in C++

Remote Procedure Calls

Synergy Introduction

Wireshark Introduction

Python

Argparse

Conda

Matplotlib

Robot Operating System

Introduction

Installation and shell tools

Launch Files & Playing Back Data

Nodes

ROS 2

Topics & rqt_graph

Rust

Introduction

Scribblings

Around the ‘Net (Nov 14, 2020)

Creating An Untouchable Space

Theory: I Can Fix a Broken Computer

Software Best Practices

Agile vs Waterfall

Tradeoffs of Lambda Functions

Replacement Software Rollouts

Utilities

My Favorite Linux Aliases

Useful Utils

Vagrant

Vagrant Introduction (Windows 11)

Vagrant with VirtualBox with Ubuntu Step-by-Step

Vim

Cheat Sheet for vim

VirtualBox

Red Hat Guest

Shared Folders

VirtualBox: Windows Host, Manjaro Guest

Windows Host

USB

Visual Studio Code

Introduction

Debugging

Dev Containers

g++ with MSYS & VS Code

GNU Project Debugger Introduction

Git Extensions

GitLens

Win Subsystem for Linux

WSL: Red Hat Enterprise Linux 8