Tip: Mining only when there are transactions
I want to give you a tip on how to only mine blocks when there are transactions. More generally, this will show you how to load utility scripts into your geth console.
Here's the problem: when we're developing smart contracts, every time we want to make a change we have to issue and transaction and that transaction has to be picked up by a miner.
Eventually, we'll deploy contracts to live test networks or the production network, but for testing, we just run a local node.
Ethereum miners, by default, mine blocks very quickly, and the mining process can be CPU intensive. The problem is I'm generally developing on my personal laptop, and I don't have a lot of extra CPU to spare.