First off, my apologies for joining the noise and contributing to it. But then, I felt it important to write down my thoughts at this point in time and if I don’t share them, I won’t write them down. So here goes, some thinking about “AI”, or more precisely, the generative deep neural networks that have been making the news. I am gonna call it “AI” even though it makes me cringe. I recently…
At work, we’re experimenting with Claude Code, and I must say, it’s quite impressive. Especially in Elixir, it navigates our code repository surefootedly. Last week I gave it a one-liner ticket description that was full of jargon and it picked out the five or six affected spots in the code and proposed what seemed to be the correct locations. The changes were simple enough that I made them myself;…
Today I am launching my book The Genius of Lisp and this is some background on why I set about writing Yet Another Computer History Book . One of the nice things about working at PagerDuty was that we worked with a couple of universities’ co-op programs. In case you’re not aware, these programs let students take time off from class and join a company to pick up some work experience, also earning…
If there is one thing that confuses newcomers to Common Lisp, it is the interplay of built-in CL functionality, add-ons like Quicklisp and ASDF , and what all the words mean. Common Lisp is old, and its inspiration is even older. It was developed when there was zero consensus on how file systems worked, operating systems were more incompatible than you can probably imagine, and that age shows. It…
With Elixir and Phoenix and LiveView humming away at work, and a book in the works on the Lisp programming language (more on that later), I decided to do as much of my spare time hacking in Lisp, to the point where my operating system is defined in Lisp, my window manager is written in Lisp, my editor (of course is written in Lisp) and I’m about to switch my browser to a Lisp-based one once I have…
The last couple of months I’ve been deeply immersed in the combination of Elixir with Phoenix LiveView for the Web UI, Commanded as a CQRS/ES implementation, and PostgreSQL for persistence - I think I heard someone call it the CELP stack, so let’s call it the CELP stack. I think this stack is a great way to tackle software complexity. [Note: the timestamps in this post are off, but given that they…
Our industry is largely driven by fads: someone comes up with a great idea, and people then lift that idea out of context, run with it, and declare it “the true and only way.” In this post, I want to talk about testing and especially about the dogma that tests should be written first and they always should be there. In other words, about Test Driven Development (TDD) being the true and only way.…
When developing software in teams, there are always seemingly conflicting forces at work. You want to move as quickly as possible, but to do that in the long term, you need to make sure that the full team knows what is going on. A lot of people accept that this tiny slow down in the short term has a huge payoff in the long term, and one of the practices that seems to have become entrenched is the…
I’ve now worked with “The Cloud” for long enough to see that there’s still a long way to go before it becomes materially better than, say, the oldschool method of renting a couple of servers with a co-location company and running your software there. The latest fad is Serverless, which makes me feel a lot like we’ve arrived in 1970. A long, long time ago, I was pretending to study business…
One of the more fun bits of hardware I have acquired in the last couple of years is the NodeMCU development board. This little board contains the Espressif ESP8266 WiFi-enabled microcontroller which packs a punch: a 32bit RISC processor clocked at up to 160MHz, on board WiFi, very power-efficient “deep sleep” modes, and the NodeMCU board adds power management, 4MB flash, and some odds and ends…