This computational research lab is reinventing computer programming

Image for post
Image for post

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.” …


Image for post
Image for post

1995

  • Write well-formatted HTML
  • Optimize images
  • FTP it to your web host
  • Email your friends about your cool new website

2019


Image for post
Image for post

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. …


How do the bits get onto the wires?

Image for post
Image for post
Various line coding schemes. Illustration by Siobhán K Cronin

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. …


Image for post
Image for post

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. …


Recognizing the human reasons your business failed is the only way to prevent it from happening again

Image for post
Image for post
Photo by Matt Botsford on Unsplash

I’ve noticed that Silicon Valley founders, when talking shop, love to dig into the reasons startups die:

  • “Shyp wasted too much time building something people didn’t want”
  • “Formspring lost touch with the product vision”
  • “KiOR made poor hiring decisions as it staffed up”

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:

  1. Print it out
  2. Find a quiet room
  3. Bring a pencil
  4. Leave all devices behind. Take off your smart watch. Fold up your laptop. Leave your phone at your desk. This is between you and the code.
  5. Sit there and read your code line by line. Mark it up as you go. …

Image for post
Image for post

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.” …


Image for post
Image for post

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. …


Image for post
Image for post
Photo by Tischbeinahe, CC-BY-SA

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. …

About

Carl Tashian

Lifelong software engineer, engineering leader, and writer based in San Francisco tashian.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store