With the Dota2 International 2018 and its $24m prize pool just around the corner, I thought it would be fun to analyze some DotA2 games using Python, and write a quick post on how others can also use Python to analyze professional DotA matches.

Specifically, I’ll take a look at which heroes do the best and the worst as enemies of Team Liquid’s Io (aka Wisp), played by GH.

If you just want to jump to the conclusions, here they are. In the 387 games since Miracle joined in September 2016 to form the current roster:

  • Liquid won 258 out…

There’s already a ton of great TensorFlow tutorials, Jupyter notebooks, and MOOCs out there. As someone who’s worked through quite a few this year, one stumbling block was that many tutorials would use terms I wasn’t familiar with. In addition, many of the tutorials use different levels of the TensorFlow API, or different high-level wrappers, adding to my confusion. I thought I’d write a glossary of terms I’ve encountered frequently to help out.

I am not a part of the TF team, and I’m still a student of TF and ML, so some of the below may be inaccurate, please…

In 2015, I started a position at Google and found myself working alongside a coworker named Eli. Eli was a recent college student and, while a very unique and interesting person, nonetheless had adopted some of the mannerisms distinct to his peer group. One such idiosyncrasy was that he referred to many things as dope, including many things I had not previously thought were capable of being considered dope.

“That video game is dope.”

“That workout routine is dope.”

“That gradient descent optimization algorithm is dope.”

Truth is, all of these phrases seem frighteningly normal to me now. But at…


It’s been over half a year since I last wrote about Django on Kubernetes, along with Postgres and Redis containers, and I wanted to update it to talk about one of the most exciting projects to emerge in the Kubernetes ecosystem in the last year — Minikube.

Minikube makes it really, really easy to run a Kubernetes cluster locally. While there previously were lots of options for running Kubernetes locally, to some degree the community is coalescing around Minikube, and it’s an official part of the Kubernetes Github organization.

All the code for this tutorial can be found on this…

App Engine Flexible Environment

It’s no secret I’m a big fan of Container Engine (Google’s managed Kubernetes) as a way to seamlessly run your containers across a cluster of VMs. However, it’s far from the only way to run containers on Google Cloud. One slightly obvious option is to start Google Compute Engine instances and just run Docker yourself. But one of the easiest ways to run arbitrary containers in a microservice environment is actually the new environment for App Engine, App Engine Flexible Environment.

In this post, I’ll discuss how the Flexible Environment can be used to run a popular library called ffmpeg

This is the second part of my series on deploying a Django app to Kubernetes. Click here to read the first part, where I walked through containerizing a Django app and running it on Kubernetes with just the in-memory cache and SQLite database. This part 2 assumes you have completed the part 1 steps and your Django app is available with an external IP, just without a proper database or cache hooked up.

At the end of this tutorial, you will have the Django app running with a PostgreSQL database, protected by a Kubernetes secret database password, and a Redis…

Django is one of the most popular open-source web frameworks, and perhaps no Django user is more notable than Instagram, who went into deep detail on how they setup their Django stack on their blog post. While they use a variety of technologies, the most prominent parts of the stack are Django, PostgreSQL, and Redis. This series of blog posts will go into detail on how to deploy the entire stack on Kubernetes, although this first post will focus on just the Django part.

This blog post is based on a presentation I gave to the Django San Francisco Meetup…

Bill Prin

Python, Data,Infrastructure, etc.

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