made fill-avg randomly fill... more diversity

--- src/cljs/neat/pool.cljs
+++ src/cljs/neat/pool.cljs
@@ -83,6 +83,7 @@
   (let [settings (:settings pool)]
     (->> pool
          :species
+         (filter #(rand-nth [true false]))
          (map (fn [sp] (breed-child sp settings)))
          (into []))))


Add blocking optional parameter to all send/recv functions.

--- src/clojure/nanomsg.clj
+++ src/clojure/nanomsg.clj
@@ -32,27 +32,29 @@

 (defn send
   "Send string data"
-  [^Socket sock, ^String data]
+  [^Socket sock, ^String data & {:keys [blocking] :or {blocking true}}]
   {:pre [(string? data)]}
-  (.sendString sock data))
+  (.sendString sock data blocking))

 (defn recv
   "Recv data as string"
-  [^Socket sock]
-  (.recvString sock))
+  [^Socket sock & {:keys [blocking] :or {blocking true}}]
+  (.recvString sock blocking))

 (defn send-bytes
   "Send bytes data"
-  [^Socket sock, data]
-  (.sendBytes sock data))
+  [^Socket sock, data & {:keys [blocking] :or {blocking true}}]
+  (.sendBytes sock data blocking))

 (defn recv-bytes
   "Recv data as bytes"
-  [^Socket sock]
-  (.recvBytes sock))
+  [^Socket sock & {:keys [blocking] :or {blocking true}}]
+  (.recvBytes sock blocking))

-(defn symbols
-  "Get all symbols."
+(defn- resolve-symbols
   []
   (into {} (for [[k v] (Constants/getSymbols)]
              [(keyword (.toLowerCase k)) v])))
+
+(def ^{:doc "Get all symbols"}
+  symbols (memoize resolve-symbols))


Put nice iOS momentum scrolling on the messages div

--- src/braid/client/mobile/style.cljs
+++ src/braid/client/mobile/style.cljs
@@ -157,7 +157,8 @@

                     [:>.messages
                      {:flex-grow 1
-                      :padding-top (em 0.5)}
+                      :padding-top (em 0.5)
+                      :-webkit-overflow-scrolling "touch"}

                      braid.client.ui.styles.message/message
                      [:>.message


Make mobile page fixed instead of absolute

We want it to be the whole screen anyway and 'fixed' gets rid of the
extremely annoying overscroll thing on iOS

--- src/braid/client/mobile/style.cljs
+++ src/braid/client/mobile/style.cljs
@@ -43,7 +43,7 @@
              (braid.client.mobile.styles.drawer/drawer pad)

              [:>.page
-              {:position "absolute"
+              {:position "fixed"
                :top 0
                :left 0
                :right 0


default to new-homepage in dev

default to new-homepage in dev

--- frontend/core.cljs
+++ frontend/core.cljs
@@ -66,10 +66,12 @@
   (chan))

 (defn get-ab-tests [ab-test-definitions]
-  (let [overrides (some-> js/window
-                          (aget "renderContext")
-                          (aget "abOverrides")
-                          (utils/js->clj-kw))]
+  (let [overrides (merge (some-> js/window
+                                 (aget "renderContext")
+                                 (aget "abOverrides")
+                                 (utils/js->clj-kw))
+                         (when (env/development?)
+                           {:new-homepage true}))]
     (ab/setup! ab-test-definitions :overrides overrides)))

 (defn app-state []


Refactoring

Refactoring

--- src/clj/algorithms_clj/huffman.clj
+++ src/clj/algorithms_clj/huffman.clj
@@ -75,6 +75,10 @@
 ;; Decoding
 ;; -----------------------------------------------------------

+(defn- next-node
+  [node input]
+  ((if (zero? input) lhs-node rhs-node) node))
+
 (defn- huffman-xf
   "Transducer step function to decode a huffman stream of values"
   [huffman-tree] ;; TODO - Try to replace this by a prefix tree - or search in map?
@@ -84,12 +88,15 @@
         ([] (xf))
         ([result] (xf result))
         ([result input]
-          (let [{:keys [values] :as next-branch} ((if (zero? input) lhs-node rhs-node) @branch)]
-            (vreset! branch next-branch)
+          (let [next-branch (next-node @branch input)]
             (if (is-leaf? next-branch)
-              (do (vreset! branch huffman-tree)
-                  (xf result (leaf-val next-branch)))
-              result)))
+              (do
+                (vreset! branch huffman-tree)
+                (xf result (leaf-val next-branch)))
+              (do
+                (vreset! branch next-branch)
+                result))
+            ))
         ))))

 (defn decode


Added modis pixel generator to predicate.

--- src/clj/forma/hadoop/predicate.clj
+++ src/clj/forma/hadoop/predicate.clj
@@ -3,7 +3,8 @@
         [clojure.string :only (split)]
         [clojure.contrib.math :only (ceil)]
         [clojure.contrib.seq :only (positions)]
-        [forma.matrix.utils :only (sparse-expander matrix-of)])
+        [forma.matrix.utils :only (sparse-expander matrix-of)]
+        [forma.source.modis :only (pixels-at-res)])
   (:require [cascalog.ops :as c]
             [cascalog.vars :as v]))

@@ -15,6 +16,26 @@
   [gen in-syms out-syms]
   (replace (zipmap in-syms out-syms)
            (get-out-fields gen)))
+
+;; ### Generators
+
+(defmapcatop [sample [res]]
+  [& args] (range (pixels-at-res res)))
+(defmapcatop [line [res]]
+  [& args] (range (pixels-at-res res)))
+
+(defn pixel-generator
+  "Returns a cascalog generator that produces every pixel combination
+  for the supplied sequence of tiles, given the supplied resolution."
+  [res tileseq]
+  (let [hv (memory-source-tap (for [[h v] tileseq] [h v]))
+        s (fn [tap] (<- [?mod-h ?mod-v ?sample]
+                       (tap ?mod-h ?mod-v)
+                       (sample [res] ?mod-h :> ?sample)))
+        l (fn [tap] (<- [?mod-h ?mod-v ?sample ?line]
+                       (tap ?mod-h ?mod-v ?sample)
+                       (line [res] ?mod-h :> ?line)))]
+    (->> hv s l)))

 ;; ### Operations


implement Sunny's cloud breakers

implement Sunny's cloud breakers

--- src/clj/game/cards-icebreakers.clj
+++ src/clj/game/cards-icebreakers.clj
@@ -197,6 +197,21 @@
                     {:abilities [{:cost [:credit 1] :msg "break 1 tracer subroutine"}
                                  {:cost [:credit 2] :msg "add 3 strength" :effect (effect (pump card 3)) :pump 3}]})

+   "GS Sherman M3"
+   (auto-icebreaker ["Barrier"]
+                    {:abilities [{:cost [:credit 2] :msg "break any number of barrier subroutines"}
+                                 {:cost [:credit 2] :msg "add 3 strength" :effect (effect (pump card 3)) :pump 3}]})
+
+   "GS Shrike M2"
+   (auto-icebreaker ["Sentry"]
+                    {:abilities [{:cost [:credit 2] :msg "break any number of sentry subroutines"}
+                                 {:cost [:credit 2] :msg "add 3 strength" :effect (effect (pump card 3)) :pump 3}]})
+
+   "GS Striker M1"
+   (auto-icebreaker ["Code Gate"]
+                    {:abilities [{:cost [:credit 2] :msg "break any number of code gate subroutines"}
+                                 {:cost [:credit 2] :msg "add 3 strength" :effect (effect (pump card 3)) :pump 3}]})
+
    "Inti"
    (auto-icebreaker ["Barrier"]
                     {:abilities [{:cost [:credit 1] :msg "break 1 barrier subroutine"}
@@ -333,4 +348,4 @@
    "ZU.13 Key Master"
    (auto-icebreaker ["Code Gate"]
                     {:abilities [{:cost [:credit 1] :msg "break 1 code gate subroutine"}
-                                 {:cost [:credit 1] :msg "add 1 strength" :effect (effect (pump card 1)) :pump 1}]})})+                                 {:cost [:credit 1] :msg "add 1 strength" :effect (effect (pump card 1)) :pump 1}]})})


endorsement schema

endorsement schema

--- src/cljc/salava/badge/schemas.cljc
+++ src/cljc/salava/badge/schemas.cljc
@@ -165,6 +165,16 @@
                        (s/optional-key  :resource_type) s/Str
                        (s/optional-key  :mime_type) (s/maybe s/Str)} )

+(s/defschema UserEndorsement [{:id (s/maybe s/Int)
+                            :endorser_id s/Int
+                            :user_badge_id s/Int
+                            :content s/Str
+                            :status (s/enum "pending" "accepted" "declined")
+                            :ctime s/Int
+                            (s/optional-key :first_name) s/Str
+                            (s/optional-key :last_name) s/Str
+
+                            }])


fix require with browser REPL, set base path to "goog/"

--- src/cljs/clojure/browser/repl.cljs
+++ src/cljs/clojure/browser/repl.cljs
@@ -131,6 +131,6 @@
               (let [script (.createElement js/document "script")]
                 (set! (.-type script) "text/javascript")
                 (set! (.-src script)
-                  (str js/goog.basePath
+                  (str "goog/"
                     (aget (.. js/goog -dependencies_ -nameToPath) name)))
                 script))))))))


show apostrophes with proper html entities

--- src/cljs/link_collective/view.cljs
+++ src/cljs/link_collective/view.cljs
@@ -110,7 +110,7 @@
   [comment]
   {[:.comment-text] (html-content
                      (md/mdToHtml
-                      (loop [text (:content comment)
+                      (loop [text (clojure.string/replace (:content comment) #"\'" "’")
                              hashtags (map name (:hashtags comment))]
                         (if (empty? hashtags)
                           text
@@ -166,7 +166,7 @@
              (om/set-state! owner :selected-entries (conj selected-entries (:id topiq))))))))
     (set-attr "href" (str "#comments-" (:id topiq))))
    [:.topiq-text] (html-content
-                   (loop [text (:title topiq)
+                   (loop [text (clojure.string/replace (:title topiq) #"\'" "’")
                           hashtags (map name (:hashtags topiq))]
                         (if (empty? hashtags)
                           text
@@ -203,7 +203,6 @@
             (js/alert e))))))

-
 (deftemplate topiqs "templates/topiqs.html"
   [app owner]
   {[:.list-group] (content (map #(topiq % app owner) (get-topiqs app)))


misc(frontend): minor improvements on tools.clj script

--- frontend/tools.clj
+++ frontend/tools.clj
@@ -72,26 +72,43 @@
                     :output-dir "target/tests/main"
                     :optimizations :none)))

+
+(def figwheel-builds
+  {:main {:id "main"
+          :options (merge default-build-options
+                          (get-output-options "main" false true))}
+   :view {:id "view"
+          :options (merge default-build-options
+                          (get-output-options "view" false true))}
+   :worker {:id "worker"
+            :options (merge default-build-options
+                            {:target :webworker}
+                            (get-output-options "worker" false true))}})
+
+(def figwheel-options
+  {:open-url false
+   :load-warninged-code true
+   :auto-testing false
+   :css-dirs ["resources/public/css"
+              "resources/public/view/css"]
+   :ring-server-options {:port 3449 :host "0.0.0.0"}
+   :watch-dirs ["src" "test"]})
+
 (defmethod task "figwheel"
-  [args]
+  [& args]
   (figwheel/start
-   {:open-url false
-    :load-warninged-code true
-    :auto-testing false
-    :css-dirs ["resources/public/css"
-               "resources/public/view/css"]
-    :ring-server-options {:port 3449 :host "0.0.0.0"}
-    :watch-dirs ["src" "test"]}
-   {:id "main"
-    :options (merge default-build-options
-                    (get-output-options "main" false true))}
-   {:id "view"
-    :options (merge default-build-options
-                    (get-output-options "view" false true))}
-   {:id "worker"
-    :options (merge default-build-options
-                    {:target :webworker}
-                    (get-output-options "worker" false true))}))
+   figwheel-options
+   (:main figwheel-builds)
+   (:view figwheel-builds)
+   (:worker figwheel-builds)))
+
+(defmethod task "figwheel-single"
+  [[_ name]]
+  (when-let [build (get figwheel-builds (keyword name))]
+    (figwheel/start
+     figwheel-options
+     build
+     (:worker figwheel-builds))))

 ;;; Build script entrypoint. This should be the last expression.


Added a timer function that updates on intervals.

--- src/cmr/dev/env/manager/timing.clj
+++ src/cmr/dev/env/manager/timing.clj
@@ -60,3 +60,15 @@
       (if-not time-key
         t
         (recur time-keys (update-interval intervals t time-key update-fn))))))
+
+(defn timer
+  ([]
+    (timer default-intervals))
+  ([intervals]
+    (timer intervals (new-tracker intervals)))
+  ([intervals init-tracker]
+    (timer intervals init-tracker (constantly true)))
+  ([intervals init-tracker update-fn]
+    (async/go-loop [tracker init-tracker]
+      (async/<! (async/timeout 1000))
+      (recur (update-tracker intervals tracker update-fn)))))


