Archives for September 2010

Sep 2010
AUTHORMike Benner

IntelliJ, The IDE for Everything

I don’t even get involved in the VIM vs EMACS flame wars.  Why?  Because I am one of the people that can unify them.  I love a good IDE.  I am willing to put up with the “bloat” to gain the benefits a well built IDE can bring.  Over the years I tried many of them and kept going back to Eclipse, even if it left me unsatisfied.  Last year I started using RubyMine from JetBrains for Rails development and never looked back to Textmate or RadRails.  Recently, I started writing more Flex and Android code, as well as, maintaining older Coldfusion applications.  This drove me back into Eclipse, but left me wanting a RubyMine like alternative.

After some searching I found IntelliJ (another JetBrains product) that actually worked with Flex, Android,

Coldfusion, Ruby and Rails.  I have now used it IntelliJ for all of my development for that last few months and will not be going back to Eclipse anytime soon.  While it is heavy, it runs rings around both Ganymede and Helios on my Macbook Air.

Support from JetBrains has been awesome.  They have been very responsive to all of my questions (although they could have been avoided if they had better documentation) and are constantly updating their various IDEs.  Which is another thing, they have standalone IDEs for PHP, Python, Ruby/Rails, .net, Java and even basic HTML/CSS.  While all appear to be built of the granddaddy IntelliJ, their developers are great about building IDE specific functionality into plugins for IntelliJ.  This allows one of my favorite features, creating modules for different languages in one project.  So now, can have my Robotium Android Tests, my Android app and the web app that provides an api all open in one IDE that is truly useful across the different languages.

It also supports hooks into TeamCity (their CI Server) and YouTrack (their bug tracking software) which is a feature I am looking to try out next.

If you are looking for an alternative I would recommend giving JetBrains a try.

Sep 2010
AUTHORMike Benner

Robotium Presentation

Here is the video from the presentation I gave on Robotium (Instrumentation Testing Framework for Android) at Gangplank a couple weeks ago.


Sep 2010
AUTHORMike Benner

What We All Should Strive To Hear

Today, I had a previous client post a Tweet that made my day.

“Just heard a woman trying to explain Rails to someone. Suddenly thankful for @refriedchicken, who speaks English and explains it well.” via @bullybully32


As a developer that statement means more to me than any compliment from peers on my code quality, testing discipline or any other technical aspect of my craft.  To be a great developer you need to be able to cross that invisible line from technical geek to average joe when talking with clients and others that do not have a technical background.  Being able to explain solutions and ideas in a manner that they can understand will alleviate frustration and help find solutions that otherwise would have been missed.  If this is an area in which you struggle, there are somethings you can do to practice, learn and improve.

First, call your mom (or other friend/family member that doesn’t have a technical background) and ask them what they would like to know about what you do for a living.  Then take 15 minutes and try to explain it to them in a way that keeps their interest peaked and has them asking more inquisitive questions.  At the end of your conversation have them explain it back to you.

If, at any point, one of you become frustrated, this is a good sign that you should stop and rethink your approach.  Find a subject that you have a common interest in and try to make an analogy between the two topics.  Tying your explanation to a subject they have an interest can you a long way to keeping focus and excitement in your conversation.  Also, taking a deep breath and a moment to relax will help keep frustrations from interfering with the learning process.

Remember conversations are a two way street.  Take time to listen to their questions.  When they start speaking, don’t tune out and start thinking about what you are going to say next.  Listen.  Their questions and inflections can give you clues to what they are struggling to understand even if it is not what their words are conveying.  This is probably the most important aspect of communicating with others.

Listen. Breathe. Communicate.