Blog Posts

  • Jumping on the BTRFS hype wagon Jan 27 10 minutes 2038 words #linux

    After a long time constantly hearing about BTRFS filesystem, I decided to make the jump, leaving EXT4 behind. And I have to say, I couldn’t be happier. For those unaware, BTRFS is a B-tree based filesystem, which you can use as an alternative to EXT4, with some really cool new features, which I’ll mention in the post here.…

  • Using multiple licenses in a single code-base Dec 10 9 minutes 1709 words #programming #licensing

    Dual-licensing, or multi-licensing is the practice of distributing source-code for a single project under two or more licenses. The general idea is pretty simple, however I’ve seen many people misunderstanding some important aspects when it comes to it. There’s especially a lot of confusion when it comes to multi-licensing a repository with a copy-left license, so in this article, I wanted to shed some light onto this practice, to hopefully make you a bit more confident in understanding, and maybe even maintaining multi-licensed projects.…

  • Changing a software license Oct 12 10 minutes 2085 words #programming #licensing

    Figuring out how to properly and legally change the software license of your project can be a difficult task, and yet it’s incredibly important that you do this right, as you might run into some legal issues otherwise, which I’m sure you’d like to avoid.…

  • Making great commits Apr 17 22 minutes 4634 words #programming #git

    A well-structured git log is key to project’s maintainability; it provides insight into when and why things were done, for future maintainers of the project, … and yet, so many people pay very little attention to how their commits are structured.…

  • Software licensing documents (CLA and DCO) Apr 03 10 minutes 1920 words #programming #licensing

    In many projects you’ll find out that before you’re allowed to contribute something to an open-sourced, you’ll be required to sign a document requiring certain things. This is mostly the case of contributing to projects maintained by big companies, but it can be seen in smaller projects too sometimes.…

  • Managing (multiple) git credentials Jul 27 19 minutes 3932 words #programming #git

    Many people often find initially setting up their git user a bit unclear, especially when it comes to managing multiple git users on a single machine. But even managing credentials for just a single user can be quite complicated without looking into it a bit deeper.…

  • Introduction to encryption with GnuPG Apr 10 19 minutes 3974 words #privacy #linux #encryption

    GnuPG (short for GNU Privacy Guard), also known as just GPG is a public-key cryptography implementation. This allows for a secure transmission of files between parties and can also be used to digitally sign files, to prove that they weren’t modified in any way.…

  • Software Licenses Jan 23 23 minutes 4843 words #programming #licensing

    I’ve recently been coming across more and more developers which had no idea about the importance of software licensing, how it works and what options there even are. What’s worse, this lack of knowledge means people often end up not choosing a license at all, thinking it means anyone can just use that code without limitations, when in fact no-one can.…

  • Concurrency and Parallelism Nov 17 18 minutes 3706 words #programming #python

    Concurrency is an exciting topic that’s becoming more and more important, yet I see so many people that aren’t very familiar with topic and it’s possibilities. I’ll try to explain the differences between threading, multiprocessing and asynchronous run. I’ll also show some examples when concurrency should be avoided, and when it makes sense.…

  • Variance of typing generics (covariance, contravariance and invariance) Oct 04 24 minutes 5066 words #programming #python

    In many programming languages where typing matters we often need to define certain properties for the types of generics so that they can work properly. Specifically, when we use a generic type of some typevar X we need to know when that generic type with typevar Y should be treated as it’s subtype.…

  • JSON vs Databases Sep 20 9 minutes 1915 words #programming

    I’ve seen tons of projects incorrectly use a method of storing data for their use-case. In most of the cases this was an issue about using JSON instead of a database, but I did also see some people using databases where JSON should’ve been used, or even some completely different format, such as simple plain text, or something more similar to JSON, such as YAML.…

  • Escaping isolated network Sep 15 14 minutes 2882 words #hacking #linux

    Many networks nowadays are blocking certain websites, IPs or ports, that however often doesn’t mean that there actually isn’t any way to access these blocked resources. Note that even though you can read about how these restrictions can be bypassed, I was testing these commands against my own home server, and inside of my own network.…

  • Interpreted vs Compiled Languages Sep 09 9 minutes 1719 words #programming

    You’ve likely seen or heard someone talking about a language as being interpreted or as being a compiled language, but what’s the difference? When should you pick one or the other when deciding which language to use for your projects and does it even matter?…

  • Removing duplicates from lists Aug 31 11 minutes 2266 words #programming #python

    In programming, we often need to handle removing duplicates from an array-like structure. While this may seem like an arbitrary and easy question, that can be solved relatively simply, that’s not necessarily always the case. While it may be easy to solve for the obvious case of things like a list of numbers, it’s not so easy if we need to deal with non-hashable objects, while keeping the algorithm runtime relatively low.…

  • When to use Unit-Tests? Aug 24 4 minutes 679 words #programming

    We often talk about the importance of testing our programs, however many people don’t mention at which point it is necessary to start and why sometimes it could just be a waste of time to implement unit-tests. # The purpose of unit tests The reason we use unit tests is simple, during our development, we’re often actively changing things around and this has the potential to affect some unrelated functions in an unexpected way.…

  • Why Privacy Matters? May 15 31 minutes 6451 words #privacy

    Nowadays many people think privacy isn’t relevant anymore and that it’s not a huge issue to simply give out their personal details and agree to terms that give companies rights to track their every move and collect every bit of information that they can.…