Lifting the fog of bias

fog

Judgement is made through the application of one or more biases.

Problematic judgement, including those indicating racism or sexism, comes when we apply irrelevant biases to the question at hand. Take a moment to skim Wikipedia’s list of cognitive biases, and you’ll wonder if it’s possible to make a well-informed judgement. Biases may be correlated but not causal, nakedly false stereotypes, weigh on our fear of risk, pull on our preference for familiarity; biases that don’t drive good judgements.

Continue reading Lifting the fog of bias

Escape from Apple’s Pages

escape-from-pagesApple’s never been one for long-lived support of their word processing applications, but they stooped to new lows with their word processing application, Pages.

The latest version of Pages, version 5, released in 2013, cannot read documents created from version 3, last released in 2008.

Imagine if all the important papers in your filing cabinet were unreadable after 5 years. It’s dumbfounding.

Continue reading Escape from Apple’s Pages

Add Google cloudprint & wifi access to your older printer with a headless $35 Raspberry Pi

Update 2015/08/01: The broken cloudprint package that these instructions used to reference have been replaced with Google’s new connector.

There are several articles that proclaim how easy it is to set up a Chromium on a $35 Raspberry Pi to let you print to your printer with your Chromebook or mobile devices.

One unfortunate problem; none of those instructions work anymore.

Continue reading Add Google cloudprint & wifi access to your older printer with a headless $35 Raspberry Pi

How to make breaking changes and not break all the things

The Problem

Incremental feature development against existing systems frequently involves rethinking and rebuilding existing components. If it’s possible, the easiest way to add support for your new feature is to introduce a new, optional attribute on a model (or in the case of a relational database, adding a NULLable column to an existing table, or adding a new table). Sometimes, though, that either isn’t possible, or wouldn’t be the best design going forward, given your new knowledge of the feature set of the product at hand. You’re left with the uncomfortable realization that the best design would be something completely different that isn’t backward-compatible with current systems.

When there are multiple systems that consume a given data model (say, a front-end webserver, an API, tons of cron jobs, and many backend daemons, like in the case of Twitter’s Ads systems), you can’t just “stop the world,” ALTER your tables, and deploy all the new code. That’s fine if it’s you and another nerd in a garage, but when you’ve got paying customers, you don’t want to give them an excuse to spend their money elsewhere.

What to do?

Continue reading How to make breaking changes and not break all the things

Inspecting ActiveRecord-generated queries

For the vast majority of rails CRUD applications, you aren’t going to need exotic SQL queries, but when you need to make assertions on the generated query, there are two options at your disposal.

Assume you have the following model:

class Post
  belongs_to :author
  has_many :comments
  scope :publicly_visible, -> { where(public: true) }
end

Continue reading Inspecting ActiveRecord-generated queries

How to deal with Amazon’s “requested Availability Zone is no longer supported” error

In shutting down the AdGrok servers (talk about bittersweet…), I stopped the instances, but then remembered I wanted to shred the files first, so I clicked “start,” and was greeted by the following error:

The requested Availability Zone is no longer supported. Please retry your request by not specifying an Availability Zone or choosing us-west-1b, us-west-1c.

Continue reading How to deal with Amazon’s “requested Availability Zone is no longer supported” error

It really is rocket science!

This last Friday I taught my “it really is rocket science” class to another hundred children (Kindergarten through 5th grade). Last year PTO Today wrote an article about Arts and Science day, and interviewed me. This year, the kids were great, I had tons of help, and the new rocket launcher designs let the kids experiment with different pressures and different launch angles. Good stuff!

The launcher design is almost exactly from Slater Harrison’s awesome overhead water rockets. Thanks!