PurelyFunctional.tv Newsletter 219: Clojure/West

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

Issue 219 - April 3, 2017

Hi Clojurers,

Thanks to all the people I met in Portland last week; Clojure/West was great, as usual. Please drop me a line any time. So many people are working on cool stuff in Clojure. And it's good to see that the community is growing and more businesses are using it. Lots of people are hiring!

I'd also like to thank everyone who filled out the re-frame survey I sent out a couple of weeks ago. The answers were just what I needed. They indicated a need for help on a broad range of topics. I will not be making a re-frame course. Instead, I'm making a suite of courses, because it's too much to teach well in one course. The courses will go from the nitty-gritty of building reusable components to structuring an application to interacting with the backend. I've already started work on it. You'll hear about it soon enough.

People at Clojure/West convinced me that I should really do a conference in New Orleans. I really like the hallway track (that means not attending talks, just talking to people). So I want to do a conference that is all hallway track. If you're intrigued or would otherwise like to see that happen, please fill out this survey. Your answers will help make it the best it can be for you.

I saw about 1.5 talks live at Clojure/West. This isssue is mostly talks I saw on YouTube on the way home. These are the ones I saw and liked. I didn't watch them all yet.

Please enjoy the Clojure/West-themed issue.

Rock on!
Eric Normand <eric@purelyfunctional.tv>

PS Want to get this in your email? Subscribe!

Navigating ClojureScript's Fireswamps YouTube

Peter Schuck starts off this talk with some very helpful hints for ClojureScript programmers. I didn't know the vast majority of them, but many I wish I had. He then goes deep into the topic of externs and third-party modules.

Solving Problems Declaratively YouTube

Mark Engelberg uses a simple puzzle example to describe three different types of solvers and urges us to think about whether the problem we are solving isn't better expressed in terms of constraints. I know a problem or two I've spent weeks on that would have been simple to do with a SAT or numerical constraint solver. Now I know.

A brief history of software engineering

It is no secret that I like histories, and this one is nice. It's the first chapter of a book Andrew Ko has written for a university course on Cooperative Software Design. Each chapter includes a nice bibliography which I will have to dive into. The text of the chapters themselves is quite short and approachable.

Fourteen Months with Clojure

Dan McKinley shares his experience with their Clojure code in a tech-focused startup. I really appreciate the down-to-earth descriptions of their codebase ("procedural code that manipulates maps").

Virtual Reality Opportunity Space YouTube

Monika Bielskyte is an artist and futurist. She does amazing work, and you've probably seen a lot of it in movies. In this talk, she encourages us to treat virtual spaces as a medium for cultural discussion.

Hiring Juniors: (not= "Past Experience" "Future Success") YouTube

Marla Brizel talks about how to hire junior developers. It's something we need to get better at as a community. The number of new programmers doubles every five years. The number of "senior developers" is dwarfed by the throng of "juniors". If you're looking to hire, you will need to hire juniors and create seniors.

Testing Stateful and Concurrent Systems Using test.check YouTube

This is my own talk at Clojure/West. I believe that generative testing is a wonderful way to help hone your functional thinking and get it to the next level. If you'd like to move beyond functional programming as data transformation, you should try to test your existing system with test.check.

It's Just Data YouTube

A speaker after my own heart, Bob Calco ties in philosophy with data, by way of Datomic.

Symbolic Assembly: Using Clojure to Meta-program Bytecode YouTube

Some talks are so practical they go full circle. But practicality, of course, is relative. To Ramsey Nasser, generating CLR bytecode is extremely practical. And being a language geek, this talk was total candy for me, feeding my dreams of writing my own compilers.