Archivio Categoria: Blog

Problemi con Visual Studio 15.8 e la chiusura delle parentesi graffe? Ecco come risolvere

Se avete installato l’aggiornamento di Visual Studio 15.8 ed utilizzate una tastiera QWERTY avrete notato l’impossibilità di chiudere le parentesi graffe nell’editor tramite la scorciatoia ALT GR-SHIFT-] questo perchè il comando è stato rimappato per la selezione del blocco di codice corrente, per risolvere il problema e ritornare alla situazione precedente dobbiamo eliminare la scorciatoia relativa in questo modo

  • Andiamo nel menu Tool->Options
  • Rechiamoci nel menu Environment-> Keyboard
  • Cerchiamo la combinazione Edit.ExpandSelectiontoContainingBlock
  • Utilizziamo il tasto Remove per rimuovere la scorciatoia corrente
  • Ia nostra combinazione funzionerà di nuovo

vs158

Adesso non abbiamo più scuse per non aggiornare all’ultima versione di Visual Studio, quindi buon coding!!

Fonte: https://developercommunity.visualstudio.com/content/problem/289516/cannot-type-close-brace.html

How to fix error loading onnx file from filesystem

The default use of trained machine learning model in UWP apps is to add onnx file to your solution and leave Visual Studio to generate the corresponding class and load the file directly in the solution, but in some case can be useful to load the file from other sources, like the filesystem.

This is not a problem, the CreateXXXXXModel generate take a StorageFile so you can use a FilePicker to take a file, but if you try a code like this

FileOpenPicker fileOpenPicker = new FileOpenPicker();
fileOpenPicker.FileTypeFilter.Add(".onnx");
StorageFile selectedStorageFile = await fileOpenPicker.PickSingleFileAsync();
try
{
	_model = await CustomVisionModel.CreateCustomVisionModel(selectedStorageFile);
}catch(Exception ex)
{
	new MessageDialog(ex.StackTrace,ex.Message).ShowAsync();
}

You can see that an exception is thown in the calling of method LearningModelPreview.LoadModelFromStorageFileAsync in the generated class

public static async Task CreateCustomVisionModel(StorageFile file)
{
	LearningModelPreview learningModel = await LearningModelPreview.LoadModelFromStorageFileAsync(file);
	CustomVisionModel model = new CustomVisionModel();
	model.learningModel = learningModel;
	return model;
}

The exception does not give us more info about the problem

Exception from HRESULT: 0x88900103
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at WinMLTester.CustomVisionModel.d__1.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at WinMLTester.Views.MainPage.d__6.MoveNext()

it seems that file doesn’t have some permission for made WinML works, the solution is quite simple, before creating the model we need to copy the file in the app local folder and then use this file instead of the other.

We need only few lines of codes for do this

FileOpenPicker fileOpenPicker = new FileOpenPicker(); 
fileOpenPicker.FileTypeFilter.Add(".onnx"); 
StorageFile selectedStorageFile = await fileOpenPicker.PickSingleFileAsync(); 
//Fix for loading file
StorageFolder storageFolder = ApplicationData.Current.LocalFolder;
StorageFile sf2 = await selectedStorageFile.CopyAsync(storageFolder, selectedStorageFile.Name, NameCollisionOption.ReplaceExisting);
try
{
	_model = await CustomVisionModel.CreateCustomVisionModel(sf2);
}catch(Exception ex)
{
	new MessageDialog(ex.StackTrace,ex.Message);
}

Now your code work without problem

I have also created a new project on github for help to test your machine learning model created with Custom Vision service available on https://github.com/a-iafrate/WinMLTester that can be used to test this fix

happy coding!!

Insider Dev Tour Roma – un evento fantastico

Qualche giorno fà (il 14 giugno 2018 per l’esattezza) si è tenuta la tappa di Roma dell’Insider Dev Tour, un Tour mondiale organizzato da Microsoft in collaborazione con gli MVP locali in 42 città per far conoscere tutte le novità Insider che ci aspetteranno all’interno di Windows nel futuro prossimo.

