upgrade some libs

upgrade some libs

--- project.clj
+++ project.clj
@@ -8,14 +8,14 @@
             :url "http://www.eclipse.org/legal/epl-v10.html"}

   :dependencies [[org.clojure/clojure "1.6.0"]
-                 [org.clojure/clojurescript "0.0-2311"]
-                 [org.clojure/data.json "0.2.5"]
+                 [org.clojure/clojurescript "0.0-2227"]
+                 [org.clojure/data.json "0.2.4"]
                  [org.clojure/core.async "0.1.303.0-886421-alpha"]
-                 [clj-time "0.8.0"]
+                 [clj-time "0.7.0"]
                  [cheshire "5.3.1"]

                  [compojure "1.1.8"]
-                 [ring "1.3.0"]
+                 [ring "1.2.2"]
                  [enlive "1.1.5"]
                  [http-kit "2.1.18"]

@@ -24,15 +24,15 @@
                  [incanter "1.5.5"]
                  [kioo "0.4.0"]
                  [figwheel "0.1.3-SNAPSHOT"]
-                 [com.facebook/react "0.11.1"]
-                 [om "0.6.3"]
-                 [prismatic/dommy "0.1.3"]
+                 [com.facebook/react "0.9.0.2"]
+                 [om "0.6.4"]
+                 [prismatic/dommy "0.1.2"]
                  [net.drib/strokes "0.5.1"]
+
                  [clojure-opennlp "0.3.2"]
-
-                 [clojurewerkz/quartzite "1.3.0"]
+                 [aprint "0.1.0"]
                  [com.cemerick/piggieback "0.1.3"]
-                 [weasel "0.3.0"]
+                 [weasel "0.2.0"]
                  [com.taoensso/timbre "3.2.1"]]

   :main ceres.core
@@ -52,7 +52,6 @@
              :port 3449
              :css-dirs ["resources/public/css"]}

-
   :cljsbuild
   {:builds
    [{:id "dev"


Removing dep that I didn't mean to commit

--- project.clj
+++ project.clj
@@ -4,8 +4,7 @@
                  [clj-time "0.9.0"] ; required due to bug in lein-ring
                  [metosin/schema-tools "0.7.0"]
                  [metosin/compojure-api "0.23.1"]
-                 [ring-middleware-format "0.7.0"]
-                 [lonocloud/synthread "1.4.0"]]
+                 [ring-middleware-format "0.7.0"]]
   :ring {:handler cia.handler/app
          :nrepl {:start? true}}
   :uberjar-name "server.jar"


Version 7.4.2-SNAPSHOT

Version 7.4.2-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(def ps-version "7.4.1")
+(def ps-version "7.4.2-SNAPSHOT")

 (defn deploy-info
   [url]


Remove unwanted dependency on tools.namespace. (Have that in user profile.)

--- project.clj
+++ project.clj
@@ -4,5 +4,4 @@
                  [org.clojure/core.async "0.1.346.0-17112a-alpha"]]
   :profiles
   {:dev {:dependencies [[midje "1.6.3"]]
-         :plugins [[lein-midje "3.1.3"]
-                   [org.clojure/tools.namespace "0.2.5"]]}})
+         :plugins [[lein-midje "3.1.3"]]}})


Update CoreMidi4J.

Update CoreMidi4J.

--- project.clj
+++ project.clj
@@ -21,7 +21,7 @@
                  [overtone/at-at "1.2.0"]
                  [overtone/midi-clj "0.5.0"]
                  [overtone/osc-clj "0.9.0"]
-                 [uk.co.xfactory-librarians/coremidi4j "1.1"]
+                 [uk.co.xfactory-librarians/coremidi4j "1.2"]
                  [amalloy/ring-buffer "1.3.0" :exclusions [org.clojure/tools.reader
                                                            com.google.protobuf/protobuf-java]]
                  [com.climate/claypoole "1.1.4"]


Add cljsbuild hook to fix Heroku deployment

--- project.clj
+++ project.clj
@@ -13,6 +13,7 @@
   :plugins [[lein-cljsbuild                  "0.3.3"]
             [lein-ring                       "0.8.7"]
             [com.cemerick/clojurescript.test "0.1.0"] ]
