Log in

An infinite goban

Nov. 18th, 2013

10:56 pm - 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.

10:28 pm - 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.

Nov. 11th, 2013

09:18 pm - 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.

Feb. 2nd, 2013

05:29 pm - 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.

Aug. 21st, 2012

12:38 pm - Ruby: gem ffi on OSX Mountain Lion 10.8


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


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

Mirrored from Seven steps.

Tags: , , ,

Jul. 12th, 2012

10:00 pm - 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.

Jun. 19th, 2012

09:52 pm - 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:

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.

Jun. 11th, 2012

10:14 am - 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.

Apr. 26th, 2012

09:32 pm - 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.

Apr. 11th, 2012

12:36 pm - 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.

Jan. 6th, 2012

11:35 am - Ruby: What is at_exit and how to write tests for it.

Ruby has a neat feature called at_exit which takes a block and then executes the contents of this block when the program ends. There are a couple of VERY important details:

  1. It takes a block and converts it into a Proc object at the time of parsing. This means that the data has to be available in the binding, or you’ll run into errors. Example: instance variables need to be set before you can use them in that block. Better idea: don’t use instance variables in there at all.
  2. You can ‘chain’ at_exit calls, and they will be resolved in a First In, Last Out (FILO) order.

Once you know this, using at_exit and writing tests for it becomes a little easier:

class Piddler
   def initialize


   def create_pid_file
     pid_file = "/tmp/piddler/my_pid" #Simplified for example purposes
     File.new(pid_file, 'w')
     at_exit { FileUtils.rm_f pid_file }

What you’ll notice is that the at_exit block is defined RIGHT AFTER I create what I will need to resolve/undo/finish – not separately, right inside the method.