Per quanto mi riguarda ho avuto la fortuna di partecipare all’organizzazione di questo evento insieme a Marco Dal Pino e tutta la squadra di DotNetToscana e tutti gli amici di sempre e devo dire di essere veramente soddisfatto della riuscita dell’evento.

idt3

Nonostante qualche piccolo intoppo nella giornata precedente di preparazione all’evento, come il drone che faceva le bizze o problemi con la prenotazione delle stanze d’albergo :P, la giornata dell’evento è stata perfetta il tutto è andato nel modo giusto e la giornata è stata un successo con un afflusso ottimo di persone e drop delle resenze rispetto alle prenotazioni inferiore alle nostre aspettative.

Eventi come questi ti fanno essere ancora più orgoglioso di essere parte di un mondo community che riesce a fare grandi cose mettendoci impegno, passione e quel pizzico di follia che rende il tutto meno pesante e riesce a spezzare il clima in alcuni momenti in cui ti sembra ci siano problemi molto grandi

Sò che molti purtroppo non capiranno quello di cui sto parlando ma vi rinnovo come sempre il consiglio che dò quando parlo con le persone che incontro, se avete una passione cercate sempre di condividerla con gli altri, in questo modo il vostro cammino sarà sempre una crescita in comune dove tutti avranno modo di far migliorare gli altri e migliorarsi.

 

Se vi siete perso questo evento mi consiglio di seguire i vari canali social delle community intorno a voi in modo da essere sempre aggiornati su quello che bolle in pentola, e vi posso assicurare che ce ne saranno ancora delle belle 😀

A questo punto non mi resta altro da fare che augurarvi buon coding come sempre e sperare di vedervi al prossimo evento!

Benvenuto Windows Community Toolkit

Se sviluppate app UWP avrete sicuramente avuto a che fare con l’UWP Community Toolkit e (se non lo avete mai fatto vi consiglio di farlo 😀 ) che è un vero e proprio cortellino svizzero per noi sviluppatori e ci permette di non dover reinvere la ruota.

Da pochi giorni è disponibile una nuove versione che porta un importante cambiamento, quello del nome del progetto che passa da UWP Community Toolkit a Windows Community Toolkit il che ci fà capire anche alla luce degli annunci di Build di qualche giorno fà come presto si arricchirà di nuovi elementi e funzionalità non solo per le UWP.

Al momento non possiamo comunque lamentarci, come è possibile vedere nell’immagine i controlli presenti sono già molti ed utilissimi e  sono di grandi aiuto insime ai vari Helpers, Service che ci permettono di avere funzionalità già disponibile ad esempio per l’autenticazione sui vari social o l’utilizzo delle Notification.

Il modo migliore per avere una panoramica delle funzionalità disponibili è quello di scaricare l’applicazione demo disponibile sullo store a questo indirizzo (al momento della scrittura di questo post l’applicazione ha ancora il vecchio nome ma verrà aggiornato a breve)

Tutti i pacchetti del progetto sono disponibili su Nuget e se avete voglia di dare una mano il progetto è naturalmente OpenSource e disponibile su GitHub.

Se non lo avete mai utilizzato spero di avervi fatto cosa gradita a farvelo conoscere e come sempre

Buon Coding 😀

 

Welcome to Skyloft, the new mixed reality location

If you have latest windows insider build (17604 rs5) and a Mixed Reality Headset you can try the new location Skyloft available in the Mixed Reality Portal.
This build is very buggy and the portal crash very often so if you need to use your pc for developing with the mixed reality I do not recommend it.
Below you can find a gallery of images taken from this version.
What do you think about it?

La Mixed Reality è qui

Con l’ultimo aggiornamento di windows 10 (il fall creators update) disponibile da pochi giorni la mixed reality entra nelle case di tutti a prezzi finalmente accessibili,prima d’ora infatti gli unici device a sfruttarla erano gli hololens con un prezzo decisamente proibitivo, adesso invece i nuovi device sono disponibili con prezzi di partenza sotto i 400€ diventano decisamente più interessanti.

