Exposing a far too frequent and erroneous geospatial algorithm
I presented what I coined the Legend of The Buffer last GIS Day at my alma mater, Sherbrooke University. You can find my presentation on youtube. I removed all algorithmic complexities with a straight-to-the-point article outlining my main ideas.
The main takeaway:
Just don’t use a buffer. The most efficient way to make an algorithm inefficient is to use the wrong data structure. A buffer is almost never the right tool for the job.
Let’s start unraveling the consequences of some common misconceptions of using a buffer.
A buffer is most…
The use of design patterns is to apply the design of common solutions to similar problems. They are not precise implementations of code but a template for the context of a given problem.
Avoiding repetition is not enough to explain why design patterns exist. The design patterns have the intent of reinforcing clear principles. Our interest is embedding those principles in our architecture.
To quote Uncle Bob, the goal is minimizing the effort to build and maintain our systems. We use design patterns with this goal in mind. …
Exploring the design of a focused geospatial library
I have been developing an introduction to geospatial data structures and algorithms. The main roadblock I was facing was building a minimalist library to assist with the introduction. I wanted the introduction to be hyper-focused on learning the principles of geospatial computation, foregoing any complexities of data formats and map projections. Though important, they are not necessary to learn the principles of data structures or algorithms.
I also failed to find any course built solely for educational purposes. Tutorials cover using specific and awesome tools… for production. I needed a minimalist library…
I recently faced a small but interesting problem during a relatively high-pressure situation. Without going into the details, it was in my best interest to efficiently solve the problem. I came out of the situation realizing that the most effective solution was staring me right in the face. However, I still was not convinced that my proposed solution was very far from the optimal one.
I decided to revisit the problem and compare my proposed solution with the optimal one. …
I might still be tempted to launch up my Python development environment for more data science tasks, but Go has really been creeping on to me for everything else.
Quick summary of what I love about Go: