RSSAmplifier

Blog

The Hub of Heliopolis

p403n1x87.github.ioRSS feed ↗18 posts

Latest posts

Busting performance issues, AI edition

Coding agents are fast becoming the main generators of new source code, but they are also being used for code review, finding and fixing bugs. How can they be used to the best extent to discover and fix performance issues?

Running C unit tests with pytest

In this post I will describe my approach to C unit testing using pytest. In particular, we get to see how to gracefully handle SIGSEGVs and prevent them from stopping the test runner abruptly. Furthermore, we shall try to write tests in a Pythonic way.

My first close encounter with the Linux kernel source

I finally had the chance to set some time aside to touch the Linux kernel source, for fun and profit. This is the story of how I implemented a new BPF helper.

Increasing Austin accuracy with a dobule-heap trick

The latest version of Austin comes with a heap size option that can be used in increase the accuracy with which invalid samples are detected. In this post I give a brief description of how this works.

How I completed the Hacktoberfest 2021 challenge with a profiler

I shall reveal to you how I managed to complete the Hacktoberfest 2021 challenge with just a profiler. So read on if you are interested!

Spy on Python down to the Linux kernel level

Observability into native call stacks requires some compromise. In this post I explain what this actually means for a Python tool like Austin.

How to bust Python performance issues

In this short post I will try to convince you of how easy it is to find performance issues in your Python code and how you should develop the habit of profiling your code before you ship it.

Looking Back at My Time at Avaloq

My adventure with Avaloq started in August 2016 and ended in January 2021. It's time to look back at what has happened during these years.

The Austin TUI Way to Resourceful Text-based User Interfaces

The latest version of the Austin TUI project makes use of a custom XML resource file to describe and build the actual text-based UI, using curses as back-end. In this post we shall see how one can use the same technology to quickly build reactive TUIs using Python.

An Overview of Monads in Haskell

Monads are arguably one of the most important concepts in functional programming. In this post we pave the street to understanding how this purely category theoretical object finds its place in a language like Haskell.

Deterministic and Statistical Python Profiling

If you want to be sure that your applications are working optimally, then sooner or later you will end up turning to profiling techniques to identify and correct potential issues with your code. In this post, I discuss some of the current profiling tools and techniques for Python. The official documentation has a whole section on the subject, but we shall go beyond that and have a look at some…

What Actually Are Containers?

Containers are the big thing of the moment. It is quite common to find blog posts and articles that explain what containers are not : "containers are not virtual machines". Just what are they then? In this post we embark on a journey across some of the features of the Linux kernel to unveil the mystery.

Extending Python with Assembly

What's a better way to fill an empty evening if not by reading about how to extend Python with Assembly? I bet you don't even know where to start to answer this question :P. But if you're curious to know how you can use another language to extend Python, and if you happen to like Assembly programming, you might end up actually enjoying this post (I hope!).

IoT with WebSockets and Python's AsyncIO

After a gentle introduction to the concept of IoT and what it entails, we take a dive into WebSockets and Asynchronous I/O in Python to explore other ways of controlling devices over a network. This post uses a simple two LED circuit to introduce WebSockets, and how to use them in Python together with the asyncio module.

Android Development from the Command Line

Do you like your development tools to be as simple as a text editor to write the code and a bunch of CLI application to build your projects? Do you feel like you are in a cage when you use an IDE? Or perhaps your PC or laptop is a bit dated and all the cores spin like crazy when you fire up Android Studio? Then read on to learn how you can develop Android application with just the text editor of…

A Gentle Introduction to IoT

The IoT revolution has started. But what is it exactly? Is it hard to take part to it? In this post I present you with all the details of a very simple and almost inexpensive Internet of Things project. Read through as we go from assembling the required hardware, to coding the software that will drive it, exploring some of the most modern free technologies that are on offer today. At the end we…

Prime Numbers, Algorithms and Computer Architectures

What does the principle of locality of reference have to do with prime numbers? This is what we will discover in this post. We will use the segmented version of the Sieve of Eratosthenes to see how hardware specifications can (read should ) be used to fix design parameters for our routines.

Getting Started with x86-64 Assembly on Linux

You have experience of x86 assembly and you wonder what the fundamental architectural differences with the 64 bit Intel architecture are? Then this post might be what you are looking for. Here we'll see how to use the Netwide Assembler (NASM) to write a simple Hello World application in x86_64 assembly. Along the way, we will also have the chance to see how to use some standard tools to optimise…