Condividire...

Condividere ha il suo costo, ma alla fine finisce per arricchire tutti


Sharing has its cost, but at the end leads everyone to a better knowledge

mercoledì 2 novembre 2011

Trucco: ReadyBoost

Hai poca RAM e sul computer rallenta tutto?
Window Vista e Windows 7 offrono un'interessante funzionalità. ReadyBoost, che consente di espandere la RAM su di una memoria Flash.
La maggior parte dei dispositivi di Flash, quindi le varie schedine SD ed i pennini USB sono compatibili. Nonostante il transfer rate di questi dispositivi sono normalmente inferiori a quelli degli HD, i tempi di accesso sono enormemente inferiori. Quindi per le letture non sequenziali di dati brevi il sistema cerca di usare l'unità flash, nell'altro caso preferisce utilizzare l'HD che è più performante.
 L'attivazione di può avvenire o tramite il menù dell'autoplay o tramite proprietà del dispositivo rimovibile.


Il sistema non utilizzerà banalmente l'unità per il file di swap, ma ci sposterà files frequentemente acceduti e file di boot.
Nei computer portatili questa funzionalità di caching può fare diminuire gli accessi all'HD permettendo ai dischi di andare in standby ed aumentando quindi la durata della carica delle batterie. 
Con sistemi dotati di 512mb di RAM le performaces possono migliore incredibilmente, all'aumentare della quantità di RAM  i benefici tendono a scomparire.

Su Windows XP nativamente non è disponibile questa funzionalità, ma la società russa Moscow Development Office ha sviluppato il programma eBoostr in grado di emulare il sistema Readyboost, rendendolo compatibile anche con dispositivi Firewire e eSata.

mercoledì 19 ottobre 2011

Microsoft Events

In cerca di documentazione e possibilità di provare tecnologie Microsoft?
Magari senza perdere tempo a scaricare ed installare Software?

Su  Microsoft Word Wide Events avete la possbilità di trovare webcast su le principali teconlogie e, cosa molto interessante, fruire gratuitamente di Virtual Labs, ossia ambienti virtuali corredati di istruzioni per provare ed imparare.




Come potete vedere basta selezionare come tipo di evento Virtual Labs e nel mio caso ho filtrato per Technet (c'è anche parecchio materiale relativo ad MSDN), ma è ovviamente possibile fare ricerche per tecnologie specifiche.



Una volta trovato il laboratario virtuale che vi interessa seguite le istruzioni.
E' necessario un LiveID per poter accedere al laboratorio, ma se non lo avete potete traquillamente crearlo in fase di accesso.

Buon divertimento!

giovedì 6 ottobre 2011

Steve Jobs


"Il tuo tempo è limitato, perciò non sprecarlo vivendo la vita di qualcun altro. Non lasciarti intrappolare dai dogmi - che significa vivere i risultati del pensiero di altre persone. Non lasciare che il rumore delle opinioni altrui offuschi la tua voce interiore.
E, cosa più importante, abbi il coraggio di seguire il tuo cuore ed il tuo intuito. Loro in qualche modo già sanno cosa vuoi davvero diventare. Tutto il resto è secondario" Steve Jobs

A prescindere da simpatie e preferenze personali è morto uno dei più grandi innovatori dell' era informatica.

martedì 28 giugno 2011

Trucco: Windows 7 GodMode

Vuoi il controllo totale sul tuo PC Windows 7?
Attiva la modalità "divina" ed accedi al menù segreto.

Crea una nuova cartella sul desktop e chiamala:
GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}















Apri la cartella ed eccoti tutte le opzioni di configurazione di Windows 7!


Se non ti serve più basta cancellare la cartella.

giovedì 5 maggio 2011

TSQL: Funzione di Levenshtein per analizzare la similitudine fra stringhe

La distanza tra due parole, secondo l'algoritmo di Levenshtein non è altro che il grado di similitudine tra queste due parole, viene di fatto calcolata la somiglianza tra parole. A volte si ha a che fare con dati sporchi digitati non correttamente su diverse tabelle proveniente da diversi ambiente ed è difficile riconciliare le informazioni usando solo query con la condizione LIKE

