Friday, October 7, 2011

Curiosity and Control

I've also been thinking about why some people write code and some don't. I think there is indeed the creative aspect, and that's often expressed in other kinds of creative efforts. But there's also the aspect of curiosity about the software that we use.

Some people really like to know how things work, including their software. It seems to me that this is connected to a desire to control one's environment. So perhaps part of coding is about being control?

I must see what Computer Power and Human Reason has to say about this.

Life is Diff and Patch, Diff and Patch

There are two common Unix tools named 'diff' and 'patch'. Diff tells you what the difference is between two files. Patch takes what diff told you and merges those differences (aka changes) to another file. Now every tool I've used in the last twenty years has its own need for diff and patch functionality. Consider:

Word or text documents - show me what's changed, aka 'track changes'. Merge (patch) text from one document to another

Java API - what changed between two versions of an API

JIRA (the issue tracker) - show me what's new in this bug, merge this configuration to another instance of JIRA

So diff and patch seems to be a common theme of what I do for a living. But life is also diff and patch at some level - see what's different between two people and merge those differences to another generation of people. There's more in this analogy than I can get into words right now, I think.