Essential Ruby on Rails tools for the Ubuntu User
Window’s doesn’t cut it
Ruby on Rails was the straw that broke the camels back for me, and motivated me to switch to Linux on my desktops and laptop. Since then, I’ve tried various tools, but here are a couple of things I wouldn’t like to try to do without.
Editor - Bluefish
Quanta is a close runner up but I find Bluefish to be “the one”.
Why? Well for me an absolutely ESSENTIAL need in a rails editor is a really good directory and file tree in the left nav. It’s great that rails has a place for everything, but let’s face it, rails applications also have lots of files. If I had to click Open and navigate to a file I’d shoot myself.
Bluefish sidebar does a great job of:
- 1) Finding your rails app
- 2) Making it the base directory of the tree
- 3) Allowing you to expand trees as needed
Personally, I find the visibility of files so good that as a general rule, if I can’t see all of the open file tabs without scrolling left or right, I close all files and start again.
Syntax highlighting is great, although you’ll have to add .erb as a ruby extension through the setup.
Feature wish: Multiple rows of open tabs would be nice, but then I’d just get into bad habits again.
MySQL tool - Navicat
I’m a command line kinda guy.. I’ll use a terminal to move files before I drag and drop, but for some reason I’ve never got hooked on command line sql. That’s possibly because in the early days, I found Navicat.
I know that phpmyadmin is somewhat of an industry standard, but personally I hate it! Navicat is a locally installed application, available for Windows, Mac and yes, Linux that for me blows the socks off anything else I’ve tried.
As it’s not running on the host, then there is of course the inconvenience of having to configurating mysql to allow your IP, but it’s worth it. I use both the Linux version, and the Windows version running under wine. Pretty much the same, except I have a Windows license, so that unlocks some extra goodies. I use navicat for:
- Adding sample data
- Fixing data ( not structures of course ) during development
- Administration on live sites ( e.g. flagging that someone has made a donation at Listingly.com )
- Browsing and generally perusing during development
- Backups! One click and you have a local backup of your remote application
Give it a go. 30 day free trial.
Quake style Terminal - Yakuake
Yakuake is a terminal that reveals and hides itself with the F12 key. For some reason, I just like using it for running my development server process in. It’s no different from a terminal window, but it just feels good to me to have it tucked away there.
SSHFS
Yikes, I’m going to reveal my bad habits now.. in that I don’t SVN and I don’t capistrano. I’m a bad person. It’s on the to do list now as I need to work along side my buddy benr75 on some projects, so no doubt I’ll take what he indoctrinates me with and apply it to my own stuff too.
Until then though, SSHFS is the ultimate. SSHFS is a way to mount remote folders as local folders across SSH. In other words, if you have SSH access to your server, you can mount it locally!
My personal setup is that I develop in:
/home/[user]/www/rails_app
and remote mount:
/home/[user]/rrr/rails_app
as the equivilent application on the remote server. I then have a couple of scripts:
getcore [railsapp] and sendcore [railsapp]
which either fetch or send:
/public /app /db
Of course after that I still have to manually run migrations, and restart mongrel processes but for a single developer environment I bet from a purely time efficiency perspective this effort is significantly less than the effort of using SVN.
As an aside, I always use SSHFS all the time when I realize that I have a file at home that I need at work and visa versa.. just open up an obscure port on your firewall and map it to 23 on your machine and you can mount the remote machine as a local folder.
Genius ;-)
XaraLX - In my mind the ultimate grahic design tool
Worthy of a mention as my rails projects would not be what they are without XaraLX. It’s really nothing to do with Rails, but for years and years this has been my tool of choice ( over Photoshop and Illustrator ) for design and implimentation. I cried for joy when I saw that they had an open source project!
Ruby on Rails: An introduction to maintenance and support benefits
Why choose Ruby on Rails?
There are many answers to that question. Why DO people choose Ruby on Rails over PHP, or Rails vs ASP? What makes Ruby on Rails BETTER?
I’ll probably write a few posts in this series, but for today I’ll document a new experience for me that has shown me that Ruby on Rails helps you create maintainable and supportable websites.
This weekend for the first time I’ve been using someone ELSES Rails application - this blog, Typo and it’s the first time that I’ve realized just how true it is that “opinionated software” creates ease.
Rails is described as “opinionated” because although there are many different ways to do the same thing in a development environment, Rails has decided that there is a RIGHT way to do things. Some of these opinions are boiled into the framework ( like how files are organized ) and some are simply rules - call them Rails coder etiquette ( like which files should have logic in them and which should not ).
Up front while learning Rails this can be a bit daunting. For example, after using MivaScript for years I easily picked up PHP because all I had to do was learn the PHP equivalent commands - the overall picture was pretty much the same. Rails, in contrast, with it’s Model / View / Controller structure, and relentlessly Object Oriented nature threw a ton of new concepts at me all at once. Worse still, I was a few years behind with styling methods, so had to go cold turkey on using Tables for page formatting at the same time. It was rough.
Now though, here’s the thing.. I can go to ANY Rails application and instantly work on it, because everything is where it should be. Likewise, if I get hit by a bus, any Rails guy can walk in and maintain my stuff. It’s amazing.
In contrast I’ve had to dig into some php recently and I’ll tell you what, the way a TYPICAL php application is put together offends me deeply!
So. To summarise, looking at this from both sides:
- It’s easy to jump into a foreign Rails application and know your way around
- If you have someone develop a Rails application for you ( as long as they are a decent coder ) you’ll end up with something that doesn’t tie you to them for an eternity.
- If you build a rails application, and bring someone else into the project you don’t have to do much explaining on your methodology
- Technical documentation can be limited to the “exceptions” to the rules
So, to the guys who I share an office with, I’m sorry guys, but I’m going to CONTINUE bugging you on a daily basis with those spontaneous “I LOVE RAILS” outbursts!
New Blog for WUMP and ME
I’ve decided to stop shotgun blogging and consolidate all topics right here no it’s own domain.
The goal is two fold;
- Blog often in a place that can be perrmanent
- Be my own server admin on a site that isn’t critical
To that end, this blog comes to life on slicehost.com. I’d go into all the server setup, but that would just help you hack it - so I won’t. The blog itself is TYPO, a Ruby on Rails application.
If you use it, WATCH OUT, I’ve already found a bug. The screen to manage which plugins appear on the right is a bit out of control. My advice is to PUBLISH after every incremental change you made through drag and drop. If not, you might end up with a nasty NIL issue and the inability to change the sidebar further.



