Developer toolchain, 2014 Edition

I try to pause every so often and record what my toolchain looks like.   Sort of like people posting on Everyday Carry, but for what I use every day in development.

  • Development machine: 13" MacBook Pro Retina, 2.8GHz Core i7, 8GB RAM, 250GB SSD.  I love this machine.  My wife calls it my woobie.  She's not far from right.
  • OS: Mac OS 10.9.4.  Unix when I want it to be, polished Consumer OS when I just don't care.   It's been 3 years since I ran a windows box as a development machine and with virtualization I can't see running windows as a primary OS ever again.
  • Physical Setup: Thunderbolt Gigabit ethernet, Thunderbolt-to-DVI single 23" monitor, Microsoft Natural Ergonomic Keyboard 4000.   I've dabbled in multi-monitors and buckling spring keyboards, but this setup keeps my attention focused and my repetitive strain to a minimum.  I'll eventually wear out this keyboard and probably buy another one just like it.
  • Note taking tool: Evernote, but honestly I'm dissatisfied everywhere I turn.  Evernote gets closest to what I want amid everything else I've tried:  Google Keep, OneNote (which is an abomination on the Mac), paper notebooks, PDAs, Google Drive Documents, emails.  I basically pendulum between over-noting and under-noting everything.  Google Drive wants to be the master, but I resist.  I'm not sure why.
  • Blogging Platform: Blogger, through simple inertia.  Wordpress seems like exchanging one master for another.  I'm taking a hard look at Github:Pages and Jekyll because I like finer-grained creative control and Markdown, but I can't commit to it.
  • Terminal Program: iTerm.   Tabs are nice.  I spend lots of time here these days in irb or grails shell.
  • Command line shell: zsh + oh-my-zsh.   Tabbing command-line completion and aliases for most things.  (Ex: gc == "Git commit"), with a vibrant community to go with it.
  • Package Manager: Homebrew.   I have no idea how I survived on windows without a decent package manager like apt, yum, or brew.  I'd switch away from Windows to *nix or Mac for this alone.
  • Editor: Sublime Text 3.  I'm an old vi guy.  Sublime has let me forget the envy I always had for not learning emacs.  Like homebrew or oh-my-zsh, has a rabid, vibrant community.
  • IDE:  Honestly, none.  I like command line tools and Sublime, but I acknowledge IntelliJ 13 is peerless in the Java/JVM IDE world.  (Sorry, Eclipse...I've been a user since 2.11, but you're just a hot mess.)
  • Virtualization: VirtualBox.  A colleague turned me on to this a few years ago, and paired with Vagrant for setup/teardown, it's great.
  •  Scripting Language: Ruby.    This one feels like the old Simpsons plot "So you finally decided to steal cable tv."  Ruby is NICE.  It's like PERL grown-up, without the awk acne:    The language just falls away, and you're dealing with the problem at hand.
  • Backend framework (tie):  Rails 4.x or Grails 2.x.  Yeah, I'm not taking a position here.  If you're playing with the JVM ecosystem, Grails is the obvious pick.    Rails is (and remains) a breath of fresh air, especially with the tools that go with it:  Bundler, Berkshelf, rbenv.  Moreover, there's a frenetic vibrancy in the Rails community that's infectious.   Maddening--sure--but infectious.
  • Browser: Chrome.  Frau Perry croons, "We fight, we breakup, we kiss, we makeup."  Chrome makes me uneasy the same way IE 5 did back in the day--it's becoming a monoculture, and Google's starting to get evil with it.  Still, it's fast and its fundamental architecture still has Mozilla's Firefox playing catchup.
  • Source Control:  Git, specifically Github and Github:Enterprise.  Pull Requests and social coding have changed how developers work in the last 5 years.
  • Mobile: None.  I was a phandroid, but I'm still on the smartphone wagon for 1 year and 6 days now.  I'm not first in line for a mobile development position, but there's enough left in server and web development that I think I'll be okay.
  • Social Media:  Twitter for short-form and Facebook for long-form.   Facebook's just inescapable if I want to interact with family, friends, and church.  They seem intent on running everyone away, but the simple network effect keeps everyone there.  I much prefer twitter, but understand not everyone can stand it, particularly since they went public and started screwing with everyone's   Google+ is dead, and has been since 3 months after it launched.  Google should merge it with Youtube (the perfectly good social network they already had) and be done with it.
  • Miscellaneous: Vagrant, Chef, gvm, Github Pages, Jekyll, Markdown, npm, 
/Stream-of-consciousness

Popular posts from this blog

Monday Mope

RegisterForPrintAsyncNotifications

The reality of the next car purchase