Hello! My name is Susan and I make clear, to-the-point web development 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
Add a new empty track in ScreenFlow - How to create a new empty track at the top of your timeline in ScreenFlow.
Run PsychoPy online experiments on your own server - Run PsychoPy experiments and collect data on your own web server. Alternative to the paid Pavlovia service.
DaVinci Resolve - Fix washed out exports (iPhone footage on Mac) - Color profile settings to address videos exported from DaVinci Resolve having washed out colors
Coding Experiments (lexical decision task continued) - Part 3 of this PsychoPy series continues with our lexical decision task, adding features such as importing external conditions, recording reaction time, writing results to a CSV file, and more.
Overview - Part 1 of my series on working with PsychoPy. This intro provides a general overview of designing experiments using the Coder and Builder view.
Uninstall Laravel Herd on Windows - Completely uninstall Laravel Herd on Windows (including any of its configs and dependencies). Allows for a fresh slate re-install.
Completely uninstall VSCode (Visual Studio Code) on Windows - To get a fresh install of VSCode on windows you have to delete not only the program itself, but some config files on your computer related to VSCode.
Laravel Herd released for Windows - Easy PHP local development - Laravel Herd is now available on Windows.
Simplest command line program for Windows - Git Bash - Work with Unix-based command line on Windows via Git Bash.
Getting started with Anaconda and Python on Windows - How to download and install Anaconda on Windows, set up an environment, and run a Python program.
What is Anaconda for Python? - What Anaconda is, what it includes, and why you would want to use it.
Run Laravel via a subdirectory on an Apache server - Apache site configs for running a Laravel application via a subdirectory, e.g. http://yourdomain.com/admin.
Multiple Laravel apps on a single Nginx server - Deploy unique Laravel applications on a single Nginx server, accessed from separate domains.
Setup PHP CS Fixer in VSCode (junstyle php-cs-fixer) - Format PHP code with php-cs-fixer into VSCode using the junstyle.php-cs-fixer plugin.
8 development server options for Laravel - Summary of development server options for Laravel including: PHP's built-in server, Valet, Herd, Homestead, Docker, Sail, Laragon, XAMPP, MAMP, and WAMP.
YouTube API and Laravel - Building on my YouTube API & PHP series, this guide covers how to communicate with the YouTube API from a Laravel application.
VSCode - Disable code hint and hover popups (IntelliSense code completion) - Settings for disabling VSCode’s code hint popups that appear when typing or hovering text
Generate PDFs in Laravel - Generate PDFs from View files in Laravel using the package laravel-dompdf
YouTube API & PHP - Edit video details (google-api-php-client) - Edit a video’s details with the YouTube Data API using the google-api-php-client
YouTube API & PHP - Get all videos from a channel (google-api-php-client) - How to get all the videos from a YouTube channel using the YouTube data API, PHP, and google-api-php-client package. Covers paging through the results using tokens.
YouTube API & PHP - Initial setup (google-api-php-client) - How to query the YouTube API using PHP. In this setup video we’ll create and configure a new project in the Google Cloud console, install the package google-api-php-client, and query for the details of a video.
Dynamic environment configs in Laravel Dusk (duskapiconf) - Change application configs on the fly during Dusk tests using the package duskapiconf.
SSH Remote development with VSCode - Using VSCode’s Remote SSH extension, you can do development work directly on a remote server. Learn how to set up a new connection and troubleshoot any connection issues.
VSCode PHP CS Fixer: executablePath not found (junstyle) - Solutions for using the VSCode extension php cs fixer by junstyle and seeing the following error: PHP CS Fixer: executablePath not found. Try setting `php-cs-fixer.executablePath`: `${extensionPath}/php-cs-fixer.phar` and try again.
Blur background for vertical videos in DaVinci Resolve - Fill the background of vertical videos - DaVinci Resolve with a blurred background (Blanking Fill effect)
Export a still image in DaVinci Resolve - How to export a still image from a frame in a video in DaVinci Resolve
Record a voice-over in DaVinci Resolve - How to record a voice-over in DaVinci Resolve.
Laravel In a Nutshell - Conclusion (#9) - Series wrap-up and suggestions on what you should do next as you continue your path to learn Laravel.
Laravel In a Nutshell - Eloquent & Collections (#7) - More examples of working with Eloquent and coverage of Laravel’s Collection data type.
Laravel In a Nutshell - Database & Migrations (#5) - Set up a MySQL database and create tables for our demo application using Migrations.
Laravel In a Nutshell - Controllers (#3) - What are Controllers, how to create them, and how to invoke their methods from our Routes.
Laravel In a Nutshell - Intro & Installation (#1) - In this series I’ll provide a broad overview of working with Laravel. In Part 1 we’ll start off with installation.
Migrating Laravel site from XAMPP to Herd and DBngin - How to migrate an existing Laravel site and MySQL database from XAMPP to Herd and DBngin.
Laravel error: Integrity constraint violation - foreign key constraint fails - How to fix a foreign key constraint fails database error in a Laravel application.
Deploying Laravel - MySQL / MariaDB database setup (Ubuntu) - As a follow-up to my guides on setting up Laravel on an Ubuntu server, this guide covers creating and configuring your MySQL (or Maria) database.
Forge Under the Hood - Scheduler (Cron) - Laravel’s server management service, Forge, has a Scheduler feature which allows you to schedule commands to be run on your server at a set time. This Scheduler feature is just a nice interface for your server’s underlying Cron program. In this guide we’ll learn how to work directly with Cron. You can use this information when troubleshooting or if you decide to cancel your Forge subscription and manage your own servers.
Configuring subdomains on Apache web servers - How to set up a subdomain on a Ubuntu server running Apache. Includes steps to set your DNS settings and configure the server to process the incoming subdomain traffic.
Copy files from a server to your computer using command line / SSH SCP - How to use the SCP (Secure Copy) command to move files or directories from a remote server to your computer (or some other server) via SSH.
Laravel permissions for storage and bootstrap/cache (Apache or Nginx) - How to identify your web server user and set the correct permissions for Laravel’s storage and bootstrap/cache directories.
Migrate from MySQL to MariaDB (Ubuntu) - Walk through of migrating from MySQL to MariaDB. Includes steps to backup MySQL, uninstall MySQL, install and secure MariaDB, and then import MySQL data.
Deploy Laravel on Ubuntu Apache server - How to deploy a Laravel application to a Ubuntu server running Apache.
How to fix SSH WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! - Understanding and fixing a “SSH WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!” error when connecting to a remote server.
How to configure a domain and DNS settings with MailGun - A quick run through of configuring a domain’s DNS settings to work with MailGun email sending. Shown with Namecheap.com as the domain provider, but the same instructions should work for most domain providers.
VSCode - Keyboard shortcuts to increase font size instead of zooming window - Learn how to override the default zoom behavior in VSCode so your zoom keyboard shortcuts (Cmd +, Cmd - on Mac or Ctrl +, Ctrl - on Windows/Linux) will zoom in/out just the code pane, not the entire interface.
Install Composer on a Mac - PHP dependency management - How to install Composer on your Mac with just a few commands.
Upgrading to PHP 8.2 (Ubuntu with Nginx) - Upgrading PHP on an Ubuntu server running Nginx.
SSH Keys and Github - Learn how to communicate with Github from your computer/server by authenticating with SSH key pairs.
Common Laravel Installation Issues (500 Server Error) - Run through of five common system-level bugs that might be preventing your Laravel application from loading.
Creating a SSH key connection with a server - How to connect to a server using SSH key authentication which provides a more secure and convenient way of logging into a server versus using a password.
PHP Configuration - Locating and Editing php.ini (Apache, Nginx, PHP FPM) - How to identify and edit PHP’s initialization file (php.ini) which is responsible for configuring many of the aspects of PHP’s behavior.
Local email testing in Laravel - Four approaches to handling emails in a Laravel development context: logging, MailHog, MailTrap, and routing all outgoing messages to an email of your choosing.
DevTools & Wrap-up (#15) - Discussion of Vue DevTools and resources to check out after completing this series.
Single File Components (#13) - In Vue.js, Single File Components allow us to organize together all the JavaScript, HTML, and CSS of a specific entity or component of an application into one file. Within the JavaScript, you will define all the Vue options (data, computed properties, methods, watchers, etc.) necessary for that component, and each component will be set up as its own Vue instance.
Vite Build System (#11) - Let’s take things up a notch by setting up a Vue project using the Vite build system. This will have several benefits including Hot Module Replacement, the ability to work with Vue SFC (Single File Components) and more.
PATH Variable (Windows) - Learn how to edit Window’s PATH variable - a setting that contains a list of directories your computer should look in when executing programs via command line.
Computed Properties & Watchers (#9) - In this guide we’ll learn about Vue’s Computed Properties which allow us to compose new data derived from other data. Additionally, we’ll learn about Watchers which allow us to define functions that watch for changes to existing data properties. Finally, we’ll discuss use cases for Computed Properties, Watchers, and Methods.
Attribute Binding (#7) - Dynamically set HTML attributes in Vue.js using the v-bind directive.
Conditional Rendering (#4) - Run through of Vue’s conditional rendering tools including v-if, v-else-if, v-else, and v-show.
The Basics (#2) - In Part 1 of this series, we learned what Vue.js is and why you’d want to use it. Now let’s start with a simple example that will allow us to sample some of Vue’s key features. Later in this series, we‘ll dig deeper into each feature so consider this a broad introduction to start.
Event Handling (#6) - Run through of event handling in Vue using the v-on directive. Covers inline handlers, method handlers, event arguments, modifiers, and shorthand syntax.
MySQL Command Line - Database and User Creation - In this guide I show how to create a new database using the MySQL command line console. I also demonstrate creating a new user to manage this database and how to confirm a web application can connect to the database. Because MariaDB is operationally the same as MySQL, these instructions would work the same on systems running MariaDB.
HTTPS / SSL via “Let’s Encrypt” on an Apache Web Server - Learn how to configure HTTPS on an Apache web server using a free certificate obtained from LetsEncrypt.org.
Configuring sites/URLs on an Apache web server - How to configure a new site/URL on an Apache web server. Includes steps on configuring your domain’s DNS and setting up an Apache VirtualHost.
Configuring sites/URLs on a Nginx web server - Learn how to configure a new site/URL on an Ubuntu server running Nginx. Steps include: Configuring your domain’s DNS settings, creating the site config in Nginx, and testing/debugging your new site.
HTTP Basic Authentication - Password Restrict an Entire Site (Nginx) - Use HTTP Basic Authentication to quickly ”lock down” and entire site on Nginx, making it inaccessible to the general public."