Feb 182014

Shu Ha Ri comes from the world of Japanese Noh theater, and has been since attached to the world of martial arts and Agile development. Roughly, “shu ha ri” means “learn / detach / transcend”. The link has some words about that meaning. I’d like to talk about my particular take on Shu Ha Ri, which came out of a parking-lot conversation with a martial arts teacher friend of mine:

  1. Shu. Do the damn technique.
  2. Ha. Vary the damn technique.
  3. Ri. You don’t need the damn technique.

And here is the slightly longer interpretation.

SHU: right foot in front, grab the left wrist from the front with the right hand. Study the particular wrist escape that has been taught in this situation. In Agile words: be rigorous about your Agile practice. Do it “dumbly” until you get good at it and everyone in your team is OK with it.

HA: grab some wrist in some way, and play with that wrist escape. Add footwork. See what works and what doesn’t. In Agile words, now’s the time to see when is a good time for standup, what should be said, how long the standup should take. Or maybe change the beginning of the iteration; or how you do story breakdown. Pick ONE variable, change it, and learn from what happened, whether it worked or it didn’t (“worked” is a variable term, at this point of your growth, you’ll know it well enough when you see it).

RI: It’s not about a wrist grab anymore, but about much more fundamental principles. Detached from the technique, or the labels of “wrist grab” and “wrist escape”, it simply becomes about the right movement producing the right result (“right” is a variable term, at this point of your growth, you’ll know it without seeing it). In Agile words, you understand why a standup is just one example of a practical application of the Agile principles, and you are able to create custom applications of the principle for your teams, so that they can be Agile in the way that works best for them.


You may notice that HA and RI seem just a little similar from the point of vagueness: you’ll know it when you see it. It takes a long time to work through HA, and the line between the two is fairly definite, but hard to find. So practice, practice, practice. Or rather, perfect practice, perfect practice, perfect practice. And check your ego at the door.

Nov 182013
“Life is going to present to you a series of transformations. And the point of education should be to transform you. To teach you how to be transformed so you can ride the waves as they come. But today, the point of education is not education. It’s accreditation. The more accreditation you have, the more money you make. That’s the instrumental logic of neoliberalism. And this instrumental logic comes wrapped in an envelope of fear. And my Ivy League, my MIT students are the same. All I feel coming off of my students is fear. That if you slip up in school, if you get one bad grade, if you make one fucking mistake, the great train of wealth will leave you behind. And that’s the logic of accreditation. If you’re at Yale, you’re in the smartest 1% in the world. […] And the brightest students in the world are learning in fear. I feel it rolling off of you in waves. But you can’t learn when you’re afraid. You cannot be transformed when you are afraid.”
– Junot Diaz, from a recent speech at Yale
If you spend more than an hour with me in person, the chances of me mentioning Dune increase asymptotically. So it shouldn’t be any surprise that this quote brought to mind two quotes from Dune, and here they are.
Muad’Dib learned rapidly because his first training was in how to learn. And the first lesson of all was the basic trust that he could learn. It’s shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult. Muad’Dib knew that every experience carries its lesson.
And the other one, well, I wrote a blog entry about..
I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain.
    I hadn’t really thought of connecting these two before, even though to me they are some of the most important quotes in the entire work.
    It does make sense though. It takes a fundamental trust in oneself to learn, and when you are afraid, you are basically robbed of that fundamental trust. So if Junot is right, and he probably is, since he lives in the educational system, there is a deep flaw in the system which is in fact making it harder for students to learn.
    When a system grows, sometimes a madness creeps in. Like Terry Pratchett wrote, “[a dangerous thought is that] while all important enterprises need careful organization, it is the organization that needs organizing, rather than the enterprise.” So, after a while, it’s less about the students learning and more about the grades, and then it’s more about making sure the teachers do their work. But how do you make sure teachers do work? Ah-ha! There’s a thought. Let’s organize THAT. And the students? Well, they’re in school, they’ll learn, right? And so it begins. Subtly. Insidiously.
    As students, resisting that pressure is very difficult, but if you can, if you’re able to put it out of your mind, if you’re able to recognize it and not let it crush you, then you can truly learn, truly get an education. Truly be transformed, as Junot puts it. And the result will always be a marvel.
Nov 182013

So, the litany against fear goes like this:


I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain.


And here’s my attempt at an interpretation of its meaning.

I will not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration.

    While it is a natural thing to feel fear and be afraid, I will not give in to it and become the fear. Becoming the fear means to revert to the basest instincts that we have, usually fight-or-flight, and then one’s actions are only concerned with survival. There is none of the higher reasoning left. This can be expanded slightly by adding another quote from Dune, from the scene where Paul meets the Gom Jabbar. The Reverend Mother says,

“You’ve heard of animals chewing off a leg to escape a trap. There’s an animal kind of trick. A human would remain in the trap, endure the pain, feigning death that he might kill the trapper and remove a threat to his kind.”

    We’re talking, fundamentally, about a different level of perception. Your existence is not about yourself, it is about survival of your species.

I will face my fear. I will allow it to pass over me and through me.

