Ago 21 / Igor Damiani

Visual Studio 15.8 alla ricerca della parentesi graffa (chiusa) mancante

Se dopo l’installazione della versione 15.8 di Visual Studio 2017 avete problemi ad inserire nel codice la parentesi graffa chiusa (“}”), effettivamente c’è un bug, del quale fortunatamente esiste già un workaround. Seguite questi passaggi:

  • Aprite Visual Studio 2017
  • Andate nel menù Tools –> Options
  • Andate nella sezione Envinronment –> Keyboard
  • Nella casella di ricerca indicata da “Show commands containing” digitate “Edit.ExpandSelectiontoContainingBlock”
  • Vedrete che c’è la combinazione di tasti Ctrl+Shift+Alt+=
  • Cliccate sul pulsante Remove e confermate su OK per chiudere la finestra di dialogo

Et voilà, il problema è risolto. Ovviamente ci si attende che Microsoft risolva questa piccola svista con i prossimi rilasci.

Un ringraziamento a questi due tweet di Matteo Pagani e di Alessio Iafrate, che mi hanno permesso di trovare la soluzione.

Send to Kindle
Ago 20 / Igor Damiani

Il silenzio sui social

Ci sono regole non scritte grazie alle quali il mondo si regge. Sono le regole del buonsenso. Ma affinchè queste regole continuino a funzionare, è necessario che esse vengano costantemente rispettate e seguite da tutti. E’ sufficiente che una sola persona evada da questa visione per far saltare gli schemi. Immaginate un autista contromano, oppure qualcuno che continua a suonare all’impazzata i citofoni della palazzina dove vivete, volumi delle radio e delle TV al massimo livello, uno che salta la fila alle poste, e così via. Sarebbe l’anarchia, no?

Una di queste regole è quella che riguarda il silenzio sui social. E’ di pochi giorni fa il dramma che ha colpito la città di Genova, con il crollo del ponte Morandi, che ha purtroppo causato la morte di decine di persone, con feriti, sfollati, eccetera eccetera. Sui social ovviamente si è scatenata la bagarre, a torto o a ragione. Discussioni infinite sulle cause, su chi doveva intervenire, sui selfie dei vari personaggi politici che hanno partecipato ai funerali di stato, sugli allarmi inascoltati lanciati negli anni precedenti, sui fischi a quelli del PD & sugli applausi a quelli dell’attuale maggioranza. E, si sa, come sempre sui social ogni cosa è amplificata ed esasperata.

Ho visto anche qualche amico invocare un po’ di silenzio, nel segno del rispetto verso chi ha perso la vita e verso i loro familiari. Io personalmente sono anche d’accordo, ma come dicevo all’inizio, è necessario che questo silenzio sia rispettato da tutti, altrimenti il meccanismo non sta in piedi, ma proprio per niente. Non trovo corretto aprire il proprio profilo Facebook e vedere un elenco infinito di post e condivisioni che rappresentano solo una parte dell’opinione pubblica, a maggior ragione che non rappresenta il mio. Secondo me, stiamo vivendo un’epoca nella quale ciascuna deve fare la sua parte, esprimendo la propria idea ed opinione. Per dirla diversamente: immaginatevi di aprire Facebook e di trovare un elenco spropositato di sciocchezze e fake news (alcune oggettive, altre meno). Come reagireste? Non vi verrebbe voglia di gridare la vostra verità? Credo proprio di sì. Anche perchè il risultato di un eventuale vostro non agire, sarebbe ancora più disastroso: tutte le notizie che circolano sui social sarebbero di parte, non vi rappresentano. Dal mio punto di vista è come leggere continuamente che 1+1 fa 3. No, c’è qualcosa che non va.

