Years ago I worked with Linux (Redhat 3.2, SUSE, Gentoo, and Slackware among others) and also played around with PHP. I’ve never really gotten too keen in PHP, mainly because it just seemed sort of a mess. But when I needed something to get the job done and didn’t want to wait on the bureaucratic nonsense of corporate governance, PHP was there for me, albeit with a headache to follow.
However my interest in Linux and alternate development stacks, being in Southern Mississippi left me pretty much one option if I wanted to get into software development: Microsoft’s .NET Framework.
So I learned that, and work with it regularly, and I dig it. Most of the time. It serves its purpose. I have however wanted more, so I’ve started digging into other things again. This is something I do frequently, and in my not so humble opinion think any serious developer should also dive into regularly. Step outside of your comfort zone and try other things out, often this helps expand both options (such as .NET and Java, or Ruby on Rails, or whatever).
Recently I’ve decided I’m diving head long straight into Ruby on Rails. I’m working on a new personal project and have determined I’m not going to use one lick of Microsoft Software (you can read in other motivations if you want to). This project will be 100% Linux (maybe some Apple Gear & Bits) and Ruby on Rails. I’ve not determined much beyond that. Database or data store, TBD, graphics, TBD, and other such are all TBD.
Ubuntu Download
With that, this is how & where I started from the ground up.
I snagged Ubuntu and loaded it (yes, it does dual boot on my machine that runs Windows 7). http://www.ubuntu.com/
Next I went straight to TekPub and started downloading some of the Ruby on Rails Video Tutorials the crew over there has put together. I purchased a membership because they’ve put out a lot of great material on everything from .NET, Entity Framework, NHibernate, Good SOLID Code, to Linux and Ruby on Rails. I like the efforts, the teaching style, and they’re rather entertaining. If you really don’t want to shell out any cash, there are other videos available on the Ruby on Rails Site.
I hit a few snags on working with Ubuntu, mainly because I had not touched a Linux UI System in years. The first two issues were; 1) How do I change the screen settings to not duplicate my dual monitors and 2) How do I take screenshots. < Click on the respective issue to see what page I found to resolve the issue. Yes, they were both that easy to resolve. Literally first click links of Google results. Very cool. 🙂
The next issue I ran into was related to playing the TekPub Videos. Using the Synaptic Package Manager however I was able to download all the additional codecs I needed. I have to say, since the UX was vastly superior to Microsoft’s Windows Media Player (or whatever it’s called these days) I was able to get the codecs without much manual searching. I just clicked ok, the package manager popped up, found what I needed, and I clicked OK. This experience reminds me more of Apple’s OS-X than Windows strangely enough.
While watching the video, which includes great coverage of what Rails 3 is all about, I worked through the following bits. For these I also left the GUI Synaptic Package Manager and went with the command line, simply, it is just easier and faster.
Bash some Ruby Version Manager. Note I put in “cd~” just as a reminder to get to your user directory. Most likely, after installing RVM you’d already be in that directory.
Now if you check with “ruby -v” the ruby 1.9.2p0 version will be default.
Setting Ruby 1.9.2 as Default
Collecting Gems
Now you’ll need some bits, in this case, called gems. This is one of the very powerful parts of Ruby on Rails. Beware, these bits have glorious AWESOME all over em’.
[sourcecode language=”bash”]
gem list
gem install rails
[/sourcecode]
The gem list command should list what is currently installed. Initially, only the rake gem is installed. Once you execute gem install rails, then do another gem list, you’ll have a whole set of gems installed.
Checkup On Your Software
These are just a few of the commands that are helpful in identifying what is installed now. Try em’ out to get a view of what is available.
[sourcecode language=”bash”]
rvm gemset name
gem list
[/sourcecode]
Over the last few weeks I’ve seen a few comments regarding rework. One of those comments was Julie Booth’s (@uxsuccess) comment on Twitter regarding rework,
“Do not fear rework!!”
That kicked me off with a response of,
“Do not fear rework!! /via @uxsuccess so true, plz plz don’t cower before rework!!! :). Listen to @uxsuccess!“
Then just recently I stumbled onto a book I’ve been meaning to read called Rework. This book is written by the crew at 37signals. This company is best known for SaaS Offerings Basecamp, Highrise, Campfire, and Backpack. All of them created with high quality, solid UX (User eXperience), probably great code quality, maintainability, and the list of goodness goes on. In addition, the other thing that 37signals is widely known for is their efforts around Ruby on Rails (created by DHH@dhh).
Rework is a fundamental requirement to actually getting an elegant solution. It might seem chaotic or disconnected at first, but it quickly becomes a vastly superior way of doing things instead of the “Do it once, do it right the first time” nonsense. Things need to change, doing things right the first time is almost impossible anyway. That is why you practice playing guitar before becoming a virtuoso, you learn to hammer before becoming a carpenter, you sketch and draw before becoming an architect, and the list goes on.
Don’t expect perfection, expect creation. That’s what I’d say. If you can’t tell, I agree with the Ruby on Rails mindset, with a lot of what DHH/@dhh writes, and I especially respect what 37signals has accomplished and the revolutionary business ideas in the book Rework.
These types of ideas – simple rework and the open minded approach to rework – makes a business faster, more agile, and responsive to their customers’ needs. These ideas, these mentalities are what have created great companies in the past and will build great companies in the future. The companies that suffer the traditional approaches and mindsets are at significant risk of being eliminated from the market altogether.
There are many others out there also, that push these types of ideas and mentalities around rework, refactoring, and agile practices. If you haven’t checked out who 37signals is, the book Rework, or Ruby on Rails you should stop whatever you’re doing and find out about this company and its products. Especially find out how their products were built with business agility in mind, with a strong dose of Agile ideals. With that I bid adieu for the day. Happy coding, and don’t fear the rework.
You must be logged in to post a comment.