Summer Project
Now that I am out of school for the summer, I thought it would be fun to brush up on some web application skills that have been neglected in recent years. Why would I want to do web programming? Well, I firmly believe that the future of my participation in geekdom rests in my personal ability to throw together some kind of web application. To be a true geek, you must be able to program in some language. This is because geeks want their computer to do what they want, not what some other programmer thought would be cool or useful.
I used to fill this need using Delphi. I love using Delphi to this day; however, now that I have sworn off Windows for Mac OS X, I wanted to branch out and participate in something new and innovative. After hearing all the raves about Ruby on Rails, I decided to give it a try.
Ruby on Rails has several advantages for me. First, it is simple. That's good! I need something I can learn in about 6 weeks spending maybe 2 to 3 hours per week. Second, it's new and innovative. Based on the Ruby scripting language, Ruby on Rails provides a true Object Oriented language for web applications. This will also give me a refresher in OOP. Third, in about 2 hours, I was able to setup a full development environment on my Mac Mini. This was much easier than previous environments I've struggled with setting up (LAMP for example). So far the environment is running just fine with full connectivity to MySQL. (I will probably do another blog on how I got all of this setup later.)
So, what is my project? I have decided to pursue one of my programming dreams and build a Family History application. I have used Family History applications extensivly in my own research but I have not yet found one that I really liked. Believe it or not, I have put quite a bit of thought into designing such an application. My first phase requirements are pretty simple:
1) Build a ruby script that will import a GEDCOM file into a simple database.
2) Build another ruby script that will parse the GEDCOM database into a relational normalized database.
3) Build a simple UI using Ruby on Rails for navigating through the individuals in the database.
If I can accomplish that before school starts, I will be really pleased with myself.