I use "I Can't Wake Up!" on my phone. It gives a pre-set number of "free" snoozes, and then makes you scan barcodes (from a list you previously made) before it will shut up. Once I'm out of bed I can usually get going, but getting the feet on the floor is the hard part, and this forces me to do it.