RSSAmplifier

Blog

engine of joy

Recent content on engine of joy

mikelevins.github.ioRSS feed ↗26 posts

Latest posts

Reimagining Apple's bauhaus OS

Once upon a time, Apple developed an operating system in Lisp for handheld devices. Actually, it developed two of them. I worked on the second one; Matthew Maclaurin named it bauhaus. How Apple came to develop Lisp OSes for a secret handheld-computer project is an interesting story, but I won’t get into it here. For now, I’m more interested in imagining what it would be like to do it…

Machines that love us

If we want human civilization to be around in ten thousand years, our best shot is probably to invent machines that love us. That’s based on the assumption that we’ll eventually figure out how to create strong AI, which is in turn based on the assumptions that flexible general intelligence of the kind that human beings have is independent of the substrate in which it evolved, and that…

Why repl.it disappoints me

I’ve written before about my high regard for read-eval-print loops, and about an approach to programming that is built around interacting with them. You might therefore assume that I would be enthusiastic about replit, a web-based platform for interactive programming in dozens of programming languages. I want to be enthusiastic about it. replit’s heart certainly seems to be in the…

Thinkbox

Liam Proven presented a talk at FOSDEM 2021 called “Starting Over” that reminded me of an old and cherished idea of mine from the early 1990s. I called it “ThinkBox”. I tried pitching it to other people repeatedly through the 90s. I’m pretty weak in the area of self confidence, which makes me a poor salesman, and ThinkBox in its full form is a complex idea. The…

Against vanity

Once upon a time someone close to me asked me something like, “What’s wrong with vanity?” My answer went something like this: Let’s start with Webster’s definition of “vanity”: vanity, n. inflated pride in oneself or one’s appearance: CONCEIT something that is vain, empty, or valueless Vanity is a story that we tell ourselves, not because it’s…

On the taxonomy of types

Some time between 1992 and 1994 I wrote an article for MacTech Journal about protocol-oriented programming. The general idea was to explain how you can get most of the advantages of object-oriented programming, without some of the disadvantages, and without relying on the language or runtime support offered by object-oriented languages. I adopted an approach that emphasized protocols, rather than…

Art is not optional

Art is one of the oldest things that humans do. A handful of carvings have been found in a few different places that are somewhere between half a million and three quarters of a million years old, probably older than Homo sapiens. Art is older than writing or architecture or agriculture. It’s older than most kinds of tools. It might be older than fire; history.com claims that the oldest…

On repl-driven programming

Once upon a time, someone with the handle “entha_saava” posted this question on Hacker News: Can someone knowledgeable explain how are lisp REPLs different from Python / Ruby REPLs? What is the differentiating point of REPL driven development? The answer is that there is a particular kind of programming in which you build a program by interacting with it as it runs, and there are…

What do you mean, you're an anarchist?

Once in a while it comes up in conversation that I consider myself an anarchist. Most of the time when people learn that, they have one of three reactions: I’m kidding (or exaggerating, or engaging in some kind of hyperbole for effect) I’m serious, and crazy I’m serious, and they want to know what the heck I mean and how I can hold that position Well, I’m not kidding, and…

On sailing

Living is sailing. When you sail, you are borne here and there by vast forces that are outside your control. You’re carried by the sea, propelled by the wind, and guided by the sun and stars. None of these elements of nature pay the slightest attention to your wishes. The wind and sea may at any moment turn against you. They may swamp you or dash you against an unfamiliar shore.

On young-earth creationism

Once, around ten years ago, someone in an online discussion said that they were raised as a young-earth creationist, but had become curious about the scientific account of the natural world and how it worked. They wanted to know what the problems with young-earth creationism were, from a scientific perspective. I offered them the best answer I could manage. Here it is: The first thing you have to…

Programming as teaching

Most programming uses an approach that we might call programming as carpentry. We start with some idea of an artifact we want to build. We analyze the idea into a set of needed parts. We set to work on our workbench to craft the needed parts and assemble them into a finished product, then we examine and measure the result to determine how close we came to our goal. Next we repeat the process to…

Lev Chrysotile, MD

