WireGuard e NetworkManager

Contestualizzazione

Mentre ero in Erasmus in Norvegia, avevo provato WireGuard per rimanere connesso alla rete di casa, in cui si trova il mio NAS.

Da allora, ho continuato a usarlo abbastanza. Qualche volta ho usato ancora OpenVPN, ma preferisco parecchio WireGuard, principalmente perché è molto più leggero e evita che il mio router faccia da collo di bottiglia, e perché è molto più semplice da configurare.

Altre caratteristiche a suo favore sono che a Marzo di quest’anno è stato direttamente integrato nel kernel Linux e che a tal proposito il suo autore ha fatto fare una verifica di sicurezza a terze parti, che hanno espresso un giudizio positivo. Si può volere di più?

Be’, in realtà sì. Per diverso tempo, per avviare la VPN ho usato uno script shell, che aveva bisogno di essere eseguito da root. Questa soluzione non mi entusiasmava troppo, e avrei preferito un’integrazione con Network Manager, possibilmente con la GUI. … [Leggi il resto]

VBO multipli con OpenGL ES 2.0

Emscripten e WebAssembly

Di recente ho iniziato un nuovo progettino, per il quale sto usando SDL e OpenGL ES 2.0.

Durante il lockdown, avevo imparato a fare qualcosa di base con OpenGL 3.3, e avevo usato sempre SDL e un po’ Bullet, ma poi avevo lasciato stare il tutto. Adesso ho ricominciato, ma con OpenGL ES 2.0 perché offre una possibilità molto interessante: con Emscripten, si può compilare il progetto per WebAssembly, e GLES 2.0 viene trasformato direttamente in WebGL.

Pur non essendo più molto appassionato di sviluppo web, questa cosa mi attrae particolarmente. Innanzitutto, pubblicando sul web si possono raggiungere più persone, anche per il solo fatto che aspettare qualche secondo che si carichi una pagina è molto meno impegnativo che far scaricare uno zip, decompattarlo, e far avviare il programma. E non parliamo nemmeno degli installanti…

Il codice può essere sviluppato praticamente in qualsiasi linguaggio (C, C++, o qualcosa che abbia un interprete/una VM scritta in questi linguaggi), ma poi si può interfacciare al JavaScript che gira nel browser. Questo vuol dire che potrei fare le parti di rendering 3D in C++, ma le parti di UI in HTML, CSS e JavaScript. Le ultime volte che ho provato a fare qualcosa in JS mi sono stufato subito, però, per fare UI, lo stack web ha pochi eguali. … [Leggi il resto]

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]