This is Steve Miner's blog about Clojure programming. Clojure is modern LISP for the Java VM.

Clojure links:

Welcome to Conjobble. Here are my most recent blog posts:
  • Clojure/West videos

    April 21, 2015

    Due to schedule conflicts, I wasn't able to attend the Clojure/West conference this year, but I'm very happy to see that the videos are already available, just a few hours after the live presentations.

    Clojure/West 2015

  • Transducer Chain

    April 4, 2015

    Transducers are a new feature included in recent Clojure 1.7 alpha releases. I've been playing with them a bit. My code is on github: Transmuters.

    As the documentation says, "Transducers are composable algorithmic transformations." They are functions of a particular form that end up being useful in a variety of contexts. The implementer needs to fullfill certain requirements in order to play nicely with the system. The payoffs are conceptual simplicity and good performance. The user doesn't need to understand all the magic of the implementation. He can simply compose the built-in transducer functions to get the desired result with minimal conceptual overhead.

  • Hello World

    March 3, 2015

    Conjobble is a blog about Clojure programming.

    conjobble -- to chat together; 'to concert, to settle, to discuss: a low cant word' - Samuel Johnson

    conj -- a Clojure function to conjoin an item to a collection.

  • Generating Generators

    November 20, 2014

    Presented at Clojure/Conj 2104

    Property-based testing provides good test coverage and automatic shrinking of failure cases. However, coding universal properties with the test.check generator combinators is somewhat of an art. In many cases, it's easier to start from a declarative description of the test data. The Herbert library automatically generates test.check generators from EDN schemas. Learn how schemas can offer simplified testing, easier maintenance and better documentation for your Clojure code.




  • Roman Numerals

    May 23, 2014

    Here's a bit of old code for writing Roman Numerals:


  • The Way to EDN

    November 15, 2013

    Lightning Talk at Clojure/Conj 2013

    This lightning talk introduced the Herbert project, which implements a schema language for Clojure data. The whiteboard-compatible notation (represented as EDN values) is useful for documentation and testing.




  • The Data-Reader's Guide to the Galaxy

    March 18, 2013

    Presented at Clojure/West 2013

    Don't panic if you're unsure about picking up data-readers. It turns out that tagged literals are mostly harmless. Much as Douglas Adams produced "The Hitchhicker's Guide" material in multiple forms, a Clojure programmer can assign data-readers to process tagged literals with customized implementations. Clojure 1.5 adds a new feature that makes dealing with unknown tags simple and convenient. We'll also talk about the Extensible Data Notation (EDN), which aims to be the Babel fish of data transfer. Finally, we will explore a few unorthodox uses for data-readers.




  • Challenges for Logic Programming

    November 17, 2012

    Presented at Clojure/Conj 2012

    The core.logic library (a port of miniKANREN) has sparked an interest in logic programming among Clojure users. Back in the '80s, logic programming inspired the Japanese Fifth Generation Computer Systems Project, which was poised to leap past the rest of the world, but it didn't work out that way. In this talk, we'll review "What Went Wrong" (from Hewitt's infamous paper). We'll discuss some of the challenges that logic programming faces today and how Clojure might help.



    Pearl Fryar