I think I managed to reproduce (and then solve) this problem by following the book exactly.
On page 115, I added $ to the state dependency so
angular.module('spBlogger').run(['state , function(state)
➥{ $state.go('allPosts'); }]);
became
angular.module('spBlogger').run(['$state , function($state)
➥{ $state.go('allPosts'); }]);
Also remember to include the ui-router dependency in app.js
angular.module('spBlogger', ['ui.router', 'spBlogger.posts', 'spBlogger.controllers', 'spBlogger.directives', 'spBlogger.filters', 'spBlogger.services']);