Todd Huss' Blog

The 5 most common XHTML mistakes

When I first started writing XHTML pages about a year ago I thought that all there was to it was closing every tag XML style. Oh how wrong I was! I've since learned to W3C validate as I go so I don't dig myself into too much of a hole. If you want to see some really nicely written XHTML... read more, my blog has moved

Comments [0]

Nofollow hurts bloggers more than spammers

Nofollow really took off in the blogging community as a means to stop comment spammers and I think at this point it's safe to say that it's had absolutely no effect on that front. What's worse is that it's the wrong approach to prevent spam as it punishes readers who leave insightful comments or trackbacks by withholding the link value... read more here, my blog has moved

Comments [0]

Load balancing across MySQL servers using JDBC

In our production environment at GreatSchools we have 3 production MySQL database servers: 1 read-write master and 2 read-only slaves. In moving our site from Perl to Java we need to load balance read-only connections across the read-only slave servers so that our read-write master doesn't get overwhelmed under heavy load. As our systems administrators discovered there's a solution to load balancing read-only connection in the MySQL JDBC driver! Read more here, my blog has moved!

Comments [0]

Podcast interviews tell a bigger story than most blogs

I just received my first iPod from Amazon the other day and have been playing with it a little here and there. Having music to go is great but I'm really enjoying listening to podcasts! Just as blogs have become a more important source for technology news in my life than mainstream media... read more, my blog has moved

Permalink Comments [0]

Well formed validation of XHTML pages

Validating XHTML pages is an interesting subject because no high traffic site I've ever tried it on actually successfully validates XHTML against a W3C validator. Most folks I know take it for granted that it's unrealistic to write large sites with 100% W3C validating XHTML. read more, my blog has moved

Permalink Comments [0]

More powerful database constraints with regular expressions

Is it just me or do you agree that we should be able to easily apply regular expression constraints to a column in a table without writing a stored procedure? For example if I want to guarantee that a varchar only contains alpha numeric characters with no spaces in most databases I currently have to write a stored procedure and use a trigger to call it on insert and update. Too much work for something that should be so simple!

Postgres is one of the few databases I'm aware of that currently solves the problem. You can see an example... read more, my blog has moved

Permalink Comments [0]

Behind Closed Doors

A great book I read recently from the Pragmatic Programmers is Behind Closed Doors: Secrets of Great Management. I highly recommend this book to anyone who is either a manager or executive or aspiring to some form of a team leadership role! It lays out the day to day... read more here, my blog has moved

Comments [0]

Apple's PR Genius

I don't know what kind of koolaid Apple puts in their PR but it's working on me! When they announced the Intel MacBook Pro it took all my will power not to drop 3 G's on a pre-order the minute the Apple store reopened! That's when the genius of their slick products combined with great PR strategy really sunk in... read more, my blog has moved

Comments [0]

The time has come to upgrade to MySQL 5

We've finally hit the point at work where we're ready to upgrade from MySQL 4.0 to 5. Data integrity has been a problem since I started at this job. Part of the reason is that MySQL 4.0 has an odd (to put it lightly) interpretation of not null and we still have a fair amount of legacy Perl code running the administrative portion of the site that lets bad data through. The lack of subselects for ad-hoc querying, aggregation functions, stored procedures... read more here, my blog has moved

Permalink Comments [0]

SMART objectives in moderation please

As a technology manager a big part of what I do is trying to help people do their jobs well. That includes removing obstacles, being an advocate when there is a problem, making sure the team is operating efficiently, ensuring people can usually work a normal day without overtime, and overall making sure they are happy and enthusiastic in their job. Read more here, my blog has moved

Permalink Comments [0]

SEO Toolbox

At work when we design a new page that we hope to drive people to via search engines we often consult with our search engine consultant to ensure we've thought through the page design and that the HTML is up to snuff (e.g. proper use of the title, h1, h2, etc... tags). We've also seen dramatic increases to older pages when... read more here, my blog has moved

Permalink Comments [0]

Google Analytics, if you're not using it you should be

I've been using Google Analytics for about a month to track 4 of my sites (and more recently this one as well) and I am impressed!

