Oliver Caldwell's blog
On languages, text editors and tools
Hi, I'm Ollie, a Clojure programmer from London. I've worked with a sprawling collection of technologies over my decade (or so) of programming, ranging from React to Ring. I'm most passionate about developer tooling, text editors and languages.
My free time is mainly occupied by my Neovim Clojure tooling, Conjure. You'll find posts in this blog covering topics such as D3 and React integration as well as building Neovim RPC clients in Rust, it's quite eclectic.
You can find ways to get in touch with me at the bottom of each page.
I hope you find something useful here. Have a great day!
2021
Recent video content
Mar 1, 2021
2020
Conversational software development
Jun 7, 2020
2019
Neovim configuration and plugins in Fennel (Lisp)
Nov 30, 2019
Getting started with Clojure, Neovim and Conjure in minutes
Nov 6, 2019
Clojure prepl for tool authors
Nov 4, 2019
Minimalistic blogging with Clojure and AsciiDoc
Oct 23, 2019
REPLing into projects with prepl and Propel
Sep 14, 2019
Exploring REPL tooling with socket prepl
Jul 16, 2019
Extending Neovim with any language (mostly Clojure)
Jun 28, 2019
Clojure socket prepl cookbook
Mar 22, 2019
2018
Wake word detection with Clojure (or Java)
Oct 12, 2018
Editing Clojure with Neovim
May 4, 2018
Finding new dependencies with Depot
Mar 29, 2018
Clojure and ClojureScript tests on Travis
Mar 29, 2018
Clojure and ClojureScript testing with the Clojure CLI
Mar 9, 2018
Clojure and ClojureScript nREPL with Clojure CLI
Mar 4, 2018
Clojure projects from scratch
Feb 26, 2018
2017
Hello, World!
Oct 27, 2017
Taming clojure.spec with expound
Oct 18, 2017
An introduction to transcriptor
Oct 6, 2017
Updating dependencies without CHANGES.md
Apr 5, 2017
The Collatz conjecture, visualised in Clojure
Apr 4, 2017
I’m on Linode now
Mar 28, 2017
2016
When projects rise from the grave
Nov 15, 2016
Getting Go Going
Oct 10, 2016
An introduction to ClojureScript
Feb 27, 2016
Working with multiple of lists in JavaScript
Feb 9, 2016
Asynchronicity and JavaScript
Jan 24, 2016
2015
Installing Arch Linux on a Dell XPS 13 (9350)
Nov 6, 2015
D3 within React the right way
Sep 9, 2015
My new prompt (oh-my-zsh)
Aug 3, 2015
Wrangling JavaScript with Vim
Jun 17, 2015
Lazy arrays in JavaScript
May 31, 2015
Things I learned about Docker the hard way
May 7, 2015
Some thoughts on Prolog
May 3, 2015
Some thoughts on Io
May 2, 2015
Some thoughts on Ruby
Apr 13, 2015
Making El-Get sync like vim-plug
Mar 3, 2015
Giving Emacs another chance
Mar 2, 2015
A quick reflection on Algorithms
Mar 1, 2015
Vim for people that don’t want to use it
Feb 1, 2015
If I wrote a text editor
Jan 15, 2015
Brainfuck VM in Clojure
Jan 12, 2015
Brainfuck VM in JavaScript
Jan 5, 2015
2014
Revisiting: Searching JavaScript arrays with a binary search
Dec 17, 2014
A JavaScript / Clojure mashup
Dec 15, 2014
My 2015 Bucket Set
Dec 13, 2014
I want to learn stuff and write about it over 2015
Dec 10, 2014
vim-expand, my second {plugin,bundle}!
Dec 10, 2014
My thoughts on React, Flux and Reflux
Dec 6, 2014
Essential Vim bundles for JavaScript and Clojure
Nov 21, 2014
Emacs: There and Back Again
Nov 16, 2014
Spacemacs: Emacs + Vim
Nov 6, 2014
Understanding Emacs errors
Nov 5, 2014
Angular feels like you’re always viewing a tiny piece of the puzzle
Nov 3, 2014
If you’re using sudo with npm you’re doing it wrong
Oct 29, 2014
Making package.el behave like Vundle
Oct 20, 2014
A week (or so) with Emacs
Sep 28, 2014
Emacs: A few hours after exposure
Sep 17, 2014
Why a lover of Vim is going to try Emacs
Sep 16, 2014
Building vim-netrw-signs: Into the VimL
Sep 3, 2014
Building vim-netrw-signs: Tooling
Sep 1, 2014
Building vim-netrw-signs: Introduction
Aug 11, 2014
Hello again, WordPress
Aug 6, 2014
Installing Vimdeck on Arch
Apr 26, 2014
Always remain a beginner
Mar 18, 2014
2013
Test private methods
Dec 13, 2013
Graph from scratch
Dec 5, 2013
Grabbing elements from the DOM
Sep 25, 2013
Do things that scare you
Sep 24, 2013
Classless JavaScript – Continued
Sep 22, 2013
Classless JavaScript
Sep 17, 2013
Handling concurrency and asynchronous JavaScript
Sep 11, 2013
Building for browsers in a terminal
Aug 8, 2013
Composing a framework from specialised libraries
Jul 28, 2013
Exporting through AMD, CommonJS and the global object
Jul 21, 2013
Use verbose naming in JavaScript
Jul 17, 2013
Tuples in JavaScript
Jul 12, 2013
Ranges, summation and predicates
Jul 2, 2013
Equipping Vim for JavaScript
Jun 29, 2013
Maps in JavaScript
Jun 12, 2013
Searching JavaScript arrays with a binary search
Jun 8, 2013
Implementing a message bus in JavaScript
Jun 5, 2013
Prototypical inheritance done right
Jun 1, 2013
2012
Faster JavaScript
Sep 1, 2012
Localizing times with xtz
May 21, 2012
Fun with negative margins
May 18, 2012
Writing a modular frontend
Mar 31, 2012
Portable JavaScript
Mar 24, 2012
Writing great JavaScript
Mar 14, 2012
Thoughts on JavaScript libraries and frameworks
Mar 9, 2012
Pure CSS toggle accordion
Mar 3, 2012
Sliced text effect
Feb 27, 2012
Getting started with LESS
Feb 25, 2012
Color in JavaScript
Feb 22, 2012
Inheritance in CSS
Feb 18, 2012
Multiple borders with CSS
Feb 15, 2012
Centering with the flexible box model
Feb 12, 2012
Introduction
Feb 11, 2012