Skip to content

Instantly share code, notes, and snippets.


Sean Corfield seancorfield

View GitHub Profile
seancorfield / deps.edn
Last active Jun 10, 2020
Debugging Reflection Warnings
View deps.edn
;; I use Clojure CLI / deps.edn and I have these JVM options in an alias
;; that use when starting my REPL for testing:
:jvm-opts ["-Dclojure.core.async.go-checking=true"
;; the last one is relevant to this particular piece of debugging so that
;; _all_ illegal reflective access warnings are shown, not just the last
;; the stacktrace option ensures the JVM doesn't optimize away stack traces
;; for commonly thrown exceptions (such as NPE)
seancorfield / stacktrace.txt
Created Sep 13, 2018
Stacktrace from Boot pod -- clearly dynapath does NOT have a syntax error!
View stacktrace.txt
Exception in thread "Thread-81" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(
at clojure.lang.RT.classForName(
at clojure.lang.RT.classForName(
at clojure.lang.RT.loadClassForName(
at clojure.lang.RT.load(
at clojure.lang.RT.load(
at clojure.core$load$fn__6653.invoke(core.clj:6071)
at clojure.core$load.invokeStatic(core.clj:6070)
seancorfield / stacktrace.txt
Created Jul 19, 2018
Stacktrace from Boot pod failure with Clojure 1.10.0-alpha6
View stacktrace.txt 745
java.util.concurrent.ThreadPoolExecutor$ 617
java.util.concurrent.ThreadPoolExecutor.runWorker 1142 266
clojure.core/binding-conveyor-fn/fn core.clj: 2022
boot.core/boot/fn core.clj: 1031
boot.core/run-tasks core.clj: 1021
boot.user$eval1637$fn__1638$fn__1647$fn__1648.invoke : 663
seancorfield /
Last active Jan 6, 2020
map-vals and map-keys

Running this code:

clj -Sdeps '{:deps 
              {:git/url ""
               :sha "cfde3c2c83379e93ab1a49752611ae663008129f"}}}'

That starts a REPL:

user=> (require '[map-utils :refer [map-vals map-keys]])
seancorfield / adam.clj
Created Mar 24, 2017
Example of closures in Clojure
View adam.clj
(defn do-it []
(let [a ["a" "b" "c"]
b ["x" "y" "z"]
counter (atom 0)]
(run! (fn [foo]
(reset! counter 0)
(run! (fn [bar]
(swap! counter inc)
(println {:counter @counter
:foo foo
seancorfield / async_pmap.clj
Created Jul 14, 2016 — forked from drewolson/async_pmap.clj
pmap using core.async
View async_pmap.clj
(ns async-example.core
(:require [clojure.core.async :refer [chan go >! <!!]])
(defn my-pmap [f col]
(let [chans (repeatedly (count col) chan)]
(doseq [[c e] (map vector chans col)]
(go (>! c (f e))))
(map <!! chans)))
View gist:8f62615233244820c8db
(ns example
(:require [reagent.core :as r :refer [atom]]
[reagent.cursor :as c]))
(defn input [prompt val]
[:input {:value @val
:on-change #(reset! val (.-target.value %))}]])
seancorfield / gist:8285619
Created Jan 6, 2014
replaceNoCase() failure example
View gist:8285619
<cfprocessingdirective pageencoding="utf-8">
#replaceNoCase("LİELİELİELİE....","E","a very long string to replace E","all")#
seancorfield / gist:8232204
Created Jan 3, 2014
Testing CFML's isClosure() and isCustomFunction() decision functions with function expressions as arguments.
View gist:8232204
writeOutput("closure? " & isClosure(function() { return "yes"; }));
writeOutput("function? " & isCustomFunction(function() { return "no"; }));
View gist:3222856
(:require [ :refer :all]
[expectations.scenarios :refer [expect scenario]]))
(set-driver! {:browser :firefox} ""))
(to "")
(expect "Arab Dating" (text ".footer p a"))