Technology Experience
.NET World

Dove eravamo rimasti?

L’ultima volta che ho scritto sul blog era Novembre dell’anno scorso. Insomma, era qualche mese prima che cominciasse tutto. Tutto cosa? Beh, lo sappiamo tutti: il Covid-19, la pandemia, il lockdown. Ci stavamo preparando per affrontare l’autunno, poi l’inverno, le feste natalizie, il freddo. Erano proprio le settimane nel quale sentivamo parlare di questa malattia/polmonite, ed era il periodo nel quale abbiamo conosciuto la città cinese di Wuhan, con l’epidemia in fase iniziale e le sue strade deserte sui TG nazionali. Ho passato un Capodanno a Lecce tutto sommato tranquillo, tranne che per il traffico ed i cavalcavia chiusi nei tratti più meridionali della A14.

Parliamo di cose leggere. Dal mio piccolo punto di vista aspettavo con ansia di poter giocare a Doom Eternal (previsto per Novembre 2020, ma poi posticipato a Marzo), a Febbraio sarei dovuto andare in Germania per una trasferta di lavoro di un paio di giorni (potete tranquillamente immaginarvi che fine ha fatto questo viaggio). Già il 28 Febbraio la mia azienda aveva già messo in atto lo smart-working al 100%. Frivolezza: non ho potuto nemmeno festeggiare il mio 44° compleanno con i miei colleghi. Io, che abito nel Lodigiano, a non più di 30 km dalla ormai celebre Codogno, vivere la pandemia ed il lockdown è stato piuttosto particolare. Ah, parentesi: il 15 Febbraio ero proprio nell’ospedale di Codogno, a trovare una mia zia ricoverata proprio lì (le ho collegato la TV in camera e le ho fatto partire la ricerca automatica dei canali). Nelle settimane più critiche della “pandemia italiana” era normale veder passare tantissime ambulanze dalla via su cui si affaccia casa mia. Giorno e notte, con lampeggianti spenti ed accesi. Ed ammetto di aver passato parecchi giorni in paranoia, soprattutto per un motivo molto semplice, che voglio raccontarvi oggi: credo proprio di essermi beccato anche il Covid-19. Dico “credo”, perchè nonostante vari solleciti al mio medico di base, di tamponi di questo o di quel tipo non ne ho mai fatti. Quindi non ho la prova matematica certa. Però per una settimana ho avuto febbre intorno ai 39°, tanta tosse, tantissima debolezza. Ho passato le mie due settimane in quarantena, con i miei che mi aiutavano con la spesa perchè io non potevo di fatto uscire di casa. Il 2 aprile ho effettuato una radiografia ai polmoni, per scongiurare polmoniti pericolose dovute al Covid. Per fortuna esito negativo. Adesso le cose si stanno assestando? Le scuole, che partiranno lunedì prossimo, daranno secondo me una prima grande risposta. Si ammaleranno gli alunni, che contageranno i genitori? Si tornerà ad un nuovo lockdown? E’ difficile rispondere a queste domande, probabilmente non lo sanno nemmeno gli esperti perchè è una situazione nuova per tutti.

E di tecnologia, che poi è il topic principale di questo mio blog, di cosa parliamo?

Beh, è uscito il nuovo Microsoft Flight Simulator (da pilota virtuale sono stato un acquirente della prima ora), venduto sia sul Microsoft Store, sia su Steam. Io nei mesi scorsi ho aggiornato il mio FlightSim Logger per essere compatibile con questo nuovo simulatore, che sicuramente rappresenta un nuovo punto d’inizio dopo che per anni Microsoft aveva dato l’illusione di abbandonare il mondo della simulazione del volo.

Poi? Domani passo a 32Gb di RAM. Al mio compleanno mi hanno regalato una sedia da gaming spettacolare, grazie alla quale lavorare da casa è un piacere assoluto. Mi è stato regalato anche un nuovo mouse, il Logitech G502 Hero.

Software

Bozze di Open Live Writer su OneDrive

Sei incredibili anni fa scrivevo questo post sul mio blog intitolato “Bozze di Windows Live Writer su SkyDrive”.

Il tempo è passato, Windows Live Writer non esiste più, e non esiste più nemmeno SkyDrive.

Sono stati rimpiazzati rispettivamente da Open Live Writer e da OneDrive. E quindi ecco qui un breve aggiornamento.

Il problema originale esiste anche oggi, ovvero: è possibile sfruttare OneDrive per fare il sync delle vostre bozze scritte con Open Live Writer, per fare in modo di cominciare a scriverle da un PC, proseguire su un altro, per poi infine pubblicarle sul vostro blog da un altro PC ancora?

