Using Quizizz in the Classroom

Quizizz is an app and website that is quite similar to Kahoot with a few interesting additions. Like Kahoot, a user can create a series of questions to ask a group of people who compete to answer them correctly and speedily. Scores are determined according to whoever answers correctly first.

Quizizz, unlike Kahoot, adds some additional features to the game itself including different Theme choices and Power-ups. And in Quiz creation, whereas Kahoot only has two “free” question types (multi-choice and true/false), Quizizz has a total of FIVE possible options:

  1. Multiple choice (one correct answer)
  2. Checkboxes (more than one correct answer)
  3. Fill in the blank (correct answers + alternatives)
  4. Open-ended (no correct answers, opinion based)
  5. Poll (multiple choice – or checkboxes – opinion based)

Quizizz also adds the option of connecting to Google Classroom to assign quizzes for homework to your classes.

Uses for the Classroom

  • Surveys (interest, voting, etc)
  • Competitive Quizzes / Games
  • Informal skills / knowledge tests & assessments (Reports)
  • Assign as Homework (Google Classroom connection)

Recommendation: As with Kahoot, Quizizz also has an app where it is possible to create and edit quizzes. However, I it is still slightly easier to find everything on the website (the screen is larger), and you will likely be hosting your quizzes from the computer. So it is a good idea to familiarize yourself with the website first.

Step 1: Sign up / in

  1. Go to quizizz.com and click “Sign up”
  2. Sign up with your Google account (or email)***
  3. Select your role (Teacher)
  4. Select how you are using it (At a School)
  5. Welcome to the Dashboard

*** Important note about “Sign up”

In the Sign Up screen, you have TWO options:

  1. Sign up with Google
  2. Sign up with email

Whichever option you choose to sign up with MUST be used to sign in later (and they do not overlap each other). For example:

  • if you sign up with Google, you CANNOT use Email / Password to sign in later
  • if you sign up with Google, you MUST use Google to sign in later

Why “Google” and “Email / password” are not the same

The reason for this is because of the authentication (sign in) method used by the website.

  1. Google Sign In log you in with an authentication TOKEN
    • (A separate window opens where you log in to your Google account separately. Once you authenticate (login) with Google, your email service sends a unique authentication TOKEN to Quizizz in order to confirm your identity. So, in this case, Quizizz does NOT store your password at all, but rather relies on the TOKEN provided by Google to log you in.)
  2. Email / password will remember both your email AND your password
    • (The password is actually passed through a hashing algorithm in order to scramble it so it can’t be intercepted by another user. The scrambled password is matched with the scrambled password stored in the database for your user ID, and if the two scrambled passwords match, your identity is confirmed and you are logged in. So, in this case, Quizizz stores BOTH your email AND scrambled password in their database.)

That is why the two sign in methods are not compatible (interchangeable).

  1. Email / password = uses your email / password (and remembers both)
  2. Google = uses a TOKEN (and remembers only your email)

Step 2: Search for / Create a Quiz

  1. “Search” for quizzes to use
    1. You’ll be shown a list of relevant search results
    2. Select one to view (you can also Like or Save them to a Collection). From here you can Play Live, Assign HW, or Practice
  2. “Create” a new Quizizz of your own
    1. Write your own question at first to familiarize yourself with the Question Types
    2. There are FIVE Question Types shown above:
      1. Multiple choice (one correct answer)
      2. Checkboxes (more than one correct answer)
      3. Fill in the blank (correct answers + alternatives)
      4. Open-ended (no correct answers, opinion based)
      5. Poll (multiple choice – or checkboxes – opinion based)
    3. After you finish creating questions, you’ll still be able to Edit them
    4. Click “Done” in the upper-right to finish the Quiz (you must choose a grade level, and can also add additional details)
    5. The Quiz will then appear in “My Library”
    6. If you click on your finished Quiz, you can Play, Assign HW, or click “Edit” in the Quiz details box to edit it further

Step 3: Play / Assign a Quiz

To Play or Assign a Quiz as Homework, first select the Quiz you want either from Search or from “My Library.”

  1. From Single Quiz View
    1. Assign HW – brings up options for date, time, and class (linked to Google Classroom)
    2. Play – gives a few options like Team, Classic, and Test (choose Classic)
  2. The Teacher’s View shows the Quiz ID students need to enter to join the quiz
  3. Students navigation their Internet browsers to joinmyquiz.com and enter the ID
    1. Students may choose a Nickname (and other options)
    2. Then, select a Theme
  4. From the Teacher’s View, once the students have all joined, they may now “Start” the Quiz
  5. Students are show a question
    1. And may click their answer – they are awarded points and bonuses depending on their answers and time elapsed
  6. Teachers can watch student progress through the quiz
    1. And at the end of the quiz, they are shown a report with statistics from the quiz results
  7. Students also can review their own performance after the quiz

Step 4: Quiz Reports + Google Classroom

As mentioned above, at the end of a quiz:

  1. Teachers can immediately view the quiz results
  2. Students also have their own quiz results review page
  3. Additional Reports can be found in the “Reports” link in the left sidebar
    1. A single report view shows the full list of students who took the quiz as well as all their answers, and statistics about the quiz. It’s well worth investigating.
  4. Finally, Google Classroom can also be linked to Quizizz from the “Classes” link in the left sidebar

I hope that gives you a good overview of using Quizizz in your classrooms. There is much to explore, so just take some time to familiarize yourself with the program. Again:

  1. I recommend getting familiar with the website FIRST
  2. And then going back in to the app to learn it

Once you know what is available in Quizizz through the website, it’ll be a lot easier to find it in the app.

Good luck!~

Using Kahoot in the Classroom

Kahoot is an interesting app and website that allows one user to create a series of questions to ask a group of people who compete to answer them correctly and speedily. Scores are determined according to whoever answers correctly first (points are allocated in decreasing amounts to second place, third place, and so on).

Uses for the Classroom

  • Competitive Quizzes / Games
  • Informal skills / knowledge tests & assessments (Reports)

Recommendation: Although the Kahoot App also makes it possible to create and edit Kahoots, I remember doing MOST tasks on the computer because it is slightly easier to find everything (the screen is larger), and you will likely be hosting your Kahoots from the computer. So it is a good idea to familiarize yourself with the website first.

Step 1: Sign up / in

  1. Visit kahoot.com
  2. Click “Sign up” in the upper-right hand corner
  3. Select your Account type (Teacher)
  4. Select your Workplace (School)
  5. Create account ***
  6. Select your Edition (Free)
  7. Provide additional info (optional)
  8. Explore the Dashboard (Get Started)
    1. See how it works
    2. Create kahoot
    3. Host kahoot

*** Important note about “Create account”

In the Create Account screen, you have THREE options:

  1. Email / password
  2. Sign up with Google
  3. Sign up with Microsoft

Whichever option you choose to sign up with MUST be used to sign in later (and they do not overlap each other). For example:

  • if you sign up with Google, you CANNOT use Email / Password to sign in later
  • if you sign up with Google, you MUST use Google to sign in later

Why “Google” and “Email / password” are not the same

The reason for this is because of the authentication (sign in) method used by the website.

  1. Email / password will remember both your email AND your password
    • (The password is actually passed through a hashing algorithm in order to scramble it so it can’t be intercepted by another user. The scrambled password is matched with the scrambled password stored in the database for your user ID, and if the two scrambled passwords match, your identity is confirmed and you are logged in. So, in this case, Kahoot stores BOTH your email AND scrambled password in their database.)
  2. Google and Microsoft Sign In log you in with an authentication TOKEN
    • (A separate window opens where you log in to your Google or Microsoft account separately. Once you authenticate (login) with Google or Microsoft, your email service sends a unique authentication TOKEN to Kahoot in order to confirm your identity. So, in this case, Kahoot does NOT store your password at all, but rather relies on the TOKEN provided by Google or Microsoft to log you in.)

