Monday, 27 February 2006

Regular Expression - La salvezza...lezione 1

Regular Expression, aka espressioni regolari. Le ho iniziate a studiare da poco, ma già dopo poche ore di lettura capisci che sono utilissime e indispensabili. Ho pensato che che potesse essere carino, gentile, intelligente e quello che volete, inserire un resoconto man mano che studio, in modo che a qualcuno possa servire come breve HOW-TO. Ovviamente i miei post non sostituiscono il mitico libro di O'Reilly - Mastering Regular Expression (2nd Edition) - ISBN...boh non lavoro in libreria. 

Iniziamo. In shell lo strumento dedicato alle regular express è il comando egrep. Ogni linguaggio ha il suo modo per chiamarle e per usarle. In generale non ci sono variazioni se non minime (ma non per questo non importante) nel modo di usare le Regular Expression nei vari linguaggi. E' utile verificare anche quale versione di egrep si ha nel proprio sistema. Cambiano infatti tra le versioni le varie funzionalità che possono essere usate.

Ipotizzo che molti di voi abbiano una conoscienza base dei sistemi UNIX, quindi taglio corto nei vari dettagli. Sarete in grado da soli di leggere gli argv del comando e di usarli al meglio. Prime nozioni:





















MetacharatherNomeMatches
 .   

 [...]

 [^...] 
Dot (punto)   

Classe di carattere

Classe di carattere negata
Qualsiasi carattere   

Qualsiasi carattere nell'elenco

Qualsiasi carattere non nell'elenco
 ^   

 $

 <  

 > 
Caret   

Dollaro

Backslash minore di

Backslash maggiore di 
Posizione all'inizio della linea   

Posizione alla fine della linea

Posizione all'inizio della parola

Posizione alla fine della parola 
 |   

 (...) 
Pipe   

Parentesi tonde 
Operatore OR   

Usato per limitare la pipe o per altre espressioni di ricerca 

Facciamo qualche esempio:

egrep (Subject|From) messaggioemail.txt

Questa riga cerca le parole Subjet o From in un file. Supponendo che le parole si trovino all'inizio della riga, trasformiamola così:

egrep ^(Subject|From) messaggioemail.txt

Abbiamo già usato tre operatori: () | e ^ . Non proseguo facendo altri stupidi esempi. Provate direttamente voi cercando qualche riga per esempio in un logfile. Rimarrete sorpresi.

Friday, 24 February 2006

James Blunt - Goodbye my lover

Did I disappoint you or let you down?
Should I be feeling guilty or let the judges frown?
'Cause I saw the end before we'd begun,
Yes I saw you were blinded and I knew I had won.
So I took what's mine by eternal right.
Took your soul out into the night.
It may be over but it won't stop there,
I am here for you if you'd only care.
You touched my heart you touched my soul.
You changed my life and all my goals.
And love is blind and that I knew when,
My heart was blinded by you.
I've kissed your lips and held your head.
Shared your dreams and shared your bed.
I know you well, I know your smell.
I've been addicted to you.

Goodbye my lover.
Goodbye my friend.
You have been the one.
You have been the one for me.

I am a dreamer but when I wake,
You can't break my spirit - it's my dreams you take.
And as you move on, remember me,
Remember us and all we used to be
I've seen you cry, I've seen you smile.
I've watched you sleeping for a while.
I'd be the father of your child.
I'd spend a lifetime with you.
I know your fears and you know mine.
We've had our doubts but now we're fine,
And I love you, I swear that's true.
I cannot live without you.

Goodbye my lover.
Goodbye my friend.
You have been the one.
You have been the one for me.

And I still hold your hand in mine.
In mine when I'm asleep.
And I will bare my soul in time,
When I'm kneeling at your feet.
Goodbye my lover.
Goodbye my friend.
You have been the one.
You have been the one for me.

I'm so hollow, baby, I'm so hollow.
I'm so, I'm so, I'm so hollow.
I'm so hollow, baby, I'm so hollow.
I'm so, I'm so, I'm so hollow.
 

[audio:GHTSFD.mp3]

Wednesday, 22 February 2006

OpManager 6

Lo aspettavamo ed è arrivato. Aveva già stupito nella sua versione 5.6, ora la 6 promette grandi cose. La versione 6 di OpManager è veramente funzionale. Non sono presenti grosse modifica sostanziali rispetto a quella precendente, se non la possibilità, da tanti cercata, di aggiungere dei custom field per ogni macchina (utili soprattutto per chi ha necessità di mantenere un asset).

Avendo una macchina a 64bit ho dovuto usare una (bruttissima) Fedora. Nessun problema di installazione per quanto riguarda OpManager. Attualmente ho un database con 800 macchine, praticamente tutti server, query SNMP ogni 5 minuti e la macchina è stabile. Mi pare che la sonda java sia molto più performante e veloce nella versione 6.

I costi rimangono gli stessi delle vecchie versioni. Relativamente agli upgrade non lo so. Sicuramente un software da comprare. Ho comunque voluto, per senso critico, elencare un paio di cose che comunque non mi entusiasmano molto...

Contro:

  • Attualmente non c'è supporto nativo a 64bit

  • Non è possibile installarlo su Solaris

Tuesday, 21 February 2006

Reinstallare Internet Explorer in Windows XP o Windows 2000

Dunque, in Windows 2000 e Windows XP Internet Explorer è molto più di un programma ma un vero componente di sistema. Il problema è che molti spyware vanno a danneggiare o comunque a dare fastidio a Internet Explorer e rimetterlo al suo posto non è sempre facile...anzi quasi impossibile. La tecnica che propongo tra poco non è delle più fini e sicuramente in contrasto con quanto microsoft riporta nella sua knowledge base, articolo 318378. Si tratta di eseguire uno script in VBS che alla fine non fa altro che lanciare un bel rundll32.exe con i parametri corretti. Ecco lo script:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run ("rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %windir%Infie.inf

Allego lo script in vbs da scaricare e da utilizzare...Tenete a portata di mano il CD di installazione di Windows e dopo avere fatto la reinstallazione fate un reboot e un WindowsUpdate.