Which word has the most valid subwords?

As is pretty common at SF tech companies, lots of people at Stripe have laptop stickers with various company logos (including our own) on them. So there have been at least a few cases where I’ve sat in a meeting, maybe slightly distracted, facing a laptop with the word STRIPE on it, and let my mind wander. And where it tends to go is to the observation that there’s lots of other words inside of STRIPE. STRIP is a word, TRIPE is a word, TRIP is a word, and RIPE is a word. There are valid words all up in this thing! And then I tend to think two very specific questions:

  • How many subsets of the word STRIPE are valid dictionary words?
  • What’s the English word which has the highest percentage of its subsets be valid dictionary words?

I’ve thought these questions far too often. And so in the interest of self-discovery, growth, and hopefully moving on to other useless things to think about, I decided to find some answers.

Flow puzzles v1

I’ve had a game idea bouncing around in the back of my head for a few years now. In fact, many of my goals in the past few years (i.e. watching more art films, learning to paint, and publishing a small game) have been in service of expanding my repertoire to be able to work on this larger meta project.

The game itself is structured as a puzzle-based adventure game, where solving puzzle challenges in effect unlock skills which can be used to advance the story. The puzzles themselves are supposed to be abstractions of programming challenges, but presented in a way so that non-programmers could complete them. I wanted to explore the space of manipulating a stream of data, rather than some kind of Turing complete programming environment like Shenzen I/O (which does that really, really well).

A short time ago, a member of my team at work showed me Rete.js, a framework for building node/graph editors in Javascript. This felt intuitively like how I wanted to construct puzzles, so in the spirit of some rapid prototyping, here are a couple demos working out the characteristics of this space.

Caesar Cipher

One of my favorite undergraduate courses was an optional elective on the topic of ciphers, starting with handwritten approaches and eventually moving on into mechanical and then digital cryptography. A few classes in the handwritten section started with the professor writing ciphertext on the board and inviting us to spend some time attempting to break it without knowledge of what the cipher actually was.

A while back I pledged to write a paper on a topic unrelated to my academic major for my Estonian fraternity. I never actually got around to doing this, but at the time of the pledge I had the ciphers course fresh in my head and thought it would more research would be interesting. So in the interest of actually making some progress on this, I thought writing a bit about handwritten ciphers here may be a good way to motivate myself. To ease into it, I’m starting with the most basic cipher I know of: the Caesar Cipher.

2017

I tried something new in 2017, which was to make a set of personal OKRs to fulfill throughout the year. OKRs (Objectives and Key Results) are typically used as a planning framework by companies (both Google and Twitter implement them) but I had never tried to structure personal goals in this way. I’m not sure it’s a general approach I’d recommend for anyone else, but I like the idea of taking a set of abstract goals and trying deconstruct them into measureable tasks.

I respect the effects of small adjustments to habits compounded over time. New Year resolutions have been effective ways for me to implement such changes. In 2014 I started making one-second-per-day videos (and have done so in 2014, 2015, and 2016 so far!). In 2015 I started regular Rosetta Stone lessons to learn Mandarin. In 2016 I tracked my weight and food every day with the intent of losing 30 lbs by the time my daughter was born. In 2017 I wanted to be healthier, happier, grow intellectually, and create things. I’m writing this as a postmortem on the process, and an accounting for how I think it went.

Reading List - 2017 Books

At the start of 2017 I, feeling a little unproductive, defined a set of goals which I’d try to achieve by the end of the year. It was around this time that I, feeling a little unhappy in my job, started looking at other places to work. While I was investigating the culture and history of Stripe (which I ultimately joined) one very common theme was how voracious of a reader its CEO Patrick was.

Reflecting on the meager list of books I’d completed in 2016, I realized that my own reading pace had dwindled over the years. Back when I commuted to Mountain View from SF, I generally had multiple hours per day to read. That became maybe 40 minutes each day when I started taking Muni to work downtown. When Twitter moved its office to within walking distance I basically stopped entirely, not making up in reading the time I was gaining from a shorter commute. I missed the depth I felt that I got from reading books and figured the best way to bring that back was to construct a goal of reading a specific quantity this year.

Elsewhere

Twitter (@kurrik) Github (kurrik) YouTube (kurrik) Linkedin (kurrik) Instagram (roomanna)

Tags

arne (11) reviews (11) work (8) twitter (7) games (7) chrome (7) cinemaclub (6) extensions (6) html (4) books (4) javascript (3) google (3) presentations (3) go (3) algorithms (3) ludumdare (3) internet (2) readinglist (2) estonia (2) appengine (2) management (1) space (1) http (1) product (1) recipes (1) ciphers (1) questions (1) art (1)