La funzione che segue, scritta in TSQL per SQL server, ci viene incontro, basandosi sull'algoritmo di Levenshtein, restituisce un numero intero che rappresenta la distanza, ovvero la differenza, tra le due parole. Più il risultato è basso più le parole sono simili, nel caso di due parole uguali l'algortimo restituisce 0. 

L'algoritmo di Levenshtein di fatto restituisce il numero minimo di modifiche da applicare alla parola A per trasformarla in un altra B, dove per modifica si intende: la cancellazione di un carattere, la sostituzione di un carattere con un altro, o l'inserimento di un carattere.
 
create function dbo.Levenshtein (@parola1 varchar(30), @parola2 varchar(30))
returns int
as
begin
 declare @distanza int -- La variabile che viene restituita
 declare @lenparola1 int -- La lunghezza della prima parola
 declare @lenparola2 int -- la lunghezza della seconda parola

 -- Calcolo la lunghezza delle due parole

 set @lenparola1 = len(@parola1)
 set @lenparola2 = len(@parola2)
 
 -- Se la lunghezza di una delle due parole è 0 allora viene restituita la lunghezza dell'altra
 if @lenparola1 = 0
  set @distanza = @lenparola2
 else if @lenparola2 = 0
  set @distanza = @lenparola1
 else
  begin
  declare @array_temp table (riga int,colonna int,valore int)
  -- Creo una tabella temporanea per simulare un array bidimensionale
  declare @i int
  declare @j int
  
  -- inizializzo la cella (0,0) con il valore 0
  insert @array_temp values (0, 0, 0)

  -- importo i valori della prima riga e della prima colonna a 0
  set @i = 1
  while @i <= @lenparola1
   begin
   insert @array_temp values (@i, 0, @i)
   set @i = @i + 1
   end
  set @j = 1
  while @j <= @lenparola2
   begin
   insert @array_temp values (0, @j, @j)
   set @j = @j + 1
   end
 
  -- Ciclo sulle due parole calcolando la distanza
 
  declare @cost int
  declare @min1 int
  declare @min2 int
  declare @min3 int
 
  set @i = 1
  while @i <= @lenparola1
   begin
   set @j = 1
   while @j <= @lenparola2
    begin
    -- Compara i caratteri e determina il @cost
    -- Se sono uguali @cost = 0.
-- Se diversi @cost = 1
    
    if (substring(@parola1, @i, 1) = substring(@parola2, @j, 1))
     set @cost = 0
    else
     set @cost = 1
    
    -- Calcolo il minimo tra:
    -- La cella a sinistra
    -- Quella in alto
    -- E quella in alto a sinistra in diagonale
    
    select @min1 = [valore] + 1
    from @array_temp
    where riga = @i - 1 and colonna = @j
    
    select @min2 = [valore] + 1
    from @array_temp
    where riga = @i and colonna = @j - 1
    
    select @min3 = [valore] + @cost
    from @array_temp
    where riga = @i - 1 and colonna = @j - 1
    
    if @min2 < @min1
    set @min1 = @min2
    if @min3 < @min1
    set @min1 = @min3
    
    insert into @array_temp values (@i, @j, @min1)
    set @j = @j + 1
    end
   set @i = @i + 1
   end
  -- La distanza finale è la cella in basso a destra
  select @distanza = [valore]
  from @array_temp
  where riga = @lenparola1 and colonna = @lenparola2
  end
 -- Restituisco la distanza
 return @distanza
end 
 
 
Possiamo ad esempio utilizzarla:
select * 
from miatabella 
where dbo.Levenshtein ('paroladaconfrontare', miatabella.miocampo) < 3
 
N.B.: Questa funzione è stata presa in rete e non scritta da me 
 
P.S. la versione Enterprise di SQL Server 2008 R2 comprende i
 Master Data services
che includono questa ed altre funzioni di Fuzzy lookup.   
 

martedì 15 marzo 2011

Gli Snapshot in ambito Microsoft Windows Hyper-V

Una delle cose che affascina molto nei progetti di virtualizzazione è la possibilità di creare delle fotografie (snapshot) delle macchine virtuali.
Questa funzionalità, apparentemente semplice, nasconde non poche insidie e viene spesso fraintesa.
 Da questo nasce l'idea di questo articolo il cui obiettivo è di fare maggiore chiarezza sull'argomento.
Se vi annoiano i discorsi troppo tecnici e vi interessa solo il succo potete saltare direttamente alle conclusioni nel paragrafo finale: Avvertenze sugli snapshot.


