Configuring Emacs Org-Mode to Managing Your Tasks

Emacs Org-mode has a feature called Org-capture that makes it easy to keep track of all the to-do’s that crop up as we work on projects. With Org-capture you can make comments across all your files and projects and link to them all from one place.

Here is how to configure Emacs Org-capture so you can quickly create new tasks relevant to specific files and easily manage them all in one place. If you are not familiar with Emacs Org-mode, take a look at my article: Manage your developer life with Org-mode.

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

Driving Git With Emacs - Pure Magic With Magit - Part One

Getting to grips with Git was not to much of a learning curve, although I found it quicker to work on the command line than using graphical tools. Using git status and git log made it easy to keep a handle on my code changes.

As I do most of my Clojure development in Emacs, it was great to discover I could drive git from Emacs using Magit. What follows is a flow through the first steps with Magit.

In part two I look at Git logs with Magit

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

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