Please note, this is a repost as my blog has moved to

The key (in my mind) to Google Analytics and other high end commerical solutions like Fireclick and Omniture is that they use client side Javascript based tracking which is far less prone to crawler inflation and provides more information (e.g. flash version, screen resolution, color depth, etc..) than log based solutions.

Sure, you lose the 1-2% of users that have Javascript disabled but that's a lot more accurate than the 15-30% overcounts I've seen in many log based solutions. If you've ever used AWStats on a high traffic site you've likely observed the gross overcounting that occurs from crawlers when AWStats doesn't know about, spam bots,

In summary Google Analytics offers a lot of the features of the high end commerical solutions such as site overlay (temporarily disabled), funnel analysis, conversion or goal tracking, cookie based returning and unique visitor stats, detailed client stats, etc... and best of all it's free. If you've got a personal website or are a small to medium sized company you'd be crazy not to at least try it!

That said, there are a few features I would like to see in Google Analytics:
1. Google Analytics desktop dashboard that gives me a quick overview of each of my sites at a glance so I wouldn't have to login each time.

2. Live traffic data. I haven't found a way to get up to the minute page view counts which is critical for identifying massive traffic spikes when they happen instead of the next day.

3. Similar to 1 but an aggregate report on the web version that gives me an overview of each of my sites next to each other. As it is I have to drill down into each site to get even basic overview info.

4. The one big feature I would like to see would be on the fly drag and drop pathway analysis like Fireclick and Omniture both offer.

Permalink Comments [2]

Blogging Software

In moving to a blog on my own domain I had to choose which blogging engine to use. Note this is a repost from my new blog. After evaluating a number of systems such as Movable Type, Roller, Typo, Blogger with sftp, etc... I ended up with Wordpress.

My main requirements for blog software were:More...

  • all the usual stuff (comments, pings, trackbacks, etc...)
  • search engine friendly URL's
  • themes with a good selection
  • plugins with a good selection
  • import from RSS (so I could move my old posts along with me)
  • language in order of preference: Ruby, Java, PHP, and lastly Perl
  • a good sized user community

So far working with Wordpress 2.0 has been relatively painless and left me with a very positive impression. The installation took about 5 minutes including the apache config. The plugins have been a little problematic since many don't yet support 2.0 but considering it was just released it's not surprising. Lastly, they're using some AJAX which is nice to see.

Now that I have it installed next steps will be to learn how to use subversions vendor branches so I can manage my local changes to my Wordpress checkout as well as being able to easily merge changes from the official Wordpress subversion repo.


My blog has moved

My blog has moved and the new address is:

RSS Feed:

I've really enjoyed having a JRoller blog. It's been a lot of fun to watch my small readership grow and get comments and feedback from people. One of the recent highlights was having my post on time boxed versus feature boxed iterations picked up on the server side. Thanks to JRoller for a great service and providing a service that makes it really easy to get started blogging and get exposure on their homepage.


Double source control with CVS and SVN

Many open source projects require local file customizations to tweak, customize, and fix bugs when building a real world site (e.g. Drupal, OSCommerce, Roller, phpBB, etc...). My preference is always to checkout from their source control and start working rather than downloading an archive file and extracting it. The reason being that it's convenient to use CVS to see what local files I've changed, generate patches, get updates on the checked out branch, etc... The problem is that you can no longer use CVS to manage your local changes unless you have commit access to the project.

The approach I use for these types of sites has been to use double source control by using both CVS and Subversion. For example say I'm launching a new Drupal based site. I checkout the source from CVS, I then check it into my local Subversion repository. Now I can SVN commit any changes I make to my local subversion repo, manage branches, etc... However, I can also use CVS to see what changes I've made locally, generate patches to send to the committers, and easily get updates on the branch.

I've never liked downloading and extracting zip files because you then have to keep a parallel pristine copy to do diffs against which is a major pain. Using double source control in my experience is perhaps less intuitive but much easier!

Update: It turns out both CVS and SVN have a solution to this problem called vendor branches. This page has a great description of the technique with subversion!

Permalink Comments [0]