Read-Optimized and Ready to Make Dinner

Adam Krieger, Tue 20 October 2015, Reflections


I'm proud to admit that my love of software has lead to a better understanding of the world in general. Life can be very chaotic, so abstracting parts of it can lead to a kind of peace. However, I find that my habits of cleaning can lead to tension. Sometimes I'll leave clothes piled up and unsorted until laundry day, but I'm very protective of my kitchen's organization. What does software have to say about that?

People Can't be Generalized

Pop culture seems to like us to believe that people are either clean or dirty, messy or tidy, and dare I say it, better or worse. The reality is that we're all just different. I'd like to think that I'm not worse at dealing with dirty laundry and better at dealing with kitchen tools. I'd also like to have some information to back that up so that I can stop second-guessing myself.

Cooking is awesome. It's a vicious collision of creativity and science, not unlike programming. Caramelization is really interesting. I like to think of it as 'burning the sugars until right before they tastes bad'. Anyway, I usually like challenging myself with recipes that seem to require a learned agility and comfortable speed. This kind of speed just isn't possible without everything in its expected place.

The Computer Science Bit

I came to the realization that I prefer the kitchen to be 'read optimized'. Programmers have to make a decision whenever they have to make use of data. A program can be write optimized and store the data quickly, or read optimized and recall the data quickly.

Take a phone book for example. Not the big yellow one that probably doesn't get delivered to your door anymore, but a little black one where you write the numbers of people you'd like to... to see again.

Fine. No one uses that one anymore either. If we did, though, and we had a number to write down, the fastest way to do it is to find the first blank space and start writing. Do that for a bunch of numbers and it'll start to get harder to find the one we want when we need it. That requires a searching algorithm.

What if we sorted the numbers so that they'd be really easy to look up even if we had hundreds of them? We'd instead need a sorting algorithm. 'Chomsky, Noam' would find his way in between 'Charon, The Moon' and 'Cicero, Marcus Tullius', but only by flipping through the 'C' pages, and then into the 'Ch' to 'Ci' pages. That takes time. Noam probably doesn't want to give us his number anymore.

But we're prepared if we ever need a Roman philosopher in a pinch.

The time it takes to find something, whether it be the place that the data should go, or the place that the data is, cannot go away. Even being aware of that fact doesn't make it go away, but it does enable us to make better decisions about how to organize it.

Back to My Kitchen

As I've said, I like to cook. I especially like to cook when the counter is clean and I know where all the tools are. The knives are in the right slots, pans are stacked on pans, pots on pots like little Matryoshkas. That's my Aeroplane. It takes extra work up front to clean and sort all the pieces ahead of time, but it's worth it.

I really, really like cooking when all the ingredients are all pre-diced in those little prep bowls. I'm possibly a little weird, but I can admit that. Unsorted piles are for laundry day.


Adam Krieger