Be liberal in what you accept, and conservative in what you send.
Postel’s Maxim, RFC 1122
There’s a short draft called The Harmful Consequences of Postel’s Maxim that reads:
Economics Doesn’t Believe in Magic
Games: economics, magic, politics, world design, writing
On a writing forum an author asked for users to think of what societies would do with the magic system he designed. Here’s a short rewrite of his setup:
I have a folder named “queue” that I download podcasts, videos, and books to. It occurred to me that it hasn’t been empty for years. That’s OK, the world is a very interesting place, and I care that I produce things, not just consume them.
But I wondered how big the queue is. Not in terms of disk space, that doesn’t tell me much because the different encoding rates and formats result in very different file sizes. (The disk space command is
df -h, if you need it.) In terms of time.
I really liked Adrian Holovaty’s suggestion that Chicago stop trying to be the Bay Area and focus on bootstrapping. Chicago will always be an also-ran as long as it’s running someone else’s race.
This is one of my favorite decision-making heuristics: Will knowledge change a decision you make?
Installing You Need a Budget 4 (YNAB) on Arch Linux
Code: Arch Linux, Wine, yak shave, YNAB
We only want to advertise YNAB for platforms that we can enthusiastically proclaim, “This will work great for you! We promise! If it doesn’t, we’ll work until it does.” The fact is, we can’t do that for Linux anymore.
YNAB & Linux, 2011
Life events have me experimenting with You Need a Budget, software for planning and tracking budgets. I like that it has an opinionated plan that balances prudent buffers and real-world complexity. Unfortunately YNAB 4 was built on Adobe AIR, which no longer runs on Linux.
Rails apps start out quickly and beautifully, but after a year features are a struggle, tests are slow, developers are grinding, and stakeholders are unhappy. “Skinny controllers and fat models” hasn’t worked, and “use service objects!” is awfully vague.
This talk explains how to compact the “big ball of mud” at the heart of your app into a bedrock of reliable code. It gives the steps to incrementally refactor models into a functional core and gives explicit rules for how to write light, reliable tests.
A small thing I see tripping up developers is that there are two kinds of integers: numbers and identifiers.
We don’t know what the integer 4 means unless we know what it’s for. Are we counting things, or identifying them? It’s really easy to slip between the two, like this real code snippet I found: