Archive

Archive for November, 2012

cool tools, cool project

November 30, 2012 Leave a comment

i’ve had the good fortune to work on a green field Rails project. Here are some of the “i would not want to do without” tools used on this project

  • ruby 1.9.3 – so much faster than 1.8. wow. 
  • rails 3.2 –  rails just keeps getting better and better.
  • mini-profiler –everyone should want a fast app. found lots of unoptimized queries.
  • sass — sass makes css fun!
  • coffeescript — coffeescript makes javascript feel like ruby.  that’s a good thing IMO.
  • poltergeist/phantomjs – headless javascript testing. so much better than having Firefox popup.
  • rspec — i love the rspec DSL.
  • capybara — super useful for our request specs.
  • devise — it works.  easy to use.
  • vcr — essential for service tests. call out once, but cache after that.
  • cancan — great role system, easy to use.
  • kaminari — works great for paging (along w/ jquery.pageless)
  • sendgrid — send notification emails, easy w/ sendgrid
  • librato — low level metrics like rows written on some models,
  • machinist — love blueprints that are either persisted to db or not.  easy to use.
  • redis — super fast key value storage.  great for caching.
  • resque & resque-scheduler.  for asyn and cron jobs, easy to use, fast.
  • simple_form — a great improvement over standard Rails forms
  • airbrake.  you want to know when exceptions happen!
  • activeadmin.  most everyone needs a admin backdoor to their app right?  here it is!

 

Neat stuff that we use that i’m not huge on

  • inherited_resources — i prefer seeing the controller actions explicitly.  it makes peer review on-boarding new people easier.  less magic.

Other essential tools & practices

  • a great, easy to use CI system.  We use CircleCI.  nearly turnkey and hooks into github nicely. 
  • incremental checkins.  We use git, github, topic branches, pull requests, and ey cloud deployment commands.
  • peer review of pull requests:  either the code is pair programmed or the pull request is peer reviewed prior to merging into master
  • Pivotal Tracker.  A great simple tool that does the job.
  • NewRelic:  essential for app performance monitoring.
  • Mixpanel:  great for funnel analysis.  we measure all activities in our app and important properties for those activities.
  • Twitter bootstrap.  it’d be great to have the luxury of a talented designer, but we didnt.  this did a great job.  it’s important to get a designer in there eventually, or your app will look like a twitter bootstrap app.  this might be ok for a captive audience, but not mass consumption.

Using this great toolset has made this project a joy to work on.  Hope this helps others.

Categories: tech