My Rails Rumble app this year is meant to be the beginning of a bigger project that I’ve been thinking about for some time.
I didn’t choose this idea because I thought it was a particularly good match for the Rumble, but because I really wanted to get it going.
The Idea
Creating chord sheets in a word processor really sucks:
- It is difficult to correctly position chords, therefore:
- It is very slow, you can’t place chords in real time.
- You can’t transpose songs easily.
I am attempting to make the process of creating, editing, and using lead sheets much more natural, intuitive, and easy.
The App
mysongnotebook.com is up and running! Well, crawling might be a better term, but the important thing is that it now exists.
Here’s what you can do right now:
- Import existing chord sheets from a format like this
- Reposition chords by dragging them around
- Edit and add lyrics
- Construct new (basic) chords from a chord creation palette
- Add more chords to a song
The application is plain, buggy, and almost unusable unless you know what the bugs are. Most of the issues right now are easy fixes, but are things that I either didn’t have time to address, or that I broke in haste during the last hour of the competition.
I’m eager to fix the existing bugs and want make the app at least minimally usable soon.
I have a lot of new feature ideas that I really like and want to start working, but I don’t want to get into those now.
The Experience
This year was quite a challenge for me in a number of ways.
Technically, it was filled with some new experiences and difficulties. My project last year was basically all stuff I’d done before or know how to do — it was just a matter of putting the pieces together. This year was much different. I was doing things I’ve never done before and the creation process was a big learning experience for me.
It was my first time using CoffeeScript and Underscore.js, both of which I really enjoyed. I also made a last-minute decision to use Backbone.js — released just two days before the Rumble began — which drove me to write my CoffeeScript in a much more organized fashion than I have in the past.
Almost all my time was spent writing CoffeeScript. I used haml-js for templating JS views.
I feel some disappointment with how far I got. I recognize a lot of places where I could have made better decisions in how I used my time. I spent too much time dealing with implementation roadblocks or details where I should have changed my approach or made it work in a different way.
Another challenge was that I was not in a good work environment. I am living in an apartment in Beirut, Lebanon with some family for a few months and I don’t have an office here. Working from the dinner table in a shared space is not good for productivity. The internet in Lebanon is infamously bad — worse than many third-world countries — and I had some connection problems at various times. I also had to go to a restaurant with internet for the start of the competition because we didn’t have electricity.
Overall I am extremely pleased that I used the Rails Rumble as an excuse to get this thing started!