Introduzione Terminologica

VHD
Un Disco Fisso Virtuale è un file fornisce spazio disco ad una macchina virtuale (e non solo).
All'interno della macchina virtuale è visto e trattato come un normale disco fisico.

Disco Differenziale
Un disco differenziale virtuale è un un disco fisso virtuale associato ad un altro disco fisso virtuale in una realazione di titpo padre-figlio.
Il disco differenziale (figlio) memorizza tutte le modifiche fatte sul disco padre, consentendone quindi il salvataggio senza che alcuna modifica sia effettivamente eseguita sul disco padre. In altre parole, utilizzando i dischi differenziali, ci assicuriamo che le modifiche siano riportate sul disco differenziale e non sul disco vhd originale.
Successivamente è possibile, se lo desideriamo, unire il disco differenziale con il disco padre al fine di avere un solo VHD contenente tutte le modifiche.


Gli Snapshot

Gli Snapshot sono una funzionalità dell' Hyper-V di Windows Server 2008  R2 che ci consente di creare una versione ad un determinato momento della nostra macchina virtuale.
Il vantaggio dal punto di vista amministrativo e che ci consentono di create gerarchie di modifiche e di poter tornare facilmente indietro.
Gli snapshot non apportano alcuna modifica allo stato delle macchine virtuali cui fanno riferimento.

Come Funzionano

Hyper-V segue i seguenti passi per la creazione di uno snapshot:
  1. Mette in pausa la maccina virtuale
  2. Crea un disco differenziale per ogni vhd configurato sulla macchina virtuale
  3. Fa una copia del file di configurazione della macchina virtuale
  4. Fa ripartire la macchina virtuale
  5. Se la macchina era in esecuzione viene salvato il contenuto della memoria sui nuovi dischi differenziali
Tutte queste operazioni si svolgono in maniera trasparente per gli utenti che non dovrebbero riscontrare alcun rallentamento o indisponibilità della macchina virtuale. In pratica la macchina durante la sua fase di pausa trattiene in memoria tutte le modifiche effettuate, per salvarle nel passo 5.



I file degli snapshot

Uno snapshot consiste di diversi file che vengono memorizzati in una directory degli snapshot associata alla macchina virtuale.
Nel dettaglio avremmo:
  • Un file di configurazione della macchina virtuale (.xml)
  • Dischi differenziali dello snapshot (.avhd)
Nel caso in cui la macchina virtuale al momento dello snapshot era attiva o salvata:
  • File di salvataggio di stato della macchina virtuale (.vsv)
  • Contenuto della memoria (.bin)
Non operate mai direttamente sui file degli snapshot! ( a meno che non sappiate esattamente cosa state facendo)

Azioni possibili sugli snapshot

Tramite lo snap-in di gestione di Hyper-V, ed in buona parte anche tramite SCVMM (System Center Virtual Machine Manager) che li chiama però Checkpoint, è possibile eseguire le seguenti azioni relaitve agli snapshot delle macchine virtuali:
  1. Creare uno nuovo
  2. Rinominare
  3. Applicare (SCVMM:Ripristinare) uno snapshot, ossia riportare la macchina virtuale allo stato dello snapshot.
  4. Cancellare uno snapshot: se lo snapshot non è quello corrente viene semplicemente cancellato, se invece è quello attivo tutte le modifiche verranno riportate (merge) sul VHD originale al momento dello spegnimento della macchina virtuale. Attenzione questa operazione può portare via parecchio tempo in fase di riavvio!
Gestione tramite Hyper-V


Gestione tramite SCVMM


Avvertenze sugli snapshot

A questo punto possediamo elementi sufficienti per trarre alcune importantissime conclusioni:

  1. Evitate di usare gli Snapshot in ambienti di produzione. Si potrebbero avere seri problemi con servizi ed applicazioni sensibili ai tempi di risposta, tipo l'autenticazione di Active Directory, o che usano meccanismi di replica tipo Exchange ed SQL Server.
  2. Gli snapshot possono consumare molto velocemente lo spazio disco, soprattuto se abbiamo più snapshot della stessa macchina virtuale.
  3. Fate attenzione alle conseguenze della cancellazione degli snapshot. 
  4. Non considerate assolutamente gli snapshot un'alternativa al backup.