Certo che sì, e soprattutto è molto più semplice rispetto a sei anni fa, quando eravamo costretti a giocare con il regedit. Oggi l’interfaccia utente ci consente di impostare tutto.

E’ sufficiente aprire Open Live Writer, poi andare sul menù File, poi su Options e nella finestra di dialogo che compare specificare una cartella gestita dal vostro OneDrive. Ecco uno screenshot veloce:

image

In questo modo, le bozze vengono salvate sotto OneDrive. Ovviamente dovete impostare Open Live Writer su ogni PC, facendo puntare la stessa cartella sotto OneDrive. Se il meccanismo di syncing di OneDrive funziona a dovere, su tutti i vostri PC potete recuperare e continuare i post andando sotto il menù File, poi aprire Open local draft e trovare lì l’elenco delle bozze. Notare che la cartella “My Weblog Posts” ne contiene altre due: una dedicata ai draft (bozze) e l’altra dedicata ai post già pubblicati (Recent Posts). La cartella da impostare in Open Live Writer deve comunque puntare alla cartella principale, ovvero “My Weblog Posts”.

image

Hardware

ErP nel vostro BIOS: a cosa serve?

Nei primi giorni di settembre di quest’anno ho acquistato questa scheda video (Asus ROG Strix RTX 2070 Overclocking Edition). L’obiettivo era poter giocare a DooM Eternal in modo decente, e comunque per dare una rinfrescata al mio hardware, dal momento che montavo una vecchia GeForce di 6 anni fa.

Smonto quella vecchia, monto quella nuova, tutto gira a meraviglia.
Mi godo persino un DooM 2016 girare a più di 200 fps.

Poi spengo il PC, in tarda serata, e non posso non notare due led bianchissimi e luminosissimi sulla scheda video, che rimangono accesi anche a PC completamente spento. Nota di colore: anche staccando l’alimentazione del PC (agendo sull’alimentatore) i due led rimangono accesi per qualche minuto. Sul momento ho ignorato la cosa. Innanzitutto chiariamo una cosa: quei due led indicano semplicemente che la scheda video è alimentata correttamente, quindi hanno un senso e servono per capire se il giusto apporto di energia dall’alimentatore raggiunge la scheda video.

Tanto per capirci, ho trovato questa immagine sul web che rende l’idea. Ho evidenziato i due led con due cerchi gialli. Raccontata così può sembrare una cosa di poco conto, ma quei due led illuminavano il mio soggiorno in piena notte, e tra l’altro con una serie di giochi e specchi & riflessi quelle due dannate lampadine bianche comparivano un po’ dappertutto.

E’ stato un po’ complicato trovare la soluzione, che riguarda una funzionalità del vostro BIOS denominata “ErP”. Quando è disattivata (condizione di default) la scheda madre viene comunque alimentata con un quantitativo minimo di energia (<1 Watt), grazie alla quale vengono mantenute attive funzionalità come: PME Event Wake Up, Power On By Mouse (accensione del PC intervendo su uno dei bottoni del mouse), Power On By Keyboard (accensione del PC intervendo su uno dei tasti della vostra tastiera USB), and Wake On LAN (accensione del PC attraverso la rete, inviando un pacchetto TCP/IP ben preciso, noto come “magic packet”).

Il BIOS della mia mainboard (MSI Z390 Gaming Plus) ha la funzionalità ErP disabilitata di default, quando anche quando il PC veniva spento, l’alimentazione sulla mainboard c’era comunque, compresi i due white power led che raccontavo prima. Ecco una schermata tratta del mio BIOS; l’opzione si trova in basso a destra.

image

E’ bastato entrare nel BIOS ed attivare la funzionalità per avere un PC realmente spento, senza più bagliori notturni nel mio soggiorno.

.NET World

Buon 2019!

Oggi sarete tutti rientrati al lavoro, per cui dal mio blog, ufficialmente, auguro a tutti voi un buon 2019! Per me l’anno scorso è stato un anno di piccoli ma grandi cambiamenti, e li voglio ricordare qua.

  • ho cambiato posto di lavoro, come ho già avuto modo di raccontare
  • ho fatto tre mesi di convivenza in versione demo, durante la primavera
  • ho cominciato una convivenza reale e definitiva, a partire da settembre

