solnic on blog web development, ruby, javascript and other crazy things

18Oct/090

My development setup

It’s something I always wanted to write about and also a response to Peter Cooper’s post on RubyFlow calling to write about tools that we use everyday to do Ruby on Rails development. I like the idea since there are a lot of options and finding right tool for the job is essential.

Let’s start:

Hardware

  • MacBook Pro 15″ with Intel Core 2 Duo 2.40GHz and 2 gigs of RAM - absolutely enough. This is a decent laptop, the only thing which bothers me is its temperature, sometime it burns my hands, literally…
  • Logitech VX Nano Cordless Notebook Mouse – the best notebook mouse ever, has the smaller receiver out there + I change batteries like twice a year, love it

Base software

  • Arch Linux – it’s my 6 day with this distro actually, I’m a Gentoo fanatic but from time to time I try to use something different. I usually go back to Gentoo after a month or so. We’ll see how I’ll end up now. So far I really like Arch, it’s extremely lightweight, fast and stable. Software availability is as good as in Gentoo. It’s also easy to make your own packages which is crucial for Ruby developers since it happens that we need various non-standard stuff, like let’s say Nginx with Passenger support. I’ve got a feeling that this time I won’t go back to Gentoo
  • KDE – it’s my desktop environment and one of the most important reasons why I’ve switched back from OSX to Linux. KDE’s window manager is highly configurable and gives you features like moving and resizing of windows via a special key + mouse move/click, custom settings per application / window class so for instance you can configure that console window will always appear on the third virtual desktop snapped to the upper-right corner of the screen, useful desktop effects ie “Present windows” which is something like Expose in OSX but you can filter out windows by typing key words, cool window transparency (you can alt+mouse scroll to change window’s opacity…it’s useful, believe me) and much, much more…I just can’t work without those things. Here are KDE’s apps that I use:
    • Konsole – terminal emulator, very powerful, has tabs, horizontal / vertical view splitting, bookmarks and fully customizable look’n'feel
    • KRunner – something like quicksilver for OSX
    • Dolphin – file manager, supports remote protocols, in my opinion the best file manager ever
    • KDiff3 – GUI for displaying diffs and merging, it’s my mergetool in Git
    • KColorEdit – color picker and editor
    • KRuler – on-screen ruler
    • KSnapshot – for doing screenshots
    • Klipper – a handy clipboard manager, supports custom actions
    • Amarok – music player
  • NetBeans – I use this great IDE even for writing tiny scripts, for me it’s the best choice. I’ve tried many other IDEs/editors including Eclipse, JEdit, RubyMine, TextMate and others that I don’t remember now and NetBeans works best for me. Key features are powerful editor with macros and great shortcuts, ctrl+click navigation, fantastic JavaScript support, debugger, test/spec runner and…support for multiple projects in the same window, something that most of the IDEs don’t have and I really need it. I use following plugins:
    • Ruby and Rails – what a surprise :)
    • Database – to access databases via a GUI
    • OpenFileFast – written by my friend from LLP, Marcin Kulik. Works like the open file dialog in TextMate, highly recommended. You can read more here
  • Firefox – I’ve switched from Opera a long time ago because of Firebug, now I’m about to try out Chromium for normal web browsing and use Firefox only for the development. Plugins that I find useful:
    • Firebug – must-have for every web-developer
    • Web Developer – easy access to things like clearing cache, disabling JavaScript etc.
    • Chat Zilla – IRC
    • Read it Later – I never have time to read interesting things from Google Reader in the moment I find them so…I read them later
    • Delicious – I still use it but rather for sharing bookmarks between work and home

Dev tools:

  • GIT - probably the best SCM in the world
  • QGit4 – sometimes I use this git gui to view history of a project
  • ZSH with a pimped prompt for GIT
  • Nginx with Passanger – better then script/server
  • VirtualBox – I have 3 Windows virtual machines each with different version of Internet Explorer, only for testing of course

Communication:

  • Skype – Linux version is very crappy, unfortunately I’m forced to use it
  • PSI - great Jabber client
  • TweetDeck – powerful Twitter client, Adobe AIR based

That would be it!