Gitbar logo

Gitbar Italian developer podcast

Conversazioni sullo sviluppo software fatte davanti a una birra.

copertina episodio

Multimedia apps su MacOs e IOs con Alex Raccuglia (ulti.media)

Stagione 3 Episodio 120 Durata 01:42:26

Questa settimana abbiamo con noi Alex Raccuglia, ad Alex questo podcast deve molto perchè è stata una delle prime persone a incoraggiare questo podcast agli inizi e a dare preziosi consigli.

Abbiamo anche parlato di sviluppo, in questo caso mac e ios e abbiamo parlato di multimedia, come le app di Alex analizzano e trattano l’audio e il video.

Per il resto, beh, buon ascolto!

I link di Alex

Ricordati di iscriverti al gruppo telegram

https://t.me/gitbar

Supportaci su

https://www.gitbar.it/support

Dobbiamo ringraziare Marco Giuliotti per la birra offerta!

Paese dei balocchi

Contatti

@brainrepo su twitter o via mail a info@gitbar.it.

Crediti

Le sigle sono state prodotte da MondoComputazionale
Le musiche da Blan Kytt - RSPN
Sweet Lullaby by Agnese Valmaggia
Monkeys Spinning Monkeys by Kevin MacLeod

Trascrizione

Bene e benvenuti su Gitbar, nuova settimana e nuovo episodio qua nel nostro bar degli sviluppatori.

Mamma mia che caldo, oggi sono quasi 40 gradi e registrare il podcast in queste condizioni diventa difficile.

Tu Luca, com'è da te la temperatura? Eh, la temperatura anche se sono a Bolzano è comunque abbastanza alta e dicevo appunto anche prima che le temperature a Bolzano sono alte, che si dica e mi si stanno sudando le orecchie per via delle cuffie, ma va tutto bene.

E finora va tutto bene, noi abbiamo passato qualche settimana un po' così poco presenti e devo fare mia colpa, alcuni viaggi di lavoro, covid della situazione, un traslock e quant'altro ci hanno tenuto lontani dai microfoni, però eccoci qua, siamo pronti per iniziare e siamo pronti per iniziare con un ospite speciale, un ospite a cui tengo particolarmente perché devo dirlo, se non fosse grazie a lui, anche grazie a lui, probabilmente Gitbar non sarebbe mai esistito ma prima di annunciarvelo, il mio compito, quello un po' palloso, è quello di ricordarvi i nostri contatti.

Infochiocella.gitbar.it o etbrenrepo sono i modi classici per contattarci e Luca abbiamo qualche altro punto di connessione? No, non mi...

ah sì, aspetta, quell'app lì come si chiama? Il gruppo Telegram, abbiamo un gruppo Telegram, lo potete trovare aprendo appunto l'applicazione web dal cellulare Telegram, cercando Gitbar Podcast, troverete un graziosissimo logo sul giallo e rosso e potete cliccare e aggiungere, siete i benvenuti.

Devo dire che oggi, o se non sbaglio oggi, spero di non sbagliarmi, ma oggi il mio amico Francesco Sciuti ha scritto un bellissimo messaggio che devo dire mi ha emozionato perché ha avuto modo di incontrare tantissimi persone, tantissimi membri della community di Gitbar al Web Marketing Festival, dico bene? Spero di sì.

Credo di sì.

E il fatto che Gitbar abbia modo di incontrarsi in questi eventi mi rende veramente veramente felice perché non siamo solo una community digitale ma esistiamo come persone in carne ed ossa.

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.

Ma bando alle ciance è il momento di presentare Alex Racuglia.

Ciao Alex! Ciao a tutti e a tutti gli ascoltatori.

Dopo quello che hai detto in prefazione mi sono emozionato moltissimo e mi è venuto un sacco di ansia.

Sentire la tua voce in questo momento per un attimo ho avuto la sensazione di dover aprire una bottiglia di vino o di farmi raccogliere dei tuoi pensieri liberi che arrivano dal tuo podcast.

Dimmi una cosa, tu sei un podcaster di ormai una carriera decennale, no? Ma questo podcast che cos'è per te? Io chiamo il mio podcast il mio flusso di coscienza digitale e effettivamente credo di utilizzare il podcast soprattutto quello che registro durante i miei avveggi in automobili.

Io faccio il mio podcast, sono un podcaster per questo, intanto che vado al lavoro la mattina e lo uso come la paperella nel senso io racconto al podcast, cioè alla gente che mi ascolta, quello che mi passa per la testa per cercare di fare ordine tra le mie idee.

Se qualcuno rimane anche attaccato io sono anche contento, ma a volte anche stupito.

Ogni tanto guardo le statistiche degli ascolti e dico ma c'è qualcuno che mi ascolta? Poi mi scrivono e io dico oh mio Dio! A questo punto mi vergogno e dico devo cominciare a parlare bene e non dire parolacce.

A volte mi capita di insultare gli automobilisti nel traffico, soprattutto quello di Milano.

Devo iniziare a fare la persona seria, poi quando cerco di prendermi sul serio mi viene da ridere e mi dico vabbè allora fa niente e faccio questo.

Diciamo che io ho tre podcast, questo qui, il Tecnopills che è il mio flusso di coscienza digitale in cui parlo della mia carriera di sviluppatore, ma anche del mio primo lavoro.

Io sono un regista di spot televisivi e video promozionali, questa è la mia prima vera occupazione.

Un podcast che parla di vino, in cui sono essenzialmente solo il conduttore e approfitto per bere.

Poi un podcast di musica, MDV Summer Radio.

I nomi dei miei podcast sono assolutamente la cosa più antisèo del mondo.

Un podcast di musica che è un mio racconto di cosa attraverso la musica, quello invece è molto più preparato, molto più strutturato, anche se io non leggo mai.

Odio i podcast in cui la gente legge, poi li rispetto, però non li farei mai e in quello invece c'è molto più del mio cuore.

Però diciamo che io ho questo tipo di approccio al podcasting e mi piace anche chi lo fa in maniera molto di pancia, più che di testa.

Anche per questo motivo mi piace tantissimo voi, perché siete molto un podcast di pancia, nonostante siete iperpreparati.

Con la birra che beviamo siamo i numeri uno della pancia, devo dire.

Ho fatto la stessa associazione, pancia, birra e siamo lì.

Mi avete fatto venire voglia di bere e mi sono portato dietro la bottiglia.

Io prima di iniziare la registrazione ho beccato l'aperol l'altro giorno al supermercato, quindi sto andando di spritz e mamma mia che buffo.

Fantastico.

È da tanto tempo che ascolto Tecnopills e nei tuoi episodi hai parlato della tua esperienza da sviluppatore.

Da prima con alcune delle tue app su macOS, con alcuni dei tuoi esperimenti su iOS.

E una cosa che ho notato è che spesso le tue app coniugano il mondo della videoproduzione con il mondo dello sviluppo software.

In alcuni tratti e per alcuni frangenti hai dovuto studiare parecchio proprio per far incontrare questi due mondi.

Penso a alcune tue app dove hai dovuto fare l'analisi dell'audio per trovare punti di giunzione piuttosto che BPM, piuttosto che punti di taglio.

Ma quanto è stato faticoso dover lasciare la programmazione spicciola, il crudino della chiesa e andare dentro questi concetti che non sono comuni allo sviluppatore? Allora, una volta ho sentito in un podcast, non mi ricordo chi l'ha detto, che il 99,9% delle app sono dei Glorious JSON Viewer.

La maggior parte delle app sono essenzialmente delle interfacce utente che poi si connettono in qualche modo a una business logic che sta da un'altra parte.

Nel mio caso invece, per mia follia, assoluta follia, io cerco di inventarmi degli algoritmi.

In alcuni casi studiandomi l'accademia, effettivamente adesso è molto, tra virgolette, abbastanza facile scoprire cosa hanno fatto altri ricercatori nel mondo su certe cose.

Poi un altro conto è capire cosa hanno scritto, perché uno proviene da un altro tipo di background.

E poi in realtà il problema è anche inventarsi delle cose, a volte dicendo, ma sta roba funzionerà? Allora devi scrivere centinaia di linee di codice, se non migliaia, per implementare un'idea, per poi scoprire che magari non funziona.

La fatica è quella che a volte poi ti inventi delle cose, cercando di capire perché il computer vede le cose in maniera diversa da come le vedi tu, o viceversa.

Perché il computer sente le cose in maniera diversa da come le senti tu.

E in questo c'è anche una sorta di grosso vincolo dal fatto che molte delle applicazioni che utilizziamo tutti i giorni per fare le cose che facciamo, tu non so che applicazioni userai per fare montaggio audio, userai Audition, userai Audacity, userai GarageBand, logic eccetera eccetera, comunque sono tutte figlie di alcuni principi che sono nati tantissimi anni fa, magari con la moviola, con l'arregistratore a bobine.

Per cui oltre al fatto di dover fare le cose, devi anche legarti al fatto che devi fare le cose che sono fatte in un certo modo, perché comunque la gente si aspetta di fare in un certo modo.

Io ogni tanto ho l'ardire, ma nel maggio parte dei casi fallisco miseramente, di dire facciamo le cose completamente diverse e vediamo cosa succede.

9 volte su 10 sbaglio, fallisco, una volta su 10 dico, ah questa roba non fa neanche tanto schifo.

Poi da quella a trasformare un progetto, un'idea in un prodotto, poi in un prodotto commerciale, ne passa veramente tantissimo.

Infatti se io ho nel mio store un certo numero di app, diciamo che ce ne sono almeno il triplo di prototipi che sono lì nel cassetto, che sono cose che sono state iniziate e non sono mai state finite.

Perché? Perché a volte perdo interesse, a volte perché sbatto contro un muro e dico, c'è ma tutto sto lavoro che ho fatto non è servito praticamente a niente.

Sai una cosa Alex però? Qua nel podcast abbiamo più volte parlato di side project, no? E più volte abbiamo detto che le nostre cartelle di side project sono praticamente infinitamente piene, infinitamente grandi, no? E dare vita poi a un side project, farlo germogliare, farlo diventare un prodotto utilizzabile, è una rarità.

Se però io oggi entro nel sito delle tue applicazioni, no? Ulti.media, e vado a vedere il numero di applicazioni che ci sono, vedo che ce ne sono veramente parecchie.

E adesso la mia domanda è, come fai a dare vita a questi prodotti? Cioè come fai a promuoverli dalla cartella dimenticati? Allora, tutte le cose che ho mai scritto, tutte, e quelle che mai scriverò, nascono dal mio esigenza.

Vi racconto brevemente la storia della mia vita, in 30 secondi.

Da bambino volevo fare regista.

Dopo aver visto Indiana Jones e i predatori dell'arca perduta, vado da mia mamma, avevo 8 anni, ma mamma, ma chi è che fa diventare film così belli? Mamma, il regista, io ho detto mia mamma, io diventerò regista.

Poi negli anni 80 non c'erano scuole di regia, non c'era la possibilità di fare delle riprese.

Adesso abbiamo un telefono che fa delle cose stratosferiche.