Tra l’altro, ritengo che il silenzio sui social per certi versi non debba esistere. D’altronde, nei bar e nei luoghi pubblici le persone hanno sempre parlato tra di loro, anche di fronte a fatti di cronaca, per cui perchè questo non deve avvenire anche sui social? Semmai la cosa difficile è parlarsi e confrontarsi con educazione, garbo e rispetto l’uno dell’altro. Purtroppo i social ad oggi banalizzano molto il dialogo (per la serie: se non sei con me, allora sei contro di me), e lo rendono aspro, duro e violento. Chissà, magari un giorno questo atteggiamento svanirà, ma è molto più probabile che i social così come li conosciamo oggi spariranno, soppiantati da altre forme di comunicazione digitali.

Send to Kindle
Giu 5 / Igor Damiani

19 Giugno, Genova Mobile Development

Il prossimo 19 Giugno (martedì), presso il Dipartimento di Informatica dell’Università di Genova, (ecco la mappa su Google Maps) si svolgerà un interessantissimo pomeriggio dedicato allo sviluppo su piattaforme mobile, dalle 14:00 fino alle 18 circa. Trovate maggiori informazioni sulla pagina dedicata all’evento. Gli argomenti previsti vanno dalle Progressive Web Apps, passando da Xamarin a Xamarin Forms, fino allo sviluppo nativo con Android Studio. Gli speaker sono di tutto rispetto (Raffaele Rialdi non ha bisogno di presentazioni, immagino…senza nulla togliere agli altri, ovviamente), quindi vale la pena ritagliarsi un po’ di tempo per stare al passo con le ultime evoluzioni in questo settore. Alcuni amici di community tratteranno anche argomenti più trasversali, come ad esempio sfruttare il cloud di Azure ed i Cognitive Services nell’ambito delle nostre applicazioni mobile, per avere il giusto apporto di intelligenza artificiale. La giornata è divisa in due track (main room & secondary room), per cui è possibile saltare da una stanza all’altra per seguire l’argomento più congeniale rispetto alle proprie necessità.

Il tutto è fortunatamente gratuito (non è così scontato, organizzare un evento ha sempre dei costi, di cui spesso non si ha consapevolezza); è sufficiente registrarsi per poter partecipare.

Send to Kindle
Giu 4 / Igor Damiani

Sole alto

Ho tenuto il mio primo corso nell’ottobre del 2014, stiamo arrivando con il prossimo autunno ai quattro anni. Ho girato bene o male un po’ tutta l’Italia, ma per motivi logistici – come potete immaginare – soprattutto il Nord. Sono stato a Cuneo, in Valtellina, a Torino (dove tornerò fra poco), ovviamente a Milano e nel suo intricato hinterland, in Trentino, a Trieste, in parecchi posti dell’Emilia Romagna (da Piacenza a Cesenatico), a Pesaro, fino a raggiungere in casi più rari location come Roma e Bari. Ho parlato, e continuo a farlo, di .NET Framework, di C# e VB.NET base ed avanzato, di metodologie agili, di TFS, di Xamarin Forms, di MVVM applicato a WPF & UWP, di Entity Framework, e chi ne ha più ne metta.

Ma è specialmente d’estate, quando le giornate sono lunghe, che hai più soddisfazione nel chiudere la tua attività. Perchè sei stato in piedi tutto il giorno, hai parlato alla tua classe, alle persone di un’azienda, hai trasmesso tutto ciò che sai.

L’ultimo giorno saluti tutti, esci all’aperto inforcando i tuoi sgangherati occhiali da sole, con il sole ancora alto in cielo, cammini soddisfatto verso la tua automobile, quando sei con lei, e torni con calma a casa. Un altro corso è andato, e pensi già al prossimo.

Insegnare è una vocazione, si dice spesso.
Credo che sia anche la mia.

Send to Kindle
Mag 27 / Igor Damiani

Parlare di WPF in Microsoft House

Il 24 Maggio scorso ci sono stati i Community Days 2018 presso Microsoft House, a Milano. Inizialmente mi ero iscritto, mesi fa, perchè indipendentemente dai contenuti (che possono essere di tuo gradimento oppure no), queste sono sempre occasioni da non perdere. Peccato accorgersi che proprio quel giorno avrei dovuto tenere il mio quarto ed ultimo giorno di corso su Windows Presentation Foundation + .NET Standard + MVVM in Overnet Education, per cui avrei dovuto arrendermi e saltare l’evento.