I will accept that I am afraid. This means recognizing that emotions are a part of one’s self, and not refusing to acknowledge a single part of one’s identity. I will look to my fear with compassion and kindness, for it is a part of me. Looking to any part of me with less than compassion of kindness is much like hating myself, and that’s just not productive.
    I will allow my fear, as an emotion, to wash through my body and run its course, so that the hormonal and nervous systems in my body do not get overworked or damaged by unnatural resistance to a normal behavior. I will also allow the fear to talk to the brain, so I can communicate with the fear, examine where it came from and, if necessary, figure out why it came up, so that the origin may be extirpated if necessary.

And when the fear has gone, I will turn the inner eye on its path. Where it was, there will be nothing. Only I will remain.

Just like death, fear leaves a mark on the ego, on the self. A person can end up damaged, responding only to the behaviors implanted by the fear response, instead of responding to the actual situations with which they are faced. 
    Once the fear is done, and the situation is resolved, I will examine my self, and realize that my self is still there, and did not get damaged by the fear. I will realize that the fear, like the tide on the beach, came and went, and like the ocean, I am unmoved by the tide.
    Thus, I will reinforce the behavior, so that next time, this is even easier, because I have even more trust in how this works, until it becomes an automatic response.


This is a deep and powerful mantra, which hints at tremendous self-control and self-awareness. As always, the first step is awareness.

Nov 112013

I’m back from Rubyconf.

Some people say Ruby is dead. We can probably gloss over Zed Shaw’s famous rant, since it’s from roundabout 2007. My understanding is that the thought came about because of the many new trends in programming languages: first node, then Erlang’s comeback and the birth of Elixir. Evented programming, non-blocking IO, all the fancy buzzwords, and everyone craps on Ruby’s Global Interpreter Lock.

Given the talks at Rubyconf, Ruby is most likely not dead (and our internal rubylist has an ongoing recent conversation about this if you’re curious). There were talks on API design, on fault-tolerant data, on machine-learning, on parallel execution and concurrency, a talk on Raft (an algorithm to obtain consistency)…

Ruby’s ecosystem is certainly doing a lot of hard work to stay current. If you use Rubinius or JRuby, you can leverage a ridiculously powerful library called celluloid, plug in celluloid-io and use reel, a webserver based on celluloid-io. Here’s the quick blurb on celluloid-io: Celluloid::IO provides an event-driven IO system for building fast, scalable network applications that integrates directly with the Celluloid actor library, making it easy to combine both threaded and evented concepts. Celluloid::IO is ideal for servers which handle large numbers of mostly-idle connections, such as Websocket servers or chat/messaging systems.

Oh, and I haven’t mentioned the cherry on top of the cake yet! Opal is a ruby to javascript source-to-source compiler. It also has an implementation of the ruby corelib. It has come a REALLY long way. It passes a large amount of tests from the Ruby specs. You can write jquery with it. You can write CSS with it. In short, it is pretty close to making Ruby into the one-stop-shop for web apps: it allows you to create objects which are representations of what you see on the screen. No more do you have to separate your HTML from your CSS or your Javascript. Check out slide 339 of the Rubyconf presentation to see an example. And feel free to check out the entire presentation, there’s lots of goodies.

In short, Ruby’s doing pretty well.

May 152013

What Sparring Is

Sparring is a playful and explorative interaction.

Sparring is an exercise, a drill. The Japanese use the word KUMITE – which basically means “grouped hands” or “pair hands”, “joined hands”, “hands together” (the Wikipedia article suggests “grappling hands”).

Sparring is a two-person free-form exercise wherein you get to examine scenarios involving combinations, footwork, distancing, rhythm, controlled power, and focus to improve yourself and your partner.

Continue reading »

Apr 272013

In the dojo where I spent my formative years as a martial artist, there is a school creed. A quick search online has revealed that many schools have a similar creed. Every class says it as we begin, after bowing in, before calisthenics. I hear it and/or say it about three times per dojo night.

It’s a simple creed, and clearly not unique. Here’s what it says:

I intend to develop myself in a positive manner
and avoid anything that would reduce my mental
growth or physical health.
I intend to develop self-discipline, in order to
bring out the best in myself and others.
I intend to use what I learn in class
constructively and defensively, to help myself
and others and never be abusive or offensive.


Kids and adults alike learn this creed and repeat it, together. All are taught to pronounce it powerfully, in the manner of an assertion. In that way, it is very similar to the few sentences American children have to repeat in their schools at the beginning of each day, and which sickened me for how similar it was to unadulterated brainwashing. Speaking of which, this is a very interesting and potentially disturbing read on the reading materials in school, but I digress.

Why do we make people repeat these words? We sometimes ask kids if they know what some words in there mean, like self-discipline. But certainly we’re not teaching vocabulary to adults. So what’s the point?

