Newest posts from

Please subscribe to be notified of new posts. Anytime I make a meaningful update to pages on this site, including any of my projects, I'll post an update.

Please see for all posts.

Programming note

I'm primarily posting over on — that's where all the posts listed above are from. is hosted on the excellent platform (read more about here and here). I'm doing this because I like the social aspects of, and it's much easier to post to than this Hugo-powered site.

I have not yet migrated my old posts over to Until I do, they are listed below.

Note: The icon below indicates a "linklog" post. Click on the icon to directly open the referenced web page.

July 22, 2018

Moving My Blog

I’m trying something out: I’m replacing this blog with a new one:

This is is hosted on, which is a relatively new “microblog” hosting platform.

July 19, 2018

Slack Tips

How I get the most out of Slack

January 13, 2018

My Convoluted Workflow for Journal Articles

January 10, 2018

My Favorite Indie Apple Watch Apps of 2017

If you’re wondering what to do with that new Apple Watch you got for Christmas or Hanukkah a few weeks ago, here are some great apps made by independent software developers that you should check out.

November 27, 2017

An Epidemiological Take on "Laptops Are Great. but Not During a Lecture or a Meeting." and Other Thoughts  

September 22, 2017

Using markstat for Literate Programming in Stata

This is a pretty great way to intersperse Markdown and Stata code, and produce good-looking HTML or PDF output.

July 23, 2017

How to Make an Anti-Spam Voicemail Number With Twilio Functions

Tired of getting spam calls? Use a throwaway phone number from Twilio, with the ability to receive voicemails for real callers.

June 7, 2017

Welcome to V2 of My Website

I've made lots of under-the-hood changes and rewrote all the visual styling.

August 19, 2016

Really, It Doesn't Matter What Todo System You Use  

Phil Nunnally, on Twelvety:

No matter what system or app you use, there is just no substitute for the unsexy work of:

  1. Regularly reviewing your commitments and what steps will need to happen to get them done
  2. Being realistic about what you can achieve in a day or week
  3. Actually doing the things on the lists

September 15, 2015

Notes From “You Suck at Excel” With Joel Spolsky

Tips and best practices from an Excel expert's YouTube video. I learned a ton from this.

September 10, 2015

Paperpile + Google Docs: Better Than "Traditional" Citation Managers

I've switched to using a Google Docs plugin called Paperpile for inserting citations and building a references list when I write academic papers.

August 13, 2015

Scientific Python Tips  

I’ve been keeping a list of how to do basic data analysis tasks in Python as I learn SciPy.

August 12, 2015

Why It's Worth Using a Real Text Editor for Data Analysis

Many people use their stats package's built-in editor, but I think it's worth it to use Sublime Text.

July 17, 2015

FastMail Adds Push Support for IOS (And How It Works)

Spoiler on how it works: It's some secret sauce that talks with Apple's push server.

July 8, 2015

Thoughts on Safari Content Blocking and the hosts File

iOS 9 and OS X El Capitan add content blocking to Safari, which will provide a safe way to block ads. You can achieve a similar effect system-wide on your Mac by editing the hosts file.

June 4, 2015

Presenting From PDFs

Why I present from PDFs rather than using Keynote/PowerPoint, and a recommendation for Side Mirror for Mac.

May 11, 2015

Resources for Learning to Program

I've collected a bunch of links to resources for learning to program, including a number geared towards children.

May 3, 2015

Guidelines for Sharing Data in Spreadsheets  

A great list of best practices for sharing data in spreadsheets.

April 6, 2015

Reproducible Research Links

A collection of some interesting links related to reproducible research and open science.

February 3, 2015

💖 OS X and Keyboard Shortcuts 💖

One of the many reasons I love OS X.

January 22, 2015

American Belief in the Effectiveness of Vaccines  

Spoiler: it's way too low.

January 22, 2015

Walking at Lunch  

