Exploring Clojure and Data Management: Production Rules, ETL, and More
Table of Contents
- Notes
- Day 1
- Production Rules on Databases, Paula Gearon
- Simplifying ETL with Clojure and Datomic, Stuart Halloway
- Clojure at DataStax: The Long Road From Python to Clojure, Nick Bailey
- Audyx.com 40k locs to build the first web-based sonogram, Asher Coren
- Charting the English Language…in pure Clojure, Alexander Mann
- Building a powerful Double Entry Accounting system, Lucas Cavalcanti
- Becoming Omniscient with Sayid, Bill Piel
- Keynote, Rich Hickey
- Unsessions, Hilton Austin
- Day 2
- In situ model-based learning in PAMELA, Paul Robertson, Tom Marble
- Powderkeg: teaching Clojure to Spark, Igor Ges, Christophe Grand
- Building composable abstractions, Eric Normand
- Clarifying Rules Engines with Clara Rules, Mike Rodriguez
- A Peek Inside SAT Solvers, Jon Smock
- Spectrum, a library for statically "typing" clojure.spec, Allen Rohner
- Composing music with clojure.spec, Wojciech Franke
- Day 3
Notes
- enabled eldoc-mode by default for Cider sessions
- state diagrams
- message passing diagrams
- http://www.actionx.com/index.html
- ->>(map, filter, reduce, map) -> (groupBy)
Day 1
Production Rules on Databases, Paula Gearon
- Relationships and Predicate Logic
- Create a Datalog example with the ontology for Food
- Axioms:
cuisine(Italian) food(Pasta) ingredient(Flour) ingredient(Milk) ingredient(Egg)
- Rules application as an edge between data nodes
- Rete
The Rete algorithm [72,56] was originally conceived by Charles L. Forgy in 1974 as an optimized algorithm for inference engines of rule based expert systems.
- Implementation: https://github.com/threatgrid/naga
- OWL as relationsip managment: https://www.w3.org/TR/owl-ref/#TransitiveProperty-def
- Example ontology specified in OWL: https://github.com/ailabitmo/food-ontology/blob/master/food.owl
lein run --jason data/in.json --out data/out.json data/family.pl
- Goal: create identied entities with all relationships explicitly exported
Simplifying ETL with Clojure and Datomic, Stuart Halloway
- Datomic tables for recording transactions
- entity property value transaction operation
- Example: http://blog.datomic.com/2015/01/datalog-enhancements.html
- https://www.youtube.com/watch?v=VNTQ-M_uSo8
- https://www.meetup.com/clojure-pdx/events/234818929/
Clojure at DataStax: The Long Road From Python to Clojure, Nick Bailey
**
- Jython
- Developer knowledge transfer
Audyx.com 40k locs to build the first web-based sonogram, Asher Coren
- Convert core tooling for obfuscation and size
- Figwheel for reduced build times
- Defer the performcne
Charting the English Language…in pure Clojure, Alexander Mann
https://lvdmaaten.github.io/tsne/
- use core.matrix
Building a powerful Double Entry Accounting system, Lucas Cavalcanti
Becoming Omniscient with Sayid, Bill Piel
Keynote, Rich Hickey
Unsessions, Hilton Austin
Day 2
In situ model-based learning in PAMELA, Paul Robertson, Tom Marble
- Biased Coin Problem: find when coin swapped
- Transitions
- Car on hill
- Disconnected battery
- Bouncy switch
Powderkeg: teaching Clojure to Spark, Igor Ges, Christophe Grand
Building composable abstractions, Eric Normand
- provide example with (defn) then (s/fdef) for signatures
Clarifying Rules Engines with Clara Rules, Mike Rodriguez
A Peek Inside SAT Solvers, Jon Smock
Spectrum, a library for statically "typing" clojure.spec, Allen Rohner
Composing music with clojure.spec, Wojciech Franke
- amen break chardonnay
Day 3
Adventures in Understanding Documents, Scott Tuddenham
- Set up the core document processing as (defresource)
- Standard API end-point for the pixel servers
Barliman: trying the halting problem backwards, blindfolded, William Byrd, Greg Rosenblatt
- start with a base test
- indicate when the data isn't relevant for the tests with ,g1 ,g2
- indicate recursion cases
- provide names and formal parameters in the Definitions section
- speed up a recursive definition with an accumulator
- apply heursitics like using fold-left or fold-right
- even proof solvers look reasonable with the minikanren
- use parsimony as a desired value of a program
Setup
Chez Scheme Version 9.4.1 Copyright 1984-2016 Cisco Systems, Inc.