Archive for the ‘programming’ Category

Joe Wright has an excellent blog post about Anti-If Patterns that I naturally believe everyone who write programs ought to read, but there’s a detail that’s missing that I think is absolutely crucial to getting anti-if programming correct. Types. Yeah, you can yawn and leave now, if you don’t care. But I’m with Guido von […]


PacMan doesn’t need AI

Posted by Elf Sternberg as Design, programming

The other day, I was reading through the course syllabus for a second-year AI class, as one does, when I noticed that the assignment for the sixth week was to turn in a working version of PacMan. Which is kind of weird, because the actual algorithm for PacMan involves more or less zero AI. It […]

My latest contribution to the world is Git Lint, a plug-in for git that allows you to pre-configure your linters and syntax checkers, and then run them all at once on only the things you’ve changed. About half of us still live in the command line, and I like being able to set-and-forget tools that […]


What comes next?

Posted by Elf Sternberg as chat, programming

After publishing The Semantics of Python Import and explicating on the history and internals of how Python turns source code into running operations, I thought I had a pretty clear idea of what to do next. I extended Hy such that it was now possible to write an entire Django application in a Lisp dialect, […]


Analysis Paralysis

Posted by Elf Sternberg as chat, personal, programming

There was an article highlighted in a variety of nerdy news sites called “I’m A Good Engineer But I Suck At Building Stuff,” and while I was reading it, I felt the writer Lionel Barrow’s pain. Because I’m a better engineer, but I still suck at building (some) stuff. When Barrow writes: “I find myself […]


Pattern Matching And Lisp

Posted by Elf Sternberg as programming

No, I don’t mean regular expressions.  I mean that thing that you see in “modern” programming languages where you’ll have two functions of the same name that take different arguments do different things  We use it all the time.  The plus symbol, “+“, often has two separate meanings, and is often processed by two different […]

TL;DR: Lisp In Small Pieces will get you up to speed much faster than Essentials of Programming Languages, but you’ll benefit from owning both. As I’ve blogged before (and have much to discuss), I’ve been working my way through Christian Queinnec’s Lisp In Small Pieces, doing the exercise mostly in Javascript Coffeescript just to prove […]

“If you can’t explain it simply, you don’t understand it well enough.” – Albert Einstein This quote annoys me. I’ve spent the last year trying to understand functional programming and this deep, mathematical concept called the monad. It turns out that monads are simple to explain: if you’re mathematically inclined and know your category theory, […]


The Key To Coding is Re-Coding

Posted by Elf Sternberg as chat, programming

In a recent, great article in the New York Review of Books, “The Key to Rereading,” Tim Parks takes the usual metaphor of reading as “the mind is a key unlocking the meaning of the text” and turns it around: The mind is not devising a key to decipher the text, it is disposing itself […]

Over at Chris Parnin’s website there’s an article that explains why you should never interrupt your programmer, but the real issue is encapsulated in Jason Heeris’s famous cartoon, and if you’re not going to bother clicking over there, the gist is this: it shows a developer looking at a single ‘if’ statement, from which she […]

Subscribe to Feed



May 2019
« Apr