POP3 and SMTP via SSH Tunnels
Code: , , ,
No comments

I use Fetchmail to retrieve my email. I have an account that still doesn’t support SSL, but at least I also have an SSH account that on the same network. Here’s the fetchmailrc config to optionally tear down, then build and use an SSH tunnel:

Continue this post

Chicago Code and Coffee
Code: ,
No comments

A quick note for folks who don’t follow me on twitter: I’ve created a homepage for Code and Coffee, the weekly development meetup. Hope to see you soon.

Finished Libraries
Code: ,
1 comment

When I evaluate a software library, I typically look first at how recently it’s had a release. Is it being updated, or has it been abandoned? There’s an assumption, here.

Continue this post

Deleting Spam From sup Maildirs
Code: , , ,
No comments

A quirk of the sup email client is that it doesn’t sync back changes like deletes to mail sources. “Deleted” messages are only flagged and hidden from the user.

Continue this post

The Harmful Consequences of Postel’s Maxim
Code: ,
2 comments

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:

Continue this post

Against Tedium
Code:
No comments

As a web dev, I often feel like a ridiculous percentage of my day is spent converting between FooBar and foo_bar in the Ruby server code, foo-bar in the CSS class, fooBar in the JavaScript, and Foo Bar in the documentation. There’s so damn much repetitive plumbing.

Continue this post

Sizing Up My Queue
Code: , , ,
No comments

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.

Continue this post

Installing You Need a Budget 4 (YNAB) on Arch Linux
Code: , , ,
No comments

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.

Continue this post

What Comes After MVC
Code: ,
14 comments

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.

Continue this post

The Two Kinds of Integers
Code: , , , ,
No comments

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:

Continue this post