Aren't they just great?
Man and the Myth
When we consider, however, instead of the physical, the psychological character of our species, the most evident distinguishing sign is man’s organization of his life according primarily to mythic, and only secondarily economic, aims and laws. Food and drink, reproduction and nest-building, it is true, play formidable roles in the lives no less of men than of chimpanzees. But what of the economics of the Pyramids, the cathedrals of the Middle Ages, Hindus starving to death with edible cattle strolling all around them, or the history of Israel, from the time of Saul to right now? If a differentiating feature is to be named, separating human from animal psychology, it is surely this of the subordination in the human sphere of even economics to mythology. And if one should ask why or how any such unsubstantial impulsion ever should have become dominant in the ordering of physical life, the answer is that, in this wonderful human brain of ours there has dawned a realization unknown to the other primates. It is that of the individual, conscious of himself as such, and aware that he, and all that he cares for, will one day die.
Myths to Live By — Joseph Campbell
Came across this passage tonight. This strikes me as being right.
A Sunday Story
This morning, we decided to bike to brunch somewhere. After a relaxing ride through Golden Gate Park—where the streets are closed as usual on Sundays—we first stopped by Outerlands but, as usual, the line was around the block. We wanted to eat a bit earlier than the wait would have allowed so we moved on to the Beach Chalet.
After a slow breakfast with good conversation, we took a walk along Ocean Beach, where the fog had started to move in. Surfers in their wetsuits were out with their boards in front of an under-construction building on the beach, which I imagine will be hosting the RipCurl Pro Search contest next week.
On the ride back through the park, we stopped at the food trucks to visit a couple of Meghan’s friends who run the Twirl and Dip ice cream truck. Meghan had a popsicle, and as I was still full from breakfast, I simply accepted a plastic spider ring.
The rest of the afternoon was spent writing and half-heartedly watching NFL on TV, with Meghan fixing a pie for Bogan, ordering Chinese takeout, and mentally preparing for the upcoming week.
Things Around My House
No matter how insignificant a photo seems at the time I took it, I've never regretted taking any of the ones that captured genuine moments.
It's these little moments that I'm not good at taking when I'm carrying my film camera. When I'm physically limited to a small number of shots, I'm more reluctant to take shots of “minor” things.
I upload all my photos to Flickr (obviously) and on Flickr, I suffer from multiple personalities.
There's me trying to be a more serious photographer, where the aesthetic often matters more than the subject matter. There's me also hanging out with my friends, trying to remember what we had for dinner, or what Meghan was wearing on a date night. For these, I care so much immensely more about what I'm taking a picture of instead of if all the “good” photography stuff applies. (If I was a better photographer, I might not have that problem and every photo turns out decent. But I'm not, so I do.)
Like many humans, vanity is one of my (many) character flaws. I want to be seen as intelligent and creative, and I can convince myself that I'd rather put my own memories in the backseat, so that I can be seen as a decent photographer, and thus, only upload the 4 or 5 decent shots from a roll of a film that I took several weeks or months ago.
And I realize that I've been missing a lot. There's something magical about being at a party taking photos, and then waking up the next morning to comments, faves, and seeing the same scene from different point-of-view from your friends' cameras.
The bigger point I've missed is this: what's important at the moment of capture, from the point-of-view of the photographer, is not a great measure of what's important throughout the entire lifetime of the photo. Each photo is viewed through many prisms of different people's experiences and it's a stretch to think one knows that it won't be significant to someone (and probably yourself) later. I'd rather not miss out on the part of a story that one photo could be telling, especially when I don't know where the plot is heading.
So I've started using my iPhone and Instagram a lot, which brings me back to the title of the post. Yesterday morning, I went through and just took pictures of things around my house, insignificant things, things I wouldn't normally upload to Flickr. And you know what? It was fun. The Instagram filters put enough “smudge” on the photos, that they don't necessarily look like they came from a phone and most of the time, that's good enough for creating a visually compelling photo.
And I can still upload the nicer film shots. I still enjoy shots that are more artistically composed but it's a different kind of a pleasure given than the small snaps with my phone that I immediately upload.
Is this a fault of Flickr and other online photosharing sites to not embrace these multiple personalities? Possibly. More fine-grained sharing controls could be used, like Google+'s Circles, but, to me, those systems aren't fun. I hate compartmentalizing and labeling every aspect of my life, and while this can guarantee proper sharing controls, it sucks out all the organic, fuzzy fun like we have in the Real Life, that it is supposedly representing.
Morning Ritual
What's your morning ritual?
Here's mine:
My alarm is always set for 7. This means I wake up anytime between 6:00 and 7:30.
I instantly grab my iPhone to check email and read the Twitter updates from my SF friends from the night before and the updates from my East Coast pals. I make the decision that, yes, today will be the day I get into work early(-ish).
After a few minutes of reading feeds on the phone, I get out of bed, followed to the kitchen by two hungry cats. I dump food in their respective bowls, and refill their water containers scattered throughout the house.
I rinse out my French press that I usually forget to clean from the previous night's use and put the kettle on. While waiting for the water to boil, I browse CNN's headlines so I can feel like a somewhat-informed citizen.
Over the first of usually two cups of coffee, I'll log in to my server and check a few logs and few running processes, maybe write a few lines of maintenance code for my little projects, usually with one of the furballs in my lap. Second cup is brewed and drank.
Meghan is also up and moving at this point. She usually gets up after me and leaves before I do. We'll chat about our daily plans as well as the usual morning small talk.
By this point, I've been up for an hour and my goal to get in early is a dream unrealized.
I then hop in a scalding hot shower, afterwards going to the dryer for a t-shirt.
By this point, I'm dressed and have usually fortified myself for the day coming. I walk through the house, collect my helmet, wallet, keys, phone, and work bag. I double-check that stoves and kettles are off, and doors and windows are locked.
Then, I push my bike down the stairs, out the door and into the day.
My New Rule for RSS
A couple of months ago, I realized that I spent way too many spare moments in front of my computer screen, trying to get my Google Reader unread count to zero.
Then, I realized that when I did get to it to zero, I got agitated. I had beaten the game, killed the end-boss, and now I wanted to play again.
So I was bothered when it wasn’t zero, and I was bothered when it was zero, and this wasn’t good.
So I declared bankruptcy and started over on the whole thing, unsubscribing from everything. (After carefully backing it up of course. Every feed is sacred, or something like that.)
I added back the blogs of a few close friends, and instead of the 20 or so music blogs subscribed to one good aggregator. I debated resubscribing to some of the big tech blogs, but I figured my daily visit(s) to Hacker News and simply talking with my friends and coworkers would get the important stuff in front of me.
So now that I’m slowly adding back blogs I truly find useful and give me more than they take (in time, in attention), I stumbled across a good rule for my RSS reader: if I have to start adding tags or folders to keep my feeds organized, I have too many.
I just added a new RSS feed and started to tag it, you know, to keep my addiction organized. I then stepped back and realized that the reason I was tagging it was so that I wouldn’t feel crushed by seeing so many unread blogs in my reader.
These folders masked the issue. It was similar to what a kid does when he doesn’t want to finish his vegetables so he spread them around on his plate to make it look like he ate more than he actually did.
So since I’ve declared bankruptcy on my RSS reader and did the major housecleaning, I feel calmer when I’m front of my computer, and less like I need to keep hitting the lever for the next fix.
A Monday Night Date
The Summer of Radiators and Incidental Complexity
During the summer between high school and college, a very important summer in most people’s lives, I worked as a radiator mechanic.
The guys I hung out with in high school talked mostly about two things: girls and cars, and the latter was the only thing they could speak of from any experience. Me? I knew nothing about girls and even less about cars.
At the start of the summer, I worked at a lumber yard, but when they cut hours down to just a handful a week for the summer crew, my uncle offered me a job to help out at his radiator shop and as a kid that needed gas money, I accepted, even though I didn’t know the difference between a radiator cap and a hole in the wall.
There were three of us in the shop: my uncle Wayne, Terry, and me. Terry told me that God helped him find the money to buy the red 1969 Gran Torino he drove to work every day. With a car that nice, I believed him.
Every customer’s issue was a puzzle and I loved solving these puzzles.
People would come in with a complaint, usually that their car was running too hot or too cold.
From these high-level complaints, we’d start digging down, armed with the knowledge of how the fluid, heat, and metal played off each other.
Car running too hot? Make sure there was enough fluid. If the coolant looked ugly brown instead of neon green, there was probably chemical build-up in the radiator core. If the fluid looked okay, the thermostat was probably busted since it wasn’t opening up and letting the hot water into the radiator to cool.
That’s how every job worked. If this, then that. Just like the machines themselves, diagnosing them became mechanical.
The heating-and-cooling system of every car is basically the same. They all have radiators, thermostats, water pumps, and heater cores. A fresh-off-the-lot Honda’s radiator works the same way as the radiator in a 50-year old Chevy truck.
Everything else around this simple system has changed, though.
Someone would bring in a newer-model Honda Civic and want their heater core replaced. (The heater core is a mini-radiator that sits behind your dashboard that blows hot air when you turn the heat on.) We would quote a full day’s labor to do this. This same job on any vehicle before the 1980s would be more in the range of an hour’s worth of work.
Honda Civics were built to be small, light, safe, and environmentally friendly. These are all good things but the complexity these new features added made the other simpler systems more expensive to maintain.
In this case, since these things were built so compactly, you’d have to remove the entire dashboard of the car, including rolling up the carpet and removing pieces of the door, keeping track of dozens of little screws, panels, and trim pieces, just to get to the heater core.
In older trucks, built with neither weight nor size considerations, the heater core was usually behind a little panel under the passenger side dashboard that involved removing four screws, popping the heater core out, putting the new one in, and then replacing the panel. Easy.
Some of the jobs on newer cars would actually be a significant portion of the total value of the car. If it costs you several hundred dollars to replace a fifty dollar part on a car that’s only worth a couple thousand dollars, people often decide that’s it’s just cheaper in the long run to just buy a whole new car.
Even though the basic concept of moving water through an engine to control temperature has held across a 100 years of automobiles, cars in the past 15 years have made working these jobs longer, more cumbersome, and thus more expensive.
Like a lot of pieces of modern culture, things seem to be built to be replaced, and not to fix. Some people may attribute this to our “throw-away culture”, but I think that it’s more of a symptom, and not the cause.
In the cause of advancement, we’ve built things that are cheaper to replace than to fix.
This relates perfectly to building large software systems.
You often hear tales of the Big Rewrite: when a group decides that in order for a piece of software to be improved, it needs to be rewritten from scratch.
Their problems don’t exist at the component level. Writing to a database probably works fine. Displaying a web page probably works fine. Uploading a photo and storing it away probably works fine. But when these things need to exist alongside one another, software people tend to make them unnecessarily depend on each other.
And when things are tightly coupled, you can’t change one without affecting other seemingly unrelated things, and not without great cost.
Complexity of one system affects complexity of the overall system in often unforeseen ways and most complex systems are made up of simple, but overlapping, systems.
I’m sometimes nostalgic for when I was debugging and fixing a physical machine, since dealing with concrete matter made thinking through these complex systems easier.
But when you’re dealing with such an abstract thing as code, it’s easy to write yourself in a corner, where you sometimes have to remove the whole dashboard just to replace a cheap part.
Instagram on Flickr
About 5.5 million public Instagram photos on Flickr.
The Fear
I wrestled in high school. Our team was good, even winning a state championship one year, and our team was filled with several highly-ranked wrestlers.
By my second year of high school, I was a good wrestler. I'd go up against these ranked wrestlers every day in practice and at first I held my own, then I occasionally beat them, and by the end of the season, I'd win almost every time. My coach made me wrestle heavier guys in practice to challenge me, and I got to a point where I wasn't getting scored on.
Once, I had an Olympic medalist at a camp use me as an example of how to do several moves. Of the hundreds of matches wrestled at another camp, I recorded the fastest pin. My coach told my dad that he would be surprised if I didn't win at least two state championships before I graduated.
In practice, I was dominant.
That year, in official matches, my record was 7 wins to 27 losses. I lost and lost often and it usually wasn't close.
At the same time, my teammates that I beat consistently in practice were all on big win streaks, winning medals, and qualifying for the state tournament, while I was lucky to win at all.
Through the rest of high school, I won more than I lost in official matches, though not by much, but in practice I became even more dominant, routinely beating everyone.
The difference was, before real matches, my analytical brain would think of every single tangential thing that had nothing do with the physical act of wrestling. I would think about my opponent's record, how many points my team needed from me, and my past failures. During practice, when there was nothing to lose, the only thing that mattered was the wrestling.
When it counted, it was no wonder that I lost. I would psych myself out with pessimism and by the time I actually stepped out on to the mat, I was in a full-on nervous breakdown.
Looking back, I realize that I would have been fertile ground for even the most basic of sports psychology. When it didn't count, I was a world-beater. Turn on a clock and throw in a referee and I became a completely different athlete.
Going ahead about a dozen years, I'm working at Flickr and a big piece of our developer culture is something called the Fear. This Fear is that fluttery feeling you get in your gut when you're about to deploy one of the world's most-loved websites and your changes could Mess Things Up.
The Fear comes from not having much of a cover-your-ass process. Developers get hired with the ideal that they are their own steward of quality. They can deploy code whenever they like, as often as they like, with little fanfare and with this privilege comes the trust that you're not going to mess up (or at least not too bad, or too often).
I've worked with developers that don't seem to have much in the way of the Fear, or at least didn't show it. When I first started at Flickr, I was in the opposite camp. I had to force myself to deploy “big” things. I would get that familiar feeling that I used to get on the wrestling mat, paralyzed by analyzing every possible way things could go wrong.
On my desk, I have a print-out of the quote, “What would you do if you weren't afraid of failure?” Turns out, quite a bit.
Having the hindsight of a failed high-school sports career with a healthy respect of my own limits, I've (mostly) worked through this by embracing a few core tenets.
The first is knowing that people mess up. I mess up. Constantly comparing myself against some invisible measuring stick of perfection is a surefire way to cause disappointment because, surprise, perfection doesn't exist in the real world. Good enough does and going after that is, well, good enough.
Another thing is knowing that I can only do my best. When I write code, past history shows that it usually turns out working fine. I take this as my best has been good enough in the past and it will probably be okay this time too. I have to remind myself of that.
The biggest mental adjustment I've made is just trying to remove the emotion of fear from the deploy itself by approaching it analytically. I ask myself, basically, “Is this code good for deploy? Has it been tested? Does it work for you and the test cases you thought of?” If I can answer in the affirmative, I override my animal instinct that is beholden to the Fear, the one that is throwing out nothing but pessimistic what-ifs, and hit the button.
In the end, the only thing that matters is the code, and not any squishy human emotions that my own neurosis attaches to it. If the code works, I ship it.
If I had this same mantra when I was a wrestler, by just getting out there and doing nothing but focus on the physical act, I could have been a contender. But now, every day, I get to redeem myself bit by bit.
Photos: