Welcome!

My face

Hi - I'm Clinton, and I'm a technology educator and software developer in Durham, NC. I've worked with the Consumer Financial Protection Bureau, The Iron Yard, and RTI International, among others. My big passions are my kids and making the world of programming a more welcoming and diverse place.

Find out what I'm up to right now.

Building dashboards with Django and D3

I gave this talk at DjangoCon 2016. The slides I used are embedded below. Check out the open-source code behind this and the live preview. My workplace recently collaborated with several police departments to build a dashboard showing 911 (also known as Call for Service) data, allowing users to drill down into that data. When I started on the project, there was a prototype written in dc. Read more...

PyCon 2016

I just arrived home from PyCon 2016. It was a fantastic experience, on par with the year before. I didn’t go alone this time: I brought four of my great co-workers and also ran into a lot of old and new friends. It was so hard to decide which talks to go to this year! In each slot, I had two or three I wanted to see. From early reports, I missed a lot of great ones. Read more...

P-values and confidence intervals made easy

I was recently asked to give a lecture explaining p-values and confidence intervals to budding Python programmers. Given that I don’t have a stats background at all, I was pretty intimidated, but I learned a lot from Jake Vanderplas’ “Statistics for Hackers” (slides, video) and Statistics is Easy! by Shasha and Wilson. I highly recommend Jake’s talk if you’re interested in this stuff. I wanted to show how to apply shuffling and bootstrapping methods to solve a real-world problem and wrote the notebook below. Read more...

Simple Ansible Makefile

I love using Ansible for deploying projects these days, but I don’t like typing the same long command over and over. It’s usually something like this: ansible-playbook -i hosts --vault-password-file=.vault-password.txt site.yml It’s simple to create a Makefile to automate this, but I wanted to go one further. For speed purposes, I like to run particular roles separately sometimes. My new Makefile: tags = $(subst roles/,,$(wildcard roles/*)) .PHONY: all $(tags) all: ansible-playbook -i hosts --vault-password-file=. Read more...

Year in review, 2015

Every year seems bigger than the one before, but 2015 felt stuffed – in a good way. Family My two sons turned 4 and 1 this November. I’d already forgotten what it was like to have an infant and then a baby. It is amazing and tiring and weird. Two kids seems like exponentially more kids than one. My wife and I had our tenth anniversary! It really doesn’t seem that long ago that we got married. Read more...

Building scikit-learn transformers

scikit-learn is a great library for doing machine learning in Python, and one of my favorite things about it is its interface. All objects in scikit-learn, whether data transformers or predictors, have a similar interface, making it easy to use your own transformers or models, but I haven’t seen this documented much. For transformers, you have to define the methods .fit(self, X, y=None) and .transform(self, X). There is a class, TransformerMixin, that doesn’t do much besides add a . Read more...

PyCon 2015

PyCon 2015 was an incredible experience. This was my first PyCon, and I was amazed at the welcoming community and the level of quality. At most conferences, the talks are hit-and-miss: for every great talk you see, there’s one you don’t get a lot out of. At PyCon, I enjoyed every talk I went to, including – especially – the keynotes. I’d heard that PyCon did a good job of supporting and welcoming a diverse audience, and it’s true. Read more...
Previous Page 2 of 6 Next Page