inner/outer-ast

inner/outer-ast

--- src/atom_finder/atom_stats.clj
+++ src/atom_finder/atom_stats.clj
@@ -60,8 +60,8 @@

    :inner-atom-count (count inner-atoms)
    :outer-atom-count (count outer-atoms)
-   :inner-ast-size
-   :outer-ast-size
+   :inner-ast-size (count inner-ast)
+   :outer-ast-size (count outer-ast)
    }))

 (defn atom-stats [] {


+get bored

+get bored

--- src/babel/english/lexicon.cljc
+++ src/babel/english/lexicon.cljc
@@ -559,6 +559,17 @@
       :english {:participle "getting angry"
                 :present {:3sing "gets angry"}
                 :past "got angry"}})
+   "get bored"
+   (let [subject-semantics (atom {:human true})]
+     {:synsem {:cat :verb
+               :sem {:pred :get-bored
+                     :subj subject-semantics
+                     :obj subject-semantics}
+               :subcat {:1 {:sem subject-semantics}
+                        :2 '()}}
+      :english {:participle "getting bored"
+                :present {:3sing "gets bored"}
+                :past "got bored"}})

    "get dressed"
    (let [subject-semantics (atom {:human true})]


added grammar rule for vp pronoun verb

added grammar rule for vp pronoun verb

--- src/babel/francais/grammar.clj
+++ src/babel/francais/grammar.clj
@@ -258,6 +258,16 @@
                                      :cat :verb
                                      :sem {:aspect :progressive
                                            :tense :present}}})
+
+                     (unifyc c21
+                           root-is-head-root
+                           {:head {:phrasal true}
+                            :comp {:synsem {:cat :noun
+                                            :pronoun true}}
+                            :rule "vp-pronoun-phrasal"
+                            :synsem {:cat :verb
+                                     :infl {:not :past}}})
+
                    (unifyc h21
                            {:rule "vp-infinitive"
                             :synsem {:aux false


Migrate to clojure.spec.alpha

Migrate to clojure.spec.alpha

--- dev/playground.clj
+++ dev/playground.clj
@@ -1,7 +1,7 @@
 (ns playground
   (:refer-clojure :exclude [doubles])
   (:require [clojure.pprint :as p]
-            [clojure.spec :as s]
+            [clojure.spec.alpha :as s]
             [clojure.walk :as w]
             [criterium.core :as c]
             [mikron.runtime.core :as mikron :refer [defschema schema schema* pack unpack gen valid? diff undiff interp]]
@@ -56,7 +56,7 @@
   (let [buffer (allocate 2000)]
     (c! (reset buffer)
         (dotimes [_ 100]
-          (put-byte buffer 10))))
+          (put-varint buffer 10))))

   (let [s (schema [:vector :byte])
         v (vec (repeat 100 1))]
@@ -69,7 +69,4 @@
   (->> (schema [:vector :int])
        :processors
        :pack
-       (d!))
-
-
-  (d! mikron.runtime.buffer.MikronByteBuffer))
+       (d!)))


Added top-level function to analyze-data.core to turn documents into tf-idf values.

--- project/analyze-data/src/analyze_data/core.clj
+++ project/analyze-data/src/analyze_data/core.clj
@@ -1 +1,11 @@
-(ns analyze-data.core)
+(ns analyze-data.core
+  (:require [analyze-data.tf-idf.core :refer [to-terms tf-idf]]
+            [analyze-data.tf-idf.)
+
+; (with-open [in-file (io/reader "../scrape-summitpost-data/data.csv")]
+;   (def row (apply zipmap (take 2 (csv/read-csv in-file)))))
+
+(defn get-tf-idf-corpus
+  [documents]
+  (let [term-corpus (map to-terms documents)]
+    (tf-idf term-corpus)))


Updating feed values

Updating feed values

The category feeds where using the raw cateogry name for values instead
of the slugified version - this mean that some of the links pointed to
404s because the host (github pages) is case sensitive

--- src/briefcase/content/feed.clj
+++ src/briefcase/content/feed.clj
@@ -17,14 +17,15 @@
 (defn- atom-xml
   "Generates the xml document for atom feed of all content on the site"
   [category posts]
-  (xml/emit-str
-    (xml/sexp-as-element
-      [:feed {:xmlns "http://www.w3.org/2005/Atom"}
-        [:id      (str "urn:yobriefca-se:feed:" category)]
-        [:updated (-> posts first :date)]
-        [:title   {:type "text"} (str "Yo! Briefcase: " category)]
-        [:link    {:rel "self" :href (str "http://yobriefca.se/feed/" category ".xml")}]
-        (map entry posts)])))
+  (let [category-id (->slug category)]
+    (xml/emit-str
+      (xml/sexp-as-element
+        [:feed {:xmlns "http://www.w3.org/2005/Atom"}
+          [:id      (str "urn:yobriefca-se:feed:" category-id)]
+          [:updated (-> posts first :date)]
+          [:title   {:type "text"} (str "Yo! Briefcase: " category-id)]
+          [:link    {:rel "self" :href (str "http://yobriefca.se/feed/" category-id ".xml")}]
+          (map entry posts)]))))

 (defn atom-sources
   "Generates the stasis compatible sources map from the atom feed. This is


fix faucet url formatting

fix faucet url formatting

--- src/status_im/chat/events/console.cljs
+++ src/status_im/chat/events/console.cljs
@@ -41,9 +41,8 @@
                          :to           "me"}]))
           (log/debug "ignoring command: " command))))))

