I post well-considered, well, better-considered ideas here. For incidental thoughts, check out my Twitter feed.

I love the track “Heroes” off of Bowie’s album “Heroes.” Bowie was at an interesting inflection point here in his career having burned through two (three?) identities. The iconic cover makes me think of Japanese Noh theatre, perhaps a hint of Bowie’s impending directional shift, but nevertheless falls, rightly, into the designation as being part of “the Berlin Trilogy.” It was a great run of work with Bowie and Brian Eno collaborating in West Berlin and harnessing the city’s schizophrenic energy to paint the beautiful story of the title track “Heroes.”

<

blockquote> I, I can remember (I remember) Standing, by the wall (by the wall) And the guns, shot above our heads (over our heads) And we kissed, as though nothing could fall (nothing could fall) And the shame, was on the other side Oh we can beat them, for ever and ever Then we could be heroes, just for one day

<

blockquote>

Somehow the photography of the iconic album fits perfectly.

And, of course, the video: complete with late 70’s laser lights and fog effects:


David Bowie - Heroes by hushhush112

There’s such a unified “feel” to this collection of media, it was fascinating to hear about an alternative take. Retronaut recently posted this series of other cover candidates, and they’re all marvelous.

As mentioned previously, I gave a talk at Rubyconf XI in New Orleans a few months back. The video is now available. If you want to see me talking about some of the finer details of the Ruby programming language while wearing a shirt from Saturday Morning Breakfast Cereal, here’s your chance.

“Practical Metaprogramming” hosted by Confreaks

It may be a bit of a “no duh” observation to point out that joining a consulting firm has a very different work flow versus working in corporate. A few numbers:

  • Number of days when pairing occurred: 5
  • Number of hours spent pairing: ~37
  • Number of stand-ups: 5
  • Time spent in stand ups (week): ~ 50 minutes
  • Brown Bag Lunch: 90 minutes
  • Emails received within project team: 3
  • Emails received from client: 1
  • Skills Worked On: HTML5, CSS3, Rails, Backbone.JS
  • Times astounded by my pair’s refactoring skills: 2
  • Times astounded by my peer teams’ approaches to managing complexity elegantly: 2

First day at school work

October 25th, 2011

Today, after two weeks of being in the two weeks’ notice netherworld that included a code sprint to try to get everything tidied up for my previous employer and jury duty, I finally got to show up at Carbon Five.

It was great taking the short walk from my house to the office. Upon arriving about a half dozen others were already there, recapping weekend fun and bike shopping in the lounge area. The espresso machine was hissing in the kitchen and everyone seemed pretty excited to get to work.

Austin Rubyist, now in SF like many of us, Mike has been designated my project lead for my first project. The project is something that’s in a domain really familiar to me: hardware configuration and permutation management. The project is really young so I was able to dive in without requiring too much catch-up time before being able to help debug and work through issues.

Mike and I “paired” the whole day: where you have to keyboards and mice, but one monitor and computer. By doing so we can work through ideas and spot errors faster. That was really a neat experience.

Additionally I was put into the thick of HTML5, something I’ve not done a lot of work with. Thankfully, my Coffeescript research lately paid off as Mike and I were able to get some Javascript functionality implemented.

I suppose, in all honesty, it felt a bit like baby-steps, but still they were steps that got me in the right direction.

I’m also going to try to embrace some new habits:

  1. Keep a daily journal
    1. What did you do, for client accountability
    2. What opportunities exist?
    3. What sorts of automation / tooling would make this work easier
  2. Not overeat at lunch

I also conquered my fear of the espresso maker thanks to the example of my teammates Courtney and my lead Mike. Now all that remains is to perfect my technique so that I don’t scorch the milk.

Other than that, everyone has been very nice and welcoming and really tried to make me comfortable. I really appreciated it. I knew they were really keen before I came here, but people here have proven to be really kind.

It was a really beautiful day in SF today and we had my first lunch with the team out in the beautiful Yerba Buena gardens — what a great city to live and work in!

Hipchat!

October 25th, 2011

Earlier this year when driving back to the City from San Jose, I saw this billboard featuring “Y U NO Guy” advertising a service called Hipchat.

Today on my first day at Carbon Five, I got registered for my accounts: email, tracker, etc. And of course:

I USE HIPCHAT, Y U NO GUY.

Hipchat’s founder, Pete, tells the story of Hipchat aweseomeness here.

Meta-Post: Back to Blogging

October 18th, 2011

I woke up this morning after having spent the weekend down in LA and Orange County with the desire to say something: something longer than a tweet, something shorter than an essay.

It was something about technology, or people, or power, or art. And then I realized: I wanted to blog again.

And then I realized something important. Writing isn’t something you do when you have copious free time, it’s something you do when you don’t. It’s something you do when your spirits are in the right place, when inspiration is around you and through you (which usually has the consequence of you having no copious free time).

