Hello! My name is Susan and I make clear, to-the-point coding videos and guides.

Request a custom video...

Learn more about my background and experience at susanbuck.net.

General inquiries: mail@codewithsusan.com

Get notified when I post new videos by subscribing on YouTube Code with Susan.

Videos & Guides

Filter by: Show all Anaconda Apache Command Line Composer DaVinci Resolve Database Email Herd Laravel MariaDB MySQL Nginx PHP Photoshop PsychoPy Python SSH Server VSCode Vue.js YouTube API jsPsych
Run ChatGPT in RStudio with chattr - How to integrate a ChatGPT window directly into RStudio using the R package chattr.
Completely delete RStudio from Mac - How to completely delete RStudio as well as any of its settings and configurations from a Mac computer.
Simple setup for R in VSCode instead of RStudio (Mac) - How to configure VSCode as a development environment for R, integrating features such as code completion, linting, and syntax highlighting. Offers a more versatile and performance-focussed alternative to R Studio.
Run PsychoPy experiments online w/ GithubPages + OSF for free - How to self-host PsychoPy experiments for free on Github Pages and have the data sent to OSF.io
CodeIgniter & Laravel Herd - Local development (Mac) - Install and run CodeIgnitor locally on a Mac using local development environment Laravel Herd and DBngin (for MySQL database).
Builder View (lexical decision task) - In Part 4 of this PsychoPy series, we will build a lexical decision task using the Builder View.
Coding Experiments - Part 2 of this PsychoPy series zooms in on the Coder View as we learn how to program a lexical decision task.
Migrate from Laragon to Laravel Herd - Steps for migrating a Laravel application and MySQL database from Laragon to Laravel Herd on Windows.
VSCode New Features Highlight - A highlight of three useful features added in the latest VSCode update. 1) Customize file tabs, 2) Add markers to mini-map, 3) Update extensions without restarting VSCode.
MySQL with Laravel Herd on Windows - Manually install and use MySQL in conjunction with Laravel Herd on Windows as an alternative to paying for Herd’s Pro features which includes MySQL.
Miniconda / Conda for Python - Install and use Conda, a command line tool for managing Python packages and environments.
PsychoPy - Manual install via Conda (PsychoPy in VSCode) - How to install and use PsychoPy via Conda without the standalone PsychoPy program.
Getting started with Anaconda and Python on a Mac - How to download and install Anaconda on a Mac, set up an environment, and run a Python program.
Web Developers - How good are your backups? - A PSA for anyone who manages web servers or sites: not only should you have backups in place, you should make sure you understand how to use those backups if needed.
Run Laravel via a subdirectory on a Nginx server - Nginx site configs for running a Laravel application via a subdirectory, e.g. http://yourdomain.com/admin
Multiple Laravel apps on a single Apache server - Deploy unique Laravel applications on a single Apache server, accessed from separate domains.
New Laravel app on Laragon - How to set up and run Laravel applications with Laragon, an all-in-one server management program for Windows.
Send emails in Laravel without a Mailable class - How to send emails in Laravel without using a Mailable class. Includes details for raw plain text emails as well as HTML emails.
dompdf - View PDF in browser instead of downloading - A fix for PDFs generated using DOMPDF downloading instead of streaming in the browser.
Using Composer in a plain PHP project (No frameworks) - How to set up and use Composer in a plain PHP project that isn’t using a framework.
Git delete commits and reset code base to a specific commit - How to reset a git code base to a specific commit, deleting all commits made since
YouTube API & PHP - OAuth Connection (google-api-php-client) - Set up an OAuth connection with Google and the YouTube Data API using the google-api-php-client
YouTube API & PHP - Get video details (google-api-php-client) - How to retrieve information about a video from the YouTube Data API using google-api-php-client.
Google API OAuth - Local URLs for authorized redirect - Using local redirect URLs when connecting to Google APIs.
Rounded corners in Photoshop (2024) - Create rounded corners / edges in Photoshop using the rectangle tool and a layer clipping mask.
VSCode Remote SSH Keeps disconnecting FIXED - Fix for VSCode SSH Remote Development plugin stuck with errors Disconnected Attempting to reconnect or Setting up SSH Host Initializing VSCode
Create a freeze frame in DaVinci Resolve - How to create a freeze frame of part of a clip in DaVinci Resolve
Blur something out in DaVinci Resolve - How to blur something out in DaVinci Resolve. Includes tips on blurring something that moves off screen.
Change the speed of multiple clips in DaVinci Resolve - How to change the speed of multiple clips at the same time in DaVinci Resolve.
Run phpMyAdmin on a Mac (Herd / DBngin) - How to run phpMyAdmin on a Mac with Apache or Nginx and MySQL.
Laravel In a Nutshell - Form Processing (#8) - Form processing and validation in Laravel with some additional practice using Eloquent models to create new data in a database.
Laravel In a Nutshell - Eloquent Models & Seeding (#6) - Interact with database tables in Laravel using their Eloquent ORM (Object Relational Mapping) system.
Laravel In a Nutshell - Views & Blade (#4) - How to use the Blade templating language to simplify the process of writing our Views.
Laravel In a Nutshell - Routes (#2) - Laravel’s routing system is used to define all the URLs used in your application. With each route, you’ll specify a URL that will trigger that route and define what should happen when that route is requested.
New Laravel application with Herd and DBngin - How to set up a new Laravel application with Herd and DBngin.
VSCode - Backup and Reset to Default Settings (Mac) - How to reset VSCode on a Mac to its default state after backing up settings, keybindings, and extensions.
Sequel Ace - Connecting to a Forge managed databases - These are the settings you need to enter into Sequel Ace to connect to a MySQL / Maria database system on a Forge managed server.
Forge Under the Hood - Databases (MySQL / MariaDB) - In this guide, I’ll explain how to manage MariaDB/MySQL databases directly via MySQL command line instead of via the Forge interface. You can use this information when troubleshooting or if you decide to cancel your Forge subscription and manage your own servers.
Forge Under the Hood - Daemons (Supervisor) - Forge uses the Supervisor process control system to manage and monitor daemons. Daemons are used to keep long-running scripts alive on your server. In this guide I‘ll break down how Forge is managing Supervisor on your servers. You can use this information when troubleshooting or if you decide to cancel your Forge subscription and manage your own servers.
Configuring a subdomain on a Nginx web server - How to set up a subdomain on a Ubuntu server running Nginx. Includes steps to set your DNS settings and configure the server to process the incoming subdomain traffic.
Laravel fix for 419 Page Expired - CSRF Tokens - If you submit a form in a Laravel application via POST and see the error 419 Page Expired, it’s typically because there was a CSRF token mismatch. This guide shows you how to fix this error and explains the role of a CSRF token.
mysql_secure_installation Failed! Error: SET PASSWORD has no significance for user root - What to do when you run mysql_secure_installation and receive the error `SET PASSWORD has no significance for user root`.
Install and configure MySQL / MariaDB (Ubuntu) - Install and configure a MySQL (MariaDB) database service on an Ubuntu server.
Deploy Laravel on Ubuntu Nginx server - How to deploy a Laravel application to a Ubuntu server running Nginx.
Understand DNS settings for email sending (MailGun) - An explanation of the various DNS records you create when configuring a domain with a email sending service like MailGun.
VSCode - Customize your keyboard shortcuts - How to customize your keyboard shortcuts in VSCode using both the Keyboard Shortcuts interface and the keybindings.json config file.
Safely run commands you find online - Blindly running commands you find online can lead to trouble. In this guide I expound on this and offer some tips on how to quickly research commands before you run them.
Upgrading to PHP 8.2 (Ubuntu with Apache) - Upgrading PHP on an Ubuntu server running Apache.
Composer require a forked repository - How to use a forked version of a Composer package on Github. Useful as a temporary solution if you identify a bug or issue in a package you’re using and the package maintainer is slow to address the issue.
Coding Rock, Paper, Scissors with a math equation - How to programmatically determine the winner of Rock, Paper, Scissors using math."
Fix for SSH Permission Denied (Public Key) - In this guide I’ll go through troubleshooting steps for when you attempt to SSH into a remote server/system using SSH keys as your authentication method and it fails with the error Permission denied (publickey).
Enable Swap Space an Ubuntu server - Easy Backup RAM Memory - One way to increase the responsiveness of a server and prevent out of memory errors is to add swap space. Swap space designates an area of your hard drive where your operating system can temporarily store data that it can no longer hold in RAM.
Upgrading with Laravel Shift - Full process with useful troubleshooting tips - Upgrading an application with Laravel Shift.
Quick Guide to Custom VSCode Snippets - Snippets in VSCode provide a way to easily inject commonly used code “snippets” into your files. In this guide, I will quickly show you how to create your own custom snippets."
Composition API (#14) - Learn how to work with Vue.js’s Composition API which allows you to organize your Vue instances by an applications features.
Working with Vite and Vue (#12) - In Part 11 of this series, we set up a new Vue application using the Vite build system. Now, let’s take a tour of this application so we can understand how we’ll customize it and integrate our existing FlashWord functionality.
PATH Variable (Mac) - Learn how to edit Mac’s PATH variable - a setting that contains a list of directories your computer should look in when executing programs via command line.
Building FlashWord (#10) - In this part of the series we’ll pull together all the skills we’ve covered so far into building an actual iteration of our FlashWord game.
Form Input Binding (#8) - Earlier in this series we saw how the v-model directive can be used to create a two way binding between a data property and a text input. In this guide, we’ll dig deeper to learn how v-model can be used on other form elements including checkboxes, radios, dropdown, and textareas.
List Rendering (#5) - Let’s look at rendering lists of values using Vue’s v-for directive. When working with v-for, you can iterate through arrays, objects, numbers, and/or strings.
Behind the Scenes (#3) - Before we dig further into working with Vue.js, let’s pause to highlight a couple of key points that are helpful to understand when working with Vue.
Introduction (#1) - In this series, we’re going to learn about the JavaScript framework, Vue.js. To guide our learning, we’re going to build a small application called FlashWord, a flash card game used to practice vocabulary of another language. This series will discuss both Vue’s Options API and Composition API, with a focus on the latter. (If you have no idea what this means, no worries, it will make sense later.)
Command Line Basics for Web Developers (Terminal / Git Bash) - Learn what command line is and why it’s an important tool every web developer should know. We’ll look at setting up command line programs on Mac and Linux (Terminal) and Windows (Git Bash). Finally, we’ll walk through some basic commands for working with files and directories.
HTTPS / SSL via “Let’s Encrypt” on a Nginx Web Server - Learn how to configure HTTPS on a Nginx web server using a free certificate obtained from LetsEncrypt.org.
What is HTTPS (SSL) and why every site should use it - What is HTTPS, how to set it up, and why it’s important your site uses it.
Simple Command Line Text Editing with Nano - Create/edit files directly in command line via the simple to use command line editor, Nano.
Remote Development with VSCode (SSH) - Using VSCode’s Remote Development extension, you can do development work directly on a remote server. This offers a lot of benefits versus the traditional approach of running a development server on your own computer.
Custom Laravel Helpers - Use custom Laravel helpers to create your own globally accessible functions, just like the built in helpers that Laravel provides.