The Hell is Over!

After a few months of programming day and night, my work project finally went live last Friday. I spent most of this week fixing bugs, but luckily, most of the bugs were fairly minor.

The Details

The idea behind this redesign was to start over from scratch and rebuild everything. Our old database that was originally setup about five years ago was getting to be pretty messy. It had been through two redesigns and with each set of improvements, it became more and more cluttered. With this redesign, I decided it was going to be better to start over from scratch and for us to convert and migrate as much data as possible.

So, for this redesign, I not only created a new database, but also built a complete administration site so others in the company could manage the content. After that was started, I build the entire front-end site. Needless to say, it was a huge undertaking. Of course, I didn’t build the entire thing by myself or anything, but I did the vast majority of it, database, back-end and front-end. The one part I didn’t create was the visual aspects. Marketing oversaw that part; I just put it over my code.

The Focus

The focus on this redesign was to make the site much easier for user to find what they are looking for. In the past, we always focused on our product lines, but realized that the average user has no idea what the differences are between the product lines. This time around, we focused on more generic terms like Home Audio that breaks down to Home Theater Systems, Speakers, etc. At the bottom level is where you finally see the product lines. We also used to have a focus on News-type items, but realized that over 80% of our traffic was directly to the product sections and most visitors didn’t care about the News items. So, we made products the main focus with News and other things as secondary options.

Another focus was to make the site more search-engine friendly. We used url-rewriting to make the urls easier to read for humans and to hopefully get the search engines to rank our pages a little higher. The urls match the page titles and the titles on the page which they supposedly like.

So, How Did It Turn Out?

Overall, I’m very happy with how the site turned out. It’s faster than I ever thought it would be. The code is clean and very easy to work with now. Plus, I learned so much planning and building this site. I’ll post some of the cooler things I learned soon. Now it’s time for me to take some time off because I am so burnt out right now.

Oh yeah, the url: Klipsch


“Looks like I picked the wrong week to quit sniffing glue.”

Or actually, I just picked a bad time to start blogging. Anyway, I’m buried in a complete redesign of our site at work and the last thing I want to do when I get home is to get back on the computer so I’m already neglecting this site. That didn’t take long! I have lots of random things I want to write about, but I guess they’ll have to wait until this project is over (due approx. August 5th). Oh well.


Made In Express?

A while back, I saw a post on Digg about the finalists being picked for a contest Microsoft was having where developers built projects using on of the Visual Studio Express products and/or SQL Express called Made In Express. The contest site is a pretty nice looking site, but what surprised me was that it was created using ASP, meaning it was not actually “Made In Express” like the finalists projects were.

Eating Your Own Dog Food

Obviously, the purpose of this contest is to show developers some of the cool things you can create using the free Visual Studio Express software, so I’m amazed that Microsoft missed a great opportunity to show that it eats its own dog food. I guess to be fair, ASP is a Microsoft product, but it is more like they are eating their own old and stale dog food. After all, the Express software is all about .NET and should have been created in Visual Web Developer.

I know that Robert Scoble has written a few times about Microsoft “eating the dogfood” (see this post from last week) so I’m sure he would disapprove as well. They do have an RSS feed on the site though, which is almost redeeming, but not quite.

Made In Something Other Than Express

I’ll never use an Express product now because of this hypocrisy! Ok, just kidding. I do actually use Visual Web Developer every day at work and even most nights and weekends when I’m not at work and I love it. I was just a little disappointed the site wasn’t “Made In Express” like it should have been.

It really is a good product (I can only speak for VWD) and this is coming from someone that refused to use Visual Studio in the past for web development. Dreamweaver in edit view was always my editor of choice. Unfortunately, I do still have to use it for FTP because the FTP tool in VWD is terrible! That’s probably my only real complaint about VWD. Intellisense makes up for any of its weaknesses though. That alone makes my life so much easier.

Next Time, Make It In Express!

Anyway, I hope the next time Microsoft does some sort of contest or whatever promoting their Express products that they actually use them to make their site.


The Struggles of Redesigning a Large Web Site

Managing a fairly large website can be frustrating at times, especially when the time comes to do a major redesign.

The Move from Static to Dynamic