Noi italiani (purtroppo succede spesso) siamo stati lasciati indietro per ora visto che i device non sono disponibili nel nostro territorio ma basta recarsi nella versione inglese dello store di Microsoft o di Amazon per poterli comprare e farseli recapitare a casa.

Naturalmente anche io ho approfittato e devo dire che l’esperienza d’uso è decisamente positiva (anche se gli hololens sono e rimarrano per molto un’altra cosa)

mixed_hp

Ma venendo a quello che ci interessa come sviluppatori come possiamo lavorarci?

Ci sono due strade per lo sviluppo:

  • Se vogliamo realizzare delle applicazioni immersive dobbiamo dotarci di Visual Studio 2017 in accoppiata con Unity che ci permetteranno di sfruttare tutta la potenza di questi device (maggiori dettagli qui)
  • altrimenti (e questa è la cosa più interessante) tutte app UWP saranno da subito disponibili all’interno dell’ambiente virtuale senza nessuna modifica e pronte ad essere pinnate sul muro virtuale e fatte partire (maggiori informazioni qui). Naturalmente se vorremmo dare una migliore usabilità nell’ambiente 3d dovremo utilizzare qualche accorgimento nella realizzazione dell’interfaccia e gestire anche le altre forme di input disponibili come la voce o lo sguarda.

Come potete vedere di carne al fuoco ce n’è veramente tanta e questi nuovi device non faranno altro che dare una maggiore spinta alle app UWP che adesso hanno trovato un’ulteriore casa

Vi aspetto nei prossimi articoli dove tratteremo più approfonditamente lo sviluppo sulla Mixed Reality , nel frattempo vi lascio il link dove trovare tutti i dettagli in merito https://developer.microsoft.com/en-us/windows/mixed-reality/development, e come al solito non mi resta altro che augurarvi buon coding 😀

 

 

Tunnling veloce per il debug delle nostre app o siti

Vi sarà sicuramente capitato di trovarvi davanti l’esigenza di dover esporre in rete un servizio presente sul nostro PC ad esempio per poter eseguire un test direttamente da un device esterno prima di pubblicarlo in rete o magari far provare delle versioni di test delle nuove API che state realizzando.

Quello di cui voglio parlarvi è un utile tool che ci permette proprio di creare un

Secure tunnels to localhost

”I want to expose a local server behind a NAT or firewall to the internet.”

come cita la homepage di NGROK che a discapito del nome inpronunciabile fà il suo dovere in modo semplice e veloce oltre ad essere gratuito nella sua versione base e (cosa che non guasta mai) multipiattaforma.

Una volta scompattato il pacchetto per poter iniziare ad utilizzarlo non dovremo far altro che lanciare il comando

ngrok http [port] -host-header=”localhost:[port]”

e subito vedremo in output sulla console l’indirizzo che è stato assegnato al nostro server (nella versione a pagamento è possibile scegliere un nome fisso mentre nella versione free varierà di volta in volta) che potremo utilizzare per richiamare il nostro servizio come se fosse pubblicato in rete e raggiungibile da qualsiasi dispositivo connesso

Vediamo quali possono essere i casi di utilizzo in cui potrebbe tornarci utile:

  • debug di api richiamate da applicazioni installate su device fisici
  • debug di chiamate webhook da parte di servizi terzi (es IPN di paypal)
  • visualizzazione del sito in sviluppo da parte di una persona esterna
  • ecc ecc.

Come sempre non mi resta che augurarvi buon Coding!!

Project Rome e cross device su IoProgrammo

ioprogrammo_july2017

Questo mese su IoProgrammo numero 215 di Luglio troverete il mio nuovo articolo su Project Rome e come utilizzarlo per condividere dati e funzionalità tra le varie piattaforme su cui la vostra applicazione è disponibile.

Una funzionalità disponibile in windows 10 che potrà dare una marcia in più alle vostre applicazioni.

Buon coding!!

 