Non sto scherzando, l'ultimo spot televisivo che sto realizzando lo sto girando con un iPhone 12 Pro.

E il cliente è veramente felicissimo di sta cosa.

Però allora non si poteva, a un certo punto vabbè, studierò informatica, e quando ho iniziato a studiare informatica, perché mi piaceva comunque l'informatica, eccetera, soprattutto la parte grafica, ho detto, da grande farò gli effetti speciali con il computer, quando ancora si utilizzava il processo chimico, per dirti.

Poi le cose cambiano, ho fatto studiato informatica alle superiori, ingegneria informatica all'università, ho iniziato a lavorare molto presto, a 17 anni ho iniziato a lavorare.

Ai primissimi anni dell'università lavoravo in questa società di software multimediale, negli anni 90 non c'era ancora internet, per cui il multimedia era una cosa, quella che si distribuiva con i cd-rom.

A un certo punto c'era bisogno di alcune animazioni, ho iniziato a farle io, poi a un certo punto mi sono detto, sarebbe carino fare dei video, mi sono guardato attorno e ho detto, facciamoli noi.

Nell'arco di tre mesi ho smesso di fare programmatore, ho fatto solo video da allora, erano gli ultimi anni degli anni 90, 97-98.

Però ho sempre sviluppato dei piccoli progettini, piccoli tool, che servissero per gestire meglio i miei progetti, perché quando dico in giro, io faccio il regista, sono un videomaker, mi occupo di montaggio, la gente pensa che sia un grande creativo.

La realtà è che qualsiasi mestiere creativo ha un 1 per 1000 di creatività, che di solito arriva quando stai facendo altro, quando porti il cane a fare la passeggiata, quando sei in bicicletta a allenarti.

Seduto sulla tazza.

Seduto sulla tazza, esatto.

E mentre il resto del tempo lo passi ad applicare degli schemi.

Io applicare gli schemi sono una merda, scusate la volgarità.

Io faccio una cosa la prima volta, la faccio benissimo.

La seconda volta la faccio bene, la terza volta mi dimentico qualcosa.

Ma proprio regolare.

Allora mi sviluppo questi toolettini miei, internamente, che mi servono per automatizzare dei processi.

Al punto tale che a un certo punto li rifinisco, perché sono ossessivo conclusivo, perché sono pazzo, non lo so.

A un certo punto mi rendo conto che sono dei progetti che potrebbero essere utili a qualcun altro.

Io ho iniziato con una cosa del genere 6-7 anni fa.

L'ho messo in vendita e allora, quando ne vendevo uno al mese, ero figata, sono l'uomo più felice del mondo.

E' soltanto 4 anni fa che le cose sono iniziate a diventare un pochettino più intense, perché poi migliorando gli skill di programmazione, di inventarsi un'interfaccia utente, eccetera, eccetera, eccetera, di comunicazione con delle cose, divento sempre più veloce a sviluppare un'app, a portare a termine un'idea, anche perché poi, non so voi, ma io ho un code base di centinaia di migliaia di linee di codice, di roba già pronta, che mi consente di gestire in maniera molto efficace e veloce interfacce, ma soprattutto interfacce pensate per gestire oggetti video, oggetti audio, che sono le cose più difficili, perché la maggior parte della gente queste robe qui non le condivide su GitHub, perché è difficile che ci siano programmi di questo genere.

Non ci sono programmi di montaggio video, non esistono progetti open source.

Se ci sono progetti open source, sono delle cose molto particolari, molto di nicchia, comunque per sistemi operativi tipo Linux.

Stesso dicasi per l'audio, c'è Audacity, ok, però io ho una sorta di...

diciamo che con Audacity ho una sorta di odio e amore, anzi solo odio nel confronto della sua interfaccia, per cui trovare delle cose che possono essere utilizzate è difficile, allora uno passa un sacco di tempo a cercare di ricostruirsele da solo.

Anche perché io sono, e non sono un bravo programmatore per questo, ho una certa allergia nei confronti delle dipendenze, perché tutte le volte che ho fatto una bella dipendenza, dopo un anno la libreria non veniva più supportata, non veniva aggiornata, e quando dici ho aggiornato il sistema operativo, il cliente ha aggiornato il sistema operativo, e a questo punto la tua app non funziona, tu nell'arco di pochissimi giorni devi trovare un'alternativa, e sono momenti in cui non so voi, ma a me mi si gele il sangue nelle vene.

Guarda, penso che io cerco di ridurre al minimo le dipendenze, e hai risvegliato Luca, che dice sì.

Mi stavo trattenendo, mi stavo trattenendo.

Io invece da programmatore nel mondo JavaScript, TypeScript e simili, io vivo di dipendenza, sono dipendente dalle dipendenze, e quindi capisco i problemi di cui parli, però facciamo un passo indietro, la prima domanda che volevo farti è, tu lavori prevalentemente in ambito macOS, una cosa che ho notato in questi anni, magari è solo una mia sensazione, però mi è capitato di vedere molte case di produzione che stanno abbandonando l'ecosistema Apple per ritornare a Windows.

Tu hai la stessa percezione, e soprattutto, avendo basato il 90% del tuo effort, del tuo sforzo, per lavorare in quella piattaforma, anche sforzo in termini di studio, senti questa sensazione, questa paura, oppure dici, ma no, comunque c'è un mercato abbastanza solido, e sono tranquillo? Se dovessi affrontare questa cosa da imprenditore, vi direi che mi sveglio ogni mattina col terrore, e con la certezza che il mondo cambia ogni 2-3 anni, non che cambia ogni 2-3 anni, c'è un gradino, però ogni 2-3 anni a un certo punto se ti svegli, ti rendi conto che le cose sono cambiate tantissimo.

Percezione è che non più di tanto la vedo, questo cambiamento, io devo essere sincero che il mio target di utenza è quello dei videomaker, non delle grandi case di produzione, anche se poi case di produzione mi hanno comprato, quando qualcuno mi compra e mi arriva una mail da parte di PayPal, dicendo, il ciccio ti ha comprato, e spesso sono film production, ma ancora più spesso sono singoli user che utilizzano queste cose per avere un approccio alternativo alla produzione, nel bene e nel male.

Questi sono molto legati alla piattaforma Apple, perché sono molto legati a Final Cut, che per chiunque produca video per YouTube è una sorta di must.

È vero, c'è Premiere che è molto utilizzato, ma io ho sempre dei feedback molto negativi.

È anche vero che ognuno sul suo mondo sociale, legasi Twitter, ha una sua bolla, per cui io seguo molta più gente che lavora con Final Cut che con Premiere o con Avid, o con LumaFusion su iPad, o DaVinci Resolve.

Stasera proprio non mi vengono i termini.

Però adesso come adesso mi siamo a un mercato ancora grande.

Detto questo, le mie sono delle companion app che lavorano con Final Cut, ma alcune altre applicazioni sono stand alone, per cui magari mi verranno delle idee nel frattempo e farò delle cose aggiuntive.

Adesso come adesso non noto grandissimi cali.

Noto più i cali del fatto che c'è giugno e la gente produce di meno, compra di meno, per dirti.

Ah sì? Io avrei scommesso il contrario, sai.

Allora, la prima metà di giugno, mese molto soddisfacente.

Gli ultimi 3-4 giorni, mese molto insoddisfacente.

Diciamo che ho smesso di preoccuparmi tanto.

Ormai vedo le cose nell'ordine di grandezza del trimestre, se no veramente finisco per farmi venire il sangue amaro.

Sì, sì, sì.

No, vabbè, qua io credo di essere la persona meno adatta a parlare di denaro, credo che, insomma, di essere la persona più scarsa da quel punto di vista.

Però mi interessa sapere, ecco, tu avevi individuato come piattaforma la piattaforma Apple, però se non ricordo male, tu vieni da un'esperienza e l'hai accennato prima, no? Con Director.

Ricordo male se tu facesti un'app per il finger tracking su device con Director.

Mamma mia, cos'hai tirato fuori.

Sì, dato che ho sviluppato multimedia, multimedia si faceva con Director, noi eravamo molto, molto quotati dal punto di vista su Director, quando ancora non era ancora di Adobe, ma era ancora di Macromedia.

Sì, ci ho fatto un sacco di cose e quando Director 12 ha detto adesso possiamo fare anche delle applicazioni semplicissime per iOS, stiamo parlando di iOS 3, cioè in quel periodo di tempo, e io ho sviluppato questa applicazione che mi è venuta in mente una mattina e che mi sono svegliato un'ora prima di mia moglie, allora non era mia moglie, era solo mia ragazza, e ho detto cazzo, sarebbe bello avere un'applicazione che fa sta roba qui.

Allora il giorno dopo ho detto sicuramente c'è e ho cercato per tre giorni il fatto che ci fosse questa applicazione, non certo, allora la vaffanculo, la faccio io.

Ed è stato un momento di quelli, sai come dire, l'effetto Dun and Kruger, cioè nel senso, non sapendo come funziona sta cosa, saranno passeggiate.

In realtà è stato abbastanza difficile, anche perché Director aveva un sacco di limitazioni dal punto di vista di quello che si poteva fare, non si poteva fare, bisognava veramente cercare sempre di aggirare l'ostacolo con The Workaround, a volte pesanti.

Ha avuto un discreto successo, non si è ripagata sicuramente, ha avuto un discreto successo perché allora non c'erano tante app ma anche perché iOS, fino all'altro ieri, si programmava in Objective C, che secondo me è un crimine contro l'umanità, per cui un programmatore mediamente non si metteva a lavorarci.

Sì, no, io non so come abbiamo potuto inventare una roba così assurda.

Io ancora oggi ce lo leggo e non lo capisco, cioè lo leggo, leggo tre righe di codice e ho detto, va bene, sì, ma secondo me chi ha inventato Objective C l'ha fatto proprio come la supercazzola, nel senso, ma sì, inventiamoci una cosa che non capisce nessuno e vediamo cosa succede.

Bellissimo, secondo me.

Tu quindi hai iniziato lo sviluppo delle app direttamente con Swift, no? Sì, sì, quando...

Allora, la primissima app che ho fatto, che era PodCleaner, che tu hai, utilizzi...

Costantemente.

Costantemente, ma anche io, il core era fatto in...

esisteva già e io semplicemente ho fatto un porting da Lingo, che è il linguaggio di programmazione di Director, in Swift, che per certi versi hanno certe grandi similitudine.

No, no, aspetta, aspetta, aspetta.

Il core dell'applicazione era scritto in Lingo? Sì.

La prima applicazione...

Il primo PodCleaner sì, era scritto in Lingo.

Poi l'ho riportato e ho...

Intanto che imparavo a programmare in Swift, cioè nel senso, intanto che imparavo a programmare in MacOS, perché ci sono tante di quelle cose che uno deve imparare quando sviluppa da tutta la parte della gestione della rete, l'elaborazione concorrente, l'interfaccia utente, eccetera, eccetera.

Un sacco di cose che io, ovviamente, inizialmente sparavo a caso e poi dopo pian pianino studiando.

