How Big Should a Team Be?

Rands: “Seven Plus or Minus Three”.

I’d like to revisit this later, when the size of my team hits 10. We’re currently at 5, not including myself.1

  1. Rands isn’t the first to suggest that 7 is somewhere close to the magic number. See this oldie from The Psychological Review, 1956

Highball by Studio Neat

New app from Studio Neat. Recommended.

The sharing feature may be the only good use of QR codes I’ve ever seen:

My Vesper recipe. Save this image to import it into Highball
My Vesper recipe. Save this image to import it into Highball

Secure Passwords with Ruby

Last week, Slack had a “security incident” which forced all users to change their passwords and encouraged them to turn on 2-factor authentication. 2FA is by far the best way to secure web-based accounts, but configuring it all for my Slack account made me remember that my other login passwords1 could use some work as well. This timely post on passwords by Dr. Drang gave me a good start.

TL;DR version of the good Doctor’s post: Generate pass phrases using the Diceware method, but their wordlist is cumbersome and has no character. Create your own wordlist by generating it from books found in the Gutenberg Project.

I wanted to make the following changes to Dr. Drang’s method:

To avoid installation of new software, I used Ruby. This allows me to use the realrand gem to generate truly random numbers. Install this gem with

gem install realrand

then inclue it using the following:

require 'random/online'

In my script, I’m getting random numbers from Random.org but the gem does provide other options2.

To create my word list, first I downloaded Heart of Darkness by Joseph Conrad as a plain-text file. Then I created a text file with every unique word on a new line using this command:

tr -cs A-Za-z '\n' < heartofdarkness.txt  | tr A-Z a-z | sort | uniq > wordlist-heartofdarkness.txt

After creating wordlist-heartofdarkness.txt I wrote the following Ruby script to generate pass phrases:

On the first run, I got

resist very fishing irritation worrying negligence

That’s much better than anything you’d get from the Diceware list.

Just for fun, I did the same thing with the complete works of Edgar Allan Poe (Vol. 1):

estimate witness knew stiff intent threatened

as well as Prince by Machiavelli:

void captain oppose enlisted provided murderer

These phrases are less secure if the attacker knows your word list, but it’s already worlds better than something you could make up.

Lore Podcast

Lore Podcast

If Night Vale is getting tiresome, give Lore a try. 15 minutes per episode, and all true stories. So far it’s only on Episode 2. Good time to jump in.