Mistakes Beginners Make When Working with Databases
When you start out as a developer there’s an overwhelming amount of things to grasp. First there’s the language itself, then all the quirks of the specific framework you’re using,and after that (or maybe before) we’ll throw front-end development into the mix, and somewhere along the line you have to decide to store…
England and Wales House Price Analysis
The last time I looked at house prices it went pretty well, and I ended up winning a data science competition. There I was only dealing with a million or so records, and a relatively small 120 MB dataset. Then I found out it was possible to download 3.7GB of property sale records for all of England and Wales since…
A Tale of Twenty-Two Million Citi Bikes: Analyzing the NYC Bike Share System
Analysis and visualization of the New York City bike share system
Extracting city blocks from OpenStreetMap data
Extracting blocks within a city as GeoJSON polygons from OpenStreetMap data
Things I Hate About PostgreSQL (2013)
PostgreSQL Talk
SciPy 2016: “Data Science is Software” tutorial
Last week, Peter and I gave a tutorial at SciPy 2016. In keeping with our recent thinking about reproducibility and organization , the idea was to look at how some of the hard-won lessons and best practices from modern software engineering can be applied to data science work.
Data Structures in JavaScript
Freelance web developer, lover of JS and all new stuff #reactjs, #redux, #docker #machinelearning... Co-founder and CTO @AppBubbleBD, involved in @AllOverSequins, @recursecenter alumni
Analyzing Last.fm Listening History
Last.fm is a web site that tracks your music listening history across devices (computer, phone, iPod, etc) and services (Spotify, iTunes, Google Play, etc). I’ve been using Last.fm for nearly 10 years now, and my tracked listening history goes back even further when you consider all my pre-existing iTunes play counts…
A Simple Content-Based Recommendation Engine in Python
Let's pretend we need to build a recommendation engine for an eCommerce web site. There are basically two approaches you can take: content-based and collaborative-filtering. We'll look at some...
The SQL filter clause: selective aggregates
The FILTER clause extends aggregate functions (SUM, AVG, COUNT, etc.) with an additional WHERE clause. Databases not supporting FILTER can use CASE within the aggregate function instead.
Analyzing the Patterns of Numbers in 10M Passwords (2015)
There are many patterns for numbers in passwords, which involve surprising yet intuitive logic.
A visual exploration of the spatial patterns in endings of German town names
A visual exploration of the spatial patterns in the endings of German town and village names.
XKCD Plots in Matplotlib: Going the Whole Way
One of the most consistently popular posts on this blog has been my XKCDify post, where I followed in the footsteps of others to write a little hack for xkcd-style plotting in matplotlib. In it, I mentioned the Sketch Path Filter pull request that would eventually supersede my ugly little hack.
Finding Similar Music Using Matrix Factorization
In a previous post I wrote about how to build a ‘People Who Like This Also Like …’ feature for displaying lists of similar musicians. My goal was to show how simple Information Retrieval techniques can do a good job calculating lists of related artists. For instance, using BM25 distance on The Beatles shows the most…
Working with the Clinton State Dept Email Dumps in R, Part 1
This isn’t a post about politics. I do have opinions about the now infamous e-mail server (which will no doubt come out here), but when the WSJ folks made it possible to search the Clinton email releases I though it would be fun to get the data into R to show how well the igraph and ggnetwork packages could work…
Voynich Manuscript: word vectors and t-SNE visualization of some patterns
Update 17/01: reddit discussion thread. Update 19/01: hacker news thread. The codex The Voynich Manuscript is a hand-written codex written in an unknown system and carbon-dated to the early 15th century (1404–1438). Although the manuscript has been studied by some famous cryptographers of the World War I and II…
Jepsen: Crate 0.54.9 version divergence
In the last Jepsen analysis, we saw that RethinkDB 2.2.3 could encounter spectacular failure modes due to cluster reconfiguration during a partition. In this analysis, we’ll talk about Crate, and find out just how many versions a row’s version identifies.
Elasticsearch Based Image Search Using RGB Signatures
In my previous post , I described some experiments I was doing to reduce images to a Bag of Visual Words (BOVW) . My goal is to build a Con...
A Guide to Bayesian Statistics
A guide for getting started with Bayesian Statistics! Start your way with Bayes' Theorem and end up building your own Bayesian Hypothesis test!
Realtime Data Processing at Facebook
Recently there has been a lot of development in realtime data processing systems, including Twitter's Storm and Heron, Google's Millwheel, a...
Uber's Move Away from PostgreSQL
Last week, a blog post by an Uber engineer explained why Uber chose to move from PostgreSQL to MySQL . This article was widely reported and...
MitM-ing Postgres
I recently had to set up a new postgres instance at work. While we’re already using Heroku Postgres for production loads, we had some requirements for this one that couldn’t be solved without being database admin, and thus had to go self-hosted. That...
Taxi, Uber, and Lyft Usage in New York City
Open NYC data reveals the taxi industry’s contraction, Uber’s growth, and the scramble for market share