A fun and gentle introduction to the Clojure language, functional programming, and data-drive programming, through the eyes of baking robot X5.
Screencasts, Whiteboards, and Slides produced to help you learn
This course teaches you the hands-on, nitty gritty details of the JVM and Clojure/Java interop that you would pick up after many years of programming Java. It combines videos with reference sheets to give you easy access to the accumulated skills of years of experience. With this course, you won’t have to worry about stack traces, JVM options, or the standard library again.
Clojure sequences are lazy by default. That gives you big benefits like separation of concerns, but it also brings with it some gotchas. This course is mostly about exploring those gotchas–problems that can bite you if you’re not ready for them–and techniques to work with each one. Being prepared is the best antidote to a bad bite. After dealing with the downsides, we explore the big benefits.
Leiningen is the *de facto* standard project tool in Clojure. This course gives an overview of `lein` commands, projects, templates, and dependencies.
Manipulating time is a difficult thing. Time was made for people. The rules are complicated and depend on where you are on Earth. Time units have varying lengths (how long is “one month”?; how long is a day when you change daylight savings?), daylight savings depends on the country you’re in, and formatting dates depends on the language. It’s complicated. Luckily, Joda Time does an excellent job. Joda Time is a date-time library that represents everything immutably. It’s what people use when they want robust date-time calculations. clj-time wraps up the types from Joda Time and makes it easy to use from Clojure.
Namespace declarations can be complicated. They manage all of the dependencies of one namespace on another. There are a lot of options. In this course, we go over how to make best use of them.
Pragmatic and in-depth guides to a topic.
What are some of the milestones that people hit when they’re learning functional programming?
Parts of courses on specific topics
We learn about the different locations that X5 can go to in the bakery. We learn about sets and what they can hold.
Let’s add a recipe for a new baked good, brownies.
Now we can rework our bake-cake function to use the variadic versions of our add functions.
We look at the basics of representing HTML with Hiccup, which is a very convenient way of embedding markup right in our code.
When computers were expensive, there were two schools of thought for how to maximize the usage of the precious resources of computer time. One school, called *Batch*, chose to require users to submit jobs to run on the computer. They would queue up the jobs, and run them one at a time.
The other school of thought was called *Interactive*. They wanted to connect terminals to the computer and let everyone run software at the same time. They wanted the fast feedback of immediately running your small programs.
Those folks who wanted interactive computing back in the 50s and 60s were Lisp programmers. They started the tradition way back then, and Lispers are still carrying the torch.
We replace our router with Bidi, a bidirectional routing library that plays well with the HTTP library Yada.
We interviewed D. Schmudde about his upcoming Clojure/conj 2016 talk about the intersection of functional programming, clojure.spec, and art.
We interviewed Daniel Friedman about his upcoming Code Mesh talk with Jason Hemann.
We Interviewed Daniel King about his upcoming Curry On 2017 talk about Building Tools and Languages for Terabyte Scale Biology: A Call to Action.
We interviewed Dave Yarwood about his upcoming Clojure Remote 2017 talk about ZeroMQ.
We interviewed Dom Kiva-Meyer about his upcoming Clojure/West 2017 talk.
We interviewed Dr. Christian Betz about his upcoming EuroClojure 2017 talk called Tear down this wall – rethink distributed systems.
Issue 294 – October 01, 2018 · Archives · Subscribe Hi Clojurers, Please enjoy the issue. Rock on!Eric Normand <email@example.com> PS Want to get this in your email? Subscribe! Announcement: No Clojure SYNC in 2019 I’m sorry to say it, but it won’t be happening in 2019. I’m deliberately leaving 2020 open. This post talks […]
Issue 293 – September 24, 2018 · Archives · Subscribe Hi Clojurers, I have an important announcement. Though it pains me to say it, there will be no Clojure SYNC 2019. There are more details here. Rock on!Eric Normand <firstname.lastname@example.org> PS Want to get this in your email? Subscribe! Hire Eric to train your team […]
Issue 292 – September 17, 2018 · Archives · Subscribe Hi Clojurers, Well, I’m looking forward to getting back into the swing of things after a few weeks of moderate work on PurelyFunctional.tv due to the birth of my daughter. Have I missed anything in the Clojure world while I was out? Let me know. […]
Issue 291 – September 10, 2018 · Archives · Subscribe Hi Clojurers, Please enjoy the issue. Rock on!Eric Normand <email@example.com> PS Want to get this in your email? Subscribe! Hire me to train your team I have a couple of spots open for client work. I’m currently offering two specialized services: Clojure Kickstart is training […]
Issue 290 – September 03, 2018 · Archives · Subscribe Hi Clojurers, Please enjoy the issue. Rock on!Eric Normand <firstname.lastname@example.org> PS Want to get this in your email? Subscribe! The Big Elixir Giveaway My friends are running an Elixir conference called The Big Elixir here in New Orleans in November. They offered me two free […]
Issue 289 – August 27, 2018 · Archives · Subscribe Hi Clojurers, I’ve got a new addition to the family, so this editorial is going to be short. Done! Please enjoy the issue. Rock on!Eric Normand <email@example.com> PS Want to get this in your email? Subscribe! Why is making something first-class the key to expressivity? […]