Avanzamento tecnologico nei PC

È da qualche giorno che mi frulla nella testa quest’idea di voler aggiornare il mio PC principale. Ho un vecchio Intel i7 3770 che in realtà non avrei neanche tutta questa necessità di cambiare ma per un miglioramento generale del sistema è richiesto il cambio di almeno scheda madre + memorie + CPU. Ad ogni modo decido di confrontarla con una nuova Intel i7 10700 e sinceramente sono rimasto sbalordito…

Continua a leggere “Avanzamento tecnologico nei PC”

Trench foot: Un (total conversion) mod di DooM SPETTACOLARE 🤩

Notare a fine video le schermate DooM di 25 anni fa 😂

OK, questo gioco è una total conversion mod quindi del DooM originale che tutti noi conosciamo sarà (probabilmente) rimasto ben poco. In ogni caso il risultato è davvero SPETTACOLARE!!! Un’ambientazione da brividi, che chiaramente col DooM “vanilla” sarebbe stata impossibile da raggiungere, effetti sonori decisamente top-gamma, luci, fumo e particellare da oscar, mappa di gioco molto ben realizzata. Nel complesso l’immersione nel gameplay è impressionante. Forse qualche mostro in più non sarebbe dispiaciuto, giusto per spezzare la monotonia.
Complimenti vivisissimi all’autore/agli autori 😉👍

JavaScript fa ca**re 😫

Da qualche giorno sto brigando pesantemente con Emscripten: quel magico strumento che consente di transpilare (un neologismo, dall’inglese “to transpile“) codice C/C++ in WebAssembly. Devo convertire alcune librerie C++ in wasm, per poterle invocare da JavaScript e successivamente (molto probabilmente) da Blazor. È un lavoro molto impegnativo perchè la purezza del C++ in qualche modo deve scontrarsi col pressapochismo intrinseco di JavaScript; e putroppo questo è inevitabile 😓

Continua a leggere “JavaScript fa ca**re 😫”

Blazor – .NET 5 RC1

Qualche giorno fa è stato rilasciato il nuovo .NET 5 (Release Candidate 1) che ha introdotto alcune interessanti novità nel comparto Blazor. La succosa novità che ho provato a velocità warp è stato il neo-introdotto <Virtualize> ovvero il componente built-in che consente di virtualizzare una serie (numerosa) di elementi in modalità scorrimento; a mo’ di ListBox per capirci. Putroppo non funziona benissimo, ancora qualche bug, ma la direzione intrapresa è quella giusta.

Continua a leggere “Blazor – .NET 5 RC1”

Huawei lascia Android: benvenuto WebAssembly!

Con un annuncio ufficiale all’HDC 2020, Huawei dice addio (definitivamente) ad Android in favore di HarmonyOS. Per lo scenario post-Android si possono prendere in considerazioni diverse ipotesi, almeno per il breve futuro:

  1. Huawei perderà importantissime quote di mercato globale.
  2. Si aprirà un nuovo mercato Cinese, specifico ed esclusivo, per HarmonyOS.
  3. All’attuale duopolio Android-iOS si aggiungerà anche HarmonyOS segmentando ulteriormente le piattaforme (come se gli sviluppatori non fossero incasinati già abbastanza 😥).

Forse la 3° ipotesi è quella più probabile, visto che dalle caratteristiche dichiarate HarmonyOS sarebbe in grado di convertire seamless gli APK Android in applicazioni HOS.

Continua a leggere “Huawei lascia Android: benvenuto WebAssembly!”

PWA – Progressive Web Application

