Wrote documentation for string writer and reader

--- src/longshi/fressian/utils.cljs
+++ src/longshi/fressian/utils.cljs
@@ -1,9 +1,21 @@
 (ns longshi.fressian.utils
   "Utility data and functions for byte arrays")

-(deftype StringWriter [code-pipe string-buffer]
+(deftype
+  ^{:doc
+    "Object for grouping string writing methods and data together
+
+    code-pipe ([int]) - Pre allocated buffer for holding character codes
+    string-buffer ([bytes]) - Pre allocated buffer holding the converted character codes"}
+  StringWriter [code-pipe string-buffer]
+
   Object
   (string-to-codes [_ s start-pos end-pos]
+    "Converts a string into an array of character codes
+
+    s (string) - String to convert to character codes
+    start-pos (int) - The starting position to start reading from the string
+    end-pos (int) - The position to stop reading from the string"
     (loop [i 0 str-pos start-pos]
       (when (< str-pos end-pos)
         (do
@@ -11,6 +23,10 @@
           (recur (inc i) (inc str-pos))))))

  (write-str-bytes [_ str-length buf-length]
+   "Writes out character codes to bytes
+
+    str-length (int) - The length of the portion of the string we are reading
+    buf-length (int) - The length of the buffer we are writing to"
    (loop [i 0 buf-pos 0]
      (let [code (aget code-pipe i)
            byte-size (cond (<= code 0x007f) 1 (> code 0x07ff) 3 :else 2)]
@@ -31,22 +47,42 @@
           (recur (inc i) (+ buf-pos byte-size)))
           #js [i buf-pos]))))

-  (string-chunk-utf8
-    [sw s start total-str-length buffer]
+  (string-chunk-utf8 [sw s start total-str-length buffer]
+    "Converts a string to a buffer with a maximum size of 64k
+
+     s (string) - The string we are converting to bytes
+     start (int) - The index to start reading from the string
+     total-str-length (int) - The total length of the string
+     buffer ([byte]) - The buffer we are writing to"
     (let [str-length (Math/min 21846 (- total-str-length start))
           buf-length (Math/min 65536 (* 3 str-length))]
       (do
         (.string-to-codes sw s start (+ start str-length))
         (.write-str-bytes sw str-length buf-length))))

-  (get-buffer [_] string-buffer))
+  (get-buffer [_]
+    "Gets the string buffer"
+    string-buffer))

-(defn make-string-writer []
+(defn make-string-writer
+  "Convience method for making a string writer"
+  []
   (StringWriter. (make-array 16384) (js/Uint8Array. 65536)))

-(deftype StringReader [buffer read-codes]
+(deftype
+  ^{:doc
+    "Object for grouping string reading methods and data together
+
+    buffer ([bytes]) - Pre allocated buffer for reading in string buffers
+    read-codes ([int]) - Pre allocated buffer holding the character codes"}
+  StringReader [buffer read-codes]
+
   Object
   (bytes-to-codes [_ offset length]
+    "Converts string buffer to character codes
+
+     offset (int) - Starting point to read the buffer
+     length (int) - The number of bytes to read"
     (loop [i 0 pos offset]
       (if (< pos length)
         (let [ch (aget buffer pos)]
@@ -77,19 +113,31 @@
         i)))

   (chars-to-str [_ string-buffer chars-length]
+    "Converts character codes to characters and appends them to a string buffer
+
+     string-buffer (StringBuffer) - Google String buffer to append characters to
+     chars-length (int) - The number of characters we are appending"
     (loop [i 0]
       (when (< i chars-length)
         (do
           (.append string-buffer (.fromCharCode js/String (aget read-codes i)))
           (recur (inc i))))))

-  (get-buffer [_] buffer)
+  (get-buffer [_]
+    "Gets the string buffer"
+    buffer)

   (read-utf8-chars [sr string-buffer offset length]
+    "Reads in a string buffer and appends the characters to a string
+
+     string-buffer (StringBuffer) Google string buffer we'll append characters to
+     offset (int) - Starting point to read the string buffer
+     length (int) - The number of bytes to read"
     (let [str-length (.bytes-to-codes sr offset length)]
       (.chars-to-str sr string-buffer str-length))))

 (defn make-string-reader []
+  "Convience method for making a string reader"
   (StringReader. (js/Uint8Array. 65536) (make-array 21846)))

 (def ^{:doc "Marker for the endianess of bytestreams"}


day 20 part 1

day 20 part 1

--- src/adventofcode/day20.clj
+++ src/adventofcode/day20.clj
@@ -1,35 +1,16 @@
-(ns adventofcode.day20
-  (:require [clojure.math.combinatorics :as combo]))
+(ns adventofcode.day20)

-(defn get-dividers [n]
-  (filter #(zero? (mod n %)) (range 1 (inc n))))
+(defn divisors [number]
+  (mapcat (fn [divisor]
+            (when (zero? (mod number divisor))
+              (let [multiple (/ number divisor)]
+                (if (= multiple divisor)
+                  [divisor]
+                  [divisor multiple]))))
+          (range 1 (inc (int (Math/sqrt (int number)))))))

-(comment (combo/subsets (reverse (dividers 10))))
-
-(def dividers (get-dividers 2900000))
-
-(def valid? (memoize (fn [subset] (= 2900000 (apply + subset)))))
-
-(defn home-number [n]
-  (let [part (take n dividers)]
-    (println n)
-    (some->> part
-             combo/subsets
-             (drop 1) ;; empty subset
-             (filter #(.contains % (last part)))
-             (filter valid?)
-             first
-             (apply max))))
-
-(comment (def part-one (->> (dividers 2900000)
-                            reverse
-                            combo/subsets
-                            (drop 1)
-                            (map (juxt #(apply max %) #(apply + %)))
-                            (filter #(= 2900000 (second %)))
-                            first)))
-
-(comment (->> (range 1 (count dividers))
-              (map home-number)
-              (drop-while nil?)
-              first))
+(def part-one (->> (range)
+                   (map #(vector % (apply + (divisors %))))
+                   (drop-while #(> 2900000 (second %)))
+                   first
+                   first))


Add min/max vars to dimmer oscillator cues.

It became clear running the overnight show that these would be
tremendously useful, especially with the ability to save cue parameters
and macros.

--- src/afterglow/examples.clj
+++ src/afterglow/examples.clj
@@ -674,14 +674,17 @@
                                             (oscillators/build-oscillated-param
                                              (oscillators/sawtooth :down? (:down var-map)
                                                                    :interval-ratio (build-ratio-param var-map)
-                                                                   :phase (:phase var-map)))
+                                                                   :phase (:phase var-map))
+                                             :min (:min var-map) :max (:max var-map))
                                             fixtures
                                             :effect-name effect-name))
                              :color color
                              :variables [{:key "beats" :min 1 :max 32 :type :integer :start 2 :name "Beats"}
                                          {:key "down" :type :boolean :start true :name "Down?"}
                                          {:key "cycles" :min 1 :max 10 :type :integer :start 1 :name "Cycles"}
-                                         {:key "phase" :min 0 :max 1 :start 0 :name "Phase"}]
+                                         {:key "phase" :min 0 :max 1 :start 0 :name "Phase"}
+                                         {:key "min" :min 0 :max 255 :start 0 :name "Min"}
+                                         {:key "max" :min 0 :max 255 :start 255 :name "Max"}]
                              :end-keys end-keys))))

 (defn make-triangle-dimmer-cue
@@ -695,13 +698,16 @@
                              (fn [var-map] (dimmer-effect
                                             (oscillators/build-oscillated-param
                                              (oscillators/triangle :interval-ratio (build-ratio-param var-map)
-                                                                   :phase (:phase var-map)))
+                                                                   :phase (:phase var-map))
+                                             :min (:min var-map) :max (:max var-map))
                                             fixtures
                                             :effect-name effect-name))
                              :color color
                              :variables [{:key "beats" :min 1 :max 32 :type :integer :start 2 :name "Beats"}
                                          {:key "cycles" :min 1 :max 10 :type :integer :start 1 :name "Cycles"}
-                                         {:key "phase" :min 0 :max 1 :start 0 :name "Phase"}]
+                                         {:key "phase" :min 0 :max 1 :start 0 :name "Phase"}
+                                         {:key "min" :min 0 :max 255 :start 0 :name "Min"}
+                                         {:key "max" :min 0 :max 255 :start 255 :name "Max"}]
                              :end-keys end-keys))))

 (defn make-sine-dimmer-cue
@@ -716,13 +722,15 @@
                                             (oscillators/build-oscillated-param
                                              (oscillators/sine :interval-ratio (build-ratio-param var-map)
                                                                :phase (:phase var-map))
-                                             :min 1)
+                                             :min (:min var-map) :max (:max var-map))
                                             fixtures
                                             :effect-name effect-name))
                              :color color
                              :variables [{:key "beats" :min 1 :max 32 :type :integer :start 2 :name "Beats"}
                                          {:key "cycles" :min 1 :max 10 :type :integer :start 1 :name "Cycles"}
-                                         {:key "phase" :min 0 :max 1 :start 0 :name "Phase"}]
+                                         {:key "phase" :min 0 :max 1 :start 0 :name "Phase"}
+                                         {:key "min" :min 0 :max 255 :start 1 :name "Min"}
+                                         {:key "max" :min 0 :max 255 :start 255 :name "Max"}]
                              :end-keys end-keys))))

 (defn make-square-dimmer-cue
@@ -737,14 +745,17 @@
                                             (oscillators/build-oscillated-param
                                              (oscillators/square :interval-ratio (build-ratio-param var-map)
                                                                  :width (:width var-map)
-                                                                 :phase (:phase var-map)))
+                                                                 :phase (:phase var-map))
+                                             :min (:min var-map) :max (:max var-map))
                                             fixtures
                                             :effect-name effect-name))
                              :color color
                              :variables [{:key "beats" :min 1 :max 32 :type :integer :start 2 :name "Beats"}
                                          {:key "width" :min 0 :max 1 :start 0.5 :name "Width"}
                                          {:key "cycles" :min 1 :max 10 :type :integer :start 1 :name "Cycles"}
-                                         {:key "phase" :min 0 :max 1 :start 0 :name "Phase"}]
+                                         {:key "phase" :min 0 :max 1 :start 0 :name "Phase"}
+                                         {:key "min" :min 0 :max 255 :start 0 :name "Min"}
+                                         {:key "max" :min 0 :max 255 :start 255 :name "Max"}]
                              :end-keys end-keys))))

 (defn x-phase


Fixed issue #2. Thanks to @tuhlmann for input!

--- src/rente/client/app.cljs
+++ src/rente/client/app.cljs
@@ -16,22 +16,9 @@
   [data [_ msg]]
   (swap! data update-in [:messages] #(conj % msg)))

-(defn event-loop [data]
-  (go-loop []
-    (let [msg (<! ws/ch-chsk)]
-      (when msg
-        (let [[op arg] (:event msg)]
-          (case op
-            :chsk/recv (handle-event data op)
-            nil))
-        (recur)))))
-
-
 (defn app [data]
-  (event-loop data)
   (:re-render-flip @data)
   [views/main data])
-

 (defn ^:export main []
   (when-let [root (.getElementById js/document "app")]


Minor refactoring

Minor refactoring

--- frontend/src/faceboard/views/boards/people.cljs
+++ frontend/src/faceboard/views/boards/people.cljs
@@ -373,14 +373,13 @@
   (did-update [_ _ _]
     (recompute-layout data owner))
   (render [_]
-    (let [{:keys [ui anims]} data
-          people (get-in data [:content :people])
+    (let [people (get-in data [:content :people])
           people-comparator (fn [p1 p2]
                               (let [name1 (str (get-in p1 [:bio :name]))
                                     name2 (str (get-in p2 [:bio :name]))]
                                 (compare name1 name2)))
           sorted-people (sort people-comparator people)
-          active-filters (get-in ui [:filters :active])
+          active-filters (get-in data [:ui :filters :active])
           filter-predicates (build-filter-predicates active-filters data)
           sorted-people-with-filter-status (map (fn [person]
                                                   (hash-map


:bug: Add missing import

:bug: Add missing import

--- frontend/src/uxbox/main/ui/settings/header.cljs
+++ frontend/src/uxbox/main/ui/settings/header.cljs
@@ -11,6 +11,7 @@
             [uxbox.util.i18n :refer [tr]]
             [uxbox.util.router :as r]
             [uxbox.main.store :as st]
+            [uxbox.main.data.auth :as da]
             [uxbox.main.data.projects :as dp]
             [uxbox.main.ui.navigation :as nav]
             [uxbox.builtins.icons :as i]


s/dezipper/smooth/

s/dezipper/smooth/

--- src/overtone/sc/ugen/input.clj
+++ src/overtone/sc/ugen/input.clj
@@ -22,7 +22,7 @@
                :map {:linear 0 :exponential 1 :lin 0 :exp 1}
                :rates #{:kr}
                :doc "mapping curve - either :linear or :exponential (:lin and :exp abbreviations are allowed)"}
-              {:name "lag", :default 0.2 :doc "lag factor to dezipper cursor movement."}]
+              {:name "lag", :default 0.2 :doc "lag factor to smooth out cursor movement."}]

        :doc "maps the current mouse Y coordinate to a value between min and max"}


Set up a chord loop.

Set up a chord loop.

--- src/overtunes/songs/at_all.clj
+++ src/overtunes/songs/at_all.clj
@@ -1,34 +1,32 @@
 (ns overtunes.songs.at-all
   (:use
-    [overtone.live :exclude [scale octave sharp flat sixth unison play]]
+    [overtone.live :only [at now]]
     [overtone.inst.sampled-piano :only [sampled-piano]]))

-(def scale 66)
+(defn bpm [beats-per-minute]
+  (let [start (now)
+        ms-per-minute (* 60 1000)
+        ms-per-beat (/ ms-per-minute beats-per-minute)]
+    #(+ start (* ms-per-beat %))))
+
+(defn from [timing offset] #(timing (+ offset %)))
+
+(def scale 56)
 (defn ground [note] (+ scale note))

 (def note# (comp sampled-piano ground))
 (defn chord# [chord] (doseq [note (vals chord)] (note# note)))

 (def ionian {:i 0, :ii 2, :iii 4, :iv 5, :v 7, :vi 9, :vii 11, :viii 12})
-(def i (select-keys ionian [:i :iii :v]))
-(def ii (select-keys ionian [:ii :iv :vi]))
+(def I (select-keys ionian [:i :iii :v]))
+(def II (select-keys ionian [:ii :iv :vi]))
+(def V (select-keys ionian [:v :vii :ii]))

-(chord# ii)
+(def progression [I {} II {} II V I V])

+(defn rythm-n-bass# [timing chords]
+  (do
+    (at (timing 0) (chord# (first chords)))
+    (rythm-n-bass# (from timing 4) (rest chords))))

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+; (rythm-n-bass# (bpm 130) (cycle progression))


Further cleaned up votes-base impl via plubming.core

--- src/polismath/conversation.clj
+++ src/polismath/conversation.clj
@@ -288,12 +288,11 @@
       :votes-base (plmb/fnk [bid-to-pid rating-mat]
                     (->> rating-mat
                       colnames
-                      (map (fn [tid]
-                        {:tid tid
-                         :A (agg-bucket-votes-for-tid bid-to-pid rating-mat agree? tid)
-                         :D (agg-bucket-votes-for-tid bid-to-pid rating-mat disagree? tid)
-                         :S (agg-bucket-votes-for-tid bid-to-pid rating-mat number? tid)}))
-                      (reduce (fn [o entry] (assoc o (:tid entry) (dissoc entry :tid))) {})))
+                      (plmb/map-from-keys
+                        (fn [tid]
+                          {:A (agg-bucket-votes-for-tid bid-to-pid rating-mat agree? tid)
+                           :D (agg-bucket-votes-for-tid bid-to-pid rating-mat disagree? tid)
+                           :S (agg-bucket-votes-for-tid bid-to-pid rating-mat number? tid)}))))

       ; {tid {gid {A _ D _ S}}}
       :group-votes (plmb/fnk [group-clusters base-clusters votes-base]


Rename generate-terminus-map to be more reflective of what it generates.

--- src/puppetlabs/ezbake/core.clj
+++ src/puppetlabs/ezbake/core.clj
@@ -292,7 +292,7 @@
       (str "pe-" (name project))
       (name project)))

-(defn generate-terminus-map
+(defn generate-terminus-list
   [dependencies build-target]
   (for [{:keys [project version jar]} dependencies
         :let [terminus-files (get-terminus-files-in jar)]
@@ -303,7 +303,7 @@
   "Stage all terminus files. Returns a sequence zipping project names and
   their terminus files."
   [dependencies build-target]
-  (let [files (generate-terminus-map dependencies build-target)]
+  (let [files (generate-terminus-list dependencies build-target)]
     (doseq [[project version terminus-files jar] files]
       (println (str "Staging terminus files for " project " version " version))
       (deputils/cp-files-from-jar terminus-files jar staging-dir))


Randomize welcome question

Randomize welcome question

--- src/sinusoides/components.cljs
+++ src/sinusoides/components.cljs
@@ -54,7 +54,23 @@
       "TO" [:a {:href (routes/do)} "DO."]]]))

 (defn main-view []
-  (r/with-let [hover (r/atom false)]
+  (r/with-let [gens [#(rand-nth ["What "
+                                 "Who "
+                                 "Where "
+                                 "Why "])
+                     #(rand-nth [" I"
+                                 " you"
+                                 " they"])
+                     #(rand-nth [[" I " "am"]
+                                 [" you " "are"]
+                                 [" they " "are"]])]
+               hover (r/atom false)
+               parts (r/atom ;; (vec (map apply gens))
+                       ["What " " you" [" I " "am"]])
+               randomize (fn []
+                           (let [[idx gen] (rand-nth (map-indexed vector gens))]
+                             (swap! parts #(assoc % idx (gen)))))
+               interval (.setInterval js/window randomize 5000)]
     [:div#main-page
      [:a {:href (routes/not-found)
             :on-mouse-over #(reset! hover true)
@@ -62,15 +78,17 @@
       [:div#sinusoid.imglink [:div] [:div]]]
      [:a {:href (routes/todo)} [:div#barcode]]
      [:div#main-text.links {:class (when @hover "hovered")}
-      [:div#main-pre-text "What " [:a {:href (routes/do)} "do"] " you "]
+      [:div#main-pre-text (@parts 0)
+       [:a {:href (routes/do)} "do"] (@parts 1)]
       [:div#main-post-text
-       [:a {:href (routes/think)} "think"] " I "
-       [:a {:href (routes/am)} "am"] "?"]]
+       [:a {:href (routes/think)} "think"] ((@parts 2) 0)
+       [:a {:href (routes/am)} ((@parts 2) 1)] "?"]]
      [:div#fingerprint.links
       [:a {:href (str "mailto:"
                    (s/reverse "gro.ung@vokinloksar"))}
        "CE3E CB30 6F40 3D98 DB2E" [:br]
-       "B65C 529B A962 690A 70B1"]]]))
+       "B65C 529B A962 690A 70B1"]]]
+    (finally (.clearInterval js/window interval))))

 (defn md->html [str]
   (let [Converter (.-converter js/Showdown)


Remove unused code.

Remove unused code.

--- src/tryclojure/models/eval.clj
+++ src/tryclojure/models/eval.clj
@@ -44,9 +44,6 @@
     (dosync (ref-set isla-env return))
     (:ret return)))

-(defn repl []
-  (run (utils/take-input))
-  (repl))
 ;; story

 (defmulti run-story-command (fn [command expr] command))


removing fixed default number of masters

--- src/terraboot/cluster.clj
+++ src/terraboot/cluster.clj
@@ -117,8 +117,6 @@
    :lb_port (or lb_port port)
    :lb_protocol (or lb_protocol protocol)})

-(def default-number-of-master-instances 3)
-

 (defn cluster-infra
   [{:keys [vpc-name
@@ -259,7 +257,7 @@
                                :exhibitor-s3-bucket (cluster-unique "exhibitor-s3-bucket")
                                :internal-lb-dns (cluster-output-of "aws_elb" "InternalMasterLoadBalancer" "dns_name")
                                :fallback-dns (vpc/fallback-dns vpc/vpc-cidr-block)
-                               :number-of-masters default-number-of-master-instances}
+                               :number-of-masters min-number-of-masters}
                         })

              (asg "MasterServerGroup"
@@ -320,7 +318,7 @@
                                :exhibitor-s3-bucket (cluster-unique "exhibitor-s3-bucket")
                                :internal-lb-dns (cluster-output-of "aws_elb" "InternalMasterLoadBalancer" "dns_name")
                                :fallback-dns (vpc/fallback-dns vpc/vpc-cidr-block)
-                               :number-of-masters default-number-of-master-instances}})
+                               :number-of-masters min-number-of-masters}})

              (asg "PublicSlaveServerGroup"
                   cluster-unique
@@ -362,7 +360,7 @@
                                :exhibitor-s3-bucket (cluster-unique "exhibitor-s3-bucket")
                                :internal-lb-dns (cluster-output-of "aws_elb" "InternalMasterLoadBalancer" "dns_name")
                                :fallback-dns (vpc/fallback-dns vpc/vpc-cidr-block)
-                               :number-of-masters default-number-of-master-instances}
+                               :number-of-masters min-number-of-masters}
                         })

              (asg "SlaveServerGroup"


haha holy shit it actually follows you around - seeing weird collision resolution issues though

--- src/voke/system/ai/system.cljs
+++ src/voke/system/ai/system.cljs
@@ -7,9 +7,17 @@
               (let [player (->> entities
                                 (filter #(contains? % :input))
                                 first)
+                    player-center (get-in player [:shape :center])
                     entities-with-ai (filter #(contains? % :ai) entities)]
                 (for [entity entities-with-ai]
-                  entity
+                  (let [entity-center (get-in entity [:shape :center])]
+                    (assoc-in entity
+                              [:motion :direction]
+                              (Math/atan2 (- (player-center :y)
+                                             (entity-center :y))
+                                          (- (player-center :x)
+                                             (entity-center :x)))))
+
                   )
                 )
               )})


[#8937] Recent stickers are shown when stickers tab is highlighted

Signed-off-by: Andrey Shovkoplyas <b713972e59b8e606e23253c4a13e948139fea4d1@gmail.com>

--- src/status_im/ui/screens/chat/stickers/views.cljs
+++ src/status_im/ui/screens/chat/stickers/views.cljs
@@ -64,12 +64,16 @@

 (defn update-scroll-position [ref installed-packs selected-pack window-width]
   (when ref
-    (let [x (if (= selected-pack :recent)
-              0
-              (* (inc (some #(when (= selected-pack (:id (second %))) (first %))
-                            (map-indexed vector installed-packs)))
-                 window-width))]
-      (.scrollTo ref (clj->js {:x x :animated true})))))
+    ;; bug on Android https://github.com/facebook/react-native/issues/24531
+    (js/setTimeout
+     (fn []
+       (let [x (if (= selected-pack :recent)
+                 0
+                 (* (inc (some #(when (= selected-pack (:id (second %))) (first %))
+                               (map-indexed vector installed-packs)))
+                    window-width))]
+         (.scrollTo ref #js {:x x :animated true})))
+     200)))

 (defn on-scroll [e installed-packs window-width]
   (let [num     (/ (.-nativeEvent.contentOffset.x e) window-width)


Bugfixes, change how repeaters are displayed

--- org-mode/src/com/gfredericks/org_agenda.clj
+++ org-mode/src/com/gfredericks/org_agenda.clj
@@ -205,15 +205,13 @@
                                                                    (count all-dates)
                                                                    %)))))))

-                ;; TODO: this (rep) prefix breaks links
                 scheduled-repeater?
                 (->> (apply-repeater (:repeater scheduled) (:base scheduled) today max-repeater-date)
                      (map-indexed (fn [idx scheduled]
                                     (-> base
                                         (assoc :scheduled scheduled)
                                         (cond-> (pos? idx)
-                                          (-> (update :header #(str "(rep) " % " "))
-                                              (assoc :last-repeat nil)))))))
+                                          (assoc :repeat? true :last-repeat nil))))))

                 deadline-repeater?
                 (->> (apply-repeater (:repeater deadline) (:base deadline) today max-repeater-date)
@@ -221,8 +219,7 @@
                                     (-> base
                                         (assoc :deadline deadline)
                                         (cond-> (pos? idx)
-                                          (-> (update :header #(str "(rep) " %))
-                                              (assoc :last-repeat nil)))))))
+                                          (assoc :repeat? true :last-repeat nil))))))

                 :else [base])))
       (catch Exception e
@@ -456,12 +453,15 @@
   (let [now (ZonedDateTime/now CHICAGO)
         {:keys [triage deadlines by-day past-log]} (synthesize-agenda deets-by-file today)
         format-todo (fn [{:keys [done todo priority-cookie header] :as item}]
-                      (format "%s%s %s"
+                      (format "%s%s %s%s"
                               (cond-> (or done todo)
                                 (= "[#C]" priority-cookie)
                                 (->> .toLowerCase (format "(%s)")))
                               (if priority-cookie
                                 (str " " priority-cookie)
+                                "")
+                              (if (:repeat? item)
+                                "[rep] "
                                 "")
                               (if (= "t" (get (:properties item) "AGENDA_NO_LINK"))
                                 header
@@ -515,7 +515,7 @@
         (println))
       (when (seq triage)
         (println "== TRIAGE ==")
-        (doseq [item (sort-by (juxt (comp - priority) :created-at :file :line) triage)]
+        (doseq [item (sort-by (juxt (comp - priority) :created-at :file :line-number) triage)]
           (print-todo-line item {}))
         (println))
       (let [stats-by-date
@@ -554,7 +554,13 @@
           ;; TODO: we shouldn't be putting things in the calendar if they're
           ;; scheduled in the past...
           (->> todos
-               (sort-by (juxt (comp - priority) relevant-date :file :line))
+               (sort-by (juxt (comp - priority)
+                              ;; move rep entries to the bottom for the future blocks, so that
+                              ;; nonrepeating items stick out
+                              (if (= date today) (constantly nil) :repeat?)
+                              relevant-date
+                              :file
+                              :line-number))
                (run! (fn [item] (print-todo-line item {}))))
           (when (= date today)
             (println "\n\n--------------------------------------------------------------------------------")
@@ -587,11 +593,13 @@
   [{:keys [directory reset-all-file] :as cfg}]
   (let [q (LinkedBlockingQueue.)]
     (run! #(.add q %) (all-org-files directory))
-    (let [do-refresh-all (fn [] (run! #(.add q %) (all-org-files directory)))
+    (let [do-refresh-all (fn []
+                           (log/info "Refreshing all agenda input files")
+                           (run! #(.add q %) (all-org-files directory)))
           watcher (watch-dir (bound-fn [{:keys [file] :as event}]
-                               (when (re-matches #".*\.org" (str file))
-                                 (if (= reset-all-file (str file))
-                                   (do-refresh-all)
+                               (if (= reset-all-file (str file))
+                                 (do-refresh-all)
+                                 (when (re-matches #".*\.org" (str file))
                                    (.add q file))))
                              (io/file directory)
                              (fs/parent (io/file reset-all-file)))]


Simplify class creation

Simplify class creation

--- src/reagent/impl/component.cljs
+++ src/reagent/impl/component.cljs
@@ -25,7 +25,7 @@

 (defn reagent-class? [c]
   (and (fn? c)
-       (some? (.' c :cljsReactClass))))
+       (some? (.' c :prototype.reagentRender))))

 (defn do-render-sub [c]
   (let [f (.' c :reagentRender)
@@ -42,16 +42,15 @@
                   4 (f (nth argv 1) (nth argv 2) (nth argv 3))
                   5 (f (nth argv 1) (nth argv 2) (nth argv 3) (nth argv 4))
                   (apply f (subvec argv 1)))))]
-    (if (vector? res)
-      (as-element res)
-      (if (ifn? res)
-        (let [f (if (reagent-class? res)
-                  (fn [& args]
-                    (as-element (apply vector res args)))
-                  res)]
-          (.! c :reagentRender f)
-          (recur c))
-        res))))
+    (cond
+      (vector? res) (as-element res)
+      (ifn? res) (let [f (if (reagent-class? res)
+                           (fn [& args]
+                             (as-element (apply vector res args)))
+                           res)]
+                   (.! c :reagentRender f)
+                   (recur c))
+      :else res)))

 (declare comp-name)

@@ -150,7 +149,7 @@
       (this-as c (apply f c args)))
     f))

-(def dont-wrap #{:render :reagentRender :cljsName})
+(def dont-wrap #{:render :reagentRender})

 (defn dont-bind [f]
   (if (fn? f)
@@ -182,12 +181,9 @@
   (merge obligatory fun-map))

 (defn add-render [fun-map render-f name]
-  (let [fm (assoc fun-map
-                  :reagentRender render-f
-                  :render (:render static-fns))]
-    (if (dev?)
-      (assoc fm :cljsName (fn [] name))
-      fm)))
+  (assoc fun-map
+         :reagentRender render-f
+         :render (:render static-fns)))

 (defn fun-name [f]
   (or (and (fn? f)
@@ -200,27 +196,28 @@
           (:name m)))))

 (defn wrap-funs [fmap]
-  (let [fun-map (if-some [cf (:componentFunction fmap)]
-                  (-> fmap
-                      (assoc :reagentRender cf)
-                      (dissoc :componentFunction))
-                  fmap)
-        render-fun (:reagentRender fun-map)
+  (when (dev?)
+    (let [renders (select-keys fmap [:render :reagentRender :componentFunction])
+          render-fun (-> renders vals first)]
+      (assert (pos? (count renders)) "Missing reagent-render")
+      (assert (== 1 (count renders)) "Too many render functions supplied")
+      (assert (ifn? render-fun) (str "Render must be a function, not "
+                                     (pr-str render-fun)))))
+  (let [render-fun (or (:reagentRender fmap)
+                       (:componentFunction fmap))
         legacy-render (nil? render-fun)
         render-fun (or render-fun
-                       (:render fun-map))
-        _ (assert (ifn? render-fun)
-                  (str "Render must be a function, not "
-                       (pr-str render-fun)))
-        name (str (or (:displayName fun-map)
+                       (:render fmap))
+        name (str (or (:displayName fmap)
                       (fun-name render-fun)))
         name (if (empty? name)
                (str (gensym "reagent"))
-               (clojure.string/replace name #"\$" "."))
-        fmap (-> fun-map
-                 (assoc :cljsLegacyRender legacy-render
-                        :displayName name)
-                 (add-render render-fun name))]
+               (clojure.string/replace name "$" "."))
+        fmap (assoc fmap
+                    :displayName name
+                    :cljsLegacyRender legacy-render
+                    :reagentRender render-fun
+                    :render (:render static-fns))]
     (reduce-kv (fn [m k v]
                  (assoc m k (get-wrapper k v name)))
                {} fmap)))
@@ -238,17 +235,15 @@
       wrap-funs
       map-to-js))

-(defn create-class
-  [body]
-  (assert (map? body))
+(defn create-class [body]
+  {:pre [(map? body)]}
   (let [spec (cljsify body)
         res (.' js/React createClass spec)]
     (util/cache-react-class res res)
     res))

 (defn component-path [c]
-  (let [elem (some-> (or (some-> c
-                                 (.' :_reactInternalInstance))
+  (let [elem (some-> (or (some-> c (.' :_reactInternalInstance))
                           c)
                      (.' :_currentElement))
         name (some-> elem
@@ -265,7 +260,7 @@
   (if (dev?)
     (let [c *current-component*
           n (or (component-path c)
-                (some-> c (.' cljsName)))]
+                (some-> c .-constructor fun-name))]
       (if-not (empty? n)
         (str " (in " n ")")
         ""))


don't log secret key

don't log secret key

--- MeinsApp/src/cljs/meins/components/sync.cljs
+++ MeinsApp/src/cljs/meins/components/sync.cljs
@@ -37,7 +37,6 @@
                                       :msg-meta    {}}]     ; save battery and bandwidth
               serialized (pr-str serializable)
               _ (info "their-public-key" their-public-key)
-              _ (info "our-secret-key" our-secret-key)
               hex-cipher (mse/encrypt-asymm serialized their-public-key our-secret-key)
               photo-uri (-> msg-payload :media :image :uri)
               filename (:img_file msg-payload)


Fix typo.

Fix typo.

--- src/buddy/sign/compact.clj
+++ src/buddy/sign/compact.clj
@@ -25,7 +25,7 @@
   messages.

   The purpose of this implementation is for secure message
-  transfer, is not really good candidate for auth token
+  transfer, it is not really good candidate for auth token
   because of not good space efficiency for small messages."
   (:require [buddy.core.codecs :as codecs]
             [buddy.core.bytes :as bytes]


Fix a bug in the headings of ludo (and hörfilm) entries

--- src/catalog/layout/fop.clj
+++ src/catalog/layout/fop.clj
@@ -198,17 +198,26 @@
       (wrap narrator "gelesen von: " " u.a. " false)
       (wrap narrator "gelesen von: "))))

-(defn- entry-heading-sexp
-  [creator record-id title subtitles name-of-part source-publisher source-date]
+(defmulti entry-heading-sexp (fn [{fmt :format}] fmt))
+(defmethod entry-heading-sexp :ludo
+  [{:keys [creator record-id title subtitles]}]
   (block {:keep-with-next "always"}
-     (bold (wrap creator "" ": " false)
-           (link-to-online-catalog record-id (layout/periodify title)))
-     (when subtitles " ")
-     (layout/render-subtitles subtitles)
-     (wrap name-of-part " ")
-     (when (or source-publisher source-date) " - ")
-     (wrap source-publisher "" (if source-date ", " "") false)
-     (wrap (layout/year source-date))))
+         (bold (link-to-online-catalog record-id (layout/periodify title)))
+         (when subtitles " ")
+         (layout/render-subtitles subtitles)
+         (wrap creator " " "" false)))
+
+(defmethod entry-heading-sexp :default
+  [{:keys [creator record-id title subtitles name-of-part source-publisher source-date]}]
+  (block {:keep-with-next "always"}
+         (bold (wrap creator "" ": " false)
+               (link-to-online-catalog record-id (layout/periodify title)))
+         (when subtitles " ")
+         (layout/render-subtitles subtitles)
+         (wrap name-of-part " ")
+         (when (or source-publisher source-date) " - ")
+         (wrap source-publisher "" (if source-date ", " "") false)
+         (wrap (layout/year source-date))))

 (defn- ausleihe [signature]
   (when signature
@@ -227,11 +236,10 @@
 (defmulti entry-sexp (fn [{fmt :format}] fmt))

 (defmethod entry-sexp :hörbuch
-  [{:keys [creator record-id title subtitles name-of-part source-publisher
-           source-date genre-text description duration narrators producer-brief
-           produced-commercially? library-signature product-number price]}]
-  (list-item
-   (entry-heading-sexp creator record-id title subtitles name-of-part source-publisher source-date)
+  [{:keys [genre-text description duration narrators producer-brief
+           produced-commercially? library-signature product-number price] :as item}]
+  (list-item
+   (entry-heading-sexp item)
    (block (wrap genre-text "Genre: "))
    (block (wrap description))
    (block (wrap duration "" " Min., " false) (narrators-sexp narrators))
@@ -241,11 +249,10 @@
      (block {:keep-with-previous "always"} (bold "Verkauf:") " " product-number ", " price))))

 (defmethod entry-sexp :braille
-  [{:keys [creator record-id title subtitles name-of-part source-publisher source-date
-           genre-text description producer-brief rucksackbuch? rucksackbuch-number
-           library-signature product-number price]}]
-  (list-item
-   (entry-heading-sexp creator record-id title subtitles name-of-part source-publisher source-date)
+  [{:keys [genre-text description producer-brief rucksackbuch? rucksackbuch-number
+           library-signature product-number price] :as item}]
+  (list-item
+   (entry-heading-sexp item)
    (block (wrap genre-text "Genre: "))
    (block (wrap description))
    (block producer-brief (if rucksackbuch? (str ", Rucksackbuch Nr. " rucksackbuch-number) "") ".")
@@ -253,10 +260,9 @@
    (verkauf product-number price)))

 (defmethod entry-sexp :grossdruck
-  [{:keys [creator record-id title subtitles name-of-part source-publisher source-date
-           genre-text description library-signature volumes product-number price]}]
-  (list-item
-   (entry-heading-sexp creator record-id title subtitles name-of-part source-publisher source-date)
+  [{:keys [genre-text description library-signature volumes product-number price] :as item}]
+  (list-item
+   (entry-heading-sexp item)
    (block (wrap genre-text "Genre: "))
    (block (wrap description))
    (when library-signature
@@ -266,21 +272,18 @@
      (block {:keep-with-previous "always"} (bold "Verkauf:") " " price))))

 (defmethod entry-sexp :e-book
-  [{:keys [creator record-id title subtitles name-of-part source-publisher source-date
-           genre-text description library-signature]}]
-  (list-item
-   (entry-heading-sexp creator record-id title subtitles name-of-part source-publisher source-date)
+  [{:keys [genre-text description library-signature] :as item}]
+  (list-item
+   (entry-heading-sexp item)
    (block (wrap genre-text "Genre: "))
    (block (wrap description))
    (ausleihe library-signature)))

 (defmethod entry-sexp :hörfilm
-  [{:keys [record-id title subtitles directed-by actors movie_country genre-text
-           description producer library-signature]}]
-  (list-item
-   (block {:keep-with-next "always"}
-     (bold (link-to-online-catalog record-id (layout/periodify title)))
-     (layout/render-subtitles subtitles))
+  [{:keys [directed-by actors movie_country genre-text
+           description producer library-signature] :as item}]
+  (list-item
+   (entry-heading-sexp item)
    (block (wrap directed-by "Regie: " "") (wrap actors " Schauspieler: " ""))
    (block (wrap movie_country))
    (block (wrap genre-text))
@@ -289,13 +292,10 @@
    (ausleihe library-signature)))

 (defmethod entry-sexp :ludo
-  [{:keys [record-id title subtitles creator source-publisher genre-text description
-           game-description accompanying-material library-signature]}]
-  (list-item
-   (block {:keep-with-next "always"}
-     (bold (link-to-online-catalog record-id (layout/periodify title)))
-     (layout/render-subtitles subtitles)
-     (layout/wrap creator " "))
+  [{:keys [source-publisher genre-text description
+           game-description accompanying-material library-signature] :as item}]
+  (list-item
+   (entry-heading-sexp item)
    (block (wrap source-publisher))
    (block (wrap genre-text))
    (block (wrap description))
@@ -303,20 +303,18 @@
    (ausleihe library-signature)))

 (defmethod entry-sexp :musiknoten
-  [{:keys [creator record-id title subtitles name-of-part source-publisher source-date
-           description producer-brief library-signature product-number price]}]
-  (list-item
-   (entry-heading-sexp creator record-id title subtitles name-of-part source-publisher source-date)
+  [{:keys [description producer-brief library-signature product-number price] :as item}]
+  (list-item
+   (entry-heading-sexp item)
    (block (wrap description))
    (block (wrap producer-brief))
    (ausleihe-multi library-signature)
    (verkauf product-number price)))

 (defmethod entry-sexp :taktilesbuch
-  [{:keys [creator record-id title subtitles name-of-part source-publisher source-date
-           description producer-brief library-signature product-number price]}]
-  (list-item
-   (entry-heading-sexp creator record-id title subtitles name-of-part source-publisher source-date)
+  [{:keys [description producer-brief library-signature product-number price] :as item}]
+  (list-item
+   (entry-heading-sexp item)
    (block (wrap description))
    (block (wrap producer-brief))
    (ausleihe-multi library-signature)


just use redis for cache in invite

just use redis for cache in invite

--- src/chat/server/invite.clj
+++ src/chat/server/invite.clj
@@ -16,32 +16,19 @@

 (def hmac-secret (or (env :hmac-secret) "secret"))

-(if (= (env :environment) "prod")
-  (do
-    ; same as conf in handler, but w/e
-    (def redis-conn {:pool {}
-                     :spec {:host "127.0.0.1"
-                            :port 6379}})
+; same as conf in handler, but w/e
+(def redis-conn {:pool {}
+                 :spec {:host "127.0.0.1"
+                        :port 6379}})

-    (defn cache-set! [k v]
-      (car/wcar redis-conn (car/set k v)))
+(defn cache-set! [k v]
+  (car/wcar redis-conn (car/set k v)))

-    (defn cache-get [k]
-      (car/wcar redis-conn (car/get k)))
+(defn cache-get [k]
+  (car/wcar redis-conn (car/get k)))

-    (defn cache-del! [k]
-      (car/wcar redis-conn (car/del k))))
-  (do
-    (def cache (atom {}))
-
-    (defn cache-set! [k v]
-      (swap! cache assoc k v))
-
-    (defn cache-get [k]
-      (@cache k))
-
-    (defn cache-del! [k]
-      (swap! cache dissoc k))))
+(defn cache-del! [k]
+  (car/wcar redis-conn (car/del k)))

 (defn random-nonce
   "url-safe random nonce"


Add employment-component

Add employment-component

--- app/src/cljs/app/components.cljs
+++ app/src/cljs/app/components.cljs
@@ -63,3 +63,9 @@
     [:div.mdl-cell-mdl-cell--8-col.employmentdescription
      [:p (:description employment)]]]])

+(defn emploment-component
+  [employments]
+  [:div#employment
+   [section-component
+    (into [:div.emploment (map #(single-employment-component %) employments)])]])
+


refactor core/result

refactor core/result

--- src/clj/ephemeris/core.clj
+++ src/clj/ephemeris/core.clj
@@ -64,11 +64,11 @@
 ;; alternatively, k can be a vector of keys where get-in yields a vector value
 ;; returns the value for further use
 (defn- result [a k v]
-  (if (vector? k)
-    (do (reset! a (assoc-in @a k (conj (get-in @a k) v)))
-      v)
-    (do (swap! a assoc k v)
-      v)))
+  (do
+    (if (vector? k)
+      (reset! a (assoc-in @a k (conj (get-in @a k) v)))
+      (swap! a assoc k v))
+    v))

 (defn calc
   ([] (calc {}))


Adapt web views logic to last global state refactor changes.

--- src/clj/pfrt/web/views.clj
+++ src/clj/pfrt/web/views.clj
@@ -1,10 +1,8 @@
 (ns pfrt.web.views
   (:require [clojure.java.io :as io]
             [org.httpkit.server :as hkit]
-            [org.httpkit.timer :as htimer]
-            [pfrt.packetfilter :as pf]
             [pfrt.util :as util]
-            [pfrt.service :as service]
+            [pfrt.executor :as executor]
             [pfrt.web.core :refer [render-json render-html cors-headers]])
   (:gen-class))

@@ -12,10 +10,10 @@
   [request]
   (render-html (slurp (io/resource "index.html"))))

-;; FIXME
 (defn stats
   [request]
-  (render-json @pf/hosts-data))
+  (let [pfctx (-> request :ctx :pf)]
+    (render-json @(:pfdata pfctx))))

 (defn stats-stream
   [request]
@@ -26,15 +24,16 @@
                             "cache-control" "no-cache"})
         initialmsg  {:headers headers
                      :body "event: message\n"
-                     :status 200}]
+                     :status 200}
+        pfctx       (-> request :ctx :pf)]
     (hkit/with-channel request channel
       (hkit/send! channel initialmsg false)
       (let [worker  (fn []
                       (println ".")
                       (let [loopfn (fn []
-                                    (let [data (str "data: " (util/json-dumps @pf/hosts-data) "\n\n")]
+                                    (let [data (str "data: " (util/json-dumps @(:pfdata pfctx)) "\n\n")]
                                       (hkit/send! channel data false)))]
-                        (service/run-interval loopfn 1000)
+                        (executor/run-interval loopfn 1000)
                         (println "CLOSE")))
             thread  (Thread. worker)]
         (hkit/on-close channel (fn [& args]


Fixed thirds and fifths

Fixed thirds and fifths

--- src/cljs/guitar1/neck.cljs
+++ src/cljs/guitar1/neck.cljs
@@ -43,8 +43,8 @@
     :class (str "fret "
                 (if (contains note (scaleify key scale)) "scale-note ")
                 (if (= key note) "root")
-                (if (= note (nth (scaleify key scale) 3)) "third")
-                (if (= note (nth (scaleify key scale) 5)) "fifth"))}
+                (if (= note (nth (scaleify key scale) (dec 3))) "third")
+                (if (= note (nth (scaleify key scale) (dec 5))) "fifth"))}
    (name note)])

 (defn build-string


Change controller to use app specific db

Mithril controller's get thrown away on route change
and it's constructor function is called again.
This makes controller local state somewhat useless,
since changing views will throw it out.

This version is more akin to view model, though it's really
an app db like repo view has.

--- src/cljs/repodoc/core.cljs
+++ src/cljs/repodoc/core.cljs
@@ -5,7 +5,7 @@
     [m]
     [goog.i18n.DateTimeFormat :as dtf]
     [repodoc.data :refer [REPO FILETYPES]]
-    [repodoc.fathom :refer [nm request]]
+    [repodoc.fathom :refer [nm request route_param]]
     [repodoc.utils :refer [serialize-md serialize-edn serialize-html serialize format_time]]
     [repodoc.editor :as e]
     [devtools.core :as devtools]
@@ -208,7 +208,10 @@
   []
   (nm "div.toolbar" [(nm "button.pure-button" {:onclick #(toggle-serialization)} "Export")]))

-(defn ctrl [])
+(defn ctrl []
+  "https://api.github.com/repos/jussiarpalahti/repodoc/commits"
+  (let [username (route_param "user")
+        repository (route_param "repository")]))

 (defn viewer
   [ctrl]
@@ -219,7 +222,6 @@

 (defn fetch_repositories
   [username cb]
-  (println "hmm" username)
   (let [repourl (str "https://api.github.com/users/" username "/repos")]
     (request {:url repourl}  #(cb %))))

@@ -253,7 +255,9 @@

 (def repodoc {:controller ctrl :view viewer})

-(def index {:controller #(initialize-db {:username "jussiarpalahti" :repositories nil})
+(def index-app-db (initialize-db {:username "jussiarpalahti" :repositories nil}))
+
+(def index {:controller (fn [] index-app-db)
             :view index_view})

 ;; Routing mode


adsense connect

adsense connect

--- src/clojure/nossal/web.clj
+++ src/clojure/nossal/web.clj
@@ -43,6 +43,9 @@
         [:script {:async true :custom-element "amp-analytics" :src "https://cdn.ampproject.org/v0/amp-analytics-0.1.js"}])
       [:style {:amp-custom true} (slurp (io/resource "public/css/screen.css")) css]
       [:style {:amp-boilerplate true} (slurp (io/resource "amp-css.css"))]
+      [:script {:async true :src "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"}]
+      [:script
+        "(adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: \"ca-pub-9207695243671092\", enable_page_level_ads: true });"]
       [:noscript
        [:style {:amp-boilerplate true} "body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none} "]]]
      [:body


add tag type counts stat to search results

--- src/semtag_web/client/main.cljs
+++ src/semtag_web/client/main.cljs
@@ -103,17 +103,18 @@
        (clojure.string/join ", ")))

-(defn- create-search-table [parent data]
+(defn- create-search-table [parent {things :things tags :tags}]
   (jq/remove ($ :#search_table))
   (jq/remove ($ :#table_stats))
   (jq/after (jq/find parent :h2)
-            (view/table-stats (str "Tag Counts: " (frequencies-string (flatten (map :tags data))))
-                              (str "Type Counts: " (frequencies-string (map :type data)))))
+            (view/table-stats (str "Tag Type Counts: " (frequencies-string (map first tags)))
+                              (str "Tag Counts: " (frequencies-string (flatten (map :tags things))))
+                              (str "Type Counts: " (frequencies-string (map :type things)))))
   (jq/after (jq/find parent :#table_stats)
-            (generate-table "search_table" data
+            (generate-table "search_table" things
                             :fields [:type :name :url :desc :tags]
                             :row-partial view/tag-search-row
-                            :caption (format "Total: %s" (count (map :url data)))))
+                            :caption (format "Total: %s" (count (map :url things)))))

   (make-table-editable)
   (add-sort-to parent))


CMR-348: Fixed umm->elastic-doc for orbit calculated spatial domains.

--- src/cmr/indexer/services/concepts/orbit_calculated_spatial_domain.clj
+++ src/cmr/indexer/services/concepts/orbit_calculated_spatial_domain.clj
@@ -1,6 +1,7 @@
 (ns cmr.indexer.services.concepts.orbit-calculated-spatial-domain
   "Contains functions for converting orbit calcuated spatial domains into a elastic documents"
   (:require [clojure.string :as s]
+            [cmr.indexer.services.concepts.attribute :as attr]
             [cmr.common.services.errors :as errors]))

 (defn ocsd->elastic-doc
@@ -11,14 +12,15 @@
                 start-orbit-number
                 stop-orbit-number
                 equator-crossing-longitude
-                equator-crossing-date-time]} ocsd]
+                equator-crossing-date-time]} ocsd
+        ecdt (attr/value->elastic-value :datetime equator-crossing-date-time)]
     {:orbit-number orbit-number
      :start-orbit-number start-orbit-number
      :stop-orbit-number stop-orbit-number
-     :equator-crossing-longitude equator-crossing-date-time
-     :equator-crossing-date-time equator-crossing-date-time}))
+     :equator-crossing-longitude equator-crossing-longitude
+     :equator-crossing-date-time ecdt}))

 (defn ocsds->elastic-docs
   "Converts the ocsds into a list of elastic documents"
   [granule]
-  (map ocsd->elastic-doc granule))+  (map ocsd->elastic-doc (:orbit-calculated-spatial-domains granule)))


[#7131] Add titles + favicons in browser

Signed-off-by: Andrey Shovkoplyas <b713972e59b8e606e23253c4a13e948139fea4d1@gmail.com>

--- src/status_im/browser/core.cljs
+++ src/status_im/browser/core.cljs
@@ -67,7 +67,7 @@
   {:db            (update-in db [:browser/browsers] dissoc browser-id)
    :data-store/tx [(browser-store/remove-browser-tx browser-id)]})

-(defn check-if-dapp-in-list [{:keys [history history-index] :as browser}]
+(defn check-if-dapp-in-list [{:keys [history history-index name] :as browser}]
   (let [history-host (http/url-host (try (nth history history-index) (catch js/Error _)))
         dapp         (first (filter #(= history-host (http/url-host (http/normalize-url (:dapp-url %))))
                                     (apply concat (mapv :data default-dapps/all))))]
@@ -76,7 +76,7 @@
       ;;url from a dapp browser, the name of the browser in the home screen will
       ;;change
       (assoc browser :dapp? true :name (:name dapp))
-      (assoc browser :dapp? false :name (i18n/label :t/browser)))))
+      (assoc browser :dapp? false :name (or name (i18n/label :t/browser))))))

 (defn check-if-phishing-url [{:keys [history history-index] :as browser}]
   (let [history-host (http/url-host (try (nth history history-index) (catch js/Error _)))]
@@ -199,8 +199,9 @@
     {:browser/show-web-browser-selection url}))

 (fx/defn update-browser-on-nav-change
-  [cofx browser url loading? error?]
-  (let [options (get-in cofx [:db :browser/options])
+  [cofx url error?]
+  (let [browser (get-current-browser (:db cofx))
+        options (get-in cofx [:db :browser/options])
         current-url (:url options)]
     (when (and (not= "about:blank" url) (not= current-url url) (not= (str current-url "/") url))
       (let [resolved-ens (first (filter #(not= (.indexOf url (second %)) -1) (:resolved-ens options)))
@@ -210,13 +211,19 @@
                   (handle-pdf url)
                   (resolve-url {:error? error? :resolved-url (when resolved-ens url)}))))))

+(fx/defn update-browser-name
+  [cofx title]
+  (let [browser (get-current-browser (:db cofx))]
+    (when (and (not (:dapp? browser)) title (not (string/blank? title)))
+      (update-browser cofx (assoc browser :name title)))))
+
 (fx/defn navigation-state-changed
   [cofx event error?]
-  (let [browser (get-current-browser (:db cofx))
-        {:strs [url loading]} (js->clj event)]
+  (let [{:strs [url loading title]} (js->clj event)]
     (fx/merge cofx
               (update-browser-option :loading? loading)
-              (update-browser-on-nav-change browser url loading error?))))
+              (update-browser-name title)
+              (update-browser-on-nav-change url error?))))

 (fx/defn open-url-in-current-browser
   "Opens a url in the current browser, which mean no new entry is added to the home page


devtools: added comment about passing outdated model

--- src/frontend/devtools.cljs
+++ src/frontend/devtools.cljs
@@ -66,6 +66,7 @@

                ; and let component handle its initial signal
                (if-not (nil? (:initial-signal model))
+                 ; note that outdated model is passed, but it's safe because :component key hasn't changed after clearing
                  (control model [:component (:initial-signal model)] dispatch))))

            [:on-toggle-action id]


made game bigger and pipe and monkey configurable

--- src/jumpy_monkey/core.cljs
+++ src/jumpy_monkey/core.cljs
@@ -10,42 +10,45 @@

 (def game-state
   (atom {:monkey {:height 50 :velocity 0}
-         :pipes  [[50 20] [110 40] [170 60]]
+         :pipes  [[50 200] [250 300] [450 400]]
          :last-update (js/Date.)

-         :screen {:width 200 :height 200}
-         :pipe   {:width 20 :gap 20}
-         :gravity 0.005
-         :flapv   -5}))
+         :screen      {:width 480 :height 720}
+         :monkey-config {:width 40 :height 30}
+         :pipe-config {:width 100 :gap 120 :height 720}
+         :gravity     0.005
+         :flapv       -5}))

-(defn pipe-to-top [[x y]]
+(defn pipe-to-top [{:keys [width gap]} [x y]]
   [:rect {:x x
           :y 0
-          :width 20
-          :height (- y 10)
+          :width width
+          :height (- y (/ gap 2))
           :fill "green"}])

-(defn pipe-to-bottom [[x y]]
+(defn pipe-to-bottom [{:keys [height width gap]} [x y]]
   [:rect {:x x
-          :y (+ y 10)
-          :width 20
-          :height (- 200 y 10)
+          :y (+ y (/ gap 2))
+          :width width
+          :height (- height y (/ gap 2))
           :fill "green"}])

-(defn render-monkey [{:keys [height]}]
+(defn render-monkey [{:keys [width height]} {y :height}]
   [:rect {:x 20
-          :y height
-          :width 15
-          :height 10
+          :y y
+          :width width
+          :height height
           :fill "brown"}])

-(defn render-pipes [pipes]
+(defn render-pipes [pipe-config pipes]
   (->> pipes
        (take 3)
-       (mapcat (juxt pipe-to-top pipe-to-bottom))
+       (mapcat (juxt (partial pipe-to-top pipe-config)
+                     (partial pipe-to-bottom pipe-config)))
        (into '())))

-(defn c-game [{:keys [monkey pipes screen] :as game}]
+(defn c-game
+  [{:keys [monkey pipes screen monkey-config pipe-config] :as game}]
   (reify om/IRender
     (render [this]
       (html
@@ -53,8 +56,8 @@
          [:svg {:width (:width screen)
                 :height (:height screen)
                 :style {:border "1px solid black"}}
-          (render-monkey monkey)
-          (render-pipes pipes)]]))))
+          (render-monkey monkey-config monkey)
+          (render-pipes pipe-config pipes)]]))))

 (om/root game-state c-game (js/document.getElementById "my-app"))


Create the handler only once.

Create the handler only once.

--- src/klangmeister/core.cljs
+++ src/klangmeister/core.cljs
@@ -27,30 +27,27 @@

 (defonce state-atom (empty-state))

+(def handle! (framework/handler-for state-atom))
+
 (defn reload! []
   (swap! state-atom identity))

 (defn synthesis-page []
-  (let [handle! (framework/handler-for state-atom)]
-    [view/synthesis handle! state-atom]))
+  [view/synthesis handle! state-atom])

 (defn performance-page []
-  (let [handle! (framework/handler-for state-atom)]
-    [view/performance handle! state-atom]))
+  [view/performance handle! state-atom])

 (defn about-page []
-  (let [handle! (framework/handler-for state-atom)]
-    [view/about handle! state-atom]))
+  [view/about handle! state-atom])

 (defn reference-page []
-  (let [handle! (framework/handler-for state-atom)]
-    [view/reference handle! state-atom]))
+  [view/reference handle! state-atom])

 (def home-page about-page)

 (defn composition-page []
-  (let [handle! (framework/handler-for state-atom)]
-    [view/composition handle! state-atom]))
+  [view/composition handle! state-atom])

 (secretary/defroute "/klangmeister/" [query-params]
   (session/put! :gist (:gist query-params))
@@ -79,8 +76,7 @@
   [(session/get :current-page)])

 (defn mount-root []
-  (let [handle! (framework/handler-for state-atom)
-        default (or (session/get :gist) "4b04fd7f2d361c6604c4")]
+  (let [default (or (session/get :gist) "4b04fd7f2d361c6604c4")]
     (handle! (action/->Import default :main))
     (reagent/render
       [current-page]


Make item-table.

Make item-table.

--- src/lab_notebook/core.cljs
+++ src/lab_notebook/core.cljs
@@ -13,15 +13,21 @@
         (dom/div nil (:date-time cursor))
         (dom/div nil (:notes cursor))))))

+(defn item-table [cursor component]
+  (reify
+    om/IRender
+    (render [this]
+      (apply dom/div nil
+        (for [entry (:entries cursor)]
+          (om/build item-view entry))))))
+
 (defn app-container [cursor component]
   (reify
     om/IRender
     (render [this]
-      (apply dom/div nil
+      (dom/div nil
         (dom/h1 nil "Lab notebook")
-        nil
-        (for [entry (:entries cursor)]
-          (om/build item-view entry))))))
+        (om/build item-table cursor)))))

 (om/root app-container appstate
   {:target (. js/document (getElementById "app"))})


More tweaking of messages

More tweaking of messages

--- src/leiningen/amp/impl.clj
+++ src/leiningen/amp/impl.clj
@@ -50,41 +50,44 @@
         amp-file           (io/file target
                                     (or (get-in project [:amp-name])
                                         (str (:name project) "-" (:version project) ".amp")))]
-
+    ; Make some directories
     (io/make-parents amp)
     (io/make-parents amp-lib)

+    ; Copy module.properties, blowing up if it doesn't exist
     (if (.exists ^java.io.File module-properties)
       (io/copy module-properties (io/file amp (.getName ^java.io.File module-properties)))
+      ;(println "################### ROT ROH!!!"))
       (throw (RuntimeException. "Project isn't valid - it doesn't have a module.properties file.")))   ;####TODO: Make this more pleasant

+    ; Copy file-mapping.properties
     (if (.exists ^java.io.File file-mappings)
       (io/copy file-mappings (io/file amp (.getName ^java.io.File file-mappings))))

+    ; Copy the uberjar
     (if (.exists ^java.io.File uberjar-file)
       (io/copy uberjar-file (io/file amp-lib (.getName ^java.io.File uberjar-file))))

+    ; Copy all web resources
     (if (.exists ^java.io.File web-resources)
       (do
         (fs/copy-dir web-resources amp)
         (.renameTo ^java.io.File (io/file target "amp/web-resources") amp-web)))

-    (if (.exists ^java.io.File config)
-      (do
-        (fs/copy-dir config amp)
-        (.renameTo ^java.io.File (io/file target "amp/config") amp-config)))
-
+    ; Copy all "config" files
     (if (.exists ^java.io.File config)
       (do
         (fs/copy-dir config amp)))

+    ; Copy all licenses
     (if (.exists ^java.io.File licenses)
       (do
         (fs/copy-dir licenses amp)))

+    ; Zip everything up into an AMP
     (zip-directory! amp-file amp)

-    (println "Wrote" amp-file)))
+    (println "Created" (str amp-file))))

 (defn deploy-amp!


docstring typos

docstring typos

--- src/main/cljs/cljs/js.cljs
+++ src/main/cljs/cljs/js.cljs
@@ -17,8 +17,9 @@

 (defonce
   ^{:doc "Each runtime environment provides a different way to load libraries.
-  Whatever function *load-fn* is bound to will be passed a library name and a
-  callback. The callback should be invoked with source of the library (a string)."
+  Whatever function *load-fn* is bound to will be passed a library name
+  (a string) and a callback. The callback should be invoked with the source of
+  the library (a string)."
     :dynamic true}
   *load-fn*
   (fn [name cb]


CMR-191: Testing searching for dif_entry_id is alias for entry_id

--- test/cmr/system_int_test/search/collection_identifier_search_test.clj
+++ test/cmr/system_int_test/search/collection_identifier_search_test.clj
@@ -147,7 +147,12 @@

            ;; Ignore case
            [c1-p1 c1-p2] "S1_v1" {:ignore-case true}
-           [] "S1_v1" {:ignore-case false}))
+           [] "S1_v1" {:ignore-case false})
+
+      (is (d/refs-match?
+            [c1-p1 c1-p2]
+            (search/find-refs :collection {:dif-entry-id "S1_V1"}))
+          "dif_entry_id should be an alias for entry id"))

     (testing "Entry title"
       (are [items v options]


New person creation test fn.

New person creation test fn.

--- test/isla/test/interpreter.clj
+++ test/isla/test/interpreter.clj
@@ -11,6 +11,14 @@
 (def extra-types
   {"person" (fn [] (new isla.test.interpreter.Person 0 "" :undefined #{}))})

+(defn new-person
+  ([] (new-person 0))
+  ([age] (new-person age ""))
+  ([age name] (new-person age name :undefined))
+  ([age name friend] (new-person age name friend #{}))
+  ([age name friend items]
+     (map->Person {:age age :name name :friend friend :items items})))
+
 ;; non-slot assignment

 (deftest integer-assignment
@@ -22,7 +30,7 @@
   (let [env (interpret (parse "isla is a person\nfriend is isla\nisla age is 1")
                        (library/get-initial-env extra-types))]
     (is (= (resolve- {:ref "friend"} env)
-           (new isla.test.interpreter.Person 1 "" :undefined #{})))))
+           (new-person 1)))))

 (deftest test-lookup-resolves-object-slot-to-object-reference-with-updated-data
   (let [env (interpret (parse "isla is a person
@@ -31,8 +39,8 @@
                                isla age is 1")
                        (library/get-initial-env extra-types))]
     (is (= (resolve- {:ref "mary"} env)
-           (let [isla (new isla.test.interpreter.Person 1 "" :undefined #{})]
-             (new isla.test.interpreter.Person 0 "" isla #{}))))))
+           (let [isla (new-person 1)]
+             (new-person 0 "" isla))))))

 ;; invocation

@@ -71,15 +79,13 @@
   (let [result (interpret (parse "isla is a person")
                           (library/get-initial-env extra-types))]
     (is (= (get (:ctx result) "isla")
-           (new isla.test.interpreter.Person 0 "" :undefined #{})))))
-
-(deftest test-unknown-type-causes-exception
-  (try
-    (interpret (parse "isla is a giraffe")
-               (library/get-initial-env extra-types))
-    (is false) ;; should not get called
-    (catch Exception e
-      (is (= (.getMessage e) "I do not know what a giraffe is.")))))
+           (new-person)))))
+
+(deftest test-type-assignment-of-a-generic-type
+  (let [result (interpret (parse "isla is a giraffe")
+                          (library/get-initial-env extra-types))]
+    (is (= (get (:ctx result) "isla")
+           {}))))

 ;; slot assignment

@@ -87,30 +93,32 @@
   (let [result (interpret (parse "isla is a person\nisla age is 1")
                           (library/get-initial-env extra-types))]
     (is (= (get (:ctx result) "isla")
-           (new isla.test.interpreter.Person 1 "" :undefined #{})))))
+           (new-person 1)))))

 (deftest test-slot-assignment-retention-of-other-slot-values
   (let [result (interpret (parse "isla is a person\nisla name is 'isla'\nisla age is 1")
                           (library/get-initial-env extra-types))]
     (is (= (get (:ctx result) "isla")
-           (new isla.test.interpreter.Person 1 "isla" :undefined #{})))))
+           (new-person 1 "isla")))))

 (deftest test-non-existent-slot-assignment
-  (try
-    (interpret (parse "isla is a person\nisla material is 'metal'")
-               (library/get-initial-env extra-types))
-    (is false) ;; shouldn't get called
-    (catch Exception e
-      (is (= (.getMessage e) "Persons do not have a material.")))))
+  (let [result (interpret (parse "isla is a person\nisla material is 'metal'")
+                          (library/get-initial-env extra-types))]
+   (is (= (get-in result [:ctx "isla" :material])
+          "metal"))))

 (deftest test-slot-type-assignment
   (let [result (interpret (parse "isla is a person\nisla friend is a person")
                           (library/get-initial-env extra-types))]
     (is (= (get (:ctx result) "isla")
-           (new isla.test.interpreter.Person 0
-                ""
-                (new isla.test.interpreter.Person 0 "" :undefined #{})
-                #{})))))
+           (new-person 0 "" (new-person))))))
+
+(deftest test-generic-slot-assignment
+  (let [result (interpret (parse "isla is a monkey\nisla age is 1")
+                          (library/get-initial-env extra-types))]
+    (is (= (get (:ctx result) "isla")
+           {:age 1}))))
+

 ;; assignment


Test for GET /api/org

Test for GET /api/org

--- test/metabase/api/org_test.clj
+++ test/metabase/api/org_test.clj
@@ -13,6 +13,43 @@
   {:pre [(string? org-name)]}
   ((user->client :crowberto) :post 200 "org" {:name org-name
                                               :slug org-name}))
+
+;; # GENERAL ORG ENDPOINTS
+
+;; ## GET /api/org
+;; Non-superusers should only be able to see Orgs they are members of
+(expect
+    [{:id (:id @test-org)
+      :slug "test"
+      :name "Test Organization"
+      :description nil
+      :logo_url nil
+      :inherits true}]
+  ((user->client :rasta) :get 200 "org"))
+
+;; Superusers should be able to see all Orgs
+(let [org-name (random-name)]
+  (expect-eval-actual-first
+      [{:id (:id @test-org)
+        :slug "test"
+        :name "Test Organization"
+        :description nil
+        :logo_url nil
+        :inherits true}
+       (match-$ (sel :one Org :name org-name)
+         {:id $
+          :slug $
+          :name $
+          :description nil
+          :logo_url nil
+          :inherits false})]
+    (do
+      ;; Delete all the random test Orgs we've created
+      (cascade-delete Org :id [not= (:id @test-org)])
+      ;; Create a random Org so we can check that we still get Orgs we're not members of
+      (create-org org-name)
+      ;; Now perform the API request
+      ((user->client :crowberto) :get 200 "org"))))

 ;; ## GET /api/org/:id
 (expect


Update tests

Update tests

--- test/obb_ranking/core_test.clj
+++ test/obb_ranking/core_test.clj
@@ -5,10 +5,9 @@
   (is calculate))

 (deftest calculate-ratings
-  (let [result (calculate {:rating 500 :rd 350 :volatility 40}
-                 {:rating 1500 :rd 350 :volatility 40})]
-    (println result)
-    (is result)))
+  (let [[p1 p2] (calculate {:rating 1500 :rd 50 :volatility 0.06}
+                           {:rating 500 :rd 350 :volatility 0.06})]
+    (is (> (:rating p1 1500)))))

 (deftest default-player-test
   (let [default (default-player)]


fix message link

fix message link

--- src/cljs/salava/social/ui/badge_message_modal.cljs
+++ src/cljs/salava/social/ui/badge_message_modal.cljs
@@ -78,24 +78,26 @@
 (defn badge-message-link [message-count badge-id]
   (if (social-plugin?)
     (let [message-count (atom {:new-messages 0
-                          :all-messages 0})]
+                               :all-messages 0})]
       (get-messages badge-id message-count)
       (fn []
-        [:a {:href "#"
-             :class "badge-message-link"
-             :on-click #(do
-                          (mo/open-modal [:gallery :badges] {:badge-id badge-id
-                                                             :show-messages true
-                                                             :reload-fn nil})
-                          ;(open-modal badge-id)
-                          (.preventDefault %) )}
-         (str (:all-messages @message-count) " " (if (= 1 (:all-messages @message-count))
-                                                   (t :social/Comment)
-                                                   (t :social/Comments)))
-         [:br]
-         (if (pos? (:new-messages @message-count))
-           (str " (" (:new-messages @message-count) " " (if (= 1 (:new-messages @message-count)) (t :social/New) (t :social/News)) ") ")
-           "")]))))
+        [:div.badge-message-link-info
+         [:span [:i {:class "fa fa-comments-o"}]]
+         [:a {:href "#"
+              ;:class "badge-message-link"
+              :on-click #(do
+                           (mo/open-modal [:gallery :badges] {:badge-id badge-id
+                                                              :show-messages true
+                                                              :reload-fn nil})
+                           ;(open-modal badge-id)
+                           (.preventDefault %) )}
+          (str (:all-messages @message-count) " " (if (= 1 (:all-messages @message-count))
+                                                    (t :social/Comment)
+                                                    (t :social/Comments)))
+          [:br]
+          (if (pos? (:new-messages @message-count))
+            (str " (" (:new-messages @message-count) " " (if (= 1 (:new-messages @message-count)) (t :social/New) (t :social/News)) ") ")
+            "")]]))))

 (defn gallery-modal-message-info-link [show-messages badge-id]


Give MP3 encoder test stream more time to be processed

--- src/devcards/audio_utils/devcards/mp3_encoder.cljs
+++ src/devcards/audio_utils/devcards/mp3_encoder.cljs
@@ -134,7 +134,7 @@
                         (.disconnect source)
                         (.disconnect dest)
                         (go
-                          (<! (timeout 5000))
+                          (<! (timeout 10000))
                           (.disconnect entry-node)
                           (.terminate worker)
                           (.close ctx)
@@ -142,7 +142,7 @@
                                  :processing? false
                                  :finished?   true
                                  :mp3s        @mp3s))))
-                (.start source 0 0 20.0)))
+                (.start source 0 0 40.0)))
             (log-error [ctx err]
               (js/console.warn "ERROR" ctx err)
               (js/alert err)


Helper function

Helper function

working with two or one map

--- src/blog/routes/helper.clj
+++ src/blog/routes/helper.clj
@@ -114,7 +114,16 @@
      (map-vals
       (fn [k2 val] (f [k1 k2] val)) inner-map)) m))

-
+(defn mapmap
+  "appling two functions to a
+   given sequence and returns a map with keys,if  a single function
+   is passed to the mapmap function, it uses the identity function to generate keys in
+   the map returned by it."
+  ([vf s]
+   (mapmap identity vf s))
+  ([kf vf s]
+   (zipmap (map kf s)
+           (map vf s))))

 (defn social-button
   "Rendering social buttons for footer, for better maintenace"


Place impressum on second page

Place impressum on second page

--- src/catalog/layout/fop.clj
+++ src/catalog/layout/fop.clj
@@ -548,7 +548,7 @@
        (mapcat #(format-sexp (get subitems %) % 1 path-to-numbers false) (keys subitems))])]])

 (defn- logo []
-  [:fo:block {:space-before "100mm" :text-align "right" :end-indent "20mm"}
+  [:fo:block {:space-before "100mm" :text-align "right"}
    [:fo:external-graphic
     {:src (io/resource "images/sbs_logo.jpg")
      :height "35mm"
@@ -558,7 +558,8 @@

 (defn- impressum []
   (let [creator "SBS Schweizerische Bibliothek für Blinde, Seh- und Lesebehinderte"]
-    [:fo:block-container {:space-before "10mm"}
+    [:fo:block-container {:break-before "page"}
+     (block {:space-after "175mm"} )
      (block "Herausgeber:")
      (block creator)
      (block "Grubenstrasse 12")
@@ -571,6 +572,7 @@

 (defn- cover-page [titles date]
   [:fo:block-container
+   (block {:space-after "50mm"} )
    (map #(block (style :h1 {:break-before "auto" :space-after "5pt"}) %) titles)
    (block (style :h2 {:break-before "auto" :space-after "5pt"})
           (format "Gesamtkatalog, Stand 1.1.%s" (layout/year date)))


option to disable repl

option to disable repl

--- src/otp_api_proxy/core.clj
+++ src/otp_api_proxy/core.clj
@@ -13,14 +13,15 @@
             [clj-http.client :as http-client]
             [clojure.walk :as walk]
             [clojure.java.javadoc]
-
+            [environ.core :refer [env]] ;; environment variables
             [otp-api-proxy.test-data :as test-data]
             [otp-api-proxy.web-service :as ws]
             ))

 (defonce hack-hack-hack-start-nrepl-server
-  (nrepl-server/start-server :port 4101 :bind "127.0.0.1"
-                             :handler cider-nrepl-handler))
+  (when-not (env :otp-api-proxy-skip-repl)
+    (nrepl-server/start-server :port 4101 :bind "127.0.0.1"
+                             :handler cider-nrepl-handler)))

 (defn ignore-trailing-slash
   "Modifies the request uri before calling the handler.  Removes a single


Version 4.0.2-SNAPSHOT

Version 4.0.2-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,6 +1,6 @@
 (def jetty-version "9.4.18.v20190429")

-(defproject puppetlabs/trapperkeeper-webserver-jetty9 "4.0.1"
+(defproject puppetlabs/trapperkeeper-webserver-jetty9 "4.0.2-SNAPSHOT"
   :description "A jetty9-based webserver implementation for use with the puppetlabs/trapperkeeper service framework."
   :url "https://github.com/puppetlabs/trapperkeeper-webserver-jetty9"
   :license {:name "Apache License, Version 2.0"


Track with Voom.

Track with Voom.

--- project.clj
+++ project.clj
@@ -3,6 +3,7 @@
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies [[org.clojure/clojure "1.7.0"]
                  [org.clojure/core.async "0.2.374"]
+                 ^{:voom {:repo "git@github.com:onyx-platform/onyx.git" :branch "master"}}
                  [org.onyxplatform/onyx "0.8.9"]
                  [org.slf4j/slf4j-api "1.7.12"]
                  [org.slf4j/slf4j-nop "1.7.12"]]


(SERVER-1069) Add logback json dependency

--- project.clj
+++ project.clj
@@ -19,6 +19,7 @@
                  ;; begin version conflict resolution dependencies
                  [puppetlabs/typesafe-config "0.1.4"]
                  [org.clojure/tools.macro "0.1.5"]
+                 [com.fasterxml.jackson.core/jackson-core "2.5.4"]
                  ;; end version conflict resolution dependencies

                  [cheshire "5.3.1"]
@@ -43,6 +44,13 @@
                  ;; of its jar; please read the detailed notes above the
                  ;; 'uberjar-exclusions' example toward the end of this file.
                  [org.jruby/jruby-stdlib "1.7.20.1"]
+
+                 ;; we do not currently use this dependency directly, but
+                 ;; we have documentation that shows how users can use it to
+                 ;; send their logs to logstash, so we include it in the jar.
+                 ;; we may use it directly in the future
+                 [net.logstash.logback/logstash-logback-encoder "4.5.1"]
+

                  [puppetlabs/trapperkeeper ~tk-version]
                  [puppetlabs/trapperkeeper-authorization "0.5.0"]


using forked version

using forked version

--- project.clj
+++ project.clj
@@ -42,7 +42,7 @@
                  [ring/ring-session-timeout "0.1.0"]
                  [ring/ring-headers "0.1.0"]
                  ; hypervisors
-                 [digitalocean "1.2"]
+                 [narkisr/digitalocean "1.3"]
                  [com.vmware/vijava "5.1" :exclusions [xml-apis]]
                  [org.pacesys/openstack4j "2.0.3"]
                  [amazonica "0.3.13" ]


add factory and faker libraries

add factory and faker libraries

--- project.clj
+++ project.clj
@@ -15,7 +15,9 @@
                  [environ "1.0.0"]
                  [com.cemerick/friend "0.2.3"]
                  [ragtime "0.6.3"]
-                 [prismatic/schema "1.1.3"]]
+                 [prismatic/schema "1.1.3"]
+                 [clj-factory "0.2.1"]
+                 [faker "0.2.2"]]
   :min-lein-version "2.0.0"
   :plugins [[environ/environ.lein "0.3.1"]]
   :hooks [environ.leiningen.hooks]


fixed encore dependency issue

fixed encore dependency issue

--- project.clj
+++ project.clj
@@ -14,8 +14,8 @@
                  [ring/ring-defaults "0.2.1"]
                  [compojure "1.5.1"]
                  [selmer "1.0.7"]
+                 [com.taoensso/carmine "2.14.0"]
                  [com.taoensso/sente "1.10.0"]
-                 [com.taoensso/carmine "2.14.0"]
                  [http-kit "2.2.0"]]

   :main ^:skip-aot moomoo.handler


temporary declare guava as a dependency

temporary declare guava as a dependency

until https://github.com/google/closure-compiler/issues/3896
is resolved and the closure compiler properly does so

--- project.clj
+++ project.clj
@@ -44,6 +44,11 @@
      org.clojure/google-closure-library-third-party]]

    [com.google.javascript/closure-compiler-unshaded "v20220502"]
+
+   ;; only declare this since the closure-compiler jar currently doesn't
+   ;; remove once https://github.com/google/closure-compiler/issues/3896 is fixed
+   ;; there are other dependencies but this on seems to be the only one causing issues
+   [com.google.guava/guava "31.0.1-jre"]

    [org.clojure/google-closure-library "0.0-20211011-0726fdeb"]
    [org.clojure/google-closure-library-third-party "0.0-20211011-0726fdeb"]


updates server deps

updates server deps

--- project.clj
+++ project.clj
@@ -3,7 +3,7 @@
   :url "https://github.com/build-canaries/nevergreen"
   :dependencies [[org.clojure/clojure "1.9.0"]
                  [ring "1.6.3" :exclusions [org.eclipse.jetty/jetty-server]]
-                 [org.eclipse.jetty/jetty-server "9.4.10.RC1"]
+                 [org.eclipse.jetty/jetty-server "9.4.11.v20180605"]
                  [compojure "1.6.1"]
                  [environ "1.1.0"]
                  [cheshire "5.8.0"]
@@ -36,7 +36,7 @@
                                          [clj-webdriver/clj-webdriver "0.7.2" :exclusions [org.mortbay.jetty/jetty]]
                                          [org.seleniumhq.selenium/selenium-java "3.12.0" :exclusions [org.eclipse.jetty/jetty-io
                                                                                commons-logging]]
-                                         [io.github.bonigarcia/webdrivermanager "2.2.1" :exclusions [org.apache.commons/commons-lang3]]
+                                         [io.github.bonigarcia/webdrivermanager "2.2.2" :exclusions [org.apache.commons/commons-lang3]]
                                          [org.seleniumhq.selenium/htmlunit-driver "2.31.0" :exclusions [org.eclipse.jetty/jetty-io
                                                                                org.eclipse.jetty/jetty-http]]
                                          [ring/ring-mock "0.3.2"]]}


Fix dep

Fix dep

--- project.clj
+++ project.clj
@@ -9,7 +9,7 @@
                  [com.mchange/c3p0 "0.9.2.1"]
                  [com.mdrogalis/onyx "0.6.0-SNAPSHOT"]
                  [com.taoensso/timbre "3.0.1"]
-                 [honeysql "1.5.1"]]
+                 [honeysql "0.5.1"]]
   :profiles {:dev {:dependencies [[midje "1.6.2"]
                                   [environ "1.0.0"]
                                   [mysql/mysql-connector-java "5.1.25"]]


removed hard-coded gpg key

removed hard-coded gpg key

--- project.clj
+++ project.clj
@@ -40,6 +40,5 @@

   :aliases {"cloverage" ["with-profile" "test" "cloverage"]}

-  :signing {:gpg-key "tobias.sarnowski@zalando.de"}
   :deploy-repositories {"releases" {:url "https://oss.sonatype.org/service/local/staging/deploy/maven2/" :creds :gpg}
                         "snapshots" {:url "https://oss.sonatype.org/content/repositories/snapshots/" :creds :gpg}})


Update chime

Update chime

--- project.clj
+++ project.clj
@@ -27,7 +27,7 @@
                  [medley "1.0.0"]
                  [cheshire "5.7.1"]
                  [clj-time "0.13.0"]
-                 [jarohen/chime "0.2.1" :exclusions [[org.clojure/core.async]]]
+                 [jarohen/chime "0.2.2"]
                  [org.clojure/java.jdbc "0.6.2-alpha3"]
                  [nilenso/honeysql-postgres "0.2.2"]
                  [cc.qbits/spandex "0.3.10"]]


Release 0.4.15

Release 0.4.15

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject thinktopic/think.image "0.4.15-SNAPSHOT"
+(defproject thinktopic/think.image "0.4.15"
   :description "Image manipulation library"
   :url "http://github.com/thinktopic/think.image"
   :license {:name "Eclipse Public License"


obb-rules 1.11

obb-rules 1.11

--- project.clj
+++ project.clj
@@ -12,7 +12,7 @@
                  [environ "1.0.0"]
                  [com.novemberain/monger "2.0.1"]

-                 [obb-rules "1.10"]
+                 [obb-rules "1.11"]

                  [io.pedestal/pedestal.service "0.3.1"]
                  [io.pedestal/pedestal.jetty "0.3.1"]


Upgrade http-kit

Upgrade http-kit

--- project.clj
+++ project.clj
@@ -5,7 +5,7 @@
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies [[org.clojure/clojure "1.9.0-alpha13"]
                  [org.clojure/java.jdbc "0.6.2-alpha3"]
-                 [http-kit "2.1.18"]
+                 [http-kit "2.2.0"]
                  [bidi "2.0.11"]
                  [ring "1.5.0"]
                  [cheshire "5.6.3"]


Version 0.1.5

Version 0.1.5

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject api "0.1.5-SNAPSHOT"
+(defproject api "0.1.5"
   :min-lein-version "2.6.1"
   :description "Optly API"
   :url "https://github.com/optly/api"


bumped clojurescript dependency

bumped clojurescript dependency

--- project.clj
+++ project.clj
@@ -3,7 +3,7 @@
   :url "http://example.com/FIXME"

   :dependencies [[org.clojure/clojure "1.7.0"]
-                 [org.clojure/clojurescript "1.7.58"]
+                 [org.clojure/clojurescript "1.7.145"]
                  [org.omcljs/om "0.9.0"]
                  [com.cognitect/transit-cljs "0.8.225"]]


bump hadoop jar version

bump hadoop jar version

--- project.clj
+++ project.clj
@@ -20,7 +20,7 @@
                  [com.sleepycat/je "5.0.34"]
                  [org.apache.lucene/lucene-core "3.0.3"]
                  [org.apache.lucene/lucene-queries "3.0.3"]
-                 [org.apache.hadoop/hadoop-core "0.20.2-cdh3u3"]]
+                 [org.apache.hadoop/hadoop-core "0.20.2-cdh3u4"]]
   :dev-dependencies [[midje "1.3.1" :exclusions [org.clojure/clojure]]
                      [lein-midje "1.0.8"]]
   :main elephantdb.keyval.core)


(MAINT) Exclude org.clojure from lein-ezbake

Instead of overriding org.clojure in ezbake profile with an explicit
version, just exclude the one dragged in by the lein-ezbake plugin.

--- project.clj
+++ project.clj
@@ -1,4 +1,3 @@
-(def clojure-version "1.7.0")
 (def tk-version "1.1.3")
 (def tk-jetty-version "1.3.1")
 (def ks-version "1.1.0")
@@ -14,7 +13,7 @@
 (defproject puppetlabs/puppetserver ps-version
   :description "Puppet Server"

-  :dependencies [[org.clojure/clojure ~clojure-version]
+  :dependencies [[org.clojure/clojure "1.7.0"]

                  ;; begin version conflict resolution dependencies
                  [puppetlabs/typesafe-config "0.1.4"]
@@ -104,16 +103,10 @@

              :testutils {:source-paths ^:replace ["test/unit" "test/integration"]}

-             :ezbake {:dependencies ^:replace [;; we need to explicitly specify the clojure version
-                                               ;; here, because without it, lein brings in its own
-                                               ;; version, and older versions of lein (such as version
-                                               ;; 2.5.1 that is used on our jenkins servers at the time
-                                               ;; of this writing) depend on clojure 1.6.
-                                               [org.clojure/clojure ~clojure-version]
-                                               [puppetlabs/puppetserver ~ps-version]
+             :ezbake {:dependencies ^:replace [[puppetlabs/puppetserver ~ps-version]
                                                [puppetlabs/trapperkeeper-webserver-jetty9 ~tk-jetty-version]
                                                [org.clojure/tools.nrepl "0.2.3"]]
-                      :plugins [[puppetlabs/lein-ezbake "0.3.21"]]
+                      :plugins [[puppetlabs/lein-ezbake "0.3.21" :exclusions [org.clojure/clojure]]]
                       :name "puppetserver"}
              :uberjar {:aot [puppetlabs.trapperkeeper.main]
                        :dependencies [[puppetlabs/trapperkeeper-webserver-jetty9 ~tk-jetty-version]]}


(maint) Bump version to 6.10.0

(maint) Bump version to 6.10.0

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(def pdb-version "6.9.2-SNAPSHOT")
+(def pdb-version "6.10.0")
 (def clj-parent-version "4.4.1")

 (defn true-in-env? [x]


0.7.2

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject useful "0.7.1"
+(defproject useful "0.7.2"
   :description "A collection of generally-useful Clojure utility functions"
   :dependencies [[clojure "1.2.0"]
                  [org.clojure/tools.macro "0.1.1"]])


release 0.3.1

release 0.3.1

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
- (defproject com.ladderlife/om-css "0.3.0"
+ (defproject com.ladderlife/om-css "0.3.1"
   :description "Om Next + CSS"
   :url "http://github.com/ladderlife/om-css"
   :license {:name "Eclipse Public License"


Start 1.2.0-SNAPSHOT

Start 1.2.0-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject nightcode "1.1.2"
+(defproject nightcode "1.2.0-SNAPSHOT"
   :description "An IDE for Clojure and Java"
   :url "https://github.com/oakes/Nightcode"
   :license {:name "Public Domain"


Use latest version of deps.

Use latest version of deps.

--- project.clj
+++ project.clj
@@ -27,8 +27,8 @@
     [clojusc/twig "0.3.2"]
     [com.stuartsierra/component "0.3.2"]
     [environ "1.1.0"]
-    [gov.nasa.earthdata/cmr-authz "0.1.0-SNAPSHOT"]
-    [gov.nasa.earthdata/cmr-http-kit "0.1.0-SNAPSHOT"]
+    [gov.nasa.earthdata/cmr-authz "0.1.1-SNAPSHOT"]
+    [gov.nasa.earthdata/cmr-http-kit "0.1.1-SNAPSHOT"]
     [gov.nasa.earthdata/cmr-site-templates "0.1.0-SNAPSHOT"]
     [http-kit "2.3.0"]
     [markdown-clj "1.0.2"]


Update org.clojure/clojurescript to 0.0-3126

--- project.clj
+++ project.clj
@@ -22,7 +22,7 @@
                  [commons-io "2.4"]

                  ; ClojureScript
-                 [org.clojure/clojurescript "0.0-3123"]
+                 [org.clojure/clojurescript "0.0-3126"]
                  [jayq "2.5.4"]
                  [org.omcljs/om "0.8.8"]]


Removing old stuff from project to deal with leiningen's nagging repeatability comments

--- project.clj
+++ project.clj
@@ -21,11 +21,8 @@

                  [sc.fiji/Auto_Threshold "1.16.0"]
                  [sc.fiji/VIB_ "2.0.3"]
-                 ;[sc.fiji/registration_3d "2.0.0"]
-                 ;[edu.mines/mines-jtk "20100113"]
                  [com.github.wendykierp/JTransforms "3.0"]

-                 ;[local/DeconvolutionLab "4.02.2014"]
                  [funimage/mcib3d_plugins "3.3"]
                  [local/mcib3d-core "3.0"]
                  [me.raynes/fs "1.4.6"]
@@ -37,9 +34,7 @@
                  ["imagej-releases" "http://maven.imagej.net/content/repositories/releases/"]
                  ;["imagej-ome" "http://maven.imagej.net/content/repositories/ome-releases/"]
                  ["ome maven" "http://artifacts.openmicroscopy.org/artifactory/maven/"]
-                 ["imagej-snapshots" "http://maven.imagej.net/content/repositories/snapshots/"]
-                 #_["snapshots-kyleharrington" "http://kyleharrington.com:8081/nexus/content/repositories/snapshots/"]
-                 #_["thirdparty-kyleharrington" "http://kyleharrington.com:8081/nexus/content/repositories/thirdparty/"]]
+                 ["imagej-snapshots" "http://maven.imagej.net/content/repositories/snapshots/"]]
   :jvm-opts ["-Xmx32g" "-server"]
   :javac-options ["-target" "1.6" "-source" "1.6"]
   )


Include slf4j / timbre work in dev dependencies

--- project.clj
+++ project.clj
@@ -45,13 +45,7 @@
 		 [org.omcljs/om "0.8.8"]
 		 [ankha "0.1.5.1-479897" :exclusions [om com.cemerick/austin]]
 		 [racehub/om-bootstrap "0.6.1" :exclusions [om]]
-		 [prismatic/om-tools "0.4.0" :exclusions [om]]
-
-     ; usefull for debugging problems
-     ; it allows to see logs from included jars
-     ; [com.fzakaria/slf4j-timbre "0.3.2"]
-     ; [org.slf4j/log4j-over-slf4j "1.7.14"]
-     ]
+		 [prismatic/om-tools "0.4.0" :exclusions [om]]]

   :plugins [[lein-cljsbuild "1.1.3"]
             ;[lein-version-spec "0.0.4"]
@@ -82,6 +76,8 @@
                    :dependencies [[figwheel "0.5.0-6"]
                                   [org.seleniumhq.selenium/selenium-java "2.47.1"]
                                   [clj-webdriver "0.7.2"]
+                                  [com.fzakaria/slf4j-timbre "0.3.2"]
+                                  [org.slf4j/log4j-over-slf4j "1.7.14"]
                                   [leiningen "2.6.1"]]

                    :repl-options {:init-ns onyx-dashboard.system


Update dependencies.

Update dependencies.

--- project.clj
+++ project.clj
@@ -7,14 +7,14 @@
     [org.clojure/clojure "1.5.1"] ; Lisp on the JVM http://clojure.org/documentation
     [org.clojure/core.incubator "0.1.3"] ; functions proposed for inclusion in Clojure https://github.com/clojure/core.incubator
     [org.clojure/core.match "0.2.0-rc3"] ; Erlang-esque pattern matching https://github.com/clojure/core.match
+    [org.clojure/clojurescript "0.0-1859"] ; ClojureScript compiler https://github.com/clojure/clojurescript
     [ring/ring-jetty-adapter "1.2.0"] ; Web Server https://github.com/ring-clojure/ring
     [compojure "1.1.5"] ; Web routing https://github.com/weavejester/compojure
     [liberator "0.9.0"] ; WebMachine (REST state machine) port to Clojure https://github.com/clojure-liberator/liberator
-    [ibdknox/clojurescript "0.0-1534"] ; ClojureScript compiler https://github.com/clojure/clojurescript
     [com.ashafa/clutch "0.4.0-RC1"] ; CouchDB client https://github.com/clojure-clutch/clutch
     [clojurewerkz/elastisch "1.2.0"] ; Client for ElasticSearch https://github.com/clojurewerkz/elastisch
     [environ "0.4.0"] ; Get environment settings from different sources https://github.com/weavejester/environ
-    [com.taoensso/timbre "2.5.0"] ; Logging https://github.com/ptaoussanis/timbre
+    [com.taoensso/timbre "2.6.0"] ; Logging https://github.com/ptaoussanis/timbre
     [clj-json "0.5.3"] ; JSON de/encoding https://github.com/mmcgrana/clj-json/
     [print-foo "0.3.7"] ; Old school print debugging https://github.com/danielribeiro/print-foo
   ]


(SERVER-69) Upgrade to tk-jetty9 v0.9.0

(SERVER-69) Upgrade to tk-jetty9 v0.9.0

--- project.clj
+++ project.clj
@@ -1,5 +1,5 @@
 (def tk-version "0.5.1")
-(def tk-jetty-version "0.8.0")
+(def tk-jetty-version "0.9.0")
 (def ks-version "0.7.2")

 (defn deploy-info


Update dependency.

Update dependency.

--- project.clj
+++ project.clj
@@ -56,7 +56,7 @@
         :open-company-auth-passphrase "this_is_a_qa_secret" ; JWT secret
       }
       :dependencies [
-        [midje "1.9.0-alpha2"] ; Example-based testing https://github.com/marick/Midje
+        [midje "1.9.0-alpha3"] ; Example-based testing https://github.com/marick/Midje
         [ring-mock "0.1.5"] ; Test Ring requests https://github.com/weavejester/ring-mock
         [philoskim/debux "0.2.1"] ; `dbg` macro around -> or let https://github.com/philoskim/debux
       ]


bump version

bump version

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject com.xnlogic/graph.scale "0.1.5.pre"
+(defproject com.xnlogic/graph.scale "0.1.5"
   :description "Graph Scale or Timeline data structure"
   :url "http://xnlogic.com"
   :license {:name "Eclipse Public License"


Remove repl-related project.clj source paths

--- project.clj
+++ project.clj
@@ -34,12 +34,12 @@
   :cljsbuild {:builds
               {
                :dev
-               {:source-paths ["src/brepl" "src/cljs"]
+               {:source-paths ["src/cljs"]
                 :compiler {:output-to "resources/public/js/cljs_ajax_battleship_dbg.js"
                            :optimizations :whitespace
                            :pretty-print true}}
                :pre-prod
-               {:source-paths ["src/brepl" "src/cljs"]
+               {:source-paths ["src/cljs"]
                 :compiler {:output-to "resources/public/js/cljs_ajax_battleship_pre.js"
                            :optimizations :simple
                            :pretty-print false}}


Test against 1.3

Test against 1.3

See https://twitter.com/ifesdjeen/status/244524701454589952

--- project.clj
+++ project.clj
@@ -12,9 +12,9 @@
   :source-paths      ["src/clojure"]
   :java-source-paths ["src/java"]
   :javac-options     ["-target" "1.6" "-source" "1.6"]
-  :profiles       {:1.4 {:dependencies [[org.clojure/clojure "1.4.0"]]}
+  :profiles       {:1.3 {:dependencies [[org.clojure/clojure "1.3.0"]]}
                    :1.5 {:dependencies [[org.clojure/clojure "1.5.0-master-SNAPSHOT"]]}}
-  :aliases        {"all" ["with-profile" "dev:dev,1.4:dev,1.5"]}
+  :aliases        {"all" ["with-profile" "dev:dev,1.3:dev,1.5"]}
   :test-selectors {:focus   :focus
                    :cql     :cql
                    :schema  :schema


Version 0.18.0-SNAPSHOT

Version 0.18.0-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject io.sarnowski/swagger1st "0.17.0"
+(defproject io.sarnowski/swagger1st "0.18.0-SNAPSHOT"
   :description "A ring handler that does routing based on a swagger definition."
   :url "https://github.com/sarnowski/swagger1st"


Release version 0.1.3.

Release version 0.1.3.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject com.damballa/parkour "0.1.3-SNAPSHOT"
+(defproject com.damballa/parkour "0.1.3"
   :description "Hadoop MapReduce in idiomatic Clojure."
   :url "http://github.com/damballa/parkour"
   :license {:name "Eclipse Public License"


Might as well consider this the start of 1.7.0

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject midje "1.6.4-SNAPSHOT"
+(defproject midje "1.7.0-SNAPSHOT"
   :description "A TDD library for Clojure that supports top-down ('mockish') TDD, encourages readable tests, provides a smooth migration path from clojure.test, balances abstraction and concreteness, and strives for graciousness."
   :url "https://github.com/marick/Midje"
   :pedantic? :warn


lein-release plugin: bumped version from 0.26 to 0.27-SNAPSHOT for next development cycle

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject exploud "0.26"
+(defproject exploud "0.27-SNAPSHOT"
   :description "Exploud service"
   :url "http://wikis.in.nokia.com/NokiaMusicArchitecture/Exploud"


lein-release plugin: preparing 0.1.2 release

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject se.haleby/fake-http "0.1.2-SNAPSHOT"
+(defproject se.haleby/fake-http "0.1.2"
   :description "A client library agonistic way to fake HTTP responses"
   :url "https://github.com/johanhaleby/fake-http"
   :license {:name         "MIT License"


Fix modules config in travis profile

Fix modules config in travis profile

--- project.clj
+++ project.clj
@@ -8,4 +8,4 @@
   :aliases {"install" ["modules" "install"]
             "deploy" ["modules" "deploy"]
             "clean" ["modules" "clean"]}
-  :profiles {:travis {:module {:subprocess "lein2"}}})
+  :profiles {:travis {:modules {:subprocess "lein2"}}})


Upgrade to latest co-dependency

Upgrade to latest co-dependency

--- project.clj
+++ project.clj
@@ -76,7 +76,7 @@
           [juxt.modular/aleph "0.0.8" :exclusions [manifold]]
           [juxt.modular/bidi "0.9.2" :exclusions [bidi]]
           [juxt.modular/stencil "0.1.0"]
-          [juxt.modular/co-dependency "0.2.1"]
+          [juxt.modular/co-dependency "0.2.2"]
           [juxt.modular/test "0.1.0"]
           [juxt.modular/template "0.6.3"]


Project.clj hk

Project.clj hk

--- project.clj
+++ project.clj
@@ -29,10 +29,8 @@
    :dev
    [:1.6 :test
     {:dependencies []
-     :plugins []}]}
-
-  :plugins [[lein-ancient "0.5.4"]
-            [codox        "0.6.7"]]
+     :plugins [[lein-ancient "0.5.4"]
+               [codox        "0.6.7"]]}]}

   ;; :codox {:sources ["target/classes"]} ; cljx
   :aliases


added blas wrapper in dependencies

added blas wrapper in dependencies

--- project.clj
+++ project.clj
@@ -52,6 +52,7 @@

                        :spark-1.6.0  ^{:pom-scope :provided} {:dependencies
                                                               [[org.apache.spark/spark-core_2.11 "1.6.0"]
+								[com.github.fommil.netlib/all "1.1.2" :extension "pom"]
                                                                [org.apache.spark/spark-mllib_2.11 "1.6.0" ]
                                                                ] }