+  :hooks [leiningen.cljsbuild]

   :dependencies [[org.clojure/clojure          "1.5.1"                 ]
                  [org.clojure/clojurescript    "0.0-1878"              ]


Update libraries

Update libraries

--- project.clj
+++ project.clj
@@ -4,9 +4,9 @@
   :license {:name "Public Domain"
             :url "http://unlicense.org/UNLICENSE"}
   :dependencies [[com.fifesoft/autocomplete "2.5.0"]
-                 [com.fifesoft/rsyntaxtextarea "2.5.0"]
+                 [com.fifesoft/rsyntaxtextarea "2.5.3"]
                  [com.github.insubstantial/substance "7.2.1"]
-                 [compliment "0.1.1"]
+                 [compliment "0.1.2"]
                  [leiningen "2.4.2"
                   :exclusions [leiningen.search]]
                  [lein-ancient "0.5.4"
@@ -15,12 +15,12 @@
                  [lein-clr "0.2.1"]
                  [lein-droid "0.2.3"]
                  [lein-fruit "0.2.0"]
-                 [lein-typed "0.3.4"]
+                 [lein-typed "0.3.5"]
                  [net.java.balloontip/balloontip "1.2.4.1"]
                  [org.clojure/clojure "1.6.0"]
                  [org.clojure/core.incubator "0.1.3"]
                  [org.clojure/tools.cli "0.3.1"]
-                 [org.clojure/tools.namespace "0.2.4"]
+                 [org.clojure/tools.namespace "0.2.5"]
                  [org.flatland/ordered "1.5.2"]
                  [org.lpetit/paredit.clj "0.19.3"
                   :exclusions [org.clojure/clojure]]


0.9.0-wip3

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject storm/storm-kafka "0.9.0-wip2"
+(defproject storm/storm-kafka "0.9.0-wip3"
   :source-path "src/clj"
   :java-source-path "src/jvm"
   :javac-options {:debug "true" :fork "true"}


Update to leaven 0.1.1

Update to leaven 0.1.1

--- project.clj
+++ project.clj
@@ -4,7 +4,7 @@
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :modules {:inherited
-            {:dependencies [[com.palletops/leaven "0.1.0"
+            {:dependencies [[com.palletops/leaven "0.1.1"
                              :exclusions [com.keminglabs/cljx]]]}}
   :source-paths ["src/clj"]
   :resource-paths ["src/cljs"]


Version bump.

Version bump.

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


[NH] Add pretty-print back in to test cljs build.

--- project.clj
+++ project.clj
@@ -30,7 +30,8 @@
                                        "target/generated/test/cljs"]
                         :compiler {:output-to "target/cljs/testable.js"
                                    :output-dir "target/cljs/"
-                                   :optimizations :whitespace}}]
+                                   :optimizations :whitespace
+                                   :pretty-print true}}]
               :test-commands {"unit-tests" ["phantomjs" :runner
                                             "target/cljs/testable.js"]}}
   :cljx {:builds [{:source-paths ["test/cljx"]


Version 4.1.7

Version 4.1.7

--- project.clj
+++ project.clj
@@ -1,6 +1,6 @@
 (def jetty-version "9.4.42.v20210604")

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


Automatically require in REPL

Automatically require in REPL

--- project.clj
+++ project.clj
@@ -4,4 +4,5 @@
   :java-source-paths ["java"]
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
+  :repl-options {:init (require '[delayed-map.core :refer [delayed-map]])}
   :dependencies [[org.clojure/clojure "1.5.1"]])


Version 0.1.3

Version 0.1.3

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


2.0.0-alpha1

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject foreclojure "1.8.1"
+(defproject foreclojure "2.0.0-alpha1"
   :description "4clojure - a website for learning Clojure"
   :dependencies [[org.clojure/clojure "1.4.0"]
                  [compojure "1.1.0"]
@@ -20,7 +20,7 @@
                  [org.clojure/data.xml "0.0.5"]]
   :plugins [[lein-ring "0.7.1"]]
   :profiles {:dev {:dependencies [[midje "1.3.0" :exclusions [org.clojure/clojure]]]}}
-  :checksum-deps true
+  :checksum-deps true
   :main foreclojure.core
   :ring {:handler foreclojure.core/app
          :init foreclojure.mongo/prepare-mongo})


upgraded kernel

upgraded kernel

--- project.clj
+++ project.clj
@@ -12,7 +12,7 @@
                  [compojure "1.1.3"]
                  [org.clojure/data.json "0.2.5"]
                  [org.clojure/core.async "0.1.346.0-17112a-alpha"]
-                 [de.prob2/de.prob2.kernel "2.0.0-milestone-20-SNAPSHOT"]
+                 [de.prob2/de.prob2.kernel "2.0.0-milestone-24-SNAPSHOT"]
                  [hiccup "1.0.5"]
                  [ring/ring-core "1.2.1"]
                  [ring-server "0.3.1"]]


Delete project.clj

Delete project.clj

--- project.clj
+++ project.clj
@@ -1,16 +0,0 @@
-(defproject frankiesardo/auto-parcel "1.0.0-SNAPSHOT"
-  :description "Parcelable extension for AutoValue"
-  :url "https://github.com/frankiesardo/auto-parcel"
-  :license {:name "Eclipse Public License"
-            :url "http://www.eclipse.org/legal/epl-v10.html"}
-  :dependencies [[org.clojure/clojure "1.7.0"]
-                 [com.google.auto.value/auto-value "1.2-rc1"]
-                 [com.google.auto.service/auto-service "1.0-rc2"]
-                 [javax.annotation/jsr250-api "1.0"]
-                 [stencil "0.3.5"]]
-  :source-paths      ["src"]
-  :java-source-paths ["src"]
-  :javac-options ["-target" "1.6" "-source" "1.6"]
-  :profiles {:uberjar {:aot :all}
-             :dev {:dependencies [[com.google.testing.compile/compile-testing "0.7"]]}
-             :provided {:dependencies [[com.google.android/android "4.1.1.4"]]}})


Open url without index.html

Open url without index.html

--- project.clj
+++ project.clj
@@ -38,7 +38,7 @@
                            ;; in the default browser once Figwheel has
                            ;; started and complied your application.
                            ;; Comment this out once it no longer serves you.
-                           :open-urls ["http://localhost:3449/index.html"]}
+                           :open-urls ["http://localhost:3449"]}

                 :compiler {:main reddio-frontend.core
                            :asset-path "/js/compiled/out"


(PE-3667) Exclude java source files from main jar

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

   :source-paths ["src/clojure"]
   :java-source-paths ["src/java"]
+  :jar-exclusions [#".*\.java$"]

   ;; By declaring a classifier here and a corresponding profile below we'll get an additional jar
   ;; during `lein jar` that has all the source code (including the java source). Downstream projects can then
@@ -29,6 +30,7 @@
                    :resource-paths ["test-resources"]}

              :sources-jar {:java-source-paths ^:replace []
+                           :jar-exclusions ^:replace []
                            :source-paths ^:replace ["src/clojure" "src/java"]}

              :acceptance {:dependencies [[puppetlabs/trapperkeeper "0.3.2"]


Update dependencies.

Update dependencies.

--- project.clj
+++ project.clj
@@ -14,8 +14,8 @@
                org.apache.avro/avro
                org.apache.avro/avro-mapred
                org.apache.avro/avro-ipc]
-  :dependencies [[org.clojure/tools.logging "0.2.6"]
-                 [com.damballa/abracad "0.4.10"]
+  :dependencies [[org.clojure/tools.logging "0.3.0"]
+                 [com.damballa/abracad "0.4.11"]
                  [org.apache.avro/avro "1.7.5"]
                  [pjstadig/scopes "0.3.0"]
                  [transduce/transduce "0.1.1"]]
@@ -38,13 +38,13 @@
           :output-dir "tmp/codox"}
   :aliases {"few" ["with-profile"
                    ~(->> (for [c ["clojure-1-6-0"]
-                               h ["hadoop-1-2-1" "hadoop-2-4-0"]]
+                               h ["hadoop-1-2-1" "hadoop-2-4-1"]]
                            ["default*" c h])
                          (map (partial clojure.string/join ","))
                          (clojure.string/join ":"))]
             "all" ["with-profile"
                    ~(->> (for [c ["clojure-1-5-1" "clojure-1-6-0"]
-                               h ["hadoop-1-2-1" "hadoop-2-2-0" "hadoop-2-4-0"
+                               h ["hadoop-1-2-1" "hadoop-2-2-0" "hadoop-2-4-1"
                                   "hadoop-cdh4" "hadoop-cdh5"]]
                            ["default*" c h])
                          (map (partial clojure.string/join ","))
@@ -94,10 +94,10 @@
                     {:dependencies
                      [[org.apache.hadoop/hadoop-client "2.2.0"]
                       [org.apache.hadoop/hadoop-common "2.2.0"]]}]
-     :hadoop-2-4-0 [:avro-hadoop2
+     :hadoop-2-4-1 [:avro-hadoop2
                     {:dependencies
-                     [[org.apache.hadoop/hadoop-client "2.4.0"]
-                      [org.apache.hadoop/hadoop-common "2.4.0"]]}]
+                     [[org.apache.hadoop/hadoop-client "2.4.1"]
+                      [org.apache.hadoop/hadoop-common "2.4.1"]]}]
      :avro-cdh4 {:repositories
                  , [["platypope" "http://jars.platypope.org/release/"]]
                  :dependencies


Version bump for viewer deployment.

Version bump for viewer deployment.

--- project.clj
+++ project.clj
@@ -2,7 +2,7 @@
 ;;;;
 ;;;; gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details.

-(defproject gorilla-repl "0.3.0-SNAPSHOT"
+(defproject gorilla-repl "0.3.1-SNAPSHOT"
   :description "A rich REPL for Clojure in the notebook style."
   :url "https://github.com/JonyEpsilon/gorilla-repl"
   :license {:name "MIT"}


Updated docs profile.

Updated docs profile.

--- project.clj
+++ project.clj
@@ -27,6 +27,7 @@
     [clojusc/twig "0.3.2"]
     [com.stuartsierra/component "0.3.2"]
     [environ "1.1.0"]
+    [gov.nasa.earthdata/cmr-site-templates "0.1.0-SNAPSHOT"]
     [http-kit "2.3.0"]
     [metosin/reitit-core "0.1.1-SNAPSHOT"]
     [metosin/reitit-ring "0.1.1-SNAPSHOT"]
@@ -86,10 +87,13 @@
         :default (complement :system)}}
     :docs {
       :dependencies [
-        [clojang/codox-theme "0.2.0-SNAPSHOT"]]
+        [clojang/codox-theme "0.2.0-SNAPSHOT"]
+        [markdown-clj "1.0.2"]
+        [selmer "1.11.7"]]
       :plugins [
         [lein-codox "0.10.3"]
         [lein-marginalia "0.9.1"]]
+      :source-paths ["resources/docs/src"]
       :codox {
         :project {
           :name "CMR OPeNDAP"
@@ -99,7 +103,7 @@
           :doc/format :markdown
           :doc "Documentation forthcoming"}
         :themes [:clojang]
-        :doc-paths ["resources/docs"]
+        :doc-paths ["resources/docs/markdown"]
         :output-path "docs/current"}}}
   :aliases {
     ;; Dev & Testing Aliases
@@ -135,8 +139,7 @@
       ["ubercompile"]
       ["uberjar"]]
     ;; Documentation
-    "codox" ["with-profile" "+docs"
-      "codox"]
+    "codox" ["with-profile" "+docs" "codox"]
     "marginalia" ["with-profile" "+docs"
       "marg" "--dir" "docs/current"
              "--file" "marginalia.html"


Update cljs compiler version.

Update cljs compiler version.

--- project.clj
+++ project.clj
@@ -4,7 +4,7 @@
   :license {:name "BSD (2 Clause)"
             :url "http://opensource.org/licenses/BSD-2-Clause"}
   :dependencies [[org.clojure/clojure "1.8.0" :scope "provided"]
-                 [org.clojure/clojurescript "1.9.229" :scope "provided"]
+                 [org.clojure/clojurescript "1.9.293" :scope "provided"]
                  [org.clojure/core.async "0.2.391" :scope "provided"]]
   :deploy-repositories {"releases" :clojars
                         "snapshots" :clojars}


Use stable test.check.

Use stable test.check.

--- project.clj
+++ project.clj
@@ -13,8 +13,7 @@
   :test-selectors {:default (complement :sample)}
   :profiles {:dev {:plugins [[codox "0.6.4"]]
                    :codox {:output-dir "codox"}
-                   :repositories {"sonatype-oss-public" "https://oss.sonatype.org/content/groups/public/"}
-                   :dependencies [[org.clojure/test.check "0.5.7-SNAPSHOT"]]
+                   :dependencies [[org.clojure/test.check "0.5.7"]]
                    :resource-paths ["test-grammars"]}
              :uberjar {:aot :all}}
   :deploy-branches ["stable"]


next iteration

next iteration

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


Bump sjacket to a non-snapshot

Bump sjacket to a non-snapshot

--- project.clj
+++ project.clj
@@ -11,7 +11,7 @@
                    [com.cemerick/drawbridge "0.0.6"]
                    [trptcolin/versioneer "0.1.0"]
                    [clojure-complete "0.2.2"]
-                   [org.clojars.trptcolin/sjacket "0.1.1-SNAPSHOT"
+                   [org.clojars.trptcolin/sjacket "0.1.1"
                     :exclusions [org.clojure/clojure]]]
     :profiles {:dev {:dependencies ~dev-deps}}
     :dev-dependencies ~dev-deps


mysql jdbc connector 5.1.18 into pom.xml

--- project.clj
+++ project.clj
@@ -7,6 +7,7 @@
                  [org.hypergraphdb/hgdb "1.2"]
                  [org.hypergraphdb/hgbdbje "1.2"]
                  [com.sleepycat/je "5.0.73"]
-                 [org.clojure/tools.logging "0.2.6"]]
+                 [org.clojure/tools.logging "0.2.6"]
+                 [mysql/mysql-connector-java "5.1.18"]]
   :repositories [["hgdb" "http://hypergraphdb.org/maven"]]
   :main clj_hypergraph_db.core)


project: slim some more fat

project: slim some more fat

--- project.clj
+++ project.clj
@@ -18,7 +18,6 @@
                  [instaparse                    "1.4.1"]
                  [cheshire                      "5.5.0"]
                  [metrics-clojure               "2.5.1"]
-                 [ring/ring-codec               "1.0.0"]
                  [clj-yaml                      "0.4.0"]
                  [cc.qbits/alia                 "2.10.0"]
                  [com.boundary/high-scale-lib   "1.0.6"]


Version 0.1.0

Version 0.1.0

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject electron/lein-template "0.1.0-SNAPSHOT"
+(defproject electron/lein-template "0.1.0"
   :description "FIXME: write description"
   :url "http://example.com/FIXME"
   :license {:name "Eclipse Public License"


exclude jquery from react-bootstrap

exclude jquery from react-bootstrap

--- project.clj
+++ project.clj
@@ -28,7 +28,7 @@
                  [venantius/accountant "0.1.7"]
                  [com.cemerick/piggieback "0.2.2-SNAPSHOT"]
                  [org.clojure/tools.nrepl "0.2.12"]
-                 [cljsjs/react-bootstrap "0.28.1-1"]
+                 [cljsjs/react-bootstrap "0.28.1-1" :exclusions [org.webjars.bower/jquery]]

                  [org.clojure/core.logic "0.8.10"]
                  [org.clojure/core.match "0.3.0-alpha4"]]


Version 0.2.1-SNAPSHOT

Version 0.2.1-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject com.rentpath/rp-util-clj "0.2.0"
+(defproject com.rentpath/rp-util-clj "0.2.1-SNAPSHOT"
   :description "Common utilities"
   :url "https://github.com/rentpath/rp-util-clj"
   :license {:name "Eclipse Public License"


Release v0.4.4.

Release v0.4.4.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject http.async.client "0.4.4-SNAPSHOT"
+(defproject http.async.client "0.4.4"
   :name             "http.async.client"
   :description      "Asynchronous HTTP Client for Clojure"
   :url              "http://neotyk.github.com/http.async.client/"


release 1.7.7

release 1.7.7

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject babel "1.7.7-SNAPSHOT"
+(defproject babel "1.7.7"
   :description "A library for generation and parsing of expressions from grammars and lexicons."
   :url "http://github.com/ekoontz/babel"
   :license {:name "Proprietary: all rights reserved. No distribution allowed without consent of owners."}


switch project to ladderlife

switch project to ladderlife

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject com.athuey/cambo "0.1.0-SNAPSHOT"
+(defproject com.ladderlife/cambo "0.1.0-SNAPSHOT"
   :description "A Clojure take on Netflix's Falcor"
   :url "https://github.com/eyston/cambo"
   :license {:name "Eclipse Public License"


Final support for lein 2 (correct versions of bultitude , midje, lein midje)

--- project.clj
+++ project.clj
@@ -14,6 +14,7 @@
   :dependencies [[org.clojure/clojure "1.3.0"]
                  [org.clojure/tools.logging "0.2.3"]
                  [org.clojure/data.json "0.1.2"]
+                 [bultitude "0.2.0"]

                  ; aws-java-sdk-1.3.3 does not specify the correct httpclient, so we do it explicitly
                  [org.apache.httpcomponents/httpclient "4.1.1"]
@@ -33,16 +34,15 @@

   :dev-dependencies [[robert/hooke "1.1.2"] ;for leiningen test-selectors
                      [org.clojure/tools.trace "0.7.1"]
-                     [lein-midje "2.0.3"]
-                     [midje "1.5-alpha2"]
                      [com.offbytwo.iclojure/iclojure "1.1.0"]
                      [clojure-source "1.3.0"]
                      [org.clojure/tools.trace "0.7.3"]]

-
-
+  :profiles {:dev {:plugins [[lein-midje "2.0.4"]]
+                   :dependencies [[midje "1.4.0"]]}}
   :repl-init lemur.repl
   :main ^:skip-aot lemur.repl
+  :min-lein-version "2.0.0"

   :run-aliases {:lemur lemur.core}


Cleanup deps

Cleanup deps

--- project.clj
+++ project.clj
@@ -5,7 +5,7 @@
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies
   [
-   [org.clojure/clojure "1.9.0-alpha15"]
+   [org.clojure/clojure "1.9.0-alpha16"]

    ;; webapp - begin
    [reagent "0.6.1"]
@@ -28,7 +28,7 @@
    [clj-time "0.13.0"]]
   :plugins
   [[lein-cljsbuild "1.1.5"]
-   [lein-figwheel "0.5.10" :exclusions [cider/cider-nrepl org.clojure/clojure]]]
+   [lein-figwheel "0.5.10" :exclusions [org.clojure/clojure]]]

   :source-paths ["src/clj" "src/cljs"]
   :resource-paths ["resources"]
@@ -67,9 +67,7 @@
   ;; :main ufo.blogic
   :profiles
   {:uberjar {:aot :all}
-   :dev {:dependencies [[figwheel-sidecar "0.5.10"
-                         :exclusions [org.clojure/tools.analyzer
-                                      org.clojure/tools.analyzer.jvm]]
+   :dev {:dependencies [[figwheel-sidecar "0.5.10"]
                         [com.cemerick/piggieback "0.2.1"]
                         [org.clojure/tools.nrepl "0.2.13"]]
          :repl-options {:nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}


(fix) added javac options

(fix) added javac options

Signed-off-by: Ning Sun <a92165a57b6171072bd20ae225e0a6a0a2860443@protonmail.com>

--- project.clj
+++ project.clj
@@ -8,4 +8,5 @@
   :scm {:url "https://github.com/sunng87/papaline"
         :name "github"}
   :java-source-paths ["java_src"]
+  :javac-options ["-target" "1.8" "-source" "1.8"]
   :deploy-repositories {"releases" :clojars})


Updated JSON dependency

Updated JSON dependency

--- project.clj
+++ project.clj
@@ -5,7 +5,7 @@
   :javac-options ["-source" "1.6" "-target" "1.6"]
   :jvm-opts ["-Djava.library.path=/usr/local/lib:/opt/local/lib"]
   :aot :all
-  :dependencies [[org.elasticsearch/elasticsearch "0.90.5"],[org.json/json "20131018"]]
+  :dependencies [[org.elasticsearch/elasticsearch "0.90.5"] [org.json/json "20131018"]]
   :profiles {:provided
              {:dependencies [[storm "0.8.2"]]}}
 )


fixed the warnings, we can be pedantic now

--- project.clj
+++ project.clj
@@ -85,8 +85,7 @@
                [org.clojure/clojurescript]
                [org.slf4j/log4j-over-slf4j]]

-  ;; TODO: Fix the warnings, then uncomment this
-  ;; :pedantic? :abort
+  :pedantic? :abort

   :main pc.init


remove unnecesary thing from figwheel config

--- project.clj
+++ project.clj
@@ -40,7 +40,6 @@
   :source-paths ["src/server" "test/server"]

   :figwheel {:nrepl-port 7888
-             :build-ids []
              :css-dirs ["public/css"]}

   :cljsbuild {


lein-release plugin: bumped version from 0.1.0 to 0.1.1-SNAPSHOT for next development cycle

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject aeolian "0.1.0"
+(defproject aeolian "0.1.1-SNAPSHOT"
   :description "AEOLIAN - Audio-ising code quality"
   :url "https://github.com/andeemarks/aeolian"
   :license {:name "Eclipse Public License"
@@ -29,6 +29,7 @@
              [me.raynes/fs "1.4.6"]
              [lein-midje "3.2.1"]
              [midje "1.8.3" :exclusions [org.clojure/clojure]]]}}
+  :lein-release {:build-uberjar true :deploy-via :lein-install}
   ; :release-tasks [["uberjar"] ["assemble"]]
   :assemble
     {:filesets {"" [["go.sh"]["go-gh.sh"]["gen-abc-prod.sh" :as "gen-abc.sh"]["README.md"]["LICENSE"]]


(maint) Update version to 6.3.0-SNAPSHOT

Update in preparation for the 6.3.0 release.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(def ps-version "6.2.2-SNAPSHOT")
+(def ps-version "6.3.0-SNAPSHOT")

 (defn deploy-info
   [url]


Clojure 1.6.0-RC4

Clojure 1.6.0-RC4

Bump clojure to 1.6.0-RC4 instead, now that it was released quickly behind
RC3.

Signed-off-by: Ken Barber <470bc578162732ac7f9d387d34c4af4ca6e1b6f7@bob.sh>

--- project.clj
+++ project.clj
@@ -27,7 +27,7 @@
   ;; requires lein 2.2.0+.
   :pedantic? :abort

-  :dependencies [[org.clojure/clojure "1.6.0-RC3"]
+  :dependencies [[org.clojure/clojure "1.6.0-RC4"]
                  [cheshire "5.2.0"]
                  [org.clojure/core.match "0.2.0-rc5"]
                  [org.clojure/math.combinatorics "0.0.4"]


PLD: bump to 1.8 release

PLD: bump to 1.8 release

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject org.clojars.onaio/hatti "0.1.8-SNAPSHOT"
+(defproject org.clojars.onaio/hatti "0.1.8"
   :description "A cljs dataview from your friends at Ona.io"
   :license "Apache 2, see LICENSE"
   :url "https://github.com/onaio/hatti"


Bump obb-rules

Bump obb-rules

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

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

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


Project reorganization to match figwheel new (better) repl configuration

--- project.clj
+++ project.clj
@@ -11,13 +11,13 @@
   :plugins [[lein-cljsbuild "1.1.2"]
             [lein-codox "0.9.0"]]

-  :clean-targets ^{:protect false} ["dev-resources/public/js/compiled"                 ;; dev
-                                    "dev-resources/private/browser/js/compiled"        ;; browser-repl
+  :clean-targets ^{:protect false} ["dev-resources/public/js/compiled" ;; dev
+                                    "dev-resources/private/browser/js/compiled" ;; browser-repl
                                     "dev-resources/private/browser/js/simple/compiled" ;; browser-repl-simple
-                                    "dev-resources/private/node/js/compiled"           ;; node-repl
-                                    "dev-resources/private/test/browser/compiled"      ;; browser-test, browser-simple-test
-                                    "dev-resources/private/test/node/compiled"         ;; node-test, node-simple-test
-                                    "dev-resources/public/js/compiled"                 ;; min
+                                    "dev-resources/private/node/js/compiled" ;; node-repl
+                                    "dev-resources/private/test/browser/compiled" ;; browser-test, browser-simple-test
+                                    "dev-resources/private/test/node/compiled" ;; node-test, node-simple-test
+                                    "dev-resources/public/js/compiled" ;; min
                                     "out" :target-path]
   :hooks [leiningen.cljsbuild]
   :min-lein-version "2.0.0"
@@ -84,7 +84,7 @@
                                      :static-fns true
                                      :parallel-build true}}
                        {:id "node-test"
-                        :source-paths ["src/cljs" "src/node" "test/cljs" "test/node"]
+                        :source-paths ["src/cljs" "src/node" "test/cljs" "test/clj" "test/node"]
                         :compiler {:target :nodejs
                                    :optimizations :none
                                    :main launcher.runner
@@ -113,9 +113,11 @@
                                    :static-fns true
                                    :parallel-build true}}]}

-  :figwheel {:css-dirs ["dev-resources/public/styles"]}
+  :figwheel {:css-dirs ["dev-resources/public/styles"]
+             :open-file-command "open-emacs"
+             :nrepl-port 5088}

-  :prep-tasks ["codox"]
+  :prep-tasks [] ;; or cljsbuild will start compiling everything
   :codox {:language :clojurescript
           :source-paths ["src/cljs"]
           :namespaces [replumb.core]
@@ -149,11 +151,17 @@
                                      :creds :gpg}]]

   :profiles {:dev {:resource-paths ["dev-resources"]
-                   :dependencies [[com.cemerick/piggieback "0.1.5"]
-                                  [org.clojure/tools.nrepl "0.2.11"]
+                   :source-paths ["src/cljs" "src/browser" "repl-demo/browser/cljs" "dev"]
+                   :dependencies [[com.cemerick/piggieback "0.2.1"]
+                                  [org.clojure/tools.nrepl "0.2.12"]
+                                  [figwheel-sidecar "0.5.0-6"]
                                   [cljsjs/jqconsole "2.13.2-0"]
                                   [reagent "0.5.1"]
-                                  [binaryage/devtools "0.5.2"]]
+                                  [binaryage/devtools "0.5.2"]
+                                  [org.clojure/core.async "0.2.374"]]
                    :plugins [[lein-doo "0.1.7-SNAPSHOT"]
                              [lein-figwheel "0.5.0-6" :exclusions [cider/cider-nrepl]]
-                             [lein-shell "0.4.2"]]}})
+                             [lein-shell "0.4.2"]]}
+             :repl {:plugins [[cider/cider-nrepl "0.11.0-SNAPSHOT"]]
+                    :repl-options {:nrepl-middleware [#_cider.nrepl/cider-middleware
+                                                      cemerick.piggieback/wrap-cljs-repl]}}})


upgrade dag_unify to prevent bug where unification can create cycles

--- project.clj
+++ project.clj
@@ -13,7 +13,7 @@
   :dependencies [[clj-time "0.7.0"]
                  [clojail "1.0.6"]
                  [compojure "1.1.6"]
-                 [dag_unify "1.3.1"]
+                 [dag_unify "1.3.3"]
                  [environ "1.0.0"]
                  [hiccup "1.0.5"]
                  [javax.servlet/servlet-api "2.5"]


version 0.4.10

version 0.4.10

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject cake "0.4.10-SNAPSHOT"
+(defproject cake "0.4.10"
   :description "Save your fork, there's cake!"
   :dependencies [[clojure "1.2.0"]
                  [ordered-set "0.1.0"]


0.2.0

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject bocko-canvas/lein-template "0.1.0"
+(defproject bocko-canvas/lein-template "0.2.0"
   :description "Template for Bocko Canvas"
   :url "https://github.com/mfikes/bocko-canvas-template"
   :license {:name "Eclipse Public License"


Bumped version of io.aviso/pretty.

Bumped version of io.aviso/pretty.

--- project.clj
+++ project.clj
@@ -4,7 +4,7 @@
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies [[org.clojure/clojure "1.9.0"]
-                 [io.aviso/pretty "0.1.24"]
+                 [io.aviso/pretty "0.1.34"]
                  [org.clojure/core.match "0.3.0-alpha4"]
                  [org.clojure/test.check "0.10.0-alpha2"]]


fix: remove kadaster repo / mirror

fix: remove kadaster repo / mirror

--- project.clj
+++ project.clj
@@ -26,11 +26,7 @@
   :url "http://github.so.kadaster.nl/PDOK/featured-gml"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
-  :repositories [["releases" "http://ota-portal.so.kadaster.nl/artifactory/mvn-release-local/"]
-                 ["osgeo" {:url "http://download.osgeo.org/webdav/geotools/" :snapshots false}]
-                 ["local" "file:repo"]]
-  :mirrors {"*" {:name "kadaster"
-                   :url "http://ota-portal.so.kadaster.nl/artifactory/mvn-registry"}}
+  :repositories [["local" "file:repo"]]
   :dependencies [[org.clojure/clojure "1.8.0"]
                  [clj-time "0.9.0"]
                  [org.clojure/data.xml "0.0.8"]


Update clojure -> 1.7.0

Update clojure -> 1.7.0

--- project.clj
+++ project.clj
@@ -2,7 +2,7 @@
   :description "CorDeviCLJS - Cordova, Device and CLJS. Hybrid mobile app using Cordova with native device bridge, UI based on OnsenUI and Facebook React, based on Enterlab Rente"
   :url "http://enterlab.com"
   :min-lein-version "2.0.0"
-  :dependencies [[org.clojure/clojure "1.7.0-RC1"]
+  :dependencies [[org.clojure/clojure "1.7.0"]
                  [org.clojure/clojurescript "0.0-3308"]
                  [org.clojure/core.async "0.1.346.0-17112a-alpha"]
                  [com.stuartsierra/component "0.2.3"]


Remove pedantic warnings for production classpath

`lein with-profile uberjar deps` now results in no pedantic warnings.

--- project.clj
+++ project.clj
@@ -15,6 +15,8 @@
                                cheshire
                                com.fasterxml.jackson.core/jackson-core
                                com.fasterxml.jackson.dataformat/jackson-dataformat-smile
+                               ;; newer version brought in by com.cognitect.aws/api
+                               org.clojure/tools.reader
                                org.yaml/snakeyaml]]
                  ;; addresses CVE-2017-18640
                  [org.yaml/snakeyaml "1.30"]
@@ -38,7 +40,8 @@
                                org.mindrot/jbcrypt]]
                  ;; addresses CVE-2015-0886
                  [org.mindrot/jbcrypt "0.4"]
-                 [com.github.scribejava/scribejava-apis "8.3.1"]
+                 [com.github.scribejava/scribejava-apis "8.3.1"
+                  :exclusions [com.fasterxml.jackson.core/jackson-databind]]
                  [buddy/buddy-core "1.10.1"
                   :exclusions [commons-codec
                                cheshire]]
@@ -47,7 +50,9 @@
                  [clj-stacktrace "0.2.8"]
                  [clj-time "0.15.2"]
                  [ring/ring-anti-forgery "1.3.0"
-                  :exclusions [commons-codec]]
+                  :exclusions [commons-codec
+                               ;; newer version brought in by ring/ring-core
+                               crypto-random]]
                  [valip "0.2.0"
                   :exclusions [commons-logging
                                commons-validator/commons-validator]]


setting auto reload

setting auto reload

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

   :plugins  [[lein-tarsier "0.10.0"]  [lein-ring "0.7.3"]]

-  :ring {:handler com.narkisr.celestial.api/app}
+  :ring {:handler com.narkisr.celestial.api/app :auto-reload? true}

   :aot [com.narkisr.proxmox.provider com.narkisr.celestial.puppet-standalone]


Version 0.4.4-SNAPSHOT

Version 0.4.4-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject day8.re-frame/re-frame-10x "0.4.3"
+(defproject day8.re-frame/re-frame-10x "0.4.4-SNAPSHOT"
   :description "Become 10x more productive when developing and debugging re-frame applications."
   :url "https://github.com/Day8/re-frame-10x"
   :license {:name "MIT"}


Improved description on project.clj

Improved description on project.clj

--- project.clj
+++ project.clj
@@ -1,5 +1,5 @@
 (defproject jnanomsg "0.4.0-SNAPSHOT"
-  :description "Nanomsg clojure/java wrapper."
+  :description "Nanomsg library for Java & Clojure"
   :url "https://github.com/niwibe/jnanomsg"
   :license {:name "Apache 2.0"
             :url "http://www.apache.org/licenses/LICENSE-2.0.txt"}


v0.9.0

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject employeerepublic/er-cassandra "0.8.1"
+(defproject employeerepublic/er-cassandra "0.9.0"
   :description "a simple cassandra conector"
   :url "https://github.com/employeerepublic/er-cassandra"
   :license {:name "Eclipse Public License"


Version 0.2.9-SNAPSHOT

Version 0.2.9-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject wb-es "0.2.8"
+(defproject wb-es "0.2.9-SNAPSHOT"
   :description "FIXME: write description"
   :url "http://example.com/FIXME"
   :min-lein-version "2.7.0"


swag ++

swag ++

--- project.clj
+++ project.clj
@@ -14,7 +14,7 @@
                  [org.clojure/core.incubator "0.1.2"]
                  [slingshot "0.10.3" ]
                  [clj-http "0.6.5"]
-                 [swag "0.1.2"]
+                 [swag "0.1.3"]
                  [clj-yaml "0.4.0"]
                  [org.clojure/data.json "0.2.1" ]
                  [com.narkisr/carmine "1.6.0"]


Version 2.4.2-SNAPSHOT

Version 2.4.2-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject dda/dda-managed-vm "2.4.1"
+(defproject dda/dda-managed-vm "2.4.2-SNAPSHOT"
   :description "The managed vm desktop crate"
   :url "https://www.domaindrivenarchitecture.org"
   :license {:name "Apache License, Version 2.0"


Update http-kit

Update http-kit

Hopefully this improves reliability…

--- project.clj
+++ project.clj
@@ -14,7 +14,7 @@
                  [org.clojure/tools.reader "0.9.2"]
                  [clj-time "0.9.0"]
                  [joda-time "2.8.1"]
-                 [http-kit "2.1.18"]
+                 [http-kit "2.1.19"]
                  [org.apache.httpcomponents/httpclient "4.5"]
                  [org.apache.cassandra/cassandra-all "2.0.16"
                   :exclusions [com.thinkaurelius.thrift/thrift-server org.yaml/snakeyaml io.netty/netty net.jpountz.lz4/lz4 org.apache.commons/commons-lang3 org.slf4j/slf4j-api log4j]]


Upgraded om.

Upgraded om.

--- project.clj
+++ project.clj
@@ -10,7 +10,7 @@
                  [ring/ring-core "1.2.2"]
                  [org.clojure/clojure "1.5.1"]
                  [org.clojure/clojurescript "0.0-2202"]
-                 [om "0.5.3"]
+                 [om "0.6.4"]
                  [org.clojure/core.async "0.1.278.0-76b25b-alpha"]
                  [org.clojure/core.match "0.2.1"]]
   :plugins [[lein-cljsbuild "1.0.3"] [lein-haml-sass "0.2.7-SNAPSHOT"] [com.cemerick/clojurescript.test "0.2.3"]]


Modify project desc

Modify project desc

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
 (defproject control "0.1-SNAPSHOT"
-  :description "Scripted system admin and deployment for many remote machines with clojure"
+  :description "A clojure DSL for system admin and deployment with many remote machines"
   :dependencies [[org.clojure/clojure "1.2.0"]
 				 [org.clojure/clojure-contrib "1.2.0"]])


Version 0.2.2

Version 0.2.2

--- project.clj
+++ project.clj
@@ -1,7 +1,7 @@
 (def tk-version "1.1.1")
 (def ks-version "1.1.0")

-(defproject puppetlabs/trapperkeeper-status "0.2.2-SNAPSHOT"
+(defproject puppetlabs/trapperkeeper-status "0.2.2"
   :description "A trapperkeeper service for getting the status of other trapperkeeper services."
   :url "https://github.com/puppetlabs/trapperkeeper-status"
   :license {:name "Apache License, Version 2.0"


Ensure we can log.

Ensure we can log.

--- project.clj
+++ project.clj
@@ -21,6 +21,8 @@
   :profiles {:provided {:dependencies
                         [[org.codehaus.jsr166-mirror/jsr166y "1.7.0"]
                          [org.apache.hadoop/hadoop-core "1.2.1"]
+                         [org.slf4j/slf4j-api "1.6.1"]
+                         [org.slf4j/slf4j-log4j12 "1.6.1"]
                          [log4j "1.2.17"]]}
              :test {:resource-paths ["test-resources"]}
              :hadoop-0-20-2 {:dependencies


update to latest cljs-time [com.andrewmcveigh/cljs-time "0.2.3"]

--- project.clj
+++ project.clj
@@ -9,7 +9,7 @@
                  [org.clojure/core.async "0.1.338.0-5c5012-alpha"]
                  [alandipert/storage-atom "1.2.3"]
                  [reagent "0.4.3"]
-                 [com.andrewmcveigh/cljs-time "0.1.6"]]
+                 [com.andrewmcveigh/cljs-time "0.2.3"]]

   :profiles     {:debug {:debug true}
                  :dev {:dependencies [[clj-stacktrace "0.2.8"]


antlr 3.2 -> 3.5.2

antlr 3.2 -> 3.5.2

--- project.clj
+++ project.clj
@@ -32,7 +32,7 @@
     [interval-metrics "1.0.0"]
     [io.netty/netty-all "4.0.24.Final"]
     [log4j/apache-log4j-extras "1.2.17"]
-    [org.antlr/antlr "3.2"]
+    [org.antlr/antlr "3.5.2"]
     [org.slf4j/slf4j-log4j12 "1.7.7"]
     [riemann-clojure-client "0.3.1"]
     [slingshot "0.10.3"]


upping version for non-flexbox change

upping version for non-flexbox change

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject thinktopic/greenhouse "0.1.0"
+(defproject thinktopic/greenhouse "0.1.1"
   :description "A ratio grid library for garden css in Clojure."
   :url "http://github.com/thinktopic/garden"
   :license {:name "Eclipse Public License"


Update dependencies.

Update dependencies.

--- project.clj
+++ project.clj
@@ -12,7 +12,7 @@
     [org.clojure/core.match "0.2.2"] ; Erlang-esque pattern matching https://github.com/clojure/core.match
     [org.clojure/clojurescript "0.0-2371"] ; ClojureScript compiler https://github.com/clojure/clojurescript
     [org.clojure/tools.nrepl "0.2.6"] ; REPL server and client https://github.com/clojure/tools.nrepl
-    [defun "0.1.0"] ; Pattern matching for Clojure functions https://github.com/killme2008/defun
+    [defun "0.2.0-RC"] ; Pattern matching for Clojure functions https://github.com/killme2008/defun
     [cheshire "5.3.1"] ; JSON de/encoding https://github.com/dakrone/cheshire
     [org.flatland/ordered "1.5.2"] ; Ordered hash map https://github.com/flatland/ordered
     [ring/ring-jetty-adapter "1.3.1"] ; Web Server https://github.com/ring-clojure/ring


Using CTIM v0.4.9b

Using CTIM v0.4.9b

--- project.clj
+++ project.clj
@@ -42,7 +42,7 @@
                  ;; Schemas
                  [prismatic/schema ~schema-version]
                  [metosin/schema-tools ~schema-tools-version]
-                 [threatgrid/ctim "0.4.9b-SNAPSHOT"]
+                 [threatgrid/ctim "0.4.9b"]

                  ;; Web server
                  ;; ring-swagger 0.22.10 provided by compojure-api


Increment version number

Increment version number

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject nightmod "0.1.4-SNAPSHOT"
+(defproject nightmod "0.1.4"
   :description "A tool for making live-moddable games in Clojure"
   :url "https://github.com/oakes/Nightmod"
   :license {:name "Public Domain"


Update dependencies

Update dependencies

--- project.clj
+++ project.clj
@@ -7,13 +7,13 @@
                  [compojure "1.6.1"]
                  [ring "1.8.0"]
                  [ring/ring-defaults "0.3.2"]
-                 [org.postgresql/postgresql "42.2.10"]
+                 [org.postgresql/postgresql "42.2.12"]
                  [org.clojure/java.jdbc "0.7.11"]
-                 [honeysql "0.9.9"]
+                 [honeysql "0.9.10"]
                  [clj-time "0.15.2"]
                  [cheshire "5.10.0"]
-                 [selmer "1.12.18"]
-                 [clj-http "3.10.0"]
+                 [selmer "1.12.23"]
+                 [clj-http "3.10.1"]
                  [org.clojure/tools.logging "1.0.0"]
                  [org.slf4j/slf4j-log4j12 "1.7.30"]
                  [com.yubico/yubico-validation-client2 "3.1.0"]


Story ID: RPC-206 generated locales namespace should :require goog.module.ModuleLoader

--- src/leiningen/i18n.clj
+++ src/leiningen/i18n.clj
@@ -112,6 +112,7 @@
         ns-decl (pp/write (list 'ns locales-ns
                                 (list :require
                                       'goog.module
+                                      'goog.module.ModuleLoader
                                       '[goog.module.ModuleManager :as module-manager]
                                       '[untangled.i18n.core :as i18n])
                                 (list :import 'goog.module.ModuleManager)) :stream nil)


result gif display

result gif display

--- src/cellf/core.cljs
+++ src/cellf/core.cljs
@@ -265,6 +265,12 @@
             "You win!"
             (dom/button #js {:onClick #(set-grid-size! app grid-size)} "new game"))

+        result-gif
+          (dom/p nil
+            (dom/img #js {:src result-gif})
+            "You can save this gif and share it with the world."
+            (dom/button #js {:onClick #(om/update! app :result-gif nil)} "done"))
+
         show-about?
           (dom/div nil
             (dom/p nil
@@ -279,7 +285,7 @@
               ". For more experiments like this, visit "
               (dom/a #js {:href "http://oxism.com"} "oxism.com")
               \.
-              (dom/button #js {:onClick #(om/update! app [:show-about?] false)} "got it")))))))
+              (dom/button #js {:onClick #(om/update! app :show-about? false)} "got it")))))))

 (om/root
@@ -294,7 +300,7 @@

         (defonce resize-loop
           (let [resize-chan (chan)]
-            (.addEventListener js/window "resize" #(put! resize-chan 0))
+            (.addEventListener js/window "resize" #(put! resize-chan true))
             (go-loop [open true]
               (when open (<! resize-chan))
               (let [throttle (timeout resize-ms)]


more cleanup and simplification

more cleanup and simplification


+TODO

+TODO


Adds the get-module fn

Adds the get-module fn

--- src/circle/ruby.clj
+++ src/circle/ruby.clj
@@ -164,6 +164,9 @@
   ([parent name]
      (.getClass parent name)))

+(defn get-module [name]
+  (.getModule (ruby) name))
+
 (defn send
   "Call a method on a ruby object"
   [obj method & args]


making wet functions in preparation for nice macro

--- src/mediakeys/core.clj
+++ src/mediakeys/core.clj
@@ -1,5 +1,6 @@
 (ns mediakeys.core
     (:use [mediakeys.hotkeys :only [keypress-events!]])
+           mediakeys.rx
     (:require
         [clojure.data.json :as json]
         [rx.lang.clojure.interop :as rx])
@@ -24,12 +25,6 @@
         (rx/fn* json/read-json)))
 ;THIS SHOULD ACTUALLY get transformed a bunch
 ;before getting fed into keypress-events
-
-(defn from-seq [sequence]
-    (Observable/create
-        (rx/action [^rx.Subscriber s]
-            (doseq [item sequence]
-                (.onNext s item)))))

 (defn sub-to-keypresses []
     (let [changes (from-seq dose-keys)


Remove import on Peer library

Remove import on Peer library

--- env/dev/clj/gtfve/datomic.clj
+++ env/dev/clj/gtfve/datomic.clj
@@ -1,5 +1,4 @@
 (ns gtfve.datomic
-  (:import datomic.Peer)
   (:require [clojure.string :as string :refer [split join trim]]
             [clojure.pprint :as pp :refer [pprint]]
             [clj-time.format :as tf]


Reduce duplication in timeline close

Reduce duplication in timeline close

--- src/main/clojure/pdok/featured/timeline.clj
+++ src/main/clojure/pdok/featured/timeline.clj
@@ -515,21 +515,17 @@
         (when (util/uuid> (:version feature) (:_version current))
           (let [new-current (merge current path feature)]
             (if (= (:action feature) :close)
-              (if (= collection root-col)
-                (let [closed-current (sync-valid-to new-current feature)]
-                  (cache-batched-update (:_version current) (:_valid_from current)
-                                        (:_valid_to current) closed-current)
-                  (batched-append-db-changelog [(:_collection new-current)
-                                                (:_id new-current) (:_version current)
-                                                (:_version new-current) (:_valid_from new-current) :close])
-                  (batched-append-changelog (changelog-close-entry (:_version current) closed-current)))
-                (do
-                  (cache-batched-update (:_version current) (:_valid_from current)
-                                        (:_valid_to current) new-current)
-                  (batched-append-db-changelog [(:_collection new-current)
-                                                (:_id new-current) (:_version current)
-                                                (:_version new-current) (:_valid_from new-current) :change])
-                  (batched-append-changelog (changelog-change-entry (:_version current) new-current))))
+              ;; Process close of child as change of parent.
+              (let [collection-is-root (= collection root-col)
+                    closed-or-new-current (if collection-is-root (sync-valid-to new-current feature) new-current)
+                    action (if collection-is-root :close :change)
+                    changelog-entry-fn (if collection-is-root changelog-close-entry changelog-change-entry)]
+                (cache-batched-update (:_version current) (:_valid_from current)
+                                      (:_valid_to current) closed-or-new-current)
+                (batched-append-db-changelog [(:_collection new-current)
+                                              (:_id new-current) (:_version current)
+                                              (:_version new-current) (:_valid_from new-current) action])
+                (batched-append-changelog (changelog-entry-fn (:_version current) closed-or-new-current)))
               (if (t/before? (:_valid_from current) (:validity feature))
                 (let [closed-current (sync-valid-to current feature)
                       ;; reset valid-to for new-current.


[#1203] Fixes handling of Host, Origin http headers

See: https://github.com/akvo/resumed/issues/8

--- backend/project.clj
+++ backend/project.clj
@@ -24,7 +24,7 @@
                  [honeysql "0.9.3"]
                  [meta-merge "1.0.0"]
                  [org.akvo/commons "0.4.5" :exclusions [org.postgresql/postgresql org.clojure/java.jdbc]]
-                 [org.akvo/resumed "1.17.be5e74d2518253bb87ce087c15f5e04bd4b8b824"]
+                 [org.akvo/resumed "1.43.1e66390dedd92322a9bf6aecdcdc3c2d0c7a2083"]
                  [org.apache.tika/tika-core "1.18"]
                  [org.apache.tika/tika-parsers "1.18" :exclusions [org.slf4j/slf4j-api com.fasterxml.jackson.core/jackson-core org.apache.httpcomponents/httpcore org.apache.httpcomponents/httpclient org.apache.httpcomponents/httpmime]]
                  ;; explicit versions of commons deps used by tika-parsers and clj-http


Added filtering by country, in the forma bucketer.

--- src/clj/forma/hadoop/jobs/scatter.clj
+++ src/clj/forma/hadoop/jobs/scatter.clj
@@ -98,10 +98,13 @@

 (defjob BucketForma
   [forma-path bucketed-path]
-  (let [src (hfs-seqfile forma-path)]
+  (let [forma-fields ["?s-res" "?country" "?datestring"
+                      "?mod-h" "?mod-v" "?sample" "?line" "?text"]
+        src (hfs-seqfile forma-path)]
     (?<- (forma-textline bucketed-path "%s/%s/%s/")
-         [?s-res ?country ?datestring ?mod-h ?mod-v ?sample ?line ?text]
-         (src ?s-res ?country ?datestring ?mod-h ?mod-v ?sample ?line ?text))))
+         forma-fields
+         (src :>> forma-fields)
+         ([[103] [158]] ?country :> true))))

 ;; ## Rain Processing, for Dan
 ;;


Return error if library doesn't exist in action creation/update.

--- src/clj/hatnik/web/server/actions.clj
+++ src/clj/hatnik/web/server/actions.clj
@@ -16,28 +16,34 @@
     action))

 (defn create-action [user data]
-  (let [version (ver/latest-release (:library data))
-        action (-> data
-                   (assoc :last-processed-version version)
-                   (restrict-email-to-be-current user))
-        id (stg/create-action! @stg/storage (:id user) action)]
-   (resp/response
-    (if id
-      {:result :ok
-       :id id
-       :last-processed-version version}
-      {:result :error
-       :message "Couldn't create action."}))))
+  (if-let [version (ver/latest-release (:library data))]
+    (let [action (-> data
+                     (assoc :last-processed-version version)
+                     (restrict-email-to-be-current user))
+          id (stg/create-action! @stg/storage (:id user) action)]
+      (resp/response
+       (if id
+         {:result :ok
+          :id id
+          :last-processed-version version}
+         {:result :error
+          :message "Couldn't create action."})))
+    (resp/response
+     {:result :error
+      :message (str "Uknown library: " (:library data))})))

 (defn update-action [user id data]
-  (let [version (ver/latest-release (:library data))
-        action (-> data
-                   (assoc :last-processed-version version)
-                   (restrict-email-to-be-current user))]
-    (stg/update-action! @stg/storage (:id user) id action)
+  (if-let [version (ver/latest-release (:library data))]
+    (let [action (-> data
+                     (assoc :last-processed-version version)
+                     (restrict-email-to-be-current user))]
+      (stg/update-action! @stg/storage (:id user) id action)
+      (resp/response
+       {:result :ok
+        :last-processed-version version}))
     (resp/response
-     {:result :ok
-      :last-processed-version version})))
+     {:result :error
+      :message (str "Uknown library: " (:library data)) })))

 (defn delete-action [user id]
   (stg/delete-action! @stg/storage (:id user) id)


Start minimised

Start minimised

--- src/cljs/load_test_om/load_tests.cljs
+++ src/cljs/load_test_om/load_tests.cljs
@@ -112,7 +112,8 @@
     (will-mount [_]
       (let [fb-ref (js/Firebase. (str firebase-url "/" (:id load-test) "/dataPoints"))]
         (om/set-state! owner :firebase-ref fb-ref)
-        (.on fb-ref "child_added" (partial handle-new-data-point load-test))))
+        (.on fb-ref "child_added" (partial handle-new-data-point load-test))
+        (om/set-state! owner :minimised? true)))

     om/IWillUnmount
     (will-unmount [_]


with-testing-data now runs with doseq

with-testing-data now runs with doseq

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

--- src/conexp/util.clj
+++ src/conexp/util.clj
@@ -47,9 +47,9 @@

 (defmacro with-testing-data
   "Expects for all bindings the body to be evaluated to true. bindings
-  must be those of forall."
+  must be those of doseq."
   [bindings & body]
-  `(forall ~bindings
+  `(doseq ~bindings
      ~@(map (fn [expr]
               `(let [result# (try (do ~expr) (catch Throwable _# false))]
                  (if-not result#


gitlab db client #341

gitlab db client
#341

--- src/clj/swarmpit/couchdb/client.clj
+++ src/clj/swarmpit/couchdb/client.clj
@@ -244,6 +244,36 @@
   [acr]
   (delete-doc acr))

+;; Registry Gitlab
+
+(defn registries-gitlab
+  [owner]
+  (if (nil? owner)
+    (find-docs "gitlab")
+    (find-docs {"$or" [{:owner {"$eq" owner}}
+                       {:public {"$eq" true}}]} "gitlab")))
+
+(defn registry-gitlab
+  ([id]
+   (get-doc id))
+  ([username owner]
+   (find-doc {:username username
+              :owner    owner} "gitlab")))
+
+(defn create-gitlab-registry
+  [registry]
+  (-> (assoc registry :type "gitlab")
+      (create-doc)))
+
+(defn update-gitlab-registry
+  [registry delta]
+  (let [allowed-delta (dissoc delta :_id :_rev :name)]
+    (update-doc registry allowed-delta)))
+
+(defn delete-gitlab-registry
+  [registry]
+  (delete-doc registry))
+
 ;; User

 (defn users


First protocol sketch

First protocol sketch

--- src/clj_bots/pin_ctrl/protocols.clj
+++ src/clj_bots/pin_ctrl/protocols.clj
@@ -1,3 +1,33 @@
-(ns clj-bots.pin-ctrl.protocols)
+(ns clj-bots.pinctrl.protocols)
+
+(defprotocol PBoard
+  "Basic board protocol, shared by any board, whether on board or over wire."
+  (map-pin [this pinspec]
+    "Some devices, such as the Beaglebone black, have non-trivial mappings between convenient
+    `[header, pin-number]` pairs to the underlying fs-gpio pins.")
+  (init-board! [this config])
+  (get-config [this])
+  (set-config [this]))
+
+(defprotocol POverwireBoard
+  "Overwire boards are boards that run over the wire, like Arduino boards over Firmata. This
+  protocol is for functions specific to these boards."
+  (reset-board! [this] "Overwire boards, such as arduino boards over firmata, can be reset!")
+  (send-message! [this message] "Send an arbitrary message to board.")
+  (get-config! [this] "Load the configuratino settings of the board over the wire directly from the device and cache."))
+
+(defprotocol PPinConfigure
+  (set-mode! [this mode] "Set the mode of the pin, as long as it's supported by the pin's board."))
+
+(defprotocol PReadablePin
+  (read-value [this] "Read the binary or analog value of a pin."))
+
+(defprotocol PWriteablePin
+  (write-value! [this val] "Set the value binary or analog value of a pin."))
+
+(defprotocol PEdgeDetectablePin
+  (set-edge! [this edge] "Set the edge of the pin (:rising, :falling, :both).")
+  (create-edge-channel [this] "Return a channel to be fed edge detection messages.")
+  (release-edge-channel! [this] "Release the edge channel."))


Unify logging with possibility to turn it on/off

--- src/cljs/catsocket_client/core.cljs
+++ src/cljs/catsocket_client/core.cljs
@@ -8,8 +8,13 @@

 (defonce app-state (atom {:text "CatSocket client"}))

+(def logger (atom true))
+(defn stop-logging [] (reset! logger false))
+(defn start-logging [] (reset! logger true))
+
 (defn log [& args]
-  (.apply (.-log js/console) js/console (clj->js args)))
+  (if @logger
+    (.apply (.-log js/console) js/console (clj->js args))))

 (defn stringify [msg] (.stringify js/JSON (clj->js msg)))

@@ -33,7 +38,6 @@
         (let [id (guid)]
           (.setItem js/localStorage user id)
           id)))))
-

 (declare send on-message)


evidence block

evidence block

--- src/cljs/salava/badge/ui/modal.cljs
+++ src/cljs/salava/badge/ui/modal.cljs
@@ -7,7 +7,7 @@
             [salava.badge.ui.assertion :as a]
             [salava.badge.ui.settings :as se]
             [salava.core.ui.share :as s]
-            [salava.core.ui.helper :refer [path-for private? plugin-fun]]
+            [salava.core.ui.helper :refer [path-for private? plugin-fun hyperlink]]
             [salava.core.time :refer [date-from-unix-time]]
             [salava.social.ui.follow :refer [follow-badge]]
             [salava.core.ui.error :as err]
@@ -19,7 +19,8 @@
             [salava.admin.ui.reporttool :refer [reporttool1]]
             [salava.badge.ui.verify :refer [check-badge]]
             [salava.core.ui.tag :as tag]
-            [clojure.string :refer [blank?]]))
+            [clojure.string :refer [blank?]]
+            [salava.badge.ui.evidence :refer [evidence-icon]]))

 (defn init-badge-connection [state badge-id]
@@ -40,7 +41,7 @@
                                      :content-language (init-content-language (:content data))
                                      :tab-no tab-no
                                      :permission "success"
-                                     :evidence {:url nil :show_url false}
+                                     :evidence {:url nil}
                                      ))
                    (if (:user-logged-in @state)  (init-badge-connection state (:badge_id data)))))}
      (fn [] (swap! state assoc :permission "error"))))
@@ -223,45 +224,23 @@
         [:a {:href criteria_url :target "_blank"} (t :badge/Opencriteriapage) "..."]
         [:div {:dangerouslySetInnerHTML {:__html criteria_content}}]]]

-      #_(if (and (pos? show_evidence) evidence_url)
-          [:div.row
-           [:div.col-md-12
-            [:h2.uppercase-header (t :badge/Evidence)]
-            [:div [:a {:target "_blank" :href evidence_url} (t :badge/Openevidencepage) "..."]]]])
-
-      (if (and (pos? show_evidence) (not (empty? evidences)))
+
+      (when (and (pos? show_evidence) (not (empty? evidences)))
         [:div.row {:id "badge-settings"}
          [:div.col-md-12
           [:h2.uppercase-header (if (= (count evidences) 1)  (t :badge/Evidence) (str (t :badge/Evidence) " (" (count evidences) ")") ) ]
           (reduce (fn [r evidence]
-                    (let [{:keys [genre description narrative name audience id url mtime ctime]} evidence]
+                    (let [{:keys [description name evidence_type id url mtime ctime]} evidence]
                       (conj r
-                            [:div.panel.panel-default
-                             [:div.panel-heading {:id (str "heading" id)
-                                                  :role "tab"}
-                              [:div.panel-title
-                               [:div.url [:div {:style {:float "left"}} [:i.fa.fa-link]] [:a {:target "_blank" :href url} (t :badge/Openevidencepage) "..."]]
-                              (when-not (every? #(blank? %) (vector genre description narrative name audience))
-                                 [:div.show-more [:a {:role "button" :data-toggle "collapse"
-                                                      :data-parent "#accordion"
-                                                      :href (str "#collapse" id)
-                                                      :aria-expanded "true"
-                                                      :aria-controls (str "collapse" id)} (t :admin/Showmore)]])]]
-                             (when-not (every? #(blank? %) (vector genre description narrative name audience))
-                               [:div {:id (str "collapse" id)
-                                      :class "panel-collapse collapse"
-                                      :role "tabpanel"
-                                      :aria-labelledby (str "heading" id)}
-                                [:div.panel-body.evidence-panel-body {:style {:padding-top "10px"}}
-                                 (when-not (blank? name) [:div.inline [:label (t :badge/Name) ": "] name])
-                                 (when-not (blank? genre) [:div [:label (t :badge/Genre) ": "] genre])
-                                 (when-not (blank? audience) [:div [:label (t :badge/Audience) ": "] audience])
-                                 (when-not (blank? narrative) [:div [:label (t :badge/Narrative)] [:div.description narrative]])
-                                 (when-not (blank? description) [:div [:label (t :admin/Description)]  [:div.description description]])
-                                 ]])])
-                      )
-                    )[:div {:id "accordion" :class "panel-group evidence-list" :role "tablist" :aria-multiselectable "true"}] evidences)
-          ]])]]))
+                            [:div.modal-evidence
+                             [evidence-icon evidence_type]
+                             [:div.content
+
+                              (when-not (blank? name) [:div.content-body.name name])
+                              (when-not (blank? description) [:div.content-body.description description])
+                              [:div.content-body.url (hyperlink url)]]
+                             ])))
+                  [:div ] evidences)]])]]))

 (defn modal-navi [state]
   (let [invalid? (or (bh/badge-expired? (:expires_on @state)) (pos? (:revoked @state)))


add meta tags needed for twitter preview card. this needs additional cleanup #56

--- src/pronouns/pages.clj
+++ src/pronouns/pages.clj
@@ -116,6 +116,12 @@
 (defn footer-block []
   [:footer (usage-block) (contact-block)])

+;; <meta name="twitter:card" content="summary" />
+;; <meta name="twitter:site" content="@flickr" />
+;; <meta name="twitter:title" content="Small Island Developing States Photo Submission" />
+;; <meta name="twitter:description" content="View the album on Flickr." />
+;; <meta name="twitter:image" content="https://farm6.staticflickr.com/5510/14338202952_93595258ff_z.jpg" />
+
 (defn format-pronoun-examples
   [pronoun-declensions]
   (let [sub-objs (map #(s/join "/" (take 2 %)) pronoun-declensions)
@@ -127,6 +133,11 @@
        [:title title]
        [:meta {:name "viewport" :content "width=device-width"}]
        [:meta {:name "description" :content (u/strip-markup examples)}]
+       [:meta {:name "twitter:card" :content (u/strip-markup examples)}]
+       [:meta {:name "twitter:site" :content "@morganastra"}]
+       [:meta {:name "twitter:title" :content title}]
+       [:meta {:name "twitter:description" :content (u/strip-markup examples)}]
+       [:meta {:name "twitter:image" :content "https://pronoun.is/purple-flag64.png"}]
        [:link {:rel "stylesheet" :href "/pronouns.css"}]]
       [:body
        (header-block title)


Fix missing api docs groups

Fix missing api docs groups

--- src/re_frame/core.cljc
+++ src/re_frame/core.cljc
@@ -438,6 +438,7 @@
   When given one arg, assumed to be the `id` of a previously registered
   coeffect handler, it will unregister the associated handler. Will produce a warning to
   console if it finds no matching registration."
+  {:api-docs/heading "Coeffects"}
   ([]
    (registrar/clear-handlers cofx/kind))
   ([id]
@@ -972,8 +973,8 @@
   "Unregisters a post event callback function, identified by `id`.

   Such a function must have been previously registered via `add-post-event-callback`"
+  {:api-docs/heading "Events"}
   [id]
-  {:api-docs/heading "Events"}
   (router/remove-post-event-callback re-frame.router/event-queue id))


Fix -swap! in ratom.cljs

Fix -swap! in ratom.cljs

--- src/reagent/ratom.cljs
+++ src/reagent/ratom.cljs
@@ -64,7 +64,7 @@
     (-reset! a (f state x)))
   (-swap! [a f x y]
     (-reset! a (f state x y)))
-  (-swap! [a f x y & more]
+  (-swap! [a f x y more]
     (-reset! a (apply f state x y more)))

   IMeta
@@ -143,7 +143,7 @@
     (-swap! (._reaction a) f x))
   (-swap! [a f x y]
     (-swap! (._reaction a) f x y))
-  (-swap! [a f x y & more]
+  (-swap! [a f x y more]
     (-swap! (._reaction a) f x y more))

   IPrintWithWriter
@@ -236,7 +236,7 @@
     (-reset! a (f (-peek-at a) x)))
   (-swap! [a f x y]
     (-reset! a (f (-peek-at a) x y)))
-  (-swap! [a f x y & more]
+  (-swap! [a f x y more]
     (-reset! a (apply f (-peek-at a) x y more)))

   IComputedImpl
@@ -362,7 +362,7 @@
     (-reset! a (f state x)))
   (-swap! [a f x y]
     (-reset! a (f state x y)))
-  (-swap! [a f x y & more]
+  (-swap! [a f x y more]
     (-reset! a (apply f state x y more)))

   IEquiv


[suite/classification] This require needs to be updated for recent changes. (#120)

This is further evidence that this file belongs in the `examples` folder.

--- src/cortex/suite/classification.clj
+++ src/cortex/suite/classification.clj
@@ -2,7 +2,7 @@
   (:require [cortex.dataset :as ds]
             [clojure.java.io :as io]
             [think.parallel.core :as parallel]
-            [cortex.compute.nn.cpu-backend :as cpu-backend]
+            [cortex.compute.cpu.backend :as cpu-backend]
             [cortex.optimize :as opt]
             [think.resource.core :as resource]
             [cortex.util :as util]


Log errors

Log errors

--- src/defragment/feed.clj
+++ src/defragment/feed.clj
@@ -49,13 +49,18 @@

 (defn get-duration
   [full-path]
-  (->> full-path
-       oggz-info
-       string/split-lines
-       (filter #(.contains % "Content-Duration"))
-       first
-       (re-matches #"^.*?\s+(.+)\..*")
-       last))
+  (log/debug "getting duration for" full-path)
+  (try
+    (->> full-path
+         oggz-info
+         string/split-lines
+         (filter #(.contains % "Content-Duration"))
+         first
+         (re-matches #"^.*?\s+(.+)\..*")
+         last)
+    (catch Exception e
+      (log/error e)
+      "04:00:00")))

 (defn read-header
   [f]


pre-insert primary record without unique-keys

--- src/er_cassandra/model/unique_key.clj
+++ src/er_cassandra/model/unique_key.clj
@@ -211,13 +211,27 @@
           new-record
           (:unique-key-tables model)))

+(defn without-unique-keys
+  "remove (the final part of) unique key columns from a record"
+  [^Model model record]
+  (let [unique-key-tables (:unique-key-tables model)]
+    (reduce (fn [r t]
+              (let [key-col (last (:key t))]
+                (dissoc r key-col)))
+            record
+            unique-key-tables)))
+
 (defn update-unique-keys
   "attempts to acquire unique keys for an owner... returns
    a Deferred[Right[[:ok updated-owner-record :failed-keys]]] with an updated
    owner record containing only the keys that could be acquired"
   [session ^Model model new-record]
   (m/with-monad dm/either-deferred-monad
-    (m/mlet [old-record (r/select-one session
+    (m/mlet [create-primary (r/insert session
+                                      (get-in model [:primary-table :name])
+                                      (without-unique-keys model new-record))
+
+             old-record (r/select-one session
                                       (get-in model [:primary-table :name])
                                       (get-in model [:primary-table :key])
                                       (t/extract-uber-key-value model new-record))
@@ -230,10 +244,15 @@
              acquire-key-responses (acquire-unique-keys
                                     session
                                     model
-                                    new-record)]
-            (m/return
-             (update-record-by-key-responses
-              model
-              old-record
-              new-record
-              acquire-key-responses)))))
+                                    new-record)
+             updated-record (m/return
+                             (update-record-by-key-responses
+                              model
+                              old-record
+                              new-record
+                              acquire-key-responses))
+             upsert-response (r/insert
+                              session
+                              (get-in model [:primary-table :name])
+                              updated-record)]
+            (m/return updated-record))))


more optimization of comp-pre-checks

more optimization of comp-pre-checks

--- src/babel/over.cljc
+++ src/babel/over.cljc
@@ -112,7 +112,13 @@
 (defn comp-pre-checks [parent child]
   (or
    (fail? (unifyc (get-in parent [:comp :synsem :cat])
-                  (get-in child [:synsem :cat])))))
+                  (get-in child [:synsem :cat])))
+   (fail? (unifyc (get-in parent [:comp :synsem :agr] :top)
+                  (get-in child [:synsem :agr] :top)))
+   (fail? (unifyc (get-in parent [:comp :synsem :pronoun] :top)
+                  (get-in child [:synsem :pronoun] :top)))
+   (fail? (unifyc (get-in parent [:comp :synsem :subcat] :top)
+                  (get-in child [:synsem :subcat] :top)))))

 (defn moreover-head [parent child lexfn-sem-impl morph]
   (let [morph (if morph morph (fn [x] x))]


optimize (moreover-head): check parent's cat and candidate head child's cat before attempting unification

--- src/babel/over.cljc
+++ src/babel/over.cljc
@@ -91,47 +91,59 @@
       nil)))

 (def ^:dynamic *extra-diagnostics* false)
+(def ^:dynamic *check-parent-and-head-child-cat-equal* true)

 (defn moreover-head [parent child lexfn-sem-impl morph]
   (let [morph (if morph morph (fn [x] x))]
     (log/trace (str "moreover-head (candidate) parent: [" (get-in parent [:rule]) "] '" (morph parent) "' sem:    " (strip-refs (get-in parent '(:synsem :sem) :no-semantics))))
     (log/trace (str "moreover-head (candidate) head child: [" (get-in parent [:child]) "] '" (morph child) "' sem:" (strip-refs (get-in child '(:synsem :sem) :top))))
     (let [result
-          (unify (copy parent)
-                 (unify {:head (copy child)
-                         :head-filled true}
-                        {:head {:synsem {:sem (lexfn-sem-impl (copy (get-in child '(:synsem :sem) :top)))}}}))]
+          (if (and
+               *check-parent-and-head-child-cat-equal*
+               (not (= (get-in parent [:synsem :cat])
+                       (get-in child [:synsem :cat]))))
+               :fail
+            (unify (copy parent)
+                   (unify {:head (copy child)
+                           :head-filled true}
+                          {:head {:synsem {:sem (lexfn-sem-impl (copy (get-in child '(:synsem :sem) :top)))}}})))]
       (if (not (fail? result))
         (let [debug (log/trace (str "moreover-head: " (get-in parent '(:rule)) " succeeded: " (get-in result [:rule])
                                     ":'" (morph result) "'"))
-              debug (log/debug (str "moreover-head: [" (get-in parent [:rule]) " H:"
+              debug (log/debug (str "moreover-head: [" (get-in parent [:rule]) " H: "
                                     (if (get-in child [:rule])
                                       (get-in child [:rule])
-                                      (get-in parent [:head :synsem :cat]))
+                                      (get-in child [:surface]))
                                     "]"))
               debug (log/trace (str " resulting sem: " (strip-refs (get-in result '(:synsem :sem)))))]
           result)

         ;; else: attempt to put head under parent failed: provide diagnostics through log/debug messages.
-        (if (= *extra-diagnostics* true)
-          (let [fail-path (get-fail-path (get-in parent [:head]) child)
-                debut (log/trace (str "moreover-head: failed to add head: '" (morph child) "' to parent: " (get-in parent [:rule])))
-                debug (log/trace (str "parent " (get-in parent [:rule])
-                                      " wanted head with: "
-                                      (strip-refs (get-in parent [:head :synsem]))))
-                debug (log/trace (str "candidate child has synsem: "
-                                      (strip-refs
-                                       (get-in
-                                        (unifyc child
-                                                {:synsem {:sem (lexfn-sem-impl (get-in child '(:synsem :sem) :top))}})
-                                        [:synsem]))))
-                debug (log/trace (str "fail-path: " (get-fail-path (get-in parent [:head])
-                                                                   child)))
-                debug (log/trace (str "  parent@" fail-path "="
-                                      (get-in parent (concat [:head] fail-path))))
-                debug (log/trace (str "    head@" fail-path "="
-                                      (get-in child fail-path)))]
-            :fail)
+        (do
+          (if (= *extra-diagnostics* true)
+            (let [fail-path (get-fail-path (get-in parent [:head]) child)]
+              (log/trace (str "moreover-head: failed to add head: '" (morph child) "' to parent: " (get-in parent [:rule])))
+              (log/trace (str "parent " (get-in parent [:rule])
+                              " wanted head with: "
+                              (strip-refs (get-in parent [:head :synsem]))))
+              (log/trace (str "candidate child has synsem: "
+                              (strip-refs
+                               (get-in
+                                (unifyc child
+                                        {:synsem {:sem (lexfn-sem-impl (get-in child '(:synsem :sem) :top))}})
+                                [:synsem]))))
+              (log/trace (str "fail-path: " (get-fail-path (get-in parent [:head])
+                                                           child)))
+              (log/trace (str "  parent@" fail-path "="
+                              (get-in parent (concat [:head] fail-path))))
+              (log/trace (str "    head@" fail-path "="
+                              (get-in child fail-path)))))
+          (log/debug (str "moreover-head: fail: parent: " (strip-refs (get-in parent [:rule])) ";"
+                          "child [" (get-in child [:surface]) "]; cat: " (get-in child [:synsem :cat])))
+          (if (and (not (= (get-in parent [:synsem :cat])
+                           (get-in child [:synsem :cat])))
+                   (not *check-parent-and-head-child-cat-equal*))
+            (log/warn (str "moreover-head: CHILD CAT DIFFERS FROM HEAD CAT!")))
           :fail)))))

 ;; Might be useful to set the following variable to true,


added ring options

added ring options

--- src/leiningen/new/reagent/project.clj
+++ src/leiningen/new/reagent/project.clj
@@ -46,7 +46,14 @@
   :profiles {:dev {:repl-options {:init-ns {{project-ns}}.handler
                                   :nrepl-middleware [cemerick.piggieback/wrap-cljs-repl{{{nrepl-middleware}}}]}

+                   :dependencies [[ring-mock "0.1.5"]
+                                  [ring/ring-devel "1.3.1"]
+                                  [pjstadig/humane-test-output "0.6.0"]]
+
                    :plugins [[lein-figwheel "0.1.4-SNAPSHOT"]{{{project-dev-plugins}}}]
+
+                   :injections [(require 'pjstadig.humane-test-output)
+                                (pjstadig.humane-test-output/activate!)]

                    :figwheel {:http-server-root "public"
                               :port 3449
@@ -67,6 +74,10 @@
                    {{/cljx-build?}}
                    :cljsbuild {:builds {:app {:source-paths ["env/dev/cljs"]}}}}

+             :production {:ring {:open-browser? false
+                       :stacktraces?  false
+                       :auto-reload?  false}}
+
              :uberjar {:hooks [{{cljx-uberjar-hook}}leiningen.cljsbuild minify-assets.plugin/hooks]
                        :env {:production true}
                        :omit-source true


Update project.clj

Update project.clj

bumping versions - experimentally trying cljs 1.7.170

--- src/leiningen/new/fwrum/project.clj
+++ src/leiningen/new/fwrum/project.clj
@@ -5,13 +5,13 @@
             :url "http://www.eclipse.org/legal/epl-v10.html"}

   :dependencies [[org.clojure/clojure "1.7.0"]
-                 [org.clojure/clojurescript "1.7.48"]
-                 [org.clojure/core.async "0.1.346.0-17112a-alpha"]
+                 [org.clojure/clojurescript "1.7.170"]
+                 [org.clojure/core.async "0.2.374"]
                  [rum "0.5.0"]
                  [jayq "2.5.4"]]

-  :plugins [[lein-cljsbuild "1.1.0"]
-            [lein-figwheel "0.4.1"]]
+  :plugins [[lein-cljsbuild "1.1.1"]
+            [lein-figwheel "0.5.0"]]

   :source-paths ["src"]


clarification on size slider

clarification on size slider

--- src/cellf/core.cljs
+++ src/cellf/core.cljs
@@ -269,7 +269,9 @@
                       :checked  show-nums
                       :onChange #(om/update! app :show-nums (not show-nums))})

-                    (dom/label nil (str "grid-size (" grid-size \× grid-size ")"))
+                    (dom/label nil
+                      (str "grid-size (" grid-size \× grid-size ")")
+                      (dom/em nil "(starts new game)"))
                     (dom/input #js {
                       :type     "range"
                       :value    grid-size


remove :text? assertion - covered with a slightly weaker error message by :text

--- src/crison/core.clj
+++ src/crison/core.clj
@@ -31,10 +31,6 @@

 ;; currently a catchall from the multimethod
 (defn ? [x] (is (-> driver (wc/find-element x) wc/exists?) (str "Fail on : " x)))
-
-(defn text? [x]
-  (is (= (:text? x)
-        (wc/text (-> driver (wc/find-element (dissoc x :text?)))))))

 (defmulti decode (fn[x] (ffirst x)))


change defonce hack

change defonce hack

other method seems to get lost in builds using AOT dist

--- src/main/shadow/build/cljs_hacks.cljc
+++ src/main/shadow/build/cljs_hacks.cljc
@@ -683,6 +683,16 @@
                      (assoc :tag (symbol type))))))
        (js/goog.define ~defname ~default))))

+(defn shadow-defonce
+  "defs name to have the root value of init iff the named var has no root value,
+  else init is unevaluated"
+  [&from &env x init]
+  (if (= :release (:shadow.build/mode &env))
+    ;; release builds will never overwrite a defonce, skip DCE-unfriendly verbose code
+    `(def ~x ~init)
+    `(when-not (cljs.core/exists? ~x)
+       (def ~x ~init))))
+
 ;; https://github.com/clojure/clojurescript/commit/1589e5848ebb56ab451cb73f955dbc0b01e7aba0
 ;; oops, seem to have missed keyword?
 (defn shadow-all-values? [exprs]
@@ -1010,6 +1020,7 @@
   (replace-fn! #'comp/find-ns-starts-with shadow-find-ns-starts-with)

   (replace-fn! #'cljs.core/goog-define goog-define)
+  (replace-fn! #'cljs.core/defonce shadow-defonce)

   ;; remove these for now, not worth the trouble
   ;; (replace-fn! #'test/deftest @#'shadow-deftest)
@@ -1112,17 +1123,6 @@
                js (string/join " && " (repeat n "(typeof ~{} !== 'undefined')"))]
       (bool-expr (concat (core/list 'js* js) syms)))
     `(some? ~x)))
-
-
-(core/defmacro defonce
-  "defs name to have the root value of init iff the named var has no root value,
-  else init is unevaluated"
-  [x init]
-  (if (= :release (:shadow.build/mode &env))
-    ;; release builds will never overwrite a defonce, skip DCE-unfriendly verbose code
-    `(def ~x ~init)
-    `(when-not (exists? ~x)
-       (def ~x ~init))))

 (comment


browser-repl should start fresh when browser was closed

--- src/main/shadow/cljs/devtools/api.clj
+++ src/main/shadow/cljs/devtools/api.clj
@@ -389,12 +389,12 @@
            (go (alt!
                  *nrepl-quit-signal*
                  ([_]
-                   :quit)
+                  :quit)

                  proc-stop
                  ([_]
-                   (*nrepl-worker-exit*)
-                   :quit)))
+                  (*nrepl-worker-exit*)
+                  :quit)))

            ;; calling (node-repl) in a REPL will cause the stdout and the repl prn forward
            ;; to both print which is not what we want
@@ -410,20 +410,20 @@
                          (alt! :priority true
                            chan
                            ([msg]
-                             (when (some? msg)
-                               (case (:type msg)
-                                 :repl/out
-                                 (do (println (:text msg))
-                                     (flush))
-
-                                 :repl/err
-                                 (binding [*out* *err*]
-                                   (println (:text msg))
-                                   (flush))
-
-                                 :ignored)
-                               (recur)
-                               ))
+                            (when (some? msg)
+                              (case (:type msg)
+                                :repl/out
+                                (do (println (:text msg))
+                                    (flush))
+
+                                :repl/err
+                                (binding [*out* *err*]
+                                  (println (:text msg))
+                                  (flush))
+
+                                :ignored)
+                              (recur)
+                              ))

                            quit
                            ([_] :quit)))
@@ -563,37 +563,43 @@
   ([]
    (browser-repl {}))
   ([{:keys [verbose open] :as opts}]
-   (let [{:keys [supervisor config http] :as app}
-         (runtime/get-instance!)
-
-         worker
-         (or (super/get-worker supervisor :browser-repl)
-             (let [worker
-                   (start-browser-repl* app)
-
-                   out-chan
-                   (-> (async/sliding-buffer 10)
-                       (async/chan))]
-
-               (go (loop []
-                     (when-some [msg (<! out-chan)]
-                       (try
-                         (util/print-worker-out msg verbose)
-                         (catch Exception e
-                           (prn [:print-worker-out-error e])))
-                       (recur)
-                       )))
-
-               (worker/watch worker out-chan)
-               (worker/compile! worker)
-
-               (let [url (str "http" (when (:ssl http) "s") "://localhost:" (:port http) "/browser-repl-js")]
-                 (try
-                   (browse-url url)
-                   (catch Exception e
-                     (println
-                       (format "Failed to open Browser automatically.\nPlease open the URL below in your Browser:\n\t%s" url)))))
-               worker))]
+   (let [{:keys [supervisor http] :as app} (runtime/get-instance!)]
+
+     (or (when-let [{:keys [state-ref] :as worker}
+                    (super/get-worker supervisor :browser-repl)]
+
+           (if-not (-> @state-ref :runtimes empty?)
+             worker ;; browser still connected. continue using previous worker.
+             (do (super/stop-worker supervisor :browser-repl)
+                 nil)))
+
+         ;; no previous worker, start new one
+         (let [worker
+               (start-browser-repl* app)
+
+               out-chan
+               (-> (async/sliding-buffer 10)
+                   (async/chan))]
+
+           (go (loop []
+                 (when-some [msg (<! out-chan)]
+                   (try
+                     (util/print-worker-out msg verbose)
+                     (catch Exception e
+                       (prn [:print-worker-out-error e])))
+                   (recur)
+                   )))
+
+           (worker/watch worker out-chan)
+           (worker/compile! worker)
+
+           (let [url (str "http" (when (:ssl http) "s") "://localhost:" (:port http) "/browser-repl-js")]
+             (try
+               (browse-url url)
+               (catch Exception e
+                 (println
+                   (format "Failed to open Browser automatically.\nPlease open the URL below in your Browser:\n\t%s" url)))))
+           worker))

      (repl :browser-repl)
      )))


Remove old debug comment

Remove old debug comment

--- src/phzr_demo/physics_chain_demo.cljs
+++ src/phzr_demo/physics_chain_demo.cljs
@@ -52,8 +52,6 @@
               (pset! (get-in cur-link [:body :velocity]) :x 400)
               (pset! (:body cur-link) :mass (/ length n))))

-
-          ;; Some kind of problem happening in recursion
           (recur (inc n) cur-link))))))

 (defn ^:private create


Add subst*

Add subst*

--- src/the_little_clojurian/chapter5.clj
+++ src/the_little_clojurian/chapter5.clj
@@ -57,3 +57,18 @@
   (is (= (occur* 'beer '((beer))) 1))
   (is (= (occur* 'orange '((orange (beer)))) 1))
   (is (= (occur* 'orange '((banana split) and (orange) with sherbet (((and orange peanut) butter)))) 2)))
+
+
+(with-test
+  (def subst*
+    (fn [new old l]
+      (cond (null? l) '()
+            (atom? (car l)) (cond (eq? (car l) old) (cons new (subst* new old (cdr l)))
+                                  :else (cons (car l) (subst* new old (cdr l))))
+            :else (cons (subst* new old (car l))
+                        (subst* new old (cdr l))))))
+
+  (is (= (subst* 'orange 'banana '()) '()))
+  (is (= (subst* 'orange 'banana '(banana)) '(orange)))
+  (is (= (subst* 'orange 'banana '((banana))) '((orange))))
+  (is (= (subst* 'cup 'mug '((a mug) in the (((kitchen (mug)))))) '((a cup) in the (((kitchen (cup))))))))


Show the id in the main view

Show the id in the main view

--- src/mdr2/views.clj
+++ src/mdr2/views.clj
@@ -25,7 +25,7 @@
     (layout/common user
      [:h1 "Productions"]
      [:table.table.table-striped
-      [:thead [:tr [:th "Title"] [:th "Type"] [:th "State"] [:th "Action"]]]
+      [:thead [:tr [:th "DAM"] [:th "Title"] [:th "Type"] [:th "State"] [:th "Action"]]]
       [:tbody
        (let [cached-state (memoize db/find-state)
              cached-production-type (memoize db/find-production-type)]
@@ -34,6 +34,7 @@
                  realized-production-type (first (cached-production-type {:id production_type}))
                  next-state (:next_state realized-state)]
              [:tr
+              [:td id]
               [:td (link-to (str "/production/" id) title)]
               [:td (:name realized-production-type)]
               [:td (:name realized-state)]


remove space

remove space

--- test/synthesis_crawlers/core_test.clj
+++ test/synthesis_crawlers/core_test.clj
@@ -247,14 +247,10 @@
                               {:tag "span", :class #{}, :id "sp"}])
            "html > body > div#bar.hoge.piyo > span#sp"))))

-
-
 (deftest create-relative-path-test
   (testing "returns a css selector which specifies e"
     (let [node (first (.select (Jsoup/parse "

") "html > body > div > span#sp"))]
       (is (= (create-relative-path node) "html > body > div.hoge > span#sp")))))
-
-

 (deftest generate-container-cand-exprs-test
   (testing "generates the expressions of the specified containers"


remove comments

remove comments

--- test/synthesis_crawlers/core_test.clj
+++ test/synthesis_crawlers/core_test.clj
@@ -130,12 +130,6 @@
           result (find-nodes-in-page {"http://foobar.com" text
                                   "http://piyo.com" "<html></html>"}
                                  {:title #{"hoge" "piyo"}})]
-      #_(doseq [[url va] result]
-        (println "1-> " (first (:title (result "http://foobar.com"))))
-        (println "2-> " (first (.select nodes "html >body > div")))
-        #_(println (.select nodes "html >body > div"))
-        (println (= (first (.select nodes "html >body > div")) (:title (result "http://foobar.com"))))
-        )
       (is (= (count (:title (result "http://foobar.com"))) 1))
       (is (= (result "http://piyo.com") {:title []}))
       )))


port number was not read

port number was not read

--- src/tango/core.clj
+++ src/tango/core.clj
@@ -153,6 +153,6 @@
       (println "Port number missing")
       (do
         (component/start
-         (production-system {:port 1337 :log-file "loggs/production.log" :log-level :trace
+         (production-system {:port (Integer/parseInt port) :log-file "loggs/production.log" :log-level :trace
                              :client-connection :ws-connection-channels}))
         (log/report (str "Server started on port " port))))))


makes filter-vals and remove-vals 3x faster

(require 'criterium.core)
(require 'useful.map)

(def my-map (zipmap (range 100) (range 100)))

(criterium.core/bench (useful.map/original-filter-vals my-map odd?))
Evaluation count : 2203320 in 60 samples of 36722 calls.
             Execution time mean : 27.389858 us
    Execution time std-deviation : 206.895390 ns
   Execution time lower quantile : 27.186863 us ( 2.5%)
   Execution time upper quantile : 27.997736 us (97.5%)

Found 3 outliers in 60 samples (5.0000 %)
  low-severe   1 (1.6667 %)
  low-mild   2 (3.3333 %)
 Variance from outliers : 1.6389 % Variance is slightly inflated by outliers

(criterium.core/bench (useful.map/new-filter-vals my-map odd?))
Evaluation count : 6759300 in 60 samples of 112655 calls.
             Execution time mean : 8.949856 us
    Execution time std-deviation : 39.725387 ns
   Execution time lower quantile : 8.882420 us ( 2.5%)
   Execution time upper quantile : 9.032029 us (97.5%)

--- src/useful/map.clj
+++ src/useful/map.clj
@@ -186,11 +186,14 @@
   [pred m]
   (filter-keys-by-val (complement pred) m))

-(defn filter-vals
-  "Returns a map that only contains values where (pred value) returns true."
-  [m pred]
+(defn filter-vals [m pred]
   (when m
-    (select-keys m (filter-keys-by-val pred m))))
+    (persistent! (reduce (fn [m [k v]]
+                           (if (pred v)
+                             m
+                             (dissoc! m k)))
+                         (transient m)
+                         m))))

 (defn remove-vals
   "Returns a map that only contains values where (pred value) returns false."


CMR-2894 Clarifies comment about ACL Elastic index target-provider-id field

--- access-control-app/src/cmr/access_control/data/access_control_index.clj
+++ access-control-app/src/cmr/access_control/data/access_control_index.clj
@@ -136,7 +136,8 @@
    :permitted-group (m/stored m/string-field-mapping)
    :permitted-group.lowercase m/string-field-mapping

-   ;; target-provider-id indexes the provider id of the provider-identity field of an acl, if present
+   ;; target-provider-id indexes the provider id of the provider-identity or
+   ;; catalog-item-identity field of an acl, if present
    :target-provider-id (m/stored m/string-field-mapping)
    :target-provider-id.lowercase m/string-field-mapping


refactoring data model

refactoring data model

--- src/dodgeball/core.cljs
+++ src/dodgeball/core.cljs
@@ -8,22 +8,24 @@

 (defonce app-state (atom
                     {:cells
-                      [{:type :opponent :x 0, :y 0}
-                       {:type :opponent :x 2, :y 0}
-                       {:type :opponent :x 4, :y 0}
-                       {:type :opponent :x 6, :y 0}
-                       {:type :opponent :x 8, :y 0}
-                       {:type :my-team :x 0, :y 8}
-                       {:type :my-team :x 2, :y 8}
-                       {:type :my-team :x 4, :y 8}
-                       {:type :my-team :x 6, :y 8}
-                       {:type :my-team :x 8, :y 8}
-                       {:type :loose-ball :x 0, :y 4}
-                       {:type :loose-ball :x 2, :y 4}
-                       {:type :loose-ball :x 4, :y 4}
-                       {:type :loose-ball :x 6, :y 4}
-                       {:type :loose-ball :x 8, :y 4}]
-                    :selected-unit {}}))
+                        {:blue-team
+                         [{:x 0, :y 0}
+                          {:x 2, :y 0}
+                          {:x 4, :y 0}
+                          {:x 6, :y 0}
+                          {:x 8, :y 0}]
+                        :red-team
+                         [{:x 0, :y 8}
+                          {:x 2, :y 8}
+                          {:x 4, :y 8}
+                          {:x 6, :y 8}
+                          {:x 8, :y 8}]
+                        :balls
+                         [{:x 0, :y 4}
+                          {:x 2, :y 4}
+                          {:x 4, :y 4}
+                          {:x 6, :y 4}
+                          {:x 8, :y 4}]}}))

 (def board-size (range 0 9))
 (def bench-size 4)
@@ -39,16 +41,42 @@
        (dom/td nil))))))

 (defn find-piece [position]
-  (first (filter #(and
-                 (= (:x position) (:x %))
-                 (= (:y position) (:y %)))
-               (:cells (om/root-cursor app-state)))))
+  (let [{:keys [:blue-team :red-team :balls] :as units} (:cells (om/root-cursor app-state))]
+    (first (filter #(and
+                   (= (:x position) (:x %))
+                   (= (:y position) (:y %)))
+                 (flatten (vals units))))))
+
+(defn coords [m]
+  (dissoc m :move))
+
+(defn all-units [cells]
+  (let [{:keys [:blue-team :red-team :balls] :as units} (:cells (om/root-cursor app-state))]
+  units))
+
+(defn red-unit? [x y]
+  (let [{:keys [:red-team]} (:cells (om/root-cursor app-state))]
+    (first (filter #(and
+             (= x (:x %))
+             (= y (:y %)))
+           red-team))))
+
+(defn blue-unit? [x y]
+  (let [{:keys [:blue-team]} (:cells (om/root-cursor app-state))]
+    (first (filter #(and
+             (= x (:x %))
+             (= y (:y %)))
+           blue-team))))
+
+(defn ball? [x y]
+  (let [{:keys [:balls]} (:cells (om/root-cursor app-state))]
+    (first (filter #(and
+             (= x (:x %))
+             (= y (:y %)))
+           balls))))

 (defn highlight-tile [e]
  (set! (.. e -target -style -background) "gray"))
-
-(defn update-piece-position [e state]
-  (om/transact! (om/root-cursor app-state) :cells #(conj {:type :my-team :x 1 :y 8})))

 (defn player-view [cursor owner]
   (reify
@@ -62,47 +90,59 @@
     (render [_]
       (dom/div #js {:className "blue-team"}))))

+(defn ball-view [cursor owner]
+  (reify
+    om/IRender
+    (render [_]
+      (dom/div #js {:className "ball"}))))
+
 (defn tile-view [cursor owner]
   (reify
     om/IRenderState
     (render-state [this {:keys [x y move] :as position}]
-      (let [found (find-piece position)]
-        (dom/td #js {:onClick #(put! move position)}
-          (cond
-            (= (:type found) :my-team)
-              (om/build player-view found {:state {:move move}})
-            (= (:type found) :opponent)
-               (om/build opponent-view cursor)
-            (= (:type found) :loose-ball)
-               (om/build ball-view cursor)))))))
+      (dom/td #js {:onClick #(put! move position)}
+        (if-let [ball (ball? x y)]
+          (om/build ball-view ball {:state {:move move}}))
+        (if-let [red-player (red-unit? x y)]
+          (om/build player-view red-player))
+        (if-let [blue-player (blue-unit? x y)]
+          (om/build opponent-view blue-player))))))

-(defn ball-view [cursor owner]
-  (reify
-    om/IRender
-    (render [_]
-          (dom/div #js {:className "ball"}))))
+;; (defn update-unit-positions [units selected-position target-position]
+;;   (vec
+;;     (map
+;;       (fn [unit]
+;;         (if (= selected-position unit)
+;;           (assoc unit apply target-position)
+;;           unit))
+;;       units)))

 (defn board-view [app owner]
   (reify
-     om/IInitState
-     (init-state [_]
-       {:move (chan)})
+    om/IInitState
+      (init-state [_]
+        {:move (chan)})
+
     om/IWillMount
     (will-mount [_]
       (let [move (om/get-state owner :move)]
         (go (loop []
-          (let [player-to-move (find-piece (<! move))]
-            (let [{:keys [x y] :as position} (<! move)]
-              (if (find-piece position)
+          (let [selected-position (coords (<! move))]
+            (let [target-position (coords (<! move))]
+              (if (find-piece target-position)
                 (println "CAN'T MOVE THERE")
-                (om/transact! app :cells
-                  (fn [cs]
-                    (vec (map
-                           #(if (= player-to-move %)
-                                  (assoc % :x x :y y)
-                                  %)
-                         cs)))))))
-            (recur)))))
+                (om/transact! app [:cells :red-team]
+                              (fn [xs]
+                                (println xs)
+                               (vec
+                                 (map
+                                    (fn [e]
+                                      (if (= selected-position e)
+                                        (assoc e :x target-position :y target-position)
+                                        e))
+                                  xs))))
+                (recur))))))))
+
     om/IRenderState
     (render-state [this {:keys [move]}]
       (dom/div #js {:className "container"}
@@ -111,7 +151,7 @@
           (vec (for [y board-size]
             (apply dom/tr #js {:className (border-top y)}
               (vec (for [x board-size]
-                (om/build tile-view (:cells app)
+                (om/build tile-view all-units
                   {:state {:move move :x x :y y}})))))))
         (bench)))))