Easily Extend Images with Photoshop’s Generative Fill

If you have a photo that is too small and you wish it were wider or taller, you can use Photoshop’s Generative Fill feature to fix that. Here’s an example.

Open the image in Photoshop

Enlarge the canvas

Let’s say I want to make the image wider. Using the Crop tool, enlarge the canvas.

When you do this, you’ll see a command prompt below the image.

Click Generate

If you just click Generate, Photoshop will fill in the empty parts to blend in with the original image.

Try custom commands

You can also tell Photoshop how you want to fill in the empty space. For example, if I write, “Fill the empty space with a jungle”

or just “jungle”

I get three variations.

4-Day SoCal Trip – Catalina Island and Six Flags Parks

Sunday: Catalina Island – the Amalfi Coast of Orange County
Monday: Six Flags Hurricane Harbor (Water Park)
Tuesday: Six Flags Magic Mountain (Amusement Park)
Wednesday: Six Flags Magic Mountain (Amusement Park)

August 2024

SUNMONTUEWEDTHUFRISAT
3
4567

Saturday, August 3, 2024

10:30 AMDrive from home to Oakland Int’l airport (OAK)

15 min

8:30 AMCheck in
Flight31
AirlineSingapore
Confirmation Number4KMB2J
Gate
11:30 AMTake off: San Francisco to Los Angeles

Flight Duration: 1h 20m

1:50 PMLand at Los Angeles Int’l Airport (LAX)
2:30 PMGet rental car
  1. Go to lower / arrivals level
  2. When exiting the airport, follow the signs to “ground transportation”
  3. Stand under the purple sign marked “car rental companies” to await shuttle pick-up
  4. Board the Dollar shuttle bus

Dollar Rent a Car
Booking.com # 789858762
Toyota RAV4 or similar
$316.94 for 5 days

3:00 PMDrive to Hotel

30 minutes

3:45 PMStop by Catalina Express

320 Golden Shore, Long Beach, CA 90802

3:45 PMStop by Jetski2Catalina nearby

Check out the jet skis.

Drive to Hotel Maya
700 Queensway Dr
Long Beach, CA 90802

4:00 PMCheck in to Hotel

Queen Mary – a cruise ship turned into a hotel
1126 Queens Highway, Long Beach, California 90802, United States
$265 / night
Check-in is at 4:00 PM and Checkout is at 11:00 AM
Hotel guest self-parking is $30/night
Built in 1930
Map of the Queen Mary

7:00 PMDinner at Outback Steakhouse

20 W Shoreline Dr, Long Beach, CA 90802

Menu: https://www.outback.com/order/menu/long-beach

Bloomin’ Onion®

An Outback Original! Our special onion is hand-carved, cooked until golden and ready to dip into our spicy signature bloom sauce.

Bone-In Ribeye* 18 oz.

Bone-in and extra marbled for maximum tenderness. Served with two freshly made sides.

Chocolate Thunder from Down Under

An extra-generous pecan brownie topped with rich vanilla ice cream, our warm chocolate sauce, chocolate shavings and whipped cream.

9:00 PMPrepare for next day
  • Pack 2 bags
  • Water shoes
  • Shorts / Shirt for the island
  • Water bottles
  • Trailmix
  • Towel
  • Sunscreen
  • Hat with neck lanyard
  • Swimming hat
  • Waterproof watch
  • Photo ID for EVERYONE in your group
  • Credit card you used to book your reservation
  • Camera gear
  • Charge all batteries

  • turn on indicator light for all 3 cameras
  • test wrist remote control for Ace Pro
  • set Ace Pro camera to record video 1080p @ 30 fps
  • set both 360 cameras to record HDR video 5.7K @ 30 fps

Sunday, August 4, 2024

6:30 AMCheck out of hotel

Wear rash guard shirt and swimming shorts and bring the 2 bags.

6:45 AMDrop off at Catalina Expess Ferry Terminal

Catalina Express
Schedule
Round Trip Cost: $92
Trip Duration: 1 hour one way

Depart Long Beach to Avalon

