Skip to content

timothypratley/enterprise-clojure-training

Repository files navigation

Enterprise Clojure Training

"Clojure is serious business!" — Timothy Pratley

A Clojure training course for Developers and Senior Developers working on Enterprise software.

Please visit the Website to see the precompiled course material.

A list of companies and individuals offering Clojure training is here this page.

Rationale

Clojure has been in the "adopt" zone of the Thoughtworks tech radar since 2014. But companies face the challenge of how to prepare their staff to be productive using Clojure. Creating a structured enterprise style course material will enable more people to offer Clojure courses suitable for companies wanting to adopt Clojure.

Usage

Slides have Keyboard shortcuts.

Contributing

If you have suggestions on how to improve this course, I would love to hear them. Issues welcome. Pull requests welcome.

Developing

The manual and slides source material are under the docs directory. The material is written in asciidoc (.adoc) format, which gets compiled to HTML and PDF. They are built to HTML and PDF using Asciidoctor, and output to the site directory. Refer to the Writer’s Guide for syntax. Asciidoctor provides excellent document producing features and allows slides to be generated as RevealJS slideshows.

When editing the material, there are many live preview tools to chooose from here. I use the IntelliJ plugin as it is simple to install and works well. There is also a ./watch.sh command to build when the source file changes. The Web (Epiphany) browser reloads from disk when the HTML file changes.

Building

The easiest way to build is to run

./bb.sh

This script relies on bundler (See The Ruby way for more info). It will install dependencies and build the documents into html/pdf.

With installed CLI tools.

You can install asciidoctor, asciidoctor-pdf, and ascidoctor-revealjs locally and run

./build.sh

But installing these tools is a bit of a pain…​ so two ways to get the dependencies are provided:

The Ruby way

Requires Ruby.

You don’t need to install Asciidoctor. Asciidoctor is a dependency specified in the Gemfile. However you will need Ruby and Bundler to pull down the Asciidoctor and RevealJS plugin dependencies.

Requires Bundler:

gem install bundler

Pull the dependencies:

bundle --path=.bundle/gems --binstubs=.bundle/.bin

Now you can call the build script:

bundle exec ./build.sh

The ./bb.sh just does these two steps for you.

Rebuild on file modified

To have the build watch for file changes and rebuild automatically:

./watch.sh

You need entr (Event Notify Test Runner) installed for watch to work, I highly recomend it.

brew install entr

Or

apt install entr

The Docker way

Alternatively, if you prefer pulling a Docker image over installing dependencies:

docker run -v $(pwd):/documents/ asciidoctor/docker-asciidoctor /documents/build.sh

Deploying

TravisCI automatically deploys the latest version to GitHub Pages. Build Status

Manual deployment:

./deploy.sh