Clojure Annoyances

December 3, 2016

Audience:Clojure beginners

“You have to be quite heavily invested in someone to do them the honour of telling them you’re annoyed with them.” ― Alain de Botton

Every language has warts. This is not the first wart piece written on Clojure, but it’s my unique take on it. There are some workarounds, but these will bite newbies. Despite these minor annoyances, I still find Clojure to be the best environment to work in for many years to come.

Continue reading →

Why Learn a Lisp?

September 10, 2016

Programming in Lisp is a different kind of programming. Some things seem similar to your daily imperative treadmill, but mostly it’s different. There’s a different lexicon of terms, REPL-driven (or rather, -dominated) programming, there’s immutability, a really different type of (par)editing, a higher level of conciseness, a naturalness to using HoFs, a leaning on a small set of primitives, recursion as the norm, and so on.

It’s worth gaining some proficiency with a Lisp, if anything, to change the way you think about programming. In this post I explore the Lisp landscape, and try to convince you to get in on the Racket, for edification, fun, and even profit.

Lisp Engines

Lisp is embedded in a lot of places.

Despite Lua being often recognized as being The Embeddable Language, surprisingly many tools are programmable in Lisp. Some examples include: Gimp, Guix, Emacs, AutoCAD, LilyPond, GnuCash, Festival

There are several Lisps designed especially for embedding, such as Chibi-scheme, PicoLisp, TinyScheme, and Hedgehog.

BTW, I don’t discredit Vim for not having an embedded Lisp. I see most of Vim (even VimL) as a very special DSL. Even with Lisp, you just can’t get as concise as Vim commands.

Continue reading →

CentOS vs the Rest

July 17, 2016

I’ve been hooked on CentOS for servers for a couple years now. We used to use Ubuntu, but I see several advantages to choosing CentOS over Ubuntu and others. Here’s why:

UPDATE 2017:

Smooth updates. Since starting all our servers out on CentOS 7.0, they’ve all been cleanly upgraded to 7.3 without any fuss or ceremony. Looked like any other daily update.

Continue reading →

Who Uses Emacs?

April 26, 2016

It has been a difficult decision to consider moving to Emacs. Besides discovering that it had some superpowers that Vim lacked, I had a niggling feeling that most of my programming heroes were already using Emacs. So I did some digging around to see who were the luminaries.

The digging turned up that the following all use Emacs. (Sorry for not recording many references.)

Language Creators

  • Rich Hickey (Clojure creator)

  • Joe Armstrong (Erlang creator)

  • Xavier Leroy (OCaml creator)

  • Matz (Ruby creator)

  • Guido van Rossum (GvR, Python creator)

  • Donald Knuth (TeX, Algo books)

  • Michael Widenius (MySQL creator)

  • Guy Steele (creator of many languages)

  • James Gosling (Java creator)

  • Peter Norvig

Continue reading →

The Outage Log

February 10, 2016


“A captain of a ship, no matter his rank, must follow the book.” —Captain James T. Kirk

I’ve been keeping an "Outages Log" for the last few years to track downtime and causes of failures (sometimes they’re only theories). This has turned out to be an invaluable record, so I’ll share the idea here and encourage you to keep one, too.

Continue reading →