Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading content…
Loading…
Transcript

Boot & Hoplon

Contact Me

  • matt@degree9.io
  • http://degree9.io
  • http://twitter.com/degree9io
  • http://github.com/degree9

Leiningen

Single Page Apps

index.cljs.hl

Custom Elements

  • Boot-Hoplon
  • Page declaration generates HTML

app/core.cljs.hl

Boot vs. Lein

  • Boot-Hoplon
  • ns+ declarations work identically to ns in clojure
  • Attribute Map
  • Imperative vs. Declarative
  • List of child elements
  • How vs. What
  • Build Tooling vs. Building Projects
  • Returns element as function

Javelin

presented by

  • All Cells
  • Contain a value
  • Read with deref or @
  • Input Cells
  • Explicitly updated
  • reset! or swap!

HLisp

  • Formula Cells
  • Reactively updated

Fileset

DOM as ClojureScript

index.cljs.hl

https://github.com/boot-clj/boot/wiki/Filesets

  • Input Files
  • Used by build pipeline
  • Output Files
  • Output to artifact
  • Elements
  • Abstraction over DOM Elements

do! multimethod

Boot Concepts

hoplon.jquery

  • Attributes
  • Abstraction over DOM Attributes

+ Event Handlers

Awesome Resources

Spreadsheet Data-flow

Input Cell with default

  • Interact with Host OS

(Filesystem Abstraction)

Formula Cell increment Input Cell

  • https://soundcloud.com/defn-771544745/05-hoplon-special-with-micha-niskin
  • Execution Environment for Clojure

(Classpath Isolation)

  • Non-Function values
  • http://blog.cognitect.com/cognicast/111

Explicitly mutate Input Cell

  • Javelin Formula Cells
  • Recalled when cell updates
  • Build Pipeline

(Composeable Middleware)

  • http://blog.cognitect.com/cognicast/112

Attribute Providers

hoplon.jquery & hoplon.goog

  • Provides custom behaviour

Pods

  • Extend on! and do! multimethods
  • on! ==>> custom event handling
  • do! ==>> custom element methods

https://github.com/boot-clj/boot/wiki/Pods

Boot-Hoplon

  • Isolated Environment

between Tasks and Project

on! multimethod

hoplon.jquery

  • Boot Task

Lenses

  • Function values
  • HTML + ClojureScript
  • Formula Cell + Setter
  • Recalled on each subsequent event of the same type

Standard Build Pipeline

  • *.cljs.hl
  • Cells backed by database
  • Includes Namespaces
  • hoplon.core
  • javelin.core

+ hoplon.jquery

Tasks

  • ClojureScript Entrypoint

https://github.com/boot-clj/boot/wiki/Tasks

  • Middleware Factories (Return Middleware)
  • Cascading & Composable
  • Middleware (Return Handler)
  • Decide if/when to call next-handler
  • Handlers Transform Fileset (Return Fileset)
Learn more about creating dynamic, engaging presentations with Prezi