Technology Experience

Autore: Igor Damiani

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.

Send to Kindle
.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!

Send to Kindle
.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?

Send to Kindle
.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ì.

Send to Kindle
.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.

Send to Kindle
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!

Send to Kindle
.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.

Send to Kindle
.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.

Send to Kindle
.NET World

Utilizzare git dietro ad un proxy aziendale

Quando siete all’interno di una LAN aziendale protetta da un proxy, potreste avere dei problemi ad utilizzare gli strumenti di Git sotto Windows.
Mi riferisco in particolare a tre strumenti, quelli che utilizzo più spesso:

  • il tool git dalla command line
  • la “GitHub extension for Visual Studio” (con Visual Studio 2017)
  • il tool “GitHub Desktop” per Windows

Senza indicare il proxy aziendale, tutti questi tool vi daranno errori di diverso tipo, probabilmente di timeout, perchè la connessione alla rete non è diretta ma passa appunto attraverso un proxy. Come si risolve un problema di questo tipo?

1) Prima opzione: agendo manualmente sul file .gitconfig
Aprite la cartella %USERPROFILE% da esplora risorse ed editate a mano il file .gitconfig.

Basta andare in un qualsiasi punto del file ed aggiungere i due parametri:

[http]
proxy = <vostro_proxy>
[https]
proxy = <vostro_proxy>

E’ decisamente la strada più rapida ed efficace se siete dev ed avete un Notepad++ pronto all’uso.

2) Seconda opzione: utilizzando il command “git”
Con il secondo modo otteniamo alla fine lo stesso risultato, ma andiamo però ad utilizzare direttamente il tool “git” dal classico command prompt oppure da Powershell.
E’ sufficiente eseguire questi due comandi:

git config --global --add http.proxy <vostro_proxy>
git config --global --add https.proxy <vostro_proxy>

Quello che otterrete alla fine è la modifica del file .gitconfig di cui parlavamo prima. Eventualmente potete fare un check della configurazione corrente con il comando:

git config --list
Send to Kindle
.NET World

Utilizzare npm dietro ad un proxy aziendale

L’altro giorno ho voluto installare Angular CLI sul mio PC che utilizzo per lavorare, che è collocato dietro un proxy aziendale. Quindi, il tradizionale comando:

npm install -g @angular/cli

ovviamente non funziona, nel senso che dopo un certo timeout vi dà un errore perchè npm non riesce a scaricare i pacchetti indispensabili per avere Angular ready-to-run. Come fare? E’ necessario configurare npm, aggiungendo due parametri “proxy” e “https-proxy”, in questo modo:

npm config set proxy url
npm config set https-proxy url

Ovviamente al posto di “url” indicato l’IP del vostro proxy.
Ed il gioco è fatto!

Send to Kindle