Joe Cecil

A-Frame pattern: Why the app/infrastructure split?

In Testing Without Mocks, James Shore describes an architecture pattern he calls the A-Frame pattern. In this pattern you split a program into three parts: The App, the Infrastructure and the Logic. The Logic is as close to pure functional as you can get. It's the business rules,

Free-standing functions and testing

Free-standing functions can be great. The easiest way of using them also makes the client code less convenient to test. For example, say you're writing a React web app for photo sharing and you need to make requests to your application's backend. You could have some

"Doing things incorrectly is bad": A feeling

I sometimes have this feeling when I'm considering doing something I'm not good at. It says: "Doing things incorrectly is bad." This feeling of course happens independent of whether doing the thing "wrong" actually matters in any sense. It happens frequently even

Speedrunning proofs

Sometimes with math the proof you read in the textbook is not the first proof someone thought of. It may not be the clearest. It may be the shortest. This is not a new thought, but I can't remotely remember where I read/heard it. The interesting bit

Putting it off

Putting something off is self-reinforcing. You think you're just going to put the thing off once. But doing that, it gets a little more tempting to put it off for next time. Because you've given yourself evidence that it sucks to do the thing. You'

Joe Cecil © 2026