Guide to baking for the intrepid robot
PDFs, code, and other downloads to help you learn
How to install: Download the CSV file (click the thumbnail below). Install Anki. Run Anki. Click Import at the bottom of the window. Import the CSV file. Adjust the options like you see them below.
A printable PDF (double-sided) with the 100 most common Clojure expressions. One side has the function/macro, the other a quick explanation. This is for printing on Avery 5371 paper.
A printable PDF (double-sided) with the 100 most common Clojure expressions. One side has the function/macro, the other a quick explanation. This one has a grid for cutting by hand.
Events, Effects, Co-effects, and Subscriptions! This reference sheet shows you the most common forms of all of these so you can get started with Re-frame right away.
Learn the four important React Lifecycle methods you’ll need when using Re-frame, when to use them, and how. Get started with Re-frame right away.
Pragmatic and in-depth guides to a topic.
So you want to know who’s using Haskell and where to find jobs? You’ve come to the right place.
Josh Doody (Salary Negotiator) and Eric Normand critique a functional programming résumé and give advice for making it better. They also talk about preparing for the interview and the salary talk.
Is functional programming a fad? We cut through the buzz cycle and answer the question once and for all.
A complete massive action plan to get a functional programming job.
Getting to know people who can help you get functional programming jobs.
How do we deal with that little bit of time between when the user clicks and the server confirms the change is saved? Well, like many things in life, there are two ways: optimistically and pessimistically.
Screencasts, Whiteboards, and Slides produced to help you learn
Combinators are an important part of functional programming. They are functions — usually small — that combine their arguments into new functions. They’re great fun and have a lot to teach about functional programming and the lambda calculus. They are an important part of any Clojure programmer’s toolkit.
Learn the fundamentals of core.async, a concurrency library for Clojure and ClojureScript that gives you tremendous power.
You want to learn Clojure but it seems so daunting. Who has the time to read and read and then start yet another half-finished project? Clojure in One Hour is a series of short projects that you can do in one hour. No theory, just hands-on projects to get something done.
Protocols are a very cool and very important feature in Clojure. They are a great way to build polymorphism into your software, including extending existing Java classes without modifying them.
When you are looking at a variable, how do you know what it refers to? The rules that determine what variable names refer to are collectively called the scoping rules. Learning the three kinds of scope and when to use each will help you make your code more maintainable.
Learn the tricky corners of Clojure syntax, like for comprehensions and function definitions.
Parts of courses on specific topics
Let’s add a new ingredient, namely cocoa.
Now that we can bake recipes, let’s add the other recipes, cookies and brownies.
Let’s add an action for adding ingredients.
We modify the compiler to add static scope information. Even though we don’t know the value of variables until runtime, we do know the names of the variables at compile time. We can use that to make missing variables a compiler error.
Agents are another reference type. Each one has a queue of work to be run on it, and those bits of work get run in a thread pool. They’re great because each Agent is a unit of parallelization. Three Agents mean three things can run at the same time.
Let’s take a look at the `day-at-the-bakery` function and see how we can improve it.
The JVM’s garbage collector allows for Clojure’s persistent data structures to be practical. It’s one of the benefits of being a hosted language: you can take advantage of the millions of dollars invested into the JVM’s development.
When you’re working at a company, you usually inherit their deployment system. And that’s great because then you just do what they do. But what if you are on your own? What are the options for deploying a Clojure server?
The JVM JIT is a highly optimized compiler. I present some resources for learning what it does.
We write a clean, readable, functional implementation of Moving Average with Lodash.
The JVM is great but far from perfect. Here are some problems with the JVM that Clojure has to work around.
One of the most common complaints about the JVM is the long startup time. But what is really taking so long? We analyze some commands to find out.
We Interviewed Allison McMillan about her upcoming Curry On 2017 talk called Angelina Ballerina Learns About Memory Allocation.
We interviewed Alvaro Videla about his upcoming clojuTRE 2017 talk called Metaphors We Compute By.
We interviewed Anatoly Polinsky about his upcoming Clojure Remote 2017 talk about configuration.
We interviewed Andrew Mcveigh about his upcoming :clojureD 2017 talk.
We interviewed Annette Bieniusa about her upcoming Lambda Days 2017 talk.
We interviewed António Monteiro about his upcoming ClojuTRE 2017 talk called Lumo: Bootstrapping a Standalone ClojureScript Environment.
Issue 304 – December 10, 2018 · Archives · Subscribe Hi Clojurists, More resources about Agile and how it came from the factory. In my experience, people turn to Agile without really understanding where it came from, what it’s about, and what the alternatives are. I’m exploring those myself, because in my experience Agile makes […]
Issue 303 – December 03, 2018 · Archives · Subscribe Hi Clojurists, I’m still digging into Agile. There are more newsletter issues on that topic to come, along with some essays I’m writing. But I wanted to take a break to talk about the current drama going on in the Clojure community. I don’t have […]
Issue 302 – November 26, 2018 · Archives · Subscribe Hi Clojurists, This week, I’ve been really digging into Agile. I’ve worked in Agile environments at a few different companies and I’m still trying to digest the experience. In short, I’m not a fan. I want to put together some cogent descriptions of why I […]
Issue 301 – November 19, 2018 · Archives · Subscribe Hi Clojurnators, As many of you may know, I am writing a book. I just turned in Chapter 3, which means the early access is coming soon. The book is about functional programming. It’s targeted at programmers who are new to functional programming. It deals […]
Issue 300 – November 12, 2018 · Archives · Subscribe Hi Clojurnators, Well, folks. This is issue 300 of the newsletter! My goodness. Time flies. I thought I might do something big and exciting, but, no, it’s just another issue! Please enjoy the issue! Rock on!Eric Normand <firstname.lastname@example.org> PS Want to get this in your […]
Issue 299 – November 05, 2018 · Archives · Subscribe Hi Clojurists, 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 […]