Io ho questa mia follia, nel senso, quando decido che devo imparare qualcosa, diventa una sorta di mantra, per cui tu parlavi prima del Trono di Spade.

Io in realtà, la mattina, quando mi sveglio, quando vado sul Trono di Spade, intanto che mi lavo i denti e faccio la babba, io guardo tutorial.

Ho fatto anni per guardare tutorial su After Effects, per impararlo bene, per farlo diventare il mio secondo lavoro.

Secondo lavoro, secondo, veramente tosto.

E poi a un certo punto ho deciso, ok, devo imparare a programmare MacOS, impariamo Swift, impariamo queste cose qui, e li ho iniziato a seguire un sacco di corsi, di...

Ci sono un sacco di cose interessanti, un sacco di fuffa, naturalmente, però...

Ogni tanto si trovano delle chicche da lì, così come una spugna cerco di assorbire tutto quanto, e poi ovviamente di mettere in pratica.

Con tutti i limiti del caso, nel senso non è che sono...

Faccio un sacco di cavolate, ogni tanto guardo il mio codice vecchio, anche solo di tre mesi, mi metto le mani nei capelli che non ho più, dicendo, oh mio Dio, ma hai scritto questa minchiata? Ti prego, che non lo veda mai nessuno.

Probabilmente non farò mai progetti open source, proprio per questo motivo, perché il mio codice fa schifo.

A meno tu lo capisci il tuo codice, no? A volte! No, come dicevamo prima, il fatto di...

Quando uno vuole inventare una sorta di algoritmo, di dice, chissà se sta cosa funziona.

Allora, non sto neanche lì a scrivere del codice molto bello, molto documentato, perché prima voglio vedere che sta roba funzioni, perché poi magari passo del tempo a scrivere il codice, il doppio del tempo per scrivere la documentazione delle API fatte decentemente, poi scopro che non funziona niente.

Invece io ogni tanto faccio proprio un bel refactoring, ok, sta roba è solida, facciamo refactoring e facendo lo rompo tutto, però nel rompere dopo il sistema tutto diventa un po' più...

Non dico elegante, un po' meno di scarica di malagrotta, che è neanche una citazione.

Guarda, a proposito di questa cosa, ci tengo a dire una cosina importante.

Sto preparando un talk, no? E questi giorni ragionavo sul concetto di complessità nel codice, no? E c'è un bellissimo libro di cui adesso non ricordo il titolo preciso, è qualcosa tipo Philosophy in Software Design, è stato il gingilo del balocco del podcast un po' di episodi fa, e si diceva che in realtà l'indice di complessità è uguale a quanto è complicato il tuo codice, ma pesato in funzione di quanto spesso ci devi mettere le mani in quel pezzo di codice.

Cioè, quello che questo ragionamento dice è ok, tu puoi scrivere del codice che magari ha dei nomi non perfetti, magari ha una complessità molto alta, magari non è espresso nel modo più eloquente del mondo, ma se ci metti mano una volta ogni cinque anni, l'indice di complessità viene in qualche modo contenuto, no? Cioè viene ridimensionato in funzione di questo.

Quindi spezziamo anche la lancia, il codice non scritto benissimo, dai.

Poi una volta, adesso non è più così, una volta si scriveva del codice male per motivi di performance.

Adesso con le macchine che sono così potenti, i compilatori che sono veramente furbi, è difficile imbattersi in problemi di performance perché hai scritto il codice troppo elegante, allora magari tendere un po' più sporco lo rendi più veloce.

Adesso i problemi di performance si vedono a un livello più alto, dicendo qui c'è proprio un errore di logica più che di implementazione.

Sì, voglio ritornare sulla questione delle dipendenze, no? E sul fatto che lavori su macOS.

In realtà da quello che mi è sembrato di vedere, macOS offre tutta una serie di SDK che semplificano la vita abbastanza.

Per esempio, io non sviluppo in ambito Mac, però mi è sembrato di vedere che tutte le librerie che si occupano di audio su macOS siano ben fatte rispetto ad altri sistemi operativi.

Quanto le librerie date dal sistema operativo sostituiscono le dipendenze di terze parti? Nel mondo dell'audio-video bisogna riconoscere che Apple ha fatto tantissime cose.

QuickTime l'hanno inventato loro 30 anni fa, credo.

Poi l'hanno riscritto da zero, anche se fuori si chiamava QuickTime.

Quando hanno introdotto iOS, l'anno prima hanno introdotto quello che si chiama AV Foundation, che è un framework enorme ed è assolutamente cross-platform.

C'è le stesse chiamate, identiche, vanno bene su Mac, su iOS, su iPad, su Watch, su Apple TV, eccetera, eccetera, eccetera, per la gestione di flussi audiovisivi.

Questo framework è una cosa enorme, potrebbe essere un sistema operativo a sé stante, in realtà ha tantissimi livelli e tantissimi strati per cui uno può decidere di dire se c'è questo file mp3, fai play, va bene, oppure puoi dire, prendi questo file mp3, tirami dentro tutti i sample, mettimi lì dentro in un bel array di float e da lì a questo punto posso lavorarci io.

Ha lo stesso dicasi sulla parte di Accelerate, che utilizza tutte le CPU e le GPU per accelerare i calcoli matematici tipo la trasformata di Fourier, le operazioni con vettori, dove i vettori sono vettori di milioni, se non di decine, centinaia di milioni di dati.

C'è molto, viene molto in aiuto.

E poi, soprattutto per l'audio, c'è una libreria abnorme che si chiama AudioKit, o AudioKit diciamo nell'inglese, che invece è basata su tutti questi framework enormi per dare un'interfaccia ancora più semplice, un'app un pochettino più semplice, ma tipo le app dell'audio consentono di dire senti, c'è questo coso che emette il suono, applicaci questo filtro, quest'altro filtro, l'equalizzatore, ecc.

poi salvami questa parte nel file, quest'altra vai ancora avanti, uno può costruirsi veramente un mixer enorme, logico, soltanto utilizzando i componenti del sistema operativo.

Fino a qualche anno fa, guardando i talk di Apple, dicevano, per motivi di performance, è meglio che sta roba la scriviate in C e non in Swift.

Swift non era molto ottimizzato.

Adesso invece non ti dicono più niente, nel senso usa Swift, tanto è tutto veloce, tutto potente, tutto comodo.

E devo dire che questi nuovi computer, io da due settimane ho questo nuovo MacBook Pro, con l'M1 Pro, e devo dire che dal punto di vista audio-video è pauroso, ma ancora di più dal punto di vista della potenza computazionale.

Compila le mie app in un ottavo del tempo, ma non sto scherzando, è un ottavo vero.

Per cui, arrivati a questo punto di complessità e di potenza, l'audio, che è una cosa relativamente semplice, si fa in maniera comoda.

Stesso dicasi del video, è molto facile anche su iOS dire questo frame analizzamelo e utilizzo questi 50 filtri per ritagliare l'immagine, per scalare, trovami dove sono le facce, fare analisi con intelligenza artificiale, se ci sono dei testi, è molto ricco come ambiente, soprattutto dal punto di vista dell'audio-video.

Che poi dal punto di vista vero e proprio, questo è che c'è da fare quando si sviluppa un'app anche soltanto mobile, se anche vuoi fare delle elaborazioni.

Poi è difficile che uno faccia delle cose di elaborazione vera e propria.

Dal punto di vista del database, tutti i sistemi Apple hanno SQLite sottostante, a cui viene appiccicato sopra quello che viene chiamato Core Data, che è un gestore database che può essere sia relazionare che no SQL, abbastanza ottimizzato e anche abbastanza integrato con l'interfaccia utente.

Cioè è molto facile di dire, crearsi una view di una tabella in modo tale che quando c'è qualsiasi modifica al database, la view, l'interfaccia utente viene aggiornata in maniera automatica, seguendo il paradigma MVVM.

No, è bellissimo.

A parte che ho visto, mi era capitato di vedere Core Data, ed è un livello di astrazione che in realtà mi sembra che praticamente elimina l'esigenza di un ORM.

Alla fine è abbastanza semplice interagirci.

Se l'ho capito io.

E tra l'altro ho visto che avesse, se mi ricordo bene, mi era capitato di vedere che in qualche modo utilizzasse anche, volendo, il cloud di Apple per la sincronizzazione dei dati.

Qualcosa del genere.

Allora sì, per certi versi funziona un po' come funziona MongoDB e Firebase.

Il cloud è assolutamente no SQL, cioè nel senso tu puoi salvare un JSON, mettiamola così.

Poi in qualche modo tu a livello della tua applicazione te lo puoi strutturare un po' come vuoi.

In modo tale che tu puoi anche fare la sottoscrizione alle tue stesse tabelle, ai tuoi stessi database in the cloud, in modo tale che se un computer aggiorna un record o ne aggiunge uno nuovo, questa informazione viene propagata.

Funziona abbastanza bene perché dal momento della creazione dell'app o anche in fase di modifica puoi dire, sai che c'è questo database? Già che ci sei, fammi la sincronizzazione su iCloud.

E funziona abbastanza bene.

Devo essere sincero, Firebase è molto più performante.

Io per alcune applicazioni che non sono in commercio che utilizzo io con altri podcaster, utilizziamo Firebase come sistema di messaggistica inter-app.

Cioè l'applicazione modifica qualcosa in uno storage che ti ha condiviso e manda una sorta di messaggio app to app attraverso Firebase che ha tempi di risposta di qualche decimo di secondo.

iCloud a volte può avere anche tempi di aggiornamento di tabelle tra vari device, anche nell'ordine di qualche decina di secondo.

Cioè per cui c'è 100 volte più lento.

Poi funziona abbastanza reliable.

Devo essere sincero, non ci ho mai lavorato tanto.

Mi sono scritto io un mio database online e un mio server che è molto più semplificato ma risponde abbastanza alle mie esigenze.

Adesso devo lavorare un pochettino in questi giorni.

Voglio aggiungere cose che consentono di gestire delle cose in maniera un po' più facile per il multiutente in modo tale che uno possa avere la stessa app su diversi device, le stesse preferenze sincronizzate.

Uno potrebbe dire perché non lo fai con iCloud? Perché ci sono anche dei motivi di policy.

E la vuoi vendere? È un casino.

A parte il fatto che ti dice da questo momento in poi tu non potrai chiedere lo sconto sulle revenue mi ci dovresti dare sempre il 30%.

Ma questo non è un grosso problema.

Difficilmente venderò qualche mia app.

Però dal punto di vista della gestione delle cose è sempre un po' faticoso.

Siccome mi ero sviluppato tutta questa infrastruttura mia che mi funziona abbastanza bene, per adesso utilizzo quella, non ci ho ancora fatto niente di critico per cui va bene così.

Fa parte di tanti side project che ogni tanto arrivano a un certo livello di polishing che diventano dei MVP.

Ogni tanto.

Guarda, intanto hai citato Firebase e io per dovere di amore verso Postgres e quelle ci tengo a ricordare che esiste anche Superbase che sono tanti cuori e viene spacciato, in realtà non lo è ma viene spacciato come un sostituto di Firebase in realtà per alcune cose molto interessante c'è un episodio, mi raccomando se non l'avete ancora ascoltato ascoltatelo.

