It’s based on lessons learned from creating and evolving production schemas at Shopify over almost 3 years. The tutorial has evolved and will continue to change in the future so nothing is set in stone.
We believe these design guidelines work in most cases. They may not all work for you. Even within the company we still question them and have exceptions since most rules can’t apply 100% of the time. So don’t just blindly copy and implement all of them. Pick and choose which ones make sense for you and your use cases.
The same foolishness that would cost your money and pride in a pool hall is the stuff of legend in Silicon Valley.
I tweeted about ORM last week, and since then several people have asked me to clarify what I meant. I have actually previously written about ORM , but it was in…
Have you ever heard of SEMA ? It’s a fairly esoteric system for measuring how good a software team is. No, wait! Don’t follow that link! It will take you about…
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 ❤️
When most people think about global trade, they usually imagine planes, trains, automobiles, and ships.
I’ve been an engineer for a decade, and recently joined a company as Director of Engineering. I am a talented engineer, but this is a total different role…