Clojure/conj 2019: Topics, Tasks, and Tools for Clojure Development

Table of Contents

Clojure/conj 2019

Durham Convention Center

Tasks

Cider

clj-refactor sayid.el cider-hydra clomacs helm-cider squiggly-clojure cider-eval-sexp-fu kaocha-runner emidje

Schedule

Derek Troy-West; Follow the Data: Product Development in Clojure

  • Immutable time-series compute
  • Kafka as aligned with core Clojure properties
  • Use as a data-oriented programming framework
  • consume - transform - compute
  • Use simulation as core to the system
  • Update brokers, groups, topics to simulate load
  • Sente for websockets passing data from topic updates to browser
  • operator-io/shortchut

Ariel Ortiz; The Hitchhikers Guide to Multiparadigm Programming

Functional

  • recursive
(defn fib [n]
"Fibonocci"
)
  • loop/recur
(defn fact-v2 [n]
(reduce *' (range 1 n))
  • range
(defn fact-v2 [n]
(reduce *' (range 1 n))
  • prefer sequence API over recursion or loop/recur

Imperative

Parallel

Use `pmap` to split into

[[0 (/ n 2)] [(/ n 2] (inc n)]]

Meta

Using macros to debug stacks for the calls for interative approach.

Logic

Mini-kanren for creating fresh n-dec and fact-n-dec.

See the Reasoned Schemer for the example.

(logic/run 1 [q] (fact-v7 q 120))

Lucas Cavalcanti; Complex Made Bearable

  • Kafka
  • Generative tests
  • Clojure spec

Santiago Gepigon III; piggy: Specs for Breaking Changes

Provides the ability to see if the input args are more restrictive (subset) or the return more expansive (super).

J.D. Hollis; Datomic with Terraform

terraform-workflow.png

  • Setup has modules for each of the environment
  • datomiccopute and datomicstorage is manual
  • arbitrary comans with nullresource
  • change detected as md5 hash for code or configuration change
  • release region, env, group

Providers

  • aws
  • inboundbastion
  • datomic
  • sqs

Output

  • security gruop
  • code bucket
  • deploy state machine

Dragan Djuric; Interactive Programming for Artificial Intelligence

Stuart Halloway; Sherlock Holmes, Consulting Developer

Gene Kim; Love Letter To Clojure: And A Datomic Experience Report

Chris Nuernberger; Extending Clojure with Python

(def np (py/module-import "numpy"))

Chris Oakman; Probabilistic Record Linkage of Hospital Patients

  • https://github.com/oakmac/record-linking-talk
  • Create a test bed of [User] for name, recordid, ssn, address
  • Create (patient-ids-match? [user1 user2])
  • Establish a deterministic algorithm
  • Create match and unmatch probabilities (Fellegi-Sunter)
  • clojure.spec for evaluating data transformations
  • Create match probability for
  {
   :match-prob .8
   :unmatch-prob .1
  }

  (def default-match [e1 e2]
    "Default check is pure equality"
    (= e1 e2))
  (def name-match [n1 n2]
    "Split phonetically and match based on phonemes"
    (double-metaphone n1 n2))

  • Create a distribution for the thresholding
  • Put questionables into a DLQ
  • Use ML for finding the match weights for each of match and unmatch probabilities

Pier Federico Gherardini & Ben Kamphaus; Clojure Where it Counts: Tidying Data Science Workflows

Eno Compton & Tyler van Hensbergen; Goodbye YAML: Infrastructure as Code in Clojure

  • Clojure and AWS
  • Lambdas
  • AWS CloudFormation

Example: Event Consumer

aws.png

Alternative: TypeScript AWS CDK

Philipp Meier; A magic trashcan - microprocessors for full stack developers

  • Types from the physical world
  • Lua for embedded systems
  • Various hardware options: Ada, Arduino
  • Fennel

Sara Kimmich; Rapid Prototyping for Software Development

  • use 20 minutes for the expected prototype
  • experiment early
  • check for assumptions early
  • have a next step forward
  • real enough to feel
  • favor observable vs. conjecture
  • tractable vs. intractable problem statements

Ulrich Schaechtle; Inference QL: Al for data engineers in Clojure

The goal here would be to determine the relationships between

Example: MgrIdiot predicts CareerSat

Generate answers for any of the virtual types of developer given KnowsClojure.

  • count model (for columns count both then )
  • conditional count model
  • bayesian
(simulate count-model {} 1)

Alex Miller; Composable Tools

External

Dinner

UNSESSIONS/LIGHTNING TALKS

PARTY; Boxcar Arcade

Author: Jason Walsh

j@wal.sh

Last Updated: 2024-08-02 10:10:03