Dr Nic Williams

8 March 2010 3 Comments

Who is Dr Nic Williams?

I tentatively started referring to myself as ‘Dr Nic’ in 2006 on forums and blog comments after I created my blog http://drnicwilliams.com I acquired that domain only because some clown had just taken http://nicwilliams.com Similarly, I wasn’t able to get nicwilliams@gmail.com when I created an account. My history online shows that ‘nicwilliams’ was my normal login name for sites I used pre-2006: rubyforge, skype, the old rails trac ticket system, etc. I was kind of committed to “Dr Nic” after I released a fun library “Dr Nic’s Magic Models” in 2006. Who puts their own name in a project title? I just felt the title “Magic Models” needed author attribution. Soon my other project’s were being called “Dr Nic’s XYZ” and at conferences no one knew who I was if I only introduced myself as “Nic Williams”.

It was a bit of fun when I was anonymous and it grew from there. Pretty lucky.

Why Ruby?

I’ve used languages that had metaprogramming facilities before, such as Python and Smalltalk, though Ruby was the first language and had the first community of users who valued and were motivated by “code aesthetics”. I like exploring “best looking API design” and “if I change this library, then my app code looks awesome” aspects of software design.

Ruby has also been a beacon to attract some great software developers who have created wonderful open source projects, such as rails, capistrano, cucumber, rspec, haml and more. So the ecosystem around Ruby makes the language itself more wonderful.

Git or SVN?

What a delightfully retro question. Perhaps the question could be “git vs hg vs darcs?” or similar. I use git, my toolset is built around git, including deployment to Heroku via git. I’m sure mercurial users have evolved to have a similar ecosystem. Our’s is very optimized around git. For example, I now maintain the ‘github’ command-line app, which let’s you search, clone and fork projects on Github. It is the ultimate tool for open source developers who use git and github.

What does your typical day look like?

The Mocra office opens at 7:30 and people wander home after 4:30. This gives us good overlap with clients in America and helps beat the morning traffic.

What do you do in your free time?

I’m married with two kids. I’ll ask my friends what “free time” means.

Current favorite apps?

I love apps that I can hack, configure, and rewire. TextMate’s “bundles” allow it to be customized to any new programming languages, frameworks or libraries that come along that it never knew existed. I’ve maintained or created a dozen of these, that’s how fun it is to customize your text editor.

The same thrill applies to FireFox and Chrome/Chromium and the ability to run extensions/greasemonkey scripts to modify other people’s sites.

What OS do you prefer?

I prefer OS X because it prefers me.

Small picture for your Workplace?

Favorite: Language (Ruby, Python ….), JS Framework?

I love Ruby. I know Ruby, I know it’s libraries, I know how to test it; so I get the benefit of experience now. But even when I knew very little I loved it. I’ve used Python, Smalltalk, Java, C, Objective-C, etc. Ruby and I think the same way.

For testing, I lean heavily on integration tests and less on unit testing. Currently we’re using cucumber with capybara (instead of webrat) as it seems to have nice JavaScript support for scenarios that need it.

For browser-side scripts with JavaScript, I prefer the jQuery library. I’ve only used PrototypeJS before it. I’ve written moderate JavaScript apps, blog badges and greasemonkey scripts, and I always like to start with jQuery.

For unit testing JavaScript, I still like Blue Ridge and did excitable talk on it in 2009 in London. I’m still looking though and hope the perfect, pre-packaged JavaScript testing environment for Rails apps and stand-alone JavaScript widgets comes along.

Name something that has inspired you recently?

I recently drove 14 days, 3000+km across Nepal and India in a tiny auto-rickshaw, without my armada of laptop, internet and distractions. The inspiration came when I realized “I need to do this more often!” I love coding, but I need to create more time to explicitly not code.

What are your personal projects and goals for 2010?

I don’t commonly have “personnal project goals” – the worst place a bug or fun idea can be is on my TODO list. I’ll often never get it it.

With Rails 3 coming into public existence, and all the community of dependent open source projects being upgraded, it is now time to upgrade the Rails TextMate bundle again. I started with a twitter account (@railstmbundle) to summarize changes and my thoughts. Before I get too excited I need a wholesale solution to supporting Rails 2 and Rails 3. We’ve never attempted this before; well, Rails has never changed so radically before.

For Mocra, we have a number of goals for the year. We’ll announcement when we achieve them!


Tags: , , , ,

Leave a Reply