Fork me on GitHub

A case for analytics

Finding your competition

You’re on a street corner. You’re bored. There’s nothing to do. Your mind begins to wander. People walk by, going about their business, while you stand there.

And that’s when you have it. An idea.

Your idea.

It makes so much sense. This could actually work! I would love this! Why isn’t it out there already?

You talk to people. Just a few people at first: your friends, your family, your nanny. They’re not sure what you’re talking about, but they’re happy you’re happy.

You talk to more people. Your professional peers, your mentors. They get excited. Why isn’t this out there already? This could actually work! I would love this! (high fives)

Over some months you keep talking about it. You sit on it, you talk about it some more. More people get excited. And eventually you act. You pare down your consulting business to make time for development. You apply for a local accelerator. You get in.

Oh shit.

Someone else wants you to develop this idea and is putting valuable resources behind it. So you do it. You buckle down and build. You learn the technology. You find yourself awake at 4am thinking about your idea and figure you might as well code. Come 11pm your eyes feel like golf balls, but you press on.

Weeks pass. You’re making good progress. You’re meeting new mentors and having great conversations. Your product and your roadmap are developing by the day. That ember of excitement is glowing brighter… and that’s when you find it.

Your competition.

An email comes in from one of your mentors. “Seen this?” You link through to the blog post, confident you’ll be able to pick it apart, as you have every other app you’ve been tipped to. You read.

Oh no.

You read on.

Maybe their UI sucks. Maybe they have a different focus. Maybe they use a hamburger button.

You install the app. Their UI is clean. Their UI is sexy. They’re focusing on the same user. They do use a hamburger button, but that doesn’t seem to cheer you up.

Take a breath.
You’ve just met your competition.

Forget all of those other apps people have been sending you. They play on the margins of your idea, but these people just built your idea. This is your competition.

You stare at the wall. You send some profanity-laced emails to your friends. You send some slightly more upbeat emails to your mentors.

You stare.
At the wall.

Unable to come up with a clever, clear differentiator you settle on the solution that’s been sitting there quietly all along, biding its time. The solution you were too scared to pick up, but have to now. A tack your grandfather-in-law would have been proud of:

Your shit is just going to have to be better than their shit.

You take a cold shower and you get back to work.

I spoke about Assetic at DrupalCon in Austin last week. I get into my plans for Assetic 2.0 toward the end. (slides)

Here’s the talk I gave last month in Poland: “How Kris Writes Symfony Apps.” Enjoy!

SymfonyCon: Come and Gone

My trip to Poland last week was a real treat. I enjoyed seeing everyone I so rarely get to see in person and enjoyed meeting many, many new people. It was also nice to see so many new faces presenting on interesting, innovative topics. I was honored that so many people came to hear me speak about how I write Symfony apps, and was especially honored to receive the “best Symfony speaker” award from the community.

I was not able to organize a discussion on the future of Assetic in Poland, but I hope to post here about my thoughts in the near future.

I am thankful and grateful to be a member of such a functional OSS community. The future is looking up!

Little Hands, Big Work

Many school fundraisers are discordant with the mission of the school for which they raise funds. Selling chocolate bars, wrapping paper, cheap jewelry, scrip… I challenge you to relate these activities to your school’s educational philosophy, let alone to the broader mission of teaching children. Look at your fundraising activities as a part of your school’s curriculum and consider: what exactly do they teach? Do we mean to teach our children that there is value in selling chincy things to people who don’t even want them?

At my children’s preschool, Whole Child Montessori Center (full disclosure: I currently chair the Board of Trustees), we do things differently. We run one and only one fundraiser each year, and it is an activity we can all be proud of. For a few years now, the families of Whole Child have gathered on a weekend in October at a local watershed a few blocks from the school to help restore it to its natural splendor. Parents work alongside children to remove invasive species and replace them with plants native to the region. We teach our children responsible stewardship of the environment in the most effective way: by example.

For the weeks leading up to Little Hands, Big Work, families collect donations from their communities of family and friends who want to pledge support for our school and for this activity. The money we raise does not go toward standard operating expenses—we cover those with tuition. Instead, these funds go toward financial aid for the next year, with a small portion set aside for the school’s emergency fund. This is also inline with the philosophy of the school. We are not raising funds to stay afloat, we are raising fund to help make the school affordable for more families.

tl;dr: This fundraiser…

  • brings families together in meaningful activity
  • endows in children a sense of stewardship for the environment
  • helps make our school affordable for more families

If you want to support this type of fundraising and this preschool, please donate $5, $10, $20, $50, $100—whatever you can comfortably afford—by clicking the yellow “donate” button below. Thank you!

Donation button

Video of the tech-talk Love & Loss: A Symfony Security Play I gave earlier this summer is finally up on YouTube. I was rrreally nervous people would think we were wasting their time with the performance aspect of the talk, but it went well. The audience seemed to pay better attention (fewer heads buried in laptops), and I got feedback that the concepts we presented were clearly.

Props to Nathan and Leon for stepping up to the plate and going where no improv has gone before.

Today would have been my 8th wedding anniversary, and all I feel is anger. When I think about that beautiful day 8 years ago, how happy I was, looking forward to the rest of my life… I feel rage.

This evening, after sunset, I took it out on the ocean. It was cold and the waves were strong, but I went through them and dove over them. I hit them, with two fists clenched together and my arms straight, like a batter denying the catcher his ball. I shouted: No! I don’t know why, but I shouted. I screamed at the ocean. I cursed God. I dared him to bring more. Then I turned my back and returned to shore… turned to the ocean… and with a battle cry attacked again. Running, straight into the waves, knocking them down as they tried to do the same to me but failed. Out into the ocean I screamed, parting the waves with my fury. I turned my back once more and let the water overcome me.

From below the tide I rose and in defiance returned to the shore, daring the ocean to follow.

The I Love My Wife Club

I gave this toast at my brother’s wedding and also at my best friend’s wedding a couple of years ago. Franya was alive and in cancer treatment at the time.

I greet you as a brother amongst those of us who can say these four most beautiful words: “I love my wife.”

I hope these words can be a mantra in your life: breathe them in when you start your day, breathe them out as you climb into bed together at night.

Use them as a touchstone when making difficult decisions.

I love my wife.

Build your community around these words.

I love my wife.

Build your family around them.

When you have children, love them too, but remember: the greatest gift a father can give his children is to love and nurture their mother unconditionally and with abandon.

Here’s to the newest member of the I love my wife club.

root: my new texting friend

I’m monitoring a long-running command at OpenSky this weekend which has a tendency to die from time to time for various reasons (seg faults, lost cursors, you name it). I cooked up this little diddy to keep my sanity:

$ ssh server
$ screen
$ cd /path/to/project
$ ./app/console my-command; echo $? | mail
# press ^a ^d to detach the screen
$ exit

This way my good friend root will send me a text message when it’s time to restart the command and I can focus on more important things.

Happy Sunday!