Skip to content


Featured post

Use DigitalOcean as Dynamic DNS

I have a server at my home on which I host various test projects and I needed a dynamic DNS service, so I decided to buy a domain and handle the DNS update myself.

Write More Meaningful Time Constants

One thing that I strive to achieve is to write code that doesn't need comments to convey meaning. The most basic thing when doing this is to avoid using magic numbers. In this article, I'll illustrate how I avoid using them when it comes to time constants.

Automate Building GitHub Pages That Use Jekyll Plugins

I wanted to add a plugin for my Jekyll-generated website, and now I need to have a custom build process, as GitHub doesn't support custom plugins. We'll go through what is needed for that.

Disable Margin Collapse in CSS with No Visual Impact

When working with CSS you sometimes have to work around a behavior known as margin collapsing. Let's go briefly through what it is and an easy cool hack to negate it.

How to Set a Variable in Django Template

As you may have figured by now, Django does not implement such a feature. That is because the logic of setting the variable must go in the view, not in the template. But there are some rare cases when you need this.

Capture the Output of a Django Command

The documentation is very slim when it talks about how to call a Django command from code. To do this, just use call_command. To solve the trick of capturing the output of this I had to dig a little into the Django source.

How Does Shazam Work ?

In this article, I'll try to explain as simply as possible what I've understood about how the famous song identification app works, from the published paper by one of the authors of the app.

Make LineString Resolution Depend on Zoom Level in OpenLayers

In this article will examine a solution to reduce the number of points in a route path, rendered inside OpenLayers, based on the zoom level of the map.