Call for Speakers: London Clojurian Conference 2016

December 2016 we celebrate the sixth birthday of ClojureX, a two-day conference organised by the London Clojurians and SkillsMatter. Submit your talk ideas by 30th August to take part in the fun.

ClojureX CFP deadline - 30th August

Previous conferences have included a diverse range of topics and speakers in the areas of Clojure, Clojurescript and Functional Programming. At last years conference we were quite surprised how many people are already using Clojure at work. In 2014 we ran a poll of our audience and 18% were using Clojure on a daily basis. For the same poll in 2015, 78% were using Clojure for their daily work. What will the 2016 poll reveal?

The London Clojure community continues to grow and we want to hear all your stories and learn from your experiences, no matter how long you have been working with Clojure. So please consider submitting a talk (or several talks) to the ClojureX conference in London on the 1st & 2nd December.

If you have never spoken before or want some handy hints on presenting and getting your talk accepted for Clojure eXchange, then join our workshop on Giving your first Meetup or Clojure eXchange talk on 2nd August, 2016 (video coming soon).

Anyone accepted to speak at the Clojure eXchange conference gets a free ticket, or re-imbursed if you have already purchased a ticket. You also get a free ticket for a friend. A 25% discount on ticket purchase for anyone who submits to the CFP but does not get accepted.

Read More

Clojure Dojo: Celebrity Name Smash - June 2016

The June 2016 edition of the London Clojurians coding dojo set the challenge of building a celebrity name smash, taking two “celebrities” and smashing their names together to make a weird or ammusing gestalt name.

For bonus points the challenge would include this celebrity name smash as a service and even more bonus points if using the new clojure.spec library to put specifications around data structures and functions.

Bonus points are non-redeemable, sorry!

Although our group didnt get get any of the bonus levels, here is the blow by blow development of our code for the Celebrity Name Smash.

Read More

Transducers in Clojure: Getting Started

Transducers are built upon the design princlple in Clojure of composing functions together, allowing you to elegantly abstract functional composition and create a workflow that will transform data without being tied to a specific context. So what does that actually mean and what does the code look like? Is there a transducer function or is it just extensions to existing functions. These are the questions we will explore and answer.

If you are in the early stages of learning Clojure, then I suggest getting your head around functions such as map & reduce and composing functions with the threading macros before diving into Transducers.

This is my interpretation of the really great introduction to Transducers from Clojurescript Unraveled, expanded with additional code and my own comments.

Read More

Thinking Functional With Clojure at DevoxxUK 2016

Many languages new and old provide a way to write code using functional programming concepts, however learning those concepts can take a little time especially when they are joined with OO concepts in the same language.

As Clojure has a simple syntax, many find it easier to focus on learning the concepts and design of functional programming. Then either taking those concepts back to other languages or continuing with Clojure.

At DevoxxUK 2016 I have the pleasure of running a workshop where I can help developers understand the core functional concepts, using Clojure (and Spacemacs) as simple tools.

Read More

Clacks Interpreter - Going Postal at London Clojure Dojo

At the March 2016 London Clojurians code dojo at uSwitch our group created a Clacks Interpreter in honor of Terry Pratchett, the author of the amazing Discworld series of books (and a few TV shows of those books too).

In the 33rd Discworld novel called Going Postal, messages are sent faster than a speeding horse via the Clacks system. This composes of a series of towers that cross a continent and pass messages on via combinations of lights. Each tower sees a grid of lights from a distant tower and sends the message on to the next tower.

The Clacks system was actually introduced in the 24th Discworld novel called “The Fith Elephant”, however its the “Going Postal” book where we learn the full history of the Clacks system.

We created a Clacks Interpreter that converts any English message into its corresponding clacks signal, based on the Clacks alphabet as defined by the board game of the same name. The board game defines the alphabet as a 2 by 3 grid (although in the Discworld its actually 8 large squares). Naturally, the interpreter also converts the Clacks signal back into an English message too.

Clacks: The board game - Clacks Alphabet

The code is available on Github at: https://github.com/liamjtaylor/clacks-messenger and read on for a walk through of how we came up with the solution.

Read More

Clojure Templates Are Easy With Leiningen

Using templates to create your Clojure projects can save you a lot of setup time and ensure your team is using the same base configuration and dependencies. There are templates on Clojars.org, however I’ll show you how easy it is to create your own with Leiningen.

I’ll create a simple template based on the leiningen default template, adding a section in the project.clj to give a custom propmt when run in the repl.

Templates used to be a Leinigen pluging called lein-newnew and its repo was the only doucmentation I found and was a little outdated. The plugin is now part of Leiningen and there are a few built in templates. There is also information via lein help new.

If you want to create a template in a more automatic way from a more complete project you created, take a look at the lein-create-template Leinignen plugin.

Read More

Faster Clojure REPL Startup With Java 9 Snapshot

After upgrading to Java 8, Clojure development seemed faster due to quicker REPL startup times. So when I saw a snapshot of Java 9 had been released I was hopeful that startup performance would be even faster.

As Clojure runs on the Java Virtual machine (JVM), each time you start a REPL then you wait for a new JVM to start. Other than this REPL startup, Clojure feels faster than developing with Java directly.

Here is how I set up Java 9 Snapshot on my Linux laptop (Ubuntu 14.10), it should be the same for any decent operating system.

Read More

Clojure With Light Table and Emacs Keybindings

When I teach people Clojure I use Light Table because it is really simple to use and its Instarepl gives instant feedback of the code as you type it. This feedback helps you understand Clojure quickly and gives you more confidence when coding.

As I do most of my Clojure development (and most everything else) in Emacs I really miss the excellent Emacs keybindings when I use Light Table. Luckily there is an Emacs plugin for Light Table, so here is a quick guide on how to install & use this Emacs plugin.

Read More

Leiningen - Quick Peek Underneath the Defproject Clojure Macro

Leiningen is a project automation tool (think build tool and them some) that uses a Clojure macro to make it easy for Clojure developers to manage their project lifecycle.

A Clojure project managed by Leiningen uses a simple clojure file called project.clj which allows developers to define a whole range of stuff about their projects. To get started you only have to define a name, a version of Clojure and any dependencies in your project.clj and Leininge does the rest.

So lets take a quick look under the hood of Leiningen and its defproject macro to see what is going on.

Read More