Non è andata proprio così, alla fine (per fortuna).

Lunedì 21, parlando con i quattro partecipanti, si era ventilata un’idea bizzarra ma divertente, ovvero quella di svolgere l’ultima giornata proprio in Microsoft House. Nessuno aveva mai proposto una cosa simile, a quanto pare. L’idea nasce inizialmente nel mio cervello, poi la espongo e racconto agli amici (tecnici) di Overnet, che tutto sommato non la trovano così sgradevole, anzi… La palla passa poi ai commerciali, che mi appoggiano, a patto ovviamente di riuscire a trovare e prenotare una saletta in Microsoft House per il 24 Maggio, durante i Community Days. Scrivo di getto una mail all’amico Andrea Benedetti, di Microsoft Italia, che senza troppe domande prenota la Design Suite al primo piano della nuova spettacolare sede.

Quindi, il gioco è fatto.
Eccoci qua!

Ecco una foto dei quattro partecipanti del corso. Da sinistra verso destra sono: Michele, io, Marco, Alessandro ed Alberto. Michele ed Alessandro appartengono ad una società, mentre Marco e Alberto ad un’altra.

E’ stata una giornata incredibile. Sole estivo, sede in gran spolvero, accoglienza magnifica, saletta spaziosa e bellissima, clima divertente, WPF spremuto fino (quasi) all’ultima riga di XAML. A metà mattina abbiamo fatto una breve pausa, e sul nostro piano ci siamo anche beccati un meeting con HoloLens. Non farò nomi perchè sarebbero troppi, ma mando un saluto a tutti quelli che ci hanno intravisto nella nostra sala per il corso.

Ovviamente c’è da ringraziare un po’ tutti: il personale di Overnet Education che ha reso possibile questa iniziativa, Microsoft nella persona di Andrea Benedetti per la disponibilità e la tempestività con la quale è intervenuto ed agito.

Non ho potuto seguire le sessioni, ovviamente, ma è stato comunque bello incrociare gli amici di community di sempre, quelli che abitano lontani e quelli che abitano vicino, chi in Italia e chi all’estero.

Chissà, magari è un’esperienza che si potrà ripetere anche in futuro. Speriamo.

Send to Kindle
Gen 10 / Igor Damiani

L’importanza dei tempi morti

Partiamo da un semplice presupposto: noi umani non siamo macchine pensate per produrre solo ed esclusivamente profitto, e non siamo stati progettati per avere una availability lavorativa del 99,99%. Per vivere bene, a lungo ed in salute abbiamo bisogno dei nostri tempi morti, che vengono scioccamente chiamati così ma che invece non lo sono affatto, almeno per quanto mi riguarda. La notte, durante il sonno, noi non facciamo nulla di cosciente, ma il nostro cervello lavora comunque ed ha bisogno di farlo, e si occupa di attività che non potrebbe svolgere durante il giorno. Il sogno è una fra queste, ad esempio. E, credetemi, sognare serve.

Per questa ragione, mi preoccupa un po’ sentire parlare amici e colleghi di come diminuire i tempi morti nelle proprie giornate, allo scopo di ritagliare tempo per il lavoro. Oggi si sta cavalcando moltissimo l’idea della macchina che guida da sola, e tantissimi (giustamente?) non vedono l’ora che diventi realtà. “Sai quanto tempo potremmo guadagnare ogni giorno?”, “Sai quanto tempo passo in coda per andare al lavoro?”. Certo, ovviamente, ovvio che in queste circostanze l’auto a guida autonoma potrebbe tornare utile. Ma mi dà terribilmente fastidio vedere come ci siano persone disposte a tutto pur di guadagnare tempo. Fidatevi: il tempo non basta mai, se riempiamo troppo le nostre giornate. Sarebbe una continua rincorsa. Non per niente a volte si afferma di aver bisogno di giornate da 48 ore. In futuro qualcuno potrebbe proporre di non dormire così tanto, o che mangiare come facciamo oggi è del tutto inutile (potremmo ingoiare una pillola in 15 secondi con tutte le sostanze che abbiamo bisogno), etc. etc. Passare del tempo bloccati in auto è ovvio che è una perdita di tempo, ma sarebbe una perdita di tempo anche un serata in pessima compagnia o un pranzo indigesto; la soluzione ad un pranzo indigesto non è evitare di mangiare, ma è mangiare meglio. La soluzione ad un viaggio in auto andato storto non è evitare di guidare facendolo fare ad una macchina o ad un software, ma è guidare in condizioni migliori (partire in un altro momento). Dobbiamo distinguere tra attività noiose e monotone, per le quali i software sono portati, ed attività che ad oggi sembrano perlopiù dei contrattempi ma che possiamo migliorare.

