![]() |
VOOZH | about |
actor, programmer, dad
It’s been a long time since I was in front of an audience! 😬
Goodness gracious there were a lot of people at SymfonyCon Paris this year. Over 1,000 of us?! It was a real honor to meet so many Symfony users and to present my latest talk, Matters of State.
Please post feedback for my talk on joind.in or comment below. If you want to see some of my other talks, please visit my Talks page. See you in Berlin next year!
Disclaimer: I’ve only been using React and Flux for a few weeks. Please pay special attention to comments from people smarter than me, or add a comment if you think that describes you.
Thou shalt not dispatch safe view actions.
A view action is synonymous with an unsafe HTTP request. If a user creates, updates, or deletes an object in your application, they have changed the application state and an action should be dispatched to reflect that. If you are creating an action to load data from the server, you are doing it wrong; simply ask your store for what you need. This works because of commandment number 2…
Thy store shalt lazily fetch data.
If a component accesses data from a store that the store has not fetched from the server, the store should respond immediately with whatever it does have and fire off an AJAX request to get the rest. When the response comes in, process it into the store and emit a change. This works because of commandment number 3…
Thy component shalt not access data from a store without first adding a change listener.
If a component requests data from a store, it follows that said component will want to know when that data goes stale. In order to ensure this, the listener must be added before the data is requested.
An example is worth a thousand words…
A case for analytics
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.
Stop.
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.
More.
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.
Here’s the talk I gave last month in Poland: “How Kris Writes Symfony Apps.” Enjoy!
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!
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…
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!
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.