Archive for March, 2008

My Grand Ode to College Football… Not!

Wednesday, March 5th, 2008

Everybody has a favorite time of the year. Whether it’s the hot laziness of summer or the bitter coldness of winter, there are moments of the year when everything smells better, the colors are brighter and nothing can go wrong. For me, growing up as a sports crazy boy in a small, college town in “The South” was really amazing. During the fall, everything is second to Saturdays. The weekdays seem to build up to a crescendo of noise and energy that suddenly comes to an end on Sundays. Going to a college football is still one of my favorite events because its not just a game, its much more than that.

In truth, the above paragraph is overly grandiose and attributes much more to college football than it deserves. If I grew up in London, I would be talking about soccer and if it was India, I would be cricket crazy. For some reason, I gravitate towards sporting events with as much fervor as a kid in a playground. For me, the aspect I most appreciate about the game day experience, and there are indeed very many, is the sheer scale at which a big-time college football game is played.

Imagine all of the food and liquid consumed throughout the day. The gas used to transport people to and from the games… and the noise. These are all what makes college football exciting. There is a scene in the move Gladiator when Juba, the African friend of Maximus, views the Colosseum for the first time and says, “I didn’t know men could build such things.” I felt the same way when I first laid eyes upon Jordan-Hare Stadium, the on-campus stadium of Auburn University. I was such in awe and intrigued to see such a large building. Granted I was only 3 years old and “fresh off the boat” from Burundi, this event started an obsession that I have not fully recovered from since.

In summary, humanity have advanced from killing each other and wild animals for sport to watching 300 pound men smash into each other. In my opinion, everybody wins!

Sharkbyte Team Hard at Work

Wednesday, March 5th, 2008

At Grooveshark, in order to play music you need our helper application we call Sharkbyte that handles all of the p2p functionality and music playback. Recently there was a post by a friend of mine Jay, also an employee of Grooveshark, describing some faults in how Sharkbyte handles new updates. His main caveat is that an installed software shouldn’t fail silently and that updates should be installed automatically and actively prompt users to restart.

Today I woke up and decided to play some music while I got ready. Well when I tried playing a song, a box pops up telling me that new updates were available for Sharkbyte. It seems that the Sharkbyte team did a good job fixing those usability problems very quickly. Good job Team!

Gullah Gullah Island!

Tuesday, March 4th, 2008

I found this article about the silence of Justice Clarence Thomas:
“In the past, the Georgia-born Thomas has chalked up his silence to his struggle as a teenager to master standard English after having grown up speaking geechee, a dialect that thrived among descendants of former slaves on the islands off the South Carolina, Georgia and Florida coasts.”

One word instantly caught my attention and I had to figure out what it meant: geechee. I hopped on over to wikipedia to figure it out.

From the wikipedia article:
“The Gullah people are also called Geechee, especially in Georgia.”

That’s right, Supreme Court Justice Clarence Thomas is basically from Gullah Island… sort of.

GULLAH! GULLAH! ISLAND!!!

If you have never heard of Gullah Gullah Island, it’s a fairly old Nickelodeon tv show from “back in the day” set in the unique community of Gullah Island.

By the way, what does “Binya Binya!” mean anyway. It seems that television taught kids to trust giant, costumed creatures, regardless of what they said. See Barney and Big Bird.

College Football: Southern Bias

Tuesday, March 4th, 2008

I’m a really big fan of college football. Within the cultural context of males and sports, this reaction to sports is not out of the ordinary. I start to question that sentiment when its the night before National Signing Day, the day high-profile high school football players sign with the college of their choice, and I’m up all night watching videos, and reading articles on what school some super-freak athlete will choose to play for. This type of obsession is usually reserved for creepy, sweaty guys who park their vans by city parks and create countdowns for celebrity starlets’ 18th birthdays. Given all of these reservations, athletics is still one of the purest forms of entertainment, steroids aside, and like all good things, moderation is key. So with that out the way, on to the real story…

Over at one of my favorite blogs, Saurian Sagacity, there is a story comparing the population size of a state and its representation in recruiting rankings. Like everything they do, they always have ample amounts of data supporting their premises. Towards the end of the article, they hinted towards the correlation between the recruiting prowess of southern states and superiority of the SEC.

I have discussed this matter many times with a lot of people and that argument does not sit well with me. In truth, I do believe that the SEC is the best college football conference but not by much. The reason for SEC’s edge is mostly attributed to weather and population shift in my opinion.

It’s obvious that living in the southern US is an advantage when it comes to outdoor sports. You have much more time to practice outdoors when you don’t have to worry about excessive snow, or extreme cold. This applies throughout the development of the human body so a person living in the south would theoretically have slightly more outdoor time to develop athletically than a similar person up north. Of course this logic is highly speculative but merits attention.

Population shift towards the west and south is another trend that has affected many areas of the US including college football. This hypothesis actually supports the general argument Mergz (from Saurian Sagacity) presented. Ohio State and Michigan still have great programs. Other schools up north also compete well nationally every year.

When it’s all over, it appears this argument is just a regional chest-thumping about whose better. For me, I would rather give a nod of approval.

