cap deploy
For the past couple of weeks, between post start-up brain resting, job
searching and cover letter writing, I have been working on a little scratch
the itch project.
You know, the ones that we developers have all
the time. "I really want something that does X, but everything
currently out there kind of sucks." Though, recently I've found most of the
things that I want are already out there, but they are a pain to use. I'm not
sure where I read it, most likely either Steve Yegge or Joel Spolsky, but the
general gist of the thing was that you could probably make a decent living
taking some decent products out there and simplifying them down so that any
grandmother could use them.
At about this time of year, I start
to get questions about what sorts of things I would be interested in for
Christmas. I generally respond with blank stares as I really can't come up
with much that I need. That said, throughout the year, I will occasionally
stumble across something that might be fun or practical, but I can't really
justify purchasing it myself. What I needed was a way to list those things
somehow and let my family see it online.
I took a crack at doing
a wishlist a couple of years ago as a trial Ruby on Rails project, but I was
pretty busy with other things at the time and while it was technically
functional, it wasn't really any easier than what was already out there. This
time around, I took a look at some other wishlists on the market and while a
few were good, a few were okay, none really satisfied me. This is probably due
to the fact that I had been itching for a new programming project for a bit.
Anyhow, I took a look at what the other sites offered and started coding. I
have just put a closed beta onto a live server for friends and family and
should be ready for a wider audience shortly.
Currently it's good
old fashioned HTML, no rich Javascript features or any fancy AJAX yet. That's
coming, but my goal is to make the thing work well with a simple UI, then
enhance it slowly. My past couple of projects focused on building a rich web
user interface first, which was followed by a half hearted attempt to bolt on
a simpler version for browsers that do not have full Javascript support. This
time, I am taking the opposite approach, to make a user interface that can run
on any browser under the sun, then start adding features to make it more
dynamic. Is this a good approach? Possibly, possibly not but I am going to go
with it this time around. The only way to really learn if a strategy is a good
one is to attempt to use it.
So, this is a Ruby on Rails project.
I am trying to do things the Rails way as much as possible. I am using an
Apache web server to serve static content and load balance between what is
currently a cluster of three mongrel servers. This is massive overkill, but
was fun to setup. Deployment is done with capistrano and I am developing in Netbeans, which didn't
crash as much as Aptana
RadRails, so I'm using it. Netbeans is a bit uglier, but what can you
do... Naturally, everything is done in Linux. Subversion for source code and
I'm trying out Mantis
for bug tracking and such. All in all, configuration overhead probably ate up
about two days learning everything and bashing my head against various
walls.
Rails has been great to learn so far. I'm only getting
faster at adding new features and cranking out more appropriate testing
scenarios, which is good. Not only that, but I can see a lot of things that
will improve my Java coding abilities as well. I suppose that's why side
projects are generally encouraged...