-
My bank workshop experience - 2022 February 17
Just as the Covid pandemic was starting I ran a workshop that was easily the worst one I've run in my career. Despite things going poorly there was a huge learning opportunity that I'm glad I had. The banking industry has changed dramatically and I wasn't prepared for it.
read more -
Getting CORS to work with Flask - 2021 September 14
Getting CORS to work can be a pain, here's an annoying issue I ran into with flask.
read more -
Another reason why piping the outputs of curl into bash is a security risk - 2021 September 05
Piping the output of curl into bash is a bad idea for a lot of reasons, please don't do it and don't suggest that other people do it either.
read more -
Type annotations in Python 3.7 - 2021 August 31
Forward type annotations are significantly easier in Python 3.7+ since PEP 563 landed in the language, here's how you can use them.
read more -
Numpy and mypy type checking - 2021 August 11
Getting numpy to work with mypy requires installing the right package and making a few configuration changes.
read more -
SQLAlchemy and mypy type checking - 2021 August 10
Getting SQLAlchemy to work with mypy requires installing the right package and making a few configuration changes.
read more -
Beware of Python assertions in production code - 2021 July 18
Python assertions have a few important downsides that need to be discussed.
read more -
Sentinel objects and mypy type checking - 2021 July 16
There's a few annoying edge cases with using sentinel objects with mypy. Since I think both sentinel objects are useful and mypy is useful I want to be able to use both.
read more -
Javascript support in this blog - 2021 July 05
I've finally got around to supporting javascript in this blog.
read more -
WordPress enumerations - 2021 June 09
While looking through my server logs the other day I saw a bunch of suspicious requests looking to scan/exploit WordPress installs.
read more