Sentito, sentito.

Fa più o meno quello che Firebase fa anche con la questione del messaggino real time quando una tabella, una certa tabella si aggiorna o un certo record si aggiorna quindi è interessante.

Mi chiedo proprio perché non sei la prima persona che dice che il sistema cloud dati il database cloud di Apple non funziona benissimo rispetto ad altre soluzioni più altre soluzioni nel mercato devo dire c'è anche qualche soluzione di AWS mi chiedo, secondo te perché Apple ha ancora questa specie di limite nei confronti di alcuni servizi cloud? Io ricordo che avevano investito tantissimo nello sviluppo dei servizi tu senti intanto questo limite per quanto riguarda i servizi cloud? oppure un po' si sta appianando il gap? Si sta appianando sicuramente rispetto a qualche anno fa adesso le cose, stavo dicendo che adesso i problemi sono di performance non di affidabilità le cose prima o poi si sincronizzano prima o poi potrebbe essere un minuto non so se è stato Marco Arment che dice che le aziende che sono molto forti ramo client, dalla parte client sul lato server sono un po' più deboli Google bisogna essere sinceri sul lato server è imbattibile ma io ogni tanto quando vedevo i tempi di risposta di Firebase, di aggiornamento e dico mamma mia ma come è immediato è più veloce del mio pensiero tanto questo aggiornamento non ho idea di che cavolo di sistema abbiano riscritto per fare una cosa così veloce però per adesso è una questione essenzialmente di velocità io ho scritto un'applicazione che utilizzo io con i miei colleghi quando facciamo podcast musicali insieme in modo che la stessa canzone venga riprodotta da tutti i computer distribuita, uno fa play c'è proprio una sorta di messaggino play che viene distribuito a tutti i partecipanti contemporaneamente e ognuno di loro gli parte la canzone riprodotta in locale così non occupa banda e non rompe le scatole su Skype che utilizziamo per la conferenza e questa roba qua non avrei potuto farla in altro modo se non così poi personalmente se evito di usare Firebase sono contento perché Apple ha questa se usate Google ha questa simpatica abitudine di dire sapete che c'è ho cambiato le API mo so cazzi vostri, ciao e se ne va via sbattendo la porta e tu sei lì che dici ah si adesso per far funzionare tutto hanno un approccio molto molto agile diciamola così Apple invece prima di deprecare qualcosa ti fa passare due o tre anni di grazia e dopo ti dice vabbè è un altro anno, fanculo infatti per quanto ricorda scusa mi dicevo l'ultima cosa non conosco tutte le mi sono studiato MongoDB perché Realm il database locale è molto ben integrato funziona molto bene e soprattutto la sintassi è bellissima rispetto a quella di Cordeta che soffre molto del fatto di essere un oggetto che ha 20 anni e ogni anno dicono adesso quest'anno migliorano la sintassi però a volte è molto confusa, è molto vecchio stile molto C per dirti e il C con tutto il rispetto che uno può avere per il C nel senso è una roba un po' polverosa per certi versi Superbase l'ho ascoltato con piacere la tua cosa ma non mi sono interessato sul fatto che possa avere delle API gestibile e fattibile in maniera comoda però mi ha fatto venire il dubbio e la curiosità le API di Swift non sono ancora fatte benissimo le SDK per essere precisi di Swift non è ancora fatta benissimo però c'è margine di miglioramento volevo chiederti invece ritornando alla questione di Apple e del giardino cintato io ho visto, tu ti muovi su due direzioni, le applicazioni desktop e le applicazioni e-tool mobile per quanto riguarda le applicazioni desktop le commercializzi dal tuo sito per quanto riguarda lo store che invece è la casa delle applicazioni mobile anche perché non potresti fare altrimenti come percepisci questa cosa del 30% di fee ad Apple per le applicazioni che passano allo store senza avere alternative come percepisci la causa a Fortnite e similaria da sviluppatore da indie sviluppatore da dev in indie come vivi questa cosa? allora, questa roba qua di di Epic Mega Games è la guerra dei ricchi che cercano di far combattere noi poveri allora, io personalmente non ho mai avuto problemi con il 30% che poi sono diventati 15 perché se per un anno non guadagni un milione di euro puoi dire, un milione di dollari scusate, mi abbassate, loro ti dicono va bene, vai tranquillo, poi te lo rialzano nel caso in cui tu vendessi un'app con dentro i cloud eccetera eccetera, o fai delle cazzate nel mio caso non credo che raggiungerò il milione di dollari neanche mettendo insieme i 10 delle mie vite per me il 15% o anche il 30% non sono un problema, davvero se penso allo sbatti che mi faccio io per gestire lo store dare il 30% ad Apple sarebbe veramente la fine del mondo su Mac non posso farlo perché le mie app sono fortemente non sandboxed adesso Apple è un pochettino più permissiva, però quando ho iniziato no, a questo punto mi ero scritto tutto questo sistema di gestione di uno store interno e anche della protezione dei dati perché quando mi hanno craccato la mia prima app, la mia prima volta, nel senso ho perso il mercato cinese in un colpo il mio mercato cinese era il mio primo mercato me l'hanno craccato, era sul torrent e da quel giorno la Cina non la conto più il Mac App Store per dirti è la cosa più aperta del mondo, nel senso se tu pubblici un'app sul Mac App Store dopo 25 minuti lo trovi sul torrent regolare e questo potrebbe essere un po' problematico per certi versi il giardino fiorito di Apple, allora la cosa che dà fastidio molto è l'approccio molto stai sbagliando e ti devo correggere, cioè nel senso, l'approccio è hai sbagliato questo, questo, quest'altro e a volte non ci sono delle grosse spiegazioni, si vede che in parte il processo è automatizzato in parte c'è qualcuno che in qualche modo deve valutare la cosa e il suo dictat è sempre, se sei in dubbio cancellagliela non accettare l'applicazione e come giustificazione minima, a volte le giustificazioni sono veramente, a volte hanno un senso a volte dici, si vabbè ma sono un po' esagerate, però se tu sai come funziona questa cosa sai come affrontarla e capisci tutto l'insieme personalmente ho due app nell'app store, quello di iOS, che hanno avuto si, diciamo che forse mi ripago l'abbonamento annuale alla membership dei sviluppatori di Apple, non è assolutamente il mio mercato, ho fatto queste due app per me e poi ho detto, vabbè vediamo se può essere interessante a qualcun altro, ma non ci ho mai fatto nessun tipo di marketing, il grosso problema dell'app store, secondo me è il fatto che è presidiato da una vagonata di applicazioni scam e da un sacco di advertising fatto apposta per questo tipo di applicazioni per cui, se uno ha in mente un'idea anche che potrebbe essere originale, ma non dico io, anche altre persone, cioè per trovarla arrivi veramente a scorrere tanto, in questo il sistema di ricerca di Google è grazie a gelo, cioè nel senso se non lo sanno fare loro, è molto più più bello, più performante e più aderente alla realtà poi, ripeto, per me lo sviluppo di applicazioni mobile non è un business pensa che ho letto un articolo due anni fa prima della pandemia che diceva che il costo di acquisizione di un cliente è intorno ai 15 dollari cioè se tu vuoi pagare con le advertising con le cose, il costo di acquisizione della persona è 15 dollari per cui si ripaga in un anno e mezzo con l'abbonamento a un euro al al mese per cui, chi se lo può permettere sono quelli che fanno i grandi giochi quelli che hanno acquisti in app, eccetera eccetera, eccetera, e tutti gli altri sono province del grande impero il 90% delle app su Mecca, sull'App Store, fa meno di 100 dollari all'anno capisci che non è un mercato per nessuno, cioè nel senso 100 dollari magari sono tanti in alcuni paesi del mondo, ma neanche lì più di tanto tutti quelli che fanno programmazione e sviluppo di applicazioni iOS, quasi tutti lo fanno a meno, quello che vedo nel mio paese in Italia è che diventano bravi e a questo punto vengono assunti da altri per fare applicazioni che poi sono applicazioni che non hanno uno sbocco commerciale, quelle potrebbero essere applicazioni vetrina o applicazioni corporate, business to business, che a questo punto sono pagate dal business e non dall'applicazione stessa chiaro, chiaro, chiaro, e questa cosa secondo me alla lunga andrà a penalizzare lo store e metterà fuoco metterà benzina nella causa appunto Progressive Web App perché da una parte i browser stanno sempre integrando meglio il sistema operativo mi era sembrato di vedere qualche cenno di apertura anche di Apple che insomma ha le sue policy i suoi modi da agire, però comunque molti sviluppatori che prima avrebbero fatto un'app adesso se si può fare l'app la stanno trasformando in servizio web e devo dire che se prima avevamo bisogno di un'app che girasse vicino al sistema operativo Alex pensiamo alle tue app che fanno analisi audio mettiamo di dover fare un'app che fa analisi audio ok, su iOS se prima dovevamo farle vicino al sistema operativo oggi con WebAssembly in realtà un po' quel gradino lo stiamo saltando, no? non so se WebAssembly iOS su iOS supporti WebAssembly.

A naso ti direi di no però non ho indagato allora ti dirò se io fossi una casa di produzione di moda, che fa moda e faccio pubblicità ai miei prodotti su Instagram a parte il fatto che tendenzialmente adesso cercano di veicolare su Whatsapp e su National e Commercial che ha un sacco di app molto interessanti manderei all'app per un motivo anche poi magari l'app te la scrivi in...

un'app rappando una pagina web però più che utilizzare il Safari della situazione del browser nel web utilizzare un'app perché è molto più facile tracciare la gente su un'app dici puoi dire che fai qualsiasi cosa e tracci e ti tiene traccia di un sacco di informazioni la gente adesso sul browser tendenzialmente dice questo sito blocca tutti i cookie di terza parte, blocca di qui, blocca di là invece su fare analisi su un'app molto più immediato, già il fatto che non deve apparire quel bannerino della cookie policy aiuta tantissimo questo è il motivo, se io fossi la casa di moda del momento per fare questa roba qui però ovviamente la casa di moda del momento ha le risorse per farlo sai che non ci avevo mai pensato a questa cosa del tracking anche perché se vuoi sapere se vuoi vedere se ti stanno tracciando in app insomma devi magari sniffare il traffico dati e dunque di conseguenza non lo fa nessuno non lo fai forse arriveranno le cookie bar anche lì forse, o un appseudo ovviamente sarà di Sadio questo fatto del tracciamento effettivamente non ci avevo non ci avevo mai pensato, nemmeno io in realtà con questo nuovo vestito io tutelo gli utenti perché gli utenti sono il mio amore in questo nuovo vestito di Apple da qualche anno a questa parte insomma, dalla lettura che Alex ci sta dando in questo momento potrebbe anche più che essere giustificato, no? e...

