Take the opportunity sometime to ask a programmer “What’s your favorite bug ever?” You’re likely to get some great stories. They might be tales of misfortune in which some villain got their comeuppance. They could be hard to solve puzzles that led to a personal sense of victory. But, quite frequently, they’re humorous anecdotes of absolutely bizarre behavior encountered in the course of being a developer.

Slack — we love it, we hate it. Slack has had some highly visible outages lately, but one of my favorite UI bugs ever was this gem from a few years ago.

Round and…


Angular Material provides copious examples for their components. In my opinion, this is one of the strongest endorsements for the library. The DataTable component has among the most examples, but is a bit lacking on adding drag-and-drop, particularly when it comes to making it a beautiful experience.

This post will walk through a setting up a simple data table using material components, the anatomy of the drag-and-drop module, and how to style it beautifully.

Prefer to learn from code? Here’s the GitHub repo.

The Angular Framework logo on a blue background.
Angular Logo (https://angular.io/presskit)

There are many wonderful tutorials for getting started with the Angular Material data table (examples, walkthrough, drag-and-drop…


Adding interactivity to data visualizations can contribute to better understanding of data. One of my favorite interactions is to use hover events to highlight data in another plots. Plotly.js provides events that make this kind of interaction possible, and their Angular library makes it easy to add to your next single page app.

Our goal:

Hover over graph 1 to highlight graph 2

Feel free to jump straight to the GitHub Repo if you’d prefer.

You can skip to the next section if you’re already comfortable with Plotly in Angular. …


When playing chess, I find my games falling into similar positions. This is by design. Focusing exclusively on a couple of different openings helps improve your games, precisely because you’re seeing the same positions over and over. But I’ve been curious, more generally, what constitutes common and uncommon positions for chess pieces. I set out to analyze a year of tournament chess games with Python and chess.py in order to find out.

Link to this project’s Git repo.

A chess board. White pieces are viewed in the background through blurry black pieces in the foreground.
Photo by Artur Shamsutdinov on Unsplash

A game of chess is a sequence of board positions defined by player moves. If I were to take a chess game…


I have a couple of projects in mind for analysis of chess game positions. They all require collecting a large number of chess games into structured data. This Week in Chess provides records of thousands of games each week. Each week consists of a file in Portable Game Notation (PGN), a plain text format for recording chess games.

I want to analyze hundreds of thousands of games, so step one is to gather the plain text files and parse them using the grammar of of PGN files.

If you just want the code to parse PGN, you can jump over…

Andrew Matteson

Mathematician, software engineer, computational biologist. I like playing with data.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store