mainSlogopaceclick Blog  · informatica · elettronica · astronomia..

PC lento? Come controllare i processi che intasano l'interrupt di sistema e le richieste DPC

Se ci capita di vedere il PC lento e, aprendo Task Manager, se vediamo che l'interrupt di sistema consuma molta CPU, come possiamo stabilire quale è il driver da rimuovere?

Cosa è:

Infatti l'interrupt è una richiesta asincrona che esegue un componente hardware in seguito ad un suo evento sincrono (di esecuzione).
In caso di interrupt, la CPU sospende l'esecuzione in corso e si dedica a quella richiesta, per poi tornare alla precedente.

Se però da Task Manager vediamo che l'interrupt di sistema supera il 15-20-25% vuol dire che qualcosa non funziona, e la CPU riceverà inutili richieste che vanno poi ad inficiare le prestazioni.

Soprattutto in caso di richieste DPC (Deferred Procedure Call) sollevate da dispositivi ad alta priorità come mouse o schede audio (il mouse viene prima/ha maggiore priorità di altri programmi in background per esempio), in caso di malfunzionamento dei relativi driver si possono anche verificare blocchi del sistema.

In tal caso però è difficile individuare il driver specifico perché nel Task Manager vediamo solo una 'somma' del carico sulla CPU di tutte le richieste degli interrupt.

La soluzione:

Esiste un programma, LatencyMon (scaricabile qui), che ci consente di esplorare le varie richieste alla CPU sollevate dagli svariati drivers installati.

undefined

Come si usa:

Dopo aver aperto il software, cliccare sul pulsante Drivers ed ordinare la lista in base alla colonna DPC Count (cliccandoci sopra).
In questo modo avremo in alto i driver che sollevano più richieste di interrupt ('di attenzione') alla CPU.
In alternativa è possibile basarsi anche sull'ultima colonna, chiamata Highest Execution, che ci informa su 'quanto tempo' viene occupata la CPU dalle richieste del driver specifico.

Una volta individuato il driver incriminato, il consiglio è di provare ad aggiornarlo, di reinstallarlo o di passare ad una versione precedente dello stesso (da Gestione Dispositivi di Windows).

Abilitare WebGL 2.0 sui principali browser

Per le canvas create in WebGL 1.0 non ci sono problemi, tutti i browser sono già automaticamente compatibili, tuttavia se visualizzate un immagine nera, senza possibilità di utilizzo, vuol dire che la canvas viene gestita da WebGL versione 2.0 o successiva.

Per abilitare WebGL 2.0 e le altre versioni sperimentali di WebGL sul proprio browser seguire queste istruzioni.

undefined

Chrome

Si può abilitare nella sola apertura corrente con:

--enable-unsafe-es3-apis

nella linea di comando dell'applicazione, esempio:

C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --enable-unsafe-es3-apis

Altrimenti per una attivazione permanente, andare su

about:flags

ed attivare

"Estensioni bozza WebGL"
"Prototipo di WebGL 2.0"

Il contesto 2.0 può essere creato con l'ID “webgl2”.

Firefox

Andare su

about:config 

e creare una nuova preferenza booleana con il nome:

webgl.enable-prototype-webgl2

creare a questo punto un contesto compatibile

var gl = somecanvas.getContext("experimental-webgl2");

Edge

Si possono seguire le informazioni sulla documentazione ufficiale.

(fonte)

Allineamento delle partizioni da HDD verso SSD, come si verifica

Quando compriamo un nuovo SSD per installare da zero un sistema operativo, non ci sono problemi. 
Windows provvederà ad effettuare da subito il corretto allineamento.

undefined

Tuttavia se si esegue una migrazione di dati da un HDD verso un SSD, può capitare (anzi capita spesso) che la partizione non venga allineata come dovrebbe.