Well, the point is practice. These sentences are to be pronounced not only as assertions, but mindfully, pronouncing your desire to grow in that direction. They are simple precepts:

  1. Always aim for the things in life that will allow you to grow, always avoid the things that will make you shrink. Trick: sometimes you have to shrink in order to grow. Are those decisions mistakes? Are they following this code?
  2. Always try to be the best you can be, always try to allow others around you to be the best they can be. Trick: can you do both at the same time? Do you sometimes have to not be the best you can be to prod people into being the best they can be?
  3. What you are learning martially is meant for good. Possibly along the path of the Life-Giving Sword, but not necessarily. Simple application: don’t get into bar fights. Trick application: everything you do must come from Love.


This is intentionally left a little vague. Find your own questions. I’ll answer.

Feb 072013

Why are these things always so weird? Someday I’ll understand why OSX is set up that way. And on that day, I’ll probably weep.

$ sudo /usr/bin/dscl . -append /groups/wheel GroupMembership username

This was found here : https://discussions.apple.com/thread/1230828?start=0&tstart=0

Feb 022013

More to the point, should Rails die?

Rails brought a lot of great things – it made it dumb easy to package an entire app together. It abstracted the complexity of the storage layer. It created an entire market. Things like Heroku, Railsonfire/codeship and other companies turned a profit by extending the benefits of Rails. And things like Capistrano were born.

Everything that can be automated should be automated.


This has brought great things. And people wrote more tests, and life was good. But then, Rails apps grew, and people realized they had written them badly – because they interleaved their code within Rails, instead of using Rails as a layer and building their code on top of it, carefully segmenting the access points to that layer. Gosh, that sounds like work! Enter things like Avdi Grimm’s Object On Rails. And the Rails community re-learns things that the Java community has suffered through and grown past. Dependency Injection is making a comeback, Ruby-style. People use TDD as an indicator of design smells – if you have to boot up Rails to run your tests, you’re doing something wrong! Although of course SOME tests require the entire Rails stack, but we call these Capybara tests, because “end-to-end” is ugly, and capybaras are much prettier to look at.

And then, on the other hand, you have Sinatra, and Backbone.js, and other things that are focused on doing one thing and doing it well.

Now we have everything that Rails has taught the Ruby world – segment your logic, stay away from expensive code (the only currency here is time, and this is a very important thing to realize). Your TDD loop should be very short – you can watch some of Gary Bernhardt’s screencasts on Destroy All Software to learn mor about this. We have Capistrano, and Capybara. We have RSpec. We have Opal, a Ruby-to-Javascript compiler.

And in case Opal is too weird for you, you’ve got the Backbone.js world, where you have to make all these exact decisions over again.

You’ve got Sinatra, a wonderful “controller”. Sinatra is a great place to put your API and test it. Because that is the only thing Sinatra gives you, you feel the pain every time you add something — you have to add it.

And your storage is now distributed. Imagine … Backbone.js front-end, Sinatra in the middle, and your distributed storage of choice on the other side: Google Drive, Apple Cloud, Dropbox, MediaFire … You pick it, you store to it. Users now carry their data everywhere. Virtually speaking, of course. Gosh, sounds like you’re even reducing costs.


So now, we face the challenge the health world has been trying to solve for over a decade – how do you share information between proprietary systems? After all, the user is the one who’s suffering.

This is an entirely different blog post – how much of “your” data really is yours? How much could be shared? You know.. Like one of those virtual business cards, I suppose. You’d have a JSON object behind a secure server where the user stores THEIR information, and you ask for permission to read that one object.

Aug 212012


sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2


That’s it. You can now install ffi 1.5.

Jul 122012

I had an epiphany tonight about something that just about everyone knows: the three monkeys. And I wanted to share it with you.

The three monkeys are accompanied by the words: “See no evil. Hear no evil. Speak no evil.” The funny thing is that one monkey is covering his eyes, one monkey is covering his ears, and one monkey is covering his mouth! Let’s examine that for a second.

See no evil -> Don’t look
Hear no evil -> Don’t listen
Speak no evil -> Don’t talk

That’s kind of an odd transposition, isn’t it? How does it work?
Well, it doesn’t. That’s the point. They’re monkeys: they’re not people. They misunderstand. They figure that the easiest way to see no evil is to close your eyes: that way you can’t see the evil that people do. They figure you should just not listen: so you can’t hear the evil people say. And they figure the safest thing to do is not talk: it means you can’t say anything evil.

But if you go through life with your eyes closed, your ears closed, and your mouth closed, you’re not a good part of society. Your mind isn’t working, and you’re going to miss on the beauty of life.

Here’s the trick.

See no evil and hear no evil have to do with the same thing: it’s not WHAT you see/hear, it’s HOW you see/hear. Don’t judge. Speak no evil has to do with what’s inside of you too: why are you saying what you’re saying?

Hearing and Seeing are receiving actions, but Speaking is an emitting action. You can influence others with that action, and so you must be sure your words aren’t coming from negative thoughts.

So hang on, how can we straighten this out? If we’re not judging what’s coming in, why are we judging what’s coming out? Well, here’s the next trick: you’re not JUDGING. You’re accepting. Seeing, Hearing and Speaking: these are yin and yang manifestations of love. Basically, you should always act out of love. You should be love.

What an odd sentence. “You should be love”. Unfortunately, this is pretty much where all the esoteric texts also stop, because it’s one of those things you have to realize for yourself.

%d bloggers like this: