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

GitIgnore for Clojure and Emacs - Ignore Emacs Backup & Temp Files

Even though I use .gitignore files to control common files that should not be committed to a git repository, its very easy to forget about the backup or temporary files that my development tools generate. As these auto-generated files are development tool specific, they are not always included in a .gitignore file.

Especially when you are under pressure to commit changes or deploy your code its easy to include a few things you dont need, especially when using the commands git add . or git commit -am "".

So when I discovered the idea of using a .gitignore_global file, I quicky adopted this and saved myself a lot of time with this simple approach.

Read More

LightTable 0.2.3 - Even More Light for Clojure

So as soon as I decided to write about LightTable, the developers go and improve a whole bunch of things. With the 0.2.3 release that happened earlier today the configuration of LightTable now works correctly.

This change is going to make it so much easier to use LightTable for demo’s and coding dojo’s. The has been an update to the default solarized light theme that looks very pretty to me.

Read More

Clojure Development With LightTable 0.2.x

LightTable is a kickstarter project to create new kind of developer tool for Clojure development, inspired by the Inventing on Principle talk by Bret Victor.

LightTable aims to give developers instant feedback about their code, showing how any change affects their applications. Giving you a developer “surface” to work on, which will bring information to the places you need it the most. The principles of the LightTable design include:

  • Documentation there when you need it, no need to search
  • Edit anywhere and anything - not just text and not just as files
  • Discover by doing, changes produces instantaneous results
  • Shine a light on related pieces of code

Read More

Managing Multiple SSH Keys to Avoid Heroku Permission Issues

I was a little surprised to have an access issue with Heroku when using my new Mac Book Pro, as its always been really easy to deploy my applications to Heroku in the past.  I kicked myself when I realised I’d only set up a public key specifically for my Github account.

This got me to wondering the best way to set up keys given I am using different services for both personal project and work.

Read More