6:00 a.m., 7:15 a.m., 8:15 a.m., 9:50 a.m., 12:15 p.m., 2:00 p.m., 4:30 p.m., 5:50 p.m.

7:15 AMDrive to Hotel Maya

Hotel Maya
700 Queensway Dr
Long Beach, CA 90802

5-minute drive

Park at Hotel Maya by building 3 or 4.  Normal parking is $31.  We will stamp your parking ticket and the Jetski2Catalina rate is $14. 

7:40 AMWalk to JetSki2Catalina

After parking at the Maya Hotel parking lot by building 3 or 4, walk through the buildings, and you will see the marina on the water. Turn right at the sidewalk and go past the Pool. We are on the water in the marina. 

8:00 AMCheck in for Jet Ski Ride from Long Beach to Catalina

2 hours

8:15 AMCatalina Express ferry arrives at Avalon, Catalina Island

The Catalina Express ferry drops off at the Cabrillo Mole in Avalon, Catalina Island.

10:00 AMJet Ski Arrives at Avalon, Catalina Island
11:00 AMGo on Undersea Sub Expedition

Undersea Sub Expedition
$45
45 minutes

12:00 AMWatch IMMERSED: Ocean Wonders 360-degree Movie

IMMERSED: Ocean Wonders
$32,
360-degree cinema,
45 minutes

1:00 PMRent Golf Cart

Explore Catalina by golf cart for 1 hour. Scenic tour.
Island Rentals
125 Pebbly Beach Road, Avalon, CA 90704, Phone 310.510.1456
NO RESERVATIONS. First come, first serve.
$60 / cart / hour
We have a one-hour scenic route through the beautiful hills around Avalon and if you want to go longer we will pro-rate the second hour (the time you use is the time you pay for). We have a pre-planned 12-mile scenic route that may be completed in 1 hour without stops.

Scenic Route Map

1:00 PMLunch

Pancake Cottage
615 Crescent Ave, Avalon, CA 90704

Original Jack’s Country Kitchen
118 Catalina Ave, Avalon, CA 90704

1:00 PMRide Jet Ski Back to Long Beach
2:15 PMTake Ferry Back to Long Beach

Depart Avalon to Long Beach

7:50 a.m., 10:15 a.m., 11:50 a.m., 2:15 p.m., 3:55 p.m., 6:30 p.m., 7:45 p.m.

3:00 PMArrive at Long Beach
3:30 PMDrive to Chicago Deep-Dish Pizza

Masa of Echo Park Bakery & Cafe
1800 Sunset Blvd, Los Angeles, CA 90026
Sunday, 11 AM–10 PM
Monday, Tuesday: Closed

Build your own pizza: 14″ Large – $28

  • Italian Beef
  • Fresh Garlic
  • Roasted Red Pepper
  • Fresh Basil
  • Whole Leaf Spinach
  • Sun-Dried Tomatoes


6:30 PMDrive to Hotel (SpringHill Suites by Marriott Valenciam)

1 hour

7:30 PMCheck in to Hotel

SpringHill Suites by Marriott Valencia
$568 for 3 nights

  • Free buffet breakfast available 6:00 AM to 9:00 AM on weekdays and 7:00 AM to 10:00 AM on weekends
  • In-room microwave
  • Mini fridge
  • Free parking
  • Free wi-fi
  • Laundry
  • Built in 2021

Monday, August 5, 2024

8:00 AMBreakfast
10:30 AMSpend Day at Six Flags Hurricane Harbor Waterpark

Six Flags Hurricane Harbor
Park Map
10:30 AM to 8 PM
$55

Game Plan

  1. Arrive early
  2. Tornado (group tube)
  3. Lost Temple Rapids (group tube)
  4. Black Snake Summit (body slide)
  5. Taboo Tower (body slide)
  6. Reptile Ridge (body slide)
  7. Bamboo Racer (mat slide)
  8. Rent a tube ($7 or $14)
  9. Tiki Falls (tube slide)
  10. Lightning Falls (tube slide)
  11. River Cruise (Lazy River)
  12. Forgotten Sea Wave Pool

Black Snake Summit

