Clojure Gazette 126

Sign up for weekly Clojure tips, software design, and a Clojure coding challenge.


ClojureBridge, React, Nothing
Clojure Gazette
Issue 126 - May 17, 2015

Hi Clojureteers!

I've been thinking about humans and their relationship to software. We still haven't figured it out. When I was younger, I had the idea that we could code something up and then it would be solved. But that is obviously not happening. Software is never done. Even software that doesn't get new features requires maintenance.

Software is much more like plumbing: it's painless when it's working, but when it stops working, basic life functions become a mess! And even though we're working with high-level languages with highly fault-tolerant algorithms, I still occasionally have to open up a hex editor.

Is this the future? The amount of software is only increasing. Are we looking at a future where we all need to code just to flush the toilet? Or is there some breakthrough in software engineering waiting to happen?

Oh, well. Enjoy the issue!

Rock on!
Eric Normand <eric@lispcast.com>

PS Want to be more attractive? Subscribe!
PPS Want to advertise to smart, talented, attractive Clojure devs?


MailChimp Hat

Sponsor: MailChimp

When I was first thinking about starting the Clojure Gazette, I researched email providers. I wanted something that I could use for free to test out. What if nobody liked my content? I didn't want to pay a monthly fee just to learn that. And I didn't want to deal with all of the difficult problems with email lists: signup forms, unsubscribe links, analytics, and spam filters.

MailChimp does it all. It's free to start using. You get to send up to 12,000 emails per month for free if you have fewer than 2,000 subscribers. And trust me, once you get to 2,000, you'll gladly pay for the service. The signup forms, confirmation emails, everything is set up for you and yet super customizable. Oh, and there's a nice API.

If you follow this link, you and I will both get $30 in credit if and when you do become a paying customer. It helps keep the Clojure Gazette rolling!


Implementing a Strong Code-Review Culture Youtube

I've been doing a lot of research about code reviews recently for work. This one really struck home with me. What I took away was that code reviews are not directly about improving code quality but about facilitating better technical discussions.


Reid Draper on property-based testing and test.check

Reid Draper, who created test.check, the property-based testing library for Clojure, explains a bit about what it is and when it's helpful. I'm this close to deciding to do a test.check course as a complimentary course to my LispCast Intro to clojure.test. If you want to see that, let me know!


Unifying client and server side form validation with Clojure(Script)

One of the claimed advantages of using the same language on the client and server is the ability to run the same code on on both sides. This means you don't have to duplicate code that has to be done in both places. This article explores some of the practical considerations of validating form input on both the client and server using the same code.


Predator-Prey Modeling in Clojure

Mathematical modeling of predator/prey populations using Clojure and ClojureScript. There's an interactive model at the end.


Rum: Yet another React wrapper for ClojureScript GitHub

A second wave of React wrappers seems to be happening. (I mentioned Brutha last week.) This one uses mixins to achieve more control over components. Apparently you can build Om-like (and Quiescent-like and Reagent-like) semantics using the pieces it gives you very easily.


Awesome React GitHub

A huge collection of React resources.


London Clojure Bridge

A positive review of the recent London ClojureBridge. Reading this made me happy.


Nothing is Something Youtube

Sandi Metz shares some of her OOP engineering prowess. It's a great talk. One thing that's interesting is that the kind of OOP she's advocating looks a lot like functional programming to me. Perhaps that's just a bias, or perhaps it's normal for different paradigms to approach the same ideal. Another thing that I really appreciated was that she describes the Null Object pattern in terms of a mathematical idea: an explicit zero.

For a long time there was no zero. Why have a symbol that represented nothing? Can nothing have mathematical properties? Once you can create an object to represent the nothing, then it can be manipulated as a thing with its own properties. This is somewhat counterintuitive and I can feel it working its way through my thoughts. Thanks, Sandi Metz!


RailsConf 2015 Closing Keynote Youtube

Kent Beck gives a very personal talk about how he deals with his insecurities at work. It's humbling, refreshing, and helpful to hear someone held in such high esteem share something so personal.