Added goa molecular function ice to bio rule in post_identifier_merge

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

--- resources/rules/post_identifier_merge/temp/goa/goa_molecular_function_ice_to_bio.clj
+++ resources/rules/post_identifier_merge/temp/goa/goa_molecular_function_ice_to_bio.clj
@@ -0,0 +1,52 @@
+;; ----------------------------------------------------------------------------------
+;; --------- Gene Ontology Annotation Molecular Function Concept Assignment ---------
+;; ----------------------------------------------------------------------------------
+`{:name "goa-molecular-function-ice-to-bio"
+  :description "This rule creates a subclass of every molecular function and types it as a gene ontology molecular function concept identifier  (IAO_EXT_0000103)"
+  :head (
+         ;; create a subclass of the molecular function
+         (?/molecular_function_sc rdfs/subClassOf ?/molecular_function)
+         ;; create a subclass of the participating bioentity
+         (?/bioentity_sc rdfs/subClassOf ?/bioentity)
+
+         ;; create a has_participant restriction
+         (?/participation_restriction rdf/type owl/Restriction)
+         (?/participation_restriction owl/onProperty obo/RO_0000057) ; RO:has_participant
+         (?/participation_restriction  owl/someValuesFrom ?/bioentity_sc)
+
+         ;; connect the process subclass to the participation restriction
+         (?/molecular_function_sc rdfs/subClassOf ?/participation_restriction)
+
+         ;; provenance: connect the record to the process subclass
+         (?/record obo/IAO_0000219 ?/molecular_function_sc)) ; IAO:denotes
+
+  :body ((?/go_ice_id rdfs/subClassOf ccp/IAO_EXT_0000199) ; ccp:Gene_Ontology_Concept_Identifier__GO_molecular_function_concept_identifier
+         (?/go_ice_id obo/IAO_0000219 ?/molecular_function) ; IAO:denotes
+         (?/id_field_value rdf/type ?/go_ice_id)
+         (?/id_field_value rdf/type ccp/IAO_EXT_0000014) ; ccp:GOA_GAF_v2.0_Annotation_record__ontology_term_identifier_field_value
+         (?/record obo/BFO_0000051 ?/id_field_value) ; BFO:has_part
+         (?/record rdf/type ccp/IAO_EXT_0000007) ; ccp:GOAGAFv2.0AnnotationRecord
+
+         ;; retrieve the process participant identifier
+         (?/record obo/BFO_0000051 ?/bioentity_field_value) ; BFO:has_part
+         (?/bioentity_field_value rdf/type ccp/IAO_EXT_0000010) ; ccp:GOA_GAF_v2.0_Annotation_record__database_object_identifier_field_value
+         (?/bioentity_field_value rdf/type ?/bioentity_ice_id)
+         (?/bioentity_ice_id obo/IAO_0000219 ?/participating_bioentity) ; IAO:denotes
+
+         ;; filter out the negations
+          (:optional ((?/record obo/BFO_0000051 ?/qualifier_field_value) ; BFO:has_part
+                      (?/qualifier_field_value rdf/type ccp/IAO_EXT_0000013) ; ccp:GOA_GAF_v2.0_Annotation_record__qualifier_field_value
+                      (?/qualifier_field_value rdfs/label ?/qualifier)))
+          (:or (:not (:bound ?/qualifier))
+               (:not (:regex ?/qualifier "^NOT" "i")))
+         )
+
+  :reify ([?/molecular_function_sc {:ln (:sha-1 ?/molecular_function ?/participating_bioentity)
+                 :ns "ccp" :prefix "MF_"}]
+          [?/bioentity_sc {:ln (:sha-1 ?/molecular_function ?/participating_bioentity)
+                    :ns "ccp" :prefix "B_"}]
+          [?/participation_restriction {:ln (:restriction)
+                 :ns "ccp" :prefix "R_"}])
+
+  :options {:magic-prefixes [["franzOption_clauseReorderer" "franz:identity"]]}
+  }


Make step: personal/about look pretty

Make step: personal/about look pretty

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/'


mapv -> map for consistency

mapv -> map for consistency

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/'


[EN] Don't delete database at first during tests.

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/'


unit-test fix

unit-test fix

--- test/ruuvi_server/tracker_security_test.clj
+++ test/ruuvi_server/tracker_security_test.clj
@@ -56,11 +56,6 @@
 (fact
  (generate-mac-message valid-params :not-exists) => "X-foobar:bar|latitude:6457.934248,N|longitude:02536.100084,E|mac:17e4ccf60f766710d0695348d7fda63cee0a3d46|time:2012-04-02T18:35:11.000+0200|tracker_code:foobar|version:1|")

-(fact "compute-mac appends secret to end of (generate-mac-message ...) and computes SHA1 from that"
- (compute-mac valid-params "secret" :mac) => "f9cc37a35218a85cb8871e9812311fd29e7e25b8"
- (provided
-  (generate-mac-message valid-params :mac) => "base"))
-
 (fact "compute-hmac appends secret to end of (generate-mac-message ...) and computes HMAC-SHA1 from that"
  (compute-hmac valid-params "secret" :mac) => "fd264415979bb17f68a3e4fd3b645b7e763e3b56"
  (provided


Add event spec

Add event spec

error: pathspec 'src/cljc/precept/spec/event.cljc' did not match any file(s) known to git

--- src/cljc/precept/spec/event.cljc
+++ src/cljc/precept/spec/event.cljc
@@ -0,0 +1,95 @@
+(ns precept.spec.event
+  (:require [clojure.spec.alpha :as s]
+            [precept.util :as util]
+            [precept.spec.lang :as lang]))
+
+(s/def ::type #{:add-facts :add-facts-logical :retract-facts :retract-facts-logical})
+
+(s/def ::action boolean?)
+
+(s/def ::state-number integer?)
+
+(s/def ::event-number integer?)
+
+(s/def ::facts (s/every (s/or :Tuple-record #(= util/Tuple (type %))
+                              :fact-map (s/every (comp #{:e :a :v :t} first)))))
+
+(s/def ::matches (s/and vector? (s/every vector?)))
+
+(s/def ::bindings (s/map-of
+                    (s/and keyword? #(s/valid? ::lang/variable-binding (symbol (name %))))
+                    any?))
+
+(s/def ::name (s/and string? #(clojure.string/includes? % "/")))
+
+(s/def ::display-name string?)
+
+(s/def ::ns-name symbol?)
+
+(s/def ::rhs list?)
+
+(s/def ::props (s/or :provided map? :omitted nil?))
+
+
+(s/def ::op-prefixed-condition #(s/valid? ::lang/ops (first %)))
+
+(s/def ::condition-map (s/every-kv #{:type :constraints}
+                                   (s/or :kw keyword? :vec vector?)))
+
+(s/def ::accumulator-map (s/every-kv #{:accumulator :from :result-binding}
+                                    any?))
+
+(s/def ::condition (s/or :op-prefixed-condition ::op-prefixed-condition
+                         :condition-map ::condition-map
+                         :accumulator-map ::accumulator-map))
+
+(s/def ::lhs (s/every ::condition))
+
+;(s/valid? ::lhs
+;  [[:not {:type :active-discount, :constraints []}]
+;   {:type :summed-subtotals, :constraints [(= '?total (:v 'this))]}])
+
+(s/def ::event (s/keys :req-un [::state-number ::event-number ::type ::facts]
+                       :opt-un [::name ::display-name ::ns-name ::lhs ::rhs
+                                ::props ::bindings ::matches]))
+;(let [event-1 {:bindings {:?sum 0},
+;               :name "fullstack.rules/define-563499098",
+;               :type :add-facts-logical,
+;               :ns-name 'fullstack.rules,
+;               :lhs
+;                         [{:accumulator '(precept.accumulators/sum :v),
+;                           :from {:type :cart-item/subtotal, :constraints []},
+;                           :result-binding :?sum}
+;                          [:not {:type :active-discount, :constraints []}]
+;                          {:type :summed-subtotals, :constraints [(= '?total (:v 'this))]}]
+;               :event-number 2,
+;               :matches [[0 100]],
+;               :display-name
+;               "[{:accumulator (precept.accumulators/sum :v), :from {:type :cart-item/subtotal, :constraints []}, :result-binding :?sum}]",
+;               :facts '({:e :app, :a :summed-subtotals, :v 0, :t 2}),
+;               :rhs '(do (precept.util/insert! [:app :summed-subtotals '?sum])),
+;               :state-number 0,
+;               :props nil}]
+;  (s/explain ::event event-1))
+
+;(s/explain ::event {:state-number 1 :event-number 2 :type :add-facts
+;                    :facts '({:e :foo :a :foo :v []})})
+;
+;(let [x
+;      {:bindings {:?sum 44.73},
+;       :name "fullstack.rules/define-563499098",
+;       :type :add-facts-logical,
+;       :ns-name 'fullstack.rules,
+;       :lhs [{:from {:constraints [], :type :cart-item/subtotal},
+;              :result-binding :?sum,
+;              :accumulator '(precept.accumulators/sum :v),}]
+;       :event-number 12,
+;       :matches [[44.73 100]],
+;       :id #uuid "b7d24fef-2850-4c0c-8eb4-f6b4d4a732c6",
+;       :display-name "[{:accumulator (precept.accumulators/sum :v), :from {:type :cart-item/subtotal, :constraints []}, :result-binding :?sum}]",
+;       :state-id #uuid "6c455f91-d8a9-40b3-a330-6047dc6b6365",
+;       :facts '({:v 44.73, :e :app, :t 551, :a :summed-subtotals}),
+;       :rhs '(do (precept.util/insert! [:app :summed-subtotals ?sum])),
+;       :state-number 8,
+;       :props nil}]
+;  (some-> x :lhs first :from))


db/docids.clj: manage assigned docid cache with SimpleDB

error: pathspec 'src/org/altlaw/db/docids.clj' did not match any file(s) known to git

--- src/org/altlaw/db/docids.clj
+++ src/org/altlaw/db/docids.clj
@@ -0,0 +1,28 @@
+(ns org.altlaw.db.docids
+  (:require [org.altlaw.util.simpledb :as db]))
+
+(def #^{:private true} *domain* "Docids")
+
+(defn- make-db-key [collection-name collection-key]
+  (let [s (str collection-name ":" collection-key)]
+    ;; Ensure the key fits within SimpleDB's 1024-byte limit
+    (if (< (count s) 1024)
+      s (subs s 0 1024))))
+
+(defn get-docid [collection key]
+  (when-let [string (get (db/get-attrs *domain*
+                                     (make-db-key collection key))
+                       "docid")]
+    ;; Integer/parseInt ignores leading zeros
+    (Integer/parseInt string)))
+
+(defn put-docid [collection key docid]
+  (db/put-attrs *domain* (make-db-key collection key)
+                {:collection collection
+                 :key key
+                 ;; Add leading zeros for lexicographic ordering
+                 :docid (format "%09d" docid)}))
+
+(defn delete-docid [collection key]
+  (db/delete-item *domain* (make-db-key collection key)))
+


Add watch namespace

Add watch namespace

error: pathspec 'src/main/clojure/com/stuartsierra/lazytest/watch.clj' did not match any file(s) known to git

--- src/main/clojure/com/stuartsierra/lazytest/watch.clj
+++ src/main/clojure/com/stuartsierra/lazytest/watch.clj
@@ -0,0 +1,76 @@
+(ns com.stuartsierra.lazytest.watch
+  (:use [clojure.contrib.find-namespaces
+         :only (read-file-ns-decl
+                find-clojure-sources-in-dir)]
+        [clojure.contrib.java :only (as-file)]
+        [com.stuartsierra.lazytest :only (run-spec)]
+        [com.stuartsierra.lazytest.report :only (spec-report)])
+  (:import (java.io File)))
+
+(defn ns-mod-times
+  "Given a directory (java.io.File) containing .clj source files,
+  returns map of namespace names (symbols) to Long timestamps."
+  [d]
+  (reduce (fn [m f]
+            (if-let [sym (second (read-file-ns-decl f))]
+              (assoc m sym (.lastModified f))))
+          {} (find-clojure-sources-in-dir d)))
+
+(defn stop
+  "Sent as an agent action, stops a directory-watching agent."
+  [state]
+  (remove-watch *agent* ::watch)
+  false)
+
+(defn ns-mod-time-agent
+  "Creates an agent that monitors namespaces for changes to their
+  source files.  The state of the agent will always be a map from
+  namespace names (symbols) to their last modified timestamp."
+  [dir & options]
+  {:pre [(instance? File dir)]}
+  (let [{:keys [delay] :or {delay 500}} options
+        updater (fn upd [state]
+                  (when state
+                    (Thread/sleep delay)
+                    (send *agent* upd)
+                    (ns-mod-times dir)))]
+    (doto (agent true)
+      (send updater))))
+
+(defn- newer-namespaces [older newer]
+  (filter #(not= (older %) (newer %)) (keys newer)))
+
+(defn watch-dir
+  "Watches directory d for namespaces whose files change, calls f on
+  the sequence of changed namespaces.  Returns the watching agent;
+  send stop to stop watching the directory.
+
+  f will run with same bindings in effect as when watch-dir is
+  called.
+
+  options are
+     :delay - milliseconds between directory scans"
+  [d f & options]
+  (let [dir (as-file d)]
+    (assert (.isDirectory dir))
+    (let [agnt (apply ns-mod-time-agent dir options)
+          bf (bound-fn* f)]
+      (add-watch agnt ::watch
+                 (fn [key agnt older newer]
+                   (let [names (newer-namespaces older newer)]
+                     (when (seq names) (bf names))))))
+    agnt))
+
+(defn watch-spec
+  "Watches directory d for changing namespaces, reloads and runs their
+  specs when they change.  Prints reports to current *out*.  Returns
+  the watching agent, send stop to stop watching.
+
+  Options are
+    :reporter - report function, default is spec-report
+    :delay - time between directory scans"
+  [d & options]
+  (let [{:keys [reporter] :or {reporter spec-report}} options]
+    (apply watch-dir d
+           (fn [names] (reporter (run-spec names :reload)))
+           options)))


x121 solution

x121 solution

error: pathspec 'src/main/cljc/clojure_club/x121_universal_computation_engine/rbelohlavek.cljc' did not match any file(s) known to git

--- src/main/cljc/clojure_club/x121_universal_computation_engine/rbelohlavek.cljc
+++ src/main/cljc/clojure_club/x121_universal_computation_engine/rbelohlavek.cljc
@@ -0,0 +1,48 @@
+(ns clojure-club.x121-universal-computation-engine.rbelohlavek)
+
+(def operators
+  {(symbol "/") /
+   (symbol "*") *
+   (symbol "+") +
+   (symbol "-") -
+   (symbol "sin")  #(Math/sin %)
+   (symbol "cos")  #(Math/cos %)
+   (symbol "tan")  #(Math/tan %)
+   (symbol "abs")  #(Math/abs %)
+   (symbol "exp")  #(Math/exp %)
+   (symbol "cei")  #(Math/ceil %)
+   (symbol "flr")  #(Math/floor %)
+   (symbol "log")  #(Math/log10 %)
+   (symbol "ln")   #(Math/log %)
+   (symbol "cosh") #(Math/cosh %)
+   (symbol "sinh") #(Math/sinh %)
+   (symbol "tanh") #(Math/tanh %)
+   ;...
+   })
+
+(defn compute [[operator & args]]
+  (fn [symvals]
+    (apply (get operators operator)
+           (map #(cond
+                   (symbol? %) (get symvals %)
+                   (list? %) ((compute %) symvals)
+                   :else %)
+                args))))
+
+;tests
+(= 2 ((compute '(/ a b))
+       '{b 8 a 16}))
+
+(= 8 ((compute '(+ a b 2))
+       '{a 2 b 4}))
+
+(= [6 0 -4]
+   (map (compute '(* (+ 2 a)
+                     (- 10 b)))
+        '[{a 1 b 8}
+          {b 5 a -2}
+          {a 2 b 11}]))
+
+(= 1 ((compute '(/ (+ x 2)
+                   (* 3 (+ y 1))))
+       '{x 4 y 1}))


fixed terminating paren for the query body

--- kabob-build/src/main/resources/edu/ucdenver/ccp/kabob/build/rules/temp/irefweb/temp/binary.clj
+++ kabob-build/src/main/resources/edu/ucdenver/ccp/kabob/build/rules/temp/irefweb/temp/binary.clj
@@ -50,7 +50,7 @@
    (?/interactor_record2 obo/BFO_0000051 _/id_field2) ;; bfo/has_part
    (_/id_field2 kiao/hasTemplate iaoirefweb/IRefWebInteractor_uniqueIdDataField1)
    (_/id_field2 obo/IAO_0000219 _/id2) ;; iao/denotes
-   (_/id2 obo/IAO_0000219 ?/protein2)) ;; iao/denotes
+   (_/id2 obo/IAO_0000219 ?/protein2) ;; iao/denotes

   ;; get the unique interaction identifier
   (_/interaction_record obo/BFO_0000051 _/interaction_checksum_field) ;; bfo/has_part
@@ -73,7 +73,7 @@
   (_/interaction_detection_method_record kiao/hasTemplate iaoirefweb/IRefWebInteractionDetectionMethodSchema1)
   (_/interaction_detection_method_record obo/BFO_0000051 _/detection_method_id_field) ;; bfo/has_part
   (_/detection_method_id_field kiao/hasTemplate iaoirefweb/IRefWebInteractionDetectionMethod_detectionMethodIdDataField1)
-  (_/detection_method_id_field obo/IAO_0000219 ?/detection_method_id) ;; iao/denotes
+  (_/detection_method_id_field obo/IAO_0000219 ?/detection_method_id)) ;; iao/denotes

   ;; we take advantage of the fact that IRefWeb has
   ;; created a unique id for the interaction. This will allow us to reproducibly create


[EN] Replace not-empty with seq.

[EN] Replace not-empty with seq.


Chapter 6 - translating class SimpleRNG (listing 6.2) into Clojure variant (sort of)

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

--- src/fpinscala/purely_functional_state.clj
+++ src/fpinscala/purely_functional_state.clj
@@ -0,0 +1,22 @@
+(ns fpinscala.purely-functional-state)
+
+(declare simple-rng)
+
+(defn make-simple-rng
+  "Constructor fn for simple RNGs"
+  [seed]
+  (fn []
+    (simple-rng seed)))
+
+(defn- simple-rng
+  "As per listing 6.2 from FPINS"
+  [^long seed]
+  (let [nseed (bit-and (+ (unchecked-multiply seed 0x5deece66d) 0xb) 0xffffffffffff)
+        ;unchecked-multiply is falling back to Java semantic of multiplication
+        ;to make this working same way as in Scala/FPINS option
+        nxt-rng (make-simple-rng nseed)
+        n (.intValue (unsigned-bit-shift-right nseed 16))]
+    {:n n :nxt-rng nxt-rng}))
+
+
+;6.1


validate send message format

validate send message format

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/mail-works.git/'


Add stub for octal

Add stub for octal

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

--- exercises/octal/src/octal.clj
+++ exercises/octal/src/octal.clj
@@ -0,0 +1,5 @@
+(ns octal)
+
+(defn to-decimal [] ;; <- Arglist goes here
+  ;; your code goes here
+  )


Added content-negotiation tests.

Added content-negotiation tests.

error: pathspec 'test/plugboard/webfunction/test_accept.clj' did not match any file(s) known to git

--- test/plugboard/webfunction/test_accept.clj
+++ test/plugboard/webfunction/test_accept.clj
@@ -0,0 +1,71 @@
+;; Copyright 2010 Malcolm Sparks.
+;;
+;; This file is part of Plugboard.
+;;
+;; Plugboard is free software: you can redistribute it and/or modify it under the
+;; terms of the GNU Affero General Public License as published by the Free
+;; Software Foundation, either version 3 of the License, or (at your option) any
+;; later version.
+;;
+;; Plugboard is distributed in the hope that it will be useful but WITHOUT ANY
+;; WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+;; A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
+;; details.
+;;
+;; Please see the LICENSE file for a copy of the GNU Affero General Public License.
+
+(ns plugboard.webfunction.test-accept
+  (:use
+   clojure.test
+   clojure.contrib.with-ns
+   plugboard.webfunction.plugboards
+   [plugboard.core.conneg :as conneg])
+  (:import plugboard.webfunction.plugboards.ContentFunction))
+
+(deftest test-conneg
+  (letfn [(fmt [p] (apply format (cons "%s/%s" p)))]
+    (are
+     [expected candidates accept]
+     (= expected
+        (first
+         (map fmt
+              (map :content-type
+                   (negotiate-content
+                    (map #(ContentFunction. nil (:type (conneg/accept-fragment %)))
+                         candidates)
+                    (map :type (conneg/sorted-accept accept))
+                    :content-type)))))
+
+     "text/html"
+     ["text/html" "text/xml"]
+     "text/*, image/png"
+
+     "image/png"
+     ["application/xml" "image/gif" "image/png"]
+     "text/*, image/png"
+
+     "image/png"
+     ["application/xml" "image/gif" "image/png"]
+     "image/png"
+
+     nil
+     ["application/xml" "image/gif"]
+     "image/png"
+
+     ;; From RFC-2616
+     "audio/basic"
+     ["audio/ogg" "audio/basic" "audio/mp4"]
+     "audio/*; q=0.2, audio/basic"
+
+     "text/x-c"
+     ["text/x-c" "text/x-dvi" "text/plain"]
+     "text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c"
+
+     "text/x-dvi"
+     ["text/x-dvi" "text/plain"]
+     "text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c"
+
+     "text/plain"
+     ["text/plain"]
+     "text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c"
+     )))


day29: concurrency clojure

day29: concurrency clojure

error: pathspec '2021/clojure/concurrency.clj' did not match any file(s) known to git

--- 2021/clojure/concurrency.clj
+++ 2021/clojure/concurrency.clj
@@ -0,0 +1,6 @@
+;; futures in clojure cerner_2tothe5th_2021
+(do
+    (future
+        (Thread/sleep 3000)
+        (println "spawned thread"))
+    (println "main program"))


Dynamic rfn-exec

Dynamic rfn-exec

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/clojure-ml/cml.git/'


Adding filter tests.

Adding filter tests.

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/'


[WM] export authority levels as strings

[WM] export authority levels as strings


cache, at least, should not be a mutable field

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/'


First working solution for dna-rna problem (tests pass)

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

--- clojure/rna-transcription/dna.clj
+++ clojure/rna-transcription/dna.clj
@@ -0,0 +1,12 @@
+(ns dna)
+
+(defn- strand-convert [ch]
+    (cond
+        (= \T ch) \U
+        :else ch
+        )
+)
+
+(defn to-rna [dna]
+    (apply str (map strand-convert dna))
+)


adding utils

adding utils

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

--- src/eatme/client/utils.cljs
+++ src/eatme/client/utils.cljs
@@ -0,0 +1,5 @@
+(ns eatme.utils
+  (:require [clojure.string :as string]))
+
+(defn upper-first [s]
+  (when-not (empty? s) (apply str (string/upper-case (first s)) (rest s))))


minor

minor

--- cljs-client/cljsinfo_client/cheatsheet.cljs
+++ cljs-client/cljsinfo_client/cheatsheet.cljs
@@ -14,6 +14,10 @@
 ;; - move this to CSS media queries?
 ;; - create a 4 column layout

+(def sml-layout-class "sml-5dcf3")
+(def med-layout-class "med-0000a")
+(def lrg-layout-class "lrg-92b4d")
+
 (defn- width->size [w]
   (cond
     (>= w 1060) :large
@@ -24,12 +28,14 @@

 (defn- on-change-size [_ _ _ new-size]
   (-> ($ "body")
-    (.removeClass "sml-5dcf3 med-0000a lrg-92b4d")
+    (.removeClass (str sml-layout-class " "
+                       med-layout-class " "
+                       lrg-layout-class))
     (.addClass
       (case new-size
-        :small  "sml-5dcf3"
-        :medium "med-0000a"
-        :large  "lrg-92b4d"
+        :small  sml-layout-class
+        :medium med-layout-class
+        :large  lrg-layout-class
         :else nil))))

 (add-watch current-size :change on-change-size)


Much more readable stacktraces.

Much more readable stacktraces.

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/'


rebrand admin navigation menu

rebrand admin navigation menu

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/'


Trying to pass port manually

Trying to pass port manually

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/IceRaptor/ca_scheduler.git/'


Refactor: use app-state to store drag/drop data...

... rather than using the event. This eliminates the need to convert
the uuid to string on-drag, making it transferable through the event,
and converting the string to an uuid on-drop. But, maybe more
importantly, it reinforces principle of having the app-state atom be
the single source of truth.

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/'


Updated core.clj

Updated core.clj

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/'


+babel.test.reader/chiamarsi

+babel.test.reader/chiamarsi

error: pathspec 'test/babel/test/reader.cljc' did not match any file(s) known to git

--- test/babel/test/reader.cljc
+++ test/babel/test/reader.cljc
@@ -0,0 +1,26 @@
+(ns babel.test.reader
+  (:require [babel.reader :as reader]
+            [babel.test.test :as btest]
+            #?(:clj [clojure.test :as realtest :refer [deftest is]])
+            #?(:clj [clojure.test :as realtest :refer [deftest is]])))
+
+(btest/init-db)
+
+(deftest chiamarsi
+  (let [generated
+        (reader/generate-question-and-correct-set
+         {:root {:italiano {:italiano "chiamarsi"}}
+          :synsem {:sem {:tense :present
+                         :aspect :simple}}
+          :comp {:synsem {:agr {:number :plur
+                                :person :3rd}}}}
+         "en"
+         "US"
+         "it"
+         "IT"
+         (fn [x] true))]
+    (is (map? generated))
+    (is (not (nil? (:source generated))))))
+
+
+


Added RSWN file that uses silence epigenetic markers but not hill climbing

error: pathspec 'src/clojush/problems/software/replace_space_with_newline_epiline_without_hill_climbing.clj' did not match any file(s) known to git

--- src/clojush/problems/software/replace_space_with_newline_epiline_without_hill_climbing.clj
+++ src/clojush/problems/software/replace_space_with_newline_epiline_without_hill_climbing.clj
@@ -0,0 +1,192 @@
+;; replace_space_with_newline.clj
+;; Tom Helmuth, thelmuth@cs.umass.edu
+;;
+;; Problem Source: iJava (http://ijava.cs.umass.edu/)
+;;
+;; Given a string input, print the string, replacing spaces with newlines.
+;; The input string will not have tabs or newlines, but may have multiple spaces
+;; in a row. It will have maximum length of 20 characters. Also, the program
+;; should return the integer count of the non-whitespace characters.
+;;
+;; input stack has the input string
+
+(ns clojush.problems.software.replace-space-with-newline-epiline-without-hill-climbing
+  (:use clojush.pushgp.pushgp
+        [clojush pushstate interpreter random util globals]
+        clojush.instructions.tag
+        clojure.math.numeric-tower)
+    (:require [clojure.string :as string]))
+
+;; Define test cases
+(defn replace-space-input
+  "Makes a Replace Space With Newline input of length len."
+  [len]
+  (apply str
+         (repeatedly len
+                     (fn []
+                       (if (< (lrand) 0.2)
+                         \space
+                         (lrand-nth (map char (range 32 127))))))))
+
+; Atom generators
+(def replace-space-atom-generators
+  (concat (list
+            \space
+            \newline
+            ;;; end constants
+            (fn [] (lrand-nth (concat [\newline \tab] (map char (range 32 127))))) ;Visible character ERC
+            (fn [] (replace-space-input (lrand-int 21))) ;String ERC
+            ;;; end ERCs
+            (tag-instruction-erc [:exec :integer :boolean :string :char] 1000)
+            (tagged-instruction-erc 1000)
+            ;;; end tag ERCs
+            'in1
+            ;;; end input instructions
+            )
+          (registered-for-stacks [:integer :boolean :string :char :exec :print])))
+
+
+;; A list of data domains for the problem. Each domain is a vector containing
+;; a "set" of inputs and two integers representing how many cases from the set
+;; should be used as training and testing cases respectively. Each "set" of
+;; inputs is either a list or a function that, when called, will create a
+;; random element of the set.
+(def replace-space-data-domains
+  [[(list "", "A", "*", " ", "s", "B ", "  ", " D", "ef", "!!", " F ", "T L", "4ps", "q  ", "   ", "  e", "hi ",
+          "  $  ", "      9",
+          (apply str (take 13 (cycle (list \i \space \!))))
+          (apply str (repeat 20 \8))
+          (apply str (repeat 20 \space))
+          (apply str (repeat 20 \s))
+          (apply str (take 20 (cycle (list \1 \space))))
+          (apply str (take 20 (cycle (list \space \v))))
+          (apply str (take 20 (cycle (list \H \a \space))))
+          (apply str (take 20 (cycle (list \x \space \y \!))))
+          (apply str (take 20 (cycle (list \G \5))))
+          (apply str (take 20 (cycle (list \> \_ \= \]))))
+          (apply str (take 20 (cycle (list \^ \_ \^ \space))))) 30 0] ;; "Special" inputs covering some base cases
+   [(fn [] (replace-space-input (+ 2 (lrand-int 19)))) 70 1000]
+   ])
+
+;;Can make Replace Space With Newline test data like this:
+;(test-and-train-data-from-domains replace-space-data-domains)
+
+; Helper function for error function
+(defn replace-space-test-cases
+  "Takes a sequence of inputs and gives IO test cases of the form
+   [input output]."
+  [inputs]
+  (map (fn [in]
+         (vector in
+                 [(string/replace in \space \newline)
+                  (count (filter #(not= \space %) in))]))
+       inputs))
+
+; Define error function. For now, each run uses different random inputs
+(defn replace-space-error-function
+  "Returns the error function for the Replace Space With Newline problem. Takes as
+   input Replace Space With Newline data domains."
+  [data-domains]
+  (let [[train-cases test-cases] (map #(sort-by (comp count first) %)
+                                      (map replace-space-test-cases
+                                           (test-and-train-data-from-domains data-domains)))]
+    (when true ;; Change to false to not print test cases
+      (doseq [[i case] (map vector (range) train-cases)]
+        (println (format "Train Case: %3d | Input/Output: %s" i (str case))))
+      (doseq [[i case] (map vector (range) test-cases)]
+        (println (format "Test Case: %3d | Input/Output: %s" i (str case)))))
+    (fn the-actual-replace-space-error-function
+      ([program]
+        (the-actual-replace-space-error-function program :train))
+      ([program data-cases] ;; data-cases should be :train or :test
+        (the-actual-replace-space-error-function program data-cases false))
+      ([program data-cases print-outputs]
+        (let [behavior (atom '())
+              errors (flatten
+                       (doall
+                         (for [[input [correct-output correct-int]] (case data-cases
+                                                                      :train train-cases
+                                                                      :test test-cases
+                                                                      [])]
+                           (let [final-state (run-push program
+                                                       (->> (make-push-state)
+                                                         (push-item input :input)
+                                                         (push-item "" :output)))
+                                 printed-result (stack-ref :output 0 final-state)
+                                 int-result (stack-ref :integer 0 final-state)]
+                             (when print-outputs
+                               (println (format "\n| Correct output: %s\n| Program output: %s" (pr-str correct-output) (pr-str printed-result)))
+                               (println (format "| Correct integer: %2d | Program integer: %s" correct-int (str int-result))))
+                             ; Record the behavior
+                             (when @global-print-behavioral-diversity
+                               (swap! behavior conj [printed-result int-result]))
+                             ; Error is Levenshtein distance for printed string and
+                             ; integer distance for returned integer
+                             (vector
+                               (levenshtein-distance correct-output printed-result)
+                               (if (number? int-result)
+                                 (abs (- int-result correct-int)) ;distance from correct integer
+                                 1000) ;penalty for no return value
+                               )))))]
+          (when @global-print-behavioral-diversity
+            (swap! population-behaviors conj @behavior))
+          errors)))))
+
+(defn replace-space-report
+  "Custom generational report."
+  [best population generation error-function report-simplifications]
+  (let [best-program (not-lazy (:program best))
+        best-test-errors (error-function best-program :test)
+        best-total-test-error (apply +' best-test-errors)]
+    (println ";;******************************")
+    (printf ";; -*- Replace Space With Newline problem report - generation %s\n" generation)(flush)
+    (println "Test total error for best:" best-total-test-error)
+    (println (format "Test mean error for best: %.5f" (double (/ best-total-test-error (count best-test-errors)))))
+    (when (zero? (:total-error best))
+      (doseq [[i error] (map vector
+                             (range)
+                             best-test-errors)]
+        (println (format "Test Case  %3d | Error: %s" i (str error)))))
+    (println ";;------------------------------")
+    (println "Outputs of best individual on training cases:")
+    (error-function best-program :train true)
+    (println ";;******************************")
+    )) ;; To do validation, could have this function return an altered best individual
+       ;; with total-error > 0 if it had error of zero on train but not on validation
+       ;; set. Would need a third category of data cases, or a defined split of training cases.
+
+
+; Define the argmap
+(def argmap
+  {:error-function (replace-space-error-function replace-space-data-domains)
+   :atom-generators replace-space-atom-generators
+   :max-points 800
+   :max-points-in-initial-program 400
+   :evalpush-limit 1600
+   :population-size 1000
+   :max-generations 10e100
+   :max-point-evaluations (* 1000 1000 100 300) ;; popsize (1000) * #points per eval (1000) * #test cases (100) * max gens (300)
+   :parent-selection :lexicase
+;   :genetic-operator-probabilities {:alternation 0.2
+;                                    :uniform-mutation 0.2
+;                                    :uniform-close-mutation 0.1
+;                                    [:alternation :uniform-mutation] 0.5
+;                                    }
+   :epigenetic-markers [:close :silent]
+   :genetic-operator-probabilities {[:alternation :uniform-silence-mutation] 0.2
+                                    [:uniform-mutation :uniform-silence-mutation] 0.2
+                                    [:uniform-close-mutation :uniform-silence-mutation] 0.1
+                                    [:alternation :uniform-mutation :uniform-silence-mutation] 0.5
+                                    }
+   :silent-instruction-probability 0.5
+   :uniform-silence-mutation-rate 0.1
+   :alternation-rate 0.01
+   :alignment-deviation 10
+   :uniform-mutation-rate 0.01
+   :problem-specific-report replace-space-report
+   :print-behavioral-diversity true
+   :print-homology-data true
+   :report-simplifications 0
+   :final-report-simplifications 5000
+   :max-error 5000
+   })


[WM] remove unused ':as' in arg destructuring

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/'


Reformat: remove redundant whitespace

Reformat: remove redundant whitespace


Fixed nesting of links specs

Fixed nesting of links specs

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/'


comment re: api/func renaming idea

comment re: api/func renaming idea


reorg

reorg


drop cached-rf helper; no binding around cache creation


import types

import types


views: make room for action buttions

views: make room for action buttions

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/'


Creating worker and worker pool

Creating worker and worker pool

error: pathspec 'src/cljs_workers/core.cljs' did not match any file(s) known to git

--- src/cljs_workers/core.cljs
+++ src/cljs_workers/core.cljs
@@ -0,0 +1,27 @@
+(ns cljs-workers.core
+  (:require [cljs.core.async :refer [chan]])
+  (:require-macros [cljs.core.async.macros :refer [go]]))
+
+(defn supported?
+  []
+  (-> js/Worker
+      undefined?
+      not))
+
+(defn create-worker
+  [script]
+  (js/Worker. script))
+
+(defn create-pool
+  ([]
+   (pool 5))
+
+  ([count]
+   (pool count "js/compiled/workers.js"))
+
+  ([count script]
+   (let [workers (chan count)]
+     (go
+       (dotimes [_ count]
+         (>! workers (create-worker script))))
+     workers)))


Fix api jars-by-groupname query

Fix api jars-by-groupname query

--- src/clojars/routes/api.clj
+++ src/clojars/routes/api.clj
@@ -21,27 +21,26 @@

 (defn jars-by-groupname [groupname]
     (exec-raw [(str
-              "select j.*, j2.version as latest_release "
+              "select j.jar_name, j.group_name, authors, scm, homepage, description, user, "
+              "l.version as latest_version, r.version as latest_release "
               "from jars j "
               ;; Find the latest version
               "join "
-              "(select jar_name, max(created) as created "
+              "(select jar_name, group_name, version, max(created) as created "
               "from jars "
               "group by group_name, jar_name) l "
               "on j.jar_name = l.jar_name "
+              "and j.group_name = l.group_name "
+              ;; Find basic info for latest version
               "and j.created = l.created "
               ;; Find the latest release
-              "join "
-              "(select jar_name, max(created) as created "
+              "left join "
+              "(select jar_name, group_name, version, max(created) as created "
               "from jars "
               "where version not like '%-SNAPSHOT' "
               "group by group_name, jar_name) r "
               "on j.jar_name = r.jar_name "
-              ;; Join with latest release
-              "join "
-              "(select jar_name, created, version from jars) as j2 "
-              "on j2.jar_name = j.jar_name "
-              "and j2.created = r.created "
+              "and j.group_name = r.group_name "
               "where j.group_name = ? "
               "order by j.group_name asc, j.jar_name asc")
              [groupname]]
@@ -53,10 +52,7 @@
       (let [stats (stats/all)]
         (-> (jars-by-groupname group-id)
             (->> (map (fn [jar]
-                        (-> jar
-                            (rename-keys {:version :latest_version})
-                            (dissoc :id :created :promoted_at)
-                            (assoc :downloads (stats/download-count stats group-id (:jar_name jar)))))))
+                        (assoc jar :downloads (stats/download-count stats group-id (:jar_name jar))))))
             response)))
     (GET ["/artifacts/:artifact-id", :artifact-id #"[^/]+"] [artifact-id]
       (response (get-artifact artifact-id artifact-id)))


partition.clj: implemented a union-find data structure

error: pathspec 'clojure/org/gavrog/clojure/partition.clj' did not match any file(s) known to git

--- clojure/org/gavrog/clojure/partition.clj
+++ clojure/org/gavrog/clojure/partition.clj
@@ -0,0 +1,37 @@
+(ns org.gavrog.clojure.partition)
+
+(defprotocol IPartition
+  (pfind [_ x])
+  (punion [_ x y]))
+
+(deftype Partition [rank ^{:volatile-mutable true} parent]
+  IPartition
+  (pfind [self x]
+         (let [root (loop [c x, pc (parent x)]
+                      (if (nil? pc) c (recur pc (parent pc))))
+               p (loop [p parent, c x, pc (parent x)]
+                   (if (nil? pc)
+                     p
+                     (recur (assoc p c root) pc (parent pc))))]
+           (set! parent p)
+           root))
+  (punion [self x y]
+         (let [x (pfind self x), y (pfind self y)]
+           (if (= x y)
+             self
+             (cond (< (or (rank x) 0) (or (rank y) 0))
+                   (Partition. rank (assoc parent x y))
+                   (> (or (rank x) 0) (or (rank y) 0))
+                   (Partition. rank (assoc parent y x))
+                   :else
+                   (Partition. (assoc rank x (inc (or (rank x) 0)))
+                               (assoc parent y x))))))
+  clojure.lang.Seqable
+  (seq [self]
+       (let [add-in (fn [b x]
+                      (let [root (pfind self x)]
+                        (assoc b root (conj (or (b root) #{}) x))))
+             blocks (reduce add-in {} (apply concat parent))]
+         (vals blocks))))
+
+(def pempty (Partition. {} {}))


Add missing start offset test

Add missing start offset test

error: pathspec 'test/onyx/plugin/input_start_offset_test.clj' did not match any file(s) known to git

--- test/onyx/plugin/input_start_offset_test.clj
+++ test/onyx/plugin/input_start_offset_test.clj
@@ -0,0 +1,94 @@
+(ns onyx.plugin.input-start-offset-test
+  (:require [clojure.core.async :refer [<!! go pipe]]
+            [clojure.core.async.lab :refer [spool]]
+            [clojure.test :refer [deftest is]]
+            [com.stuartsierra.component :as component]
+            [franzy.admin.zookeeper.client :as k-admin]
+            [franzy.admin.cluster :as k-cluster]
+            [franzy.admin.topics :as k-topics]
+            [franzy.serialization.serializers :refer [byte-array-serializer]]
+            [franzy.serialization.deserializers :refer [byte-array-deserializer]]
+            [franzy.clients.producer.client :as producer]
+            [franzy.clients.producer.protocols :refer [send-sync!]]
+            [aero.core :refer [read-config]]
+            [onyx.test-helper :refer [with-test-env]]
+            [onyx.job :refer [add-task]]
+            [onyx.kafka.embedded-server :as ke]
+            [onyx.kafka.utils :refer [take-until-done]]
+            [onyx.tasks.kafka :refer [consumer]]
+            [onyx.tasks.core-async :as core-async]
+            [onyx.plugin.core-async :refer [get-core-async-channels]]
+            [onyx.plugin.test-utils :as test-utils]
+            [onyx.plugin.kafka]
+            [onyx.api])
+  (:import [franzy.clients.producer.types ProducerRecord]))
+
+(defn build-job [zk-address topic batch-size batch-timeout]
+  (let [batch-settings {:onyx/batch-size batch-size :onyx/batch-timeout batch-timeout}
+        base-job (merge {:workflow [[:read-messages :identity]
+                                    [:identity :out]]
+                         :catalog [(merge {:onyx/name :identity
+                                           :onyx/fn :clojure.core/identity
+                                           :onyx/type :function}
+                                          batch-settings)]
+                         :lifecycles []
+                         :windows []
+                         :triggers []
+                         :flow-conditions []
+                         :task-scheduler :onyx.task-scheduler/balanced})]
+    (-> base-job
+        (add-task (consumer :read-messages
+                            (merge {:kafka/topic topic
+                                    :kafka/group-id "onyx-consumer"
+                                    :kafka/zookeeper zk-address
+                                    :kafka/offset-reset :smallest
+                                    :kafka/force-reset? false
+                                    :kafka/deserializer-fn :onyx.tasks.kafka/deserialize-message-edn
+                                    :kafka/start-offsets {0 1}
+                                    :onyx/min-peers 1
+                                    :onyx/max-peers 1}
+                                   batch-settings)))
+        (add-task (core-async/output :out batch-settings)))))
+
+(defn mock-kafka
+  "Use a custom version of mock-kafka as opposed to the one in test-utils
+  because we need to spawn 2 producers in order to write to each partition"
+  [topic zookeeper]
+  (let [kafka-server (component/start
+                      (ke/embedded-kafka {:advertised.host.name "127.0.0.1"
+                                          :port 9092
+                                          :broker.id 1
+                                          :log.dir (str "/tmp/embedded-kafka" (java.util.UUID/randomUUID))
+                                          :zookeeper.connect zookeeper
+                                          :controlled.shutdown.enable false}))
+
+        zk-utils (k-admin/make-zk-utils {:servers [zookeeper]} false)
+        _ (k-topics/create-topic! zk-utils topic 1)
+
+        producer-config {:bootstrap.servers ["127.0.0.1:9092"]}
+        key-serializer (byte-array-serializer)
+        value-serializer (byte-array-serializer)]
+    (with-open [producer1 (producer/make-producer producer-config key-serializer value-serializer)]
+      (doseq [x (range 5)] ;0 1 2
+        (send-sync! producer1 (ProducerRecord. topic nil nil (.getBytes (pr-str {:n x}))))))
+    kafka-server))
+
+(deftest kafka-input-start-offset-test
+  (let [test-topic (str "onyx-test-" (java.util.UUID/randomUUID))
+        _ (println "Using topic" test-topic)
+        {:keys [env-config peer-config]} (read-config (clojure.java.io/resource "config.edn")
+                                                      {:profile :test})
+        tenancy-id (str (java.util.UUID/randomUUID))
+        env-config (assoc env-config :onyx/tenancy-id tenancy-id)
+        peer-config (assoc peer-config :onyx/tenancy-id tenancy-id)
+        zk-address (get-in peer-config [:zookeeper/address])
+        job (build-job zk-address test-topic 10 1000)
+        {:keys [out read-messages]} (get-core-async-channels job)
+        mock (atom {})]
+    (try
+      (with-test-env [test-env [4 env-config peer-config]]
+        (onyx.test-helper/validate-enough-peers! test-env job)
+        (reset! mock (mock-kafka test-topic zk-address))
+        (onyx.api/submit-job peer-config job)
+        (is (= [{:n 1} {:n 2} {:n 3} {:n 4}] (onyx.plugin.core-async/take-segments! out 5000))))
+      (finally (swap! mock component/stop)))))


CMR-2480: Added migration to drop category,namespace,value and add tag-key to cmr_tags

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

--- metadata-db-app/src/migrations/033_replace_tags_namespace_and_value_with_tag_key.clj
+++ metadata-db-app/src/migrations/033_replace_tags_namespace_and_value_with_tag_key.clj
@@ -0,0 +1,48 @@
+(ns migrations.033-replace-tags-namespace-and-value-with-tag-key
+  (:require [clojure.java.jdbc :as j]
+            [clojure.edn :as edn]
+            [config.migrate-config :as config]
+            [cmr.common.util :as util]
+            [config.mdb-migrate-helper :as h]))
+
+(defn up
+  "Migrates the database up to version 33."
+  []
+  (println "migrations.033-replace-tags-namespace-and-value-with-tag-key up...")
+  (doseq [result (h/query "SELECT * from cmr_tags")]
+    (let [{:keys [id metadata]} result
+          metadata (-> metadata
+                       (util/gzip-blob->string)
+                       (edn/read-string))
+          ;; Some rows may already have a tag-key instead of namespace and value.
+          {:keys [namespace value tag-key]} metadata
+          tag-key (or tag-key
+                      (str namespace "." value))
+          metadata (-> metadata
+                       (assoc :tag-key tag-key)
+                       (dissoc :namespace :value :category)
+                       (prn-str)
+                       (util/string->gzip-bytes))
+          result (assoc result :metadata metadata :native_id tag-key)]
+      (j/update! (config/db) "cmr_tags" result ["id = ?" id]))))
+
+(defn down
+  "Migrates the database down from version 33."
+  []
+  (println "migrations.033-replace-tags-namespace-and-value-with-tag-key down...")
+  (println "NOTE: category field and original native-id cannot be recoverd")
+  (doseq [result (h/query "SELECT * from cmr_tags")]
+    (let [{:keys [id metadata]} result
+          metadata (-> metadata
+                       (util/gzip-blob->string)
+                       (edn/read-string))
+          tag-key (:tag-key metadata)
+          [_ namespace value] (re-matches #"(.*)\.(.*$)" tag-key)
+          metadata (-> metadata
+                       (assoc :namespace namespace
+                              :value value)
+                       (dissoc :tag-key)
+                       (prn-str)
+                       (util/string->gzip-bytes))
+          result (assoc result :metadata metadata)]
+      (j/update! (config/db) "cmr_tags" result ["id = ?" id]))))


added call function

added call function

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

--- src/other/call.clj
+++ src/other/call.clj
@@ -0,0 +1,5 @@
+(ns other.call)
+
+(defn call [^String nm & args]
+  (when-let [fun (ns-resolve *ns* (symbol nm))]
+    (apply fun args)))


dynamically render catalogs from a list

dynamically render catalogs from a list


chore(core): update core to 2.5.1-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/B2W-BIT/restQL-server.git/'


Update most deps

Update most 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/email-works.git/'


2.1.20-fork

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/ptaoussanis/http-kit.git/'


Version 93

Version 93

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/'


:construction_worker: bump version

:construction_worker: bump version

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/HealthUnlocked/lein-docker-compose.git/'


Bump nsfw

Bump nsfw

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/zk/rx.git/'


Version 151-SNAPSHOT

Version 151-SNAPSHOT


add `lein instant-cheatsheet`

add `lein instant-cheatsheet`

--- project.clj
+++ project.clj
@@ -60,6 +60,7 @@
                              [jonase/eastwood "0.2.1"]                ; Linting
                              [lein-ancient "0.6.5"]                   ; Check project for outdated dependencies + plugins w/ 'lein ancient'
                              [lein-expectations "0.0.8"]              ; run unit tests with 'lein expectations'
+                             [lein-instant-cheatsheet "2.0.0"]        ; use awesome instant cheatsheet created by yours truly w/ 'lein instant-cheatsheet'
                              [lein-marginalia "0.8.0"]]               ; generate documentation with 'lein marg'
                    :jvm-opts ["-Dlogfile.path=target/log"
                               "-Xms1024m"                             ; give JVM a decent heap size to start with


bump version to 2.8.22

bump version to 2.8.22


Kehaar 0.7.0 with bounded thread pools

Kehaar 0.7.0 with bounded thread pools

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/'


Clean up local serialization of values

Clean up local serialization of values

--- src/main/clojure/pigpen/pig.clj
+++ src/main/clojure/pigpen/pig.clj
@@ -55,6 +55,13 @@
     (.newDefaultBag (BagFactory/getInstance) vals)
     (.newDefaultBag (BagFactory/getInstance))))

+(defn ^:private pig-freeze [value]
+  (DataByteArray. (freeze value {:skip-header? true, :legacy-mode true})))
+
+(defn ^:private pig-freeze-with-nils [value]
+  (if value
+    (pig-freeze value)))
+
 ;; **********

 (defn byte->hex-digit
@@ -319,7 +326,7 @@

 (defn freeze-vals [value]
   {:pre [(map? value)]}
-  (reduce-kv (fn [m k v] (assoc m k (DataByteArray. (freeze v)))) {} value))
+  (reduce-kv (fn [m k v] (assoc m k (pig-freeze v))) {} value))

 (defmulti thaw-anything
   "Attempts to thaw any child value. Returns it as '(freeze ...)"
@@ -508,13 +515,6 @@
     (catch Throwable z (throw (RuntimeException. z)))))

 ;; **********
-
-(defn ^:private pig-freeze [value]
-  (DataByteArray. (freeze value {:skip-header? true, :legacy-mode true})))
-
-(defn ^:private pig-freeze-with-nils [value]
-  (if value
-    (pig-freeze value)))

 (defn args->map
   "Returns a fn that converts a list of args into a map of named parameter


fix typo in dox

fix typo in dox

--- src/metabase/models/hydrate.clj
+++ src/metabase/models/hydrate.clj
@@ -270,7 +270,7 @@
 ;; 1.  Get a value that can be used to unflatten a sequence later with `counts-of`.
 ;; 2.  Flatten the sequence with `counts-flatten`
 ;; 3.  Modify the flattened sequence as needed
-;; 4.  Unflatten the sequence by calling `counts-unflatten` with the modified sequence value from step 1
+;; 4.  Unflatten the sequence by calling `counts-unflatten` with the modified sequence and value from step 1
 ;; 5.  `map merge` the original sequence and the unflattened sequence.
 ;;
 ;; For your convenience `counts-apply` combines these steps for you.


Remove added whitespace

Remove added whitespace

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 clojure profile dependencies

Update clojure profile 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/jamesleonis/dotfiles.git/'


Sort projects alphabetically

Sort projects alphabetically

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/bsmr-clojure/Nightcode.git/'


add 001.clj

add 001.clj

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


use var in current blueprints

use var in current blueprints

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/'


wip: executor - root query

wip: executor - root query

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

--- src/graphql_clj/resolver.clj
+++ src/graphql_clj/resolver.clj
@@ -0,0 +1,5 @@
+(ns graphql-clj.resolver)
+
+(defn resolver-fn
+  [type field]
+  )


make is so ssh-agent doesn't rely on host

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/mail-works.git/'


Wrap app in a closure

Wrap app in a closure

fatal: unable to access 'https://github.com/physion/ovation-webapi.git/': The requested URL returned error: 403


Convert for into a map.

Convert for into a map.

fatal: unable to access 'https://github.com/jagtalon/what-the-fuck-do-you-want-to-listen-to.git/': The requested URL returned error: 403


made glyphs into actual components so that I can do things with them (measure the vector length and make a line-drawing animation, stuff like that )

fatal: unable to access 'https://github.com/clojurecup/cc2014-frontend.git/': The requested URL returned error: 403


Scaffold event handlers for uploading income verification


contract macros

contract macros

error: pathspec 'stuf/src/sandbox/contract.clj' did not match any file(s) known to git

--- stuf/src/sandbox/contract.clj
+++ stuf/src/sandbox/contract.clj
@@ -0,0 +1,26 @@
+(ns sandbox.contract)
+
+(declare collect-bodies)
+(defmacro contract [name & forms]
+  (list* `fn name (collect-bodies forms)))
+
+
+(declare build-contract)
+(defn collect-bodies [forms]
+  (for [form (partition 3 forms)]
+    (build-contract form)))
+
+(defn build-contract [c]
+  (let [args (first c)]
+    (list
+     (into '[f] args)
+     (apply merge
+            (for [con (rest c)]
+              (cond (= (first con) 'require)
+                    (assoc {} :pre (vec (rest con)))
+                    (= (first con) 'ensure)
+                    (assoc {} :post (vec (rest con)))
+                    :else (throw (Exception.
+                                  (str "Unknown tag "
+                                       (first con)))))))
+     (list* 'f args))))


Test note

Test note

fatal: unable to access 'https://github.com/juxt/yada.git/': The requested URL returned error: 403


more explicit bash var naming, consistent w/ other scripts

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/'


Remove auth tag -- it's not needed

Remove auth tag -- it's not needed


Add devcards for checkboxes and radio buttons

Update form devcards to print source code of component implementation


[EN WR] Wrap handlers (read and create) with handle-errors.

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/'


Profile fixes.

Profile fixes.

--- project.clj
+++ project.clj
@@ -26,6 +26,7 @@
     [clojusc/trifl "0.2.0"]
     [clojusc/twig "0.3.2"]
     [com.stuartsierra/component "0.3.2"]
+    [environ "1.1.0"]
     [http-kit "2.2.0"]
     [metosin/reitit-core "0.1.1-SNAPSHOT"]
     [metosin/reitit-ring "0.1.1-SNAPSHOT"]
@@ -42,10 +43,11 @@
   :profiles {
     :ubercompile {
       :aot :all}
+    :system {
+      :dependencies [
+        [clojusc/dev-system "0.1.0"]]}
     :local {
       :dependencies [
-        [clojusc/dev-system "0.1.0"]
-        [environ "1.1.0"]
         [org.clojure/tools.namespace "0.2.11"]
         [proto-repl "0.3.1"]]
       :plugins [
@@ -99,7 +101,7 @@
         :output-path "docs/current"}}}
   :aliases {
     ;; Dev & Testing Aliases
-    "repl" ["with-profile" "+local" "repl"]
+    "repl" ["with-profile" "+local,+system" "repl"]
     "ubercompile" ["with-profile" "+ubercompile" "compile"]
     "check-vers" ["with-profile" "+lint" "ancient" "check" ":all"]
     "check-jars" ["with-profile" "+lint" "do"
@@ -114,8 +116,8 @@
       ["kibit"]
       ;["eastwood"]
       ]
-    "ltest" ["with-profile" "+test" "ltest"]
-    "junit" ["with-profile" "+test" "test2junit"]
+    "ltest" ["with-profile" "+test,+system" "ltest"]
+    "junit" ["with-profile" "+test,+system" "test2junit"]
     "version" ["do"
       ["version"]
       ["shell" "echo" "-n" "CMR-OPeNDAP: "]


upgrade dag_unify to latest release

upgrade dag_unify to latest release

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


Fixed some comments

Fixed some 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/lprefontaine/Boing.git/'


embyonic wiki dump parser

embyonic wiki dump parser

--- corpusmaker.clj
+++ corpusmaker.clj
@@ -0,0 +1,26 @@
+;   Copyright (c) Olivier Grisel, 2009
+;   The use and distribution terms for this software are covered by the
+;   Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
+;   which can be found in the file epl-v10.html 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.
+
+; corpusmaker - Clojure tools to build training dataset for machine learning
+; based NLP algorithms out of Wikimedia dumps
+
+(ns corpusmaker
+    (:require [clojure.zip :as zip]
+              [clojure.xml :as xml]
+	      [clojure.contrib.zip-filter.xml]))
+
+(defn parse-xml
+  "seqable XML content from filename"
+  [filename] (zip/xml-zip (xml/parse (java.io.File. filename))))
+
+(defn collect-text
+  "collect wikimarkup payload of a dump in seqable xml"
+  [xml] (xml-> xml :page :revision :text text))
+
+; sample timed run
+; (time (dorun (collect-text (parse-xml "chunk-0001.xml"))))


Add random id generator

Add random id generator

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

--- src/gpx/util.clj
+++ src/gpx/util.clj
@@ -0,0 +1,16 @@
+(ns gpx.util
+    (:require [clojure.string :as str]))
+
+(def alphanumerics (map char
+    (concat
+        (range 48 57)     ; 0-9
+        (range 65 90)     ; A-Z
+        (range 97 122)))) ; a-z
+
+(def default-id-length 6)
+
+(defn random-id
+  "Creates a random ID of the given length using alphanumeric characters"
+  ([]    (random-id default-id-length))
+  ([len] (str/join
+            (repeatedly len #(rand-nth alphanumerics)))))


Actually checking if we can do a primtive invoke

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/'


stuff

stuff

fatal: unable to access 'https://github.com/Quixoticelixer/Mos-Website.git/': The requested URL returned error: 403


Stub for test module metadata_reader

Stub for test module metadata_reader

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

--- test/emender_jenkins/metadata_reader_test.clj
+++ test/emender_jenkins/metadata_reader_test.clj
@@ -0,0 +1,29 @@
+;
+;  (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 emender-jenkins.middleware-test
+  (:require [clojure.test :refer :all]
+            [emender-jenkins.metadata-reader :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))
+
+;
+; Tests for various function definitions
+;
+


More sensical padding between item images

--- src/lolitemsets/core.cljs
+++ src/lolitemsets/core.cljs
@@ -87,10 +87,12 @@
      [:option {:key id :value id} name])])

 (defn item-image [item]
-  [:img.img-rounded {:src (if item
-                            (data/item-img-url (get-in item [:image :full]))
-                            "questionmark.png")
-                     :width 64 :height 64}])
+  [:span {:style {:padding-right "5px"}}
+   [:img.img-rounded
+    {:src (if item
+            (data/item-img-url (get-in item [:image :full]))
+            "questionmark.png")
+     :width 64 :height 64}]])

 (defn item-component [idx item]
   [:div.media.well.well-sm {:key (:id item)}


year and mohth summaries to contain last day

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

--- src/ontrail/imgimport.clj
+++ src/ontrail/imgimport.clj
@@ -0,0 +1,24 @@
+(ns ontrail.imgimport
+  (:use [ontrail mongodb])
+  (:require [clojure.java.io :as io]
+            [monger.collection :as mc]
+            [monger.result :as mr]
+            [net.cgrand.enlive-html :as html]
+            [clojure.string :as string]
+            [clj-time.core :as time]
+            ;; for date serialization to mongo.
+            [monger.joda-time])
+  (:import [java.io File]))
+
+(defn find-all-imgs[]
+  (let [bodies (map :body (mc/find-maps EXERCISE {}))
+        body-htmls (map html/html-snippet bodies)
+        img-tags (flatten (map #(html/select % [:img]) body-htmls))]
+    (map (comp :src :attrs) img-tags)))
+
+(defn print-all[]
+  (doall (for [img (find-all-imgs)] (printf "%s\n" img))))
+
+
+(defn -main [& args]
+  (print-all))


fixing underscore based closure ns problems

fatal: unable to access 'https://github.com/verma/lein-figwheel.git/': The requested URL returned error: 403


a keyboard monome

a keyboard monome

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

--- test/example/keynome.clj
+++ test/example/keynome.clj
@@ -0,0 +1,102 @@
+;; I guess this doesn't show off overtone so much.. yet..
+(ns example.keynome
+  (:use overtone.live)
+  (:import [java.awt GridLayout Dimension]
+           [java.awt.event ActionListener KeyListener KeyEvent]
+           [javax.swing JFrame JButton JPanel]))
+
+(def keyboard
+  (let [cm (keyword ","), sl (keyword "/"), sc (keyword ";"),
+        mi (keyword "-"), lb (keyword "["), rb (keyword "]"),
+        qt (keyword "'")]
+    [:1 :2 :3 :4 :5 :6 :7 :8 :9 :0 mi
+     :q :w :e :r :t :y :u :i :o :p lb
+     :a :s :d :f :g :h :j :k :l sc qt
+     :z :x :c :v :b :n :m cm :. sl rb]))
+
+(defn new-keynome []
+  (let [grid-layout (GridLayout. 4 11)
+        action-map (ref {})
+        buttons (for [kwd keyboard] (JButton. (str kwd)))
+        panel (JPanel.)
+        fire (fn [e am]
+               (let [key (str (.getKeyChar e))
+                     f (@am (keyword key))]
+                 (do (if f (f) (println "key" key "pressed, no action")))))
+        key-listener (proxy [KeyListener] []
+                       (keyPressed [e] (fire e action-map))
+                       (keyReleased [e] nil) (keyTyped [e] nil))
+        frame (JFrame. "kbdnome")]
+    (do (doall (for [b buttons] (do (.add panel b))))
+        (doto panel
+          (.setLayout grid-layout)
+          (.addKeyListener key-listener)
+          (.setFocusable true)
+          (.setFocusTraversalKeysEnabled false))
+        (.add (.getContentPane frame) panel)
+        (doto frame (.pack) (.setVisible true))
+        {:frame frame :action-map action-map
+         :buttons (apply hash-map (interleave keyboard buttons))})))
+
+(defn set-actions [ & stuff]
+  (let [am ((first stuff) :action-map)
+        kwd-action-pairs (partition 2 (rest stuff))]
+    (doall (for [[kwd action] kwd-action-pairs]
+             (dosync (ref-set am (assoc @am kwd action))))) nil))
+
+
+;; make a short keyboard with Q key as Eb
+(def marimba (new-keynome))
+(definst marimba-note [freq 300]
+  (let [src (sin-osc freq)
+        env (env-gen (perc 0.01 1.0) :action :free)]
+    (* 0.9 src env)))
+
+(def note-diff (Math/pow 2.0 (/ 1.0 12.0)))
+(defn change-note [note steps]
+  (* note (Math/pow note-diff steps)))
+
+;; keyboard like, though we aren't restricted to that
+(def melody-kbd
+  (let [base-note (change-note 440 -6)
+        keys [:q :a :s :e :d :r :f :t :g :h :u :j :i :k :l :p
+              (keyword (str ";")) (keyword (str "["))]
+        notes (for [i (range (count keys))] (change-note base-note i))]
+    (doall (for [[key note] (partition 2 (interleave keys notes))]
+             (set-actions marimba key #(marimba-note note))))
+    {:keys keys :notes notes}))
+
+;; lazy harmony, press z for bass only, x  for highs and bass
+(def hit-count (ref 0))
+(def base-note (change-note 440 -16))
+
+(def bass-sequence [[0] [3 7] [3 7]
+                    [2] [5 9] []
+                    [3] [7 10] [7 10]
+                    [2] [5 9] []])
+
+(def high-sequence [[0 36 43] [3 7 36 43] [3 7 36 43]
+                    [2 38 45] [5 9 38 45] [ 38 45]
+                    [3 39 46] [7 10 39 46] [7 10 39 46]
+                    [2 38 45] [5 9 38 45] [ 38 45]])
+
+(defn play-bass []
+  (let [cc (mod @hit-count 12)
+        notes (nth bass-sequence cc)]
+    (do (dosync (ref-set hit-count (inc @hit-count)))
+        (doall (map #(marimba-note (change-note base-note %)) notes)))))
+
+(defn play-high []
+  (let [cc (mod @hit-count 12)
+        notes (nth high-sequence cc)]
+    (do (dosync (ref-set hit-count (inc @hit-count)))
+        (doall (map #(marimba-note (change-note base-note %)) notes)))))
+
+(set-actions marimba
+             :x play-high
+             :z play-bass
+             :1 #(dosync (ref-set hit-count 0)) ;; reset sequence
+             )
+
+;; which is enough to play a Zelda theme on marimba
+;; I saw somewhere on youtube..


Add pe-classifier config file

Add pe-classifier config file

fatal: unable to access 'https://github.com/puppetlabs/ezbake.git/': The requested URL returned error: 403


remove unused imports

remove unused imports

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/wilkerlucio/youtube-looper.git/'


correct board-page component

correct board-page component

--- src/cljs/memtest/core.cljs
+++ src/cljs/memtest/core.cljs
@@ -125,7 +125,7 @@
 ;; Initialize app

 (defn mount-root []
-  (reagent/render [board] (.getElementById js/document "app")))
+  (reagent/render [board-page] (.getElementById js/document "app")))

 (defn init! []
   (accountant/configure-navigation!)


Add additional check for next button

Add additional check for next button

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/'


yle-public maven repo is now at https://maven.yle.fi

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/yle-api-template.git/'


before and after hooks

before and after hooks

--- clojure/src/main/clj/cucumber/runtime/clj.clj
+++ clojure/src/main/clj/cucumber/runtime/clj.clj
@@ -1,7 +1,9 @@
 (ns cucumber.runtime.clj
   (:import (cucumber.runtime CucumberException
                              JdkPatternArgumentMatcher
-                             StepDefinition)
+                             StepDefinition
+                             HookDefinition)
+           (gherkin TagExpression)
            (clojure.lang RT))
   (:gen-class :name cucumber.runtime.clj.Backend
               :implements [cucumber.runtime.Backend]
@@ -59,6 +61,38 @@
      (getPattern [_]
        pattern))))

+(defmulti add-hook-definition (fn [t & _] t))
+
+(defmethod add-hook-definition :before [_ tag-expression hook-fun]
+  (let [te (TagExpression. (list* (seq tag-expression)))]
+    (.addBeforeHook
+     @world
+     (reify
+       HookDefinition
+       (execute [hd scenario-result]
+         (hook-fun))
+       (matches [hd tags]
+         (.eval te tags))
+       (getOrder [hd] 0)))))
+
+(defmethod add-hook-definition :after [_ tag-expression hook-fun]
+  (let [te (TagExpression. (list* (seq tag-expression)))
+        max-parameter-count (->> hook-fun class .getDeclaredMethods
+                                 (filter #(= "invoke" (.getName %)))
+                                 (map #(count (.getParameterTypes %)))
+                                 (apply max))]
+    (.addBeforeHook
+     @world
+     (reify
+       HookDefinition
+       (execute [hd scenario-result]
+         (if (zero? max-parameter-count)
+           (hook-fun)
+           (hook-fun scenario-result)))
+       (matches [hd tags]
+         (.eval te tags))
+       (getOrder [hd] 0)))))
+
 ;; TODO: before and after hooks

 (defmacro step-macros [& names]
@@ -70,3 +104,9 @@
                                       :line (:line (meta ~'&form))})))))
 (step-macros
  Given When Then And But)
+
+(defmacro Before [fun]
+  `(add-hook-definition :before [] ~fun))
+
+(defmacro After [fun]
+  `(add-hook-definition :after [] ~fun))


Add the ability to create gset instance with initial data.

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/tcsavage/cats.git/'


Parsers can only have named types added.

--- src/clojure/abracad/avro.clj
+++ src/clojure/abracad/avro.clj
@@ -6,7 +6,7 @@
             [abracad.avro.util :refer [returning mangle unmangle]])
   (:import [java.io ByteArrayOutputStream InputStream EOFException]
            [clojure.lang Named]
-           [org.apache.avro Schema Schema$Parser]
+           [org.apache.avro Schema Schema$Parser Schema$Type]
            [org.apache.avro.file CodecFactory DataFileWriter DataFileReader]
            [org.apache.avro.io
              DatumReader DatumWriter Decoder DecoderFactory
@@ -48,6 +48,12 @@
 (defn ^:private raw-schema?
   "True if schema `source` should be parsed as-is."
   [source] (or (string? source) (instance? InputStream source)))
+
+(def ^:private primitive-types
+  (->> Schema$Type .getEnumConstants (map #(.getName %)) (into #{})))
+
+(defn ^:private named-schema?
+  [^Schema schema] (-> schema .getFullName primitive-types not))

 (defn parse-schema
   "Parse Avro schemas in `sources`.  Each schema source may be a JSON
@@ -61,7 +67,8 @@
     (reduce (fn [_ source]
               (if (instance? Schema source)
                 (returning source
-                  (.addTypes parser {(.getFullName ^Schema source) source}))
+                  (when (named-schema? source)
+                    (.addTypes parser {(.getFullName ^Schema source) source})))
                 (->> (if (raw-schema? source) source (clj->json source))
                      (.parse parser))))
             nil


Move emacs code to to its own namespace.

fatal: unable to access 'https://github.com/stevensurgnier/stevensurgnier.github.io.git/': The requested URL returned error: 403


Finish refactoring Cognitect's example code

...into a forever-looping, error-logging-but-never-stopping daemonic hellbeast.

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/'


Split a protocol to sockets and data into separate ns.

error: pathspec 'src/clojure/nanomsg/proto.clj' did not match any file(s) known to git

--- src/clojure/nanomsg/proto.clj
+++ src/clojure/nanomsg/proto.clj
@@ -0,0 +1,23 @@
+(ns nanomsg.proto
+  "Protocol definitions for nanomsg sockets."
+  (:refer-clojure :exclude [send]))
+
+(defprotocol ISocket
+  "Common socket protocol."
+  (bind [_ dir])
+  (connect [_ dir])
+  (subscribe [_ pattern])
+  (unsubscribe [_ pattern])
+  (send [_ data opt])
+  (recv [_ opt]))
+
+(defprotocol IBlockingSocket
+  "Mark for blocking socket.")
+
+(defprotocol IAsyncSocket
+  "Mark for async socket.")
+
+(defprotocol ISocketData
+  "Common interface for data that can be
+  sended through nanomsg socket."
+  (get-bytes [_] "Get a byte array representation."))


Simple Freese Layout

Simple Freese Layout

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

error: pathspec 'src/conexp/layouts/freese.clj' did not match any file(s) known to git

--- src/conexp/layouts/freese.clj
+++ src/conexp/layouts/freese.clj
@@ -0,0 +1,38 @@
+;; Copyright (c) Daniel Borchmann. All rights reserved.
+;; The use and distribution terms for this software are covered by the
+;; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
+;; which can be found in the file LICENSE 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.
+
+(ns conexp.layouts.freese
+  (:use [conexp.fca.lattices :only (base-set lattice-upper-neighbours)]
+        [conexp.layouts.util :only (edges)]
+        [conexp.layouts.base :only (make-layout)])
+  (:import [org.latdraw.diagram Diagram Vertex]))
+
+;;;
+
+(defn freese-layout
+  "Returns the Freese Layout of lattice, with the given angle for
+  projection. If not given, the angle defaults to 0."
+  ([lattice]
+     (freese-layout lattice 0.0))
+  ([lattice angle]
+     (let [nodes (seq (base-set lattice)),
+           ucs   (map #(or (seq (lattice-upper-neighbours lattice %)) [])
+                      nodes),
+           ^Diagram
+           diag  (Diagram. "" nodes ucs)]
+       (.improve diag)
+       (.project2d diag ^double angle)
+       (make-layout
+        (into {} (for [^Vertex vertex (.getVertices diag)]
+                   [(.getUnderlyingObject (.getUnderlyingElem vertex)),
+                    [(.getProjectedX vertex) (.getProjectedY vertex)]]))
+        (edges lattice)))))
+
+;;;
+
+nil


Also log when we that a file has been removed.

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/'


Add project.clj

Add project.clj

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

--- ClojureScript/project.clj
+++ ClojureScript/project.clj
@@ -0,0 +1,22 @@
+(defproject shrimp "0.1.0-SNAPSHOT"
+  :description "Demo project for Goby."
+  :dependencies [[org.clojure/clojure "1.7.0-beta1"]
+                 [org.clojure/clojurescript "0.0-3211"]
+                 [org.clojure/core.async "0.1.346.0-17112a-alpha"]
+                 [goby "0.3.1"]
+                 [org.omcljs/ambly "0.1.0-SNAPSHOT"]]
+  :plugins [[lein-cljsbuild "1.0.5"]]
+  :source-paths ["src"]
+  :clean-targets ["target" "out"]
+  :cljsbuild {:builds {:dev
+                       {:source-paths ["src"]
+                        :compiler     {:output-to      "out/main.js"
+                                       :output-dir     "out"
+                                       :optimizations  :none}}
+                       :rel
+                       {:source-paths ["src"]
+                        :compiler     {:output-to     "out/main.js"
+                                       :optimizations :advanced
+                                       :externs       ["externs.js"]
+                                       :pretty-print  false
+                                       :pseudo-names  false}}}})


Make android example more complex

Make android example more complex

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/'


added tutorial 3

added tutorial 3

error: pathspec 'src/maqueta/hello/assets.clj' did not match any file(s) known to git

--- src/maqueta/hello/assets.clj
+++ src/maqueta/hello/assets.clj
@@ -0,0 +1,53 @@
+(ns maqueta.hello.assets
+  (:use (maqueta application assets))
+  (:import com.jme3.light.DirectionalLight
+           com.jme3.font.BitmapText
+           com.jme3.scene.shape.Box
+           com.jme3.scene.Geometry
+           com.jme3.math.Vector3f))
+
+(defn setup-fn
+  [app]
+  (let [teapot (load-model "Models/Teapot/Teapot.obj")
+                   mat-default (load-material "Common/MatDefs/Misc/ShowNormals.j3md")
+                   wall (Geometry. "Box" (Box. Vector3f/ZERO 2.5 2.5 1.0))
+                   mat-brick (load-material "Common/MatDefs/Misc/Unshaded.j3md")
+                   gui-font (load-font "Interface/Fonts/Default.fnt")
+                   hello-text (BitmapText. gui-font false)
+                   ninja (load-model "Models/Ninja/Ninja.mesh.xml")
+                   sun (DirectionalLight.)]
+
+               (.setMaterial teapot mat-default)
+
+               (.setTexture mat-brick "ColorMap"
+                            (load-texture "Textures/Terrain/BrickWall/BrickWall.jpg"))
+
+               (doto wall
+                 (.setMaterial mat-brick)
+                 (.setLocalTranslation 2.0 -2.5 0.0))
+
+               (doto hello-text
+                 (.setSize (.getRenderedSize (.getCharSet gui-font)))
+                 (.setText "Hello World")
+                 (.setLocalTranslation 300 (.getLineHeight hello-text) 0))
+
+               (doto (.getGuiNode app)
+                 .detachAllChildren
+                 (.attachChild hello-text))
+
+               (doto ninja
+                 (.scale 0.05 0.05 0.05)
+                 (.rotate 0.0 -3.0 0.0)
+                 (.setLocalTranslation 0.0 -5.0 -2.0))
+
+               (.setDirection sun (Vector3f. -0.1 -0.7 -1.0))
+
+               (doto (.getRootNode app)
+                 (.attachChild teapot)
+                 (.attachChild wall)
+                 (.attachChild ninja)
+                 (.addLight sun))))
+
+(defn -main
+  []
+  (.start (make-app :setup-fn setup-fn)))


Working up a pipe-line approach to better handle IO bottle necks

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/MitchellJThomas/medir.git/'


Use interpose instead of interleave to add spaces between words.

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/'


Add goto test

Add goto test

error: pathspec 'test/obb_rules/actions/goto_test.clj' did not match any file(s) known to git

--- test/obb_rules/actions/goto_test.clj
+++ test/obb_rules/actions/goto_test.clj
@@ -0,0 +1,57 @@
+(ns obb-rules.actions.goto-test
+  (:use clojure.test
+        obb-rules.action
+        obb-rules.actions.move
+        obb-rules.board
+        obb-rules.element
+        obb-rules.result
+        obb-rules.unit))
+
+(def rain (get-unit-by-name "rain"))
+(def crusader (get-unit-by-name "crusader"))
+(def nova (get-unit-by-name "nova"))
+(def pretorian (get-unit-by-name "pretorian"))
+(def move-down (build-action [:move [2 2] [2 3] 10]))
+(def rain-element (create-element :p1 rain 10 :south))
+(def crusader-element (create-element :p1 crusader 10 :south))
+(def nova-element (create-element :p1 nova 10 :south))
+(def pretorian-element (create-element :p1 pretorian 10 :south))
+(def board (place-element (create-board) [2 2] rain-element))
+
+
+(deftest out-of-bounds
+  (let [move-far (build-action [:goto [8 8] [9 9]])
+        result (move-far board :p1)]
+    (is (failed? result))
+    (is (= "OutOfBounds" (result-message result)))))
+
+(deftest coordinate-is-from-another-player
+  (let [action (build-action [:goto [1 1] [2 2] 10])
+        element (create-element :p2 rain 10 :south)
+        board (place-element (create-board) [1 1] element)
+        result (action board :p1)]
+    (is (failed? result))
+    (is (= "NotOwnedElement" (result-message result)))))
+
+(deftest target-coordinate-is-from-another-player
+  (let [action (build-action [:goto [2 2] [3 3] 10])
+        element (create-element :p2 rain 10 :south)
+        new-board (place-element board [3 3] element)
+        result (action new-board :p1)]
+    (is (failed? result))
+    (is (= "NotOwnedElement" (result-message result)))))
+
+(deftest target-coordinate-is-another-unit
+  (let [action (build-action [:goto [2 2] [3 3] 10])
+        element (create-element :p1 crusader 10 :south)
+        new-board (place-element board [3 3] element)
+        result (action new-board :p1)]
+    (is (failed? result))
+    (is (= "UnitMismatch" (result-message result)))))
+
+(deftest coordinate-empty
+  (let [action (build-action [:goto [1 1] [1 2]])
+        board (create-board)
+        result (move-down board :p1)]
+    (is (failed? result))
+    (is (= "EmptyCoordinate" (result-message result)))))


Add a project.clj that delegates to deps.edn (#763)

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

--- planck-cljs/project.clj
+++ planck-cljs/project.clj
@@ -0,0 +1,4 @@
+(defproject planck "0.0.0"
+  :plugins [[lein-tools-deps "0.4.1"]]
+  :middleware [lein-tools-deps.plugin/resolve-dependencies-with-deps-edn]
+  :lein-tools-deps/config {:config-files [:install :user :project]})


reposition image on landing page

reposition image on landing page

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/'


Start filling out test generators ns.

Start filling out test generators ns.

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

--- test/merkle_db/generators.clj
+++ test/merkle_db/generators.clj
@@ -0,0 +1,49 @@
+(ns merkle-db.generators
+  (:require
+    [clojure.test.check.generators :as gen]
+    [com.gfredericks.test.chuck.clojure-test :refer [checking]]
+    [merkle-db.key :as key]))
+
+
+(def record-key
+  "Generates record key byte values."
+  (gen/fmap key/create (gen/such-that not-empty gen/bytes)))
+
+
+(def field-key
+  "Generates field key values."
+  (gen/one-of
+    [(gen/such-that not-empty gen/string)
+     gen/keyword
+     gen/keyword-ns
+     gen/symbol
+     gen/symbol-ns]))
+
+
+(def ^:private primitive-field-gens
+  "Generates primitive field values."
+  [gen/boolean
+   gen/large-integer
+   (gen/double* {:NaN? false})
+   gen/string
+   gen/keyword
+   gen/keyword-ns
+   gen/symbol
+   gen/symbol-ns
+   gen/uuid])
+
+
+(def field-value
+  "Generates primitive and complex field values."
+  (let [primitive-value (gen/one-of primitive-field-gens)]
+    (gen/one-of
+      [primitive-value
+       (gen/set primitive-value)
+       (gen/vector primitive-value)
+       (gen/map primitive-value primitive-value)])))
+
+
+(defn record
+  "Generates record key/data pairs using the given set of fields."
+  [field-keys]
+  (gen/tuple record-key (gen/map (gen/elements field-keys) field-value)))


model env ns after cljs.env

model env ns after cljs.env

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/aamedina/clojure.llvm.git/'


add api for pseudo-parameters

add api for pseudo-parameters

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

--- src/crucible/pseudo.clj
+++ src/crucible/pseudo.clj
@@ -0,0 +1,26 @@
+(ns crucible.pseudo
+  "Psuedo Parameters http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html")
+
+(defn- ps [type]
+  [:pseudo type])
+
+(def account-id
+  (ps :account-id))
+
+(def region
+  (ps :region))
+
+(def notification-arns
+  (ps :notification-arns))
+
+(def no-value
+  (ps :no-value))
+
+(def stack-id
+  (ps :stack-id))
+
+(def stack-name
+  (ps :stack-name))
+
+
+


lortu-liburua erabili

lortu-liburua erabili

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/'


lortu aipatu

lortu aipatu


Extra shen-absarray alias not needed in 3.1

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/'


'API' in all caps (#34)

'API' in all caps (#34)

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/yle-api-template.git/'


Fix undeclared var warning

Fix undeclared var warning

--- src/sablono/interpreter.cljc
+++ src/sablono/interpreter.cljc
@@ -86,6 +86,15 @@
   (into [] (map interpret) x))

 #?(:cljs
+   (defn element
+     "Render an element vector as a HTML element."
+     [element]
+     (let [[type attrs content] (normalize/element element)]
+       (apply create-element type
+              (attributes attrs)
+              (interpret-seq content)))))
+
+#?(:cljs
    (defn- interpret-vec
      "Interpret the vector `x` as an HTML element or a the children of
   an element."
@@ -93,15 +102,6 @@
      (if (util/element? x)
        (element x)
        (interpret-seq x))))
-
-#?(:cljs
-   (defn element
-     "Render an element vector as a HTML element."
-     [element]
-     (let [[type attrs content] (normalize/element element)]
-       (apply create-element type
-              (attributes attrs)
-              (interpret-seq content)))))

 #?(:cljs
    (extend-protocol IInterpreter