def test_clears_pid_file_when_it_exits
   at_exit { assert_equal 0, Dir['/tmp/piddler/*].size}

The advantage of that is that I know exactly when it gets defined. For this example, it gets defined at the end of the ‘initialize > create_pid_file’ call. This means that any at_exit blocks defined BEFORE that will be resolved AFTER.


Mirrored from Seven steps.

Nov. 2nd, 2011

12:44 pm - Art of Agile Planning / Art of Agile Delivery, by James Shore and Diana Larsen

The Art of Agile Planning (#aoap on Twitter, and AOAP from now on) is a 2-day course. The focus is on understanding the higher-level constructs of Agile and how they imbricate. In the course, one learns how the ideal Agile team is composed (hint: it’s cross-functional and co-located) and what practices and techniques will be used to organize at all levels, from the developers’ standup to the customers’ research for the next best value-delivering feature, including how to properly create a feature that developers can work on and how to best break it down into stories (and then into tasks).

The Art of Agile Delivery (#aoad on Twitter, and AOAD from now on) is a 3-day course. The focus expands from AOAP, both into further details in the iteration (how do developers best produce quality code without defects) and into further details for customers (how do we figure out who we seek and who we need to interact with).

Both courses feature activities and mini-games to help accelerate and cement learning. Both courses, of course, feature James and Diana, whose presence is invaluable. It took me a day or two to get accustomed enough to start asking questions – don’t wait, you only have those few days, and they can both bring great insight into whatever questions or problems you may have. Their first answer may be a little idealistic or snarky (I heard a once or twice “don’t do that”), but after the chuckles die down, they go into further detail and, asking for clarifications where needed, they explain the ideal of the practice(s), skill(s) and/or technique(s) involved and how to try and rectify or adapt to a less-than-ideal situation. Among the small things that make this course great: there are slidebooks given, where the slide is on the left and there is room to take notes on the right, and there are ‘facilitational aids’ (as Diana Larsen put it, “because toys aren’t tax-deductible”) for those of us who need to fiddle with something to learn better.

It is my understanding that both courses can be taken separately. I would probably not recommend doing so, as AOAD truly does build on top of AOAP. I will, however, echo James Shore’s recommendation. Take care of yourself. Don’t leave after each day and drink/party/work. Get some air, see your family, sleep. Give your body and your mind a rest. This course is five days and very intensive.

I’ve tried my best to give you the essence without the substance. Any description of the substance would simply be sub-par and ruin the experience. This course has to be lived. Besides, the course evolves based on the feedback it receives, so hopefully when you take the course, it’ll be even better than when I took it!

AOAD and AOAP together show that Agile truly is an organizational-scale operation, and can only have limited success if not applied at the manager and customer level.

A last note – this course set can be taken with total strangers, but I took it as a training course with my entire company. They were people with whom I am used to working, people with whom I’ll be talking about this course for long after it is over, and it allowed some slightly different dynamics to permeate the courses – in my eyes, for the better, but I’m clearly biased.

Send to:
Add "Art of Agile Planning / Art of Agile Delivery, by James Shore and Diana Larsen" to diggAdd "Art of Agile Planning / Art of Agile Delivery, by James Shore and Diana Larsen" to redditAdd "Art of Agile Planning / Art of Agile Delivery, by James Shore and Diana Larsen" to TechnoratiAdd "Art of Agile Planning / Art of Agile Delivery, by James Shore and Diana Larsen" to Newsvine
Add "Art of Agile Planning / Art of Agile Delivery, by James Shore and Diana Larsen" to Stumble UponAdd "Art of Agile Planning / Art of Agile Delivery, by James Shore and Diana Larsen" to SlashDotAdd "Art of Agile Planning / Art of Agile Delivery, by James Shore and Diana Larsen" to FaceBookAdd "Art of Agile Planning / Art of Agile Delivery, by James Shore and Diana Larsen" to MySpace

Mirrored from Seven steps.

Sep. 4th, 2011

12:28 pm - Rooting Incredible 2 with 2.3.3

If Revolutionary 0.4pre4 –
Use WINDOWS! Broken on Linux.
Follow this process: http://forum.xda-developers.com/showthread.php?t=1219246

revolution, for me, said “oh sure, I’ll install CWM for you” and rebooted to Fastboot USB but did NOT actually install it. So you manually push it, then you choose ‘bootloader’, then ‘recovery’ and THEN you are in CWM. And then Bob’s your uncle.

Send to:
Add "" to diggAdd "" to redditAdd "" to TechnoratiAdd "" to Newsvine
Add "" to Stumble UponAdd "" to SlashDotAdd "" to FaceBookAdd "" to MySpace

Mirrored from Seven steps.

Aug. 31st, 2011

02:33 pm - HTC messed up (Incredible 2, missing Clock app)

I have a Droid Incredible 2 – and I’m really enjoying it. I got an OTA update to 2.3 right about the time I was going to root it, so I thought, what the heck, I’ll get Gingerbread. It’s all I really wanted anyway.

Last week, at some point, the clock app disappeared. I noticed because the alarm stopped ringing. It didn’t really bother me, because sometimes I sleep through it — but then I checked and it’s … not there. I mean, in “Manage Apps” it’s there, with a size of 0, but it’s not the app drawer.

… There’s a bug that causes the clock app to randomly appear / disappear. And it’s been happening for about two months, based on the research I’ve been doing.
Someone on a forum said that if this happened on an iPhone, it’d be in all the newspapers. They’re right. iPhones are held to a different standard — and the standard should be the same. If Android wants to be taken seriously, then it’s time to get some real development going behind it.

And don’t give me that crap about a single platform versus many platforms (different phones, etc). You’re a distributor, you know your hardware. How come other ROMs are stable on YOUR hardware? Hmmmm ?

Send to:
Add "" to diggAdd "" to redditAdd "" to TechnoratiAdd "" to Newsvine
Add "" to Stumble UponAdd "" to SlashDotAdd "" to FaceBookAdd "" to MySpace

Mirrored from Seven steps.

02:22 pm - Grepping a single file for ‘dynamic’ content

You can use xargs to grep the same word through different files. But how do you use xargs to grep different words through the same file?
Like this:

echo “your fancy word finder stuff here” | xargs -i bash -c ‘grep -n “{}” your/file/here’

Not something that’s useful every day, but when you want it, hot damn is it nice to have.

Send to:
Add "" to diggAdd "" to redditAdd "" to TechnoratiAdd "" to Newsvine
Add "" to Stumble UponAdd "" to SlashDotAdd "" to FaceBookAdd "" to MySpace

Mirrored from Seven steps.

Aug. 8th, 2011

11:04 pm - Gentoo Prefix on Lion: gettext problem

So, you can’t install gettext?
Here’s a hack to get you past it.
do your
$ emerge –oneshot gettext

When it’s all unpacked, Ctrl+z (this will pause the job), go to the work directory, something like this:

From there, go in here:
cd gettext-tools/gnulib-lib
and in here..

edit “stpncpy.c” with your favorite text editor, find
“# define __stpncpy stpncpy”
And add // at the beginning of the line, like so:
“//# define __stpncpy stpncpy”

Save and quit, then type “fg 1″ and return, this will resume the job.

This hack bypasses the stpncpy problem. Someone more serious than me needs to create a new ebuild for this though…

Send to:
Add "" to diggAdd "" to redditAdd "" to TechnoratiAdd "" to Newsvine
Add "" to Stumble UponAdd "" to SlashDotAdd "" to FaceBookAdd "" to MySpace

Mirrored from Seven steps.

Aug. 4th, 2011

03:24 am - Matt Damon’s Speech at the Save Our Schools Rally

I flew overnight from Vancouver to be with you today. I landed in New York a few hours ago and caught a flight down here because I needed to tell you all in person that I think you’re awesome.
I was raised by a teacher. My mother is a professor of early childhood education. And from the time I went to kindergarten through my senior year in high school, I went to public schools. I wouldn’t trade that education and experience for anything.
I had incredible teachers. As I look at my life today, the things I value most about myself — my imagination, my love of acting, my passion for writing, my love of learning, my curiosity — all come from how I was parented and taught.
And none of these qualities that I’ve just mentioned — none of these qualities that I prize so deeply, that have brought me so much joy, that have brought me so much professional success — none of these qualities that make me who I am … can be tested.
I said before that I had incredible teachers. And that’s true. But it’s more than that. My teachers were EMPOWERED to teach me. Their time wasn’t taken up with a bunch of test prep — this silly drill and kill nonsense that any serious person knows doesn’t promote real learning. No, my teachers were free to approach me and every other kid in that classroom like an individual puzzle. They took so much care in figuring out who we were and how to best make the lessons resonate with each of us. They were empowered to unlock our potential. They were allowed to be teachers.
Now don’t get me wrong. I did have a brush with standardized tests at one point. I remember because my mom went to the principal’s office and said, ‘My kid ain’t taking that. It’s stupid, it won’t tell you anything and it’ll just make him nervous.’ That was in the ’70s when you could talk like that.
I shudder to think that these tests are being used today to control where funding goes.
I don’t know where I would be today if my teachers’ job security was based on how I performed on some standardized test. If their very survival as teachers was based on whether I actually fell in love with the process of learning but rather if I could fill in the right bubble on a test. If they had to spend most of their time desperately drilling us and less time encouraging creativity and original ideas; less time knowing who we were, seeing our strengths and helping us realize our talents.
I honestly don’t know where I’d be today if that was the type of education I had. I sure as hell wouldn’t be here. I do know that.
This has been a horrible decade for teachers. I can’t imagine how demoralized you must feel. But I came here today to deliver an important message to you: As I get older, I appreciate more and more the teachers that I had growing up. And I’m not alone. There are millions of people just like me.
So the next time you’re feeling down, or exhausted, or unappreciated, or at the end of your rope; the next time you turn on the TV and see yourself called “overpaid;” the next time you encounter some simple-minded, punitive policy that’s been driven into your life by some corporate reformer who has literally never taught anyone anything. … Please know that there are millions of us behind you. You have an army of regular people standing right behind you, and our appreciation for what you do is so deeply felt. We love you, we thank you and we will always have your back.

Send to:
Add "" to diggAdd "" to redditAdd "" to TechnoratiAdd "" to Newsvine
Add "" to Stumble UponAdd "" to SlashDotAdd "" to FaceBookAdd "" to MySpace

Mirrored from Seven steps.

Jul. 10th, 2011

08:01 am - L’inventaire – Jacques Prevert

Une pierre
deux maisons
trois ruines
quatre fossoyeurs
un jardin
des fleurs

et un raton laveur

une douzaine d’huitres un citron un pain
un rayon de soleil
une lame de fond
six musiciens
une porte avec son paillasson
un monsieur décoré de la légion d’honneur

et un autre raton laveur

un sculpteur qui sculpte des Napoléon
la fleur qu’on appelle souci
deux amoureux sur un grand lit
un receveur des contributions
une chaise trois dindons
un ecclésiastique un furoncle
une guepe
un rein flottant
une écurie de courses
un fils indigne deux frères dominicains
trois sauterelles un strapontin
deux filles de joie un oncle Cyprien
une Mater dolorosa trois papas gateaux deux chèvres de
Monsieur Seguin
un talon Louis XV
un fauteuil Louis XVI
un buffet Henri II deux buffets Henri III trois buffets
Henri IV
un tiroir dépareillé
une pelote de ficelle trois épingles de sureté un monsieur
une Victoire de Samothrace un comptable deux aides-
comptables un homme du monde deux chirurgiens
trois végétariens
un cannibale
une expédition coloniale un cheval entier une demi-pinte
de bon sang une mouche tsé-tsé
un homard à l’américaine un jardin à la francaise
deux pommes à l’anglaise
un face-à-main un valet de pied un orphelin un poumon
un jour de gloire
une semaine de bonté
un mois de Marie
une année terrible
une minute de silence
une seconde d’inattention

cinq ou six ratons laveurs

Send to:
Add "" to diggAdd "" to redditAdd "" to TechnoratiAdd "" to Newsvine
Add "" to Stumble UponAdd "" to SlashDotAdd "" to FaceBookAdd "" to MySpace

Mirrored from Seven steps.

Jun. 29th, 2011

11:22 pm - Tryo - Le Petit Chose

Tryo - Le Petit Chose (The Little Something)


We all have our internals, our little things

What makes, inside of us, that we're something anyway:

The thing that itches or squirms,

The thing that sleeps or gets dressed,

The little thing inside its soul

Which understands us or peacocks around!

Stop and come get a drink with me

We're gonna talk, and you'll talk, and undo

The sly knots you've sowed

Bad nettles well rooted!

Come on, let's get inside our labyrinth

Come! I need some help!

I know you, you know, you come from my family

I see you in mom's eyes when they shine

If they had untied the knot,

The thing wouldn't be in my eyes anymore

It's incredible to feel oneself

Passing our hand towards the future!

We all have our internals, our little things,

That make it so that a battle can be something

Often I was expecting myself,

Telling myself you have to come!

You have to come by yourself, you know,

I have other things to do!

So I evacuate you, with a gesture of the hand,

Bring you back to the door, show you the way out,

But you came back over and over!

And I went from hatred,

From hatred to indifference, from indifference to wandering

And you know, the day life let me go,

I felt his presence, he accompanied me back...

I understood it was for the next one,

That in the next life I was taking my problem with me

I remember this girl

Who was learning to tell me "I love you" !

There are some who sweat, who work on themselves,

Sailors on the sea, alone with their problems,

Who would like to never come back,

Afraid, alas, to reproduce,

To reproduce the same thing, their only example on earth!

There are some who sweat, who work on themselves,

Sailors on the sea, alone with their problems,

Who would like to never come back,

Afraid, alas, to reproduce,

To reproduce the same thing!


May. 22nd, 2011

07:32 pm - Dreams

On mornings when I can sleep in, it's not unusual for me to alternate between sleep and wake, usually because I like my dream. This Saturday fit the pattern - I had a nice dream about a girl I've known for a few years. I've sort of asked her out and it's been sort of delayed (I didn't get a feeling of rejection, anyway). Saturday morning's dream involved her asking about one of my interests, rock-climbing, and it was this nice feeling that she was leading into me asking her to spend time with me -- you know, rock-climbing, for instance.
... If that makes sense.

Yeah, I didn't really want to wake up, I enjoyed that dream.


May. 10th, 2011

10:13 pm - AT&T: A ten-year customer says goodbye

I just moved into a new apartment where the AT&T reception is, well, atrocious. Still, I like AT&T, so I’m dragging my feet to switch to Verizon (or something else).

Today, I spoke in live chat to some AT&T employee. I believe the name was Monica Garnett but I could be wrong — and it probably doesn’t matter. My issue was that I didn’t seem to have a mailbox for my phone number. She says my data plan is unsupported for smart phones.

… Wait, what? I’ve been using this data plan for over a year with this phone. Maybe I never got voicemail, but who cares! It WORKED. I had unlimited text and unlimited data. Now, yes, I know, this plan had been removed and AT&T wasn’t offering it anymore, but I am an existing customer, I get the perk of keeping that, right?

… No. I was told I could switch to their 200Mb/month or 2Gb/month plan, which I did, but what I wasn’t told is that THESE PLANS DO NOT INCLUDE MESSAGING.

Now, I want to fix this. I got screwed by a company, big whoop, whatever, I’ll just limit myself a little. THE WEBSITE DOES NOT GIVE ME REASONABLE OPTIONS. I can get unlimited text, or unlimited text with any mobile-to-mobile calling, or 1000 texts.

I could pay $15 for 200 megs and $10 for 1000 texts, and then I’d have $25 — which is, $5 less than unlimited data and unlimited texts. Huh. NO.

I could pay $25 for 2Gb and $10 for 1000 texts, or $20 for unlimited texts. So .. $35 or $45? NO.

Seriously? So I have to pay MORE now to have LESS than I used to have? Well, goodbye, AT&T. Guess who’s going to go say hi to another phone service provider tomorrow?

Send to:
Add "AT&T: A ten-year customer says goodbye" to diggAdd "AT&T: A ten-year customer says goodbye" to redditAdd "AT&T: A ten-year customer says goodbye" to TechnoratiAdd "AT&T: A ten-year customer says goodbye" to Newsvine
Add "AT&T: A ten-year customer says goodbye" to Stumble UponAdd "AT&T: A ten-year customer says goodbye" to SlashDotAdd "AT&T: A ten-year customer says goodbye" to FaceBookAdd "AT&T: A ten-year customer says goodbye" to MySpace

Mirrored from Seven steps.

Mar. 12th, 2011

08:20 pm - Tweets of the day

Automatically shipped by LoudTwitter

Mar. 8th, 2011

08:50 pm - Tweets of the day

Automatically shipped by LoudTwitter

Mar. 7th, 2011

08:50 pm - Tweets of the day

Automatically shipped by LoudTwitter

Mar. 5th, 2011

08:55 pm - Tweets of the day

Automatically shipped by LoudTwitter

Mar. 4th, 2011

08:50 pm - Tweets of the day

Automatically shipped by LoudTwitter

Mar. 3rd, 2011

08:35 pm - Tweets of the day

Automatically shipped by LoudTwitter

Mar. 2nd, 2011

08:30 pm - Tweets of the day

Automatically shipped by LoudTwitter

Mar. 1st, 2011

08:30 pm - Tweets of the day

Automatically shipped by LoudTwitter

Feb. 28th, 2011

08:25 pm - Tweets of the day

Automatically shipped by LoudTwitter

Feb. 26th, 2011

07:14 pm - Tweets of the day

Automatically shipped by LoudTwitter

Feb. 25th, 2011

08:45 pm - Tweets of the day

Automatically shipped by LoudTwitter

Feb. 23rd, 2011

08:20 pm - Tweets of the day

Automatically shipped by LoudTwitter

Feb. 22nd, 2011

07:04 am - Tweets of the day

Automatically shipped by LoudTwitter

Feb. 5th, 2011

02:09 pm - Scrivener for Linux

Scrivener is a wonderful OSX app for writing basically anything you want (novels, plays, theses, etc). There’s a beta out for Windows. As it turns out, they’re actually developing it using the Qt toolkit.

The Windows Beta runs on WINE, if you do a bit of work. I am getting all my information from a Lifehacker tip, just rewriting it and adding some more information for those who don’t know enough.

Let me know if you run into any issues following these instructions.

Send to:
Add "Scrivener for Linux" to diggAdd "Scrivener for Linux" to redditAdd "Scrivener for Linux" to TechnoratiAdd "Scrivener for Linux" to Newsvine
Add "Scrivener for Linux" to Stumble UponAdd "Scrivener for Linux" to SlashDotAdd "Scrivener for Linux" to FaceBookAdd "Scrivener for Linux" to MySpace

Mirrored from Seven steps.

Feb. 3rd, 2011

08:20 pm - Tweets of the day

Automatically shipped by LoudTwitter

Feb. 2nd, 2011

08:20 pm - Tweets of the day

Automatically shipped by LoudTwitter

Feb. 1st, 2011

08:20 pm - Tweets of the day

Automatically shipped by LoudTwitter

Jan. 31st, 2011

08:20 pm - Tweets of the day

Automatically shipped by LoudTwitter

Jan. 30th, 2011

08:20 pm - Tweets of the day

Automatically shipped by LoudTwitter

Navigate: (Previous 40 Entries)