In our house, our biggest holiday tradition is watching a Christmas-themed movie or television show every day. Each year, I prepare a schedule which leads up to the new Doctor Who Christmas Special. This year, I’m publishing our schedule on this very website.
Right now, my Windows Live password is a bunch of gibberish that the excellent 1Password handles for me. This has been mostly great.
But then I updated my Boot Camp partition to Windows 8. Windows 8 is a fine OS but they made some questionable decisions that reach throughout the system. One of those is that they integrate your Windows Live account throughout the system: to the point that Microsoft strongly encourages you to use your Windows Live account instead of a local user account.
That’s right. To log into Windows 8, they want my Windows Live password. The gibberish password. This has proven frustrating.
It’s been so frustrating, in fact, that I decided to change my Windows Live password to something I can more easily remember. And whenever I need a memorable, yet still secure, password, I turn to Diceware.
I love Diceware. I’d recommend it to everyone. But it is a very manual process. And I just couldn’t bear the thought of pulling out my dice and spending ten minutes generating a password.
I thought, “Shouldn’t my computer be able to do this for me?”. And then I thought, “Well, I guess I’ll have to make it do it for me.”
And, by the end of the day, I’d written Shashti: The Humane Password Generator. It’s rare that I finish one of my personal projects at all: rarer still that I do the entire thing in a day1. I was so excited about it that I had to share it, even though it’s in a bit of a rough state.
Hopefully, I’ll clean up the code a bit and put it into proper source control and all of that. But, even if I never do, it’s usable today. If you’ve ever needed to generate a human-memorable password, why not take a look?
As for me, I am going to go to sleep now.
This isn’t quite true. I’d had the idea before and even got so far into making an Xcode project and creating a class with some stub methods. But it wasn’t until today that I filled in those stub methods (and then added a whole lot more). I’m still claiming this as a one-day project. ↩