I “tempi morti” dal mio punto di vista sono importanti. Quante volte vi è capitato di avere un’idea mentre facevate tutt’altro? Magari proprio alla guida o mentre siete in bagno a farvi la barba? I “tempi morti” sono intervalli di tempo durante i quali non fate razionalmente una determinata attività, ma il vostro cervello – fidatevi – sta lavorando eccome. E dietro le quinte sta proprio lavorando a quel problema di AngularJS o WPF che vi affligge. Penso che per vivere e lavorare bene una persona debba assolutamente godere di tempi morti, passati davanti ad un videogioco, alla lettura di un libro, alla guida di un’auto durante una gita fuori porta, in coda alla cassa, in attesa alle Poste o all’ospedale. Come dicevo all’inizio, non siamo individui pensati per produrre e basta, ma dobbiamo soprattutto vivere. Ed i tempi morti sono parte della vita. Personalmente, per lavorare bene ed in modo efficace ho bisogno dei miei tempi di svago, e non riesco a switchare da un’attività all’altra a costo zero, come fa in modo continuo un PC. Prima di passare da un corso all’altro, per esempio, ho bisogno di tempo per fare altro, per staccare la spina un attimo, perchè non è per nulla semplice gestire classi di X persone parlando di tecnologia e di sviluppo del software.

Ritengo che il consumismo sfrenato ci stia un po’ facendo perdere parecchio di vista la bussola della nostra vita. Siccome abbiamo sempre più da fare, sempre più da leggere e da scrivere e da criticare, sempre più da correre e sempre più in fretta, siamo costantemente alla ricerca di blocchi di secondi e minuti da ritagliare qua e là. No, così non va. O perlomeno non è il modo in cui mi piace vivere.

Send to Kindle
Nov 30 / Igor Damiani

Quando ero giovane…

Ieri durante WPC 2017 ho tenuto due sessioni:

  • 30 minuti appena dopo pranzo dedicati a Universal Windows Platform
  • un’intera giornata di workshop dedicata a Xamarin Forms, insieme a Gabriele Gaggi ed Ugo Lattanzi, durante la quale abbiamo sviluppato un’app mobile in stile Netflix

Ringrazio tutti coloro che mi hanno fermato per farmi i complimenti, relativamente alla competenza tecnica, alla simpatia o alla capacità di coinvolgimento.

Vi racconterò un mio piccolo punto di vista personale. Quando ero più giovane, ed ascoltavo le sessioni tenute dagli altri durante gli eventi community, quelle che mi piacevano di più erano quelle che potevo sfruttare il giorno dopo, quelle che mi davano tanta passione e tanta voglia.

E’ quello che cerco di fare io oggi, che tocca a me fare il relatore. Non mi interessa raccontarvi tutto quello che so nel tentativo di farmi bello, o di pavoneggiarmi nei confronti di chi mi sta a sentire. Mi interessa invece raccontarvi qualcosa che vi faccia sbavare dalla voglia di mettere mano al codice, di farvi sentire per qualche minuto in un mondo più grande e più figo, pieno di possibilità tutte da scoprire. Durante le mie sessioni tecniche voglio farvi divertire, perchè grazie al divertimento si impara di più e meglio.

Grazie a tutti!

Send to Kindle
Mag 17 / Igor Damiani

Proud member of Microsoft Geek Cafè

Da qualche settimana sono ufficialmente un membro del Microsoft Geek Cafè.
Di cosa si tratta?

E’ un’iniziativa di Microsoft Italia che mette in contatto fra loro tutti gli appassionati delle tecnologie Microsoft. Quindi se avete una XBOX, se avete amato gli smartphone Windows Phone, se credete che Windows sia il miglior sistema operativo mai creato, se avete tastiere/mouse/webcam targati Microsoft, se utilizzate Surface o Surface Pro tutti i giorni, e soprattutto se desiderate condividere con il mondo questa vostra passione, il Microsoft Geek Cafè è il posto giusto da frequentare.

Da qualche giorno ho ricevuto il Welcome Kit del Microsoft Geek Cafè, di cui ho postato una fotografia qui sopra. Una maglietta scelta da ciascuno di noi, una tazza ed un controller per XBOX e PC molto molto figo, capace di funzionare anche in modalità wireless via Bluetooth.

E poi, all’atto pratico, vi starete chiedendo, cosa comporta essere un membro di questo Geek Cafè? Beh, Microsoft fa testare a ciascuno di noi device di ultima generazione, magari appena arrivati sul mercato, come tablet, XBOX e diversi modelli di PC, laptop e convertibili. Parteciperemo ad eventi ed iniziative riservate. Siamo molto attivi sui social, grazie ai quali cerchiamo di portare le nostre idee e le nostre recensioni sui prodotti che testiamo e proviamo.

Onestamente penso che qualsiasi iniziativa ci porti a diffondere ed a far conoscere la qualità dei prodotti Microsoft aiuta, aiuta eccome. Non lasciamo che siano solo gli altri, con le loro campagne marketing, a dire la loro, ma anche noi dobbiamo dire la nostra.

Benvenuto Microsoft Geek Cafè!!!

Send to Kindle
Apr 11 / Igor Damiani

Lo fanno gli chef, perchè non dovrei farlo io?

C’è una cosa che sicuramente abbiamo imparato dalle innumerevoli trasmissioni TV dedicate al mondo della cucina: gli chef, al termine del loro lavoro, ogni giorno, puliscono e mantengono pulite sempre le loro attrezzature di lavoro. Fornelli, banchi da lavoro, lavandini. Tengono in ottimo stato di pulizia i frigoriferi, i forni, i congelatori e gli abbattitori. Evitano che formiche e scarafaggi invadano le loro cucine. Perché alla fine quel lavoro dietro le quinte – che noi non vediamo – determina la qualità del loro lavoro, e del cibo che viene servito nei nostri piatti. Lavorare in un posto di lavoro bello da vedere, fa lavorare meglio.

E quindi perché non dovrei farlo pure io? C’è una cosa a cui ho sempre prestato attenzione, nel mio lavoro. Al fatto che il mio Windows deve essere sempre in pieno stato di forma. Tassativo: formattazione una volta all’anno. Tassativo! Dopo un anno, è normale che tutti gli aggiornamenti – di qualsiasi software, non solo del sistema operativo – bene o male riducano l’efficienza del nostro principale ambiente di lavoro. E la situazione è accentuata se si gioca con le build Windows Insider, oppure con le beta delle suite Infragistics o DevExpress (è solo un esempio), oppure se si inseriscono barbatrucchi nel sistema operativo (firewall, servizi, security, altro?) o in qualche software. L’ordine con cui installo il software (sistema operativo, driver, applicativi, etc.) è ben documentato, da anni ormai, per fare in modo di non avere intoppi e tornano al lavoro nel minor tempo possibile. Sto lavorando in questi giorni – a tempo perso – ad una versione “community” del mio documento RTF che mantengo da molto tempo, in modo che possa condividerlo con tutti voi. Sono certo che lo troverete più che utile.

