di Guliano Alviani
In passato era la Videoconferenza
Era appena passato il 2000 e queste erano le specifiche con cui ci scontrammo per creare il prototipo di quella che poi divenne la nostra prima Aula Virtuale da integrare nelle nostre piattaforme di Learning Management System.
“Immaginate un software simile a NetMeeting che consente di creare degli spazi virtuali in cui connettere contemporaneamente allievi e docenti e consentire loro di parlare, vedersi, rispondere a quiz e condividere il desktop, tutto questo in grado di viaggiare su linee telefoniche a 56k o al massimo ISDN ed oltretutto il cui pacchetto di installazione scaricabile non superi i 700Kb.”
A pensarci oggi di sicuro un sorriso viene spontaneo guardando ai ridicoli numeri, soprattutto i parametri legati alla banda, a cui dovevamo sottometterci per creare quella che doveva rappresentare l’evoluzione di un sistema di videoconferenza. Eppure, anche se l’ADSL stava prendendo già piede, in quegli anni realisticamente solo una minima parte della popolazione italiana ne poteva effettivamente usufruire.
Come si dice spesso, le difficoltà temprano il corpo e la mente…
Di sicuro questo detto è valido in ogni ambito della vita ma in quello informatico il concetto ha una valenza particolare: certi vincoli hanno dei risvolti non sempre positivi in termini di qualità se pur, in un primo momento, sembrano essere convenienti.
Niente Java, .Net né tantomeno Flash o Javascript
Va da sé che quando iniziammo il C++ era l’unico linguaggio in grado di potersi prendere carico dei complessi algoritmi che questa applicazione richiedeva. All’epoca Java, .Net, Flash e Javascript non riuscivano a garantire le performance necessarie per effettuare sui PC degli utenti comuni compressioni Audio e Video tali da rispettare i canoni di banda e velocità su cui si basava una conversazione “normale”, se pur digitale.
Quindi le scelte ricaddero su C++ per il core e l’interfaccia utente, compressione GSM per l’audio, zlib/jpeg per la condivisione desktop. Grazie al cielo, per il video ci si poteva affidare ai codec di default allora preistallati (ma non sempre) su Windows XP.
Ricordo ancora l’opera certosina che facemmo per ottimizzare la condivisione video: dividemmo lo schermo in piccoli quadrati, applicammo ad ognuno di essi 3 tipi di compressione e scegliemmo poi quella che occupava di meno per inviare il singolo pacchetto di aggiornamento.
Una sorta di algoritmo al limite tra l’effettiva efficienza dei bytes inviati e l’esosa richiesta di risorse dei client che in quel momento condividevano il proprio desktop.
Ecco perché li chiamano “Stress Test”
Certo, per fare in modo che un’Aula Virtuale potesse effettivamente viaggiare su modem a 56k, oltre alla meticolosità degli algoritmi di compressione dovevamo anche pensare ad un protocollo efficiente e minimale che garantisse una qualità audio/video accettabile.
E quindi passammo intere giornate con cuffie e microfono ad ascoltare frasi compresse e poi decompresse, con gli occhi a pochi centimetri dal monitor (rigorosamente a tubo catodico) per verificare che tutti i “quadrati” fossero al loro giusto posto.
Prova prova
Fu così che ci trovammo incessantemente a pronunciare le fatidiche parole “Prova prova”, tentando di capire perché quel fastidioso fruscio di fondo non volesse proprio scomparire, con addosso le occhiatacce dei colleghi infastiditi costretti ad ascoltare in silenzio le nostre immutate ed immutevoli litanie.
Un giorno uno di loro ci supplicò: “Scusate ragazzi, ma potreste cambiare frase? Così, per variare un po’…”
Ci guardammo un secondo negli occhi e poi iniziammo l’ennesima sequenza di test. Avviammo la registrazione audio con il mio collega che disse “Evviva la vita”.
Quindi interrompemmo la registrazione e avviamo la riproduzione.
Il PC replicò: “Prova prova”.
E poi fu l’ADSL
Quando l’ADSL divenne alla portata di tutti, i compromessi relativamente ben accettati (povera compressione audio, webcam di ridotte dimensioni e condivisione desktop in jpeg) divennero improvvisamente troppo rilevanti. Oltretutto, anche se il nostro client continuava ad esistere in poche manciate di kilobytes di installazione, divenne inopinabilmente troppo conveniente assemblare un nuovo progetto Flash o .Net importando i componenti di condivisione RDP, audio e video di alta qualità per creare in poco tempo una App qualitativamente superiore alla modica cifra di almeno 25Mb di eseguibile!
Il particolare nascosto
Oggi il mercato offre non pochi sistemi di Aula Virtuale declinati in varie forme e pacchetti, pronti a soddisfare le esigenze di società, enti o privati. E a noi non resta che sceglierne uno e capire come integrarlo nel nostro LMS, cosa non sempre semplicissima né da dare così per scontata da parte dei produttori. Ma non vi nascondo che per ogni Aula Virtuale che ho potuto visionare mi sono ritrovato a cercare nel codice un particolare nascosto, nel nostalgico tentativo di riconoscere qualcosa di familiare.