As a mom, I have found I need to get to know my kid anew every year. When my kid was little, there was a dramatic shift in which games were fun and what was interesting to talk about. I had to reset my expectations regularly and be open to learning who he was and how he wanted me to interact with him. Most of the time, it didn’t actually seem to me that he was really changing, so much as simply becoming more of who he was.

I came to realize that this technique of being open to learning who someone is, even when, especially when, you have known them for a long time, is pretty effective with adults too. We meet someone and we know them for a few years and we think we really know them, but we only know one moment, one slice of their lives.

Most people who meet me think I’m naturally outgoing and that it is easy for me to talk to new people. In reality, people scare me. Half the time I have no idea what might be a good thing to say and afterwards I’m sure the things I said were terribly stupid, annoying or simply boring. However, I’ve come to believe that this interaction between us humans isn’t actually about me or even about you, it’s about creating some new, interesting thing in the space between us. It’s a service to put something out there. It’s selfish not to. It’s fleeting in reality, so as much as it feels like I’m vulnerable, it’s actually pretty low risk.

I practice being open to who someone is right now. What will I discover that is different right now from my preconceptions based on this other person I’ve known for a week or a month or a year. And when I’m lucky and good, I learn something new, and sometimes I get to be that person who isn’t the same person I was last year, or who you thought I was.

After getting started with the basic syntax and some frequently used functions, I needed to learn to write some code.

I enjoyed this nice intro to functions.

myfunction <- function(arg1, arg2, ... ) {

We can put functions (or any code) in a text file and load it from the R command line:


where mycode.R is in the same directory as where I’m running R or a full path to the script.

But then I got stuck in how to transform my data table. As much as I wanted to iterate using loops, I felt that was a very un-R-like solution. I found some good patterns in @xieyihui‘s gory loops post.

If you need to make a string, you can use paste like Ruby’s join method:

> words  words
[1] "one"   "two"   "three"

> paste(words)
[1] "one"   "two"   "three"

> paste(words, collapse="")
[1] "onetwothree"

> paste(words, collapse=",")
[1] "one,two,three"

> paste(words, collapse=", ")
[1] "one, two, three"

I know I’m lucky, but I also know that my experience is not uncommon. The fact that I love the work is a subject for another post. Another thing I love about working in tech is the culture. There’s a spirit of fun, a widespread belief that joy fuels creativity, and a dedication to creating arbitrary entertaining activities that make life sparkle just for a moment.

Today, I stopped at the grocery story on the way home to get chicken for soup, since I’ve got this terrible cold. And on top of everything else, I’m confronted with Easter… Long gone are my easter bunny days. I decide that I will get a chocolate bunny and some butterfinger eggs, hoping that perhaps my child who is now a young man might enjoy it or at least feel happy that mom remembered to get him something even though he’s not really into celebrating these kinds of things anymore. Then, I see the sidewalk chalk and I remember yesteryear…

I put the chalk in my basket and I wonder… who do I know with kids who might enjoy this?

Maybe I will send it away in a package to my friend who has a toddler.

I look for yogurt and chicken.


In geek speak, s/home/to work/ means substitute “home” with “to work” and I start to imagine chalk drawings in front of the Federal Office Building at civic center in downtown San Francisco. Would Sasha join me in some scene from Mary Poppins drawing landscapes for the passersby and security guards to admire?

I’m quite confident that my art skills measure up to those of a toddler, but can I rise to the challenge of grown-up art?


This I can do.

I love these people. Nothing in this interaction requires us to all be software makers, but we are. I love that this kind of thing is not uncommon. It’s a thing. A thing my mom won’t ever really understand. I remember this guy at Macromedia who decided to work on our web team since they were cool with him taking off one day a week to go surfing. He turned down some big company job where he would have had to work 9-to-5 in button-up shirt. His dad thought he was crazy. I thought that was a perfectly sensible life decision.

Somehow this spirit of fun got confused by some Silicon Valley startup novices who think that somehow ping-pong skills are a pre-requisite for software engineering talent. They miss the point. The point is to figure out what is fun for the people you have and do that stuff. Or just to have fun, not insisting that your version of fun has to be everyone else’s version of fun.

I remember when we all used to learn how to juggle at WWDC and then we would practice juggling while waiting for a 45 minute compile — really, that was a thing. And when I say “we all” it was probably just three of us on a team of 20. We each had come from different companies, but we all wrote Mac software and juggling was one of the WWDC activities. We didn’t make people feel like they didn’t fit in if they didn’t know how to juggle. It was just a silly thing we did, to pass the time, to declare publicly that fun is part of the work.