-(def faucet-base-url->url
-  {"http://faucet.ropsten.be:3001" "http://faucet.ropsten.be:3001/donate/0x%s"
-   "http://46.101.129.137:3001"    "http://46.101.129.137:3001/donate/0x%s"})
+(defn faucet-base-url->url [url]
+  (str url "/donate/0x%s"))

 (defn- faucet-response-event [message-id content]
   [:received-message
@@ -76,8 +75,8 @@
    (fn [{:keys [db random-id]} {:keys [params id]}]
      (let [{:accounts/keys [accounts current-account-id]} db
            current-address (get-in accounts [current-account-id :address])
-           faucet-url (get faucet-base-url->url (:url params))]
-       {:http-get {:url (gstring/format faucet-url current-address)
+           faucet-url      (faucet-base-url->url (:url params))]
+       {:http-get {:url                   (gstring/format faucet-url current-address)
                    :success-event-creator (fn [_]
                                             (faucet-response-event
                                              random-id


Release 0.32.0.

Release 0.32.0.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject de.active-group/active-clojure "0.32.0-SNAPSHOT"
+(defproject de.active-group/active-clojure "0.32.0"
   :description "Active Clojure: Various Clojure utilities in use at Active Group"
   :url "http://github.com/active-group/active-clojure"
   :license {:name "Eclipse Public License"


updated to clojure 1.7.0

updated to clojure 1.7.0

--- project.clj
+++ project.clj
@@ -3,7 +3,7 @@
   :url "http://example.com/FIXME"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
-  :dependencies [[org.clojure/clojure "1.6.0"]
+  :dependencies [[org.clojure/clojure "1.7.0"]
                  [clojure-csv/clojure-csv "2.0.1"]]
   :main ^:skip-aot trend-compliance.core
   :target-path "target/%s"


Added in the min-lein-version info

Added in the min-lein-version info

--- project.clj
+++ project.clj
@@ -3,6 +3,7 @@
   :url "http://example.com/FIXME"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
+  :min-lein-version "2.0.0"
   :dependencies [[org.clojure/clojure "1.5.0-RC1"]
                  [compojure "1.1.5" :exclusions [org.clojure/clojure]]
                  [lib-noir "0.3.4" :exclusions [[org.clojure/clojure]


snapshot

snapshot

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject brosenan/reagent-query "0.2.0"
+(defproject brosenan/reagent-query "0.2.0-SNAPSHOT"
   :description "A helper library for testing Reagent code as pure functions "
   :url "https://github.com/brosenan/reagent-query"
   :license {:name "Eclipse Public License"


lein-release plugin: preparing 0.3.13 release

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject re-view "0.3.13-SNAPSHOT"
+(defproject re-view "0.3.13"
   :description "Tiny React wrapper"
   :url "https://www.github.com/re-view/re-view"
   :license {:name "Eclipse Public License"


Update to 1.9.0

Update to 1.9.0

--- project.clj
+++ project.clj
@@ -2,7 +2,7 @@
   :profiles {:dev
              {:dependencies [[tubular "1.1.1"]]
               :source-paths ["dev"]}}
-  :dependencies [[org.clojure/clojure "1.9.0-RC2"]
+  :dependencies [[org.clojure/clojure "1.9.0"]
                  [org.clojure/clojurescript "1.9.946"]
                  [org.clojure/spec.alpha "0.1.143"]
                  [org.clojure/test.check "0.10.0-alpha2"]])


Add datomic pro as a dependency

Add datomic pro as a dependency

--- project.clj
+++ project.clj
@@ -8,6 +8,9 @@
   :uberjar-name "comic-reader.jar"
   :source-paths ["src/clj"]

+  :repositories {"my-datomic" {:url "https://my.datomic.com/repo"
+                               :creds :gpg}}
+
   :dependencies [[org.clojure/clojure "1.7.0"]
                  [ring "1.4.0"]
                  [fogus/ring-edn "0.3.0"]
@@ -17,6 +20,7 @@
                  [tempfile "0.2.0"]
                  [enlive "1.1.6"]
                  [environ "1.0.0"]
+                 [com.datomic/datomic-pro "0.9.5327"]

                  [org.clojure/clojurescript "1.7.48"]
                  [reagent "0.5.0"]


Update version to 0.6.4-SNAPSHOT

Update version to 0.6.4-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject cryogen/lein-template "0.6.3"
+(defproject cryogen/lein-template "0.6.4-SNAPSHOT"
   :description "A Leiningen template for the Cryogen static site generator"
   :url "https://github.com/cryogen-project/cryogen"
   :license {:name "Eclipse Public License"


Update clojure, java.jdbc, and hsqldb dependencies.

--- project.clj
+++ project.clj
@@ -37,7 +37,7 @@

   :jvm-opts ["-Djava.util.logging.config.file=logging.properties" ]

-  :dependencies [[org.clojure/clojure "1.6.0"]
-                 [org.hsqldb/hsqldb "2.3.2"]
-                 [org.clojure/java.jdbc "0.3.5"]
+  :dependencies [[org.clojure/clojure "1.8.0"]
+                 [org.hsqldb/hsqldb "2.3.3"]
+                 [org.clojure/java.jdbc "0.5.8"]
                  [org.clojure/tools.logging "0.3.1"]])


Update deps to Clojure 1.6 and latest Om

--- project.clj
+++ project.clj
@@ -1,8 +1,8 @@
 (defproject tamarack "0.1.0-SNAPSHOT"
-  :dependencies [[org.clojure/clojure "1.5.1"]
+  :dependencies [[org.clojure/clojure "1.6.0"]
                  [org.clojure/clojurescript "0.0-2227"]
                  [org.clojure/core.async "0.1.298.0-2a82a1-alpha"]
-                 [om "0.6.3"]
+                 [om "0.6.4"]
                  [compojure "1.1.8"]
                  [clj-json "0.5.3"]
                  [clj-time "0.7.0"]


Start 0.3.4 cycle

Start 0.3.4 cycle

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject org.clojure/tools.cli "0.3.3"
+(defproject org.clojure/tools.cli "0.3.4-SNAPSHOT"
   :description "Command line arguments library."
   :parent [org.clojure/pom.contrib "0.1.2"]
   :url "https://github.com/clojure/tools.cli"


Version 2.5.0 [ci skip]

Version 2.5.0 [ci skip]

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject clojush "2.5.0-SNAPSHOT"
+(defproject clojush "2.5.0"
   :description "The Push programming language and the PushGP genetic programming
                 system implemented in Clojure.
                 See http://hampshire.edu/lspector/push.html"


Update Leiningen

Update Leiningen

--- project.clj
+++ project.clj
@@ -7,7 +7,7 @@
                  [com.fifesoft/rsyntaxtextarea "2.5.0"]
                  [com.github.insubstantial/substance "7.2.1"]
                  [compliment "0.1.1"]
-                 [leiningen "2.4.0"
+                 [leiningen "2.4.2"
                   :exclusions [leiningen.search]]
                  [lein-ancient "0.5.4"
                   :exclusions [clj-aws-s3]]


cut 0.2.0 release

cut 0.2.0 release

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject tenzing/lein-template "0.1.0"
+(defproject tenzing/lein-template "0.2.0"
   :description "Clojurescript application template built on Boot"
   :url "http://github.com/martinklepsch/tenzing"
   :license {:name "Eclipse Public License"


Added the `lein-midje` plugin dependency.

It seems like this is often in people's person `.lein` directory, but it seemed a lot easier to get things going for class if I just added this to the project so people wouldn't have to mess with it.

--- project.clj
+++ project.clj
@@ -3,7 +3,8 @@
   :dependencies [[org.clojure/clojure "1.7.0"]
                  [org.clojure/math.numeric-tower "0.0.4"]]
   :profiles {:dev {:dependencies [[midje "1.7.0"]
-                                  [lein-midje "3.1.3"]]}}
+                                  [lein-midje "3.1.3"]]
+                   :plugins [[lein-midje "3.1.3"]]}}
   :main simple-symbolic-regression-clojure.core
   :jvm-opts ["-Xms1g" "-Xmx4g"
              "-XX:+UseG1GC"


Moving toward next version.

Moving toward next version.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject com.okl.tokenmgr "0.2.0"
+(defproject com.okl.tokenmgr "0.2.1-SNAPSHOT"
   :description "Store tokens in zookeeper and filter them"
   :url "https://github.com/okl/danger-tokenmgr"
   :dependencies [[org.clojure/clojure "1.5.1"]


Version 26-SNAPSHOT

Version 26-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject clojars-web "25"
+(defproject clojars-web "26-SNAPSHOT"
   :min-lein-version "2.0.0"
   :dependencies [[org.clojure/clojure "1.7.0"]
                  [org.clojure/tools.cli "0.2.1"]


Do not include docs/ files in codox

Do not include docs/ files in codox

--- project.clj
+++ project.clj
@@ -31,6 +31,7 @@
                    :smoke :smoke
                    :all (constantly true)}
   :codox {:namespaces [#"^(?!.*\.internal\.).*$"]
+          :doc-files []
           :source-uri "https://github.com/flosell/lambdacd/blob/master/{filepath}#L{line}"
           :project    {:name "LambdaCD"}
           :themes [:rdash]


Using clojure-csv instead of data.csv

Using clojure-csv instead of data.csv

--- project.clj
+++ project.clj
@@ -6,7 +6,7 @@
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies [[org.clojure/clojure "1.5.1"]
                  [org.clojure/tools.trace "0.7.8"]
-                 [org.clojure/data.csv "0.1.2"]
+                 [clojure-csv/clojure-csv "2.0.1"]
                  [prismatic/plumbing "0.3.5"]])


updated deps

updated deps

--- project.clj
+++ project.clj
@@ -4,12 +4,12 @@
   :license {:name "Apache License, Version 2.0"
             :url "https://www.apache.org/licenses/LICENSE-2.0.html"}
   :dependencies [[org.clojure/clojure "1.7.0"]
-                 [dda/dda-pallet-commons "0.7.0-SNAPSHOT"]
-                 [dda/dda-pallet "0.6.5-SNAPSHOT"]
+                 [dda/dda-pallet-commons "0.7.0"]
+                 [dda/dda-pallet "0.6.5"]
                  [dda/dda-user-crate "0.7.0"]
                  [dda/dda-serverspec-crate "0.4.0"]
                  [dda/dda-git-crate "0.2.2"]
-                 [dda/dda-backup-crate "0.7.1-SNAPSHOT"]]
+                 [dda/dda-backup-crate "0.7.1"]]
   :source-paths ["main/src"]
   :resource-paths ["main/resources"]
   :repositories [["snapshots" :clojars]
@@ -25,7 +25,7 @@
                    [[org.clojure/test.check "0.10.0-alpha2"]
                     [org.domaindrivenarchitecture/pallet-aws "0.2.8.2"]
                     [com.palletops/pallet "0.8.12" :classifier "tests"]
-                    [dda/dda-pallet-commons "0.7.0-SNAPSHOT" :classifier "tests"]
+                    [dda/dda-pallet-commons "0.7.0" :classifier "tests"]
                     [ch.qos.logback/logback-classic "1.2.3"]
                     [org.slf4j/jcl-over-slf4j "1.8.0-beta0"]]
                    :plugins


Not going down the uberjar route

Not going down the uberjar route

--- project.clj
+++ project.clj
@@ -2,7 +2,6 @@
   :description "The application holding data-flow steps."
   :url "http://steps.herokuapp.org"
   :main staircase.main
-  :uberjar-name "staircase-standalone.jar"
   :aot [staircase.main]
   :dependencies [[org.clojure/clojure "1.5.1"]
                  [org.clojure/tools.logging "0.2.6"] ;; Logging


lein-release plugin: preparing 0.27 release

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


remove :repositories option from project.clj

--- project.clj
+++ project.clj
@@ -3,8 +3,6 @@
   :url "https://chrov.is"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
-  :repositories [["snapshots" {:url "https://nexus.xcoo.jp/content/repositories/snapshots"}]
-                 ["releases" {:url "https://nexus.xcoo.jp/content/repositories/releases"}]]
   :dependencies [[org.clojure/clojure "1.5.1"]
                  [org.clojure/tools.logging "0.2.6"]
                  [org.clojure/tools.cli "0.2.4"]


Released 0.2.13

Released 0.2.13

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject riemann "0.2.13-SNAPSHOT"
+(defproject riemann "0.2.13"
   :description
 "A network event stream processor. Intended for analytics, metrics, and alerting; and to glue various monitoring systems together."
   :url "http://github.com/riemann/riemann"


Version 0.0.4-SNAPSHOT

Version 0.0.4-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject pe-apptxn-restsupport "0.0.3"
+(defproject pe-apptxn-restsupport "0.0.4-SNAPSHOT"
   :description "A Clojure library encapsulating the REST API of the PEAppTransaction Logging Framework."
   :url "https://github.com/evanspa/pe-apptxn-restsupport"
   :license {:name "MIT"


Version 0.2.62

Version 0.2.62

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject yetibot.core "0.2.62-SNAPSHOT"
+(defproject yetibot.core "0.2.62"
   :description "Core yetibot utilities, extracted for shared use among yetibot
                 and its various plugins"
   :url "https://github.com/devth/yetibot.core"


Deps: commons-codec 1.9, Faraday 1.0.1, lein-autoexpect 1.2.1

--- project.clj
+++ project.clj
@@ -6,7 +6,7 @@
   :dependencies [[org.clojure/clojure         "1.4.0"]
                  [org.clojure/tools.macro     "0.1.5"]
                  [commons-pool/commons-pool   "1.6"]
-                 [commons-codec/commons-codec "1.8"]
+                 [commons-codec/commons-codec "1.9"]
                  [org.clojure/data.json       "0.2.3"]
                  [com.taoensso/timbre         "2.7.1"]
                  [com.taoensso/nippy          "2.5.2"]]
@@ -14,7 +14,7 @@
              :1.5   {:dependencies [[org.clojure/clojure  "1.5.1"]]}
              :1.6   {:dependencies [[org.clojure/clojure  "1.6.0-alpha2"]]}
              :dev   {:dependencies [[ring/ring-core       "1.2.1"]
-                                    [com.taoensso/faraday "1.0.0"]]}
+                                    [com.taoensso/faraday "1.0.1"]]}
              :test  {:dependencies [[expectations         "1.4.56"]
                                     [clj-aws-s3           "0.3.7"]]}
              :bench {:dependencies [] :jvm-opts ["-server"]}}
@@ -25,7 +25,7 @@
             "start-bench" ["trampoline" "start-dev"]
             "codox"       ["with-profile" "+test,+1.5" "doc"]}
   :plugins [[lein-expectations "0.0.8"]
-            [lein-autoexpect   "1.0"]
+            [lein-autoexpect   "1.2.1"]
             [lein-ancient      "0.5.4"]
             [codox             "0.6.6"]]
   :min-lein-version "2.0.0"


Clojure 1.6; expand & shuffle test matrix.

--- project.clj
+++ project.clj
@@ -14,8 +14,7 @@
                org.apache.avro/avro
                org.apache.avro/avro-mapred
                org.apache.avro/avro-ipc]
-  :dependencies [[org.clojure/clojure "1.5.1"]
-                 [org.clojure/tools.logging "0.2.6"]
+  :dependencies [[org.clojure/tools.logging "0.2.6"]
                  [com.damballa/abracad "0.4.9"]
                  [org.apache.avro/avro "1.7.5"]
                  [pjstadig/scopes "0.3.0"]]
@@ -36,63 +35,83 @@
                     parkour.util.shutdown.hadoop1
                     parkour.util.shutdown.hadoop2]
           :output-dir "tmp/codox"}
-  :aliases {"stable"["with-profile" "-default,+default*,+hadoop-stable"]
-            "all" ["with-profile" ~(str "-default,+default*,+hadoop-1-0-3:"
-                                        "-default,+default*,+hadoop-1-2-1:"
-                                        "-default,+default*,+hadoop-cdh3:"
-                                        "-default,+default*,+hadoop-cdh4:"
-                                        "-default,+default*,+hadoop-2-2-0")]}
-  :profiles {:default* [:base :system :user :provided :dev]
-             :default [:default* :hadoop-stable]
-             :conjars {:repositories
-                       [["conjars" "http://conjars.org/repo/"]]}
-             :cloudera {:repositories
-                        [["cloudera" ~(str "https://repository.cloudera.com"
-                                           "/artifactory/cloudera-repos/")]]}
-             :provided [:slf4j-log4j :java6]
-             :slf4j-log4j {:dependencies
-                           [[org.slf4j/slf4j-api "1.6.1"]
-                            [org.slf4j/slf4j-log4j12 "1.6.1"]
-                            [log4j "1.2.17"]]}
-             :java6 {:dependencies
-                     [[org.codehaus.jsr166-mirror/jsr166y "1.7.0"]]}
-             :examples {:source-paths ["examples"]}
-             :hadoop-user [:java6 :avro-cdh4]
-             :jobjar [:hadoop-user :examples]
-             :dev [:examples
-                   :conjars ;; For cascading-* *
+  :aliases {"stable" ["with-profile" "-default,+default*,+hadoop-stable"]
+            "few" ["with-profile" "default*,clojure-1-6-0"
+                   "with-profile" "+hadoop-1-2-1:+hadoop-2-3-0"
+                   "with-profile" "-default"]
+            "all" ["with-profile" "default*"
+                   "with-profile" "+clojure-1-5-1:+clojure-1-6-0"
+                   "with-profile" ~(str "+hadoop-1-0-3:"
+                                        "+hadoop-1-2-1:"
+                                        "+hadoop-2-2-0:"
+                                        "+hadoop-2-3-0:"
+                                        "+hadoop-cdh4:"
+                                        "+hadoop-cdh5")
+                   "with-profile" "-default"]}
+  :profiles
+  , {:default* [:base :system :user :provided :dev]
+     :default [:default* :clojure-1-6-0 :hadoop-stable]
+     :conjars {:repositories
+               [["conjars" "http://conjars.org/repo/"]]}
+     :cloudera {:repositories
+                [["cloudera" ~(str "https://repository.cloudera.com"
+                                   "/artifactory/cloudera-repos/")]]}
+     :provided [:slf4j-log4j :java6]
+     :slf4j-log4j {:dependencies
+                   [[org.slf4j/slf4j-api "1.6.1"]
+                    [org.slf4j/slf4j-log4j12 "1.6.1"]
+                    [log4j "1.2.17"]]}
+     :java6 {:dependencies
+             [[org.codehaus.jsr166-mirror/jsr166y "1.7.0"]]}
+     :examples {:source-paths ["examples"]}
+     :hadoop-user [:java6 :avro-cdh4]
+     :jobjar [:hadoop-user :examples]
+     :dev [:examples
+           :conjars ;; For cascading-* *
+           {:dependencies
+            [[alembic "0.2.1"]
+             [cascading/cascading-hadoop "2.2.0"
+              :exclusions [org.codehaus.janino/janino]]]}]
+     :test {:resource-paths ["test-resources"]}
+     :clojure-1-5-1 {:dependencies [[org.clojure/clojure "1.5.1"]]}
+     :clojure-1-6-0 {:dependencies [[org.clojure/clojure "1.6.0"]]}
+     :hadoop-stable [:hadoop-1-2-1]
+     :avro-hadoop1 {:dependencies
+                    [[org.apache.avro/avro-mapred "1.7.5"]]}
+     :hadoop-1-0-3 [:avro-hadoop1
+                    {:dependencies
+                     [[org.apache.hadoop/hadoop-core "1.0.3"]]}]
+     :hadoop-1-2-1 [:avro-hadoop1
+                    {:dependencies
+                     [[org.apache.hadoop/hadoop-core "1.2.1"]]}]
+     :avro-hadoop2 {:dependencies
+                    [[org.apache.avro/avro-mapred "1.7.5"
+                      :classifier "hadoop2"]]}
+     :hadoop-2-2-0 [:avro-hadoop2
+                    {:dependencies
+                     [[org.apache.hadoop/hadoop-client "2.2.0"]
+                      [org.apache.hadoop/hadoop-common "2.2.0"]]}]
+     :hadoop-2-3-0 [:avro-hadoop2
+                    {:dependencies
+                     [[org.apache.hadoop/hadoop-client "2.3.0"]
+                      [org.apache.hadoop/hadoop-common "2.3.0"]]}]
+     :avro-cdh4 {:repositories
+                 , [["platypope" "http://jars.platypope.org/release/"]]
+                 :dependencies
+                 , [[org.apache.avro/avro-mapred "1.7.5"
+                     :classifier "hadoop1-cdh4"]]}
+     :hadoop-cdh4 [:cloudera ;; For hadoop-* *-*cdh4*
+                   :avro-cdh4
                    {:dependencies
-                    [[alembic "0.2.1"]
-                     [cascading/cascading-hadoop "2.2.0"
-                      :exclusions [org.codehaus.janino/janino]]]}]
-             :test {:resource-paths ["test-resources"]}
-             :hadoop-stable [:hadoop-1-2-1]
-             :avro-hadoop1 {:dependencies
-                            [[org.apache.avro/avro-mapred "1.7.5"]]}
-             :hadoop-1-0-3 [:avro-hadoop1
-                            {:dependencies
-                             [[org.apache.hadoop/hadoop-core "1.0.3"]]}]
-             :hadoop-1-2-1 [:avro-hadoop1
-                            {:dependencies
-                             [[org.apache.hadoop/hadoop-core "1.2.1"]]}]
-             :hadoop-cdh3 [:cloudera ;; For hadoop-* *-*cdh3*
-                           :avro-hadoop1
-                           {:dependencies
-                            [[org.apache.hadoop/hadoop-core "0.20.2-cdh3u3"]]}]
-             :avro-cdh4 {:repositories
-                         , [["platypope" "http://jars.platypope.org/release/"]]
-                         :dependencies
-                         , [[org.apache.avro/avro-mapred "1.7.5"
-                             :classifier "hadoop1-cdh4"]]}
-             :hadoop-cdh4 [:cloudera ;; For hadoop-* *-*cdh4*
-                           :avro-cdh4
-                           {:dependencies
-                            [[org.apache.hadoop/hadoop-core "2.0.0-mr1-cdh4.1.2"]
-                             [org.apache.hadoop/hadoop-common "2.0.0-cdh4.1.2"]]}]
-             :avro-hadoop2 {:dependencies
-                            [[org.apache.avro/avro-mapred "1.7.5"
-                              :classifier "hadoop2"]]}
-             :hadoop-2-2-0 [:avro-hadoop2
-                            {:dependencies
-                             [[org.apache.hadoop/hadoop-client "2.2.0"]
-                              [org.apache.hadoop/hadoop-common "2.2.0"]]}]})
+                    [[org.apache.hadoop/hadoop-core "2.0.0-mr1-cdh4.1.2"]
+                     [org.apache.hadoop/hadoop-common "2.0.0-cdh4.1.2"]]}]
+     :avro-cdh5 [:cloudera
+                 {:dependencies
+                  [[org.apache.avro/avro "1.7.5-cdh5.0.0"]
+                   [org.apache.avro/avro-mapred "1.7.5-cdh5.0.0"
+                    :classifier "hadoop2"]]}]
+     :hadoop-cdh5 [:cloudera ;; For hadoop-* *-*cdh4*
+                   :avro-cdh5
+                   {:dependencies
+                    [[org.apache.hadoop/hadoop-client "2.3.0-cdh5.0.0"]
+                     [org.apache.hadoop/hadoop-common "2.3.0-cdh5.0.0"]]}]})


Back to SNAPSHOT

Back to SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject com.mdrogalis/onyx "0.6.0-alpha2"
+(defproject com.mdrogalis/onyx "0.6.0-SNAPSHOT"
   :description "Distributed, masterless, fault tolerant data processing for Clojure"
   :url "https://github.com/onyx-platform/onyx"
   :license {:name "Eclipse Public License"


CMR-5145: Updated deps.

CMR-5145: Updated deps.

--- project.clj
+++ project.clj
@@ -86,8 +86,8 @@
         [com.esri.geometry/esri-geometry-api "2.2.1"]
         [com.vividsolutions/jts "1.13"]
         [net.sf.geographiclib/GeographicLib-Java "1.49"]
-        [org.geotools/gt-geometry "19.1"]
-        [org.geotools/gt-referencing "19.1"]]}
+        [org.geotools/gt-geometry "20.0"]
+        [org.geotools/gt-referencing "20.0"]]}
     :system {
       :dependencies [
         [clojusc/system-manager "0.3.0-SNAPSHOT"]]}
@@ -113,7 +113,7 @@
       :source-paths ^:replace ["src"]
       :test-paths ^:replace []
       :plugins [
-        [jonase/eastwood "0.2.9"]
+        [jonase/eastwood "0.3.1"]
         [lein-ancient "0.6.15"]
         [lein-bikeshed "0.5.1"]
         [lein-kibit "0.1.6"]
@@ -137,7 +137,7 @@
       :dependencies [
         [gov.nasa.earthdata/codox-theme "1.0.0-SNAPSHOT"]]
       :plugins [
-        [lein-codox "0.10.4"]
+        [lein-codox "0.10.5"]
         [lein-marginalia "0.9.1"]]
       :source-paths ["resources/docs/src"]
       :codox {
@@ -187,7 +187,7 @@
     "ubercompile" ["with-profile" "+system,+geo,+local,+ubercompile" "compile"]
     "uberjar" ["with-profile" "+system,+geo" "uberjar"]
     "uberjar-aot" ["with-profile" "+system,+geo,+ubercompile" "uberjar"]
-    "check-vers" ["with-profile" "+lint" "ancient" "check" ":all"]
+    "check-vers" ["with-profile" "+lint,+system,+geo,+security" "ancient" "check" ":all"]
     "check-jars" ["with-profile" "+lint" "do"
       ["deps" ":tree"]
       ["deps" ":plugin-tree"]]


Update to dynapath 0.2.5

Update to dynapath 0.2.5

This version addresses two Java 9 related issues:

* 0.2.4 would fail under Java 9 if AOT'd
* the latest Java 9 build (9-ea+148) broke dynapath's reflection to make
  URLClassLoader modifiable

--- project.clj
+++ project.clj
@@ -23,7 +23,7 @@
                  [cheshire]

                  [org.ini4j/ini4j "0.5.2"]
-                 [org.tcrawley/dynapath "0.2.4"]
+                 [org.tcrawley/dynapath "0.2.5"]
                  [digest "1.4.3"]

                  ]


Remove connect test, unsupported

Remove connect test, unsupported

--- src/com/wsscode/pathom/connect/test.cljc
+++ src/com/wsscode/pathom/connect/test.cljc
@@ -1,435 +0,0 @@
-(ns com.wsscode.pathom.connect.test
-  (:require
-    [clojure.data :as data]
-    [clojure.set :as set]
-    [clojure.spec.alpha :as s]
-    [clojure.walk :as walk]
-    [com.fulcrologic.guardrails.core :refer [>def >defn >fdef => | <- ?]]
-    [#?(:clj  com.wsscode.async.async-clj
-        :cljs com.wsscode.async.async-cljs) :refer [go-catch]]
-    [com.wsscode.common.combinatorics :as combo]
-    [com.wsscode.pathom.connect :as pc]
-    [com.wsscode.pathom.core :as p]
-    [com.wsscode.pathom.misc :as p.misc]
-    [com.wsscode.pathom.test :as pt])
-  #?(:clj
-     (:import
-       (java.util
-         Date))))
-
-;; EXPERIMENTAL
-
-;; generative test helpers
-
-(def parser-env
-  {:async-reader    pt/async-reader
-   ::pt/depth-limit 10
-   ::p/reader       pt/reader
-   ::p/union-path   pt/union-test-path})
-
-(def parser (p/parser {:mutate pt/mutate-fn}))
-
-(defn resolve-fn
-  [{{::pc/keys [output]} ::pc/resolver-data} _]
-  (parser (assoc parser-env ::pt/include-nils? false) output))
-
-(defn async-resolve-fn
-  [{{::pc/keys [output]} ::pc/resolver-data :as env} _]
-  (if (-> env :ast :key (pt/hash-mod? 3))
-    (go-catch
-      (parser (assoc parser-env ::pt/include-nils? false) output))
-    (parser (assoc parser-env ::pt/include-nils? false) output)))
-
-;; auto-test
-
-(>def ::values set?)
-(>def ::error any?)
-(>def ::depth nat-int?)
-(>def ::error-box (s/keys :req [::error]))
-(>def ::data-bank any?)
-(>def ::data-bank-raw (s/map-of ::pc/attribute ::values))
-(>def ::input-arguments (s/map-of ::pc/attribute any?))
-(>def ::call-result (s/or :error (s/keys :req [::error]) :value any?))
-(>def ::call-event (s/map-of ::input-arguments ::call-result))
-(>def ::call-history (s/map-of symbol? ::call-event))
-(>def ::calls (s/coll-of map? :kind set?))
-(>def ::log (s/tuple inst? symbol? map? map?))
-(>def ::call-log (s/coll-of ::log :kind vector?))
-(>def ::multi-args (s/coll-of ::pc/attributes-set :kind set?))
-
-(>def ::event-type #{::report-seek
-                     ::report-resolver-start
-                     ::report-resolver-discover
-                     ::report-resolver-call})
-
-(>def ::report-fn any?)
-
-(>def ::resolver-out
-  (s/or :failed (s/or :simple #{::unreachable ::end-of-input}
-                      :error (s/keys :req [::error]))
-        :success map?))
-
-(declare test-resolver* discover-data)
-
-(defn reduce-first [col] (reduce #(reduced %2) nil col))
-
-(defn add-subsets [{::keys [multi-args] :as a} b]
-  (let [b-keys (set (keys b))]
-    (reduce
-      (fn [m args]
-        (if (set/subset? args b-keys)
-          (update m args (fnil conj #{}) (select-keys b (set/intersection args b-keys)))
-          m))
-      a
-      multi-args)))
-
-(defn dissoc-stats-keys [data-bank]
-  (dissoc data-bank ::call-history ::call-log ::out-shape-mismatch ::unreachable))
-
-(defn bank-add
-  "Adds new information to a data bank, the data bank is feed by resolver outputs
-  and is used to feed in as input to call other resolvers."
-  [{::keys [bank-ignore] :as env
-    :or    {bank-ignore #{::p/not-found}}} a b]
-  (let [bank-add' (partial bank-add env)]
-    (if (map? b)
-      (-> (reduce-kv
-            (fn [m k v]
-              (if v
-                (cond-> (if (contains? bank-ignore v)
-                          m
-                          (update m k (fnil conj #{}) v))
-                  (map? v) (bank-add' v)
-                  (sequential? v) (as-> <> (reduce bank-add' <> v)))
-                m))
-            a
-            (dissoc b ::pc/env))
-          (add-subsets b))
-      a)))
-
-(defn unreachable
-  "Mark attribute k as unreachable on db. Returns ::unreachable."
-  [{::keys [data-bank]} k]
-  (swap! data-bank update ::unreachable (fnil conj #{}) k)
-  {::error ::unreachable})
-
-(defn report [{::keys [report-fn] :as env} event data]
-  (if report-fn
-    (let [env' (update env ::depth #(or % 0))]
-      (report-fn env' event data))))
-
-(defn seek-attr
-  "Try to run more resolvers to get more attributes of type `attr`."
-  [{::keys    [data-bank resolver-trace depth]
-    ::pc/keys [indexes]
-    :or       {depth 0}
-    :as       env}
-   attr]
-  (let [db      @data-bank
-        db-keys (set (keys db))
-        {::pc/keys [index-oir index-resolvers]} indexes]
-    (report env ::report-seek {::pc/attribute attr})
-    (if-let [attr-resolvers (get index-oir attr)]
-      (or (->> attr-resolvers
-               (mapcat (fn [[attrs syms]]
-                         (let [missing (set/difference attrs db-keys)]
-                           (for [s syms]
-                             {:sym     s
-                              :data    (get index-resolvers s)
-                              :attrs   attrs
-                              :missing missing}))))
-               (sort-by (comp count :missing))
-               (eduction
-                 (remove (comp (or resolver-trace #{}) :sym))
-                 (keep (fn [{:keys [sym data]}]
-                         (let [env' (-> env
-                                        (assoc ::depth (inc depth))
-                                        (update ::resolver-trace (fnil conj #{}) sym))]
-                           (test-resolver* env' data)
-                           (when (not= (get db attr) (get @data-bank attr))
-                             (get @data-bank attr))))))
-               (reduce-first))
-          (unreachable env attr))
-      (unreachable env attr))))
-
-(defn resolve-attr
-  "Find a value for an attribute."
-  [{::keys [data-bank force-seek?] :as env} attr]
-  (let [db @data-bank]
-    (if force-seek?
-      (seek-attr (dissoc env ::force-seek?) attr)
-      (or (get db attr)
-          (seek-attr env attr)))))
-
-(defn discover-data
-  "Pick a new input for a resolver from the data bank."
-  [env {::pc/keys [input]}]
-  (zipmap input (map #(resolve-attr env %) input)))
-
-(defn call-add [env a b]
-  (-> (bank-add env a b)
-      (update ::calls (fnil conj #{}) b)))
-
-(defn now []
-  #?(:clj  (Date.)
-     :cljs (js/Date.)))
-
-(defn log!
-  [{::keys [data-bank]}
-   {::pc/keys [sym]}
-   {:keys [in out]}]
-  (swap! data-bank update ::call-log (fnil conj []) [(now) sym in out])
-  out)
-
-(defn collect-multi-args
-  "Collect inputs with more than one attribute from the index."
-  [indexes]
-  (->> indexes ::pc/index-resolvers vals
-       (map ::pc/input)
-       (filter #(> (count %) 1))
-       (set)))
-
-(defn expand-output-tree
-  "Connect normaly only indexes the direct root attributes for scan fetching.
-  But for test discovery we also want the nested to be available as options
-  during parsing. This function brings the nested items to top level."
-  [indexes]
-  (let [resolvers (->> indexes ::pc/index-resolvers)]
-    (reduce-kv
-      (fn add-output [idx _ {::pc/keys [sym output input] :as res}]
-        (reduce
-          (fn [idx attr]
-            (let [attr' (if (map? attr) (ffirst attr) attr)]
-              (cond-> (update-in idx [::pc/index-oir attr' input] (fnil conj #{}) sym)
-                (map? attr)
-                (add-output nil (assoc res ::pc/output (first (vals attr)))))))
-          idx
-          output))
-      indexes
-      resolvers)))
-
-(defn input-list
-  [{::keys [data-bank]} {::pc/keys [input]} in-data]
-  (let [db @data-bank]
-    (cond
-      (zero? (count input))
-      [{}]
-
-      (= 1 (count input))
-      (let [[k inputs] (first in-data)]
-        (map #(hash-map k %) inputs))
-
-      :else
-      (concat (get db input)
-              (->> (apply combo/cartesian-product (vals in-data))
-                   (map #(zipmap (keys in-data) %))
-                   (remove (get db input #{})))))))
-
-(defn vector->set
-  "Recursively converts all vectors in sets."
-  [x]
-  (walk/prewalk
-    (fn [x]
-      (if (and (vector? x) (not (map-entry? x)))
-        (set x)
-        x))
-    x))
-
-(defn find-join-value [q k]
-  (some (fn [i]
-          (if (and (map? i)
-                   (= k (ffirst i)))
-            (-> i first second))) q))
-
-(defn diff-data-shapes
-  "Return the query shape differece."
-  [a b]
-  (let [a (->> (vector->set a)
-               (into #{} (remove #(and (keyword? %)
-                                       (find-join-value b %)))))
-        b (vector->set b)
-        [missing] (data/diff a b)
-        post-missing
-        (some->> missing
-                 (into []
-                       (keep (fn [x]
-                               (if (map? x)
-                                 (let [[k v] (first x)
-                                       val-diff (diff-data-shapes v (find-join-value b k))]
-                                   (if val-diff
-                                     {k val-diff}))
-                                 x)))))]
-    (if (seq post-missing)
-      post-missing)))
-
-(defn return-extra-attributes [{::pc/keys [output]} out]
-  (-> (pc/data->shape out)
-      (diff-data-shapes output)))
-
-(defn merge-mismatch
-  [{::keys [out-cumulative]}
-   {::pc/keys [output]}
-   out]
-  (let [out-shape (pc/data->shape out)
-        out-c     (p/merge-queries (or out-cumulative output) out-shape)]
-    {::out-base       output
-     ::out-cumulative out-c
-     ::out-missing    (diff-data-shapes out-c output)}))
-
-(defn inc* [x] (if x (inc x) 1))
-
-(defn test-resolver*
-  "Test a resolver."
-  ([{::keys [data-bank force-seek?] :as env} {::pc/keys [sym] :as resolver}]
-   (report env ::report-resolver-start resolver)
-   (let [db      @data-bank
-         env     (update env ::depth inc*)
-         in-data (discover-data env resolver)]
-     (report env ::report-resolver-discover (assoc resolver ::data-bank in-data))
-     (if (some ::error (vals in-data))
-       (if force-seek?
-         (log! env resolver {:in in-data :out ::unreachable})
-         (recur (assoc env ::force-seek? true) resolver))
-       (if-let [input' (->> (input-list env resolver in-data)
-                            (remove (get-in db [::call-history sym] {}))
-                            (first))]
-         (test-resolver* env resolver input')
-         (if force-seek?
-           (log! env resolver {:in in-data :out ::end-of-input})
-           (recur (assoc env ::force-seek? true) resolver))))))
-
-  ([{::keys [data-bank] :as env}
-    {::pc/keys [sym] :as resolver}
-    input]
-   (report env ::report-resolver-call (assoc resolver ::input-arguments input))
-   (let [out (try
-               (some-> (pc/call-resolver (assoc env ::pc/resolver-data resolver) input)
-                       (dissoc ::pc/env))
-               (catch #?(:clj Throwable :cljs :default) e
-                 {::error e}))]
-     (swap! data-bank update-in [::call-history sym] assoc input out)
-     (log! env resolver {:in input :out out})
-     (if-not (::error out)
-       (do
-         (when (return-extra-attributes resolver out)
-           (swap! data-bank update-in [::out-shape-mismatch sym]
-             merge-mismatch resolver out))
-         (swap! data-bank (partial bank-add env) out)
-         env)
-       out))))
-
-(defn success-call? [x] (not (contains? x ::error)))
-
-(defn resolver-calls [{::keys [data-bank]} s]
-  (get-in @data-bank [::call-history s]))
-
-(defn count-success-calls [env s]
-  (->> (resolver-calls env s) vals (filter success-call?) count))
-
-(defn count-failed-calls [env s]
-  (->> (resolver-calls env s) vals (remove success-call?) count))
-
-(defn process-multi-run!
-  [{::keys [data-bank target-call-count max-error-retry]
-    :or    {target-call-count 5
-            max-error-retry   10}
-    :as    env} sym]
-  (let [mark-done (fn [sym reason]
-                    (swap! data-bank update-in [::call-history sym] (fn [x] (vary-meta (or x {}) assoc ::resolver-finished-by reason))))
-        {::pc/keys [input]} (pc/resolver-data env sym)
-        [kind res] (->> (test-resolver* env (pc/resolver-data env sym))
-                        (s/conform ::resolver-out))]
-    (case kind
-      :success
-      (if (seq input)
-        (if (>= (count-success-calls env sym) target-call-count)
-          (mark-done sym ::resolver-done))
-        (mark-done sym ::resolver-done))
-
-      :failed
-      (let [[type value] res]
-        (case type
-          :simple
-          (case value
-            ::end-of-input
-            (mark-done sym ::end-of-input)
-
-            ::unreachable
-            (mark-done sym ::unreachable))
-
-          :error
-          (if (>= (count-failed-calls env sym) max-error-retry)
-            (mark-done sym ::max-error)))))))
-
-(defn test-index*
-  [{::pc/keys [indexes]
-    :as       env}]
-  (let [resolvers (-> indexes ::pc/index-resolvers)
-        res-keys  (set (keys resolvers))
-        sym-calls #(resolver-calls env %)]
-    (loop []
-      (let [missing (->> res-keys
-                         (remove (comp ::resolver-finished-by meta sym-calls))
-                         (sort-by (juxt #(count-success-calls env %)
-                                        #(-> (pc/resolver-data env %) ::pc/input count))))]
-        (if (seq missing)
-          (do
-            (process-multi-run! env (first missing))
-            (recur))
-          env)))))
-
-(declare console-print-reporter)
-
-(defn prepare-environment [{::pc/keys [indexes]
-                            ::keys    [data-bank]
-                            :as       env}]
-  (assert (s/valid? (s/keys :req [::pc/indexes]) env)
-    (s/explain-str (s/keys :req [::pc/indexes]) env))
-  (let [data-bank (if data-bank
-                    (do (swap! data-bank assoc ::multi-args (collect-multi-args indexes)))
-                    (atom {::multi-args (collect-multi-args indexes)}))]
-    (-> (merge {::data-bank data-bank
-                ::report-fn console-print-reporter} env)
-        (update ::pc/indexes expand-output-tree))))
-
-(defn test-resolver
-  "Test a single resolver."
-  [env {::pc/keys [sym]}]
-  (let [env' (prepare-environment env)]
-    (loop [_ nil]
-      (if (-> (resolver-calls env' sym) meta ::resolver-finished-by)
-        env'
-        (recur (process-multi-run! env' sym))))))
-
-(defn test-index [env]
-  (test-index* (prepare-environment env)))
-
-;; reporter
-
-(defn depth-print [{::keys [depth]} & more]
-  (apply println
-    (apply str (repeat depth "  "))
-    "- " more))
-
-(defmulti console-print-reporter (fn [env event data] event))
-
-(defmethod console-print-reporter ::report-seek
-  [env _ {:keys [::pc/attribute]}]
-  (depth-print env "seeking" ::pc/attribute))
-
-(defmethod console-print-reporter ::report-resolver-start
-  [env _ {:keys [::pc/sym]}]
-  (depth-print env "test resolver" ::pc/sym))
-
-(defmethod console-print-reporter ::report-resolver-discover
-  [env _ {:keys [::pc/sym ::data-bank]}]
-  (depth-print env "discovered input" ::pc/sym (pr-str data-bank)))
-
-(defmethod console-print-reporter ::report-resolver-call
-  [env _ {:keys [::pc/sym ::input-arguments]}]
-  (depth-print env "call resolver" (pr-str ::pc/sym) (pr-str input-arguments)))
-
-(defmethod console-print-reporter :default
-  [_ _ _] nil)
-
-(defn silent-reporter "I report nothing!" [_ _ _])


Disable the creation of :description-html as it is not necessary anymore.

--- src/clj/cljs_api/generator.clj
+++ src/clj/cljs_api/generator.clj
@@ -160,7 +160,7 @@
     (assoc filtered-map
            :symbols (reduce (fn [symbol-map [symbol-k symbol-v]]
                               (assoc symbol-map symbol-k (-> symbol-v
-                                                             assoc-description-html
+                                                             ;; assoc-description-html ;; AR - not used anymore
                                                              assoc-example-strings
                                                              assoc-example-htmls)))
                             {} symbol-name-map))))


implement Advanced Concept Hopper

implement Advanced Concept Hopper

--- src/clj/game/cards-agendas.clj
+++ src/clj/game/cards-agendas.clj
@@ -32,6 +32,26 @@
                                                                                (move state side c :play-area))
                                                                              (resolve-ability state side (abt 1 n) card nil))}
                                                                card nil)))}}})
+
+   "Advanced Concept Hopper"
+   {:events
+    {:run
+     {:req (req (first-event state side :run))
+      :effect (effect (show-wait-prompt :runner "Corp to use Advanced Concept Hopper")
+                      (resolve-ability
+                        {:player :corp
+                         :prompt "Use Advanced Concept Hopper to draw 1 card or gain 1 [Credits]?" :once :per-turn
+                         :choices ["Draw 1 card" "Gain 1 [Credits]" "No action"]
+                         :effect (req (case target
+                                        "Gain 1 [Credits]"
+                                        (do (gain state :corp :credit 1)
+                                            (system-msg state :corp (str "uses Advanced Concept Hopper to gain 1 [Credits]")))
+                                        "Draw 1 card"
+                                        (do (draw state :corp)
+                                            (system-msg state :corp (str "uses Advanced Concept Hopper to draw 1 card")))
+                                        "No action"
+                                        (system-msg state :corp (str "doesn't use Advanced Concept Hopper")))
+                                      (clear-wait-prompt state :runner))} card nil))}}}

    "Ancestral Imager"
    {:events {:jack-out {:msg "do 1 net damage" :effect (effect (damage :net 1))}}}


modify agendas that get spendable counters when scored

--- src/clj/game/cards-agendas.clj
+++ src/clj/game/cards-agendas.clj
@@ -59,7 +59,7 @@
    {:events {:jack-out {:msg "do 1 net damage" :effect (effect (damage :net 1))}}}

    "AstroScript Pilot Program"
-   {:data {:counter 1}
+   {:effect (effect (add-prop card :counter 1))
     :abilities [{:counter-cost 1 :msg (msg "place 1 advancement token on "
                                            (card-str state target))
                  :choices {:req can-be-advanced?}
@@ -187,7 +187,8 @@
                                 :effect (effect (ice-strength-bonus 1 target))}}}

    "Executive Retreat"
-   {:data {:counter 1} :effect (effect (shuffle-into-deck :hand))
+   {:effect (effect (add-prop card :counter 1)
+                    (shuffle-into-deck :hand))
     :abilities [{:cost [:click 1] :counter-cost 1 :msg "draw 5 cards" :effect (effect (draw 5))}]}

    "Explode-a-palooza"
@@ -205,7 +206,7 @@
     :steal-cost-bonus (req [:credit 2])}

    "Firmware Updates"
-   {:data [:counter 3]
+   {:effect (effect (add-prop card :counter 3))
     :abilities [{:counter-cost 1 :choices {:req #(and (ice? %) (can-be-advanced? %))}
                  :req (req (< 0 (:counter card 0)))
                  :msg (msg "place 1 advancement token on " (card-str state target))
@@ -216,7 +217,7 @@
     :effect (effect (add-prop target :counter 1))}

    "Geothermal Fracking"
-   {:data {:counter 2}
+   {:effect (effect (add-prop card :counter 2))
     :abilities [{:cost [:click 1] :counter-cost 1 :msg "gain 7 [Credits] and take 1 bad publicity"
                  :effect (effect (gain :credit 7 :bad-publicity 1))}]}

@@ -258,7 +259,7 @@
                       :effect (effect (add-prop target :counter c))} card nil)))}

    "High-Risk Investment"
-   {:data {:counter 1}
+   {:effect (effect (add-prop card :counter 1))
     :abilities [{:cost [:click 1] :counter-cost 1 :msg (msg "gain " (:credit runner) " [Credits]")
                  :effect (effect (gain :credit (:credit runner)))}]}

@@ -280,7 +281,7 @@
                                :effect (effect (add-prop :corp target :advance-counter n {:placed true}))} card nil)))}}}

    "House of Knives"
-   {:data {:counter 3}
+   {:effect (effect (add-prop card :counter 3))
     :abilities [{:counter-cost 1 :msg "do 1 net damage" :req (req (:run @state)) :once :per-run
                  :effect (effect (damage :net 1 {:card card}))}]}

@@ -298,7 +299,7 @@
                               :effect (effect (init-trace-bonus 1))}}}

    "Labyrinthine Servers"
-   {:data {:counter 2}
+   {:effect (effect (add-prop card :counter 2))
     :abilities [{:counter-cost 1 :effect (effect (prevent-jack-out))
                  :msg "prevent the Runner from jacking out"}]}

@@ -332,7 +333,7 @@
     :advancement-cost-bonus (req (:bad-publicity corp))}

    "Nisei MK II"
-   {:data {:counter 1}
+   {:effect (effect (add-prop card :counter 1))
     :abilities [{:req (req (:run @state)) :counter-cost 1 :msg "end the run"
                  :effect (effect (end-run))}]}

@@ -404,7 +405,7 @@
                  :choices (req (:discard corp)) :effect (effect (move target :hand))}]}

    "Project Wotan"
-   {:data [:counter 3]
+   {:effect (effect (add-prop card :counter 3))
     :abilities [{:counter-cost 1 :msg "add an 'End the run' subroutine to the approached ICE"}]}

    "Quantum Predictive Model"


Voting Machine Initiative improvements.

Voting Machine Initiative improvements.

--- src/clj/game/cards-agendas.clj
+++ src/clj/game/cards-agendas.clj
@@ -522,6 +522,18 @@
    {:msg "lose 2 bad publicity"
     :effect (effect (lose :bad-publicity 2))}

+   "Voting Machine Initiative"
+   {:effect (effect (add-prop card :counter 3))
+    :abilities [{:optional {:req (req (> (:counter card) (:vmi-count card 0)))
+                            :prompt "Cause the Runner to lose [Click] at the start of their next turn?"
+                            :yes-ability {:effect (effect (toast (str "The Runner will lose " (inc (:vmi-count card 0))
+                                                                      " [Click] at the start of their next turn") "info")
+                                                    (update! (update-in card [:vmi-count] #(inc (or % 0)))))}}}]
+    :events {:runner-turn-begins {:req (req (pos? (:vmi-count card 0)))
+                                  :msg (msg "to force the Runner to lose " (:vmi-count card) " [Click]")
+                                  :effect (effect (lose :runner :click (:vmi-count card))
+                                                  (add-prop (dissoc card :vmi-count) :counter (- (:vmi-count card))))}}}
+
    "Vulcan Coverup"
    {:msg "do 2 meat damage" :effect (effect (damage :meat 2 {:card card}))
     :stolen {:msg "force the Corp to take 1 bad publicity"


manual refresh menu item added popup menus added to doc-ta, ns-lb and vars-lb, but reuse of checkbox-menu-item doesn't seem to work - so that is commented out until fix/clarification

--- src/clj_ns_browser/browser.clj
+++ src/clj_ns_browser/browser.clj
@@ -50,7 +50,7 @@
 (declare browser-with-fqn)
 (declare refresh-clj-ns-browser)
 (declare get-next-clj-ns-browser)
-
+(declare auto-refresh-browser-handler)

 ;; seesaw docs say to call this early
 (native!)
@@ -180,6 +180,7 @@
 (swap! all-ns-loaded-atom (fn [& a] (all-ns-loaded)))
 (def group-vars-by-object-type-atom (atom false))
 (def vars-search-doc-also-cb-atom (atom false))
+(def vars-fqn-listing-cb-atom (atom false))
 (def ns-lb-refresh-atom (atom true))
 (def vars-lb-refresh-atom (atom true))

@@ -333,6 +334,11 @@
                 (let [url (subs (config (id :doc-ta) :text) (first s) (second s))]
                   (future (doall (clojure.java.browse/browse-url url)))))))))

+(add-app-action :manual-refresh-browser-action
+  (action :name "Manual Refresh"
+          :key  "menu R"
+          :handler (fn [e]
+            (auto-refresh-browser-handler {:root (to-root e)}))))

 ;; Init functions called during construction of a frame with its widget hierarchy
@@ -731,9 +737,9 @@
     (let [main-menu (menubar :id :main-menu)
           edit-menu (menu :text "Edit"  :id :edit-menu)
           file-menu (menu :text "File"  :id :file-menu)
-          ns-menu (menu :text "Namespace" :id :ns-menu)
-          vars-menu (menu :text "Var" :id :vars-menu)
-          docs-menu (menu :text "Doc" :id :docs-menu)
+          ns-menu (menu :text "Namespaces" :id :ns-menu)
+          vars-menu (menu :text "Vars" :id :vars-menu)
+          docs-menu (menu :text "Docs" :id :docs-menu)
           clojuredocs-menu (menu :text "ClojureDocs" :id :clojuredocs-menu)
           window-menu (menu :text "Window" :id :window-menu)
           help-menu (menu :text "Help"  :id :help-menu)
@@ -749,13 +755,19 @@
           clojuredocs-online-rb (radio-menu-item :text "ClojureDocs Online" :id :clojuredocs-online-rb :group clojuredocs-access-btn-group)
           clojuredocs-offline-rb (radio-menu-item :text "ClojureDocs Offline/Local" :id :clojuredocs-offline-rb :group clojuredocs-access-btn-group)

+          vars-fqn-listing-cb (checkbox-menu-item :text "FQN Listing" :id :vars-fqn-listing-cb)
           vars-categorized-cb (checkbox-menu-item :text "Categorized Listing" :id :vars-categorized-cb)
           vars-search-doc-also-cb (checkbox-menu-item :text "Search Docs Also" :id :vars-search-doc-also-cb)

-          auto-refresh-browser-cb (checkbox-menu-item :text "Auto-Refresh" :id :auto-refresh-browser)
+          auto-refresh-browser-cb (checkbox-menu-item :text "Auto-Refresh" :id :auto-refresh-browser-cb)
           auto-refresh-browser-timer (timer auto-refresh-browser-handler  :initial-value {:root root}
                                             :initial-delay 1000   :start? false)
           color-coding-cb (checkbox-menu-item :text "Color Coding" :id :color-coding-cb)
+
+          ;; popup's
+          doc-ta-popup (popup :id :doc-ta-popup)
+          ns-lb-popup (popup :id :ns-lb-popup)
+          vars-lb-popup (popup :id :vars-lb-popup)

           ]

@@ -771,7 +783,7 @@

       (config! ns-menu :items ["Load" "Trace"])

-      (config! vars-menu :items ["Trace" "Unmap" :separator vars-categorized-cb vars-search-doc-also-cb])
+      (config! vars-menu :items ["Trace" "Un-Map" "Un-Alias" :separator vars-categorized-cb vars-fqn-listing-cb vars-search-doc-also-cb])

       (config! auto-refresh-browser-cb
@@ -784,6 +796,10 @@
          :listen [:action (fn [e] (swap! group-vars-by-object-type-atom (fn [_] (config vars-categorized-cb :selected?))))]
         :selected? false)

+      (config! vars-fqn-listing-cb
+         :listen [:action (fn [e] (swap! vars-fqn-listing-cb-atom (fn [_] (config vars-fqn-listing-cb :selected?))))]
+        :selected? false)
+
       (config! vars-search-doc-also-cb
          :listen [:action (fn [e] (swap! vars-search-doc-also-cb-atom (fn [_] (config vars-search-doc-also-cb :selected?))))]
         :selected? false)
@@ -796,13 +812,40 @@
       (config! font-menu :items [font-Monospaced-rb  font-Menlo-rb font-Inconsolata-rb])

       (config! window-menu :items [(id :zoom-in-action) (id :zoom-out-action) font-menu color-coding-cb :separator
-        auto-refresh-browser-cb :separator (id :bring-all-windows-to-front-action)
+        (id :manual-refresh-browser-action) auto-refresh-browser-cb :separator (id :bring-all-windows-to-front-action)
         (id :cycle-through-windows-action)])

       (config! help-menu :items [(id :go-github-action) (id :go-clojure.org-action) (id :go-clojuredocs-action) (id :go-cheatsheet-action) (id :go-jira-action) (id :go-about-action)])
       (config! docs-menu :items [update-clojuredocs :separator
                                  clojuredocs-online-rb clojuredocs-offline-rb
                                  :separator])
+
+      ;; popup's
+      (config! (id :doc-ta) :popup doc-ta-popup)
+      (config! doc-ta-popup :items [(id :new-browser-action) :separator (id :copy-fqn-action)
+                                    (id :fqn-from-clipboard-action) (id :fqn-from-selection-action)
+                                    (id :open-url-from-selection-action) :separator
+                                    ;;auto-refresh-browser-cb :separator
+                                    (id :zoom-in-action) (id :zoom-out-action)])
+
+      (config! (id :ns-lb) :popup ns-lb-popup)
+      (config! ns-lb-popup :items [(id :new-browser-action) :separator (id :copy-fqn-action)
+                                    (id :fqn-from-clipboard-action) (id :fqn-from-selection-action)
+                                    (id :open-url-from-selection-action) :separator
+                                    "Load" "Trace"
+                                    ;;:separator auto-refresh-browser-cb
+                                    ])
+
+      (config! (id :vars-lb) :popup vars-lb-popup)
+      (config! vars-lb-popup :items [(id :new-browser-action) :separator (id :copy-fqn-action)
+                                    (id :fqn-from-clipboard-action) (id :fqn-from-selection-action)
+                                    (id :open-url-from-selection-action) :separator
+                                    "Trace" "Un-Map" "Un-Alias"
+                                    ;;:separator vars-categorized-cb
+                                    ;;vars-fqn-listing-cb vars-search-doc-also-cb
+                                    ;;:separator auto-refresh-browser-cb
+                                    ])
+
       )))

 ;; init and browser-window management


Faster and more idiomatic subvec to slice items db

Premature optimization!

--- src/cljs/modern_cljs/core.cljs
+++ src/cljs/modern_cljs/core.cljs
@@ -140,7 +140,7 @@
             pos (+ start i)]
           (m "li" nil [(m "button" {:onclick #(edit item pos)} "Edit")
                        title])))
-    (take PAGESIZE (drop start data))))
+    (subvec data start (+ start PAGESIZE))))

 (defn page [start direction count]
   (let [next (direction start PAGESIZE)
@@ -161,7 +161,8 @@

 (defn ctrl []
   (let [par (.param (.-route js/m) "hih")]
-    (println "initial param was:" par))
+    (if (not(nil? par))
+      (println "initial param was:" par)))
   (if (not (:data db nil))
     (do (println "Calling major Tom")
         (data_from_db "/data.json"))))


Velký panák emits big-shot (#1)

Velký panák emits big-shot (#1)

--- src/cljs/potok_rumu/views.cljs
+++ src/cljs/potok_rumu/views.cljs
@@ -20,6 +20,6 @@
           (rum/react potok)
           " dl Rumu vypito"]
          (emitting-button store :small-shot "Malý panák")
-         (emitting-button store :small-shot "Velky panák")
+         (emitting-button store :big-shot "Velky panák")
          (emitting-button store :go-home "Jdi spát")]))


[WR] remove duplicate create note

[WR] remove duplicate create note

--- src/cljs/retrobard/client.cljs
+++ src/cljs/retrobard/client.cljs
@@ -290,8 +290,8 @@
                                                             :column-id id
                                                             :note note}))
                              (sort-by first > (:notes column))))
-                 (om/build create-note-button {:connection connection
-                                               :column-id id}))))))
+                 (om/build delete-column-button {:connection connection
+                                                 :column-id id}))))))

 (defn error-handler [app]
   (let [error-chan (chan)]


bigger jframe

bigger jframe

--- src/clojure/confgraph/core.clj
+++ src/clojure/confgraph/core.clj
@@ -1,11 +1,11 @@
 (ns confgraph.core
   (:gen-class)
   (:import
-   com.jgraph.layout.JGraphFacade
-   com.jgraph.layout.hierarchical.JGraphHierarchicalLayout
    [org.jgraph.graph DefaultGraphCell GraphConstants]
    [org.jgrapht ListenableGraph]
    [org.jgrapht.graph ListenableDirectedGraph]
+   com.jgraph.layout.hierarchical.JGraphHierarchicalLayout
+   com.jgraph.layout.JGraphFacade
    ExtendedConstructor
    java.io.File
    javax.swing.JFrame
@@ -43,8 +43,8 @@
       (let [m (.createNestedMap facade true true)
             cache (.getGraphLayoutCache jgraph)]
         (.edit cache m))
-      (doto (JFrame. "TITLE")
-        (.setSize 800 600)
+      (doto (JFrame. "defgraph")
+        (.setSize 1024 768)
         (.setDefaultCloseOperation JFrame/EXIT_ON_CLOSE)
         (.add jgraph)
         (.setVisible true)))))


CMR-5145: Pull in hotfix of re-adding dropped normalizing call.

--- src/cmr/opendap/query/core.clj
+++ src/cmr/opendap/query/core.clj
@@ -69,27 +69,29 @@
   ([raw-params]
     (-create raw-params {}))
   ([raw-params opts]
-    (let [missing-params (missing-required-params
-                          raw-params (:required-params opts))
+    (let [params (util/normalize-params raw-params)
+          missing-params (missing-required-params
+                          params
+                          (:required-params opts))
           dest (:destination opts)]
       (cond (seq missing-params)
             (missing-params-errors missing-params)

-            (util/ambiguous-style? raw-params)
-            (cmr/create raw-params)
+            (util/ambiguous-style? params)
+            (cmr/create params)

-            (or (= :cmr dest) (cmr/style? raw-params))
-            (cmr/create raw-params)
+            (or (= :cmr dest) (cmr/style? params))
+            (cmr/create params)

-            (or (= :giovanni dest) (giovanni/style? raw-params))
-            (giovanni/create raw-params)
+            (or (= :giovanni dest) (giovanni/style? params))
+            (giovanni/create params)

-            (or (= :wcs dest) (wcs/style? raw-params))
-            (wcs/create raw-params)
+            (or (= :wcs dest) (wcs/style? params))
+            (wcs/create params)

             :else
             {:errors [errors/invalid-parameter
-                      (str "Parameters: " raw-params)]}))))
+                      (str "Parameters: " params)]}))))

 (defn create
   [& args]
@@ -115,10 +117,6 @@
   explicit desired type is indicated so no conversion is performed."
   ([raw-params]
     (parse raw-params nil))
-    ; (let [collection-params (create raw-params)]
-    ;   (if (errors/erred? collection-params)
-    ;     collection-params
-    ;     (->cmr collection-params))))
   ([raw-params destination]
     (create raw-params {:destination destination
                         :required-params #{:collection-id}})))


Cleanup code in 'path_store.clj'

Cleanup code in 'path_store.clj'

--- src/cyanite_remover/path_store.clj
+++ src/cyanite_remover/path_store.clj
@@ -192,17 +192,16 @@
     (reify
       PathStore
       (lookup [this tenant leafs-only limit-depth path exclude-paths]
-        (let []
-          (try
-            (let [paths (search search-fn scroll-fn tenant leafs-only
-                                limit-depth path scroll-batch-size
-                                scroll-batch-rate)
-                  re-excludes (re-pattern (join-wildcards exclude-paths))]
-              (if-not exclude-paths
-                paths
-                (remove #(re-matches re-excludes (:path %)) paths)))
-            (catch Exception e
-              (log-error e path stats-errors)))))
+        (try
+          (let [paths (search search-fn scroll-fn tenant leafs-only
+                              limit-depth path scroll-batch-size
+                              scroll-batch-rate)
+                re-excludes (re-pattern (join-wildcards exclude-paths))]
+            (if-not exclude-paths
+              paths
+              (remove #(re-matches re-excludes (:path %)) paths)))
+          (catch Exception e
+            (log-error e path stats-errors))))
       (delete [this tenant path]
         (delete-fn tenant path))
       (delete-query [this tenant leafs-only limit-depth path]


use error-transformer for alia exceptions

--- src/er_cassandra/record_either.clj
+++ src/er_cassandra/record_either.clj
@@ -27,7 +27,8 @@

   ([session table key record-or-key-value opts]
    (dm/either-deferred
-    (r/select session table key record-or-key-value opts))))
+    (r/select session table key record-or-key-value opts)
+    alia-error-transformer)))

 (defn select-one
   "select a single record : returns a Deferred[Either]"
@@ -36,7 +37,8 @@

   ([session table key record-or-key-value opts]
    (dm/either-deferred
-    (r/select-one session table key record-or-key-value opts))))
+    (r/select-one session table key record-or-key-value opts)
+    alia-error-transformer)))

 (import-vars [er-cassandra.record insert-statement])

@@ -48,7 +50,8 @@

   ([session table record opts]
    (dm/either-deferred
-    (r/insert session table record opts))))
+    (r/insert session table record opts)
+    alia-error-transformer)))

 (import-vars [er-cassandra.record update-statement])

@@ -60,7 +63,8 @@

   ([session table key record opts]
    (dm/either-deferred
-    (r/update session table key record opts))))
+    (r/update session table key record opts)
+    alia-error-transformer)))

 (import-vars [er-cassandra.record delete-statement])

@@ -72,4 +76,5 @@

   ([session table key record-or-key-value opts]
    (dm/either-deferred
-    (r/delete session table key record-or-key-value opts))))
+    (r/delete session table key record-or-key-value opts)
+    alia-error-transformer)))


Account for missing distro type in get-deps

--- src/docker_clojure/dockerfile/shared.clj
+++ src/docker_clojure/dockerfile/shared.clj
@@ -11,7 +11,7 @@
            (when end? [(last cmds)]))))

 (defn get-deps [type distro-deps distro]
-  (->> distro namespace keyword (get distro-deps) type))
+  (some->> distro namespace keyword (get distro-deps) type))

 (def build-deps (partial get-deps :build))


fixed tags handlers regarding new api

fixed tags handlers regarding new api

--- src/cljs/swarmpit/component/service/form_settings.cljs
+++ src/cljs/swarmpit/component/service/form_settings.cljs
@@ -11,19 +11,26 @@

 (defonce tags (atom []))

+(defn public-tags-handler
+  [repository]
+  (handler/get
+    (routes/path-for-backend :public-repository-tags)
+    {:params     {:repository repository}
+     :on-success (fn [response]
+                   (reset! tags response))}))
+
 (defn dockerhub-tags-handler
-  [user repository]
+  [distribution repository]
   (handler/get
-    (routes/path-for-backend :dockerhub-repository-tags)
-    {:params     {:repository repository
-                  :user       user}
+    (routes/path-for-backend :dockerhub-repository-tags {:id distribution})
+    {:params     {:repository repository}
      :on-success (fn [response]
                    (reset! tags response))}))

 (defn registry-tags-handler
-  [registry repository]
+  [distribution repository]
   (handler/get
-    (routes/path-for-backend :registry-repository-tags {:registry registry})
+    (routes/path-for-backend :registry-repository-tags {:id distribution})
     {:params     {:repository repository}
      :on-success (fn [response]
                    (reset! tags response))}))


Consistent file loading and namespace conventions

--- point-mutations/point_mutations_test.clj
+++ point-mutations/point_mutations_test.clj
@@ -1,25 +1,23 @@
-(ns point_mutations-test
-  (:require [clojure.test :refer :all]
-            [point_mutations :refer :all]))
-
+(ns point-mutations.test (:require [clojure.test :refer :all]))
+(load-file "point_mutations.clj")

 (deftest no-difference-between-empty-strands
-  (is (= 0 (point_mutations/hamming-distance "" ""))))
+  (is (= 0 (point-mutations/hamming-distance "" ""))))

 (deftest no-difference-between-identical-strands
-  (is (= 0 (point_mutations/hamming-distance "GGACTGA" "GGACTGA"))))
+  (is (= 0 (point-mutations/hamming-distance "GGACTGA" "GGACTGA"))))

 (deftest complete-hamming-distance-in-small-strand
-  (is (= 3 (point_mutations/hamming-distance "ACT" "GGA"))))
+  (is (= 3 (point-mutations/hamming-distance "ACT" "GGA"))))

 (deftest small-hamming-distance-in-middle-somewhere
-  (is (= 1 (point_mutations/hamming-distance "GGACG" "GGTCG"))))
+  (is (= 1 (point-mutations/hamming-distance "GGACG" "GGTCG"))))

 (deftest larger-distance
-  (is (= 2 (point_mutations/hamming-distance "ACCAGGG" "ACTATGG"))))
+  (is (= 2 (point-mutations/hamming-distance "ACCAGGG" "ACTATGG"))))

 (deftest undefined-when-lengths-are-different
-  (is (= nil (point_mutations/hamming-distance "AAAC" "TAGGGGAGGCTAGCGGTAGGAC")))
-  (is (= nil (point_mutations/hamming-distance "GACTACGGACAGGGTAACATAG" "GACA"))))
+  (is (= nil (point-mutations/hamming-distance "AAAC" "TAGGGGAGGCTAGCGGTAGGAC")))
+  (is (= nil (point-mutations/hamming-distance "GACTACGGACAGGGTAACATAG" "GACA"))))

 (run-tests)


Use meta data from page parsing.

Use meta data from page parsing.

--- src/cornwalltechjam/layout.clj
+++ src/cornwalltechjam/layout.clj
@@ -46,9 +46,9 @@
     [:meta {:charset "UTF-8"}]
     [:meta {:name "viewport", :content "width=device-width, initial-scale=1"}]
     [:meta {:name "viewport", :content "width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"}]
-    [:title {} "Artificial Reason"]
+    [:title {} title]
     [:link {:rel "shortcut icon", :href "assets/img/favicon.png"}]
-    [:meta {:name "description", :content ""}]
+    [:meta {:name "description", :content description}]
     [:link {:href "assets/css/preload.css", :rel "stylesheet"}]
     [:link {:href "assets/css/vendors.css", :rel "stylesheet"}]
     [:link {:href "assets/css/syntaxhighlighter/shCore.css", :rel "stylesheet"}]


add in notebooks

add in notebooks

Signed-off-by: Chris Granger <5654cde260ae99bc4d30054171b8bcd902efd19a@gmail.com>

--- src/aurora/compiler/code.cljs
+++ src/aurora/compiler/code.cljs
@@ -6,7 +6,8 @@

 (def rules
   ;; NOTE this is hand-stratified
-  [[(required :page :page/args :page/steps)
+  [[(required :notebook :notebook/description :notebook/pages)
+    (required :page :page/args :page/steps)
     (required :match :match/arg :match/branches)
     (required :branch :branch/pattern :branch/guards :branch/action)
     (required :call :call/fun :call/args)
@@ -16,6 +17,8 @@
     (exclusive :pattern :data :pattern/any :pattern/bind :pattern/vector :pattern/map)]

    [(exclusive :step? :data :call :match)]
+
+   [(rule [?notebook :notebook/pages ?pages] (:in ?page ?pages) :return [page :notebook/page notebook])]

    [(rule [?page :page/args ?args] (:in ?arg ?args) :return [arg :arg page])
     (rule [?page :page/steps ?steps] (:in ?step ?steps) :return [step :step page])]
@@ -51,7 +54,9 @@
     })

 (def example-a
-  #{[:root :page/args [:arg_a :arg_b :arg_c]]
+  #{[:root_notebook :notebook/description "wooohoo"]
+    [:root_notebook :notebook/pages [:root]]
+    [:root :page/args [:arg_a :arg_b :arg_c]]
     [:root :page/steps [:b_squared :four :four_a_c :result]]
     [:b_squared :call/fun :fun_mult]
     [:b_squared :call/args [:arg_b :arg_b]]
@@ -66,7 +71,9 @@
 (q* (datalog/knowledge (clojure.set/union stdlib example-a) rules) [?id :page true] :return id)

 (def example-b
-  #{[:root :page/args [:arg_x]]
+  #{[:root_notebook :notebook/description "wooohoo"]
+    [:root_notebook :notebook/pages [:root :vec]]
+    [:root :page/args [:arg_x]]
     [:root :page/steps [:result]]
     [:result :match/arg :arg_x]
     [:result :match/branches [:branch_map :branch_nested]]
@@ -108,4 +115,4 @@

 (errors (datalog/knowledge (clojure.set/union stdlib example-b) rules))

-(q* (datalog/knowledge (clojure.set/union stdlib example-b) rules) [?id :match true] :return id)
+(q* (datalog/knowledge (clojure.set/union stdlib example-b) rules) [:vec :notebook/page ?id] :return id)


Some notes

Some notes

--- src/dependable/core.clj
+++ src/dependable/core.clj
@@ -42,6 +42,11 @@
             [to' from']
             children)))

+
+
+
+
+
 (defn realize
   "Takes a request object and a query object and
   returns an actual package object pull from the
@@ -56,13 +61,20 @@

-;[package->dependencies dependee->dependers]
-;{:packageToDependencies {"name" {:package {}
-;                :children {"name" spec
-;                           "name" spec}}}
-; :dependeeToDependers {"dependee" ["depender" "depender"]}}
+;(->package-graph)
+;{:records {"name" <package>}
+; :dependee-parents {"dependee" #{"depender" "depender}}}

 (defrecord package-graph [records dependee-parents])
+(defrecord package [name version location dependencies])
+(defn resolve-dependencies [package]
+  (reduce
+    reconcile
+    (->package-graph {(:name package) package} {})
+    (map #(resolve-dependencies
+            (realize %1))
+         (:dependencies package))))
+

 ; realize is already written
 ; needs work to be able to handle conflicts, already-installeds, etc.
@@ -70,10 +82,56 @@
 (defn reconcile [a b]
   (let [a-package-lines (set (keys (:records a)))
         b-package-lines (set (keys (:records b)))
-        competing-packages
+        competing-lines
         (intersection
           a-package-lines
           b-package-lines)]
+    ; take two graphs a and b
+    ; graphs are lookup from "line name" (the package name, not from the
+    ; package, but the package spec it fulfills)
+    ;
+    ; find the intersection of the package lines, called "competing lines"
+    ;
+    ; construct possible-incompletes, the set of all lines which depends on any
+    ; of the competing lines
+    ;
+    ; construct a' from a, where all the competing lines have been removed a la
+    ; remove-lines and keeping track of any lines which are not yet realized
+    ;
+    ; construct b' from b, where all the competing lines have been removed a la
+    ; remove-lines and keeping track of any lines which are not yet realized
+    ;
+    ; construct result from (->package-graph (into (:records a') (:records b'))
+    ;                                        (into (:parents a') (:parents b'))
+    ;                                        (into (:left-hanging a') (:left-hanging b')))
+    ; you can do this b/c a' and b' are mututally exclusive
+    ;
+    ; now we just need to know what needs to be re-resolved. So, for each node
+    ; in the graph from listed in possible-incompletes, we check for any dependencies
+    ; of those children which are not yet resolved. if any aren't, we resolve them
+    ; using all available specs from the current graph and add the packages to the
+    ; graph.
+    ; (reconcile graph-so-far (resolve-dependencies (:name same-name :spec combined-specs)))
+    ;
+    ; I just need to define some good test cases, work them manually, and then
+    ; codify my process.
+    ;
+    ; TODO define set of cases for just requires & diamonds
+    ; TODO THEN ship it. lean methodology
+    ; TODO remove-lines needs to handle cycles, ex. a -> b, b -> c, b -> d, d -> b, remove b.
+    (reduce (fn [graph [package-line package]]
+              (if ((:records graph) package-line)
+                (let [all-specs #(and ((specs-for package-line a) %1)
+                                     ((specs-for package-line b) %1))]
+
+                  (remove-line graph package-line)
+
+              (
+
+    (into (into
+            {}
+            (map (fn [x] (if (competing-packages x)
+                           (reconcile resolve
     ; compute the specs for each competing package
     ; realize and resolve each competing package
     ; then, when adding stuff from a and then b into the result graph,
@@ -81,12 +139,7 @@
     ; else add it from a/b.
     ))

-
-(defn resolve-dependencies [dep]
-  (reduce
-    reconcile
-    [{} {}]
-    (map #(resolve-dependencies (realize %1)) (:children dep))))
+(defn resolve-dependencies [graph package]


Removed debug println from explore-model

Signed-off-by: Daniel Borchmann <25857343a15bf1edafebc2912e82ecf775c585c1@mailbox.tu-dresden.de>

--- src/conexp/contrib/dl/languages/EL_gfp_exploration.clj
+++ src/conexp/contrib/dl/languages/EL_gfp_exploration.clj
@@ -89,8 +89,7 @@
 		 susu))

 	     ;; else search for next implication
-	     (let [_ (println (count (seq-on M_k))),
-                   all-P_k    (make-dl-expression language (cons 'and P_k)),
+	     (let [all-P_k    (make-dl-expression language (cons 'and P_k)),
 		   next-model (loop [model model]
 				(let [susu (abbreviate-subsumption
                                             (make-subsumption all-P_k


Add sensible annotation dist by default, closes #1

--- src/clj/com/hypirion/clj_xchart.clj
+++ src/clj/com/hypirion/clj_xchart.clj
@@ -585,6 +585,15 @@
       (-> styling :x-axis :title) (.setXAxisTitle (-> styling :x-axis :title))
       (-> styling :y-axis :title) (.setYAxisTitle (-> styling :y-axis :title))))))

+(defn- attach-default-annotation-distance
+  "Attaches a default annotation distance if the donut thickness"
+  [styling]
+  (if-not (and (identical? :donut (:render-style styling))
+               (not (:annotation-distance styling)))
+    styling
+    (assoc styling :annotation-distance
+           (- 1.0 (/ (:donut-thickness styling 0.33) 2)))))
+
 (defn pie-chart
   "Returns a pie chart. The series map is in this case just a mapping
   from string to number. For styling information, see the
@@ -602,7 +611,12 @@
      :as styling}]
    {:pre [series]}
    (let [chart (PieChart. width height)
-         styling (attach-default-font styling)]
+         styling (-> styling
+                     attach-default-font
+                     attach-default-annotation-distance)
+         ;; Need to rebind this one. We could probably omit it from the keys
+         ;; entry at the top, if it's not used for documentation purposes.
+         annotation-distance (:annotation-distance styling)]
      (doseq [[s-name num] series]
        (.addSeries chart s-name num))
      (doto-cond


Wrong period to keep - this is actually the first estimation period

--- src/clj/forma/hadoop/jobs/forma.clj
+++ src/clj/forma/hadoop/jobs/forma.clj
@@ -165,7 +165,7 @@
         (log/logistic-prob-wrap ?beta ?val ?neighbor-val :> ?prob)
         (log/mk-timeseries ?pd ?prob :> ?prob-series)
         (:distinct false)
-        (= ?pd 693)))
+        (= ?pd 827)))

 (defn prep-for-betas
   [dynamic-src static-src]


Revert "Revert "fixes off-by-one date discrepancy in edit schedule form""

--- src/cljs/early_vote_site/utils.cljs
+++ src/cljs/early_vote_site/utils.cljs
@@ -11,20 +11,20 @@
   "Translates from a long date string format (ie 2017-10-10T13:23:34.00Z)
    to a short format (2017-10-10)."
   [date-str]
-  (let [parsed (format/parse full-format date-str)]
-    (format/unparse short-format parsed)))
+  (let [parsed (format/parse-local full-format date-str)]
+    (format/unparse-local short-format parsed)))

 (defn format-date
   "Translates from a js date object
    to a short format (2017-10-10)."
   [date]
   (let [coerced (coerce/from-date date)]
-    (format/unparse short-format coerced)))
+    (format/unparse-local short-format coerced)))

 (defn parse-date
-  "Translates a full state string into a js/Date"
+  "Translates a full date string into a js/Date"
   [date-str]
-  (let [parsed (format/parse full-format date-str)]
+  (let [parsed (format/parse-local full-format date-str)]
     (coerce/to-date parsed)))

 (defn military-to-standard
@@ -49,12 +49,12 @@
   [schedule]
   (str
     (->> (:start-date schedule)
-      (format/parse full-format)
-      (format/unparse (format/formatter "MM-dd")))
+      (format/parse-local full-format)
+      (format/unparse-local (format/formatter "MM-dd")))
     " - "
     (->> (:end-date schedule)
-      (format/parse full-format)
-      (format/unparse (format/formatter "MM-dd")))
+      (format/parse-local full-format)
+      (format/unparse-local (format/formatter "MM-dd")))
     ", "
     (military-to-standard (:start-time schedule))
     " - "


Editable method

Editable method

--- src/cljs/load_test_client/form.cljs
+++ src/cljs/load_test_client/form.cljs
@@ -49,6 +49,14 @@
                            :value (:url form)
                            :onChange #(om/update! form :url (.. % -target -value))})))

+(defn edit-method [form]
+  (dom/div #js {:className "load-test-form--field load-test-form--field__method"}
+           (dom/div #js {:className "label"} "Method")
+           (apply dom/select #js {:className "input"
+                                  :value (:method form)
+                                  :onChange #(om/update! form :method (.. % -target -value))}
+                  (map #(dom/option #js {:value %} %) ["GET" "POST" "PUT"]))))
+
 (defn component [{:keys [form api]} owner]
   (reify
     om/IRender
@@ -59,6 +67,7 @@
                                  (om/build schema-select/component form)
                                  (dom/div #js {:className "clearfix"})
                                  (edit-url form)
+                                 (edit-method form)
                                  (dom/div #js {:className "clearfix"})
                                  (om/build headers/component (:headers form))
                                  (dom/div #js {:className "clearfix"})


Improve deprecation viz

Improve deprecation viz

--- src/cljs/onyx_cheat_sheet/core.cljs
+++ src/cljs/onyx_cheat_sheet/core.cljs
@@ -189,8 +189,12 @@
   (when-let [deprecated-version (get-in model [section :model k :deprecated-version])]
     (r/alert {:bs-style "danger"}
              [(dom/h5 {} "Deprecated")
-              (dom/p {} deprecated-version)
-              (dom/p {} (get-in model [section :model k :deprecation-doc]))])))
+              (dom/p {}
+                     (dom/b {} "Version")
+                     deprecated-version)
+              (dom/p {}
+                     (dom/b {} "Documentation:")
+                     (get-in model [section :model k :deprecation-doc]))])))

 (defn keyword-sanitize-? [k]
   (if (namespace k)


Add parser for om.next

Add parser for om.next


rendering row/cell component

rendering row/cell component

--- src/dodgeball/core.cljs
+++ src/dodgeball/core.cljs
@@ -5,7 +5,7 @@
 (enable-console-print!)

-(defonce app-state (atom {:balls [1 3 5 7 9]}))
+(defonce app-state (atom {:balls [1 0 1 0 1 0 1 0 1]}))

 (defn bench []
   (dom/table nil
@@ -14,45 +14,36 @@
        (dom/td nil))))))

-(defn board []
+(defn cell-view [n owner]
+  (om/component (dom/td nil n)))
+
+(defn row-view [data owner]
+  (om/component
+    (apply dom/tr nil
+      (om/build-all cell-view data))))
+
+(defn board [data]
  (dom/div #js {:className "container"}
  (bench)
  (dom/table nil
     (vec (for [y (range 0 9)]
-      (dom/tr
-        #js {:className
-          (cond
-            (= y 3) "middle-top"
-            (= y 5) "middle-bottom")}
+      (if (= y 5)
+        (om/build row-view (:balls data))

-        (vec (for [x (range 0 9)]
-          (dom/td nil)))))))
+        (dom/tr
+          #js {:className
+            (cond
+              (or (= y 3) (= y 6)) "middle-top")}
+          (vec (for [x (range 0 9)]
+            (dom/td nil y))))))))
   (bench)))
-
-(defn row-view [data owner]
-  (reify
-    om/IRender
-    (render [this]
-      (apply dom/tr nil
-        (om/build-all square-view (:balls data))))))
-
-(defn square-view [square owner]
-  (reify
-    (om/IRender
-     (render [this]
-             (dom/td nil
-                     (if "ball")))))
-
-(om/root row-view app-state
-         {:target (. js/document (getElementById "container"))})
-

 (om/root
   (fn [data owner]
     (reify om/IRender
       (render [_]
-        (board))))
+        (board data))))
   app-state
   {:target (. js/document (getElementById "app"))})


Доработки

Доработки

--- radiolamp-6P3S/src/r6p3s/ui/progress_mini.cljs
+++ radiolamp-6P3S/src/r6p3s/ui/progress_mini.cljs
@@ -2,12 +2,15 @@
   (:require [om.dom :as dom :include-macros true]))

-(defn render [{:keys [width val color bg-color]
-               :or   {width 100
-                      color "blue"}}]
-  (dom/div #js {:style #js {:width  width
-                            :height 4
-                            :backgroundColor bg-color}}
+(defn render [{:keys [width val color bg-color from-right? float]
+               :or   {width    100
+                      bg-color "#eee"
+                      color    "blue"}}]
+  (dom/div #js {:style #js {:width           width
+                            :height          4
+                            :backgroundColor bg-color
+                            :float           float}}
            (dom/div #js {:style #js {:width           val
                                      :height          4
-                                     :backgroundColor color}})))
+                                     :backgroundColor color
+                                     :float           (when from-right? "right")}})))