Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Talk: Deep Learning in Clojure with Apache MXNet

Presented at ClojureD 2019 by Dave. Watch or browse the slides.

Made with Pollen, so the presentation is a program written in lisp. If you're exploring, I recommend reading the Pollen docs first or in parallel. It is a great joy to write a talk as a Racket program that produces bog-standard HTML. Non-programmers and programmers alike should appreciate Pollen's top-notch, elegant documentation. Clojure programmers in particular can learn a lot from their lispy cousin Racket.


To compile the talk on your machine:

  1. install Pollen
  2. install reveal.js to this directory
  3. start a pollen server in this directory
  4. go to http://localhost:8081/mxnet-clojured.html
  5. see live changes:
    • make some textual change to (e.g. switch "sand" with "rock" inside the first h3)
    • reload the browser window
    • the Pollen server will automatically detect the change and produce fresh HTML \o/

The program is structured such that 99% of writing the talk happens in The pollen.rkt file manages the pollen server and provides a few helper functions (for instance, ◊speaker-notes) written in lisp (Racket). The HTML-in-Pollen-DSL becomes slides through reveal.js, which is set up in template.html.p and the way is structured: each ◊section is a slide. Please don't look at my mess of CSS.


I write in emacs using Junsong Li's pollen-mode (NB: there is another pollen-mode and the two unfortunately share a name) with paredit turned on so I can select and edit structural units rather than text. I use the Pollen DSL, though Markdown and "lisp-style" Pollen can be used as well.

My emacs files include the following Pollen-specific config:

;; For Pollen in Racket. See
(global-set-key "\M-/" "")

(add-hook 'pollen-mode-hook
          (lambda ()
            (setq comment-start "◊;")))

Pollen-mode is quite useful but there are some places (such as indentation) where it could use some love, if you're in a mood to contribute to open source software.

You can’t perform that action at this time.