Y Combinator News
Biz: , ,
Comments Off on Y Combinator News

A few weeks ago my RailsConf talk on writing better web apps when they outgrow MVC was posted to Y Combinator News. It hung out on the front page all day, spending some time at the #2 slot. Over 35,000 people visited the page and 3,700 watched the talk video, which thrills me.

But I’m not posting to brag about traffic, I’m posting to explain the quirk in the previous paragraph.

Continue this post

Acceptable Errors
Biz: , , , ,
Comments Off on Acceptable Errors

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.

Continue this post

Will knowledge change a decision you make?
Life: ,
Comments Off on Will knowledge change a decision you make?

This is one of my favorite decision-making heuristics: Will knowledge change a decision you make?

Continue this post

Installing You Need a Budget 4 (YNAB) on Arch Linux
Code: , , ,
Comments Off on Installing You Need a Budget 4 (YNAB) on Arch Linux

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: ,
Comments Off on What Comes After MVC

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: , , , ,
Comments Off on The Two Kinds of Integers

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

Create localhost Aliases for Different Projects
Code: , , , ,
Comments Off on Create localhost Aliases for Different Projects

As a consultant I’m getting set up to develop on a new Rails project every few weeks or months. And I’ll jump back to an earlier project to answer questions, fix bugs, fix typos, etc. Eventually, something overlaps between them. I got bit by this again, so I wanted to write it up.

Continue this post

Case Sensitivity in In-Page Anchors
Code: , , ,
Comments Off on Case Sensitivity in In-Page Anchors

As I’ve been working on Chibrary, I ran into a small cross-browser compatability issue: only some browsers treat anchors as case-sensitive. The call numbers that uniquely identify messages would be perfect for linking to in the middle of a long discussion, but some of them only differ by case.

So I wondered: is that acceptable in linking to an anchor inside the page? A quick experiment with Firefox worked fine, but I wanted to be thorough.

Continue this post

Hiring Apprentices
Comments Off on Hiring Apprentices

Lately I’ve been talking with students at programming bootcamps about their overwhelming fear that they’re not learning quickly and thoroughly enough to find employment afterwards. I think it’s generally produced more by the intensive crunch-time atmosphere of the schools and growing recognition of how big and complex programming is than by an actual deficiency in skills.

Continue this post

Dual-Booting Arch Linux on Lenovo X1 Carbon 3rd gen
Code: , , , , , , , ,
Comments Off on Dual-Booting Arch Linux on Lenovo X1 Carbon 3rd gen

I decided to replace my mid-2011 Macbook Air 3,2 with a non-Apple machine, but every laptop I looked at was unsuitable. Most were overpriced, with a big and clunky design. The Lenovo X1 Carbon was promising, but the 2nd generation had a keyboard that was just too weird (and the function keys changing modes means you can’t touch-type them anymore). Standard qwerty is bad, but it’s the devil I know.

Continue this post