I used Vim for 3 weeks. Here's how it went

I have recently had a few days off from work due to festivities in Germany and I used some of my spare time to finally investigate the Vim editor. For those who do not know Vim is a text editor, which was developed by Bram Moolenaar and released for the first time in 1991. So it’s not that old yet. But if you consider the fact that this is an improved version of Billy Joy’s vi editor which was originally developed in 1976 for the UNIX operating system, things start to get interesting as you realize for how long it’s been around and you’ve lived merrily without ever trying it....

4 Jul 2022; Reading Time: 8 min

Seven Sins of Python - Sin 7

Sin number 7: from nightmare import * I’ve been thinking long about which sin to name as the last in the grand seven of Python No-Nos. It finally came to me when working on one of legacy projects I’ve been contributing to (sadly this one is not open-source, so I cannot share the details). star imports -> imports formed like the titular from nightmare import *. Whence the temptation? Star imports are tempting because they seem to reduce boilerplate....

4 Jul 2022; Reading Time: 5 min

Seven Sins of Python - Sin 6

Sin number 6: Packaging not done right Packaging Python projects properly can be truly a pain in the neck. However learning how to properly set up a package is extremely valuable because adherence to standards means more people can use your package efficiently. 👉 The biggest sin of all things package-related is storing Python projects as simple collections of directories. Whence the temptation? Python is a simple scripting lanugage so the natural tendency newcomers have is to simply create folders with a bunch of scripts and then run those folders one by one....

17 Jan 2022; Reading Time: 11 min

Forget New Year's Resolutions, do this instead

A while ago I had a brainwave when reading about the Agile Software Development best practices. I’ve recently found this idea somewhere in my todo lists and decided to finally give it a try, especially given the fact that my new year’s resolutions never worked for me. 👉 The idea: forget new year’s resolutions, write user stories for your life instead. Before I go in-depth on why I think you should write something akin to user stories for your life plans, since it’s barely the beginning of January 2022 let’s look at why new year’s resolutions are not the way to go (at least in my opinion)....

5 Jan 2022; Reading Time: 17 min

Seven Sins of Python - Sin 5

Sin number 5: global destruction Every time I am asked about global keyword in Python, I get a split-second heart attack. Personally I think it is one of the most unnecessary and dangerous keywords that Python has to offer. I will go one step further and postulate that if you’re using nonlocal you’re probably doing it wrong. 👉 The essence of this problem is misunderstanding the purpose or the mechanics of scope in Python....

28 Dec 2021; Reading Time: 8 min

Seven Sins of Python - Sin 4

Sin number 4: Exception frenzy Python’s Exception class is probably one of the most abused and misused features of the language. It’s also something that no developer can escape from. Whence the temptation? An Exception is a pretty natural element of any language. In all languages one will always have some need for a runtime error. In case of Python, most runtime errors inherit from the Exception class. Though technically not a base class (for that would be BaseException), it should be treated like a base class and it often isn’t....

27 Dec 2021; Reading Time: 5 min

C++ is the new COBOL

C++ is a great language. As much as I hate it I cannot ignore how important it is and how much it brought to the table in it’s 36 years of existence. I have tremendous respect for Bjarne Stroustrup for creating the so-called C with classes and I personally think that it’s one of the best things that happened in programming language designs around the time when it came to existence....

21 Dec 2021; Reading Time: 10 min

The Most Important Piece of Advice

If were to read only one post from this blog and ignore all the others, here is a piece of advice that I would like to give to everyone who wants to vastly improve their career. 👉 The most priceless thing that will help you excel in anything you do is your brain. The second most priceless thing is your second brain. What I mean by that? If you are able to build a robust reference system with a very short lookup time for any possible piece of information, you will excel at everything you do....

18 Dec 2021; Reading Time: 12 min

Seven Sins of Python - Sin 3

Sin number 3: Unconditional romance with ducktyping Whence the temptation? Python is truly awesome. In C++17 there is no easy way of expressing ranges. In Python an integer range \(\langle 0, 4 \rangle\) is simply range(0, 5). The syntactic simplicity and high conciseness of the language was originally related to the fact that Python does not have static typing. In Python ducktyping means that you can actually call a function that expects an integer with a string and you will likely only realize at runtime, since there is no compilation step....

17 Dec 2021; Reading Time: 5 min

Seven Sins of Python - Sin 2

Sin number 2: too few optimized functions used This one is pretty common especially for newcomers who have learnt enough about Python to be able to loop over data structures but haven’t yet realized how slow Python loops really are. Whence the temptation? If you’re fresh to Python, the temptation to create for loops everywhere for lists and dictionaries is immense. Consider a fairly simple example, where we loop over 100000 random integers and we apply a simple mathematical operation to each of those integers....

16 Dec 2021; Reading Time: 3 min