 Allora, cominciamo, vi presento Carlo Daniele e se avete cercato qualcosa di vostri problemi di WordPress online sicuramente, ma sicuramente sarete capitati su uno degli articoli che scrive Carlo, per l'azienda per cui lavora e ha anche scritto tantissimi altri articoli per molte riviste e blog online. È sviluppatore, ma appunto adesso si occupa quasi esclusivamente di contenuti per il web, ma lascio subito la parola a lui che ci spiegherà come farci venire voglia di sporcarci un pochino le mani con il PHP. Grazie, Carola. Allora, buongiorno, buon pomeriggio a tutti. È la prima volta che parlo in una ola universitaria, normalmente parlo in circoli più ristretti. Allora, non stiamo qui a fare un discorso molto, molto tecnico, approfondito, perché prima di iniziare, voglio dirvi qual è, voglio spiegarvi qual è la logica, il motivo che mi ha spinto a presentare una candidatura per questo argomento, no perché io voglio adesso mettermi lì a spiegare come si sviluppa in PHP o in WordPress, ma più che altro per capire qual è il percorso conoscitivo che deve obbligatoriamente fare una persona, un professionista che voglia in cominciare a sviluppare con WordPress. Perché alla fine, dietro la parola sviluppatore, sviluppare, ci può essere un certo timore reverenziale, no? Perché, non dice, cavolo, ma io non sono mica un ingegnere informatico, non mi sono laureato in una discipline del genere e nemmeno io sono un ingegnere informatico. Per la maggior parte sono un'auto-didatta, però facendo l'auto-didatta e, ovviamente, col dovuto impegno, si riesce a essere degli sviluppatori anche se non si è ingegneri. WordPress in questo ci aiuta moltissimo, ci aiuta moltissimo perché ha un sistema di, io le chiamo API all'Italiana, però, di API che consiste in una quantità di funzioni, classi, metodi di classe, comunque, concetti di PHP che si allontanano sempre di più dalla macchina e si avvicinano sempre di più alla persona, cioè a chi effettivamente vuole creare il codice. Quindi c'è una semplificazione mostruosa nell'attività di sviluppo. Allora, cos'è che a noi come sviluppatori ci interessa di più quando ci avviciniamo a WordPress? È quello di accedere ai dati, l'informatica è... Com'è? Ok. È quello di accedere ai dati, l'informatica è accesso e manipolazione di dati, creazione, accesso e manipolazione di dati in genere. E quindi come si fa tutto questo in WordPress? E perché possiamo pensare di dover manipolare i dati che ci mette a disposizione WordPress? Perché WordPress ha una serie di funzioni standard, no? Ha funzionato in un determinato modo che a noi ci potrebbe stare stretto. Allora, dico magari io in quella pagina lì non voglio vedere quello che mi dà WordPress di default, voglio vedere qualcos'altro. Allora, possiamo mettere le mani al codice, creare qualcosa di nostro per fare in modo che i risultati che ci dà WordPress a una qualsiasi richiesta di un utente siano quelli che diciamo noi. Adesso più avanti vi farò vedere anche degli esempi. Per esempio, noi possiamo dire nella pagina di questo autore, nella pagina di archivio dell'autore Carlo, tu non mi devi far vedere tutto quello che ha scritto. Mi devi far vedere solo quello che riguarda WordPress. Allora io posso andare a manipolare la query di WordPress per fare in modo che WordPress mi tiri fuori dal database soltanto i risultati che voglio si vedano. Allora, perché vi può essere utile? Vi può essere utile uno se decidete di personalizzare il vostro sito in modo spinto, in modo avanzato oppure semplicemente perché volete essere utenti più consapevoli di WordPress. Voi potete decidere semplicemente di rimanere utenti, non di diventare sviluppatori, ma diventate utenti consapevoli. Questo significa che avete maggiore coniezione di causa quando scegliete i plugin da installare nel vostro sito e poi nell'attività di gestione quotidiana anche per quello che riguarda l'aggiornamento del software. Quindi sapere che cosa fa WordPress col suo database secondo me è un punto di partenza importante. Prima vi voglio dare questa risorsa perché tutto quello che vi dirò oggi è molto di più è in questo post che ho pubblicato nel mio blog personale. Quindi tutto quello che diciamo oggi, se vi interessa approfondirlo, lo trovate in questa pagina con tutti i riferimenti al Codex e anche a fonti di terze parti dove ho pubblicato argomenti che riguardano le query. Allora, la prima cosa che voglio dirvi, queste sono la presentazione. Allora, che cosa fa WordPress quando parte una richiesta dal browser? Un sacco di cose. Cioè un'attività così complessa, una serie di task così numerosi che se ne perde un attimino la traccia ma è fondamentale sapere che cosa succede. Secondo me questo è più importante di tutto il resto dello speech. Allora, c'è una pagina nelle risorse del Codex che si chiama Query Overview. Query Overview potete cercarvela su Google oppure prendervi il link dell'articolo del mio blog. E come vedete qui ho sintetiti i 6 passaggi chiave. Cioè tutte le 6 operazioni principali che fa WordPress quando parte una richiesta da parte dell'utente. Uno, la Query Specification. Allora, cosa è la Query Specification? Qui vi ho messo la definizione. WordPress analizza l'URL della richiesta che gli arriva sotto forma di Query String. Sapete tutti di cosa parliamo, no? La Query String è quell'insieme di coppie chiave e valore che vengono dopo il punto interrogativo di una URL, di una ugly URL. Cioè un indirizzo web non comprensibile dall'essere umano, no? Dove c'è punto interrogativo, chiave uguale valore, and chiave uguale valore, e così per 3 km. Allora, quella è un ugly URL. Allora, la Query Specification, che cos'è? È l'insieme delle coppie chiave e valore che vengono catturate da WordPress per essere poi successivamente elaborate. E quindi la risorsa, come fa WordPress a sapere quale risorsa richiesta l'utente dalla creazione della Query Specification. Da qui partono tutta una serie di operazioni che una alla volta porteranno alla fine, alla generazione della pagina. E quindi, subito dopo la creazione della Query Specification, che cosa c'è? Cioè praticamente WordPress si crea la sua Query ed effettivamente è una Query MySQL. Quindi che noi non vediamo, sapete come per esempio l'istruzione Select con tutte le varie componenti. Noi non la vediamo, quindi quando parliamo della Query di WordPress noi non stiamo parlando di SQL. Noi stiamo parlando di una richiesta fatta a WordPress volendo anche in linguaggio umano. Cioè noi gli possiamo dire WordPress dammi l'archivio di Carlo Daniele. Lui interpreta, elabora, crea la Query SQL e poi avvia tutta una serie di operazioni a incominciare per esempio dalla creazione dei conditional tag, dall'inizializzazione dei conditional tag. Sapete cosa sono, no? Siete tutti i sviluppatori qua. Tutti quei tag che iniziano con ease sono tutte le condizioni che verifica WordPress a seguito della trasmissione della richiesta e della creazione della Query. Quindi vengono creati tutti questi conditional tag come ad esempio his home, his author, his archive e così via. Poi c'è la creazione della Query che viene poi eseguita sul database. Allora, la Query viene memorizzata in un oggetto complesso ma adesso non voglio soffermarmi su questo, altrimenti non lo affiniamo più. Quindi gestisce prende tutte queste operazioni e in base alla Query decide quale sarà il template file da utilizzare per visualizzare la risorsa. Ok? Quindi abbiamo capito anche che cosa, da dove vengono pescati questi template file. In base alla cosiddetta jerarchia dei template. Ok? Detto questo, scelto il template, WordPress e segue il loop. Cioè quel giro in PHP che snocciola tutti i risultati del data set restituito. Allora, questa è in linea teorica. Ok? Non voglio annoiare nessuno. Quindi vi faccio vedere soltanto un loop proprio nella sua forma più semplice e adesso poi dopo ci torniamo su tra un attimo e quindi in tutti i template file di WordPress voi troverete un loop. Non è obbligatorio, però si, ce lo troverete. E quindi quando voi andrete ad aggiungere i vostri template file al vostro tema o al vostro child theme voi dovrete inserirci dentro un loop, altrimenti il template file non vi fa vedere niente. Ok? Ora, tornando qui, questo passaggio lo salterei perché parliamo di cose che immagino sapeate tutti. Cioè quali sono i tipi di post di WordPress. Lo aggiunto perché mi premeva a sottolineare che cosa va a cercare WordPress nel database, quali sono i contenuti e quindi sono i cosiddetti tipi di post. Facciamo solo un passaggio veloce così per non lasciare niente di non detto. Allora, noi abbiamo una serie di tipi di post dove i contenuti cosa sono? Articoli, pagine, allegati, revisioni, menudi navigazione, quei tre li saltiamo e mettiamo i custom post type. Allora, quando voi andate a estendere WordPress, create i vostri custom post type. Se volete creare per esempio un sito per un negozio di libri, potete creare una biblioteca con un custom post type, book, il più classico degli esempi perché si presta una facile catalogazione. E quindi sono questi contenuti che poi andiamo a recuperare dal database. Ok, torniamo un attimo indietro e finalmente arriviamo al database. Cosa andiamo a cercare nel database? Andiamo a cercare una tabella che di default si chiama WP Posts dove li vanno a finire tutti i nostri contenuti. Avrete visto tutti un database di WordPress? E questi sono i campi della tabella WP Posts. Ho evidenziato il campo post type perché il valore che assumerà quel campo sarà determinante nelle vostre queri personalizzate. Perché se voi create un archivio di custom post type e andate a personalizzare la queri sarà quel campo lì, quella variabile lì che dovrete specificare. Allora, ovviamente io non ho portato dei veri e propri esempi funzionanti di plugin o di template file per due motivi. Uno perché commentare il codice ma avrebbe richiesto tantissimo tempo. Due perché avete degli esempi funzionanti nelle risorse che poi ho allegato alle slide. Ed ecco il cuore di questo intervento, come si accede ai dati. E' praticamente qui. Allora, se qualcuno ve lo dice, allora sembra tutto semplice, se lo dovete imparare da soli è un bel casino perché dovrete leggere tonnellate di risorse online. Perché c'è da sapere tantissime cose? Noi abbiamo prima di tutto la query, la main query, la query principale che poi dopo viene utilizzata nel loop. Ok? Quindi WP query è la classe PHP che svolge tutte le funzioni legate alla costruzione e l'esecuzione della query. Quindi lì dentro oltre a esserci un giro c'è anche un output. Quindi c'è del codice PHP che viene seguito per mandare a video del codice HTML. Quindi abbiamo detto a che cosa assomiglia un loop ed è questo. Il loop abbiamo già detto che si sviluppa all'interno dei template file che vengono scelti in base alle query var. Ok, adesso io vado a memoria. In base alle query var trasmesse insieme alla query string. Ok? Fermatemi se vado troppo veloce. E poi in base a un sistema gerarchico template WordPress sceglie il template da utilizzare, il template file da utilizzare per visualizzare i dati. Ci sono poi i conditional tag che verificano le varie condizioni. Ecco qui c'è soltanto qualche esempio. E poi arriveremo a un esempio un pochettino più chiaro e preciso. E poi all'interno del loop i cosiddetti template tag. Ok? Io ogni tanto mi fermo perché l'argomento dopo pranzo è pesante. Quindi se qualcuno sta accedendo melodica e cerchiamo di cambiare tono. Allora, cosa fanno i template tag? Generano materialmente il codice HTML. Quindi se voi all'interno di un loop volete visualizzare solo il titolo di un post utilizzate the title e questa funzione vi manda video genera il codice HTML del titolo dell'articolo. E quindi potete fare i tutti loop che vi possono interessare. Normalmente a noi più che modificare la query ci interessa generare del codice HTML personalizzato. Ok? Quindi non quello standard che ci dà WordPress. Magari possiamo decidere di aggiungere delle immagini, di visualizzare dei custom fields insieme per esempio al riassunto del post. Ed è finalmente, eccolo qui, questo è il loop del tema più recente, 2020. Allora, cosa, ho evidenziato di giallo. Che cosa? If have posts, while have posts. E quindi il classico loop di WordPress. Allora, quelli sono dei tag hard coded. The post è infine get template part. Come sono strutturati oggi come oggi i temi di WordPress? Quindi non c'è tutto il codice in un file come si faceva una volta. Ma i file sono non identificati l'uno dentro l'altro e vengono richiamati con una funzione di WordPress che è un template tag. Get template part che genera dinamicamente il nome del template dove c'è il codice da mandare a video. Insieme alla seguito della richiesta. In questo caso c'è un conditional tag. Issearch significa se questa è una pagina di ricerca tu invece mi vai a visualizzare in questo caso il for di ricerca. È un esempio. Allora, direi che basta per la main query perché non è questo l'oggetto specifico dello speech. Perché noi questa la dobbiamo personalizzare. Adesso non ci possiamo fermare qui. Come si personalizza la query? La query la possiamo cambiare come si pare a noi. Sono tre i modi principali. Uno creiamo una query personale estendendo la classe WP query. Adesso vi faccio vedere come. Oppure con un'azione è un action hook. Sapete tutti cosa è un action hook. È una funzione di WordPress che viene eseguita in uno specifico momento dell'esecuzione del core. Quindi prima di mandare a video i dati, quindi prima di interrogare effettivamente il database, WordPress ci dice, ci mette a disposizione una funzione che dice io questa la eseguo prima di effettuare la query. Così se tu la vuoi modificare, la vuoi personalizzare, in quel modo io ti faccio cambiare i valori delle variabili della query. Così io te la modifico, interro con il database e ti tiro fuori i risultati che vuoi, non quelli predefiniti. Quindi quello è un modo perfetto per modificare la query. È l'ultimo è la funzione get posts che semplifica tutto al massimo e vi permette di fare con un'unico, un'unica chiamata a un'unica funzione la query che vi pare a voi. Giusto con poche rig di codice. Allora il modo diciamo così più corretto, più quello da guru e quello di estendere la query di WordPress. Le prime due istruzioni sono quelle più importanti. Uno, la definizione degli argomenti della query, gli argomenti personali, cioè quello che voglio io dal database di WordPress. Due, la creazione di una nuova istanza della classe wp query. Quindi creo un nuovo oggetto query che mi va a sovrascrivere quello esistente. E infatti proprio perché va a sovrascrivere l'oggetto esistente, guardate la funzione, l'ultima funzione in basso è fondamentale e va sempre inserita nel codice perché così ripristina i valori della query esistenza sulla pagina. Allora questo codice ovviamente non è altro che un loop, però cambia leggermente quello che sono i metodi. Vedete the query, half posts. Prima, noi nella main query abbiamo autorizzato una funzione, la funzione half post che è soltanto una scorciatoia per dire la stessa cosa. Qui cambiando il nome della query che non si chiama più dollaro query, ma si chiama dollaro the query, noi dobbiamo specificare anche il nome della nuova istanza, però i metodi rimangono gli stessi. Come vedete i template tag li utilizziamo allo stesso modo, quindi questa pagina ci fa uscire fuori dal database in un qualsiasi template file a cui poi diamo un nome in base alla gerarchia dei template, qualsiasi cosa non vogliamo dal database. Mi dicono che mancano dieci minuti. Ok, altra funzione, no questa è l'azione. Allora vi ho già anticipato che cos'è e a che cosa serve, e vediamo l'anatimino in azione. Allora se voi sapete come si crea un plugin con queste tre righe di codice voi modificate al volo la query visualizzata, la query scusate che WordPress esegue sul database, add action, preget posts e quindi chiama la funzione di callback, my plugin eccetera eccetera e che cosa fa? Prima di tutto verifica una condizione. Se siamo nel pannello di amministrazione oppure la query non è la query principale perché nella pagina ci sono più query, allora ritorna. Basta, chiudi tutto, non mi serve niente. Però se non si verifica quella condizione, allora se l'autore di questa pagina di archivio isOther e Carlo, fammi vedere solo i suoi articoli di web design. Allora avrei potuto accorpare le condizioni e quindi tutto questo si riduceva in tre righe di codice per essere più chiaro le ho divise, però questo vi consente di rendervi conto di quanto sia semplice manipolare i dati con WordPress. È l'ultima, forse ce la facciamo rimanere nei tempi. Get posts è una scorciatoia per tutto. È una cosa fantastica perché voi con una sola chiamata, get posts, avete un array di oggetti post che poi potete visualizzare, mandare a video con un semplice ciclo for each. In questo caso va specificato questo. Get posts utilizza, si dice che è un wrapper, un contenitore per un'estanza di bubli query, questo che significa che fa qualcosa in più e quindi potrebbe richiedere un attimino più tempo. Quindi non conviene utilizzarlo quando si tratta di creare dei loop. È bene utilizzarlo per la sua semplicità quando si creano delle liste e quindi per questo il ciclo di while che abbiamo visto utilizzato per i loop in questo caso viene sostituito da un for each perché si tratta di un semplice array di oggetti dollaro post. Qui c'è da dire una cosa. L'oggetto dollaro post, il nome variabile, non può essere dollaro post per cui per questo abbiamo messo dollaro p. Anche in questo sono dato più in profondità nell'articolo che vi ho fatto vedere all'inizio dove vi ho dato tutta una serie anche di eccezioni e riferimenti alla documentazione e quindi ultima cosa poi se vogliamo fare una chiacchierata di 10 minuti, ben volentieri, torniamo indietro, sono le risorse online tutto quello, quindi questo spiccia è la conclusione di un percorso di analisi che di volta in volta ho specificato in diversi articoli pubblicati su diversi siti. Allora ho iniziato da, non mi ricordo cosa è venuto prima, Smashing magazine o WPMU dove sono andato a specificare come costruire URL personalizzate utilizzando i parametri della query e poi tutte le varie possibili applicazioni pensate ad un motore di ricerca che vi cerca i tipi di post personalizzati del vostro blog in base ai valori dei custom field. Allora io non ho perso tempo perché però vi ragioni a specificarvi come creare delle meta query avanzate ma voi potete interrogare il vostro database anche in base al valore che assume uno specifico custom field per esempio se date la possibilità ai vostri lettori di votare i vostri articoli aggiungete un custom field dove viene stabilito il valore diciamo così la media delle valutazioni 4 stelle 5 stelle quello lo potete memorizzare in un custom field quel valore e poi potete per esempio interrogare warpress per digli fammi vedere soltanto gli articoli che hanno 5 stelle e questo è un modo questo si può fare personalizzando la query di warpress ovviamente questo è un esempio avanzato ma la logica di base l'algoritmo che dovete creare è esattamente lo stesso risoluzioni che avete a disposizione sono la creazione di una nuova istanza di classe estendendo la classe wp query l'utilizzo dell'azione pre get posts oppure infine l'utilizzo della funzione get posts tutto è stato o beh gli esempi pratici applicativi sono tutti disponibili in questi articoli in ultimo ecco che ho anzellato allora la sintesi di tutto è qui gli esempi pratici invece sono nei articoli che vedete quelli di kinsta sono in italiano quelli precedenti in inglese in ogni caso se volete chiedere qualcosa a approfondire un attimino il discorso in diciamo così in separata sede potete contattarmi qui questi sono i miei vari profili tra siti web twitter facebook e link di mi contattate su twitter e possiamo fare magari una chiacchierata io mi fermerei perché altrimenti diventa pesante allora grazie mille carlo adesso prima di interrogare il database interroghiamo te quindi vediamo se ci sono delle domande domande domande so che l'argomento è stato molto ciao adunque quando si tratta di creare un loop per warp si parla sempre di tirar fuori i post da una determinata categoria comunque spesso a me è capitato ultimamente di voler tirar fuori magari crea un'immagine in evidenza per delle sotto categorie e mi piacerebbe riuscire a creare un loop per tirar fuori queste sotto categorie da una categoria principale e ho trovato non poche difficoltà poi ho dei limiti come sviluppo orpress nel senso che ho una limitata conoscenza magari di certi aspetti tecnicamente possibile bisogna soltanto trovare la giusta combinazione dei parametri allora io non vi ho fatto vedere per bene tutt quali sono tutti i parametri della queri delle queri perché sono centinaia e io comunque i riferimenti diciamo del codex li ho inseriti nel mio articolo quindi dai un'occhiata lì perché potresti trovare comunque la risorsa che ti serve in ogni caso una categoria che sia una categoria genitore o una categoria figlio logicamente non è altro che una tassonomia quindi tu comunque puoi individuarla puntarla e tirar fuori i risultati in base al valore adesso bisogna soltanto vedere qual è il parametro della queri che devi utilizzare quindi nella lunga nel lungo elenco che tra l'altro vi faccio vedere dovrebbe basterebbe un get categorie no get categorie scusa allora si scusa sbagliato io ci arriviamo ecco quei parametri vedete allora io qui li ho divisi in queri var pubbliche queri var private e queri var custom personali se andate a vedere queste sono i vari raggruppamenti ecco qui allora per quello che riguarda le categorie tu hai questi parametri che puoi utilizzare cat categorie name categorie e categorie cat i primi due sono pubblici quindi li puoi già stabilire nella queri nel l'orel gli altri invece li devi impostare necessariamente manualmente all'interno di uno script utilizzando uno di questi parametri sicuramente tu vecchi la categoria che stai cercando devi vedere soltanto quale si adatta meglio a poi alle tue esigenze poi se voi possiamo sentirci via su twitter magari faccio qualche prova insieme a te grazie qualche altra domanda non siate timidi finché ce l'abbiamo qui di persona e non online se riesco a arrivarci ciao io in realtà sono più un frontender quindi in realtà mi sono trovato più sovvente a usare le resti piei di warpress tanto per entenderci ok ma tuttavia stavo cominciando a guardare un po' il discorso backend e stavo cercando di sviluppare soluzioni custom anche per conto mio volevo chiederti esistono modi per poter rendere più efficienti le queri rispetto ad utilizzare le get post o le get categorie se non so quindi suppongo vedendo la tua presentazione usando solo proprio l'istanza di di vb queri e quindi puoi scriversi la queri per conto proprio o ci sono metodi meno tecnici per poterlo fare non sono stato chiaro forse ok una get post all'interno come si comporta è una vp queri con già dei parametri prefissati oppure semplicemente posso passare posso fare una get post basta e mi tiro fuori tutto dal database senza filtrare senza passare argomenti aggiuntivi no lo so benissimo perché probabilmente andrei in timeout sul server e faricrasciare il intero sistema facendo una get post senza parametri su mille post una vps media non reggerebbe il carico del database sono secondo consapevole di questo allora è una parte della domanda se non ho capito male quella se non ti conviene impostare una queri tu crearla tu allora sicuramente le queri del database possono essere ottimizzate e in una delle risorse che ho citato il mio articolo e ne parlo proprio specificamente su come ottimizzare le queri fatto sta che io non consiglio mai di ricorrere alla creazione manuale di una queri in istruzione select perché se tu vai entri nel core di warpress e vai a vedere come ti crea quella queri è un lavoro che non so quanta gente ci ha lavorato lì cioè è un'ottimizzazione assoluta della queri che tiene conto di un mondo mare di parametri di best practice per quello che riguarda la sicurezza best practice per quello che riguarda le prestazioni e io nel mio articolo adesso se se lo becco subito ve lo faccio vedere e ho fatto una schermata di un plugin che su frammenti di codice sia l'ultimo articolo pubblicato eccolo qua allora questo plugin che è queri monitor che è un fantastico plugin per il monitoraggio delle prestazioni della queri ti consiglio non so se sicuramente l'avrai provato già comunque ti fa allora scaricalo e installalo perché è fantastico lui questo plugin ti dice ti fa l'analisi queri per queri quali sono per esempio tutte le queri per funzione chiamante e ti dice quante volte quella funzione accede al database di warpress fino ad arrivare guarda get option quante queri genera sul database 10 su una sola pagina mi ha eseguito 44 queri e ti dà il tempo di esecuzione di ognuna di queste istruzioni per quello che riguarda l'ottimizzazione è un argomento che non mi sento di affrontare semplicemente perché molto può dipendere dal database dall'infrastruttura su cui ha installato il sito quindi tu puoi fare i tuoi confronti operando sempre sulla stessa piattaforma e vedere se va meglio o se va peggio però già se cambi piattaforma cambiando lo stack hardware sicuramente la risposta del server sarà diversa allora tu lavora sull'ottimizzazione della tua queri io il mio consiglio ed è quello che si dice nella community degli sviluppatori è quello di non creare manualmente le proprie queri perché tutte quelle rifiniture nella sicurezza nelle prestazioni rischieresti di perderle o comunque di dover fare un lavoro in menso quando già è stato fatto quindi il mio consiglio sarebbe quello di creare il massimo lo puoi ottenere creando una nuova istanza di classe e ottimizzando la queri secondo me dalla mia personale esperienza in quel modo tu ottieni il massimo poi nelle risorse troverai anche un mio articolo che ho pubblicato per kinsa e tradotto recentemente proprio per voi dove spiego come nella mia esperienza vanno ottimizzate le queri è ovvio che la mia esperienza non è l'esperienza del mondo quindi è ovvio che ci sarà magari tanto altro da dire però magari puoi trovare degli spunti cose che mi sono capitate nel mio lavoro che potrebbero andare bene ok sì ci ripropone il link così possiamo salvarcelo avrete portata di mano tutta la presentazione anche se è uno specchietto più che altro però ci trovate le risorse con i miei riferimenti mi trovate comunque su twitter quindi se volete parlare di qualcosa più nello specifico fatelo senza problemi bene facciamo un altro applauso carlo daniele grazie mille