Benvenuti su Gitbar, il podcast dedicato al mondo dei full stack developer, i mezzo artigiani, i mezzo artisti che ogni giorno infilano le mani nel fango per creare nel modo più efficiente possibile quei prodotti digitali che quotidianamente usiamo.Bene e benvenuti, quindicesimo episodio di Gitbar, il podcast dei full stack developer.Io sono Brain Rebo e i riferimenti per entrare in contatto con noi sono @brainrebo su Twitter o info@gitbar.it In realtà questa quindicesima puntata, un po' fuori dal timing solito del nostro appuntamento del giovedì, non è una classica puntata ma è il rilancio di una live che ho fatto con due vecchi amici Uno è Mario di Mondo Computazionale, una pagina Facebook che insegna il coding sia ai bambini che ai docenti.Una pagina molto interessante che vi suggerisco di andare a vedere.E poi con Carlo, un vecchio collega d'università che ho avuto il piacere di rincontrare dopo più di dieci anni in questa live e fare una chiacchierata.In questa puntata parleremo del caso IMSS, quindi i problemi che ha avuto l'IMSS con la qualità del suo codice e con la cache.In realtà faccio solo una piccola correzione.Nella puntata mi sentirete dire che in realtà non si cachea mai nelle chiamate con dei cookie o con degli header di autenticazione.In realtà, sotto suggerimento di un ascoltatore di Mario, quindi un ascoltatore della pagina YouTube, sono andato a controllare, ed è vero, HMI, che è una delle aziende che promuove e offre servizi legati alla cache, in un articolo del 2015 dice che è, diciamo, un mito comune quello che non si cache mai pagine protette da cookie o headers di autenticazione, ma si può tranquillamente cacciare basta farlo con le dovute accortezze cose che in realtà nel caso dell'Inps non ci sono state quindi non di utilizzare appunto il cache di sessioni protette ma neanche le più basilari regole appunto dell'utilizzo delle tecnologie più standard detto questo io vi lascio nelle mani dell'host della discussione della live che abbiamo fatto quindi nelle mani di Mario che ha condotto questo retta e mezzo di chiacchiera e niente noi ci rinnoviamo l'appuntamento a giovedì e niente buona puntata ciao siamo live perfetto allora una la posso anche bloccare così l'altra qui e vedo un po' di cose allora vedo che c'è già qualcuno in chat buona sera a tutti mi fa piacere vedere che ci siano già un po' di persone parliamo ne approfittiamo chiacchieriamo un pochino di quello che è capitato ieri nel sito dell'Inps non sarà una chiacchierata noiosa legata a quelli che sono i concetti di previdenza sociale, ma ne approfitteremo per chiacchierare su fattori tecnici legati quindi alla programmazione, quindi manterremo fede a quello che è il fulcro del canale.Per chiacchierare con me ho chiamato due amici e colleghi.Uno è Brain che è uno sviluppatore, programmatore, imprenditore e si occupa anche di portare avanti il podcast GitBar per i full stack developer.Quindi ne approfitto per presentarlo.L'altro è Carlo, anche lui un collega, programmatore e formatore come me.Non ha nessun podcast in ballo, ne so io, è sicuramente una persona che può darci dei pareri interessanti, visto che comunque è un programmatore e anche lui si è trovato a sbattere la testa col sito dell'Inps.E quindi, siccome noi siamo amici e colleghi nella vita privata, le nostre chiacchierate invece di farcele al telefono ce le facciamo qui e discutiamo dei vari problemi che abbiamo trovato sul sito, un sito che ci ha creato non pochi drammi, ha creato un sacco di drammi e un sacco di gente, ma a noi programmatori diciamo che ci ha fatto ridere abbastanza.Ieri notte io ho mandato dei messaggi a un po' di gente perché ho trovato l'articolo il post di David Puente che mostrava come nel codice del sito dell'Inps sia stata usata la variabile PIPPO.Poi magari riprendiamo il discorso e spieghiamo perché fa ridere il fatto che sia stata usata una variabile che si chiama PIPPO, che tra l'altro non implica niente a livello di funzionamento tecnico dell'algoritmo o del codice, però dice tante cose sulle capacità o sulla voglia o sull'impegno che è stato preso dal programmatore per scrivere quel codice.Quindi, insomma, nasce un pochino anche da queste cose divertenti.Cerchiamo di spiegare perché possono far ridere, ma soprattutto parliamo anche di questo fantomatico attacco hacker visto che i giornali subito non si sono fatti scappare la notizia, hanno scritto subito "oh è stato un attacco hacker".Ora non ricordo, ho letto sul Corriere che ci sono state varie dichiarazioni anche da parte del direttore dell'Inps, "siamo stati hackerati" che fondamentalmente è la scusa che usano tutti quanti quelli che scrivono cose ridicole sul proprio profilo di qualunque social e poi se ne pentono e dicono che sono stati hackerati.In questo caso non ci sono dichiarazioni ridicole da nascondere ma probabilmente l'incapacità di chi ha fatto determinati lavori.E poi anche lì si discuterà sul Il fatto che si sia potuto trattare non per forza di reale incapacità, ma anche di persone capaci ma sottopagate, persone messe non nella giusta situazione di lavorare.Ci sono tante cose che si possono dire.Una delle cose più importanti è legata al fatto che c'è stata non una vera e propria fuga di notizia, però molti profili privati sono stati mostrati per errore a chi non avrebbe dovuto vederli, cioè agli utenti che cercavano di entrare nel proprio profilo.Sono riusciti a vedere le pagine e i profili degli altri utenti, quindi creando un sacco di problemoni.giustamente mi avete fatto notare voi, la questione è peggiorata quando per fare gli spiritosi hanno postato i screen online mostrando ulteriormente dati sensibili alla collettività.E quindi, insomma, queste sono cose che non vanno tanto bene.Quindi questo è un problemone non da poco.A quanto pare questo problema dipende, dicono, dalla possibilità che sia stata impostata male la cash.In realtà alcuni giornali parlano anche di cdn.Cosa dite voi? È un problema che può essere relativo all'utilizzo sbagliato della cash? Intanto se avete voglia, uno di voi, riuscite a spiegare in parole povere cosa significa...Ora, qui come stavi dicendo tu, i problemi che si possono notare sono diversi, quindi dalla struttura del codice al gestione del GDPR con la proprietà, con la privacy dei contenuti e quest'ultima va ad attaccare, oltre alla qualità del codice e tante altre quello che riguarda la qualità del lavoro totale.Quindi il sistema di cache come funziona, come si può trovare in giro niente di nuovo, niente che mi sto inventando, è praticamente un server che predigilisce la risposta.Quindi quando noi si chiede una pagina internet, questa pagina internet viene costruita nelle varie parti da un programma, dal programma che scrivono gli sviluppatori.Quindi prende da database il nome dell'utente, lo posiziona all'interno della pagina, sto semplificando molto, però genera quello che è l'HTML e il JavaScript e lo fornisce al cliente finale.Cosa succede? Che se noi mettiamo una macchina o un servizio che sta in mezzo tra il cliente e il server, che predigerisce questa cosa già confezionata, che se la tiene in pancia, se arriva una richiesta identica alla precedente, invece di ricostruire nuovamente tutta quanta la pagina rifornisce quello che è già il contenuto predigerito.Questo cosa comporta? Che non bisogna chiedere al database il nome dell'utente, riposizionarlo ad un certo punto e ricostruire tutto quanto, ma ce l'ha già pronta e quindi capisci bene che le risposte è un cliente in meno che è soddisfatto.Già la risposta è quando è avanti.E quindi si stressa di meno il server.Quindi si stressa di meno, costa meno perché comunque è corrente elettrica, banda, utilizzo di risorse.In generale l'economia dell'infrastruttura la utilizza meno.Però cosa succede? Che non tutte le risorse sono cacciabili, o meglio, non tutte le risorse devono essere cacciate in ugual misura.Perché cosa succede? Che se io entro nella pagina mio sito.it/io, cioè inventando un sito internet, e mi restituisce Carlo Satta, e quindi i miei dati, quelli vanno bene per me.Se poi entri tu e entri nella stessa identità che ho percorso, non è corretto che io, in questo caso sei tu, vedi i miei dati.Che è in grosso modo quello che è successo.Certo, perché spieghiamo bene che un sito web in linea di massima, Mauro se vuoi intervenire e vuoi aggiungere qualcosa chiaramente intromettiti, c'è da spiegare bene che un sito web non ha, questo proprio per chi non ha idea di come funzioni il sistema, non ha una pagina per ogni utente ma ha un'unica pagina che richiede i dati dell'utente dal database e poi li mostra.Quindi Quindi, cosa succede? Quella pagina lì è stata effettivamente messa in cache.Io, per renderlo ancora più semplice il concetto, dico come se venisse fatta una fotografia a quella pagina lì, una copia statica, quindi non dinamica, che va a fare richieste e venga mostrata al posto del risultato dell'elaborazione della pagina dinamica.Ed è per questo, come giustamente diceva Carlo, che...Ed è per questo che effettivamente io entrando nella mia pagina trovo i dati dell'altra persona, perché quella pagina che io sto visitando è la stessa che viene utilizzata per caricare i dati per ogni utente che si logga.Quindi a livello tecnico, a livello di codice, la pagina che produce il risultato è la stessa per ogni utente, solo che carica informazioni diverse prendendole dal DB, dal database.Assolutamente sì, io voglio raccontare la cosa un po' come l'ho raccontata a mia zia, che è talmente tecnologica che l'unica cosa digitale che riesce a usare è la lavatrice, quindi potete immaginare le capacità tecnologiche di mia zia.E ho detto semplicemente "Ehi zia, guarda, la cache in realtà non è altro che mamma".Quando mi trovo a casa dei miei genitori o mi trovavo a casa dei miei genitori o mia moglie in questo caso e non voglio aprirle l'armadio per vedere dove sono i pantaloni quindi non voglio andare in camera da letto per aprire l'armadio e cercare i pantaloni dico "Ehi William, ehi mamma, dove hai messo i pantaloni?" e mamma dice "Sì sono nel secondo cassetto e sono blu, sono fatti così" quindi ti dà già l'informazione senza che tu vada a sovraccaricare quindi arrivi all'armadio, sprechi energie e risorse per andare a cercare i pantaloni.Ecco, questa è se proprio volessimo banalizzare il concetto di cash.Adesso, se me lo permettete, vorrei un attimino entrare un pochino più nel merito tecnico, ma senza scendere troppo in tecnicismo.Se diventa troppo tecnico ti faccio un placcaggio io, non voglio che diventi troppo tecnico questa discussione perché poi le altre persone non possono seguirci.Sarà semplicissimo, sempre come se stessi parlando a mia zia.Salutiamo la zia di Mauro.In realtà il problema è un problema di tipo ingegneristico.Allora, faccio un po' l'avvocato del diavolo.Posto che gli ingegneri che lavorano alle piattaforme IMSS hanno avuto pochi giorni per implementare questa soluzione perché se non mi sbaglio il decreto è del 28 quindi stiamo parlando di una manciata di giorni per implementare una soluzione che molti mi diranno è ma è un crude deve solo salvare dei dati.No no no scusami io ti dico anche un'altra cosa non è che hanno dovuto avuto modo di implementare cioè si parla del login cioè porca miseria non funzionava il login cioè uno entrava si logava entrava nella proprio profilo personale vedeva i dati gli altri.Sì, però abbiamo spiegato cosa ci sta sotto.Il discorso è a livello proprio di sviluppare un sistema che sia scalabile per sopportare quei carichi.Quindi hanno sviluppato una parte nuova del sistema, delle nuove feature, delle nuove funzionalità e l'hanno fatto in tempi molto ristretti.Problema 1.Problema 2.L'hanno fatto in un contesto che intanto è italiano, dove manca una vera cultura dell'informazione.Due, l'hanno fatto nel contesto della PIA, dove manca la cultura dell'informatica.Parliamo degli enti, noi lo sappiamo.Della pubblica amministrazione? Sì, della pubblica amministrazione.C'è, se entrate nel sito del garante alla privacy, c'è una dichiarazione di Antonello Soro in merito a questo caso dove dice che è una cosa comune che si ripresenta sempre il problema che le pubbliche amministrazioni non presentano delle soluzioni tecnologiche all'altezza del compito che devono compiere.Certo, però perché adesso il vostro lavoro è fare i programmatori, Mauro lavora come programmatore ma anche come imprenditore quindi assume anche dei programmatori.Io dico Mauro, intendo Brain Rep o comunque quello lì col maglione rosso.Carlo lavora come programmatore, anche io lavoro come programmatore.Ora, lavorando privatamente, facendo un lavoro del genere, con un risultato del genere, con una variabile in vista che si chiama PIPO, anche se non comporta problemi a livello di esecuzione del codice.Con quegli IF annidati completamente inutili, con un errore di impostazione di cash del genere, in quanto tempo saremmo stati licenziati lavorando per un privato? In quanto tempo avremmo avuto una bella scarpata per cacciarci via in malo modo.Io sto cercando di non essere così cattivo, se parli così accendi il fuoco.Ma che di fuoco? Ma è così? Carlo cosa dici? Allora io purtroppo non la vedo così rosea.Non la vedi così rosea? No perché non è vero, secondo me non è vero che c'è la scusante, o meglio, non penso che ci sia il problema del poco tempo.Perché l'IMS è storicamente famoso per fare delle cose che si chiamano il click day, cioè succedono dei giorni in cui vengono stanziati dei fondi e chi entra cliccando, i primi che entrano, riescono a prendere una porzione di questi soldi.Quindi tecnicamente l'IMSS...Vogliamo dire che questa roba qui non è soltanto relativa a questo "sussidio" di 600 euro per euro? È una cosa che è ricorrente nel sito dell'IMSSS? Esatto, è ricorrente.Probabilmente non in questa modalità, per questa casualità, ma so perfettamente che esistono dinamiche simili che avvengono nel tempo e soprattutto si sa perfettamente che in un momento di emergenza come questo, con un vaccino di partite IVA come in Italia, si sapeva già a grosso modo la potenzialità del carico che si doveva soddisfare.Di conseguenza, il fatto che secondo me è stato mal progettato da priori, Esatto, cioè la parte sistemistica, come si doveva fornire, era già progettata all'inizio, perché si sapevano già, già noi chiacchierando così due minuti abbiamo già trovato un paio di valori che si potevano utilizzare come indicatori per calibrare la grandezza del sistema.E poi il sito internet in sé, per come è stato scritto, quindi se quel poco di JavaScript, cioè la parte di linguaggio di programmazione che riusciamo a vedere dal codice...Tra l'altro voglio interrompere dell'iceberg? Il sito è scritto in ASP se non sbaglio.In Java dici? Ho visto che ci sono delle parti anche in Java.Scusa Carlo, scusa Nymx, ho bisogno però di fare una precisazione.Allora, quando ho detto che è necessario fare due passi indietro e guardare anche il contesto, i pochi giorni, il livello di cultura dell'informazione che c'è in Italia è che è disastroso, il livello di tecnologia che c'è nella pubblica amministrazione che nonostante il lavoro fatto da Piacentini che può piacere o non piacere, per il quale io non mi esprimo, continua a rimanere abbastanza tragico o tragicomico.Perché faccio questa premessa? La faccio perché è necessario, dal mio punto di vista, cercare di guardare a un raggio ben più ampio che puntare il dito sul programmatore che ha fatto "if true, do what is true" perché il programmatore vive un contesto, noi siamo anche parte del contesto nel quale lavoriamo, se lavoriamo in un contesto sano che ci stimola al miglioramento, che magari ci mette a fianco un senior capace che ha avuto esperienze anche di sviluppo enterprise perché qua i livelli sono molto alti.Quando parliamo di IMSS parliamo di un sito che deve servire tantissimi.Dovrebbero essere molto alti.Dovrebbero, è giusto.Però dico, se tutto questo manca, allora la responsabilità non è del programmatore.Vero è che è molto facile puntare il dito contro il programmatore.Aspetta, diciamo anche un'altra cosa, il programmatore non ha una colpa reale, cioè il programmatore è stato messo lì, il problema è chi ha dato quell'incarico al programmatore, se prendono un ragazzino che non è in grado di programmare, che poveretto, magari poi è anche in grado di programmare, semplicemente non l'hanno messo nelle condizioni giuste, il problema non è suo, cioè magari uno potrebbe dire "non sono in grado, non me la sento, rinuncio all'incarico", però il problema è che questa roba qui di solito dovrebbe funzionare o probabilmente funziona con degli appalti, no? C'è da fare il sito di una pubblica amministrazione, si fa l'appalto, si fanno le gare d'appalto, qualche azienda vince l'appalto e sviluppa il sito.Ma la qualità del lavoro svolto la controlla qualcuno? Effettivamente non so, questo lo ammetto, non so se è appalto esterno o se è fatto internamente.Questa è una cosa che io non lo so.In ogni caso immagino che ci sia una gerarchia, come dicevi tu, dallo sviluppatore fino al direttore, al dirigente che gestisce tutta una vera cosa.Ed è sintomatico perché non è proprio possibile.Stiamo parlando di miei soldi, miei dati, da cittadino e non da programmatore.Caspita, se tu mi chiedi le tasse, adesso faccio un discorso che può finire nel populismo, però se tu mi chiedi le tasse in un certo modo e mi dai degli strumenti per gestire quelle tasse, per gestire tutta quella che è la mia vita, della mia azienda, della mia parita IVA, voglio essere preso seriamente e il vedere Pippo o il sistema di caching o il sistema che crolla mi indica poca cura.Su vari livelli.Lo sviluppatore gli è stato permesso di scrivere Pippo, che sarà l'ambiente poco costruttivo, poco elastico, però gli è stato permesso di farlo perché quello del gallino sopra non l'ha caziato e via salendo.Perché scusa, finisco con te, credo che sia sintomatico di una situazione più grande che in Italia, non voglio essere offilo, però una cosa che si vede molto è che il mio cugino lo fa.Molto spesso non si capisce che delle figure apposite hanno studiato per fare esattamente l'IF, per fare esattamente il ciclo 4, per fare esattamente le stesse indiche cose che fatto cugino, ma hanno tanta esperienza dietro, sulle spalle, che ti permettono di sapere usare nel momento giusto.Quello è sintomatico di "non te ne frega nulla di chi lo utilizza, ma ti chiede di chiudere il tasso, il compito".E quindi nasce il casino e mi rompe le scatole.No, vabbè, su questo per carità ci sta.Poi bisogna vedere se, io non credo che, insomma, un lavoro così di pubblica amministrazione sia stato affidato a...insomma, io non so chi ha sviluppato la verità.Però dico non credo che sia stato affidato a gente X.Sicuramente saranno stati fatti degli appalti e qualcuno avrà vinto.In realtà io avevo conosciuto una persona che faceva questi lavori per le pubbliche amministrazioni, ma adesso è inutile che lo tiri in ballo, anche perché sto parlando di una cosa che avevo visto 15 anni fa, quindi probabilmente non sarà più la sua azienda a fare questi lavori.Ed era una persona che che aveva tutte le certificazioni Microsoft, infatti il sito vediamo che ha le estensioni delle pagine ASPX, però probabilmente comunque lui ha dovuto presentare, cioè chi ha fatto questi lavori ha presentato delle referenze o comunque un curriculum d'azienda.Il problema è chi ha controllato il lavoro, perché non c'è stato un livello di qualità, degli standard qualitativi comunque da seguire.Io non so se voi avete visto, c'è un video che sta girando molto da ieri, so che l'avete visto perché ce lo siamo scambiati, il video dove viene mostrato, vengono mostrate delle porzioni sempre di codice java scritto, perché tecnicamente l'unico che possiamo andare a leggere.Chissà cosa c'è scritto nel back-end, non ci voglio neanche pensare, vabbè.Dove si vedono degli if, si vedono degli if che non hanno senso di esistere.Prima viene definita una variabile, poi se quella variabile è uguale alla stringa che conteneva perché è stata inserita nella riga precedente, si può entrare nell'if e nel...io sono andato a vedere di nuovo quel codice e nel video non viene sottolineato, però è divertentissimo, che è stato proprio scritto un if come se lo scrivesse un bambino.Se questa variabile è uguale a qualcosa, non fare niente, ci sono le due graffe vuote, poi else, allora fai qualcosa.Cioè non sono stati in grado neanche di negare, di usare un not in un if.No, ma poi hanno verificato se la variabile è uguale a se stessa e quindi insomma o lo sviluppatore aveva una crisi d'identità o non lo so cosa stesse succedendo.Ma probabilmente...Scusa se ti interrompo, credo di aver condiviso il mio schermo.No, io non lo vedo, io non lo vedo.Però se...Ok.Non so Mauro tu riesci a vedere lo schermo di carino? L'audio, il video sta arrivando molto dopo l'audio quindi in realtà sono un po' perso.Ah ok.Ok peccato, vi volevo far vedere esattamente.Non riesci a condividerlo.Aspetta, aspetta, l'ho visto, aspetta Carlo, lo vedo.Ok.Eccolo qua, è che scusate io non so ancora usare bene questo strumento che stiamo usando per streamare quindi la colpa è la mia, perdonatemi.Allora.Tra l'altro ne approfitto per leggere, che lo mostri dei commenti.Roberto Cramastetter scrive "la pubblica amministrazione funziona per la capacità di pochi dipendenti".E questo purtroppo certe volte corrisponde alla realtà.Poi saluto Raffaele che vi stai passando in chat e tutti gli altri che vedo che sono in chat, Giovanni e tutti gli altri, Filippo, Bruno, Mattia eccetera eccetera.Vai, continua, Allora, molto banalmente, non è una cosa hacker assurda.Sono entrato sulla pagina di login e come si vede in alcuni siti che stanno girando in questi giorni, tasto destro, visualizza sorgente pagina.Questo è il risultato ed è esattamente il codice HTML e JavaScript all'interno della pagina e c'è questa cosa qui.Tra l'altro, perdonami che ti interrompo un attimo, questo è il codice della pagina sì, di login è anche è lo stesso codice che viene mostrato nel video che sta girando su YouTube, ma soprattutto non vorrei dire sciocchezze, ma credo che sia anche la stessa pagina dove c'era la variabile Pippo.Non è la stessa.Non è la stessa? Non è la stessa.Quindi ti fa capire che sono più pagine e quindi è proprio un comportamento regolare.Non è possibile che abbiano fatto un deploy veloce veloce ieri? Non lo so, perché io sono andato a cercare effettivamente la pagina Pippo, la pagina che contiene la variabile Pippo e non l'ho trovata, invece ho trovato subito questa.Mario, hai cercato Pluto? Come hai detto Mauro? Hai provato a cercare Pluto? No, ma Pluto si fa al biegno, al triennio.Non so se me lo ricordate.è già avanzata, programmazione avanzata.Esatto, programmazione di algoritmi avanzati, Pluto.Allora, perdonatemi una battuta, voglio essere ironico, perché prima ho provato a fare l'avvocato del diavolo, però in realtà mi viene veramente difficile prendere le parti degli sviluppatori e dei sistemisti, degli ingegneri, degli ops.No, ma ci sta, come poi poveretti, sicuramente non incolpiamo, intanto non incolpiamo nessuno.No, quantomeno stiamo a capire il contesto.Sì, infatti il lavoro fine a se stesso, valutiamo giustamente il contesto.Però siccome mi avete aizzato, mi è venuto in mente un detto che gli informatici tirano fuori una volta ogni due, che è una frase che disse Phil Carton, un famosissimo sviluppatore e amico di un certo Bob Martin, chiamato anche Uncle Bob, che è uno dei pilastri dell'informatica, a colui che ha scritto un libro che suggerisco a tutti quelli che vogliono imparare a programmare che è Clean Code, che è un must se vuoi fare questo lavoro, che dice "in informatica due sono le cose complesse e questi dei limp sono riusciti a farle male entrambe".Dari i nomi alle variabili...Non sono le cose complesse, mica quelle difficili.Senti però di cosa si tratta, anzi lo sai benissimo.dare i nomi alle variabili e ci sono riusciti e soprattutto invalidare la cash e ci sono riusciti quindi due su due.Potevano sbagliarne uno? No, ne hanno colpito due.Tra l'altro fai partire il marchettone, c'è una puntata del podcast di Gitbar che parla proprio del problema di dare un nome alle variabili.Questo era il marchettone che mi sembra doveroso fare visto che sei qui a chiacchierare con noi, hai dedicato oltre 30 minuti all'argomento, quindi se volete andare a sentirvelo c'è il link di Gitbar nella descrizione del video che state guardando o dell'audio che sentirete.Vai, continua, continua.Comunque quello che stiamo facendo è una cosa che in azienda si fa sempre, che è la review del codice.Quindi quello che stiamo facendo adesso, ridendo come tanti altri italiani, avrebbero dovuto fare loro dentro una stanzetta la review.Comunque, primo errore, hanno preso una variabile, va bene, ci hanno messo dentro True come stringa, c'è un tipo booleano che occupa un bit sopra della stringa, va bene.Poi fanno un bel controllo per case se è uguale a True.E già queste, già queste righe, per me basterebbero per richiamare all'ordine un programmatore.Licenziare no, ma richiamare all'ordine sì.Poi fanno dove il ramo vero è vuoto.È quello che ho detto prima! Non conoscono il not, non conoscono la negazione.Non hanno pensato a usare un not.Sono positivi.Mario, noi due facciamo, gli insegnanti facciamo corsi e lezione uno.Sì, sì, esatto.Cioè quando fai...due.Sì, sì, sì, esatto.Cioè il propedeutico.E poi le cose, questa però è un po' più tricky, più hacking.Tra l'altro ho notato anche la delicatezza del fatto che il primo if non ha le graffe, ma l'altro ce le ha, però sono vuote.Bravo, bravo, me l'avevo notato.Questo non è un errore, però diciamo che non è bello come codice, non è un bel formalismo.E l'altra cosa stupenda è che il try, che questo è già un costruito un po' più hacking, spinto.So che è un lavoro sinutile di try and catch.A un try and catch vuoto.Se c'è un errore, se esplode tutto, non fare niente.Non è successo, non mi era accorto.E poi qui c'è la chicca delle chicche, che è una funzione, con variabile "hasd", che aggiungere 0 davanti, che non voglio sapere a cosa serve.Tra l'altro vorrei far notare a chi sta seguendo che la variabile ASD si chiama ASD perché sono le prime tre lettere che trovi con la mano sinistra cliccando sulla taziera.Non è un caso che si chiami ASD.Abbiamo chiamato tutti nei nostri script delle variabili ASD, però poi… Le abbiamo corrette, va.Le abbiamo corrette.Come ho detto nell'episodio del podcast, quando diamo i nomi alle variabili noi pensiamo di dare il nome al nostro figlio e tu come chiami tuo figlio? Asd, vieni qua! In Inghilterra ci hanno tirato su un supermercato aggiungendoci una vocale, però… Beh, possiamo vedere già che qui ci sono due persone.Secondo me questa è proprio una speculazione.Probabile, probabile.L'identazione è fatta in questo formato qui, questo è formato in un altro formato.Quindi già questo potrebbe essere sintomatico di più persone.è stato copiato da una pagina diversa di Stacco Verblug.Sì ma nelle ultime risposte, quelli in basso, non si caga nessuno.Esatto.Comunque io continuo a dire che una sola pagina, pagina di login, quindi per andare contro il famoso avvocato del diavolo che hai fatto tu poco fa, poco tempo no perché se solo la pagina di login, penso che si faccia nelle prime fasi di un sito, penso che l'abbiano fatto così, non so il loro percorso, c'è tutto questo.Non oso pensare i miei dati come vengono gestiti.Bravo, è un bel problema.I dati fiscali, le cose più intime che ho, che sono pochissimi cari.Per tutti noi è così, giustamente.Sono informazioni estremamente riservate.Infatti dovrebbe esserci un garante che vigila su queste cose, pronto a a multare chi lavora male con i nostri stessi soldi.Va bene, sorvoliamo su questa roba perché tanto a noi ci interessa il fattore tecnico e non ci interessa il...Adesso vi chiedo una cosa perché effettivamente io non so dare una...Carlo, vuoi mostrare qualche altra cosa sul sito che hai aperto? Stavo lasciando semplicemente questo che è un bel sitarello che ho utilizzato per questa analisi, per quanto le mie competenze sono queste, in cui si vede un pochettino quale è lo stack che hanno utilizzato, però meno quello che si può evincere da un paio di indagini del codice.Quindi possiamo dire che è qualche tecnologia, anzitutto che è un ambiente, mi pare, molto Microsoft-centrico.Perché abbiamo Azure, abbiamo...Chi l'avrebbe detto? Ma non c'è niente di male, Microsoft...No, non dico che ci sia niente di male.Dico soltanto che...Io vengo da una scuola un pochettino differente, però...Lo so.In realtà veniamo tutti da una scuola estremamente differente.Però effettivamente Carlo è stato una vecchia gloria del progetto Linux User Group di Startup e quindi effettivamente il segno in questo campo l'ha lasciato.E va beh, possiamo vedere che ci sono un po' di libri vecchiotto, diciamo che non sono gli ultimi standard, standard di qualche anno fa, che ci può stare.No, va beh, ma in un ambiente enterprise non c'è nulla di male a usare jQuery, certo c'è di male a usarlo come è stato usato, no? Abbiamo un selettore in vanilla javascript che ti permette di selezionare quegli elementi e se tu vai a vedere nel loro codice jQuery usano semplicemente il selettore e poco altro.Quindi in realtà hanno utilizzato un motopicco per mettere un chiodo sul muro.Ma ci sta, va bene.Io volevo ritornare invece a ragionare un attimino sulla progettazione, che poi è la cosa che mi affascina di più e mi ha preso di più di questa situazione.E ho provato a fare un ragionamento.Allora, quando si usa la La situazione secondo me, ed è una speculazione la mia, ma non penso di allontanarmi molto dalla realtà.Secondo me è successo questo, hanno tirato su un crude velocissimo, perché visto quello che abbiamo visto anche dal video di pochi fotogrammi di back-end, non so quanto attendibili perché non li ho verificati di persona.Ma back-end non ne abbiamo visto? Io ho visto dei video su YouTube.Di back-end? Si, si vedeva.Il codice A? No, no, no.No, no, no, si vedeva il il back-end del sito dove arrivavano tutte le richieste per la bellissima Ah, sì, sì, sì, ok.Back-end non inteso come classi, lato serve come pannello di amministrazione So che per il problema della cash, del famoso problema di cash, so che una persona è stata, come si dice, ha gradato all'amministratore, ha avuto la fortuna che è passata all'utente Ok, e io infatti abbiamo visto tutti quanti quel video dove appunto un utente, qualunque credo, è stato portato a livello di amministratore.Ed era proprio questo che io vi volevo chiedere.Ma secondo voi con un problema di cache può capitare una cosa del genere? Secondo quale logica? Secondo la logica che prima si è logato l'amministratore? Allora, il ragionamento è questo.Mi sono fermato proprio a riflettere.È un problema di tipo architettonico, quindi si parla di architettura del software.hanno progettato questo software l'hanno fatto senza prestare attenzione a alcune cose che sono molto importanti intanto al ragionamento sulle risorse nel senso che quando tu accedi a una risorsa ok devi identificare la risorsa perché con la cache si è potuto vedere i profili degli altri perché il server ti restituiva una risposta personalizzata però partendo da un indirizzo generico.La pagina del tuo profilo, adesso non mi ricordo esattamente l'url, però l'indirizzo per accedere a quel tuo profilo era sempre uguale, ok? Però ti restituiva il tuo profilo personale, questo perché il browser quando fa la chiamata utilizza delle sessioni, ok, che sono dei dati che stanno nel browser che quindi quando tu vai a chiedere la pagina ti restituisce la pagina in funzione anche di quelle informazioni.Cosa succede? I sistemi di cache, alcuni sistemi di cache vanno a memorizzare la pagina partendo da quell'indirizzo per cui una buona pratica, anzi un must è quello di non cachare delle pagine che rispondono dei dati a partire da delle sessioni o dei cookie che sono quella informazione nascosta del browser che ti permette - ce lo metti in parole più semplici? Pagine che rispondono dei dati a cookie o sessioni? Allora...Non per me, non per noi, ma giustamente per chi sta seguendo, magari non è un informat...cioè per capire meglio di cosa stiamo parlando.Se dovessi fare un esempio semplice semplice, vi parlerei dell'iPhone e dell'impronta digitale.Quando tu sblocchi l'iPhone, ok, lo sblocchi con il tuo ditino, premi sul tasto, lui riconosce la tua impronta digitale ed entri nell'iPhone.Ma Carlo potrebbe premere il mio pulsante e lui non entra.L'impronta digitale, quell'elemento che non vediamo nella fase di premere il tasto, è una cosa che ci identifica.La stessa cosa fa il browser.Quando noi ci autentichiamo, cosa succede? Viene generato un piccolo cookie, che è un'informazione che sta nel mio browser, che dice "Ehi, questa sessione di lavoro, questo accesso è quello di Nebumix.Quindi tutte le volte che Nebumix fa una richiesta, ricordati che te lo sta chiedendo Nebumix.In realtà il dato che sta nel browser è un dato che potrebbe sembrare insignificante, ma che si collega però a delle informazioni che stanno sul server.Quindi quando Nebumix entra nel sito www.pippo.it, giusto per stare in argomento, se si è logato e nel browser c'ha questo biscottino, si chiama appunto cookie il sito riconosce che quella pagina la sta chiedendo Mario o Nebumix e gli viene restituita una pagina personalizzata.Bene, la prima regola per chi usa la cache è non utilizzarla in situazioni dove la richiesta può dipendere da un cookie, quindi questo biscottino magico che ti permette di personalizzare i dati o sessioni.Questa è la prima regola che è stata infranta.Ho fatto sessioni, non ho sessioni, ho delle sessioni.Sì, questa è la prima regola che è stata infranta, quindi presuppone un problema non solo a livello del programmatore, ma anche a livello dell'architetto dell'informazione.Di chi ha progettato tutto il sito, certo, di chi ha ingegnerizzato il processo.Altra cosa importante, io ho avuto una piccola discussione su Twitter perché in realtà le responsabilità vanno distribuite.Un'altra responsabilità ce l'hanno avuta gli Ops che non sono i programmatori.Cosa fanno gli Ops? Gli Ops sono i sistemisti, quelli che si occupano delle operations.La loro responsabilità...Salutiamo Augusto a proposito di sistemisti che ci segue.In In realtà mi è arrivato adesso un messaggio da un amico sistemista che mi ha scritto che è collegato con noi.Saluto anche io Augusto, ciao Augusto.Magari lui può correggerci e precisare delle cose.Se vuole può intervenire, mi può scrivere.Vai, continua.Però il discorso è che il problema è stato anche da parte degli Ops.Perché? perché in realtà un'altra regola della gestione della cache dice che tutte le chiamate, io ricordo che tu hai fatto una puntata sull'HTTP, è possibile Mario? Sull'HTTP? No, quando ho parlato probabilmente delle reti di Deep Web.Forse sì, io mi ricordo che...Dark Web, ho vagamente accennato il fatto che con l'HTTPS il protocollo permette di e criptare le informazioni con l'http fossero in chiaro.Forse allora sto ricordando male, però esiste una differenza tra le chiamate che noi facciamo al server, ok? E le chiamate possono essere di tipo GET o POST.GET vuol dire dammi, POST in qualche modo tu stai dando dei dati al server, quindi la differenza è questa, no? Sono due tipi.Un'altra regola ci sono più tipi oltre a questi, che sono più usati? sì, c'è il delete, c'è il put, in realtà ce ne sono diversi però semplificando quelli più utilizzati, in qualche modo vanno incidere nei meccanismi di cache sono questi due bene un'altra regola dice di non utilizzare il put per la cache e anche questa è una regola che da quello che mi è sembrato di vedere è stata infranta quindi veniva attivata la cache o qualcosa del genere anche quando tu servi dati.Molti sistemi non lo permettono, io penso a Varnish che è un sistema di cache che utilizzo nel mio processo di lavoro, non te lo fa fare.Però così leggevo, in realtà non ho avuto modo di approfondire bene bene anche perché è una cosa freschissima, poi io mi sono un po' spostato dall'argomento perché se no mi abbellenavo troppo il sangue.Beh, ci sta.Quindi dicevo, il problema non è solo dello sviluppatore che sta là, ma il problema è un problema proprio di filiera.Il problema è che A) non abbiamo una cultura di informazione e B) non abbiamo una cultura di tecnologia come industria, caspita.E sta là il problema.Non riusciamo a vedere, il mio cugino team leader non riesce a vedere che in realtà l'approccio "il mio cuginismo" non trasforma questo...Il mio cuginismo è bellissimo e lo userò da oggi in poi, lo userò sempre questo termine.Non trasforma questo ambito in un ambito di tipo industriale che deve garantire degli standard.Quando tu costruisci le macchine ti puoi permettere questo tipo di errori.Quando tu progetti le autovetture ti è permesso...no! Perché ci sono tutta una serie di standard da rispettare.In realtà anche quando fai un sito per un'azienda privata ci sono degli standard da rispettare e ti cacci.Immaginati se Amazon fa un errore del genere.Quanti miliardi perde in dieci minuti.E poi non facciamo i santi.Nel senso che chiunque ha lavorato come programmatore sa perfettamente che in alcuni progetti con budget molto contenuti, quindi strozzato, si arriva a fare delle cose che con il famoso paradigma "basta che funzioni".Assolutamente sì Carlo, quello che dici è sacrosanto.Però ci sono realtà che possono essere pubbliche o private dove non lo aspetto e quindi vi do pienamente ragione.Non ci deve essere, ci devono essere tutte le best practices, tutti i protocolli, tutte le ribadiamo vorrei ribadire vorrei ribadire con particolare attenzione questo che giustamente appena toccarlo tutti noi noi tre ma tutti quelli che seguono e quelli che seguiranno quello che sentiranno qualunque programmatore prima o poi è stato tirato in ballo in una situazione in cui il tempo e le risorse erano poche e doveva far funzionare qualcosa in fretta basta che funzioni e quindi tutte le attenzioni che avrebbe dovuto mettere nella realizzazione non sono state potute mettere.Ci siamo passati tutti, quindi questo è verissimo ed è importante ribadirlo assolutamente.Quindi ribadisco, tutta questa roba qui che stiamo dicendo non è, poveretti io non so chi è il programmatore che ha fatto sta roba, ma sicuramente non è un problema che ha causato lui direttamente.Lui fa parte di una serie di problemi a cascata che hanno portato a questo problema qui.Il fatto è che in una applicazione web importante come il sito Elimps non è giusto, anche perché è stato pagato poi immagino con soldi pubblici, quindi non è giusto che non venga tenuto a conto di tutti quelli che sono gli standard e sono standard non a caso, sono standard proprio perché tutti li possano rispettare per quanto riguarda la qualità e la sicurezza.E poi basta che funzioni, basta che funzioni, perché quando non funziona.Bravo, esatto, deve funzionare.In quanto imprenditore tu sai perfettamente che se il tuo scodice è scritto male o non funziona eccetera eccetera c'è la grande legge del mercato che lentamente o molto velocemente ti allontana, ti fa fallire, chiudi.Questa è realtà.Quindi Amazon scrive male i propri service, chiude.Fine.Nel senso che inizia a fare così tanto schifo che prima o poi andrà a chiudere.Bravo.Non credo che domani chiuda.Non credo che chiuderanno il sito perché non è in servizio.Non può chiudere.Certo.Di conseguenza mi da crepo.Allora, quello che dice Carlo è sacrossanto.Nel senso che oggi, più di ieri, la velocità del mercato è veramente frenetica, quasi malata direi, no? Tutto molto molto molto veloce e il time to market, quindi il tempo che tu metti per realizzare qualcosa e metterlo nel mercato è talmente stretto, se sei un imprenditore, quindi se poi ti devi confrontare con il mercato e non hai le spalle parate, no? Però è talmente veloce che da una parte devi andare sul mercato con qualcosa, dall'altra devi creare un qualcosa abbastanza robusto, non robustissimo, abbastanza robusto da sopportare il carico e essere sostenibile nel tempo.Con Mario Nebumix ne abbiamo parlato tante volte.Lo sanno, io mi presento sempre come Mario, è che Nebumix lo uso per i miei account.Con Mario ne abbiamo parlato tante volte perché il feticismo dello sviluppatore che cerca la perla stilistica nel suo codice, ci divertiamo nel fare queste cose però spesso veniamo intrappolati da questi elementi e ci ricapita di riscrivere le nostre applicazioni due o tre volte.E non andare mai in produzione.E non andare mai in produzione.Quindi è necessario, come diceva Carlo e lo sottolineo con l'evidenziatore, un equilibrio tra la bellezza stilistica e l'utilizzo degli standard e poi il pragmatismo, questo lo dico da imprenditore, per andare in produzione e cercare poi di portare i quattrini a casa per poi poter mangiare.In un sistema, in una situazione come quella dell'Inps, dove in realtà dal mio punto di vista il mero problema è che manca competenza in chi controlla.Questo è lo snodo principale.Quindi il problema è che secondo me va ripensato il ciclo degli acquisti degli enti pubblici, ma questo aprire idee, i capitoli che forse non è neanche il contesto adatto per poterli aprire, però dico in questo contesto in realtà bisognerebbe proprio ripartire dalla fase di controllo, di testing delle applicazioni, anche quando c'è poco tempo.Nel senso se hai dieci risorse e le devi dedicare a questo, dedica ne 5 e 5 e soprattutto si veloce e e implementa quelle tecnologie che sono tecnologie agile, se ne parla tanto in questo periodo, quindi sono proprio dei modelli non tanto di software o tecniche di sviluppo codice, ma proprio tecniche di gestione del tempo, gestione del team, gestione dei carichi di lavoro, che ti permettono di, se hai preso un granchio, di riandare in produzione con qualcosa di funzionante dopo pochi minuti.Io non so se loro in realtà le implementano.Dalle situazioni che mi è capitato di vedere nella pubblica amministrazione, e io ci bazzico veramente poco, cerco di tenermi alla larga il più possibile.Di manco in Italia, tra l'altro.Esatto.Non pensare che qua in Francia sia molto diverso.Però diciamo che...Guarda, sto vedendo specialmente questi giorni delle cose che mi hanno fatto riemergere pesantemente il mio orgoglio italiano.Però chiudiamo questa parentesi, dico, il vero problema in realtà è che manca completamente, da cima a fondo, la cultura del software, la cultura del software come industria.Ci sta, ci sta, va bene, anche perché poi ci si potrebbe spingere molto più in là, basandosi su questo che hai detto tu, e degenerare sulla figura del programmatore, che comunque per tante cose rimane poco skillata, perché insomma non esiste.Beh, c'è sempre quello che abbiamo detto all'inizio, lo fa mio cugino, lo fa uguale a quello che dici, quello che cosa.E quella è la filosofia credo che dica.genere.Io invece vorrei tornare sul tecnico e vorrei ribadire il concetto.Voi mi dite che siete convinti, non solo che il problema di poter vedere i dati sensibili di chi si è logato prima di noi possa dipendere dalla cash, e di questo ne sono ampiamente convinto anche io, ma che il fatto di poter essere entrato come admin e poter, nel video si vede che lui può compiere delle azioni, quindi poter compiere delle azioni su, insomma, su informazioni salvate nel database, possa anche questo dipendere dalla cache.Allora, Mario, io ci tengo a precisare.Adesso ho capito di quale parte del video parli e posso dire una cosa, allora la cache ti serve delle pagine ok? delle pagine a prescindere dalla tua sessione di lavoro.Certo lui non è andato a finire l'azione quindi non capiamo se in realtà avrebbe modificato.Esatto, un sistema progettato non dico bene ma progettato, un sistema progettato nel momento in cui tu vai a cliccare su quel pulsantino ti dice "Ehi bello mio tu non sei admin quindi puoi anche andare a fare una passeggiata, no perché comunque ritrovi...Quindi è resiliente la tua back-end, cioè il back-end resiliente che dice ok c'è stata una situazione anomala ma non ti permette comunque di iterare nell'errore.Perché lui ti mostra la pagina che è in cache, quindi con i dati di chi si è collegato precedentemente, ma tu hai messo i tuoi dati, quindi hai creato una tua sessione con i tuoi dati e lui al momento dell'azione dovrebbe riconoscere che chi compie l'azione non è un admin, non gli è permesso avere quel ruolo.noi ci immaginiamo come siamo abituati a scrivere noi un sistema con un framework, scusate, sì vabbè, un framework che abbia un firewall o qualcosa legato ai ruoli degli utenti.Sì, sicuramente c'è.Adesso non penso che sia stato fatto...adesso suppongo che tutto ci sia, nel senso adesso stiamo un po' esagerando per scherzare, perlomeno io, presumo che...No, no, no....per scherzare, per struttura...Sì, noi...Noi oggi non lo facciamo.Io voglio farvi una provocazione.Io oggi ho visto un video di Breaking Italy, non ci segui, eh, Alessandro Masa.Sì, sì, sì.E credo di non ricordare male.Sappiamo che non ci segue neanche per errore ma noi lo salutiamo lo stesso.Vai.ehm e ha detto uno spunto molto interessante.Da informatico se si fermi un attimino e ci pensi se tu sai che le partite IVE sono X e i soldi sono Y tu neanche senza fare domanda potresti tranquillamente dire le partite "hai già i miei dati, sei la mia parita IVA, sai chi siamo, sai quanti soldi abbiamo, sai quanto fatturo", potresti tranquillamente dire "ok, ecco a te i soldi, prendeteli".La provocazione è "e se l'hanno fatta apposta?".Perché in un momento è uscita la notizia che i soldi erano finiti, quindi teoricamente bisognava correre.Cioè quello che istantaneamente creavi era l'effetto Black Friday, tutti che entravano, che cercavano di entrare ad acappararsi i soldi.Poi dicono che non ci sono, che in realtà ci sono, più andate ma arriveranno.E' il sistema che non è calibrato per quello che si ipotizza potesse essere un bacino d'utenza di ingresso.E se fosse fatto apposta per il complottismo, ma è bello...Non tutti potessero accedere al bando.e ci è arrivato a pensare che è stato fatto apposta.Che se è stato fatto apposta, io neanche nei miei peggiori incubi potrei arrivare a scrivere "Pippo in produzione" per giustificare il fatto di non aver dato dei soldi a qualcuno.Cioè, come ti potrebbe mai saltare in mente una cosa del genere? O scrivere "Culì".No, questo è peggio.È peggio se ti fa capire che la produzione italiana è macchiavellistica.Cioè, l'ho fatto un sito io.No, no, ma dico, lo fai andare in crash senza dare spiegazione e basta.Come può saltare in crash? Io domani ti dico "Carlo, per favore, puoi scrivermi un codice ignobile?".Tu non me lo scrivi quello che abbiamo visto prima, capito? Perché non ti viene in mente di scrivere.Non ne sarei sicuro.un if che ha per chi fa scratch no se allora l'allora è vuoto e c'è soltanto l'altrimenti dai ma come non ti varebbe mai in mente di scrivere una cosa del genere.Era un bel complotto quello di...Ma si un complotto che lascia il tempo che trova e aggiungo anche un'altra cosa il fatto che possa aver subito il sito un attacco hacker per quanto mi riguarda è ridicolo allo stesso livello.Cos'è una fortuna? È una fortuna Mario.Una fortuna che cosa? Che il sito sia stato in qualche modo autobookato.No, autobookato, no, no, però stanno uscendo pariche, ragazzi mi dicono che è stato fatto un attacco hacker.Ora, ma che attacco hacker è stato fatto? Non so se avete visto il Twitter di Anonymous, hanno detto "Ci sarebbe piaciuto prenderci la paternità di questo attacco ma mi dispiace ci godremo la scena dal divano questa era in poche parole il riassunto del post no assolutamente però dico un hacker che entra una poi ancora poi questa cosa di chiamare hacker e già mi vengono i nervi però facciamo finta di chiamarlo così un informatico un attacco informatico non diciamo hacker perché veramente mi viene l'angoscia.Un attacco informatico se viene fatto a un sito come l'Inps ha l'obiettivo di rubare delle informazioni, non renderle visibili a gente che non gliene frega niente a caso.Potrebbe esserci anche quella.Ma che utilità? E soprattutto come lo faresti? Tu entri, riesci a entrare, trovi una backdoor in un sito, entri, come lo fai un lavoro del genere? Non lo so.Esistono dei casi in cui il fine ultimo di un hacking, non sto dicendo che questo sia il caso, ci sono degli attacchi informatici in cui il fine ultimo era prendere le informazioni per renderle pubbliche.Esistono, già è stato fatto su, beh, Wikileaks si basa su quello, anche se la social engineering, possiamo vedere anche Rousseau che è stato fatto più di una volta, senza entrare nell'argomento, però per prendere i dati e farli vedere.Qui esistono questo tipo di progetti.Però la storia degli attacchi hacker mi sembra tanto l'asso più di tutto per pulirsi la coscienza in questi momenti e dire "ah noi siamo bravi, ci sono i ragazzini che stanno a casa con le magliette di Star Wars che fanno le cose cattive".E' un po' un sperare che la casaringa media di Moghera, scusate il punismo, come persona X con una formalizzazione informatica bassa dice "ah ok loro sono bravi, ci sono quelli monelli che ne hanno buccato".Ma anche in questo caso mi sembra molto strano che possa essere stato uno di questi.Ma poi soprattutto non ha senso per più motivi, per più cose, non ha senso per tante cose, non ha senso perché non ha senso farlo, non ha senso perché nel momento in cui lo fai...è una cosa che non ha nessun tipo di senso.Cosa fai? Prendi mostri, va bene, fai una protesta, crei caos mostrando i dati sensibili, ma anche nel momento in cui entri in un sito, come fai a manometterlo per generare una cosa del genere? Non ci sono...Io spero un'unica cosa.Scusami, vai pure.volevo dire la mia insomma su questa cosa perché io sono felice che sia successo.Penso di essere una delle poche persone in Italia che sono felice di questo.Voi perché non dovevo fare quella richiesta quindi non ho vissuto quella crisi anche se vi devo dire che tutte le volte che provo a vedere il sito dell'Inps mi viene il panico e l'ansia però e non è panico da F24, ve lo garantisco, è panico da non riuscire a capire dove devi andare però questo è un altro discorso.Il ragionamento che facevo io è per fortuna è successo.Stiamo vivendo un momento storico particolare, probabilmente lo racconteremo ai nostri figli.È un momento dove la nostra vita sta cambiando, l'utilizzo delle tecnologie nella massa, quindi nella persona comune, nel mio padre, nella mia zia della lavatrice sta cambiando.È un momento dove le tecnologie prendono uno spazio importante anche nella persona media che capisce che esiste anche qualcos'altro oltre a Facebook della situazione.Detto questo stiamo contestualmente vivendo un momento dove c'è una proposizione continua di strumenti di controllo di massa.Voi per la situazione del coronavirus, quindi il tracking anticontagio, ne avrete sentito parlare fino alla nausea che ci sono milioni di proposte di tracciare le persone perché così se passi in quella cella o col GPS a 7 metri allora ti puoi prendere la malattia più...ecco detto questo un evento come questo dei links io spero sia una luce un allarme che dica bene se la PIA non è in grado, la pubblica amministrazione, non è in grado di gestire le richieste con un form che deve andare a salvare i dati in un maledetto database uno a uno, non è in grado di fare un sistema di gestione delle code per il salvataggio? Ma come mai? Come mai sarà? Mario, l'ho fatto io da solo per un software del Pifero che abbiamo lanciato da poco.Ma ovviamente, ma figurati.E io sono l'ultimo pinko pallo della Terra.Quindi se la PIA con...buttate gli occhi nelle cifre che l'Inps investe in piattaforme tecnologiche ogni anno.Se con quel budget non sei in grado di realizzare qualcosa che funzioni, allora mi spieghi come faccio io ad affidarti non solo i miei dati fiscali ma anche la mia posizione in tempo reale.Ma con quale tranquillità io mi faccio controllare da uno Stato che non è in grado di tutelarmi e che non è in grado di tutelarmi da me stesso.Cioè ma di cosa stiamo parlando? Quindi per fortuna ben vengano questi casi e spero che ce ne siano degli altri perché la magra figura che ha fatto il Presidente del Consiglio, citando il Presidente dell'Inps, è l'attacco hacker, è una magra figura di tipo politico e il politico sente la magra figura di tipo politico.Non pretendo al politico che sia un tecnico, un informato, ma che abbia un minimo di sensibilità da questo punto di vista.Vabbè, ognuno c'è il proprio lavoro, Conte è comunque un avvocato, quindi insomma...No, no, ma a livello politico il fatto che lui abbia ribadito e amplificato la questione dell'attacco hacker che poi si è dimostrata essere una giustificazione...Ma lui gli hanno detto così, ha ripetuto quello che gli hanno detto, se vuoi che ne sappia...Mario, a livello politico lui dovrà rendere conto e deve rendere conto agli elettori di questa cosa.Quindi funziona e dal mio punto di vista casi come questi, situazioni come queste ben vengano finché non ci cacciamo la mosca e iniziamo a capire anche la PMA che bisogna sviluppare questo tipo di cultura.beh davvero vi chiedo un'altra cosa.Vado molto vicino a quello che stavo per dire.Vado molto vicino e senza entrare nella parte politica sia che sia stato un hacking sia che sia stato un errore interno io spero vivamente che qui a una settimana un mese di tornare a vedere il codice di non trovare un tippo.Secondo me l'hanno già cambiata quella cosa lì.non vorrei dire sciavenza.Quelle immagini che vi ho fatto vedere, quel test che vi ho fatto vedere era a pochi minuti prima di entrare qui dentro, quindi no.A pochi minuti fa, probabilmente per l'emergenza eccetera eccetera, non è stato fissato.No però Pippo non l'abbiamo visto, Pippo.Ah no, Pippo non ce l'ho fatto, io ho visto quell'altra.Cioè è talmente la direzione che Pippo secondo me l'hanno già cambiato.Io spero che questo qui possa essere.Facendo una cosa tipo "cerca e e cambia tutto.Naturalmente non avendo testing sotto un cambio del genere avrà rotto qualunque altra cosa.Io sarei veramente curioso di sapere come è strutturata la piattaforma dietro, ma non perché su un presupposto la faccio meglio.Vogliamo fare i populisti, Pornhub secondo gestisce più utenti.Ci sono dati sensibili nelle pubbliche amministrazioni, la stessa cosa.I dati sensibili ci sono perché ci sono oltre anche gli account di login, ci sono anche le carte di credito.Sì, quindi hai ragione, quindi ci sono anche dati sensibili.Gestiscono una mole di cose al secondo enorme, cioè ci sono gli strumenti.Infatti hanno proposto stere.Sì, l'ho visto anch'io almeno.Comunque spero che, a prescindere che sia un errore interno, la cosa che qui ha un po' di tempo, un tempo ragionevole, migliori, cioè che venga utilizzato come maniera...Veramente sappiamo che non accadrà, semplicemente risolto il problema momentaneamente tutti quanti penseranno ad altro.Secondo me accadrà così.Poi, considerando già il fatto che...Cioè, io pensavo che soltanto la user experience all'interno di quel sito fosse ignobile, volta che entri non trovi mai niente.Pensavo fosse solo quello, invece adesso scopriamo che anche a livello di codice hanno lavorato male sia i front-end che i back-end.E' proprio l'ambiente che ti porta a...Sì, sì, è probabile.Io ipotizzo.Ditemi una cosa, siccome ho letto sul Corriere che è la prima cosa che hanno pensato, ma chiaramente non è, è l'utilizzo sbagliato di una cdn.Cosa mi dite al riguardo? Secondo voi può avere intanto...facciamo un riassuntone per qualcuno per sapere cos'è una cdn.Le sistemi di caching...allora, cosa succede? Molto spesso una pagina internet utilizza delle risorse esterne che possono essere il foglio di stile, il css che dice come deve essere colorato in paginato un sito internet, quindi html anche dalla struttura.Il CSS che ti dice come deve essere colorato e impaginato e poi ci possono essere dei file aggiuntivi come il JavaScript che aggiunge della logica nel tuo computer, nel tuo browser, che dice come si devono comportare gli elementi.Per esempio per come comunicare col server.Cosa succede? Che se molte di queste librerie tipo GQuery che abbiamo citato poco fa o Boostrap o tante altre che si utilizzano quotidianamente vengono messa all'interno di un indirizzo internet fisso, che è sempre quello per tanti siti internet, cosa comporta? Comporta il fatto che innanzitutto le richieste sono centralizzate, quindi sono macchine misurate per quel lavoro e soprattutto entrando in tanti siti che utilizzano la stessa libreria non ci sono richieste perché sono già cached per domenico.Quindi una CDN dovrebbe essere Conta e Delivery Network, credo, se non dico fesserie, quindi se tutti quanti usiamo le iberie che sono all'interno di un unico server ce l'abbiamo già tutti quanti in pancia.E soprattutto se non sbaglio le cdn permettono di distribuire.Esatto, geograficamente.Di distribuire l'informazione e le risorse.Non volevo interrompere il tecnico ma c'è anche la possibilità di dire se tu mi chiami dall'America io nel mio lato server passo per una strada piuttosto che un'altra per raggiungere i tempi di attesa.E sono anche di queste cose qui.Quindi lo dico io immediatamente, la mia risposta a quello che penso è dubito.Non mi viene in mente una soluzione tale.Io CDN non l'ho visto, Carlo.No, no, però ne parlavano in vari articoli.Sforzandomi di pensare a una cosa, non mi viene in mente un scenario dove una CDN porta un caching di una pagina HTML.Capisco un JavaScript, va bene.Può essere che c'era un PIP dentro una CDN, ok, ma tutti gli script che ho visto sono R-coded nell'HTML, non in librerie esterne.Allora, per quanto riguarda il PIP ci può stare, ma non è questo il problema.La parte quella grave della CDN è quella della cache, ma non credo che siano questi i sistemi di cache di cui stiamo parlando.Una è cache di risorse HTML e l'altra è di risorse esterne.Quindi per me, dubito.Si, ha ragione Carlo, intanto una cosa che mi ha fatto arrabbiare è leggere anche su testate nazionali delle imprecisioni abbastanza gravi, nel senso che come diceva Carlo una cosa è la cdn una cosa è la cache e la distinzione va fatta perché la cache è io chiedo una risorsa che deve essere in qualche modo calcolata o attinta da un database e mi deve essere restituita.Questa risorsa viene cached perché viene richiesta più volte, io non devo fare l'accesso al database, andare a modificare, completare il dato magari da altri micro dati che mi arrivano da altre parti e viene restituito.La CDN parla di risorse statiche quindi l'unico caso, così ragionandoci mentre parlava Carlo, di un problema di tipo CDN è se, e dico se, questo punto non escludo niente, credetemi.Anche l'html è stato cached su una cdn, quindi è stato messo dentro una cdn per semplificarne la distribuzione e questa html, lo so, è diabolica questa cosa.però però ma c'è una cosa che è abbastanza per esempio questi siti statici questi siti statici io per esempio il sito del podcast sta su una cdn anche le pagine html perché il motore le genera sì ma tu hai usato un sistema ben controllato per fare sta roba non è che c'è una pagina dinamica scritta in ASP o in PHP che genera roba così e le che sci a casaccio.Cioè hai creato un sistema controllato.Aspetta un secondo, tu hai una SPA giusto? Tu hai una single page application? Ni, io ho un sito statico.Ah ok, quindi è un sito statico, io ho fatto single page application per dare qualcosa di più.Carlo, lui ha utilizzato Gatsby.Ah ok, ok, ci sta.Di conseguenza tu hai generato l'HTML che a quel punto è...- E l'ho buttato su una CDN.- E l'hai buttato su un S3? - Eh sì.- Eh ma non è quella, non è esattamente una CDN.- No, no, perché poi ci sono i servizi di Amazon di CDN, ma qua entriamo forse nel tecnico e ci perdiamo gli ascoltatori.In realtà quello che volevo dire è che è necessario fare una differenza, cioè una CDN utilizza dei meccanismi di cache.Perché? Perché io faccio una richiesta, questa richiesta la faccio spesso quindi per non fare il ricalcolo di tutto, la restituzione di tutto, c'è una cache che me la restituisce, ma la cache non necessariamente una cdn perché non ha per esempio la distribuzione di tipo geografico, non ha per esempio il fatto che abbia una distribuzione orizzontale quindi più server in parallelo che restituiscono i tuoi file, quindi c'è questo dato che anche a livello tecnico, a livello operativo, non solo tecnico, è molto diverso, è che non solo i post su Facebook, ma anche le testate nazionali che devono in qualche modo dare una corretta informazione, hanno dato all'acqua di rose e quindi, ritornando sempre alla mia battaglia per la quale mi inferivoro e perdo anni di vita, il problema della cultura informatica c'è anche nel mondo dei giornalisti e credetemi lo dico.da giornalista.Esatto.Quindi in realtà il problema è ben più ampio e ripeto ben vengano queste situazioni.Si, concordo.Per motivazioni differenti concordo.Ma ci vuoi spiegare le tue motivazioni? No, sono esattamente quelle che dicevo poco fa, è che se un hacker o qualunque altra cosa comporta, crea del fastidio, banalmente anche i meme e quindi è una cosa… noi siamo persone che da una vita programmano, però i meme possono orientarvi un po' a tutti per deridere, per fare sapire, in questo caso, verso una situazione tecnica.Porta alle persone a dire "forse chi prende le decisioni forse dice forse è meglio che ci sto un po' più attento perché l'altra volta è successo del merdone per usare il termine sfordiano".E quindi sì.Ci sta, ci sta.Va bene, per me ci sta, assolutamente.Ditemi un po', avete qualcosa da aggiungere o il punto della situazione l'abbiamo fatto? Conoscendoci possiamo andare avanti ore, mi sembra che...No, non vorrei, non vorrei renderla troppo tediosa, lo so che potremo andare avanti ore, però siccome è stata una cosa carina possiamo anche riproporla, ce ne sono di argomentazioni da trattare, quindi se vi va...io vorrei mandare un abbraccio comprensivo allo sviluppatore frontend si che poveretto, gli è caduto di tutto in questi giorni, lo stanno maledicendo e deridendo tutti quanti e si è preso la responsabilità di tutti però in realtà da programmatore ci rendiamo conto che lui è l'ultima pedina di una serie di...di loro, possono essere loro loro sono soltanto l'ultima parte di una cascata di persone che non hanno lavorato come avrebbero dovuto.Sicuramente loro avrebbero dovuto lavorare in maniera diversa, ammesso che qualcuno li abbia realmente messi nelle condizioni per farlo, qualcun altro avrebbe dovuto controllare il loro lavoro, qualcun altro avrebbe dovuto controllare il progetto fatto da qualcuno che chissà come ha fatto il progetto, qualcuno avrebbe dovuto controllare i bandi che sono stati fatti, qualcuno avrebbe dovuto controllare la qualità del lavoro svolto.Chissà quanto è stato pagato quel sito.Non ci voglio pensare, però facevo una chiacchiera con mia moglie poco prima della diretta.Diciamolo, anche lei è una programmatrice.Sì, è più brava di me tra l'altro.E vabbè questo, no nel senso che noi c'è dubbiamo questa roba quotidianamente.Sì e facciamo una considerazione sul fatto che fino a qualche tempo fa avevamo un commissario che era Diego Piacentini che avrebbe in qualche modo dovuto avvicinare l'Italia, la pubblica amministrazione al mondo del digitale.Io non ho seguito da vicino questa cosa però però mi pare proprio che Diego Piacentini, che è un pezzo grosso di Amazon come sappiamo, nella sua visita pastorale in Italia abbia saltato l'IMSS e io dico...perché se avesse coperto l'IMSSS avrebbero potuto usare, non dico le infrastrutture di Amazon, ma almeno capire che più o meno si faceva un po' come si fa sui servizi di Amazon.Comunque io mi voglio solo immaginare la situazione in cui ieri mattina tante persone, tanti sviluppatori a casa in pigiama che lavorano per l'Inps, si sono dovuti attivare ognuno con la propria pigiamino davanti al computer a risolvere quel merdone.Poveretti, non vorrei mai essere voluto essere nei loro panni.e li salutiamo di noi.Salutiamo, sì sì sì.In realtà li capiamo molto bene, però quella roba non va scritta, porca miseria.Ecco, una cosa importante che vorrei dire, vorrei spiegare, perché noi abbiamo riso tanto del fatto che ci fosse una variabile che si chiamava Pippo, però effettivamente chi non programma non sa perché ci ha fatto così ridere.Pippo è fondamentalmente il nome che viene dato alle variabili che non hanno un nome.È una cosa che si impara, viene tramandata da programmatore a programmatore quando poi si fa l'università o si studia.Adesso si insegna programmazione dalle scuole elementari quasi quasi, anzi con scratch anche dalle elementari e che sfortunatamente la insegnano delle persone che non sanno programmare, questa roba di PIPO non viene tramandata alle elementari, però poi alle superiori spesso invece ci sono dei docenti che sanno programmare, quindi iniziano già a tramandare l'informazione di PIPO come nome generico della variabile.In inglese si usa "foo"."Foo", "foo", "foo" "ar".Esatto, come nome generico."Foo" "ar", sì.Esatto, perché si usano queste cose.Un po' per convenzione non scritta, un po' perché è facile da digitare, no? premi sempre la stessa lettera.Infatti noi abbiamo fatto l'evoluzione, Mauro lo sa bene, invece di usare il pipo scrivevo "cacca", che è ancora più veloce da scrivere perché ha la stessa struttura di pipo.Infatti lo dico a tutti gli ascoltatori di noi, entrate nel suo github e cercate questa parola, troverete delle magie.Può essere, può essere.No, volevo aggiungere, visto che...Aspetta, aspetta che non ho finito la cosa legata a...Quindi ci sta che un programmatore abbia scritto PIPPO per un algoritmo scritto così su due piedi e questo non pregiudica la funzionalità del codice scritto, cioè il ciclo, il ciclo sì, il codice funziona anche se si scrive PIPPO, anche se si scrive FOO, soltanto che il fatto che lui abbia scritto Pippo e soprattutto l'abbia lasciato in produzione ci fa capire di quanta poca attenzione ci sia stata nella realizzazione del sito.Non è un problema tecnico, ci mostra il fatto del problema sia proprio di gestione del lavoro.In realtà quando noi andiamo a minificare dei file tutte le variabili vengono rinominate con nomi ben meno significativi di Pippo.Quindi non è un reale problema tecnico, è un problema logico, cioè è un problema che ci fa capire che quel programmatore ha scritto PIPO perché in quel momento doveva scrivere probabilmente un algoritmo in pochi secondi e forse non era neanche tanto in grado di scriverlo, ma nessuno l'ha controllato, nessuno si è posto il problema che in produzione o semplicemente in un progetto dove ci devono mettere le mani altre persone una variabile che si chiama Pippo non deve esistere, semplicemente perché se tu scrivi Pippo e tu stesso tra due mesi leggi Pippo, non sai cosa contiene quella variabile, non ci puoi lavorare.Figuriamoci un'altra persona in un sito grosso e complesso come quello dell'Inps.Lo voglio spiegare per le persone che ascoltano, perché noi abbiamo riso tanto di questo Pippo, tutti quanti hanno fatto i post per dire "perché Pippo, perché Pippo", "Pippo fa ridere", "haha chiamato Pippo, però la parte divertente o drammatica, dipende, non sta nel nome della variabile, il fatto che la variabile si chiami come un personaggio della Disney, ma semplicemente perché Pippo, per chi programma, rappresenta un nome standard di una variabile qualunque.Addirittura, prima abbiamo fatto la battuta, Pippo si usa al triennio e poi alla specialistica, al biennio, si usa Pluto, sempre per l'umorismo nerd dei programmatori, però nasce proprio da questo, nasce dal fatto di dare un nome, veloce da scrivere, generico, per indicare una variabile e viene proprio tramandato, cioè all'università i professori fanno lezione utilizzando Pippo come nome di una variabile, così gli studenti apprendono questo modo di fare e viene poi condiviso da tutti quanti, quando si fanno gli esercizi in casa di programmazione, spesso le variabili si chiamano PIPO.Se in fase di esame di fondamenti di informatica uno dà come nome della variabile PIPO non accade nulla.Se scrive un codice, ma no, quanto può essere assillato.Parlo di fondamenti di informatica, non di programmazione oggetti o algoritmi avanzati.Io faccio un appello a tutti i docenti, compresi voi due, che sono formatori di professione.Io lo faccio sporadicamente, ma giusto per divertirmi.Il ragionamento è che bisogna partire anche da quello.Quindi faccio un appello a tutti i docenti.Non chiamate le vostre variabili PIPO o ABCZ.Date dei nomi parlanti.Il computer.Aspetta Mauro ti blocco un secondo per leggerti un commento interessante che si lega a quello che stiamo dicendo così puoi direttamente collegarti per rispondere.Roberto ci dice "la variabile dovrebbe essere un'abbreviazione di un nome.Potrebbe essere anche completo.Il ragionamento è questo.Perché dare il nome alle variabili è una delle cose più difficili dell'informatico? E' anche più importante.Perché in realtà il tuo codice non è il codice che serve al computer, ma il tuo codice è il il codice che serve a te.Il codice informatico, javascript, php, qualunque tipo di linguaggio che non sia il binario è un codice che serve per far comunicare esseri umani.La macchina non parla in javascript perché altrimenti parlerebbe in inglese.Ok, detto questo, nel processo di comunicazione...significherebbe che le macchine parlano in inglese.Aiuto.No, no, no, hai fatto una contrazione del tuo concetto e l'ho voluto...Hai ragione, scusami....impugnare.Certe volte anche io faccio questi...ARJ.No, però in realtà il ragionamento è questo.Quindi il nostro codice sorgente è un codice che serve per comunicare tra di noi esseri umani, o tra me Mario e Carlo, oppure tra me e me, il mio me tra tre mesi.Detto questo, il nome della variabile deve essere il nome giusto che descriva quel concetto.Se tu non sei in grado di dare un nome a quella variabile, vuol dire che non hai chiaro il concetto, fai due passi indietro, togli le mani da quella maledetta tastiera, accendi il cervello, che in questi casi serve più della tastiera, pensa alla logica che vuoi sviluppare, a quel punto se quella variabile si deve chiamare fiore, è la variabile stessa, il concetto stesso che ti darà il nome, non lo devi cercare tu.L'unico caso...Siccome tu ti rivolgi a chi ascolta, tu...specifichiamo che ti stai parlando in maniera generica, non ce l'hai con nessuno...Si, l'amatore...Non ci parliamo in maniera impersonale, no? Ero così aggressivo? Non ce l'hai con nessuno...Perdonate...Adesso c'è anche una nuova moda che sta aggirando ultimamente...Non era rivolto a Roberto quello che stai dicendo? No, assolutamente.Anzi Roberto ha detto una cosa molto intelligente, ha detto "Posso usare un'abbreviazione?" La mia risposta è "Se il nome è molto lungo e tu non riesci a trovare nel tuo ventaglio di parole un nome più breve per rappresentare quel concetto, sì, usa l'abbreviazione, altrimenti fermati un pochino e prova a cercare nel ventaglio di parole che hai la parola giusta per identificare quel concetto e vedrai che non solo ti aiuterà nella stesura del codice ma ti chiarirà anche il processo che stai andando a fare.L'unico caso in cui è consentito utilizzare delle variabili sono casi standard come quello del ciclofort dove è possibile utilizzare delle variabili per le variabili e quello di utilizzarle in casi comuni.Per esempio l'AI nel ciclofort non so quante volte sarà capitato di vedere dei ciclifor, dove l'indice si chiama "i" perché la devi ripetere tre volte nel ciclo, quindi alla fine ti stanchiresti.Anche l'uso dei commenti, scusa se mi permetto di… Beh, beh, è che mica è privata la chat.Infatti questo è quello che mi interessa, queste due, questo Stefano Casimiro, anche l'uso dei commenti può essere importante.Reati che voi riuscite a leggere i nomi e i cognomi delle persone senza impappinarvi, io non ci riesco.Comunque continua Carlo.legato con quello di Roberto, che è una cosa che volevo dire poco fa.Una moda che sta girando ultimamente, allora io ho lavorato, piccola premessa, ho lavorato per una società svizzera, che gestiva le linee di sviluppo dei farmaci, il campo medicale.Ho lavorato per questa persona, non farò il nome, però mi sono proprio l'ammiro per come portava avanti il team le regole di programmazione.E lui era contrario, e poi ho scoperto essere una moda, una best practice che si sta sviluppando in giro ed era quello di scrivere codice che non doveva avere commenti.Beh io e Mauro lo facciamo da tempo.Però da programmatore, tutti quanti, da che io ho iniziato i primi manuali, ti spiegavano sempre che un codice è ben commentato.La prima cosa che ti dicono è "più costanti ci sono meglio è, più commenti ci sono meglio è".Esatto, quindi tu riesci a leggere e comprendere.Questa persona mi dava questa informazione all'inizio, non mi ha dato molta fiducia, ho capito il contesto.E' che se voi ci pensate, esistono due tipologie di programmazione per farla molto veloce.Una è scripting e l'altra invece è quella che viene compilata.Nel caso in cui il codice viene compilato, a te non ti interessa, perché tanto viene compilato diventa macchina e il nome delle variabili perde di valore perché diventa codice macchina.Invece in tutti gli altri codici scripting, nella maggior parte dei casi, viene interpretata, presa, molto spesso viene minificata eccetera eccetera oppure non viene più vista.Quindi il concetto di usare nomi lunghi nelle variabili, usando per esempio il camel case o il kebab case, perché devi utilizzare una stringa piccola? Se una variabile richiede otto parole e le metti concatenate, usa otto parole autoconcatenate.Perché se tu arrivi a… Dipende dall'idea che utilizzi, se ti dà… se ti dà il suggerimento.se non te lo da.Si.Perché più facile, più roba è da scrivere, più facile che sbagliare scrivere.Eh ma la pigrizia non è una cosa bella.No, no, no, non è pigrizia.Se tu arrivi.Oltre a digitare male, scrivere male la variabile.Si, però il concetto è, se un codice.Giusto, giusto quello che stai dicendo.Un codice senza commenti riesce a essere esplicativo, quindi utilizzi le variabili lunghe quanto vuoi.Adesso non vi sto dicendo di esagerare, però, sapete, variabili ben scritte e ben lunghe.E quindi senza commenti, il codice è esplicativo, è scritto un codice che è da Dio.Perché è facile, inutilizzabile, si può dare in giro, lo può vedere un'altra persona, lo può vedere un altro del tuo team, lo puoi vedere tu stesso fra sei mesi sbronzo e capirlo.No, ma noi con Symphony, con Mauro, abbiamo discusso a lungo di questa roba qui e alla fine sono anni che comunque questa roba va avanti.Addirittura io ho lavorato in un'azienda dove il codice doveva essere obbligatoriamente così e c'erano delle "imposizioni" sull'utilizzo anche di alcuni costrutti, cioè era vietato usare l'else, per dire.Perché l'else bisognava scrivere una funzione con return da utilizzare al posto dell'else, perché rendeva il codice più chiaro senza necessità di scrivere dei commenti.poi Mauro sulla single responsibility ci ha perso gli anni di vita quindi tutta questa roba qui sono un feticista di queste cose quindi no però mi interessava rispondere a Stefano perché prima ho detto una cosa che secondo me è importante ed è una cosa che ho trasformato in proprio uno stile di lavoro, l'uso dei commenti.Allora partiamo dal presupposto.Se abbiamo detto che il linguaggio di programmazione è un linguaggio che serve per far parlare esseri umani, ok, i commenti cosa sono? Sono i sottotitoli.È come che io ascolto Mario che mi sta parlando e siccome Mario non parla bene ha bisogno dei sottotitoli.La mia è una scenetta, no? però in realtà non è molto lontana da quello che in realtà succede.Detto questo, i commenti non dovrebbero essere utilizzati, se poi accendete, dal mio punto di vista, dico sempre dal mio punto di vista.I commenti non dovrebbero essere utilizzati se si è in grado di scrivere un codice molto chiaro, se si ha il tempo anche.Ci si deve impegnare, perché? Perché in realtà se si ha il tempo, il tempo che tu ci metti per risolvere i problemi generati, la struttura, sì però se al posto di mettere subito le mani sulla tastiera ti fermi 30 secondi io ti garantisco e te lo sottoscrivo che il tempo che ci guadagni dopo non è 30 secondi, quindi parto da questo presupposto.Seconda cosa che secondo me è importante è anche che esistono poi tutta una serie di piccole regolette sull'uso delle parole per costruire un nome.Una cosa che ho imparato con gli anni, per esempio, è quella di non utilizzare dei verbi nei nomi delle variabili.Questa è una questione.Se la programmazione è un linguaggio, il verbo è una funzione.Il nome della variabile è una cosa.Allora, è così semplice.Parliamo l'italiano tutti i giorni.E allora se iniziamo a parlare JavaScript, il PHP, il C, il LASPX tutti i giorni, allora iniziamo a scrivere del codice che parli una lingua.Perché? Inglese.Quello che è inglese, prendere l'essere internazionale.Certo che vorrei anche...allora tutto quello che tu dici chiaramente è giusto, anche perché sono cose che noi e chi chi programma a livello professionale sicuramente conoscerà, non sarà la prima volta, mi auguro per loro che sentano queste cose qui.Però è interessante anche accennarlo, magari adesso questa non è la live dedicata a questo argomento, però ne possiamo anche fare una dedicata, per il fatto che quando qualcuno inizia a programmare e scrive un ciclo o foro, o semplicemente un ciclo anche con Scratch, un IF, cos'è il genere, dice "beh basta, so fare tutto".A parte il fatto che non sa fare tutto, ma soprattutto non si rende conto spesso la gente che imparare a programmare è solo una parte, una piccola parte, poi ci sono tutti questi problemi che sono legati alla produrre qualcosa con la programmazione, che non sono meno importanti della programmazione.A parte che ci sono mille mila stili di programmazione, mille mila approcci alla programmazione, ma tutte queste piccolezze che chi non è all'interno di questo mondo non conosce, non sono meno importanti di saper scrivere bene.Certo, se uno non sa scrivere un algoritmo, ha una logica in testa, non la sa riportare nel codice.Ma molta gente spesso si stupisce."Ma tu sai programmare in tutti i linguaggi!" Ma perché la logica di programmazione è più o meno la stessa, poi uno si guarda la sintasi e scrive quello che ha in testa.Il problema sta qui, nell'avere un approccio alla programmazione pulito, comprensibile, saper scrivere un codice più elegante, che è elegante non è per fare il figo, è elegante per renderlo più più comprensibile a quelli che lavorano con te e quindi non far perdere tempo alle altre persone.Tutte queste cose qui, chi non si occupa di programmazione ci sente dire sta cosa e sembriamo dei matti, "ah, state discutendo dei nomi, cadatele a variabili, chiamatele Pippo".No, perché all'interno di un team, all'interno di un ambiente di produzione, chiamarla Pippo, chiamarla in maniera descrittiva, fa la differenza.Quindi quello che hai detto tu, anche il fatto di non mettere i verbi, ma come, ma come, fa molta differenza più è discorsiva più discorsivo io poi con scratch leggo il codice il codice ha un senso logico quando quando quando viene composto bene scrivere in maniera discorsiva rende il codice semplice leggibile e anche produttivo quindi tutta questa roba qui che sembrano delle follie in realtà sono cose molto importanti anche per chi sta iniziando imparare perché chi sta iniziando a imparare probabilmente lo fa per entrare...io adesso mi sto fermo su questo perché il fulcro del canale mondo computazionale è questo, no? Cercare di dare supporto a chi sta imparando la programmazione, non è un canale per professionisti.Quindi è bene che sappiano anche che ci sono questi problemi e che se vogliono prendere quella strada prima o poi li incontreranno questi problemi.Quindi sono cose da tenere in mente e da ribadire bene.Poi volendo se viva possiamo anche riprendere il discorso su questa roba.Molto interessante.Mauro volevi finire? Ti ho interrotto? No, penso di aver detto tutto quello che mi veniva in mente, anche forse qualcosa in più.Molto bene, allora se avete qualcosa da aggiungere bene, se no, visto che è passata un'ora e mezza, possiamo anche chiudere.Offri il caffè? Io il caffè ve lo offro, però dovete venire ad Alghero a prendervelo.Io sono già pronto.E va bene.Allora signori, se abbiamo concluso io vi ringrazio per la chiacchierata, tanto alla fine è stata una cosa carina.Ci scusiamo con i programmatori che sono stati costretti a fare la roba lì all'Imsera, più che altro insomma, scherzare su con la scusa di scherzare su queste cose, parlare un po' di programmazione, di aspetti, di problemi che i programmatori vivono quotidianamente e basta.Molto bene, grazie mille.Questa live diventerà una puntata del podcast Gitbar, quindi verrà estratto l'audio caricato su Spreaker, quindi se qualcuno la vuole recuperare, ascoltare in macchina o su altre piattaforme.Lo può fare sulla pagina di Gitbar su Spreaker.Ho messo il link nella descrizione, lo ribadisco.E basta, questo è quanto.Buona serata a tutti.Grazie ancora, ragazzi.Ciao, ciao! GitBar, il circolo dei fullstack developer.Una volta a settimana ci troviamo davanti a due birre e con Brain Repo parliamo di linguaggi e tecniche di sviluppo web, di metodologie e degli strumenti immancabili nella cassetta degli attrezzi dei fullstack dev.[Musica] *sottotitoli a cura di QTSS*