guarda Apple devo dire la verità, tra l'altro quando tu crei un'app nuova ti fanno compilare una vagonata di form che ti dicono cosa chiedi cosa non chiedi, cosa fai, cosa non fai già me lo ricordo! Esatto, ma adesso ancora di più ed effettivamente poi ci sono alcune librerie, io in un'app che ho fatto ho utilizzato la la libreria di di analisi di Google l'analytics per le app mi ha fatto diventare l'app del triplo, perché è enorme nel senso che tiri dentro la bibbia scansionata da quello di Gutenberg, pertanto è grosso questo framework poi me ne sono anche abbastanza dimenticato di sta cosa qua, sinceramente io nelle mie app ho un tracciamento che mi dice che quest'app è stata lanciata, punto che mi fa comodo per sapere quanti lanciano un'applicazione, se per caso una mia campagna di promozione comporta tante installazioni allora ho una sorta di feedback però è il massimo che veramente a me di quello che fanno gli utenti con le mie app, me ne merito cavolo sul fatto di gestire la privacy devo essere sincero che fino adesso leak vere e proprie non ce ne sono stati, nel senso di cose è un sistema chiusissimo, faticosamente chiuso, però adesso l'utente ancora leggermente passami il termine tutelato tra virgolette, poi? Guardavo proprio adesso il supporto di WebAssembly e vedo che è supportato da iOS 11 quindi in realtà WebAssembly è supportato per cui boh, non lo so se...

Il problema di fare una roba con l'analisi di grandi quantità di dati è dato dal fatto che a meno dell'iOS nuovo, quello che esce a ottobre e a meno che giri su un iPad con M1 iOS per suonatura dichiarata, non ha non ha il memory swap, per cui tu in qualsiasi istante puoi essere cacciato a pedate dal sedere dal sistema operativo perché stai usando troppa memoria tutte le app, alcune app che mi sono scritto io per fare questo tipo di roba, e non sono tool interni cioè roba che ho scritto io, prevedono la paginazione, nel senso io non posso prendere un intero file audio e tirarmelo dentro con i telefoni nuovi sì, ma allora quando lavoravo con iPhone 5 e iPhone 6 la memoria era veramente poca roba per cui diciamo che tiravo dentro 10 MB l'elaboravo, poi ne tiravo dentro altri 10 MB e voglio vederti a far una roba del genere in Safari, in WebAssembly cioè con questo tipo di roba cioè il problema di lavorare con le immagini o con l'audio è che se a un certo punto ti abbassi di quel livello e non fai fare le cose al sistema operativo ma te le fai tu i dati ti esplodono, ma ti esplodono tantissimo per dirti un file di un'ora in audio, in mono occupa 360 MB se in formato 16 bit per sample, che diventano il doppio se lavori in float, che diventano ancora il doppio se lavori in in stereo che diventano ancora il doppio se lavori con la Fast Fourier Transform perché ogni componente è un numero immaginario cioè un numero complesso per cui è una parte reale è una parte immaginaria o per dire hai la fase e l'ampiezza, di conseguenza sono due cioè comunque diventano tanti MB, diversi GB a volte il sistema operativo ti dice ma sai che c'è? No, basta e ti butta via e...

e non hai tempo di...

anche se hai 5 secondi per chiudere qualcosa quando il sistema operativo ti butta via per la memoria però...

e poi comunque la tua applicazione viene schiedata come un'applicazione molto energy consuming cioè si abbassa anche il tuo rating, è tutto un insieme di cose che sì, è possibile farle su questi device ma è molto...

è molto faticoso su Mac invece tu hai un computer, dici senti dammi 10 GB e arrangiati e lui con lo Swap ti dà quello che vuoi senza senza grossi problemi.

Poi nell'ultima applicazione che sto lavorando ha un problema di memory leak per cui per un filmato di 4 minuti occupa 100 GB di memoria virtuale e infatti non è ancora uscita in commercio per questo motivo siamo io e il mio beta tester che mi dice sei crashata un'altra volta e io porca di qui, porca di là, che cosa sto facendo di sbagliato? Tu lavori con grandi moli di dati da quel punto di vista ma il...

lavorando in locale non hai problemi di di...

ma comunque hai problemi di memoria locale che non spariscono voglio per un attimo, visto che il tempo vola io rimarrei ore a chiacchierare con te, a parte che mi fa strano sentire la tua voce rispetto a...

e poterci interagire no? rispetto a...

ad ascoltarti via podcast.

Scusa la stessa cosa vale per me perché è emozionante tutto l'insieme di cose però volevo chiederti un tempo tu raccontasti come avevi fatto l'analisi per individuare i momenti di silenzio o di non parlato in una traccia audio ci vorresti raccontare come avevi fatto e come hai fatto? beh è molto semplice io mi sono inventato questo concetto dei cluster perché io quando editavo i podcast uno dei primi podcast che ho fatto tanti anni fa con il mio amico Justin Rosati che era Justin Tech che poi era diventato una cosa più relegata al mondo Apple io mi occupavo di far l'editing, cioè lui mi mandava la traccia audio registrata da lui e la mia e essenzialmente mi mettevo ad abbassare il volume tutte le volte che c'era qualcuno che non parlava io ho sempre montato a suo tempo i podcast con Final Cut, pensa te e andavo proprio a occhio, guardavo quando non c'era nessuno che parlava, abbassavo il volume proprio a mano e allora a questo punto mi sono detto, ma sto lavoro qui che è ripetitivo è una rottura di palle, lo fai sempre così? Non puoi farlo fare una macchina? Ho detto sì, assolutamente sono un programmatore, posso farlo! E lì è nata l'idea di PodCleaner, l'idea è quella di trovare i cluster, cioè nel senso come faccio a capire se uno sta parlando o non sta parlando è un po' come quando guardi la forma audio su un programma di montaggio che vedi una versione molto semplificata perché ogni secondo sarebbero 44.000 valori però tu vedi 50 pixel allora l'idea era quella di fare una sorta di raggruppamento e l'idea è quella di prendere il segnale audio, trasformarlo in potenza perché così non hai valori positivi e negativi e poi fare un raggruppamento nel senso per questo per cui un vettore di 44.000 sample al secondo per un'ora per dirti viene ridotto a qualcosa del tipo 100 sample al secondo, anche 10 sample al secondo, l'ordine di grandezza è questo e a un certo punto diciamo che si trova una sorta di soglia che uno può impostare manualmente a livello di decibel oppure andando con un algoritmo che non mi ricordo neanche come è inventato, insomma ci ho preso un mese per fare sta roba qui, cercando essenzialmente il punto in cui sopra questa soglia è rumore sotto questa soglia non è rumore praticamente crea un altro vettore di acceso spento, acceso spento, acceso spento e a un certo punto vado a fare una sorta di filtraggio se sta acceso per 10 decimi di secondo consecutivi poi spento per un decimo di secondo poi acceso per altri 10, diciamo che faccio il filtro e quella roba lì lo metto dentro e diventa un treno di sample di 11 21 decimi di secondo stessa cosa di casi per quando si accende un attimo, perché magari uno ha fatto un click o cose del genere, così facendo ho una versione sempre più semplificata del file audio di acceso spento e a questo punto posso dire di fare una sorta di filtraggio invece di usare un noise gate che praticamente prende il file, quando c'è un rumore si accende quando non c'è rumore si spegne come se fosse una sorta di diodo invece di essere un diodo elettronico è una sorta di oggetto che si apre e si chiude proprio il gate poi uno può dire se ti sei aperto rimani aperto per un attimo poi dopo abbassati lentamente io ho fatto un lavoro diverso, nel senso vado a prendere tutti questi cluster, questi gruppi di parlato diciamo così, e vado ad abbassare il volume e alzare il volume ma prima che inizino e dopo che siano finiti, in questo modo non c'è l'effetto di colpo se uno sta zitto e inizia a parlare si uno può metterci un ritardo di 20 millisecondi però così facendo diciamo che fare qualcosa di analizzare tutto il file una volta sola, non intanto che viene inserito diciamo, che arriva consente di avere un flusso molto più morbido di acceso e di spento su questa filosofia dei cluster ho costruito diverse app tra cui PodCleaner che utilizza i cluster per andare a trovare il momento di minima sovrapposizione tra diverse tracce audio, noi stasera stiamo registrando in tre, io, te e Luca e ognuno di noi avrà dei momenti di cluster cioè dove parla e momenti dove sta zitto, la mia applicazione PodCleaner va a prendere con un algoritmo euristico, trova il momento di minore sovrapposizione e dice che a questo punto le tracce sono sincronizzate, su questa roba della sincronizzazione ho fatto un lavoro veramente figo perché l'ho fatto un lavoro multi-threaded ed è euristico, nel senso l'idea è che prendi un qualsiasi punto di sovrapposizione mettiamo che sono solo due tracce, la mia e la tua e il mio algoritmo sceglie a caso un punto cioè diciamo che la mia traccia è shiftata di mille secondi per dire a caso, e a questo punto va a trovare tutta la sovrapposizione e vede quanto ce n'è e a questo punto va avanti a fare mille e uno secondi e a 999 e vede quale dei due è il risultato migliore se per esempio 999 dà un risultato migliore, cioè con meno sovrapposizione, allora ricomincia 998, 999 e 1000 eccetera finché non arriva a un punto in cui si trova una sorta di minimo locale e a quel punto invece di andare avanti indietro di un secondo comincia ad andare avanti indietro di prima di mezzo secondo poi di venticinquesimo di secondo eccetera metà, fino a quel fino una certa precisione, tanto sotto il decimo di secondo non cambia niente in podcast e a questo punto dice che a 900 secondi di differenza c'è questa sovrapposizione, c'è questo valore ma non solo essendo una cosa ricorsiva torna indietro di tutti i livelli e dice se tu parti da 1000 comunque andrai a finire a 900 se tu parti a 999 andrai comunque a finire lì, cioè diciamo che la strada è già segnata per cui se a un certo punto un altro thread o dopo si ritorna a fare un'altra cosa casuale partendo che ne so da 950 automaticamente è già trovata la soluzione così facendo, analizzando anche solo il 5% anche un percentuale minore di casi possibili si arriva praticamente sempre all'ottimo e questa cosa adesso l'abbiamo fatta in due dimensioni ma il mio algoritmo funziona con n dimensioni, mi ricordo che per inventarmi questo algoritmo ricorsivo che lavorava in n dimensioni non mi ricordo come ho fatto però funzionava abbastanza bene ed è anche piuttosto veloce devo essere sincero, vedremo come si comporta dopo la nostra registrazione esatto in questo episodio volevo chiederti un'altra cosa, un altro dei tool che hai fatto è un tool per semplificare il montaggio video su una traccia musicale che in qualche modo analizza la ritmica o i bpm io adesso non so come faccia nel dettaglio però ti dà già praticamente dei placeholder su final cut per poi andare a mettere le tue clippine a livello di sviluppo hai utilizzato lo stesso approccio o qualcosa è cambiato? allora lì posto che l'ultima versione di questa applicazione che è Beatmark Pro è uscita il 5 maggio di quest'anno mi sta dando abbastanza delle grosse soddisfazioni, l'ho usata già due volte io personalmente per lavori commerciali la parte di analisi audio me la sono scritta da zero, questa è la terza incarnazione di questa applicazione, le prime due volte avevo una dipendenza di un algoritmo sviluppato da un tizio pubblico su internet che però non non era soddisfacente perché dato che l'idea che la canzone potesse cambiare velocità l'algoritmo si adattava e questa cosa generava un po' di perdita di vita allora mi sono studiato tutta l'accademia su questa roba qua la filosofia è di idealizzare il beat, cioè nel senso un momento di battito, cioè un momento di disruption nella musica nel senso che tu fai una canzone che fa tunes, tunes, tunes, tunes, cioè il momento di è proprio un momento di disruption perché prima c'è il silenzio e dopo c'è questa sorta di battito la filosofia è quella di andare a beccarsi appunto le differenze, nel mio caso io faccio una trasformata nel domino delle frequenze con la trasformata di Fourier e faccio una differenza tra tutte le frequenze non soltanto in ampiezza in questo modo riesco anche a dare dei pace diversi a delle frequenze perché magari delle frequenze troppo alte non hanno nessun senso, troppo basse non hanno altri sensi ma nel mio algoritmo è un po' più complicato perché a un certo punto facendo questa cosa nell'ordine di grandezza di un centesimo di secondo, perché con la trasformata di Fourier hai questi ordini di grandezza ci sono alcune canzoni la maggior parte delle canzoni il cui battito non lo senti proprio nel momento del beat ma hanno una sorta di riverbero interno che viene fuori dopo 2, 3, 4 centesimi di secondo dopo per cui nel mio algoritmo ci sono tanti algoritmi messi insieme che cercano di capire che cosa sta succedendo alla musica in modo tale da capire cosa succedeva prima, cosa succede dopo in modo tale da crearsi una sorta di andamento della variabilità della canzone cerco di semplificartela molto perché è molto complicata anche perché una canzone magari prettamente elettronica con una batteria elettronica non ha grossi problemi di questo tipo, se c'è appena appena c'è un essere umano che suona a volte ci può essere un fuoritempo di un centesimo di secondo dato che il computer non riesce a discernere finché non glielo spieghi tu non riesci a capirlo molto bene, poi noi esseri umani siamo molto bravi perché se io vi dico tuns, tuns, tuns tu ricrei il tuns che manca perché ti viene naturale un computer fa molta più fatica per cui l'idea è che una volta che trovi questo treno di tunes, ognuno di i tuns assegna un valore di energia la mia applicazione cerca di trovare anche qual è il pattern principale c'è una canzone che fa tunes c'è un tune, un treno principale poi ci sono tutti questi questi battiti secondari che vanno inlevare oppure nei sedicesimi che possono trarre in inganno per cui l'idea è quella di trovare tutti i battiti che stanno all'incerca in un certo intervallo di tempo, in modo tale uno può scegliere, però ho scelto da 80 a 160 bpm quando c'è un battito che è distante da un altro battito, quella differenza lì ovviamente approssimata perché dato che lavoriamo nella trasformata di Fourier abbiamo dei chunk e non abbiamo dei sample, per cui non lavoriamo con dei numeri reali ma lavoriamo proprio con dei numeri interi per cui ci sono delle approssimazioni, un sacco di approssimazioni cerco di trovare qual è il treno principale, quello che ha più energia e a questo punto facendo questa prova con tutti i bpm trovo qual è il bpm teoricamente giusto della canzone e a questo punto trovo qual è più o meno il treno principale questa cosa qui funziona la metà delle volte, però a un certo punto mi sono detto, ma sai che c'è? per fare montaggio video non è necessario fare questo tipo di analisi, chi se ne frega, io metto i marker più importanti in modo tale che poi riesco a montare le clip in modo che aderiscano ai battiti più importanti della musica, non a quelli che sono dello sheet di music, cioè non è che vado a 100 bpm e devo mettere una clip ogni 120 volte al secondo, ogni mezzo secondo e così facendo...

