Digging into my Discord

I run a Discord server for my friends. We’ve essentially given up texting and now use Discord for virtually all communication. This server has been running since about January 2016, and we now have around 75 users and collectively we’ve sent almost 200,000 messages. I scraped all of this data …

Khan Academy Interview Project

Khan Academy Virus Propagation Part of the interview process at Khan Academy is to complete their interview project. This project deals with virus propagation through a directed network. We will be using the terms “graph” and “network” interchangeably, but I’m referring to the same thing for both. From a high …

Integrating SMS with Twilio

Let’s say that you need to integrate SMS capabilities into your project, and let’s also say that you’re using python. You can use Twilio to very easily integrate texts directly into your application. Setting Up Twilio First though, you’ll need a Twilio account. Go to their signup page, and create …

One Dimensional Maps

Creating one-dimensional maps is a very easy and straightforward process that can be used to explore chaotic behavior. Given some function we take an initial value and use the iterative process $$ x_{n+1} = f\left(x_n\right) $$ One popular map to explore is the Logistic Map, defined as $$ x_{n+1} = …

An Introduction to Plotting in Python

After having some Applied Math friends rant to me at how awful plotting was in Python I decided to write up a quick guide to hopefully change their minds. Numpy This assumes a basic familiarity with numpy, although I’ll go over the basics really quickly just in case. The syntax/API …

The Python Typing Module

The typing module added in Python 3.5 (see reference docs here) adds additional types and meta-types to allow for more control over python type hints. In this post we’ll talk about what this module adds and what neat things you can do with it. This is the third post in …

Python Type Hinting

In Python 3.5 and greater an “optional type hinting syntax” was added. This is part of a gradual typing implementation (gradual typing is essentially adding a few types to an untyped codebase, or only partially typing the codebase as you go). This is the second post in a multi-part series …

The Good, the Bad, and the Ugly of Tuple Unpacking

Python has this neat feature of unpacking tuples during item assignment. Here’s a general example:

or if you have a function that returns multiple items:

But what if (for some reason) you have a function that returns some large number of variables (or a smaller number of long-named …