Lightning Falls

Lost Temple Rapids

Reptile Ridge

River Cruise (Lazy River)

Taboo Tower

Tiki Falls

Tornado

Forgotten Sea Wave Pool

7:00 PMDinner at Patxi’s Pizza

Patxi’s Pizza
20101 Rinaldi St Ste 100, Los Angeles, CA 91326
Everyday: 11 AM–10 PM

Build your own pizza: 14″ Large – $26

  • Fresh mozzarella cheese
  • Herb-roasted chicken
  • Fresh Garlic
  • Fresh Basil
  • Roasted Red Pepper
  • Whole Leaf Spinach
  • Grape tomatoes

Tuesday, August 6, 2024

8:00 AMBreakfast
10:30 AMSpend Day at Six Flags Magic Mountain

Six Flags Magic Mountain
Park Map
10:30 AM to 9 PM
$55

Apocalypse

BATMAN™ The Ride

Buccaneer

Circuit Breaker Grand Prix

CraZanity

Full Throttle

Gold Rusher

Goliath

Jet Stream

LEX LUTHOR™: Drop of Doom

Ninja

Roaring Rapids

Scream

SUPERMAN: Escape from Krypton

Tatsu

The New Revolution – Classic

THE RIDDLER’s Revenge

Twisted Colossus

Viper

West Coast Racers

WONDER WOMAN™ Flight of Courage

X2

Wednesday, August 7, 2024

8:00 AMBreakfast
10:00 AMCheck out of hotel
10:30 PMSpend 4 hours at Six Flags Magic Mountain

Six Flags Magic Mountain
10:30 AM to 9 PM
$55

2:30 PMDrive to Return Car at LAX

Return car to Hertz at 9000 Airport BLVD, Los Angeles CA 90045

When returning your vehicle, allow at least 2 hours before your departure due to traffic being heavier than usual.

5:20 PMTake-off: Fly Back to SF
Flight4096
AirlineSouthwest
Confirmation Number4KMB2J
Gate
Cost$167.22
6:45 PMLand at OAK

Create a Disco Theme in Your Living Room

Here’s one way to give your living room a disco theme.

Equipment

  • Sconces (I bought 3 rice paper lamp shade sconces on Amazon) In the picture above, these are the 3 pink wall lights.
  • Adjustable-color LED Light Bulbs (This is for the sconces. I set the color to pink.)
  • Uplights (This one on Amazon lets you change the color of the light) In the picture above, I just have one behind the sofa with a soft white (yellow) light.
  • LED Light Strip (I got mine from Costco. You can adjust the color.) In the picture above, this is the blue light behind the TV.
  • 1.5 RPM Speed Disco Ball Motor (I chose a speed of 1.5 RPM. Faster speeds make the lights move too quickly, which is distracting and headache-inducing)
  • Disco Mirror Ball (Mine is 8″ in diameter)
  • Spot Light (This is for the mirror ball. I bought this one because it allows me to adjust the aperture size / spot diameter.) In the picture above, I put it on the ottoman facing up to light up the mirror ball.
  • Northern Galaxy Light Aurora Projector (In the video above, I set the color to red (R) and blue (B) and disabled the green “star” lights. It’s on the ottoman and illuminates the ceiling).

Bend Rebar Using a Rebar Bender

Materials

  • Rebar (the one I have is 3/8″ in diameter)
  • Pipe (the one I have is 1/2″ in diameter)
  • Rebar bender
  • Pipe clamps
  • 2×4 or 2×6 piece of wood

Instructions

  1. Secure the pipe to the wood using the pipe clamps
  2. Slide the rebar into the pipe
  3. Position the rebar bender such that pulling it would cause the rebar to bend
  4. Stand on the wood and pull the rebar bend to the desired angle

Easily Create a Website Using Pre-made Components

In this tutorial, I’ll explain how you can easily create a website using pre-made components.

Note that the following is just one of many ways you can do this.

1. Install Parcel

Parcel in a simple, zero-configuration build tool. Here are some of its features.

  • It works with static HTML files, but it can also work with React and many other file types.
  • Parcel includes a development server out of the box with auto-reload.
  • Clear error messages and diagnostics
  • Fast build times
  • HTML, CSS, JS modification and compression using Gzip and Brotli
  • Image optimization (although I prefer an image CDN like ImageKit for that)
  • Parcel automatically includes content hashes in the names of all output files. This enables long-term browser caching.

2. Install Tailwind CSS

Tailwind CSS is a utility-first CSS framework.

Instructions on how to install both Parcel and Tailwind CSS.

If you will have CSS files separate from Tailwind CSS, in your tailwind.config.js file, make sure to add “css” as a file option.

3. Update Configs, Set Up Git, and Test Locally

Add a source and scripts to your package.json by copying the source and scripts to it so that it looks like below. Remove the “main”: “index.js” if it exists. Note that we’re using the glob ./src/**/*/index.html to tell Parcel to build all HTML files in all directories.

Run npm run build to test building the pages.

Run npm start to start a local dev server.

Open a browser and go to the server URL provided to verify the test page loads. Make a change to the HTML and Tailwind CSS classes to verify that changes are processed and the page auto-refreshes in the browser.

4. Set Up Git and Push to GitHub

  • Run git init to initialize a new local git repo.
  • Create a .gitignore file with the following contents
node_modules
.parcel-cache
.env
dist
  • Create a repo in GitHub and push your local changes to it, e.g.
git add *
git commit -m "first commit"
git branch -M main
git remote add origin [email protected]:javanigus/test-tailwind-site.git
git push -u origin main

All files in your GitHub repo should be there except for the ones in the .gitignore file.

5. Set Up Deployments to GitHub Pages

Install the gh-pages package by running npm install gh-pages --save-dev.

Add the following scripts to your package.json file:

"predeploy": "rm -rf dist .parcel-cache && parcel './src/**/*.html' build --public-url ./",
"deploy": "gh-pages -d dist"

The predeploy script will run the npm run build command before deploying to ensure that the latest production-ready files are used. You need to clear the cache by deleting the .parcel-cache folder first. Also, since GitHub Pages publishes your website in a folder below the root domain, you need to add a “public-url” flag to tell Parcel to remove the slash (/) for relative dependencies like CSS and JS files to avoid getting a 404 error.

Run npm run predeploy

The deploy script will use the gh-pages package to deploy the contents of the dist directory to the gh-pages branch of your GitHub repository.

Run npm run deploy

View your site at https://<username>.github.io/<repository>/. In my case, that’s https://javanigus.github.io/test-tailwind-ui-site/.

In GitHub, if you go to Settings > Pages, you’ll see that the commands above configure GitHub Pages for you.

6. Add Pre-made Sections to Your HTML Pages

You can use Tailwind UI to copy and paste a bunch of sections like header, footer, hero, contact us, etc.

https://tailwindui.com/components

You can also get Tailwind components from Flowbite.

7. Add Pre-made UI Elements to Your HTML Pages

You can use Material Tailwind to copy and paste a bunch of elements like buttons, cards, accordions, lists, tables, etc. You’ll first need to add the Material Tailwind CSS and JS to your HTML pages first.

Ripple Effect

<!-- from node_modules -->
<script src="node_modules/@material-tailwind/html@latest/scripts/ripple.js"></script>
 
<!-- from cdn -->
<script src="https://unpkg.com/@material-tailwind/html@latest/scripts/ripple.js"></script>

Icons

<!-- Material Icons Link -->
<link
  href="https://fonts.googleapis.com/icon?family=Material+Icons"
  rel="stylesheet"
/>
 
<!-- Font Awesome Link -->
<link
  rel="stylesheet"
  href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css"
  integrity="sha512-HK5fgLBL+xu6dm/Ii3z4xhlSUyZgTT9tuc/hSrtw6uzJOvgRr2a9jyxxT1ely+B+xFAmJKVSTbpM/CuL7qxO8w=="
  crossorigin="anonymous"
/>

8. Add Icons

Easily add icons from FontAwesome or SVG Repo.

9. Add Fonts

Find and load fonts for free from Google Fonts.

