Exploring Clojure and Data Management: Production Rules, ETL, and More
Table of Contents
- 1. Notes
- 2. Day 1
- 2.1. Production Rules on Databases, Paula Gearon
- 2.2. Simplifying ETL with Clojure and Datomic, Stuart Halloway
- 2.3. Clojure at DataStax: The Long Road From Python to Clojure, Nick Bailey
- 2.4. Audyx.com 40k locs to build the first web-based sonogram, Asher Coren
- 2.5. Charting the English Language…in pure Clojure, Alexander Mann
- 2.6. Building a powerful Double Entry Accounting system, Lucas Cavalcanti
- 2.7. Becoming Omniscient with Sayid, Bill Piel
- 2.8. Keynote, Rich Hickey
- 3. Unsessions, Hilton Austin
- 4. Day 2
- 4.1. In situ model-based learning in PAMELA, Paul Robertson, Tom Marble
- 4.2. Powderkeg: teaching Clojure to Spark, Igor Ges, Christophe Grand
- 4.3. Building composable abstractions, Eric Normand
- 4.4. Clarifying Rules Engines with Clara Rules, Mike Rodriguez
- 4.5. A Peek Inside SAT Solvers, Jon Smock
- 4.6. Spectrum, a library for statically "typing" clojure.spec, Allen Rohner
- 4.7. Composing music with clojure.spec, Wojciech Franke
- 5. Day 3
1. 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)
2. Day 1
2.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
2.1.1. Reading
2.2. 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/
2.3. Clojure at DataStax: The Long Road From Python to Clojure, Nick Bailey
**
- Jython
- Developer knowledge transfer
2.4. 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
2.5. Charting the English Language…in pure Clojure, Alexander Mann
https://lvdmaaten.github.io/tsne/
- use core.matrix
2.6. Building a powerful Double Entry Accounting system, Lucas Cavalcanti
2.7. Becoming Omniscient with Sayid, Bill Piel
2.8. Keynote, Rich Hickey
3. Unsessions, Hilton Austin
4. Day 2
4.1. 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
4.2. Powderkeg: teaching Clojure to Spark, Igor Ges, Christophe Grand
4.3. Building composable abstractions, Eric Normand
- provide example with (defn) then (s/fdef) for signatures
4.4. Clarifying Rules Engines with Clara Rules, Mike Rodriguez
4.5. A Peek Inside SAT Solvers, Jon Smock
4.6. Spectrum, a library for statically "typing" clojure.spec, Allen Rohner
4.7. Composing music with clojure.spec, Wojciech Franke
- amen break chardonnay
5. Day 3
5.1. Adventures in Understanding Documents, Scott Tuddenham
- Set up the core document processing as (defresource)
- Standard API end-point for the pixel servers
5.2. 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
5.2.1. Setup
Chez Scheme Version 9.4.1 Copyright 1984-2016 Cisco Systems, Inc.