La solita vecchia TIM

Dopo molto tempo, mi trovo di nuovo a commentare la mia linea dati fissa con TIM.

Nelle puntate precedenti

Per tanti anni, ho avuto diversi problemi, tra cui velocità molto basse, disconnessioni frequenti, tutti legati all’ultimo miglio. E ci hanno addirittura fatto cambiare tutti i cavi dal palo TIM al router, prima di ammettere che la colpa era loro. I vicini invece hanno rinunciato ad avere Internet tramite rame e sono passati ad Eolo.

Ad un certo punto, a luglio 2017, abbiamo scoperto che era disponibile la FTTC, il che mi aveva abbastanza stupito, visto che abito in aperta campagna, e abbiamo fatto l’upgrade.

Era partito veramente bene: sono stati velocissimi ad attivarlo, una cosa come 3-4 giorni. La latenza era ed è ancora totalmente accettabile, circa 10,5ms di ping verso gli OpenDNS al MIX, 23ms verso il mio sito, che è nel datacenter OVH di Strasburgo.

I nuovi problemi

Invece i bitrate dagli 80Mbps/20Mbps rispettivamente di download e upload iniziali, col tempo sono scesi, fino ai 35Mbps/10Mbps che ho da un po’ di tempo. Nel frattempo TIM ha abbassato la banda minima garantita da 40Mbps/4Mbps a 30Mbps/3Mbps, quindi non posso nemmeno fare un reclamo per le basse prestazioni. … [Leggi il resto]

Il Macbook ARM

Lunedì Apple ha annunciato un Macbook dotato di processore ARM, anziché di un processore Intel x86, la piattaforma da loro usata negli ultimi quasi 15 anni.

Già da qualche tempo gli appassionati si aspettavano che sarebbe successo, e non sono rimasti troppo stupiti dalla notizia, però ogni decisione di Apple fa discutere molto anche chi non normalmente non si interessa di questo settore.

Il risultato è che a volte ci sono commenti, o addirittura articoli di siti più o meno specializzati imprecisi, se non fuorvianti. Altre volte invece sono gli hater di Apple a cambiare significato alle notizie. Ho deciso quindi di fare un paio di commenti anche io.

I propri processori/silicio

Apple progetta da diversi anni i processori dei suoi telefoni e tablet, ma non direi che “propri” sia la parola corretta.

Apple compra la proprietà intellettuale da ARM Holdings, una società che appunto vende proprietà intellettuale a chi è interessato. Hanno davvero tante linee: dai processori più economici da meno di 1€ per l’embedded (e.g. per i controller delle stampanti 3D), a CPU per supercomputer, passando praticamente per tutti gli smartphone e tablet. … [Leggi il resto]

A dynamic character controller for Bullet?

Or, how I tried to create a dynamic character controller for Bullet, but eventually (almost?) gave up.

Motivations

I like spending some time using the Bullet physics library, I already wrote some articles about my experiments with it. This time, I wanted to create a custom character controller.

Bullet alread provides a (kinematic) character controller, but in general it is not regarded as a good one. I also tried to study a bit its code, but, in my opinion, it adds many complications without reason, and even something like managing in the correct way the velocity is a big problem with it. Indeed, Erwin Coumans himself (the main Bullet developer) said that btKinematicCharacterController is not supported anymore.

Therefore I decided to write my own one.

There are two kinds of character controller: kinematic ones and dynamic ones.

The former use the Physics engine, if any, just for collisions, and compute all the movements by themselves. This was the only way at the beginning of the video games, since there was not any Physics engine at all, but only some code for specific purposes. … [Leggi il resto]

Mirror su OneDrive

Il problema

Una persona, già da diverso tempo, mi ha chiesto di aiutarla a mantenere un mirror delle cartelle importanti di un suo file server Linux sull’account OneDrive, siccome, con Office, lì ha 1TB di spazio.

Stiamo parlando di meno di 500000 file per una dimensione di circa 250GB, quindi non qualcosa di assurdamente grande, ma neanche qualcosa di proprio semplice da gestire.

Finora ho provato sia con rclone, un tool per eseguire operazioni su diversi provider cloud, in particolare di copia e sincronizzazione, sia con quello che è uno dei più diffusi client OneDrive nativi Linux, ma nessuno dei due è riuscito a gestire la cosa.

rclone deve essere uno strumento molto utile per molte situazioni, ma non per questa, perché penso che faccia costantemente richieste per verificare la struttura dei dati in OneDrive, anziché tenersi delle informazioni in locale, ma per questo motivo Microsoft lo rallenta costantemente. Invece il client OneDrive ha un database locale, ma magari a volte ci sono delle inconsistenze e si ferma, con delle eccezioni; in particolare mi sembra non gestisca bene l’essere case insensitive di OneDrive. … [Leggi il resto]

Python custom exceptions in C(++) extensions

Python is a nice scripting language, but it has the fame of being difficult to embed and interact with existing projects.

Until now, I have been able to embed it in the software I work on with pybind11 and Binder (half of my MS degree thesis is about that), I had some problems, but I was able to solve most of them. But recently I have experienced a problem that is quite uncommon on the Internet: declaring a new exception in a native (C++/C module) with some custom methods/properties.

The existing proposal

I quickly looked on the Internet for the problem. The Python C API makes creating an exception type possible with PyObject *PyErr_NewException(const char *name, PyObject *bases, PyObject *dict): the first parameter is the name of the exception, in the modulename.ExceptionName format, the second parameter is the base or bases of the new exception (can be a PyType, or a tuple of PyTypes), and a dictionary of custom members and methods for the new type.

However both the second and third parameter can be left to NULL: in this case the new type will inherit from PyExc_Exception and will not have customizations. This is the majority of the cases, and by a search on the CPython code I could not find any reference that could use as an example on how to use the dict parameter. … [Leggi il resto]