anchor.diff:  ;; Save and Restore and Flush Database
   (defun save-db ()
     (progn
  -  (setf *saved-posts* *posts*)))
  +    (setf *saved-posts* *posts*)
  +    (with-open-file (stream "/srv/blog-db/posts.db" :direction :output :if-exists :supersede)
  +      (print (ms:marshal *posts*) stream))) )
   
  +(defun load-db ()
  +  (with-open-file (s "/srv/blog-db/posts.db")
  +    (setf *posts* (loop with eof = (list nil)
  +                        for form = (read s nil eof)
  +                        until (eq form eof)
  +                        collect form into forms
  +                        counting t into form-count
  +                        finally (return (apply #'ms:unmarshal (values forms form-count)))))))
  +    
   (defun restore-db ()
     (setf *posts* *saved-posts*))
   
  
positive.code:    (summary :initarg :summary :accessor summary :initform (random-word-s 25))
     (text :initarg :text :accessor text :initform (random-word-s 200))))
  
  (defmethod print-object ((object post) stream)
      (print-unreadable-object (object stream :type t)
            (with-slots (title post-id) object
                    (format stream "~%title: ~a~%post-id:~a" title post-id))))
  
  (defun create-post (&key title summary text author)
    (push (make-instance 'post :title title :summary summary :text text :author author) *posts*) )
    
  (defun create-random-post ()
    (push (make-instance 'post) *posts*))
    
  (defun populate-db (length)
    (progn
      (dotimes (n length n) (create-random-post))
      (make-first-post)))
    
  (defun set-post-timestamp (id timestamp)
    (dolist (lst *posts* lst)
  
negative.code: ;;; blog package for un-common-lisp.com
  
  (in-package :com.un-common-lisp.blog)
  
  