I have recently come across a concept that filled a huge hole in my software development skills. Let’s imagine that you follow TDD principles, write well testable code, but as soon as you merge your changes to the master branch you are left wondering: “have I tested all the cases?” Tests might be green now, […]
What is the Liskov Substitution Principle?
Grasping the true idea behind the “Liskov Substitution Principle” seems a bit hard. The explanation that some interfaces and classes should be interchangeable never was enough for me to answer the questions “why should I care” and, consequently, “how should I implement it”. Here’s a writeup I gave for my colleagues, which they found useful, […]
IPC – Unix Sockets explained
When I wrote about Inter Process Communication, shared memory and signals I promised I’ll suggest an easier way of sending messages between process in a way that one of them gets notified. Shared memory and signals is great, but it wasn’t the right choice for my example. Today I’ll explain so-called Unix sockets and as […]
How to deploy a project in Django on AWS?
I’ve recently done a pet project on Django and AWS to better get to know those 2 platforms. Unfortunately I’m unable to deliver enough tutorials to justify maintaining the entire environment, but I’m eager to share my experience, what went well, what went wrong. If you like this post, subscribe to the newsletter to keep […]
On Python, Mutability, Copy and Deepcopy
I’ve just been hit by a very interesting problem in a project, on which I work. I needed to extend some code my colleague wrote. I did it, but when I added tests, I discovered that when I run the single test I added, it’s all fine. However, when I run it in a group […]
How does Yubikey help to protect against phishing
Recently I wrote about the new security device I bought. Today I want to give a hands on example of how it improves my security. Ladies and gentlemen, today I’ll perform an attack on myself (since it’s the only legal attack I can perform) and explain in better details how to use Yubikey against phishing. […]
Metasploitable Walkthrough Part 2. – VSFTPD
It’s been over a year since I’ve done something security-related and today I’m continuing the series about the Metasploitable project. The last part was reconnaissance, where I showed multiple vulnerabilities found on the machine. One of them was related to the VSFTPD. Today I’ll just script the attack. What is VSFTPD Vulnerable to? There’s a […]
AWS Lambda in Pycharm
I’m back to life and here’s some tasty article on something I’ve recently learnt. Unfortunately, this is again on 2 very specific commercial solutions instead of general purpose programming. And another one on AWS. Maybe I’ll come up with an article on signal handling in operating systems. Anyway, here are some tips and trick on […]
Optimizing Django Database Queries
Before we move on to the topic, I’d like to apologize for the irregular updates, but I’m going through a few courses that take a lot of time. On the other hand, from time to time they result in inspirations for new posts. One of such a case is a course focused on working with […]
How to Manage Project Dependencies with GitLab – Part 2.
In the previous post I’ve talked about creating and installing own Python packages using GitLab’s tools. Today I’d like to focus a bit more on the topic and show how you can make this process even better. We’re going to use GitLab’s CI to build the PyPi packages automatically. Problems Let’s imagine an average Cathy, […]