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

Learn more about my background and experience at susanbuck.net

Have coding questions? Let me be your code mentor...

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

General inquiries: mail@codewithsusan.com

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
PsychoPy - Builder View (lexical decision task) (#4) - In Part 4 of this series on building experiments with PsychoPy, we will build a lexical decision task using the Builder View.
PsychoPy - Coding experiments (lexical decision task) (#2) - Part 2 of this 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.
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.
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.
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 - 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.
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.
Vue.js Simplified - DevTools & Wrap-up (#15) - Discussion of Vue DevTools and resources to check out after completing this series.
Vue.js Simplified - 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.
Vue.js Simplified - 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.
Vue.js Simplified - 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.
Vue.js Simplified - Attribute Binding (#7) - Dynamically set HTML attributes in Vue.js using the v-bind directive.
Vue.js Simplified - Conditional Rendering (#4) - Run through of Vue’s conditional rendering tools including v-if, v-else-if, v-else, and v-show.
Vue.js Simplified - 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.
Vue.js Simplified - 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."