Blog Posts
-
Type variables in python typing
Oct 04
7 minutes
1318 words
#programming
#python
#typing
Python’s type hinting system offers great flexibility, and a crucial part of that flexibility comes from Type Variables. These allow us to define generic types, enabling us to write functions and classes that work with different types while maintaining type safety.…
-
A guide to type checking in python
Oct 04
15 minutes
3036 words
#programming
#python
#typing
Python is often known for its dynamic typing, which can be a drawback for those who prefer static typing due to its benefits in catching bugs early and enhancing editor support. However, what many people don’t know is that Python does actually support specifying the types and it is even possible to enforce these types and work in a statically type-checked Python environment.…
-
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
20 minutes
4096 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.…
-
Typing generics and variance
Oct 04
18 minutes
3703 words
#programming
#python
#typing
Generics and variance are advanced concepts in Python’s type system that offer powerful ways to write code that is flexible and reusable across different types. By understanding these concepts, you can write more robust, maintainable and less repetitive code, making the most of Python’s type hinting capabilities.…
-
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
13 minutes
2661 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.…