Walking into Dynamicland, a computational research lab and communal computer in Oakland, the first thing I notice is the array of projects spread out across several work tables and the kitchen countertop. 3D printed math sculptures, stuffed animals, kids toys disassembled for parts, and a MIDI keyboard connected to a Raspberry Pi. There’s enough art supplies to rival any Kindergarten classroom: markers and crayons, glue sticks, silly putty, felt tokens, pipe cleaners. Giant posters line the walls, with titles like “Annotation of the Celera Human Genome Assembly” and “Outline of the Discussion Leading to Maxwell’s Equations.” …
langand character encoding
There is a command in dog training called “Leave it.” It simply means, let go of whatever you’re focused on. Just let it go. In your mind, change the subject. The simplest application of “leave it” is when your dog is about to eat something you don’t want them to eat.
“Leave it” is meditation for dogs. Out on our morning walk, when my little dog Arlo (which happens to be my password, except I add “123” to it just to be super safe) sees a big aggressive-looking dog and starts to become scared, I use “leave it” to help him shift his attention back to the present. Back to the walk we’re on, the interesting smells everywhere. …
The IEEE specification for Ethernet is over 4,000 pages long. It gets into incredibly boring minutiae: design specifications for coaxial trunk cable connectors, compliance interconnect magnitude response curves, link aggregation TLV usage rules, etc. My goal here is to omit 99.9% of those details and go for the juicy 0.1% that are relevant to anyone who wants to have a mental model of networking. If you work on any sort of networked application, my hope is that a rough model will help you feel more comfortable with what is happening further downstack.
I love computer networking. It has loads of real-world cost/benefit tradeoffs, abstractions and designs that have stood the test of time and scale, funny workarounds that got layered on top, and a rich and fascinating history that spans computer science, electrical engineering, telecommunications, information theory, and physics. …
I want to talk about a practice of seeing called mundane photography. Mundane photography is meditative work with a camera.
There are billions of cameras on the planet. Having a camera is no longer a luxury for most people. True luxury is the ability to see.
Have you ever noticed how expensive things — a sumptuous hand-knotted Persian rug, a velvet Jacquard haute couture opera coat — don’t seem to be all that different from inexpensive things? They aren’t necessarily more comfortable. But, there is a difference: Expensive things tend to be more richly textured and ornately detailed. …
I’ve noticed that Silicon Valley founders, when talking shop, love to dig into the reasons startups die:
True facts, all of them! But the technical cause of death is usually a veneer. Behavioral, cultural, and interpersonal issues are among the biggest killers of startups, but they are seldom discussed in public. These issues are very personal. They are sometimes scary for founders to confront within themselves, and even scarier to confess to the world. …
Reading code is hard work—in some ways harder than writing it—so most of us have a tendency to avoid looking closely. There is a practice I learned about long ago called desk checking that seems to have gone out of favor in a world of incredibly sophisticated IDEs, but I believe it still has a lot of value.
To desk check your code:
Here’s the advice any ambitious person loves to hear:
“I get to the library and all set-up by around 5:30AM. I spend a few minutes in prayer and meditation, followed by a 5–10 minute session in my journal. The purpose of this journal session is get clarity and focus for my day.”
— productivity guru Benjamin P. Hardy
And here’s what we don’t want to hear:
“I don’t get up in the morning until I know exactly what I’m going to do. Sometimes, I stay in bed until about three in the afternoon, without any breakfast.” …
We used to have a book on the shelf called, “Love is Letting Go of Fear.”
I liked seeing the spine of it from across the room. That simple phrase sounded so wonderful and true. I may have even read the book once and understood it conceptually, but it did not actually help me let go of any fear.
I really had no idea what to do within myself to let go of fear.
So, I held on. I held onto so much fear, for so long, that I couldn’t even notice the scope of it within myself. …
Agile stories don’t tell us what to code; they are only examples. They offer small slices of the bigger abstractions that we’ll usually need.
Stories are tiny windows that we can peer through as we code. The simplicity of a story motivates and concentrates our creative effort. Their value is in boiling down the larger picture of the problem domain and what the customer really wants, in plain language. It’s up to the team to work out the larger abstractions over time.
Much as we would like every story to be perfectly self-contained, many abstractions are covered by several stories. Abstractions bleed into future stories that haven’t been written yet, that won’t be written for months. …