The job change I am to undertake within the next week is making me want to do the things that I lost interest in. I want to rework the site, I want to stop digitally sharecropping my content to Facebook and Twitter. I want to integrate this interface and make it the default and have Google+, Facebook, and Twitter be my syndication services.

I’m so glad that a part of the best part of me is coming back.

Probably the most significant constant in the entire history of this blog has been where I have spent several hours of my day each work-day. For a great many years, I have been an employee of Cisco Inc. As of the 19th of this month, that will end.


I will commence employment at Carbon Five, a consulting and application development firm in San Francisco, on the 24th of this month. I am elated about joining Carbon Five’s team of energetic and innnovative developers. I will be doing Ruby and Rails development and I hope to learn more about mobile development, async server technologies, and sexy Javascript front-ends.

Since last Winter Carbon Five has hosted a fortnightly “hack night.” Through the winter and spring they saw me struggle and batter my way through the rewrite of my LatinVerb library and my metaprogramming presentation. Ultimately this co-working session facilitated a relationship which is about to turn into a working relationship. Here are the things I like about them:

  1. Team
    1. Management: Friendly but clearly with a sense of standards and high expectations but with great trust in the developers to do what’s right, well
    2. Staff: Excited, energetic, motivated, funny on Twitter
    3. Size: Forty-ish or souls with whom I can have actual relationships
  2. Culture
    1. Standardized hours (exceptions allowed)
    2. Fancy coffee machine that scares me
    3. Developer-sensitive culture: don’t burn out, do good work on good equipment in a nice place
  3. Agile Methodologies: Paired programming (flexibly), User Stories
  4. Client Engatement: I’ve never worked whith a money-paying customer, I think that’s an experience to have!
  5. Technology: The team there is trying out new ideas and tools all the time.
  6. Proximity: They’re a 3 block walk from my home. Granted, two of those are SoMa wide north-east/south-west blocks, but it beats the heck out of driving or taking the train anywhere. They’re also surrounded by several gyms so I can get some fitness work in.
  7. Type of Work
    1. Application development (including “heavy lifting” of the back end)
    2. Startup / Idea bootstrapping
    3. Design

When the door opened, I felt that the time was right for me to make a change.

I will miss my friends and contacts from Cisco terribly. The people at Cisco and my experiences there defined many of my friends and many years of great memories. Nevertheless I am so excited about my future with Carbon Five. I find so much peace in Ovid these days that I’ll repeat the quote I gave in my “sign off” email:

“As pliable wax, stamped with new designs, it is no longer what it was; does not keep the same form; but is still one and the same;”

Quoque mutabo

On the 30th of September I presented at Rubyconf XI in New Orleans, LA. My topic was “Practical Metaprogramming.”

This presentation was very special for me. Having spent some of my childhood in New Orleans, speaking there was very special. Further, one year ago, inspried by Chad Fowler’s book The Passionate Programmer, I resolved that “One year from now, I will speak at Rubyconf.” I am filled with joy to say that I attained my dream.

I spoke on one of the more complicated aspects of the Ruby programming language: Metaprogramming. Ruby’s constructs allow you to fundamentally and flexibly re-direct calls at runtime and change the object model. While it is generally believed that this is complicated or a weird bolt-on to Ruby, I contend that all programming in Ruby is metaprogramming — from the get-go! I also present a path for learners so that they can level-up. Lastly I show some examples of heavily, and justifiably heavily used, metaprogramming code courtesy of my library LatinVerb.

Here are resources for those in attendance or for those who could not make it.

Or, here are the slides in-line:

Please, if you were inspired by this talk, please leave a comment. If you would like to provide criticism of the talk, please visit the speaker8 page.

On the 12th of this month I presented at Lone Star Ruby Conf V

I have been working on a project for the last few years that conjugates regular Latin verbs into specific, as well as aggregated, results (Code). While coding this library, I had some ideas about the tools and techniques that made it possible for me to handle the complexity of this issue. From these ideas I derived some guidelines about how to decide “when to metaprogram and how.” I presented this.

Here are the slides slides from the presentation.

Breaking up in Hi-Fi

July 1st, 2011

I remember the first time I heard the backstory to “You Can Go Your Own Way:” Lindsey Buckingham (greatest name, EVAR) wrote it about Stevie Nicks and, effectively, made her sing it, with him, night after night. It’s such a great song, and it’s so truthful about breaking up, and it is so completely brutal that it surely will transcend a few generations.

I’m fascinated by this dynamic, where people still smarting from the wounds of relationship dissolution manage to make great art. It seems masochistic and exploitative, I wonder if it works? The only analog to this implosion would perhaps be ABBA’s “Winner Takes it All.” Perhaps only it can rival the Buckingham / Nicks implosion because both male-female dyads were being rent asunder at the same time.

Perhaps fitting to the “times two” nature of ABBA, “Knowing Me, Knowing You” enhances the sentiment.