Version 133-SNAPSHOT

Version 133-SNAPSHOT

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/tobias/clojars-web.git/'


Version 140

Version 140


updated deps

updated deps

--- project.clj
+++ project.clj
@@ -4,7 +4,7 @@
   :license {:name "Apache License, Version 2.0"
             :url "https://www.apache.org/licenses/LICENSE-2.0.html"}
   :dependencies [[dda/dda-pallet "3.0.0"]
-                 [dda/dda-managed-vm "2.5.3"]]
+                 [dda/dda-managed-vm "2.5.4"]]
   :target-path "target/%s/"
   :source-paths ["main/src"]
   :resource-paths ["main/resources"]


Options calculation in Clojure

Options calculation in Clojure

error: pathspec 'options.clj' did not match any file(s) known to git

--- options.clj
+++ options.clj
@@ -0,0 +1,16 @@
+(use 'clojure.java.io)
+(require '[clojure.string :as str])
+
+(defn calc-profit-percentages [[strike last bid ask]]
+  (let [strike (Float/parseFloat strike)
+        last (Float/parseFloat last)
+        bid (Float/parseFloat bid)
+        ask (Float/parseFloat ask)
+        expires (/ last 4.91)
+        execute (/ (- (+ strike last) 4.91) 4.91)]
+    (println (str/join ", " [strike last bid ask expires execute]))))
+
+(with-open [file (reader "swn")]
+  (println "Strike, Last, Bid, Ask, Expire, Execute")
+  (doseq [line (line-seq file)]
+    (calc-profit-percentages (subvec (str/split line #"\t") 2 6))))


Updating core version and fixing dead mappings

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/B2W-BIT/restQL-server.git/'


Release 0.12.1.

Release 0.12.1.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject clojars-web "0.12.0"
+(defproject clojars-web "0.12.1"
   :dependencies [[org.clojure/clojure "1.4.0"]
                  [org.clojure/tools.cli "0.2.1"]
                  [org.apache.maven/maven-model "3.0.4"


bump clojure 1.3 version in multi-deps

bump clojure 1.3 version in multi-deps

--- project.clj
+++ project.clj
@@ -4,7 +4,7 @@
                  [org.apache.httpcomponents/httpclient "4.1.2"]
                  [commons-codec "1.5"]
                  [commons-io "1.4"]]
-  :multi-deps {"1.3" [[org.clojure/clojure "1.3.0-beta3"]
+  :multi-deps {"1.3" [[org.clojure/clojure "1.3.0-RC0"]
                       [org.apache.httpcomponents/httpclient "4.1.2"]
                       [commons-codec "1.5"]
                       [commons-io "1.4"]]}


Remove :lein-release and add :deploy-repositories

--- project.clj
+++ project.clj
@@ -3,12 +3,12 @@
   :url "http://github.com/r0man/sablono"
   :author "r0man"
   :min-lein-version "2.0.0"
-  :lein-release {:deploy-via :clojars}
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies [[com.facebook/react "0.10.0"]
                  [org.clojure/clojure "1.6.0"]
                  [org.clojure/clojurescript "0.0-2234"]]
+  :deploy-repositories [["releases" :clojars]]
   :cljsbuild {:builds []}
   :profiles {:dev {:dependencies [[reagent "0.4.2"]
                                   [crate "0.2.5"]


bump version to 2.8.10

bump version to 2.8.10

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/B2W-Digital/pdg-core.git/'


bump version and core version to 3.5.4

bump version and core version to 3.5.4


Set release version.

Set release version.

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject clojars-web "0.15.16-SNAPSHOT"
+(defproject clojars-web "0.15.16"
   :dependencies [[org.clojure/clojure "1.6.0"]
                  [org.clojure/tools.cli "0.2.1"]
                  [org.apache.maven/maven-model "3.0.4"


chore(core): update version to 2.8.18

chore(core): update version to 2.8.18


Upgraded deps

Upgraded deps

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/hudren/ebook-novel.git/'


lein-release plugin: preparing 0.1.3 release

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject sablono "0.1.3-SNAPSHOT"
+(defproject sablono "0.1.3"
   :description "Lisp style templating for Facebook's React."
   :url "http://github.com/r0man/sablono"
   :author "Roman Scherer"


chore(core): update core version to 3.2.3 (#150)


Upgrade ring, optimus, clj-time and prone libs

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/magoyette/marcandregoyette.com.git/'


Select only status and body in exceptional responses

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/physion/ovation-webapi.git/'


use regular doc for api-help

use regular doc for api-help

--- sidecar/src/figwheel_sidecar/repl_api.clj
+++ sidecar/src/figwheel_sidecar/repl_api.clj
@@ -1,5 +1,6 @@
 (ns figwheel-sidecar.repl-api
   (:require
+   [clojure.repl :refer [doc]]
    [figwheel-sidecar.system :as fs]
    [com.stuartsierra.component :as component]))

@@ -121,26 +122,16 @@
   []
   (app-trans fs/fig-status))

-(defn- doc* [v]
-  (let [{:keys [name doc arglists]} (meta v)]
-    (print name " ")
-    (prn arglists)
-    (println doc)
-    (newline)))
-
 (defn api-help
   "Print out help for the Figwheel REPL api"
   []
-  (mapv
-   doc*
-   [#'cljs-repl
-    #'fig-status
-    #'start-autobuild
-    #'stop-autobuild
-    #'build-once
-    #'clean-builds
-    #'switch-to-build
-    #'reset-autobuild
-    #'reload-config
-    #'api-help])
-  nil)
+  (doc cljs-repl)
+  (doc fig-status)
+  (doc start-autobuild)
+  (doc stop-autobuild)
+  (doc build-once)
+  (doc clean-builds)
+  (doc switch-to-build)
+  (doc reset-autobuild)
+  (doc reload-config)
+  (doc api-help))


add 006.clj

add 006.clj

error: pathspec '006.clj' did not match any file(s) known to git

--- 006.clj
+++ 006.clj
@@ -0,0 +1,5 @@
+(defn square [x] (* x x))
+
+(def lst (range 1 101))
+
+(println (- (square (apply + lst)) (apply + (map square lst))))


bump compojure version to latest

bump compojure version to latest

--- project.clj
+++ project.clj
@@ -27,7 +27,7 @@
                  [com.cemerick/friend "0.2.1"]                        ; auth library
                  [com.h2database/h2 "1.4.186"]                        ; embedded SQL database
                  [com.mattbertolini/liquibase-slf4j "1.2.1"]
-                 [compojure "1.3.2"]                                  ; HTTP Routing library built on Ring
+                 [compojure "1.3.3"]                                  ; HTTP Routing library built on Ring
                  [environ "1.0.0"]                                    ; easy environment management
                  [hiccup "1.0.5"]                                     ; HTML templating
                  [korma "0.4.0"]                                      ; SQL lib


[TH DG] Updated the lein profiles to match other projects.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/notification-works.git/'


0.8.2-wip2

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject storm "0.8.2-wip1"
+(defproject storm "0.8.2-wip2"
   :source-path "src/clj"
   :test-path "test/clj"
   :java-source-path "src/jvm"


Rollback cljs due to strange behaviour

Rollback cljs due to strange behaviour

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/etehtsea/cljs-google-maps-example.git/'


version bump 0.9.0-wip14

version bump 0.9.0-wip14

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject storm/storm "0.9.0-wip13"
+(defproject storm/storm "0.9.0-wip14"
   :url "http://storm-project.clj"
   :description "Distributed and fault-tolerant realtime computation"
   :license {:name "Eclipse Public License - Version 1.0" :url "https://github.com/nathanmarz/storm/blob/master/LICENSE.html"}


Update deps

Update deps

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/electorate-works.git/'


[WM] upgrade to bifrost 0.1.4

[WM] upgrade to bifrost 0.1.4

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/election-notification-http-api.git/'


Added disqus support

Added disqus support

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


update to latest postgresql

update to latest postgresql

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/vincentstorme/clojureme.git/'


update project version to 2.1.0

update project version to 2.1.0

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Yleisradio/rabid.git/'


Bump restQL-core version

Bump restQL-core version


Update deps

Update deps

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/election-http-api.git/'


Version 76

Version 76


Update deps & clojure

Update deps & clojure

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/election-authority-works.git/'


[EN] Upgrade dependencies.

[EN] Upgrade dependencies.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/form-works.git/'


Version 153-SNAPSHOT

Version 153-SNAPSHOT

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/tobias/clojars-web.git/'


bump deps, add cljs-ajax to fix dependency conflict

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/starcity-properties/odin.git/'


Version 157-SNAPSHOT

Version 157-SNAPSHOT


Upgrading ancient dependencies.

Upgrading ancient dependencies.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/couragelabs/freefrog.git/'


use simple optimizations

use simple optimizations

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/AustinC/persistent-internals.git/'


bumped up version

bumped up version

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


[EN] Use immutant dependencies instead of HTTP kit.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/sendgrid-monitor.git/'


Changed port.

Changed port.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/inchingforward/clojurians.git/'


builds under target/ (so can take advantange of `lein clean`)

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/michaelsbradleyjr/ply.git/'


:arrow_up: Upgrade dependencies

:arrow_up: Upgrade dependencies

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/maoo/bot-unfurl.git/'


bump teller

bump teller


sources also in src/clj

sources also in src/clj


Update deps

Update deps

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/election-mail-works.git/'


update dependencies

update dependencies


enable lein hooks for cljsbuild and garden

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/clojurecup/cc2014-frontend.git/'


Update plugins

Update plugins

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/qu-platform/qu-core.git/'


Version 0.5.3

Version 0.5.3

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject sablono "0.5.3-SNAPSHOT"
+(defproject sablono "0.5.3"
   :description "Lisp style templating for Facebook's React."
   :url "http://github.com/r0man/sablono"
   :author "r0man"


Exclude org.apache.httpcomponents/httpclient

See: https://github.com/aws/aws-sdk-java/issues/1919

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/election-notification-works.git/'


Upgrade kehaar to 0.10.3

Upgrade kehaar to 0.10.3


first commit

first commit

error: pathspec 'project.clj' did not match any file(s) known to git

--- project.clj
+++ project.clj
@@ -0,0 +1,55 @@
+(defproject clojurewebtemplate "1.0.0-SNAPSHOT"
+  :description "kickstart a clojure web application"
+  :url "http://www.martinkremers.de"
+  :license {:name "MIT License"
+            :url "http://www.martinkremers.de"}
+  :dependencies [[org.clojure/clojure "1.5.1"]
+
+                 ; Logging
+                 [org.clojure/tools.logging "0.2.3"]
+                 [org.slf4j/slf4j-api "1.6.4"]
+                 [org.slf4j/jcl-over-slf4j "1.6.4"]
+                 [ch.qos.logback/logback-classic "1.0.7"]
+
+                 ; Web
+                 [ring "1.1.6"]
+                 [http-kit "2.0.0-RC4"]
+                 [compojure "1.1.3"]
+                 [com.cemerick/friend "0.1.3"]
+                 [stencil "0.3.1"]
+
+                 ;File System Utilities
+                 [fs "1.3.2"]
+
+                 ;Utilities
+                 [cheshire "5.0.0"]
+                 [clj-time "0.4.4"]
+                 [slingshot "0.10.3"]
+                 [org.clojure/data.xml "0.0.6"]
+                 [org.clojure/data.zip "0.1.1"]
+
+                 ]
+
+  :jvm-opts ["-Djava.awt.headless=true"
+             "-XX:+UseConcMarkSweepGC"
+             "-XX:+UseParNewGC"
+             "-XX:ParallelCMSThreads=4"
+             "-XX:+ExplicitGCInvokesConcurrent"
+             "-XX:+CMSParallelRemarkEnabled"
+             "-XX:-CMSIncrementalPacing"
+             "-XX:+UseCMSInitiatingOccupancyOnly"
+             "-XX:CMSIncrementalDutyCycle=100"
+             "-XX:CMSInitiatingOccupancyFraction=90"
+             "-XX:CMSIncrementalSafetyFactor=10"
+             "-XX:+CMSClassUnloadingEnabled"
+             "-XX:+DoEscapeAnalysis"
+             "-server"
+             "-Xmx1g"
+             "-d64"
+             "-dsa"
+             "-da"
+             ]
+  :properties { :project.build.sourceEncoding "UTF-8"}
+  :aot [clojurewebtemplate.core]
+  :main clojurewebtemplate.core
+)


lein-pprint in plugins

lein-pprint in plugins

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/michaelsbradleyjr/shen.clj.git/'


Bump to 3.2

Bump to 3.2

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/nvbn/rerenderer.git/'


Add project.clj as an alternative if boot fails

--- project.clj
+++ project.clj
@@ -0,0 +1,39 @@
+;; Copyright © 2016, JUXT LTD.
+
+(defproject juxt/edge "0.1.0-SNAPSHOT"
+  :description "A modular project created with lein new modular sse"
+  :url "http://github.com/juxt/edge"
+
+  :exclusions [com.stuartsierra/component]
+
+  :dependencies
+  [
+   ;; Infrastructure
+   [com.stuartsierra/component "0.3.1"]
+   [prismatic/schema "1.0.4"]
+   [org.clojure/core.async "0.2.374"]
+   [org.clojure/tools.reader "0.10.0"]
+
+   ;; Logging
+   [org.clojure/tools.logging "0.3.1"]
+   [org.slf4j/jcl-over-slf4j "1.7.13"]
+   [org.slf4j/jul-to-slf4j "1.7.13"]
+   [org.slf4j/log4j-over-slf4j "1.7.13"]
+   [ch.qos.logback/logback-classic "1.1.3" :exclusions [org.slf4j/slf4j-api]]
+
+   ;; Web
+   [aleph "0.4.1-beta3"]
+   [bidi "1.24.0"]
+   [hiccup "1.0.5"]
+   [org.omcljs/om "1.0.0-alpha28"]
+   [yada "1.1.0-20160126.014942-13"]
+   ]
+
+  :main edge.main
+
+  :repl-options {:init-ns user
+                 :welcome (println "Type (dev) to start")}
+
+  :profiles {:dev {:dependencies [[org.clojure/clojure "1.8.0"]
+                                  [org.clojure/tools.namespace "0.2.10"]]
+                   :source-paths ["dev"]}})


Trying to force lein to use env variables

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/screen6/bigquery-clj.git/'


Update dependencies

Update dependencies

--- project.clj
+++ project.clj
@@ -5,10 +5,10 @@
   :min-lein-version "2.0.0"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
-  :dependencies [[cljsjs/react "0.14.0-1" :scope "provided"]
-                 [cljsjs/react-dom "0.14.0-1" :scope "provided"]
+  :dependencies [[cljsjs/react "0.14.3-0" :scope "provided"]
+                 [cljsjs/react-dom "0.14.3-0" :scope "provided"]
                  [org.clojure/clojure "1.7.0" :scope "provided"]
-                 [org.clojure/clojurescript "1.7.145" :scope "provided"]]
+                 [org.clojure/clojurescript "1.7.170" :scope "provided"]]
   :aliases {"cleantest" ["do" "clean," "test," "cljsbuild" "test"]
             "deploy" ["do" "clean," "deploy" "clojars"]}
   :cljsbuild {:builds


Upgrade kehaar to 0.10.3

Upgrade kehaar to 0.10.3

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/voting-method-http-api.git/'


Bump version for stack overflow bugfix

Bump version for stack overflow bugfix

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/croeder/clojure-koans-work.git/'


Upgrade schema

Upgrade schema

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/vincentstorme/clojureme.git/'


[WM] update prismatic/schema to 0.4.4

[WM] update prismatic/schema to 0.4.4

While I'm in here I figured I'd bring this up to date too. According to the schema changelog, none of the changes should affect this app.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/user-http-api.git/'


Library upgrades

Library upgrades

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/couragelabs/coachbot.git/'


Assume mesos is installed in a standard location.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/pyr/bundes.git/'


Exclude clojure from codox deps

Exclude clojure from codox deps

This was causing dependencies to download all versions of Clojure.


Split library and developer dependencies

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/dignati/om-charts.git/'


Switch to lein-doo 0.1.6

Switch to lein-doo 0.1.6

--- project.clj
+++ project.clj
@@ -46,7 +46,7 @@
                                   [hickory "0.5.4"]
                                   [reagent "0.5.1"]]
                    :plugins [[lein-cljsbuild "1.1.1"]
-                             [lein-doo "0.1.6-rc.1"]]
+                             [lein-doo "0.1.6"]]
                    :resource-paths ["test-resources"]}
              :repl {:dependencies [[com.cemerick/piggieback "0.2.1"]]
                     :repl-options {:nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}}})


lein-release plugin: bumped version from 0.2.12 to 0.2.13-SNAPSHOT for next development cycle

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject sablono "0.2.12"
+(defproject sablono "0.2.13-SNAPSHOT"
   :description "Lisp style templating for Facebook's React."
   :url "http://github.com/r0man/sablono"
   :author "Roman Scherer"


Updated ClojureScript and reagent dependencies.

--- project.clj
+++ project.clj
@@ -8,9 +8,9 @@
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies [[com.facebook/react "0.8.0.1"]
                  [org.clojure/clojure "1.5.1"]
-                 [org.clojure/clojurescript "0.0-2156"]]
+                 [org.clojure/clojurescript "0.0-2173"]]
   :cljsbuild {:builds []}
-  :profiles {:dev {:dependencies [[reagent "0.2.1"]
+  :profiles {:dev {:dependencies [[reagent "0.4.2"]
                                   [crate "0.2.5"]
                                   [prismatic/dommy "0.1.2"]]
                    :plugins [[com.keminglabs/cljx "0.3.2"] ;; Must be before Austin: https://github.com/cemerick/austin/issues/37


Update deps

Update deps

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/election-authority-works.git/'


added clojure solution

added clojure solution

error: pathspec 'solutions/day10/solution.clj' did not match any file(s) known to git

--- solutions/day10/solution.clj
+++ solutions/day10/solution.clj
@@ -0,0 +1,10 @@
+(defn look-and-say
+  [string]
+  (->> string
+       (re-seq #"([0-9])\1*")
+       (map first)
+       (map #(str (count %) (first %)))
+       (apply str)))
+
+(println "part 1:" (count (nth (iterate look-and-say "1113122113") 40)))
+(println "part 2:" (count (nth (iterate look-and-say "1113122113") 50)))


Changed key names.

Changed key names.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/inchingforward/eon.git/'


path problems

path problems

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/jchli/jepsen-aurora.git/'


Missing source

Missing source

error: pathspec 'src-cljs/photon/ui/api.cljs' did not match any file(s) known to git

--- src-cljs/photon/ui/api.cljs
+++ src-cljs/photon/ui/api.cljs
@@ -0,0 +1,134 @@
+(ns photon.ui.api
+  (:require-macros [cljs.core.async.macros :refer [go]])
+  (:require [om.next :as om :refer-macros [defui]]
+            [om.dom :as dom]
+            [goog.net.cookies :as ck]
+            [photon.ui.ws :as ws]
+            [photon.ui.components :as comp]))
+
+(defui PhotonApps
+  static om/IQuery
+  (query [this] `[:security-info])
+  Object
+  (render
+   [this]
+   (let [{:keys [security-info]} (om/props this)
+         apps (vals (get (:security security-info) "admin"))
+         apps-table (map
+                     #(-> %
+                          (select-keys [:app-name :description :website])
+                          (assoc :meta/original %)
+                          (assoc :action/show-keys :action/show-keys))
+                     apps)]
+     (dom/div
+      nil
+      (dom/div
+       #js {:className "row"}
+       ((om/factory comp/FormButton)
+        {:text "Create new app"
+         :onClick
+         (fn [_]
+           (om/transact! this `[(ui/update {:k :selected-app :v nil})
+                                (ui/update {:k :new-app :v true})
+                                :ui-state]))}))
+      (dom/div
+       #js {:className "row"}
+       ((om/factory comp/Table)
+        {:data apps-table :owner this
+         :rows [:app-name :description :website :action/show-keys]}))))))
+
+(defui AppInfo
+  static om/IQuery
+  (query [this] `[:security-info])
+  Object
+  (render
+   [this]
+   (let [{:keys [ui-state security]} (:security-info (om/props this))]
+     (dom/div
+      nil
+      (dom/div
+       #js {:className "row"}
+       (if (:new-app ui-state)
+         (dom/form
+          #js {:className "form-horizontal form-label-left"
+               :onSubmit (fn [e] (.preventDefault e) false)}
+          (comp/label-input
+           {:owner this :key :aform/name
+            :val (:aform/name ui-state) :label "Name"})
+          (comp/label-input
+           {:owner this :key :aform/description
+            :val (:aform/description ui-state) :label "Description"})
+          (comp/label-input
+           {:owner this :key :aform/website
+            :val (:aform/website ui-state) :label "App website"})
+          (comp/form-button
+           {:text "Create application"
+            :onClick
+            (fn [_]
+              (go
+                (<!
+                 (ws/post-api "/auth/app"
+                              {:query-params
+                               {:name (:aform/name ui-state)
+                                :description (:aform/description ui-state)
+                                :website (:aform/website ui-state)}}))
+                (om/transact! this `[(ui/update {:k :new-app :v false})
+                                     :ui-state])))}))
+         (if-let [app (:selected-app ui-state)]
+           (dom/form
+            #js {:className "form-horizontal form-label-left"
+                 :onSubmit (fn [e] (.preventDefault e) false)}
+            (comp/label-label
+             {:label "Name" :second-label (:app-name app)})
+            (comp/label-label
+             {:label "Description" :second-label (:description app)})
+            (comp/label-label
+             {:label "Website" :second-label (:website app)})
+            (comp/label-label
+             {:label "Client ID" :second-label (str (:client-id app))})
+            (comp/label-label
+             {:label "Client secret" :second-label (str (:client-secret app))})
+            (comp/label-label
+             {:label "Test URL"
+              :second-label
+              (str "curl \"" (ck/get "server") "/api/ping?client_id="
+                   (:client-id app) "&client_secret="
+                   (:client-secret app) "\"")})
+            #_(comp/label-input
+             {:owner this :key :aform/description
+              :val (:aform/description ui-state) :label "Description"})
+            #_(comp/label-input
+             {:owner this :key :aform/website
+              :val (:aform/website ui-state) :label "App website"})
+            #_(comp/form-button
+             {:text "Create application"
+              :onClick
+              (fn [_]
+                (go
+                  (<!
+                   (ws/post-api "/auth/app"
+                                {:query-params
+                                 {:name (:aform/name ui-state)
+                                  :description (:aform/description ui-state)
+                                  :website (:aform/website ui-state)}}))
+                  (om/transact! this `[(ui/update {:k :new-app :v false})
+                                       :ui-state])))}))
+           (dom/p nil "Select and existing app or create a new one"))))))))
+
+(defui ManageKeys
+  static om/IQuery
+  (query [this] `[{:security-info ~(om/get-query AppInfo)}
+                  {:security-info ~(om/get-query PhotonApps)}])
+  Object
+  (render
+   [this]
+   (dom/div
+    #js {:className "row"}
+    ((om/factory comp/HalfPanel)
+     {:title "Photon Apps"
+      :component PhotonApps
+      :data (om/props this)})
+    ((om/factory comp/HalfPanel)
+     {:title "App Info"
+      :component AppInfo
+      :data {}}))))


Minor cleanup.

Minor cleanup.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/couragelabs/freefrog.git/'


type helpers now in apis section in types ns

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/michaelsbradleyjr/transwarp.git/'


minor comment change

minor comment change

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/scheduled-message-works.git/'


remove some printlns

remove some printlns


refactor: use get node data function

refactor: use get node data function

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/rodrigo-garcia-leon/semanario-universidad-newsletter.git/'


Pulled instrument code into its own namespace.

error: pathspec 'src/overtone/studio/inst.clj' did not match any file(s) known to git

--- src/overtone/studio/inst.clj
+++ src/overtone/studio/inst.clj
@@ -0,0 +1,163 @@
+(ns overtone.studio.inst
+  (:use
+    [overtone.sc server synth gens envelope node bus]
+    [overtone.sc.machinery defaults synthdef]
+    [overtone.sc.machinery.ugen fn-gen]
+    [overtone.sc.util :only (id-mapper)]
+    [overtone.studio mixer fx]
+    [overtone.util lib]
+    [overtone.libs event]))
+
+(defonce __MIXER-SYNTH__
+  (defsynth inst-mixer [in-bus 10 out-bus 0
+                        volume DEFAULT-VOLUME pan DEFAULT-PAN]
+    (let [snd (in in-bus)]
+      (out out-bus (pan2 snd pan volume)))))
+
+(defn inst-volume
+  "Control the volume for a single instrument."
+  [inst vol]
+  (ctl inst :volume vol)
+  (reset! (:volume inst) vol))
+
+(defn inst-pan
+  "Control the pan setting for a single instrument."
+  [inst pan]
+  (ctl inst :pan pan)
+  (reset! (:pan inst) pan))
+
+(defn inst-fx
+  "Append an effect to an instrument channel."
+  [inst fx]
+  (let [fx-group (:fx-group inst)
+        bus (:bus inst)
+        fx-id (fx :tgt fx-group :pos :tail :bus bus)]
+    fx-id))
+
+(defn clear-fx
+  [inst]
+  (group-clear (:fx-group inst))
+  :clear)
+
+(defmacro pre-inst
+  [& args]
+  (let [[sname params param-proxies ugen-form] (normalize-synth-args args)]
+    `(let [~@param-proxies]
+         (overtone.sc.machinery.ugen.fn-gen/with-overloaded-ugens
+           (let [form# ~@ugen-form
+                 n-chans# (if (seq? form#)
+                            (count form#)
+                            1)
+                 inst-bus# (or (:bus (get @instruments* ~sname)) (audio-bus n-chans#))
+                 [ugens# constants#] (gather-ugens-and-constants (out inst-bus# form#))
+                 ugens# (topological-sort-ugens ugens#)]
+             [~sname
+              ~params
+              ugens#
+              constants#
+              n-chans#
+              inst-bus#])))))
+
+(defrecord-ifn Inst [name params args ugens sdef
+                     group instance-group fx-group
+                     mixer bus fx-chain
+                     volume pan]
+    (fn [this & args] (apply synth-player name params this :tgt instance-group args)))
+
+(defn inst?
+  "Returns true if o is an instrument, false otherwise"
+  [o]
+  (= overtone.studio.inst.Inst (type o)))
+
+(defmacro inst
+  [sname & args]
+  `(let [[sname# params# ugens# constants# n-chans# inst-bus#] (pre-inst ~sname ~@args)
+         new-inst# (get @instruments* sname#)
+         container-group# (or (:group new-inst#)
+                              (group :tail @inst-group*))
+         instance-group#  (or (:instance-group new-inst#)
+                              (group :head container-group#))
+         fx-group#        (or (:fx-group new-inst#)
+                              (group :tail container-group#))
+         imixer#    (or (:mixer new-inst#)
+                        (inst-mixer :tgt container-group# :pos :tail :in-bus inst-bus#))
+         sdef#      (synthdef sname# params# ugens# constants#)
+         arg-names# (map :name params#)
+         params-with-vals# (map #(assoc % :value (atom (:default %))) params#)
+         fx-chain#  []
+         volume#    (atom DEFAULT-VOLUME)
+         pan#       (atom DEFAULT-PAN)
+         inst#      (with-meta
+                      (Inst. sname# params-with-vals# arg-names# ugens# sdef#
+                             container-group# instance-group# fx-group#
+                             imixer# inst-bus# fx-chain#
+                             volume# pan#)
+                      {:overtone.util.lib/to-string #(str (name (:type %)) ":" (:name %))})]
+
+     (load-synthdef sdef#)
+     (add-instrument inst#)
+     (event :new-inst :inst inst#)
+     inst#))
+
+(defmacro definst
+  "Define an instrument and return a player function. Arguments are a vector
+  of name/value parameter pairs, for example:
+
+  (definst inst-name [param0 value0 param1 value1 param2 value2] ...)
+
+  The returned player function takes any number of positional arguments,
+  followed by any number of keyword arguments. For example, all of the following
+  are equivalent:
+
+  (inst-name 0 1 2)
+  (inst-name 0 1 :param2 2)
+  (inst-name :param1 1 :param0 0 :param2 2)
+
+  Omitted parameters are given their default value from the instrument's
+  parameter list.
+
+  The instrument definition will be loaded immediately. Instruments differ
+  from basic synths in that they will automatically add pan2 and out ugens
+  when necessary to create a stereo synth. Also, each instrument is assigned
+  its own group which all instances will automatically be placed in. This
+  allows you to control all of an instrument's running synths with one command:
+
+  (ctl inst-name :param0 val0 :param1 val1)
+
+  You may also kill all of an instrument's running synths:
+
+  (kill inst-name)
+
+  A doc string may also be included between the instrument's name ant
+  parameter list:
+
+  (definst lucille
+    \"What's that Lucille?\"
+    [] ...)
+  "
+  [i-name & inst-form]
+  (let [[i-name params ugen-form] (synth-form i-name inst-form)
+        i-name (with-meta i-name (merge (meta i-name) {:type ::instrument}))]
+    `(def ~i-name (inst ~i-name ~params ~ugen-form))))
+
+(defmethod print-method ::instrument [ins w]
+  (let [info (meta ins)]
+    (.write w (format "#<instrument: %s>" (:name info)))))
+
+(defmethod overtone.sc.node/kill :overtone.studio.mixer/instrument
+  [& args]
+  (doseq [inst args]
+    (group-clear (:instance-group inst))))
+
+(defmethod overtone.sc.node/ctl :overtone.studio.mixer/instrument
+  [inst & ctls]
+  (apply node-control (:instance-group inst) (id-mapper ctls))
+  (apply modify-synth-params inst ctls))
+
+(defn load-instruments []
+  (doseq [synth (filter #(synthdef? %1)
+                        (map #(var-get %1)
+                             (vals (ns-publics 'overtone.instrument))))]
+    (load-synthdef synth)))
+
+


add in slash-stripping middleware

add in slash-stripping middleware

--- src/clojars/web.clj
+++ src/clojars/web.clj
@@ -8,7 +8,8 @@
              [config :refer [config]]
              [db :as db]
              [errors :refer [wrap-exceptions]]
-             [http-utils :refer [wrap-x-frame-options wrap-secure-session]]]
+             [http-utils :refer [wrap-x-frame-options wrap-secure-session]]
+             [middleware :refer [wrap-ignore-trailing-slash]]]
             [clojars.friend.registration :as registration]
             [clojars.routes
              [api :as api]
@@ -127,7 +128,8 @@
        (wrap-secure-session)
        (wrap-resource "public")
        (wrap-content-type)
-       (wrap-not-modified))))
+       (wrap-not-modified)
+       (wrap-ignore-trailing-slash))))

 (defn handler-optioned [{:keys [db error-reporter stats search mailer]}]
   (clojars-app (:spec db) error-reporter stats search mailer))


Renderer core functions

Renderer core functions

error: pathspec 'src/wireframes/renderer.clj' did not match any file(s) known to git

--- src/wireframes/renderer.clj
+++ src/wireframes/renderer.clj
@@ -0,0 +1,19 @@
+(ns wireframes.renderer
+  (:require [wireframes.transform :as t]))
+
+(defn priority-fill [points polygon]
+  (->>
+    polygon
+    (map (comp peek points))
+    (reduce +)
+    -))
+
+(defn get-3d-points [transform shape]
+  (mapv
+    (partial t/transform-point transform)
+    (:points shape)))
+
+(defn get-2d-points [focal-length points-3d]
+  (mapv
+    (t/perspective focal-length)
+    points-3d))


mark integration test as :integration

mark integration test as :integration

--- test/clj_http/test/core.clj
+++ test/clj_http/test/core.clj
@@ -187,7 +187,7 @@
         body (slurp stream)]
     (is (= "get" body))))

-(deftest throw-on-too-many-redirects
+(deftest ^{:integration true} throw-on-too-many-redirects
   (run-server)
   (let [resp (client/get "http://localhost:18080/redirect"
                {:max-redirects 2 :throw-exceptions false})]


Stub for middleware_test.clj

Stub for middleware_test.clj

error: pathspec 'test/zg/middleware_test.clj' did not match any file(s) known to git

--- test/zg/middleware_test.clj
+++ test/zg/middleware_test.clj
@@ -0,0 +1,13 @@
+(ns zg.middleware-test
+  (:require [clojure.test :refer :all]
+            [zg.middleware :refer :all]))
+
+;
+; Common functions used by tests.
+;
+
+(defn callable?
+    "Test if given function-name is bound to the real function."
+    [function-name]
+    (clojure.test/function? function-name))
+


Matching upstream 562e6ccc9265979c586c2afc2f50a388e6c3c03e

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/shaunstanislaus/cljs2go.git/'


more work to filter table and field listings to :active true

--- src/metabase/api/meta/table.clj
+++ src/metabase/api/meta/table.clj
@@ -24,7 +24,7 @@
   [org]
   {org Required}
   (let [db-ids (sel :many :id Database :organization_id org)]
-    (-> (sel :many Table :db_id [in db-ids] (order :name :ASC))
+    (-> (sel :many Table :active true :db_id [in db-ids] (order :name :ASC))
         (hydrate :db))))

@@ -49,7 +49,7 @@
   "Get all `Fields` for `Table` with ID."
   [id]
   ;; TODO: READ CHECK ?
-  (sel :many Field :table_id id (order :name :ASC)))
+  (sel :many Field :table_id id :active true (order :name :ASC)))

 (defendpoint GET "/:id/query_metadata" [id]
   (->404 (sel :one Table :id id)
@@ -59,7 +59,7 @@
   "Get all `ForeignKeys` whose destination is a `Field` that belongs to this `Table`."
   [id]
   (read-check Table id)
-  (let-404 [field-ids (sel :many :id Field :table_id id)]
+  (let-404 [field-ids (sel :many :id Field :table_id id :active true)]
     (-> (sel :many ForeignKey :destination_id [in field-ids])
         ;; TODO - it's a little silly to hydrate both of these table objects
         (hydrate [:origin [:table :db]] [:destination :table]))))


Stub for new module: dictionary-interface

error: pathspec 'src/zg/dictionary_interface.clj' did not match any file(s) known to git

--- src/zg/dictionary_interface.clj
+++ src/zg/dictionary_interface.clj
@@ -0,0 +1,15 @@
+;
+;  (C) Copyright 2016  Pavel Tisnovsky
+;
+;  All rights reserved. This program and the accompanying materials
+;  are made available under the terms of the Eclipse Public License v1.0
+;  which accompanies this distribution, and is available at
+;  http://www.eclipse.org/legal/epl-v10.html
+;
+;  Contributors:
+;      Pavel Tisnovsky
+;
+
+(ns zg.dictionary-interface
+    "Functions providing dictionary interface.")
+


Adding code for testing implementations of «context-from-clop»

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

error: pathspec 'stuff/code/context-for-clop.clj' did not match any file(s) known to git

--- stuff/code/context-for-clop.clj
+++ stuff/code/context-for-clop.clj
@@ -0,0 +1,116 @@
+;; -*- clojure -*-
+
+(use 'conexp.main)
+
+;;
+
+(defn context-for-clop-v0
+  "Computes context for clop the naive way."
+  [c M]
+  (let [K (make-context (all-closed-sets M c)
+                        M
+                        #(contains? %1 %2))]
+    (reduce-objects K)))
+
+;;
+
+(defn context-for-clop-v1
+  "Computes context for clop with AE."
+  [c M]
+  (let [K (:context
+           (explore-attributes (make-context [] M [])
+                               :handler (fn [_ _ impl]
+                                          (let [A (premise impl),
+                                                B (conclusion impl),
+                                                cA (c A)]
+                                            (if (subset? B cA)
+                                              nil
+                                              [[(gensym), cA]])))))]
+    (reduce-objects K)))
+
+;;
+
+(defn maximal-counterexample
+  [c M B C m]
+  (loop [C C,
+         elts (difference (disj M m) C)]
+    (if (empty? elts)
+      C
+      (let [n (first elts),
+            new-C (c (conj C n))]
+        (if (contains? new-C m)
+          (recur C (rest elts))
+          (recur new-C (rest elts)))))))
+
+(defn context-for-clop-v2
+  "Computes context for clop with AE and maximal counterexamples."
+  [c M]
+  (:context
+   (explore-attributes (make-context #{} M #{})
+                       :handler (fn [_ _ impl]
+                                  (let [A (premise impl),
+                                        B (conclusion impl),
+                                        C (c A)]
+                                    (when-not (subset? B C)
+                                      [[(gensym),
+                                        (maximal-counterexample c M B C
+                                                                (first (difference B C)))]]))))))
+
+;;
+
+(defn context-for-clop-v3
+  "Computes context for clop with AE and multiple maximal
+  counterexamples."
+  [c M]
+  (:context
+   (explore-attributes (make-context #{} M #{})
+                       :handler (fn [_ _ impl]
+                                  (let [A (premise impl),
+                                        B (conclusion impl),
+                                        C (c A)]
+                                    (when-not (subset? B C)
+                                      (map #(vector (gensym) %)
+                                           (distinct
+                                            (map #(maximal-counterexample c M B C %)
+                                                 (difference B C))))))))))
+
+;;; Testing
+
+(use 'clojure.pprint)
+
+(defmacro time* [& body]
+  `(let [start# (System/currentTimeMillis)]
+     ~@body
+     (/ (- (System/currentTimeMillis)
+           start#)
+        1000.0)))
+
+(defn test-context-for-clop-versions [number-of-contexts size-limit]
+  (doseq [ctx  (take number-of-contexts
+                     (remove #(or (empty? (objects %))
+                                  (empty? (attributes %)))
+                             (repeatedly #(rand-context size-limit size-limit (rand 1.0)))))]
+    (let [cntr   (atom 0)
+          clop   #(do (swap! cntr inc)
+                      (context-attribute-closure ctx %)),
+          M      (attributes ctx),
+          reset! (fn [atom]
+                   (let [val @atom]
+                     (reset! atom 0)
+                     val))]
+      (cl-format *out*
+                 "~5d ~5d | ~7,3f ~5d | ~7,3f ~5d | ~7,3f ~5d | ~7,3f ~5d~%"
+                 (count (concepts ctx))
+                 (count (pseudo-intents ctx))
+                 (time* (context-for-clop-v0 clop M))
+                 (reset! cntr)
+                 (time* (context-for-clop-v1 clop M))
+                 (reset! cntr)
+                 (time* (context-for-clop-v2 clop M))
+                 (reset! cntr)
+                 (time* (context-for-clop-v3 clop M))
+                 (reset! cntr)))))
+
+;;
+
+nil


Match all of the files.

Match all of the files.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/cstorey/nrod.git/'


css folder is added into generated dir

css folder is added into generated dir

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Zallin/fhirvc.git/'


Correct sources index

Correct sources index

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/physion/ovation-webapi.git/'


cjl - Added problem module

cjl - Added problem module

error: pathspec 'src/icfp2015/problem.clj' did not match any file(s) known to git

--- src/icfp2015/problem.clj
+++ src/icfp2015/problem.clj
@@ -0,0 +1,24 @@
+(ns icfp2015.problem)
+
+; a problem is just the parsed representation of the input
+; { :id 0
+;   :width 10
+;   :height 10
+;   :sourceSeeds [ 0 17 5235 ]
+;   :sourceLength 100
+;   :filled [ { :x 5 :y 4 } { :x 6 :y 2 } ]
+;   :units [ { :members [ { :x 1 :y 2 } { :x 0 :y 5 } ]
+;              :pivot { :x 0 :y 0 } }
+;            { :members [ { :x 0 :y 1 } { :x 5 :y 2 } ]
+;              :pivot { :x 0 :y 1 } } ] }
+;
+; a game looks like this
+; { :width 10
+;   :height 10
+;   :filled [ { :x 5 :y 4 } { :x 6 :y 2 } ]
+;   :units [ { :members [ { :x 1 :y 2 } { :x 0 :y 5 } ]
+;              :pivot { :x 0 :y 0 } } ] }
+(defn get-games
+  "Returns (count (:sourceSeeds problem)) games given a problem."
+  [problem]
+  nil)


pr comments

pr comments

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/starcity-properties/odin.git/'


Yay, generative testing!

Yay, generative testing!

error: pathspec 'test/icecap/crypto_test.clj' did not match any file(s) known to git

--- test/icecap/crypto_test.clj
+++ test/icecap/crypto_test.clj
@@ -0,0 +1,26 @@
+(ns icecap.crypto-test
+  (:refer-clojure :exclude [derive])
+  (:require [icecap.crypto :refer :all]
+            [caesium.crypto.util :refer [array-eq]]
+            [clojure.test :refer :all]
+            [clojure.test.check.generators :as gen]
+            [clojure.test.check.properties :as prop]
+            [clojure.test.check.clojure-test :refer [defspec]]))
+
+(defn n-bytes
+  [n]
+  (gen/fmap byte-array (gen/vector gen/byte n)))
+
+(defn scheme-roundtrip-prop
+  [scheme key-length]
+  (prop/for-all [key (n-bytes key-length)
+                 message gen/bytes]
+                (->> message
+                     (encrypt scheme key)
+                     (decrypt scheme key)
+                     (array-eq message))))
+
+(defspec secretbox-scheme-roundtrip
+  (scheme-roundtrip-prop (secretbox-scheme) 32))
+(defspec bogus-scheme-roundtrip
+  (scheme-roundtrip-prop (bogus-scheme) 16))


Enabled drop-down with group test.

Enabled drop-down with group test.

--- test/sablono/core_test.cljs
+++ test/sablono/core_test.cljs
@@ -294,9 +294,9 @@
   (testing "radio-button"
     (is (= (html-str (with-group :foo (html/radio-button :bar false "val")))
            "<input id=\"foo-bar-val\" type=\"radio\" name=\"foo[bar]\" value=\"val\">")))
-  ;; (testing "drop-down"
-  ;;   (is (= (html-str (with-group :foo (html/drop-down :bar [])))
-  ;;          (str "<select id=\"foo-bar\" name=\"foo[bar]\"></select>"))))
+  (testing "drop-down"
+    (is (= (html-str (with-group :foo (html/drop-down :bar [])))
+           (str "<select id=\"foo-bar\" name=\"foo[bar]\"></select>"))))
   (testing "text-area"
     (is (= (html-str (with-group :foo (html/text-area :bar)))
            "<textarea id=\"foo-bar\" name=\"foo[bar]\" value=\"\"></textarea>")))


La til Clojure-løsning på Frenemies

La til Clojure-løsning på Frenemies

error: pathspec 'frenemies/larstvei.clj' did not match any file(s) known to git

--- frenemies/larstvei.clj
+++ frenemies/larstvei.clj
@@ -0,0 +1,14 @@
+(require '[clojure.string :refer [split]]
+         '[clojure.java.io :refer [reader]])
+
+(defn add [[friends hatemap] data]
+  (if (= (data 0) "friends")
+    [(conj friends (vec (rest data))) hatemap]
+    [friends (update hatemap (data 0) (fnil conj #{}) (data 2))]))
+
+(defn frenemies [hatemap [a b]]
+  (and ((fnil (hatemap a) #{}) b) ((fnil (hatemap b) #{}) a)))
+
+(let [data (map #(split % #" ") (line-seq (reader *in*)))
+      [friends hatemap] (reduce add [#{} {}] data)]
+  (-> (filter (partial frenemies hatemap) friends) count println))


epub eta azala "" ez

epub eta azala "" ez

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/lnmnd/magnet.zer.git/'


using cores+1 count for pool

using cores+1 count for pool

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/narkisr/cloujsearch.git/'


elections clj helper added

elections clj helper added

error: pathspec 'src/clj/backtype/storm/nimbus/elections.clj' did not match any file(s) known to git

--- src/clj/backtype/storm/nimbus/elections.clj
+++ src/clj/backtype/storm/nimbus/elections.clj
@@ -0,0 +1,23 @@
+(ns backtype.storm.nimbus.elections
+  (:import [backtype.storm.nimbus NimbusLeaderElections])
+  (:use [backtype.storm config util]))
+
+(defn local-hostname-conf [conf]
+  (if (contains? conf STORM-LOCAL-HOSTNAME)
+    (conf STORM-LOCAL-HOSTNAME)
+    (local-hostname)))
+
+(defn get-nimbus-leader-host [conf]
+  (let [leader-elections (NimbusLeaderElections.)]
+    (.init leader-elections conf nil)
+    (.getLeaderId leader-elections)))
+
+(defn await-leadership [conf]
+  (let [leader-elections (NimbusLeaderElections.)]
+    (.init leader-elections conf (local-hostname-conf conf))
+    (.awaitLeadership leader-elections)
+    leader-elections))
+
+(defn ensureLeadership [leader-elections]
+  ;; todo replace RE with some specific exception, supported by Nimbus thrift service
+  (when-not (.hasLeadership leader-elections) (throw (RuntimeException. "Not a leader"))))


fix validation for selection state in multiple selection cards


added spell_error.clj, while unfinished

added spell_error.clj, while unfinished

error: pathspec 'src/data_mall/spell_error.clj' did not match any file(s) known to git

--- src/data_mall/spell_error.clj
+++ src/data_mall/spell_error.clj
@@ -0,0 +1,28 @@
+(ns data-mall.spell-error
+  (:require [clojure.string :as string])
+  (:use [clojure.set :only (union)]))
+
+(defn words
+  [text]
+  (re-seq #"[a-z]+" (string/lower-case text)))
+
+
+(defn train
+  [feats] (frequencies feats))
+
+(def n-words
+  (train (words (slurp "D:/data/big.txt"))))
+
+(def alphabet "abcdefghijklmnopqrstuvwxyz")
+
+(defn split-word
+  [word i]
+  [(.substring word 0 i) (.substring word i)])
+
+(defn delete-char
+  [[w1 w2]]
+  (str w1 (.substring w2 1)))
+
+
+
+;(words "Mama takes good care of me.")


fixes campus-addresses breaking the partner-site import

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/partner-works.git/'


day 8

day 8

error: pathspec 'src/adventofcode/day8.clj' did not match any file(s) known to git

--- src/adventofcode/day8.clj
+++ src/adventofcode/day8.clj
@@ -0,0 +1,27 @@
+(ns adventofcode.day8
+  (:require [clojure.string :as str]))
+
+(defn decrease [s]
+  (- (count s)
+     (-> s
+         (str/replace #"^\"" "")
+         (str/replace #"\"$" "")
+         (str/replace #"\\\"" "\"")
+         (str/replace #"\\\\" "q")
+         (str/replace #"\\x[0-9a-f]{2}" "q")
+         count)))
+
+(defn increase [s]
+  (- (-> s
+         (str/replace #"^\"" "qqq")
+         (str/replace #"\"$" "qqq")
+         (str/replace #"\\\"" "qqqq")
+         (str/replace #"\\\\" "qqqq")
+         (str/replace #"\\x[0-9a-f]{2}" "qqqqq")
+         count)
+     (count s)))
+
+(defn total [s f]
+  (->> (str/split s #"\n")
+       (map f)
+       (reduce +)))


Most recent by geo.

Most recent by geo.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/mtravers/incidents.git/'


Fixed copyright.

Fixed copyright.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/couragelabs/coachbot.git/'


removed commented code

removed commented code

--- test/selmer/core_test.clj
+++ test/selmer/core_test.clj
@@ -162,8 +162,7 @@

 (deftest filter-date
   (let [date (java.util.Date.)]
-    (is (= ;;"1970-01-01_00:00:00"
-          (.format (java.text.SimpleDateFormat. "yyyy-MM-dd_HH:mm:ss") date)
+    (is (= (.format (java.text.SimpleDateFormat. "yyyy-MM-dd_HH:mm:ss") date)
            (render-string "{{f|date:\"yyyy-MM-dd_HH:mm:ss\"}}" {:f date})))))

 (deftest filter-hash-md5


Finished enough to start testing a few ops

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/thinktopic/netlib-ccm.git/'


Tag /roles with "teams"

Tag /roles with "teams"


the problem lies in the trying to eval and catch exception to figure out what's needed

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/michaelsbradleyjr/shen.clj.git/'


wait for elasticsearch to start

wait for elasticsearch to start

error: pathspec 'src/wb_es/web/setup.clj' did not match any file(s) known to git

--- src/wb_es/web/setup.clj
+++ src/wb_es/web/setup.clj
@@ -0,0 +1,66 @@
+(ns wb-es.web.setup
+  (:gen-class)
+  (:require [clj-http.client :as http]
+            [cheshire.core :as json]
+            [wb-es.env :refer [es-base-url release-id]]))
+
+
+
+;; figure out which index to connect to
+
+;; assert the index is available
+
+(defn has-index
+  [index-id]
+  (let [response (http/get (format "%s/%s" es-base-url index-id))]
+    (= 200 (:status response))))
+
+(defn es-connect
+  []
+  (let [max-retry 50
+        interval 1000
+        counter (atom 0)
+        connected (atom false)]
+    (do
+      (println (format "Trying to connect to %s" es-base-url))
+      (while (not (deref connected))
+        (do
+          (swap! counter inc)
+          (try
+            (do
+              (http/get es-base-url)
+              (swap! connected not)
+              (println "Connected."))
+            (catch Exception e
+              (if (>= (deref counter) max-retry)
+                (throw (Exception. (format "Failed to connect to %s, terminated" es-base-url)))
+                (do
+                  (print ".")
+                  (flush)
+                  (Thread/sleep interval))))))))))
+
+
+
+;; (let [
+;;       response
+;;       (http/get (format "%s/%s" es-base-url index)
+;;                 {:content-type "application/json"
+;;                  :body (json/generate-string query)})]
+;;   (json/parse-string (:body response) true))
+
+
+;; if unavailable is provided:
+;; attempt to restore it from snapshot
+
+;; figure out which snapshot id to use
+;;
+;; wait until restoration finishes
+
+(defn -main
+  "I don't do a whole lot ... yet."
+  [& args]
+  (let [index-id release-id]
+    (if (has-index index-id)
+      (println (format "Index %s found, starting server..."))
+      (do
+        ))))


whitespace

whitespace

--- support/src/figwheel/client/file_reloading.cljs
+++ support/src/figwheel/client/file_reloading.cljs
@@ -14,7 +14,7 @@
 (declare reload-file* resolve-ns)

 ;; you can listen to this event easily like so:
-;; document.body.addEventListener("figwheel.js-reload", function (e) { console.log(e.detail);} );
+;; document.body.addEventListener("figwheel.js-reload", function (e) {console.log(e.detail);} );
 (defn on-jsload-custom-event [url]
   (utils/dispatch-custom-event "figwheel.js-reload" url))


Fixes Firefox rendering issue

Fixes Firefox rendering issue

--- src/day8/re_frame_10x/common_styles.cljs
+++ src/day8/re_frame_10x/common_styles.cljs
@@ -205,7 +205,8 @@

    ;; Default text color overrides
    [:body {:color default-text-color}]
-   [:.form-control {:color default-text-color}]
+   [:.form-control {:color default-text-color
+                    :width "100%"}]
    [:.btn-default {:color default-text-color}]
    [:.raptor-editable-block {:color default-text-color}]


Fix the setup data for a test reading from the sites-list.edn

--- test/clj/comic_reader/sites/read_test.clj
+++ test/clj/comic_reader/sites/read_test.clj
@@ -75,7 +75,7 @@
              (contains? (set (sut/get-sites-list)) "test"))))

   (with-file-contents ["sites/test.site.edn" nil
-                       "sites-list.edn" "[foobar]"]
+                       "sites-list.edn" "[\"foobar\"]"]
     (t/is (= false
              (contains? (set (sut/get-sites-list)) "test")))
     (t/is (= true


vec2 cljs

vec2 cljs

error: pathspec 'src/cljs/infinitelives/utils/vec2.cljs' did not match any file(s) known to git

--- src/cljs/infinitelives/utils/vec2.cljs
+++ src/cljs/infinitelives/utils/vec2.cljs
@@ -0,0 +1,20 @@
+(ns
+    ^{:doc "Vectors with 2 Dimensions. Utilises underlying google vector code."}
+  infinitelives.utils.vec2
+  (:require
+   [goog.vec.Vec2 :as Vec2]))
+
+(def
+  ^{:arglist '([x y])
+    :doc "Create a two dimensional vector #<x,y>"}
+  vec2 Vec2/createFloat64FromValues)
+
+(def
+  ^{:arglist '([])
+   :doc "Return the zero two dimensional vector #<0,0>"}
+  make Vec2/createFloat64)
+
+(def
+  ^{:arglist '([])
+   :doc "Return the zero two dimensional vector #<0,0>"}
+  zero Vec2/createFloat64)


rev comment

rev comment

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/michaelsbradleyjr/transwarp.git/'


placeholder: more maps in Clojure

placeholder: more maps in Clojure

error: pathspec 'clojure/maps-again.clj' did not match any file(s) known to git

--- clojure/maps-again.clj
+++ clojure/maps-again.clj
@@ -0,0 +1,28 @@
+(def person
+  {:first-name "Kelly"
+   :last-name "Keen"
+   :age 32
+   :occupation "Programmer"})
+(println person)
+(println (keys person))
+(println (vals person))
+(println (get person :occupation))
+(println (person :occupation))
+(println (:occupation person))
+(println (:favorite-color person "green"))
+
+(def person (assoc person :occupation "Pro Cyclist"))
+(def person (dissoc person :age))
+(println person)
+
+(def company
+  {:name "WidgetCo"
+   :address {:street "123 Main St"
+             :city "Springfield"
+             :state "IL"}})
+(println company)
+(println (get-in company [:address :city]))
+
+(def company (assoc-in company [:address :street] "303 Broadway"))
+(def company (assoc-in company [:address :country] "USA"))
+(println company)


benchmark reports QPS instead of Count

benchmark reports QPS instead of Count

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/altamiracorp/honeycomb.git/'


HTTP client sample with async mode

HTTP client sample with async mode

error: pathspec '2017/clojure-blocking-async/src/clojure_blocking_async/http_client_async.clj' did not match any file(s) known to git

--- 2017/clojure-blocking-async/src/clojure_blocking_async/http_client_async.clj
+++ 2017/clojure-blocking-async/src/clojure_blocking_async/http_client_async.clj
@@ -0,0 +1,35 @@
+;;; Concurrent HTTP client using the asynchronous API of clj-http in conjunction
+;;; with go-blocks.
+(ns clojure-blocking-async.http-client-async
+  (:require [clojure.core.async :as async])
+  (:require [clj-http.client]))
+
+(def url-template "https://github.com/eliben/pycparser/pull/%d")
+
+(defn go-async-generator
+  [c start n]
+  (doseq [i (range start (+ start n))]
+    (clj-http.client/get
+      (format url-template i)
+      {:async? true}
+      (fn [response]
+        (async/go (async/>! c response)))
+      ;; Exception callback.
+      (fn [exc]
+        (throw exc)))))
+
+(defn get-multiple
+  [generator-fn start n]
+  (let [c (async/chan)]
+    (generator-fn c start n)
+    (loop [i 0
+           res []]
+      (if (= i n)
+        res
+        (recur (inc i) (conj res (async/<!! c)))))))
+
+(def start 10)
+(def num-results 20)
+
+(let [results (time (get-multiple go-async-generator start num-results))]
+  (printf "Have %d results%n" (count results)))


I like indenting things pretty

I like indenting things pretty

--- src/metabase/api/search.clj
+++ src/metabase/api/search.clj
@@ -63,10 +63,10 @@
                    (->> models                                   ; otherwise get the corresponding search choice maps
                         (map keyword)
                         (map search-choices)))
-        results (results-for-models models q)
-        offset (* results_per_page (- page 1))
-        num-results (count results)
-        num-pages (math/ceil (/ num-results results_per_page))
+        results      (results-for-models models q)
+        offset       (* results_per_page (- page 1))
+        num-results  (count results)
+        num-pages    (math/ceil (/ num-results results_per_page))
         page-results (->> results
                           (drop offset)
                           (take results_per_page))]


more notes re :precache

more notes re :precache


Moved ** to util namespace and added a median compute function.

error: pathspec 'src/clojure_robby/util.clj' did not match any file(s) known to git

--- src/clojure_robby/util.clj
+++ src/clojure_robby/util.clj
@@ -0,0 +1,14 @@
+(ns clojure-robby.util)
+
+(defn ** [x n]
+  "Raises x to the power of n."
+  (reduce * (repeat n x)))
+
+(defn median [ns]
+  (let [ns (sort ns)
+        cnt (count ns)
+        mid (bit-shift-right cnt 1)]
+    (if (odd? cnt)
+      (nth ns mid)
+      (/ (+ (nth ns mid) (nth ns (dec mid))) 2))))
+


Add log

Add log

--- src/obb_rules_api/turn.clj
+++ src/obb_rules_api/turn.clj
@@ -21,6 +21,7 @@
 (defn get-raw-json
   "Retrieves the raw json from the given request"
   [raw]
+  (println raw)
   (if-let [body (get-in raw [:params :context])]
     body
     (slurp (:body raw))))


Remove redundant comments

Remove redundant comments

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Reefersleep/sleepydo.git/'


Improved program structure, now using sub-functions, try/catch w/ exceptions.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/jtbeckha/alda.git/'


Add ant simulation example

Add ant simulation example

error: pathspec 'examples/ants.clj' did not match any file(s) known to git

--- examples/ants.clj
+++ examples/ants.clj
@@ -0,0 +1,325 @@
+#!/usr/bin/env inlein
+
+'{:dependencies [[org.clojure/clojure "1.0.0"]]}
+
+;; Only the lines above were modified from the original ant simulation. The
+;; original code is left as is.
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ant sim ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;   Copyright (c) Rich Hickey. All rights reserved.
+;   The use and distribution terms for this software are covered by the
+;   Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+;   which can be found in the file CPL.TXT at the root of this distribution.
+;   By using this software in any fashion, you are agreeing to be bound by
+;   the terms of this license.
+;   You must not remove this notice, or any other, from this software.
+
+;dimensions of square world
+(def dim 80)
+;number of ants = nants-sqrt^2
+(def nants-sqrt 7)
+;number of places with food
+(def food-places 35)
+;range of amount of food at a place
+(def food-range 100)
+;scale factor for pheromone drawing
+(def pher-scale 20.0)
+;scale factor for food drawing
+(def food-scale 30.0)
+;evaporation rate
+(def evap-rate 0.99)
+
+(def animation-sleep-ms 100)
+(def ant-sleep-ms 40)
+(def evap-sleep-ms 1000)
+
+(def running true)
+
+(defstruct cell :food :pher) ;may also have :ant and :home
+
+;world is a 2d vector of refs to cells
+(def world
+     (apply vector
+            (map (fn [_]
+                   (apply vector (map (fn [_] (ref (struct cell 0 0)))
+                                      (range dim))))
+                 (range dim))))
+
+(defn place [[x y]]
+  (-> world (nth x) (nth y)))
+
+(defstruct ant :dir) ;may also have :food
+
+(defn create-ant
+  "create an ant at the location, returning an ant agent on the location"
+  [loc dir]
+    (sync nil
+      (let [p (place loc)
+            a (struct ant dir)]
+        (alter p assoc :ant a)
+        (agent loc))))
+
+(def home-off (/ dim 4))
+(def home-range (range home-off (+ nants-sqrt home-off)))
+
+(defn setup
+  "places initial food and ants, returns seq of ant agents"
+  []
+  (sync nil
+    (dotimes [i food-places]
+      (let [p (place [(rand-int dim) (rand-int dim)])]
+        (alter p assoc :food (rand-int food-range))))
+    (doall
+     (for [x home-range y home-range]
+       (do
+         (alter (place [x y])
+                assoc :home true)
+         (create-ant [x y] (rand-int 8)))))))
+
+(defn bound
+  "returns n wrapped into range 0-b"
+  [b n]
+    (let [n (rem n b)]
+      (if (neg? n)
+        (+ n b)
+        n)))
+
+(defn wrand
+  "given a vector of slice sizes, returns the index of a slice given a
+  random spin of a roulette wheel with compartments proportional to
+  slices."
+  [slices]
+  (let [total (reduce + slices)
+        r (rand total)]
+    (loop [i 0 sum 0]
+      (if (< r (+ (slices i) sum))
+        i
+        (recur (inc i) (+ (slices i) sum))))))
+
+;dirs are 0-7, starting at north and going clockwise
+;these are the deltas in order to move one step in given dir
+(def dir-delta {0 [0 -1]
+                1 [1 -1]
+                2 [1 0]
+                3 [1 1]
+                4 [0 1]
+                5 [-1 1]
+                6 [-1 0]
+                7 [-1 -1]})
+
+(defn delta-loc
+  "returns the location one step in the given dir. Note the world is a torus"
+  [[x y] dir]
+    (let [[dx dy] (dir-delta (bound 8 dir))]
+      [(bound dim (+ x dx)) (bound dim (+ y dy))]))
+
+;(defmacro dosync [& body]
+;  `(sync nil ~@body))
+
+;ant agent functions
+;an ant agent tracks the location of an ant, and controls the behavior of
+;the ant at that location
+
+(defn turn
+  "turns the ant at the location by the given amount"
+  [loc amt]
+    (dosync
+     (let [p (place loc)
+           ant (:ant @p)]
+       (alter p assoc :ant (assoc ant :dir (bound 8 (+ (:dir ant) amt))))))
+    loc)
+
+(defn move
+  "moves the ant in the direction it is heading. Must be called in a
+  transaction that has verified the way is clear"
+  [loc]
+     (let [oldp (place loc)
+           ant (:ant @oldp)
+           newloc (delta-loc loc (:dir ant))
+           p (place newloc)]
+         ;move the ant
+       (alter p assoc :ant ant)
+       (alter oldp dissoc :ant)
+         ;leave pheromone trail
+       (when-not (:home @oldp)
+         (alter oldp assoc :pher (inc (:pher @oldp))))
+       newloc))
+
+(defn take-food [loc]
+  "Takes one food from current location. Must be called in a
+  transaction that has verified there is food available"
+  (let [p (place loc)
+        ant (:ant @p)]
+    (alter p assoc
+           :food (dec (:food @p))
+           :ant (assoc ant :food true))
+    loc))
+
+(defn drop-food [loc]
+  "Drops food at current location. Must be called in a
+  transaction that has verified the ant has food"
+  (let [p (place loc)
+        ant (:ant @p)]
+    (alter p assoc
+           :food (inc (:food @p))
+           :ant (dissoc ant :food))
+    loc))
+
+(defn rank-by
+  "returns a map of xs to their 1-based rank when sorted by keyfn"
+  [keyfn xs]
+  (let [sorted (sort-by (comp float keyfn) xs)]
+    (reduce (fn [ret i] (assoc ret (nth sorted i) (inc i)))
+            {} (range (count sorted)))))
+
+(defn behave
+  "the main function for the ant agent"
+  [loc]
+  (let [p (place loc)
+        ant (:ant @p)
+        ahead (place (delta-loc loc (:dir ant)))
+        ahead-left (place (delta-loc loc (dec (:dir ant))))
+        ahead-right (place (delta-loc loc (inc (:dir ant))))
+        places [ahead ahead-left ahead-right]]
+    (. Thread (sleep ant-sleep-ms))
+    (dosync
+     (when running
+       (send-off *agent* #'behave))
+     (if (:food ant)
+       ;going home
+       (cond
+        (:home @p)
+          (-> loc drop-food (turn 4))
+        (and (:home @ahead) (not (:ant @ahead)))
+          (move loc)
+        :else
+          (let [ranks (merge-with +
+                        (rank-by (comp #(if (:home %) 1 0) deref) places)
+                        (rank-by (comp :pher deref) places))]
+          (([move #(turn % -1) #(turn % 1)]
+            (wrand [(if (:ant @ahead) 0 (ranks ahead))
+                    (ranks ahead-left) (ranks ahead-right)]))
+           loc)))
+       ;foraging
+       (cond
+        (and (pos? (:food @p)) (not (:home @p)))
+          (-> loc take-food (turn 4))
+        (and (pos? (:food @ahead)) (not (:home @ahead)) (not (:ant @ahead)))
+          (move loc)
+        :else
+          (let [ranks (merge-with +
+                                  (rank-by (comp :food deref) places)
+                                  (rank-by (comp :pher deref) places))]
+          (([move #(turn % -1) #(turn % 1)]
+            (wrand [(if (:ant @ahead) 0 (ranks ahead))
+                    (ranks ahead-left) (ranks ahead-right)]))
+           loc)))))))
+
+(defn evaporate
+  "causes all the pheromones to evaporate a bit"
+  []
+  (dorun
+   (for [x (range dim) y (range dim)]
+     (dosync
+      (let [p (place [x y])]
+        (alter p assoc :pher (* evap-rate (:pher @p))))))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; UI ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(import
+ '(java.awt Color Graphics Dimension)
+ '(java.awt.image BufferedImage)
+ '(javax.swing JPanel JFrame))
+
+;pixels per world cell
+(def scale 5)
+
+(defn fill-cell [#^Graphics g x y c]
+  (doto g
+    (.setColor c)
+    (.fillRect (* x scale) (* y scale) scale scale)))
+
+(defn render-ant [ant #^Graphics g x y]
+  (let [black (. (new Color 0 0 0 255) (getRGB))
+        gray (. (new Color 100 100 100 255) (getRGB))
+        red (. (new Color 255 0 0 255) (getRGB))
+        [hx hy tx ty] ({0 [2 0 2 4]
+                        1 [4 0 0 4]
+                        2 [4 2 0 2]
+                        3 [4 4 0 0]
+                        4 [2 4 2 0]
+                        5 [0 4 4 0]
+                        6 [0 2 4 2]
+                        7 [0 0 4 4]}
+                       (:dir ant))]
+    (doto g
+      (.setColor (if (:food ant)
+                  (new Color 255 0 0 255)
+                  (new Color 0 0 0 255)))
+      (.drawLine (+ hx (* x scale)) (+ hy (* y scale))
+                (+ tx (* x scale)) (+ ty (* y scale))))))
+
+(defn render-place [g p x y]
+  (when (pos? (:pher p))
+    (fill-cell g x y (new Color 0 255 0
+                          (int (min 255 (* 255 (/ (:pher p) pher-scale)))))))
+  (when (pos? (:food p))
+    (fill-cell g x y (new Color 255 0 0
+                          (int (min 255 (* 255 (/ (:food p) food-scale)))))))
+  (when (:ant p)
+    (render-ant (:ant p) g x y)))
+
+(defn render [g]
+  (let [v (dosync (apply vector (for [x (range dim) y (range dim)]
+                                   @(place [x y]))))
+        img (new BufferedImage (* scale dim) (* scale dim)
+                 (. BufferedImage TYPE_INT_ARGB))
+        bg (. img (getGraphics))]
+    (doto bg
+      (.setColor (. Color white))
+      (.fillRect 0 0 (. img (getWidth)) (. img (getHeight))))
+    (dorun
+     (for [x (range dim) y (range dim)]
+       (render-place bg (v (+ (* x dim) y)) x y)))
+    (doto bg
+      (.setColor (. Color blue))
+      (.drawRect (* scale home-off) (* scale home-off)
+                 (* scale nants-sqrt) (* scale nants-sqrt)))
+    (. g (drawImage img 0 0 nil))
+    (. bg (dispose))))
+
+(def panel (doto (proxy [JPanel] []
+                        (paint [g] (render g)))
+             (.setPreferredSize (new Dimension
+                                     (* scale dim)
+                                     (* scale dim)))))
+
+(def frame (doto (new JFrame) (.add panel) .pack .show))
+
+(def animator (agent nil))
+
+(defn animation [x]
+  (when running
+    (send-off *agent* #'animation))
+  (. panel (repaint))
+  (. Thread (sleep animation-sleep-ms))
+  nil)
+
+(def evaporator (agent nil))
+
+(defn evaporation [x]
+  (when running
+    (send-off *agent* #'evaporation))
+  (evaporate)
+  (. Thread (sleep evap-sleep-ms))
+  nil)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; use ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; (comment
+;demo
+;; (load-file "/Users/rich/dev/clojure/ants.clj")
+(def ants (setup))
+(send-off animator animation)
+(dorun (map #(send-off % behave) ants))
+(send-off evaporator evaporation)
+
+;; )


Refactor & DRY up make-application-form*

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/vote-by-mail-works.git/'


Take cloudfiles account info on the command line

config doesn't provide a :cloudfiles instance

--- src/clojars/tools/generate_feeds.clj
+++ src/clojars/tools/generate_feeds.clj
@@ -94,7 +94,10 @@
              (write-sums jar-file)
              (write-sums gz-file)))))

-(defn -main [dest]
-  (configure nil)
-  (generate-feeds dest (:db config) (:cloudfiles config)))
+(defn -main [& args]
+  (if (not= 3 (count args))
+    (println "args: cf-user cf-key dest-dir")
+    (let [[cf-user cf-key dest-dir] args]
+      (configure nil)
+      (generate-feeds dest-dir (:db config) (cf/connect cf-user cf-key "repo")))))


missed a referral

missed a referral

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/physion/ovation-webapi.git/'


Make /:resource => EntityList

Make /:resource => EntityList


Provide catch-all pom.

Provide catch-all pom.

error: pathspec 'immutant/project.clj' did not match any file(s) known to git

--- immutant/project.clj
+++ immutant/project.clj
@@ -0,0 +1,23 @@
+;; Copyright 2014 Red Hat, Inc, and individual contributors.
+;;
+;; Licensed under the Apache License, Version 2.0 (the "License");
+;; you may not use this file except in compliance with the License.
+;; You may obtain a copy of the License at
+;;
+;; http://www.apache.org/licenses/LICENSE-2.0
+;;
+;; Unless required by applicable law or agreed to in writing, software
+;; distributed under the License is distributed on an "AS IS" BASIS,
+;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+;; See the License for the specific language governing permissions and
+;; limitations under the License.
+
+(defproject org.immutant/immutant "2.0.0-SNAPSHOT"
+  :plugins [[lein-modules "0.2.4"]]
+  :license {:name "Apache License, Version 2.0"
+            :url "http://www.apache.org/licenses/LICENSE-2.0"}
+  :packaging "pom"
+
+  :dependencies [[org.immutant/messaging _]
+                 [org.immutant/scheduling _]
+                 [org.immutant/web _]])


Add utils for work with dom file like objects.

error: pathspec 'src/uxbox/util/dom/files.cljs' did not match any file(s) known to git

--- src/uxbox/util/dom/files.cljs
+++ src/uxbox/util/dom/files.cljs
@@ -0,0 +1,35 @@
+;; This Source Code Form is subject to the terms of the Mozilla Public
+;; License, v. 2.0. If a copy of the MPL was not distributed with this
+;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
+;;
+;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>
+
+(ns uxbox.util.dom.files
+  "A interop helpers for work with files."
+  (:require [beicon.core :as rx]
+            [cuerdas.core :as str]))
+
+(defn- read-as-dataurl
+  [file]
+  (rx/create
+   (fn [sick]
+     (let [fr (js/FileReader.)]
+       (aset fr "onload" #(sick (rx/end (.-result fr))))
+       (.readAsDataURL fr file))
+     (constantly nil))))
+
+(defn- retrieve-image-size
+  [data]
+  (println "data:" data)
+  (rx/create
+   (fn [sick]
+     (let [img (js/Image.)]
+       (aset img "onload" #(sick (rx/end [(.-width img) (.-height img)])))
+       (set! (.-src img) data))
+     (constantly nil))))
+
+(defn get-image-size
+  "Get the real image size."
+  [file]
+  (->> (read-as-dataurl file)
+       (rx/flat-map retrieve-image-size)))


Create a bespoke queue after 20 statuses are requested

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/voter-registration-works.git/'


add  to target keypath

add  to target keypath

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/democracyworks/turbovote-http-api.git/'


Adding a SHA1 hash function

Adding a SHA1 hash function

error: pathspec 'src/kixi/hecuba/hash.clj' did not match any file(s) known to git

--- src/kixi/hecuba/hash.clj
+++ src/kixi/hecuba/hash.clj
@@ -0,0 +1,15 @@
+(ns kixi.hecuba.hash)
+
+(defn- get-hash [data]
+  (.digest (java.security.MessageDigest/getInstance "sha1") (.getBytes data) ))
+
+(defn- get-hash-str [data-bytes]
+  (apply str
+         (map
+          #(.substring
+            (Integer/toString
+                     (+ (bit-and % 0xff) 0x100) 16) 1)
+          data-bytes)))
+
+(defn sha1 [data]
+  (get-hash-str (get-hash data)))


Implemented the fx1e instruction

Implemented the fx1e instruction

error: pathspec 'test/chip8_clj/test_FX1E.clj' did not match any file(s) known to git

--- test/chip8_clj/test_FX1E.clj
+++ test/chip8_clj/test_FX1E.clj
@@ -0,0 +1,19 @@
+(ns chip8-clj.test-FX1E
+  (:require [chip8-clj.graphics :as graphics]
+            [chip8-clj.machine-state :as machine-state])
+  (:require [clojure.test :refer :all]
+            [chip8-clj.core :refer :all]))
+
+(deftest memory-to-registers-test
+  (let [pre-machine-state (-> (machine-state/initialise)
+                              (machine-state/set-pc 0)
+                              (machine-state/set-instr 0 0xF51E)
+                              (machine-state/set-addr-reg 2)
+                              (machine-state/set-register 5 2))
+        post-machine-state (step pre-machine-state)]
+
+    ; Checks that the address register has been updated.
+    (is (= (machine-state/get-addr-reg post-machine-state) 4))
+
+    (is (= (machine-state/get-pc post-machine-state) 2))))
+


Add profiles.clj file.

Add profiles.clj file.

error: pathspec 'profiles.clj' did not match any file(s) known to git

--- profiles.clj
+++ profiles.clj
@@ -0,0 +1,50 @@
+{:dev
+ {:global-vars {*warn-on-reflection* false}
+  :source-paths ["src"]
+  :codeina {:sources ["src/clojure"]
+            :exclude [catacumba.impl.context
+                      catacumba.impl.helpers
+                      catacumba.impl.parse
+                      catacumba.impl.atomic
+                      catacumba.impl.executor
+                      catacumba.impl.stream
+                      catacumba.impl.stream.common
+                      catacumba.impl.stream.channel
+                      catacumba.impl.stream.promise
+                      catacumba.impl.stream.pushstream
+                      catacumba.impl.handlers
+                      catacumba.impl.server
+                      catacumba.impl.http
+                      catacumba.impl.routing
+                      catacumba.impl.streams
+                      catacumba.impl.websocket
+                      catacumba.impl.sse
+                      catacumba.impl.types
+                      catacumba.handlers.core
+                      catacumba.handlers.cors
+                      catacumba.handlers.auth
+                      catacumba.handlers.autoreload
+                      catacumba.handlers.parsing
+                      catacumba.handlers.security
+                      catacumba.handlers.session
+                      catacumba.handlers.interceptor]
+            :reader :clojure
+            :target "doc/dist/latest/api"
+            :src-uri "http://github.com/funcool/catacumba/blob/master/"
+            :src-uri-prefix "#L"}
+  :plugins [[funcool/codeina "0.2.0"]
+            [lein-ancient "0.6.7" :exclusions [org.clojure/tools.reader]]]
+  :dependencies [[clj-http "1.1.2"]
+                 [aleph "0.4.0" :exclusions [io.netty/netty-all]]
+                 [org.clojure/tools.namespace "0.2.11"]
+                 [ring/ring-core "1.4.0"
+                  :exclusions [javax.servlet/servlet-api clj-time org.clojure/clojure]]]}
+ ;; Examples
+
+ :websocket-example
+ {:source-paths ["examples/echo-websocket/src"]
+  :resource-paths ["examples/echo-websocket/resources"]
+  :dependencies [[org.clojure/clojure "1.7.0"]
+                 [cheshire "5.5.0"]]
+  :main ^:skip-aot echo-websocket.core}}
+


Fixed incorrect wallet on-open payload

Fixed incorrect wallet on-open payload

Signed-off-by: Julien Eluard <c768e13f1ba4c3ebed2909a1fc1e4b50bb021a2f@gmail.com>

--- src/status_im/ui/screens/wallet/settings/views.cljs
+++ src/status_im/ui/screens/wallet/settings/views.cljs
@@ -55,7 +55,7 @@
       [toolbar/nav-button
        (actions/back-white
         #(re-frame/dispatch [:update-wallet-and-nav-back
-                             (when on-close
+                             (when (fn? on-close)
                                (on-close (create-payload address)))]))]
       [toolbar/content-title {:color colors/white}
        label]]
@@ -64,8 +64,8 @@
 (defn- setting->action [address {:keys [label on-open] :as m}]
   {:label  label
    :action #(do
-              (when on-open
-                (on-open address))
+              (when (fn? on-open)
+                (on-open (create-payload address)))
               (re-frame/dispatch [:navigate-to :wallet-settings-hook m]))})

 (defview toolbar-view []


tests: added reporter.clj to prettify Clojure tests output

error: pathspec 'test/unit/reporter.clj' did not match any file(s) known to git

--- test/unit/reporter.clj
+++ test/unit/reporter.clj
@@ -0,0 +1,30 @@
+; Prettify Clojure test reports
+(ns unit.reporter
+  (:require
+    [clojure.test :refer [report with-test-out]]))
+
+; Change the report multimethod to ignore namespaces that don't contain any tests.
+; taken from: http://blog.jayfields.com/2010/08/clojuretest-introduction.html
+(defmethod report :begin-test-ns [m]
+  (with-test-out
+    (when (some #(:test (meta %)) (vals (ns-interns (:ns m))))
+      (println "\n-------====== Testing" (ns-name (:ns m)) "======-------"))))
+
+(def ansi-reset "\u001B[0m")
+(def ansi-bold "\u001B[1m")
+(def ansi-red "\u001B[31m")
+
+; Summary reporting with color
+(defmethod report :summary [m]
+  (try
+    (print ansi-bold)
+    (when (not (every? zero? [(:fail m) (:error m)]))
+      (print ansi-red))
+
+    (with-test-out
+      (println "\nRan" (:test m) "tests containing"
+               (+ (:pass m) (:fail m) (:error m)) "assertions.")
+      (println (:fail m) "failures," (:error m) "errors."))
+
+    (finally
+      (print ansi-reset))))


Added entrez gene assign taxon rule

Added entrez gene assign taxon rule

Removed rule from taxon rules file. Updated variables for ccp ext
ontology and updated file formatting

error: pathspec 'resources/rules/post_identifier_merge/temp/taxon/entrez_gene_assign_taxon.clj' did not match any file(s) known to git

--- resources/rules/post_identifier_merge/temp/taxon/entrez_gene_assign_taxon.clj
+++ resources/rules/post_identifier_merge/temp/taxon/entrez_gene_assign_taxon.clj
@@ -0,0 +1,28 @@
+;; ------------------------------------------------
+;; --------- Entrez Gene Taxon Assignment ---------
+;; ------------------------------------------------
+`{:name "entrez-gene-assign-taxon"
+  :description "This rule assigns taxons to genes represented by entrez gene identifiers"
+  :head (
+         ;; create a taxon restriction
+         (?/gene obo/RO_0002162 ?/taxon) ; RO:in_taxon
+         (?/restriction rdf/type owl/Restriction)
+         (?/restriction owl/onProperty obo/RO_0002162) ; RO:in_taxon
+         (?/restriction owl/someValuesFrom ?/taxon)
+         (?/bioentity rdfs/subClassOf ?/restriction))
+
+   :body ((?/record rdf/type ccp/IAO_EXT_0000866) ; ccp:NCBI_gene_record
+          (?/record obo/BFO_0000051 ?/gene_field_value) ; BFO:has_part
+          (?/gene_field_value rdf/type ccp/IAO_EXT_0000876) ; ccp:NCBI_gene_info_record__gene_identifier_field_value
+          (?/gene_field_value rdf/type ?/gene_ice_id)
+          (?/gene_ice_id obo/IAO_0000219 ?/gene) ; IAO:denotes
+
+          ;; retrieve the taxon
+          (?/record obo/BFO_0000051 ?/taxon_field_value) ; BFO:has_part
+          (?/taxon_field_value rdf/type ccp/IAO_EXT_0000875) ; ccp:NCBI_gene_info_record__taxon_identifier_field_value
+          (?/taxon_field_value rdf/type ?/taxon_ice_id)
+          (?/taxon_ice_id obo/IAO_0000219 ?/taxon)) ; IAO:denotes
+
+   :reify ([?/restriction {:ln (:restriction)
+                  :ns "ccp" :prefix "R_"}])
+}


CMR-6631 - Adding New Table for Subscription Notification Time (#1034)

* CMR-6631 - Adding a new column to the subscirption table for storing last notification date-time

* creating a new table to hold the notification details instead of using the subscription table

* rename of the notification column per suggestion

error: pathspec 'metadata-db-app/src/cmr/metadata_db/migrations/072_add_cmr_sub_notifications_table.clj' did not match any file(s) known to git

--- metadata-db-app/src/cmr/metadata_db/migrations/072_add_cmr_sub_notifications_table.clj
+++ metadata-db-app/src/cmr/metadata_db/migrations/072_add_cmr_sub_notifications_table.clj
@@ -0,0 +1,25 @@
+(ns cmr.metadata-db.migrations.072-add-cmr-sub-notifications-table
+  "Add a table for time of last notification to join on subscription table"
+  (:require
+   [config.mdb-migrate-helper :as h]))
+
+(def ^:private sub-notifications-column-sql
+ "id NUMBER,
+ subscription_concept_id VARCHAR(255) NOT NULL,
+ last_notified_at TIMESTAMP WITH TIME ZONE DEFAULT SYSTIMESTAMP NOT NULL")
+
+ (def ^:private sub-notifications-constraint-sql
+   (str "CONSTRAINT sub_notifications_pk PRIMARY KEY (id)"))
+
+(defn up
+  "Migrates the database up to version 72."
+  []
+  (println "cmr.metadata-db.migrations.072-add-cmr-sub-notifications-table up...")
+  (h/sql (format "CREATE TABLE METADATA_DB.cmr_sub_notifications (%s, %s)"
+   sub-notifications-column-sql sub-notifications-constraint-sql)))
+
+(defn down
+  "Migrates the database down from version 72."
+  []
+  (println "cmr.metadata-db.migrations.072-add-cmr-sub-notifications-table down.")
+  (h/sql "DROP TABLE cmr_sub_notifications"))


Return updated _rev from put-resources*

Return updated _rev from put-resources*

We were duplicating in update-entities, always causing an update conflict.


Tests passing

Tests passing