Archive for October, 2007

Stay Hungry

My friend Colin and I are often asked to speak at the Computer Science Career Day that our alma mater holds every year. The night before, after we’ve had a few beers and have caught up, the conversation turns to what we should talk about the next day. Every year we include the same idea: Stay Hungry.

Some students get into computer science because they think it’s a great gig, others have a passion for computers. The passionate ones are often labeled “geeks” or “nerds.” These are the people that I’m writing for. Those with passion, those who love computers, those who love to learn.

Computer Science exposes you to a broad range of topics. I was exposed to compiler design, database design, language design, AI, application programming and internet programming, just to name a few. Within each of these topics there are countless languages and perspectives and theories. One can literally spend their entire life researching computer science and still never know everything there is.

This is the beauty and the pain of computer science - computer science encompasses a vast world of topics and college skims the surface of most and delves deeply into a few. You are forced to know a limited number of things, just enough to grasp the important points of the subject matter and then you’re given a diploma and sent into the world.

You’re a graduate now and go out into the world and find a job. Often times your first job allows you work on one system, with one language, solving one particular problem. This is great for a first job. It teaches you the business world, which we all must interact with. It teaches you problem solving skills, which you probably haven’t been taught well enough in college. It gives you real world experience.

The problem is that life comes at you fast - climbing the corporate ladder, relationships, children, mortgages and so on. Soon you realize that your skill set is stagnant. The passion you had as an undergrad is gone and now you’re simply a cog in the corporate machine. Going to work, coming home, sometimes making love and plucking at gray hairs.

What happened? You forgot to stay hungry.

Remember those nights that you stayed up late trying to work out the one last bug in some application you were working on? Remember when your thirst for something new and interesting kept you reading and experimenting?

Innovation has not stopped. Computer Science is a living, breathing, mutating, evolving subject. A quick look at the world around you will prove this. Look at operating systems, mobile devices, the internet, or even the appliances in your kitchen! There is no reason to starve.

The important thing is to find something that piques your curiosity. Does AI sound interesting to you? Research it. Try to write a simple application. Are you sick of Java? Learn Ruby-On-Rails. Maybe you always loved electronics class, learn more about electronics.

Life comes at you fast. Do not go to bed 25 and wake up when you’re 50 and wonder where the hell it all went. Stay hungry.

Monday, October 15th, 2007

Drupal - A Review and Some Recommendations

When I initially setup a website for my consulting firm I decided to use Drupal. After months of letting the site lay dormant (I was too busy actually working) I decided to take some time to get it running. I must say that I am impressed.

What I Need

As with all websites it is important to have a clear idea of what you want out of the website. I split to split this into two separate lists - what I need now, and what I want in the future. In this post I will go into what I need now.

  • Visitor Tracking via Google Analytics.
  • Provide an easy way for prospective clients to contact me.
  • Provide an easy way to update the site.
  • A blogging mechanism.

How I Got There

Visitor Tracking via Google Analytics

Visitor tracking is important to any business. It provides a way to see a few things - Are people actually visiting the site? How long are they staying? Who is talking about site?

Setting up Google Analytics is easy enough - add some Javascript to the theme and be on your way. What happens when you want to switch the theme? You have to go back and update the theme. I don’t plan on changing the theme to often but why do it if I don’t have to?

The Google Analytics Project provides the ability to use Google Analytics without having to worry about the theme. It also provides lots of other useful features:

  • Role Tracking - Only track the types of users you care about. Do you really need to track what your team is doing? Probably not.
  • Profile/User Segmentation - This only works for people who have accounts on your site, but it’s still a nice feature. It gives you the ability to see which users did what or even track where the users are from!
  • Download Tracking - If your site offers downloads, this is a must. Imagine the following situation: You post a PDF of the requirements for a project you’re working on. You can validate whether someone, in particular, the certain user (or users) has looked at it. Great to know if you’re worried about your project schedule.

Provide an easy way to prospective clients to contact me

Why have a website if the visitors can’t inquire about your services? I provide a simple page with contact details and mailto: links but that’s rather boring and doesn’t provide many features. So I wanted a form that users could use. Now, I could write my own form to do this but every time I wanted a new form, or I wanted to change an existing form I would have to update code. Being a programmer, this isn’t really difficult, but I wanted it easier.

The Webform module provides pretty much everything I want. With no programming involved at all I was able to create a form that collects all the information that I’m curious about. It also provides more nice features - it will automatically email the form, store the results in the database, and it also works with the Captcha project to prevent Spam.

Also be sure to check the Webform Report project. I haven’t worked with it enough to write it up, but it does looking like a promising reporting tool.

Provide an easy way to update the site

This feature is default with Drupal. I would go so far as to say that Drupal is simplicity. Don’t get me wrong, there is a learning curve involved but just click around inside of Drupal for an hour or so and I’m sure you’ll get the hang of it.

A blogging mechanism

Another great feature of Drupal is its blogging mechanism. Again, it’s another feature that comes with Drupal. Each user can have their own!

Finalize

So far my experience with Drupal has been great. I have been able to find modules for all the things I’ve been trying to accomplish. And I’m certain that I could write my own module if I can’t, especially after looking over the Developer’s Guide.

Linked List

The list below provides an easy way to get to some of the websites that I’ve written about.

Sunday, October 14th, 2007