From Spreadsheets to Rails

spreadsheet to rails

Excel spreadsheets are ok for quick analysis, but when the rows are too many and the formulas are too complex, recalc time slows to a crawl. Plus, sharing a spreadsheet is cumbersome due to security and version control headaches. One solution: Moving away from the spreadsheet, and building a web app instead.

Continue reading →

Getting Started With Clojure Koans


Clojure is a dialect of the Lisp programming language that runs on the on the Java virtual machine (JVM).

One advantage of running on the JVM: Clojure apps can leverage the vast library of Java apps that already exist. If a company has invested heavily in Java, they can bring Clojure into the mix without having to re-write their tried and tested Java code.

This post shows how to start experimenting with Clojure on Mac OS X.

Continue reading →

Parallelism at SCNA 2016

Concurrency vs Parallelism

SCNA has long been one of my favorite conferences. Reason: Rich conversations with other attendees. People who attend SCNA come from a wide range of developer communities and they represent most of the languages in use today. Each community grows stronger when we borrow good ideas from each other.

Continue reading →

Obsessive Learning

I do the learning thing pretty obsessively.
~Mandla Magagula

Mandla Magagula and I spoke via Skype yesterday morning. Mandla is a software developer based in Johannesburg, South Africa. When he’s not at work, Mandla and his team teach software craftsmanship to local youth. Mandla and I met at Ruby Fuza 2015 in Cape Town. His passion for teaching and learning radiates for anyone he meets, as you can see in this 20-minute video:


Continue reading →

The Business of Parallelism

Concurrency vs Parallelism

The Business of Software Conference is a gathering for people who run software companies. This year marks the tenth year for the conference.

Thank you BoS organizers for inviting me to present The Business of Parallelism.

Slides appear below. Video will be posted when it becomes available.

Continue reading →