Designing a plugin system for base16-theme-switcher

I’ve been working on a plugin system for my theme switcher project, and I think now it’s the time to introduce it here and describe my rationale behind its design.

Continue reading “Designing a plugin system for base16-theme-switcher”


A new project: base16-theme-switcher

Configurability and availability of multiple desktop environments and window managers are some of the things I like about using Linux-based operating systems. In recent months I gradually migrated from using full-fledged desktop environments like Cinnamon and Xfce to using i3wm in combination with urxvt, dunst and other applications commonly used with light window managers. While experimenting with their configuration, I discovered base16 and its derivative: base16-xresources – projects providing color schemes for syntax highlighting and application theming, each based on 16 colors.

Continue reading “A new project: base16-theme-switcher”

Url-shortener: a demo and more refactoring

A demo instance of my url-shortener project is now available here:

Usually, URL shorteners are deployed under a short domain name (for example:, It’s not the case here, but since it’s just a demo I didn’t think looking for a short domain for it was necessary, so I chose a longer domain that is also related to my blog.

I have also made some changes to the application. Some of them were minor, like adjusting font sizes in the front end, renaming some local variables in the back end, etc., but there are also some bigger changes.

Continue reading “Url-shortener: a demo and more refactoring”

Changes in url-shortener

When I introduced my URL shortener project, I already had a working version and I thought I only needed to improve its front-end to be able to release the first stable version of the application. I also had some ideas for new features to be added to it.

However, the longer I looked at my code, the more room for improvements I saw. Although I ended up adding some new features, most of the changes I made since then were refactorizations, changes in design and architecture of the application and code style improvements.

In this post, I’m going to describe some of them.

Continue reading “Changes in url-shortener”

The first stable release of spam-lists

I released the first stable version of spam-lists. It can be downloaded from github or PyPI.

In comparison to the version described in this post, the stable version contains some changes, mostly spelling error corrections and reformatting of docstrings. I have also changed the license of the project from Apache License 2.0 to MIT.

Introducing my URL shortener

URL addresses can be quite long, mainly because they often consist of path and query components, both containing a number of characters forming names of path segments and values of parameters (not necessarily meaningful to a human reader), or performing other functions. For that reason, they may be hard to type and memorize, or simply aesthetically unpleasing.

Because of that, URL shorteners were created. There are plenty of them already, so there is probably no reason to create yet another such application, perhaps with one exception: it seems like an interesting idea for a small programming project that could be later extended with other features. This is why I decided to create my own URL shortener.
Continue reading “Introducing my URL shortener”

Progress in development of spam-lists

Since the introduction of my spam-lists library on this blog, I made some progress in its development.
I reorganized the library a bit, changed the inheritance hierarchy of exception classes, fixed some errors and published the package on PyPI. In this post, I’m going to describe the changes and explain my reasoning behind them.
Continue reading “Progress in development of spam-lists”