Questo perché negli HDD vengono lasciati liberi i primi 63 blocchi, negli SSD invece i primi 64 (prima dell'inizio della 1° partizione).

 

undefined

Gli SSD sono composti da 'pagine' e i dati vengono scritti in 'blocchi'; questi ultimi vengono suddivisi in settori, e dovrebbero essere scritti a partire dall'inizio di una pagina fisica.
Come analogia, sarebbe come iniziare ad incidere sul lato A di un nastro non all'inizio, così da dover finire gli ultimi minuti sul lato B: c'è uno spreco di spazio, ed una significativa perdita di prestazioni.
Il controller ogni volta deve leggere da 2 pagine differenti, anzichè da 1 (nell'esempio del nastro, la perdita di tempo sarebbe il 'girarlo').

Allineare l'SSD quindi porta ad un incremento notevole delle prestazioni R/W.

NOTA: l'allineamento deve essere fatto una sola volta, quando si passa da un HDD a un SSD tramite l'uso di programmi di clonazione.

1. Verificare se c'è bisogno di allineamento

Andiamo su un prompt dei comandi (click destro sul logo di windows del menu start), e digitiamo:

C:\Windows\System32> msinfo32
[premere invio]

Andiamo nella sezione

 Componenti > Archiviazione > Dischi

nella sezione di destra apparirà una lista di dati per ciascuna partizione,
a questo punto per la prima partizione (Disco #0, Partizione #0), leggete il valore in Byte chiamato

'Offset avvio partizione'

undefined

A questo punto aprite la calcolatrice di Windows e provate a dividere quel valore per 4096.

  • Se il numero è divisibile (il risultato è un numero intero qualsiasi, esempio 512), il disco è allineato.
  • Se il numero non è divisibile (il risultato è un decimale, esempio 284.65), il disco è da allineare.

2. Allineare l'SSD 

Non è necessario reinstallare tutto, si può optare per dei tool di partizionamento gratuiti come MiniTool Partition Wizard 

Nel tab di sinistra troverete il pulsante 'Align all partitions', in quello di destra selezionate il disco da allineare (il vostro SSD con il SO), e confermate con Apply in alto.

undefined

Il tool vi indicherà di riavviare poiché il disco è in uso e che eseguirà l'allineamento al riavvio.

Consigliamo come sempre di eseguire un backup dei vostri dati PRIMA di eseguire un'operazione come questa.

Come calcolare gli Hash MD5, SHA1, SHA-256, CRC32 in Windows, Linux, Mac e online

Cosa sono

Gli Hash sono usati in informatica per mappare una stringa (una sequenza di bit) di lunghezza arbitraria in una stringa di lunghezza predefinita.

E' una sorta di 'firma' di un documento elettronico. Per ogni stringa si può calcolare un hash, quindi ogni stringa diversa avrà hash diverso.
Tuttavia calcolando 2 volte l'hash di uno stesso file (stringa) si avrà come risultato lo stesso output.
Hash calcolati con algoritmi diversi, ovviamente daranno diverso risultato.

undefined

Vengono usate per verificare l'integrità dei file (usati per questo anche in informatica forense).
Per esempio quando scaricate una ISO di Windows, sotto il link per il download troverete la corrispondente chiave SHA1.

undefined

Ebbene, una volta scaricato sul PC, per verificare che il file sia integro (privo di errori di trasmissione o di manomissioni volontarie per via di attacchi MITM) basterà ricalcolare l'hash in locale e confrontarlo con la stringa fornita online.

Approfondimento sugli Hash, qui.

Windows 

E' possibile usare CertUtil:

CertUtil -hashfile c:\path\filename.ext <algoritmo>

al posto di <algoritmo> inserire uno tra questi: MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512.

In alternativa è possibile utilizzare l'utilità File Checksum Integrity Verifier (FCIV) per calcolare i valori hash crittografici MD5 o SHA-1 di un file.

FCIV -md5 -sha1 c:\path\filename.ext

Non è possibile generare CRC32, tuttavia per Windows esiste anche un utilissimo programma gratuito di Nirsoft,
HashMyFiles, prelevabile dal relativo sito, che permette il calcolo da GUI anche con tale algoritmo.

undefined

Linux

Per calcolarlo di una stringa:

$ echo abcdefg.. | md5sum
$ echo abcdefg.. | sha1sum

Per il calcolo CRC32 di un file:

$ cksum /path/filename.ext

Per il calcolo MD5 o SHA di un file:

$ md5sum /path/filename.ext
$ sha1sum /path/filename.ext
$ sha256 /path/filename.ext
$ sha512 /path/filename.ext

Per verificarlo:

$ sha256sum -c /path/filename-CHECKSUM

in questo caso, se il calcolo coincide, verrà dato un OK.

Mac OS

md5 /path/filename.ext
shasum -a 1 /path/filename.ext
shasum -a 256 /path/filename.ext
crc32 /path/filename.ext

Calcolo online

E' possibile anche usare dei tool online.
Uno di questi è sicuramente OnlineMD5.com, che ci permetterà di calcolare gli hash MD5 e SHA sia per file che per stringhe di testo direttamente da browser e senza caricare fisicamente il file.

5 funzioni utili che può fare un Raspberry Pi in rete (FTP/TFTP/WEB/SAMBA/SYSLOG)

Vediamo come fare ad impostare un Raspberry Pi per poterlo usare come server nella rete locale.

Di seguito troverete una lista di comandi e azioni da eseguire passo passo per configurare il dispositivo.

undefined

[1] SERVER FTP

mkdir -p /home/pi/files/
chmod 777 /home/pi/files/
sudo bash

apt-get install pure-ftpd -y
pure-pw useradd pi -u pi -g pi -d /home/pi/files/

impostare come password: raspberry, poi

pure-pw mkdb
ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/60puredb
service pure-ftpd restart

 

[2] SERVER TFTP

wget http://downloads.sourceforge.net/project/tftp-server/tftp%20server%20single%20port/opentftpspV1.66.tar.gz
tar xvf opentftpspV1.66.tar.gz
cd opentftp/

g++ opentftpd.cpp -oopentftpd -lpthread
mkdir /home/pi/files
chmod 777 /home/pi/files/

sudo bash

cp opentftpd /usr/bin/
vi /etc/opentftp.ini

nel file dovrete verificare o aggiungere il seguente contenuto

[LISTEN-ON]

[HOME]
/home/pi/files

[TFTP-OPTIONS]
username=pi
ThreadPoolSize=10
Read=Y
Write=Y
Overwrite=Y
/usr/bin/opentftpd -i /etc/opentftp.ini

 

[3] WEB SERVER

mkdir -p /home/pi/files/
chmod 777 /home/pi/files/
sudo bash
apt-get install apache2 -y
rm -rf /var/www/html/
ln -s /home/pi/files/ /var/www/html

 

[4] SAMBA SERVER

mkdir -p /home/pi/files/
chmod 777 /home/pi/files/
sudo bash
apt-get update
apt-get install samba -y
rm /etc/samba/smb.conf
vi /etc/samba/smb.conf

nel file dovrete verificare o aggiungere il seguente contenuto

[global] netbios name = server server string = server workgroup = WORKGROUP security = user
[server] comment = server path = "/home/pi/files/" public = yes guest ok = yes read only = no
pdbedit -a -u pi

impostare come password: raspberry, poi

service smbd restart

 

[5] SYSLOG SERVER

mkdir -p /home/pi/files
chmod 777 /home/pi/files
sudo bash
apt-get install syslog-ng -y

modificare il file config che si trova in:

/etc/syslog-ng/syslog-ng.conf

cambiare le impostazioni di permessi del file config da 640 a 644:

options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no); owner("root"); group("adm"); perm(0644); stats_freq(0); bad_hostname("^gconfd$");
};

inserire nel file anche queste 3 linee di configurazione:

source s_net { udp(ip(0.0.0.0) port(514)); };
destination d_files { file("/home/pi/files/${YEAR}_${MONTH}_${DAY}__${HOST}"); };
log { source(s_net); destination(d_files); };

salvare il file modificato e riavviare il server:

service syslog-ng restart

 

[PLUS] RADIUS SERVER 

sudo bash
apt-get update
apt-get install freeradius -y

modificare (con vi <file>) il file config che si trova in:

/etc/freeradius/clients.conf

nel file dovrete verificare o aggiungere il seguente contenuto

client 0.0.0.0/0 {
 secret = {RADIUS server shared key}
 shortname = anyone
}

modificare (con vi <file>) il file config che si trova in:

/etc/freeradius/users

nel file dovrete verificare o aggiungere il seguente contenuto

testuser Cleartext-password := "password"


[PLUS] DHCP SERVER

sudo bash

impostare un IP statico nel file

/etc/dhcpcd.conf

inserire ad esempio

static value
interface eth0
static ip_address=192.168.0.1/24
static routers=192.168.0.254
static domain_name_servers=8.8.8.8

riavviare il raspberry

reboot

aggiornare

apt-get update
apt-get install isc-dhcp-server -y

modificare il file config per DHCP che si trova in

/etc/dhcp/dhcpd.conf

inserire ad esempio

subnet 192.168.0.0 netmask 255.255.255.0 {
 range 192.168.0.20 192.168.0.40;
 option routers 192.168.0.254;
 option domain-name-servers 8.8.8.8;
}

se volete anche inserire opzioni aggiuntive in base al vendor, aggiungete

option vendor-class-identifier "AppleInc";
option vendor-encapsulated-options "192.168.1.100";

avviare il server DHCP con il comando

dhcpd -cf /etc/dhcp/dhcpd.conf

Come si crea una password sicura e facilmente ricordabile

Molto spesso ci viene detto che le password più usate sono sempre le stesse (esempio: 123456, password, qwerty, ecc..), o comunque riconducibili a date di nascita o momenti memorabili della propria vita.

undefined

Ebbene, usare personaggi pubblici o luoghi reali non è comunque una buona idea: esistono infatti dei software (come John the Ripper) che sono in grado di usare dei dizionari enormi, in grado quindi di eseguire un brute-force (vedi qui) e trovare anche password più complesse in pochi minuti.

Ad esempio: per scoprire 'login' o 'password' o 'america' ci vuole solo qualche secondo (!).

undefined

Navigando su internet abbiamo la necessità di creare decine di password (che sarebbe meglio avere tutte diverse tra loro!), e ci viene sempre consigliato di crearle con dei pattern abbastanza complessi.

Ad esempio
, dal pattern <maiuscola><minuscola><numero><carattere speciale>, possiamo creare Ab0', oppure se di 8 caratteri abaB00-?

Saprete bene che ricordarsi anche 5 di queste password è molto difficile (e portarsi dietro un foglietto NON è la soluzione giusta).

Come fare allora per ricordarsi una password molto complessa?

Se lo sono chiesti anche degli Hacker Etici (White Hat) della Red Team Security, azienda di sicurezza del Minnesota.

Il gruppo dice che per avere una password forte (che resiste ad attacchi brute force), tutto quello che dobbiamo fare è inventarci una frase di senso compiuto o comunque facile (per noi) da ricordare, e da questa, tenere SOLO le lettere iniziali.

Ad esempio: "A luglio sono stato 7 giorni al mare", diventerebbe "Alss7gam".
Oppure, sempre da quella frase, tenere le prime 2 lettere: "Alusost7gialma" (in tal caso solo noi sapremo di dover prendere n lettere).

Questo tipo di password sono praticamente imprevedibili, perchè non sono parole di senso compiuto, e per ciò non presenti anche in ipotetiche rainbow-table.

Avremo quindi una password abbastanza complessa da essere accettata da molti siti, abbastanza unica nel suo genere e quindi imprevedibile.

Inoltre abbiamo raggiunto il nostro scopo, ricordarcela!

:D

Inoltrare dati da seriale virtuale ad un indirizzo di rete tramite socket TCP

Vediamo come inoltrare dati da seriale virtuale verso un indirizzo di rete.

undefined

Passo 1 - Scegliere la seriale da utilizzare

E' possibile visualizzare la lista delle seriali virtuali disponibili nel sistema con il comando:

dmesg | grep tty


Passo 2 - Socat

Socat è un utilissimo strumento già presente in molte distro Linux, che consente di manipolare ed eseguire il forwarding di pacchetti di rete.

Aprire un terminale ed acquisire i privilegi di ROOT (importante).

Eseguire questo comando per inizializzare l'inoltro dei pacchetti in arrivo 
sulla seriale ttyS0, verso l'indirizzo IP di loopback, sulla porta 60001:

socat pty,link=/dev/ttyS0,raw tcp:127.0.0.1:60001&

Ovviamente basterà modificare il comando con la seriale e l'indirizzo IP:porta desiderati.

Un altro possibile uso è il binding (unione) di due differenti seriali:

socat PTY,link=/dev/ttyS10 PTY,link=/dev/ttyS11


Passo 3 - Invio/Ricezione con Python

3.1

Per poter ricevere i dati, dobbiamo predisporre un listener sull'indirizzo IP di destinazione (non trattato in dettaglio in questo articolo). Nel nostro caso usiamo semplicemente netcat, in ascolto sempre sulla porta 60001 (attenzione che la porta scelta non sia gìà in uso).
Diamo il comando (in un nuovo terminale con privilegi di ROOT):

nc -l 60001

oppure

nc -v localhost 60001

3.2

Prepariamo un semplice script per scrivere su seriale (utilizzando il Python) e salviamolo con il nome sender.py:

#START (serial forwarder)
import sys
import time
import os, pty, serial

#configure the serial connections
print "\nSTARTING SERIAL PRINT\n"

# open serial port
ser = serial.Serial('/dev/ttyS0', 9600, rtscts=True, dsrdtr=True)
print "SERIAL FORWARDER > (remind to use this as a root!)\n"

# write test string
ser.write("\n > serial test for an ALARM! \n go go ALARM! go :) ")

# close serial port
ser.close();
#END

eseguiamolo da un nuovo terminale (con privilegi di ROOT) con il comando seguente:

python sender.py

NOTA: installiamo pyserial se necessario (se andando ad eseguire il passo precedente riceviamo un errore):

sudo apt-get install python-serial

Potrete adesso vedere la connessione di socat, verso l'IP di destinazione. 

Ulteriori informazioni su socat, al sito ufficiale.

Come ripristinare il visualizzatore Foto di Windows 7 in Windows 10

Con Windows 8 e 10 è arrivato anche un nuovo visualizzatore di Immagini, che porta anche funzioni di ritaglio e ritocchi di base.

undefined

Se tuttavia, come me, siete un po' nostalgici del vecchio, snello e collaudato Visualizzatore di foto di Windows 7, potete ripristinarlo con questa guida.

Nota: la guida è sicura, non andrà a sovrascrivere il nuovo viewer, renderà solamente disponibile il 'vecchio' nella tendina Apri con.. starà a voi poi selezionare quello che più preferite!

undefined

 Si devono apportare delle modifiche al registro (proseguite a vostro rischio e pericolo).

Poichè le modifiche al registro sono troppo lunghe per essere eseguite a mano, ho creato un file automatico (che potrete aprire con il blocco note, per essere sicuri di quello che andrà a fare).

  1 - Scaricatelo da qui.

  2 - Apritelo, e cliccate su conferma l'unione.

In questo modo, si abiliteranno al 'vecchio' visualizzatore, le seguenti estensioni:

  .JPEG
  .PNG
  .GIF
  .BMP

Per i .TIFF è già configurato, lo si può verificare da:
pannello di controllo > programmi predefiniti > imposta programmi predefiniti > visualizzatore foto di windows > scegli i valori predefiniti per questo programma

Si potrà adesso selezionare il visualizzatore desiderato, dal pannello apri con:

undefined

Come verificare la salute del disco con un controllo SMART (HDD & SSD)

Esistono molti tool per verificare la salute degli hard disk, che rilevano i dati di diagnostica S.M.A.R.T. e segnalano se ci sono dei deterioramenti o altri problemi.

SMART sta per "Self Monitoring Analysis and Reporting Technology" e funziona solo se supportata/abilitata da BIOS/UEFI.

Sappiamo che molte volte questi dati sono da prendere 'con le molle', visto che un test 'passato' non vuol dire che il nostro hard disk stia effettivamente bene. Anzi è capitato in diverse occasioni che un disco 'in rottura' abbia dato comunque risultati SMART buoni.

In ogni caso, se vedremmo in questo test qualcosa di anomalo, non dovremmo pensarci su due volte e cambiare subito il disco.

Esistono delle differenze tra HDD (meccanici) e SSD (solidi), i parametri SMART danno risultati diversi, come riferimento per analisi dettagliate vedere questa lista.

Il tool (HDD & SSD)

Uno dei tool consigliati è il CrystalDiskInfo, scaricabile dal sito ufficiale gratuitamente.

Una volta installato, avremo di fronte la panoramica della diagnostica eseguita, e potremmo essere di fronte a vari scenari.

Di solito apparirà la scritta GOOD, con tutti i pallini celesti accanto ai vari test: in questo caso la salute del nostro hdd potrà essere giudicata buona (notare che comunque non garantisce la presenza di futuri guasti).

undefined

Nel caso dovessero apparire pallini gialli o rossi, con la scritta CAUTION: consigliamo di sostituire al più presto l'hdd.

undefined

Questo tool integra anche altre funzioni (come ad esempio il grafico dell'alimentazione e della temperatura), potrete trovarli nella scheda 'Disk' o in 'Function'.

Il tool (specifico SSD)

Nel caso volessimo monitorare la salute di un disco SSD, esiste un programma apposito.
Si chiama SSDLife (a pagamento, ma prelevabile in versione Trial dal loro sito).

Anche questo programma esegue un controllo SMART, tuttavia oltre ai semplici dati, fornisce anche una visuale di riepilogo molto semplice da leggere: mostra infatti una barra della attuale 'salute' del disco.

undefined

Alternativa

Windows integra anche nativamente un tool SMART basilare: WMIC.
E' possibile eseguire un test dell'hdd senza installare alcun tool e ricevere un OK o un CAUTION.

 1. Aprire un prompt dei comandi come amministratore.

     Su Windows 7 digitare 'cmd' nel menu start,
     cliccare con il destro su cmd.exe e selezionare 'esegui come amministratore'.

 2. Inserire il comando

wmic

     e premere Invio, si avvierà il tool a riga di comando, apparirà:

wmic:root\cli>

 3. Inserire ed eseguire

diskdrive get status

 In questo modo verrà mostrato lo status rilevato dell'hard disk (di solito un OK).

Connection strings per database, una pratica lista per categorie

Una pratica lista con le stringe di connessione più usate e divise per categorie:

 

Microsoft SQL Server 20xx

STANDARD SECURITY
Server=myServerAddress;Database=myDataBase;User Id=myUsername;
Password=myPassword;
TRUSTED CONNECTION
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
CONNECTION TO AN INSTANCE
Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;
Password=myPassword;
CONNECTION VIA IP ADDRESS
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;
Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
ASYNCHRONOUS PROCESSING
Server=myServerAddress;Database=myDataBase;Integrated Security=True;
Asynchronous Processing=True;
WITH MARS (Multiple Access Result Set)
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
MultipleActiveResultSets=true;

Access

STANDARD SECURITY
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;
Persist Security Info=False;
WITH PASSWORD
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;
Jet OLEDB:Database Password=MyDbPassword; 

Azure

STANDARD
Server=tcp:[serverName].database.windows.net;Database=myDataBase;
User ID=[LoginForDb]@[serverName];Password=myPassword;Trusted_Connection=False;
Encrypt=True;
WITH MARS (Multiple Active Result Set)
Server=tcp:[serverName].database.windows.net;Database=myDataBase;
User ID=[LoginForDb]@[serverName];Password=myPassword;Trusted_Connection=False;
Encrypt=True;MultipleActiveResultSets=True;

MySql

STANDARD
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
SPECIFIC TCP PORT
Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;
Pwd=myPassword;
MULTIPLE SERVERS
Server=serverAddress1, serverAddress2, serverAddress3;Database=myDataBase;
Uid=myUsername;Pwd=myPassword;
USING ENCRYPTION
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
SslMode=Preferred; 

SQLite

BASIC
Data Source=c:\mydb.db;Version=3; 
WITH PASSWORD
Data Source=c:\mydb.db;Version=3;Password=myPassword;

Oracle

STANDARD
Data Source=MyOracleDB;Integrated Security=yes; 
AUTHENTICATION
Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
Integrated Security=no; 
PROXY
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;
Proxy User Id=pUserId;Proxy Password=pPassword;

IBM

DB2 STANDARD
Server=myAddress:myPortNumber;Database=myDataBase;UID=myUsername;PWD=myPassword;
INFORMIX STANDARD
Database=myDataBase;Host=192.168.10.10;Server=db_engine_tcp;Service=1492;
Protocol=onsoctcp;UID=myUsername;Password=myPassword;

 

Il database completo lo potete trovare su connectionstrings.com

Come verificare se un indirizzo email esiste ed è raggiungibile

A quasi tutti sarà capitato di ricevere almeno una volta una email di rifiuto dal Message Delivery Status (o Subsystem), a seguito di un invio verso un indirizzo con problemi o non esistente.
 

Quindi per verificare se effettivamente un indirizzo 'riceve' si potrebbe semplicemente inviargli una email (con attivo il flag 'notifica di recapito') ed aspettare la consegna.

Tuttavia come fare per verificarlo SENZA inviare alcuna mail?

 undefined

Ci viene in aiuto il client Telnet di Windows, vediamo come fare:

Passo 1

Innanzitutto abilitiamo Telnet (di default disattivato), andando su pannello di controllo, programmi e funzionalità, Attivazione o disattivazione delle funzionalità di Windows (in alto a sinistra).

Nella finestra che apparirà dovremo semplicemente abilitare la spunta su 'Client Telnet' e confermare con ok.

Passo 2

Apriamo un prompt dei comandi (su Windows 8.1 e 10, cliccando con il tasto destro sul logo del menu start).

Digitiamo nel prompt il comando

nslookup -q=mx <dominio da testare>

esempio, per verificare un indirizzo @gmail:

nslookup -q=mx gmail.com

premiamo Invio

In questo modo otterremo una lista dei server MX (Mail eXchanger) per tale dominio.
Questi dati vengono forniti da sistema DNS (vedere il post dedicato per capire come funziona) e rappresentano le macchine addette allo scambio e gestione della posta. 

undefined

Copiare in un file esterno di appoggio il vero nome del server MX,
che potrete trovare dopo la dicitura 'mail exchanger' (ad es: mx.gmail.com).

Passo 3

Sempre sul prompt digitare SENZA fare errori (perchè usando Telnet non si può cancellare!) il comando:

telnet <dominio salvato> 25

esempio:

telnet mx.google.com 25

 premere invio per avviare la sessione Telnet.

Passo 4

Adesso siamo 'connessi con il server' e possiamo interagirci tramite Telnet.

Diamo il comando 

helo hi

(helo è giusto con una 'elle' sola) 

In seguito

mail from: <qualcosa@qualcosa.com>

e

rcpt to: <indirizzodatestare@providerchestiamotestando.com>

seguiti da invio.

Ad esempio, coerentemente con i precedenti:

mail from: fittizio@testando.com
rcpt to: aldorossi@gmail.com

Passo 5

Il server risponderà a quest'ultima nostra richiesta dicendoci se l'indirizzo esiste o meno.

Se il server MX risponderà con "OK" o "Recipient OK", significa che la verifica dell'email è andata a buon fine e che quindi l'indirizzo indicato esiste.
Altrimenti verrà restituito un messaggio d'errore (ad esempio "sorry, no mailbox").

 

Riepilogo

Tutti i passi in un terminale (esatto, anche da terminale di linux o mac è possibile eseguire gli stessi steps):

undefined

Come forzare uno Scan Disk approfondito su Windows 8 e 10

Se provate ad eseguire un controllo del disco su Windows 8 o Windows 10, noterete che il sistema provvede prima ad effettuare una analisi.

Solo se vengono rilevati problemi si procede al controllo approfondito.

Se tuttavia volessimo forzare la pianificazione del controllo del disco 'all'avvio' (ovvero con correzione e ripristino dei settori dell'hdd danneggiati), dobbiamo aprire un prompt dei comandi come amministratore (che troviamo facendo click destro sul logo di windows del menu start) ed eseguire il comando:

chkdsk C: /f /x /r

Inserire S (o Y se il PC è in inglese) e premere invio per confermare.

In questo modo il PC, al riavvio successivo, effettuerà lo scan-disk approfondito che volevamo.

Twitter: un override per modificare automaticamente l'altezza del widget

Se avete embeddato il widget di Twitter in una vostra pagina avrete notato che l'altezza è fissa e non si adatta automaticamente con la pagina.

Se avete la necessità che si ridimensioni automaticamente aggiungete questo script alla fine della pagina web.

 

<script>
    $(document).ready(function () {
        detectFr();
    });
    function detectFr() {
        if ($("#twitter-widget-0").length > 0) {
            setTimeout(function () {
                setH();
            }, 250);
        } else {
            setTimeout(function () {
                detectFr();
            }, 500);
        }
    }
var panningBottom = 100; //<< INSERIRE IL VALORE CHE PIU' SI ADATTA AL VOSTRO HEADER
    function setH(){
        $('.twitter-timeline, .twitter-timeline-rendered').css('height', window.innerHeight-panningBottom);
    }
</script>

In questo modo, al caricamento, lo script andrà a cercare l'iframe in cui viene caricato il widget da Twitter, e ne imposterà l'altezza in base a quella della pagina madre.

Se avete un header più o meno alto, potete aumentare o meno il valore di panning-bottom per evitare che l'altezza impostata sia troppo lunga.

Ovviamente per funzionare, lo script ha bisogno dell'embed di jQuery.

 

Come verificare la sicurezza dei certificati installati in Windows

Sigcheck è un utile tool rilasciato gratuitamente da Microsoft per verificare che nel proprio computer non siano presenti certificati digitali malevoli.

Potete scaricarlo dal sito Ms-TechNet.

Come si usa

Una volta scaricato il tool ed estratto lo .zip, apriamo una finestra di prompt sulla cartella
(premendo il tasto MAIUSC e cliccando con il tasto destro su un'area vuota all'interno della cartella).

undefined

Nella finestra di prompt che appare inserire il comando:

sigcheck -tv

e premere INVIO.

Alla richiesta di autorizzazione alla scansione, premere I Agree.

Saranno così elencati i certificati rilevati nel computer e per ciascuno sarà indicata la sua validità.

Eliminare un certificato non valido

Nel caso avessimo trovato un certificato non valido, potremo eliminarlo dal computer aprendo la console di gestione certificati di Windows:

1- Cliccare con il tasto destro sul logo del menu start di Windows e aprire 'Esegui' (in alternativa, premere la combinazione Win+R)

2- Inserire ed eseguire il comando

certmgr.msc

3- Aprire la sezione "Autorità di certificazione radice attendibili" e in seguito aprire "Certificati".

4- Selezionare e rimuovere il certificato malevolo.

Altri usi

Il tool può essere usato anche per scansionare una cartella in cerca di file non firmati digitalmente.

Ad esempio con il comando

sigcheck -u -e c:\windows\system32

verrà scansionata la cartella system32 e verranno elencati i file firmati o meno.

Discussioni più recenti → Home ← Discussioni più vecchie