Clojure Workflow @
Dainius Jocas
2019-05-30
Agenda
● About TokenMill
● TokenMill workflow
● Why Clojure?
● Demo
● Questions
TokenMill workflow (1)
TokenMill workflow (2)
Loop:
1. Open source bits and pieces that should at least vaguely resemble an
idea of a credible software engineering
2. Find clients
3. Solve the problem for (2) using (1) open source bits and pieces with
the project specific custom functionality
And, of course, not loop like 2-3-1 :-)
TokenMill workflow (3)
Why Clojure?
Software
The most fundamental problem in computer science is problem decomposition:
how to take a complex problem and divide it up into pieces that can be solved
independently.
(John Ousterhout, A Philosophy of Software Design)
The Clojure Programming Language
Clojure is a dynamic, general-purpose programming language, combining the
approachability and interactive development of a scripting language with an
efficient and robust infrastructure for multithreaded programming.
(https://clojure.org/)
Proper Tooling
● Tools-deps (instead of Leiningen)
● IntelliJ + Cursive (some use emacs)
● GraalVM
● Docker
● Linux
● Elasticsearch and Lucene
● Apache Storm
● Gitlab for CI/CD
● AWS (S3, Lambda, Cloudformation, etc.)
● Github for OSS
Demo: text2date Lambda
- Project template
(https://github.com/tokenmill/clojure-graalvm-aws-lambda-template)
- Git dependencies (not from a private repository this time)
- GraalVM native image
- AWS Lambda
- https://github.com/dainiusjocas/clojure-meetup-vilnius-2019-05-30
Questions
Thank You!

Clojure workflow @ TokenMill by Dainius Jocas

  • 1.
  • 2.
    Agenda ● About TokenMill ●TokenMill workflow ● Why Clojure? ● Demo ● Questions
  • 4.
  • 5.
    TokenMill workflow (2) Loop: 1.Open source bits and pieces that should at least vaguely resemble an idea of a credible software engineering 2. Find clients 3. Solve the problem for (2) using (1) open source bits and pieces with the project specific custom functionality And, of course, not loop like 2-3-1 :-)
  • 6.
  • 7.
  • 8.
    Software The most fundamentalproblem in computer science is problem decomposition: how to take a complex problem and divide it up into pieces that can be solved independently. (John Ousterhout, A Philosophy of Software Design)
  • 10.
    The Clojure ProgrammingLanguage Clojure is a dynamic, general-purpose programming language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. (https://clojure.org/)
  • 11.
    Proper Tooling ● Tools-deps(instead of Leiningen) ● IntelliJ + Cursive (some use emacs) ● GraalVM ● Docker ● Linux ● Elasticsearch and Lucene ● Apache Storm ● Gitlab for CI/CD ● AWS (S3, Lambda, Cloudformation, etc.) ● Github for OSS
  • 12.
    Demo: text2date Lambda -Project template (https://github.com/tokenmill/clojure-graalvm-aws-lambda-template) - Git dependencies (not from a private repository this time) - GraalVM native image - AWS Lambda - https://github.com/dainiusjocas/clojure-meetup-vilnius-2019-05-30
  • 13.
  • 14.