PurelyFunctional.tv Newsletter 204: Artificial, Mutants, Causal Laws
Sign up for weekly Clojure tips, software design, and a Clojure coding challenge.
Issue 204 - December 19, 2016
I've gotten a lot of good comments about my new course JVM Fundamentals for Clojure. It's not done, but it's in Early Access so you can get what's already finished right away and get updates as they come out. Buy it now before prices go up.
Speaking of prices, I'm going to be raising prices in January for memberships to PurelyFunctional.tv. I set those prices over a year ago when there was much less content. I've made many hours of video since then and more than tripled the amount of content. The course list is so long that I need to find a better way to organize it.
If you've already got a membership (thank you!), then your prices won't change. If you've wanted to learn Clojure but have hesitated, you have a little bit more time to lock in the current prices before I raise them in January to reflect the amount of Clojure material available.
I'm also preparing for my workshop at Clojure Remote. We'll be working through the process I developed for my Clojure/conj talk Building Composable Abstractions with your own domains. Buy your tickets today before the price increases in January.
Please enjoy the issue.
PS Want to get this in your email? Subscribe!
Every year, Cognitect surveys the Clojure community to collect statistics about who is using Clojure and how. They then analyze and publish the results. Please take a few minutes to fill out this survey. It's important to take the pulse of the Clojure world regularly and build up trendlines.
Jon Pither talks about his experience with Clojure—how he got started and what he has learned along the way.
To celebrate the new year, I'm giving away three Clojure books to one lucky person. Those books are Clojure for the Brave and True by Daniel Higginbotham, Living Clojure by Carin Meier, and Clojure Applied by Ben Vandgrift and Alex Miller. Follow the link above and enter your email address for a chance to win. Then share the link you get for even more chances to win!
Jan Stępień gave a talk about mutation testing in Clojure. I've been looking for something like this for a while. Mutation testing makes systematic changes to your code to check if your tests cover important cases.
A JVM Does That? YouTube
The JVM is a complicated beast, and I'm trying to tame it somewhat in my JVM Fundamentals for Clojure course. The course is still in Early Access, so you can get what's already done at a very good discount, while I'm developing the material. I watched this old (2011!!) talk by Cliff Click about some of the optimizations the JVM will do.
Yoav Rubin wrote a basic version of a Datomic-like database for the 500 Lines or Less book. He's giving a talk at Clojure Remote 2017 about the ideas in Datomic. I interviewed Yoav Rubin about his talk. You can get tickets now. Prices will go up in January after the full schedule is announced.
John McCarthy developed a calculus called fluents to make a predicate logic that describes a changing world with causal laws. This paper was suggested by Alan Kay as an alternative to monads for expressing effects.
Herb Simon (Nobel Laureate and Turing Laureate) wrote this book in 1969 (and updated it ~20 years later). I have a very hard time describing what it's about. The author's mind was definitely very organized. It is very good, touching on diverse topics in the natural world, the social world, and the artificial world. There is quite a bit of wisdom about problem solving and artificial intelligence. I recommend the book as an important work in our field. It blew my mind to realize that so many of the important problems in computing were so well-understood in the 1960s and how little progress we've made on them. He definitely thought deeply about how computers connect to our identities as humans.
Someone at Clojure/conj recommended this book. It's an easy read about
what Computer Science teaches us about how we make decisions and
interact with the world. I had never really though much about why doing
dishes more frequently takes less time total. Since sorting is at best
O(n log n), reducing your
n (number of dishes) has a big effect.
This was a good compliment to The Sciences of the Artificial. They're
both about similar topics, but Algorithms is looking back (while
Sciences looks forward) and is written for laymen.