Non sei mica Carl Cox, come disse Kodas Ti giuro, così facendo i montaggi sono anche più belli l'ultimo video l'ho fatto una cosa e ho praticamente mandato al cliente l'output della mia applicazione senza neanche lavorarci più di tanto ovviamente poi dopo ci ha lavorato, però è stato un ottimo kickstart, e adesso una volta che mi ero fatto tutto questo elenco di bit mi sono detto, andiamo a vedere come è fatto dal punto di vista della trasformata di Fourier l'intorno di uno di questi bit, l'intorno è circa 0,7 secondi, ovviamente parametrizzabile dall'utente, però visto che l'ordine di grandezza è quello di un'ora, e vado a confrontare ogni singolo bit con ogni singolo altro, per cui un bellissimo O.N.

al quadrato infatti il limito ha 500 marker, non a tutti quelli trovati ai 500 più forti e trovo lì il grado di similitudine, per cui magari se a un certo punto una canzone ha un bit che assomiglia a un minuto che assomiglia molto a un bit a due minuti uno può dire, sai che c'è da un minuto a due minuti, posso tagliare via e fare una canzone più corta e a base di questo uno può scegliere la durata della canzone che vuole e l'applicazione ti trova non il più sensato ma i 20 più sensati con questi parametri, in modo tale che tu te lo riascolti e decidi tu come montatore qual è il taglio che ti piace di più ok allora lo dico davanti a tutti adesso faccio uso del podcast faccio uso del podcast per il podcast ti prego Alex fai una jingle machine che utilizza sta roba per far finire le musichette bene allora ci ho pensato ci ho pensato seriamente te l'ho già chiesto in realtà il primo a chiedermelo sono io, erano tanti utentanti, nel senso quando mi mandano i feedback ok si può accorciare la musica ma si può anche allungare cioè nel senso fare questa cosa qui ci sto lavorando ti voglio bene non sai perché te lo dico, perché in realtà avendo questo tipo di jingle machine qua per il podcast rischieremo di fare one take live e mettere in produzione direttamente il registrato perché in realtà sembra così ma tutti la produzione video, la produzione audio presuppone un lavoro di post produzione allucinante un po' con i tuoi tool ho semplificato la pipeline però rimane sempre comunque un sacco di passaggi no? e mi serve questa applicazione allora farlo in tempo reale è un po' complicato perché il problema è anche se scegliersi delle musiche adatte nel senso tu, se tu vai in siti dove puoi acquistare royalty free music a volte ci sono dei kit kit che ti dicono intro, outro, ecc ho fatto un lavoro per unicredit banca due anni fa e loro avevano avevano proprio una music, una libreria una cartella, tipo di 50 file che ti dicono inizio cioè ci sono tre inizi diversi 18 svolgimenti diversi e 4 fini diverse con diversi accordi che erano pensati per essere proprio modulari e così lo stesso dicasi musica di produzione che puoi acquistare di solito i kit non hanno tipo 40 file ne hanno 6 o 7 però non è così come dirlo, io ho l'approccio tu sai che ho scritto un programma di montaggio podcast che è in commerciale e lo uso io per primo eee che ha proprio questa filosofia, devo essere sincero sul podcasting ma anche sulla musica, leggendo un trattato di musica aspetta, ce l'ho qui il libro state lì, ce l'ho proprio dietro sulla schiena ok, naturalmente quando uno dice queste cose non le trova, va bene insomma diciamo che era un libro che parlava del montaggio audio di come se uno dovrebbe un produttore di audio di solito i produttori di video sono anche produttori di audio più che che la musica finisca è bene costruirsi una musica che magari si abbassa leggermente in modo che la musica successiva entra ed entri in modo disruptive sia ovvio che se uno se la costruisce per bene funziona anche bene in tempo reale di solito si fa il fatto che ne entra una che che entri in maniera piuttosto invasiva in modo tale che da nascondere quella precedente ma è anche quello che si fa nel montaggio audio per il video essenzialmente quando uno parla la musica inizia ad abbassarsi leggermente dopo perché è proprio la prima sillaba del parlato di chiunque, non solo degli speaker è molto forte, per cui riesce a essere disruptive per la musica e va a nascondere il fatto che la musica si abbassa velocemente dove velocemente è in tre decimi di secondo per dirti, è lo stesso dichese per rialzarsi, userei questo trucco qui che è l'idea di costruire dei jingle perché in tempo reale la vedo abbastanza dura invece in post produzione mi serve che questa musica qui duri 7 minuti e 14 secondi allora sì, in quel caso si può anche costruire sai qual era la cosa che pensavo adesso, qualche volta mi è capitato che i membri della nostra community ci abbiano chiesto come funziona dietro le quinte, quindi adesso lo dico giusto per curiosità la vera esigenza è quella che quando tu fai dell'audio del podcasting così live io vengo dal mondo delle radio quindi dove il live era fondamentale hai bisogno di questi audio in loop con intro e outro alcuni programmi di regia radiofonica hanno queste jingle machine dove tu hai attiva la musichetta e spegni la musichetta, quando tu clicchi spegni la musichetta l'audio arriva fino alla fine del loop e poi ci attacca all'outro, adesso io stavo pensando di farmi una cosa del genere via browser, quindi prepararmi a priori i tre pezzetti in modo che quando finiscono il Paese dei Balocchi c'è la sigletta, poi c'è tenere una musica in sottofondo quando tutti e tre finiamo il Paese dei Balocchi io calco il pulsante finisce il loop l'ultima iterazione del loop e parte l'outro, ecco questo avevo in mente, ci sono delle jingle machine ma non lo fanno quindi cercavo qualcosa, ecco il tuo algoritmo tutto verrebbe più semplice perché in realtà trovandoti i momenti di giunzione tu potresti immagino, non lo so dimmi se ti sto dicendo una coglioneria ma potresti trovare i momenti in cui c'è un certo cambio no? Per cui già identificare questi momenti in blocchi potrebbe essere un punto molto più facile per gestire in pre-produzione questi blocchi audio, ecco questo pensavo.

Sì, l'idea mi piace, però ovviamente uno dovrebbe pensare a un audio fatto abbastanza apposta perché se uno tira dentro una musica di 5 minuti che inizia piano poi va su, va su, cioè nel senso è difficile poi trovare un momento di taglio che dia una sorta di continuità ovvio che se uno poi utilizza un loop cioè una cosa che non dico che sia loopabile che sia abbastanza ritmata da inizio alla fine, che sia molto simile, poi è molto facile creare questi tagli in maniera molto simile.

