It's been a long time since I was in front of an audience! 😬

oozey mess

@theartofmadeline

Origami Around
Claire Keane

Discoholic 🪩
Mike Driver

祝日 / Permanent Vacation
Monterey Bay Aquarium
Sweet Seals For You, Always

Love Begins
One Nice Bug Per Day

JVL

#extradirty
Three Goblin Art
Misplaced Lens Cap
Not today Justin
d e v o n

No title available

izzy's playlists!

JBB: An Artblog!
seen from United States
seen from United States
seen from Germany

seen from United States

seen from United States

seen from United States
seen from Netherlands

seen from Brazil

seen from Germany

seen from United Kingdom
seen from Netherlands
seen from Saudi Arabia
seen from United States
seen from United States
seen from United States
seen from United States

seen from United States

seen from United Kingdom

seen from Sweden
seen from United States
@kriswallsmith
It's been a long time since I was in front of an audience! 😬
Wow, such SymfonyCon
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!
Three ReactJS + Flux commandments
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
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.
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!
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!
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 [email protected] # 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!
Marking Time: Six Months
Today marks six months since Franya passed. We are now on the opposite side of the sun as we were on that day. The physical distance from there to here is two “astronomical units” — one astronomical unit being the distance from the earth to the sun. Six months from now we will return to that far side of the sun: zero astronomical units from where we were on August 26, 2012. A year will have passed and we will be back where we started.
I find comfort in this cyclical nature of time. The assurance that we will eventually return to where we started engenders patience. For all of our great efforts in one direction or another, our planet will return to this point in space one year from now. No matter what we suffer, we will one day return home. From this steady orbit I try to find patience for a slower pace. A sort of patience that grows from love: patience with others and with oneself is an act of love.
I have returned to this idea of patience-as-love many times over the past six months. I try to be patient with myself — not judging my grief — and patient with others, especially the children. We all struggle with this loss. Each day I realize more deeply what great fortune it was to have Franya as my wife and the mother of my children. The children cry, play, act out, bottle up… they move swiftly through the full spectrum of emotions and behaviors as they work through their grief. I try to be patient, give them love, steadiness, what little guidance I can offer, and try to surround them with a supportive, loving village. This process is not easy, but I try to have patience.
Over the past six months I have also become familiar with the ways Franya’s spirit is still with us. The sensation of warmth I feel during happy times, the firm support I can reach for during moments of stress. Knowing she is here in spirit helps me appreciate those things that make being here in the flesh so special: the feeling of Sonja’s soft cheek against mine, helping Max build his Lego set, a father-daughter trip to the sushi restaurant with Sadie. It is so special to be alive.
Our lovely planet is now arcing back toward the far side of the sun. That point in space is approaching and that point in time is ticking closer. I treasure being on this cycle of space and time alongside you all: my friends and family. I also treasure the company of those who have passed and now live timelessly in spirit, but alongside us nonetheless.
I hope this note finds you all well.
In love and light, Kris
These are the remarks I made at Lewis & Clark College's memorial for Franya on September 30, 2012.
Franya last taught here two years ago in the fall of 2010. You may remember her walking around rather pregnant toward the end of the semester. She gave birth to our youngest, Sonja, in December of that year. It was important to her that she give birth, the pressures of junior faculty having passed, and simply “be a mom” as she put it. Franya received tenure while on maternity leave that spring but never taught as an associate professor. She also received a diagnosis of stage four metastatic breast cancer that summer, rendering her remaining time with her family and children anything but simple.
I remember watching an episode of Oregon Art Beat with Franya about a man who was diagnosed with cancer, quit his job, and became a composer. I’m pretty sure I fell asleep, but Franya found this story very inspiring and began producing some of the music she had been quietly composing in her head over the past ten years. We are going to hear two of these songs this afternoon. One performed live and the other recorded with the assistance of Randy Porter, featuring Franya’s vocals.
One of my common refrains to Franya over this past year was that none of us know when we’re going to go. We knew she had cancer, of course, but she didn’t know when she was going to go any more than the rest of us know when we’re going to go. Now I have the same message for everyone here today: none of us know when we’re going to go.
So, as you listen to this music I invite you to check in with what, perhaps, has been rattling around in your head these past ten years and evaluate, from this perspective, why.
Franya was taken from us much too soon. We can only imagine what gifts she had yet to give to her family and to the world. But if we all take some time to consider what gifts we have yet to give it will give Franya’s untimely death some meaning.
Thank you.
A Framework for Grieving
I’m a framework guy, as many of you know. For those not familiar with the term, we use it in the world of software development to describe pre-existing code you can leverage in a project of you own in hopes of making your job easier. A good framework can be like graph paper when you’re drawing a map: you could draw a map on a blank sheet of paper, but your lines would probably drift and points may not line up as they should. Using a sheet of graph paper helps enforce straight lines and proper proportions. Similarly, a good software framework should help enforce, or make readily apparent, a proper way of doing things.
In the past few months I have faced tremendous challenges. Challenges I pray none of you reading this will ever face (in fact, I hope this is the most useless blog post you will ever read). My wife passed away in August at the age of 43, having fought metastatic breast cancer for over a year. Please scroll through our CaringBridge journal if you’d like to replay that. What I’d like to dissect now is the framework which has evolved in my mind while dealing with the grief of losing my wife and the mother of my three young children.
Our Worldly Business
Franya, my wife, has left the body which her spirit inhabited for the past 43 years. She has returned to spirit, and thus, in a sense, is no longer Franya. Or more precisely, she is still Franya but now so much more. As I tweeted from her hospice room after talking her through this transition: she has passed, but her journey continues. She is no longer here in the bodily form we knew. We are still here, of course: spirits still in bodies. These two points set up the basic framework that has helped me organize my thoughts and feelings during this process: she has begun a new journey, we are still here.
Let me break it down. Those of us left behind in this world have a humongous loss to come to terms with. A person who was here is no longer. How the f**k do we deal with that truth? I want her back—I want my kids to grow up with their mom—but that will not happen. Death, this most natural of things, feels entirely unnatural, and we, as humans in this world, are left that burden. Some of us deal with this alone, some of us deal with it together, but we all must deal. This is the business of us still in the world, spirits in bodies dealing with the imperfections of this existence: eating when we are hungry, sleeping when we are tired, grieving during times of loss.
The point here is that us dealing with this loss here in our world has very little to do with who Franya is right now, having transitioned out of her body. It has to do with us doing the work to heal the gaping wound left in our lives by Franya’s departure.
Gifts for Franya
On the other hand, there are things we can do here in this world that will reach and affect Franya. According to Swami Sivananda (the guru in my lineage as a yoga teacher) in his 1964 book Bliss Divine:
When the departed souls are sinking peacefully and when they are ready to have a glorious awakening in heaven, they are aroused into vivid remembrance of the mundane life by weeping and wailing of their friends and relatives. The thoughts of the mourning people produce similar vibrations in their minds and bring about acute pain and discomfort. And the uncontrolled grief of their relatives drags them down from their astral planes. This may seriously retard them on their way to the heaven-world. This produces serious injury to them.
While I have questions about this passage (What is uncontrolled grief? How can weeping be a bad thing?), it does indicate that the thoughts and feelings we experience in the “mundane” world create ripples that reach up to the “astral planes.” If that is the case, then there is very clearly something we can do for Franya now—wherever, whatever, or whenever she is: we can celebrate. Sing, dance, feast, love… embrace the blessings of this existence. Raise her higher.
This is the graph paper on which I strive to come to terms with this loss. It is with these beacons that I navigate the ever-changing waters of grief. On the one hand, we have work to do in this world to cope with a tremendous loss, work that takes patience and an open mind. On the other hand there are still gifts we can give to Franya. By rejoicing in life and celebrating hers we can assist her in her journey onward to whatever is next.
In Practice
These two aspects of grieving were distilled for me on the day of Franya’s funeral. That morning we came together with family and friends to perform the ritual of burial. A ritual that, for me, is a very worldly practice: we returned Franya’s remains to the earth. We also sang, spoke, listened, stood in silence, and each said goodbye in our different ways. For those who want to say goodbye privately, there is now a sacred place where they can go to do so. I think Franya was watching that morning, but she was watching us doing our worldly work of mourning.
After that morning of ritual we all returned to our home where we had a plentiful feast prepared for everyone to eat and drink their fill. We had musicians, dancing, played Franya’s music, shared in conversation, children played, there was an open mic (to the chagrin of our neighbors), and in the evening walked to the park and howled at the full moon. In short, we partied our asses off in celebration of a beautiful woman we had all come to love. I like to think our celebration that night lightened her soul and freed her some from this world, so that her journey may continue.
Franya died so young and unexpectedly that many of us still feel strong attachments to her—attachments that keep her close. By finding joy and embracing the gifts of this existence and gently loosening these attachments, we demonstrate to Franya and ourselves that we are going to be okay. These were some of my words to her on that afternoon as I ran my fingers through her hair. There is so much love here. We are going to be okay.
I've started a new meme, except this one has guts. These are the images that will prompt women to get screened for breast cancer, not pictures of women hugging their silver-haired relatives. Please help me promote this in any way you know how. I know there are many more pics out there.
Global Community
I put out a call on Twitter the other day for people to add pins to this map if they have been thinking about Franya, me, and our children over the past couple of months. I’m blown away by the results. This is something we can all be proud of.
If you haven’t added your pin, please do so. I’ll show this map to my kids some day.