That is why the two sign in methods are not compatible (interchangeable).

  1. Email / password = uses your email / password (and remembers both)
  2. Google / Microsoft = uses a TOKEN (and remembers only your email)

Step 2: Create / find a Kahoot

You may wish to investigate Kahoots that have already been created first to get an idea for the kinds of things that are possible. Click “Discover” in the top menu to do so. Later, you may wish to “Create” your own (top-left button).

  1. “Discover” Kahoots (top menu button)
    1. Search for a Kahoot that looks interesting
    2. Select it to view the questions
    3. Some Kahoots you may be able to Edit, or add to your own Library. Others you may only be able to Favorite and Play with your class
  2. “Create” your own Kahoot (top-right button)
    1. Create a New Kahoot or use a Template
    2. You can modify an existing Template
    3. Or, if you are creating a New Kahoot, type your own questions and answers
    4. Question Types:
      1. Quiz (4 choices)
      2. True / False (2 choices)
      3. Typing (premium)
      4. Puzzle (premium)
      5. Poll (premium)
      6. Slide (premium)
  3. After creating a Kahoot (or using a Template), find it in your Library of Kahoots under the “Kahoots” button in the top menu

Step 3: Host your Kahoot

To host / play your Kahoot:

  1. View your Kahoots Library
  2. Click “Play” on the Kahoot you want to host
  3. Click “Teach” to play it in class
  4. Select “Classic” in Game options (you may also want to change or disable the Lobby music toward the bottom of the screen)
  5. When you Start the game
    1. The screen on the right will appear on your projector / computer
    2. Students should go to kahoot.it to enter the Game PIN on their devices
    3. Students can choose a Nickname (caution: some students may try to choose joking or rude nicknames)
    4. Once all students have entered the Game PIN and a nickname, Start the Game
  6. Questions will be shown on screen with a timer
  7. Students select the correct answer from the group of symbols on their device
  8. After all students have answered (or time is up) the correct answer will be shown on screen
  9. Finally, a leaderboard will be shown and tally up each player’s points

Step 4: Kahoot Reports

You will also be able to see a detailed analysis of the results of a played Kahoot in the “Reports” tab.

  1. Click “Reports” in the top menu
  2. Select the Kahoot you want to view reports for
  3. Detailed analysis includes:
    • Correct %
    • Difficult questions
    • Students who need help
    • Students who didn’t finish

I hope that gives you a good overview of using Kahoot in your classrooms. There is much to explore, so just take some time to familiarize yourself with the program.

  1. I recommend getting familiar with the website FIRST
  2. And then going back in to the app to learn it

Once you know what is available in Kahoot through the website, it’ll be a lot easier to find it in the app.

Good luck!~

Personalize VS Code

I’ve really been enjoying VS Code for development these days. Here are some of the things I’ve done to customize my new favorite code editor.

While I’ve used (and enjoyed) a number of different coding environments and IDEs in the past (NetBeans, Atom, Brackets, Notepad++), these days, I’m really enjoying VS Code. The following is a list of what I’ve done to customize my WordPress development environment.

1. Customizing Visual Studio Code

Extensions (CTRL + SHIFT + X)

  1. Beautify
  2. Debugger for Chrome
  3. EditorConfig
  4. ES6 String HTML
  5. ESLint
  6. Express
  7. GitLens
  8. HTML CSS Support
  9. IntelliSense for CSS
  10. Live Server
  11. Markdown All in One
  12. PHP Debug
  13. PHP DocBlocker
  14. PHP IntelliSense
  15. PHP Server
  16. PHP Code Sniffer
  17. Prettier – Code formatter
  18. REST Client
  19. Sass
  20. Settings Sync (special note: Use this Extension to sync your Settings across multiple machines once you’ve got things the way you like)
  21. SVN
  22. Terminal

Snippets

  1. HTML Snippets
  2. JavaScript (ES6) code snippets
  3. jQuery code snippets
  4. React-Native/React/Redux snippets for ES6/ES7 Standard

Themes

  1. Atom One Dark Theme
  2. Fresh Material
  3. Material Icon Theme
  4. Material Theme
  5. Palenight Theme
  6. One Dark Pro
  7. One Monokai Theme
  8. VS Code Icons

Settings (CTRL + Comma)

Most of these Settings can be found and edited within the Settings interface of VS Code. But to do workbench.colorCustomizations, you’ll need to edit the JSON of your settings. So, it’s easiest to simply Search for that in the search bar, then copy-paste the following into the JSON Settings.

{ 
"editor.fontFamily": "'Noto Mono', 'Fira Code', Hack",
"editor.fontSize": 16,
"editor.fontLigatures": true,
"editor.formatOnPaste": true,
"editor.tabSize": 2,
"workbench.iconTheme": "material-icon-theme",
"files.autoSave": "onWindowChange",
"workbench.colorTheme": "Palenight Italic",
"workbench.colorCustomizations": {
"terminal.background": "#1F2330",
"activityBar.background": "#7e57c2"
},
}

Fonts

My preferred Settings above require some additional fonts. Here they are:

  1. Fira Code
  2. Noto Mono
  3. Hack

Resources

For more tips on using VS Code, check out the following video lessons.

  1. VS Code Power User by Ahmad Awais
  2. Learning Visual Studio Code by Reynald Adolphe on LinkedIn
  3. Visual Studio Code for Web Developers by Joe Marini on LinkedIn

A Comprehensive Annual Review Process

Every year, I try to reflect on the previous year’s successes, failures, biggest risks taken, and biggest lessons learned. My annual review process has become quite extensive and is presented here in its entirety.

Every year, I try to reflect on the previous year’s successes, failures, biggest risks taken, and biggest lessons learned. My annual review process has become quite extensive, but the major questions I try to address are:

  1. Past: How did my previous year go?
  2. Present: How is my overall life satisfaction now?
  3. Future: Where do I want to go in the next year?

This Annual Review process is quite comprehensive and is broken into 5 days and 13 sections. It is best to not attempt to cram all of this into a single review session, but space it out over a number of days (as outlined) or multiple 1-2 hour sessions with a break in between.

A template to create your own annual review will be made available here later. And a more detailed description of much of this list can be found at my Korean language learning blog.

Day 1

1. Start with WHY
  1. WHY do you do what you do?
  2. WHY do you want what you want?
  3. WHY do you set the goals you set?
2. Overview your previous Year
  1. 10 Great things that happened last year
  2. 5 Lessons learned (or repeated themes)
  3. Any regrets? (something you wish you did, or did more of)

(Optional) Review your statistics

  1. List all books you read – and length
  2. List any courses you studied – and length
  3. List any new projects completed (and skills / things you learned)
  4. List any exercise you can track
  5. List any money you can track
  6. List any contributions you made (money, code, service, etc)
3. Detail your previous Year
  1. Smartest decision last year
  2. Most loving service
  3. Most happy with finishing
  4. 3 people who impacted my life the most
  5. Biggest risk taken
  6. Most improved important relationship
  7. Compliment (or opportunity) I wish to have received
  8. Gratitude list: What are you most thankful for in your life now?
  9. ONE word summary of the year

Day 2

4. Rate your Life Satisfaction NOW

Give yourself a rating 1-10 for your satisfaction with each of the following. Then, write down at least one goal for each.

  1. Physical life / health
  2. Mental life / personal development / learning / growth
  3. Spiritual life
  4. Lifestyle
  5. Career / job
  6. Financial satisfaction / health
  7. Family
  8. Social (friend) relationships
5. Look Forward
  1. What 3 things must STOP in the next year?
  2. What 3 things must START?
  3. Where are 3 places you must STAY (though hard)?
  4. Where are 3 places you must LEAVE (though hard)?
  5. Where are 3 places you must SERVE (though hard)?
  6. How are 3 ways you need to CONNECT with others more?
  7. How are 3 ways you need to TRUST others more?
