spacing hack


solo piano 20101215

I have database-a-phobia. Surely, there's an officially recognized phobia for that.

So instead of doing the "proper" thing for my ruby rumble last night, which would've been building a proper CRUD interface, instead I'm predominantly storing my data in a google spreadsheet, then pulling it into the database that way. Which means, I can freely blow away the database on a whim and run one script to get all the data back.

Doing things the wrong way solves many problems for me, at least temporarily:

  1. as mentioned, I don't have to worry about losing data since I can blow the database away on a whim. I'm using datamapper and was having problems with auto upgrade and sqlite behaving strangely depending on whether the code was called from irb vs through my sinatra app. I still don't understand it (but would like to eventually), but so far, the only real fix I've found is to delete the sqlite file and start over. So point is, my paranoia over data loss isn't completely without merit.
  2. I get to use the spreadsheet's timesaving features, such as plain old copy/paste and having it suggest things as I'm typing if I've already typed something similar before.
  3. Time/motivation. I'm trying to get the unique parts done while the motivation is still fresh. I can learn how to build a CRUD admin in the off-season.

So what's the project?

I'm keeping track of my rock band drumming scores. The actual thing I want is what I keep calling an inverse search, which is, I want to be able to put in "expert level, 50% playing speed" or similar parameters and have the app tell me either 1) what songs I've never practiced or 2) what songs I've practiced least recently.

I want to make sure I'm practicing all of the songs on a regular basis, so the app is so supposed to make it easy to figure that out.

Second to that is actually tracking progress. To show that yes, I am getting better.

At this point, the data side is (I think) done. Now I just have to build all of the custom database queries I need and the frontend part of the site.