Hacking away with Linux, Ruby, Rails, and so on and so forth
13 Mar
After 10 weeks, I’ve now been able to watch all of the final presentations from the different groups. Considering that my group was the only “experienced programmer” team, I really didn’t know what to expect from the others. All in all, I’ve been incredibly impressed by the various projects they’ve managed to produce. Most importantly, it’s clear that the quality of the project ideas has nothing to do with programming ability. Implementation is another thing, but even groups of self-proclaimed “newbies” with only (prior to this class) basic HTML exposure came out with some very cool projects.
Something I hadn’t expected, but makes sense in retrospect, is the correlation between prior experience and willingness to learn new things. The class represented a huge cross section of prior-experience from student to student. Overall, those who knew the least starting out were the ones most willing to embrace new ideas and technologies. The eagerness with which the “beginners” jumped into their ideas was truly inspiring.
I spent a decent amount of time in and outside of class evangelizing Rails since it was so appropriate for a lot of the project ideas out there. This had different effects on different people. One group actually ran with it and built their entire project with it. A few people were probably bored to tears by my rambling. The majority of the class now knows me as the “Ruby on Rails guy”. I’m glad that I was able to expose more people to the framework, but I don’t think I was effective in conveying the core concept that I work by:
If you’re going to tackle a problem, use the best tools available.
Rails is a great tool for a wide variety of web apps. It is not the be-all end-all solution to life’s endless problems. I think I came across more as “Rails is the answer to everything” instead of what I was shooting for “Use new tools, not just what you already know.” A large part of this problem stems from our own group using Rails for the backend; something I was actually trying to avoid.
The aim of the class is for each person to learn new technologies and develop something with them. Our project, due to the nature of its complexity, was going to require a lot of coding. Once it became clear that we were going to need our own backend DB, I wanted to avoid using PHP. Not because it wouldn’t work just fine. There’s nothing wrong with it, especially for a project this small. The problem, as I saw it, was that 4 out of 5 people in our group had a medium to high level of experience with it. That doesn’t allow for a lot of “new” learning.
My motivation for using Rails in our group was to introduce already-skilled programmers to something new, even if it meant limiting my own exposure to “new” things. For my own learning, I made sure to take time outside of our group meetings to teach myself other pieces that I haven’t seen or used before. The most visually interesting result of that is the drag-n-drop ordering of Categories. Working out the SQL queries needed to find stores that are open at a given time definitely stretched my boundaries. Obviously not as major as learning a whole new language, but it was a great way to push myself beyond what I already knew coming in.
Were I to do it all over again, I would have spent more time trying to preach the core philosophy of “use the best tool” instead of keeping the focus on Rails. For example, I only realized last week that we, it appears, are the only group using any kind of version control. Giving a talk on basic SVN usage, I think, would have been valuable to the class as a whole.
I had a lot of fun working on Open Past Midnight for this class. After all, I’m a programmer. But the neatest part of this class was getting to see what other people came up with, especially when they had to work with limited experience. That constraint can be incredibly discouraging, but they pulled through beautifully.
19 Feb
For those of you that have not heard, my grandfather is very ill and in the hospital. I’ve been back and forth to LA several times this last week to try and help out the family as much as I can. Even better, I picked up a really nasty cold somewhere along the way. All in all, I’ve missed a bunch of classes, a few assignments, and a midterm. I’m playing catchup, first and foremost on Open Past Midnight. It’s one thing to get behind on my own work, but to set back my whole group is not acceptable.
That said, we’re transitioning the Open Past Midnight project to Rails since we’ll need to be dealing with our own database. I’ve already got Evan set up with the dev environment. Then again, he’s running Leopard, so it took all of 5 minutes. The other teammates all use Winblows, so it might take some extra time. Either way, I am eternally grateful that Rails 2.0 now uses SQLite as the default DB. No longer will I need to take time to explain MySQL privilege tables to my classmates when all they want to do is some basic development.
More to come in later posts, but we’re still going to try and deploy this project on Dreamhost. Since it’s hardly a commercial endeavor, I’m not as worried about DH’s poor Rails support. It will be interesting though to see how far they have (or have not) come.
22 Jan
The first assignment for COGS 121 was due last week. I worked up a simple site on Practical Chinese for Nerds. The content leaves a lot to be desired, but that was essentially filler for me. I was focusing on two things while I built this site.
The thing I’m really looking forward to playing around with is OpenLaszlo. It looks very powerful, and I’ve got a few ideas for projects where I could implement it. The most interesting would be to use Laszlo’s DHTML output to create an interface to a Rails app. Muhahaha.
9 Jan
So in my 5th and final year at UCSD, I’m finally getting to take a class that I’ve had my eye on for years: Human Computer Interaction Programming. Part of the class assignments are to maintain a blog of what we do in (or related to) class. Since I’m lazy and don’t want to set up a whole new one, here we go!
This should also motivate me to continue my regular postings. For those readers that have been patiently waiting for the printer driver I talked about here, it will be posted this week.
18 Sep
One of my philosophies in life is to set personal goals that seem almost impossible to reach. Then reach them. Yes, it sounds ridiculously cliche, but it moves me forward. One such goal of mine was to break 8 bricks. While I didn’t quite nail it last November, I got close.
This year, I plan to try my hand (literally) at 9 instead.
11 Sep
Alright, I’m finally doing it.
In the spirit of 99% of the rest of the Rails coders out there, I’m jumping on the bandwagon and making my own blog. For years, I’ve hated even the word “blog” as to me the idea represented adolescent ramblings from dissatisfied narcissists. This is probably due to the original uses of blogs by the ever verbose “pre-teen” crowd, posting such brain teasers as “OMG!!! SO JEFF TOTALLY JUST IM’ED ME AND WE’RE LIKE TOTALLY GOING TO SEE A MOVIE TOMORROW BUT I DON’T KNOW IF IT’S A DATE WHAT DO YOU THINK?” (spelling corrected for readability).
Thankfully, the idea of blogging has spread to people that actually have something worth talking about. Bruce Shneier and Jim Hollan always have interesting things posted. My friend Kevin Clark is definitely my go-to person for cutting-edge Rails info. Not to mention I’ve owned drelmo.net since February of ‘99, yet I haven’t done anything interesting with it in years.
So here begins my attempt to contribute something useful and insightful to the “blogosphere”. Let’s see where it goes.
Recent Comments