Le cose migliori mi sono accadute negli anni pari, per cui non ho grandi speranze per questo 2019, ma sono pronto a ricredermi. Onestamente sono un po’ preoccupato per la situazione politica italiana, e mondiale, ma sono problemi che non posso occuparmi, se non quando vado a votare, per cui per adesso ascolto, osservo, ragiono e valuto, poi il tempo darà tutte le risposte.

Vi lascio con una bella fotografia. Si tratta del Lego Ideas #20, che di fatto è una nave – il Leviathan – in bottiglia. Inutile ricordare e far notare che si tratta di un prodotto ufficiale Lego, fatto interamente in Lego. Bottiglia, tappo, base di supporto, acqua, etc. etc.

https://shop.lego.com/it-IT/product/Nave-in-bottiglia-21313

Ho comprato questa confezione qualche giorno prima di cambiare lavoro, verso la fine di settembre. Durante il montaggio si è rotto un pezzetto, cosa rarissima per il brand Lego; l’ho preso come un segno del destino, come un simbolo di tutto ciò che qualcuno ha fatto andare storto quando ho chiuso i rapporti di lavoro con la mia precedente azienda. Un giorno avrò modo di raccontarvi tutto, non dubitate. Ho dovuto sostituirlo con un pezzo di fortuna, recuperato per fortuna dalla mia collezione privata; alla fine il Leviathan ha preso forma lo stesso.

Torniamo a noi, al presente. Ho scelto questa foto perchè probabilmente più di tutte mi ricorda l’anno appena chiuso. Chissà quale immagine avete in testa voi, invece. Indipendentemente da tutto, auguro a tutti voi un felice anno nuovo, pieno di soddisfazioni personali e lavorative!

.NET World

VS2017 : Close All But Tool Windows

Con il rilascio di Visual Studio 2017 version 15.9 è comparsa una nuova voce di menù in Visual Studio 2017, posizionata sotto il menù Window.

Si va ad affiancare alla già nota Close All Documents.

Mentre la Close All Documents chiude indiscriminatamente tutti i tab aperti, senza farsi troppe domande, la Close All But Tool Windows chiude tutti i tab aperti (quindi ogni tipo di file sorgente .cs, .xaml, .css, .ts e via dicendo) lasciando però aperti eventuali tab contenenti strumenti di Visual Studio. Ad esempio:

  • Find and Replace, che utilizzo molto
  • Test Results
  • JSON Outline
  • Web Browser (c’è qualcuno che lo usa?)
  • Diagnostics Tools

Più in generale, tutti quei tool e pannelli che si aprono dai menù tradizionali di Visual Studio.
Comodo?

.NET World

Visual Studio 2017 15.9.2 – Export / Import configuration

Premessa
Se avete a che fare con un’installazione piuttosto corposa/complessa di Visual Studio 2017, che comprende cioè un gran numero di linguaggi, framework, strumenti, emulatori, etc. etc. probabilmente andate un po’ in panico quando lo dovete installare su una macchina nuova (o magari quando reinstallate il vostro PC). I casi sono due:

  1. andate per intuito
  2. o – come me – utilizzate un documento RTF di qualche tipo, che gestite nel tempo, che vi elenca esattamente tutti i componenti di cui avete bisogno

Quindi, lanciate l’installer di Visual Studio 2017, andate prima nella sezione Workloads e selezionate “a grandi linee”, poi vi spostate nella sezione Individual Components e selezionate in modo più preciso e puntuali tutto ciò che vi occorre. Che andiate ad intuito oppure seguendo una checklist, poco cambia.

La novità di Visual Studio 2017 – Release 15.9
Con l’ultimo rilascio di Visual Studio 2017 c’è una novità. E’ possibile esportare in un file .vsconfig la configurazione attuale dei componenti del vostro VS2017, allo scopo di poterla importare in un altro installer. Questo semplifica di molto le operazioni per un nuovo setup, evitando di dover selezionare a mano, di sbagliarsi in qualche modo, etc. etc.

L’operazione di export di per sè è praticamente immediata. Il file .vsconfig è sostanzialmente un file in formato json che contiene l’elenco di tutti i package della configurazione corrente. Lo esportate da una parte, lo importate successivamente sullo stesso o su un altro PCe vi troverete tutto quanto già selezionato senza troppe complicazioni. Bene così.

.NET World

Evitare l’autoscroll della ListBox in WPF

La settimana scorsa ho notato un comportamento standard della ListBox di WPF, che ho sempre accettato in realtà senza rendermene conto, ma che nell’applicazione che stiamo sviluppando non andava troppo bene. In pratica, la ListBox compie uno scroll automatico quando viene selezionato un elemento parzialmente visibile, allo scopo di farlo vedere completamente all’utente. Guardate il video qua sotto.

