My Little Pony -- DevOps is Magic
(This article is based on the one I originally published on OpenSource.com.)
In 2010, the My Little Pony franchise was rebooted with the animated show My Little Pony: Friendship is Magic. The combination of accessibility to children with the sophisticated themes the show tackled garnered a following that cut …
read moreNumbers in Python
Numbers in Python come in all shapes and forms. The reason different kind of representations of numbers exist is because they all have different trade-offs. These trade-offs are often surprising!
Integers
The most surprising things about integers is how easily they stop being
integers.
Dividing two integers, for example,
4 …
Goodbye, John H. Conway
John H. Conway passed away ten days ago, and I think it's only now I can write a proper eulogy.
I was first introduced to his work, if not his name, when I was at the end of elementary school. I am sure everyone has heard about the Game of …
read moreUsing Twisted to Massively Parallelize Web Clients
The Twisted Requests (treq) package is an HTTP client built on the popular Twisted library that is used for web requests. Async libraries offer the ability to do large amounts of network requests in parallel with relatively little CPU impact. This can be useful in HTTP clients that need to …
read moreComfort with Small Mistakes
It has been a long time since I learned how to program, and it is easy to forget some of the hard-won lessons in the beginning. Easy until I try to teach people to program. There is a lot of accidental and inherent complexity in programming, but I am ready …
read moreOr else:
This was originally sent to my newsletter. I send one e-mail, always about Python, every other Sunday. If this blog post interests you, consider subscribing.
The underappreciated else keyword in Python has three distinct uses.
if/else
On an if statement, else will contain code that runs if the condition …
Forks and Threats
What is a threat? From a game-theoretical perspective, a threat is an attempt to get a better result by saying: "if you do not give me this result, I will do something that is bad for both of us". Note that it has to be bad for both sides: if …
read moreMeditations on the Zen of Python
Precise Unit Tests with PyHamcrest
(This is based on my article on opensource.com)
Unit test suites help maintain high-quality products by signaling problems early in the development process. An effective unit test catches bugs before the code has left the developer machine, or at least in a continuous integration environment on a dedicated branch …
read moreRaise Better Exceptions in Python
There is a lot of Python code in the wild which does something like:
raise ValueError("Could not fraz the buzz:" f"{foo} is less than {quux}")
This is, in general, a bad idea. It does not matter if the exception is fairly generic, like ValueError or specific like CustomFormatParsingException …
read more