Science says: take a walk at lunchtime.

January 19, 2015

The Cognitive Costs of Multitasking  

December 24, 2014

Data Visualization: Alcohol Consumption by Country

The Economist produced a great graphic showing alcohol consumption by country.

December 23, 2014

Beginner's Webhosting Guide Updated  

I've updated my webhosting guide for beginners, which was getting a little long in the tooth.

September 25, 2014

To CC or Not to CC  

A possible solution to the conundrum of CCing too few or too many people on emails.

July 15, 2014

Organizing a Data Analysis Project

Best practices and a template for organizing a data analysis project.

July 10, 2014

Ending Statistics Software Monoculture

Graduate programs should teach SAS/Stata/SPSS side-by-side with an open-source statistics software like R or IPython.

June 28, 2014

A Scientist's Take on Facebook's Psychology Experiment

June 26, 2014


My backup strategy.

June 25, 2014

Rob Norris on the Gmail API  

Rob Norris, a devops guy at FastMail, on the new Gmail API:

My response was “oh, its about time”.

To understand its purpose, and why its not (yet) a replacement for IMAP, you have to understand how it fits with the rest of the integration points Gmail offers to developers.

He goes on to explain about Gmail’s contextual gadgets, why the Gmail API is not a replacement for IMAP, and how FastMail solved the difficult problem of creating a fast web interface for IMAP. Read his whole post, it’s good.

I think the last thing the email ecosystem needs is another proprietary API for interfacing with a popular email system. There are good reasons why someone might want to switch away from Gmail, like the design direction, privacy concerns, or the lack of customer service.1 But if I come to depend on tools built around a proprietary API, it will be difficult for me to switch to a different email provider.

  1. Yes, you can sign up for Google Apps to get support, but then you lose your address (and have to get a domain name), and have all the overhead of having a Google Apps account. This is way too complicated for the average user who only wants to be able to talk to a human when their account is hacked. [return]

June 11, 2014

"I Hate Stacked Area Charts"  

Dr. Drang on why stacked area charts are potentially misleading

May 26, 2014

Duke Lacrosse Wins the 2014 NCAA Championship!

It was a lot of fun photographing this game!

May 14, 2014

Apple Support Profile Memory Lane

I just discovered the Apple Support Profile website, which somehow still lists my original iPod from back in 2003 and my first laptop. I’m glad someone still remembers.

April 1, 2014

Interpreting Regression Coefficients

A straight-forward, systematic way to interpret coefficients in linear regression equations.

February 10, 2014

Fraud, Ads, and Facebook's Business Model  

Problems on Facebook's ad platform related to purchasing "likes" is a symptom of a fundamental flaw in monetizing social media content.

December 18, 2013

The Downsides of Bitcoin  

An interesting take on the downsides of Bitcoin.

December 5, 2013

Download a Copy of Your Gmail Messages  

Google introduces a feature to download all messages in Gmail in the mbox format.

November 30, 2013

"Why I've All but Given Up on Windows"  

A Windows power user (Adrian Kingsley-Hughes) explains why he's switched to Mac/iOS/Android.

October 21, 2013

FastMail Introduces Mobile Web Interface That's "Faster Than Native"  

October 13, 2013

T-Mobile Rocks  

October 6, 2013

FastMail Comments on (Not) Needing to Comply With National Security Letters  

September 27, 2013

Using SIP to Replace My Landline Phone With Plivo  

July 19, 2013

Switching From Gmail to FastMail

Here's how I moved 50,000+ messages from Gmail to FastMail, set up a keyboard-friendly inbox zero workflow, and didn't go crazy doing it.

May 18, 2013

An Open Replacement for Skype Voice

How I replaced Skype voice calling with a system based on the SIP open standard. I include detailed instructions for setting up a SIP endpoint with Plivo.

March 27, 2013

Bulletproof Your Blog: A Guide for Surviving Traffic Spikes

