anchor.diff:                        :next (if (<= (* limit page) (post-count tag)) (1+ page)))))))
   
   (defroute ("/blog/new" :method :GET) (&key |error|)
  -  (if (of-group "dev")
  -      (render (absolute-path "new_post.html")
  -              (list :title "New Post"))
  -      (throw-code 403)))
  +  (with-group "dev"
  +    (render (absolute-path "new_post.html")
  +            (list :title "New Post"))))
   
   (defroute ("/blog/new" :method :POST) (&key |subject| |content| |tags|)
  -  (when (of-group "dev")
  +  (with-group "dev"
       (submit-post 
        :subject |subject|
        :date (get-universal-time)
  
positive.code:   (let ((images (root-directory "static/images/Night/*.jpg"))
          (songs (root-directory "static/music/Jazz/*.ogg")))
      (render (absolute-path "jazz.html")
          (list :image (enough-namestring 
                        (random-file images)
                        *static-directory*)
                :song (enough-namestring 
                       (random-file songs)
                       *static-directory*)))))
  
  ;;
  ;; Error pages
  
negative.code: (defun root-directory (directory-path)
    (directory (root-path directory-path)))
  
  (defun random-file (files)
    (nth (random (list-length files)) files))
  
  (defmacro with-group (group &rest body)
    `(if (not (search ,group (gethash :groups *session*)))
         (throw-code 403)
         (progn
           ,@body)))
  
  ;;
  ;; Routing rules
  