Basterebbe mettere dei marker alla fine, anche senza tirare in balla il tuo algoritmo è vero, però sai una cosa che ho imparato, ovviamente non sarà il tuo caso, però la maggior parte della gente non capisce un cazzo di queste cose qui per cui metterebbe dei marker veramente a caso e poi darebbe la colpa a me credimi ce n'è ogni tanto il supporto clienti mi porta a dire va bene, ok e questi sono quelli che scrivono quelli che non scrivono mi fanno ancora più paura per cui sì c'è bisogno che la macchina asserva al montatore, a te ma che tu asservi alla macchina nel senso che tu gli tiri dentro qualcosa non gli tiri dentro il quarto movimento no, l'ultimo movimento della nonna sinfonia di Beethoven se no la mandi in palla, una roba del genere ti tiri dentro qualcosa, ma anche per dirti ehm Shallow di Lady Gaga che inizi in un modo, si evolve e diventa un'altra cosa, è difficile trovare un loop in mezzo sì, chiaro deve avere un minimo di sensibilità esatto, esatto se prendi un pezzo di Gigi D'Agostino funziona alla perfezione per dirti, perché tutto così chiaro già se prendi secondo che pezzo degli Elio metti probabilmente ti viene più difficile Spalman lo fai, il Fantasma Performa Gino no per dire abbiamo parlato di musica con Alex ed è bellissimo scoprire anche quest'altro lato, un po' diverso dal nostro classico topic no lato sviluppatore però che evidenzia una particolarità che fondamentalmente noi sviluppatori dobbiamo essere consapevoli di una cosa che, sì scriviamo codice ma scriviamo codice per risolvere problemi e per risolvere problemi dobbiamo in qualche modo diventare non dico master, però conoscere profondamente il dominio nel quale lavoriamo e spesso lo studio di questo dominio catalizza più sforzo dello studio della tecnologia stessa ed è una delle cose che un po' ravvivano il nostro lavoro che lo rendono dinamico con Alex oggi abbiamo parlato di sviluppo software ma ci ha parlato di trasformata di Fourier io non la sentivo da elettronica no, da teoria dei segnali forse all'università in realtà poi scopri che a parte il fatto che queste cose se le sono inventate secoli addietro e ti dici minchia tutto il calcolo numerico che ho studiato all'università era roba di gente che lo faceva a penna pensando che poi un giorno qualcuno l'avrebbe fatta in maniera un po' più discreta e invece adesso lavoriamo con le curve di Bézier perché possiamo farlo, perché c'è un computer che ce le disegna, disegnarle a mano sarebbe impossibile sì, effettivamente la realtà che è più dipende anche sempre dal livello a cui vuoi stare sai, se ti dici voglio vedere l'audio voglio equalizzarmelo se all'incirca un po' capisci come funziona non come funzionano le frequenze ma quali sono le frequenze che ti interessano non è necessario che tu vada a fare tutti questi smaronamenti io l'ho fatto perché ho dovuto abbassarmi di un livello un po' come ogni volta devi scavare un pochettino la cipolla oppure i gironi danteschi cioè nel senso devo andare un po' più vicino al metallo perché il livello qui è troppo ad alto livello non mi permette di lavorarci abbastanza e Apple in questo devo dire, nelle sue app fa un lavoro che sembra molto quello che fa nel software nel senso, ci penso io tranquillo non devi preoccuparti no, ma io voglio preoccuparmi fammi capire che cosa c'è sotto quando alzi il coperchio del vaso di Pandora trovi l'infinito, abbiamo parlato solo di audio, non ho idea di cosa ci sia per le immagini cioè, quello su cui sto lavorando in questi giorni quello lo tratteremo in un prossimo episodio una domanda te l'avevo per chiedere ce l'avevo in canna prima mi diceva Alex, guarda non esistono domande stupide ma ti stupirò anche in questo so per a proposito dell'immagine si fa tanto uso del machine learning o intelligenza artificiale nelle elaborazioni che tu fai del suono tu utilizzi algoritmi tradizionali ma c'è spazio per risolvere i problemi che gli algoritmi già lo risolvono? hai pensato? qualche prova? qualcosa di possibile per il video si per l'immagine tantissimo, io ho scritto un'applicazione che fa uso solo di intelligenza artificiale per fare il cropping delle immagini tu fai una foto in orizzontale la vuoi fare in verticale e questa applicazione ti ritaglia le cose in modo che stiano bene a posto utilizzando diversi valutatori di intelligenza artificiale che trovano le aree più importanti dell'immagine vorrei sottolineare il fatto che la grande figata di Apple è che tutta la parte di machine learning è on device e non online per cui non hai bisogno di essere collegato, non hai bisogno di pagare un sacco di soldi a Google per per Tensorflow che poi bisogna anche imparare ad usarlo il contro è che hai un sacco di risorse in menu utilizzabili, per quanto concerne il suono ci sono algoritmi di classificazione e algoritmi di identificazione nel senso che tu puoi passagli un suono registrato e ti dice in questo momento c'è un cane che abbaia, in questo momento c'è una persona che parla, oppure se sei molto figo puoi registrare la tua voce, la mia voce la voce di Brain Repo e ti riconosci chi è che sta parlando in quel momento per dirti.

Io avevo iniziato a pensare ad utilizzare il machine learning per le immagini sul suono che in realtà è un doppio passaggio perché non avevo accesso diretto a queste possibilità proprio per l'identificazione dei beat ma poi mi sono accorto che gli algoritmi che ho scritto prima di passare all'intelligenza artificiale che mi ero scritto proprio per fare il training andavano già bene così mi sono detto ma sai che c'è, va bene così tutti gli algoritmi di classificazione del suono sono basati ovviamente sulle reti neurali come si chiamano ho un attimo, perché ho dei momenti di crisi a convoluzione cioè in pratica vanno a cercare delle similitudini vanno a cercare dei pattern di riconoscimento nel suono fatto in un modo ovviamente sempre passando attraverso la trasformata di Fourier perché è un po' come se analizzassero sempre delle immagini non ci ho ancora visto una cosa la cosa che voglio fare, ma questa veramente è in pipeline da anni è un'applicazione che sulla base del riconoscimento dei colpi di tosse o delle indecisioni tipo quando dici em eccetera eccetera oppure quando ti schiarisci la voce trovi questi punti e ti dica senti ho trovato questi 18 punti in cui tu ti schiarivi la voce facciamo che li taglio direttamente dal file che per me, che voglio dedicare sempre meno tempo all'editing dell'audio è una cosa comoda la stessa cosa dicasi per la sincronizzazione di file quando ci sono tre microfoni nella stessa stanza che sono collegate tra persone diverse ogni microfono prende bene il suono della persona che sta parlando e un po' meno bene gli altri se tu dici ok la persona X è questa la persona Y è questa in ogni traccia audio puoi capire chi sta parlando per cui trovare qual è la voce dominante abbassare le altre questa è una delle prossime cose che mi piacerebbe fare però mi rendo conto che mi piacerebbe fare, però so che è una cosa che non avrebbe nessun tipo di di sfruttamento commerciale per cui un bel side project carino per aiutarmi per quando faccio il podcast del vino ma niente di più però sì queste cose sono le cose che mi vengono in mente io spesso mi vengono in mente queste cose intanto che porto il cane a far la cacca sono i momenti topici infatti mi era venuto in mente anche a me quando parlavi dell'individuazione del beat della musica, forse questa è una cosa che un machine learning può fare infatti mi hai confermato sicuramente sì, nell'ottica più che altro non tanto di analizzare il singolo pezzo di audio ma la canzone nella totalità cioè se tu vai ad ascoltare un pezzo di Gigi D'Agostino, tunes tunes tunes tunes cioè non è il singolo tunes che ti fa capire che quello è un beat ma il fatto che fa parte di un treno capire come specificare che cos'è un treno è un po' più complicato, non mi è venuto in mente ancora niente utilizzando le strutture che posso utilizzare, perché magari sì, andando a costruirsi delle reti onorali cazzute ma io non sono un esperto di intelligenza artificiale l'idea è quella che ho a disposizione un sistema magari di classificazione a cui posso dare del training però anche lì, com'è che faccio a fare il training? Cioè è sempre una cosa un po' delicata, ripeto a oggi come oggi la vera frontiera dell'intelligenza artificiale è la tirata fuori a Isotope che è una società che fa plug-in nel suo RX8 e poi RX9, anche se io preferisco l'algoritmo dell'8, che utilizza una rete neurale generativa che elimina il rumore praticamente andando a ricostruire il parlato sull'audio in ingresso non so che tipo di training gli abbiano fatto, però fa assolutamente miracoli, lo stesso algoritmo è stato comprato secondo me da Apple per il suo Final Cut e ce ne sono diverse, Adobe c'è la sua però il migliore di tutti è questo qui di Isotope che io utilizzo e mi consente di fare delle registrazioni in automobile intanto che vado in ufficio e poi andare a ripulire abbastanza bene l'audio poi magari se un giorno ti ascolti una delle mie puntate capirai di cosa sto parlando non ti chiedo di ascoltarmi perché prometti di rompere anche le palle No, ascoltalo perché ne vale la pena, ma poi tra l'altro io non ho mai capito, in realtà lo uso anch'io Isotope perché me l'hai consigliato tu tra l'altro, tipo alla puntata 4 qualcosa del genere ed è una cosa allucinante in realtà va capito come funziona, io non ne ho minimamente idea, però mi sembra quasi una roba magica No, no, al di là della magia, questo è veramente la questo è veramente quello che io sogno per la scienza, cioè così dovrebbe essere Beh, devo dire che oggi abbiamo fatto una chiacchierata interessantissima, ma abbiamo ancora un momento con Alex che è il paese dei balocchi, il momento in cui sia i nostri ospiti che i nostri host condividono con noi un libro un gibalocco un qualunque cosa possa essere utile condividere con la nostra community, quindi la mia domanda è, Alex hai qualcosa da condividere con noi? E conduco nel paese dei balocchi Ah, il paese dei balocchi Allora, appena tu mi hai detto tempo fa ti piacerebbe fare una chiacchierata, io mi sono detto oddio, devo trovare un balocco figo e non so perché mi è venuto in mente subito questa roba qua, ma dicendo ma no, non la metterò mai dentro, perché è una cosa talmente folle, però mi è rimasto nel cuore e ho detto vabbè, proponiamolo è un libro che è del 2001, pensa te che però devo dire che a me ha cambiato la vita, è una cosa stranissima, allora se vuoi comprarlo nuovo su Amazon costa 156€, però lo trovi con copertina rigida, la primissima edizione, quello che ho anch'io, a 11,44€ che è MPEG Handbook di John Watkinson che è praticamente il manuale di come funziona MPEG che è la base su cui si basano tutti gli algoritmi di compressione video, è una lettura molto interessante, folle cioè c'è molta matematica, però se saltate il tre quarti del libro che sono matematiche leggete solo le parti interessanti scoprite come è fatta la compressione delle immagini e perché è fatta in questo modo, e come si è riusciti a passare da occupare centinaia di megabyte per una singola fotogramma, a occupare centinaia di k, anche di meno al secondo con questa struttura il libro parla abbondantemente di MPEG 1 e MPEG 2 sia ai video che ai audio per cui anche MP3 alcuni c'è ne di MP4 perché inizialmente MP4 si era strutturato come era stato classificato come standard ma non era ancora entrato in utilizzo io vi consiglio questo libro che per me è folle è uno dei libri che mi porterei su un'isola deserta perché mi ha insegnato un sacco di cose su come funziona la matematica applicata all'informatica applicata all'elaborazione dell'audio e del video ma mi rendo conto che è una cosa completamente assurda per cui potete anche solo guardare la copertina e sono contento così il mio balocco in realtà ne ho due la prima è andate su humblebundle.com e scrivetevi alla newsletter così vi arrivano le offerte che questo straordinario sito lo fanno l'altra volta ho pagato circa una decina di euro 7-8 libri sulla programmazione e sprogrammazione in generale a volte sono giochi a volte di tutto un po' il secondo balocco è un diario ve lo do come consiglio comprate un diario con fogli bianchi una penna e scrivete i vostri pensieri le vostre riflessioni una volta ogni 2-3 giorni mi sento di dirlo perché ho cominciato a farlo anzi a rifarlo perché già lo facevo da un po' di tempo ma avevo abbandonato però da quando ho ripreso mi sento meglio sai che ho ripreso a farlo anch'io da qualche tempo? hai ragione un buon consiglio vero? mi hai rispinto a fare la retrospettiva ogni paio di giorni era una cosa che avevo che avevo interrotto uno dei primi episodi del podcast era uso scram per me stesso da solo usavo proprio a fare lo stand up da solo davanti alla webcam però è una cosa che un po' avevo messo da parte, avevo dimenticato avere il quadernino la moleskin dove annotare due cose anche se non è tutti i giorni ogni 2-3 giorni l'ho trovato particolarmente utile anche perché mi è capitato di annotare delle cose quando lavoravo e non so se vi è mai capitato in fase di retrospettiva non avere niente da dire avere il blocco della retrospettiva ecco io ho il vizio di annotare in rosso le cose da portare alla retrospettiva di lavoro ed è comodissimo quando poi parte la retrospettiva perché c'hai sempre qualcosa da dire infatti forse anche come gadget aggiuntivo mi sono comprato una penna multicolore di quelle......

