Trick to Resetting My Password on macOS

I have a MacBook running macOS Mojave that had been sitting on a shelf for 6 weeks or so. It was completely dead when I initially opened it to log on again yesterday. Once it was charged, I was having trouble remembering the password to my account (the single administrator account no less). I hadn’t set a hint or written it down in 1Password. After a few failed attempts, macOS displayed a message saying I could restart in recovery mode to reset my password.

I was immediately thankful I would be able to use my Apple ID to reset my password! Once restarted in recovery mode, I entered my Apple ID and password but received an error message saying, “There was an error connecting to Apple ID server.” Doh! I forgot to connect to WiFi so I connected to my home network and received a (confirmation) notification from Eero that a new device had connected (awesome feature). I resubmitted my Apple ID credentials and… same error.

Searching on that error message surfaced mostly results about iOS device problems with a few hints at changing the time zone setting from manual to automatic. Those hints didn’t seem relevant or actionable so I started searching for other ways to reset my password that didn’t involve Apple ID servers. Luckily, I found Bypass and reset the password on any Mac in no time which included instructions on getting into actual Recovery Mode (⌘+r). Up until now, macOS was taking care of launching me into the Reset Password utility because it knew I was failing to log in (I just needed to hold down the power button until it shut off and then press it again without any key combos).

Now that I was in actual Recovery Mode and had access to Terminal, I decided to verify my computer’s clock was in sync using date. My computer still thought it was January 2nd instead of February 20th! StackExchange provided a few quick commands to get it in sync (no sudo necessary thankfully since… you know… I didn’t know my password). I then ran a few ping tests just to double triple check my WiFi was working. I launched resetpassword with my clock synced and WiFi connected. Submitting my Apple ID credentials now worked! After a few 2FA prompts, I was able to set a new password (which I definitely wrote down in 1Password)!

Why did the Apple ID servers require my Mac’s time to be up to date? I assume to prevent replay attacks. Why was my MacBook’s time so out of date? I’m guessing the battery died on January 2nd, and because I couldn’t log in, nothing could run to update the time which is why I had to do it manually through Terminal in Recovery Mode. Could this have been a friendlier experience for the end user (me)? Absolutely! Any sort of hint in the error message would have been appreciated. Maybe the Reset Password utility could have tried to sync my clock and retry behind the scenes. Security is a fine balancing act.

In the end, my MacBook felt very secure, and I was able to regain access. Hopefully this helps someone down the line debug a little faster ❤️

Trick to Resetting My Password on macOS

The Rams Jeff Fishered Their Way Into A Super Bowl Appearance

In their final season under Jeff Fisher, the 2016 Los Angeles Rams scored 224 points, or just 14.0 points per game.  In their first year under Sean McVay, the 2017 Los Angeles Rams scored 478 points, or 29.9 points per game. That 15.9 points per game increase displaced what the ’99 Rams achieved

Great breakdown of key in-game decisions that impacted win probabilities.

Read on www.footballperspective.com/the-rams-jeff-fishered-their-way-into-a-super-bowl-appearance/

The Rams Jeff Fishered Their Way Into A Super Bowl Appearance

Environment Variables in Node.js

Many apps need configuration to connect to a database or send requests to error reporting or analytics services. When you’re developing your app on your laptop, you might connect to a database at localhost. When you deploy your app to a hosting provider, you’ll likely want to connect somewhere else. Continue reading “Environment Variables in Node.js”

Environment Variables in Node.js