Creating Map Animations with LeafletJS

Welcome! Over the past few months, I’ve built myself a neat little prototype that lets me create video clips of map animations using LeafletJS. I’ve used this to create several Youtube videos over on my Exploring Winnipeg Parks Youtube Channel, when I’m explaining details about the location of parks or neighbourhoods. The entire process uses several technologies: Python scripts using the Overpass API and OpenRouteService API to fetch geometries that I want to draw on the map. Both of these API’s make use of OpenStreetMap, the map database maintained by a global community of volunteers. The Shapely Python library to manipulate geometric shapes, and the PyProj Python library to handle geospatial co-ordinates. The LeafletJS JavaScript library to display interactive maps in a web browser window. A custom JavaScript prototype driven by a requestAnimationFrame loop, and a custom JSON file that describes the map animation steps to perform. OBS Studio to record the browser window into a video file. Any video editing software of your choice. I use an old version of Corel VideoStudio, but if you’re looking for a free open-source video editor, you can try out Kdenlive. LeafletJS and the Web Browser LeafletJS is typically used by websites that want to embed a map, displaying the location of their business or other points of interest. I used it extensively on the Exploring Winnipeg Parks website to display the location of parks, with map markers for points of interest and nearby bus stops. ...

November 30, 2025 · 6 min

Static Website Generation using Jinja2 Templates

Welcome! About a month ago, I started my journey converting all of the web pages on the Exploring Winnipeg Parks website from being coded manually, to being generated automatically via Python scripts. I started with the web pages that follow a common template, such as individual pages for parks. Today, even the home page and about page are generated via scripts. The templating library I chose is Jinja2. The current version as of this writing is 3.1, which requires Python 3.7 or later. ...

August 5, 2025 · 6 min

An Introduction to Python

Welcome! It was only about a month ago that I introduced myself to Python, but I feel like I’ve come quite a ways in becoming familiar with the language. In this post, I’ll be covering the basics of getting started with Python, from installation to writing your first Python script. I’m coming from a long background in Java, JavaScript, and C++, with much of my career spent as a web developer. I primarily develop on a Windows machine, but Python has good cross-platform support. This article should appeal to readers who have prior experience programming and using the command-line, but are new to Python. ...

July 23, 2025 · 8 min

My Experience Using ChatGPT for Technical Discovery

Welcome! Over the past month or so, I’ve been making fairly extensive use of the free version of ChatGPT as a personal assistant. It’s generally been a very positive experience, with just a few pitfalls. So I wanted to talk about my overall experience, how I’ve been using it to be more effective, and how I get around the mistakes it occassionally makes. (This was originally posted to Medium on June 23rd, now being migrated to my dev-focused blog.) ...

July 20, 2025 · 6 min

Exploring Winnipeg Parks - Dev Blog for a Photography and Community Website

Welcome! For the past few years, I’ve been building up a website featuring my photos of parks, community centres, and other landmarks throughout my home town of Winnipeg. I started this personal project about a year-and-a-half into the Covid lockdown period, in large part as a way to get myself outdoors and staying active. Since then, I’ve visited enough parks throughout the city to post well over 100 photo galleries, with many more in the queue! ...

July 18, 2025 · 2 min