                 :margin "0em"
                 :line-height "1.06em"}}
    ;; Create the rendered log message
-   (for [lg (rseq logs) #_(take 30 logs)]
+   (for [lg (rseq logs) #_(subvec logs 30)]
      ^{:key (:uuid lg)} [render-msg lg])])
 
 (defn render-tab-item

  (-> log-ev
      ensure-uuid
      ensure-msg-vec
      ensure-timed))

(defn single-transduce
  "Takes a transducer (xform) and an item and applies the transducer to the

  ;; be filling up.
  ;; Problem: Can't put the transducer into the chan argument since it's empty
  ;; when called in the beginning
  ;; TODO: Rewrite with mix & toggle. Then remix everytime the transducers
  ;; change?
  (let [lg-ch (tap (:log-sub-ch @db) (chan (sliding-buffer (:freeze-buffer @db))))
        freeze-ch (:freeze-ch @db)]
    (go-loop [is-frozen false]
      ;; l-chans: What chnnels to listen to
      (let [l-chans (if is-frozen [freeze-ch] [freeze-ch lg-ch])
            ;; The transducers that do the global transducing such as rendering
            ;; Might change over time so they're re-evaluated here
            transd (apply comp (vals (:transducers @db)))
            [v ch] (alts! l-chans)]
        (when (= ch lg-ch)
          ;; Put the log event into the db
          (action! db :new-log
                   (log+rules db (single-transduce transd v))))
        (recur (and (= ch freeze-ch) v))))))