DotNetAbruzzo su Technet

Grazie ad Emiliano Musso ho avuto modo di fare un’intervista per raccontare quanto abbiamo fatto quest’anno con DotNetAbruzzo

Già qualche giorno fà era stata postata la versione inglese dell’articolo

https://blogs.technet.microsoft.com/wikininjas/2017/06/23/friday-international-update-news-from-dotnet-abruzzo-italian-community/

Da oggi è presente anche quella in italiano.

https://blogs.technet.microsoft.com/wikininjasit/2017/07/09/sunday-special-aggiornamenti-dalla-community-dotnet-abruzzo/

Non posso far altro che ringraziare Emiliano per l’opportunità e consigliarvi di leggere l’articolo in questione 😀

Perchè community? (#TecHeroes loves #Gamedev Tour)

Poche settimane fà insieme a Microsoft con DotNetAbruzzo abbiamo organizzato la tappa Aquilana del  #TecHeroes loves #Gamedev Tour, un’evento itinerante con varie tappe in giro per l’italia per far conoscere il mondo dello sviluppo di videogame.

Come è consuetudine Microsoft in queste situazioni si appoggia alle community locali che conoscono bene il territorio per avere una mano nell’organizzazione e nel contempo dà essa stessa una mano pubblicizzando l’evento e facendo quindi conoscere la community.

In questo caso come DotNetAbruzzo, di cui sono fondatore, siamo stati onorati della scelta, ancor di più per la giovinezza della nostra community che ha da poco superato il primo anno dalla fondazione.

L’evento è stato un gran successo sia in partecipazione che in interesse, stupendo gli stessi speaker ( che diciamo non sono proprio neofiti e quindi ne hanno viste di platee 😀 ) e ci ha ripagato come organizzatori e speaker di tutto quello che abbiamo fatto.

Questo è un tipico esempio di quello che vorrei far capire alle persone che mi chiedono “perchè utilizzi tempo ed energie per portare avanti la community?”

Dietro cose del genere c’è molto lavoro di organizzazione, ricerca della location, pubblicità, preparazione delle sessioni ecc e se devo confessare a volte c’è anche sconforto quando ti trovi davanti ostacoli futili ma poi ti rimbocchi le mani ed insieme agli altri membri cerchi di aggirare l’ostacolo (come non posso ringraziare Gino per la grande pazienza con me e lo sbattimento per la location 😀 ).

Il tutto poi è fatto in modo gratuito, anzi spendendo anche dei soldi in viaggi, cene, alloggi che nessuno ti rimborsa. A questo punto la domanda torna, perchè?

Almeno nel mio caso è la voglia di condividere e l’amore che ho per quello che faccio e che fortunatamente è il mio lavoro. Vedere persone interessate, soprattutto ragazzi, che finito l’evento ti vengono a parlare, ti fanno domande e ti ringraziano personalmente non ha valore. C’è poi la voglia di voler dare una mano alle nuove generazioni, quando ero io lì al loro posto avrei voluto poter avere occasioni del genere ed avendo due figlie piccole vorrei che anche loro potessero avere occasioni del genere in futuro per poter sapere cosa li circonda e quale potrebbe essere il loro impegno futuro, soprattutto in un campo che è quello della tecnologia che avanza ad una velocità impressionante ed in cui le università fanno fatica a stare al passo.

Questa volta siamo stati fortunati e l’università ha anche realizzato un video dell’evento quindi potete avere un’idea di quello che vi siete perso se non avete partecipato, e magari potrà farvi venire voglia di andare ad un’altro evento. Quello che voglio consigliarvi è di guardarvi intorno, di qualsiasi cosa siate appassionati cercate e sicuramente troverete una community in cui potrete partecipare per condividere le vostre passioni e magari se non c’è fate come me è fondatela 😀

Spero di non avervi annoiato con questo lungo post ma di aver invece stuzzicato la vostra voglia di conoscenza.

Di seguito trovate il video di cui vi parlavo.

Come sempre buon coding…….

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi