goban

Learning and fear

“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.

Mirrored from Seven steps.

goban

The Litany Against Fear

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.

Mirrored from Seven steps.

goban

Ruby is alive and well

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.

Mirrored from Seven steps.

goban

Is Rails dying?

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.

Mirrored from Seven steps.

goban

Hear no evil. See no evil. Speak no evil.

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.

Mirrored from Seven steps.

goban

The schism in martial training paradigms

You’re training wrong! No, YOU’re training wrong!

A recent set of conversations have led me to examine the major difference in martial training. I’m going to start by separating training in two categories, making an imperfect black-and-white model of the martial world:

  • Traditional eastern training
  • Jeet Kune Do-like training

Now, let’s start to talk about the PURPOSE of each, in a fairly roundabout way.

Let’s talk about the traditional drill which has become sort of a standard: “Grab my wrist”. The joint lock. Many people have images of rows of people in white uniforms with colored belts, all standing there, grabbing one of their partner’s wrists, and waiting. Then the partner tries to do some kind of fancy something-or-other and ideally, the person grabbing the wrist is now very sorry for themselves.

Well, there’s a clear problem with that drill, isn’t there? In fact, there’s a LOT of problems. Let’s talk about them.

1. Who in their right mind would grab someone’s wrist?

Okay, good point. You win. It’s a silly drill. No, but seriously – superficially, that’s dumb, unless maybe you were trying to take some weaker person away with you – and in that case, you’d also want to make sure they weren’t making sound. So, why grab someone’s wrist?

Let’s look at it a little differently. People use their hands often, every day, for a number of fairly varied tasks. They use their hands with purpose, like grabbing a mug, drinking from it, driving, texting, typing on a keyboard, opening a door… People are used to relating to the world through their hands. It is more natural than, say, lying down on the ground and trying to get a knee or ankle lock on someone with both of your feet, so it is an easier starting point. So there’s the grabbing part.

Why the wrist? Well, actually, use the exact same argument as the last paragraph. People relate better to what they feel near their hands, they already have a relatively solid mind-body connection there, so new movements can be put together with fewer mental leaps. You can feel the resistance, in any direction, more easily. You can ‘listen’ more easily with your hands than, as a beginner, you can with other, bigger, less-trained muscles.

2. Why grab someone’s wrist and let them do whatever they want?

Yeah, I mean, why? They’re gonna start moving your hand, arm, wrist, elbow, shoulder, body, this way and that, and you’re just gonna let it happen? What kind of an idiot are you?

Well, for starters, as the person portraying the ‘attacker’, it is not currently your role to beat up the other person. See, they are the receiver, so it is their turn to practice, with comfortable slowness and smoothness, a potentially complex move which may require subtle manipulation (moving the body in just the right way to get the desired result). So you should let them experiment until they are comfortable with the move. That’s the whole point. Maybe now is a good time to explain why people need to get comfortable – the stuff that you’re practicing actually can hurt you. I know, kind of a shocker, right? Performed improperly, on an opponent that is trying to resist, forcing to try and get the desired result, one can truly do long-lasting damage to a partner. The point of a partner is to train with them for a long time, so this defeats the purpose a bit.

3. Why grab someone’s wrist and not have a follow-up move?

I hear this all the time: if you’re grabbing someone, you’re probably pulling them into a punch with the other hand – or worse (knife, whatever). Yes. Great. Not for beginner practice. The previous point applies – people need to get comfortable with what they’re doing FIRST.  Follow-up moves start to play with intermediate-to-advanced concepts which should only be brought in later, when both people have an understanding of when one has failed to apply the technique, so no useless forcing happens. Some of these concepts are stepping, angles, combinations,  directional shifts

4. Why stay locked when they have a lock on you?

This fourth point is a little subtle: locks are dynamic things. If someone puts you in a lock and they stop applying force in some direction, then you can move out of the lock. And again,

 

