Daniele Esposti's Blog

Fix corrupted Time Machine sparse bundles

I know that on the Internet there is an unlimited amout of articles and posts about how to solve the issue about corrupted Time Machine backups on our NASs. I have tried a lot of them when my backup has been corrupted but even following religiously their steps I didn’t...


Create a Python module in Rust

Rust is a new language which aims to be fast a C/C++ but safer and more expressive. Writing code in Rust is not just fun but it also can be useful to write modules for Python to replace CPU-bound code with it’s counterpart in Rust. Thanks to the rust-cpython project...


Cross-compile Python packages with Docker

Cross-compiling is the action of building a package or a binary for a different system thatn the current used for the compilation process; for example compiling ARM binaries on a x86 architecture. In this post I’m going to cross-compile Python packages for a specific Linux distribution using Docker as a...


Create a plugin for Google Protocol Buffer

Google’s Protocol Buffer is a library to encode and decode messages in a binary format optimised for compactness and portability between different platforms. At the moment the core library can generate code for C/C++, Java and Python but additional languages can be implemented by writing a plugin for the Protobuf’s...


Restricting npm semver rules

The npm package manager uses semver to declare the version of the external dependancies of your package in a more flexible way. Unfortunately the current version of npm by default uses the caret ^ as a default prefix for package’s versions which means the required package must have the same...