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,