Okay, so I waxed lyrical about the fact that the wrist grab is a beginner’s move. Oh wait, no, I didn’t. Hang on a sec.. What I said was that the most basic way of practicing the wrist grab, the safest way, the way that leads to growth, BASED ON THE TRADITIONAL TRAINING SYSTEM, is a static exercise, removing most of the variables of combat.

Yeah… And then what? Well, once you’re comfortable with static, you begin to add energy to it, and that’s when it truly comes alive. Pull, push, add a strike, add a step.. All those things get practiced until the student is comfortable. And then what? Are you gonna start sparring and suddenly grab someone’s wrist? Well… Probably not. You’d probably end up getting punched in the face, and you’d deserve it, too.

The neat thing about this practice is that it teaches you to feel how someone else applies their force in a direction (for which I will use the word ‘energy’ from now on). The tricky thing about this practice is that it only works by surprise. And the hard thing about it is that you can really mess up someone’s body if you do it suddenly enough.

Yeah.. But wait! I just said you weren’t gonna do it when sparring! Well, no, you’re not. But if you are going to do it, someone will have grabbed you — or sent energy in some shape in your direction (e.g. a punch), and that will be your answer. It will be swift, it will be sudden, and with the correct precision, it will send the poor sod on the floor. And what if it fails? Well, you can run, you can try to hit the guy a lot, or you could go for the subtler option, which requires more years of training – switch to another lock on the next available joint.

 

Okay, now I bet you’re saying that I’m just giving you the runaround. I talked about purpose, somewhere way above, and I haven’t mentioned anything about it since! That’s true. But I was also setting up the stage. What is the purpose of the traditional training? The purpose of traditional training is NOT to make you an efficient fighter QUICKLY. Traditional training should be making you look inward and discover the connection between your mind and body, helping you discover who you really are and what your illusions are. As the training progresses, it gets increasingly hard and subtle, therefore refining you and your understanding of your place in society through the study of conflict.

Gosh, so many big words. How much what I just said is true? Eh… Nowadays, it depends on the student.

 

Someone I was talking to recently compared “grab the wrist” to “we can both throw jabs and our only defense is slipping”.

Well, let’s apply the same concepts – though I won’t make as big a deal of them since you saw them above.

1) Why would you just jab? Well, why not. Maybe you can knock the guy out, or explode his nose, or just jab four times before he realizes you’re taking the initiative / preempting. It’s a strike and it’s got chances to be effective. Besides, throwing multiple jabs is a good drill to build up your shoulder muscles and practice targeted striking!

2) Why jab and let them do whatever they want? Well.. Alright, in this drill, we’re not. We jab and they only get to slip. This is a strict drill, working hips, legs, maybe stepping, maybe parrying with the hands. This is all good stuff.

3) Why jab and not have a follow-up move? Well, because it’s a drill, duh! We’re just doing this over and over, working on very specific skills that directly and obviously relate to what I call a level one confrontation: strikes. Hell, it’s worked for boxers. Nah.. This analogy is flawed. Boxers don’t use their legs for anything but power generation. No kicks, no trips.

4) Why not counter when you slip? Well.. That would end the drill, and it’s not the point. You’d have a drill for counters. These drills are, of course, just as artificial as “grab my wrist”. The thing is, some people like them better. They need to move.

 

In general, I’ve found the camp to be split between people who prefer the “grab my wrist” context and people who prefer “jab and slip”. Both drills get practiced by both people, colored by the environment, but one side matches their personality better. “Grab my wrist” is not realistic! They say. “Jab and slip” doesn’t develop your sensitivity! They say.

Here’s what one guy had to say about it.. You may have heard of him, his name is Bruce Lee, and he wrote that book called “Tao of Jeet Kune Do”:

“Instead of facing combat in its suchness, then, most systems of martial art accumulate a “fancy mess” that distorts and cramps their practitioners and distracts them from the actual reality of combat, which is simple and direct. Instead of going immediately to the heart of things, flowery forms (organized despair) and artificial techniques are ritualistically practiced to simulate actual combat. Thus, instead of ‘being’ in combat these practitioners are ‘doing’ something ‘about’ combat.
“Worse still, super mental power and spiritual this and spiritual that are desperately incorporated until these practitioners drift further and further into mystery and abstraction. All such things are futile attempts to arrest and fix the ever-changing movements in combat and to dissect and analyze them like a corpse.” (p. 14)
“Forms are vain repetitions which offer an orderly and beautiful escape from self-knowledge with an alive opponent.” (p. 16)

While I agree with some of it, I think there is a fundamental flaw in trying to reject such static training: it develops a fundamental and critical awareness and sensitivity which becomes reflexive over time. I’ve watched a 70+ year-old man move another guy around like a volley ball with impressive speed and precision, and his training had been extremely traditional (though, granted, over a period of fifty years or more).

 

I think that when people criticize a drill, they’re really criticizing instructors who have no understanding of the depth of the drill – or, reflexively, criticizing themselves for not having a deep enough understanding of the drill, an unwillingness to practice. No think. No talk. Train.

On that note, I stop my tongue-fu.

Mirrored from Seven steps.

goban

Devise + rspec error: undefined method ‘name’

If you’re using Devise and rspec on Rails 3, and you want to override a controller, and you end up with an error that makes no sense whatsoever:

“Undefined method ‘name’ for nil:NilClass”, well then, you probably want to add the following line to your tests:

@request.env["devise.mapping"] = Devise.mappings[:admin]

Yeah… That took me way longer than expected.

On a COMPLETELY UNRELATED SIDE NOTE, pry is pretty cool when you end up having to step through code…

Mirrored from Seven steps.

goban

The Tooth of Knowledge (Lyrics)

This song is at least as old as 1973 and is originally from Italy (Giorgio Gaber – Dente della conoscenza). If you like finding patterns, making analogies and metaphors, and overall pondering, then examine the tooth of knowledge in the contexts of: science, religion, culture, society (etiquette, etc), and finally, the internet.

 

(note : ‘SHHH’ is an inhaling sound)

‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’.

In a random place, you can say anywhere,
it really seems that a child was born,
it’s a normal child, not very special,
except for the fact that it has a strance tooth
and he does ‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’.

Neither the mom or the doctors know what it is,
it’s not foreseen by science,
To understand one another we’ll call this anomaly
The Tooth of Knowledge.

‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’.

In his tower, all ivory,
the genius studies his maps
concentration, inspiration,
his culture, his art.

In a normal tooth there’s no harm,
but by some stroke of fate
data tells us that other children were born
all of them with the same tooth
and they do ‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’.

There are those who say that this tooth is the guarantee
of a precocious adolescence,
they’re allergic to their mother’s milk
but they suck up knowledge
and they do ‘TICK’ and they do ‘SHHH’,
‘TICK’ and then ‘SHHH’.

In his tower, the genius studies
the reason for these teeth,
he looks at the problem technically
and suggests they get removed.

There they are in front of you with their small teeth,
it really seems that your blood attracts them,
they don’t go to school, they don’t read books,
they give bites like the vampires do
and they do ‘TICK’ and then ‘SHHH’,
‘TICK’ and then ‘SHHH’.

And when they suck, they learn everything you know,
they level intelligence.
Culture and its power are now in crisis
with the Tooth of Knowledge.

They’ve surrounded even the tower,
the genius screams that he doesn’t want it,
they sucked a bit of his blood,
they haven’t even hurt him,
but now they already know everything that he does,
He hadn’t realized it
he lost his power, he’s a man like us…

Mirrored from Seven steps.

goban

Using the Monaco font with Rubymine on Linux

Here are the things you need to know about using any new font for Rubymine:

  1. It needs to be Unicode
  2. It needs to go into the $JDK_HOME/jre/lib/fonts directory

That is absolutely it. The last thing is the Monaco font, which I have attached for your downloading pleasure. It turns out DejaVu Sans Mono just isn’t as nice — however nice it may be — and Inconsolata XL doesn’t quite do it for me either.

Mirrored from Seven steps.