Recent Posts

Speeding up ETLHelper’s API transfers with asyncio

4 minute read

ETLHelper is a Python library developed at BGS for reading from and writing to databases. It makes it easy to run a SQL query and transform the results into JSON objects suitable for uploading to an HTTP API.

Personas in product design

1 minute read

Personas are representations of user groups whom we expect to use our products. They help to convey information about the users to the product team. Some products target just a single user group, but most will have mo...

Moving window operations across arrays

3 minute read

Applying functions using moving windows are a common feature of geospatial data analysis and often exist “under the hood” of GIS software. If you’ve ever calculated a slope or aspect grid from a raster elevation datas...

Fork vs Spawn in Python Multiprocessing

9 minute read

I recently got stuck trying to plot multiple figures in parallel with Matplotlib. It took five hours to find a two-line fix to make it work. Afterwards I spent even more hours learning about multiprocessing in order t...

CentOS 7, Ansible and the end of Python 2

2 minute read

Python 2 vs 3 mismatches have been causing problems in our CentOS 7 server adminstration. We use Ansible for automatic configuration and continuous integration deployments. A few of our long-used jobs recently broke b...