I'm a two-bit hacker. Most code I've written to date is small and self contained, rarely more than a couple of files. For that reason, I always thought that version control was a bit overkill--a good idea, but not really worth the effort on small projects. However, at work we do use version control and it's been an interesting experience. The main selling point for version control software is the ability to track changes, but I've found that the changes that using version control software has made to my coding practice have been the most useful. Instead of hacking away at whichever bit of code that's in front of me, I'm having to consider the changes that I'm making as commitable chunks. This has clarified my thinking about what I'm doing and improved my focus. So, from now on, version control on everything more than a five line shell script.

One of the most raved about features of TextMate is snippet expansion. Felix Ingram has written a Vim plugin that emulates this behaviour, SnippetEmu. I haven't had much of a play with it yet, but it looks like a real time saver. You need Vim 7, and make sure you have the following in your vimrc: filetype on filetype plugin on
When you save an object to a session in one file, say write.php, and then retrieve it from another, say read.php, PHP needs to know about the class definition so that it knows how to unserialize it from the session. If you don't include the class in read.php, you'll get an error complaining about __PHP_Incomplete_Class.