L'utilizzo degli snapshot che la Microsoft consiglia è per ambienti di test o di formazione.





venerdì 25 febbraio 2011

Trucco: Ricercare le Group policy

Uno dei problemi che si hanno nell'utilizzare le Group Policy è quello di ricordare dove e quali sono le impostazioni che vogliamo applicare, in quanto, ed aggiungerei per fortuna, la quantità di impostazioni disponibili è davvero molto elevata.
Per orientarci attravverso le centinaia abbiamo però qualche piccolo aiuto:
1)  la funzione di filtro sui modelli amministrativi (administrative templates)  che agisce solo sulla sezione modelli amministrativi delle policy



2) è anche disponibile su internet un ottimo strumento per la ricerca delle group policy


 

giovedì 13 gennaio 2011

IL Servizio Ora di Windows - Windows Time Service

Introduzione

Prima o poi ad ogni sistemista capita di dover combattere con la questione degli orari dei computer della rete.
La documentazione Microsoft in verità è ottima ed abbondante.... forse anche troppo abbondante, ecco il motivo di questo articolo, vediamo se riusciamo a fare un riassunto il più funzionale possibile.

Il servizio Time di Windows (W32Time) si occupa di mantenere sincronizzati gli orari dei computer in ambiente Microsoft.


La questione è di vitale importanza per il corretto funzionamento di una rete Microsoft in quanto il protocollo di autenticazione Kerberos tollera, di default, una differenza di orario al massimo 5 minuti in fase di autenticazione, altrimenti la blocca.

(nell'immagine si evidenzia il parametro di impostazione all'interno di una Group Policy)




NTP

W32time è un'implementazione del protocollo NTP (Network Time Protocol) che, attraverso una serie di complessi algoritmi, assicura che gli orologi dei computer all'interno di una rete siano il più accurati possibile.
L' NTP è  l'evoluzione del protocollo SNTP (Simple Network Time Protocol) che veniva utilizzato nelle versioni precendenti di Windows (es: Windows 2000) con cui garantisce perfetta interoperabilità.
Per fare questo nell'ambito di un dominio AD DS tutti gli orologi dei computer vengono sincronizzati con l'ora di un computer considerato autorevole, mentre i computer standalone sincronizzano, di default, con il server NTP Internet della Microsoft: time.windows.com.

La sincronizzazione dell'orario NTP avviene ad intervalli prestabiliti e comporta il trasferimento di pacchetti NTP sulla rete. La porta utilizzata è la UDP 123 (la stessa dell'SNTP).



Windows Time service

E' un paccheto completo di sincronizzazione che supporta i cosiddetti Fornitori di Orario (Time Providers) che  si occupano o di ottenere un orario accurato (dalla rete o da un  HW apposito es: GPS) o di fornire l'orario agli altri computer della rete. Per cui il Windows Time Service consiste di due diversi componenti:
  1. NtpServer: fornitore di orario in uscita, in grado di rispondere alle richieste dei client sulla rete.
  2. NtpClient: fornitore di orario in entrata, che ottiene dati sull'orario che sono utilizzati per sincronizzare l'orologio locale del computer.


 Archittetura del Servizio Orario di Windows - Fonte Technet


Il servizio si chiama W32Time e può essere fermato ed avviato tramite i comandi:

Net Stop w32time

Net Start w32time



La gerarchia degli orari