Using jQuery at Grooveshark

Monday, March 3rd, 2008

On a daily basis for the last year, I use jquery at work (Grooveshark) to handle different DOM and animation methods. I started out using jquery because I was new to the browser world and Javascript in particular. Jquery made it really easy to come right in and start creating usable modules.

As I got more comfortable with javascript, I started moving away from jquery and building my own methods or extending jquery. One problem with browsers in general is accessing the DOM and any javascript heavy site will always go over this bump. At Grooveshark, because everything is so heavily based on accessing/modifying song/artist/album information, we already have a unique identifier from the MySQL database. By using a contextual name based system, we can get really fast DOM lookups for very cheap:

HTML:

<table class="songs">
	<tr id="song_123"><td>A Song</td></tr>
	<tr id="song_456"><td>My Song</td></tr>
		...	MORE SONGS ...
	<tr id="song_789><td>Your Song</td></tr>
</table>

Javascript:

function song_click() {
	$("table.songs tr").click(function() {
		var domid = $(this).attr("id");
		var songid = domid.split("_")[1];
		// possibilities endless...
	}
}

This is not exactly what we do (currently using inline event handler - I know, not very web2.0-ish of me), but this is the basic idea. The html elements themselves contain a reference to the data they represent so whenever a user interacts with that element, it’s very easy to identify what it is.

Google Maps: why are you so difficult?

Monday, March 3rd, 2008

So recently a friend asked me if I could map a list of ip addresses to physical real-world locations. I thought this would be a somewhat simple en devour, but little did I know what the universe had in store for me.

My first step was seeing how to map ip addresses to a location. This was the easiest part using Host.info. This site provides an easy to use api and fairly accurate results. It’s always nice having open source solutions for problems like this.

The next step was taking these locations and putting them on a map. This is where Google and its almost infinite tools come into play. I have used their search api before, which really sucks since they moved to the AJAX model, and I mistakenly thought the examples would give me everything I need. The basic setup is the same but the data formats Google used in the examples (KML or XML) did not provide a basic structure that Google maps api would render correctly. Looking around their api and searching the internet didn’t get me anywhere either.

At one point, I found someone who developed their own solution by using Google’s XML Javascript object. This made it really easy to get any information I need and allowed me to use any accepted XML standard, applying a location/marker tag and displaying the result and any contextual information. I’m glad Google provides this functionality but they could do a little better in providing a standard for their data formats. That, or I am a total dunce and totally missed that information.

Becoming a Programmer

Sunday, March 2nd, 2008

I haven’t always been a programmer. In the beginning, I actually wanted to be a hacker. After a couple of well placed news stories, I decided that the fame and glory of hacking might not be worth going to “federal pound me in the ass prison”.

It all started at the Auburn University Library. Most of my friend’s parents worked at the university and being too big for a baby sitter, we usually spent lots of our time on the public computers. The internet is a funny place because it can take you anywhere. Sure enough after all the hours wasted going to chatrooms, sports forums, and game sites, I accidentally stumbled upon The Hacker’s Manifesto. It might have been because I was extremely bored, or I was young and impressionable, but no matter what, I was going to be a hacker.

I delved into all things hacking and consumed everything I could find on the subject. Phrack and Hack This Site were favorites of mine but the article that left the largest impression on me was How to Become a Hacker (pretty obvious how I found it).

After reading the article, I went ahead put it into practice. I started off, learning HTML (no Javascript) in the 6th grade. The only major project from that era was a Dragonball Z site that got 200 hits a week. After HTML, I learned C/C++. By this time, my lust for hacking died down and I was just enthralled with programming. The ability to put your thoughts in code and have a machine run it exactly was really thrilling.

By this point, hacking was non-existent in my mind and all I wanted to do was create games. John Carmack was a personal hero of mine for his legendary 3d rendering engines for Doom and Quake series. Starcraft is the best game ever made and really made me want to join the industry. I ran through most basic games like Pong and Breakout (never did make a Tetris clone). 3d game programming was the next progression and my parents bought me this book: Tricks of the Windows Game Programming Gurus by Andre Lamothe. This book was extremely helpful and pretty much gave you a great framework for Windows game programming. Using GarageGames, I worked on a couple of game projects with other kids who lived and died for coding.

Unfortunately, I lost most of my drive for programming in junior year in high school. I can’t really pinpoint the reason why, but programming lost some of the thrill and excitement it held earlier. I continued to program in internships but the companies I worked for didn’t really want a high school kid coding on one of their live projects. I was mainly a technician for email support, or desktops/laptops.

When everything was looking down and college wasn’t really doing it for me, I thought that I should just dive back into programming. I interviewed with two companies and decided that this really small start-up would be a great place to learn some new skills and do something that’s never been done before. A year and a half later, I am still with Grooveshark and loving it. Currently, I do web-development writing some of the HTML/CSS and Javascript that gives Grooveshark its web2.0 feel. Every now and then I dabble with some server-side PHP.

So that’s basically it. Programming isn’t really hard, but becoming a good one is. Like anything worthwhile, lots of practice and a good breakfast is all you really need.