6. Look far Forward (beyond next Year)

Consider your ultimate destination(s) in life – beyond next year.

  1. Where do you want to be in life in 2 years?
  2. In 5 years?
  3. In 10 years?
  4. In 20 years?
  5. Before the end?
  6. Create a BHAG (Big, Hairy, Audacious Goal) that seems out of reach now, but could be accomplished with enough focused effort.

Day 3

7. Define Success

Define your Level 50. What does Success or Greatness look like for you?

  1. What are all the things you want to HAVE in life?
  2. What are all the things you want to DO in life?
  3. What are all the things you want to BE in life?
8. Design your next Year (Set Goals)
  1. From your list of goals in Part 5, reduce that to only 3 Major Goals to focus on for the next year (or quarter).
  2. Decide upon 3 Action Steps for each Major Goal to take immediately to make progress toward that goal
  3. Decide upon a Deadline for (at least Phase One of) each goal
  4. Consider if anyone can keep you accountable and write that person’s name next to your Major Goal
  5. For each Major Goal, create a Habit (see Part 9) to help get there
9. Become the Change you Seek

What kind of person can achieve what you’ve written down? Brainstorm for a while and write a short paragraph for each.

  1. What kind of person would achieve my Physical goals?
  2. What kind of person would achieve my Mental goals?
  3. What kind of person would achieve my Spiritual goals?
  4. What kind of person would achieve my Lifestyle goals?
  5. What kind of person would achieve my Career goals?
  6. What kind of person would achieve my Financial goals?
  7. What kind of person would achieve my Family goals?
  8. What kind of person would achieve my Social goals?

Can you find any recurring patterns or themes? Write these out as a series of Affirmations to repeat for the next year.


Day 4

10. Schedule it

Start with the Big rocks on your calendar.

  1. The Year: What major events or commitments for the next Year can you immediately mark on the calendar?
  2. The next Quarter: More specifically, is there anything coming up in the next 3 months you need to make a note of?
  3. This month: What specifically would you like to accomplish this month – particularly as it relates to Major Goals and Action Steps?
  4. Ideal week: In a Spreadsheet or paper grid, block off your weekly commitments and anywhere you’d like to include your new Habits.

When blocking out your Ideal schedule, also consider the following Time Blocks:

  1. Buffer Block (30 min x 2 / day) : to take care of unplanned interruptions
  2. Strategic Block (3 hrs / week) : focused time, where you make progress toward your goals
  3. Breakout Block (3 hrs / month) : to get out and rejuvenate yourself physically, mentally, and emotionally
11. Create the Habits to get you there

For (at least) each of your Major Goals in Part 8, determine how you can create a Habit for it. (You may also consider making or breaking Habits for some of the things you listed in Part 5.)

Make a Good Habit

  1. Cue: Make it obvious
  2. Craving: Make it attractive
  3. Routine: Make it easy
  4. Reward: Make it satisfying

Break a Bad Habit

  1. Cue: Make it invisible
  2. Craving: Make it ugly
  3. Routine: Make it difficult
  4. Reward: Make it empty
12. Track your progress

That which gets measured gets accomplished.

Proverb

Determine how you will Track your progress daily, weekly, or monthly. There are apps that can help you by keeping track of certain things automatically. For other things, use paper.

  1. How will I track Physical progress / goals?
  2. How will I track Mental progress / goals?
  3. How will I track Spiritual progress / goals?
  4. How will I track Lifestyle progress / goals?
  5. How will I track Career progress / goals?
  6. How will I track Financial progress / goals?
  7. How will I track Family progress / goals?
  8. How will I track Social progress / goals?
  9. At what time of day will I sit down to track one or more of these?
  10. Which day of the week will I track and review my weekly progress and preview or prepare myself for the week to come.
  11. After how many weeks or months will I sit down to do a comprehensive review of my progress and redirect my steps toward the next span of time. (Personally, I prefer Quarters – about four times per year, with three months between each.)

Day 5

13. Prepare yourself

At the end of a long week of reflection and planning, the final step is to prepare for the next burst of energy. You want to make everything as streamlined and smooth as possible so that you can hit the ground running with your new Habits and Goals.

  1. What NEW things do you need? (Tracking apps, new clothes, etc)
  2. What OLD things need to be thrown away? (Distractions, etc)
  3. What MILESTONES do you need to prepare for along the way?

Well, there you have it. A very intense and comprehensive Annual Review process to help you prepare for the next step in life. For me, the times I’ve taken to be alone and reflect and plan like this have been literally life-changing. It is a long process, but if you do it well and stick to your plan, it’ll make a big difference in the upcoming weeks and months.

Plan your work. But don’t forget to work your plan.

Proverb

Resources

Some books I’ve read that helped me learn and incorporate some of these principles into my Annual Review are as follows (affiliate links).

  1. The Compound Effect by Darren Hardy
  2. Design your Best Year Ever by Darren Hardy
  3. Your Best Year Ever by Michael Hyatt
  4. The 12-Week Year by Brian P. Moran and Michael Lennington
  5. The 12-Week Year Field Guide by Brian P. Moran and Michael Lennington
  6. Atomic Habits by James Clear

Git & WP-CLI on Windows

This short tutorial will help you get ready for WordPress development by setting up a localhost development environment with git and wp-cli on Windows.

The following tutorial / notes are for setting up a new localhost development environment in Windows.

1. Setup your Localhost Environment

  1. Download the Bitnami WordPress installer
  2. Follow onscreen instructions and Install!

That’s it~

I put my development environment in the D:/ drive

D:/Bitnami/WordPress

2. Prepare for git with VS Code

Gitbash (git for Windows) wants a default text editor – and while you could choose Nano or VIM or Notepad++, why not go with the (NEW!) option and get yourself a really great code editor while you’re at it~

  1. Download the Visual Studio Code installer
  2. Follow onscreen instructions and Install!

Learn about customizing Visual Studio Code for WordPress development.

3. Setup git with Gitbash

  1. Download the Gitbash installer
  2. Follow onscreen instructions and Install!
    1. Note: In the “Adjusting your PATH environment” screen, click “Use Git from the Windows Command Prompt”

4. Setup WP-CLI in Windows

Take a look at this walkthrough. I followed the steps outlined within it and made a few notes about the process for my particular setup.

  1. Download the wp-cli.phar file (right-click and “Save As…”)
  2. Create a new folder within your Windows user’s folder to hold all our executable files
    1. Create C:\Users\user\bin (where “user” is your Windows username)
    2. This is the ~\bin folder where ~\ indicates the user’s home directory
  3. In Visual Studio Code, create a wp.bat file with the following content:
@ECHO OFF
SET BIN_TARGET=%~dp0/./wp-cli.phar
php "%BIN_TARGET%" %*

This will execute the wp-cli.phar command from your command line (after doing a little more setup work).

  1. But, if you’re using Gitbash, Windows won’t recognize .bat files and their commands, so we need to create a separate file called wp (no file extension).
  2. In Visual Studio Code, you may get an error if you try to create and save a file with no extension, so just call it wp.sh for now.
  3. Later, in Windows Explorer you can remove the .sh.
  4. Paste in the following lines:
#!/usr/bin/env sh

dir=$(d=${0%[/\\]*}; cd "$d"; pwd)