Ixion 11 “Lev” Chrysotile is the ship’s physician aboard Kestrel. He’s the narrator of the first several Kestrel stories. Lev is a mech—that is, an autonomous, self-aware robot. (Such persons are not referred to as “robots” in the setting; the word is considered a slur.) He is a Leslie Model 11 specialized for medical field maintenance on biological and mech…

Against despair

Despair is a pernicious kind of vanity, and it’s seductive when things get hard. Despair tells you a story like this: “I have tried everything and it hasn’t worked. I may as well give up.” This story is a lie. When despair tells you “it hasn’t worked,” it means that we have falsely assumed that the world owes us a particular outcome for our labors. It…

Mai Greenhill

Ordinary Spacer Mai Greenhill, a member of the crew in the Kestrel Chronicles stories. Captain Esgar Rayleigh recruited Mai from the Greenhill clan of Canines who live in the Greater Asgard Wildlife Preserve system on Callisto. Several companies in the Greater Asgard region recruit crew from Canine clans, but Mai is the first one recruited by Rayleigh Company.

Amor Fati

Amor fati is a Latin phrase that means “love of fate.” It’s a concept of virtue that we inherit from the ancient Stoics, though we can probably thank Friedrich Nietzsche for the Latin phrase and for its presence in modern discussion1. The idea isn’t original with Nietzsche. It appears in the writings of Marcus Aurelius2—though not in so many words—and in Epictetus3before…

Book Three Incoming

Here’s a sneak peek at the cover for the book I’m working on now: As the subtitle says, it’s the third book about the torch ship Kestrel and her crew. This time the story is less about old damaged ships on the edge of the solar system, and more about crime and punishment in the big (orbital) city. It took me seven years to write my first unpublished book about this far-future…

Captain Rayleigh

Esgar Rayleigh is Kestrel’s captain. You know this has to be a formal portrait because you don’t see a cup of coffee in his hand.

Chief Engineer Burrell

This is Evelyn Burrell, the chief engineer aboard Kestrel: I always do a lot of sketching and cartooning when I’m working. I don’t always share the drawings, but I don’t see why I shouldn’t.

General public busybody theory

I was idly thinking about the GIFT, which comes up often for me because I not only surf the net, I also play networked games, where the theory plays out so often and so emphatically. I was also thinking about the things that people think are weird and foolish in other people, because I happen to be traveling this week, and those things vary somewhat from one place to another.

A peek at Categories

I’ve begun preparations to package Categories for release. The first thing I’m doing is going over the surface syntax. In previous iterations I’ve built Categories from the bottom up, which confirmed that the concepts and mechanisms worked, but left a few warts in the surface syntax. This time, I figured I’d start at the surface syntax and work the other way, in hopes that…

Gambit considered helpful

I’ve just packed up Delectus(tm) 1.0 Alpha 2 and shipped it off to my testers. Delectus is an application for keeping track of collections of things. The inspiration for it was an ancient and hoary program my mother used to keep track of her movies. She has around a thousand movies, the majority of them still on videocassettes. Each cassette has a catalog number on it, and she uses a…

Categories

There are a few things I’ve written that I see cited or quoted repeatedly. The oldest is a quip about omnipotent beings that I wrote eighteen years ago in a USENET discussion: “Perhaps this morning there were only three Euclidean solids, but god changed its mind retroactively at lunchtime, remaking the whole history of the universe. That’s the way it is with omnipotent…

Heresy

I’m coming to the close of a contract, and I’m spending part time doing what is natural in that situation: looking for new contracts, and preparing some of my personal projects for release as products. The first product scheduled for delivery is a Cocoa application for Mac OS X. Written in Scheme. This, of course, is heresy. Cocoa applications are supposed to be written in Objective-C. (Well, to…

Obamus Caesar

In 27 B.C., Augustus Caesar became the first emperor of Rome, marking the final end of the Roman Republic. While officially praising and respecting Rome’s republican laws and traditions, he laid the groundwork for five centuries of autocracy that have become synonymous with despotism and corruption. It has been common since the founding of the American republic to compare and contrast it…

More joy

Programmers inevitably spend a certain amount of our time fighting with our tools. There’s always something wrong with them, always some case that they handle badly, always some work we have to do, not because of the job we’re doing, but because of limitations of the stupid tool. Programming can be a joy, even programming for a living. I’m lucky in that it’s been a joy for…