Ali Saif describes a state of mind, which has been predominant in my life, so well in The Plunge and Surface:

“The sharp awareness of the present-moment and spontaneity of emotional response is lost, made sluggish rather. I often find I smile at something a microsecond too late and then remain smiling while others have moved on.”

Except for me the “sharp awareness” was never there to be lost in the first place. It was there to discover in transient moments imbued with a sense of enlightenment.

And then there is Ali’s conclusion, which came to me like thunder from a clear sky:

“Quite understandably it leads to negative-spiral thought process and frustration.”

This has never been “quite understandable” to me. Maybe there really is a connection and I never saw it. Negativity and frustration are certainly far from foreign to me.

“I’ve noticed that the faculty deep thought, if you will, has remained intact through all of this.”

This on the other hand has always been clear as blue skies to me. Deep thought does not just remain. It is the only thing left in the house and gets full reign. This kind state of mind is the great enabler of deep thought. And the kind of “flow” that has always been the conductor of my most productive computer programming work.

I read an article on mindfulness once that associated mindfulness practices like meditation, which enhance awareness of one’s surroundings and ability to stay in the moment, with the infamous “flow” credited for hyper productive engineering work and such.

Based on my experience the article got things completely backwards. Computer work “flow” is exactly the opposite of mindfulness, and very much like the plunge that Ali describes.

Do not get me wrong. Mindfulness can result in a hyper increase in concentration and focus of attention and I have experienced this. Only not in a way that is conductive to computer work in flow.

I look forward to the day I get to experience computer work in a hyper productive mindful flow. For now all I can say is that computer work in flow quickly induces a “plunge” which can easily become a steady state of being. I am in it and I am surrounded by it in Silicon Valley.


Random Thought

Here are some tips and hints for success.

  • Keep code reviews short;
  • Follow style guides to the letter.

The History of Many-core

When looking for a good reference to back the “many-core problem” assertion in my Master’s thesis, this the best I could find as a prime source. Multicore: Fallout of a Hardware Revolution holds an excellent description of the reasons behind the shift from increasing clock speeds to multiplying the numbers of cores in modern CPUs.

In particular:

“Hidden concurrency burns power
 Speculation, dynamic dependence checking, etc.
 Push parallelism discovery to software (compilers and
application programmers) to save power”

…and a hidden treasure of information on the history of all modern processor architecture optimization techniques.


Hello world!

Welcome! I am working on implementing a split editor for Eclipse as part of Google Summer of Code 2008.

I will track my progress on the project in this blog and on the Eclipse Wiki page dedicated to my project.

Stay tuned!