Update project dependency versions

Update project dependency versions

--- project.clj
+++ project.clj
@@ -18,7 +18,7 @@
                  [org.clojure/tools.logging "0.3.1"]                  ; logging framework
                  [org.clojure/tools.macro "0.1.5"]                    ; tools for writing macros
                  [org.clojure/tools.namespace "0.2.10"]
-                 [org.clojure/tools.reader "0.9.1"]                   ; Need to explictly specify this dep otherwise expectations doesn't seem to work right :'(
+                 [org.clojure/tools.reader "0.9.2"]                   ; Need to explictly specify this dep otherwise expectations doesn't seem to work right :'(
                  [org.clojure/tools.trace "0.7.8"]                    ; "tracing macros/fns to help you see what your code is doing"
                  [amalloy/ring-gzip-middleware "0.1.3"]               ; Ring middleware to GZIP responses if client can handle it
                  [cheshire "5.4.0"]                                   ; fast JSON encoding (used by Ring JSON middleware)
@@ -27,7 +27,7 @@
                  [colorize "0.1.1" :exclusions [org.clojure/clojure]] ; string output with ANSI color codes (for logging)
                  [com.cemerick/friend "0.2.1"]                        ; auth library
                  [com.draines/postal "1.11.3"]                        ; SMTP library
-                 [com.h2database/h2 "1.4.186"]                        ; embedded SQL database
+                 [com.h2database/h2 "1.4.187"]                        ; embedded SQL database
                  [com.mattbertolini/liquibase-slf4j "1.2.1"]
                  [com.novemberain/monger "2.1.0"]                     ; MongoDB Driver
                  [compojure "1.3.3"]                                  ; HTTP Routing library built on Ring
@@ -39,8 +39,8 @@
                                javax.jms/jms
                                com.sun.jdmk/jmxtools
                                com.sun.jmx/jmxri]]
-                 [medley "0.5.5"]                                     ; lightweight lib of useful functions
-                 [org.liquibase/liquibase-core "3.3.2"]               ; migration management (Java lib)
+                 [medley "0.6"]                                       ; lightweight lib of useful functions
+                 [org.liquibase/liquibase-core "3.3.3"]               ; migration management (Java lib)
                  [org.slf4j/slf4j-log4j12 "1.7.12"]
                  [org.yaml/snakeyaml "1.15"]                          ; YAML parser (required by liquibase)
                  [postgresql "9.3-1102.jdbc41"]                       ; Postgres driver
@@ -61,7 +61,7 @@
              :add-linters [:unused-private-vars]
              :exclude-linters [:constant-test]}                       ; korma macros generate some formats with if statements that are always logically true or false
   :profiles {:dev {:dependencies [[org.clojure/tools.nrepl "0.2.10"]  ; REPL <3
-                                  [expectations "2.1.0"]              ; unit tests
+                                  [expectations "2.1.1"]              ; unit tests
                                   [marginalia "0.8.0"]                ; for documentation
                                   [ring/ring-mock "0.2.0"]]
                    :plugins [[cider/cider-nrepl "0.9.0-SNAPSHOT"]     ; Interactive development w/ cider NREPL in Emacs
@@ -72,7 +72,7 @@
                              [lein-expectations "0.0.8"]              ; run unit tests with 'lein expectations'
                              [lein-instant-cheatsheet "2.1.1"]        ; use awesome instant cheatsheet created by yours truly w/ 'lein instant-cheatsheet'
                              [lein-marginalia "0.8.0"]                ; generate documentation with 'lein marg'
-                             [refactor-nrepl "1.0.1"]]                ; support for advanced refactoring in Emacs/LightTable
+                             [refactor-nrepl "1.0.5"]]                ; support for advanced refactoring in Emacs/LightTable
                    :global-vars {*warn-on-reflection* true}           ; Emit warnings on all reflection calls
                    :jvm-opts ["-Dlogfile.path=target/log"
                               "-Xms1024m"                             ; give JVM a decent heap size to start with


Version 1.16.1

Version 1.16.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/starcity-properties/odin.git/'


Switch to aleph 0.2.1-beta2

Switch to aleph 0.2.1-beta2

Fixes an issue with compiles never terminating.

--- project.clj
+++ project.clj
@@ -25,7 +25,7 @@
                                        com.sun.jdmk/jmxtools
                                        com.sun.jmx/jmxri]]
     [log4j/apache-log4j-extras "1.0"]
-    [aleph "0.2.1-beta1"]
+    [aleph "0.2.1-beta2"]
     [io.netty/netty "3.3.0.Final"]
     [protobuf "0.6.0-beta7"]
     [org.antlr/antlr "3.2"]


Remove lein-immutant plugin too

Remove lein-immutant plugin too

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


bump blueprints

bump blueprints


Note the hackage.

Note the hackage.

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


Set version to 0.5.0-SNAPSHOT