At my day job, I have been through about three major redesigns of our website over six years and am currently working on our fourth. Throughout these various redesigns, our site began as a completely static HTML site and became more and more dynamic over the years. The nice thing about having a dynamic site is that I am no longer responsible for managing the site content; I am only responsible for the code and any bugs that pop up. The major drawback to having a dynamic site is that we’ve amassed a lot of data and it has gotten more and more difficult to redesign the site each time.

Our second redesign was our first primarily dynamic site and its foundation (the SQL back-end) was the basis for every redesign until now because of all the data. We have modified the database pretty heavily over the years, but its basic foundation is still there, mostly because it became too difficult to start over from scratch with the deadlines we had for each redesign. Hell, with the last one, I had two weeks to reprogram the entire front-end of the site by myself by the time the marketing department had finished the redesign plan and I barely got that done in time. There was barely any testing done but it turned out to not be as buggy as I thought it might be. It’s not how I like to do it, but I had no choice.

The New Redesign

As I mentioned before, I am currently working on another site redesign, but this time around it has been decided that the functional changes needed are too great to just modify the current database like we’ve done before. So now, we are starting over from scratch. It is just something that needs to be done, but it’s a huge undertaking. To be honest, it is a bit overwhelming.

With the previous redesigns, I was able to “freeze” the database and start the reprogramming. I just made a copy and the content managers had to keep track of any changes they made after it was frozen so they could make them again on the new version. This time around, however, it’s going to take too long to do the “freeze” option so my plan is to create the new database, get the admin screens working and then migrate the important information from the old database.

The Payoff

Even though it will be a difficult redesign, it will be worth it in the long run. I’ll admin, our current database is a mess with tables and stored procedures that are no longer being used, but the site is too large to keep up with what is and isn’t being used.

Starting over from scratch is going to make it much easier to manage the site and make it easier for future redesigns. It’s also gives me the opportunity to take what I’ve learned since the last redesign to improve and optimize the site.

Final Thoughts

Managing a fairly large site can be difficult and even frustrating at times, but it has given me experience I couldn’t have gotten working only on smaller sites.


Developing My Voice

While the blogsphere is not a new place for me, adding my voice to it is. I’ve been reading various blogs for a few years now; about 60 on a regular basis (thank god for RSS!). Occasionally I’ll leave a comment or two, but until now, I haven’t had the courage to write my own.

I say courage because as weird as it may sound (or maybe it doesn’t), I’m not the least bit freaked out about complete strangers reading these posts. However, when it comes to people I know, I’m pretty freaked out. I’m not sure why though, but I guess it’s how I’ve always been.

Anyway, I still have a lot to learn about this side of the blogsphere. I hope that you’ll forgive the wide range of topics as I learn and develop my voice.


Confessions of a Self-Taught Programmer

Being a mostly self-taught programmer has been interesting. Some days I don’t feel like a “real” programmer but other days when I figure out some really complex process with code, I do.

When it comes to learning, I’ve always been at learning by reading rather than lecture. I can’t handle lectures; they put me to sleep. Being able to learn like this has been a great asset to me through my career as a programmer.

A little history… With the help of one professor, I started teaching myself HTML in 1996 because it was something I was very interested in. I created a web site for my band at the time (Birthright). From there I took the few web-related classes the college offered but found each time that with every class, I had already taught myself what they were teaching like a year prior. Eventually, I taught myself ASP with some database backend.

Despite not having my degree yet, I felt like I knew enough to make a career out of my passion for the web. So, I started looking for a job as a web programmer in late 1999, early 2000. It took me a little while, but I got a job at Klipsch (where I still work 6 years later).

Over the years, I’ve taught myself so much and have really enjoyed it. I love having a job where I have to constantly learn new things. It keeps my brain from turning into mush. The draw-back, as I mentioned to before, is that some days I don’t feel like a “real” programmer. The reason is that I’ve learned how to do many things without always learning why they work. That’s usually because I needed to find a solution to make something work but didn’t have the time to really learn why it worked. Of course over time, using the same code over and over, I eventually learn the reason why.

But then again, if you can make something work right, the why doesn’t matter quite as much. I know it can sometimes mean that the code might not be as efficient as possible, but as long as it runs quick enough and does what you need it to do, it’s not a huge deal.

I find myself working on some very complex web-based applications these days and I feel more like a “real” programmer now than I ever have. That’s a good feeling!


Hello World!

What kind of a programmer would I be without starting off with this post?  So, Hello world!