Tuesday, 16 May 2006, 20:11:53 EDT

First, an update on my recent semester for those that may want it. I finished off the semester with one and A and one B (not counting the A in gym). I made the A in Numerical Methods, which was a bit of a surprise. I was expecting to make a B in that class, and numerically I did. There were four of us in the class and the point spread ended up being one A, one B (mine), and two Cs; so, the teacher handed out two As and two Bs. I made the B in Transition to Higher Level mathematics. Evidently, my B is one of only two in the class; no one else did that well or better. It was a hard class, sure, but it is a rather important class for a math major. I was amazed at the people that didn't show up half the time and the constant lack of effort put forth. I worked hard on both courses, and am proud of my accomplishments because of it. But I am saddened by the people I will be spending the rest of my degree with (those in my Numerical Methods course have graduated or are graduating next semester). Basically, I won't be able to really work with anyone other than my instructors. Study groups I attend, if any, will probably be like the one I put together for my Transition final — me doing the work and trying to explain it to others. Oh well, I knew the major would be tough when I switched to it. I am doing well, regardless. This past semester I made a GPA of 3.57 (just 0.03 shy of the Dean's List again) bringing my overall GPA up to 2.68 from 2.59. Calculating a rough estimate of my GPA using the courses that are counting toward my major, I have a 2.94. That is just adding up all the letter grades, and taking an average, of the courses I have taken which apply, and count, toward my major. It is by no means accurate. I have no idea how the school calculates a GPA because it involves something called "quality points." Quality points basically give more weight to some classes in the average than to others.

With that out of the way, I want to talk a little bit about why I chose Zen Photo instead of finishing my own gallery script. I wanted my script to be very basic on the management side. Just upload images to a directory, and sub-directories, and be done with it. I had done a decent job with the script until I started implementing sub-directories. I came to the conclusion that starting over would probably be beneficial. That wasn't a problem, but it meant I couldn't finish it up between homework assignments so it got put off. It gave me time to think about the project, though. My main goal was to use AJAX methodologies to make the end user experience to the gallery more pleasing. I had it setup so that the user never saw a .php extension or loaded any page other than "index.html". The navigation of the gallery was done completely by Javascript requesting data from the remote server. I showed my work in progress to a couple friends and they complained about the back button not working. I was confused by this because I thought they were talking about the navigation system I had written for the gallery. Which brings me to a post I have had in the pipeline since November.

Back in November, I read a post on someone's website that talked about this person and a friend starting a new project to develop a "blog content management system" with the possibility of some AJAX being used. After reading this post I put virtual sticky note on my Dashboard that reads "Write about AJAX (e.g. using it for no reason other than to use a buzzword)." I couldn't, and still can't, think of any useful applications of AJAX in a site such as the front page of the one you are currently reading. I never got around to writing the post because of classes and lack of content. My recently dead gallery project gives me a couple items to talk about why succumbing to the buzzword hype can be bad (hey, I did it myself!).

The biggest problem with trying to work new buzzword technologies into a project is that you are letting that technology control the project. That shouldn't happen. If it has a practical application that can improve the project, then go for it. But if you want to use the technology just to be able to say you are using it or know about it, then your project will suffer. Case and point, my gallery script could have been written in an afternoon if I didn't go about it with a robust Javascript interface in mind. I put too much emphasis on "improving" the user experience and in the process broke it; all because I wanted to do things with so called AJAX.

Which is the other problem. Using AJAX on a normal website can be problematic. If used in the extreme, the user's web client no longer functions as they are accustomed to it functioning [I wouldn't be surprised if it breaks screen readers.]. When used judiciously, there are some things it would be handy for. Like a comment form. If the user has Javascript capability in their client, then they wouldn't have to reload the same page to see their comment posted. That would be neat, but would involve some extra data validation.

I suppose what I am driving at is take the time to understand a technology before you start trying to design projects around it. It will save you a lot of time and headache. In this instance, I have not covered all the problems, like not knowing when the data will get to the user and in what order, but given a brief overview of what I encountered and my observances.