# See if we are running in Cygwin by checking for cygpath program
if command -v 'cygpath' >/dev/null 2>&1; then
# Cygwin paths start with /cygdrive/ which will break windows PHP,
# so we need to translate the dir path to windows format. However
# we could be using cygwin PHP which does not require this, so we
# test if the path to PHP starts with /cygdrive/ rather than /usr/bin
if [[ $(which php) == /cygdrive/* ]]; then
dir=$(cygpath -m $dir);
fi
fi

dir=$(echo $dir | sed 's/ /\ /g')
"${dir}/wp-cli.phar" "$@"

So the previous step (wp.bat) makes wp-cli available from the Windows Command Line, and this step (wp.sh) makes wp-cli available from Gitbash.

5. Add php and wp-cli to the PATH

Now, we have to make sure Windows adds both php and wp-cli to the PATH so we can use them.

  1. Open up the Windows Control Panel → System (or right-click “My Computer” on the Desktop and click “Properties”)
  2. Click “Advanced system settings” in the left sidebar
  3. Click “Environment Variables…” in the popup
  4. Click “PATH” from the list and then “Edit…”
  5. Now add the full path to your executable files. In my case:
    1. PHP: D:\Bitnami\WordPress\php
    2. WP-CLI: C:\Users\user\bin
  6. Now, “Sign Out” of your Windows account and Log back in to be sure Windows loads the new PATH variables
  7. You can confirm both php and wp-cli are working by trying out a few different commands in Gitbash or the Command Prompt:
    1. php -i
    2. which php
    3. php -V
    4. wp
    5. wp plugin install hello-dolly (from inside your Bitnami/WordPress/htdocs/wp-content/plugins folder)

Great! Now you can use git and wp from the command line in Windows! Happy coding!~

Downloads

  1. Bitnami WordPress installer
  2. VS Code
  3. Gitbash
  4. wp-cli.phar file

WordPress Multisite with Wildcard DNS and/or SSL on Dreamhost

Although Dreamhost supports Wildcard DNS, they don’t support Wildcard SSL (except on DreamCompute), so WordPress Multisite with wildcard subdomains may not be the best choice.

TL;DR

  1. Dreamhost & Wildcard DNS
  2. Setting up WordPress Multisite
  3. I suggest not using Wildcard DNS with Multisite subdomains – and show how to get SSL on Multisite by registering each subdomain first

Years ago, I had Dreamhost set up Wildcard DNS for me, but it frustrated me that I could never get secure HTTPS connections for the subdomains.

Turns out many people have also had issues with this. And although I still don’t have a Wildcard SSL certificate solution that works, I have found a work-around that will suit my present situation. 

Note

This work-around basically nullifies my Wildcard DNS because I have to register each subdomain individually from the Dreamhost Panel.

In any case, this is the setup I currently have and Dreamhost’s position on each:

  1. Wildcard DNS on Dreamhost
  2. WordPress Multisite (read this Before creating a Network)
  3. SSL on those Multisite subdomains
    • Not supported by Dreamhost unless using DreamCompute (requires additional configuration)

#1 Setup Wildcard DNS

Two simple steps:

  1. Upgrade your hosting plan to VPS or a Dedicated server
  2. Contact Dreamhost Support to set up Wildcard DNS for you

#2 Setup WordPress Multisite

First, ask yourself if you REALLY need a Multisite installation, and if so, how many subdomains you expect to need. In fact, it’s actually an easier option to opt for subfolders rather than subdomains for your extra sites as this would make your SSL and Wildcard DNS problems virtually disappear.

With subfolders

  • SSL would load from the root domain
  • You wouldn’t need to create additional subdomains at all

Second, ask yourself if you REALLY need Wildcard DNS. As noted above and below, Dreamhost doesn’t support Wildcard SSL certificates.

If you really need Wildcard DNS and Wildcard SSL 

  1. Consider moving to DreamCompute – which does support this (with additional configuration on your part)
  2. Plan to get your hands dirty doing this all on your own
  3. Consider moving to a hosting provider that supports this configuration
  4. Reconsider Wildcard SSL altogether and just accept that you’ll be registering subdomains through the Panel and getting Let’s Encrypt certificates for each one (as outlined below)

Articles to Read for Setting up Multisite

#3 Get SSL on your subdomains

Non-Wildcard SSL

The simplest way to get SSL on a subdomain is not to use wildcard subdomains in the first place. 

One of the most compelling reasons to use Multisite with Wildcard DNS is if you want to allow the creation of multiple subdomains without registering them through your Panel first. This would enable you to, for example, allow users on your website to create their own subdomain blogs within your larger site when they register or subscribe to your site’s membership plan. (This is the reason I’d originally wanted Wildcard DNS.)

But, the problem with hosting such a site on Dreamhost is that they don’t support Wildcard SSL certificates, so every site created through WordPress Multisite will say it’s “insecure” even if you load it over HTTPS (and Google Chrome will also put up a blocker alerting you of the fact).

Main idea

Don’t employ Multisite to (initially) create subdomains.

I tried the following methods to get SSL on my subdomains and each failed:

  1. Create a new subdomain (v2012.site.com) via Multisite
    • The subdomain does not use the main site’s SSL
  2. Register that same Multisite-created subdomain through the Dreamhost panel and “mirror” the site to the root site. Then get an SSL certificate for the “mirrored” domain (v2012.site.com)
    • “Mirroring” basically says “set up the exact same site at both locations and use the same SSL” – so again, only the main site’s SSL will work
  3. Change the “mirrored” site to “redirect”
    • This bypasses the subdomain altogether and maps all traffic from the subdomain directly to the main site (site.com)

Finally, after much trial-and-error, I stumbled upon Ian Dunn’s article that provides the solution.

Solution

Setup your subdomains as “Fully hosted”, but set the web root (Web Directory) to the same directory as the root domain. (And re-save SSL settings if applicable.)

Be sure to also now get yourself a FREE Let’s Encrypt SSL certificate before you save these Settings (click HTTPS under the Web Options section).

(Re)create the Site through WP Multisite

The problem with doing things this way is that now you’re no longer really taking advantage of your Wildcard DNS. And actually, just creating a subdomain through the Dreamhost Panel won’t set up WordPress Multisite to run on the subdomain.

So, the next step is to go back into your Multisite installation at the root of your domain and create (or delete and recreate) your subdomain Site.

Re-saving SSL settings

Now, if the (new) site still isn’t loading HTTPS securely, there are two possibilities for this:

  1. You didn’t wait long enough for the Let’s Encrypt certificate to take effect (in that case, refresh the page in 5-10 minutes and check again)
  2. You may need to re-save your SSL settings (as Ian Dunn outlines)

To re-save your SSL settings, click the https On link in the center of your Domain Registration listing table under the Manage Domains menu item.

On the next screen, check the box marked Copy non-secure settings and Save it.

Force HTTPS

There’s one more thing to be sure of – that HTTPS is always loaded regardless or whether or not an HTTP or HTTPS URL is accessed. You can do this with the following code inserted into the top of your .htaccess file in the root of your Multisite installation directory:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

Create a WordPress Staging Site on Dreamhost Shared Hosting

These are some of my notes from setting up a WordPress staging site through Dreamhost using the Duplicator plugin.

I recently tried to access a website I’d created for a South Korean start-up over 2 years ago only to find that the entire contents of the web directory had been deleted. Within a day or two of this realization, the CEO contacted me and asked me to “fix” it.

Luckily for me, Dreamhost had updated the site in the last year and had created a complete archive of the site at /sitename.com.old. But, I didn’t want to run into this situation again in the future without a backup, so I decided to create a staging site for it. This was to accomplish 3 things:

  1. To maintain a FULL copy of the functioning website (as it is now)
  2. To teach me how to create a staging site so I can repeat the process with my personal sites
  3. To allow me to make changes to my websites that are not “live” – to test and debug them before implementing the changes on my “live” sites

Thankfully, Dreamhost and the Duplicator plugin make this process pretty painless. Here are the steps I took:

#1 Dreamhost

1. Create a .dreamhosters.com subdomain

Dreamhost provides FREE subdomains on the .dreamhosters.com domain to its customers. This is a recommended location to create a staging site. The following article outlines this process:

Creating a Staging WordPress site – Dreamhost Help

When you create the .dreamhosters.com subdomain, be sure to assign the same user to it as you are using for the original site. This will make the next step much easier.


Assign the same user to the subdomain as you are using for the original site.

2. Copy ALL files to the new subdomain

Personally, I’ve found it much much faster and easier to ssh into my site and copy all the files using the command line (rather than via FTP). For this to work, you’ll need to keep a few things in mind:

  1. Your FTP user needs Shell access (Enabling Dreamhost Shell Access).
  2. The same user needs access to BOTH the original site and the new subdomain so that when you ssh in, you can run the Linux copy command from the root folder.
  3. Now, in a Terminal window, ssh into the site, and run the following command to copy all site contents to the new subdomain.
[server]$ cp -a originalsite.com/. staging.dreamhosters.com

We’re copying the files over NOW because Dreamhost Shared hosting won’t allow us to create and download large archives with the Duplicator plugin. So it’s better to do the Two-Part Install instead of relying on Duplicator for the entire process.

#2 Duplicator

1. Install & run Duplicator on the original site

Dreamhost has a helpful article that lays out this process.

Migrating WordPress to DreamHost using the Duplicator plugin

But, rather than downloading the FULL SITE archive, we need to run the Two-Part Install – downloading only the database archive and installer file.

2. Create a new Database on Dreamhost

Complete step #8 from the previous article to create a new MySQL database on Dreamhost:

Creating a MySQL database – Dreamhost Help

3. Upload & run installer.php on the staging site

Continue the Migration tutorial from step #9. Upload BOTH the archive.zip and the installer.php files from Duplicator to your staging site via FTP. Then, navigate to the installer on your staging site:

http://stagingsite.dreamhosters.com/installer.php

When it asks for your database details, be sure to “Test Database” to make sure you can connect. Then run through the rest of the steps in the installer.

Also remember to “Remove installer files” after logging into your new /wp-admin area (there will be a link).

Review & Resources

Overall, the process of setting up a WordPress Staging Site with Dreamhost and Duplicator was much easier than I’d originally anticipated. Here is a condensed list of the steps and resources covered in the tutorial above.

Tools

  1. Dreamhost hosting
  2. Duplicator plugin

Steps

  1. Create a .dreamhosters.com subdomain (with the same user)
  2. Copy over ALL original site files (via ssh and the command line)
  3. Install Duplicator and run it to archive “Database Only”
  4. Upload the archive.zip and installer.php to your subdomain
  5. Create a new MySQL database in Dreamhost (same user)
  6. Navigate to subdomain.dreamhosters.com/installer.php
  7. Run through the remainder of the steps in the tutorial

Tutorials

  1. Dreamhost’s Migration tutorial
  2. Duplicator’s Two-step Install tutorial
  3. See also: Staging a DreamPress overview for tips on best practices:
    1. Password protecting your staging site
    2. Add an SSL certificate (with Let’s Encrypt)
    3. Transferring changes to your live site

Bonus: Get $50 off Dreamhost’s Unlimited shared hosting plan by clicking this link, or any of the other Dreamhost links above!

Disclaimer: (I will make a small commission if you decide to sign up for a Dreamhost plan using one of these links)

Move WordPress media uploads to a subdomain

I recently decided to move my WordPress media uploads to a subdomain to improve site speed and help keep things organized for better backups. These are the things I did and issues I ran into along the way.

I recently updated my personal homepage, and decided to collect all my writing about code from three other sites that I’d worked on over the years. So, I exported the Posts from each of those sites, and imported the .xml files to my new site in order to shift the Posts to my new homepage. Along the way, I decided to move my new site’s media uploads folder to a subdomain, and I ran into a few problems along the way.

Why move media to a subdomain

There are a couple of reasons for this:

  1. To speed up my site by allowing simultaneous downloads from multiple sources at once (almost acting like a mock CDN)
  2. To keep things organized and make taking site backups easier (by backing up the database and files separately)
  3. To do a “dry run” on a small site before attempting the same thing on a large site I run (400+ Posts)

How to move media to a subdomain

  1. Create the subdomain on your host files.sitename.com for example
  2. Download ALL the old media files from your WordPress /wp-content/uploads folder via FTP
  3. Upload ALL the media files to your new subdomain
  4. Change your Upload folder to the subdomain in your WordPress settings

You may need to type /wp-admin/options.php in the URL bar and scroll down to upload_path and upload_url_path as this menu option is not visible in the WordPress menu.

  • upload_path : directory root for subdomain
    • set it to /home/server_root/sitename/folder
    • Echo the following from an index.php file at the site root to find your directory root path: <?php echo $_SERVER["DOCUMENT_ROOT"]; ?>
    • Mine is /home/server_root/sitename/media
  • upload_url_path : actual URL path for the subdomain
    • Mine is https://files.sitename.com/media

After changing those options, you should see them appear now in the WordPress Settings → Media menu.

  1. Change your Live Image URLs with a database Search & Replace plugin (this is easier than phpMyAdmin). Two good options are:
    1. Search & Replace by Inpsyde GmbH
    2. Better Search Replace by Delicious Brains

(I actually prefer the first one because it seems to run faster (there is no loading bar at the bottom of the screen) and also includes the option to download an SQL backup of your database from the first screen in the plugin – and then import it again if your search/replace fails or causes problems.)

  • Search: http://www.oldsitename.com/uploads
  • Replace: http://subdomain.sitename.com/media

Double check everything is working by trying to upload a new image, and checking your old Posts that had loaded the older images (open a different page or empty the page cache first).

  1. Redirect images that are already indexed by search engines. Do this by adding the following to your .htaccessfile:
RedirectMatch 301 ^/wp-content/uploads/(.*)$ http://img.yoursite.com/$1
  1. Finally, it might be a good idea to create a homepage for the subdomain that directs visitors back to your main site or allows them to search it (otherwise they’ll be met with either a blank page or a 403 Access Forbidden error). Here’s a good article that provides more details, and an example.

Problems I ran into

  1. I have a number of Galleries on my old WordPress Posts, but the way the gallery references images is not with an image URL, but with the gallery shortcode. It looks like this:
[ gallery type="rectangular" link="none" size="medium" ids="31183,31184" ]

So, actually, even when I imported my old Posts to the new site, I didn’t get any of the old galleries showing up because the media IDs which are referenced in the gallery shortcode seem to not be the same on the new site – even if I click “Download and import file attachments.”

  1. When I checked the image code on the old site, it also looked like some of what the site was serving up were some kind of “responsive images.”

One of the themes I wrote before did add support for responsive images, so it seems like those are being served up a bit differently than “normal” images. For example, the URL of some of those images included https://io.wp or something similar – as if being loaded through a default WordPress CDN.

  1. Even after updating and changing everything, the images on my subdomain did not show up inside my Media Library.

Resources

Atomic Habits that will turn you into a Superhero

Drawing on numerous resources, this presentation investigates what habits are, how they work, and how building the right ones into your life will turn you into a literal superhero. We’ll take a look at triggers, cravings, and rewards; the formation of good habits and the destruction of bad habits; and the top 6 High Performance Habits developed by Brendon Burchard and the High Performance Institute after over a decade of research and coaching.

Have you ever felt too busy? Overwhelmed? Stretched too thin? Your work doesn’t have to be like that. Your life in particular, shouldn’t be like that.

Drawing on numerous resources, this presentation investigates what habits are, how they work, and how building the right ones into your life will turn you into a literal superhero. We’ll take a look at triggers, cravings, and rewards; the formation of good habits and the destruction of bad habits; and the top 6 High Performance Habits developed by Brendon Burchard and the High Performance Institute after over a decade of research and coaching.

If you’ve ever wondered such things as “How long does it take to develop a new habit?” or “What if I fail in maintaining my habits?” or even “Which habits will move the needle the most in my professional and personal life?” then this talk is for you. The talk also ends with a discussion on good and bad teaching habits and how to improve yourself in your classroom and office.


Overview

What’s the difference between superheroes and us “normal” people?

Could it be living a life of purpose? Purpose leads to fulfillment. Fulfillment equals happiness.

Some people die at 25 and aren’t buried until 75.

Ben Franklin

A basic framework for happiness:

  • Engagement: Time spent daily, hopefully in a job that challenges us, but also in our after-hours hobbies. (see Power of Full Engagement)
  • Mastery: An ability to show ourselves that we are making consistent progress and improvements toward a specified goal. (see Drive)
  • Flow: Energy and attention dedicated each day to an activity that puts us in the zone. (see Flow)

Happiness is a consequence of the things you do daily, not a reward.

Steve Kamb, Level Up Your Life

Your (Super) Hero’s Journey

  1. Act 1
    1. Introduction to the protagonist’s world (that’s you!)
    2. Call to Action: Habits? What about Freedom?
      1. Neuro-pathways & Significance of your Identity
    3. Crossing the Threshold: How habits work
      1. Immediacy and addiction
  2. Act 2
    1. Meet the Mentor(s)
      1. Be intentional
      2. Reframe your mind
      3. Get some Accountability
    2. First Challenge: Make Good Habits inevitable
      1. The Law of Least Effort & The Goldilocks Principle
      2. Keystone habits & Habit stacking
    3. Temptation: Make Bad Habits impossible
    4. Dark Moment: 
      1. Importance of your Environment
      2. Schedule over Scope (Don’t break the Chain)
      3. Frequency: “How long”? Try “how much”?
  3. Act 3
    1. Final Conflict: High Performance (Superhero) Habits
      1. Personal: Seek Clarity
      2. Personal: Generate Energy
      3. Personal: Raise Necessity
      4. Social: Increase Productivity
      5. Social: Develop Influence
      6. Social: Demonstrate Courage
    2. Return home (changed): Systems trump Goals (“Continue playing for the love of the game”)

Ready Player One

1.1 Introduction

How’s life? 

Have you ever felt too busy? Overwhelmed? Stretched too thin? Your work doesn’t have to be like that. Your life in particular, shouldn’t be like that. 

A 2006 Duke University study indicates that more than 40% of your daily activities are habitual. Not enjoying your day? Change your habits.

We are what we repeatedly do. Excellence, then is not an act, but a habit.

Will Durant

1.2 Call To Action

Once more, from above: “Not enjoying your day? Change your habits.”

But what about Freedom?

Many people think that increasing our Habits decreases our Freedom for choice in life. But the opposite is actually true.

  • Jocko Willink (former US Navy Seal): posted a picture of himself surfing with his son before work one morning.
    • Commenter #1: “Must be nice.”
    • Commenter #2: “Discipline equals freedom.”
    • Advice: Be incredibly disciplined about parts of your day so that you have the freedom to enjoy the rest of your day.
  • Steve Jobs (& Mark Zuckerberg): often wear the same thing every day
    • Advice: Make decisions in advance, be as habitual as possible about certain things, to reduce cognitive load and allow yourself more brain power for the things that truly matter.

Introduction to “Neuro-pathways”

Neuro-pathways are connections formed in the brain between neurons in different areas of the brain. The more you perform a certain habit, the more deeply ingrained it becomes. But, we can change our neuro-pathways.

Your life moves in the direction of your strongest thoughts. Don’t like where your life is moving? Change your thoughts!

Craig Groeschel (paraphrase)

Every thought or action is a “vote” for who you are or want to become. Over time, will “Future You” thank you for the decisions “Current You” is making to shape his/her identity?

1.3 Crossing the Threshold

Charles Duhigg wrote an excellent book called The Power of Habit that clearly lays out how habits work, how to change bad habits into good ones, and how to create new habits.

How Habits work

  1. Cue: Something triggers your habit or a Craving
  2. Routine: You do something to satisfy this
  3. Reward: The cycle has a clear ending

Often, you cannot fully control the Cue nor the Reward. Therefore, Duhigg argues that to change a habit, you should focus on the Routine. In truth, all people have control over the choices they make about their habit routines. But many people feel controlled by their habits, not in control of them. 

  • Why do I do what I don’t want to do?
  • Why don’t I do what I want to do?

Additionally, many people express difficulty in creating new habits or breaking old, deeply ingrained ones.

Immediate Consequences

In the book Atomic Habits, James Clear points out that “immediate” rewards or consequences are the key. 

  • That which is immediately rewarded = repeated
  • That which is immediately punished = prevented

Returning to our discussion of “Future You” vs. “Current You,” we can understand how “Current You” is more in favor of Netflix and ice cream after a long day at work than in helping “Future You” become fit. The craving for immediate, visible gratification often outweighs our desire for long-term positive outcomes precisely because we cannot immediately perceive that our efforts have had any effect. 

  • Netflix + ice cream = immediate stress relief and relaxation
  • Exercise at the gym = muscular pain for…. what? long-term health? No thanks, I’ll take the immediate hit of sugar and comedy~

Rising Action

2.1 Meeting the Mentor(s)

Much of this next section includes notes from James Clear’s Atomic Habits. Check out his blog for more great articles.


Humans tend to be weak in the moments of Craving or HATS (Hunger, Anger, Tiredness, Stress). But there are a few things we can do about it:

  1. Release tension, Set intention (from High Performance Habits)
  2. Reframe the Cues
  3. Get some Accountability

Set intention practices

  • During the pauses between activities, mentally release what was, and decide on what you will make of what is to come.
    • After work, in front of my door, take 10 deep breaths, release my work stress, determine to smile at my wife and greet my children with hugs first upon entering the house
  • Visualize the outcome you want
    • Michael Phelps: famously played “mental videotapes” in his head every night before bed during training and before every meet in which he “performed” at his peak – when the race came, he did
    • Arnold Schwarzenegger: when interviewed after his first movie “Hercules in New York” flopped, claimed he’d “be the biggest name in Hollywood” 
  • Write out an “Implementation Intention
    • Research indicates that writing down your intention to do a certain thing at a certain time and place raises the likelihood you’ll stick with your intention to 91% (compared with 35-38% success if you rely on motivation or self-control alone)

Reframing practices

  • Your Cue can be deceptive and you can change how you interpret it
    • You don’t crave chips, you crave something sweet and crunchy
    • You don’t crave alcohol, but you are thirsty, need to relax, and want some flavor
    • You don’t crave a cigarette, you crave conversation (or alone time) outside the office in the cool fall air
    • You don’t crave sex with a stranger, you crave physical release (exercise) or human contact (snuggling)
    • Your heart rate and breathing increasing, palms getting sweaty before a competition or presentation isn’t you being afraid of that, it’s your body preparing you to perform at the highest level

Accountability practices

  • Find someone who’s already doing what you want, and ask to join them (training at the gym)
  • Sign a “Habit Contract” with a partner that lays out immediate consequences (like giving a set amount of money to something or someone you hate) if you fail to live up to your end of the bargain

2.2 First Challenge

Time to put what you’ve learned about Habits to work. Let’s create a NEW one! Advise: start small. The “Path of Least Resistance” teaches us that the easiest thing to do is the thing you will do. So, setting a goal of ONE pull-up per day is a much easier (and better) way to get started exercising than trying to begin going to the gym everyday. 

(Note: I literally remade my life in 2013 in a similar fashion after I first listened to The Power of Habit.) 

Make Good Habits inevitable

  1. Cue: Make it obvious
    1. An alarm, a time of day, after a certain activity, in a certain place
    2. You can also pair a new habit with a Keystone habit (one that is the “gateway” to other habits), or Stack your habits
  2. Craving: Make it attractive
    1. Temptation bundling = give yourself something you want (chocolate) for doing something you need to do (exercise)
  3. Routine: Make it easy
    1. Use the “Path of Least Resistance” to determine the smallest step you need to take to begin a new habit. 
      1. Want to run? Set out your clothes the night before.
      2. Read more? Set a book on your bed after you make it.
      3. Wake up early? Get home by 10pm.
    2. Additionally, the “Goldilocks Rule” says that if something is too easy or too hard, you won’t stay motivated. Things within 4% of a “stretch” are “just right” and allow us to continually progress.
  4. Reward: Make it satisfying
    1. Satisfy your Craving – eat the chocolate, watch the Netflix show, drink your special coffee, etc

Here’s a practical example of something I should start doing a better job of.

My example: Grading student work:

  1. Cue: Every Friday at 3pm
  2. Craving: need a mid-afternoon energy boost
  3. Routine: sit down at the computer, open the Gradebook on the left and assignments on the right, begin grading
  4. Reward: buy a latte (I don’t buy them often), or eat my favorite chocolate

Keystone habits & Habit Stacking

  • Keystone habits are habits that set the foundation for and naturally lead in to other habits
    • Good ones:
      • I wake up early so
      • I eat breakfast and go to the gym so
      • I shower so
      • I shave so
      • I brush my teeth so
      • I feel healthy so
      • I’m energized so
      • I arrive at work energized so
      • I do my best work so
      • I get promoted…
    • Bad ones:
      • I wake up late so
      • I’m rushed so
      • I don’t eat breakfast so
      • I’m angry on the road to work so
      • I get in an accident so
      • I arrive late so
      • I snap at my coworkers so
      • I under-perform so
      • I get fired… 
  • Habit stacking is where you look through your current habits and determine a place (with a Cue that is the completion of one habit) where you can insert a new habit
    • For example, in the “Good” list above, how about inserting “read for 15 minutes” after “I brush my teeth”? Then, you list will read:
      • … I brush my teeth so
      • <I read for 15 minutes so>
      • I feel healthy <and smart> so

2.3 Temptation

Reverse the habit loop above to flip bad habits upside down and destroy them!

Make Bad Habits impossible

  1. Cue: Make it invisible
    1. Put the TV in the closet, keep your phone in another room, keep junk food out of the house, drive down a different road at lunch
  2. Craving: Make it ugly
    1. Picture yourself with 20 extra kg, visualize the fat and calories seeping into your blood stream and clogging your arteries, enable black & white mode on your phone
  3. Routine: Make it difficult
    1. Remove batteries from the remote, delete the app altogether, change your environment (more on this in the next section)
  4. Reward: Make it empty
    1. Chide yourself whenever you engage in that behavior, remove one good thing you enjoy from your life as a consequence, pay the dues of your “Habit Contract” (above)

My example: Checking Facebook:

  1. Cue: I’m bored, need entertained, or want some connection
  2. Craving: I visualize it as a slot machine that delivers politically-charged negativity more than it delivers real satisfaction
  3. Routine: Deleted the Facebook app in June
  4. Reward: (also with YouTube) I only give it one page scroll when I’m in a “bored” state of mind

2.4 Dark Moment

But what if you fail? Obviously we cannot succeed 100% of the time.

When you FAIL at Good Habits

  •  Never Miss Twice: Get back on the horse as quickly as possible. Anyone (everyone) can have a bad day. It’s not a single mistake that changes the direction of your life. But a series of many missteps over many years, a repeated pattern of “bad” behavior will. Correct yourself as quickly as possible and get back at it.
  • Don’t Break the Chain: Use a calendar and put a green circle around any day you perform your good habit. After a while, you will start a series of green circles (indicating success), and you will find yourself mentally looking for ways to NOT break your cycle.

When you FAIL at controlling Bad Habits

  • Environment: Understand that your environment has a HUGE impact on your habits
    • In the Vietnam War, up to 20% of soldiers became addicted to heroin (35% reported having tried it). After returning home (to a new environment), only 5% of them were re-addicted in one year (12% in three years)
    • The opposite statistics are often true for domestic heroin addicts who go to rehab, get clean, and then return to the same old environment that led to their addiction
    • Upgrade your Bat Cave (from Level Up Your Life): If your environment is causing you to stumble, change it! You have control over the many of the things you see, listen to, do, and eat every day.
  • Identity: Remind yourself of who you ARE deep down (like Simba in the Lion King). Are you really the kind of person who does these things? No! Remind yourself who you ARE and that each vote (action) FOR or AGAINST that identity will make it stronger or weaker.

Anecdote on Identity:

There was a young boy who loved to play baseball. He would go out to the field all the time, throw the ball up in the air, and try to hit it.

  1. On the first throw, he said, “Here comes Johnny, the greatest hitter who has ever lived!” He threw it up. A swing, and a miss.
  2. On the second throw, “I’m still the greatest hitter who has ever lived!” A throw, a swing, and a miss.
  3. On the third throw, “I’m still the greatest hitter who has ever lived!” Again, throw, swing, miss.
  4. Finally, he exclaimed: “WOW! I can’t believe it! I’m also the greatest pitcher who has ever lived! Because I just struck out the greatest hitter who has ever lived!”

Climax

The habits outlined in this next section come from Brendon Burchard’s High Performance Habits. Check out his blog for more great articles.

3.1 Final Conflict

So, what are THE best habits you can cultivate in your own life? Here are notes about 6 that have been compiled by Brendon Burchard at the High Performance Institute after over a decade of hands-on research and coaching with world-class performers.

I’ve mapped these habits to many of the spokes on Dan Miller’s Wheel of Life from his book 48 Days to the Work You Love:

High Performance Habits

Personal Habits

  1. Seek Clarity (Mind)
    1. What’s your Identity? Are you who you want to be? What kinds of things would that person do / not do? Am I living into that Identity?
    2. What are your Habits? Be mindful of this. Perform a self-inventory and determine where there’s room for improvement.
    3. Set up Quarterly reviews. I’ve personally found it very helpful to quarterly take a FULL day away to brainstorm and become VERY clear about myself, my habits, environment, and vision for the future. It makes the next quarter much smoother. Two good resources:
      1. Your Best Year Ever by Michael Hyatt
      2. The 12-Week Year by Brian P. Moran & Michael Lennington 
  2. Generate Energy (Body)
    1. Physically, do you have enough energy? Exercise has been shown to help increase energy levels (as has proper nutrition)
    2. Can you bring energy to what you do? Are you passionate and alive about it?
    3. Personally: I go to the gym every morning before 7am and commute by bike. The mental and physical benefits are immeasurable.
  3. Raise Necessity (Spirit)
    1. People with a greater sense of “necessity” are more likely to follow-through with their tasks. Raise your “necessity”, raise your follow-though.
    2. How important is it that you get a certain thing done?
    3. Personally: When I find myself slacking, I have to constantly go back to my “Why” (Start with Why) to remind myself why I’m pushing and hustling and working hard.

Social Habits

  1. Increase Productivity (Career)
    1. How can you do more with less? How can you be more efficient with what you have? How can you accomplish tasks more quickly with the same level of quality?
    2. Set a Schedule, not a Deadline: The problem with deadlines is when we miss them, we feel guilty, and sometimes even give up on what we were doing – even if we’re better off now than when we started.
    3. Personally: This means getting up every single morning (even Sundays) well before the sun is up. I try to set aside a minimum of 3 hours every morning before work to accomplishing my personal (non-work related) most important tasks.
    4. Prioritize Education over Entertainment: I’ve also not had a TV for 10 years. I spend the majority of my “down” time engaged in some kind of “active” relaxation that is stimulating my brain and helping me learn new skills. Increase the output that matters and get insanely good at new skills.
  2. Develop Influence (Social)
    1. Get out there and meet people. You can’t accomplish much alone. Build a team before trying to change the world.
    2. Lead by Example: Be a leader. Stand up and role model the way. Encourage others to follow your example.
    3. Personally: I’m involved in a few organizations where, if something needs done, I just do it. This has led to others being more open about stepping up and helping out as well. 
  3. Demonstrate Courage (Legacy)
    1. Find someone to fight for. Who needs your “A game”? Play big or go home. Take bold action. Dream big dreams.
    2. Personally: After my wife gave birth to our first child (son), I had a sudden, sinking realization that my life was no longer my own, and that my base income was no longer sufficient to sustain a growing family. I raised my “A game” and courageously stepped out into every opportunity that presented itself.

3.2 Return Home (changed)

Continue playing for love of the Game (or why Systems trump Goals)

Five years ago tomorrow, Scott Adams, creator of Dilbert wrote on his blog about the difference between Goals and Systems (James Clear expands upon the failings of setting Goals without Systems):

In my new book, How to Fail at Almost Everything and Still Win Big: Kind of the Story of My Life, I talk about using systems instead of goals. For example, losing ten pounds is a goal (that most people can’t maintain), whereas learning to eat right is a system that substitutes knowledge for willpower.

Scott Adams

What’s the difference?

Systems vs. Goals

  1. Winners and losers have the same goals, but winners create superior systems to accomplish those goals
  2. Achieving a goal is momentary, but systems last a lifetime
  3. Goals actually restrict your happiness by telling you “once I reach XYZ goal, then I’ll be happy”, but systems enable happiness in the moment
  4. Goals create a “yo-yo” effect – once you pass the finish line, you stop working hard for a while until the next goal is looming, but systems enable continual, long-term, sustained effort “for love of the game

Change your game

Play the game you can win at.

  • Hicham El Guerrouj: Moroccan 2-time gold medalist and world-record holder in middle-distance running 
  • Michael Phelps: #1 most decorated Olympian in history (swimming); 7 inches taller & 40 percent heavier than Hicham

These two appear to be very different. But there is one thing they have in common: the wear the same length inseam on their pants.

But would either of them, if they switched places, under the same training and circumstances, have been the same caliber athlete as the other? Not a chance. Phelps’ body is built for swimming; Hicham’s is built for running.

Create a new game

Do you find you’re not succeeding at the game you’re playing? Create and play a new game altogether. 

A good player works hard to win the game everyone else is playing. A great player creates a new game that favors their strengths and avoids their weaknesses…

Specialization is a powerful way to overcome the “accident” of bad genetics. The more you master a specific skill, the harder it becomes for others to compete with you.

James Clear, Atomic Habits

Everyone has at least a few areas in which they could be in the top 25% with some effort. In my case, I can draw better than most people, but I’m hardly an artist. And I’m not any funnier than the average standup comedian who never makes it big, but I’m funnier than most people. The magic is that few people can draw well and write jokes. It’s the combination of the two that makes what I do so rare. And when you add in my business background, suddenly I had a topic that few cartoonists could hope to understand without living it. 

Scott Adams, creator of Dilbert

What are you skilled at? What are you fascinated by? What do you enjoy doing most that many people would argue is painful or hard to do? 

Perhaps you’ve found a new game to begin developing.


Resources

The following authors, their blogs, and books have had an enormous impact on my life. I’ve also linked to their “Academies” where applicable:

  1. Best blogs
    1. James Clear (Atomic Habits) | HabitsAcademy
    2. Steve Kamb (Level Up Your Life)| Nerd Fitness Academy 
    3. Michael Hyatt (Your Best Year Ever)
  2. Great books
    1. Brendon Burchard (High Performance Habits) | High Performance Institute
    2. Charles Duhigg (The Power of Habit)

The following collection of books are those that I’ve referenced in this talk. Each has had a significant impact on my life. Many I’ve read more than once, and some I’ve desired to read again immediately upon finishing. Be aware that these are Amazon affiliate links, so I’ll get a small commission if you click through and purchase any of them.

Welcome to WP-CLI!

I have limited experience with wp-cli but I know it’s a really quick and convenient way to manage WordPress installations. And recently I’ve been using ssh to to manage my sites more often, so I thought it would be a good time to investigate it more deeply.

I’m hosting this site on Dreamhost.com (my host since 2009), and I recently went through their One-Click install to quickly add WordPress here. But, strange thing is, I didn’t receive an email from them with my username/password combination – so I had no way to login (at first). 

After a quick Google search, I noticed that Dreamhost has a page about resetting your password – including a section on using wp-cli

I have limited experience with wp-cli but I know it’s a really quick and convenient way to manage WordPress installations. And recently I’ve been using ssh to to manage my sites more often, so I thought it would be a good time to investigate it more deeply.

Here’s a list of the very first commands I’m running on my new WP install – as well as some I intend to put to greater use in the future.

Login

First of all, we need to ssh into the server and access the site.

$ ssh username@site.com
$ cd site.com/wordpress

Change user password

$ wp user list
+----+-------------+---------------+------------------+---------------------+---------------+
| ID | user_login | display_name | user_email | user_registered | roles |
+----+-------------+---------------+------------------+---------------------+---------------+
| 1 | myusername | myusername | user@example.com | 2018-03-17 11:14:28 | administrator |
+----+-------------+---------------+------------------+---------------------+---------------+
$ wp user update 1 --user_pass=NewerBetterStrongerPassword123$
Success: Updated user 1

Create an alias to check for updates

One of the coolest things I found was that you can create an alias to run a series of wp-cli commands one after the other. The following command will check for WP core, plugin, and theme updates at once.

$ alias check-all='wp core check-update && wp plugin list --update=available && wp theme list --update-available'
$ check-all
Success: WordPress is at the latest version.
+------+--------+--------+---------+
| name | status | update | version |
+------+--------+--------+---------+
+------+--------+--------+---------+
+-----------------+----------+--------+---------+
| name | status | update | version |
+-----------------+----------+--------+---------+
| twentyfifteen | inactive | none | 2.0 |
| twentyseventeen | active | none | 1.7 |
| twentysixteen | inactive | none | 1.5 |
+-----------------+----------+--------+---------+

Update and manage core, plugins, & themes

While I could probably create another alias to update everything at once, I haven’t yet because I still like to do some things step-by-step. So, here are the three commands needed to update or manage WP core, plugins, and themes:

$ wp core update
$ wp core update --version=4.7.1

$ wp plugin update --all
$ wp plugin status
$ wp plugin install plugin-name
$ wp plugin activate plugin-name
$ wp plugin deactivate plugin-name
$ wp plugin delete plugin-name

$ wp theme update --all
$ wp theme status theme-name
$ wp theme install theme-name --activate

Many of the plugin and theme commands are quite similar and you can do certain things like stringing together some of them (wp theme install theme-name --activate).

Check your config file or databases

A couple more useful commands are to check out your wp-config file’s constants and globals, and work with your database:

$ wp config get

$ wp db size --tables
$ wp db optimize
$ wp db repair
$ wp db export filename.sql

Clean up post revisions

Sometimes you just need to clean up your post revisions, especially if your site is old or has loads of them. But first, you’ll need to install an additional wp-cli package.

$ wp package install trepmal/wp-revisions-cli
$ wp revisions clean

Or, for specific posts and/or dates:

$ wp revisions list --post_id=ID
$ wp revisions clean --post_id=ID --before-date="YYYY-MM-DD"

Remove all spam comments

This one looks to be a great help, especially for big installations that get a lot of spam. But there are quite a few other commands to help manage comments.

$ wp comment delete $(wp comment list --status=spam --format=ids)

Resources