• New Heart, New Mind

    I used to believe I’d be remembered for my work.

    Not anymore.

    Life is about relationships with people, not bits. What’s valued is availability, truly caring for those around you, and expecting nothing in return.

    I’m being remembered for my love.

    When I was a child, I spoke like a child, I thought like a child, I reasoned like a child. When I became a man, I gave up childish ways.

    1 Corinthians 13:11 ESV

    A year ago, someone great told me: “Do not love efficiently.”

    [note]

    Bob Goff said this during his talk at Catalyst West 2014. He wrote the book Love Does that’s full of examples of living love on a daily basis.[/note]

    What a thought! As an engineer, efficiency comes hardwired.

    Loving inefficiently means caring for people when it feels like a waste of time, when it’s with someone outside of “my set”, when it’s someone I don’t understand and honestly don’t want to understand.

    I recall this advice in places I’d typically keep to myself. Places like airplanes, coffee shops, and urban sidewalks. Neighbors, baristas, and solicitors.

    My selfishness abrades at these attempts. But what is our legacy without love? What else is more important?

    If I give away all I have, and if I deliver up my body to be burned, but have not love, I gain nothing.

    1 Corinthians 13:3 ESV

    These encounters are usually brief. Sometimes they’re awkward. But in engaging, I find myself challenged by the everyday opportunities to love others in this way:

    Love is patient and kind; love does not envy or boast; it is not arrogant or rude. It does not insist on its own way; it is not irritable or resentful; it does not rejoice at wrongdoing, but rejoices with the truth. Love bears all things, believes all things, hopes all things, endures all things.

    1 Corinthians 13:4-7 ESV

    This is hard. It can come easy, but it’s usually difficult. There are cycles of generosity followed by self-serving deceit.

    I can’t love like this. These cycles reveal it: human nature is at odds with acting this way. We love for a day, then we fall short. We try not to envy, then find ourselves coveting. We are nice to people until we feel justified to retaliate. And how do we endure all things when we’re broken in the midst of disappointment?

    Instead of making adjustments to what’s broken, my old self is being replaced.

    1 Corinthians 13 describes the result of radical transformation.

    This chapter of the Bible was written to show the fruits of a new life in Jesus, when we’re committed to Him as our Savior and have the Holy Spirit working within us.

    There are days where I progress in love and days where I miss the mark.

    I don’t understand everything about the Bible. I’m learning, but I don’t know it all. I will always be learning. But I know a few things for sure. I have admitted to myself and God that I can’t love like this alone. That I cannot be close to God merely by being a good person doing good things. That I believe God’s only son Jesus is the perfect sacrifice that allows God to transform our entire soul if we ask Him.

    By this, I am accepted before I did anything to deserve acceptance. Adopted. Beloved. Out of this new identity, I am able to share this unconditional love with others. It’s the heart of Christianity.

    “Teacher, which command in God’s Law is the most important?” Jesus said, “‘Love the Lord your God with all your passion and prayer and intelligence.’ This is the most important, the first on any list. But there is a second to set alongside it: ‘Love others as well as you love yourself.’ These two commands are pegs; everything in God’s Law and the Prophets hangs from them.”

    Matthew 22:35-40 The Message
    Old and New

    This scene is full of people who compared how they used to live compared to who they are becoming in Jesus.

    I’m a work in progress and frequently mess up. We all do. I desire a new heart, a new mind, seen dimly and in part.

    By the act of trusting Jesus, I surrender everything to the process of transformation. Every day I’m becoming a new person that can love the way I’m designed to love.

    Radically and inefficiently.

    The happy man is he who lives the life of love, not for the honors it may bring, but for the life itself.

    Raymond John Baughan (1946)

    Finally, if you’d like to know more about what I started to share here, you’re invited to check out The Touch of God. It’s a video from my church about God’s love in a loud and busy world. Or maybe just visit a church near you. You can expect to find a bunch of folks who have been through some crap and are figuring this all out together. See you out there.

  • The Joy of Doing

    The secret of happiness is in knowing this: that we live by the law of expenditure. We find greatest joy, not in getting, but in expressing what we are. There are tides in the ocean of life, and what comes in depends on what goes out. The currents flow inward only where there is an outlet. Nature does not give to those who will not spend; her gifts are loaned to those who will use them. Empty your lungs and breathe. Run, climb, work, and laugh; the more you give out, the more you shall receive. Be exhausted, and you shall be fed. Men do not really live for honors or for pay; their gladness is not in the taking and holding, but in the doing, the striving, the building, the living. It is a higher joy to teach than to be taught. It is good to get justice, but better to do it; fun to have things, but more to make them. The happy man is he who lives the life of love, not for the honors it may bring, but for the life itself.
    Raymond John Baughan, Undiscovered Country: Morning Thoughts to Brace the Spirit of the Common Man, 1946. Via.

  • Node.js and Yahoo

    I kicked off NodeSummit today with a short talk about where Yahoo uses Node, why we continue to use Node, and the practices that help us use Node effectively.


    First talk of the day.

    I spoke a bit about a project I’ve spent the last year on: using Node to handle data pushed out of Jenkins. Folks appreciated the honesty about Jenkins’ user interface.

    https://twitter.com/phirephoenix/status/565199071044853761

    Jenkins is the solution that we trust, but nobody loves using it. At Yahoo, we use Node to help us make Jenkins a bit better to use:

    • scripting job creation, editing, deletion
    • handling log messages
    • displaying information about builds with a web interface

    https://twitter.com/JeremiahLee/status/565232111171289088

    Noted.

    During the talk I mentioned something called RDL.

    Nope, not the Romanian Deadlift. It’s something we call “Resource Description Language”, a machine-readable spec for web APIs. We started using it for some internal deployment APIs we worked on last month. This spec is transformed into hapi route configurations that contain detailed joi validators.

    What’s great about this is that when you change the RDL, it changes the validators and comments which we present using the lout module. We do this by merging together existing hapi route objects using the RDL spec as the source of truth, so the hapi routes we have in code are validator-free and require the RDL as the source of truth. This has worked very well and our spec always matches the reality. This works a lot better than other systems that actually generate source code from RDL, which is not ideal because it cannot stay in sync as your code changes.

    It’s been fun! I’ll also be on the “Scaling Business Critical Node.js Applications” and “v0.12 and Beyond” panels tomorrow, so check those out if you’re attending NodeSummit.

  • Eran Hammer’s Response to Netflix’s “Node.js in Flames”

    Eran Hammer on Node.js web framework design tradeoffs and why there is no “best” framework:

    If you haven’t read Netflix’s Node.js in Flames blog post you should. It is a great deep dive into debugging a node performance problem. The post includes useful tips that can help you solve similar problems.

    That said…

    My feedback from the perspective of a framework developer is quite different. I found the tone and attitude towards express.js to be concerning and somewhat offensive. Here was a developer blaming the framework he chose for poor architecture when they never bothered to actually learn how the framework works in the first place.

    Recommended for understanding why Express works the way it does, what other frameworks do differently, and why none are superior to the other without considering your own requirements.

  • “Sorry, your coffee isn’t an artisanal ritual.”

    Marco Arment writes about coffee lovers who look down upon Keurig K-Cups:

    We’re the ones who keep creating, replacing, Kickstarting, and spending top dollar on ever-more-specialized equipment, even when it differs from established products only in arbitrary or purely decorative ways that have no discernable effect on the actual coffee (except maybe prolonging the process of making it).

    We’re the ones who obsess over every little detail of brewing technique as if they matter much more than they really do, making good coffee ever more alienating and confusing to casual coffee drinkers who don’t have time to study and fuss over it as much as we do. […]

    Maybe we’d get some of the Keurig fans to use our methods if we weren’t so pretentious, wasteful, expensive, and inaccessible ourselves. […]

    Our obsession with gear and “rituals” is only distracting them — and us — from the real problem: old, mediocre, or badly roasted beans.