Nice little article until the wheels fell off: "Comments are evil". Couldn't disagree more. Few things suck worse than having to dive into someone else's code that isn't commented.
In a lot of the cases the code should be the comment. Have a comment at the top of the function specifying what inputs are valid, what it returns, does it alter the data passed in, what the function actually does, etc....