I’m Michał Masłowski. I’m a software developer interested in software user’s freedom.


[FSF Associate Member]

I use and recommend Debian GNU/Linux, running the latest stable release on most of my computers (with Sid on my laptop and personal desktop).

Bookmarks are an important browser feature for me. They are one of the reasons why I consider only forks of Mozilla Firefox acceptable for use as a main browser. However, I’m not satisfied with their performance, user interface nor synchronization, so I wrote several bookmark managers. Forget was my first working attempt: a Python application accessing an SQLite 3 bookmarks database (with a much simpler schema than Mozilla’s Places). It got too complex, had no good user interface and no synchronization support, so I rewrote the needed features as shell and Python scripts operating on a recfile. It works mostly well with my current database of more than 10 000 bookmarks stored in a Mercurial repository.

As a fan of SQL and relational databases, I often use SQLite in my programs (or PostgreSQL if it’s big or serious enough). Contributing to GNU Recutils I’ve experienced that human-editable text databases can be more useful, like for my bookmarks database (while I initially wanted better performance than in SQLite-based browser code). During a GSOC project, I’ve also learned how to implement a btree index and gained API design experience that probably makes my newer programs easier to debug and test.

My collection of notes and unpublished texts has grown, so I started Lethe, a personal wiki Web application storing data in a DVCS repository, so I could more easily search them and synchronize between my computers. It’s designed for storing simple notes with metadata and merging histories adding unrelated notes. (It was also intended as a yet another browser bookmark manager.) It’s incomplete.

As an IB DP student, I helped my school typeset certificates of attendance for their international programmes. This project evolved into Coala, a Django Web application using a simplification of my vastly too complex LaTeX macros. It’s designed to avoid most retyping and introducing most typos and errors that I couldn’t have predicted without making them myself.

I use GNU Emacs for most of my text editing activities (including email), although I have never found a problem there motivating me to contribute.

Digital typography is one of my rarely practiced interests. I like the idea of Metafont and I have used it for some projects, although I haven’t designed any fonts worthy of publication.

[IPv6 Certification Badge for

This site is hosted on a Linode VPS. The server accepts most of its services via IPv6, I consider it an important technology for the idea of a free Internet with equal collaboration of peers. Thanks to Let’s Encrypt, it uses HTTPS in a mostly automated way that I can recommend to others.


I have a blog with some possibly useful articles (mostly related to software).


You may contact me via or IRC (mtjm on FreeNode).

I support the use of cryptography to protect privacy of individuals (but not to increase control over them by methods like Digital Restrictions Management). Therefore for all emails I use GnuPG with the public key available here.

The ‘ł’ in my name is a Polish letter pronounced as /w/ (like in English ‘word’). In TeX it is written as \l, in Texinfo as @l, in Unicode it is U+0142, in XML and HTML ł may be used.