10.12.06

The Tao Te Ching For Programmers

Posted in Programming, Spirituality, Philosophy at 3:39 pm by Tristan

Reading the Tao, several of it’s short chapters seemed to speak to me as a programmer. I’ll quote some of them here and give my thoughts.

Chapter 4

The Tao is like a well:
used but never used up.
It is like the eternal void:
filled with infinite possibilities.

It is hidden but always present.
I don’t know who gave birth to it.
It is older than God.

In this chapter, the Tao reminds me of the ideal code behind a software application. Its code can be used again and again, as many times as needed. It’s objects and classes can be used in infinite combinations, making for very flexible software. The users can’t see the code, and may not even know its there, but it is.

The last two lines are a little harder to fit into this perspective. Perhaps this is referring to some of the old BASIC and FORTRAN programs my grandfather wrote in the 70’s and 80’s - Powerful and flexible for their time, yet impossible to maintain :)

Chapter 63


Act without doing;
work without effort.
Think of the small as large
and the few as many.
Confront the difficult
while it is still easy;
accomplish the great task
by a series of small acts.

The Master never reaches for the great;
thus she achieves greatness.
When she runs into a difficulty,
she stops and gives herself to it.
She doesn’t cling to her own comfort;
thus problems are no problem for her.

This chapter describes the ideal attitude for a programmer. In my mind, this passage speaks for itself. I’ll leave the commentary to you.

Chapter 64


What is rooted is easy to nourish.
What is recent is easy to correct.
What is brittle is easy to break.
What is small is easy to scatter.

Prevent trouble before it arises.
Put things in order before they exist.
The giant pine tree
grows from a tiny sprout.
The journey of a thousand miles
starts from beneath your feet.

Rushing into action, you fail.
Trying to grasp things, you lose them.
Forcing a project to completion,
you ruin what was almost ripe.

Therefore the Master takes action
by letting things take their course.
He remains as calm
at the end as at the beginning.
He has nothing,
thus has nothing to lose.
What he desires is non-desire;
what he learns is to unlearn.
He simply reminds people
of who they have always been.
He cares about nothing but the Tao.
Thus he can care for all things.

This passage brings me back to the Pragmatic Programmers who detailed such practices as

  • Care About Your Craft
  • Think! About Your Work
  • Don’t Panic When Debugging
  • Remember the Big Picture
  • Abstractions Live Longer than Details

and just about every other chapter in their book, seems to speak this chapter of the Tao.

Overall Thoughts

A word of advice for all my programmer readers out there (I think there might be 2 of you): As a first step, put away that book on Ajax, Ruby, Haskell, the upcoming .Net Framework or whatever the latest language is and pick up some books that will help you become a better programmer in general. Second, at the same time, do not forget that programming does not exist in isolation. Be sure to expand your mind and spirit to other ideas outside of the day to day grind. I’ll end with a fitting stanza from Chapter 12 of the Tao Te Ching:

The Master observes the world but trusts his inner vision. He allows things to come and go. His heart is open as the sky.

Quotes taken from Stephen Mitchell’s version of Lao Tzu’s Tao te Ching. (c) 1988.

10.06.06

The Dao of Programming

Posted in Programming, Spirituality at 2:15 am by Tristan

If anyone happens to look at my “Currently reading” list on the left, you’ll see I’m reading the “Tao Te Ching”. If you are are programmer, you can get a shorter, and more specialized work based on it, The Tao of Programming

It’s hilarious in that “funny because its true” way.

10.05.06

Upgrade of AllConsuming Widget

Posted in Programming at 10:22 pm by Tristan

I’m new to WordPress, and I happened upon Ali Hassan’s Wordpress Widget for AllConsuming.net. Its a great little widget, but I found that you had to modify the source to show completed items, and there wasn’t a good way to show both completed and incomplete items. So, I decided to add ‘Completed’ as an option in the widget. You can download the plugin here. For those that haven’t used it before, here is how to install it:

(1) Dowload and install the sidebar widgets plugin from Automattic. *

(2) Download and install Ali’s AllConsuming widget.*

* To install these widgets, just upload the contents of each zip to your /plugins/ folder

(3) Activate both plugins

(4) You can configure the plugins under the new ‘Sidebar’ tab under ‘Presentation’

To upgrade, simply copy the php file in the zip over your existing one. The new option will appear.

That’s it! Let me know if you have any problems, and I’ll do my best to help if I have time.