I am waiting for someone came up with a comment about the advantages to use the alarmd. My (limited) experience is that the daemon is not really reliable. It hang and there is no easy way to be sure if the thing is running or whatever. My actual approach here is: if the application is running the alarm works, otherwise 'ciccia', no alarm.