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 298 – October 29, 2018 · Archives · Subscribe Hi Clojurists, I know a number of you are new to this newsletter, and even if you’ve been around a while, it never hurts to re-introduce my work. I primarily make video tutorials about Clojure. Some are free, but most are available for purchase on […]
Issue 297 – October 22, 2018 · Archives · Subscribe Hi Clojurists (beginner, intermediate, and/or advanced), I wanted to write a long diatribe about how much Cognitect does to improve the error messages and about the generosity of releasing Clojure as open source. But I’m tired. I’m tired of all the complaining! So I’m just […]
Issue 296 – October 15, 2018 · Archives · Subscribe Hi Clojurers, Why is functional programming becoming more popular? I don’t know if we’ll ever tease out the real cause, but we can speculate. Is it because the number of software developers in general is increasing, so of course the number of people pre-disposed to […]
Issue 295 – October 08, 2018 · Archives · Subscribe Hi Clojurers, Just a reminder that I am available if you want Clojure or functional programming training at your company. Please enjoy the issue. Rock on!Eric Normand <firstname.lastname@example.org> PS Want to get this in your email? Subscribe! Announcement: No Clojure SYNC in 2019 I’m sorry […]
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 […]