This course is intended for new Clojure developers with some programming experience in another language. Sessions will include a mixture of lecture and hands-on guided labs.
The goal of the course is to achieve a thorough understanding of the basics of Clojure syntax and usage. Topics will include the Clojure syntax and evaluation model, collections, sequences, functions, flow control, namespaces, records, protocols, multimethods, state, and concurrency.
The course covers two full days (Sat Nov 14 and Sun Nov 15, 9-5 pm) and includes lunch, snacks, and beverages both days (all other meals on your own). Wifi and power will be provided. Attendees are expected to bring a laptop - instructions will be sent later on workshop setup.
Dates: November 15th, 9 am - 5 pm (all day)
Datomic Conf is a 1-day symposium covering the theory, architecture, and practical applications of Datomic, presented by the Datomic team. Sessions will be suitable for both current users of Datomic and those looking to learn more about it.
In this session, Stuart Halloway will introduce Datomic and the problems that it solves. You will see:
On your own
Understanding and Using Reified Transactions
Datomic models everything in terms of datoms: your schema, your domain, and even your transactions. This talk introduces reified transactions and explains how you work with them. Then it explores how they can be used to track data provenance, ensure transaction idempotency, and help implement work that can't be completed in a single transaction.
Clients in Control
Heterogeneous UI clients introduce a surprising amount of incidental complexity into distributed software applications. A good portion of this complexity arises from an overreliance on out-of-band information for correct state transfer. By shifting control just a little bit into clients we can deliver dramatic reductions in our complexity budget. We'll see how Datomic is particularly well suited for designing systems that give clients more control.
On your own
Datomic Conf Gathering
Light food provided, cash bar
Dates: November 15th, 3 pm - 5 pm (2 hrs)
Instructor: Gary Fredericks (@gfredericks_)
test.check is a Clojure property-based testing tool inspired by QuickCheck. The core idea of test.check is that instead of enumerating expected input and output for unit tests, you write properties about your functions that should hold true for all inputs. This workshop will cover the use of data generators to create random input data, the definition of properties, how shrinking works, and advanced property modeling techniques.