Make your blog survive traffic spikes already!

March 8, 2013

Comcast Crapware

Comcast (xfinity) tries to force you to install crapware when you set up your internet.

January 17, 2013

What Blackboard Discussions Could Be

The recently-released Branch is an example of what Blackboard discussions could (and should) be.

January 2, 2013

Are Developer Job Boards a Waste of Money?

Are ads on develpoer job boards a waste of money? These are the stats from my own experience with the 37Signals and Authentic job boards.

December 27, 2012

Keeping Your Email Secure From Hackers

Tips for securing your email account from hackers and recovering your account if it is hacked.

October 30, 2012

Wolfram Alpha and Probability Distributions

You can use Wolfram Alpha to visualize probability distributions and serve as a digital critical values table.

October 24, 2012

The Future of Farming?

Is aquaponics the future of farming?

September 21, 2012

Solution to IOS 6 Map Woes

Apple should start a bounty program to fix problems with iOS 6 maps.

September 2, 2012

Bling for Your Terminal: Zsh With My Fancy Fino Theme

How to set up the zsh shell with oh-my-zsh and my custom theme.

August 17, 2012

Now Twitter Is Just a Social Network

Like many others, I'm dismayed by Twitter's new API rules. Marco Arment wrote a good explanation of how these rules impact 3rd party services that rely on the Twitter API. But more generally, these changes mark Twitter's transition from a social platform into just a social network.

August 10, 2012

Combine: Get Paid Faster With Stripe + Heroku

A quick, open source app for accepting credit card payments for invoices online. You can easily run it on Heroku for free (or your own Rails-capable server).

August 9, 2012

Quote: Essential vs. Urgent

From Henri Nouwen: "If I were to let my life be taken over by what is urgent, I might very well never get around to what is essential."

August 8, 2012

Woodward &Amp; Bernstein on Watergate, 40 Years Later

A quote from the recent Woodward & Bernstein article on Watergate.

July 22, 2012

Opinionated Email Signatures

A service like that explains how best to contact you is sorely needed, but seems too cold to use with strangers.

July 6, 2012

Managing Default IPhone Apps With Emoji

July 5, 2012

BreakTime for Mac: Automatic Reminders to Take Regular Breaks

BreakTime for Mac is an application that periodically reminds you to take breaks from the computer.

July 3, 2012

Running Prose Locally

How to run the software locally for editing Jekyll sites.

June 17, 2012

Photo: Blue Angles

Photo of the Blue Angles performing over Fort McHenry in Baltimore, MD.

April 29, 2012

Beginner's Guide: The Three Parts of Web Hosting

A beginner's guide to web hosting with recommendations for registrars, DNS providers, web hosts, and security.

February 12, 2012

Stop the Paranoia: It Doesn't Matter if Google Reads Our Email

It doesn't matter if Google reads your email.

January 21, 2012

Blogging With Jekyll + S3 + CloudFront

How to set up a blog using the static site generator Jekyll, hosting on Amazon S3, and using the Amazon CloudFront CDN.

January 8, 2012

Top Software Dev Job Boards

List of job boards where software development jobs are posted.

December 29, 2011

Ultimate Webdev/Power User Tools for Mac (2011 Edition)

December 28, 2011

Bulletproof Your Blog: A Guide for Surviving Traffic Spikes [Old Version]

The old version of my popular "bulletproof your blog" post.

November 22, 2011

New Kindle First Impressions

First impressions with the Amazon Kindle 4, comparison of the Kindle versus the Kindle Touch.

November 15, 2011

Mapping U.S. Obesity Rates at the County Level

County-by-county choropleth map (or thematic map) of obesity and median household income for the United States.

November 9, 2011

Usability & UX: Forgotten in Obesity Web Intervention?

Obesity, chronic disease, and other public health studies/interventions could be more effective if they did more rigorous usability, user experience, and design testing.

September 15, 2011

Trello Icon