Set version to 0.5.0-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject cats "0.4.0"
+(defproject cats "0.5.0-SNAPSHOT"
   :description "Category Theory abstractions for Clojure"
   :url "https://github.com/funcool/cats"
   :license {:name "BSD (2 Clause)"


Release 0.12.3.

Release 0.12.3.

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


Adds ring-mock dependency

Adds ring-mock dependency

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/govindkrjoshi/minesweeper.git/'


Version 0.18.0-SNAPSHOT

Version 0.18.0-SNAPSHOT

--- project.clj
+++ project.clj
@@ -1,4 +1,4 @@
-(defproject clojars-web "0.17.3"
+(defproject clojars-web "0.18.0-SNAPSHOT"
   :dependencies [[org.clojure/clojure "1.6.0"]
                  [org.clojure/tools.cli "0.2.1"]
                  [yeller-clojure-client "1.2.1"]


Version 0.16.4

Version 0.16.4

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


Update Datomic to 0.9.5661

Update Datomic to 0.9.5661

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


Add problem55.clj

Add problem55.clj

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

--- euler_clojure/src/euler_clojure/problem55.clj
+++ euler_clojure/src/euler_clojure/problem55.clj
@@ -0,0 +1,30 @@
+;; problem55.clj
+;;
+;; If we take 47, reverse and add, 47 + 74 = 121, which is
+;; palindromic. A number that never forms a palindrome through the
+;; reverse and add process is called a Lychrel number. How many
+;; Lychrel numbers are there below ten-thousand? (Only consider fifty
+;; iterations)
+
+(ns euler.problem55)
+
+(defn to-digits [n]
+  ;; 1234 => (1 2 3 4)
+  (map #(Character/getNumericValue %) (str n)))
+
+(defn to-num [digits]
+  ;; [1 2 3 4] => 1234N
+  (bigint (clojure.string/join digits)))
+
+(def palindromic?
+  (memoize (fn [n] (= (to-digits n)
+                      (reverse (to-digits n))))))
+
+(defn lychrel? [n]
+  (let [reverse-num #(to-num (reverse (to-digits %)))
+        start (+ n (reverse-num n))
+        iterations (iterate #(+' % (reverse-num %)) start)]
+    (not-any? palindromic? (take 50 iterations))))
+
+(defn problem55 []
+  (count (filter lychrel? (range 1 10000))))


Log S3 retrievals

Log S3 retrievals


:art: Minor tweaks to logging

:art: Minor tweaks to logging

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


add sftp function

add sftp function

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


Use latest play-clj template

Use latest play-clj template

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


restore lein project for legacy

restore lein project for legacy

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

--- project.clj
+++ project.clj
@@ -0,0 +1,33 @@
+(defproject bardo "0.1.0"
+  :description "A clojure(script) library to assist with transitions between dimensions"
+  :url "https://github.com/pleasetrythisathome/bardo"
+  :license {:name "Eclipse Public License - v 1.0"
+            :url "http://www.eclipse.org/legal/epl-v10.html"
+            :distribution :repo}
+
+  :source-paths ["target/src/clj" "target/test/clj"]
+  :resource-paths ["target/src/cljs"]
+
+  :jar-exclusions [#"\.cljx|\.swp|\.swo|\.DS_Store"]
+
+  :dependencies [[org.clojure/clojure "1.7.0-alpha2"]
+                 [org.clojure/clojurescript "0.0-2342"]
+                 [org.clojure/core.async "0.1.338.0-5c5012-alpha"]
+                 [org.clojure/core.match "0.2.2"]
+                 [clj-time "0.8.0"]
+                 [com.andrewmcveigh/cljs-time "0.1.1"]]
+
+  :cljx {:builds [{:source-paths ["src"],
+                   :output-path "target/src/clj",
+                   :rules :clj}
+                  {:source-paths ["src"],
+                   :output-path "target/src/cljs",
+                   :rules :cljs}
+                  {:source-paths ["test"],
+                   :output-path "target/test/clj",
+                   :rules :clj}
+                  {:source-paths ["test"],
+                   :output-path "target/test/cljs",
+                   :rules :cljs}]}
+  :plugins [[com.keminglabs/cljx "0.3.2"]]
+  :hooks [cljx.hooks])


Updating core version.

Updating core 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/B2W-BIT/restQL-server.git/'


version bump for next features

version bump for next features

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/CraZySacX/nitelens.git/'


add project.clj for development with leiningen

--- project.clj
+++ project.clj
@@ -0,0 +1,5 @@
+(defproject org.clojure/data.xml "0-DEVELOPMENT"
+  :source-paths ["src/main/clojure"]
+  :test-paths ["src/test/clojure"]
+  :resource-paths ["src/test/resources"]
+  :dependencies [[org.clojure/clojure "1.8.0-RC3"]])


Remove cljfmt

Remove cljfmt

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/aaronlahey/coconut.git/'


[WM] update deps

[WM] update deps

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


Update ClojureScript to 1.7.145

Update ClojureScript to 1.7.145

--- project.clj
+++ project.clj
@@ -8,7 +8,7 @@
   :dependencies [[cljsjs/react "0.14.0-1" :scope "provided"]
                  [cljsjs/react-dom "0.14.0-1" :scope "provided"]
                  [org.clojure/clojure "1.7.0" :scope "provided"]
-                 [org.clojure/clojurescript "1.7.122" :scope "provided"]]
+                 [org.clojure/clojurescript "1.7.145" :scope "provided"]]
   :aliases {"cleantest" ["do" "clean," "test," "cljsbuild" "test"]
             "deploy" ["do" "clean," "deploy" "clojars"]}
   :cljsbuild {:builds


Remove langohr from dependencies

Remove langohr from 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/Yleisradio/rabid.git/'


Update newrelic-agent to latest version

Update newrelic-agent to latest 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/democracyworks/vote-by-mail-works.git/'


Fix compile problem

Fix compile problem

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


Version 1.4.1

Version 1.4.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/starcity-properties/odin.git/'


Upgrade kehaar to 0.10.3

Upgrade kehaar to 0.10.3

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


Update deps

Update deps

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


dependency version bumps

dependency version bumps

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/CraZySacX/wgetjava.git/'


Improve tooltips

Improve tooltips

Tooltips now follow the cursor. Previously not possible because they
would capture mouse events.

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


move :global-vars under :test profile in project.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/michaelsbradleyjr/transwarp.git/'


Add bultitude as dependency.

Add bultitude as dependency.

Makes midje and lein-midje work with lein 0.2.0-RC2.

--- project.clj
+++ project.clj
@@ -48,6 +48,9 @@
                  [clj-time "0.4.4"]
                  [commons-codec/commons-codec "1.6"]
                  [org.clojure/tools.cli "0.2.2"]
+
+                 ;; TODO lein 0.2.0-RC2 requires this
+                 [bultitude "0.2.0"]
                  ]
   :ring {:handler ruuvi-server.launcher/ring-handler,
          :init ruuvi-server.launcher/ring-init,


cljsbuild source paths organized under target/

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


bump version to 2.8.2

bump version to 2.8.2

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


add s3 dependency that mysteriously disappeared from datomic

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


Invoke cljsbuild from lein compile

Invoke cljsbuild from lein compile

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/bskinny/todomvc-ldap.git/'


add :main, heroku seems to need it

add :main, heroku seems to need it

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


Upgraded outdated libraries

Upgraded outdated libraries

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


Update deps

Update deps

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


Replace if and nots with if-not

Replace if and nots with if-not

--- src/cljx/cats/core.cljx
+++ src/cljx/cats/core.cljx
@@ -75,7 +75,7 @@
                   (bound? #'*forced-context*))
        (throw (IllegalArgumentException.
                "You are using return/pure function without context.")))
-     (if (not (nil? *forced-context*))
+     (if-not (nil? *forced-context*)
        (p/pure *forced-context* v)
        (p/pure *context* v)))
   ([app v]
@@ -89,7 +89,7 @@
                   (bound? #'*forced-context*))
        (throw (IllegalArgumentException.
                "You are using return/pure function without context.")))
-     (if (not (nil? *forced-context*))
+     (if-not (nil? *forced-context*)
        (p/mreturn *forced-context* v)
        (p/mreturn *context* v)))
   ([m v]
@@ -99,14 +99,14 @@
   "Given a value inside monadic context mv and any function,
   applies a function to value of mv."
   [mv f]
-  (if (not (nil? *forced-context*))
+  (if-not (nil? *forced-context*)
     (p/mbind *forced-context* mv f)
     (with-context (p/get-context mv)
       (p/mbind *context* mv f))))

 (defn mzero
   []
-  (if (not (nil? *forced-context*))
+  (if-not (nil? *forced-context*)
     (p/mzero *forced-context*)
     (p/mzero *context*)))

@@ -162,7 +162,7 @@
   "Lift a value from the inner monad of a monad transformer into a value
   of the monad transformer."
   ([mv]
-     (if (not (nil? *forced-context*))
+     (if-not (nil? *forced-context*)
        (p/lift *forced-context* mv)
        (p/lift *context* mv)))
   ([m mv]


sequence-m function

sequence-m function


answer

answer

error: pathspec 'vif-navigator2/src/clojure/ru/vif/answer.clj' did not match any file(s) known to git

--- vif-navigator2/src/clojure/ru/vif/answer.clj
+++ vif-navigator2/src/clojure/ru/vif/answer.clj
@@ -0,0 +1,56 @@
+(ns ru.vif.answer
+  (:require [neko.activity :refer [defactivity set-content-view!]]
+            [neko.debug :refer [*a safe-for-ui]]
+            [neko.threading :refer [on-ui on-ui*]]
+            [neko.resource :refer [import-all get-resource]]
+            [neko.ui.menu :as menu]
+            [neko.log :as log]
+            [neko.notify :as notify]
+            [neko.ui.adapters :refer [ref-adapter]]
+            [neko.find-view :refer [find-view find-views]]
+            [neko.ui :refer [config make-ui-element]]
+            [neko.action-bar :refer [setup-action-bar]]
+            [clojure.java.io :as io]
+
+            [ru.vif.model.api :as model-api :refer :all]
+            [ru.vif.http-client :as http :refer :all]
+            [ru.vif.tools :refer :all]
+            [ru.vif.db-tools :refer :all]
+            )
+  (:import
+    (ru.vif.model.records vif-xml-entry parse-data vif-tree vif-display-entry)
+    (android.content SharedPreferences$OnSharedPreferenceChangeListener SharedPreferences)
+    (android.app Activity)))
+
+(neko.resource/import-all)
+
+(def PARAM_ANSWER_TO_NO "no")
+(def PARAM_ANSWER_TO_TITLE "title")
+(def PARAM_ANSWER_TO_MSG "msg")
+
+(defactivity ru.vif.AnswerActivity
+             ;"Создает activity с ответом
+             :key :answer
+             :on-create
+             (fn [^Activity this bundle]
+               (let [answer-to-no (get-activity-param this PARAM_ANSWER_TO_NO)
+                     answer-to-msg (get-activity-param this PARAM_ANSWER_TO_MSG)
+                     answer-to-title (get-activity-param this PARAM_ANSWER_TO_TITLE)
+                     ]
+
+                 (on-ui
+                   (set-content-view! this [:list-view {:id                 ::msg-list-view
+                                                        ;:adapter            (make-adapter this state false)
+                                                        :backgroundResource R$color/even
+                                                        }
+                                            ])
+                   (setup-action-bar this {
+                                           :title              "Ответ :"
+                                           :backgroundDrawable (.. this getResources (getDrawable R$color/odd))
+                                           :display-options    [:home-as-up :show-title]
+                                           })
+                   )
+                 )
+               )
+
+             )


Remove outdated note.

Remove outdated note.

--- src-cljs/pepa/workflows/dashboard.cljs
+++ src-cljs/pepa/workflows/dashboard.cljs
@@ -185,7 +185,6 @@
 (ui/defcomponent dashboard [state owner]
   om/ICheckState
   (init-state [_]
-    ;; NOTE: We might want to move that to the app-state
     {:selection (selection/make-selection (document-ids state))
      :clicks (async/chan)})
   (will-mount [_]
@@ -231,3 +230,4 @@
 (defmethod draggable/pos->width ::sidebar [_ sidebar [x _]]
   (draggable/limit
    (- (draggable/viewport-width) x)))
+


Restore new relic transaction

Restore new relic transaction

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


[WM] Fix setup-db test fixture

[WM] Fix setup-db test fixture

Not sure how this was working in 2.0.0, but I feel good that 2.0.1 blows
up where 2.0.0 didn't. You gotta pass a config to
datomic-toolbox/initialize in 2.x.x.

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


Provide a demotion stream for events bumped out of the top-k.

--- src/riemann/streams.clj
+++ src/riemann/streams.clj
@@ -905,8 +905,8 @@
                  (first (first (sort-by second top)))))
         trim (fn trim [top smallest]
                (if (< k (count top))
-                 (dissoc top smallest)
-                 top))]
+                 [(dissoc top smallest) smallest]
+                 [top]))]
     (cond
       ; Expired or irrelevant event
       (or (expired? event)
@@ -928,15 +928,16 @@

       ; In the top set
       :else
-      (let [top (trim (assoc top ekey value) smallest)]
+      (let [[top out] (trim (assoc top ekey value) smallest)]
         (if (or (nil? (top smallest))
                 (neg? (compare value (top smallest))))
-          [(scan top) top]
-          [smallest top])))))
+          [(scan top) top out]
+          [smallest top out])))))

 (defn top
   "Bifurcates a stream into a dual pair of streams: one for the top k events,
-  and one for the bottom k events.
+  and one for the bottom k events. An optional third stream can be provided
+  which will receive events which are leaving the top

   f is a function which maps events to comparable values, e.g. numbers. If an
   incoming event e falls in the top k, the top stream receives e and the bottom
@@ -954,22 +955,34 @@
   Index everything, but tag the top k events with \"top\":

   (top 10 :metric
-    (adjust [:tags conj \"top\"]
-      index)
+    (tag \"top\" index)
     index)

   This implementation of top is lazy, in a sense. It won't proactively expire
   events which are bumped from the top-k set--you have to wait for another
   event with the same host and service to arrive before child streams will know
-  it's expired. At some point I (or an enterprising committer) should fix
-  that."
+  it's expired. If you wish to eagerly remove bumped events you would use the
+  following construct:
+
+  (top 10 :metric
+    (tag \"top\" index)
+    index
+    index)
+"
   ([k f top-stream]
-   (top k f top-stream bit-bucket))
+     (top k f top-stream bit-bucket nil))
   ([k f top-stream bottom-stream]
+     (top k f top-stream bottom-stream nil))
+  ([k f top-stream bottom-stream demote-stream]
    (let [state (atom [nil {}])]
      (dual (fn stream [event]
-             (let [top   (second (swap! state top-update k f event))]
-               (top [(:host event) (:service event)])))
+             (let [[_ top out] (swap! state top-update k f event)]
+               (when (top [(:host event) (:service event)])
+                 (when (and out demote-stream)
+                   (call-rescue (assoc (zipmap [:host :service] out)
+                                  :time (unix-time))
+                                [demote-stream]))
+                 true)))
            top-stream
            bottom-stream))))


Not counting current fn as being in scope

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


macro timing

macro timing

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

--- src/sandbox/customflow/macrotiming.clj
+++ src/sandbox/customflow/macrotiming.clj
@@ -0,0 +1,11 @@
+(ns sandbox.customflow.macrotiming)
+
+(defn time-run [to-time]
+  (let [start (System/currentTimeMillis)]
+    (to-time)
+    (- (System/currentTimeMillis) start)))
+
+(defmacro avg-time [times to-time]
+  `(let [total-time#
+         (apply + (for [_# (range ~times)] (time-run (fn [] ~to-time))))]
+     (float (/ total-time# ~times))))


[WM] return rabbit connection and channels from queue/initialize

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


Stub for server_test.clj

Stub for server_test.clj

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

--- test/zg/server_test.clj
+++ test/zg/server_test.clj
@@ -0,0 +1,13 @@
+(ns zg.server-test
+  (:require [clojure.test :refer :all]
+            [zg.server :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))
+


Removed some debugging output

Removed some debugging output

--- src/blaagh/controllers.clj
+++ src/blaagh/controllers.clj
@@ -26,7 +26,6 @@
         (render-file "templates/names.html" {:names names})))

 (defn show-post-handler [request]
-    ; (println "HELLO")
     (let [slug (:slug (:params request))
           db-row (db/get-post-by-slug {:slug slug})
           post (first db-row)]


Add benchmarks for different byte buf strategies

error: pathspec 'benchmarks/caesium/byte_bufs_benchmark.clj' did not match any file(s) known to git

--- benchmarks/caesium/byte_bufs_benchmark.clj
+++ benchmarks/caesium/byte_bufs_benchmark.clj
@@ -0,0 +1,32 @@
+(ns caesium.byte-bufs-benchmark
+  (:require [caesium.crypto.secretbox :as sb]
+            [caesium.crypto.secretbox-test :as st]
+            [caesium.byte-bufs :as bb]
+            [criterium.core :refer [bench]]
+            [clojure.test :refer [deftest]]))
+
+(defn secretbox-easy-wrap-byte-array
+  [m n k]
+  (let [c (byte-array (+ sb/macbytes (bb/buflen m)))]
+    (sb/secretbox-easy-to-buf!
+     (bb/->indirect-byte-buf c)
+     (bb/->indirect-byte-buf m)
+     (bb/->indirect-byte-buf n)
+     (bb/->indirect-byte-buf k))
+    c))
+
+(defn secretbox-easy-unwrap-byte-buf
+  [m n k]
+  (let [c (bb/alloc (+ sb/macbytes (bb/buflen m)))]
+    (sb/secretbox-easy-to-buf!
+     c
+     (bb/->indirect-byte-buf m)
+     (bb/->indirect-byte-buf n)
+     (bb/->indirect-byte-buf k))
+    (bb/->bytes c)))
+
+(deftest ^:benchmark wrap-byte-array
+  (bench (secretbox-easy-wrap-byte-array st/ptext st/n0 st/secret-key)))
+
+(deftest ^:benchmark unwrap-byte-buf
+  (bench (secretbox-easy-unwrap-byte-buf st/ptext st/n0 st/secret-key)))


sandbox: REPL-ean probatzeko

sandbox: REPL-ean probatzeko

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


lein plugin for running cukes

lein plugin for running cukes

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

--- clojure/src/main/clj/leiningen/cuke.clj
+++ clojure/src/main/clj/leiningen/cuke.clj
@@ -0,0 +1,10 @@
+(ns leiningen.cuke)
+
+(defn cuke
+  "runs cucumber"
+  [project]
+  ;; main calls System/exit kind of gross
+  (cucumber.cli.Main/main
+   (into-array String
+               ["--format" "pretty"
+                "--glue" "resources/" "resources/features"])))


A sketch of the game of life example

A sketch of the game of life example

I haven't actually made this work, it requires some refactoring. But
it's where I'm headed with the lib.

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

--- src/examples/life.clj
+++ src/examples/life.clj
@@ -0,0 +1,104 @@
+(ns examples.life
+  (:require [launchpad.core :as lp]))
+
+(def pad (lp/get-launchpad))
+(def update-hz 1)
+(def paused (atom false))
+(def alive [3 3])
+(def dead [0 0])
+
+(defn get-cell
+  [state cell]
+  (get-in state [:grid cell]))
+
+(defn alive?
+  [v]
+  (= v alive))
+
+(defn alive-in?
+  [state cell]
+  (alive? (get-in state [:grid cell])))
+
+(defn count-living-neighbors
+  [state [x y]]
+  (loop [neighbors (for [xx [(- x 1) x (+ x 1)]
+                  yy [(- y 1) y (+ y 1)]]
+              [xx yy])
+         n 0]
+    (when-first [[xx yy] neighbors]
+      (recur (rest ns)
+             (if (and (not= [x y] [xx yy])
+                      (< -1 xx 8) ; out of bounds is dead
+                      (< -1 yy 8)
+                      (alive-in? state [xx yy]))
+               (+ a 1)
+               a)))))
+
+(defn tng
+  "Life: The Next Generation #pundog"
+  [state]
+  (loop [state state
+         cells (for [x (range 8) y (range 8)] [x y])]
+    (when-first [cell cells]
+      (case (count-living-neighbors state cell)
+        3 alive
+
+        2 (if (alive-in? state cell)
+            alive
+            dead)
+
+        dead))
+    (recur state
+           (rest cells))))
+
+(defn grid-with
+  "Create an x-by-y grid (vector of vectors) by repeatedly calling
+  f with the coordinate [x y]"
+  [x y f]
+  (for [xx (range x) yy (range y)] (f [xx yy])))
+
+(defn random-cells
+  "one in freq cells will be alive (statistically speaking)"
+  [freq]
+  (grid-with 8 8 #(if (= 0 (rand-int freq))
+                    alive
+                    dead)))
+
+(defn toggle-cell
+  [state where]
+  (update-in state [:grid where]
+             #(if-not (alive? %)
+                alive
+                dead)))
+
+(defn toggle!
+  [a]
+  (swap! a #(not %)))
+
+(defn render-paused
+  [state]
+  (let [red [3 0]
+        green [0 3]]
+    (assoc-in state [:top 0] (if @paused
+                               red
+                               green))))
+
+;; prepare
+(doto pad
+  (.update render-paused)
+  (.update random-cells)
+  (.react
+   (fn [state what where vel]
+     (when (not= 0 vel)
+       (cond
+         (= [:top 0] [what where])
+         (do (toggle! paused)
+             (render-paused state))
+
+         (= :grid what)
+         (toggle-cell state where))))))
+
+;; run
+(while true
+  (Thread/sleep (/ 1000 update-hz))
+  (when-not @paused (.update pad tng)))


command line style

command line style

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


:t kendu

:t kendu


update cheshire version

update cheshire 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/colophon/clarango.git/'


bump deps

bump 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/mprokopov/privat24-manager.git/'


Remove vestigial lein-midje dependency

Remove vestigial lein-midje dependency

We no longer use midje for running our test cases, so this dependency is
redundant.

Signed-off-by: Deepak Giridharagopal <d11186354d1ef01ca06ae37d7e23e827da13e85f@puppetlabs.com>

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

   :dev-dependencies [[lein-marginalia "0.7.0-SNAPSHOT"]
                      [midje "1.2.0"]
-                     [lein-midje "1.0.3"]
                      ;; WebAPI support libraries.
                      [ring-mock "0.1.1"]]


i still need it on clojars

i still need it on clojars

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/modnakasta/weasel.git/'


Version 1.6.1

Version 1.6.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/starcity-properties/odin.git/'


Update deps

Update deps

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


Update deps

Update deps

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


Version 155-SNAPSHOT

Version 155-SNAPSHOT

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


contains functions for displaying search results

name+search, image+search are the functions I need and these are the ones I'm having problems with

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

--- src/adder/PageParser.clj
+++ src/adder/PageParser.clj
@@ -0,0 +1,112 @@
+;Example used for enive:
+;http://rob-rowe.blogspot.com/2011/05/parsing-web-pages-with-clojure-and.html
+;https://groups.google.com/group/enlive-clj/browse_thread/thread/41288d06fcaf83f0
+;http://gnuvince.wordpress.com/2008/10/31/fetching-web-comics-with-clojure-part-1/
+
+
+(ns adder.PageParser
+  (:use [adder.image-reader])
+  (:require [net.cgrand.enlive-html :as html])
+  (:require [clojure.string :as string]))
+
+
+  (def url "http://www.rottentomatoes.com/")
+
+  (defn get-page
+  "Gets the html page from passed url"
+  [url]
+  (html/html-resource (java.net.URL. url))[:h3 :span :a])
+
+
+(defn name+search
+  "This function returns a sequence of h2 tags,where a.main is parsed from movieweb"
+  [url]
+  (html/select (get-page url)
+             [:h3 (html/attr= :class "nomargin"):a]))
+
+
+(defn image+search
+  "Function that returns a sequence of tags, where img is image parsed from movieweb"
+  [url]
+  (html/select (get-page url)
+             [:span (html/attr= :class "movieposter"):a]))
+
+
+(defn genre+search
+  "Function for parsing chosen genres"
+  [url]
+  (html/select (get-page url)
+             [:span (html/attr= :class "movie_year")]))
+
+(defn print-flick-name-content
+  [url]
+  (vec (flatten (map :content (name+search url)))))
+
+(defn get-image-content
+  [url]
+  (vec (flatten (map #(re-find #"http.*jpg" %) (map :style (map :attrs (image+search url)))))))
+
+
+;RATINGS SECTION
+(def special-char "/")
+
+(defn get-flick-grades ;pozovi java metodu jer sajt pita da li request dolazi od browsera.
+  [url]
+  ;(html/select (get-page url) ; will not work, site is checking if request is made by browser or an agent.
+   ;            [:td :span])
+  ;(get-rank-new url) ;java method call
+  (string/replace (first (flatten (map :content (with-open [inputstream (-> (java.net.URL. url)
+                            .openConnection
+                            (doto (.setRequestProperty "User-Agent"
+                                                       "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.0)"))
+                            .getContent)]
+  (html/select (html/html-resource inputstream) [(html/attr= :class "rank")]))))) "#" "")
+    )
+
+(defn alter-flickname "if flick name contains multiple words, they have to be separated with -"
+  [flick-name]
+  (string/replace (string/replace flick-name " " "-") special-char "-"))
+
+(defn get-rating [name];izbaci # ovde
+  (get-flick-grades (str "http://www.rottentomatoes.com/" (alter-flickname name))))
+
+
+(defn get-flick-rating4 "Returns rating for flicks. Result needs to be rearanged in ascending order." ;dodaj let bindovanje
+  [flick-names]
+  (for [name flick-names]
+   (let [flick-data (get-rating name)]
+     (if (nil? (get-rating name)) 100000000
+      (if (not= (string/trim (get-rating name)) "")
+        (Double/parseDouble (string/replace (get-rating name) "," ""))
+        100000)))))
+
+
+;END OF RATINGS SECTION
+
+
+;;DOWNLOADS SECTION
+(defn make-search-URLs-for-download "makes urls for downloading flicks, using the altered flick name"
+  [flick-name]
+  (str "http://www.rottentomatoes.com/" (string/replace (string/replace flick-name " " "+") "/" "%2F") "&Submit=Submit&searchFiles=1"))
+
+(defn get-search-URLS "Gets the URL's. Foreach item in resulting sequence, there should be a call to get-flick-files function."
+  [names-vector]
+  (for [name names-vector]
+    (make-search-URLs-for-download name)))
+
+(defn get-flick-files "Using the download URL's tries to get actual files to download. If nothing is there, returns nil."
+  [url-flick]
+  (for [url (vec (map :href (map :attrs (html/select (get-page url-flick)
+               [:div (html/attr= :class "content") :ul :li :a]))))]
+     (str "http://www.rottentomatoes.com/" url)))
+;;END OF DOWNLOADS SECTION
+
+
+
+(defn get-all-reading-links "Lists links to all series of chosen flick "
+  [url]
+  (vec (for [flick-url
+         (vec (map :href (map :attrs (name+search url))))]
+     (str "http://www.rottentomatoes.com/" flick-url))))
+
+


lein-release plugin: bumped version from 0.1.3 to 0.1.4-SNAPSHOT for next development cycle

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


Created a streamlined loader

Created a streamlined loader

Much cleaner and easier to use, and seems to be faster,
but uses memory like it was on sale.

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


This might be wrong, but lets try to only emit break here

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


More descriptive message.

More descriptive message.

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


Added compojure.route/files function

Added compojure.route/files function

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

--- src/compojure/route.clj
+++ src/compojure/route.clj
@@ -0,0 +1,16 @@
+(ns compojure.route
+  (:use compojure.core
+        [ring.util.response :only (file-response)]
+        [ring.util.codec :only (url-decode)]))
+
+(defn- add-wildcard
+  "Add a wildcard to the end of a route path."
+  [path]
+  (str path (if (.endsWith path "/") "*" "/*")))
+
+(defn files
+  "A route for serving static files from a directory."
+  [path & [options]]
+  (GET (add-wildcard path) {{file-path "*"} :params}
+    (let [options (merge {:root "public"} options)]
+      (file-response file-path options))))


Both parsed in one output.

Both parsed in one output.

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


Inline bar-positions transducer

Inline bar-positions transducer

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


Added basic motor control fuctions

Added basic motor control fuctions

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/EdenCybernetics/CharlotteGardenSpider.git/'


Remove broken, redundant server config arg

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


Add date of birth update to background-check/info


Add test case for cljam.cigar

Add test case for cljam.cigar

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


one pixel

one pixel

--- cljs-client/cljsinfo_client/tooltips.cljs
+++ cljs-client/cljsinfo_client/tooltips.cljs
@@ -61,7 +61,7 @@
     (.css $tooltip-el (js-obj
       "display" ""
       "left" icon-x
-      "marginLeft" (if flip? (- 0 tooltip-width 31) 18)
+      "marginLeft" (if flip? (- 0 tooltip-width 30) 18)
       "top" (- icon-y 22)))))

 (def tooltip-sel ".tooltip-53dde")


rename consumer functions

rename consumer functions

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


Updates to discover cores given an access code

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


fixing bug in threading macro use

fixing bug in threading macro use

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/micbie/evemm.git/'


Nicer mtype

Nicer mtype


Move stray bracket

Move stray bracket


Refactor to favor partial of fn literal

Refactor to favor partial of fn literal

--- src/refactor_nrepl/extract_definition.clj
+++ src/refactor_nrepl/extract_definition.clj
@@ -101,6 +101,6 @@
     (if-let [definition-occurrence (find-definition occurrences)]
       {:definition (merge {:definition (-extract-definition definition-occurrence)}
                           definition-occurrence)
-       :occurrences (remove #(= % definition-occurrence) occurrences)}
+       :occurrences (remove (partial = definition-occurrence) occurrences)}
       (throw (IllegalStateException.
               (str "Couldn't find definition for " (:name msg)))))))


Add docstrings to new interceptors

Add docstrings to new interceptors


take 2: remove exceptions entirely and explicitly log non-200 responses

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


get rid of reverse

get rid of reverse

--- sidecar/src/figwheel_sidecar/core.clj
+++ sidecar/src/figwheel_sidecar/core.clj
@@ -300,8 +300,8 @@
     (nil? cljs.env/*compiler*) changed-ns-syms'
     (false? (:recompile-dependents state))
     (topo-sort
-     (reverse (union (keep (fn [n] (:name (ana-api/find-ns n))) changed-ns-syms')
-                     (find-figwheel-always))))
+     (union (keep (fn [n] (:name (ana-api/find-ns n))) changed-ns-syms')
+            (find-figwheel-always)))

     :else
     (let [changed-ns-syms       (set (keep (fn [n] (:name (ana-api/find-ns n))) changed-ns-syms'))
@@ -479,3 +479,4 @@

 (defn stop-server [{:keys [http-server]}]
   (http-server))
+


[kudu-jepsen] run kudu CLI tool under 'kudu' user

Since cd41990 was committed, the 'kudu cluster ksck' CLI tool command
started returning failure exit code if running not under the service
superuser account (i.e. not under 'kudu' user) because fetching Raft
consensus information on a tablet requires service superuser-level
privileges.

To fix that, at least the two alternatives are available:
  * Run the CLI tool under the service superuser account ('kudu' user).
  * Run the 'kudu cluster ksck' sub-command with the
    --consensus=false option, so it would not try to fetch consensus
    information on existing tablets.

The former alternative makes more sense because the list of privileges
required to call server methods is evolving.  Also, in future we may
need to do other queries using the kudu CLI tool in the context of
Jepsen tests for Kudu.

Change-Id: I7e556e901308871d0bbe6091be41a7a365421222
Reviewed-on: http://gerrit.cloudera.org:8080/9356
Tested-by: Kudu Jenkins
Reviewed-by: Hao Hao <99da4db57fde39d3df9f1908299d10b8082bf864@cloudera.com>

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/InspurUSA/kudu.git/'


Use artifact-id and group id from parent pom if missing

Fixes #132; requires re-indexing

Conflicts:
	src/clojars/maven.clj

--- src/clojars/maven.clj
+++ src/clojars/maven.clj
@@ -8,8 +8,10 @@
            java.io.IOException))

 (defn model-to-map [model]
-  {:name (.getArtifactId model)
-   :group (.getGroupId model)
+  {:name (or (.getArtifactId model)
+             (-> model .getParent .getArtifactId))
+   :group (or (.getGroupId model)
+              (-> model .getParent .getGroupId))
    :version (.getVersion model)
    :description (.getDescription model)
    :homepage (.getUrl model)
@@ -18,11 +20,11 @@
    :scm (.getScm model)
    :authors (vec (map #(.getName %) (.getContributors model)))
    :dependencies (vec (map
-                        (fn [d] {:group_name (.getGroupId d)
-                                 :jar_name (.getArtifactId d)
-                                 :version (.getVersion d)
-                                 :scope (or (.getScope d) "compile")})
-                        (.getDependencies model))) })
+                       (fn [d] {:group_name (.getGroupId d)
+                                :jar_name (.getArtifactId d)
+                                :version (.getVersion d)
+                                :scope (or (.getScope d) "compile")})
+                       (.getDependencies model)))})

 (defn read-pom
   "Reads a pom file returning a maven Model object."


Simple btree iterators

Simple btree iterators

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

--- src/aurora/btree.cljs
+++ src/aurora/btree.cljs
@@ -0,0 +1,53 @@
+(ns aurora.btree
+  (:require-macros [aurora.macros :refer [apush]]))
+
+(deftype Tree [min-child-nodes max-child-nodes child-node])
+
+(deftype Branch [parent-node parent-ix keys vals child-nodes])
+
+(deftype Leaf [parent-node parent-ix keys vals])
+
+(deftype Iterator [^:mutable child-node ^:mutable ix]
+  Object
+  (next [this]
+        (if (< ix (alength (.-keys child-node)))
+          (let [result #js [(aget (.-keys child-node) ix) (aget (.-vals child-node) ix)]]
+            (if-let [new-child-node (and (.-child-nodes child-node) (aget (.-child-nodes child-node) ix))]
+              ;; jump into child
+              (do
+                (set! child-node new-child-node)
+                (set! ix 0))
+              ;; move along
+              (set! ix (+ ix 1)))
+            result)
+          (if-let [parent-node (.-parent-node child-node)]
+            ;; jump into parent and start again
+            (do
+              (set! ix (+ (.-parent-ix child-node) 1))
+              (set! child-node parent-node)
+              (recur))
+            ;; end of tree
+            nil))))
+
+(defn iterator [tree]
+  (Iterator. (.-child-node tree) 0))
+
+(defn tree [min-child-node max-child-nodes]
+  (Tree. min-child-nodes max-child-nodes (Branch. nil nil #js [] #js [] #js[])))
+
+(comment
+  (let [tree (Tree. min-child-nodes max-child-nodes (Branch. nil nil #js [] #js [] #js[]))
+        iterator (iterator tree)]
+    (take-while identity (repeatedly #(.next iterator))))
+
+  (let [tree (Tree. min-child-nodes max-child-nodes (Branch. nil nil #js [:a :b :c] #js [0 1 2] #js[]))
+        iterator (iterator tree)]
+    (take-while identity (repeatedly #(.next iterator))))
+
+  (let [branch (Branch. nil nil #js [:a :d :e] #js [0 3 4] #js[])
+        _ (apush (.-child-nodes branch) (Leaf. branch 0 #js [:b :c] #js [1 2]))
+        tree (Tree. min-child-nodes max-child-nodes branch)
+        iterator (iterator tree)]
+    (take-while identity (repeatedly #(.next iterator))))
+
+  )


fix check for existance

fix check for existance

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/fhirbase/fhirplace.git/'


expand-nicknames bug needs fixin'

expand-nicknames bug needs fixin'

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


Typeset space before starting quote

Typeset space before starting quote

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


Fix no-match permutation version by using the matching inserto predicate.

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/schaueho/clojure-codekata.git/'


Altering MySQL test credentials to use something that might work with Travis.

--- mysql/test/finagle_clojure/mysql/integration_test.clj
+++ mysql/test/finagle_clojure/mysql/integration_test.clj
@@ -15,7 +15,7 @@

 (facts "integrating the MySQL client"
   (let [db (-> (mysql-client)
-               (with-credentials "finagle" "finagle")
+               (with-credentials "root" "")
                (with-database "finagle_clojure_test")
                (rich-client "localhost:3306"))]


add version-test

add version-test

error: pathspec 'test/brainbot/nozzle/version_test.clj' did not match any file(s) known to git

--- test/brainbot/nozzle/version_test.clj
+++ test/brainbot/nozzle/version_test.clj
@@ -0,0 +1,10 @@
+(ns brainbot.nozzle.version-test
+  (:require [clojure.test :refer :all]
+            [brainbot.nozzle.version :refer :all]))
+
+(deftest test-version
+  (is (= (nozzle-version)
+         (enhanced-version "com.brainbot" "es-nozzle")
+         (enhanced-version "com.brainbot/es-nozzle")))
+  (is (not (empty? (enhanced-version "clj-time"))))
+  (is (not (empty? (nozzle-version)))))


fixed coordination issue

fixed coordination issue

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/yokalona/threen.git/'


add widgets.lj

add widgets.lj

git-svn-id: 03a8048b5ee8463be5048a3801110fb50f378627@11071 d0ab736e-dc22-4aeb-8dc9-08def0aa14fd

error: pathspec 'plugins/SlideExplorer2/src/slide_explorer/widgets.clj' did not match any file(s) known to git

--- plugins/SlideExplorer2/src/slide_explorer/widgets.clj
+++ plugins/SlideExplorer2/src/slide_explorer/widgets.clj
@@ -0,0 +1,142 @@
+(ns slide-explorer.widgets
+  (:import (java.awt.event ActionListener)
+           (java.util UUID)
+           (javax.swing AbstractAction JButton JCheckBox JFrame JComponent KeyStroke)
+           (org.micromanager.utils JavaUtils)))
+
+;; key binding
+
+(defn bind-key
+  "Maps an input-key on a swing component to an action,
+  such that action-fn is executed when key is pressed."
+  [component input-key action-fn global?]
+  (let [im (.getInputMap component (if global?
+                                     JComponent/WHEN_IN_FOCUSED_WINDOW
+                                     JComponent/WHEN_FOCUSED))
+        am (.getActionMap component)
+        input-event (KeyStroke/getKeyStroke input-key)
+        action
+          (proxy [AbstractAction] []
+            (actionPerformed [e]
+                (action-fn)))
+        uuid (.. UUID randomUUID toString)]
+    (.put im input-event uuid)
+    (.put am uuid action)))
+
+(defn bind-keys
+  [component input-keys action-fn global?]
+  (dorun (map #(bind-key component % action-fn global?) input-keys)))
+
+(defn bind-window-keys
+  [window input-keys action-fn]
+  (bind-keys (.getContentPane window) input-keys action-fn true))
+
+;; window and screen utilities
+
+(defn screen-bounds [screen]
+  (.. screen getDefaultConfiguration getBounds))
+
+(defn screen-devices []
+  (seq (.. java.awt.GraphicsEnvironment
+      getLocalGraphicsEnvironment
+      getScreenDevices)))
+
+(defn default-screen-device []
+  (.. java.awt.GraphicsEnvironment
+      getLocalGraphicsEnvironment
+      getDefaultScreenDevice))
+
+(defn- overlap-area [rect1 rect2]
+  (let [intersection (.intersection rect1 rect2)]
+    (* (.height intersection) (.width intersection))))
+
+(defn window-screen [window]
+  (when window
+    (let [window-bounds (.getBounds window)
+          screens (screen-devices)]
+      (apply max-key #(overlap-area window-bounds
+                                    (screen-bounds %)) screens))))
+
+;; window positioning
+
+(defn show-window-center
+  ([window width height parent-window]
+    (let [bounds (screen-bounds
+                   (or (window-screen parent-window)
+                       (first (screen-devices))))
+          x (+ (.x bounds) (/ (- (.width bounds) width) 2))
+          y (+ (.y bounds) (/ (- (.height bounds) height) 2))]
+      (doto window
+        (.setBounds x y width height)
+        .show)))
+  ([window width height]
+    (show-window-center window width height nil)))
+
+;; full screen
+
+(def old-bounds (atom {}))
+
+(defn full-screen!
+  "Make the given window/frame full-screen."
+  [window]
+  (when (and window (not (@old-bounds window)))
+    (when-not (@old-bounds window)
+      (swap! old-bounds assoc window (.getBounds window)))
+    (.dispose window)
+    (.setUndecorated window true)
+    (let [screen (window-screen window)]
+      (if (and (JavaUtils/isMac)
+               (= screen (default-screen-device)))
+        (.setFullScreenWindow screen window)
+        (.setBounds window (screen-bounds screen))))
+    (.repaint window)
+    (.show window)))
+
+(defn exit-full-screen!
+  "Restore the given full-screened window to its previous
+   (non-full-screen) bounds."
+  [window]
+  (when (and window (@old-bounds window))
+    (.dispose window)
+    (.setUndecorated window false)
+    (let [screen (window-screen window)]
+      (when (= window (.getFullScreenWindow screen))
+        (.setFullScreenWindow screen nil)))
+    (when-let [bounds (@old-bounds window)]
+      (.setBounds window bounds)
+      (swap! old-bounds dissoc window))
+    (.repaint window)
+    (.show window)))
+
+(defn toggle-full-screen!
+  "Turn full screen mode on and off for a given window."
+  [window]
+  (when window
+    (if (@old-bounds window)
+      (exit-full-screen! window)
+      (full-screen! window))))
+
+(defn setup-fullscreen [window]
+  (bind-window-keys window ["F"] #(toggle-full-screen! window))
+  (bind-window-keys window ["ESCAPE"] #(exit-full-screen! window)))
+
+;; widgets
+
+(defn button [text press-fn]
+  (doto (JButton. text)
+    (.addActionListener
+      (proxy [ActionListener] []
+        (actionPerformed [e]
+                         (press-fn))))))
+
+(defn checkbox [label state-atom & address]
+  (let [checkbox (JCheckBox. label)]
+    (.addActionListener checkbox
+      (proxy [ActionListener] []
+        (actionPerformed [e]
+                         (swap! state-atom assoc-in address (.isSelected checkbox)))))
+    checkbox))
+
+
+
+


Add examples of multimethods

Add examples of multimethods

error: pathspec 'test/com/nomistech/clojure_the_language/c_200_clojure_basics/s_700_multimethods_test.clj' did not match any file(s) known to git

--- test/com/nomistech/clojure_the_language/c_200_clojure_basics/s_700_multimethods_test.clj
+++ test/com/nomistech/clojure_the_language/c_200_clojure_basics/s_700_multimethods_test.clj
@@ -0,0 +1,14 @@
+(ns com.nomistech.clojure-the-language.c-200-clojure-basics.s-700-multimethods-test
+  (:require [midje.sweet :refer :all]))
+
+(defmulti multi-thing :kind)
+
+(defmethod multi-thing :a [_] 1)
+(defmethod multi-thing :b [_] 2)
+(defmethod multi-thing :c [_] 3)
+
+(fact "About `multi-thing`"
+  (multi-thing {}) => (throws #"No method in multimethod")
+  (multi-thing {:kind :a}) => 1
+  (multi-thing {:kind :b}) => 2
+  (multi-thing {:kind :c}) => 3)


Changed how test mod-versions get mod-id

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/amedw/mud-server.git/'


Old stuff that I want to keep for later

Old stuff that I want to keep for later

But don't want cluttering things up right now

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

--- old.clj
+++ old.clj
@@ -0,0 +1,169 @@
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; (def system ( mk-system "shit-div" "shit-canvas" ))
+
+; (def rt-gaz
+;   (-> (get-resource-manager system)
+;       (create-render-target! "shit-canvas" 100 100)))
+
+; (def im-gaz
+;  (-> (get-resource-manager system)
+;      (load-img! "shit-tiles")))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; (defonce update-chan (chan))
+
+; (def level-dims (v2 10 10))
+
+; (def level
+;   (->
+;     (mk-tile-map (:x level-dims) (:y level-dims) :blank)
+;     (mix-it-up)))
+
+; (defn make-game-render-data [rd t rendered-level]
+;   (assoc rd
+;          :xforms
+;          (concat
+;            (list
+;              [:identity]
+;              [:clear (cos-01 (* t 1)) 0 (cos-01 (* t 20))]
+;              [:scale {:x 10 :y 10}]
+;              [:translate (v2/mul (v2/v2 (cos-01 (* t 3)) (cos-01 t)) (v2/v2 20 20))]
+;              )
+;            (list
+;                    [:box {:x 0 :y 0} {:x 20 :y 20} [0 0 0]]
+;              )
+;            rendered-level)
+;          )
+;   )
+
+; (defn make-level-render-data [rd t]
+;   (assoc rd
+;          :xforms (list
+;                    [:identity]
+;                    [:clear 0 0 1]
+;                    [:box {:x 0 :y 0} {:x 20 :y 20} [0 0 0]] )))
+
+
+; (def rendered-level (vec  (render-level level)))
+
+; (defn update-game [{:keys [tick main-render-data level-render-data] :as game} dt]
+;   (let [new-tick (+ dt  tick) ]
+;     (do
+
+;       (assoc game
+;              :level-render-data (make-level-render-data level-render-data new-tick )
+;              :main-render-data (make-game-render-data level-render-data new-tick rendered-level)
+;              :tick new-tick))
+;     ))
+
+; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; (defn make-pogue-game [renderer resource-manager]
+;   (game/make-game
+;     (reify
+;       game/IGameInit
+;       (game-init [_]
+;         (println "initialised game!"))
+
+;       game/IGameUpdate
+;       (game-update [this dt]
+;         (println "updated game!")))))
+
+; (def img-chan (chan))
+; (def rt-chan (chan))
+
+; (defn om-loader [_ owner]
+;   (reify
+;     om/IWillMount
+;     (will-mount [_]
+;       (go-loop []
+;                (let [[msg port] (alts! [img-chan rt-chan])]
+;                  (cond
+;                    (= port img-chan) (println (str "img: " msg))
+;                    (= port rt-chan) (println (str "rt: " msg))
+;                    ))
+;                (recur)))
+
+;     om/IDidUpdate
+;     (did-update [this next-props next-state]
+;       )
+
+;     om/IRender
+;     (render [_]
+;       (dom/p nil "Loaded")
+;       )
+;     )
+;   )
+
+; (defonce loader-atom (atom {:rt-chan (chan) :img-chan (chan)}))
+
+; (defn str->bytes [s]
+;   (->
+;     (fn [ch]
+;       (let [cc (.charCodeAt ch 0)]
+;         (if (> cc 255)
+;           [(bit-and cc 255) (bit-shift-right cc 8)]
+;           [cc])))
+;     (mapcat s)))
+
+; (defn col->array [col]
+;   (let [arr #js []]
+;     (doseq [i (range (count col))]
+;       (.push arr (nth col i)))
+;     arr))
+
+; (defn str->enc64 [s]
+;   (b64/encodeByteArray (-> s str->bytes col->array)))
+
+; (defn str->inline-png [s]
+;   (str "data:image/png;base64," (str->enc64 s)))
+
+; (defn <!-inline-img-enc [url]
+;   (let [ret (chan)]
+;     (go (->>
+;           (http/get url)
+;           (<!)
+;           (:body)
+;           (put! ret)))
+;     ret))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+
+
+
+
+; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; (defonce first-time? (atom true))
+
+; (defn main' []
+;   (om/root
+;     (fn [game-state owner]
+;       (reify
+;         om/IWillMount
+;         (will-mount [_ ]
+;           (go-loop []
+;                    (let [dt (<! update-chan) ]
+;                      (om/transact! game-state #(update-game % dt))
+;                      (recur))))
+
+;         om/IRender
+;         (render [_]
+;           (dom/div #js {:id "wrapper"}
+;                    (dom/div nil (dom/h1 nil (-> game-state :main-app :name)))
+;                    (dom/p nil (-> game-state :tick))
+;                    ))))
+;     app-state
+;     {:target (. js/document (getElementById "app"))})
+
+;   (when @first-time?
+;     (do
+;       (swap! first-time? not)
+;       (js/setInterval (fn [] (put! update-chan (/ 1 60))) 16))))
+
+


Boersenkurs hinzugefügt

Boersenkurs hinzugefügt

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

--- src/machine_learning/boersenkurs.clj
+++ src/machine_learning/boersenkurs.clj
@@ -0,0 +1,57 @@
+(ns boersenkurs
+  (:require [clojure.math.numeric-tower :as math]))
+
+;; nulltest auf 1 setzen um bias zu erzeugen
+(defn oi [time]
+  (let [kurs (+ 2.0 (Math/sin (* time 0.001)))]
+    kurs))
+
+(def kurs (map oi (range 0 10000)))
+
+(defn oj [w x]
+  (apply + (map * w x)))
+
+;; man kann Gewichte auch am Anfang auf null setzen
+;; n ist die Lernrate -> Schritte in denen wir uns dem Minimum nähern
+(defn deltalernregel [input target w i]
+  (let [n 0.01]
+    (* n
+       ;; Ableitung nach wi
+       (* (nth input i)
+          (- target (oj w input))))))
+
+(defn update-weights [input target weights]
+  (for [i (range 1 10)]
+    (deltalernregel input
+                    target
+                    weights
+                    i)))
+
+;; Gewichte am Anfang alle 1 gesetzt
+(loop [weights (repeat 10 1)
+       i 0]
+  (if (not= i 9989)
+    (let [new-weights (update-weights (take 10 (drop i kurs))
+                                      (nth kurs (+ i 11))
+                                      weights)]
+      (recur (doall (map + weights new-weights)) (inc i)))
+    weights))
+
+
+;; Neuronen -> Output
+(oj '(0.11243264986342306 0.11198990508938922 0.11154716304632939 0.11110442417698553 0.11066168892409786 0.11021895773040007 0.10977623103862313 0.1093335092914953 0.10889079293173724)
+    ;; Weights
+    #_'(0.11325409915477769 0.11281131259089919 0.11236852763609823 0.11192574473316001 0.11148296432486725 0.11104018685400045 0.11059741276333694 0.11015464249565068 0.10971187649371225)
+    ;; Inputs
+    (take 10 (drop 9988 kurs)))
+
+(nth kurs 9999)
+
+
+
+
+
+(comment
+(update-weights (take 10 (drop 1 kurs))
+                         (nth kurs (+ 1 11))
+                         [1 1 1 1 1 1 1 1 1 1]))


Gogoko gisa ezartzeko lotura

Gogoko gisa ezartzeko lotura

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


Add state-id-instructions to context

Add state-id-instructions to context


add build-aurora

add build-aurora

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


add-job!

add-job!


yet another copy and paste error...

yet another copy and paste error...

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/colophon/clarango.git/'


Query Processor handles new empty forms for new query builder

--- src/metabase/driver/generic_sql/query_processor.clj
+++ src/metabase/driver/generic_sql/query_processor.clj
@@ -64,7 +64,7 @@
 (defmethod apply-form :aggregation [[_ value]]
   (match value
     ["rows"]  nil                                  ; don't need to do anything special for `rows` - `select` selects all rows by default
-    ["count"] `(aggregate (~'count :*) :count)     ; TODO - implement other types of aggregation
+    ["count"] `(aggregate (~'count :*) :count)     ; TODO - implement other types of aggregation (?)
     [_ _]     (let [[ag-type field-id] value       ; valid values to `korma.core/aggregate`: count, sum, avg, min, max, first, last
                     field (field-id->kw field-id)]
                 (match (keyword ag-type)
@@ -78,11 +78,13 @@
 ;; ex.
 ;;
 ;;     [1412 1413]
-(defmethod apply-form :breakout [[_ field-ids]]      ; TODO - not yet implemented
-  (when-not (= field-ids [nil])                      ; `:breakout [nil]` is considered a valid 'empty' form
-    (let [field-names (map field-id->kw field-ids)]
-      `[(group ~@field-names)
-        (fields ~@field-names)])))
+(defmethod apply-form :breakout [[_ field-ids]]
+  (match field-ids
+    []    nil ; empty clause
+    [nil] nil ; empty clause
+    _     (let [field-names (map field-id->kw field-ids)]
+            `[(group ~@field-names)
+              (fields ~@field-names)])))

 ;; ### `:fields`
 ;; ex.
@@ -120,6 +122,7 @@
   (match filter-clause
     nil                  nil ; empty clause
     [nil nil]            nil ; empty clause
+    []                   nil ; empty clause
     ["AND" & subclauses] `(where (~'and ~@(map filter-subclause->predicate
                                                subclauses)))
     ["OR" & subclauses]  `(where (~'or  ~@(map filter-subclause->predicate


Refactoring a little

Refactoring a little

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/xcthulhu/clj-bitauth.git/'


new events ns

new events ns

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

--- src/cljs/infinitelives/pixi/events.cljs
+++ src/cljs/infinitelives/pixi/events.cljs
@@ -0,0 +1,60 @@
+(ns infinitelives.pixi.events)
+
+;;
+;; Resize Channel
+;; --------------
+;; resize channels receive [width height]
+;;
+(def *resize-chans* (atom #{}))
+
+(defn new-resize-chan []
+  (let [c (chan)]
+    (swap! *resize-chans* conj c)
+    c))
+
+(defn del-resize-chan [c]
+  (swap! *resize-chans* disj c))
+
+(defn clear-resize-chans! []
+  (swap! *resize-chans* #{}))
+
+(defn resize-event-chan-handler [ev]
+  (let [size [(.-innerWidth js/window) (.-innerHeight js/window)]]
+    (doseq [c @*resize-chans*] (put! c size))))
+
+(defn install-resize-handler
+  "install the resize callback to resize the main canvas renderer"
+  []
+  (.addEventListener js/window "resize" resize-event-chan-handler))
+
+
+;;
+;; Frame Channel
+;; -------------
+;; frame channel receives a true every frame paint
+;;
+(def *frame-chans* (atom #{}))
+
+(defn new-frame-chan []
+  (let [c (chan)]
+    (swap! *frame-chans* conj c)
+    c))
+
+(defn del-frame-chan! [c]
+  (swap! *frame-chans* disj c))
+
+(defn clear-frame-chans! []
+  (swap! *frame-chans* #{}))
+
+(defn frame-event-chan-handler [ev]
+  (request-animation-frame frame-event-chan-handler)
+  (doseq [c @*frame-chans*] (put! c true)))
+
+(defn install-frame-handler
+  "install the frame callback to send frame chan messages"
+  []
+  (request-animation-frame frame-event-chan-handler))
+
+
+(install-frame-handler)
+(install-resize-handler)


Konfigurazioari izen hobea jarri

Konfigurazioari izen hobea jarri

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


api-deia denean erabili

api-deia denean erabili


Erabiltzailea badago formu ez bidali

Erabiltzailea badago formu ez bidali


revise markers

revise markers

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


add missing `om-css.devcards.constants`

add missing `om-css.devcards.constants`

error: pathspec 'src/devcards/om_css/devcards/constants.cljc' did not match any file(s) known to git

--- src/devcards/om_css/devcards/constants.cljc
+++ src/devcards/om_css/devcards/constants.cljc
@@ -0,0 +1,4 @@
+(ns om-css.devcards.constants)
+
+(def some-style
+  {:color :yellow})


Correct 'is' to 'are' in koan description.

I don't mean to be That Guy, but it's more correct to use 'are', rather than 'is' when discussing a plural subject.

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


partition

partition

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/yantonov/paging-task.git/'


group by WIP

group by WIP

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

--- src/4clojure/groupby.clj
+++ src/4clojure/groupby.clj
@@ -0,0 +1,31 @@
+;; Group a Sequence
+;; http://www.4clojure.com/problem/63
+
+;; Difficulty:	Easy
+;; Topics:	core-functions
+
+
+;; Given a function f and a sequence s, write a function which returns a map. The keys should be the values of f applied to each item in s. The value at each key should be a vector of corresponding items in the order they appear in s.
+
+
+(defn __ [f coll]
+  (reduce #(assoc-in %1 [(f %2)]
+                     (if-let [l (%1 %2)]
+                       [%2]
+                       (conj l %2)))
+          {} coll))
+
+;; (reduce conj [] [1 3 6 8])
+
+(assoc-in {} [1] [2])
+(assoc-in {1 [1]} [1] [2])
+(assoc-in {1 [1]} [2] [2])
+
+
+(= (__ #(> % 5) [1 3 6 8]) {false [1 3], true [6 8]})
+
+(= (__ #(apply / %) [[1 2] [2 4] [4 6] [3 6]])
+   {1/2 [[1 2] [2 4] [3 6]], 2/3 [[4 6]]})
+
+(= (__ count [[1] [1 2] [3] [1 2 3] [2 3]])
+   {1 [[1] [3]], 2 [[1 2] [2 3]], 3 [[1 2 3]]})


Fix bugs in Clojure's AndroidLauncher

Fix bugs in Clojure's AndroidLauncher

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


spec TDD

spec TDD

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/aarkerio/cmsclj.git/'


bump reactor

bump reactor

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


Add unsuccessful initial test

Add unsuccessful initial test

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

--- test/degasolv/resolve_unsuccessful_test.clj
+++ test/degasolv/resolve_unsuccessful_test.clj
@@ -0,0 +1,110 @@
+(ns degasolv.resolve-unsuccessful-test
+  (:require [clojure.test :refer :all]
+            [degasolv.resolver :refer :all]
+            [clojure.core.match :refer [match]]
+            [serovers.core :refer [maven-vercmp]
+             :rename {maven-vercmp cmp}])
+  (:import [degasolv.resolver
+            PackageInfo
+            Requirement]))
+;; todo
+;; - empty fclause
+;; - present package conflict
+(deftest ^:unit-test unsuccessful-test
+  (let [
+        b-alternative
+        {:status :present
+         :id "b"
+         }
+        c-alternative
+        {:status :present
+          :id "c"
+         }
+        d-alternative
+        {:status :present
+         :id "d"
+         }
+        d-clause
+        [
+         d-alternative
+         ]
+        altclause
+        [
+         b-alternative
+         c-alternative
+         ]
+        a1
+        {
+         :id "a"
+         :version "1.0.0"
+         :location "http://example.com/repo/a-1.0.0.zip"
+         :requirements
+         [
+          altclause
+          ]
+         }
+        b2
+        {
+         :id "b"
+         :version "2.0.0"
+         :location "http://example.com/repo/b-2.0.0.zip"
+         :requirements
+         [
+          d-clause
+          ]
+         }
+        c3
+        {
+         :id "c"
+         :version "3.0.0"
+         :location "http://example.com/repo/c-3.0.0.zip"
+         :requirements
+         [
+          [
+           d-clause
+           ]
+          ]
+         }
+        repo-info
+        {
+         "a"
+         [
+          a1
+          ]
+         "b"
+         [
+          b2
+          ]
+         "c"
+         [
+          c3
+          ]
+         }
+        query
+        (map-query repo-info)]
+    (testing "Multiple unsuccessfuls should be returned across alternatives"
+      (is (=
+           [:unsuccessful
+            {:problems
+             [
+              {:term d-clause
+               :alternatives d-alternative
+               :found-packages [a1
+                                b2]
+               :present-packages nil
+               :absent-specs nil
+               :reason :package-rejected
+               :package-id "d"}
+              {:term d-clause
+               :alternatives d-alternative
+               :found-packages [a1
+                                c3]
+               :present-packages nil
+               :absent-specs nil
+               :reason :package-rejected
+               :package-id "d"}]}]
+
+           (resolve-dependencies
+            [[{:status :present :id "a"}]]
+            query
+            :compare cmp))))))


clojure.core.reduce copied over from Clojure

Copy and paste with protocol & protocol method names adjusted,
Exception changed to Error and (set! *warn-on-reflection* true)
removed.

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

--- src/cljs/clojure/core/reduce.cljs
+++ src/cljs/clojure/core/reduce.cljs
@@ -0,0 +1,121 @@
+;   Copyright (c) Rich Hickey. 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 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.
+
+(ns clojure.core.reduce
+  (:refer-clojure :exclude [map filter remove take take-while drop flatten]))
+
+(defn reducer
+  "Given a reducible collection, and a transformation function xf,
+  returns a reducible collection, where any supplied reducing
+  fn will be transformed by xf. xf is a function of reducing fn to
+  reducing fn."
+  [coll xf]
+  (reify cljs.core/IReduce
+    (-reduce [_ f1]
+      (throw (js/Error. "You must supply an init value for reducer-based reduce")))
+    (-reduce [_ f1 init]
+      (-reduce coll (xf f1) init))))
+
+(defn map
+  "Applies f to every value in the reduction of coll"
+  [f coll]
+  (reducer
+   coll
+   (fn [f1]
+     (fn [ret v] (f1 ret (f v))))))
+
+(defn filter
+  "Retains values in the reduction of coll for which (pred val) returns logical true"
+  [pred coll]
+  (reducer
+   coll
+   (fn [f1]
+     (fn [ret v]
+       (if (pred v)
+         (f1 ret v)
+         ret)))))
+
+(defn remove
+  "Removes values in the reduction of coll for which (pred val) returns logical true"
+  [pred coll]
+  (filter (complement pred) coll))
+
+(defn take-while
+  "Ends the reduction of coll when (pred val) returns logical false."
+  [pred coll]
+  (reducer
+   coll
+   (fn [f1]
+     (fn [ret v]
+       (if (pred v)
+         (f1 ret v)
+         (reduced ret))))))
+
+(defn take
+  "Ends the reduction of coll after consuming n values."
+  [n coll]
+  (reducer
+   coll
+   (fn [f1]
+     (let [cnt (atom n)]
+       (fn [ret v]
+         (swap! cnt dec)
+         (if (neg? @cnt)
+           (reduced ret)
+           (f1 ret v)))))))
+
+(defn drop
+  "Elides the first n values from the reduction of coll."
+  [n coll]
+  (reducer
+   coll
+   (fn [f1]
+     (let [cnt (atom n)]
+       (fn [ret v]
+         (swap! cnt dec)
+         (if (neg? @cnt)
+           (f1 ret v)
+           ret))))))
+
+(defn flatten
+  "Takes any nested combination of sequential things (lists, vectors,
+  etc.) and returns their contents as a single, flat reducible
+  collection."
+  [coll]
+  (reify cljs.core/IReduce
+    (-reduce [_ f1]
+      (throw (js/Error. "You must supply an init value for reducer-based reduce")))
+    (-reduce [_  f1 init]
+      (-reduce
+       coll
+       (fn [ret v]
+         (if (sequential? v)
+           (-reduce (flatten v) f1 ret)
+           (f1 ret v)))
+       init))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(comment
+(require '[clojure.core.reduce :as r])
+(def v (take 1000000 (range)))
+(reduce + 0 (r/map inc [1 2 3 4]))
+(into [] (r/take 12 (range 100)))
+(into [] (r/drop 12 (range 100)))
+(reduce + 0 (r/filter even? [1 2 3 4]))
+(into [] (r/filter even? [1 2 3 4]))
+(reduce + (filter even? [1 2 3 4]))
+(dotimes [_ 10] (time (reduce + 0 (r/map inc v))))
+(dotimes [_ 10] (time (reduce + 0 (map inc v))))
+(dotimes [_ 100] (time (reduce + 0 v)))
+(dotimes [_ 100] (time (reduce + 0 v)))
+(dotimes [_ 20] (time (reduce + 0 (r/map inc (r/filter even? v)))))
+(dotimes [_ 20] (time (reduce + 0 (map inc (filter even? v)))))
+(reduce + 0 (r/take-while even? [2 4 3]))
+(into [] (r/filter even? (r/flatten (r/remove #{4} [[1 2 3] 4 [5 [6 7 8]] [9] 10]))))
+(into [] (r/flatten nil))
+)


Utils test

Utils test

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

--- test/bluebell/utils_test.clj
+++ test/bluebell/utils_test.clj
@@ -0,0 +1,33 @@
+(ns bluebell.utils-test
+  (:require [clojure.test :refer :all]
+            [bluebell.utils :refer :all]))
+
+(defn test-int-op [op & pairs]
+  (doseq [[src dst] pairs]
+    (is (= dst (op src)))))
+
+(deftest int-ops
+  (test-int-op greater
+               [2 3]
+               [2.5 3]
+               [-3 -2]
+               [-2.5 -2])
+  (test-int-op greater-or-equal
+               [2 2]
+               [2.5 3]
+               [-3 -3]
+               [-2.5 -2])
+  (test-int-op less
+               [2 1]
+               [2.5 2]
+               [-3 -4]
+               [-2.5 -3])
+  (test-int-op less-or-equal
+               [2 2]
+               [2.5 2]
+               [-3 -3]
+               [-2.5 -3]))
+
+(deftest maximize-test
+  (is (= 12 (maximize (range 30) #(< % 13))))
+  (is (nil? (maximize (range 30) (constantly false)))))


adding reporter as module

adding reporter as module

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

--- trackit-graphite/project.clj
+++ trackit-graphite/project.clj
@@ -0,0 +1,11 @@
+(defproject samsara/trackit-graphite (-> "../trackit.version" slurp .trim)
+
+  :description
+  "TRACKit! A Clojure developer friendly wrapper for Yammer's Metrics library."
+
+  :url "https://github.com/samsara/trackit"
+
+  :license {:name "Apache License 2.0"
+            :url "http://www.apache.org/licenses/LICENSE-2.0"}
+
+  :dependencies [[metrics-clojure-graphite "2.6.1"]])


Replace dispatch with dispath-sync for issue #39

--- examples/simple/src/simpleexample/core.cljs
+++ examples/simple/src/simpleexample/core.cljs
@@ -93,7 +93,7 @@
          "Time color: "
          [:input {:type "text"
                   :value @time-color
-                  :on-change #(dispatch
+                  :on-change #(dispatch-sync
                                [:time-color (-> % .-target .-value)])}]])))

 (defn simple-example


Problem 0135.

Problem 0135.

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

--- src/project_euler/problem_0135.clj
+++ src/project_euler/problem_0135.clj
@@ -0,0 +1,53 @@
+(ns project-euler.problem_0135)
+
+;; Given the positive integers, x, y, and z, are consecutive terms of an arithmetic progression,
+;; the least value of the positive integer, n, for which the equation, x^2 − y^2 − z^2 = n,
+;; has exactly two solutions is n = 27:
+;; 34^2 − 27^2 − 20^2 = 12^2 − 9^2 − 6^2 = 27
+;;
+;; It turns out that n = 1155 is the least value which has exactly ten solutions.
+;;
+;; How many values of n less than one million have exactly ten distinct solutions?
+
+;;----------------------------------------------------------------------------------------------
+
+;; Let d be the increment of the arithmetic progression
+;; The equation becomes: n = (z + 2d)^2 - (z + d)^2 - z^2
+;; -> n = z^2 + 4dz + 4d^2 - z^2 - 2dz - d^2 - z^2
+;; -> n = -z^2 + 2dz + 3d^2
+
+;; Solutions for n = 0:
+;; D = 4d^2 + 12d^2 = 16d^2
+;; z1, z2 = (-2d +- 4d) / -2
+;; z1, z2 = 3d, -d
+
+;; Solutions for n = 1000000
+;; D = 4d^2 + 4(3d^2 - 1000000) = 16d^2 - 4e6
+;; z1, z2 = (-2 +- sqrt(D)) / -2
+
+(defn equation [z d] (+ (* -1 z z) (* 2 d z) (* 3 d d)))
+
+(defn sols-for-1e6 [d]
+  (let [delta (- (* 16 d d) 4e6)
+        sqrt_d (Math/sqrt delta)]
+    [(/ (+ (* -2 d) sqrt_d) -2)
+     (/ (- (* -2 d) sqrt_d) -2)]))
+
+(defn z-range [d]
+  (let [[z0 z1] (sols-for-1e6 d)]
+    (if (Double/isNaN z0)
+      (range 1 (* 3 d))
+      (concat (range 1 z0) (range (inc (int z1)) (* 3 d)))
+      )))
+
+(defn solution []
+  (->> (iterate inc 1)
+       (map (fn [d] [d (z-range d)]))
+       (take-while (fn [[_ zs]] (seq zs)))
+       (mapcat (fn [[d zs]] (map (fn [z] (equation z d)) zs)))
+       frequencies
+       (filter (fn [[_ cnt]] (== cnt 10)))
+       count
+       ))
+
+;;-> 4989


integer strings should not have any zero prefixes

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


fancy new options parsing ns

fancy new options parsing ns

error: pathspec 'src/bitsplit_cli/app/options.cljs' did not match any file(s) known to git

--- src/bitsplit_cli/app/options.cljs
+++ src/bitsplit_cli/app/options.cljs
@@ -0,0 +1,39 @@
+(ns bitsplit-cli.app.options)
+
+(defn- seq->map [seq]
+  (->> seq
+       (partition 2)
+       (map vec)
+       (into { })))
+
+(defn- transform-key [transforms key]
+  (->> transforms
+       (keys)
+       (filter #(contains? % key))
+       (first)
+       (transforms)))
+
+(defn transform-keys [transforms map]
+  (into { }
+        (for [[k v] map]
+          (let [new-key (transform-key transforms k)]
+            (if (nil? new-key)
+              [k nil]
+              [new-key v])))))
+
+(defn verify-options [options-map]
+  (doseq [[k v] options-map]
+    (when-not v
+      (throw (js/Error. (str "Unrecognized option: " k))))))
+
+(def key-transforms
+  {#{"-n" "--network"} "network"
+   #{"-i" "--interval"} "interval"
+   #{"-v" "--verbose"} "verbose"} )
+
+(def args->options
+  (comp
+   verify-options
+   (partial transform-keys key-transforms)
+   seq->map
+   rest))


Add sequences examples

Add sequences examples

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

--- src/clojure/cjfn/09_sequences.clj
+++ src/clojure/cjfn/09_sequences.clj
@@ -0,0 +1,81 @@
+(ns cjfn.09-sequences)
+
+;; Make sure that we don't print too much in the REPL
+(set! *print-length* 10)
+
+;; 09-09: creating a sequence
+
+;; Note: this is not a list
+(seq [1 2 3]) ;; (1 2 3)
+
+(type (seq [1 2 3])) ;; clojure.lang.PersistentVector$ChunkedSeq
+(type [1 2 3])  ;; clojure.lang.PersistentVector
+(type '(1 2 3)) ;; clojure.lang.PersistentList
+
+(range) ;; (0 1 2 3 ... infinite)
+(range 3) ;; (0 1 2)
+
+;; from 1 to 10 step 2
+(range 1 10 2) ;; (1 3 5 7 9)
+
+;; Calculate the power of two
+(iterate #(* 2 %) 2) ;; (2 4 8 16 ... infinite)
+
+;; Calculate the power of two, look at the first 8 result
+(take 8 (iterate #(* 2 %) 2)) ;;(2 4 8 16 32 64 128 256)
+
+(re-seq #"[aeiou]" "Clojure") ;; ("o" "u" "e")
+
+;; 09-10: seq-in, seq-out
+(take 3 (range)) ;; (0 1 2)
+
+(drop 3 (range)) ;; (3 4 5 ... infinite)
+
+(map #(* % %) [0 1 2 3 4 5]) ;; (0 1 4 9 16 25)
+
+(take 10 (filter even? (range))) ;; (0 2 4 6 8 10 12 14 16 18)
+
+;; Add the "," between item
+(interpose "," (range 3)) ;; (0 "," 1 "," 2)
+
+(apply str (interpose "," (range 3))) ;; "0,1,2"
+
+;; 09-11: using a seq
+(= '(0 1 2 3) (range 4)) ;; true
+
+(reduce + '(0 1 2 3)) ;; 6
+
+(reduce + (range 4)) ;; 6
+
+;; with initial value
+(reduce + 10 (range 4)) ;; 16
+
+;; Note: order is not guarantee
+(into #{} "hello") ;; #{\e \h \l \o}
+
+;; Convert to map
+(into {} [[:x 1] [:y 2]]) ;; {:x 1, :y 2}
+
+;; nested vector to map
+(into {} [[[:x 1] [:y 2]]]) ;; {[:x 1] [:y 2]}
+
+(some {2 :b 3 :c} [1 nil 2 3]) ;; :b
+
+;; The  fibonaci sequence
+(take 10 (iterate (fn [[a b]]
+                    [b (+ a b)])
+                  [0 1]))
+;; ([0 1] [1 1] [1 2] [2 3] [3 5] [5 8] [8 13] [13 21] [21 34] [34 55])
+
+(def fib-seq (map first
+                  (iterate (fn [[a b]]
+                             [b (+ a b)])
+                           [0 1])))
+
+fib-seq ;; (0 1 1 2 3 5 8 13 21 34 ...)
+
+(take 5 fib-seq) ;; (0 1 1 2 3)
+
+(drop 5 fib-seq) ;; (5 8 13 21 34 55 89 144 233 377 ...)
+
+(map inc (take 5 fib-seq)) ;; (1 2 2 3 4)