All’inizio del video, per esempio, viene cliccato e selezionato il numero 6. Trattandosi di un elemento parzialmente renderizzato, e quindi parzialmente visibile, cosa succede? Che WPF fa scorrere la ListBox verso l’alto per fare in modo che l’utente possa vedere l’intero item. La stessa cosa accade poco dopo con il numero 4094, e dopo ancora con il 4125.

Si può evitare questa cosa? Certo che sì.

Si tratta di intercettare l’evento RequestBringToView, che la ListBox scatena proprio nei casi citati sopra. By default, allo scatenarsi di quell’evento (ed in realtà anche di altri, come il GotFocus) la ListBox chiama automaticamente il metodo BringToView(), proprio per portare in visibilità l’elemento selezionato. Il gioco sta nel bloccare questo comportamento predefinito, in questo modo.

1
2
3
4
5
6
&lt;ListBox.ItemContainerStyle&gt;
&lt;Style TargetType="ListBoxItem"&gt;
&lt;EventSetter Event="RequestBringIntoView"
Handler="ListBoxItem_RequestBringIntoView" /&gt;
&lt;/Style&gt;
&lt;/ListBox.ItemContainerStyle&gt;

In pratica grazie ad un piccolo snippet XAML si va ad intercettare l’evento RequestBringToView, facendo eseguire una riga di codice C# che va marcare l’evento come gestito, evitando il normale comportamento della ListBox.

1
2
3
4
5
private void ListBoxItem_RequestBringIntoView
(object sender, RequestBringIntoViewEventArgs e)
{
e.Handled = true;
}

Questa piccola implementazione vale per ListBox, ListView, GridView, etc. etc.

My personal life

Sandro Tonali, ovvero: scoprire il proprio talento per vivere meglio

Penso che una delle migliore cose che possano capitare ad una persona sia quella di scoprire, fin da piccoli, il proprio talento. Facendo qualche veloce ricerca sul web, si trovano diverse definizioni della parola “talento”. Qualche esempio:

Capacità intellettuale non comune associata a genialità o estro vivace.

Dote, specialmente in quanto propensione a qualcosa, capacità in un’attività, in un settore.

Ingegno, predisposizione, capacità e doti intellettuali rilevanti, specialmente in quanto naturali e intese a particolari attività.

Mentre, tratto da questa pagina, trovo…

Il talento è dote. Se ne è naturalmente provvisti, e se non c’è non si può imparare – inclinazione troppo più profonda di una capacità, troppo più radicata di una passione, troppo più caratterizzante di un volto o di una maniera, per poter essere riprodotta o finta. È un taglio del sé.

Aggiungo del mio: avere un talento per una certa attività non significa di per sé che la faresti sempre ad ogni ora del giorno e della notte, è semplicemente quella cosa che ti esce istintiva, con il minimo sforzo, mentre magari vedi gli altri che per raggiungere lo stesso obiettivo arrancano. Il talento si palesa con un’intuizione naturale che hai innata dentro, ma che comunque richiede studio & dedizione costanti nel tempo per tutti i perfezionamenti del caso che faranno di te un professionista completo.

Io penso di averlo nel mio lavoro, così come tanti altri ce l’hanno nel loro. E probabilmente anche mio cugino, Sandro Tonali, ce l’ha nel suo. Visto che quando era piccino giocava a calcio virtuale sulla Playstation, poi è cresciuto ed ha cominciato a giocare veramente a pallone, fino a raggiungere il calcio giocato, quello vero, nella serie B con il Brescia.

Ed in questi giorni è stato convocato da Roberto Mancini con la nazionale maggiore, per giocare un’amichevole contro gli Stati Uniti il 20 Novembre, accanto a gente come Chiellini, Bonucci, Verratti, Insigne, Immobile e via dicendo. Paura vera.

Mi capita sempre più spesso di vederlo in TV, intervistato o sul campo da gioco, e devo dire che sono proprio felice per lui. Perchè a 18 anni probabilmente ha già capito da un po’ qual è il suo talento, e probabilmente è circondato dalle persone giuste capaci di farglielo fruttare come si deve. Bravo a lui, alla sua famiglia più vicina, e chiunque sta contribuendo al suo successo!

Buona fortuna, cugino!

.NET World

“Get Latest Version” da command line: assicurarsi di usare il tf.exe corretto

