This is one of those times when you pay the price for working past your timeout, like a pitcher pitching too many pitches in one game. There's an item on your checklist, and you'd love to take it off before you start the next session. You copy paste something, get it to work, and close out your session for the day.
While you're preparing to get up you decide to share a linkblog item, and when it boots up there's something severely broken. It has nothing to do with anything on your list! You roll it up for the day anyway, figuring it'll be easy to find when you start the next session. No sir. You have to work through complicated code you haven't touched in months! Where the fuck is this, and how the fuck did it happen. Drink more coffee. Keep stepping through the code to identify when things went bad. It happens in the most impossible place. You keep digging in. Even more impossible. Unfathomable. But you keep going in, making sure every bit of code does something you think it should and then boom! You left a copy in some DOM code in something you cribbed so now there are two of this thing you hadn't touched or even looked at in months. Delete the mistake, rebuild, click off all the breakpoints. And yup that was it.
I started work at approx 9AM and it's 11:41AM — wasted the best part of the day, all to learn the lesson that no more "one more feature" before I get up bullshit. If you're tired you make mistakes, and you can't not pay for them.
No doubt I will continue to learn this and other lessons all through what remains of my career. Some things you never learn, like "I can always roll back" — but where should I roll back to? When did I break this mofo? Oy. I'm never willing to go back that way.