10. Add Backgrounds

Your page sections will look boring if they are just plain white. Here are some background ideas:

For example, I use this gradient background animation for the announcement banner commonly found stuck to the top of websites. You can find free images at Unsplash. You can find SVG backgrounds from svgbackgrounds.com. I also used one of the button styles from here.

11. Add Animation

I like anime.js. The documentation is clear and integration is simple. Just add a reference to the animeJS library on a cdn like CDNJS. Then, add write some JavaScript that uses animeJS in your main JavaScript file. If you want your animations to run when users scroll to a particular section of your site, you can add the Waypoints library from a CDN as well. In my example website, I first hide all elements by setting their opacity to 0. Then, I use Waypoints + AnimeJS to animate different elements. Here’s my code. I ended up loading jQuery, animeJS and Waypoints along with my main JS file at the bottom of the <body> element.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.2/anime.min.js" integrity="sha512-aNMyYYxdIxIaot0Y1/PLuEu3eipGCmsEUBrUq+7aVyPGMFH8z0eTP0tkqAvv34fzN6z+201d3T8HPb1svWSKHQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/noframework.waypoints.min.js" integrity="sha512-fHXRw0CXruAoINU11+hgqYvY/PcsOWzmj0QmcSOtjlJcqITbPyypc8cYpidjPurWpCnlB8VKfRwx6PIpASCUkQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<script src="main.js"></script>

12. Deploy

Whenever you’re done making a change, just run the following deployment commands.

npm run predeploy
npm run deploy

Here’s a test site I created. Not too bad for a day’s work.

https://javanigus.github.io/test-tailwind-ui-site

Next steps:

Additional Resources

Iced Cantaloupe Drink Recipe

This is a very refreshing drink to have, especially on a hot summer day.

Ingredients

  • 1 x Cantaloupe
  • 4 tbsp of sugar (I prefer all-natural monk fruit sweetener from Costco)
  • Water as needed

Instructions

  1. Slice the cantaloupe in half
  2. Use a tablespoon to scoop out and discard the seeds
  3. Use a melon scraper to scrape slivers of cantaloupe meat into a bowl
  4. Cut the melon slivers into short strips to make consuming easier. Or, before serving, blend the drink briefly to chop up the long slivers.
  5. Fill a 2.4L pitcher half full of water. I have this pitcher from Target.
  6. Add the sugar to the water and mix
  7. Add all the cantaloupe slivers into the pitcher
  8. Add more water to the pitcher until it’s full.
  9. Chill the drink in the fridge till it’s cold

Pictures

After blending very briefly

Securely Fasten Multiple Cables to Interior and Exterior Walls

If you need to fasten a cable to a wall, you might be tempted to use a plastic cable clamp like one of these.

These are fine if you need to fasten just one cable to an interior wall. If you need to fasten a cable outside where it can be exposed to the sun or if you need to fasten multiple cables, then these plastic clamps won’t work. The sun will make them crack. What you can do instead is use zip ties with a zip tie base. There are even releasable zip ties.

Releasable zip ties

You can find zip tie base mounts with 4.5mm openings and 9mm openings to accommodate zip ties of different widths.

Zip tie base mount

Just screw the base mount to a wall.

Slide a zip tie through the opening.

and fasten some cables. Trim the zip tie if desired.

The cables will be tight, and the zip ties should last longer than those flimsy plastic cable clamps.

GA4: Find Previous Page Path in Google Analytics

Things have definitely moved around and look different in the UI for GA4 (Google Analytics v4) vs UA (Universal Analytics). If you’re looking how to find pages that link to a particular page (previous page path), then you need to use Path Exploration.

Explore > Path Exploration

If you see an existing path exploration, click “Start Over”. Then, click “Ending Point” and choose an option. I prefer to choose “Page path and screen class” since page paths are easy and unique to get.

You can then choose one of the available paths or click the magnifying glass to type in a path, e.g. /resources/.

You will then see how often people click on a link on a page that takes them to your ending point (page) within a particular time range.

In the Variables section on the left, you can change the date range and other variables.