TCLP 2015-04-12 Hope and Fear in the World of vim

blank_preview1This is an episode of The Command Line Podcast.

I share a quick game review in this episode of Coup and its expansion, Coup: Reformation. The feature is a reading of my recent essay about my favorite text editor, vim.

You can grab the flac encoded audio from the Internet Archive.

Creative Commons License

If It Sounds Right

One of My GuitarsWhen I first starting learning guitar, before I had a teacher and was just using books and videos to learn on my own, I worried whether I was learning good technique. I admit to obsessing a little bit about the shape of my grip, the arch of my fingers, whether I was fretting cleanly enough or not. I suppose I was carrying over assumptions I had from other skills into the pursuit of the new one. When writing software, there are definitely more and less correct ways of putting a program together. A lot is bound up in language and tool choice, often in terms of certain idioms that both affect correctness but also readability of source code.

A couple of months along, I decided I would benefit from a teacher. I didn’t really reflect on this choice but thinking back, I suppose it was motivated in equal parts by the desire to want to progress a bit faster than I was on my own and by that worrying over proper technique. One piece of advice I kept encountering was to make sure that whatever I was practicing, I should make sure I was doing so correctly. After a little searching, I found a local teacher with stellar online reviews.

My guitar teacher is great. He seems to have an intuitive grasp of when I need to refine something in my practice or am ready to stretch out and tackle something new. At first he took a little while to understand my tastes and interests. Some of that was no doubt do to how much those tastes have been changing and growing in the last year or so. Lately he has been supplementing more structured skill work with learning songs I enjoy, showing both the applications of the techniques I am learning and rewarding my efforts with playing real songs as opposed to simpler studies.

I expected from the start that my teacher would pay close attention to my technique and correct minute imperfections. This is how I learned Tai Chi, with an eye towards correctness, one that progressively looked deeper and deeper into form and movement. Brewing has involved close attention to key variables in the process, ensuring good control as well as exercising good taste. Why would guitar be any different?

A few months into my guitar lessons, we finally discussed my expectations, briefly. I had already started to realize on my own that there was something different in approaching guitar so really we just confirmed a certain truism that is common among musicians: if it sounds right, it is right.Basically, my teacher just confirmed this notion and we got back to the business of producing right sounding notes.

For most guitarists, certainly at my level of just gaining some basic fluency, the result usually far more important than the way it was produced. Guitar reinforces that because it is such a flexible instrument. The same note can be sounded on several strings. Chords can be constructed and varied in an infinite number of ways. Realizing this, I understand that training of the ear and using judgement takes priority over particular technique.

How can we draw a parallel with programming? Certainly when creating software for regular people, there is definitely a sense of what seems right trumping hard and fast engineering precepts. If someone sitting down at an app cannot figure out how to make best use of it, like a muddled or disharmonious tune, then it has failed. I suppose even the compiler could be thought of as enforcing a similar, if more rigorous, critical evaluation. Witness single line programming, underhanded and obfuscated contests that play with the plasticity arising from language rules and semantics while still producing something that can by some definition be deemed “right.”

What role, then do the volumes of text on correct theory and practice, for coding and guitar both, serve if ultimately the prime criteria admits so much variation?

If you are working with others, either to make some software or some music together, than a better understanding of your craft is invaluable. If you want to advance beyond a certain level of competence, as well, and tackle the greatest challenges, and hence feel the most keen depths of accomplishment, likewise you’ll need to cultivate an expertise beyond just a reasonably critical ear or eye.

Technical skill is a large part of the vernacular of a pursuit. To talk about challenges in programming, it helps to have clear and accurate terms and phrases. I have certainly struggled with some subtle aspect of a bit of code, for instance figuring out the right data structure, or kind of code to hole some information, that makes working with data simple, clear and effective in terms of code complexity and efficiency. When I don’t stop and really listen closely to someone trying to help me, I end up spending more time, struggling harder, than when I recall my fundamentals of computer science and theory. In either case, I usually get there, improving or fixing my program, but when I leverage the full depth of my technical mastery, I get there sooner and with much less stress.

I am only just learning music theory but see a strong parallel. Most times when I am learning a piece of music with my teacher, I have to trust the music as written and his recommendations of where I can vary from it. As I have been reading about scales, intervals and the basics of chord construction, I am now able to think back and understand my teacher’s guidance. I can easily foresee a day where my grasp of theory lets me interpret and improvise much more easily than I can now. Knowing the theory increases my appreciation even if I have to rely on trust more than a skill, or lack thereof, to reverse engineer a piece or part of a piece and really, rationally understand why it works.