Per voi che, lavorando seriamente, utilizzate TFS come source control, vi potrebbe tornare utile sapere che è possibile effettuare tutta una serie di operazioni dalla command-line, sia essa il classico command prompt del DOS, piuttosto che PowerShell. A quale scopo? Per automatizzarle, per esempio, perchè per certi versi è più comodo fare doppio click su uno script già bello pronto, piuttosto che aprire Visual Studio, raggiungere il Source Control Explorer, e poi cliccare dal menù contestuale la voce Get Latest Version (GLV).

Vi rimando a questa pagina per maggiori informazioni.

E’ possibile fare davvero di tutto: gestire check-out e check-in, ottenere informazioni sul proprio workspace, gestire i branch, aggiungere/rimuovere nuovi file o cartelle, consultare i pending changes, e molto altro ancora.

Quella che serviva a me, per velocizzarmi il lavoro, è quello di effettuare il GLV. Ci sono diverse sintassi per farlo; quella che utilizzo io è forse la più semplice:

CD C:TFSNomeAppNomeBranch
%ExeTf% get "$/Nomeapp/NomeBranch" /recursive

E’ possibile aggiungere il parametro “/preview” per simulare un GLV senza però sovrascrivere le cartelle ed i file del proprio workspace locale.

Sappiate che potreste incappare in un errore di esecuzione che tra le altre cose dice: “Unable to determine the workspace using TF.exe“. E’ segnalato in tantissime pagine sul web, compresa questa su StackOverflow. Troverete tantissime soluzioni; forse l’errore più comune e frequente è che TF.exe va eseguito da una cartella già mappata nei percorsi locali di TFS. Ecco il motivo per cui io nel mio script ho inserito un comando CD prima di eseguirlo. In più bisogna assicurarsi di usare i parametri giusti nello script che riportano username, password (oppure un utente di dominio), e così via.

Nel mio caso la questione era ancora più subdola. Sul mio HD il file TF.exe è presente in più copie, forse una per ciascuna versione di Visual Studio installata.

Il primo si trova qui: “C:Program Files (x86)Microsoft Visual Studio2017EnterpriseCommon7IDECommonExtensionsMicrosoftTeamFoundationTeam Explorer”. Un secondo invece si trova in “C:Program Files (x86)Microsoft Visual Studio 12.0Common7IDE”.

E’ assolutamente necessario lanciare il TF.exe corretto, altrimenti continuerete a ricevere lo stesso errore.

Se utilizzate Visual Studio 2017 Enterprise Edition, insomma, va lanciato il primo. Tornando allo script iniziale, ho banalmente valorizzato la variabile %ExeTf% come “C:Program Files (x86)Microsoft Visual Studio2017EnterpriseCommon7IDECommonExtensionsMicrosoftTeamFoundationTeam Explorer f.exe” ed il gioco è fatto.

.NET World

Godere della Windows Timeline sotto Android

Una delle feature che mi capita di utilizzare con Windows 10 (non così spesso, ma quando ne ho bisogno diventa vitale) è la Timeline, ciò quella funzionalità che traccia e salva sul cloud (ebbene sì) le attività che fate su documenti e pagine web, in modo che se switchate da un PC all’altro…siete in grado di recuperare i link, le pagine visitate ed i documenti aperti da OneDrive. Quindi immaginatevi di aprire dal vostro account documenti Excel oppure Word, scansioni in PDF, immagini, qualsiasi file…Timeline se lo ricorda.

Maggiori informazioni sulla Windows Timeline le trovate qui.

Questa cosa funziona su tutti i PC Windows sui quali accedete con lo stesso Microsoft Account, ovviamente, ma non solo. Se avete un telefono Android ed installate il Microsoft Launcher, come ho fatto io, potete raggiungere la Timeline anche sotto Android.

Qui sopra potete vedere una schermata tratta dal mio smartphone personale, un Asus Zenfone 4 Max, su cui ho installato il Microsoft Launcher. Quelle che vedete qui sopra sono le ricerche del 27 ottobre scorso fatte con Edge, che uso come browser principale. Qui sopra non le vedete, ma la Timeline vi mostrerebbe anche voci relative a fogli Excel, il tutto raggruppato per giorni, ore, domini visitati, etc. etc.

L’app Microsoft Launcher pubblicata sul Play Store aggiunge altre funzionalità al vostro telefono Android: la gestione degli sfondi, degli widget, delle pagine e delle gesture. Prevede anche un menù contestuale per ogni tile, così che possiate per esempio disinstallare le app in modo rapido e con un look’n’feel simile al caro Windows.