I'm sorry what I said about you today and I wanted to write a note to apologise. Perhaps it's just me, in fact I know it's me. It's not you, I'm just not good enough for you.

I know recently I've been flirting a bit with Rails, but that's over now, we won't be seeing each other again. Yes you've found out I've been seeing Django and I have to admit, it will always have a special place for me. I like to think that we are big enough to able to allow others into our relationship and from this we can grow.

You've taken me many places. When it's good, it's good. It's like a dance, we fly together across the dance floor in harmony, creating beautiful things whilst other frameworks look on with envy from the sides.

But then today, we had a bad day and it's my fault. I had no idea that fiddling with setup was so fragile. Sometimes I wish you would complain and let me know what the problem was, a relationship thrives on communication. If you don't tell me the problem, how can I help? And when do you complain, can you make it a little clearer? What's with this bizarre error about getActionObject of DynamicViewTypeInformation being marked as private and why can't I put .cpt's in browser views and why is my Zope 3 style content type about 20x the size of my old one and why when I pdb into eggs do I get sent into /home/steve which doesn't exist and...

I'm sorry, I'm off again.

I hope you can forgive me for the neglect I've given you over the last year or so. It's been a while since we've done anything new and exciting together. I'll try to be a better person and get things right more often. We can save this relationship if we both work at it and I'll keep trying.