This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(slingshot.slingshot/try+ | |
(kaocha.plugin.cloverage/cloverage-main-hook (kaocha.repl/config)) | |
(catch :kaocha/early-exit m | |
(prn m))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns com.widdindustries.reagent-interval | |
"functions to create reagent reactions (ie ratoms) whose value changes | |
as an argument function is called periodically" | |
(:require [reagent.ratom :as ratom] | |
[reagent.core :as r])) | |
(defn interval-async | |
"create ratom whose value will initially be initial-state, | |
and thereafter may change as f is called with the 'state' atom every delay-ms" | |
[f delay-ms initial-state] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns delete-on-close-fileinput-stream) | |
(defn create-fis [^java.io.File f] | |
(proxy [java.io.FileInputStream] [f] | |
(close [] | |
(try | |
(proxy-super close) | |
(finally | |
(.delete f)))))) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; demonstrating that offset names such as EST, CEST etc are not always parsed properly into ZonedDateTime. | |
; EST, CEST are defined as fixed offsets from UTC so are not ambiguous in that respect, although apparently the same abbreviation | |
; is used more than once for the same thing in some cases! Ideally they could be parsed to OffsetDateTime, | |
; but I can't find a way to get that working. Comment if you know how ;-) | |
; old parse api | |
(-> | |
(SimpleDateFormat. "M/d/y, H:m z") | |
(.parse "3/26/2020, 14:00 EST")) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns com.widdindustries.safe-subs) | |
(defn subs-safe | |
"like clojure.core/subs but more forgiving" | |
([^String s start] (subs-safe s start (count s))) | |
([^String s start end] | |
(when s | |
(let [end (if (> end (count s)) | |
(count s) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns my.ns | |
(:require [com.widdindustries.log4j2.log-api :as log] | |
[com.widdindustries.log4j2.config :as config] | |
[com.widdindustries.InfluxDbProvider :as influx] | |
[com.widdindustries.influx-data :as influx-data] | |
[com.widdindustries.log4j2.log-impl :as log-impl]) | |
(:import [org.apache.logging.log4j.message MapMessage] | |
[org.apache.logging.log4j Level] | |
[org.influxdb InfluxDB InfluxDBFactory InfluxDB$ConsistencyLevel] | |
[org.influxdb.dto Query])) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns com.widdindustries.timelines | |
"create timelines which are (possibly infinite) sequences of maps with a ::time key. | |
Multiple timelines can be merged into a single timeline | |
Zero dependency - BYO time lib | |
Demo in comment at the end | |
") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns streaming | |
"read-write large json arrays with jsonista - techniques from | |
https://cassiomolin.com/2019/08/19/combining-jackson-streaming-api-with-objectmapper-for-parsing-json/ | |
comment at end shows running/testing code" | |
(:require [jsonista.core :as j]) | |
(:import (com.fasterxml.jackson.databind ObjectMapper) | |
(com.fasterxml.jackson.core JsonToken JsonGenerator JsonParser) | |
(java.io OutputStream ByteArrayOutputStream ByteArrayInputStream InputStream))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns com-widdindustries-statsatom | |
"A drop-in replacement for clojure.core/atom | |
The difference is that this record the following stats, held in the atom's metadata: | |
- number of times updated via swap!/swap-vals! and | |
- number of attempts made to do those updates | |
Clearly these stats themselves need to be atomically updated so there's some overhead added there. | |
" | |
(:refer-clojure :exclude [atom]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns ftp-client | |
(:require | |
[clojure.java.io :as io] | |
[clojure.tools.logging :as log] | |
[miner.ftp :as ftp]) | |
(:import [java.nio.file Path Paths Files FileSystem FileSystems] | |
[java.nio.file.attribute FileAttribute] | |
[java.io File])) | |
(defn remove! |