Federico Fuga

Engineering, Tech, Informatics & science

La vulnerabilità di WhatsApp spiegata a mia figlia

15 May 2019 08:31 UTC Android Cybersecurity
A chi non è capitato di dover riempire un modulo i cui spazi da riempire sono troppo stretti per il testo da inserire? Il classico caso in cui l’indirizzo è davvero troppo lungo per lo spazio previsto e ci si arrangia scrivendo negli altri spazi, oppure sovrapponendosi al testo stampato, e rendendo il modulo praticamente illeggibile? Una cosa simile accade quando in un software o una App riceve dei dati da internet (un server, o magari dalla stessa app installata su un altro smartphone) ma il programmatore non ha effettuato correttamente i controlli sulla lunghezza e il programma copia i dati su uno spazio troppo stretto. Continue reading

Configuring Ubuntu to deal with an ARM board with U-Boot via USB

13 May 2019 07:40 UTC Embedded Linux Uboot Ubuntu
Abstract We have a board on which an AllWinner ARM processor is running Linux. The bootloader is U-boot and we have to use the USB port to flash it. When flashing the device for the first time, after loading the bootloader via FEL protocol, we need to use tftp to load the SPL (Secondary program Loader) image and the uboot version for use with the spl. Unfortunately, a couple of issues in the default Ubuntu configuration prevent us from doing this apparently simple operation in a straight way, and we need to tweak some system configuration file. Continue reading

Strong Typing PODs

07 Sep 2017 21:29 UTC C++ Code
Identifiying object by a numerical integer is an almost trivial task. In DISPLACE, a very complex simulator I am involved with, there are many of different categories of objects that model different categoris of agents in the simulator, like vessels, marine locations, ships, ports, and so on. Each object has an Id, and it was very natural, at the start of the project, to implement it using an **int**. Problems started when we decided, for optimization purpose, to shrink the memory footprint, to use smaller int instead. Continue reading

A C++ Smart Pointer wrapper for use with JNI

10 Mar 2017 14:49 UTC
Introduction In this article, I'll propose a solution for managing native C++ resources from JNI using smart pointers. While Smart Pointers can't be useful from Java, because of the limits of the Java memory management, it may be required by the native library to maintain allocated resources through shared_ptr or unique_ptr, for example because classes derive from std::enable_from_this. Since there is a fixed pattern to maintain native objects in Java classes, a utility C++ class is proposed. Continue reading

Vmware Player is slow under Ubuntu 16 host, Part 2.

21 Oct 2016 17:55 UTC Linux Vmware Windows
So it seems the issue I talked about some week ago, wasn't fixed. Windows is still slow, the hard disk always working at 100% load. Not so slow, because the fix explained in my previous post seems to mitigate the problem, but still slow. Since I was using many Virtual Machines on that box without any problem since longtime, well before my upgrade to Ubuntu 16.04, I guessed the problem was the kernel. Continue reading

Vmware Player is slow under Ubuntu 16 host

10 Oct 2016 17:57 UTC Linux Vmware Windows
So you just upgraded your Ubuntu box and found that all your VmWare Windows Boxes are extremely slow? The symptom is your Windows task manager showning 100% usage of your disk, and the WIndows Instrumentation showing very long lags, says, up to 2.5seconds (yes, seconds) to respond to a disk request. This makes the box practically unusable. Perhaps your vmware logs are shoing a lot of lines like scsi0:0: Command READ(10) took 2. Continue reading

A compact CSV parser using C++ TMP

07 Mar 2016 17:24 UTC C++ Metaprogramming
How many times have you implemented a CSV parser to fill a list of stucts from a text file? Personally, it happens to me about every time I have new project. Though it is a simple task that requires no more than half an hour to build and debug, it is boring, error prone and repetitive. The algorithm is quite trivial, read each line, split it in a vector of string using some separator (about always a comma, hence the "Comma Separated" name), use something to convert each field in a PoD (int, double, whatever) and fill a struct. Continue reading
Older posts Newer posts