Gabriele N. Tornetta

Pushing forward against boundaries since 1987.

•  2019 May 5    a 23 minute read

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 alternative solutions, especially in the area of sampling profilers.

PythonProfiling

ProgrammingPythonAustinProfiling
•  2018 Aug 4    a 33 minute read

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.

Linux

containersjails
•  2018 Mar 23    a 24 minute read

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!).

PythonAssembly

PythonAssembly
•  2018 Mar 3    a 32 minute read

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.

IoTWebSocketsAsynchronous I/O

IoTPythonAndroidWebSocketsasyncio
•  2017 Oct 14    a 34 minute read

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 your choice and the standard Android SDK CLI tools.

•  2017 Jul 31    a 24 minute read

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 will be able to take control of some LEDs over the internet, from wherever we are. Consider this as a launch pad to more complex and exciting IoT projects.

Raspberry PiIoT

ElectronicsProgrammingWeb ApplicationsWeb ServersApacheRaspberry PiWSGI
•  2017 Mar 6    a 14 minute read

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.

Number TheoryAlgorithmsArchitecture

ProgrammingC++Prime NumbersAlgorithms
•  2016 Aug 10    a 26 minute read

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 the final executable by stripping out unnecessary debug symbols.

Assemblyx86_64

ProgrammingAssemblyx86_64