adesso le stanno facendo un po' più comode prima erano enormi che impugnarle era un'impresa adesso possono essere anche più discrete però sono lo stesso comode e utilizzo la stessa cosa anche io quando devo segnarmi qualcosa da segnalare o da riportare che non mi devo dimenticare inchiostro rosso e lo segno così è molto più facile recuperarlo nei vari appunti e tra l'altro scrivere a mano ha anche un effetto terapeutico dal mio punto di vista Alex tu cosa sei? della scuola di note su Apple o scuola a carta e penna? ho iniziato a prendere appunti digitalmente tipo sì, praticamente al primo anno di università scrivevo delle cose che non capivo come riuscivo a scriverle poi arrivata a casa me le riscrivevo digitalmente ho una grafia ignobile e mi vergogno tantissimo di questa cosa ma è così io quello che fate voi lo faccio in video perché ogni mattina o registro una puntata del podcast oppure faccio un video si chiama The Morning Rant che sono le mie lamentelle d'anziano da boomer di mattina in cui magari mi lamento di come Apple tratta gli sviluppatori ed è il mio modo di raccontarmi di capire cose però effettivamente psicologicamente avrebbe anche un senso proprio a livello di benessere, di fare una valutazione di quello che uno ha fatto o che ha fatto positivamente che è sempre...

il mondo è pieno di gente o di cose che ti dicono che non stai facendo abbastanza e una di queste persone sei tu che te lo dici da solo che non stai facendo abbastanza e se invece riesci a ritagliarti almeno il momento in cui ti dici hai fatto una cosa fatta bene, bravo credo che alla lunga anche nel meglio termine ti dia un boost per cui sì, non lo farò mai scrivendo con carta e penna però magari sarebbe carino riuscire a farlo in qualche modo.

Grazie dall'Int.

E quando hai parlato della penna colorata cioè il modello Ratatouille sono tornato indietro agli anni di scuola elementare per cui bellissimo Anch'io ho dei balocchi allora il primo balocco mi è venuto in mente quando Alex parlava di portare la matematica sulla programmazione io questi giorni ho dovuto fare e ahimè, devo ammetterlo uno swiper card come Tinder per lavoro in Javascript e all'inizio ho fatto una roba molto figa che tu potevi lanciare le card dove ti pareva, poi uno dei requirements era no, la card deve percorrere un arco con una rotazione di 30 gradi o meno 30 gradi agli estremi e io già là ho detto, eh? Morale della favola io devo far muovere questa card su questo arco.

Dopo un attimo mi sono sentito perso poi in realtà mi è ricor...

mi è mi è ritornata alla mente un po' di funzioncine delle superiori e le ho applicate utilizzando una bellissima libreria che si chiama Framer Motion per chi lavora su React, fare le interazioni e le animazioni con questa libreria è tanta roba perché semplifica dei livelli di complessità allucinanti quindi veramente con pochi poche proprietà e poche funzioni riesce a fare una cosa molto figa.

Quindi questo è il primo, il primo balocco.

Il secondo balocco lo voglio contestualizzare.

Talvolta siamo obbligati per lavoro a lavorare su certe VPN e su certi sistemi operativi.

Molti di voi sanno che da qualche tempo come postazione lavorativa io sto usando Arch Linux su macchina fissa però per lavoro, forse non dovrei dirla questa cosa adesso che ci penso, ma la dico uguale.

Per lavoro dovrei usare un Mac.

Ecco, non fatelo, io non lo sto facendo, però Visual Studio Code ha una funzione bellissima che si chiama Visual Studio Server e funziona davvero funziona davvero, quindi con il vostro Visual Studio su Linux potete connettervi al vostro Mac voi ufficialmente state sviluppando sul Mac ma invece siete sul vostro Arch Linux con i 3, col vostro tile manager che più preferite col sistema che vi è più comodo.

E devo dire che è tanta, tanta roba.

Detto questo io, Alex, io non ti ho chiesto in realtà l'esperienza Xcode però promettimi che che vieni a trovarci per raccontarci anche come come Xcode volevo chiederti qualcosa anche di SwiftUI, insomma A tua completa disposizione cioè mi sono mi sono preso benissimo da stasera con tanto cuore e allora, noi lo ricordiamo per gli ascoltatori, riromperò le balle ad Alex per venirci a ritrovare.

Luca prima di chiudere, tu hai qualche altra domanda da fare ad Alex? No sono sono anzitutto rapito quando ha descritto il suo algoritmo io ero, vabbè non mi potevate vedere perché abbiamo la webcam spenta per colpa tua però vi assicuro che ero completamente rapito.

Adesso le metabolizzerò e poi eventualmente quando mi verranno sicuramente delle domande, io le farò nel gruppo Telegram perché esiste anche per quello giusto? Certo assolutamente, il gruppo Telegram è il nostro bancone del bar quindi abbiamo anche Alex tra di noi e prima di chiudere però Alex, puoi ricordare rapidamente i tuoi podcast e il tuo sito dove promuovi e vendi le tue app per favore? Il sito è ulti.media il dominio punto media che è fighissimo allora mi sono trovato questo meraviglioso TLD ulti.media e trovate tutto quello che faccio.

I miei podcast li trovate su runtimeradio.it ce ne sono tanti è una radio che ne abbiamo circa una quindicina di podcast diversi, quello di cui potreste essere leggermente più interessati se non vi sono sembrato troppo psicopatico si chiama TechnoPills T E C H N O P I L L S ovviamente nome SEO di merda perché sono fatto così che esce praticamente tutti i lunedì con qualche mia idea su cosa sto facendo o cosa non sto facendo e a volte parlo ad altavoce l'ultima puntata che è uscita ha a che vedere con il taglio della musica su come migliorare l'algoritmo che sto realizzando e basta direi, se proprio volete fare fighi sono anche su twitter sono AlexGALXGI vabbè basta che ti dica devo dire che TechnoPills è una figata perché poi fai le in-depth analysis dei tuoi algoritmi, cioè noi oggi abbiamo fatto una beer dive view su un po' quello che fai però lo dico ai nostri ascoltatori è una cosa che mi piace tantissimo nel podcast è che proprio scendi nel dettaglio e spacchi il beat nel tuo podcast ed è bellissimo Sì l'ultima applicazione a questo qua del taglio della musica ho fatto una serie di sette puntate da un'ora in sette giorni il registrale è stato veramente folle e montarle è stato ancora più folle però io mi rendo conto che molta gente mi segue ma non capisce cosa sto dicendo ma probabilmente perché non sono capace ad esprimermi anche perché parlare di roba visuale senza mostrarle in video è veramente complicato però ci sono 420 puntate circa di roba per cui dal titolo si dovrebbe capire di cosa sto parlando potrebbe essere interessante se no ragazzi amicissimi come prima io mi rendo conto di essere di essere poco easy listening per cui sono poco stigo come essere umano mettiamola così tu sei sempre troppo e io lo ripeto è arrivato uno dei momenti più importanti del nostro episodio del momento in cui si beve in realtà è anche il momento in cui noi ringraziamo chi ci supporta in questo esperimento in questa esperienza chiamata git bar questa settimana dobbiamo ringraziare marco giulio t che ci ha invitato a partire con noi per fare un video di gioco che è stato un'esperienza molto molto interessante per noi e per chi non lo sa questa settimana dobbiamo ringraziare marco giulio t che ci ha invitato una birra che adesso ci accingeremo a sorseggiare vi ricordo rapidamente che potete contribuire al nostro podcast direttamente andando nel sito www.gitbar.it in alto a destra trovate un link con il suscritto supportaci detto questo io sollevo il boccale all'aria pronto a brindare perché appunto in onore di marco che ci ha invitato questa birra grazie prima di salutarti aiuto cosa sta succedendo devo devo dirlo in podcast mia moglie ha attivato tutte le tapparelle e sembra avete presente la casa black mirror che le cose si muovono e se sono fuori dal tuo controllo e mia moglie sta alzando e abbassando la tapparella per dirmi che è pronta la cena è normale questa cosa è normale è normale e io questo pezzo non lo taglio per dirvi a tutti non siate schiavi delle vostre mogli o dei vostri mariti ribellatevi cazzate a parte io ti ringrazio di nuovo Alex grazie per la puntata mi ha fatto super piacere parlare con te grazie anche per questo discontento levo non sapere i preziosi consigli che mi hai dato quando gitbar è partito grazie ancora a noi che ringrazio te Luca e tutti gli ascoltatori e veramente ringrazio gitbar perché 90 volte su gente non capisco bene cosa dite perché parlate di roba che è roba web based però vi ascolto sempre con gli occhi aperti dicendo mamma mia che fighissimi che sono questi e ad essere qui non sono venuto a partecipare alla vostra mensa ma sono molto onorato di tutto questo e grazie grazie grazie non mi potete vedere ma ho le mani in segno di grazie grazie a te io vi ricordo rapidamente i nostri contatti info.gitbar.it e il ormai famigerato gruppo telegram gitbar podcast mi raccomando se non vi siete ancora iscritti nel gruppo telegram cosa state aspettando io vi vedo io so che siete ancora tantissimi iscritti quindi fatelo fatelo per noi che vi invitiamo una birra ma anche per voi stessi che avete un posto carino dove sorseggiare la birra confrontandovi con altre persone e altre persone che hanno probabilmente più sindrome degli impostori di voi quindi siete in un posto safe tranquilli detto questo io vi ricordo che saremo live di nuovo online di nuovo giovedì prossimo perché finalmente ripartiremo in modo regolare con gli episodi e detto questo vando alle ciance visto che è già un'ora e quaranta alla prossima ciao ciao no.