Skip to content

Instantly share code, notes, and snippets.

@drewverlee
drewverlee / monads explained via clojure spec
Created November 23, 2020 00:15
monads explained via clojure spec.
(def my-inc inc)
(def my-dec dec)
(s/fdef my-inc
:args (s/cat :x int?)
:fn #(= (inc (-> % :args :x ))
(-> % :ret))
:ret int?)
(s/fdef my-dec
(def my-inc inc)
(def my-dec dec)
(s/fdef my-inc
:args (s/cat :x int?)
:fn #(= (inc (-> % :args :x ))
(-> % :ret))
:ret int?)
(ns drewverlee.sql-on-the-wire-walkthrough
(:require [honeysql.core :as sql]
[honeysql.helpers :refer :all :as helpers]))
;; The goal is that a user of the app wants to retrieve the size of the TechCo building.
;; Will be showing how to achieve this goal concisely by letting the front end developer describe
;; the sql query while also improving and simplifying our authorization story. Lets say
(ns drewverlee.webcrawler
(:require [clojure.core.async
:as a
:refer [>! <! >!! <!! go chan buffer close! thread
onto-chan
alts! alts!!]]))
;; Note in both solutions we mock the web crawl
(ns drewverlee.webcrawler
(:require [clojure.core.async
:as a
:refer [>! <! >!! <!! go chan buffer close! thread
onto-chan
alts! alts!!]]))
;; my version
(let [url->urls {:a [:b :e]
(ns drewverlee.webcrawler
(:require [clojure.core.async
:as a
:refer [>! <! >!! <!! go chan buffer close! thread
onto-chan
alts! alts!!]]))
;; my version
(let [url->urls {:a [:b :e]
➜ ~ clj -Sdeps -Srepro -Sforce '{:deps { cider/piggieback {:mvn/version "0.5.0"}, nrepl/nrepl {:mvn/version "0.8.0-alpha4"}}}' -m "nrepl.cmdline"
Error building classpath. Don't know how to create ISeq from: clojure.lang.Symbol
java.lang.IllegalArgumentException: Don't know how to create ISeq from: clojure.lang.Symbol
at clojure.lang.RT.seqFrom(RT.java:557)
at clojure.lang.RT.seq(RT.java:537)
at clojure.core$seq__5402.invokeStatic(core.clj:137)
at clojure.core$merge_with$merge2__5964.invoke(core.clj:3066)
at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:63)
at clojure.core$reduce1.invokeStatic(core.clj:942)
at clojure.core$reduce1.invokeStatic(core.clj:934)
#!/bin/bash
# makes an API call to breezeehr requesting patient data.
#dev
HOST="https://auth-dev.breezeehr.com"
SERVER=https://dromon:443/fhir
PATIENT_FHIR_UUID=55776ed1-2072-4d0c-b19f-a2d725aadf15
#prod
#HOST="https://auth.breezeehr.com"
@drewverlee
drewverlee / dump-1493267186206.cljs
Created April 27, 2017 04:26
ClojureScript REPL dump
cljs.user=> (defrecord ReversibleTie [a b])
cljs.user/ReversibleTie
cljs.user=> (extend-protocol IReversible
ReversibleTie
(^clj -rseq [cool] cool))
#object[Function "function (cool){
var cool__$1 = this;
return cool__$1;
}"]
cljs.user=> (extend-protocol IReversible