Topic: Software Development

Here are my writings on how to build better software, how to test, and some specific tips for Python.

Python Patterns: Map and Filter
For loops are great, but I am a big fan of replacing them with simple functions. Python provides a couple of building blocks.
My Terribly Clever(ly Terrible) Code
When I was young and naive I tried to write very clever code. Here is one of the worst examples.
Using Travis Build Stages to Test Multiple Python Versions and Publish to Pypi
Often when building packages, we want to test against multiple versions of the language, and then build the package once. I will show you how to accomplish this using Travis Stages.
Python Patterns: @total_ordering
Your classes can make use of the rich Python comparison operators just like the built-in classes. Here I'll show you how to do it while minimizing boilerplate.
Python Patterns: Enum
Things often come in sets of specific items, like states, Pokémon, or playing cards. Python has an elegant way of representing them using enum.
Python Patterns: Named Tuples
Sometimes I need to store an ordered dataset, but reference specific members from it. Named tuples in Python provide a clean way to do this!
Python Patterns: max Instead of if
I often have to loop over a set of objects to find the one with the greatest score. You can use an if statement and a placeholder, but there are more elegant ways!
Software Testing for Data Science
Much of data science involves writing code; for data cleaning, parsing, and modeling. Software tests can ensure that your code does what you think it does!
Eldar: A Bright, High-contrast Color Scheme for Vim
Check out Eldar, my custom Vim color scheme based on elflord. It is a bright, high-contrast theme that looks great in the terminal or GUI!
Jupyter Notebooks: Not for Development
Jupyter Notebooks are great for a lot of things; development of code is not one of them.