Perché, badate bene, se abbiamo un designer XAML troppo lento, o abbiamo Esplora Risorse che ogni tanto si inchioda, o abbiamo Hyper-V che non riesce ad avviare qualche macchina virtuale, forse tutto è dovuto ad un ambiente configurato male, oppure che sopravvive malamente al trascorrere del tempo o alle migrazioni tra una build e l’altra di Windows 10. Molti di noi, per correggere un problema sorto con Windows, o con Visual Studio, tentano la riparazione di questo o quello: non c’è nulla di male, sia chiaro, ogni tanto pure io tento quella strada, ma bisogna essere assolutamente consapevoli che deve essere solo una soluzione temporanea. Nella mia testa non c’è alcun dubbio su questo. Si formatta appena si ha tempo. Punto.

Secondo i miei calcoli, reinstallare Windows e praticamente tutti i miei software per sviluppare richiede sì e no circa 4 ore. Facciamo pure che vi porti via un’intera giornata di lavoro. 8 ore all’anno (oppure ogni sei mesi?) da dedicare al vostro PC con cui lavorate tutti i giorni. Non mi sembrano così tante, onestamente. Esattamente come gli chef dedicano attenzione alla loro cucina. Esattamente come un ciclista professionista cura ed ama la sua bicicletta per gareggiare al Giro d’Italia. Esattamente come un garzone del falegname, che ogni 2-3 giorni spazza il laboratorio per evitare di venir sommersi dalla segatura. Esattamente come una scuderia di F1, che studia e prepara il setup della monoposto per far conquistare la pole position al suo pilota.

Lo fanno i tanto blasonati chef stellati in TV, perchè non dovremmo farlo anche noi?
Siamo per caso meno professionisti di loro? No, vero?

Send to Kindle
Apr 6 / Igor Damiani

Visual Studio 2017 ed il mese di aprile

Beh direi che di carne sul fuoco ce n’è abbastanza. Alla faccia di chi diceva che UWP è “poco considerato”. Ho raccolto qui sotto una serie di link tratti da MSDN sugli ultimi rilasci avvenuti nelle scorse ore per quanto riguarda Visual Studio 2017, .NET Framework, Universal Windows Platform.

Visual Studio 2017 Update
https://blogs.msdn.microsoft.com/visualstudio/2017/04/05/visual-studio-2017-update/

Visual Studio 2017 Performance Improvements
https://blogs.msdn.microsoft.com/visualstudio/2017/04/05/visual-studio-2017-performance-improvements/

Announcing the .NET Framework 4.7
https://blogs.msdn.microsoft.com/dotnet/2017/04/05/announcing-the-net-framework-4-7/

Updating your tooling for Windows 10 Creators Update
https://blogs.windows.com/buildingapps/2017/04/05/updating-tooling-windows-10-creators-update/#.WOXeGqlgXqU.twitter

Annoncing UWP Community Toolkit 1.4
https://blogs.windows.com/buildingapps/2017/04/03/announcing-uwp-community-toolkit-1-4/#.WOUMb6b_YB4.twitter#lyhX2JFgJp6liyL7.97

Windows 10 Creators Update SDK
https://blogs.msdn.microsoft.com/chuckw/2017/04/06/windows-10-creators-update-sdk/

Fresh Bits – Windows 10 Creators Update and Creators Update SDK
https://blogs.msdn.microsoft.com/marcelolr/2017/04/05/fresh-bits-windows-10-creators-update-and-creators-update-sdk/

Submissions using Windows 10, version 1703 are now being accepted!
https://blogs.msdn.microsoft.com/windows_hardware_certification/2017/04/05/submissions-using-windows-10-version-1703-are-now-being-accepted/

Team Explorer for TFS 2017
https://blogs.msdn.microsoft.com/bharry/2017/04/05/team-explorer-for-tfs-2017/

What’s new in Windows 10 Creators Update (Coming April 11)
https://blogs.msdn.microsoft.com/techtalks/windows-10/whats-new-in-windows-10-creators-update-coming-april-11/

Send to Kindle