The sound of a song, or the user apparent function of a program, is still important but truly understanding the hows of producing a result both deepens the ultimate appreciation and allows for even more nuanced play in both cases. The interplay between correctness and playing to ear yields a far more interesting result than hidebound adherence to trade craft. Strict formalism is sterile. Grit yields joy. In a song, that’s a catchy lick or memorable chorus. In code, it is a program that delights, that allows you to do something or something more easily while to the source code reader reveals a fun-loving and inspired mind.

Touching Earth

I used to hate travel for work. I’d be stuck in the pressure cooker of modern air travel with people with whom as often as not the only thing I had in common was a job. Can you imagine, long spans of either awkward silence or endlessly rehashing work? For those jobs of the past, the purpose of any given trip was likely to involve some customer glad handing, a chore under the best of circumstances. The destinations were always uniformly nondescript, beige, corporate, even industrial.

The first weeks of the job I took a little over three and a half years ago gave me reason to reconsider. I went to my first conference in several years specifically for work, the Personal Democracy Forum. Many of the talks were life changing, electrifying, provocative. I got to spend time with colleagues with whom I’d only ever interacted online. I had many conversations with a friend who I still see but rarely, our time together as much a function of our respective travel schedules as anything.

Right after that conference, I got to take my very first trip to Europe. Ever. In my life, then almost forty years long.

I spent a week in a reclaimed, run down space in an urban neighborhood in Budapest. A bunch of local makers had made it their home and were hosting another bunch of makers, who travelled from all around the globe. We formed teams and worked during the day on building something, in my team’s case a smart and social door, to present at the end of the week. When we weren’t working, we ate where the working people of the city did, in open air courtyards. We were very lucky to have an almost native guide who helped us form a very authentic impression of the city. We didn’t see any kind of tourist place until the very end of the week, when we walked to the Open University, by the river, for some plenaries.

Unfortunately, after that first year, I made a choice to accept responsibilities I thought the organization needed me to fill at the time. If I encountered an opportunity to travel or to speak, more often than not, I delegated to one of my staff, to give them opportunities to grow professionally and personally. At the time, it didn’t feel like a huge sacrifice. There were tons of other demands on my time dealing with strategy, staffing, budgeting, and managing. I grew in my own way in response to those demands on my abilities and characteristics.

I made a decision recently, to leave my job. I do not yet have something else lined up though I am working almost full time on doing so. My co-workers know of this decision, I was asked to share it just a couple of days after I spoke to my bosses. I have no idea how much more widely it has been communicated and to be honest, two weeks on from my decision, I am not concerned if this is news to the wider world.

A large part of my thinking was that I need to touch earth. I actually didn’t know the origin of this expression and had to look it up, finding it even more apt than I realized. When the man who was to become Buddha was in the midst of his trials before enlightenment, he was set upon by a demon. He touched his hand to the earth, in response the earth roared, causing the demon to back down. There is a gesture, a mudra, that is apparently common in depictions of the Buddha, that demonstrates this act, a renewal of resolve.

For me, it is how the earth is touched as much as it is that renewal. I realized I had been cutting myself off from those things that best charge my resolve–writing, speaking, making, and even travel. Arguably, my intentions were right but I put myself in a position that was untenable in the long run. The more I needed to touch earth, the more it felt like other responsibilities were dragging me away from doing so. In retrospect, my own trial by demon I suppose. Right or wrong I felt that in order to make the opportunity to renew my own resolve I had to introduce a concrete break.

Since my decision, I have written more, coded more, and as a consequence felt a greater resolve than I have felt in a long while. I am also about travel more, definitely in the short term and hopefully more ongoing, for both personal and professional reasons. I have touched earth and am optimistic at my prospects, that the opportunities I am now pursuing will allow me to maintain these very critical connections, for my own well being.

The most promising opportunity on which I am working will allow me to re-connect with the world, in addition to focusing so much more on making and sharing, to once again wear off a little shoe leather touching earth in some of the greatest cities on the planet. I didn’t realize how important that was to me until this chance came along, unrelated to my decision, unrelated to anything other than the voice I have cultivated here, on this site, and through my podcast. However my next steps play out, I am glad of my decision and the renewed resolve I already feel.