Ogni computer utilizza uno dei seguenti metodi per identificare il fornitore di orario con cui sincronizzarsi (per semplificare il discorso utilizziamo un'architettura a singolo dominio):
  1. Se non è membro di un dominio si configura con la sorgente di orario esplicitamente indicata.
  2. Se è una macchina virtuale si sincronizza tramite i servizi di integrazione, almeno che non venga disabilitato, con l'orario del computer Host. Attenzione disabilitare sempre questa funzione in caso di Server AD DC virtuale!
  3. Se è un client o un server membro di un dominio, di default, segue la gerarchia di AD e si sincronizza con il  controller del proprio dominio che sta agendo come NTPServer.  
  4. Se è un controller di dominio si sincronizza con il Domain Controller che detienene il ruolo FSMO di PDC Emulator (si può facilmente identificare usando il comando: Netdom Query Fsmo).
  5. Se è il PDC Emulator si sincronizza con un server NTP esterno (o con un Time Server HW)


Gerarchia del Servizio Orario di Windows - Fonte Technet (modificata)


Questa gerarchia trova riscontro nel concetto di Strato riportato, ad esempio, in risposta al comando W32tm /monitor (eseguire il comando come amministratore)

La configurazione

Ricapitolando all'interno di un dominio abbiamo i normali client,  i controllori di dominio ed in capo a tutti il DC che detiene il ruolo Fsmo di Pdc Emulator, quindi i nostri obiettivi sono:


  1. Configurare la sincronizzazione del PDC emulator con una sorgente esterna e qui trovate una fix che fa un pò tutto da sola, dovete solo scegliere i Time Server da usare: Vi consiglio di scegliere  qualcosa di ridondante del tipo: 0.it.pool.ntp.org,0x8 1.it.pool.ntp.org,0x8 2.it.pool.ntp.org,0x8 3.it.pool.ntp.org,0x8 (NB: time.windows.com non è affidabile!).
    Il valore specificato dopo il nome DNS 0x01 corrisponde al seguente schema:    

        * 0x01 Intervallo speciale
        * 0x02 Usa solo per failback
        * 0x04 Attivo Simmetrico
        * 0x08 Client
    Di default troveremo preimpostato time.windows.com, 0x09 dove 0x09=0x08+0x01
  1. Configurare i client per sincronizzarsi automaticamente con il Dominio questa operazione non dovrebbe essere necessaria in quanto di default tutti i client di dominio si sincronizzano con AD.



Gli Strumenti di configurazione

Innanzitutto  specifichiamo gli strumenti che abbiamo a disposizione:

 

A)  l'area di registro HKLM\SYSTEM\CurrentControlSet\Services\W32Time a cui accediamo tramite il comando Regedit.




 HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type: NTP per il PDCE o computer standalone, NT5DS per i computer membri

HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags:  5 per il PDCE

HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer: time.windows.com,0x1 per i PDCE o computer standalone


       



B) il modello amministrativo all'interno delle GPO: Computer-> Modelli amministrativi-> Sistema -> Servizio Ora di Windows  

 Fondamentamentalmente lo usiamo per attivare e disattivare i componenti NTP Client e NTPO server.

Attenzione in alcuni casi ho riscontrato che la Default Domain Policy disattivava l'NTP Server e Client! 




C) Il comando w32tm   Il comando "principe" che ci fornisce ottimi strumenti di configurazione che di analisi e debug. I comandi fondamentali:

w32tm /config /syncfromflags:domhier /update 

 Impone ad un client la sincronizzazione con il dominio 

w32tm /config /manualpeerlist: servers /syncfromflags:manual /reliable:yes /update

Servers: lista dei Server NTP

Imposta il PDCE per la sincronizzazione con i server NTP indicati
Es: w32tm /config /manualpeerlist:"0.it.pool.ntp.org,0x8 1.it.pool.ntp.org,0x8 2.it.pool.ntp.org,0x8 3.it.pool.ntp.org,0x8"  /syncfromflags:manual /reliable:yes /update


w32tm /stripchart /computer:obiettivo /samples: n /dataonly
obiettivo: server NTP
n: numero di campionemanti effettuati
Es: w32tm /stripchart /computer:time.windows.com /samples:5 /dataonly

Riporta la differenza di orario con il server indicato nel parametro obiettivo 

 w32tm /resync
 Forza una sincronizzazione degli orari usato spesso con i parametri /rediscover e/o /nowait
 
 w32tm /monitor
  Esegue il monitoraggio della configurazione e lo stato della gerarchiain AD  

w32tm /query /source
 Mostra la sorgente di sincronizzazione dell'ora



 w32tm /unregister
  Elimina il Servizio Ora di Windows e tutte le sue configurazioni


 w32tm /register
  Abilita il Servizio Ora di Windows con le impostazioni di default


  
D) i comandi  NET. E' buona norma dopo avere apportato modifiche di configurazione fermare e riavviare il servizio.


NET Stop w32time Ferma il Servizio Ora di Windows
Net Start w32time  Avvia il Servizio Ora di Windows


Spero che questo articolo possa esservi di aiuto. Come al solito ogni segnalazione e precisazione è la benvenuta.