I’ve long decided to use Ruby on Rails for this project. I initially wanted to begin this last winter while I was on co-op, but that didn’t happen. Then I aimed to have it working by Spring 2006, but the craziness that is life prevented me from even dreaming about coding for this site.
After my spring semester, it took me at least two months to recover from the lack of sleep and apparent case of shell shock experience from the whole ordeal. I may seem like I am over exaggerating a bit, but a friend of mine who took the same class told me a few days ago that back after the class had ended, every time he flipped the switch in his apartment as the sun was going down he got an overwhelming sense of dread that only a long walk outside for a few hours cured. Why did he have this reaction? He and his partners apparently spent so much time in his apartment coding day after day, night after night, that as the sun was setting, he would stand up from his desk and flip the lights on in his apartment. This then led to long nights with very little sleep. I can only imagine that this trigger of flipping the light switch was ingrained in his memory as an imminent sign of pain.
I digress… The past couple of months I worked my third and final co-op designing an oracle database with a Ruby on Rails front end. While not at work, I used what I did learn of the rails framework to begin initial plans for how I was going to write this monstrosity I had envisioned. I set up a subversion repository on my web host and for most of that time it sat there with a crappy rails skeleton and an image I had drawn almost a year and a half earlier. Today, I went back and actually formatted the directories into the suggested repository layout. Before I kind of just threw the skeleton application code into the top level, now I’ll work from the “trunk” level and make releases to “tags”. Maybe at some point there will be a need for using branches but right now I don’t foresee this.
I also realized that rails just recently made a new release to version 2.0, and now I’ll have to figure out what has changed since this past semester so I can use the new stuff going forward. I have concerns that the initial application is going to be clunky and do horrible on stress test once more users are accessing the site. It was bad enough when I threw together a small application over the spring for a class I was enrolled in that was hosted on the dreamhost server I am using. I was yet not aware of how to use fastcgi, which apparently is very important. Lesson learned. I am also used to the high speed oracle and unix servers at my previous job. I don’t have the money or capacity for oracle, so MySQL will have to do as well as any hosting I can currently afford. I don’t plan to even make money on this project, so we will have to see how popular it gets and whether or not I can handle that load.
People won’t be able to see anything I am constructing until at least the alpha stage. Maybe I’ll let a select few see the development server I’ll have running with the current release of the code, but just for display purposes.
I’m going to start at the most logical place, designing my database! Rails has a nice way of constructing databases through migrations. However, at my previous job, I found this was only good for creating the different tables and associations you would need. In no way are migrations useful for loading large amounts of data. In my job I was storing over half a million rows in a lot of tables and migrations, especially with fixtures, were a disaster.
I am hoping I can get an alpha out before this semester is over. Let’s get going!