Ho sviluppato una piccola applicazione webassembly usando Blazor (https://wasmtagger.medieval.it) poi ho deciso di pubblicarla nei vari app store e questo è stato il risultato:

  • Apple Store è zona interdetta: non si possono pubblicare WebAssembly. In realtà ci sarebbe il modo, ma bisogna usare chilometri di red-tape quindi, per ora, escluso.
  • Google Play accettata con riserva. Le app webassembly possono essere distribuite solo ai maggiorenni, che è un paradosso perchè anche se la tua applicazione ha “PEGI 0”, cioè indicata anche per neonati, può essere distribuita solo ai 18+. Ipotizzo per una questione di sicurezza. Considerato il rapporto costi-benefici, direi che questo limite risulta più che accettabile.
  • Microsoft Store accetta senza riserve (e credo sia anche normale visto che questo store lo usa giusto Bill Gates e ¾ della palazzina sua 😅). L’unico problema è trovare il software giusto per editare il file APPX da inviare al portale, personalmente ho usato Advanced Installer in versione trial.

Il sito PWABuilder ti genera sia il file .APK da inviare a Google Play sia il file .APPX da inviare a Microsoft Store, estraendo i dati dal manifest.json del tuo sito PWA: il meccanismo funziona piuttosto bene.

Al momento sto riscontrando problemi nell’aggiornamento delle versioni, penso ci sia un corto-circuito tra cache e service worker, ma sto facendo delle prove più approfondite per capire chi è il responsabile nella catena: tra browser, applicazione, service worker o app store.

Avventure tecnologiche: USB Type-C

Come ben saprai, se tu colleghi un cavo USB 2.0 ad una presa USB 3.0 oppure viceversa un cavo USB 3.0 ad una presa USB 2.0, tutto funziona correttamente andando però (ovviamente) a velocità trasferimento USB 2.0. Se ad esempio connetti un HDD esterno USB 3.0 al PC, ma lo fai lavorare in USB 2.0, questo comunque funzionerà … anche se trasferisci a 2 Kb/s che per passare 10 Gb ci metti 65 milioni di anni, però, comunque, tutto procederà tranquillamente. Anzi, con le ultime versioni di Windows, se connetti una periferica esterna USB 3 facendola viaggiare su USB 2, il sistema ti avvisa con un bel messaggio pop-up così tu capisci che stai affà ‘na cazzata 🤣

Allora io da informatico, ma anche da persona di buon senso, davo per scontato di trovare la stessa identica situazione con il nuovo l’USB-C … e INVECE NO!!! A dire il vero neanche ci avrei mai pensato che potessero fare tali porcate che manco la Apple ai tempi d’oro, proprio non mi passava minimamente nella testa. In pratica l’USB Type-C è un connettore relativamente nuovo (ed inutile) che per giustificare la sua introduzione, a livello di marketing, è stato “consentito” di inserire la presa in qualsiasi verso, e questo funzionerà in ogni caso; a differenza della classica presa USB-A (quella rettangolare per intenderci) che invece ha 1 solo verso d’inserimento. Cioè, voglio dire, non mi sembra un’innovazione così rivoluzionaria tale da giustificare l’omicidio di 20 anni di USB … e chissà quanti soldini sottratti dal dindarolo 🧐

Continua a leggere “Avventure tecnologiche: USB Type-C”

Fondamenti di CSS: display e position

Ai folli che si stanno addentrando nel meraviglioso mondo di CSS come me, voglio dare un consiglio per evitare inutili mal di testa. Ogni volta che si affronta un problema di indentazione e/o impaginazione, bisogna tenere sempre ben a mente 2 fondamentali proprietà CSS: display e position.

Display – La migliore definizione che ho trovato è in assoluto questa su StackOverflow.com. I 3 valori “inline”, “block” e “inline-block” sono quelli storici e più usati, il nuovo valore “flex” è quello da studiare subito dopo. I valori “table”, “table-row” e “table-cell” li troveree spesso ma sono abusati. Una volta assorbiti i fondamenti, ricordatevi che alcuni tag HTML sono per default elementi-blocchi (lista completa) mentre i rimanenti sono elementi inline (lista completa).

Position – Causerà parecchi grattacapi. La migliore spiegazione che ho trovato è questa. Come si evince dal tutorial, “position” ha un doppio legame anche con le proprietà “float” e “clear”. Queste 3 proprietà insieme verranno molto usate.

Imparare la teoria “su carta” di queste proprietà è stupendo, fa sembrare tutto semplice, ma quando ci si trova con decine di layer innestati, ognuno con definizioni differenti, si fa molta fatica a seguire il significato logico dei vari elementi HTML. Se ogni volta che vi scontrate con codice HTML + CSS sentite una forte sensazione di frustrazione interna, sappiate che è un disagio assolutamente NORMALE!!!

L’informatica c’ha fatto CIAONE…

Qualche giorno fa ho letto questo articolo molto triste per il settore informatico: La fine della legge di Moore. Non credo bisogna spiegare cosa sia la legge di Moore, lo sanno tutti. L’arresto tecnologico parte dal 2010, anno che a mio personalissimo avviso segnala anche l’inizio della crisi del software, dove la differenza di prestazioni tra una CPU del 2010 e una del 2016 è praticamente trascurabile per quanto riguarda la velocità pura; consumi e temperature sono però state migliorate. La Intel nel 2014 aveva già mostrato i primi cedimenti ritardando l’uscita delle CPU per computer Desktop, dato che il settore è in forte crisi, e quel segnale era piuttosto inequivocabile. Ma quello che voglio analizzare non è tanto l’aspetto tecnologico, quanto l’aspetto sociale della vicenda.

La situazione veramente triste (secondo me) è che oggi con l’avvento del cloud computing, non solo i client necessitano di minore potenza di elaborazione, ma non ci si preoccupa neanche più di ottimizzare l’infrastruttura tecnologica lato server. Si presume che una server farm non abbia ne problemi di spazio, ne di riscaldamento, ne di elettricità, quando sarà necessaria nuova potenza di elaborazione si aggiungono nuovi processori e nuova memoria nei rack: Francesco Totti direbbe “j’ha fatto er Cucchiaio“. Il progresso tecnologico del singolo “chip” si è più o meno ormai arrestato, quindi si è deciso di iniziare a investire seriamente sul calcolo parallelo e distribuito. Utilizzando server, tanti tanti server.

Cioè siamo tornati agli anni ’60! E tutto grazie a perverse logiche di business. Speriamo che andando avanti a qualcuno venga in mente di riesumare le audiocassette perchè inizio a sentirne nostalgia 🙂

CSS è fantastiglioso!

OK, OK, dovevo fare una cosa semplicissima con CSS: posizionare 2 elementi dietro l’altro in orizzontale e centrarli verticalmente. Facile direte voi … LA MINCHIA rispondo io!

vertical-align: Ironia sul web
vertical-align: Ironia sul web

Da buon neofita di CSS, come prima soluzione ho usato il comando vertical-align con valore middle, ovviamente il browser m’ha risposto picche (è s’è fatto pure ‘na risata). Come si può vedere dall’immagine allegata sulla destra, su questo argomento alcune persone particolarmente goliardiche hanno scatenato la loro ironia e ci si sono divertite alla grande 🙂 Ho iniziato a cercare, a ricercare e a ricercare ancora su Internet una possibile soluzione e dopo circa 37-38 ore di navigazione ininterrotta mi è venuto il dubbio che fosse un problema piuttosto comune. Può sembrare strano ma è esattamente così: questo è uno scoglio su cui ci si scontrano inizialmente praticamente tutti gli sviluppatori. Alla fine ho trovato questa pagina che spiega un paio di barbatrucchi semplici semplici, ma è frustrante constatare come l’HTML, dopo oltre 20 anni di onorato servizio, risulti ancora così “arretrato”.

A quanto pare i browser più recenti hanno risolto questi problemi di allineamento e orientamento usando il nuovo parametro FlexBox, che sarà la prossima funzionalità che andrò a studiare non appena mi riprendo da questo trip.