Although I work for a mostly remote work company, a couple of times a year we meet together for a week in some nice location of the world. When that happens, multiple meetings across people in different teams are organized. Sometimes the number of requested sessions gets out of hands and the scheduling team is … Continue reading "How to schedule meetings in the minimal number of time slots"| Alfonso Sánchez-Beato's blog
I have some interest in photogrammetry, and, more concretely, in the ways to extract 3D information from a set of photographies of an object. There is excellent open source software that is able to do this, like Meshroom, which is based on the Alice Vision framework. Once you create a 3D object with this tool, … Continue reading "A MeshLab plugin to find optimal oriented bounding boxes"| Alfonso Sánchez-Beato's blog
These days, in the covid world we live in we have multiple videoconferences every day, with colleagues, family, friends… The average number of people attending has grown, and when I was in a call some time ago, I wondered, what would be the “optimal” way of splitting the videconference application window among the people in … Continue reading "How to share your video-conference window among attendees – or, the many ways of splitting a rectangle in many"| Alfonso Sánchez-Beato's blog
When writing shell scripts, one of the things I used to find more problematic was how to return values from a function. If writing a function, I try to use local variables as far as possible, so I do not like the idea of using global variables to return values. There are a few well … Continue reading "Returning values from shell functions and dynamic scoping"| Alfonso Sánchez-Beato's blog
Ubuntu Core is especially designed for appliances: you can very easily create a customized image by defining your own model assertion and including the specific snaps you need for your target application. At the same time, the system is security-first and you can finish configuration on it only by connecting via a system console. However, … Continue reading "Configuring connectivity for your Ubuntu Core appliance"| Alfonso Sánchez-Beato's blog
Ubuntu Core (UC) is Canonical’s take in the IoT space. There are pre-built images for officially supported devices, like Raspberry Pi or Intel NUCs, but if we have something else and there is no community port, we need to create the UC image ourselves. High level instructions on how to do this are found in … Continue reading "Porting Ubuntu Core 18 to nvidia Jetson TX1 Developer Kit"| Alfonso Sánchez-Beato's blog
In chapter 5 of his mind-blowing “The Road to Reality”, Penrose devotes a section to complex powers, that is, to the solutions to $$w^z~~~\text{with}~~~w,z \in \mathbb{C}$$ In this post I develop a bit more what he exposes and explore what the solutions look like with the help of some simple Python scripts. The scripts can … Continue reading "Analysis and Plots of Solutions to Complex Powers"| Alfonso Sánchez-Beato's blog
In the conclusions to my last post, “Modifying System Call Arguments With ptrace”, I mentioned that one of the main drawbacks of the explained approach for modifying system call arguments was that there is a process switch for each system call performed by the tracee. I also suggested a possible approach to overcome that issue … Continue reading "Filter and Modify System Calls with seccomp and ptrace"| Alfonso Sánchez-Beato's blog
Occasionally I find myself processing input data which arrives as a stream, like data from files or from a socket, but that has a known structure that can be modeled with C types. For instance, let’s say we are receiving from a socket a parcel that consists on a header of one byte, and a payload that is an integer. A naive way to handle this is the following (simplified for readability) code snippet:| Alfonso Sánchez-Beato's blog
As part of the ongoing effort we are doing in Canonical to snappify the world, we are trying to make available more and more software as easily-installable, secure, snaps. One of the things snapd does to isolate applications is to install snaps in separate folders in /snap/<mysnap>, and also creating $HOME/snap/<mysnap> for storing the snap data. Unfortunately, this changes where many applications expects data files to be as per the usual Unix conventions.| www.alfonsobeato.net