Fork me on GitHub

Kris Wallsmith

Lead Architect & Symfony Guru at opensky.com.
Discussing web development, Symfony, fatherhood, and viduity.

Mar 3

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 8885551212@txt.att.net
# 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!


Feb 26

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


Oct 11
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.


Oct 6

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.


Oct 4

Oct 2

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.


Sep 18

untangling

Calm breaths.
Slow breathing.
A second between breaths.
Each inhale evokes a gripping anxiety that fades like a cymbal crash, just in time for the next.
Many seconds between breaths.
Breaths that only vaguely resemble breathing.
Her last inhales phone in the futile motions of keeping her body alive.
Not the muscles of her abdomen pulling air in,
the muscles of her throat.
Ineffectual echoes as her spirit departs.
Then no more.
No more breaths.
Eyes closed, body still, spirit unmeshed and embarking.
Born again into whatever’s next.
Watching us left behind: breathing.
Searching for how to heal this gaping hole left in our world.


Aug 26

Helping Kris and his family

Hi everyone, my name is Jon Wage. I am a friend of Kris and we have worked together for several years in the open source world and we are co-workers at OpenSky. I am posting this on behalf of Kris and his family to help them get through a difficult time.

I’ve put together a donate page with more information about the situation and how you can help. Franya has acute liver failure and they’ve now moved her to hospice. Please if you can send Kris some support via twitter @kriswallsmith it is much appreciated. If you can afford to donate some money towards the family you can do so on indiegogo.


Aug 8

Jul 25

Get Fast: An easy Symfony2 / PHPUnit optimization

Your Symfony2 application’s suite of functional tests probably runs with debug mode switched on, as this is the default behavior. Because of this, Symfony2 will check for changes to any of the resources that configure the service container every time you create a new kernel. If you have a decent number of functional tests, you probably create many, many kernels during the course of running your test suite.

It makes sense to check all of these resources for modification the first time, but checking for modification on subsequent kernels is a waste of precious time!

I recently added this little diddy to OpenSky’s kernel:

class AppKernel extends Kernel
{
    // ...

    protected function initializeContainer()
    {
        static $first = true;

        if ('test' !== $this->getEnvironment()) {
            parent::initializeContainer();
            return;
        }

        $debug = $this->debug;

        if (!$first) {
            // disable debug mode on all but the first initialization
            $this->debug = false;
        }

        // will not work with --process-isolation
        $first = false;

        try {
            parent::initializeContainer();
        } catch (\Exception $e) {
            $this->debug = $debug;
            throw $e;
        }

        $this->debug = $debug;
    }
}

This optimization alone cut the time it takes to run our functional tests in half.


Page 1 of 8