Saturday, September 20, 2008

Finding My Path

I was really impressed by a talk given by Jon Kabat-Zinn at Google:
Mindfulness Meditation.

Actually, I was so impressed that I bought two of his books:
  • Wherever You Go, There You Are: Mindfulness Meditation in Everyday Life (amazon link)
  • Full Catastrophe Living: Using the Wisdom of Your Body and Mind to Face Stress, Pain, and Illness (amazon link)
I'm in the process of reading them, and thus far it has been an enriching experience.

People in their twenties, after growing up :), sometimes face too much stress, associated with confusion, discontent and sleep deprivation. This comes from facing the real world, wanting to make a name for yourself, working harder and harder, mimicking other go-getters that have had success, while continually wanting to answer (unconsciously) really simple and fundamental questions:
  1. Who am I?
  2. What's my purpose?
This happened to me. And this confusion and endless stress can really cause pain, if uncontrolled.

Mindfulness meditation is a central theme in Buddhism, being all about awareness of one's thoughts, feelings and actions. It is said that some people live all their lives in a dream state, perpetually thinking about past mistakes, future actions and desires, continually having internal conflicts. Such people race through life without noticing the present moment, the "now", the only time when you actually live.

I noticed this pattern in my own being, and I really don't want to live a life of regrets, and sorrow.

In closing, I'll reproduce a beautiful poem recited by Jon Kabat-Zinn in the above linked presentation:

The time will come
when, with elation
you will greet yourself arriving
at your own door, in your own mirror
and each will smile at the other’s welcome,
and say, sit here. Eat.

You will love again the stranger who was your self.
Give wine. Give bread. Give back your heart
to itself, to the stranger who has loved you
all your life, whom you ignored
for another, who knows you by heart.

Take down the love letters from the bookshelf,
the photographs, the desperate notes,
peel your own image from the mirror.

Sit. Feast on your life.

– Derek Walcott

Be happy ~

Sunday, September 7, 2008

Hacker Wannabe

It's the title of my other blog written in my native tongue.

Why wannabe?
Because I grew up with Eric Raymond's essays like How To Become A Hacker and with Paul Graham's Great Hackers, which while partly childish and narcissistic, I think it had irreversible effects on my personality.

Certain ideas stick around, and before you know it, you have faith without questioning assumptions. But if I were to name a single truth I learned is that "code talks, bullshit walks".

Somehow I could never grok that the end-result should matter more than the means to get there. That is why in my personal projects I tried really hard to stick to my beliefs. And personal projects are those projects where, you know, you have absolute control and none of that "bullshit" that goes with working on a big company. And yet I couldn't get the job done more efficiently at home.

Why? Because I would get pretty confused about the choices I had to make. Choices that I ended up judging based on politics and personal feelings.

Should I use Python? It makes me feel good. Yeah but it's not "turtles all they way down" like Scheme and its performance is not so good. But Scheme doesn't have libraries. And oh God, that Linq feature in C# is sooo cool, but C# is as verbose as Java. Hey, maybe I should use F#, since it is a ML dialect with all kinds of goodies and has access to a huge library, but it's proprietary, and why not use Scala? It's open-source, and good for DSLs, but somehow it feels dirty, and that JVM is consumating tons of resources which I can't stand. Ruby is a nice language and I can stand performance issues since it's so beautifull, but damn, its unicode support sucks.

Sounds childish, and it is.

Some of us can recognize this as the paralysis of choice. Don't fall into that. Don't use Lisp because of Paul Graham's classification of good/bad programmers. Don't use Linux because Eric Raymond said you cannot hack other systems. These are just tools. The end results is usually far greater than the sum of the parts you use.

And really, you can find a lot more beauty in algorithms.

Good tools make a difference, but when you're hit by choice paralysis, you should stop, take a deep breath, and choose what you're most familiar with, even if that's a painful decision. And in the end a far greater ingredient for success is passion. Nurture it, don't suffocate yourself with useless debates.

Sure, it's great to have mentors and to try the taste of multiple technologies and paradigms, and to reason about why some people have had success, but as they say "bad artists copy, great artists steal".